@teamix-evo/ui 0.1.1

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.
Files changed (270) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +336 -0
  3. package/_data.json +12 -0
  4. package/manifest.json +1688 -0
  5. package/package.json +90 -0
  6. package/src/components/accordion/accordion.meta.md +87 -0
  7. package/src/components/accordion/accordion.stories.tsx +67 -0
  8. package/src/components/accordion/accordion.tsx +58 -0
  9. package/src/components/affix/affix.meta.md +80 -0
  10. package/src/components/affix/affix.stories.tsx +57 -0
  11. package/src/components/affix/affix.tsx +97 -0
  12. package/src/components/alert/alert.meta.md +101 -0
  13. package/src/components/alert/alert.stories.tsx +93 -0
  14. package/src/components/alert/alert.tsx +132 -0
  15. package/src/components/alert-dialog/alert-dialog.meta.md +107 -0
  16. package/src/components/alert-dialog/alert-dialog.stories.tsx +81 -0
  17. package/src/components/alert-dialog/alert-dialog.tsx +136 -0
  18. package/src/components/anchor/anchor.meta.md +87 -0
  19. package/src/components/anchor/anchor.stories.tsx +74 -0
  20. package/src/components/anchor/anchor.tsx +130 -0
  21. package/src/components/app/app.meta.md +86 -0
  22. package/src/components/app/app.stories.tsx +62 -0
  23. package/src/components/app/app.tsx +58 -0
  24. package/src/components/aspect-ratio/aspect-ratio.meta.md +81 -0
  25. package/src/components/aspect-ratio/aspect-ratio.stories.tsx +59 -0
  26. package/src/components/aspect-ratio/aspect-ratio.tsx +22 -0
  27. package/src/components/auto-complete/auto-complete.meta.md +102 -0
  28. package/src/components/auto-complete/auto-complete.stories.tsx +93 -0
  29. package/src/components/auto-complete/auto-complete.tsx +205 -0
  30. package/src/components/avatar/avatar.meta.md +94 -0
  31. package/src/components/avatar/avatar.stories.tsx +80 -0
  32. package/src/components/avatar/avatar.tsx +126 -0
  33. package/src/components/badge/badge.meta.md +119 -0
  34. package/src/components/badge/badge.stories.tsx +153 -0
  35. package/src/components/badge/badge.tsx +210 -0
  36. package/src/components/breadcrumb/breadcrumb.meta.md +107 -0
  37. package/src/components/breadcrumb/breadcrumb.stories.tsx +84 -0
  38. package/src/components/breadcrumb/breadcrumb.tsx +122 -0
  39. package/src/components/button/button.meta.md +98 -0
  40. package/src/components/button/button.stories.tsx +235 -0
  41. package/src/components/button/button.tsx +160 -0
  42. package/src/components/button-group/button-group.meta.md +92 -0
  43. package/src/components/button-group/button-group.stories.tsx +90 -0
  44. package/src/components/button-group/button-group.tsx +75 -0
  45. package/src/components/calendar/calendar.meta.md +118 -0
  46. package/src/components/calendar/calendar.stories.tsx +68 -0
  47. package/src/components/calendar/calendar.tsx +107 -0
  48. package/src/components/card/card.meta.md +117 -0
  49. package/src/components/card/card.stories.tsx +112 -0
  50. package/src/components/card/card.tsx +222 -0
  51. package/src/components/carousel/carousel.meta.md +117 -0
  52. package/src/components/carousel/carousel.stories.tsx +84 -0
  53. package/src/components/carousel/carousel.tsx +224 -0
  54. package/src/components/cascader/cascader.meta.md +110 -0
  55. package/src/components/cascader/cascader.stories.tsx +108 -0
  56. package/src/components/cascader/cascader.tsx +198 -0
  57. package/src/components/checkbox/checkbox.meta.md +99 -0
  58. package/src/components/checkbox/checkbox.stories.tsx +130 -0
  59. package/src/components/checkbox/checkbox.tsx +125 -0
  60. package/src/components/collapsible/collapsible.meta.md +80 -0
  61. package/src/components/collapsible/collapsible.stories.tsx +35 -0
  62. package/src/components/collapsible/collapsible.tsx +18 -0
  63. package/src/components/color-picker/color-picker.meta.md +84 -0
  64. package/src/components/color-picker/color-picker.stories.tsx +80 -0
  65. package/src/components/color-picker/color-picker.tsx +160 -0
  66. package/src/components/combobox/combobox.meta.md +93 -0
  67. package/src/components/combobox/combobox.stories.tsx +55 -0
  68. package/src/components/combobox/combobox.tsx +130 -0
  69. package/src/components/command/command.meta.md +104 -0
  70. package/src/components/command/command.stories.tsx +59 -0
  71. package/src/components/command/command.tsx +147 -0
  72. package/src/components/context-menu/context-menu.meta.md +90 -0
  73. package/src/components/context-menu/context-menu.stories.tsx +46 -0
  74. package/src/components/context-menu/context-menu.tsx +191 -0
  75. package/src/components/data-table/data-table.meta.md +149 -0
  76. package/src/components/data-table/data-table.stories.tsx +125 -0
  77. package/src/components/data-table/data-table.tsx +185 -0
  78. package/src/components/date-picker/date-picker.meta.md +106 -0
  79. package/src/components/date-picker/date-picker.stories.tsx +58 -0
  80. package/src/components/date-picker/date-picker.tsx +156 -0
  81. package/src/components/descriptions/descriptions.meta.md +78 -0
  82. package/src/components/descriptions/descriptions.stories.tsx +60 -0
  83. package/src/components/descriptions/descriptions.tsx +129 -0
  84. package/src/components/dialog/dialog.meta.md +105 -0
  85. package/src/components/dialog/dialog.stories.tsx +93 -0
  86. package/src/components/dialog/dialog.tsx +128 -0
  87. package/src/components/drawer/drawer.meta.md +96 -0
  88. package/src/components/drawer/drawer.stories.tsx +54 -0
  89. package/src/components/drawer/drawer.tsx +114 -0
  90. package/src/components/dropdown-menu/dropdown-menu.meta.md +103 -0
  91. package/src/components/dropdown-menu/dropdown-menu.stories.tsx +112 -0
  92. package/src/components/dropdown-menu/dropdown-menu.tsx +195 -0
  93. package/src/components/empty/empty.meta.md +81 -0
  94. package/src/components/empty/empty.stories.tsx +46 -0
  95. package/src/components/empty/empty.tsx +47 -0
  96. package/src/components/field/field.meta.md +116 -0
  97. package/src/components/field/field.stories.tsx +117 -0
  98. package/src/components/field/field.tsx +164 -0
  99. package/src/components/flex/flex.meta.md +94 -0
  100. package/src/components/flex/flex.stories.tsx +112 -0
  101. package/src/components/flex/flex.tsx +122 -0
  102. package/src/components/float-button/float-button.meta.md +87 -0
  103. package/src/components/float-button/float-button.stories.tsx +78 -0
  104. package/src/components/float-button/float-button.tsx +143 -0
  105. package/src/components/form/form.meta.md +131 -0
  106. package/src/components/form/form.stories.tsx +122 -0
  107. package/src/components/form/form.tsx +194 -0
  108. package/src/components/grid/grid.meta.md +87 -0
  109. package/src/components/grid/grid.stories.tsx +99 -0
  110. package/src/components/grid/grid.tsx +130 -0
  111. package/src/components/hover-card/hover-card.meta.md +92 -0
  112. package/src/components/hover-card/hover-card.stories.tsx +68 -0
  113. package/src/components/hover-card/hover-card.tsx +29 -0
  114. package/src/components/image/image.meta.md +94 -0
  115. package/src/components/image/image.stories.tsx +55 -0
  116. package/src/components/image/image.tsx +138 -0
  117. package/src/components/input/input.meta.md +109 -0
  118. package/src/components/input/input.stories.tsx +117 -0
  119. package/src/components/input/input.tsx +213 -0
  120. package/src/components/input-group/input-group.meta.md +92 -0
  121. package/src/components/input-group/input-group.stories.tsx +88 -0
  122. package/src/components/input-group/input-group.tsx +107 -0
  123. package/src/components/input-number/input-number.meta.md +91 -0
  124. package/src/components/input-number/input-number.stories.tsx +87 -0
  125. package/src/components/input-number/input-number.tsx +210 -0
  126. package/src/components/input-otp/input-otp.meta.md +105 -0
  127. package/src/components/input-otp/input-otp.stories.tsx +65 -0
  128. package/src/components/input-otp/input-otp.tsx +97 -0
  129. package/src/components/item/item.meta.md +116 -0
  130. package/src/components/item/item.stories.tsx +113 -0
  131. package/src/components/item/item.tsx +171 -0
  132. package/src/components/kbd/kbd.meta.md +85 -0
  133. package/src/components/kbd/kbd.stories.tsx +70 -0
  134. package/src/components/kbd/kbd.tsx +81 -0
  135. package/src/components/label/label.meta.md +91 -0
  136. package/src/components/label/label.stories.tsx +87 -0
  137. package/src/components/label/label.tsx +66 -0
  138. package/src/components/masonry/masonry.meta.md +85 -0
  139. package/src/components/masonry/masonry.stories.tsx +66 -0
  140. package/src/components/masonry/masonry.tsx +59 -0
  141. package/src/components/mentions/mentions.meta.md +89 -0
  142. package/src/components/mentions/mentions.stories.tsx +75 -0
  143. package/src/components/mentions/mentions.tsx +237 -0
  144. package/src/components/menubar/menubar.meta.md +100 -0
  145. package/src/components/menubar/menubar.stories.tsx +81 -0
  146. package/src/components/menubar/menubar.tsx +232 -0
  147. package/src/components/native-select/native-select.meta.md +88 -0
  148. package/src/components/native-select/native-select.stories.tsx +80 -0
  149. package/src/components/native-select/native-select.tsx +54 -0
  150. package/src/components/navigation-menu/navigation-menu.meta.md +108 -0
  151. package/src/components/navigation-menu/navigation-menu.stories.tsx +112 -0
  152. package/src/components/navigation-menu/navigation-menu.tsx +125 -0
  153. package/src/components/notification/notification.meta.md +91 -0
  154. package/src/components/notification/notification.stories.tsx +96 -0
  155. package/src/components/notification/notification.tsx +84 -0
  156. package/src/components/pagination/pagination.meta.md +127 -0
  157. package/src/components/pagination/pagination.stories.tsx +62 -0
  158. package/src/components/pagination/pagination.tsx +285 -0
  159. package/src/components/popconfirm/popconfirm.meta.md +109 -0
  160. package/src/components/popconfirm/popconfirm.stories.tsx +76 -0
  161. package/src/components/popconfirm/popconfirm.tsx +134 -0
  162. package/src/components/popover/popover.meta.md +97 -0
  163. package/src/components/popover/popover.stories.tsx +82 -0
  164. package/src/components/popover/popover.tsx +55 -0
  165. package/src/components/progress/progress.meta.md +86 -0
  166. package/src/components/progress/progress.stories.tsx +75 -0
  167. package/src/components/progress/progress.tsx +195 -0
  168. package/src/components/radio-group/radio-group.meta.md +103 -0
  169. package/src/components/radio-group/radio-group.stories.tsx +77 -0
  170. package/src/components/radio-group/radio-group.tsx +78 -0
  171. package/src/components/rate/rate.meta.md +87 -0
  172. package/src/components/rate/rate.stories.tsx +81 -0
  173. package/src/components/rate/rate.tsx +153 -0
  174. package/src/components/resizable/resizable.meta.md +92 -0
  175. package/src/components/resizable/resizable.stories.tsx +104 -0
  176. package/src/components/resizable/resizable.tsx +56 -0
  177. package/src/components/result/result.meta.md +90 -0
  178. package/src/components/result/result.stories.tsx +71 -0
  179. package/src/components/result/result.tsx +91 -0
  180. package/src/components/scroll-area/scroll-area.meta.md +84 -0
  181. package/src/components/scroll-area/scroll-area.stories.tsx +41 -0
  182. package/src/components/scroll-area/scroll-area.tsx +51 -0
  183. package/src/components/segmented/segmented.meta.md +103 -0
  184. package/src/components/segmented/segmented.stories.tsx +101 -0
  185. package/src/components/segmented/segmented.tsx +138 -0
  186. package/src/components/select/select.meta.md +110 -0
  187. package/src/components/select/select.stories.tsx +100 -0
  188. package/src/components/select/select.tsx +188 -0
  189. package/src/components/separator/separator.meta.md +74 -0
  190. package/src/components/separator/separator.stories.tsx +71 -0
  191. package/src/components/separator/separator.tsx +104 -0
  192. package/src/components/sheet/sheet.meta.md +97 -0
  193. package/src/components/sheet/sheet.stories.tsx +82 -0
  194. package/src/components/sheet/sheet.tsx +139 -0
  195. package/src/components/sidebar/sidebar.meta.md +131 -0
  196. package/src/components/sidebar/sidebar.stories.tsx +82 -0
  197. package/src/components/sidebar/sidebar.tsx +351 -0
  198. package/src/components/skeleton/skeleton.meta.md +95 -0
  199. package/src/components/skeleton/skeleton.stories.tsx +79 -0
  200. package/src/components/skeleton/skeleton.tsx +144 -0
  201. package/src/components/slider/slider.meta.md +94 -0
  202. package/src/components/slider/slider.stories.tsx +69 -0
  203. package/src/components/slider/slider.tsx +86 -0
  204. package/src/components/sonner/sonner.meta.md +96 -0
  205. package/src/components/sonner/sonner.stories.tsx +91 -0
  206. package/src/components/sonner/sonner.tsx +40 -0
  207. package/src/components/space/space.meta.md +94 -0
  208. package/src/components/space/space.stories.tsx +94 -0
  209. package/src/components/space/space.tsx +106 -0
  210. package/src/components/spinner/spinner.meta.md +76 -0
  211. package/src/components/spinner/spinner.stories.tsx +71 -0
  212. package/src/components/spinner/spinner.tsx +64 -0
  213. package/src/components/statistic/statistic.meta.md +99 -0
  214. package/src/components/statistic/statistic.stories.tsx +71 -0
  215. package/src/components/statistic/statistic.tsx +197 -0
  216. package/src/components/steps/steps.meta.md +102 -0
  217. package/src/components/steps/steps.stories.tsx +75 -0
  218. package/src/components/steps/steps.tsx +170 -0
  219. package/src/components/switch/switch.meta.md +92 -0
  220. package/src/components/switch/switch.stories.tsx +75 -0
  221. package/src/components/switch/switch.tsx +101 -0
  222. package/src/components/table/table.meta.md +95 -0
  223. package/src/components/table/table.stories.tsx +75 -0
  224. package/src/components/table/table.tsx +122 -0
  225. package/src/components/tabs/tabs.meta.md +98 -0
  226. package/src/components/tabs/tabs.stories.tsx +70 -0
  227. package/src/components/tabs/tabs.tsx +119 -0
  228. package/src/components/tag/tag.meta.md +94 -0
  229. package/src/components/tag/tag.stories.tsx +77 -0
  230. package/src/components/tag/tag.tsx +185 -0
  231. package/src/components/textarea/textarea.meta.md +83 -0
  232. package/src/components/textarea/textarea.stories.tsx +63 -0
  233. package/src/components/textarea/textarea.tsx +113 -0
  234. package/src/components/time-picker/time-picker.meta.md +83 -0
  235. package/src/components/time-picker/time-picker.stories.tsx +59 -0
  236. package/src/components/time-picker/time-picker.tsx +94 -0
  237. package/src/components/timeline/timeline.meta.md +102 -0
  238. package/src/components/timeline/timeline.stories.tsx +104 -0
  239. package/src/components/timeline/timeline.tsx +147 -0
  240. package/src/components/toggle/toggle.meta.md +88 -0
  241. package/src/components/toggle/toggle.stories.tsx +66 -0
  242. package/src/components/toggle/toggle.tsx +53 -0
  243. package/src/components/toggle-group/toggle-group.meta.md +90 -0
  244. package/src/components/toggle-group/toggle-group.stories.tsx +83 -0
  245. package/src/components/toggle-group/toggle-group.tsx +78 -0
  246. package/src/components/tooltip/tooltip.meta.md +99 -0
  247. package/src/components/tooltip/tooltip.stories.tsx +71 -0
  248. package/src/components/tooltip/tooltip.tsx +93 -0
  249. package/src/components/tour/tour.meta.md +116 -0
  250. package/src/components/tour/tour.stories.tsx +66 -0
  251. package/src/components/tour/tour.tsx +242 -0
  252. package/src/components/transfer/transfer.meta.md +90 -0
  253. package/src/components/transfer/transfer.stories.tsx +68 -0
  254. package/src/components/transfer/transfer.tsx +251 -0
  255. package/src/components/tree/tree.meta.md +111 -0
  256. package/src/components/tree/tree.stories.tsx +109 -0
  257. package/src/components/tree/tree.tsx +367 -0
  258. package/src/components/tree-select/tree-select.meta.md +100 -0
  259. package/src/components/tree-select/tree-select.stories.tsx +80 -0
  260. package/src/components/tree-select/tree-select.tsx +171 -0
  261. package/src/components/typography/typography.meta.md +102 -0
  262. package/src/components/typography/typography.stories.tsx +115 -0
  263. package/src/components/typography/typography.tsx +245 -0
  264. package/src/components/upload/upload.meta.md +111 -0
  265. package/src/components/upload/upload.stories.tsx +75 -0
  266. package/src/components/upload/upload.tsx +265 -0
  267. package/src/components/watermark/watermark.meta.md +95 -0
  268. package/src/components/watermark/watermark.stories.tsx +78 -0
  269. package/src/components/watermark/watermark.tsx +165 -0
  270. package/src/utils/cn.ts +6 -0
package/manifest.json ADDED
@@ -0,0 +1,1688 @@
1
+ {
2
+ "$schema": "https://teamix-evo.dev/schema/ui-package/v1.json",
3
+ "schemaVersion": 1,
4
+ "package": "ui",
5
+ "version": "0.1.0",
6
+ "engines": {
7
+ "teamix-evo": ">=0.1.0"
8
+ },
9
+ "entries": [
10
+ {
11
+ "id": "cn",
12
+ "name": "cn",
13
+ "type": "util",
14
+ "description": "Tailwind className 合并工具(clsx + tailwind-merge)",
15
+ "files": [
16
+ {
17
+ "source": "src/utils/cn.ts",
18
+ "targetAlias": "utils",
19
+ "targetName": "cn.ts"
20
+ }
21
+ ],
22
+ "dependencies": {
23
+ "clsx": "^2.1.0",
24
+ "tailwind-merge": "^2.5.0"
25
+ },
26
+ "updateStrategy": "frozen"
27
+ },
28
+ {
29
+ "id": "button",
30
+ "name": "Button",
31
+ "type": "component",
32
+ "description": "通用按钮 — shadcn 实现 + antd 功能扩展(loading / icon / shape / block / dashed variant)",
33
+ "files": [
34
+ {
35
+ "source": "src/components/button/button.tsx",
36
+ "targetAlias": "components",
37
+ "targetName": "button.tsx"
38
+ }
39
+ ],
40
+ "meta": "src/components/button/button.meta.md",
41
+ "registryDependencies": ["cn"],
42
+ "dependencies": {
43
+ "@radix-ui/react-slot": "^1.1.0",
44
+ "class-variance-authority": "^0.7.0",
45
+ "lucide-react": "^0.460.0"
46
+ },
47
+ "updateStrategy": "frozen"
48
+ },
49
+ {
50
+ "id": "label",
51
+ "name": "Label",
52
+ "type": "component",
53
+ "description": "表单字段标签 — Radix Label 包装,补 antd Form.Item 风格的 required / disabled 显式视觉",
54
+ "files": [
55
+ {
56
+ "source": "src/components/label/label.tsx",
57
+ "targetAlias": "components",
58
+ "targetName": "label.tsx"
59
+ }
60
+ ],
61
+ "meta": "src/components/label/label.meta.md",
62
+ "registryDependencies": ["cn"],
63
+ "dependencies": {
64
+ "@radix-ui/react-label": "^2.1.0",
65
+ "class-variance-authority": "^0.7.0"
66
+ },
67
+ "updateStrategy": "frozen"
68
+ },
69
+ {
70
+ "id": "badge",
71
+ "name": "Badge",
72
+ "type": "component",
73
+ "description": "徽标 — shadcn 文本徽标 + antd 数字 / 红点 / 状态点合集,单组件四种形态(text / wrapped / standalone numeric / status)",
74
+ "files": [
75
+ {
76
+ "source": "src/components/badge/badge.tsx",
77
+ "targetAlias": "components",
78
+ "targetName": "badge.tsx"
79
+ }
80
+ ],
81
+ "meta": "src/components/badge/badge.meta.md",
82
+ "registryDependencies": ["cn"],
83
+ "dependencies": {
84
+ "class-variance-authority": "^0.7.0"
85
+ },
86
+ "updateStrategy": "frozen"
87
+ },
88
+ {
89
+ "id": "separator",
90
+ "name": "Separator",
91
+ "type": "component",
92
+ "description": "分隔线 — Radix Separator + antd Divider 的 dashed / 中间装饰文本",
93
+ "files": [
94
+ {
95
+ "source": "src/components/separator/separator.tsx",
96
+ "targetAlias": "components",
97
+ "targetName": "separator.tsx"
98
+ }
99
+ ],
100
+ "meta": "src/components/separator/separator.meta.md",
101
+ "registryDependencies": ["cn"],
102
+ "dependencies": {
103
+ "@radix-ui/react-separator": "^1.1.0"
104
+ },
105
+ "updateStrategy": "frozen"
106
+ },
107
+ {
108
+ "id": "skeleton",
109
+ "name": "Skeleton",
110
+ "type": "component",
111
+ "description": "骨架屏 — shadcn pulse 单元素 + antd Avatar/Image/Button/Input/Paragraph 子家族,自动 motion-reduce",
112
+ "files": [
113
+ {
114
+ "source": "src/components/skeleton/skeleton.tsx",
115
+ "targetAlias": "components",
116
+ "targetName": "skeleton.tsx"
117
+ }
118
+ ],
119
+ "meta": "src/components/skeleton/skeleton.meta.md",
120
+ "registryDependencies": ["cn"],
121
+ "dependencies": {
122
+ "class-variance-authority": "^0.7.0"
123
+ },
124
+ "updateStrategy": "frozen"
125
+ },
126
+ {
127
+ "id": "aspect-ratio",
128
+ "name": "AspectRatio",
129
+ "type": "component",
130
+ "description": "容器保持宽高比 — Radix AspectRatio,无 layout shift",
131
+ "files": [
132
+ {
133
+ "source": "src/components/aspect-ratio/aspect-ratio.tsx",
134
+ "targetAlias": "components",
135
+ "targetName": "aspect-ratio.tsx"
136
+ }
137
+ ],
138
+ "meta": "src/components/aspect-ratio/aspect-ratio.meta.md",
139
+ "dependencies": {
140
+ "@radix-ui/react-aspect-ratio": "^1.1.0"
141
+ },
142
+ "updateStrategy": "frozen"
143
+ },
144
+ {
145
+ "id": "avatar",
146
+ "name": "Avatar",
147
+ "type": "component",
148
+ "description": "头像 — Radix Avatar(自动 fallback)+ antd 的 size / shape / Avatar.Group",
149
+ "files": [
150
+ {
151
+ "source": "src/components/avatar/avatar.tsx",
152
+ "targetAlias": "components",
153
+ "targetName": "avatar.tsx"
154
+ }
155
+ ],
156
+ "meta": "src/components/avatar/avatar.meta.md",
157
+ "registryDependencies": ["cn"],
158
+ "dependencies": {
159
+ "@radix-ui/react-avatar": "^1.1.0",
160
+ "class-variance-authority": "^0.7.0"
161
+ },
162
+ "updateStrategy": "frozen"
163
+ },
164
+ {
165
+ "id": "progress",
166
+ "name": "Progress",
167
+ "type": "component",
168
+ "description": "进度条 — Radix 线性 + antd 的 status / showInfo / size 并集 + 配套 ProgressCircle 环形",
169
+ "files": [
170
+ {
171
+ "source": "src/components/progress/progress.tsx",
172
+ "targetAlias": "components",
173
+ "targetName": "progress.tsx"
174
+ }
175
+ ],
176
+ "meta": "src/components/progress/progress.meta.md",
177
+ "registryDependencies": ["cn"],
178
+ "dependencies": {
179
+ "@radix-ui/react-progress": "^1.1.0"
180
+ },
181
+ "updateStrategy": "frozen"
182
+ },
183
+ {
184
+ "id": "switch",
185
+ "name": "Switch",
186
+ "type": "component",
187
+ "description": "开关 — Radix Switch + antd 的 loading / checkedChildren / unCheckedChildren / size",
188
+ "files": [
189
+ {
190
+ "source": "src/components/switch/switch.tsx",
191
+ "targetAlias": "components",
192
+ "targetName": "switch.tsx"
193
+ }
194
+ ],
195
+ "meta": "src/components/switch/switch.meta.md",
196
+ "registryDependencies": ["cn"],
197
+ "dependencies": {
198
+ "@radix-ui/react-switch": "^1.1.0",
199
+ "lucide-react": "^0.460.0"
200
+ },
201
+ "updateStrategy": "frozen"
202
+ },
203
+ {
204
+ "id": "slider",
205
+ "name": "Slider",
206
+ "type": "component",
207
+ "description": "滑块 — Radix Slider(原生支持单/双滑块)+ antd marks 刻度",
208
+ "files": [
209
+ {
210
+ "source": "src/components/slider/slider.tsx",
211
+ "targetAlias": "components",
212
+ "targetName": "slider.tsx"
213
+ }
214
+ ],
215
+ "meta": "src/components/slider/slider.meta.md",
216
+ "registryDependencies": ["cn"],
217
+ "dependencies": {
218
+ "@radix-ui/react-slider": "^1.2.0"
219
+ },
220
+ "updateStrategy": "frozen"
221
+ },
222
+ {
223
+ "id": "toggle",
224
+ "name": "Toggle",
225
+ "type": "component",
226
+ "description": "二元状态按钮 — Radix Toggle 包装,工具栏图标级开关",
227
+ "files": [
228
+ {
229
+ "source": "src/components/toggle/toggle.tsx",
230
+ "targetAlias": "components",
231
+ "targetName": "toggle.tsx"
232
+ }
233
+ ],
234
+ "meta": "src/components/toggle/toggle.meta.md",
235
+ "registryDependencies": ["cn"],
236
+ "dependencies": {
237
+ "@radix-ui/react-toggle": "^1.1.0",
238
+ "class-variance-authority": "^0.7.0"
239
+ },
240
+ "updateStrategy": "frozen"
241
+ },
242
+ {
243
+ "id": "input",
244
+ "name": "Input",
245
+ "type": "component",
246
+ "description": "文本输入 — shadcn 简洁基底 + antd prefix/suffix/clearable/showCount/addonBefore/addonAfter/size",
247
+ "files": [
248
+ {
249
+ "source": "src/components/input/input.tsx",
250
+ "targetAlias": "components",
251
+ "targetName": "input.tsx"
252
+ }
253
+ ],
254
+ "meta": "src/components/input/input.meta.md",
255
+ "registryDependencies": ["cn"],
256
+ "dependencies": {
257
+ "lucide-react": "^0.460.0"
258
+ },
259
+ "updateStrategy": "frozen"
260
+ },
261
+ {
262
+ "id": "textarea",
263
+ "name": "Textarea",
264
+ "type": "component",
265
+ "description": "多行文本输入 — shadcn 基底 + antd autoSize / showCount",
266
+ "files": [
267
+ {
268
+ "source": "src/components/textarea/textarea.tsx",
269
+ "targetAlias": "components",
270
+ "targetName": "textarea.tsx"
271
+ }
272
+ ],
273
+ "meta": "src/components/textarea/textarea.meta.md",
274
+ "registryDependencies": ["cn"],
275
+ "updateStrategy": "frozen"
276
+ },
277
+ {
278
+ "id": "checkbox",
279
+ "name": "Checkbox",
280
+ "type": "component",
281
+ "description": "复选框 — Radix Checkbox(原生 indeterminate)+ antd Checkbox.Group(options 数组驱动)",
282
+ "files": [
283
+ {
284
+ "source": "src/components/checkbox/checkbox.tsx",
285
+ "targetAlias": "components",
286
+ "targetName": "checkbox.tsx"
287
+ }
288
+ ],
289
+ "meta": "src/components/checkbox/checkbox.meta.md",
290
+ "registryDependencies": ["cn"],
291
+ "dependencies": {
292
+ "@radix-ui/react-checkbox": "^1.1.0",
293
+ "lucide-react": "^0.460.0"
294
+ },
295
+ "updateStrategy": "frozen"
296
+ },
297
+ {
298
+ "id": "radio-group",
299
+ "name": "RadioGroup",
300
+ "type": "component",
301
+ "description": "单选组 — Radix RadioGroup + antd Radio.Button 形态(variant=button)",
302
+ "files": [
303
+ {
304
+ "source": "src/components/radio-group/radio-group.tsx",
305
+ "targetAlias": "components",
306
+ "targetName": "radio-group.tsx"
307
+ }
308
+ ],
309
+ "meta": "src/components/radio-group/radio-group.meta.md",
310
+ "registryDependencies": ["cn"],
311
+ "dependencies": {
312
+ "@radix-ui/react-radio-group": "^1.2.0",
313
+ "lucide-react": "^0.460.0"
314
+ },
315
+ "updateStrategy": "frozen"
316
+ },
317
+ {
318
+ "id": "alert",
319
+ "name": "Alert",
320
+ "type": "component",
321
+ "description": "静态提示条 — shadcn 视觉 + antd type/showIcon/closable/banner 并集",
322
+ "files": [
323
+ {
324
+ "source": "src/components/alert/alert.tsx",
325
+ "targetAlias": "components",
326
+ "targetName": "alert.tsx"
327
+ }
328
+ ],
329
+ "meta": "src/components/alert/alert.meta.md",
330
+ "registryDependencies": ["cn"],
331
+ "dependencies": {
332
+ "class-variance-authority": "^0.7.0",
333
+ "lucide-react": "^0.460.0"
334
+ },
335
+ "updateStrategy": "frozen"
336
+ },
337
+ {
338
+ "id": "tooltip",
339
+ "name": "Tooltip",
340
+ "type": "component",
341
+ "description": "文字提示气泡 — Radix Tooltip + antd arrow/placement(side) 并集 + 一行 wrapper API",
342
+ "files": [
343
+ {
344
+ "source": "src/components/tooltip/tooltip.tsx",
345
+ "targetAlias": "components",
346
+ "targetName": "tooltip.tsx"
347
+ }
348
+ ],
349
+ "meta": "src/components/tooltip/tooltip.meta.md",
350
+ "registryDependencies": ["cn"],
351
+ "dependencies": {
352
+ "@radix-ui/react-tooltip": "^1.1.0"
353
+ },
354
+ "updateStrategy": "frozen"
355
+ },
356
+ {
357
+ "id": "popover",
358
+ "name": "Popover",
359
+ "type": "component",
360
+ "description": "可交互浮层 — Radix Popover + antd arrow 并集",
361
+ "files": [
362
+ {
363
+ "source": "src/components/popover/popover.tsx",
364
+ "targetAlias": "components",
365
+ "targetName": "popover.tsx"
366
+ }
367
+ ],
368
+ "meta": "src/components/popover/popover.meta.md",
369
+ "registryDependencies": ["cn"],
370
+ "dependencies": {
371
+ "@radix-ui/react-popover": "^1.1.0"
372
+ },
373
+ "updateStrategy": "frozen"
374
+ },
375
+ {
376
+ "id": "hover-card",
377
+ "name": "HoverCard",
378
+ "type": "component",
379
+ "description": "悬浮富内容卡 — Radix HoverCard,shadcn-only(@username 卡片 / 链接预览)",
380
+ "files": [
381
+ {
382
+ "source": "src/components/hover-card/hover-card.tsx",
383
+ "targetAlias": "components",
384
+ "targetName": "hover-card.tsx"
385
+ }
386
+ ],
387
+ "meta": "src/components/hover-card/hover-card.meta.md",
388
+ "registryDependencies": ["cn"],
389
+ "dependencies": {
390
+ "@radix-ui/react-hover-card": "^1.1.0"
391
+ },
392
+ "updateStrategy": "frozen"
393
+ },
394
+ {
395
+ "id": "dialog",
396
+ "name": "Dialog",
397
+ "type": "component",
398
+ "description": "模态对话框 — Radix Dialog + antd Modal 并集(组合式 Header/Footer/Title/Description)",
399
+ "files": [
400
+ {
401
+ "source": "src/components/dialog/dialog.tsx",
402
+ "targetAlias": "components",
403
+ "targetName": "dialog.tsx"
404
+ }
405
+ ],
406
+ "meta": "src/components/dialog/dialog.meta.md",
407
+ "registryDependencies": ["cn"],
408
+ "dependencies": {
409
+ "@radix-ui/react-dialog": "^1.1.0",
410
+ "lucide-react": "^0.460.0"
411
+ },
412
+ "updateStrategy": "frozen"
413
+ },
414
+ {
415
+ "id": "alert-dialog",
416
+ "name": "AlertDialog",
417
+ "type": "component",
418
+ "description": "阻断式确认对话框 — Radix AlertDialog + antd Modal.confirm 并集(Action / Cancel)",
419
+ "files": [
420
+ {
421
+ "source": "src/components/alert-dialog/alert-dialog.tsx",
422
+ "targetAlias": "components",
423
+ "targetName": "alert-dialog.tsx"
424
+ }
425
+ ],
426
+ "meta": "src/components/alert-dialog/alert-dialog.meta.md",
427
+ "registryDependencies": ["cn", "button"],
428
+ "dependencies": {
429
+ "@radix-ui/react-alert-dialog": "^1.1.0"
430
+ },
431
+ "updateStrategy": "frozen"
432
+ },
433
+ {
434
+ "id": "sheet",
435
+ "name": "Sheet",
436
+ "type": "component",
437
+ "description": "侧边滑出面板 — Radix Dialog + side(left/right/top/bottom),与 antd Drawer placement 对齐",
438
+ "files": [
439
+ {
440
+ "source": "src/components/sheet/sheet.tsx",
441
+ "targetAlias": "components",
442
+ "targetName": "sheet.tsx"
443
+ }
444
+ ],
445
+ "meta": "src/components/sheet/sheet.meta.md",
446
+ "registryDependencies": ["cn"],
447
+ "dependencies": {
448
+ "@radix-ui/react-dialog": "^1.1.0",
449
+ "class-variance-authority": "^0.7.0",
450
+ "lucide-react": "^0.460.0"
451
+ },
452
+ "updateStrategy": "frozen"
453
+ },
454
+ {
455
+ "id": "drawer",
456
+ "name": "Drawer",
457
+ "type": "component",
458
+ "description": "底部可拖拽抽屉 — vaul,iOS 风格,移动端体验最佳(与 Sheet 互补)",
459
+ "files": [
460
+ {
461
+ "source": "src/components/drawer/drawer.tsx",
462
+ "targetAlias": "components",
463
+ "targetName": "drawer.tsx"
464
+ }
465
+ ],
466
+ "meta": "src/components/drawer/drawer.meta.md",
467
+ "registryDependencies": ["cn"],
468
+ "dependencies": {
469
+ "vaul": "^1.0.0"
470
+ },
471
+ "updateStrategy": "frozen"
472
+ },
473
+ {
474
+ "id": "sonner",
475
+ "name": "Toaster",
476
+ "type": "component",
477
+ "description": "Toast 通知 — sonner 包装,等价 antd message + notification 并集(toast() 函数式 API + Toaster 容器)",
478
+ "files": [
479
+ {
480
+ "source": "src/components/sonner/sonner.tsx",
481
+ "targetAlias": "components",
482
+ "targetName": "sonner.tsx"
483
+ }
484
+ ],
485
+ "meta": "src/components/sonner/sonner.meta.md",
486
+ "dependencies": {
487
+ "sonner": "^1.5.0"
488
+ },
489
+ "updateStrategy": "frozen"
490
+ },
491
+ {
492
+ "id": "select",
493
+ "name": "Select",
494
+ "type": "component",
495
+ "description": "下拉选择 — Radix Select 标准(单选;多选/搜索请用 Combobox v0.x)",
496
+ "files": [
497
+ {
498
+ "source": "src/components/select/select.tsx",
499
+ "targetAlias": "components",
500
+ "targetName": "select.tsx"
501
+ }
502
+ ],
503
+ "meta": "src/components/select/select.meta.md",
504
+ "registryDependencies": ["cn"],
505
+ "dependencies": {
506
+ "@radix-ui/react-select": "^2.1.0",
507
+ "lucide-react": "^0.460.0"
508
+ },
509
+ "updateStrategy": "frozen"
510
+ },
511
+ {
512
+ "id": "toggle-group",
513
+ "name": "ToggleGroup",
514
+ "type": "component",
515
+ "description": "切换按钮组 — Radix ToggleGroup,type=single|multiple,复用 Toggle variant/size",
516
+ "files": [
517
+ {
518
+ "source": "src/components/toggle-group/toggle-group.tsx",
519
+ "targetAlias": "components",
520
+ "targetName": "toggle-group.tsx"
521
+ }
522
+ ],
523
+ "meta": "src/components/toggle-group/toggle-group.meta.md",
524
+ "registryDependencies": ["cn", "toggle"],
525
+ "dependencies": {
526
+ "@radix-ui/react-toggle-group": "^1.1.0",
527
+ "class-variance-authority": "^0.7.0"
528
+ },
529
+ "updateStrategy": "frozen"
530
+ },
531
+ {
532
+ "id": "calendar",
533
+ "name": "Calendar",
534
+ "type": "component",
535
+ "description": "日期选择面板 — react-day-picker,mode=single|multiple|range,与 design tokens 对齐",
536
+ "files": [
537
+ {
538
+ "source": "src/components/calendar/calendar.tsx",
539
+ "targetAlias": "components",
540
+ "targetName": "calendar.tsx"
541
+ }
542
+ ],
543
+ "meta": "src/components/calendar/calendar.meta.md",
544
+ "registryDependencies": ["cn", "button"],
545
+ "dependencies": {
546
+ "react-day-picker": "^9.0.0",
547
+ "lucide-react": "^0.460.0"
548
+ },
549
+ "updateStrategy": "frozen"
550
+ },
551
+ {
552
+ "id": "date-picker",
553
+ "name": "DatePicker",
554
+ "type": "component",
555
+ "description": "日期 / 范围选择器 — Calendar + Popover 复合,date-fns 格式化(对应 antd DatePicker + RangePicker)",
556
+ "files": [
557
+ {
558
+ "source": "src/components/date-picker/date-picker.tsx",
559
+ "targetAlias": "components",
560
+ "targetName": "date-picker.tsx"
561
+ }
562
+ ],
563
+ "meta": "src/components/date-picker/date-picker.meta.md",
564
+ "registryDependencies": ["cn", "button", "calendar", "popover"],
565
+ "dependencies": {
566
+ "date-fns": "^3.0.0",
567
+ "react-day-picker": "^9.0.0",
568
+ "lucide-react": "^0.460.0"
569
+ },
570
+ "updateStrategy": "frozen"
571
+ },
572
+ {
573
+ "id": "input-otp",
574
+ "name": "InputOTP",
575
+ "type": "component",
576
+ "description": "OTP 验证码输入 — 基于 input-otp,shadcn-only(短验证码场景:登录、二步验证、PIN)",
577
+ "files": [
578
+ {
579
+ "source": "src/components/input-otp/input-otp.tsx",
580
+ "targetAlias": "components",
581
+ "targetName": "input-otp.tsx"
582
+ }
583
+ ],
584
+ "meta": "src/components/input-otp/input-otp.meta.md",
585
+ "registryDependencies": ["cn"],
586
+ "dependencies": {
587
+ "input-otp": "^1.2.0",
588
+ "lucide-react": "^0.460.0"
589
+ },
590
+ "updateStrategy": "frozen"
591
+ },
592
+ {
593
+ "id": "form",
594
+ "name": "Form",
595
+ "type": "component",
596
+ "description": "表单 — react-hook-form + shadcn 7 件套(FormField/FormItem/Label/Control/Description/Message),配 zod 做 schema 校验",
597
+ "files": [
598
+ {
599
+ "source": "src/components/form/form.tsx",
600
+ "targetAlias": "components",
601
+ "targetName": "form.tsx"
602
+ }
603
+ ],
604
+ "meta": "src/components/form/form.meta.md",
605
+ "registryDependencies": ["cn", "label"],
606
+ "dependencies": {
607
+ "react-hook-form": "^7.50.0",
608
+ "@hookform/resolvers": "^3.0.0",
609
+ "zod": "^3.22.0",
610
+ "@radix-ui/react-label": "^2.1.0",
611
+ "@radix-ui/react-slot": "^1.1.0"
612
+ },
613
+ "updateStrategy": "frozen"
614
+ },
615
+ {
616
+ "id": "tabs",
617
+ "name": "Tabs",
618
+ "type": "component",
619
+ "description": "标签页 — Radix Tabs + antd type(line/card) + tabBarExtraContent(extra)并集",
620
+ "files": [
621
+ {
622
+ "source": "src/components/tabs/tabs.tsx",
623
+ "targetAlias": "components",
624
+ "targetName": "tabs.tsx"
625
+ }
626
+ ],
627
+ "meta": "src/components/tabs/tabs.meta.md",
628
+ "registryDependencies": ["cn"],
629
+ "dependencies": {
630
+ "@radix-ui/react-tabs": "^1.1.0",
631
+ "class-variance-authority": "^0.7.0"
632
+ },
633
+ "updateStrategy": "frozen"
634
+ },
635
+ {
636
+ "id": "accordion",
637
+ "name": "Accordion",
638
+ "type": "component",
639
+ "description": "折叠面板 — Radix Accordion + antd Collapse 的 accordion 模式(单/多展开)",
640
+ "files": [
641
+ {
642
+ "source": "src/components/accordion/accordion.tsx",
643
+ "targetAlias": "components",
644
+ "targetName": "accordion.tsx"
645
+ }
646
+ ],
647
+ "meta": "src/components/accordion/accordion.meta.md",
648
+ "registryDependencies": ["cn"],
649
+ "dependencies": {
650
+ "@radix-ui/react-accordion": "^1.2.0",
651
+ "lucide-react": "^0.460.0"
652
+ },
653
+ "updateStrategy": "frozen"
654
+ },
655
+ {
656
+ "id": "collapsible",
657
+ "name": "Collapsible",
658
+ "type": "component",
659
+ "description": "单区域展开收起 — Radix Collapsible 薄包装(shadcn-only)",
660
+ "files": [
661
+ {
662
+ "source": "src/components/collapsible/collapsible.tsx",
663
+ "targetAlias": "components",
664
+ "targetName": "collapsible.tsx"
665
+ }
666
+ ],
667
+ "meta": "src/components/collapsible/collapsible.meta.md",
668
+ "dependencies": {
669
+ "@radix-ui/react-collapsible": "^1.1.0"
670
+ },
671
+ "updateStrategy": "frozen"
672
+ },
673
+ {
674
+ "id": "breadcrumb",
675
+ "name": "Breadcrumb",
676
+ "type": "component",
677
+ "description": "面包屑 — 纯组合 + antd separator/itemRender(asChild 配 React Router/Next.js Link)",
678
+ "files": [
679
+ {
680
+ "source": "src/components/breadcrumb/breadcrumb.tsx",
681
+ "targetAlias": "components",
682
+ "targetName": "breadcrumb.tsx"
683
+ }
684
+ ],
685
+ "meta": "src/components/breadcrumb/breadcrumb.meta.md",
686
+ "registryDependencies": ["cn"],
687
+ "dependencies": {
688
+ "@radix-ui/react-slot": "^1.1.0",
689
+ "lucide-react": "^0.460.0"
690
+ },
691
+ "updateStrategy": "frozen"
692
+ },
693
+ {
694
+ "id": "pagination",
695
+ "name": "SimplePagination",
696
+ "type": "component",
697
+ "description": "分页 — shadcn primitives + 高阶 SimplePagination(antd 风格 total/pageSize/current/onChange,自动页码窗口 + 折叠)",
698
+ "files": [
699
+ {
700
+ "source": "src/components/pagination/pagination.tsx",
701
+ "targetAlias": "components",
702
+ "targetName": "pagination.tsx"
703
+ }
704
+ ],
705
+ "meta": "src/components/pagination/pagination.meta.md",
706
+ "registryDependencies": ["cn", "button"],
707
+ "dependencies": {
708
+ "lucide-react": "^0.460.0"
709
+ },
710
+ "updateStrategy": "frozen"
711
+ },
712
+ {
713
+ "id": "dropdown-menu",
714
+ "name": "DropdownMenu",
715
+ "type": "component",
716
+ "description": "下拉菜单 — Radix DropdownMenu 完整(Item/CheckboxItem/RadioItem/Sub/Label/Separator/Shortcut),对应 antd Dropdown",
717
+ "files": [
718
+ {
719
+ "source": "src/components/dropdown-menu/dropdown-menu.tsx",
720
+ "targetAlias": "components",
721
+ "targetName": "dropdown-menu.tsx"
722
+ }
723
+ ],
724
+ "meta": "src/components/dropdown-menu/dropdown-menu.meta.md",
725
+ "registryDependencies": ["cn"],
726
+ "dependencies": {
727
+ "@radix-ui/react-dropdown-menu": "^2.1.0",
728
+ "lucide-react": "^0.460.0"
729
+ },
730
+ "updateStrategy": "frozen"
731
+ },
732
+ {
733
+ "id": "context-menu",
734
+ "name": "ContextMenu",
735
+ "type": "component",
736
+ "description": "右键菜单 — Radix ContextMenu(与 DropdownMenu 形态一致,触发为右键)",
737
+ "files": [
738
+ {
739
+ "source": "src/components/context-menu/context-menu.tsx",
740
+ "targetAlias": "components",
741
+ "targetName": "context-menu.tsx"
742
+ }
743
+ ],
744
+ "meta": "src/components/context-menu/context-menu.meta.md",
745
+ "registryDependencies": ["cn"],
746
+ "dependencies": {
747
+ "@radix-ui/react-context-menu": "^2.2.0",
748
+ "lucide-react": "^0.460.0"
749
+ },
750
+ "updateStrategy": "frozen"
751
+ },
752
+ {
753
+ "id": "menubar",
754
+ "name": "Menubar",
755
+ "type": "component",
756
+ "description": "应用顶部菜单栏 — Radix Menubar(macOS 风格:文件/编辑/视图/帮助)",
757
+ "files": [
758
+ {
759
+ "source": "src/components/menubar/menubar.tsx",
760
+ "targetAlias": "components",
761
+ "targetName": "menubar.tsx"
762
+ }
763
+ ],
764
+ "meta": "src/components/menubar/menubar.meta.md",
765
+ "registryDependencies": ["cn"],
766
+ "dependencies": {
767
+ "@radix-ui/react-menubar": "^1.1.0",
768
+ "lucide-react": "^0.460.0"
769
+ },
770
+ "updateStrategy": "frozen"
771
+ },
772
+ {
773
+ "id": "navigation-menu",
774
+ "name": "NavigationMenu",
775
+ "type": "component",
776
+ "description": "网站主导航 — Radix NavigationMenu(支持富 Content 面板)",
777
+ "files": [
778
+ {
779
+ "source": "src/components/navigation-menu/navigation-menu.tsx",
780
+ "targetAlias": "components",
781
+ "targetName": "navigation-menu.tsx"
782
+ }
783
+ ],
784
+ "meta": "src/components/navigation-menu/navigation-menu.meta.md",
785
+ "registryDependencies": ["cn"],
786
+ "dependencies": {
787
+ "@radix-ui/react-navigation-menu": "^1.2.0",
788
+ "class-variance-authority": "^0.7.0",
789
+ "lucide-react": "^0.460.0"
790
+ },
791
+ "updateStrategy": "frozen"
792
+ },
793
+ {
794
+ "id": "sidebar",
795
+ "name": "Sidebar",
796
+ "type": "component",
797
+ "description": "侧边导航栏 — shadcn 复合(Provider + Sidebar + Header/Footer/Content + Menu + Trigger),对应 antd Layout.Sider + Menu",
798
+ "files": [
799
+ {
800
+ "source": "src/components/sidebar/sidebar.tsx",
801
+ "targetAlias": "components",
802
+ "targetName": "sidebar.tsx"
803
+ }
804
+ ],
805
+ "meta": "src/components/sidebar/sidebar.meta.md",
806
+ "registryDependencies": ["cn", "button", "separator"],
807
+ "dependencies": {
808
+ "@radix-ui/react-slot": "^1.1.0",
809
+ "class-variance-authority": "^0.7.0",
810
+ "lucide-react": "^0.460.0"
811
+ },
812
+ "updateStrategy": "frozen"
813
+ },
814
+ {
815
+ "id": "card",
816
+ "name": "Card",
817
+ "type": "component",
818
+ "description": "卡片容器 — shadcn 组合式 + antd hoverable/loading/Cover/Actions/Meta/extra 并集",
819
+ "files": [
820
+ {
821
+ "source": "src/components/card/card.tsx",
822
+ "targetAlias": "components",
823
+ "targetName": "card.tsx"
824
+ }
825
+ ],
826
+ "meta": "src/components/card/card.meta.md",
827
+ "registryDependencies": ["cn", "skeleton"],
828
+ "updateStrategy": "frozen"
829
+ },
830
+ {
831
+ "id": "scroll-area",
832
+ "name": "ScrollArea",
833
+ "type": "component",
834
+ "description": "自定义滚动容器 — Radix ScrollArea(跨浏览器一致的滚动条,触屏友好,自动隐藏 thumb)",
835
+ "files": [
836
+ {
837
+ "source": "src/components/scroll-area/scroll-area.tsx",
838
+ "targetAlias": "components",
839
+ "targetName": "scroll-area.tsx"
840
+ }
841
+ ],
842
+ "meta": "src/components/scroll-area/scroll-area.meta.md",
843
+ "registryDependencies": ["cn"],
844
+ "dependencies": {
845
+ "@radix-ui/react-scroll-area": "^1.2.0"
846
+ },
847
+ "updateStrategy": "frozen"
848
+ },
849
+ {
850
+ "id": "table",
851
+ "name": "Table",
852
+ "type": "component",
853
+ "description": "基础表格 — 原生 HTML 元素薄包装(视觉骨架,无交互,交互见 DataTable)",
854
+ "files": [
855
+ {
856
+ "source": "src/components/table/table.tsx",
857
+ "targetAlias": "components",
858
+ "targetName": "table.tsx"
859
+ }
860
+ ],
861
+ "meta": "src/components/table/table.meta.md",
862
+ "registryDependencies": ["cn"],
863
+ "updateStrategy": "frozen"
864
+ },
865
+ {
866
+ "id": "data-table",
867
+ "name": "DataTable",
868
+ "type": "component",
869
+ "description": "高阶数据表 — TanStack Table + Table primitives + SimplePagination(等价 antd Table 的 sorter/filter/pagination/rowSelection)",
870
+ "files": [
871
+ {
872
+ "source": "src/components/data-table/data-table.tsx",
873
+ "targetAlias": "components",
874
+ "targetName": "data-table.tsx"
875
+ }
876
+ ],
877
+ "meta": "src/components/data-table/data-table.meta.md",
878
+ "registryDependencies": ["cn", "table", "pagination"],
879
+ "dependencies": {
880
+ "@tanstack/react-table": "^8.0.0"
881
+ },
882
+ "updateStrategy": "frozen"
883
+ },
884
+ {
885
+ "id": "carousel",
886
+ "name": "Carousel",
887
+ "type": "component",
888
+ "description": "走马灯 — embla-carousel-react,支持单页/多页/循环/垂直/触屏拖动,对应 antd Carousel",
889
+ "files": [
890
+ {
891
+ "source": "src/components/carousel/carousel.tsx",
892
+ "targetAlias": "components",
893
+ "targetName": "carousel.tsx"
894
+ }
895
+ ],
896
+ "meta": "src/components/carousel/carousel.meta.md",
897
+ "registryDependencies": ["cn", "button"],
898
+ "dependencies": {
899
+ "embla-carousel-react": "^8.0.0",
900
+ "lucide-react": "^0.460.0"
901
+ },
902
+ "updateStrategy": "frozen"
903
+ },
904
+ {
905
+ "id": "command",
906
+ "name": "Command",
907
+ "type": "component",
908
+ "description": "命令面板 — cmdk(Linear / Raycast 风格),全局搜索 / 命令执行;Combobox 的底座",
909
+ "files": [
910
+ {
911
+ "source": "src/components/command/command.tsx",
912
+ "targetAlias": "components",
913
+ "targetName": "command.tsx"
914
+ }
915
+ ],
916
+ "meta": "src/components/command/command.meta.md",
917
+ "registryDependencies": ["cn", "dialog"],
918
+ "dependencies": {
919
+ "cmdk": "^1.0.0",
920
+ "lucide-react": "^0.460.0"
921
+ },
922
+ "updateStrategy": "frozen"
923
+ },
924
+ {
925
+ "id": "combobox",
926
+ "name": "Combobox",
927
+ "type": "component",
928
+ "description": "可搜索单选下拉 — Command + Popover 复合,等价 antd AutoComplete / Select showSearch",
929
+ "files": [
930
+ {
931
+ "source": "src/components/combobox/combobox.tsx",
932
+ "targetAlias": "components",
933
+ "targetName": "combobox.tsx"
934
+ }
935
+ ],
936
+ "meta": "src/components/combobox/combobox.meta.md",
937
+ "registryDependencies": ["cn", "button", "command", "popover"],
938
+ "dependencies": {
939
+ "lucide-react": "^0.460.0"
940
+ },
941
+ "updateStrategy": "frozen"
942
+ },
943
+ {
944
+ "id": "resizable",
945
+ "name": "Resizable",
946
+ "type": "component",
947
+ "description": "可拖拽分栏 — react-resizable-panels(VS Code / Figma 风格),横/纵向 + 嵌套 + min/max 限制。等价 antd `Splitter`(v5.21+)",
948
+ "files": [
949
+ {
950
+ "source": "src/components/resizable/resizable.tsx",
951
+ "targetAlias": "components",
952
+ "targetName": "resizable.tsx"
953
+ }
954
+ ],
955
+ "meta": "src/components/resizable/resizable.meta.md",
956
+ "registryDependencies": ["cn"],
957
+ "dependencies": {
958
+ "react-resizable-panels": "^2.0.0",
959
+ "lucide-react": "^0.460.0"
960
+ },
961
+ "updateStrategy": "frozen"
962
+ },
963
+ {
964
+ "id": "typography",
965
+ "name": "Text",
966
+ "type": "component",
967
+ "description": "排版组件 — Prose 富文本容器 + Title/Paragraph/Text/Link + antd type/strong/delete/disabled/code/ellipsis/copyable",
968
+ "files": [
969
+ {
970
+ "source": "src/components/typography/typography.tsx",
971
+ "targetAlias": "components",
972
+ "targetName": "typography.tsx"
973
+ }
974
+ ],
975
+ "meta": "src/components/typography/typography.meta.md",
976
+ "registryDependencies": ["cn"],
977
+ "dependencies": {
978
+ "lucide-react": "^0.460.0"
979
+ },
980
+ "updateStrategy": "frozen"
981
+ },
982
+ {
983
+ "id": "statistic",
984
+ "name": "Statistic",
985
+ "type": "component",
986
+ "description": "数字展示 — antd 独有补足。仪表板 KPI(标题 / 值 / 前后缀 / 趋势 / 千分位 / 精度)",
987
+ "files": [
988
+ {
989
+ "source": "src/components/statistic/statistic.tsx",
990
+ "targetAlias": "components",
991
+ "targetName": "statistic.tsx"
992
+ }
993
+ ],
994
+ "meta": "src/components/statistic/statistic.meta.md",
995
+ "registryDependencies": ["cn"],
996
+ "dependencies": {
997
+ "lucide-react": "^0.460.0"
998
+ },
999
+ "updateStrategy": "frozen"
1000
+ },
1001
+ {
1002
+ "id": "steps",
1003
+ "name": "Steps",
1004
+ "type": "component",
1005
+ "description": "步骤条 — antd 独有补足。多步流程引导(注册 / 下单 / 部署),状态自动推导(wait/process/finish/error)",
1006
+ "files": [
1007
+ {
1008
+ "source": "src/components/steps/steps.tsx",
1009
+ "targetAlias": "components",
1010
+ "targetName": "steps.tsx"
1011
+ }
1012
+ ],
1013
+ "meta": "src/components/steps/steps.meta.md",
1014
+ "registryDependencies": ["cn"],
1015
+ "dependencies": {
1016
+ "lucide-react": "^0.460.0"
1017
+ },
1018
+ "updateStrategy": "frozen"
1019
+ },
1020
+ {
1021
+ "id": "result",
1022
+ "name": "Result",
1023
+ "type": "component",
1024
+ "description": "结果页 — antd 独有补足。整页级反馈(成功 / 失败 / 404 / 403 / 500)",
1025
+ "files": [
1026
+ {
1027
+ "source": "src/components/result/result.tsx",
1028
+ "targetAlias": "components",
1029
+ "targetName": "result.tsx"
1030
+ }
1031
+ ],
1032
+ "meta": "src/components/result/result.meta.md",
1033
+ "registryDependencies": ["cn"],
1034
+ "dependencies": {
1035
+ "lucide-react": "^0.460.0"
1036
+ },
1037
+ "updateStrategy": "frozen"
1038
+ },
1039
+ {
1040
+ "id": "empty",
1041
+ "name": "Empty",
1042
+ "type": "component",
1043
+ "description": "空状态 — antd 独有补足。列表 / 表格 / 搜索结果为空时的占位 + 引导操作",
1044
+ "files": [
1045
+ {
1046
+ "source": "src/components/empty/empty.tsx",
1047
+ "targetAlias": "components",
1048
+ "targetName": "empty.tsx"
1049
+ }
1050
+ ],
1051
+ "meta": "src/components/empty/empty.meta.md",
1052
+ "registryDependencies": ["cn"],
1053
+ "dependencies": {
1054
+ "lucide-react": "^0.460.0"
1055
+ },
1056
+ "updateStrategy": "frozen"
1057
+ },
1058
+ {
1059
+ "id": "descriptions",
1060
+ "name": "Descriptions",
1061
+ "type": "component",
1062
+ "description": "描述列表 — antd 独有补足。键值对详情(items 数组驱动,横/纵布局,bordered,span 跨列)",
1063
+ "files": [
1064
+ {
1065
+ "source": "src/components/descriptions/descriptions.tsx",
1066
+ "targetAlias": "components",
1067
+ "targetName": "descriptions.tsx"
1068
+ }
1069
+ ],
1070
+ "meta": "src/components/descriptions/descriptions.meta.md",
1071
+ "registryDependencies": ["cn"],
1072
+ "updateStrategy": "frozen"
1073
+ },
1074
+ {
1075
+ "id": "tag",
1076
+ "name": "Tag",
1077
+ "type": "component",
1078
+ "description": "标签 — antd 独有补足。用户可关闭的关键词标签(分类 / 筛选条件),6 种语义色 + closable(与 Badge 互补)",
1079
+ "files": [
1080
+ {
1081
+ "source": "src/components/tag/tag.tsx",
1082
+ "targetAlias": "components",
1083
+ "targetName": "tag.tsx"
1084
+ }
1085
+ ],
1086
+ "meta": "src/components/tag/tag.meta.md",
1087
+ "registryDependencies": ["cn"],
1088
+ "dependencies": {
1089
+ "class-variance-authority": "^0.7.0",
1090
+ "lucide-react": "^0.460.0"
1091
+ },
1092
+ "updateStrategy": "frozen"
1093
+ },
1094
+ {
1095
+ "id": "image",
1096
+ "name": "Image",
1097
+ "type": "component",
1098
+ "description": "图片 — antd 独有补足。自动加载占位 + 失败占位 + 点击预览(Dialog 模态原图)",
1099
+ "files": [
1100
+ {
1101
+ "source": "src/components/image/image.tsx",
1102
+ "targetAlias": "components",
1103
+ "targetName": "image.tsx"
1104
+ }
1105
+ ],
1106
+ "meta": "src/components/image/image.meta.md",
1107
+ "registryDependencies": ["cn", "dialog", "skeleton"],
1108
+ "dependencies": {
1109
+ "lucide-react": "^0.460.0"
1110
+ },
1111
+ "updateStrategy": "frozen"
1112
+ },
1113
+ {
1114
+ "id": "upload",
1115
+ "name": "Upload",
1116
+ "type": "component",
1117
+ "description": "文件上传 — antd 独有补足。点击 + 拖拽双模式(Dragger),内置 accept / multiple / maxCount / maxSize 校验、文件列表与进度条;真实上传由消费方在 onChange 中发起",
1118
+ "files": [
1119
+ {
1120
+ "source": "src/components/upload/upload.tsx",
1121
+ "targetAlias": "components",
1122
+ "targetName": "upload.tsx"
1123
+ }
1124
+ ],
1125
+ "meta": "src/components/upload/upload.meta.md",
1126
+ "registryDependencies": ["cn", "button", "progress"],
1127
+ "dependencies": {
1128
+ "lucide-react": "^0.460.0"
1129
+ },
1130
+ "updateStrategy": "frozen"
1131
+ },
1132
+ {
1133
+ "id": "tree",
1134
+ "name": "Tree",
1135
+ "type": "component",
1136
+ "description": "树形控件 — antd 独有补足。递归层级展示(目录、组织、分类),可展开 / 可选 / 可勾选(父子级联 + 半选),受控与非受控并存",
1137
+ "files": [
1138
+ {
1139
+ "source": "src/components/tree/tree.tsx",
1140
+ "targetAlias": "components",
1141
+ "targetName": "tree.tsx"
1142
+ }
1143
+ ],
1144
+ "meta": "src/components/tree/tree.meta.md",
1145
+ "registryDependencies": ["cn", "checkbox"],
1146
+ "dependencies": {
1147
+ "lucide-react": "^0.460.0"
1148
+ },
1149
+ "updateStrategy": "frozen"
1150
+ },
1151
+ {
1152
+ "id": "mentions",
1153
+ "name": "Mentions",
1154
+ "type": "component",
1155
+ "description": "@提及输入 — antd 独有补足。Textarea + @ 触发候选下拉(评论 @ 同事 / # 话题),键盘 ↑↓ 切换 + Enter/Tab 选中 + Esc 关闭,异步候选用 onSearch 刷新 options",
1156
+ "files": [
1157
+ {
1158
+ "source": "src/components/mentions/mentions.tsx",
1159
+ "targetAlias": "components",
1160
+ "targetName": "mentions.tsx"
1161
+ }
1162
+ ],
1163
+ "meta": "src/components/mentions/mentions.meta.md",
1164
+ "registryDependencies": ["cn", "textarea"],
1165
+ "updateStrategy": "frozen"
1166
+ },
1167
+ {
1168
+ "id": "transfer",
1169
+ "name": "Transfer",
1170
+ "type": "component",
1171
+ "description": "穿梭框 — antd 独有补足。双侧勾选 + 移动的批量分配交互(权限分配 / 字段映射 / 收件人),受控 targetKeys 单一真值,内置全选 / 半选 / 可选搜索 / 禁用项跳过",
1172
+ "files": [
1173
+ {
1174
+ "source": "src/components/transfer/transfer.tsx",
1175
+ "targetAlias": "components",
1176
+ "targetName": "transfer.tsx"
1177
+ }
1178
+ ],
1179
+ "meta": "src/components/transfer/transfer.meta.md",
1180
+ "registryDependencies": ["cn", "button", "checkbox", "input"],
1181
+ "dependencies": {
1182
+ "lucide-react": "^0.460.0"
1183
+ },
1184
+ "updateStrategy": "frozen"
1185
+ },
1186
+ {
1187
+ "id": "spinner",
1188
+ "name": "Spinner",
1189
+ "type": "component",
1190
+ "description": "旋转加载指示器 — shadcn 2025-10 新增,等价 antd `Spin`(无遮罩版)。4 档尺寸 + 4 档语义配色,自带 role=status 与 sr-only 读屏文本",
1191
+ "files": [
1192
+ {
1193
+ "source": "src/components/spinner/spinner.tsx",
1194
+ "targetAlias": "components",
1195
+ "targetName": "spinner.tsx"
1196
+ }
1197
+ ],
1198
+ "meta": "src/components/spinner/spinner.meta.md",
1199
+ "registryDependencies": ["cn"],
1200
+ "dependencies": {
1201
+ "class-variance-authority": "^0.7.0",
1202
+ "lucide-react": "^0.460.0"
1203
+ },
1204
+ "updateStrategy": "frozen"
1205
+ },
1206
+ {
1207
+ "id": "kbd",
1208
+ "name": "Kbd",
1209
+ "type": "component",
1210
+ "description": "键位展示 — shadcn 2025-10 新增。语义化 `<kbd>` 元素 + `KbdGroup` 组合容器,用于标注快捷键(⌘K / Ctrl + Enter)",
1211
+ "files": [
1212
+ {
1213
+ "source": "src/components/kbd/kbd.tsx",
1214
+ "targetAlias": "components",
1215
+ "targetName": "kbd.tsx"
1216
+ }
1217
+ ],
1218
+ "meta": "src/components/kbd/kbd.meta.md",
1219
+ "registryDependencies": ["cn"],
1220
+ "dependencies": {
1221
+ "class-variance-authority": "^0.7.0"
1222
+ },
1223
+ "updateStrategy": "frozen"
1224
+ },
1225
+ {
1226
+ "id": "native-select",
1227
+ "name": "NativeSelect",
1228
+ "type": "component",
1229
+ "description": "原生 `<select>` 样式封装 — shadcn 2025-10 新增。零 JS 开销,移动端弹起系统 picker,直接参与 form submit。与 Radix Select 互补",
1230
+ "files": [
1231
+ {
1232
+ "source": "src/components/native-select/native-select.tsx",
1233
+ "targetAlias": "components",
1234
+ "targetName": "native-select.tsx"
1235
+ }
1236
+ ],
1237
+ "meta": "src/components/native-select/native-select.meta.md",
1238
+ "registryDependencies": ["cn"],
1239
+ "dependencies": {
1240
+ "lucide-react": "^0.460.0"
1241
+ },
1242
+ "updateStrategy": "frozen"
1243
+ },
1244
+ {
1245
+ "id": "button-group",
1246
+ "name": "ButtonGroup",
1247
+ "type": "component",
1248
+ "description": "按钮组 — shadcn 2025-10 新增,等价 antd `Space.Compact`(v6 替代旧 Button.Group)。把多个按钮 / 输入框粘在一起共享边线(Split Button / Toolbar / Input + Button 拼装)",
1249
+ "files": [
1250
+ {
1251
+ "source": "src/components/button-group/button-group.tsx",
1252
+ "targetAlias": "components",
1253
+ "targetName": "button-group.tsx"
1254
+ }
1255
+ ],
1256
+ "meta": "src/components/button-group/button-group.meta.md",
1257
+ "registryDependencies": ["cn"],
1258
+ "dependencies": {
1259
+ "class-variance-authority": "^0.7.0"
1260
+ },
1261
+ "updateStrategy": "frozen"
1262
+ },
1263
+ {
1264
+ "id": "input-group",
1265
+ "name": "InputGroup",
1266
+ "type": "component",
1267
+ "description": "输入框 + addon 统一容器 — shadcn 2025-10 新增。复合插槽 InputGroupAddon(图标 / 文本 / 按钮)+ InputGroupInput / InputGroupTextarea,等价 antd Input 的 prefix/suffix/addonBefore/addonAfter 集合",
1268
+ "files": [
1269
+ {
1270
+ "source": "src/components/input-group/input-group.tsx",
1271
+ "targetAlias": "components",
1272
+ "targetName": "input-group.tsx"
1273
+ }
1274
+ ],
1275
+ "meta": "src/components/input-group/input-group.meta.md",
1276
+ "registryDependencies": ["cn"],
1277
+ "updateStrategy": "frozen"
1278
+ },
1279
+ {
1280
+ "id": "item",
1281
+ "name": "Item",
1282
+ "type": "component",
1283
+ "description": "通用列表项 / 卡片项 — shadcn 2025-10 新增,取代旧 List.Item(antd v6 已废弃 List)。5 个语义槽:ItemMedia / ItemContent / ItemTitle / ItemDescription / ItemActions + ItemGroup 纵向排列",
1284
+ "files": [
1285
+ {
1286
+ "source": "src/components/item/item.tsx",
1287
+ "targetAlias": "components",
1288
+ "targetName": "item.tsx"
1289
+ }
1290
+ ],
1291
+ "meta": "src/components/item/item.meta.md",
1292
+ "registryDependencies": ["cn"],
1293
+ "dependencies": {
1294
+ "class-variance-authority": "^0.7.0"
1295
+ },
1296
+ "updateStrategy": "frozen"
1297
+ },
1298
+ {
1299
+ "id": "field",
1300
+ "name": "Field",
1301
+ "type": "component",
1302
+ "description": "通用表单字段抽象 — shadcn 2025-10 新增。Field / FieldLabel / FieldDescription / FieldError / FieldGroup / FieldSet / FieldLegend 7 个语义槽,跟任何状态管理(Server Actions / RHF / TanStack Form)都能搭,与 form 共存",
1303
+ "files": [
1304
+ {
1305
+ "source": "src/components/field/field.tsx",
1306
+ "targetAlias": "components",
1307
+ "targetName": "field.tsx"
1308
+ }
1309
+ ],
1310
+ "meta": "src/components/field/field.meta.md",
1311
+ "registryDependencies": ["cn", "label"],
1312
+ "dependencies": {
1313
+ "class-variance-authority": "^0.7.0"
1314
+ },
1315
+ "updateStrategy": "frozen"
1316
+ },
1317
+ {
1318
+ "id": "space",
1319
+ "name": "Space",
1320
+ "type": "component",
1321
+ "description": "间距容器 — antd 独有补足。等价 antd `Space`,把同语义并排子项统一间距 / 对齐 / 换行,可选 split(常用 Separator)。与 Flex 互补:Space 偏 inline 小集合",
1322
+ "files": [
1323
+ {
1324
+ "source": "src/components/space/space.tsx",
1325
+ "targetAlias": "components",
1326
+ "targetName": "space.tsx"
1327
+ }
1328
+ ],
1329
+ "meta": "src/components/space/space.meta.md",
1330
+ "registryDependencies": ["cn"],
1331
+ "dependencies": {
1332
+ "class-variance-authority": "^0.7.0"
1333
+ },
1334
+ "updateStrategy": "frozen"
1335
+ },
1336
+ {
1337
+ "id": "flex",
1338
+ "name": "Flex",
1339
+ "type": "component",
1340
+ "description": "Flex 布局容器 — antd 独有补足。等价 antd `Flex`(v5.10+),把 Tailwind flex 的常用配置(对齐 / 间距 / 换行 / 方向 / 渲染元素)收敛为枚举",
1341
+ "files": [
1342
+ {
1343
+ "source": "src/components/flex/flex.tsx",
1344
+ "targetAlias": "components",
1345
+ "targetName": "flex.tsx"
1346
+ }
1347
+ ],
1348
+ "meta": "src/components/flex/flex.meta.md",
1349
+ "registryDependencies": ["cn"],
1350
+ "updateStrategy": "frozen"
1351
+ },
1352
+ {
1353
+ "id": "grid",
1354
+ "name": "Grid",
1355
+ "type": "component",
1356
+ "description": "24 栅格(Row + Col) — antd 独有补足。等价 antd Row + Col,基于 CSS Grid 的 24 列容器,支持 span / offset / order / flex / gutter / justify / align",
1357
+ "files": [
1358
+ {
1359
+ "source": "src/components/grid/grid.tsx",
1360
+ "targetAlias": "components",
1361
+ "targetName": "grid.tsx"
1362
+ }
1363
+ ],
1364
+ "meta": "src/components/grid/grid.meta.md",
1365
+ "registryDependencies": ["cn"],
1366
+ "updateStrategy": "frozen"
1367
+ },
1368
+ {
1369
+ "id": "segmented",
1370
+ "name": "Segmented",
1371
+ "type": "component",
1372
+ "description": "分段控制器 — antd 独有补足。等价 antd `Segmented`(v5.0+),iOS / macOS 风格紧凑互斥单选(视图切换 / 时间区间 / 主题档)",
1373
+ "files": [
1374
+ {
1375
+ "source": "src/components/segmented/segmented.tsx",
1376
+ "targetAlias": "components",
1377
+ "targetName": "segmented.tsx"
1378
+ }
1379
+ ],
1380
+ "meta": "src/components/segmented/segmented.meta.md",
1381
+ "registryDependencies": ["cn"],
1382
+ "dependencies": {
1383
+ "class-variance-authority": "^0.7.0"
1384
+ },
1385
+ "updateStrategy": "frozen"
1386
+ },
1387
+ {
1388
+ "id": "rate",
1389
+ "name": "Rate",
1390
+ "type": "component",
1391
+ "description": "星级评分 — antd 独有补足。等价 antd `Rate`,支持半星 / 再次点击清零 / 自定义图标 / 只读展示",
1392
+ "files": [
1393
+ {
1394
+ "source": "src/components/rate/rate.tsx",
1395
+ "targetAlias": "components",
1396
+ "targetName": "rate.tsx"
1397
+ }
1398
+ ],
1399
+ "meta": "src/components/rate/rate.meta.md",
1400
+ "registryDependencies": ["cn"],
1401
+ "dependencies": {
1402
+ "lucide-react": "^0.460.0"
1403
+ },
1404
+ "updateStrategy": "frozen"
1405
+ },
1406
+ {
1407
+ "id": "timeline",
1408
+ "name": "Timeline",
1409
+ "type": "component",
1410
+ "description": "时间轴 — antd 独有补足。等价 antd `Timeline`,垂直时间流(历史 / 物流 / 进度),3 种布局 + 5 种圆点色 + 自定义 dot + pending 进行中占位",
1411
+ "files": [
1412
+ {
1413
+ "source": "src/components/timeline/timeline.tsx",
1414
+ "targetAlias": "components",
1415
+ "targetName": "timeline.tsx"
1416
+ }
1417
+ ],
1418
+ "meta": "src/components/timeline/timeline.meta.md",
1419
+ "registryDependencies": ["cn"],
1420
+ "updateStrategy": "frozen"
1421
+ },
1422
+ {
1423
+ "id": "popconfirm",
1424
+ "name": "Popconfirm",
1425
+ "type": "component",
1426
+ "description": "轻量级确认弹层 — antd 独有补足。等价 antd `Popconfirm`,小风险操作二次确认,onConfirm 支持 Promise 自动 loading,与 AlertDialog 互补(更轻、不阻塞)",
1427
+ "files": [
1428
+ {
1429
+ "source": "src/components/popconfirm/popconfirm.tsx",
1430
+ "targetAlias": "components",
1431
+ "targetName": "popconfirm.tsx"
1432
+ }
1433
+ ],
1434
+ "meta": "src/components/popconfirm/popconfirm.meta.md",
1435
+ "registryDependencies": ["cn", "button", "popover"],
1436
+ "dependencies": {
1437
+ "lucide-react": "^0.460.0"
1438
+ },
1439
+ "updateStrategy": "frozen"
1440
+ },
1441
+ {
1442
+ "id": "input-number",
1443
+ "name": "InputNumber",
1444
+ "type": "component",
1445
+ "description": "数字输入 — antd 独有补足。等价 antd `InputNumber`,步进按钮 + min/max 自动夹紧 + precision + 千分位展示 + 键盘 ↑↓ 步进 + null 空状态",
1446
+ "files": [
1447
+ {
1448
+ "source": "src/components/input-number/input-number.tsx",
1449
+ "targetAlias": "components",
1450
+ "targetName": "input-number.tsx"
1451
+ }
1452
+ ],
1453
+ "meta": "src/components/input-number/input-number.meta.md",
1454
+ "registryDependencies": ["cn"],
1455
+ "dependencies": {
1456
+ "lucide-react": "^0.460.0"
1457
+ },
1458
+ "updateStrategy": "frozen"
1459
+ },
1460
+ {
1461
+ "id": "time-picker",
1462
+ "name": "TimePicker",
1463
+ "type": "component",
1464
+ "description": "时间选择 — antd 独有补足。等价 antd `TimePicker` 基础能力,基于原生 input[type=time] 样式封装(零 JS、移动端友好、SSR safe)",
1465
+ "files": [
1466
+ {
1467
+ "source": "src/components/time-picker/time-picker.tsx",
1468
+ "targetAlias": "components",
1469
+ "targetName": "time-picker.tsx"
1470
+ }
1471
+ ],
1472
+ "meta": "src/components/time-picker/time-picker.meta.md",
1473
+ "registryDependencies": ["cn"],
1474
+ "dependencies": {
1475
+ "lucide-react": "^0.460.0"
1476
+ },
1477
+ "updateStrategy": "frozen"
1478
+ },
1479
+ {
1480
+ "id": "auto-complete",
1481
+ "name": "AutoComplete",
1482
+ "type": "component",
1483
+ "description": "输入即建议 — antd 独有补足。等价 antd `AutoComplete`,键入触发候选下拉,最终 value 可以是任意字符串(与 Combobox 必选互补),配 onSearch 实现异步建议",
1484
+ "files": [
1485
+ {
1486
+ "source": "src/components/auto-complete/auto-complete.tsx",
1487
+ "targetAlias": "components",
1488
+ "targetName": "auto-complete.tsx"
1489
+ }
1490
+ ],
1491
+ "meta": "src/components/auto-complete/auto-complete.meta.md",
1492
+ "registryDependencies": ["cn", "input"],
1493
+ "updateStrategy": "frozen"
1494
+ },
1495
+ {
1496
+ "id": "cascader",
1497
+ "name": "Cascader",
1498
+ "type": "component",
1499
+ "description": "级联选择 — antd 独有补足。等价 antd `Cascader`,多级联动(地区 / 分类 / 文件夹路径),多列面板,叶子触发 onChange(可改 changeOnSelect 为每级触发)",
1500
+ "files": [
1501
+ {
1502
+ "source": "src/components/cascader/cascader.tsx",
1503
+ "targetAlias": "components",
1504
+ "targetName": "cascader.tsx"
1505
+ }
1506
+ ],
1507
+ "meta": "src/components/cascader/cascader.meta.md",
1508
+ "registryDependencies": ["cn", "button", "popover"],
1509
+ "dependencies": {
1510
+ "lucide-react": "^0.460.0"
1511
+ },
1512
+ "updateStrategy": "frozen"
1513
+ },
1514
+ {
1515
+ "id": "tree-select",
1516
+ "name": "TreeSelect",
1517
+ "type": "component",
1518
+ "description": "树形下拉 — antd 独有补足。等价 antd `TreeSelect`,Tree 嵌入 Popover 提供单选 / 多选(父子级联勾选)两种模式,组织架构 / 分类树形选择常用",
1519
+ "files": [
1520
+ {
1521
+ "source": "src/components/tree-select/tree-select.tsx",
1522
+ "targetAlias": "components",
1523
+ "targetName": "tree-select.tsx"
1524
+ }
1525
+ ],
1526
+ "meta": "src/components/tree-select/tree-select.meta.md",
1527
+ "registryDependencies": ["cn", "button", "popover", "tree"],
1528
+ "dependencies": {
1529
+ "lucide-react": "^0.460.0"
1530
+ },
1531
+ "updateStrategy": "frozen"
1532
+ },
1533
+ {
1534
+ "id": "notification",
1535
+ "name": "notification",
1536
+ "type": "component",
1537
+ "description": "卡片式通知 — antd 独有补足。等价 antd `Notification`,基于 sonner toast.custom 二次封装,提供 title + description + 状态图标卡片化 API,与 toast(message)互补,共用 Toaster 容器",
1538
+ "files": [
1539
+ {
1540
+ "source": "src/components/notification/notification.tsx",
1541
+ "targetAlias": "components",
1542
+ "targetName": "notification.tsx"
1543
+ }
1544
+ ],
1545
+ "meta": "src/components/notification/notification.meta.md",
1546
+ "registryDependencies": ["cn", "sonner"],
1547
+ "dependencies": {
1548
+ "sonner": "^1.5.0",
1549
+ "lucide-react": "^0.460.0"
1550
+ },
1551
+ "updateStrategy": "frozen"
1552
+ },
1553
+ {
1554
+ "id": "app",
1555
+ "name": "App",
1556
+ "type": "component",
1557
+ "description": "应用根容器 — antd 独有补足。对标 antd `App`,挂全局 Toaster + 设置 dir / lang + 根级 className 承载;不接管主题(主题靠 design tokens),不收敛 useApp() hook",
1558
+ "files": [
1559
+ {
1560
+ "source": "src/components/app/app.tsx",
1561
+ "targetAlias": "components",
1562
+ "targetName": "app.tsx"
1563
+ }
1564
+ ],
1565
+ "meta": "src/components/app/app.meta.md",
1566
+ "registryDependencies": ["cn", "sonner"],
1567
+ "updateStrategy": "frozen"
1568
+ },
1569
+ {
1570
+ "id": "affix",
1571
+ "name": "Affix",
1572
+ "type": "component",
1573
+ "description": "滚动吸顶 / 吸底 — antd 独有补足。等价 antd `Affix`,滚出指定偏移时切为 position: fixed,保留原占位避免页面跳动,基于 scroll + getBoundingClientRect",
1574
+ "files": [
1575
+ {
1576
+ "source": "src/components/affix/affix.tsx",
1577
+ "targetAlias": "components",
1578
+ "targetName": "affix.tsx"
1579
+ }
1580
+ ],
1581
+ "meta": "src/components/affix/affix.meta.md",
1582
+ "registryDependencies": ["cn"],
1583
+ "updateStrategy": "frozen"
1584
+ },
1585
+ {
1586
+ "id": "anchor",
1587
+ "name": "Anchor",
1588
+ "type": "component",
1589
+ "description": "锚点导航 — antd 独有补足。等价 antd `Anchor`,长文档 / 详情页侧边目录,点击滚动到 id 节点,滚动时 IntersectionObserver 自动高亮,支持嵌套两层缩进",
1590
+ "files": [
1591
+ {
1592
+ "source": "src/components/anchor/anchor.tsx",
1593
+ "targetAlias": "components",
1594
+ "targetName": "anchor.tsx"
1595
+ }
1596
+ ],
1597
+ "meta": "src/components/anchor/anchor.meta.md",
1598
+ "registryDependencies": ["cn"],
1599
+ "updateStrategy": "frozen"
1600
+ },
1601
+ {
1602
+ "id": "float-button",
1603
+ "name": "FloatButton",
1604
+ "type": "component",
1605
+ "description": "悬浮按钮 — antd 独有补足。等价 antd `FloatButton`(v5.0,替代旧 BackTop)。固定右下角强主张操作,配 FloatButtonGroup 堆叠多个,FloatButtonBackTop 预置回到顶部",
1606
+ "files": [
1607
+ {
1608
+ "source": "src/components/float-button/float-button.tsx",
1609
+ "targetAlias": "components",
1610
+ "targetName": "float-button.tsx"
1611
+ }
1612
+ ],
1613
+ "meta": "src/components/float-button/float-button.meta.md",
1614
+ "registryDependencies": ["cn"],
1615
+ "dependencies": {
1616
+ "lucide-react": "^0.460.0"
1617
+ },
1618
+ "updateStrategy": "frozen"
1619
+ },
1620
+ {
1621
+ "id": "color-picker",
1622
+ "name": "ColorPicker",
1623
+ "type": "component",
1624
+ "description": "颜色选择 — antd 独有补足。等价 antd `ColorPicker`(v5.5+),触发器色块 + Popover 面板(原生 color input + alpha 滑块 + hex 输入 + 预设色板),支持 8 位 hex(含透明度)",
1625
+ "files": [
1626
+ {
1627
+ "source": "src/components/color-picker/color-picker.tsx",
1628
+ "targetAlias": "components",
1629
+ "targetName": "color-picker.tsx"
1630
+ }
1631
+ ],
1632
+ "meta": "src/components/color-picker/color-picker.meta.md",
1633
+ "registryDependencies": ["cn", "input", "popover"],
1634
+ "updateStrategy": "frozen"
1635
+ },
1636
+ {
1637
+ "id": "tour",
1638
+ "name": "Tour",
1639
+ "type": "component",
1640
+ "description": "新手引导 — antd 独有补足。等价 antd `Tour`(v5.0+),多步骤 spotlight + 卡片 + 步进按钮 + 可关闭,业务侧自管首次访问标记",
1641
+ "files": [
1642
+ {
1643
+ "source": "src/components/tour/tour.tsx",
1644
+ "targetAlias": "components",
1645
+ "targetName": "tour.tsx"
1646
+ }
1647
+ ],
1648
+ "meta": "src/components/tour/tour.meta.md",
1649
+ "registryDependencies": ["cn", "button"],
1650
+ "dependencies": {
1651
+ "lucide-react": "^0.460.0"
1652
+ },
1653
+ "updateStrategy": "frozen"
1654
+ },
1655
+ {
1656
+ "id": "watermark",
1657
+ "name": "Watermark",
1658
+ "type": "component",
1659
+ "description": "水印 — antd 独有补足。等价 antd `Watermark`(v5.1+),容器内重复平铺的 SVG 文字 / 图片水印(内部敏感页面 / 文档预览 / demo 录屏)。仅前端视觉,不作安全防护",
1660
+ "files": [
1661
+ {
1662
+ "source": "src/components/watermark/watermark.tsx",
1663
+ "targetAlias": "components",
1664
+ "targetName": "watermark.tsx"
1665
+ }
1666
+ ],
1667
+ "meta": "src/components/watermark/watermark.meta.md",
1668
+ "registryDependencies": ["cn"],
1669
+ "updateStrategy": "frozen"
1670
+ },
1671
+ {
1672
+ "id": "masonry",
1673
+ "name": "Masonry",
1674
+ "type": "component",
1675
+ "description": "瀑布流 — antd 独有补足。等价 antd `Masonry`(v6.0 新),CSS column-count + break-inside: avoid 的 0 JS 实现,SSR 友好(图片墙 / 资讯卡片 / Dashboard 卡片墙)",
1676
+ "files": [
1677
+ {
1678
+ "source": "src/components/masonry/masonry.tsx",
1679
+ "targetAlias": "components",
1680
+ "targetName": "masonry.tsx"
1681
+ }
1682
+ ],
1683
+ "meta": "src/components/masonry/masonry.meta.md",
1684
+ "registryDependencies": ["cn"],
1685
+ "updateStrategy": "frozen"
1686
+ }
1687
+ ]
1688
+ }