@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,156 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import {
3
+ NavigationMenu,
4
+ NavigationMenuContent,
5
+ NavigationMenuItem,
6
+ NavigationMenuLink,
7
+ NavigationMenuList,
8
+ NavigationMenuTrigger,
9
+ navigationMenuTriggerStyle,
10
+ } from '@/components/ui/navigation-menu';
11
+ import { cn } from '@/lib/utils';
12
+ import * as React from 'react';
13
+
14
+ const components: { title: string; href: string; description: string }[] = [
15
+ {
16
+ title: 'Alert Dialog',
17
+ href: '#',
18
+ description: 'A modal dialog that interrupts the user with important content.',
19
+ },
20
+ {
21
+ title: 'Hover Card',
22
+ href: '#',
23
+ description: 'For sighted users to preview content available behind a link.',
24
+ },
25
+ {
26
+ title: 'Progress',
27
+ href: '#',
28
+ description: 'Displays an indicator showing the completion progress of a task.',
29
+ },
30
+ ];
31
+
32
+ const ListItem = React.forwardRef<React.ComponentRef<'a'>, React.ComponentPropsWithoutRef<'a'>>(
33
+ ({ className, title, children, ...props }, ref) => {
34
+ return (
35
+ <li>
36
+ <NavigationMenuLink asChild>
37
+ <a
38
+ ref={ref}
39
+ className={cn(
40
+ 'block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground',
41
+ className,
42
+ )}
43
+ {...props}
44
+ >
45
+ <div className="text-sm font-medium leading-none">{title}</div>
46
+ <p className="line-clamp-2 text-sm leading-snug text-muted-foreground">{children}</p>
47
+ </a>
48
+ </NavigationMenuLink>
49
+ </li>
50
+ );
51
+ },
52
+ );
53
+ ListItem.displayName = 'ListItem';
54
+
55
+ export function NavigationMenuDocs() {
56
+ return (
57
+ <ComponentSection title="Navigation Menu" description="A collection of links for navigating websites.">
58
+ <ComponentShowcase
59
+ title="Default"
60
+ description="A navigation menu with dropdown content."
61
+ code={`<NavigationMenu>
62
+ <NavigationMenuList>
63
+ <NavigationMenuItem>
64
+ <NavigationMenuTrigger>Getting started</NavigationMenuTrigger>
65
+ <NavigationMenuContent>
66
+ <ul className="grid gap-3 p-6 md:w-[400px] lg:w-[500px] lg:grid-cols-[.75fr_1fr]">
67
+ <li className="row-span-3">
68
+ <NavigationMenuLink asChild>
69
+ <a className="flex h-full w-full select-none flex-col justify-end rounded-md bg-gradient-to-b from-muted/50 to-muted p-6 no-underline outline-none focus:shadow-md" href="#">
70
+ <div className="mb-2 mt-4 text-lg font-medium">shadcn/ui</div>
71
+ <p className="text-sm leading-tight text-muted-foreground">
72
+ Beautifully designed components built with Radix UI.
73
+ </p>
74
+ </a>
75
+ </NavigationMenuLink>
76
+ </li>
77
+ <ListItem href="#" title="Introduction">Re-usable components.</ListItem>
78
+ <ListItem href="#" title="Installation">How to install dependencies.</ListItem>
79
+ <ListItem href="#" title="Typography">Styles for headings.</ListItem>
80
+ </ul>
81
+ </NavigationMenuContent>
82
+ </NavigationMenuItem>
83
+ <NavigationMenuItem>
84
+ <NavigationMenuTrigger>Components</NavigationMenuTrigger>
85
+ <NavigationMenuContent>
86
+ <ul className="grid w-[400px] gap-3 p-4 md:w-[500px] md:grid-cols-2">
87
+ {components.map((component) => (
88
+ <ListItem key={component.title} title={component.title} href={component.href}>
89
+ {component.description}
90
+ </ListItem>
91
+ ))}
92
+ </ul>
93
+ </NavigationMenuContent>
94
+ </NavigationMenuItem>
95
+ <NavigationMenuItem>
96
+ <NavigationMenuLink className={navigationMenuTriggerStyle()} href="#">
97
+ Documentation
98
+ </NavigationMenuLink>
99
+ </NavigationMenuItem>
100
+ </NavigationMenuList>
101
+ </NavigationMenu>`}
102
+ >
103
+ <NavigationMenu>
104
+ <NavigationMenuList>
105
+ <NavigationMenuItem>
106
+ <NavigationMenuTrigger>Getting started</NavigationMenuTrigger>
107
+ <NavigationMenuContent>
108
+ <ul className="grid gap-3 p-6 md:w-[400px] lg:w-[500px] lg:grid-cols-[.75fr_1fr]">
109
+ <li className="row-span-3">
110
+ <NavigationMenuLink asChild>
111
+ <a
112
+ className="flex h-full w-full select-none flex-col justify-end rounded-md bg-gradient-to-b from-muted/50 to-muted p-6 no-underline outline-none focus:shadow-md"
113
+ href="#"
114
+ >
115
+ <div className="mb-2 mt-4 text-lg font-medium">shadcn/ui</div>
116
+ <p className="text-sm leading-tight text-muted-foreground">
117
+ Beautifully designed components built with Radix UI and Tailwind CSS.
118
+ </p>
119
+ </a>
120
+ </NavigationMenuLink>
121
+ </li>
122
+ <ListItem href="#" title="Introduction">
123
+ Re-usable components built using Radix UI.
124
+ </ListItem>
125
+ <ListItem href="#" title="Installation">
126
+ How to install dependencies and structure your app.
127
+ </ListItem>
128
+ <ListItem href="#" title="Typography">
129
+ Styles for headings, paragraphs, lists...etc.
130
+ </ListItem>
131
+ </ul>
132
+ </NavigationMenuContent>
133
+ </NavigationMenuItem>
134
+ <NavigationMenuItem>
135
+ <NavigationMenuTrigger>Components</NavigationMenuTrigger>
136
+ <NavigationMenuContent>
137
+ <ul className="grid w-[400px] gap-3 p-4 md:w-[500px] md:grid-cols-2">
138
+ {components.map((component) => (
139
+ <ListItem key={component.title} title={component.title} href={component.href}>
140
+ {component.description}
141
+ </ListItem>
142
+ ))}
143
+ </ul>
144
+ </NavigationMenuContent>
145
+ </NavigationMenuItem>
146
+ <NavigationMenuItem>
147
+ <NavigationMenuLink className={navigationMenuTriggerStyle()} href="#">
148
+ Documentation
149
+ </NavigationMenuLink>
150
+ </NavigationMenuItem>
151
+ </NavigationMenuList>
152
+ </NavigationMenu>
153
+ </ComponentShowcase>
154
+ </ComponentSection>
155
+ );
156
+ }
@@ -0,0 +1,68 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import {
3
+ Pagination,
4
+ PaginationContent,
5
+ PaginationEllipsis,
6
+ PaginationItem,
7
+ PaginationLink,
8
+ PaginationNext,
9
+ PaginationPrevious,
10
+ } from '@/components/ui/pagination';
11
+
12
+ export function PaginationDocs() {
13
+ return (
14
+ <ComponentSection title="Pagination" description="Pagination with page navigation, next and previous links.">
15
+ <ComponentShowcase
16
+ title="Default"
17
+ description="Standard pagination component."
18
+ code={`<Pagination>
19
+ <PaginationContent>
20
+ <PaginationItem>
21
+ <PaginationPrevious href="#" />
22
+ </PaginationItem>
23
+ <PaginationItem>
24
+ <PaginationLink href="#">1</PaginationLink>
25
+ </PaginationItem>
26
+ <PaginationItem>
27
+ <PaginationLink href="#" isActive>2</PaginationLink>
28
+ </PaginationItem>
29
+ <PaginationItem>
30
+ <PaginationLink href="#">3</PaginationLink>
31
+ </PaginationItem>
32
+ <PaginationItem>
33
+ <PaginationEllipsis />
34
+ </PaginationItem>
35
+ <PaginationItem>
36
+ <PaginationNext href="#" />
37
+ </PaginationItem>
38
+ </PaginationContent>
39
+ </Pagination>`}
40
+ >
41
+ <Pagination>
42
+ <PaginationContent>
43
+ <PaginationItem>
44
+ <PaginationPrevious href="#" />
45
+ </PaginationItem>
46
+ <PaginationItem>
47
+ <PaginationLink href="#">1</PaginationLink>
48
+ </PaginationItem>
49
+ <PaginationItem>
50
+ <PaginationLink href="#" isActive>
51
+ 2
52
+ </PaginationLink>
53
+ </PaginationItem>
54
+ <PaginationItem>
55
+ <PaginationLink href="#">3</PaginationLink>
56
+ </PaginationItem>
57
+ <PaginationItem>
58
+ <PaginationEllipsis />
59
+ </PaginationItem>
60
+ <PaginationItem>
61
+ <PaginationNext href="#" />
62
+ </PaginationItem>
63
+ </PaginationContent>
64
+ </Pagination>
65
+ </ComponentShowcase>
66
+ </ComponentSection>
67
+ );
68
+ }
@@ -0,0 +1,61 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Button } from '@/components/ui/button';
3
+ import { Input } from '@/components/ui/input';
4
+ import { Label } from '@/components/ui/label';
5
+ import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';
6
+
7
+ export function PopoverDocs() {
8
+ return (
9
+ <ComponentSection title="Popover" description="Displays rich content in a portal, triggered by a button.">
10
+ <ComponentShowcase
11
+ title="Default"
12
+ description="A basic popover."
13
+ code={`<Popover>
14
+ <PopoverTrigger asChild>
15
+ <Button variant="outline">Open popover</Button>
16
+ </PopoverTrigger>
17
+ <PopoverContent className="w-80">
18
+ <div className="grid gap-4">
19
+ <div className="space-y-2">
20
+ <h4 className="font-medium leading-none">Dimensions</h4>
21
+ <p className="text-sm text-muted-foreground">
22
+ Set the dimensions for the layer.
23
+ </p>
24
+ </div>
25
+ <div className="grid gap-2">
26
+ <div className="grid grid-cols-3 items-center gap-4">
27
+ <Label htmlFor="width">Width</Label>
28
+ <Input id="width" defaultValue="100%" className="col-span-2 h-8" />
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </PopoverContent>
33
+ </Popover>`}
34
+ >
35
+ <Popover>
36
+ <PopoverTrigger asChild>
37
+ <Button variant="outline">Open popover</Button>
38
+ </PopoverTrigger>
39
+ <PopoverContent className="w-80">
40
+ <div className="grid gap-4">
41
+ <div className="space-y-2">
42
+ <h4 className="font-medium leading-none">Dimensions</h4>
43
+ <p className="text-sm text-muted-foreground">Set the dimensions for the layer.</p>
44
+ </div>
45
+ <div className="grid gap-2">
46
+ <div className="grid grid-cols-3 items-center gap-4">
47
+ <Label htmlFor="width">Width</Label>
48
+ <Input id="width" defaultValue="100%" className="col-span-2 h-8" />
49
+ </div>
50
+ <div className="grid grid-cols-3 items-center gap-4">
51
+ <Label htmlFor="height">Height</Label>
52
+ <Input id="height" defaultValue="25px" className="col-span-2 h-8" />
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </PopoverContent>
57
+ </Popover>
58
+ </ComponentShowcase>
59
+ </ComponentSection>
60
+ );
61
+ }
@@ -0,0 +1,34 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Progress } from '@/components/ui/progress';
3
+
4
+ export function ProgressDocs() {
5
+ return (
6
+ <ComponentSection title="Progress" description="Displays an indicator showing the completion progress of a task.">
7
+ <ComponentShowcase
8
+ title="Default"
9
+ description="A basic progress bar."
10
+ code={`<Progress value={33} className="w-[60%]" />`}
11
+ >
12
+ <Progress value={33} className="w-full max-w-md" />
13
+ </ComponentShowcase>
14
+
15
+ <ComponentShowcase
16
+ title="Various Values"
17
+ description="Progress bars with different completion values."
18
+ code={`<Progress value={0} />
19
+ <Progress value={25} />
20
+ <Progress value={50} />
21
+ <Progress value={75} />
22
+ <Progress value={100} />`}
23
+ >
24
+ <div className="space-y-4 w-full max-w-md">
25
+ <Progress value={0} />
26
+ <Progress value={25} />
27
+ <Progress value={50} />
28
+ <Progress value={75} />
29
+ <Progress value={100} />
30
+ </div>
31
+ </ComponentShowcase>
32
+ </ComponentSection>
33
+ );
34
+ }
@@ -0,0 +1,38 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Label } from '@/components/ui/label';
3
+ import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group';
4
+
5
+ export function RadioGroupDocs() {
6
+ return (
7
+ <ComponentSection
8
+ title="Radio Group"
9
+ description="A set of checkable buttons—known as radio buttons—where no more than one of the buttons can be checked at a time."
10
+ >
11
+ <ComponentShowcase
12
+ title="Default"
13
+ description="A basic radio group."
14
+ code={`<RadioGroup defaultValue="option-one">
15
+ <div className="flex items-center space-x-2">
16
+ <RadioGroupItem value="option-one" id="option-one" />
17
+ <Label htmlFor="option-one">Option One</Label>
18
+ </div>
19
+ <div className="flex items-center space-x-2">
20
+ <RadioGroupItem value="option-two" id="option-two" />
21
+ <Label htmlFor="option-two">Option Two</Label>
22
+ </div>
23
+ </RadioGroup>`}
24
+ >
25
+ <RadioGroup defaultValue="option-one">
26
+ <div className="flex items-center space-x-2">
27
+ <RadioGroupItem value="option-one" id="option-one" />
28
+ <Label htmlFor="option-one">Option One</Label>
29
+ </div>
30
+ <div className="flex items-center space-x-2">
31
+ <RadioGroupItem value="option-two" id="option-two" />
32
+ <Label htmlFor="option-two">Option Two</Label>
33
+ </div>
34
+ </RadioGroup>
35
+ </ComponentShowcase>
36
+ </ComponentSection>
37
+ );
38
+ }
@@ -0,0 +1,110 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from '@/components/ui/resizable';
3
+
4
+ export function ResizableDocs() {
5
+ return (
6
+ <ComponentSection
7
+ title="Resizable"
8
+ description="Accessible resizable panel groups and layouts with keyboard support."
9
+ >
10
+ <ComponentShowcase
11
+ title="Horizontal"
12
+ description="A horizontally resizable panel group."
13
+ code={`<ResizablePanelGroup direction="horizontal" className="min-h-[200px] max-w-md rounded-lg border md:min-w-[450px]">
14
+ <ResizablePanel defaultSize={50}>
15
+ <div className="flex h-[200px] items-center justify-center p-6">
16
+ <span className="font-semibold">One</span>
17
+ </div>
18
+ </ResizablePanel>
19
+ <ResizableHandle />
20
+ <ResizablePanel defaultSize={50}>
21
+ <div className="flex h-[200px] items-center justify-center p-6">
22
+ <span className="font-semibold">Two</span>
23
+ </div>
24
+ </ResizablePanel>
25
+ </ResizablePanelGroup>`}
26
+ >
27
+ <ResizablePanelGroup
28
+ direction="horizontal"
29
+ className="min-h-[200px] max-w-md rounded-lg border md:min-w-[450px]"
30
+ >
31
+ <ResizablePanel defaultSize={50}>
32
+ <div className="flex h-[200px] items-center justify-center p-6">
33
+ <span className="font-semibold">One</span>
34
+ </div>
35
+ </ResizablePanel>
36
+ <ResizableHandle />
37
+ <ResizablePanel defaultSize={50}>
38
+ <div className="flex h-[200px] items-center justify-center p-6">
39
+ <span className="font-semibold">Two</span>
40
+ </div>
41
+ </ResizablePanel>
42
+ </ResizablePanelGroup>
43
+ </ComponentShowcase>
44
+
45
+ <ComponentShowcase
46
+ title="Vertical"
47
+ description="A vertically resizable panel group."
48
+ code={`<ResizablePanelGroup direction="vertical" className="min-h-[300px] max-w-md rounded-lg border">
49
+ <ResizablePanel defaultSize={25}>
50
+ <div className="flex h-full items-center justify-center p-6">
51
+ <span className="font-semibold">Header</span>
52
+ </div>
53
+ </ResizablePanel>
54
+ <ResizableHandle />
55
+ <ResizablePanel defaultSize={75}>
56
+ <div className="flex h-full items-center justify-center p-6">
57
+ <span className="font-semibold">Content</span>
58
+ </div>
59
+ </ResizablePanel>
60
+ </ResizablePanelGroup>`}
61
+ >
62
+ <ResizablePanelGroup direction="vertical" className="min-h-[300px] max-w-md rounded-lg border">
63
+ <ResizablePanel defaultSize={25}>
64
+ <div className="flex h-full items-center justify-center p-6">
65
+ <span className="font-semibold">Header</span>
66
+ </div>
67
+ </ResizablePanel>
68
+ <ResizableHandle />
69
+ <ResizablePanel defaultSize={75}>
70
+ <div className="flex h-full items-center justify-center p-6">
71
+ <span className="font-semibold">Content</span>
72
+ </div>
73
+ </ResizablePanel>
74
+ </ResizablePanelGroup>
75
+ </ComponentShowcase>
76
+
77
+ <ComponentShowcase
78
+ title="With Handle"
79
+ description="Resizable panels with a visible handle."
80
+ code={`<ResizablePanelGroup direction="horizontal" className="min-h-[200px] max-w-md rounded-lg border">
81
+ <ResizablePanel defaultSize={25}>
82
+ <div className="flex h-full items-center justify-center p-6">
83
+ <span className="font-semibold">Sidebar</span>
84
+ </div>
85
+ </ResizablePanel>
86
+ <ResizableHandle withHandle />
87
+ <ResizablePanel defaultSize={75}>
88
+ <div className="flex h-full items-center justify-center p-6">
89
+ <span className="font-semibold">Content</span>
90
+ </div>
91
+ </ResizablePanel>
92
+ </ResizablePanelGroup>`}
93
+ >
94
+ <ResizablePanelGroup direction="horizontal" className="min-h-[200px] max-w-md rounded-lg border">
95
+ <ResizablePanel defaultSize={25}>
96
+ <div className="flex h-full items-center justify-center p-6">
97
+ <span className="font-semibold">Sidebar</span>
98
+ </div>
99
+ </ResizablePanel>
100
+ <ResizableHandle withHandle />
101
+ <ResizablePanel defaultSize={75}>
102
+ <div className="flex h-full items-center justify-center p-6">
103
+ <span className="font-semibold">Content</span>
104
+ </div>
105
+ </ResizablePanel>
106
+ </ResizablePanelGroup>
107
+ </ComponentShowcase>
108
+ </ComponentSection>
109
+ );
110
+ }
@@ -0,0 +1,89 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { ScrollArea, ScrollBar } from '@/components/ui/scroll-area';
3
+ import { Separator } from '@/components/ui/separator';
4
+
5
+ const tags = Array.from({ length: 50 }).map((_, i, a) => `v1.2.0-beta.${a.length - i}`);
6
+
7
+ const works = [
8
+ { artist: 'Ornella Binni', art: 'Reflection' },
9
+ { artist: 'Tom Byrom', art: 'Mountain View' },
10
+ { artist: 'Vladimir Malyavko', art: 'Harmony' },
11
+ { artist: 'Magicle', art: 'Dreams' },
12
+ ];
13
+
14
+ export function ScrollAreaDocs() {
15
+ return (
16
+ <ComponentSection
17
+ title="Scroll Area"
18
+ description="Augments native scroll functionality for custom, cross-browser styling."
19
+ >
20
+ <ComponentShowcase
21
+ title="Vertical"
22
+ description="A vertically scrolling area."
23
+ code={`<ScrollArea className="h-72 w-48 rounded-md border">
24
+ <div className="p-4">
25
+ <h4 className="mb-4 text-sm font-medium leading-none">Tags</h4>
26
+ {tags.map((tag) => (
27
+ <>
28
+ <div key={tag} className="text-sm">{tag}</div>
29
+ <Separator className="my-2" />
30
+ </>
31
+ ))}
32
+ </div>
33
+ </ScrollArea>`}
34
+ >
35
+ <ScrollArea className="h-72 w-48 rounded-md border">
36
+ <div className="p-4">
37
+ <h4 className="mb-4 text-sm font-medium leading-none">Tags</h4>
38
+ {tags.map((tag) => (
39
+ <div key={tag}>
40
+ <div className="text-sm">{tag}</div>
41
+ <Separator className="my-2" />
42
+ </div>
43
+ ))}
44
+ </div>
45
+ </ScrollArea>
46
+ </ComponentShowcase>
47
+
48
+ <ComponentShowcase
49
+ title="Horizontal"
50
+ description="A horizontally scrolling area."
51
+ code={`<ScrollArea className="w-96 whitespace-nowrap rounded-md border">
52
+ <div className="flex w-max space-x-4 p-4">
53
+ {works.map((work) => (
54
+ <figure key={work.artist} className="shrink-0">
55
+ <div className="overflow-hidden rounded-md">
56
+ <div className="h-[150px] w-[150px] bg-muted flex items-center justify-center">
57
+ {work.art}
58
+ </div>
59
+ </div>
60
+ <figcaption className="pt-2 text-xs text-muted-foreground">
61
+ Photo by <span className="font-semibold text-foreground">{work.artist}</span>
62
+ </figcaption>
63
+ </figure>
64
+ ))}
65
+ </div>
66
+ <ScrollBar orientation="horizontal" />
67
+ </ScrollArea>`}
68
+ >
69
+ <ScrollArea className="w-96 whitespace-nowrap rounded-md border">
70
+ <div className="flex w-max space-x-4 p-4">
71
+ {works.map((work) => (
72
+ <figure key={work.artist} className="shrink-0">
73
+ <div className="overflow-hidden rounded-md">
74
+ <div className="h-[150px] w-[150px] bg-muted flex items-center justify-center text-sm">
75
+ {work.art}
76
+ </div>
77
+ </div>
78
+ <figcaption className="pt-2 text-xs text-muted-foreground">
79
+ Photo by <span className="font-semibold text-foreground">{work.artist}</span>
80
+ </figcaption>
81
+ </figure>
82
+ ))}
83
+ </div>
84
+ <ScrollBar orientation="horizontal" />
85
+ </ScrollArea>
86
+ </ComponentShowcase>
87
+ </ComponentSection>
88
+ );
89
+ }
@@ -0,0 +1,87 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import {
3
+ Select,
4
+ SelectContent,
5
+ SelectGroup,
6
+ SelectItem,
7
+ SelectLabel,
8
+ SelectTrigger,
9
+ SelectValue,
10
+ } from '@/components/ui/select';
11
+
12
+ export function SelectDocs() {
13
+ return (
14
+ <ComponentSection
15
+ title="Select"
16
+ description="Displays a list of options for the user to pick from, triggered by a button."
17
+ >
18
+ <ComponentShowcase
19
+ title="Default"
20
+ description="A basic select component."
21
+ code={`<Select>
22
+ <SelectTrigger className="w-[180px]">
23
+ <SelectValue placeholder="Select a fruit" />
24
+ </SelectTrigger>
25
+ <SelectContent>
26
+ <SelectItem value="apple">Apple</SelectItem>
27
+ <SelectItem value="banana">Banana</SelectItem>
28
+ <SelectItem value="orange">Orange</SelectItem>
29
+ </SelectContent>
30
+ </Select>`}
31
+ >
32
+ <Select>
33
+ <SelectTrigger className="w-[180px]">
34
+ <SelectValue placeholder="Select a fruit" />
35
+ </SelectTrigger>
36
+ <SelectContent>
37
+ <SelectItem value="apple">Apple</SelectItem>
38
+ <SelectItem value="banana">Banana</SelectItem>
39
+ <SelectItem value="orange">Orange</SelectItem>
40
+ </SelectContent>
41
+ </Select>
42
+ </ComponentShowcase>
43
+
44
+ <ComponentShowcase
45
+ title="With Groups"
46
+ description="Options can be organized into groups with labels."
47
+ code={`<Select>
48
+ <SelectTrigger className="w-[180px]">
49
+ <SelectValue placeholder="Select a timezone" />
50
+ </SelectTrigger>
51
+ <SelectContent>
52
+ <SelectGroup>
53
+ <SelectLabel>North America</SelectLabel>
54
+ <SelectItem value="est">Eastern Time (EST)</SelectItem>
55
+ <SelectItem value="cst">Central Time (CST)</SelectItem>
56
+ <SelectItem value="pst">Pacific Time (PST)</SelectItem>
57
+ </SelectGroup>
58
+ <SelectGroup>
59
+ <SelectLabel>Europe</SelectLabel>
60
+ <SelectItem value="gmt">GMT</SelectItem>
61
+ <SelectItem value="cet">Central European Time (CET)</SelectItem>
62
+ </SelectGroup>
63
+ </SelectContent>
64
+ </Select>`}
65
+ >
66
+ <Select>
67
+ <SelectTrigger className="w-[220px]">
68
+ <SelectValue placeholder="Select a timezone" />
69
+ </SelectTrigger>
70
+ <SelectContent>
71
+ <SelectGroup>
72
+ <SelectLabel>North America</SelectLabel>
73
+ <SelectItem value="est">Eastern Time (EST)</SelectItem>
74
+ <SelectItem value="cst">Central Time (CST)</SelectItem>
75
+ <SelectItem value="pst">Pacific Time (PST)</SelectItem>
76
+ </SelectGroup>
77
+ <SelectGroup>
78
+ <SelectLabel>Europe</SelectLabel>
79
+ <SelectItem value="gmt">GMT</SelectItem>
80
+ <SelectItem value="cet">Central European Time (CET)</SelectItem>
81
+ </SelectGroup>
82
+ </SelectContent>
83
+ </Select>
84
+ </ComponentShowcase>
85
+ </ComponentSection>
86
+ );
87
+ }