@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,93 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import {
3
+ ContextMenu,
4
+ ContextMenuContent,
5
+ ContextMenuItem,
6
+ ContextMenuSeparator,
7
+ ContextMenuShortcut,
8
+ ContextMenuSub,
9
+ ContextMenuSubContent,
10
+ ContextMenuSubTrigger,
11
+ ContextMenuTrigger,
12
+ } from '@/components/ui/context-menu';
13
+
14
+ export function ContextMenuDocs() {
15
+ return (
16
+ <ComponentSection
17
+ title="Context Menu"
18
+ description="Displays a menu to the user—such as a set of actions or functions—triggered by right-click."
19
+ >
20
+ <ComponentShowcase
21
+ title="Default"
22
+ description="Right-click to open the context menu."
23
+ code={`<ContextMenu>
24
+ <ContextMenuTrigger className="flex h-[150px] w-[300px] items-center justify-center rounded-md border border-dashed text-sm">
25
+ Right click here
26
+ </ContextMenuTrigger>
27
+ <ContextMenuContent className="w-64">
28
+ <ContextMenuItem>
29
+ Back
30
+ <ContextMenuShortcut>⌘[</ContextMenuShortcut>
31
+ </ContextMenuItem>
32
+ <ContextMenuItem disabled>
33
+ Forward
34
+ <ContextMenuShortcut>⌘]</ContextMenuShortcut>
35
+ </ContextMenuItem>
36
+ <ContextMenuItem>
37
+ Reload
38
+ <ContextMenuShortcut>⌘R</ContextMenuShortcut>
39
+ </ContextMenuItem>
40
+ <ContextMenuSub>
41
+ <ContextMenuSubTrigger>More Tools</ContextMenuSubTrigger>
42
+ <ContextMenuSubContent className="w-48">
43
+ <ContextMenuItem>Save Page As...</ContextMenuItem>
44
+ <ContextMenuItem>Create Shortcut...</ContextMenuItem>
45
+ <ContextMenuSeparator />
46
+ <ContextMenuItem>Developer Tools</ContextMenuItem>
47
+ </ContextMenuSubContent>
48
+ </ContextMenuSub>
49
+ <ContextMenuSeparator />
50
+ <ContextMenuItem>
51
+ View Page Source
52
+ <ContextMenuShortcut>⌘U</ContextMenuShortcut>
53
+ </ContextMenuItem>
54
+ </ContextMenuContent>
55
+ </ContextMenu>`}
56
+ >
57
+ <ContextMenu>
58
+ <ContextMenuTrigger className="flex h-[150px] w-[300px] items-center justify-center rounded-md border border-dashed text-sm">
59
+ Right click here
60
+ </ContextMenuTrigger>
61
+ <ContextMenuContent className="w-64">
62
+ <ContextMenuItem>
63
+ Back
64
+ <ContextMenuShortcut>⌘[</ContextMenuShortcut>
65
+ </ContextMenuItem>
66
+ <ContextMenuItem disabled>
67
+ Forward
68
+ <ContextMenuShortcut>⌘]</ContextMenuShortcut>
69
+ </ContextMenuItem>
70
+ <ContextMenuItem>
71
+ Reload
72
+ <ContextMenuShortcut>⌘R</ContextMenuShortcut>
73
+ </ContextMenuItem>
74
+ <ContextMenuSub>
75
+ <ContextMenuSubTrigger>More Tools</ContextMenuSubTrigger>
76
+ <ContextMenuSubContent className="w-48">
77
+ <ContextMenuItem>Save Page As...</ContextMenuItem>
78
+ <ContextMenuItem>Create Shortcut...</ContextMenuItem>
79
+ <ContextMenuSeparator />
80
+ <ContextMenuItem>Developer Tools</ContextMenuItem>
81
+ </ContextMenuSubContent>
82
+ </ContextMenuSub>
83
+ <ContextMenuSeparator />
84
+ <ContextMenuItem>
85
+ View Page Source
86
+ <ContextMenuShortcut>⌘U</ContextMenuShortcut>
87
+ </ContextMenuItem>
88
+ </ContextMenuContent>
89
+ </ContextMenu>
90
+ </ComponentShowcase>
91
+ </ComponentSection>
92
+ );
93
+ }
@@ -0,0 +1,80 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Button } from '@/components/ui/button';
3
+ import {
4
+ Dialog,
5
+ DialogContent,
6
+ DialogDescription,
7
+ DialogFooter,
8
+ DialogHeader,
9
+ DialogTitle,
10
+ DialogTrigger,
11
+ } from '@/components/ui/dialog';
12
+ import { Input } from '@/components/ui/input';
13
+ import { Label } from '@/components/ui/label';
14
+
15
+ export function DialogDocs() {
16
+ return (
17
+ <ComponentSection
18
+ title="Dialog"
19
+ description="A modal dialog that interrupts the user with important content and expects a response."
20
+ >
21
+ <ComponentShowcase
22
+ title="Default"
23
+ description="A basic dialog with a trigger button."
24
+ code={`<Dialog>
25
+ <DialogTrigger asChild>
26
+ <Button variant="outline">Open Dialog</Button>
27
+ </DialogTrigger>
28
+ <DialogContent>
29
+ <DialogHeader>
30
+ <DialogTitle>Edit profile</DialogTitle>
31
+ <DialogDescription>
32
+ Make changes to your profile here.
33
+ </DialogDescription>
34
+ </DialogHeader>
35
+ <div className="grid gap-4 py-4">
36
+ <div className="grid grid-cols-4 items-center gap-4">
37
+ <Label htmlFor="name" className="text-right">Name</Label>
38
+ <Input id="name" className="col-span-3" />
39
+ </div>
40
+ </div>
41
+ <DialogFooter>
42
+ <Button type="submit">Save changes</Button>
43
+ </DialogFooter>
44
+ </DialogContent>
45
+ </Dialog>`}
46
+ >
47
+ <Dialog>
48
+ <DialogTrigger asChild>
49
+ <Button variant="outline">Open Dialog</Button>
50
+ </DialogTrigger>
51
+ <DialogContent className="sm:max-w-[425px]">
52
+ <DialogHeader>
53
+ <DialogTitle>Edit profile</DialogTitle>
54
+ <DialogDescription>
55
+ Make changes to your profile here. Click save when you&apos;re done.
56
+ </DialogDescription>
57
+ </DialogHeader>
58
+ <div className="grid gap-4 py-4">
59
+ <div className="grid grid-cols-4 items-center gap-4">
60
+ <Label htmlFor="name" className="text-right">
61
+ Name
62
+ </Label>
63
+ <Input id="name" defaultValue="Pedro Duarte" className="col-span-3" />
64
+ </div>
65
+ <div className="grid grid-cols-4 items-center gap-4">
66
+ <Label htmlFor="username" className="text-right">
67
+ Username
68
+ </Label>
69
+ <Input id="username" defaultValue="@peduarte" className="col-span-3" />
70
+ </div>
71
+ </div>
72
+ <DialogFooter>
73
+ <Button type="submit">Save changes</Button>
74
+ </DialogFooter>
75
+ </DialogContent>
76
+ </Dialog>
77
+ </ComponentShowcase>
78
+ </ComponentSection>
79
+ );
80
+ }
@@ -0,0 +1,79 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Button } from '@/components/ui/button';
3
+ import {
4
+ Drawer,
5
+ DrawerClose,
6
+ DrawerContent,
7
+ DrawerDescription,
8
+ DrawerFooter,
9
+ DrawerHeader,
10
+ DrawerTitle,
11
+ DrawerTrigger,
12
+ } from '@/components/ui/drawer';
13
+ import { Input } from '@/components/ui/input';
14
+ import { Label } from '@/components/ui/label';
15
+
16
+ export function DrawerDocs() {
17
+ return (
18
+ <ComponentSection
19
+ title="Drawer"
20
+ description="A drawer component that slides up from the bottom of the screen on mobile devices."
21
+ >
22
+ <ComponentShowcase
23
+ title="Default"
24
+ description="A bottom drawer with form content."
25
+ code={`<Drawer>
26
+ <DrawerTrigger asChild>
27
+ <Button variant="outline">Open Drawer</Button>
28
+ </DrawerTrigger>
29
+ <DrawerContent>
30
+ <div className="mx-auto w-full max-w-sm">
31
+ <DrawerHeader>
32
+ <DrawerTitle>Move Goal</DrawerTitle>
33
+ <DrawerDescription>Set your daily activity goal.</DrawerDescription>
34
+ </DrawerHeader>
35
+ <div className="p-4">
36
+ <div className="grid gap-4">
37
+ <Label htmlFor="goal">Goal</Label>
38
+ <Input id="goal" type="number" defaultValue="350" />
39
+ </div>
40
+ </div>
41
+ <DrawerFooter>
42
+ <Button>Submit</Button>
43
+ <DrawerClose asChild>
44
+ <Button variant="outline">Cancel</Button>
45
+ </DrawerClose>
46
+ </DrawerFooter>
47
+ </div>
48
+ </DrawerContent>
49
+ </Drawer>`}
50
+ >
51
+ <Drawer>
52
+ <DrawerTrigger asChild>
53
+ <Button variant="outline">Open Drawer</Button>
54
+ </DrawerTrigger>
55
+ <DrawerContent>
56
+ <div className="mx-auto w-full max-w-sm">
57
+ <DrawerHeader>
58
+ <DrawerTitle>Move Goal</DrawerTitle>
59
+ <DrawerDescription>Set your daily activity goal.</DrawerDescription>
60
+ </DrawerHeader>
61
+ <div className="p-4">
62
+ <div className="grid gap-4">
63
+ <Label htmlFor="goal">Goal</Label>
64
+ <Input id="goal" type="number" defaultValue="350" />
65
+ </div>
66
+ </div>
67
+ <DrawerFooter>
68
+ <Button>Submit</Button>
69
+ <DrawerClose asChild>
70
+ <Button variant="outline">Cancel</Button>
71
+ </DrawerClose>
72
+ </DrawerFooter>
73
+ </div>
74
+ </DrawerContent>
75
+ </Drawer>
76
+ </ComponentShowcase>
77
+ </ComponentSection>
78
+ );
79
+ }
@@ -0,0 +1,51 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Button } from '@/components/ui/button';
3
+ import {
4
+ DropdownMenu,
5
+ DropdownMenuContent,
6
+ DropdownMenuItem,
7
+ DropdownMenuLabel,
8
+ DropdownMenuSeparator,
9
+ DropdownMenuTrigger,
10
+ } from '@/components/ui/dropdown-menu';
11
+
12
+ export function DropdownMenuDocs() {
13
+ return (
14
+ <ComponentSection
15
+ title="Dropdown Menu"
16
+ description="Displays a menu to the user—such as a set of actions or functions—triggered by a button."
17
+ >
18
+ <ComponentShowcase
19
+ title="Default"
20
+ description="A basic dropdown menu."
21
+ code={`<DropdownMenu>
22
+ <DropdownMenuTrigger asChild>
23
+ <Button variant="outline">Open</Button>
24
+ </DropdownMenuTrigger>
25
+ <DropdownMenuContent>
26
+ <DropdownMenuLabel>My Account</DropdownMenuLabel>
27
+ <DropdownMenuSeparator />
28
+ <DropdownMenuItem>Profile</DropdownMenuItem>
29
+ <DropdownMenuItem>Billing</DropdownMenuItem>
30
+ <DropdownMenuItem>Team</DropdownMenuItem>
31
+ <DropdownMenuItem>Subscription</DropdownMenuItem>
32
+ </DropdownMenuContent>
33
+ </DropdownMenu>`}
34
+ >
35
+ <DropdownMenu>
36
+ <DropdownMenuTrigger asChild>
37
+ <Button variant="outline">Open</Button>
38
+ </DropdownMenuTrigger>
39
+ <DropdownMenuContent>
40
+ <DropdownMenuLabel>My Account</DropdownMenuLabel>
41
+ <DropdownMenuSeparator />
42
+ <DropdownMenuItem>Profile</DropdownMenuItem>
43
+ <DropdownMenuItem>Billing</DropdownMenuItem>
44
+ <DropdownMenuItem>Team</DropdownMenuItem>
45
+ <DropdownMenuItem>Subscription</DropdownMenuItem>
46
+ </DropdownMenuContent>
47
+ </DropdownMenu>
48
+ </ComponentShowcase>
49
+ </ComponentSection>
50
+ );
51
+ }
@@ -0,0 +1,84 @@
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
+
6
+ export function FormDocs() {
7
+ return (
8
+ <ComponentSection title="Form" description="Building forms with React Hook Form and Zod validation.">
9
+ <ComponentShowcase
10
+ title="Basic Form"
11
+ description="A simple form layout with labels and inputs."
12
+ code={`<form className="space-y-4 w-full max-w-sm">
13
+ <div className="space-y-2">
14
+ <Label htmlFor="email">Email</Label>
15
+ <Input type="email" id="email" placeholder="Enter your email" />
16
+ </div>
17
+ <div className="space-y-2">
18
+ <Label htmlFor="password">Password</Label>
19
+ <Input type="password" id="password" placeholder="Enter your password" />
20
+ </div>
21
+ <Button type="submit" className="w-full">Submit</Button>
22
+ </form>`}
23
+ >
24
+ <form className="space-y-4 w-full max-w-sm">
25
+ <div className="space-y-2">
26
+ <Label htmlFor="email">Email</Label>
27
+ <Input type="email" id="email" placeholder="Enter your email" />
28
+ </div>
29
+ <div className="space-y-2">
30
+ <Label htmlFor="password">Password</Label>
31
+ <Input type="password" id="password" placeholder="Enter your password" />
32
+ </div>
33
+ <Button type="submit" className="w-full">
34
+ Submit
35
+ </Button>
36
+ </form>
37
+ </ComponentShowcase>
38
+
39
+ <ComponentShowcase
40
+ title="Inline Form"
41
+ description="A horizontal form layout for compact displays."
42
+ code={`<form className="flex gap-2 items-end w-full max-w-md">
43
+ <div className="flex-1 space-y-2">
44
+ <Label htmlFor="inline-email">Email</Label>
45
+ <Input type="email" id="inline-email" placeholder="Enter your email" />
46
+ </div>
47
+ <Button type="submit">Subscribe</Button>
48
+ </form>`}
49
+ >
50
+ <form className="flex gap-2 items-end w-full max-w-md">
51
+ <div className="flex-1 space-y-2">
52
+ <Label htmlFor="inline-email">Email</Label>
53
+ <Input type="email" id="inline-email" placeholder="Enter your email" />
54
+ </div>
55
+ <Button type="submit">Subscribe</Button>
56
+ </form>
57
+ </ComponentShowcase>
58
+
59
+ <ComponentShowcase
60
+ title="Form with Description"
61
+ description="Form fields with helper text below."
62
+ code={`<form className="space-y-4 w-full max-w-sm">
63
+ <div className="space-y-2">
64
+ <Label htmlFor="username">Username</Label>
65
+ <Input id="username" placeholder="johndoe" />
66
+ <p className="text-sm text-muted-foreground">
67
+ This is your public display name.
68
+ </p>
69
+ </div>
70
+ <Button type="submit">Save changes</Button>
71
+ </form>`}
72
+ >
73
+ <form className="space-y-4 w-full max-w-sm">
74
+ <div className="space-y-2">
75
+ <Label htmlFor="username">Username</Label>
76
+ <Input id="username" placeholder="johndoe" />
77
+ <p className="text-sm text-muted-foreground">This is your public display name.</p>
78
+ </div>
79
+ <Button type="submit">Save changes</Button>
80
+ </form>
81
+ </ComponentShowcase>
82
+ </ComponentSection>
83
+ );
84
+ }
@@ -0,0 +1,59 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
3
+ import { Button } from '@/components/ui/button';
4
+ import { HoverCard, HoverCardContent, HoverCardTrigger } from '@/components/ui/hover-card';
5
+ import { CalendarDays } from 'lucide-react';
6
+
7
+ export function HoverCardDocs() {
8
+ return (
9
+ <ComponentSection title="Hover Card" description="For sighted users to preview content available behind a link.">
10
+ <ComponentShowcase
11
+ title="Default"
12
+ description="A hover card showing user profile information."
13
+ code={`<HoverCard>
14
+ <HoverCardTrigger asChild>
15
+ <Button variant="link">@nextjs</Button>
16
+ </HoverCardTrigger>
17
+ <HoverCardContent className="w-80">
18
+ <div className="flex justify-between space-x-4">
19
+ <Avatar>
20
+ <AvatarImage src="https://github.com/vercel.png" />
21
+ <AvatarFallback>VC</AvatarFallback>
22
+ </Avatar>
23
+ <div className="space-y-1">
24
+ <h4 className="text-sm font-semibold">@nextjs</h4>
25
+ <p className="text-sm">The React Framework – created and maintained by @vercel.</p>
26
+ <div className="flex items-center pt-2">
27
+ <CalendarDays className="mr-2 h-4 w-4 opacity-70" />
28
+ <span className="text-xs text-muted-foreground">Joined December 2021</span>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </HoverCardContent>
33
+ </HoverCard>`}
34
+ >
35
+ <HoverCard>
36
+ <HoverCardTrigger asChild>
37
+ <Button variant="link">@nextjs</Button>
38
+ </HoverCardTrigger>
39
+ <HoverCardContent className="w-80">
40
+ <div className="flex justify-between space-x-4">
41
+ <Avatar>
42
+ <AvatarImage src="https://github.com/vercel.png" />
43
+ <AvatarFallback>VC</AvatarFallback>
44
+ </Avatar>
45
+ <div className="space-y-1">
46
+ <h4 className="text-sm font-semibold">@nextjs</h4>
47
+ <p className="text-sm">The React Framework – created and maintained by @vercel.</p>
48
+ <div className="flex items-center pt-2">
49
+ <CalendarDays className="mr-2 h-4 w-4 opacity-70" />
50
+ <span className="text-xs text-muted-foreground">Joined December 2021</span>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </HoverCardContent>
55
+ </HoverCard>
56
+ </ComponentShowcase>
57
+ </ComponentSection>
58
+ );
59
+ }
@@ -0,0 +1,68 @@
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
+
6
+ export function InputDocs() {
7
+ return (
8
+ <ComponentSection title="Input" description="Displays a form input field for collecting user text input.">
9
+ <ComponentShowcase
10
+ title="Default"
11
+ description="The default input field."
12
+ code={`<Input type="text" placeholder="Enter text..." />`}
13
+ >
14
+ <Input type="text" placeholder="Enter text..." className="max-w-xs" />
15
+ </ComponentShowcase>
16
+
17
+ <ComponentShowcase
18
+ title="With Label"
19
+ description="Pair inputs with labels for accessibility."
20
+ code={`<div className="grid w-full max-w-sm items-center gap-1.5">
21
+ <Label htmlFor="email">Email</Label>
22
+ <Input type="email" id="email" placeholder="Email" />
23
+ </div>`}
24
+ >
25
+ <div className="grid w-full max-w-sm items-center gap-1.5">
26
+ <Label htmlFor="email">Email</Label>
27
+ <Input type="email" id="email" placeholder="Email" />
28
+ </div>
29
+ </ComponentShowcase>
30
+
31
+ <ComponentShowcase
32
+ title="File Input"
33
+ description="Input for file uploads."
34
+ code={`<div className="grid w-full max-w-sm items-center gap-1.5">
35
+ <Label htmlFor="picture">Picture</Label>
36
+ <Input id="picture" type="file" />
37
+ </div>`}
38
+ >
39
+ <div className="grid w-full max-w-sm items-center gap-1.5">
40
+ <Label htmlFor="picture">Picture</Label>
41
+ <Input id="picture" type="file" />
42
+ </div>
43
+ </ComponentShowcase>
44
+
45
+ <ComponentShowcase
46
+ title="Disabled"
47
+ description="Disabled state prevents user interaction."
48
+ code={`<Input disabled type="text" placeholder="Disabled" />`}
49
+ >
50
+ <Input disabled type="text" placeholder="Disabled" className="max-w-xs" />
51
+ </ComponentShowcase>
52
+
53
+ <ComponentShowcase
54
+ title="With Button"
55
+ description="Combine input with a button for search patterns."
56
+ code={`<div className="flex w-full max-w-sm items-center space-x-2">
57
+ <Input type="email" placeholder="Email" />
58
+ <Button type="submit">Subscribe</Button>
59
+ </div>`}
60
+ >
61
+ <div className="flex w-full max-w-sm items-center space-x-2">
62
+ <Input type="email" placeholder="Email" />
63
+ <Button type="submit">Subscribe</Button>
64
+ </div>
65
+ </ComponentShowcase>
66
+ </ComponentSection>
67
+ );
68
+ }
@@ -0,0 +1,23 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Input } from '@/components/ui/input';
3
+ import { Label } from '@/components/ui/label';
4
+
5
+ export function LabelDocs() {
6
+ return (
7
+ <ComponentSection title="Label" description="Renders an accessible label associated with form controls.">
8
+ <ComponentShowcase
9
+ title="Default"
10
+ description="A basic label with an input."
11
+ code={`<div className="grid w-full max-w-sm items-center gap-1.5">
12
+ <Label htmlFor="email">Email</Label>
13
+ <Input type="email" id="email" placeholder="Email" />
14
+ </div>`}
15
+ >
16
+ <div className="grid w-full max-w-sm items-center gap-1.5">
17
+ <Label htmlFor="email-label">Email</Label>
18
+ <Input type="email" id="email-label" placeholder="Email" />
19
+ </div>
20
+ </ComponentShowcase>
21
+ </ComponentSection>
22
+ );
23
+ }
@@ -0,0 +1,117 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import {
3
+ Menubar,
4
+ MenubarContent,
5
+ MenubarItem,
6
+ MenubarMenu,
7
+ MenubarSeparator,
8
+ MenubarShortcut,
9
+ MenubarSub,
10
+ MenubarSubContent,
11
+ MenubarSubTrigger,
12
+ MenubarTrigger,
13
+ } from '@/components/ui/menubar';
14
+
15
+ export function MenubarDocs() {
16
+ return (
17
+ <ComponentSection title="Menubar" description="A visually persistent menu common in desktop applications.">
18
+ <ComponentShowcase
19
+ title="Default"
20
+ description="A menubar with submenus and shortcuts."
21
+ code={`<Menubar>
22
+ <MenubarMenu>
23
+ <MenubarTrigger>File</MenubarTrigger>
24
+ <MenubarContent>
25
+ <MenubarItem>
26
+ New Tab <MenubarShortcut>⌘T</MenubarShortcut>
27
+ </MenubarItem>
28
+ <MenubarItem>New Window</MenubarItem>
29
+ <MenubarSeparator />
30
+ <MenubarItem>Share</MenubarItem>
31
+ <MenubarSeparator />
32
+ <MenubarItem>Print</MenubarItem>
33
+ </MenubarContent>
34
+ </MenubarMenu>
35
+ <MenubarMenu>
36
+ <MenubarTrigger>Edit</MenubarTrigger>
37
+ <MenubarContent>
38
+ <MenubarItem>
39
+ Undo <MenubarShortcut>⌘Z</MenubarShortcut>
40
+ </MenubarItem>
41
+ <MenubarItem>
42
+ Redo <MenubarShortcut>⇧⌘Z</MenubarShortcut>
43
+ </MenubarItem>
44
+ <MenubarSeparator />
45
+ <MenubarSub>
46
+ <MenubarSubTrigger>Find</MenubarSubTrigger>
47
+ <MenubarSubContent>
48
+ <MenubarItem>Search the web</MenubarItem>
49
+ <MenubarItem>Find...</MenubarItem>
50
+ <MenubarItem>Find and Replace</MenubarItem>
51
+ </MenubarSubContent>
52
+ </MenubarSub>
53
+ </MenubarContent>
54
+ </MenubarMenu>
55
+ <MenubarMenu>
56
+ <MenubarTrigger>View</MenubarTrigger>
57
+ <MenubarContent>
58
+ <MenubarItem>
59
+ Zoom In <MenubarShortcut>⌘+</MenubarShortcut>
60
+ </MenubarItem>
61
+ <MenubarItem>
62
+ Zoom Out <MenubarShortcut>⌘-</MenubarShortcut>
63
+ </MenubarItem>
64
+ </MenubarContent>
65
+ </MenubarMenu>
66
+ </Menubar>`}
67
+ >
68
+ <Menubar>
69
+ <MenubarMenu>
70
+ <MenubarTrigger>File</MenubarTrigger>
71
+ <MenubarContent>
72
+ <MenubarItem>
73
+ New Tab <MenubarShortcut>⌘T</MenubarShortcut>
74
+ </MenubarItem>
75
+ <MenubarItem>New Window</MenubarItem>
76
+ <MenubarSeparator />
77
+ <MenubarItem>Share</MenubarItem>
78
+ <MenubarSeparator />
79
+ <MenubarItem>Print</MenubarItem>
80
+ </MenubarContent>
81
+ </MenubarMenu>
82
+ <MenubarMenu>
83
+ <MenubarTrigger>Edit</MenubarTrigger>
84
+ <MenubarContent>
85
+ <MenubarItem>
86
+ Undo <MenubarShortcut>⌘Z</MenubarShortcut>
87
+ </MenubarItem>
88
+ <MenubarItem>
89
+ Redo <MenubarShortcut>⇧⌘Z</MenubarShortcut>
90
+ </MenubarItem>
91
+ <MenubarSeparator />
92
+ <MenubarSub>
93
+ <MenubarSubTrigger>Find</MenubarSubTrigger>
94
+ <MenubarSubContent>
95
+ <MenubarItem>Search the web</MenubarItem>
96
+ <MenubarItem>Find...</MenubarItem>
97
+ <MenubarItem>Find and Replace</MenubarItem>
98
+ </MenubarSubContent>
99
+ </MenubarSub>
100
+ </MenubarContent>
101
+ </MenubarMenu>
102
+ <MenubarMenu>
103
+ <MenubarTrigger>View</MenubarTrigger>
104
+ <MenubarContent>
105
+ <MenubarItem>
106
+ Zoom In <MenubarShortcut>⌘+</MenubarShortcut>
107
+ </MenubarItem>
108
+ <MenubarItem>
109
+ Zoom Out <MenubarShortcut>⌘-</MenubarShortcut>
110
+ </MenubarItem>
111
+ </MenubarContent>
112
+ </MenubarMenu>
113
+ </Menubar>
114
+ </ComponentShowcase>
115
+ </ComponentSection>
116
+ );
117
+ }