@teamix-evo/ui 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +8 -4
- package/src/components/accordion/accordion.meta.md +10 -5
- package/src/components/accordion/accordion.stories.tsx +11 -6
- package/src/components/affix/affix.meta.md +19 -10
- package/src/components/affix/affix.stories.tsx +4 -2
- package/src/components/alert/alert.meta.md +19 -14
- package/src/components/alert/alert.stories.tsx +1 -1
- package/src/components/alert/alert.tsx +5 -5
- package/src/components/alert-dialog/alert-dialog.meta.md +23 -10
- package/src/components/alert-dialog/alert-dialog.stories.tsx +1 -1
- package/src/components/alert-dialog/alert-dialog.tsx +1 -1
- package/src/components/anchor/anchor.meta.md +20 -11
- package/src/components/anchor/anchor.stories.tsx +1 -1
- package/src/components/app/app.meta.md +19 -10
- package/src/components/app/app.stories.tsx +4 -2
- package/src/components/aspect-ratio/aspect-ratio.meta.md +10 -5
- package/src/components/aspect-ratio/aspect-ratio.stories.tsx +1 -1
- package/src/components/auto-complete/auto-complete.meta.md +25 -16
- package/src/components/auto-complete/auto-complete.stories.tsx +4 -2
- package/src/components/avatar/avatar.meta.md +23 -11
- package/src/components/avatar/avatar.stories.tsx +1 -1
- package/src/components/badge/badge.meta.md +26 -21
- package/src/components/badge/badge.tsx +7 -13
- package/src/components/breadcrumb/breadcrumb.meta.md +21 -10
- package/src/components/breadcrumb/breadcrumb.stories.tsx +8 -0
- package/src/components/button/button.meta.md +22 -17
- package/src/components/button/button.stories.tsx +1 -1
- package/src/components/button/demo/as-child.tsx +24 -0
- package/src/components/button/demo/basic.tsx +8 -0
- package/src/components/button/demo/block.tsx +16 -0
- package/src/components/button/demo/loading.tsx +19 -0
- package/src/components/button/demo/shapes.tsx +18 -0
- package/src/components/button/demo/sizes.tsx +19 -0
- package/src/components/button/demo/variants.tsx +19 -0
- package/src/components/button/demo/with-icon.tsx +20 -0
- package/src/components/button-group/button-group.meta.md +18 -9
- package/src/components/button-group/button-group.stories.tsx +5 -2
- package/src/components/calendar/calendar.meta.md +14 -9
- package/src/components/calendar/calendar.stories.tsx +1 -1
- package/src/components/calendar/calendar.tsx +1 -1
- package/src/components/card/card.meta.md +36 -11
- package/src/components/card/card.stories.tsx +8 -0
- package/src/components/carousel/carousel.meta.md +16 -11
- package/src/components/carousel/carousel.stories.tsx +10 -5
- package/src/components/cascader/cascader.meta.md +28 -19
- package/src/components/cascader/cascader.stories.tsx +9 -8
- package/src/components/cascader/cascader.tsx +2 -2
- package/src/components/checkbox/checkbox.meta.md +26 -8
- package/src/components/checkbox/checkbox.stories.tsx +1 -1
- package/src/components/collapsible/collapsible.meta.md +11 -4
- package/src/components/collapsible/collapsible.stories.tsx +8 -0
- package/src/components/color-picker/color-picker.meta.md +27 -18
- package/src/components/color-picker/color-picker.stories.tsx +1 -1
- package/src/components/color-picker/color-picker.tsx +1 -0
- package/src/components/combobox/combobox.meta.md +29 -20
- package/src/components/combobox/combobox.stories.tsx +1 -1
- package/src/components/combobox/combobox.tsx +3 -3
- package/src/components/command/command.meta.md +32 -12
- package/src/components/command/command.stories.tsx +1 -1
- package/src/components/command/command.tsx +1 -1
- package/src/components/context-menu/context-menu.meta.md +34 -11
- package/src/components/context-menu/context-menu.stories.tsx +8 -0
- package/src/components/context-menu/context-menu.tsx +2 -2
- package/src/components/data-table/data-table.meta.md +24 -19
- package/src/components/data-table/data-table.stories.tsx +12 -5
- package/src/components/date-picker/date-picker.meta.md +40 -20
- package/src/components/date-picker/date-picker.stories.tsx +1 -1
- package/src/components/descriptions/descriptions.meta.md +23 -14
- package/src/components/descriptions/descriptions.stories.tsx +1 -1
- package/src/components/dialog/dialog.meta.md +25 -12
- package/src/components/dialog/dialog.stories.tsx +1 -1
- package/src/components/dialog/dialog.tsx +1 -1
- package/src/components/drawer/drawer.meta.md +19 -8
- package/src/components/drawer/drawer.stories.tsx +1 -1
- package/src/components/drawer/drawer.tsx +1 -0
- package/src/components/dropdown-menu/dropdown-menu.meta.md +42 -14
- package/src/components/dropdown-menu/dropdown-menu.stories.tsx +8 -0
- package/src/components/dropdown-menu/dropdown-menu.tsx +2 -2
- package/src/components/empty/empty.meta.md +20 -11
- package/src/components/empty/empty.stories.tsx +1 -1
- package/src/components/field/field.meta.md +27 -10
- package/src/components/field/field.stories.tsx +6 -3
- package/src/components/flex/flex.meta.md +23 -14
- package/src/components/flex/flex.stories.tsx +46 -14
- package/src/components/float-button/float-button.meta.md +35 -11
- package/src/components/float-button/float-button.stories.tsx +4 -2
- package/src/components/float-button/float-button.tsx +1 -1
- package/src/components/form/form.meta.md +57 -14
- package/src/components/form/form.stories.tsx +1 -1
- package/src/components/grid/grid.meta.md +31 -6
- package/src/components/grid/grid.stories.tsx +4 -2
- package/src/components/hover-card/hover-card.meta.md +21 -9
- package/src/components/hover-card/hover-card.stories.tsx +6 -2
- package/src/components/image/image.meta.md +24 -15
- package/src/components/image/image.stories.tsx +1 -1
- package/src/components/image/image.tsx +4 -4
- package/src/components/input/demo/addon.tsx +15 -0
- package/src/components/input/demo/basic.tsx +12 -0
- package/src/components/input/demo/clearable.tsx +21 -0
- package/src/components/input/demo/show-count.tsx +18 -0
- package/src/components/input/demo/sizes.tsx +15 -0
- package/src/components/input/demo/with-prefix-suffix.tsx +19 -0
- package/src/components/input/input.meta.md +21 -16
- package/src/components/input/input.stories.tsx +1 -1
- package/src/components/input/input.tsx +51 -47
- package/src/components/input-group/input-group.meta.md +26 -8
- package/src/components/input-group/input-group.stories.tsx +1 -1
- package/src/components/input-group/input-group.tsx +4 -3
- package/src/components/input-number/input-number.meta.md +26 -17
- package/src/components/input-number/input-number.stories.tsx +14 -3
- package/src/components/input-number/input-number.tsx +20 -6
- package/src/components/input-otp/input-otp.meta.md +22 -9
- package/src/components/input-otp/input-otp.stories.tsx +1 -1
- package/src/components/item/item.meta.md +32 -9
- package/src/components/item/item.stories.tsx +5 -2
- package/src/components/kbd/kbd.meta.md +29 -8
- package/src/components/kbd/kbd.stories.tsx +1 -1
- package/src/components/kbd/kbd.tsx +2 -1
- package/src/components/label/label.meta.md +14 -9
- package/src/components/masonry/masonry.meta.md +18 -9
- package/src/components/masonry/masonry.stories.tsx +4 -2
- package/src/components/masonry/masonry.tsx +1 -0
- package/src/components/mentions/mentions.meta.md +28 -19
- package/src/components/mentions/mentions.stories.tsx +1 -1
- package/src/components/mentions/mentions.tsx +2 -1
- package/src/components/menubar/menubar.meta.md +36 -14
- package/src/components/menubar/menubar.stories.tsx +8 -0
- package/src/components/menubar/menubar.tsx +2 -2
- package/src/components/native-select/native-select.meta.md +17 -8
- package/src/components/native-select/native-select.stories.tsx +6 -3
- package/src/components/navigation-menu/navigation-menu.meta.md +25 -11
- package/src/components/navigation-menu/navigation-menu.stories.tsx +11 -11
- package/src/components/navigation-menu/navigation-menu.tsx +3 -2
- package/src/components/notification/notification.meta.md +14 -5
- package/src/components/notification/notification.stories.tsx +5 -3
- package/src/components/notification/notification.tsx +3 -3
- package/src/components/pagination/pagination.meta.md +59 -28
- package/src/components/pagination/pagination.stories.tsx +9 -3
- package/src/components/popconfirm/popconfirm.meta.md +30 -21
- package/src/components/popconfirm/popconfirm.stories.tsx +1 -2
- package/src/components/popconfirm/popconfirm.tsx +1 -1
- package/src/components/popover/popover.meta.md +13 -8
- package/src/components/popover/popover.stories.tsx +1 -1
- package/src/components/progress/progress.meta.md +28 -13
- package/src/components/progress/progress.stories.tsx +1 -1
- package/src/components/progress/progress.tsx +6 -6
- package/src/components/radio-group/radio-group.meta.md +17 -12
- package/src/components/radio-group/radio-group.stories.tsx +1 -1
- package/src/components/rate/rate.meta.md +25 -16
- package/src/components/rate/rate.stories.tsx +11 -3
- package/src/components/rate/rate.tsx +2 -2
- package/src/components/resizable/resizable.meta.md +19 -8
- package/src/components/resizable/resizable.stories.tsx +1 -1
- package/src/components/result/result.meta.md +21 -12
- package/src/components/result/result.stories.tsx +2 -6
- package/src/components/result/result.tsx +3 -3
- package/src/components/scroll-area/scroll-area.meta.md +10 -5
- package/src/components/scroll-area/scroll-area.stories.tsx +8 -0
- package/src/components/scroll-area/scroll-area.tsx +3 -3
- package/src/components/segmented/segmented.meta.md +19 -14
- package/src/components/segmented/segmented.stories.tsx +35 -6
- package/src/components/select/select.meta.md +22 -9
- package/src/components/select/select.stories.tsx +1 -1
- package/src/components/select/select.tsx +2 -2
- package/src/components/separator/separator.meta.md +16 -11
- package/src/components/separator/separator.stories.tsx +1 -1
- package/src/components/sheet/sheet.meta.md +22 -11
- package/src/components/sheet/sheet.stories.tsx +1 -1
- package/src/components/sidebar/sidebar.meta.md +47 -18
- package/src/components/sidebar/sidebar.stories.tsx +10 -5
- package/src/components/skeleton/skeleton.meta.md +33 -10
- package/src/components/skeleton/skeleton.stories.tsx +1 -1
- package/src/components/slider/slider.meta.md +12 -7
- package/src/components/slider/slider.stories.tsx +1 -1
- package/src/components/sonner/sonner.meta.md +8 -3
- package/src/components/sonner/sonner.stories.tsx +13 -8
- package/src/components/space/space.meta.md +22 -13
- package/src/components/space/space.stories.tsx +20 -6
- package/src/components/spinner/spinner.meta.md +23 -10
- package/src/components/spinner/spinner.stories.tsx +1 -1
- package/src/components/statistic/statistic.meta.md +37 -16
- package/src/components/statistic/statistic.stories.tsx +2 -6
- package/src/components/statistic/statistic.tsx +1 -1
- package/src/components/steps/steps.meta.md +21 -12
- package/src/components/steps/steps.stories.tsx +7 -2
- package/src/components/switch/switch.meta.md +16 -11
- package/src/components/switch/switch.stories.tsx +1 -1
- package/src/components/switch/switch.tsx +58 -36
- package/src/components/table/table.meta.md +24 -9
- package/src/components/table/table.stories.tsx +9 -4
- package/src/components/tabs/tabs.meta.md +14 -9
- package/src/components/tabs/tabs.stories.tsx +8 -0
- package/src/components/tag/tag.meta.md +39 -10
- package/src/components/tag/tag.stories.tsx +7 -2
- package/src/components/tag/tag.tsx +3 -3
- package/src/components/textarea/textarea.meta.md +17 -12
- package/src/components/textarea/textarea.stories.tsx +1 -1
- package/src/components/textarea/textarea.tsx +1 -1
- package/src/components/time-picker/time-picker.meta.md +38 -15
- package/src/components/time-picker/time-picker.stories.tsx +44 -6
- package/src/components/time-picker/time-picker.tsx +74 -10
- package/src/components/timeline/timeline.meta.md +20 -11
- package/src/components/timeline/timeline.stories.tsx +14 -4
- package/src/components/timeline/timeline.tsx +3 -2
- package/src/components/toggle/toggle.meta.md +14 -9
- package/src/components/toggle/toggle.stories.tsx +1 -1
- package/src/components/toggle-group/toggle-group.meta.md +16 -11
- package/src/components/toggle-group/toggle-group.stories.tsx +1 -1
- package/src/components/tooltip/tooltip.meta.md +18 -13
- package/src/components/tooltip/tooltip.stories.tsx +1 -1
- package/src/components/tour/tour.meta.md +25 -16
- package/src/components/tour/tour.stories.tsx +1 -1
- package/src/components/tour/tour.tsx +1 -1
- package/src/components/transfer/transfer.meta.md +29 -20
- package/src/components/transfer/transfer.stories.tsx +2 -6
- package/src/components/tree/tree.meta.md +36 -23
- package/src/components/tree/tree.stories.tsx +30 -11
- package/src/components/tree-select/tree-select.meta.md +37 -22
- package/src/components/tree-select/tree-select.stories.tsx +1 -1
- package/src/components/tree-select/tree-select.tsx +1 -1
- package/src/components/typography/typography.meta.md +41 -16
- package/src/components/typography/typography.stories.tsx +4 -8
- package/src/components/typography/typography.tsx +5 -3
- package/src/components/upload/upload.meta.md +31 -22
- package/src/components/upload/upload.stories.tsx +8 -14
- package/src/components/watermark/watermark.meta.md +26 -17
- package/src/components/watermark/watermark.stories.tsx +4 -2
- package/src/components/watermark/watermark.tsx +1 -0
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: timeline
|
|
3
3
|
name: Timeline
|
|
4
|
+
displayName: 时间轴
|
|
4
5
|
type: component
|
|
5
6
|
category: data-display
|
|
6
7
|
since: 0.1.0
|
|
7
|
-
package:
|
|
8
|
+
package: '@teamix-evo/ui'
|
|
8
9
|
---
|
|
9
10
|
|
|
10
|
-
# Timeline
|
|
11
|
+
# Timeline 时间轴
|
|
11
12
|
|
|
12
13
|
时间轴 — antd 独有补足。**等价 antd `Timeline`**。垂直时间流(操作历史 / 物流轨迹 / 进度记录),支持 `left` / `right` / `alternate` 三种布局、5 种圆点颜色、自定义圆点节点、反向、尾部 `pending` 占位(配 Spinner 表示进行中)。
|
|
13
14
|
|
|
@@ -24,27 +25,35 @@ package: "@teamix-evo/ui"
|
|
|
24
25
|
- 数据表 → `Table` / `DataTable`
|
|
25
26
|
- 不带时间属性的事件列表 → `List` / `Item` + `ItemGroup`
|
|
26
27
|
|
|
28
|
+
## Props
|
|
29
|
+
|
|
27
30
|
<!-- auto:props:begin -->
|
|
28
|
-
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
| `
|
|
32
|
-
| `
|
|
33
|
-
| `
|
|
31
|
+
|
|
32
|
+
| 名称 | 类型 | 默认值 | 必填 | 说明 |
|
|
33
|
+
| --------- | ---------------------------------- | -------- | ---- | --------------------------------------------------------------------------------- |
|
|
34
|
+
| `items` | `TimelineItem[]` | – | ✓ | 节点列表。 |
|
|
35
|
+
| `mode` | `'left' \| 'right' \| 'alternate'` | `"left"` | – | 布局模式 — `left`(默认 antd `mode`)左侧时间轴;`right` 右侧;`alternate` 两侧交替。 |
|
|
36
|
+
| `reverse` | `boolean` | `false` | – | 反向(antd `reverse` 并集) — 最新条目排在最上。 |
|
|
37
|
+
| `pending` | `React.ReactNode` | – | – | 在尾部追加一个"未结束"占位(antd `pending` 并集) — 通常配 `<Spinner>` 显示加载中。 |
|
|
38
|
+
|
|
34
39
|
<!-- auto:props:end -->
|
|
35
40
|
|
|
41
|
+
## 依赖
|
|
42
|
+
|
|
36
43
|
<!-- auto:deps:begin -->
|
|
44
|
+
|
|
37
45
|
### 同库依赖
|
|
38
46
|
|
|
39
47
|
> `teamix-evo ui add timeline` 时,以下 entry 会被自动连带安装(无需手动 add)。
|
|
40
48
|
|
|
41
|
-
| Entry | 类型 | 描述
|
|
42
|
-
|
|
|
43
|
-
| `cn`
|
|
49
|
+
| Entry | 类型 | 描述 |
|
|
50
|
+
| ----- | ---- | -------------------------------------------------- |
|
|
51
|
+
| `cn` | util | Tailwind className 合并工具(clsx + tailwind-merge) |
|
|
44
52
|
|
|
45
53
|
### npm 依赖
|
|
46
54
|
|
|
47
55
|
_无 — 本组件不依赖任何 npm 包。_
|
|
56
|
+
|
|
48
57
|
<!-- auto:deps:end -->
|
|
49
58
|
|
|
50
59
|
## AI 生成纪律
|
|
@@ -11,7 +11,7 @@ const meta: Meta<typeof Timeline> = {
|
|
|
11
11
|
docs: {
|
|
12
12
|
description: {
|
|
13
13
|
component:
|
|
14
|
-
'时间轴 —
|
|
14
|
+
'时间轴 — 垂直时间流(操作历史 / 物流轨迹 / 进度记录)。3 种布局(left / right / alternate)+ 5 种圆点语义色 + 自定义 dot + pending 进行中占位。等价 antd `Timeline`。',
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
17
|
},
|
|
@@ -61,8 +61,14 @@ export const CustomDots: Story = {
|
|
|
61
61
|
<div className="w-96">
|
|
62
62
|
<Timeline
|
|
63
63
|
items={[
|
|
64
|
-
{
|
|
65
|
-
|
|
64
|
+
{
|
|
65
|
+
children: '部署到 staging 成功',
|
|
66
|
+
dot: <CheckCircle2 className="size-3 text-emerald-500" />,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
children: 'staging 验证通过',
|
|
70
|
+
dot: <CheckCircle2 className="size-3 text-emerald-500" />,
|
|
71
|
+
},
|
|
66
72
|
{ children: '回滚到 v1.2', color: 'error' },
|
|
67
73
|
]}
|
|
68
74
|
/>
|
|
@@ -94,7 +100,11 @@ export const Reverse: Story = {
|
|
|
94
100
|
<Timeline
|
|
95
101
|
reverse
|
|
96
102
|
items={[
|
|
97
|
-
{
|
|
103
|
+
{
|
|
104
|
+
children: '订单已创建',
|
|
105
|
+
label: '2026-05-01 10:00',
|
|
106
|
+
color: 'default',
|
|
107
|
+
},
|
|
98
108
|
{ children: '已发货', label: '2026-05-02 14:30', color: 'primary' },
|
|
99
109
|
{ children: '已签收', label: '2026-05-04 09:15', color: 'success' },
|
|
100
110
|
]}
|
|
@@ -12,8 +12,8 @@ export type TimelineDotColor =
|
|
|
12
12
|
const dotColorMap: Record<TimelineDotColor, string> = {
|
|
13
13
|
default: 'bg-muted-foreground',
|
|
14
14
|
primary: 'bg-primary',
|
|
15
|
-
success: 'bg-
|
|
16
|
-
warning: 'bg-
|
|
15
|
+
success: 'bg-success',
|
|
16
|
+
warning: 'bg-warning',
|
|
17
17
|
error: 'bg-destructive',
|
|
18
18
|
};
|
|
19
19
|
|
|
@@ -107,6 +107,7 @@ const Timeline = React.forwardRef<HTMLOListElement, TimelineProps>(
|
|
|
107
107
|
{!isLast ? (
|
|
108
108
|
<span
|
|
109
109
|
aria-hidden="true"
|
|
110
|
+
// eslint-disable-next-line teamix-evo/no-arbitrary-tw-value -- timeline connector extends to next item; calc(100% + 1.5rem) bridges the inter-item gap, not tokenizable.
|
|
110
111
|
className="absolute top-3 h-[calc(100%+1.5rem)] w-px bg-border"
|
|
111
112
|
/>
|
|
112
113
|
) : null}
|
|
@@ -4,10 +4,11 @@ name: Toggle
|
|
|
4
4
|
type: component
|
|
5
5
|
category: form
|
|
6
6
|
since: 0.1.0
|
|
7
|
-
package:
|
|
7
|
+
package: '@teamix-evo/ui'
|
|
8
|
+
displayName: 切换按钮
|
|
8
9
|
---
|
|
9
10
|
|
|
10
|
-
# Toggle
|
|
11
|
+
# Toggle 切换按钮
|
|
11
12
|
|
|
12
13
|
二元状态按钮 — Radix Toggle 包装。**shadcn-only**(antd 无独立对标,与 Switch 形态不同)。
|
|
13
14
|
|
|
@@ -30,10 +31,12 @@ package: "@teamix-evo/ui"
|
|
|
30
31
|
> 以下表格由 `pnpm --filter @teamix-evo/ui gen:meta` 自动生成。
|
|
31
32
|
|
|
32
33
|
<!-- auto:props:begin -->
|
|
33
|
-
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
| `
|
|
34
|
+
|
|
35
|
+
| 名称 | 类型 | 默认值 | 必填 | 说明 |
|
|
36
|
+
| --------- | --------------------------- | ----------- | ---- | ---------- |
|
|
37
|
+
| `variant` | `'default' \| 'outline'` | `"default"` | – | 视觉风格。 |
|
|
38
|
+
| `size` | `'sm' \| 'default' \| 'lg'` | `"default"` | – | 尺寸。 |
|
|
39
|
+
|
|
37
40
|
<!-- auto:props:end -->
|
|
38
41
|
|
|
39
42
|
## 依赖
|
|
@@ -41,13 +44,14 @@ package: "@teamix-evo/ui"
|
|
|
41
44
|
> 以下表格由 `pnpm --filter @teamix-evo/ui gen:meta` 自动生成,数据源是 [`manifest.json`](../../../manifest.json)。**手工编辑 marker 之间的内容会在下次生成时被覆盖**。
|
|
42
45
|
|
|
43
46
|
<!-- auto:deps:begin -->
|
|
47
|
+
|
|
44
48
|
### 同库依赖
|
|
45
49
|
|
|
46
50
|
> `teamix-evo ui add toggle` 时,以下 entry 会被自动连带安装(无需手动 add)。
|
|
47
51
|
|
|
48
|
-
| Entry | 类型 | 描述
|
|
49
|
-
|
|
|
50
|
-
| `cn`
|
|
52
|
+
| Entry | 类型 | 描述 |
|
|
53
|
+
| ----- | ---- | -------------------------------------------------- |
|
|
54
|
+
| `cn` | util | Tailwind className 合并工具(clsx + tailwind-merge) |
|
|
51
55
|
|
|
52
56
|
### npm 依赖
|
|
53
57
|
|
|
@@ -56,6 +60,7 @@ package: "@teamix-evo/ui"
|
|
|
56
60
|
```bash
|
|
57
61
|
pnpm add @radix-ui/react-toggle@^1.1.0 class-variance-authority@^0.7.0
|
|
58
62
|
```
|
|
63
|
+
|
|
59
64
|
<!-- auto:deps:end -->
|
|
60
65
|
|
|
61
66
|
> 透传所有 Radix Toggle.Root props(`pressed` / `defaultPressed` / `onPressedChange` / `disabled` 等)。
|
|
@@ -10,7 +10,7 @@ const meta: Meta<typeof Toggle> = {
|
|
|
10
10
|
docs: {
|
|
11
11
|
description: {
|
|
12
12
|
component:
|
|
13
|
-
'切换按钮 — 二状态 (开 / 关) 按钮,常用于富文本编辑器工具栏 (加粗 / 斜体 / 下划线) 等场景。Radix Toggle 实现, shadcn 专有(antd 未提供对应原子组件,antd 逻辑上以 Radio.Button + Switch 组合表达)。支持 `variant`(default / outline)与 `size`(sm / default / lg
|
|
13
|
+
'切换按钮 — 二状态 (开 / 关) 按钮,常用于富文本编辑器工具栏 (加粗 / 斜体 / 下划线) 等场景。Radix Toggle 实现, shadcn 专有(antd 未提供对应原子组件,antd 逻辑上以 Radio.Button + Switch 组合表达)。支持 `variant`(default / outline)与 `size`(sm / default / lg)。',
|
|
14
14
|
},
|
|
15
15
|
},
|
|
16
16
|
},
|
|
@@ -4,10 +4,11 @@ name: ToggleGroup
|
|
|
4
4
|
type: component
|
|
5
5
|
category: form
|
|
6
6
|
since: 0.1.0
|
|
7
|
-
package:
|
|
7
|
+
package: '@teamix-evo/ui'
|
|
8
|
+
displayName: 切换按钮组
|
|
8
9
|
---
|
|
9
10
|
|
|
10
|
-
# ToggleGroup
|
|
11
|
+
# ToggleGroup 切换按钮组
|
|
11
12
|
|
|
12
13
|
切换按钮组 — Radix ToggleGroup,**单选(`type="single"`)+ 多选(`type="multiple"`)**。复用 Toggle 的 cva variants(default / outline)与 size。
|
|
13
14
|
|
|
@@ -28,11 +29,13 @@ package: "@teamix-evo/ui"
|
|
|
28
29
|
> 以下表格由 `pnpm --filter @teamix-evo/ui gen:meta` 自动生成。
|
|
29
30
|
|
|
30
31
|
<!-- auto:props:begin -->
|
|
31
|
-
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
32
|
+
|
|
33
|
+
| 名称 | 类型 | 默认值 | 必填 | 说明 |
|
|
34
|
+
| ----------- | --------------------------- | ----------- | ---- | ------------------------------------------------------------- |
|
|
35
|
+
| `variant` | `'default' \| 'outline'` | `"default"` | – | 视觉风格,与同源的 [`Toggle`](../toggle/toggle.tsx) 保持一致。 |
|
|
36
|
+
| `size` | `'sm' \| 'default' \| 'lg'` | `"default"` | – | 尺寸,与同源的 [`Toggle`](../toggle/toggle.tsx) 保持一致。 |
|
|
37
|
+
| `className` | `string` | – | – | 容器 className,会与默认布局类合并。 |
|
|
38
|
+
|
|
36
39
|
<!-- auto:props:end -->
|
|
37
40
|
|
|
38
41
|
## 依赖
|
|
@@ -40,14 +43,15 @@ package: "@teamix-evo/ui"
|
|
|
40
43
|
> 以下表格由 `pnpm --filter @teamix-evo/ui gen:meta` 自动生成,数据源是 [`manifest.json`](../../../manifest.json)。**手工编辑 marker 之间的内容会在下次生成时被覆盖**。
|
|
41
44
|
|
|
42
45
|
<!-- auto:deps:begin -->
|
|
46
|
+
|
|
43
47
|
### 同库依赖
|
|
44
48
|
|
|
45
49
|
> `teamix-evo ui add toggle-group` 时,以下 entry 会被自动连带安装(无需手动 add)。
|
|
46
50
|
|
|
47
|
-
| Entry
|
|
48
|
-
|
|
|
49
|
-
| `cn`
|
|
50
|
-
| `toggle` | component | 二元状态按钮 — Radix Toggle 包装,工具栏图标级开关
|
|
51
|
+
| Entry | 类型 | 描述 |
|
|
52
|
+
| -------- | --------- | -------------------------------------------------- |
|
|
53
|
+
| `cn` | util | Tailwind className 合并工具(clsx + tailwind-merge) |
|
|
54
|
+
| `toggle` | component | 二元状态按钮 — Radix Toggle 包装,工具栏图标级开关 |
|
|
51
55
|
|
|
52
56
|
### npm 依赖
|
|
53
57
|
|
|
@@ -56,6 +60,7 @@ package: "@teamix-evo/ui"
|
|
|
56
60
|
```bash
|
|
57
61
|
pnpm add @radix-ui/react-toggle-group@^1.1.0 class-variance-authority@^0.7.0
|
|
58
62
|
```
|
|
63
|
+
|
|
59
64
|
<!-- auto:deps:end -->
|
|
60
65
|
|
|
61
66
|
> 透传 Radix ToggleGroup.Root 所有 props(`type` / `value` / `defaultValue` / `onValueChange` / `disabled` / `loop` / `orientation` 等)。
|
|
@@ -18,7 +18,7 @@ const meta: Meta<typeof ToggleGroup> = {
|
|
|
18
18
|
docs: {
|
|
19
19
|
description: {
|
|
20
20
|
component:
|
|
21
|
-
'切换按钮组 — 一组二状态按钮的集合,可选单选 (`type="single"`) 或多选 (`type="multiple"`),常用于对齐方式 / 字体样式等工具栏场景。Radix ToggleGroup 实现,shadcn 专有(antd 以 `Radio.Group` + `Radio.Button` 表达单选、以菜单多选表达多选);`variant` / `size` 与 `Toggle`
|
|
21
|
+
'切换按钮组 — 一组二状态按钮的集合,可选单选 (`type="single"`) 或多选 (`type="multiple"`),常用于对齐方式 / 字体样式等工具栏场景。Radix ToggleGroup 实现,shadcn 专有(antd 以 `Radio.Group` + `Radio.Button` 表达单选、以菜单多选表达多选);`variant` / `size` 与 `Toggle` 保持一致。',
|
|
22
22
|
},
|
|
23
23
|
},
|
|
24
24
|
},
|
|
@@ -4,10 +4,11 @@ name: Tooltip
|
|
|
4
4
|
type: component
|
|
5
5
|
category: feedback
|
|
6
6
|
since: 0.1.0
|
|
7
|
-
package:
|
|
7
|
+
package: '@teamix-evo/ui'
|
|
8
|
+
displayName: 文字提示
|
|
8
9
|
---
|
|
9
10
|
|
|
10
|
-
# Tooltip
|
|
11
|
+
# Tooltip 文字提示
|
|
11
12
|
|
|
12
13
|
文字提示气泡 — Radix Tooltip + antd `arrow / placement(side)` 并集。
|
|
13
14
|
**两种用法**:`<Tooltip title="...">{trigger}</Tooltip>` 一行包装,或拆分原子组件(`TooltipRoot/Trigger/Content`)精细控制。
|
|
@@ -31,14 +32,16 @@ package: "@teamix-evo/ui"
|
|
|
31
32
|
> 以下表格由 `pnpm --filter @teamix-evo/ui gen:meta` 自动生成。
|
|
32
33
|
|
|
33
34
|
<!-- auto:props:begin -->
|
|
34
|
-
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
| `
|
|
38
|
-
| `
|
|
39
|
-
| `
|
|
40
|
-
| `
|
|
41
|
-
| `
|
|
35
|
+
|
|
36
|
+
| 名称 | 类型 | 默认值 | 必填 | 说明 |
|
|
37
|
+
| --------------- | ---------------------------------------- | ------- | ---- | -------------------------------------------------------------- |
|
|
38
|
+
| `children` | `React.ReactElement` | – | ✓ | 触发器(单个 ReactElement,asChild 透传)。 |
|
|
39
|
+
| `title` | `React.ReactNode` | – | ✓ | 提示内容。 |
|
|
40
|
+
| `side` | `'top' \| 'right' \| 'bottom' \| 'left'` | `"top"` | – | 弹出方向。 |
|
|
41
|
+
| `arrow` | `boolean` | `true` | – | 是否显示三角形箭头。 |
|
|
42
|
+
| `delayDuration` | `number` | – | – | 显示延迟(ms),默认沿用 Provider 的 delayDuration。 |
|
|
43
|
+
| `withProvider` | `boolean` | – | – | 强制传给 Provider 的 delayDuration(便于不挂 Provider 的场景)。 |
|
|
44
|
+
|
|
42
45
|
<!-- auto:props:end -->
|
|
43
46
|
|
|
44
47
|
## 依赖
|
|
@@ -46,13 +49,14 @@ package: "@teamix-evo/ui"
|
|
|
46
49
|
> 以下表格由 `pnpm --filter @teamix-evo/ui gen:meta` 自动生成,数据源是 [`manifest.json`](../../../manifest.json)。**手工编辑 marker 之间的内容会在下次生成时被覆盖**。
|
|
47
50
|
|
|
48
51
|
<!-- auto:deps:begin -->
|
|
52
|
+
|
|
49
53
|
### 同库依赖
|
|
50
54
|
|
|
51
55
|
> `teamix-evo ui add tooltip` 时,以下 entry 会被自动连带安装(无需手动 add)。
|
|
52
56
|
|
|
53
|
-
| Entry | 类型 | 描述
|
|
54
|
-
|
|
|
55
|
-
| `cn`
|
|
57
|
+
| Entry | 类型 | 描述 |
|
|
58
|
+
| ----- | ---- | -------------------------------------------------- |
|
|
59
|
+
| `cn` | util | Tailwind className 合并工具(clsx + tailwind-merge) |
|
|
56
60
|
|
|
57
61
|
### npm 依赖
|
|
58
62
|
|
|
@@ -61,6 +65,7 @@ package: "@teamix-evo/ui"
|
|
|
61
65
|
```bash
|
|
62
66
|
pnpm add @radix-ui/react-tooltip@^1.1.0
|
|
63
67
|
```
|
|
68
|
+
|
|
64
69
|
<!-- auto:deps:end -->
|
|
65
70
|
|
|
66
71
|
> 子组件 `TooltipProvider / TooltipRoot / TooltipTrigger / TooltipContent` 用于精细控制,见 [`tooltip.tsx`](./tooltip.tsx)。
|
|
@@ -11,7 +11,7 @@ const meta: Meta<typeof Tooltip> = {
|
|
|
11
11
|
docs: {
|
|
12
12
|
description: {
|
|
13
13
|
component:
|
|
14
|
-
'文字气泡提示 — 鼠标悬停或键盘聚焦元素时弹出的简短提示。Radix Tooltip 实现 + antd Tooltip 的并集能力:需 `TooltipProvider` 包裹(可设 `delayDuration`),通过 `side` / `arrow` / `title` 调整方位与尖角;适用于纯文本辅助说明,丰富交互请选 `Popover
|
|
14
|
+
'文字气泡提示 — 鼠标悬停或键盘聚焦元素时弹出的简短提示。Radix Tooltip 实现 + antd Tooltip 的并集能力:需 `TooltipProvider` 包裹(可设 `delayDuration`),通过 `side` / `arrow` / `title` 调整方位与尖角;适用于纯文本辅助说明,丰富交互请选 `Popover`。',
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
17
|
},
|
|
@@ -4,10 +4,11 @@ name: Tour
|
|
|
4
4
|
type: component
|
|
5
5
|
category: feedback
|
|
6
6
|
since: 0.1.0
|
|
7
|
-
package:
|
|
7
|
+
package: '@teamix-evo/ui'
|
|
8
|
+
displayName: 新手引导
|
|
8
9
|
---
|
|
9
10
|
|
|
10
|
-
# Tour
|
|
11
|
+
# Tour 新手引导
|
|
11
12
|
|
|
12
13
|
新手引导 — antd 独有补足。**等价 antd `Tour`**(v5.0+)。多步骤引导(spotlight + 卡片 + 步进按钮 + 可关闭),帮助新用户首次进入页面时了解关键功能位置。
|
|
13
14
|
|
|
@@ -24,28 +25,35 @@ package: "@teamix-evo/ui"
|
|
|
24
25
|
- 表单字段说明 → `FieldDescription`
|
|
25
26
|
- 错误反馈 → `Alert` / `notification`
|
|
26
27
|
|
|
28
|
+
## Props
|
|
29
|
+
|
|
27
30
|
<!-- auto:props:begin -->
|
|
28
|
-
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
| `
|
|
32
|
-
| `
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `
|
|
37
|
-
| `
|
|
38
|
-
| `
|
|
31
|
+
|
|
32
|
+
| 名称 | 类型 | 默认值 | 必填 | 说明 |
|
|
33
|
+
| -------------- | --------------------------- | ------- | ---- | -------------------------------------- |
|
|
34
|
+
| `steps` | `TourStep[]` | – | ✓ | 步骤列表(antd `steps` 并集)。 |
|
|
35
|
+
| `open` | `boolean` | – | – | 受控 open 状态。 |
|
|
36
|
+
| `defaultOpen` | `boolean` | `false` | – | uncontrolled 初值。 |
|
|
37
|
+
| `onOpenChange` | `(open: boolean) => void` | – | – | open 变化回调。 |
|
|
38
|
+
| `current` | `number` | – | – | 当前步骤索引(受控)。 |
|
|
39
|
+
| `onChange` | `(current: number) => void` | – | – | 步骤变化回调。 |
|
|
40
|
+
| `onFinish` | `() => void` | – | – | 完成时回调(走到最后一步且点击"完成")。 |
|
|
41
|
+
| `onClose` | `() => void` | – | – | 关闭回调(任意时刻点 X / mask)。 |
|
|
42
|
+
| `mask` | `boolean` | `true` | – | 是否显示遮罩(antd `mask` 并集)。 |
|
|
43
|
+
|
|
39
44
|
<!-- auto:props:end -->
|
|
40
45
|
|
|
46
|
+
## 依赖
|
|
47
|
+
|
|
41
48
|
<!-- auto:deps:begin -->
|
|
49
|
+
|
|
42
50
|
### 同库依赖
|
|
43
51
|
|
|
44
52
|
> `teamix-evo ui add tour` 时,以下 entry 会被自动连带安装(无需手动 add)。
|
|
45
53
|
|
|
46
|
-
| Entry
|
|
47
|
-
|
|
|
48
|
-
| `cn`
|
|
54
|
+
| Entry | 类型 | 描述 |
|
|
55
|
+
| -------- | --------- | --------------------------------------------------------------------------------------- |
|
|
56
|
+
| `cn` | util | Tailwind className 合并工具(clsx + tailwind-merge) |
|
|
49
57
|
| `button` | component | 通用按钮 — shadcn 实现 + antd 功能扩展(loading / icon / shape / block / dashed variant) |
|
|
50
58
|
|
|
51
59
|
### npm 依赖
|
|
@@ -55,6 +63,7 @@ package: "@teamix-evo/ui"
|
|
|
55
63
|
```bash
|
|
56
64
|
pnpm add lucide-react@^0.460.0
|
|
57
65
|
```
|
|
66
|
+
|
|
58
67
|
<!-- auto:deps:end -->
|
|
59
68
|
|
|
60
69
|
## AI 生成纪律
|
|
@@ -11,7 +11,7 @@ const meta: Meta<typeof Tour> = {
|
|
|
11
11
|
docs: {
|
|
12
12
|
description: {
|
|
13
13
|
component:
|
|
14
|
-
'新手引导 — 多步骤 spotlight + 卡片 + 步进按钮。帮助新用户首次进入页面时了解关键功能位置。等价 antd `Tour
|
|
14
|
+
'新手引导 — 多步骤 spotlight + 卡片 + 步进按钮。帮助新用户首次进入页面时了解关键功能位置。等价 antd `Tour`(v5.0+)。业务侧自管“是否首次访问”。',
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
17
|
},
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: transfer
|
|
3
3
|
name: Transfer
|
|
4
|
+
displayName: 穿梭框
|
|
4
5
|
type: component
|
|
5
6
|
category: data-display
|
|
6
7
|
since: 0.1.0
|
|
7
|
-
package:
|
|
8
|
+
package: '@teamix-evo/ui'
|
|
8
9
|
---
|
|
9
10
|
|
|
10
|
-
# Transfer
|
|
11
|
+
# Transfer 穿梭框
|
|
11
12
|
|
|
12
13
|
穿梭框 — antd 独有补足。**双侧勾选 + 移动**的批量分配交互(权限分配、字段映射、收件人选择)。受控 `targetKeys` + `onChange` 单一真值,内置全选 / 半选 / 可选搜索 / 禁用项。
|
|
13
14
|
|
|
@@ -22,31 +23,38 @@ package: "@teamix-evo/ui"
|
|
|
22
23
|
- 单纯多选 → `Select multiple` / `CheckboxGroup`(轻量)
|
|
23
24
|
- 选项 > 500 — 本组件未做虚拟化,建议改用 `Table` + 行选 + bulk action 模式
|
|
24
25
|
|
|
26
|
+
## Props
|
|
27
|
+
|
|
25
28
|
<!-- auto:props:begin -->
|
|
26
|
-
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
| `
|
|
30
|
-
| `
|
|
31
|
-
| `
|
|
32
|
-
| `
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `
|
|
29
|
+
|
|
30
|
+
| 名称 | 类型 | 默认值 | 必填 | 说明 |
|
|
31
|
+
| ------------ | ----------------------------------------- | ---------------- | ---- | ------------------------------------------------------------ |
|
|
32
|
+
| `dataSource` | `TransferItem[]` | – | ✓ | 全部数据源(左+右合集)。 |
|
|
33
|
+
| `targetKeys` | `string[]` | – | ✓ | 受控:已"穿梭到右侧"的 key 集合(antd `targetKeys` 并集)。 |
|
|
34
|
+
| `onChange` | `(next: string[]) => void` | – | – | 右侧集合变化回调。 |
|
|
35
|
+
| `titles` | `[React.ReactNode, React.ReactNode]` | `["源", "目标"]` | – | 两侧标题(antd `titles` 并集) — `[左, 右]`。 |
|
|
36
|
+
| `showSearch` | `boolean` | `false` | – | 启用搜索(antd `showSearch` 并集) — 两侧各一个输入框。 |
|
|
37
|
+
| `render` | `(item: TransferItem) => React.ReactNode` | – | – | 自定义渲染单项(antd `render` 并集) — 默认渲染 `item.title`。 |
|
|
38
|
+
| `disabled` | `boolean` | – | – | 整体禁用。 |
|
|
39
|
+
| `listHeight` | `number` | `280` | – | 单侧高度(像素)。 |
|
|
40
|
+
| `className` | `string` | – | – | – |
|
|
41
|
+
|
|
37
42
|
<!-- auto:props:end -->
|
|
38
43
|
|
|
44
|
+
## 依赖
|
|
45
|
+
|
|
39
46
|
<!-- auto:deps:begin -->
|
|
47
|
+
|
|
40
48
|
### 同库依赖
|
|
41
49
|
|
|
42
50
|
> `teamix-evo ui add transfer` 时,以下 entry 会被自动连带安装(无需手动 add)。
|
|
43
51
|
|
|
44
|
-
| Entry
|
|
45
|
-
|
|
|
46
|
-
| `cn`
|
|
47
|
-
| `button`
|
|
48
|
-
| `checkbox` | component | 复选框 — Radix Checkbox(原生 indeterminate)+ antd Checkbox.Group(options 数组驱动)
|
|
49
|
-
| `input`
|
|
52
|
+
| Entry | 类型 | 描述 |
|
|
53
|
+
| ---------- | --------- | ----------------------------------------------------------------------------------------------- |
|
|
54
|
+
| `cn` | util | Tailwind className 合并工具(clsx + tailwind-merge) |
|
|
55
|
+
| `button` | component | 通用按钮 — shadcn 实现 + antd 功能扩展(loading / icon / shape / block / dashed variant) |
|
|
56
|
+
| `checkbox` | component | 复选框 — Radix Checkbox(原生 indeterminate)+ antd Checkbox.Group(options 数组驱动) |
|
|
57
|
+
| `input` | component | 文本输入 — shadcn 简洁基底 + antd prefix/suffix/clearable/showCount/addonBefore/addonAfter/size |
|
|
50
58
|
|
|
51
59
|
### npm 依赖
|
|
52
60
|
|
|
@@ -55,6 +63,7 @@ package: "@teamix-evo/ui"
|
|
|
55
63
|
```bash
|
|
56
64
|
pnpm add lucide-react@^0.460.0
|
|
57
65
|
```
|
|
66
|
+
|
|
58
67
|
<!-- auto:deps:end -->
|
|
59
68
|
|
|
60
69
|
## AI 生成纪律
|
|
@@ -86,5 +95,5 @@ const [target, setTarget] = React.useState<string[]>(['2', '4']);
|
|
|
86
95
|
onChange={setTarget}
|
|
87
96
|
titles={['全部成员', '已授权']}
|
|
88
97
|
showSearch
|
|
89
|
-
|
|
98
|
+
/>;
|
|
90
99
|
```
|
|
@@ -10,7 +10,7 @@ const meta: Meta<typeof Transfer> = {
|
|
|
10
10
|
docs: {
|
|
11
11
|
description: {
|
|
12
12
|
component:
|
|
13
|
-
'穿梭框 — 双侧勾选 +
|
|
13
|
+
'穿梭框 — 双侧勾选 + 移动的批量分配交互(权限分配、字段映射、收件人选择)。受控 targetKeys 单一真值,内置全选 / 半选 / 可选搜索 / 禁用项跳过。等价 antd `Transfer`。',
|
|
14
14
|
},
|
|
15
15
|
},
|
|
16
16
|
},
|
|
@@ -30,11 +30,7 @@ export const Playground: Story = {
|
|
|
30
30
|
render: () => {
|
|
31
31
|
const [target, setTarget] = React.useState<string[]>(['2', '4']);
|
|
32
32
|
return (
|
|
33
|
-
<Transfer
|
|
34
|
-
dataSource={data}
|
|
35
|
-
targetKeys={target}
|
|
36
|
-
onChange={setTarget}
|
|
37
|
-
/>
|
|
33
|
+
<Transfer dataSource={data} targetKeys={target} onChange={setTarget} />
|
|
38
34
|
);
|
|
39
35
|
},
|
|
40
36
|
};
|