@ptengine/design-components 0.3.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.
Files changed (197) hide show
  1. package/README.md +309 -0
  2. package/components.json +21 -0
  3. package/dist/components/ui/accordion.d.ts +8 -0
  4. package/dist/components/ui/accordion.d.ts.map +1 -0
  5. package/dist/components/ui/alert-dialog.d.ts +21 -0
  6. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  7. package/dist/components/ui/alert.d.ts +9 -0
  8. package/dist/components/ui/alert.d.ts.map +1 -0
  9. package/dist/components/ui/aspect-ratio.d.ts +4 -0
  10. package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
  11. package/dist/components/ui/attachment.d.ts +26 -0
  12. package/dist/components/ui/attachment.d.ts.map +1 -0
  13. package/dist/components/ui/avatar.d.ts +10 -0
  14. package/dist/components/ui/avatar.d.ts.map +1 -0
  15. package/dist/components/ui/badge.d.ts +10 -0
  16. package/dist/components/ui/badge.d.ts.map +1 -0
  17. package/dist/components/ui/breadcrumb.d.ts +22 -0
  18. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  19. package/dist/components/ui/bubble.d.ts +19 -0
  20. package/dist/components/ui/bubble.d.ts.map +1 -0
  21. package/dist/components/ui/button-group.d.ts +13 -0
  22. package/dist/components/ui/button-group.d.ts.map +1 -0
  23. package/dist/components/ui/button.d.ts +13 -0
  24. package/dist/components/ui/button.d.ts.map +1 -0
  25. package/dist/components/ui/calendar.d.ts +9 -0
  26. package/dist/components/ui/calendar.d.ts.map +1 -0
  27. package/dist/components/ui/card.d.ts +9 -0
  28. package/dist/components/ui/card.d.ts.map +1 -0
  29. package/dist/components/ui/carousel.d.ts +23 -0
  30. package/dist/components/ui/carousel.d.ts.map +1 -0
  31. package/dist/components/ui/chart.d.ts +63 -0
  32. package/dist/components/ui/chart.d.ts.map +1 -0
  33. package/dist/components/ui/checkbox.d.ts +5 -0
  34. package/dist/components/ui/checkbox.d.ts.map +1 -0
  35. package/dist/components/ui/collapsible.d.ts +6 -0
  36. package/dist/components/ui/collapsible.d.ts.map +1 -0
  37. package/dist/components/ui/command.d.ts +81 -0
  38. package/dist/components/ui/command.d.ts.map +1 -0
  39. package/dist/components/ui/context-menu.d.ts +28 -0
  40. package/dist/components/ui/context-menu.d.ts.map +1 -0
  41. package/dist/components/ui/dialog.d.ts +22 -0
  42. package/dist/components/ui/dialog.d.ts.map +1 -0
  43. package/dist/components/ui/direction.d.ts +8 -0
  44. package/dist/components/ui/direction.d.ts.map +1 -0
  45. package/dist/components/ui/drawer.d.ts +23 -0
  46. package/dist/components/ui/drawer.d.ts.map +1 -0
  47. package/dist/components/ui/dropdown-menu.d.ts +28 -0
  48. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  49. package/dist/components/ui/empty.d.ts +13 -0
  50. package/dist/components/ui/empty.d.ts.map +1 -0
  51. package/dist/components/ui/field.d.ts +25 -0
  52. package/dist/components/ui/field.d.ts.map +1 -0
  53. package/dist/components/ui/hover-card.d.ts +7 -0
  54. package/dist/components/ui/hover-card.d.ts.map +1 -0
  55. package/dist/components/ui/input-group.d.ts +13 -0
  56. package/dist/components/ui/input-group.d.ts.map +1 -0
  57. package/dist/components/ui/input-otp.d.ts +35 -0
  58. package/dist/components/ui/input-otp.d.ts.map +1 -0
  59. package/dist/components/ui/input.d.ts +5 -0
  60. package/dist/components/ui/input.d.ts.map +1 -0
  61. package/dist/components/ui/item.d.ts +24 -0
  62. package/dist/components/ui/item.d.ts.map +1 -0
  63. package/dist/components/ui/kbd.d.ts +5 -0
  64. package/dist/components/ui/kbd.d.ts.map +1 -0
  65. package/dist/components/ui/label.d.ts +6 -0
  66. package/dist/components/ui/label.d.ts.map +1 -0
  67. package/dist/components/ui/marker.d.ts +13 -0
  68. package/dist/components/ui/marker.d.ts.map +1 -0
  69. package/dist/components/ui/menubar.d.ts +29 -0
  70. package/dist/components/ui/menubar.d.ts.map +1 -0
  71. package/dist/components/ui/message-scroller.d.ts +26 -0
  72. package/dist/components/ui/message-scroller.d.ts.map +1 -0
  73. package/dist/components/ui/message.d.ts +11 -0
  74. package/dist/components/ui/message.d.ts.map +1 -0
  75. package/dist/components/ui/native-select.d.ts +4 -0
  76. package/dist/components/ui/native-select.d.ts.map +1 -0
  77. package/dist/components/ui/navigation-menu.d.ts +13 -0
  78. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  79. package/dist/components/ui/pagination.d.ts +35 -0
  80. package/dist/components/ui/pagination.d.ts.map +1 -0
  81. package/dist/components/ui/popover.d.ts +8 -0
  82. package/dist/components/ui/popover.d.ts.map +1 -0
  83. package/dist/components/ui/progress.d.ts +5 -0
  84. package/dist/components/ui/progress.d.ts.map +1 -0
  85. package/dist/components/ui/radio-group.d.ts +6 -0
  86. package/dist/components/ui/radio-group.d.ts.map +1 -0
  87. package/dist/components/ui/resizable.d.ts +24 -0
  88. package/dist/components/ui/resizable.d.ts.map +1 -0
  89. package/dist/components/ui/scroll-area.d.ts +6 -0
  90. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  91. package/dist/components/ui/search-input.d.ts +23 -0
  92. package/dist/components/ui/search-input.d.ts.map +1 -0
  93. package/dist/components/ui/select.d.ts +14 -0
  94. package/dist/components/ui/select.d.ts.map +1 -0
  95. package/dist/components/ui/separator.d.ts +5 -0
  96. package/dist/components/ui/separator.d.ts.map +1 -0
  97. package/dist/components/ui/sheet.d.ts +28 -0
  98. package/dist/components/ui/sheet.d.ts.map +1 -0
  99. package/dist/components/ui/sidebar.d.ts +70 -0
  100. package/dist/components/ui/sidebar.d.ts.map +1 -0
  101. package/dist/components/ui/skeleton.d.ts +4 -0
  102. package/dist/components/ui/skeleton.d.ts.map +1 -0
  103. package/dist/components/ui/slider.d.ts +5 -0
  104. package/dist/components/ui/slider.d.ts.map +1 -0
  105. package/dist/components/ui/sonner.d.ts +6 -0
  106. package/dist/components/ui/sonner.d.ts.map +1 -0
  107. package/dist/components/ui/spinner.d.ts +7 -0
  108. package/dist/components/ui/spinner.d.ts.map +1 -0
  109. package/dist/components/ui/switch.d.ts +5 -0
  110. package/dist/components/ui/switch.d.ts.map +1 -0
  111. package/dist/components/ui/table.d.ts +11 -0
  112. package/dist/components/ui/table.d.ts.map +1 -0
  113. package/dist/components/ui/tabs.d.ts +13 -0
  114. package/dist/components/ui/tabs.d.ts.map +1 -0
  115. package/dist/components/ui/textarea.d.ts +5 -0
  116. package/dist/components/ui/textarea.d.ts.map +1 -0
  117. package/dist/components/ui/toggle-group.d.ts +13 -0
  118. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  119. package/dist/components/ui/toggle.d.ts +13 -0
  120. package/dist/components/ui/toggle.d.ts.map +1 -0
  121. package/dist/components/ui/tooltip.d.ts +8 -0
  122. package/dist/components/ui/tooltip.d.ts.map +1 -0
  123. package/dist/hooks/use-mobile.d.ts +2 -0
  124. package/dist/hooks/use-mobile.d.ts.map +1 -0
  125. package/dist/index.cjs +82 -0
  126. package/dist/index.d.ts +71 -0
  127. package/dist/index.d.ts.map +1 -0
  128. package/dist/index.js +20969 -0
  129. package/dist/lib/utils.d.ts +4 -0
  130. package/dist/lib/utils.d.ts.map +1 -0
  131. package/llms.txt +173 -0
  132. package/package.json +125 -0
  133. package/src/components/ui/accordion.tsx +51 -0
  134. package/src/components/ui/alert-dialog.tsx +115 -0
  135. package/src/components/ui/alert.tsx +48 -0
  136. package/src/components/ui/aspect-ratio.tsx +5 -0
  137. package/src/components/ui/attachment.tsx +186 -0
  138. package/src/components/ui/avatar.tsx +57 -0
  139. package/src/components/ui/badge.tsx +40 -0
  140. package/src/components/ui/breadcrumb.tsx +101 -0
  141. package/src/components/ui/bubble.tsx +123 -0
  142. package/src/components/ui/button-group.tsx +74 -0
  143. package/src/components/ui/button.tsx +64 -0
  144. package/src/components/ui/calendar.tsx +63 -0
  145. package/src/components/ui/card.tsx +55 -0
  146. package/src/components/ui/carousel.tsx +252 -0
  147. package/src/components/ui/chart.tsx +323 -0
  148. package/src/components/ui/checkbox.tsx +26 -0
  149. package/src/components/ui/collapsible.tsx +9 -0
  150. package/src/components/ui/command.tsx +136 -0
  151. package/src/components/ui/context-menu.tsx +187 -0
  152. package/src/components/ui/dialog.tsx +103 -0
  153. package/src/components/ui/direction.tsx +15 -0
  154. package/src/components/ui/drawer.tsx +98 -0
  155. package/src/components/ui/dropdown-menu.tsx +186 -0
  156. package/src/components/ui/empty.tsx +75 -0
  157. package/src/components/ui/field.tsx +175 -0
  158. package/src/components/ui/hover-card.tsx +27 -0
  159. package/src/components/ui/input-group.tsx +80 -0
  160. package/src/components/ui/input-otp.tsx +67 -0
  161. package/src/components/ui/input.tsx +24 -0
  162. package/src/components/ui/item.tsx +118 -0
  163. package/src/components/ui/kbd.tsx +21 -0
  164. package/src/components/ui/label.tsx +19 -0
  165. package/src/components/ui/marker.tsx +67 -0
  166. package/src/components/ui/menubar.tsx +218 -0
  167. package/src/components/ui/message-scroller.tsx +206 -0
  168. package/src/components/ui/message.tsx +85 -0
  169. package/src/components/ui/native-select.tsx +29 -0
  170. package/src/components/ui/navigation-menu.tsx +120 -0
  171. package/src/components/ui/pagination.tsx +108 -0
  172. package/src/components/ui/popover.tsx +31 -0
  173. package/src/components/ui/progress.tsx +23 -0
  174. package/src/components/ui/radio-group.tsx +36 -0
  175. package/src/components/ui/resizable.tsx +40 -0
  176. package/src/components/ui/scroll-area.tsx +44 -0
  177. package/src/components/ui/search-input.tsx +97 -0
  178. package/src/components/ui/select.tsx +151 -0
  179. package/src/components/ui/separator.tsx +24 -0
  180. package/src/components/ui/sheet.tsx +124 -0
  181. package/src/components/ui/sidebar.tsx +704 -0
  182. package/src/components/ui/skeleton.tsx +9 -0
  183. package/src/components/ui/slider.tsx +41 -0
  184. package/src/components/ui/sonner.tsx +45 -0
  185. package/src/components/ui/spinner.tsx +21 -0
  186. package/src/components/ui/switch.tsx +27 -0
  187. package/src/components/ui/table.tsx +95 -0
  188. package/src/components/ui/tabs.tsx +119 -0
  189. package/src/components/ui/textarea.tsx +23 -0
  190. package/src/components/ui/toggle-group.tsx +55 -0
  191. package/src/components/ui/toggle.tsx +40 -0
  192. package/src/components/ui/tooltip.tsx +30 -0
  193. package/src/hooks/use-mobile.ts +19 -0
  194. package/src/index.ts +414 -0
  195. package/src/lib/utils.ts +7 -0
  196. package/src/styles/tokens.css +360 -0
  197. package/tailwind.preset.js +235 -0
package/src/index.ts ADDED
@@ -0,0 +1,414 @@
1
+ // ─────────────────────────────────────────────────────────────
2
+ // PT-AI-Components (@ptengine/pt-ai-components) 统一出口
3
+ // 组件结构对齐 shadcn/ui 官方(https://ui.shadcn.com/docs/components)。
4
+ // 已实现组件在下方导出;其余在 components/ui/ 下已建同名占位文件,
5
+ // 实现后把对应行从「待实现清单」移到上面导出即可。
6
+ // ─────────────────────────────────────────────────────────────
7
+
8
+ export { cn } from './lib/utils';
9
+
10
+ // ===== 已实现 =====
11
+ export { Button, buttonVariants } from './components/ui/button';
12
+ export type { ButtonProps } from './components/ui/button';
13
+
14
+ export { Input } from './components/ui/input';
15
+ export type { InputProps } from './components/ui/input';
16
+
17
+ export { Label } from './components/ui/label';
18
+
19
+ export { Badge, badgeVariants } from './components/ui/badge';
20
+ export type { BadgeProps } from './components/ui/badge';
21
+
22
+ export { Textarea } from './components/ui/textarea';
23
+ export type { TextareaProps } from './components/ui/textarea';
24
+
25
+ export { Checkbox } from './components/ui/checkbox';
26
+
27
+ export { Switch } from './components/ui/switch';
28
+
29
+ export { RadioGroup, RadioGroupItem } from './components/ui/radio-group';
30
+
31
+ export { Tabs, TabsList, TabsTrigger, TabsContent } from './components/ui/tabs';
32
+
33
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from './components/ui/tooltip';
34
+
35
+ export {
36
+ Dialog,
37
+ DialogPortal,
38
+ DialogOverlay,
39
+ DialogTrigger,
40
+ DialogClose,
41
+ DialogContent,
42
+ DialogHeader,
43
+ DialogFooter,
44
+ DialogTitle,
45
+ DialogDescription
46
+ } from './components/ui/dialog';
47
+
48
+ export {
49
+ Select,
50
+ SelectGroup,
51
+ SelectValue,
52
+ SelectTrigger,
53
+ SelectContent,
54
+ SelectLabel,
55
+ SelectItem,
56
+ SelectSeparator,
57
+ SelectScrollUpButton,
58
+ SelectScrollDownButton
59
+ } from './components/ui/select';
60
+
61
+ export {
62
+ DropdownMenu,
63
+ DropdownMenuTrigger,
64
+ DropdownMenuContent,
65
+ DropdownMenuItem,
66
+ DropdownMenuCheckboxItem,
67
+ DropdownMenuRadioItem,
68
+ DropdownMenuLabel,
69
+ DropdownMenuSeparator,
70
+ DropdownMenuShortcut,
71
+ DropdownMenuGroup,
72
+ DropdownMenuPortal,
73
+ DropdownMenuSub,
74
+ DropdownMenuSubContent,
75
+ DropdownMenuSubTrigger,
76
+ DropdownMenuRadioGroup
77
+ } from './components/ui/dropdown-menu';
78
+
79
+ export {
80
+ Card,
81
+ CardHeader,
82
+ CardFooter,
83
+ CardTitle,
84
+ CardDescription,
85
+ CardContent
86
+ } from './components/ui/card';
87
+
88
+ export {
89
+ Table,
90
+ TableHeader,
91
+ TableBody,
92
+ TableFooter,
93
+ TableHead,
94
+ TableRow,
95
+ TableCell,
96
+ TableCaption
97
+ } from './components/ui/table';
98
+
99
+ export { Avatar, AvatarImage, AvatarFallback } from './components/ui/avatar';
100
+
101
+ export { Toaster, toast } from './components/ui/sonner';
102
+
103
+ export {
104
+ Collapsible,
105
+ CollapsibleTrigger,
106
+ CollapsibleContent
107
+ } from './components/ui/collapsible';
108
+
109
+ export { Separator } from './components/ui/separator';
110
+
111
+ export {
112
+ Empty,
113
+ EmptyHeader,
114
+ EmptyMedia,
115
+ EmptyTitle,
116
+ EmptyDescription,
117
+ EmptyContent
118
+ } from './components/ui/empty';
119
+
120
+ export {
121
+ Accordion,
122
+ AccordionItem,
123
+ AccordionTrigger,
124
+ AccordionContent
125
+ } from './components/ui/accordion';
126
+
127
+ export { Alert, AlertTitle, AlertDescription } from './components/ui/alert';
128
+
129
+ export {
130
+ AlertDialog,
131
+ AlertDialogPortal,
132
+ AlertDialogOverlay,
133
+ AlertDialogTrigger,
134
+ AlertDialogContent,
135
+ AlertDialogHeader,
136
+ AlertDialogFooter,
137
+ AlertDialogTitle,
138
+ AlertDialogDescription,
139
+ AlertDialogAction,
140
+ AlertDialogCancel
141
+ } from './components/ui/alert-dialog';
142
+
143
+ export { AspectRatio } from './components/ui/aspect-ratio';
144
+
145
+ export {
146
+ Breadcrumb,
147
+ BreadcrumbList,
148
+ BreadcrumbItem,
149
+ BreadcrumbLink,
150
+ BreadcrumbPage,
151
+ BreadcrumbSeparator,
152
+ BreadcrumbEllipsis
153
+ } from './components/ui/breadcrumb';
154
+
155
+ export {
156
+ ButtonGroup,
157
+ ButtonGroupSeparator,
158
+ ButtonGroupText,
159
+ buttonGroupVariants
160
+ } from './components/ui/button-group';
161
+
162
+ export {
163
+ ContextMenu,
164
+ ContextMenuTrigger,
165
+ ContextMenuContent,
166
+ ContextMenuItem,
167
+ ContextMenuCheckboxItem,
168
+ ContextMenuRadioItem,
169
+ ContextMenuLabel,
170
+ ContextMenuSeparator,
171
+ ContextMenuShortcut,
172
+ ContextMenuGroup,
173
+ ContextMenuPortal,
174
+ ContextMenuSub,
175
+ ContextMenuSubContent,
176
+ ContextMenuSubTrigger,
177
+ ContextMenuRadioGroup
178
+ } from './components/ui/context-menu';
179
+
180
+ export {
181
+ Field,
182
+ FieldContent,
183
+ FieldDescription,
184
+ FieldError,
185
+ FieldGroup,
186
+ FieldLabel,
187
+ FieldLegend,
188
+ FieldSeparator,
189
+ FieldSet,
190
+ FieldTitle
191
+ } from './components/ui/field';
192
+
193
+ export { HoverCard, HoverCardTrigger, HoverCardContent } from './components/ui/hover-card';
194
+
195
+ export {
196
+ InputGroup,
197
+ InputGroupAddon,
198
+ InputGroupButton,
199
+ InputGroupInput,
200
+ InputGroupText
201
+ } from './components/ui/input-group';
202
+
203
+ export { SearchInput } from './components/ui/search-input';
204
+ export type { SearchInputProps } from './components/ui/search-input';
205
+
206
+ export {
207
+ Item,
208
+ ItemActions,
209
+ ItemContent,
210
+ ItemDescription,
211
+ ItemFooter,
212
+ ItemGroup,
213
+ ItemHeader,
214
+ ItemMedia,
215
+ ItemSeparator,
216
+ ItemTitle
217
+ } from './components/ui/item';
218
+
219
+ export { Kbd, KbdGroup } from './components/ui/kbd';
220
+
221
+ export {
222
+ Menubar,
223
+ MenubarMenu,
224
+ MenubarTrigger,
225
+ MenubarContent,
226
+ MenubarItem,
227
+ MenubarSeparator,
228
+ MenubarLabel,
229
+ MenubarCheckboxItem,
230
+ MenubarRadioGroup,
231
+ MenubarRadioItem,
232
+ MenubarPortal,
233
+ MenubarSubContent,
234
+ MenubarSubTrigger,
235
+ MenubarGroup,
236
+ MenubarSub,
237
+ MenubarShortcut
238
+ } from './components/ui/menubar';
239
+
240
+ export { NativeSelect } from './components/ui/native-select';
241
+
242
+ export {
243
+ navigationMenuTriggerStyle,
244
+ NavigationMenu,
245
+ NavigationMenuList,
246
+ NavigationMenuItem,
247
+ NavigationMenuContent,
248
+ NavigationMenuTrigger,
249
+ NavigationMenuLink,
250
+ NavigationMenuIndicator,
251
+ NavigationMenuViewport
252
+ } from './components/ui/navigation-menu';
253
+
254
+ export {
255
+ Pagination,
256
+ PaginationContent,
257
+ PaginationLink,
258
+ PaginationItem,
259
+ PaginationPrevious,
260
+ PaginationNext,
261
+ PaginationEllipsis
262
+ } from './components/ui/pagination';
263
+
264
+ export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } from './components/ui/popover';
265
+
266
+ export { Progress } from './components/ui/progress';
267
+
268
+ export { ScrollArea, ScrollBar } from './components/ui/scroll-area';
269
+
270
+ export {
271
+ Sheet,
272
+ SheetPortal,
273
+ SheetOverlay,
274
+ SheetTrigger,
275
+ SheetClose,
276
+ SheetContent,
277
+ SheetHeader,
278
+ SheetFooter,
279
+ SheetTitle,
280
+ SheetDescription
281
+ } from './components/ui/sheet';
282
+
283
+ export { Skeleton } from './components/ui/skeleton';
284
+
285
+ export { Slider } from './components/ui/slider';
286
+
287
+ export { Spinner } from './components/ui/spinner';
288
+
289
+ export { Toggle, toggleVariants } from './components/ui/toggle';
290
+
291
+ export { ToggleGroup, ToggleGroupItem } from './components/ui/toggle-group';
292
+
293
+ export { Calendar } from './components/ui/calendar';
294
+ export type { CalendarProps } from './components/ui/calendar';
295
+
296
+ export {
297
+ Carousel,
298
+ CarouselContent,
299
+ CarouselItem,
300
+ CarouselPrevious,
301
+ CarouselNext
302
+ } from './components/ui/carousel';
303
+ export type { CarouselApi } from './components/ui/carousel';
304
+
305
+ export {
306
+ ChartContainer,
307
+ ChartTooltip,
308
+ ChartTooltipContent,
309
+ ChartLegend,
310
+ ChartLegendContent,
311
+ ChartStyle
312
+ } from './components/ui/chart';
313
+ export type { ChartConfig } from './components/ui/chart';
314
+
315
+ export {
316
+ Command,
317
+ CommandDialog,
318
+ CommandInput,
319
+ CommandList,
320
+ CommandEmpty,
321
+ CommandGroup,
322
+ CommandItem,
323
+ CommandShortcut,
324
+ CommandSeparator
325
+ } from './components/ui/command';
326
+
327
+ export {
328
+ Drawer,
329
+ DrawerPortal,
330
+ DrawerOverlay,
331
+ DrawerTrigger,
332
+ DrawerClose,
333
+ DrawerContent,
334
+ DrawerHeader,
335
+ DrawerFooter,
336
+ DrawerTitle,
337
+ DrawerDescription
338
+ } from './components/ui/drawer';
339
+
340
+ export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from './components/ui/input-otp';
341
+
342
+ export { ResizablePanelGroup, ResizablePanel, ResizableHandle } from './components/ui/resizable';
343
+
344
+ export {
345
+ Sidebar,
346
+ SidebarContent,
347
+ SidebarFooter,
348
+ SidebarGroup,
349
+ SidebarGroupAction,
350
+ SidebarGroupContent,
351
+ SidebarGroupLabel,
352
+ SidebarHeader,
353
+ SidebarInput,
354
+ SidebarInset,
355
+ SidebarMenu,
356
+ SidebarMenuAction,
357
+ SidebarMenuBadge,
358
+ SidebarMenuButton,
359
+ SidebarMenuItem,
360
+ SidebarMenuSkeleton,
361
+ SidebarMenuSub,
362
+ SidebarMenuSubButton,
363
+ SidebarMenuSubItem,
364
+ SidebarProvider,
365
+ SidebarRail,
366
+ SidebarSeparator,
367
+ SidebarTrigger,
368
+ useSidebar
369
+ } from './components/ui/sidebar';
370
+
371
+ // ===== Chat / AI 对话(shadcn 2026-06 新增分类)=====
372
+ export {
373
+ MessageGroup,
374
+ Message,
375
+ MessageAvatar,
376
+ MessageContent,
377
+ MessageFooter,
378
+ MessageHeader
379
+ } from './components/ui/message';
380
+
381
+ export {
382
+ MessageScrollerProvider,
383
+ MessageScroller,
384
+ MessageScrollerViewport,
385
+ MessageScrollerContent,
386
+ MessageScrollerItem,
387
+ MessageScrollerButton,
388
+ useMessageScroller
389
+ } from './components/ui/message-scroller';
390
+
391
+ export { BubbleGroup, Bubble, BubbleContent, BubbleReactions } from './components/ui/bubble';
392
+
393
+ export {
394
+ Attachment,
395
+ AttachmentGroup,
396
+ AttachmentMedia,
397
+ AttachmentContent,
398
+ AttachmentTitle,
399
+ AttachmentDescription,
400
+ AttachmentActions,
401
+ AttachmentAction,
402
+ AttachmentTrigger
403
+ } from './components/ui/attachment';
404
+
405
+ export { Marker, MarkerIcon, MarkerContent, markerVariants } from './components/ui/marker';
406
+
407
+ export { DirectionProvider, useDirection } from './components/ui/direction';
408
+
409
+ export { useIsMobile } from './hooks/use-mobile';
410
+
411
+ // ===== 组合模式(无独立组件文件,由现有组件组装,示例见 playground)=====
412
+ // combobox = Popover + Command · date-picker = Popover + Calendar
413
+ // data-table = Table + @tanstack/react-table
414
+ // (toast 已由 sonner 取代;typography 规范见 playground Design Guide)
@@ -0,0 +1,7 @@
1
+ import { clsx, type ClassValue } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+
4
+ /** 合并 className:clsx 处理条件,tailwind-merge 消解 Tailwind 冲突类。 */
5
+ export function cn(...inputs: ClassValue[]) {
6
+ return twMerge(clsx(inputs));
7
+ }