From 2d099e336bbe7c6e3b16cf388bee1562912aadb2 Mon Sep 17 00:00:00 2001 From: Neko Ayaka Date: Wed, 29 Apr 2026 06:05:10 +0800 Subject: [PATCH] feat(ui): new component --- docs/ai/context/ui-components.md | 10 + packages/ui/src/components/layouts/index.ts | 1 + .../ui/src/components/layouts/truncatable.vue | 178 ++++++++++++++++++ 3 files changed, 189 insertions(+) create mode 100644 packages/ui/src/components/layouts/truncatable.vue diff --git a/docs/ai/context/ui-components.md b/docs/ai/context/ui-components.md index 69b1c6007..547a91029 100644 --- a/docs/ai/context/ui-components.md +++ b/docs/ai/context/ui-components.md @@ -74,6 +74,16 @@ Loading placeholder with animation. **Slots**: `default` +### Truncatable + +Line-clamped content container that expands and collapses when the overflowing content area is clicked. + +| Prop | Type | Default | Description | +|------|------|---------|-------------| +| `lineClamp` | `number?` | `3` | Maximum visible lines while collapsed | + +**Slots**: `default` + --- ## Misc diff --git a/packages/ui/src/components/layouts/index.ts b/packages/ui/src/components/layouts/index.ts index 29ce97449..3a28422b5 100644 --- a/packages/ui/src/components/layouts/index.ts +++ b/packages/ui/src/components/layouts/index.ts @@ -1,3 +1,4 @@ export { default as Collapsible } from './collapsible.vue' export { default as Screen } from './screen.vue' export { default as Skeleton } from './skeleton.vue' +export { default as Truncatable } from './truncatable.vue' diff --git a/packages/ui/src/components/layouts/truncatable.vue b/packages/ui/src/components/layouts/truncatable.vue new file mode 100644 index 000000000..779f1e5b1 --- /dev/null +++ b/packages/ui/src/components/layouts/truncatable.vue @@ -0,0 +1,178 @@ + + + + +