@gv-tech/design-system 0.9.0 → 1.1.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 (425) hide show
  1. package/.github/workflows/ci.yml +3 -12
  2. package/.github/workflows/release-please.yml +2 -2
  3. package/.vscode/mcp.json +8 -0
  4. package/CHANGELOG.md +32 -0
  5. package/components.json +20 -0
  6. package/dist/App.d.ts +3 -0
  7. package/dist/App.d.ts.map +1 -0
  8. package/dist/components/docs/CodeBlock.d.ts +8 -0
  9. package/dist/components/docs/CodeBlock.d.ts.map +1 -0
  10. package/dist/components/docs/ComponentShowcase.d.ts +17 -0
  11. package/dist/components/docs/ComponentShowcase.d.ts.map +1 -0
  12. package/dist/components/docs/Footer.d.ts +2 -0
  13. package/dist/components/docs/Footer.d.ts.map +1 -0
  14. package/dist/components/docs/Sidebar.d.ts +14 -0
  15. package/dist/components/docs/Sidebar.d.ts.map +1 -0
  16. package/dist/components/docs/ThemeToggle.d.ts +2 -0
  17. package/dist/components/docs/ThemeToggle.d.ts.map +1 -0
  18. package/dist/components/docs/index.d.ts +6 -0
  19. package/dist/components/docs/index.d.ts.map +1 -0
  20. package/dist/components/ui/accordion.d.ts +8 -0
  21. package/dist/components/ui/accordion.d.ts.map +1 -0
  22. package/dist/components/ui/alert-dialog.d.ts +21 -0
  23. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  24. package/dist/components/ui/alert.d.ts +9 -0
  25. package/dist/components/ui/alert.d.ts.map +1 -0
  26. package/dist/components/ui/aspect-ratio.d.ts +4 -0
  27. package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
  28. package/dist/components/ui/avatar.d.ts +7 -0
  29. package/dist/components/ui/avatar.d.ts.map +1 -0
  30. package/dist/components/ui/badge.d.ts +10 -0
  31. package/dist/components/ui/badge.d.ts.map +1 -0
  32. package/dist/components/ui/breadcrumb.d.ts +20 -0
  33. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  34. package/dist/components/ui/button.d.ts +12 -0
  35. package/dist/components/ui/button.d.ts.map +1 -0
  36. package/dist/components/ui/calendar.d.ts +9 -0
  37. package/dist/components/ui/calendar.d.ts.map +1 -0
  38. package/dist/components/ui/card.d.ts +9 -0
  39. package/dist/components/ui/card.d.ts.map +1 -0
  40. package/dist/components/ui/carousel.d.ts +19 -0
  41. package/dist/components/ui/carousel.d.ts.map +1 -0
  42. package/dist/components/ui/chart.d.ts +63 -0
  43. package/dist/components/ui/chart.d.ts.map +1 -0
  44. package/dist/components/ui/checkbox.d.ts +5 -0
  45. package/dist/components/ui/checkbox.d.ts.map +1 -0
  46. package/dist/components/ui/collapsible.d.ts +6 -0
  47. package/dist/components/ui/collapsible.d.ts.map +1 -0
  48. package/dist/components/ui/command.d.ts +81 -0
  49. package/dist/components/ui/command.d.ts.map +1 -0
  50. package/dist/components/ui/context-menu.d.ts +28 -0
  51. package/dist/components/ui/context-menu.d.ts.map +1 -0
  52. package/dist/components/ui/dialog.d.ts +20 -0
  53. package/dist/components/ui/dialog.d.ts.map +1 -0
  54. package/dist/components/ui/drawer.d.ts +23 -0
  55. package/dist/components/ui/drawer.d.ts.map +1 -0
  56. package/dist/components/ui/dropdown-menu.d.ts +28 -0
  57. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  58. package/dist/components/ui/form.d.ts +24 -0
  59. package/dist/components/ui/form.d.ts.map +1 -0
  60. package/dist/components/ui/hover-card.d.ts +7 -0
  61. package/dist/components/ui/hover-card.d.ts.map +1 -0
  62. package/dist/components/ui/input.d.ts +4 -0
  63. package/dist/components/ui/input.d.ts.map +1 -0
  64. package/dist/components/ui/label.d.ts +6 -0
  65. package/dist/components/ui/label.d.ts.map +1 -0
  66. package/dist/components/ui/menubar.d.ts +29 -0
  67. package/dist/components/ui/menubar.d.ts.map +1 -0
  68. package/dist/components/ui/navigation-menu.d.ts +13 -0
  69. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  70. package/dist/components/ui/pagination.d.ts +29 -0
  71. package/dist/components/ui/pagination.d.ts.map +1 -0
  72. package/dist/components/ui/popover.d.ts +8 -0
  73. package/dist/components/ui/popover.d.ts.map +1 -0
  74. package/dist/components/ui/progress.d.ts +5 -0
  75. package/dist/components/ui/progress.d.ts.map +1 -0
  76. package/dist/components/ui/radio-group.d.ts +6 -0
  77. package/dist/components/ui/radio-group.d.ts.map +1 -0
  78. package/dist/components/ui/resizable.d.ts +11 -0
  79. package/dist/components/ui/resizable.d.ts.map +1 -0
  80. package/dist/components/ui/scroll-area.d.ts +6 -0
  81. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  82. package/dist/components/ui/select.d.ts +14 -0
  83. package/dist/components/ui/select.d.ts.map +1 -0
  84. package/dist/components/ui/separator.d.ts +5 -0
  85. package/dist/components/ui/separator.d.ts.map +1 -0
  86. package/dist/components/ui/sheet.d.ts +26 -0
  87. package/dist/components/ui/sheet.d.ts.map +1 -0
  88. package/dist/components/ui/skeleton.d.ts +4 -0
  89. package/dist/components/ui/skeleton.d.ts.map +1 -0
  90. package/dist/components/ui/slider.d.ts +5 -0
  91. package/dist/components/ui/slider.d.ts.map +1 -0
  92. package/dist/components/ui/sonner.d.ts +6 -0
  93. package/dist/components/ui/sonner.d.ts.map +1 -0
  94. package/dist/components/ui/switch.d.ts +5 -0
  95. package/dist/components/ui/switch.d.ts.map +1 -0
  96. package/dist/components/ui/table.d.ts +11 -0
  97. package/dist/components/ui/table.d.ts.map +1 -0
  98. package/dist/components/ui/tabs.d.ts +8 -0
  99. package/dist/components/ui/tabs.d.ts.map +1 -0
  100. package/dist/components/ui/textarea.d.ts +4 -0
  101. package/dist/components/ui/textarea.d.ts.map +1 -0
  102. package/dist/components/ui/toast.d.ts +16 -0
  103. package/dist/components/ui/toast.d.ts.map +1 -0
  104. package/dist/components/ui/toaster.d.ts +2 -0
  105. package/dist/components/ui/toaster.d.ts.map +1 -0
  106. package/dist/components/ui/toggle-group.d.ts +13 -0
  107. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  108. package/dist/components/ui/toggle.d.ts +13 -0
  109. package/dist/components/ui/toggle.d.ts.map +1 -0
  110. package/dist/components/ui/tooltip.d.ts +8 -0
  111. package/dist/components/ui/tooltip.d.ts.map +1 -0
  112. package/dist/hooks/use-toast.d.ts +45 -0
  113. package/dist/hooks/use-toast.d.ts.map +1 -0
  114. package/dist/index.cjs.js +8 -0
  115. package/dist/index.cjs.js.map +1 -0
  116. package/dist/index.d.ts +49 -0
  117. package/dist/index.d.ts.map +1 -0
  118. package/dist/index.es.js +2275 -0
  119. package/dist/index.es.js.map +1 -0
  120. package/dist/lib/utils.d.ts +3 -0
  121. package/dist/lib/utils.d.ts.map +1 -0
  122. package/dist/main.d.ts +2 -0
  123. package/dist/main.d.ts.map +1 -0
  124. package/dist/pages/GettingStarted.d.ts +3 -0
  125. package/dist/pages/GettingStarted.d.ts.map +1 -0
  126. package/dist/pages/components/AccordionDocs.d.ts +2 -0
  127. package/dist/pages/components/AccordionDocs.d.ts.map +1 -0
  128. package/dist/pages/components/AlertDialogDocs.d.ts +2 -0
  129. package/dist/pages/components/AlertDialogDocs.d.ts.map +1 -0
  130. package/dist/pages/components/AlertDocs.d.ts +2 -0
  131. package/dist/pages/components/AlertDocs.d.ts.map +1 -0
  132. package/dist/pages/components/AspectRatioDocs.d.ts +2 -0
  133. package/dist/pages/components/AspectRatioDocs.d.ts.map +1 -0
  134. package/dist/pages/components/AvatarDocs.d.ts +2 -0
  135. package/dist/pages/components/AvatarDocs.d.ts.map +1 -0
  136. package/dist/pages/components/BadgeDocs.d.ts +2 -0
  137. package/dist/pages/components/BadgeDocs.d.ts.map +1 -0
  138. package/dist/pages/components/BreadcrumbDocs.d.ts +2 -0
  139. package/dist/pages/components/BreadcrumbDocs.d.ts.map +1 -0
  140. package/dist/pages/components/ButtonDocs.d.ts +2 -0
  141. package/dist/pages/components/ButtonDocs.d.ts.map +1 -0
  142. package/dist/pages/components/CalendarDocs.d.ts +2 -0
  143. package/dist/pages/components/CalendarDocs.d.ts.map +1 -0
  144. package/dist/pages/components/CardDocs.d.ts +2 -0
  145. package/dist/pages/components/CardDocs.d.ts.map +1 -0
  146. package/dist/pages/components/CarouselDocs.d.ts +2 -0
  147. package/dist/pages/components/CarouselDocs.d.ts.map +1 -0
  148. package/dist/pages/components/ChartDocs.d.ts +2 -0
  149. package/dist/pages/components/ChartDocs.d.ts.map +1 -0
  150. package/dist/pages/components/CheckboxDocs.d.ts +2 -0
  151. package/dist/pages/components/CheckboxDocs.d.ts.map +1 -0
  152. package/dist/pages/components/CollapsibleDocs.d.ts +2 -0
  153. package/dist/pages/components/CollapsibleDocs.d.ts.map +1 -0
  154. package/dist/pages/components/CommandDocs.d.ts +2 -0
  155. package/dist/pages/components/CommandDocs.d.ts.map +1 -0
  156. package/dist/pages/components/ContextMenuDocs.d.ts +2 -0
  157. package/dist/pages/components/ContextMenuDocs.d.ts.map +1 -0
  158. package/dist/pages/components/DialogDocs.d.ts +2 -0
  159. package/dist/pages/components/DialogDocs.d.ts.map +1 -0
  160. package/dist/pages/components/DrawerDocs.d.ts +2 -0
  161. package/dist/pages/components/DrawerDocs.d.ts.map +1 -0
  162. package/dist/pages/components/DropdownMenuDocs.d.ts +2 -0
  163. package/dist/pages/components/DropdownMenuDocs.d.ts.map +1 -0
  164. package/dist/pages/components/FormDocs.d.ts +2 -0
  165. package/dist/pages/components/FormDocs.d.ts.map +1 -0
  166. package/dist/pages/components/HoverCardDocs.d.ts +2 -0
  167. package/dist/pages/components/HoverCardDocs.d.ts.map +1 -0
  168. package/dist/pages/components/InputDocs.d.ts +2 -0
  169. package/dist/pages/components/InputDocs.d.ts.map +1 -0
  170. package/dist/pages/components/LabelDocs.d.ts +2 -0
  171. package/dist/pages/components/LabelDocs.d.ts.map +1 -0
  172. package/dist/pages/components/MenubarDocs.d.ts +2 -0
  173. package/dist/pages/components/MenubarDocs.d.ts.map +1 -0
  174. package/dist/pages/components/NavigationMenuDocs.d.ts +2 -0
  175. package/dist/pages/components/NavigationMenuDocs.d.ts.map +1 -0
  176. package/dist/pages/components/PaginationDocs.d.ts +2 -0
  177. package/dist/pages/components/PaginationDocs.d.ts.map +1 -0
  178. package/dist/pages/components/PopoverDocs.d.ts +2 -0
  179. package/dist/pages/components/PopoverDocs.d.ts.map +1 -0
  180. package/dist/pages/components/ProgressDocs.d.ts +2 -0
  181. package/dist/pages/components/ProgressDocs.d.ts.map +1 -0
  182. package/dist/pages/components/RadioGroupDocs.d.ts +2 -0
  183. package/dist/pages/components/RadioGroupDocs.d.ts.map +1 -0
  184. package/dist/pages/components/ResizableDocs.d.ts +2 -0
  185. package/dist/pages/components/ResizableDocs.d.ts.map +1 -0
  186. package/dist/pages/components/ScrollAreaDocs.d.ts +2 -0
  187. package/dist/pages/components/ScrollAreaDocs.d.ts.map +1 -0
  188. package/dist/pages/components/SelectDocs.d.ts +2 -0
  189. package/dist/pages/components/SelectDocs.d.ts.map +1 -0
  190. package/dist/pages/components/SeparatorDocs.d.ts +2 -0
  191. package/dist/pages/components/SeparatorDocs.d.ts.map +1 -0
  192. package/dist/pages/components/SheetDocs.d.ts +2 -0
  193. package/dist/pages/components/SheetDocs.d.ts.map +1 -0
  194. package/dist/pages/components/SkeletonDocs.d.ts +2 -0
  195. package/dist/pages/components/SkeletonDocs.d.ts.map +1 -0
  196. package/dist/pages/components/SliderDocs.d.ts +2 -0
  197. package/dist/pages/components/SliderDocs.d.ts.map +1 -0
  198. package/dist/pages/components/SonnerDocs.d.ts +2 -0
  199. package/dist/pages/components/SonnerDocs.d.ts.map +1 -0
  200. package/dist/pages/components/SwitchDocs.d.ts +2 -0
  201. package/dist/pages/components/SwitchDocs.d.ts.map +1 -0
  202. package/dist/pages/components/TableDocs.d.ts +2 -0
  203. package/dist/pages/components/TableDocs.d.ts.map +1 -0
  204. package/dist/pages/components/TabsDocs.d.ts +2 -0
  205. package/dist/pages/components/TabsDocs.d.ts.map +1 -0
  206. package/dist/pages/components/TextareaDocs.d.ts +2 -0
  207. package/dist/pages/components/TextareaDocs.d.ts.map +1 -0
  208. package/dist/pages/components/ToastDocs.d.ts +2 -0
  209. package/dist/pages/components/ToastDocs.d.ts.map +1 -0
  210. package/dist/pages/components/ToggleDocs.d.ts +2 -0
  211. package/dist/pages/components/ToggleDocs.d.ts.map +1 -0
  212. package/dist/pages/components/ToggleGroupDocs.d.ts +2 -0
  213. package/dist/pages/components/ToggleGroupDocs.d.ts.map +1 -0
  214. package/dist/pages/components/TooltipDocs.d.ts +2 -0
  215. package/dist/pages/components/TooltipDocs.d.ts.map +1 -0
  216. package/dist/pages/index.d.ts +47 -0
  217. package/dist/pages/index.d.ts.map +1 -0
  218. package/dist/registry/accordion.json +13 -0
  219. package/dist/registry/alert-dialog.json +13 -0
  220. package/dist/registry/alert.json +13 -0
  221. package/dist/registry/aspect-ratio.json +13 -0
  222. package/dist/registry/avatar.json +13 -0
  223. package/dist/registry/badge.json +13 -0
  224. package/dist/registry/breadcrumb.json +13 -0
  225. package/dist/registry/button.json +13 -0
  226. package/dist/registry/calendar.json +13 -0
  227. package/dist/registry/card.json +13 -0
  228. package/dist/registry/carousel.json +13 -0
  229. package/dist/registry/chart.json +13 -0
  230. package/dist/registry/checkbox.json +13 -0
  231. package/dist/registry/collapsible.json +13 -0
  232. package/dist/registry/command.json +13 -0
  233. package/dist/registry/context-menu.json +13 -0
  234. package/dist/registry/dialog.json +13 -0
  235. package/dist/registry/drawer.json +13 -0
  236. package/dist/registry/dropdown-menu.json +13 -0
  237. package/dist/registry/form.json +13 -0
  238. package/dist/registry/hover-card.json +13 -0
  239. package/dist/registry/index.json +324 -0
  240. package/dist/registry/input.json +13 -0
  241. package/dist/registry/label.json +13 -0
  242. package/dist/registry/menubar.json +13 -0
  243. package/dist/registry/navigation-menu.json +13 -0
  244. package/dist/registry/pagination.json +13 -0
  245. package/dist/registry/popover.json +13 -0
  246. package/dist/registry/progress.json +13 -0
  247. package/dist/registry/radio-group.json +13 -0
  248. package/dist/registry/resizable.json +13 -0
  249. package/dist/registry/scroll-area.json +13 -0
  250. package/dist/registry/select.json +13 -0
  251. package/dist/registry/separator.json +13 -0
  252. package/dist/registry/sheet.json +13 -0
  253. package/dist/registry/skeleton.json +13 -0
  254. package/dist/registry/slider.json +13 -0
  255. package/dist/registry/sonner.json +13 -0
  256. package/dist/registry/switch.json +13 -0
  257. package/dist/registry/table.json +13 -0
  258. package/dist/registry/tabs.json +13 -0
  259. package/dist/registry/textarea.json +13 -0
  260. package/dist/registry/toast.json +13 -0
  261. package/dist/registry/toaster.json +13 -0
  262. package/dist/registry/toggle-group.json +13 -0
  263. package/dist/registry/toggle.json +13 -0
  264. package/dist/registry/tooltip.json +13 -0
  265. package/dist/vendor-CMSUBoIg.js +73 -0
  266. package/dist/vendor-CMSUBoIg.js.map +1 -0
  267. package/dist/vendor-ZhQmrf1h.mjs +25737 -0
  268. package/dist/vendor-ZhQmrf1h.mjs.map +1 -0
  269. package/eslint.config.mjs +34 -43
  270. package/index.html +13 -0
  271. package/package.json +75 -52
  272. package/postcss.config.mjs +5 -0
  273. package/scripts/build-registry.ts +47 -0
  274. package/scripts/import-all-shadcn.ts +68 -0
  275. package/scripts/validate.js +0 -2
  276. package/src/App.tsx +211 -0
  277. package/src/components/docs/CodeBlock.tsx +34 -0
  278. package/src/components/docs/ComponentShowcase.tsx +68 -0
  279. package/src/components/docs/Footer.tsx +117 -0
  280. package/src/components/docs/Sidebar.tsx +189 -0
  281. package/src/components/docs/ThemeToggle.tsx +19 -0
  282. package/src/components/docs/index.ts +5 -0
  283. package/src/components/ui/accordion.tsx +51 -0
  284. package/src/components/ui/alert-dialog.tsx +104 -0
  285. package/src/components/ui/alert.tsx +43 -0
  286. package/src/components/ui/aspect-ratio.tsx +5 -0
  287. package/src/components/ui/avatar.tsx +38 -0
  288. package/src/components/ui/badge.tsx +29 -0
  289. package/src/components/ui/breadcrumb.tsx +90 -0
  290. package/src/components/ui/button.tsx +46 -0
  291. package/src/components/ui/calendar.tsx +156 -0
  292. package/src/components/ui/card.tsx +43 -0
  293. package/src/components/ui/carousel.tsx +224 -0
  294. package/src/components/ui/chart.tsx +307 -0
  295. package/src/components/ui/checkbox.tsx +26 -0
  296. package/src/components/ui/collapsible.tsx +9 -0
  297. package/src/components/ui/command.tsx +132 -0
  298. package/src/components/ui/context-menu.tsx +178 -0
  299. package/src/components/ui/dialog.tsx +95 -0
  300. package/src/components/ui/drawer.tsx +87 -0
  301. package/src/components/ui/dropdown-menu.tsx +180 -0
  302. package/src/components/ui/form.tsx +149 -0
  303. package/src/components/ui/hover-card.tsx +27 -0
  304. package/src/components/ui/input.tsx +22 -0
  305. package/src/components/ui/label.tsx +17 -0
  306. package/src/components/ui/menubar.tsx +217 -0
  307. package/src/components/ui/navigation-menu.tsx +120 -0
  308. package/src/components/ui/pagination.tsx +81 -0
  309. package/src/components/ui/popover.tsx +31 -0
  310. package/src/components/ui/progress.tsx +23 -0
  311. package/src/components/ui/radio-group.tsx +36 -0
  312. package/src/components/ui/resizable.tsx +45 -0
  313. package/src/components/ui/scroll-area.tsx +38 -0
  314. package/src/components/ui/select.tsx +142 -0
  315. package/src/components/ui/separator.tsx +20 -0
  316. package/src/components/ui/sheet.tsx +106 -0
  317. package/src/components/ui/skeleton.tsx +8 -0
  318. package/src/components/ui/slider.tsx +23 -0
  319. package/src/components/ui/sonner.tsx +28 -0
  320. package/src/components/ui/switch.tsx +27 -0
  321. package/src/components/ui/table.tsx +76 -0
  322. package/src/components/ui/tabs.tsx +53 -0
  323. package/src/components/ui/textarea.tsx +21 -0
  324. package/src/components/ui/toast.tsx +111 -0
  325. package/src/components/ui/toaster.tsx +24 -0
  326. package/src/components/ui/toggle-group.tsx +51 -0
  327. package/src/components/ui/toggle.tsx +37 -0
  328. package/src/components/ui/tooltip.tsx +30 -0
  329. package/src/globals.css +118 -0
  330. package/src/hooks/use-toast.ts +189 -0
  331. package/src/index.ts +50 -11
  332. package/src/lib/utils.ts +6 -0
  333. package/src/main.tsx +10 -0
  334. package/src/pages/GettingStarted.tsx +251 -0
  335. package/src/pages/components/AccordionDocs.tsx +55 -0
  336. package/src/pages/components/AlertDialogDocs.tsx +63 -0
  337. package/src/pages/components/AlertDocs.tsx +45 -0
  338. package/src/pages/components/AspectRatioDocs.tsx +64 -0
  339. package/src/pages/components/AvatarDocs.tsx +34 -0
  340. package/src/pages/components/BadgeDocs.tsx +36 -0
  341. package/src/pages/components/BreadcrumbDocs.tsx +54 -0
  342. package/src/pages/components/ButtonDocs.tsx +77 -0
  343. package/src/pages/components/CalendarDocs.tsx +29 -0
  344. package/src/pages/components/CardDocs.tsx +81 -0
  345. package/src/pages/components/CarouselDocs.tsx +132 -0
  346. package/src/pages/components/ChartDocs.tsx +115 -0
  347. package/src/pages/components/CheckboxDocs.tsx +49 -0
  348. package/src/pages/components/CollapsibleDocs.tsx +52 -0
  349. package/src/pages/components/CommandDocs.tsx +100 -0
  350. package/src/pages/components/ContextMenuDocs.tsx +93 -0
  351. package/src/pages/components/DialogDocs.tsx +80 -0
  352. package/src/pages/components/DrawerDocs.tsx +79 -0
  353. package/src/pages/components/DropdownMenuDocs.tsx +51 -0
  354. package/src/pages/components/FormDocs.tsx +84 -0
  355. package/src/pages/components/HoverCardDocs.tsx +59 -0
  356. package/src/pages/components/InputDocs.tsx +68 -0
  357. package/src/pages/components/LabelDocs.tsx +23 -0
  358. package/src/pages/components/MenubarDocs.tsx +117 -0
  359. package/src/pages/components/NavigationMenuDocs.tsx +156 -0
  360. package/src/pages/components/PaginationDocs.tsx +68 -0
  361. package/src/pages/components/PopoverDocs.tsx +61 -0
  362. package/src/pages/components/ProgressDocs.tsx +34 -0
  363. package/src/pages/components/RadioGroupDocs.tsx +38 -0
  364. package/src/pages/components/ResizableDocs.tsx +110 -0
  365. package/src/pages/components/ScrollAreaDocs.tsx +89 -0
  366. package/src/pages/components/SelectDocs.tsx +87 -0
  367. package/src/pages/components/SeparatorDocs.tsx +44 -0
  368. package/src/pages/components/SheetDocs.tsx +104 -0
  369. package/src/pages/components/SkeletonDocs.tsx +48 -0
  370. package/src/pages/components/SliderDocs.tsx +24 -0
  371. package/src/pages/components/SonnerDocs.tsx +89 -0
  372. package/src/pages/components/SwitchDocs.tsx +31 -0
  373. package/src/pages/components/TableDocs.tsx +64 -0
  374. package/src/pages/components/TabsDocs.tsx +111 -0
  375. package/src/pages/components/TextareaDocs.tsx +54 -0
  376. package/src/pages/components/ToastDocs.tsx +102 -0
  377. package/src/pages/components/ToggleDocs.tsx +59 -0
  378. package/src/pages/components/ToggleGroupDocs.tsx +93 -0
  379. package/src/pages/components/TooltipDocs.tsx +38 -0
  380. package/src/pages/index.ts +49 -0
  381. package/tsconfig.json +8 -4
  382. package/tsconfig.node.json +2 -1
  383. package/vite.config.ts +30 -16
  384. package/wrangler.toml +22 -0
  385. package/.storybook/.preview-head.html +0 -1
  386. package/.storybook/main.ts +0 -38
  387. package/.storybook/preview.tsx +0 -30
  388. package/dist/index.js +0 -647
  389. package/dist/index.js.map +0 -1
  390. package/dist/index.mjs +0 -1053
  391. package/dist/index.mjs.map +0 -1
  392. package/dist/vendor-DXgJBoQh.mjs +0 -265
  393. package/dist/vendor-DXgJBoQh.mjs.map +0 -1
  394. package/dist/vendor-nZSsnGb7.js +0 -7
  395. package/dist/vendor-nZSsnGb7.js.map +0 -1
  396. package/src/Avatar.stories.tsx +0 -67
  397. package/src/Avatar.tsx +0 -174
  398. package/src/Badge.stories.tsx +0 -87
  399. package/src/Badge.tsx +0 -76
  400. package/src/Button.stories.tsx +0 -244
  401. package/src/Button.tsx +0 -384
  402. package/src/Icon.stories.tsx +0 -101
  403. package/src/Icon.tsx +0 -64
  404. package/src/Intro.stories.tsx +0 -20
  405. package/src/Link.stories.tsx +0 -69
  406. package/src/Link.tsx +0 -252
  407. package/src/StoryLinkWrapper.d.ts +0 -1
  408. package/src/StoryLinkWrapper.tsx +0 -33
  409. package/src/__tests__/Avatar.test.tsx +0 -28
  410. package/src/__tests__/Badge.test.tsx +0 -25
  411. package/src/__tests__/Button.test.tsx +0 -38
  412. package/src/__tests__/Icon.test.tsx +0 -26
  413. package/src/__tests__/Link.test.tsx +0 -31
  414. package/src/mdx.d.ts +0 -5
  415. package/src/setupTests.ts +0 -1
  416. package/src/shared/animation.d.ts +0 -18
  417. package/src/shared/animation.js +0 -60
  418. package/src/shared/global.d.ts +0 -12
  419. package/src/shared/global.js +0 -120
  420. package/src/shared/icons.d.ts +0 -34
  421. package/src/shared/icons.js +0 -282
  422. package/src/shared/styles.d.ts +0 -86
  423. package/src/shared/styles.js +0 -98
  424. package/src/test-utils/axe.ts +0 -25
  425. package/src/types.ts +0 -316
@@ -0,0 +1,77 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Button } from '@/components/ui/button';
3
+ import { ChevronRight, Loader2, Mail } from 'lucide-react';
4
+
5
+ export function ButtonDocs() {
6
+ return (
7
+ <ComponentSection title="Button" description="Displays a button or a component that looks like a button.">
8
+ <ComponentShowcase
9
+ title="Variants"
10
+ description="The button comes in 6 different variants."
11
+ code={`<Button variant="default">Default</Button>
12
+ <Button variant="secondary">Secondary</Button>
13
+ <Button variant="destructive">Destructive</Button>
14
+ <Button variant="outline">Outline</Button>
15
+ <Button variant="ghost">Ghost</Button>
16
+ <Button variant="link">Link</Button>`}
17
+ >
18
+ <Button variant="default">Default</Button>
19
+ <Button variant="secondary">Secondary</Button>
20
+ <Button variant="destructive">Destructive</Button>
21
+ <Button variant="outline">Outline</Button>
22
+ <Button variant="ghost">Ghost</Button>
23
+ <Button variant="link">Link</Button>
24
+ </ComponentShowcase>
25
+
26
+ <ComponentShowcase
27
+ title="Sizes"
28
+ description="Buttons come in default, small, large, and icon sizes."
29
+ code={`<Button size="default">Default</Button>
30
+ <Button size="sm">Small</Button>
31
+ <Button size="lg">Large</Button>
32
+ <Button size="icon"><ChevronRight className="h-4 w-4" /></Button>`}
33
+ >
34
+ <Button size="default">Default</Button>
35
+ <Button size="sm">Small</Button>
36
+ <Button size="lg">Large</Button>
37
+ <Button size="icon">
38
+ <ChevronRight className="h-4 w-4" />
39
+ </Button>
40
+ </ComponentShowcase>
41
+
42
+ <ComponentShowcase
43
+ title="With Icon"
44
+ description="You can add icons to buttons for additional context."
45
+ code={`<Button>
46
+ <Mail className="mr-2 h-4 w-4" /> Login with Email
47
+ </Button>`}
48
+ >
49
+ <Button>
50
+ <Mail className="mr-2 h-4 w-4" /> Login with Email
51
+ </Button>
52
+ </ComponentShowcase>
53
+
54
+ <ComponentShowcase
55
+ title="Loading State"
56
+ description="Use the disabled attribute with a spinner for loading states."
57
+ code={`<Button disabled>
58
+ <Loader2 className="mr-2 h-4 w-4 animate-spin" />
59
+ Please wait
60
+ </Button>`}
61
+ >
62
+ <Button disabled>
63
+ <Loader2 className="mr-2 h-4 w-4 animate-spin" />
64
+ Please wait
65
+ </Button>
66
+ </ComponentShowcase>
67
+
68
+ <ComponentShowcase
69
+ title="Disabled"
70
+ description="Buttons can be disabled to prevent interaction."
71
+ code={`<Button disabled>Disabled</Button>`}
72
+ >
73
+ <Button disabled>Disabled</Button>
74
+ </ComponentShowcase>
75
+ </ComponentSection>
76
+ );
77
+ }
@@ -0,0 +1,29 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Calendar } from '@/components/ui/calendar';
3
+ import * as React from 'react';
4
+
5
+ export function CalendarDocs() {
6
+ const [date, setDate] = React.useState<Date | undefined>(new Date());
7
+
8
+ return (
9
+ <ComponentSection
10
+ title="Calendar"
11
+ description="A date picker component with support for single and range selection."
12
+ >
13
+ <ComponentShowcase
14
+ title="Default"
15
+ description="A basic calendar for date selection."
16
+ code={`const [date, setDate] = React.useState<Date | undefined>(new Date());
17
+
18
+ <Calendar
19
+ mode="single"
20
+ selected={date}
21
+ onSelect={setDate}
22
+ className="rounded-md border"
23
+ />`}
24
+ >
25
+ <Calendar mode="single" selected={date} onSelect={setDate} className="rounded-md border" />
26
+ </ComponentShowcase>
27
+ </ComponentSection>
28
+ );
29
+ }
@@ -0,0 +1,81 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Button } from '@/components/ui/button';
3
+ import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/components/ui/card';
4
+ import { Input } from '@/components/ui/input';
5
+ import { Label } from '@/components/ui/label';
6
+
7
+ export function CardDocs() {
8
+ return (
9
+ <ComponentSection title="Card" description="Displays a card with header, content, and footer sections.">
10
+ <ComponentShowcase
11
+ title="Basic Card"
12
+ description="A simple card with header and content."
13
+ code={`<Card className="w-[350px]">
14
+ <CardHeader>
15
+ <CardTitle>Card Title</CardTitle>
16
+ <CardDescription>Card Description</CardDescription>
17
+ </CardHeader>
18
+ <CardContent>
19
+ <p>Card Content goes here.</p>
20
+ </CardContent>
21
+ </Card>`}
22
+ >
23
+ <Card className="w-[350px]">
24
+ <CardHeader>
25
+ <CardTitle>Card Title</CardTitle>
26
+ <CardDescription>Card Description</CardDescription>
27
+ </CardHeader>
28
+ <CardContent>
29
+ <p>Card Content goes here.</p>
30
+ </CardContent>
31
+ </Card>
32
+ </ComponentShowcase>
33
+
34
+ <ComponentShowcase
35
+ title="Card with Footer"
36
+ description="Cards can include a footer for actions."
37
+ code={`<Card className="w-[350px]">
38
+ <CardHeader>
39
+ <CardTitle>Create Project</CardTitle>
40
+ <CardDescription>Deploy your new project in one-click.</CardDescription>
41
+ </CardHeader>
42
+ <CardContent>
43
+ <form>
44
+ <div className="grid w-full items-center gap-4">
45
+ <div className="flex flex-col space-y-1.5">
46
+ <Label htmlFor="name">Name</Label>
47
+ <Input id="name" placeholder="Name of your project" />
48
+ </div>
49
+ </div>
50
+ </form>
51
+ </CardContent>
52
+ <CardFooter className="flex justify-between">
53
+ <Button variant="outline">Cancel</Button>
54
+ <Button>Deploy</Button>
55
+ </CardFooter>
56
+ </Card>`}
57
+ >
58
+ <Card className="w-[350px]">
59
+ <CardHeader>
60
+ <CardTitle>Create Project</CardTitle>
61
+ <CardDescription>Deploy your new project in one-click.</CardDescription>
62
+ </CardHeader>
63
+ <CardContent>
64
+ <form>
65
+ <div className="grid w-full items-center gap-4">
66
+ <div className="flex flex-col space-y-1.5">
67
+ <Label htmlFor="name">Name</Label>
68
+ <Input id="name" placeholder="Name of your project" />
69
+ </div>
70
+ </div>
71
+ </form>
72
+ </CardContent>
73
+ <CardFooter className="flex justify-between">
74
+ <Button variant="outline">Cancel</Button>
75
+ <Button>Deploy</Button>
76
+ </CardFooter>
77
+ </Card>
78
+ </ComponentShowcase>
79
+ </ComponentSection>
80
+ );
81
+ }
@@ -0,0 +1,132 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Card, CardContent } from '@/components/ui/card';
3
+ import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from '@/components/ui/carousel';
4
+
5
+ export function CarouselDocs() {
6
+ return (
7
+ <ComponentSection
8
+ title="Carousel"
9
+ description="A carousel with motion and swipe gestures built on top of Embla Carousel."
10
+ >
11
+ <ComponentShowcase
12
+ title="Default"
13
+ description="A basic carousel with numbered cards."
14
+ code={`<Carousel className="w-full max-w-xs">
15
+ <CarouselContent>
16
+ {Array.from({ length: 5 }).map((_, index) => (
17
+ <CarouselItem key={index}>
18
+ <div className="p-1">
19
+ <Card>
20
+ <CardContent className="flex aspect-square items-center justify-center p-6">
21
+ <span className="text-4xl font-semibold">{index + 1}</span>
22
+ </CardContent>
23
+ </Card>
24
+ </div>
25
+ </CarouselItem>
26
+ ))}
27
+ </CarouselContent>
28
+ <CarouselPrevious />
29
+ <CarouselNext />
30
+ </Carousel>`}
31
+ >
32
+ <Carousel className="w-full max-w-xs">
33
+ <CarouselContent>
34
+ {Array.from({ length: 5 }).map((_, index) => (
35
+ <CarouselItem key={index}>
36
+ <div className="p-1">
37
+ <Card>
38
+ <CardContent className="flex aspect-square items-center justify-center p-6">
39
+ <span className="text-4xl font-semibold">{index + 1}</span>
40
+ </CardContent>
41
+ </Card>
42
+ </div>
43
+ </CarouselItem>
44
+ ))}
45
+ </CarouselContent>
46
+ <CarouselPrevious />
47
+ <CarouselNext />
48
+ </Carousel>
49
+ </ComponentShowcase>
50
+
51
+ <ComponentShowcase
52
+ title="Partial Visible Items"
53
+ description="A carousel showing partial items using basis classes."
54
+ code={`<Carousel className="w-full max-w-sm" opts={{ align: "start" }}>
55
+ <CarouselContent>
56
+ {Array.from({ length: 5 }).map((_, index) => (
57
+ <CarouselItem key={index} className="basis-1/3">
58
+ <div className="p-1">
59
+ <Card>
60
+ <CardContent className="flex aspect-square items-center justify-center p-6">
61
+ <span className="text-2xl font-semibold">{index + 1}</span>
62
+ </CardContent>
63
+ </Card>
64
+ </div>
65
+ </CarouselItem>
66
+ ))}
67
+ </CarouselContent>
68
+ <CarouselPrevious />
69
+ <CarouselNext />
70
+ </Carousel>`}
71
+ >
72
+ <Carousel className="w-full max-w-sm" opts={{ align: 'start' }}>
73
+ <CarouselContent>
74
+ {Array.from({ length: 5 }).map((_, index) => (
75
+ <CarouselItem key={index} className="basis-1/3">
76
+ <div className="p-1">
77
+ <Card>
78
+ <CardContent className="flex aspect-square items-center justify-center p-6">
79
+ <span className="text-2xl font-semibold">{index + 1}</span>
80
+ </CardContent>
81
+ </Card>
82
+ </div>
83
+ </CarouselItem>
84
+ ))}
85
+ </CarouselContent>
86
+ <CarouselPrevious />
87
+ <CarouselNext />
88
+ </Carousel>
89
+ </ComponentShowcase>
90
+
91
+ <ComponentShowcase
92
+ title="Orientation"
93
+ description="A vertically oriented carousel."
94
+ code={`<Carousel orientation="vertical" className="w-full max-w-xs" opts={{ align: "start" }}>
95
+ <CarouselContent className="-mt-1 h-[200px]">
96
+ {Array.from({ length: 5 }).map((_, index) => (
97
+ <CarouselItem key={index} className="pt-1 md:basis-1/2">
98
+ <div className="p-1">
99
+ <Card>
100
+ <CardContent className="flex items-center justify-center p-6">
101
+ <span className="text-3xl font-semibold">{index + 1}</span>
102
+ </CardContent>
103
+ </Card>
104
+ </div>
105
+ </CarouselItem>
106
+ ))}
107
+ </CarouselContent>
108
+ <CarouselPrevious />
109
+ <CarouselNext />
110
+ </Carousel>`}
111
+ >
112
+ <Carousel orientation="vertical" className="w-full max-w-xs" opts={{ align: 'start' }}>
113
+ <CarouselContent className="-mt-1 h-[200px]">
114
+ {Array.from({ length: 5 }).map((_, index) => (
115
+ <CarouselItem key={index} className="pt-1 md:basis-1/2">
116
+ <div className="p-1">
117
+ <Card>
118
+ <CardContent className="flex items-center justify-center p-6">
119
+ <span className="text-3xl font-semibold">{index + 1}</span>
120
+ </CardContent>
121
+ </Card>
122
+ </div>
123
+ </CarouselItem>
124
+ ))}
125
+ </CarouselContent>
126
+ <CarouselPrevious />
127
+ <CarouselNext />
128
+ </Carousel>
129
+ </ComponentShowcase>
130
+ </ComponentSection>
131
+ );
132
+ }
@@ -0,0 +1,115 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
3
+ import { TrendingUp } from 'lucide-react';
4
+
5
+ export function ChartDocs() {
6
+ return (
7
+ <ComponentSection title="Chart" description="Beautiful charts built using Recharts and styled with CSS variables.">
8
+ <ComponentShowcase
9
+ title="Overview"
10
+ description="Charts are built using Recharts. The chart components use CSS variables for theming."
11
+ code={`// Install recharts
12
+ npm install recharts
13
+
14
+ // Import and use
15
+ import { Bar, BarChart, XAxis, YAxis, ResponsiveContainer } from "recharts";
16
+
17
+ const data = [
18
+ { name: "Jan", total: 1200 },
19
+ { name: "Feb", total: 2100 },
20
+ { name: "Mar", total: 800 },
21
+ { name: "Apr", total: 1600 },
22
+ { name: "May", total: 900 },
23
+ { name: "Jun", total: 1700 },
24
+ ];
25
+
26
+ <ResponsiveContainer width="100%" height={350}>
27
+ <BarChart data={data}>
28
+ <XAxis dataKey="name" />
29
+ <YAxis />
30
+ <Bar dataKey="total" fill="hsl(var(--primary))" radius={[4, 4, 0, 0]} />
31
+ </BarChart>
32
+ </ResponsiveContainer>`}
33
+ >
34
+ <Card className="w-full max-w-md">
35
+ <CardHeader>
36
+ <CardTitle>Chart Example</CardTitle>
37
+ <CardDescription>A preview of chart styling</CardDescription>
38
+ </CardHeader>
39
+ <CardContent>
40
+ <div className="space-y-4">
41
+ <div className="flex items-center gap-2 text-sm text-muted-foreground">
42
+ <TrendingUp className="h-4 w-4" />
43
+ <span>Charts use CSS variables for consistent theming</span>
44
+ </div>
45
+ <div className="grid grid-cols-6 gap-2 h-32 items-end">
46
+ {[40, 70, 30, 60, 35, 65].map((height, i) => (
47
+ <div
48
+ key={i}
49
+ className="bg-primary rounded-t-sm transition-all hover:bg-primary/80"
50
+ style={{ height: `${height}%` }}
51
+ />
52
+ ))}
53
+ </div>
54
+ <div className="grid grid-cols-6 gap-2 text-xs text-center text-muted-foreground">
55
+ {['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'].map((month) => (
56
+ <span key={month}>{month}</span>
57
+ ))}
58
+ </div>
59
+ </div>
60
+ </CardContent>
61
+ </Card>
62
+ </ComponentShowcase>
63
+
64
+ <ComponentShowcase
65
+ title="CSS Variables"
66
+ description="Use CSS variables to theme your charts."
67
+ code={`/* In your CSS */
68
+ :root {
69
+ --chart-1: 12 76% 61%;
70
+ --chart-2: 173 58% 39%;
71
+ --chart-3: 197 37% 24%;
72
+ --chart-4: 43 74% 66%;
73
+ --chart-5: 27 87% 67%;
74
+ }
75
+
76
+ .dark {
77
+ --chart-1: 220 70% 50%;
78
+ --chart-2: 160 60% 45%;
79
+ --chart-3: 30 80% 55%;
80
+ --chart-4: 280 65% 60%;
81
+ --chart-5: 340 75% 55%;
82
+ }
83
+
84
+ /* Use in your chart */
85
+ <Bar fill="hsl(var(--chart-1))" />
86
+ <Line stroke="hsl(var(--chart-2))" />`}
87
+ >
88
+ <div className="flex gap-4 items-center">
89
+ <div className="flex flex-col gap-2">
90
+ <div className="flex items-center gap-2">
91
+ <div className="w-4 h-4 rounded bg-[hsl(12,76%,61%)]" />
92
+ <span className="text-sm">--chart-1</span>
93
+ </div>
94
+ <div className="flex items-center gap-2">
95
+ <div className="w-4 h-4 rounded bg-[hsl(173,58%,39%)]" />
96
+ <span className="text-sm">--chart-2</span>
97
+ </div>
98
+ <div className="flex items-center gap-2">
99
+ <div className="w-4 h-4 rounded bg-[hsl(197,37%,24%)]" />
100
+ <span className="text-sm">--chart-3</span>
101
+ </div>
102
+ <div className="flex items-center gap-2">
103
+ <div className="w-4 h-4 rounded bg-[hsl(43,74%,66%)]" />
104
+ <span className="text-sm">--chart-4</span>
105
+ </div>
106
+ <div className="flex items-center gap-2">
107
+ <div className="w-4 h-4 rounded bg-[hsl(27,87%,67%)]" />
108
+ <span className="text-sm">--chart-5</span>
109
+ </div>
110
+ </div>
111
+ </div>
112
+ </ComponentShowcase>
113
+ </ComponentSection>
114
+ );
115
+ }
@@ -0,0 +1,49 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Checkbox } from '@/components/ui/checkbox';
3
+ import { Label } from '@/components/ui/label';
4
+
5
+ export function CheckboxDocs() {
6
+ return (
7
+ <ComponentSection
8
+ title="Checkbox"
9
+ description="A control that allows the user to toggle between checked and not checked."
10
+ >
11
+ <ComponentShowcase title="Default" description="A basic checkbox." code={`<Checkbox id="terms" />`}>
12
+ <div className="flex items-center space-x-2">
13
+ <Checkbox id="terms" />
14
+ <Label htmlFor="terms">Accept terms and conditions</Label>
15
+ </div>
16
+ </ComponentShowcase>
17
+
18
+ <ComponentShowcase
19
+ title="With Label"
20
+ description="A checkbox with a label."
21
+ code={`<div className="flex items-center space-x-2">
22
+ <Checkbox id="terms" />
23
+ <Label htmlFor="terms">Accept terms and conditions</Label>
24
+ </div>`}
25
+ >
26
+ <div className="flex items-center space-x-2">
27
+ <Checkbox id="terms2" />
28
+ <Label htmlFor="terms2">Accept terms and conditions</Label>
29
+ </div>
30
+ </ComponentShowcase>
31
+
32
+ <ComponentShowcase
33
+ title="Disabled"
34
+ description="A disabled checkbox."
35
+ code={`<div className="flex items-center space-x-2">
36
+ <Checkbox id="terms-disabled" disabled />
37
+ <Label htmlFor="terms-disabled">Accept terms and conditions</Label>
38
+ </div>`}
39
+ >
40
+ <div className="flex items-center space-x-2">
41
+ <Checkbox id="terms-disabled" disabled />
42
+ <Label htmlFor="terms-disabled" className="text-muted-foreground">
43
+ Accept terms and conditions
44
+ </Label>
45
+ </div>
46
+ </ComponentShowcase>
47
+ </ComponentSection>
48
+ );
49
+ }
@@ -0,0 +1,52 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Button } from '@/components/ui/button';
3
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';
4
+ import { ChevronsUpDown } from 'lucide-react';
5
+ import * as React from 'react';
6
+
7
+ export function CollapsibleDocs() {
8
+ const [isOpen, setIsOpen] = React.useState(false);
9
+
10
+ return (
11
+ <ComponentSection title="Collapsible" description="An interactive component which expands/collapses a panel.">
12
+ <ComponentShowcase
13
+ title="Default"
14
+ description="A collapsible panel with animation."
15
+ code={`const [isOpen, setIsOpen] = React.useState(false);
16
+
17
+ <Collapsible open={isOpen} onOpenChange={setIsOpen} className="w-[350px] space-y-2">
18
+ <div className="flex items-center justify-between space-x-4 px-4">
19
+ <h4 className="text-sm font-semibold">@peduarte starred 3 repositories</h4>
20
+ <CollapsibleTrigger asChild>
21
+ <Button variant="ghost" size="sm" className="w-9 p-0">
22
+ <ChevronsUpDown className="h-4 w-4" />
23
+ </Button>
24
+ </CollapsibleTrigger>
25
+ </div>
26
+ <div className="rounded-md border px-4 py-3 font-mono text-sm">@radix-ui/primitives</div>
27
+ <CollapsibleContent className="space-y-2">
28
+ <div className="rounded-md border px-4 py-3 font-mono text-sm">@radix-ui/colors</div>
29
+ <div className="rounded-md border px-4 py-3 font-mono text-sm">@stitches/react</div>
30
+ </CollapsibleContent>
31
+ </Collapsible>`}
32
+ >
33
+ <Collapsible open={isOpen} onOpenChange={setIsOpen} className="w-[350px] space-y-2">
34
+ <div className="flex items-center justify-between space-x-4 px-4">
35
+ <h4 className="text-sm font-semibold">@peduarte starred 3 repositories</h4>
36
+ <CollapsibleTrigger asChild>
37
+ <Button variant="ghost" size="sm" className="w-9 p-0">
38
+ <ChevronsUpDown className="h-4 w-4" />
39
+ <span className="sr-only">Toggle</span>
40
+ </Button>
41
+ </CollapsibleTrigger>
42
+ </div>
43
+ <div className="rounded-md border px-4 py-3 font-mono text-sm">@radix-ui/primitives</div>
44
+ <CollapsibleContent className="space-y-2">
45
+ <div className="rounded-md border px-4 py-3 font-mono text-sm">@radix-ui/colors</div>
46
+ <div className="rounded-md border px-4 py-3 font-mono text-sm">@stitches/react</div>
47
+ </CollapsibleContent>
48
+ </Collapsible>
49
+ </ComponentShowcase>
50
+ </ComponentSection>
51
+ );
52
+ }
@@ -0,0 +1,100 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import {
3
+ Command,
4
+ CommandEmpty,
5
+ CommandGroup,
6
+ CommandInput,
7
+ CommandItem,
8
+ CommandList,
9
+ CommandSeparator,
10
+ CommandShortcut,
11
+ } from '@/components/ui/command';
12
+ import { Calculator, Calendar, CreditCard, Settings, Smile, User } from 'lucide-react';
13
+
14
+ export function CommandDocs() {
15
+ return (
16
+ <ComponentSection title="Command" description="A fast, composable command menu for React.">
17
+ <ComponentShowcase
18
+ title="Default"
19
+ description="A command palette with search and groups."
20
+ code={`<Command className="rounded-lg border shadow-md md:min-w-[450px]">
21
+ <CommandInput placeholder="Type a command or search..." />
22
+ <CommandList>
23
+ <CommandEmpty>No results found.</CommandEmpty>
24
+ <CommandGroup heading="Suggestions">
25
+ <CommandItem>
26
+ <Calendar className="mr-2 h-4 w-4" />
27
+ <span>Calendar</span>
28
+ </CommandItem>
29
+ <CommandItem>
30
+ <Smile className="mr-2 h-4 w-4" />
31
+ <span>Search Emoji</span>
32
+ </CommandItem>
33
+ <CommandItem>
34
+ <Calculator className="mr-2 h-4 w-4" />
35
+ <span>Calculator</span>
36
+ </CommandItem>
37
+ </CommandGroup>
38
+ <CommandSeparator />
39
+ <CommandGroup heading="Settings">
40
+ <CommandItem>
41
+ <User className="mr-2 h-4 w-4" />
42
+ <span>Profile</span>
43
+ <CommandShortcut>⌘P</CommandShortcut>
44
+ </CommandItem>
45
+ <CommandItem>
46
+ <CreditCard className="mr-2 h-4 w-4" />
47
+ <span>Billing</span>
48
+ <CommandShortcut>⌘B</CommandShortcut>
49
+ </CommandItem>
50
+ <CommandItem>
51
+ <Settings className="mr-2 h-4 w-4" />
52
+ <span>Settings</span>
53
+ <CommandShortcut>⌘S</CommandShortcut>
54
+ </CommandItem>
55
+ </CommandGroup>
56
+ </CommandList>
57
+ </Command>`}
58
+ >
59
+ <Command className="rounded-lg border shadow-md md:min-w-[450px]">
60
+ <CommandInput placeholder="Type a command or search..." />
61
+ <CommandList>
62
+ <CommandEmpty>No results found.</CommandEmpty>
63
+ <CommandGroup heading="Suggestions">
64
+ <CommandItem>
65
+ <Calendar className="mr-2 h-4 w-4" />
66
+ <span>Calendar</span>
67
+ </CommandItem>
68
+ <CommandItem>
69
+ <Smile className="mr-2 h-4 w-4" />
70
+ <span>Search Emoji</span>
71
+ </CommandItem>
72
+ <CommandItem>
73
+ <Calculator className="mr-2 h-4 w-4" />
74
+ <span>Calculator</span>
75
+ </CommandItem>
76
+ </CommandGroup>
77
+ <CommandSeparator />
78
+ <CommandGroup heading="Settings">
79
+ <CommandItem>
80
+ <User className="mr-2 h-4 w-4" />
81
+ <span>Profile</span>
82
+ <CommandShortcut>⌘P</CommandShortcut>
83
+ </CommandItem>
84
+ <CommandItem>
85
+ <CreditCard className="mr-2 h-4 w-4" />
86
+ <span>Billing</span>
87
+ <CommandShortcut>⌘B</CommandShortcut>
88
+ </CommandItem>
89
+ <CommandItem>
90
+ <Settings className="mr-2 h-4 w-4" />
91
+ <span>Settings</span>
92
+ <CommandShortcut>⌘S</CommandShortcut>
93
+ </CommandItem>
94
+ </CommandGroup>
95
+ </CommandList>
96
+ </Command>
97
+ </ComponentShowcase>
98
+ </ComponentSection>
99
+ );
100
+ }