@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,251 @@
1
+ import { CodeBlock } from '@/components/docs/CodeBlock';
2
+
3
+ export function GettingStartedPage() {
4
+ return (
5
+ <div className="space-y-8">
6
+ <div className="space-y-2">
7
+ <h1 className="text-4xl font-bold tracking-tight">GV Tech Design System</h1>
8
+ <p className="text-xl text-muted-foreground">
9
+ A comprehensive React component library built with shadcn/ui and Tailwind CSS.
10
+ </p>
11
+ </div>
12
+
13
+ <div className="grid gap-4 md:grid-cols-3">
14
+ <div className="rounded-lg border p-4 space-y-2">
15
+ <div className="h-10 w-10 rounded-md bg-primary/10 flex items-center justify-center">
16
+ <span className="text-2xl">🎨</span>
17
+ </div>
18
+ <h3 className="font-semibold">Consistent Design</h3>
19
+ <p className="text-sm text-muted-foreground">Built on a unified design language with customizable themes.</p>
20
+ </div>
21
+ <div className="rounded-lg border p-4 space-y-2">
22
+ <div className="h-10 w-10 rounded-md bg-primary/10 flex items-center justify-center">
23
+ <span className="text-2xl">⚡</span>
24
+ </div>
25
+ <h3 className="font-semibold">Fully Typed</h3>
26
+ <p className="text-sm text-muted-foreground">
27
+ Complete TypeScript support with comprehensive type definitions.
28
+ </p>
29
+ </div>
30
+ <div className="rounded-lg border p-4 space-y-2">
31
+ <div className="h-10 w-10 rounded-md bg-primary/10 flex items-center justify-center">
32
+ <span className="text-2xl">♿</span>
33
+ </div>
34
+ <h3 className="font-semibold">Accessible</h3>
35
+ <p className="text-sm text-muted-foreground">WAI-ARIA compliant components with keyboard navigation.</p>
36
+ </div>
37
+ </div>
38
+
39
+ <section className="space-y-4">
40
+ <h2 className="text-2xl font-semibold tracking-tight">Quick Example</h2>
41
+ <CodeBlock
42
+ code={`import { Button, Card, CardContent, CardHeader, CardTitle } from '@gv-tech/design-system';
43
+
44
+ function MyComponent() {
45
+ return (
46
+ <Card>
47
+ <CardHeader>
48
+ <CardTitle>Welcome</CardTitle>
49
+ </CardHeader>
50
+ <CardContent>
51
+ <Button>Get Started</Button>
52
+ </CardContent>
53
+ </Card>
54
+ );
55
+ }`}
56
+ />
57
+ </section>
58
+
59
+ <section className="space-y-4">
60
+ <h2 className="text-2xl font-semibold tracking-tight">Features</h2>
61
+ <ul className="space-y-2 text-muted-foreground">
62
+ <li className="flex items-center gap-2">
63
+ <span className="text-green-500">✓</span> 46+ ready-to-use components
64
+ </li>
65
+ <li className="flex items-center gap-2">
66
+ <span className="text-green-500">✓</span> Dark and light mode support
67
+ </li>
68
+ <li className="flex items-center gap-2">
69
+ <span className="text-green-500">✓</span> Fully customizable with CSS variables
70
+ </li>
71
+ <li className="flex items-center gap-2">
72
+ <span className="text-green-500">✓</span> Tree-shakeable for optimal bundle size
73
+ </li>
74
+ <li className="flex items-center gap-2">
75
+ <span className="text-green-500">✓</span> React 18/19 compatible
76
+ </li>
77
+ </ul>
78
+ </section>
79
+ </div>
80
+ );
81
+ }
82
+
83
+ export function InstallationPage() {
84
+ return (
85
+ <div className="space-y-8">
86
+ <div className="space-y-2">
87
+ <h1 className="text-3xl font-bold tracking-tight">Installation</h1>
88
+ <p className="text-lg text-muted-foreground">
89
+ Get started with the GV Tech Design System in your React project.
90
+ </p>
91
+ </div>
92
+
93
+ <section className="space-y-4">
94
+ <h2 className="text-2xl font-semibold tracking-tight">Install the package</h2>
95
+ <p className="text-muted-foreground">Install the design system package using your preferred package manager:</p>
96
+ <div className="space-y-2">
97
+ <p className="text-sm font-medium">npm</p>
98
+ <CodeBlock code="npm install @gv-tech/design-system" language="bash" />
99
+ </div>
100
+ <div className="space-y-2">
101
+ <p className="text-sm font-medium">yarn</p>
102
+ <CodeBlock code="yarn add @gv-tech/design-system" language="bash" />
103
+ </div>
104
+ <div className="space-y-2">
105
+ <p className="text-sm font-medium">pnpm</p>
106
+ <CodeBlock code="pnpm add @gv-tech/design-system" language="bash" />
107
+ </div>
108
+ </section>
109
+
110
+ <section className="space-y-4">
111
+ <h2 className="text-2xl font-semibold tracking-tight">Peer Dependencies</h2>
112
+ <p className="text-muted-foreground">Make sure you have the required peer dependencies installed:</p>
113
+ <CodeBlock
114
+ code={`{
115
+ "react": "^18 || ^19",
116
+ "react-dom": "^18 || ^19"
117
+ }`}
118
+ language="json"
119
+ />
120
+ </section>
121
+
122
+ <section className="space-y-4">
123
+ <h2 className="text-2xl font-semibold tracking-tight">Configure Tailwind CSS</h2>
124
+ <p className="text-muted-foreground">
125
+ The design system uses Tailwind CSS for styling. Add the following to your{' '}
126
+ <code className="text-sm bg-muted px-1.5 py-0.5 rounded">tailwind.config.js</code>:
127
+ </p>
128
+ <CodeBlock
129
+ code={`/** @type {import('tailwindcss').Config} */
130
+ module.exports = {
131
+ darkMode: 'class',
132
+ content: [
133
+ './src/**/*.{js,ts,jsx,tsx}',
134
+ './node_modules/@gv-tech/design-system/dist/**/*.js',
135
+ ],
136
+ theme: {
137
+ extend: {
138
+ colors: {
139
+ border: 'hsl(var(--border))',
140
+ input: 'hsl(var(--input))',
141
+ ring: 'hsl(var(--ring))',
142
+ background: 'hsl(var(--background))',
143
+ foreground: 'hsl(var(--foreground))',
144
+ primary: {
145
+ DEFAULT: 'hsl(var(--primary))',
146
+ foreground: 'hsl(var(--primary-foreground))',
147
+ },
148
+ secondary: {
149
+ DEFAULT: 'hsl(var(--secondary))',
150
+ foreground: 'hsl(var(--secondary-foreground))',
151
+ },
152
+ destructive: {
153
+ DEFAULT: 'hsl(var(--destructive))',
154
+ foreground: 'hsl(var(--destructive-foreground))',
155
+ },
156
+ muted: {
157
+ DEFAULT: 'hsl(var(--muted))',
158
+ foreground: 'hsl(var(--muted-foreground))',
159
+ },
160
+ accent: {
161
+ DEFAULT: 'hsl(var(--accent))',
162
+ foreground: 'hsl(var(--accent-foreground))',
163
+ },
164
+ card: {
165
+ DEFAULT: 'hsl(var(--card))',
166
+ foreground: 'hsl(var(--card-foreground))',
167
+ },
168
+ },
169
+ borderRadius: {
170
+ lg: 'var(--radius)',
171
+ md: 'calc(var(--radius) - 2px)',
172
+ sm: 'calc(var(--radius) - 4px)',
173
+ },
174
+ },
175
+ },
176
+ }`}
177
+ />
178
+ </section>
179
+
180
+ <section className="space-y-4">
181
+ <h2 className="text-2xl font-semibold tracking-tight">Add CSS Variables</h2>
182
+ <p className="text-muted-foreground">Add the following CSS variables to your global stylesheet:</p>
183
+ <CodeBlock
184
+ code={`@layer base {
185
+ :root {
186
+ --background: 0 0% 100%;
187
+ --foreground: 222.2 84% 4.9%;
188
+ --card: 0 0% 100%;
189
+ --card-foreground: 222.2 84% 4.9%;
190
+ --popover: 0 0% 100%;
191
+ --popover-foreground: 222.2 84% 4.9%;
192
+ --primary: 222.2 47.4% 11.2%;
193
+ --primary-foreground: 210 40% 98%;
194
+ --secondary: 210 40% 96.1%;
195
+ --secondary-foreground: 222.2 47.4% 11.2%;
196
+ --muted: 210 40% 96.1%;
197
+ --muted-foreground: 215.4 16.3% 46.9%;
198
+ --accent: 210 40% 96.1%;
199
+ --accent-foreground: 222.2 47.4% 11.2%;
200
+ --destructive: 0 84.2% 60.2%;
201
+ --destructive-foreground: 210 40% 98%;
202
+ --border: 214.3 31.8% 91.4%;
203
+ --input: 214.3 31.8% 91.4%;
204
+ --ring: 222.2 84% 4.9%;
205
+ --radius: 0.5rem;
206
+ }
207
+
208
+ .dark {
209
+ --background: 222.2 84% 4.9%;
210
+ --foreground: 210 40% 98%;
211
+ --card: 222.2 84% 4.9%;
212
+ --card-foreground: 210 40% 98%;
213
+ --popover: 222.2 84% 4.9%;
214
+ --popover-foreground: 210 40% 98%;
215
+ --primary: 210 40% 98%;
216
+ --primary-foreground: 222.2 47.4% 11.2%;
217
+ --secondary: 217.2 32.6% 17.5%;
218
+ --secondary-foreground: 210 40% 98%;
219
+ --muted: 217.2 32.6% 17.5%;
220
+ --muted-foreground: 215 20.2% 65.1%;
221
+ --accent: 217.2 32.6% 17.5%;
222
+ --accent-foreground: 210 40% 98%;
223
+ --destructive: 0 62.8% 30.6%;
224
+ --destructive-foreground: 210 40% 98%;
225
+ --border: 217.2 32.6% 17.5%;
226
+ --input: 217.2 32.6% 17.5%;
227
+ --ring: 212.7 26.8% 83.9%;
228
+ }
229
+ }`}
230
+ language="css"
231
+ />
232
+ </section>
233
+
234
+ <section className="space-y-4">
235
+ <h2 className="text-2xl font-semibold tracking-tight">Start Using Components</h2>
236
+ <p className="text-muted-foreground">Now you can import and use components from the design system:</p>
237
+ <CodeBlock
238
+ code={`import { Button } from '@gv-tech/design-system';
239
+
240
+ export default function App() {
241
+ return (
242
+ <Button variant="default">
243
+ Click me
244
+ </Button>
245
+ );
246
+ }`}
247
+ />
248
+ </section>
249
+ </div>
250
+ );
251
+ }
@@ -0,0 +1,55 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion';
3
+
4
+ export function AccordionDocs() {
5
+ return (
6
+ <ComponentSection
7
+ title="Accordion"
8
+ description="A vertically stacked set of interactive headings that each reveal a section of content."
9
+ >
10
+ <ComponentShowcase
11
+ title="Default"
12
+ description="A basic accordion component."
13
+ code={`<Accordion type="single" collapsible className="w-full">
14
+ <AccordionItem value="item-1">
15
+ <AccordionTrigger>Is it accessible?</AccordionTrigger>
16
+ <AccordionContent>
17
+ Yes. It adheres to the WAI-ARIA design pattern.
18
+ </AccordionContent>
19
+ </AccordionItem>
20
+ <AccordionItem value="item-2">
21
+ <AccordionTrigger>Is it styled?</AccordionTrigger>
22
+ <AccordionContent>
23
+ Yes. It comes with default styles.
24
+ </AccordionContent>
25
+ </AccordionItem>
26
+ <AccordionItem value="item-3">
27
+ <AccordionTrigger>Is it animated?</AccordionTrigger>
28
+ <AccordionContent>
29
+ Yes. It's animated by default.
30
+ </AccordionContent>
31
+ </AccordionItem>
32
+ </Accordion>`}
33
+ >
34
+ <Accordion type="single" collapsible className="w-full max-w-md">
35
+ <AccordionItem value="item-1">
36
+ <AccordionTrigger>Is it accessible?</AccordionTrigger>
37
+ <AccordionContent>Yes. It adheres to the WAI-ARIA design pattern.</AccordionContent>
38
+ </AccordionItem>
39
+ <AccordionItem value="item-2">
40
+ <AccordionTrigger>Is it styled?</AccordionTrigger>
41
+ <AccordionContent>
42
+ Yes. It comes with default styles that matches the other components&apos; aesthetic.
43
+ </AccordionContent>
44
+ </AccordionItem>
45
+ <AccordionItem value="item-3">
46
+ <AccordionTrigger>Is it animated?</AccordionTrigger>
47
+ <AccordionContent>
48
+ Yes. It&apos;s animated by default, but you can disable it if you prefer.
49
+ </AccordionContent>
50
+ </AccordionItem>
51
+ </Accordion>
52
+ </ComponentShowcase>
53
+ </ComponentSection>
54
+ );
55
+ }
@@ -0,0 +1,63 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import {
3
+ AlertDialog,
4
+ AlertDialogAction,
5
+ AlertDialogCancel,
6
+ AlertDialogContent,
7
+ AlertDialogDescription,
8
+ AlertDialogFooter,
9
+ AlertDialogHeader,
10
+ AlertDialogTitle,
11
+ AlertDialogTrigger,
12
+ } from '@/components/ui/alert-dialog';
13
+ import { Button } from '@/components/ui/button';
14
+
15
+ export function AlertDialogDocs() {
16
+ return (
17
+ <ComponentSection
18
+ title="Alert 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="An alert dialog for confirming destructive actions."
24
+ code={`<AlertDialog>
25
+ <AlertDialogTrigger asChild>
26
+ <Button variant="destructive">Delete Account</Button>
27
+ </AlertDialogTrigger>
28
+ <AlertDialogContent>
29
+ <AlertDialogHeader>
30
+ <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>
31
+ <AlertDialogDescription>
32
+ This action cannot be undone. This will permanently delete your account.
33
+ </AlertDialogDescription>
34
+ </AlertDialogHeader>
35
+ <AlertDialogFooter>
36
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
37
+ <AlertDialogAction>Continue</AlertDialogAction>
38
+ </AlertDialogFooter>
39
+ </AlertDialogContent>
40
+ </AlertDialog>`}
41
+ >
42
+ <AlertDialog>
43
+ <AlertDialogTrigger asChild>
44
+ <Button variant="destructive">Delete Account</Button>
45
+ </AlertDialogTrigger>
46
+ <AlertDialogContent>
47
+ <AlertDialogHeader>
48
+ <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>
49
+ <AlertDialogDescription>
50
+ This action cannot be undone. This will permanently delete your account and remove your data from our
51
+ servers.
52
+ </AlertDialogDescription>
53
+ </AlertDialogHeader>
54
+ <AlertDialogFooter>
55
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
56
+ <AlertDialogAction>Continue</AlertDialogAction>
57
+ </AlertDialogFooter>
58
+ </AlertDialogContent>
59
+ </AlertDialog>
60
+ </ComponentShowcase>
61
+ </ComponentSection>
62
+ );
63
+ }
@@ -0,0 +1,45 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';
3
+ import { AlertCircle, Terminal } from 'lucide-react';
4
+
5
+ export function AlertDocs() {
6
+ return (
7
+ <ComponentSection title="Alert" description="Displays a callout for user attention.">
8
+ <ComponentShowcase
9
+ title="Default"
10
+ description="The default alert style."
11
+ code={`<Alert>
12
+ <Terminal className="h-4 w-4" />
13
+ <AlertTitle>Heads up!</AlertTitle>
14
+ <AlertDescription>
15
+ You can add components to your app using the cli.
16
+ </AlertDescription>
17
+ </Alert>`}
18
+ >
19
+ <Alert className="max-w-lg">
20
+ <Terminal className="h-4 w-4" />
21
+ <AlertTitle>Heads up!</AlertTitle>
22
+ <AlertDescription>You can add components to your app using the cli.</AlertDescription>
23
+ </Alert>
24
+ </ComponentShowcase>
25
+
26
+ <ComponentShowcase
27
+ title="Destructive"
28
+ description="Use the destructive variant for error messages."
29
+ code={`<Alert variant="destructive">
30
+ <AlertCircle className="h-4 w-4" />
31
+ <AlertTitle>Error</AlertTitle>
32
+ <AlertDescription>
33
+ Your session has expired. Please log in again.
34
+ </AlertDescription>
35
+ </Alert>`}
36
+ >
37
+ <Alert variant="destructive" className="max-w-lg">
38
+ <AlertCircle className="h-4 w-4" />
39
+ <AlertTitle>Error</AlertTitle>
40
+ <AlertDescription>Your session has expired. Please log in again.</AlertDescription>
41
+ </Alert>
42
+ </ComponentShowcase>
43
+ </ComponentSection>
44
+ );
45
+ }
@@ -0,0 +1,64 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { AspectRatio } from '@/components/ui/aspect-ratio';
3
+
4
+ export function AspectRatioDocs() {
5
+ return (
6
+ <ComponentSection title="Aspect Ratio" description="Displays content within a desired ratio.">
7
+ <ComponentShowcase
8
+ title="16:9"
9
+ description="A 16:9 aspect ratio container."
10
+ code={`<div className="w-[450px]">
11
+ <AspectRatio ratio={16 / 9} className="bg-muted">
12
+ <img
13
+ src="https://images.unsplash.com/photo-1588345921523-c2dcdb7f1dcd?w=800"
14
+ alt="Photo by Drew Beamer"
15
+ className="h-full w-full rounded-md object-cover"
16
+ />
17
+ </AspectRatio>
18
+ </div>`}
19
+ >
20
+ <div className="w-[450px]">
21
+ <AspectRatio ratio={16 / 9} className="bg-muted">
22
+ <img
23
+ src="https://images.unsplash.com/photo-1588345921523-c2dcdb7f1dcd?w=800"
24
+ alt="Photo by Drew Beamer"
25
+ className="h-full w-full rounded-md object-cover"
26
+ />
27
+ </AspectRatio>
28
+ </div>
29
+ </ComponentShowcase>
30
+
31
+ <ComponentShowcase
32
+ title="Square (1:1)"
33
+ description="A square aspect ratio container."
34
+ code={`<div className="w-[200px]">
35
+ <AspectRatio ratio={1 / 1} className="bg-muted rounded-md flex items-center justify-center">
36
+ <span className="text-muted-foreground">1:1</span>
37
+ </AspectRatio>
38
+ </div>`}
39
+ >
40
+ <div className="w-[200px]">
41
+ <AspectRatio ratio={1 / 1} className="bg-muted rounded-md flex items-center justify-center">
42
+ <span className="text-muted-foreground">1:1</span>
43
+ </AspectRatio>
44
+ </div>
45
+ </ComponentShowcase>
46
+
47
+ <ComponentShowcase
48
+ title="4:3"
49
+ description="A 4:3 aspect ratio container."
50
+ code={`<div className="w-[300px]">
51
+ <AspectRatio ratio={4 / 3} className="bg-muted rounded-md flex items-center justify-center">
52
+ <span className="text-muted-foreground">4:3</span>
53
+ </AspectRatio>
54
+ </div>`}
55
+ >
56
+ <div className="w-[300px]">
57
+ <AspectRatio ratio={4 / 3} className="bg-muted rounded-md flex items-center justify-center">
58
+ <span className="text-muted-foreground">4:3</span>
59
+ </AspectRatio>
60
+ </div>
61
+ </ComponentShowcase>
62
+ </ComponentSection>
63
+ );
64
+ }
@@ -0,0 +1,34 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
3
+
4
+ export function AvatarDocs() {
5
+ return (
6
+ <ComponentSection title="Avatar" description="An image element with a fallback for representing the user.">
7
+ <ComponentShowcase
8
+ title="Default"
9
+ description="An avatar with an image."
10
+ code={`<Avatar>
11
+ <AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
12
+ <AvatarFallback>CN</AvatarFallback>
13
+ </Avatar>`}
14
+ >
15
+ <Avatar>
16
+ <AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
17
+ <AvatarFallback>CN</AvatarFallback>
18
+ </Avatar>
19
+ </ComponentShowcase>
20
+
21
+ <ComponentShowcase
22
+ title="Fallback"
23
+ description="When no image is available, the fallback is displayed."
24
+ code={`<Avatar>
25
+ <AvatarFallback>JD</AvatarFallback>
26
+ </Avatar>`}
27
+ >
28
+ <Avatar>
29
+ <AvatarFallback>JD</AvatarFallback>
30
+ </Avatar>
31
+ </ComponentShowcase>
32
+ </ComponentSection>
33
+ );
34
+ }
@@ -0,0 +1,36 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { Badge } from '@/components/ui/badge';
3
+
4
+ export function BadgeDocs() {
5
+ return (
6
+ <ComponentSection title="Badge" description="Displays a badge or a component that looks like a badge.">
7
+ <ComponentShowcase
8
+ title="Variants"
9
+ description="Badges come in 4 different variants."
10
+ code={`<Badge>Default</Badge>
11
+ <Badge variant="secondary">Secondary</Badge>
12
+ <Badge variant="destructive">Destructive</Badge>
13
+ <Badge variant="outline">Outline</Badge>`}
14
+ >
15
+ <Badge>Default</Badge>
16
+ <Badge variant="secondary">Secondary</Badge>
17
+ <Badge variant="destructive">Destructive</Badge>
18
+ <Badge variant="outline">Outline</Badge>
19
+ </ComponentShowcase>
20
+
21
+ <ComponentShowcase
22
+ title="Use Cases"
23
+ description="Common use cases for badges."
24
+ code={`<Badge>New</Badge>
25
+ <Badge variant="secondary">Beta</Badge>
26
+ <Badge variant="destructive">Error</Badge>
27
+ <Badge variant="outline">v1.0.0</Badge>`}
28
+ >
29
+ <Badge>New</Badge>
30
+ <Badge variant="secondary">Beta</Badge>
31
+ <Badge variant="destructive">Error</Badge>
32
+ <Badge variant="outline">v1.0.0</Badge>
33
+ </ComponentShowcase>
34
+ </ComponentSection>
35
+ );
36
+ }
@@ -0,0 +1,54 @@
1
+ import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import {
3
+ Breadcrumb,
4
+ BreadcrumbItem,
5
+ BreadcrumbLink,
6
+ BreadcrumbList,
7
+ BreadcrumbPage,
8
+ BreadcrumbSeparator,
9
+ } from '@/components/ui/breadcrumb';
10
+
11
+ export function BreadcrumbDocs() {
12
+ return (
13
+ <ComponentSection
14
+ title="Breadcrumb"
15
+ description="Displays the path to the current resource using a hierarchy of links."
16
+ >
17
+ <ComponentShowcase
18
+ title="Default"
19
+ description="A basic breadcrumb navigation."
20
+ code={`<Breadcrumb>
21
+ <BreadcrumbList>
22
+ <BreadcrumbItem>
23
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
24
+ </BreadcrumbItem>
25
+ <BreadcrumbSeparator />
26
+ <BreadcrumbItem>
27
+ <BreadcrumbLink href="/components">Components</BreadcrumbLink>
28
+ </BreadcrumbItem>
29
+ <BreadcrumbSeparator />
30
+ <BreadcrumbItem>
31
+ <BreadcrumbPage>Breadcrumb</BreadcrumbPage>
32
+ </BreadcrumbItem>
33
+ </BreadcrumbList>
34
+ </Breadcrumb>`}
35
+ >
36
+ <Breadcrumb>
37
+ <BreadcrumbList>
38
+ <BreadcrumbItem>
39
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
40
+ </BreadcrumbItem>
41
+ <BreadcrumbSeparator />
42
+ <BreadcrumbItem>
43
+ <BreadcrumbLink href="/components">Components</BreadcrumbLink>
44
+ </BreadcrumbItem>
45
+ <BreadcrumbSeparator />
46
+ <BreadcrumbItem>
47
+ <BreadcrumbPage>Breadcrumb</BreadcrumbPage>
48
+ </BreadcrumbItem>
49
+ </BreadcrumbList>
50
+ </Breadcrumb>
51
+ </ComponentShowcase>
52
+ </ComponentSection>
53
+ );
54
+ }