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

View File

@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write docs/config-catalog.md
config-catalog.md: 911255077833354351b08bd2800f2116510ca3c0
config-catalog.zh.md: d3141ab389cb1b8f60b88d504e2598ab1938decc
config-catalog.md: 59e426a484d7ed1db67bc3d48490b069e04bc1e3
config-catalog.zh.md: e64d9f0bdb9bcedc2084c3552c6b5e71c561c75c

View File

@@ -2817,6 +2817,7 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
- `@deepseek-ai/dsh-brand` ([`packages/util/brand/src/index.ts`](../packages/util/brand/src/index.ts))
- `@deepseek-ai/dsh-client-schema-form` ([`packages/client/schema-form/src/index.ts`](../packages/client/schema-form/src/index.ts))
- `@deepseek-ai/dsh-client-test-runtime` ([`packages/client/test-runtime/src/index.ts`](../packages/client/test-runtime/src/index.ts))
- `@deepseek-ai/dsh-client-ui-attachment` ([`packages/client/ui-attachment/src/index.ts`](../packages/client/ui-attachment/src/index.ts))
- `@deepseek-ai/dsh-client-ui-primitives` ([`packages/client/ui-primitives/src/index.ts`](../packages/client/ui-primitives/src/index.ts))
- `@deepseek-ai/dsh-client-ui-slots` ([`packages/client/ui-slots/src/index.ts`](../packages/client/ui-slots/src/index.ts))
- `@deepseek-ai/dsh-client-web` ([`packages/client/web/src/index.ts`](../packages/client/web/src/index.ts))

View File

@@ -2817,6 +2817,7 @@ export interface Config {
- `@deepseek-ai/dsh-brand`[`packages/util/brand/src/index.ts`](../packages/util/brand/src/index.ts)
- `@deepseek-ai/dsh-client-schema-form`[`packages/client/schema-form/src/index.ts`](../packages/client/schema-form/src/index.ts)
- `@deepseek-ai/dsh-client-test-runtime`[`packages/client/test-runtime/src/index.ts`](../packages/client/test-runtime/src/index.ts)
- `@deepseek-ai/dsh-client-ui-attachment`[`packages/client/ui-attachment/src/index.ts`](../packages/client/ui-attachment/src/index.ts)
- `@deepseek-ai/dsh-client-ui-primitives`[`packages/client/ui-primitives/src/index.ts`](../packages/client/ui-primitives/src/index.ts)
- `@deepseek-ai/dsh-client-ui-slots`[`packages/client/ui-slots/src/index.ts`](../packages/client/ui-slots/src/index.ts)
- `@deepseek-ai/dsh-client-web`[`packages/client/web/src/index.ts`](../packages/client/web/src/index.ts)