feat(web): align attachment display with DeepSeek Chat via ui-attachment atoms

Single-click original preview in the composer rail and chat history; remove
control inside the thumbnail, revealed on hover/focus (always on touch);
hidden-scrollbar rail overflow paged by edge arrows with wheel panning and
end-reveal on add; image-intake rejections and prompt failures announce as a
transient top-center toast instead of inline strips.

The attachment atoms move to a new zero-cordis package
@deepseek-ai/dsh-client-ui-attachment (rail, message gallery, lightbox),
seeded as a platform module; the toast is a ui-primitives atom. Strings
arrive as label props bridged from the conversation dictionary.
This commit is contained in:
creatixchu
2026-08-11 17:01:29 +08:00
parent 5d591e55c1
commit e611e825b1
56 changed files with 1366 additions and 251 deletions

43
pnpm-lock.yaml generated
View File

@@ -1937,6 +1937,31 @@ importers:
specifier: ^18.2.0
version: 18.3.1
packages/client/ui-attachment:
dependencies:
'@deepseek-ai/dsh-attachment':
specifier: workspace:^
version: link:../../attachment/attachment
'@deepseek-ai/dsh-client-ui-primitives':
specifier: workspace:^
version: link:../ui-primitives
clsx:
specifier: ^2.0.0
version: 2.1.1
react:
specifier: ^18.2.0
version: 18.3.1
devDependencies:
'@deepseek-ai/cordis':
specifier: workspace:^
version: link:../../../vendor/cordis
'@deepseek-ai/dsh-invariants':
specifier: workspace:^
version: link:../../support/invariants
'@types/react':
specifier: ~18.3.1
version: 18.3.31
packages/client/ui-command:
dependencies:
clsx:
@@ -2016,6 +2041,9 @@ importers:
'@deepseek-ai/dsh-client-test-runtime':
specifier: workspace:^
version: link:../test-runtime
'@deepseek-ai/dsh-client-ui-attachment':
specifier: workspace:^
version: link:../ui-attachment
'@deepseek-ai/dsh-client-ui-layout':
specifier: workspace:^
version: link:../ui-layout
@@ -2859,15 +2887,15 @@ importers:
specifier: ^9.0.0
version: 9.0.0
devDependencies:
'@deepseek-ai/dsh-client-locale':
specifier: workspace:^
version: link:../locale
'@deepseek-ai/cordis':
specifier: workspace:^
version: link:../../../vendor/cordis
'@deepseek-ai/dsh-agent':
specifier: workspace:^
version: link:../../core/agent
'@deepseek-ai/dsh-client-locale':
specifier: workspace:^
version: link:../locale
'@deepseek-ai/dsh-client-runtime':
specifier: workspace:^
version: link:../runtime
@@ -2950,6 +2978,9 @@ importers:
'@deepseek-ai/dsh-client-schema-form':
specifier: workspace:^
version: link:../schema-form
'@deepseek-ai/dsh-client-ui-attachment':
specifier: workspace:^
version: link:../ui-attachment
'@deepseek-ai/dsh-client-ui-primitives':
specifier: workspace:^
version: link:../ui-primitives
@@ -4495,12 +4526,12 @@ importers:
'@deepseek-ai/dsh-workspace':
specifier: workspace:^
version: link:../../workspace/workspace
fflate:
specifier: ^0.8.2
version: 0.8.3
'@deepseek-ai/schemastery':
specifier: link:../../../vendor/schemastery
version: link:../../../vendor/schemastery
fflate:
specifier: ^0.8.2
version: 0.8.3
zod:
specifier: ^4.4.3
version: 4.4.3