@gv-tech/design-system 1.1.0 → 2.0.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 (347) hide show
  1. package/.agent/skills/dogfood-components/SKILL.md +34 -0
  2. package/.agent/skills/maintain-component/SKILL.md +42 -0
  3. package/.github/workflows/release-please.yml +2 -2
  4. package/.prettierignore +2 -0
  5. package/.release-please-manifest.json +3 -0
  6. package/CHANGELOG.md +90 -0
  7. package/dist/App.d.ts.map +1 -1
  8. package/dist/components/docs/Footer.d.ts.map +1 -1
  9. package/dist/components/docs/PropsTable.d.ts +13 -0
  10. package/dist/components/docs/PropsTable.d.ts.map +1 -0
  11. package/dist/components/docs/Sidebar.d.ts.map +1 -1
  12. package/dist/components/docs/index.d.ts +1 -0
  13. package/dist/components/docs/index.d.ts.map +1 -1
  14. package/dist/components/ui/accordion.test.d.ts +2 -0
  15. package/dist/components/ui/accordion.test.d.ts.map +1 -0
  16. package/dist/components/ui/alert-dialog.test.d.ts +2 -0
  17. package/dist/components/ui/alert-dialog.test.d.ts.map +1 -0
  18. package/dist/components/ui/alert.test.d.ts +2 -0
  19. package/dist/components/ui/alert.test.d.ts.map +1 -0
  20. package/dist/components/ui/aspect-ratio.test.d.ts +2 -0
  21. package/dist/components/ui/aspect-ratio.test.d.ts.map +1 -0
  22. package/dist/components/ui/avatar.test.d.ts +2 -0
  23. package/dist/components/ui/avatar.test.d.ts.map +1 -0
  24. package/dist/components/ui/badge.test.d.ts +2 -0
  25. package/dist/components/ui/badge.test.d.ts.map +1 -0
  26. package/dist/components/ui/breadcrumb.test.d.ts +2 -0
  27. package/dist/components/ui/breadcrumb.test.d.ts.map +1 -0
  28. package/dist/components/ui/button.test.d.ts +2 -0
  29. package/dist/components/ui/button.test.d.ts.map +1 -0
  30. package/dist/components/ui/calendar.d.ts.map +1 -1
  31. package/dist/components/ui/calendar.test.d.ts +2 -0
  32. package/dist/components/ui/calendar.test.d.ts.map +1 -0
  33. package/dist/components/ui/card.test.d.ts +2 -0
  34. package/dist/components/ui/card.test.d.ts.map +1 -0
  35. package/dist/components/ui/carousel.test.d.ts +2 -0
  36. package/dist/components/ui/carousel.test.d.ts.map +1 -0
  37. package/dist/components/ui/chart.test.d.ts +2 -0
  38. package/dist/components/ui/chart.test.d.ts.map +1 -0
  39. package/dist/components/ui/checkbox.test.d.ts +2 -0
  40. package/dist/components/ui/checkbox.test.d.ts.map +1 -0
  41. package/dist/components/ui/collapsible.test.d.ts +2 -0
  42. package/dist/components/ui/collapsible.test.d.ts.map +1 -0
  43. package/dist/components/ui/command.test.d.ts +2 -0
  44. package/dist/components/ui/command.test.d.ts.map +1 -0
  45. package/dist/components/ui/context-menu.test.d.ts +2 -0
  46. package/dist/components/ui/context-menu.test.d.ts.map +1 -0
  47. package/dist/components/ui/dialog.test.d.ts +2 -0
  48. package/dist/components/ui/dialog.test.d.ts.map +1 -0
  49. package/dist/components/ui/drawer.test.d.ts +2 -0
  50. package/dist/components/ui/drawer.test.d.ts.map +1 -0
  51. package/dist/components/ui/dropdown-menu.test.d.ts +2 -0
  52. package/dist/components/ui/dropdown-menu.test.d.ts.map +1 -0
  53. package/dist/components/ui/form.test.d.ts +2 -0
  54. package/dist/components/ui/form.test.d.ts.map +1 -0
  55. package/dist/components/ui/hover-card.test.d.ts +2 -0
  56. package/dist/components/ui/hover-card.test.d.ts.map +1 -0
  57. package/dist/components/ui/input.test.d.ts +2 -0
  58. package/dist/components/ui/input.test.d.ts.map +1 -0
  59. package/dist/components/ui/label.test.d.ts +2 -0
  60. package/dist/components/ui/label.test.d.ts.map +1 -0
  61. package/dist/components/ui/menubar.test.d.ts +2 -0
  62. package/dist/components/ui/menubar.test.d.ts.map +1 -0
  63. package/dist/components/ui/navigation-menu.test.d.ts +2 -0
  64. package/dist/components/ui/navigation-menu.test.d.ts.map +1 -0
  65. package/dist/components/ui/pagination.test.d.ts +2 -0
  66. package/dist/components/ui/pagination.test.d.ts.map +1 -0
  67. package/dist/components/ui/popover.test.d.ts +2 -0
  68. package/dist/components/ui/popover.test.d.ts.map +1 -0
  69. package/dist/components/ui/progress.d.ts.map +1 -1
  70. package/dist/components/ui/progress.test.d.ts +2 -0
  71. package/dist/components/ui/progress.test.d.ts.map +1 -0
  72. package/dist/components/ui/radio-group.test.d.ts +2 -0
  73. package/dist/components/ui/radio-group.test.d.ts.map +1 -0
  74. package/dist/components/ui/resizable.test.d.ts +2 -0
  75. package/dist/components/ui/resizable.test.d.ts.map +1 -0
  76. package/dist/components/ui/scroll-area.test.d.ts +2 -0
  77. package/dist/components/ui/scroll-area.test.d.ts.map +1 -0
  78. package/dist/components/ui/search.d.ts +16 -0
  79. package/dist/components/ui/search.d.ts.map +1 -0
  80. package/dist/components/ui/search.test.d.ts +2 -0
  81. package/dist/components/ui/search.test.d.ts.map +1 -0
  82. package/dist/components/ui/select.test.d.ts +2 -0
  83. package/dist/components/ui/select.test.d.ts.map +1 -0
  84. package/dist/components/ui/separator.test.d.ts +2 -0
  85. package/dist/components/ui/separator.test.d.ts.map +1 -0
  86. package/dist/components/ui/sheet.test.d.ts +2 -0
  87. package/dist/components/ui/sheet.test.d.ts.map +1 -0
  88. package/dist/components/ui/skeleton.test.d.ts +2 -0
  89. package/dist/components/ui/skeleton.test.d.ts.map +1 -0
  90. package/dist/components/ui/slider.test.d.ts +2 -0
  91. package/dist/components/ui/slider.test.d.ts.map +1 -0
  92. package/dist/components/ui/sonner.test.d.ts +2 -0
  93. package/dist/components/ui/sonner.test.d.ts.map +1 -0
  94. package/dist/components/ui/switch.test.d.ts +2 -0
  95. package/dist/components/ui/switch.test.d.ts.map +1 -0
  96. package/dist/components/ui/table.test.d.ts +2 -0
  97. package/dist/components/ui/table.test.d.ts.map +1 -0
  98. package/dist/components/ui/tabs.test.d.ts +2 -0
  99. package/dist/components/ui/tabs.test.d.ts.map +1 -0
  100. package/dist/components/ui/textarea.test.d.ts +2 -0
  101. package/dist/components/ui/textarea.test.d.ts.map +1 -0
  102. package/dist/components/ui/theme-toggle.d.ts +17 -0
  103. package/dist/components/ui/theme-toggle.d.ts.map +1 -0
  104. package/dist/components/ui/toast.test.d.ts +2 -0
  105. package/dist/components/ui/toast.test.d.ts.map +1 -0
  106. package/dist/components/ui/toggle-group.test.d.ts +2 -0
  107. package/dist/components/ui/toggle-group.test.d.ts.map +1 -0
  108. package/dist/components/ui/toggle.test.d.ts +2 -0
  109. package/dist/components/ui/toggle.test.d.ts.map +1 -0
  110. package/dist/components/ui/tooltip.test.d.ts +2 -0
  111. package/dist/components/ui/tooltip.test.d.ts.map +1 -0
  112. package/dist/index.cjs.js +3 -3
  113. package/dist/index.cjs.js.map +1 -1
  114. package/dist/index.d.ts +2 -0
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.es.js +978 -860
  117. package/dist/index.es.js.map +1 -1
  118. package/dist/lib/tokens.d.ts +54 -0
  119. package/dist/lib/tokens.d.ts.map +1 -0
  120. package/dist/pages/ColorTokensDocs.d.ts +2 -0
  121. package/dist/pages/ColorTokensDocs.d.ts.map +1 -0
  122. package/dist/pages/GettingStarted.d.ts.map +1 -1
  123. package/dist/pages/components/AccordionDocs.d.ts.map +1 -1
  124. package/dist/pages/components/AlertDialogDocs.d.ts.map +1 -1
  125. package/dist/pages/components/AlertDocs.d.ts.map +1 -1
  126. package/dist/pages/components/AspectRatioDocs.d.ts.map +1 -1
  127. package/dist/pages/components/AvatarDocs.d.ts.map +1 -1
  128. package/dist/pages/components/BadgeDocs.d.ts.map +1 -1
  129. package/dist/pages/components/BreadcrumbDocs.d.ts.map +1 -1
  130. package/dist/pages/components/ButtonDocs.d.ts.map +1 -1
  131. package/dist/pages/components/CalendarDocs.d.ts.map +1 -1
  132. package/dist/pages/components/CardDocs.d.ts.map +1 -1
  133. package/dist/pages/components/CarouselDocs.d.ts.map +1 -1
  134. package/dist/pages/components/ChartDocs.d.ts.map +1 -1
  135. package/dist/pages/components/CheckboxDocs.d.ts.map +1 -1
  136. package/dist/pages/components/CollapsibleDocs.d.ts.map +1 -1
  137. package/dist/pages/components/CommandDocs.d.ts.map +1 -1
  138. package/dist/pages/components/ContextMenuDocs.d.ts.map +1 -1
  139. package/dist/pages/components/DialogDocs.d.ts.map +1 -1
  140. package/dist/pages/components/DrawerDocs.d.ts.map +1 -1
  141. package/dist/pages/components/DropdownMenuDocs.d.ts.map +1 -1
  142. package/dist/pages/components/FormDocs.d.ts.map +1 -1
  143. package/dist/pages/components/HoverCardDocs.d.ts.map +1 -1
  144. package/dist/pages/components/InputDocs.d.ts.map +1 -1
  145. package/dist/pages/components/LabelDocs.d.ts.map +1 -1
  146. package/dist/pages/components/MenubarDocs.d.ts.map +1 -1
  147. package/dist/pages/components/NavigationMenuDocs.d.ts.map +1 -1
  148. package/dist/pages/components/PaginationDocs.d.ts.map +1 -1
  149. package/dist/pages/components/PopoverDocs.d.ts.map +1 -1
  150. package/dist/pages/components/ProgressDocs.d.ts.map +1 -1
  151. package/dist/pages/components/RadioGroupDocs.d.ts.map +1 -1
  152. package/dist/pages/components/ResizableDocs.d.ts.map +1 -1
  153. package/dist/pages/components/ScrollAreaDocs.d.ts.map +1 -1
  154. package/dist/pages/components/SearchDocs.d.ts +2 -0
  155. package/dist/pages/components/SearchDocs.d.ts.map +1 -0
  156. package/dist/pages/components/SelectDocs.d.ts.map +1 -1
  157. package/dist/pages/components/SeparatorDocs.d.ts.map +1 -1
  158. package/dist/pages/components/SheetDocs.d.ts.map +1 -1
  159. package/dist/pages/components/SkeletonDocs.d.ts.map +1 -1
  160. package/dist/pages/components/SliderDocs.d.ts.map +1 -1
  161. package/dist/pages/components/SonnerDocs.d.ts.map +1 -1
  162. package/dist/pages/components/SwitchDocs.d.ts.map +1 -1
  163. package/dist/pages/components/TableDocs.d.ts.map +1 -1
  164. package/dist/pages/components/TabsDocs.d.ts.map +1 -1
  165. package/dist/pages/components/TextareaDocs.d.ts.map +1 -1
  166. package/dist/pages/components/ThemeToggleDocs.d.ts +2 -0
  167. package/dist/pages/components/ThemeToggleDocs.d.ts.map +1 -0
  168. package/dist/pages/components/ToastDocs.d.ts.map +1 -1
  169. package/dist/pages/components/ToggleDocs.d.ts.map +1 -1
  170. package/dist/pages/components/ToggleGroupDocs.d.ts.map +1 -1
  171. package/dist/pages/components/TooltipDocs.d.ts.map +1 -1
  172. package/dist/pages/index.d.ts +3 -0
  173. package/dist/pages/index.d.ts.map +1 -1
  174. package/dist/registry/accordion.test.json +13 -0
  175. package/dist/registry/alert-dialog.test.json +13 -0
  176. package/dist/registry/alert.test.json +13 -0
  177. package/dist/registry/aspect-ratio.test.json +13 -0
  178. package/dist/registry/avatar.test.json +13 -0
  179. package/dist/registry/badge.test.json +13 -0
  180. package/dist/registry/breadcrumb.test.json +13 -0
  181. package/dist/registry/button.test.json +13 -0
  182. package/dist/registry/calendar.json +1 -1
  183. package/dist/registry/calendar.test.json +13 -0
  184. package/dist/registry/card.test.json +13 -0
  185. package/dist/registry/carousel.test.json +13 -0
  186. package/dist/registry/chart.test.json +13 -0
  187. package/dist/registry/checkbox.test.json +13 -0
  188. package/dist/registry/collapsible.test.json +13 -0
  189. package/dist/registry/command.test.json +13 -0
  190. package/dist/registry/context-menu.test.json +13 -0
  191. package/dist/registry/dialog.test.json +13 -0
  192. package/dist/registry/drawer.test.json +13 -0
  193. package/dist/registry/dropdown-menu.test.json +13 -0
  194. package/dist/registry/form.test.json +13 -0
  195. package/dist/registry/hover-card.test.json +13 -0
  196. package/dist/registry/index.json +336 -0
  197. package/dist/registry/input.test.json +13 -0
  198. package/dist/registry/label.test.json +13 -0
  199. package/dist/registry/menubar.test.json +13 -0
  200. package/dist/registry/navigation-menu.test.json +13 -0
  201. package/dist/registry/pagination.test.json +13 -0
  202. package/dist/registry/popover.test.json +13 -0
  203. package/dist/registry/progress.json +1 -1
  204. package/dist/registry/progress.test.json +13 -0
  205. package/dist/registry/radio-group.test.json +13 -0
  206. package/dist/registry/resizable.test.json +13 -0
  207. package/dist/registry/scroll-area.test.json +13 -0
  208. package/dist/registry/search.json +13 -0
  209. package/dist/registry/search.test.json +13 -0
  210. package/dist/registry/select.test.json +13 -0
  211. package/dist/registry/separator.test.json +13 -0
  212. package/dist/registry/sheet.test.json +13 -0
  213. package/dist/registry/skeleton.test.json +13 -0
  214. package/dist/registry/slider.test.json +13 -0
  215. package/dist/registry/sonner.test.json +13 -0
  216. package/dist/registry/switch.test.json +13 -0
  217. package/dist/registry/table.test.json +13 -0
  218. package/dist/registry/tabs.test.json +13 -0
  219. package/dist/registry/textarea.test.json +13 -0
  220. package/dist/registry/theme-toggle.json +13 -0
  221. package/dist/registry/toast.test.json +13 -0
  222. package/dist/registry/toggle-group.test.json +13 -0
  223. package/dist/registry/toggle.test.json +13 -0
  224. package/dist/registry/tooltip.test.json +13 -0
  225. package/dist/setupTests.d.ts +2 -0
  226. package/dist/setupTests.d.ts.map +1 -0
  227. package/dist/{vendor-ZhQmrf1h.mjs → vendor-BLvpSabH.mjs} +7238 -7136
  228. package/dist/vendor-BLvpSabH.mjs.map +1 -0
  229. package/dist/vendor-n4WFhtJT.js +73 -0
  230. package/dist/vendor-n4WFhtJT.js.map +1 -0
  231. package/eslint.config.mjs +8 -81
  232. package/package.json +44 -46
  233. package/release-please-config.json +36 -0
  234. package/src/App.tsx +70 -7
  235. package/src/components/docs/Footer.tsx +51 -30
  236. package/src/components/docs/PropsTable.tsx +43 -0
  237. package/src/components/docs/Sidebar.tsx +57 -71
  238. package/src/components/docs/index.ts +1 -0
  239. package/src/components/ui/accordion.test.tsx +86 -0
  240. package/src/components/ui/alert-dialog.test.tsx +89 -0
  241. package/src/components/ui/alert.test.tsx +33 -0
  242. package/src/components/ui/aspect-ratio.test.tsx +34 -0
  243. package/src/components/ui/avatar.test.tsx +33 -0
  244. package/src/components/ui/badge.test.tsx +24 -0
  245. package/src/components/ui/breadcrumb.test.tsx +55 -0
  246. package/src/components/ui/button.test.tsx +62 -0
  247. package/src/components/ui/calendar.test.tsx +23 -0
  248. package/src/components/ui/calendar.tsx +14 -10
  249. package/src/components/ui/card.test.tsx +35 -0
  250. package/src/components/ui/carousel.test.tsx +37 -0
  251. package/src/components/ui/chart.test.tsx +62 -0
  252. package/src/components/ui/checkbox.test.tsx +30 -0
  253. package/src/components/ui/collapsible.test.tsx +51 -0
  254. package/src/components/ui/command.test.tsx +79 -0
  255. package/src/components/ui/context-menu.test.tsx +37 -0
  256. package/src/components/ui/dialog.test.tsx +66 -0
  257. package/src/components/ui/drawer.test.tsx +68 -0
  258. package/src/components/ui/dropdown-menu.test.tsx +93 -0
  259. package/src/components/ui/form.test.tsx +85 -0
  260. package/src/components/ui/hover-card.test.tsx +48 -0
  261. package/src/components/ui/input.test.tsx +33 -0
  262. package/src/components/ui/label.test.tsx +27 -0
  263. package/src/components/ui/menubar.test.tsx +92 -0
  264. package/src/components/ui/navigation-menu.test.tsx +53 -0
  265. package/src/components/ui/pagination.test.tsx +57 -0
  266. package/src/components/ui/popover.test.tsx +31 -0
  267. package/src/components/ui/progress.test.tsx +18 -0
  268. package/src/components/ui/progress.tsx +1 -0
  269. package/src/components/ui/radio-group.test.tsx +39 -0
  270. package/src/components/ui/resizable.test.tsx +23 -0
  271. package/src/components/ui/scroll-area.test.tsx +15 -0
  272. package/src/components/ui/search.test.tsx +75 -0
  273. package/src/components/ui/search.tsx +93 -0
  274. package/src/components/ui/select.test.tsx +42 -0
  275. package/src/components/ui/separator.test.tsx +16 -0
  276. package/src/components/ui/sheet.test.tsx +48 -0
  277. package/src/components/ui/skeleton.test.tsx +13 -0
  278. package/src/components/ui/slider.test.tsx +18 -0
  279. package/src/components/ui/sonner.test.tsx +13 -0
  280. package/src/components/ui/switch.test.tsx +22 -0
  281. package/src/components/ui/table.test.tsx +29 -0
  282. package/src/components/ui/tabs.test.tsx +43 -0
  283. package/src/components/ui/textarea.test.tsx +21 -0
  284. package/src/components/ui/theme-toggle.tsx +108 -0
  285. package/src/components/ui/toast.test.tsx +42 -0
  286. package/src/components/ui/toggle-group.test.tsx +40 -0
  287. package/src/components/ui/toggle.test.tsx +21 -0
  288. package/src/components/ui/tooltip.test.tsx +25 -0
  289. package/src/globals.css +39 -34
  290. package/src/index.ts +2 -0
  291. package/src/lib/tokens.ts +54 -0
  292. package/src/pages/ColorTokensDocs.tsx +181 -0
  293. package/src/pages/GettingStarted.tsx +55 -35
  294. package/src/pages/components/AccordionDocs.tsx +109 -0
  295. package/src/pages/components/AlertDialogDocs.tsx +88 -0
  296. package/src/pages/components/AlertDocs.tsx +20 -0
  297. package/src/pages/components/AspectRatioDocs.tsx +21 -0
  298. package/src/pages/components/AvatarDocs.tsx +48 -0
  299. package/src/pages/components/BadgeDocs.tsx +20 -0
  300. package/src/pages/components/BreadcrumbDocs.tsx +33 -0
  301. package/src/pages/components/ButtonDocs.tsx +43 -0
  302. package/src/pages/components/CalendarDocs.tsx +43 -0
  303. package/src/pages/components/CardDocs.tsx +20 -0
  304. package/src/pages/components/CarouselDocs.tsx +31 -0
  305. package/src/pages/components/ChartDocs.tsx +131 -101
  306. package/src/pages/components/CheckboxDocs.tsx +58 -0
  307. package/src/pages/components/CollapsibleDocs.tsx +51 -0
  308. package/src/pages/components/CommandDocs.tsx +109 -0
  309. package/src/pages/components/ContextMenuDocs.tsx +65 -0
  310. package/src/pages/components/DialogDocs.tsx +98 -11
  311. package/src/pages/components/DrawerDocs.tsx +210 -15
  312. package/src/pages/components/DropdownMenuDocs.tsx +273 -11
  313. package/src/pages/components/FormDocs.tsx +149 -70
  314. package/src/pages/components/HoverCardDocs.tsx +82 -5
  315. package/src/pages/components/InputDocs.tsx +51 -20
  316. package/src/pages/components/LabelDocs.tsx +40 -9
  317. package/src/pages/components/MenubarDocs.tsx +191 -18
  318. package/src/pages/components/NavigationMenuDocs.tsx +147 -49
  319. package/src/pages/components/PaginationDocs.tsx +27 -2
  320. package/src/pages/components/PopoverDocs.tsx +124 -2
  321. package/src/pages/components/ProgressDocs.tsx +54 -24
  322. package/src/pages/components/RadioGroupDocs.tsx +95 -1
  323. package/src/pages/components/ResizableDocs.tsx +102 -75
  324. package/src/pages/components/ScrollAreaDocs.tsx +64 -51
  325. package/src/pages/components/SearchDocs.tsx +194 -0
  326. package/src/pages/components/SelectDocs.tsx +119 -48
  327. package/src/pages/components/SeparatorDocs.tsx +37 -2
  328. package/src/pages/components/SheetDocs.tsx +112 -38
  329. package/src/pages/components/SkeletonDocs.tsx +16 -20
  330. package/src/pages/components/SliderDocs.tsx +96 -10
  331. package/src/pages/components/SonnerDocs.tsx +89 -61
  332. package/src/pages/components/SwitchDocs.tsx +65 -10
  333. package/src/pages/components/TableDocs.tsx +89 -14
  334. package/src/pages/components/TabsDocs.tsx +149 -37
  335. package/src/pages/components/TextareaDocs.tsx +38 -32
  336. package/src/pages/components/ThemeToggleDocs.tsx +122 -0
  337. package/src/pages/components/ToastDocs.tsx +104 -65
  338. package/src/pages/components/ToggleDocs.tsx +55 -38
  339. package/src/pages/components/ToggleGroupDocs.tsx +96 -58
  340. package/src/pages/components/TooltipDocs.tsx +112 -3
  341. package/src/pages/index.ts +3 -0
  342. package/src/setupTests.ts +47 -0
  343. package/temp.md +292 -0
  344. package/vitest.config.ts +4 -0
  345. package/dist/vendor-CMSUBoIg.js +0 -73
  346. package/dist/vendor-CMSUBoIg.js.map +0 -1
  347. package/dist/vendor-ZhQmrf1h.mjs.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { PropsTable } from '@/components/docs/PropsTable';
2
3
  import { Button } from '@/components/ui/button';
3
4
  import { useToast } from '@/hooks/use-toast';
4
5
 
@@ -7,96 +8,134 @@ export function ToastDocs() {
7
8
 
8
9
  return (
9
10
  <ComponentSection title="Toast" description="A succinct message that is displayed temporarily.">
11
+ <div className="bg-muted/50 border rounded-lg p-6 space-y-4 mb-8">
12
+ <h3 className="text-lg font-semibold">Which to use?</h3>
13
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-8">
14
+ <div className="space-y-2">
15
+ <h4 className="font-medium text-primary">Toast (Radix UI)</h4>
16
+ <p className="text-sm text-muted-foreground leading-relaxed">
17
+ Based on Radix UI. Provides more granular control over individual toast elements. Uses the{' '}
18
+ <code>useToast</code> hook and is best for situations requiring manual state management or complex, custom
19
+ toast behavior.
20
+ </p>
21
+ </div>
22
+ <div className="space-y-2">
23
+ <h4 className="font-medium text-primary">Sonner</h4>
24
+ <p className="text-sm text-muted-foreground leading-relaxed">
25
+ An opinionated, modern alternative. Features automatic stacking, swipe-to-dismiss, and a simpler API (
26
+ <code>toast("message")</code>). Best for general feedback and high-quality UX with minimal effort.
27
+ </p>
28
+ </div>
29
+ </div>
30
+ </div>
31
+
10
32
  <ComponentShowcase
11
33
  title="Default"
12
- description="A basic toast notification."
13
- code={`const { toast } = useToast();
34
+ description="A default toast."
35
+ code={`const { toast } = useToast()
14
36
 
15
- <Button onClick={() => toast({ description: "Your message has been sent." })}>
37
+ <Button
38
+ variant="outline"
39
+ onClick={() => {
40
+ toast({
41
+ description: "Your message has been sent.",
42
+ })
43
+ }}
44
+ >
16
45
  Show Toast
17
46
  </Button>`}
18
47
  >
19
48
  <Button
20
- onClick={() =>
49
+ variant="outline"
50
+ onClick={() => {
21
51
  toast({
22
52
  description: 'Your message has been sent.',
23
- })
24
- }
53
+ });
54
+ }}
25
55
  >
26
56
  Show Toast
27
57
  </Button>
28
58
  </ComponentShowcase>
29
59
 
30
60
  <ComponentShowcase
31
- title="With Title"
32
- description="A toast with a title and description."
33
- code={`<Button onClick={() => toast({
34
- title: "Scheduled: Catch up",
35
- description: "Friday, February 10, 2023 at 5:57 PM",
36
- })}>
37
- With Title
38
- </Button>`}
39
- >
40
- <Button
41
- onClick={() =>
42
- toast({
43
- title: 'Scheduled: Catch up',
44
- description: 'Friday, February 10, 2023 at 5:57 PM',
45
- })
46
- }
47
- >
48
- With Title
49
- </Button>
50
- </ComponentShowcase>
51
-
52
- <ComponentShowcase
53
- title="With Action"
54
- description="A toast with an action button."
55
- code={`<Button onClick={() => toast({
56
- title: "Uh oh! Something went wrong.",
57
- description: "There was a problem with your request.",
58
- action: <ToastAction altText="Try again">Try again</ToastAction>,
59
- })}>
60
- With Action
61
- </Button>`}
61
+ title="Destructive"
62
+ description="A destructive toast."
63
+ code={`const { toast } = useToast()
64
+
65
+ <Button
66
+ variant="outline"
67
+ onClick={() => {
68
+ toast({
69
+ variant: "destructive",
70
+ title: "Uh oh! Something went wrong.",
71
+ description: "There was a problem with your request.",
72
+ })
73
+ }}
74
+ >
75
+ Show Toast
76
+ </Button>`}
62
77
  >
63
78
  <Button
64
79
  variant="outline"
65
- onClick={() =>
80
+ onClick={() => {
66
81
  toast({
82
+ variant: 'destructive',
67
83
  title: 'Uh oh! Something went wrong.',
68
84
  description: 'There was a problem with your request.',
69
- })
70
- }
85
+ });
86
+ }}
71
87
  >
72
- With Action
88
+ Show Toast
73
89
  </Button>
74
90
  </ComponentShowcase>
91
+ <div className="space-y-4">
92
+ <h3 className="text-xl font-semibold">Props</h3>
93
+ <p className="text-sm text-muted-foreground">
94
+ The Toast component is built on top of{' '}
95
+ <a
96
+ href="https://www.radix-ui.com/primitives/docs/components/toast"
97
+ className="underline"
98
+ target="_blank"
99
+ rel="noreferrer"
100
+ >
101
+ Radix UI Toast
102
+ </a>
103
+ .
104
+ </p>
75
105
 
76
- <ComponentShowcase
77
- title="Destructive"
78
- description="A destructive toast for error messages."
79
- code={`<Button variant="destructive" onClick={() => toast({
80
- variant: "destructive",
81
- title: "Error",
82
- description: "Something went wrong.",
83
- })}>
84
- Destructive
85
- </Button>`}
86
- >
87
- <Button
88
- variant="destructive"
89
- onClick={() =>
90
- toast({
91
- variant: 'destructive',
92
- title: 'Error',
93
- description: 'Something went wrong.',
94
- })
95
- }
96
- >
97
- Destructive
98
- </Button>
99
- </ComponentShowcase>
106
+ <h4 className="text-lg font-medium mt-6">Toast (Root)</h4>
107
+ <PropsTable
108
+ props={[
109
+ {
110
+ name: 'variant',
111
+ type: '"default" | "destructive"',
112
+ defaultValue: '"default"',
113
+ description: 'The visual variant of the toast.',
114
+ },
115
+ {
116
+ name: 'duration',
117
+ type: 'number',
118
+ defaultValue: '5000',
119
+ description: 'The time in milliseconds that the toast should remain visible for.',
120
+ },
121
+ ]}
122
+ />
123
+
124
+ <h4 className="text-lg font-medium mt-6">Toaster</h4>
125
+ <p className="text-sm text-muted-foreground">The Toaster component renders all active toasts.</p>
126
+
127
+ <h4 className="text-lg font-medium mt-6">useToast</h4>
128
+ <p className="text-sm text-muted-foreground">The `useToast` hook is used to trigger toasts.</p>
129
+ <PropsTable
130
+ props={[
131
+ {
132
+ name: 'toast',
133
+ type: 'function',
134
+ description: 'Function to trigger a new toast. Returns an object with `id`, `dismiss`, and `update`.',
135
+ },
136
+ ]}
137
+ />
138
+ </div>
100
139
  </ComponentSection>
101
140
  );
102
141
  }
@@ -1,13 +1,14 @@
1
1
  import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { PropsTable } from '@/components/docs/PropsTable';
2
3
  import { Toggle } from '@/components/ui/toggle';
3
- import { Bold, Italic, Underline } from 'lucide-react';
4
+ import { Bold } from 'lucide-react';
4
5
 
5
6
  export function ToggleDocs() {
6
7
  return (
7
8
  <ComponentSection title="Toggle" description="A two-state button that can be either on or off.">
8
9
  <ComponentShowcase
9
10
  title="Default"
10
- description="A basic toggle button."
11
+ description="A default toggle."
11
12
  code={`<Toggle aria-label="Toggle bold">
12
13
  <Bold className="h-4 w-4" />
13
14
  </Toggle>`}
@@ -17,43 +18,59 @@ export function ToggleDocs() {
17
18
  </Toggle>
18
19
  </ComponentShowcase>
19
20
 
20
- <ComponentShowcase
21
- title="Variants"
22
- description="Toggle with outline variant."
23
- code={`<Toggle variant="outline" aria-label="Toggle italic">
24
- <Italic className="h-4 w-4" />
25
- </Toggle>`}
26
- >
27
- <Toggle variant="outline" aria-label="Toggle italic">
28
- <Italic className="h-4 w-4" />
29
- </Toggle>
30
- </ComponentShowcase>
31
-
32
- <ComponentShowcase
33
- title="With Text"
34
- description="Toggle with text content."
35
- code={`<Toggle aria-label="Toggle underline">
36
- <Underline className="h-4 w-4 mr-2" />
37
- Underline
38
- </Toggle>`}
39
- >
40
- <Toggle aria-label="Toggle underline">
41
- <Underline className="h-4 w-4 mr-2" />
42
- Underline
43
- </Toggle>
44
- </ComponentShowcase>
21
+ <div className="space-y-4">
22
+ <h3 className="text-xl font-semibold">Props</h3>
23
+ <p className="text-sm text-muted-foreground">
24
+ The Toggle component is built on top of{' '}
25
+ <a
26
+ href="https://www.radix-ui.com/primitives/docs/components/toggle"
27
+ className="underline"
28
+ target="_blank"
29
+ rel="noreferrer"
30
+ >
31
+ Radix UI Toggle
32
+ </a>
33
+ .
34
+ </p>
45
35
 
46
- <ComponentShowcase
47
- title="Disabled"
48
- description="A disabled toggle."
49
- code={`<Toggle disabled aria-label="Toggle bold">
50
- <Bold className="h-4 w-4" />
51
- </Toggle>`}
52
- >
53
- <Toggle disabled aria-label="Toggle bold">
54
- <Bold className="h-4 w-4" />
55
- </Toggle>
56
- </ComponentShowcase>
36
+ <h4 className="text-lg font-medium mt-6">Toggle</h4>
37
+ <PropsTable
38
+ props={[
39
+ {
40
+ name: 'defaultPressed',
41
+ type: 'boolean',
42
+ description: 'The pressed state of the toggle when it is initially rendered.',
43
+ },
44
+ {
45
+ name: 'pressed',
46
+ type: 'boolean',
47
+ description: 'The controlled pressed state of the toggle.',
48
+ },
49
+ {
50
+ name: 'onPressedChange',
51
+ type: '(pressed: boolean) => void',
52
+ description: 'Event handler called when the pressed state of the toggle changes.',
53
+ },
54
+ {
55
+ name: 'disabled',
56
+ type: 'boolean',
57
+ description: 'When true, prevents the user from interacting with the toggle.',
58
+ },
59
+ {
60
+ name: 'variant',
61
+ type: '"default" | "outline"',
62
+ defaultValue: '"default"',
63
+ description: 'The visual variant of the toggle.',
64
+ },
65
+ {
66
+ name: 'size',
67
+ type: '"default" | "sm" | "lg"',
68
+ defaultValue: '"default"',
69
+ description: 'The size of the toggle.',
70
+ },
71
+ ]}
72
+ />
73
+ </div>
57
74
  </ComponentSection>
58
75
  );
59
76
  }
@@ -1,41 +1,14 @@
1
1
  import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { PropsTable } from '@/components/docs/PropsTable';
2
3
  import { ToggleGroup, ToggleGroupItem } from '@/components/ui/toggle-group';
3
- import { AlignCenter, AlignLeft, AlignRight, Bold, Italic, Underline } from 'lucide-react';
4
+ import { Bold, Italic, Underline } from 'lucide-react';
4
5
 
5
6
  export function ToggleGroupDocs() {
6
7
  return (
7
8
  <ComponentSection title="Toggle Group" description="A set of two-state buttons that can be toggled on or off.">
8
9
  <ComponentShowcase
9
- title="Single"
10
- description="Only one item can be pressed at a time."
11
- code={`<ToggleGroup type="single">
12
- <ToggleGroupItem value="left" aria-label="Left aligned">
13
- <AlignLeft className="h-4 w-4" />
14
- </ToggleGroupItem>
15
- <ToggleGroupItem value="center" aria-label="Center aligned">
16
- <AlignCenter className="h-4 w-4" />
17
- </ToggleGroupItem>
18
- <ToggleGroupItem value="right" aria-label="Right aligned">
19
- <AlignRight className="h-4 w-4" />
20
- </ToggleGroupItem>
21
- </ToggleGroup>`}
22
- >
23
- <ToggleGroup type="single">
24
- <ToggleGroupItem value="left" aria-label="Left aligned">
25
- <AlignLeft className="h-4 w-4" />
26
- </ToggleGroupItem>
27
- <ToggleGroupItem value="center" aria-label="Center aligned">
28
- <AlignCenter className="h-4 w-4" />
29
- </ToggleGroupItem>
30
- <ToggleGroupItem value="right" aria-label="Right aligned">
31
- <AlignRight className="h-4 w-4" />
32
- </ToggleGroupItem>
33
- </ToggleGroup>
34
- </ComponentShowcase>
35
-
36
- <ComponentShowcase
37
- title="Multiple"
38
- description="Multiple items can be pressed at the same time."
10
+ title="Default"
11
+ description="A default toggle group."
39
12
  code={`<ToggleGroup type="multiple">
40
13
  <ToggleGroupItem value="bold" aria-label="Toggle bold">
41
14
  <Bold className="h-4 w-4" />
@@ -61,33 +34,98 @@ export function ToggleGroupDocs() {
61
34
  </ToggleGroup>
62
35
  </ComponentShowcase>
63
36
 
64
- <ComponentShowcase
65
- title="Outline Variant"
66
- description="Toggle group with outline styling."
67
- code={`<ToggleGroup variant="outline" type="single">
68
- <ToggleGroupItem value="left" aria-label="Left aligned">
69
- <AlignLeft className="h-4 w-4" />
70
- </ToggleGroupItem>
71
- <ToggleGroupItem value="center" aria-label="Center aligned">
72
- <AlignCenter className="h-4 w-4" />
73
- </ToggleGroupItem>
74
- <ToggleGroupItem value="right" aria-label="Right aligned">
75
- <AlignRight className="h-4 w-4" />
76
- </ToggleGroupItem>
77
- </ToggleGroup>`}
78
- >
79
- <ToggleGroup variant="outline" type="single">
80
- <ToggleGroupItem value="left" aria-label="Left aligned">
81
- <AlignLeft className="h-4 w-4" />
82
- </ToggleGroupItem>
83
- <ToggleGroupItem value="center" aria-label="Center aligned">
84
- <AlignCenter className="h-4 w-4" />
85
- </ToggleGroupItem>
86
- <ToggleGroupItem value="right" aria-label="Right aligned">
87
- <AlignRight className="h-4 w-4" />
88
- </ToggleGroupItem>
89
- </ToggleGroup>
90
- </ComponentShowcase>
37
+ <div className="space-y-4">
38
+ <h3 className="text-xl font-semibold">Props</h3>
39
+ <p className="text-sm text-muted-foreground">
40
+ The ToggleGroup component is built on top of{' '}
41
+ <a
42
+ href="https://www.radix-ui.com/primitives/docs/components/toggle-group"
43
+ className="underline"
44
+ target="_blank"
45
+ rel="noreferrer"
46
+ >
47
+ Radix UI Toggle Group
48
+ </a>
49
+ .
50
+ </p>
51
+
52
+ <h4 className="text-lg font-medium mt-6">ToggleGroup (Root)</h4>
53
+ <PropsTable
54
+ props={[
55
+ {
56
+ name: 'type',
57
+ type: '"single" | "multiple"',
58
+ required: true,
59
+ description: 'Determines whether a single or multiple items can be pressed at a time.',
60
+ },
61
+ {
62
+ name: 'defaultValue',
63
+ type: 'string | string[]',
64
+ description: 'The value of the item to show as pressed when initially rendered.',
65
+ },
66
+ {
67
+ name: 'value',
68
+ type: 'string | string[]',
69
+ description: 'The controlled value of the pressed item.',
70
+ },
71
+ {
72
+ name: 'onValueChange',
73
+ type: '(value: string | string[]) => void',
74
+ description: 'Event handler called when the value changes.',
75
+ },
76
+ {
77
+ name: 'disabled',
78
+ type: 'boolean',
79
+ description: 'When true, prevents the user from interacting with the toggle group.',
80
+ },
81
+ {
82
+ name: 'rovingFocus',
83
+ type: 'boolean',
84
+ defaultValue: 'true',
85
+ description: 'When false, roving focus is disabled.',
86
+ },
87
+ {
88
+ name: 'orientation',
89
+ type: '"horizontal" | "vertical"',
90
+ description: 'The orientation of the component.',
91
+ },
92
+ {
93
+ name: 'dir',
94
+ type: '"ltr" | "rtl"',
95
+ description: 'The reading direction of the toggle group.',
96
+ },
97
+ {
98
+ name: 'variant',
99
+ type: '"default" | "outline"',
100
+ defaultValue: '"default"',
101
+ description: 'The visual variant of the toggle group.',
102
+ },
103
+ {
104
+ name: 'size',
105
+ type: '"default" | "sm" | "lg"',
106
+ defaultValue: '"default"',
107
+ description: 'The size of the toggle group.',
108
+ },
109
+ ]}
110
+ />
111
+
112
+ <h4 className="text-lg font-medium mt-6">ToggleGroupItem</h4>
113
+ <PropsTable
114
+ props={[
115
+ {
116
+ name: 'value',
117
+ type: 'string',
118
+ required: true,
119
+ description: 'A unique value for the item.',
120
+ },
121
+ {
122
+ name: 'disabled',
123
+ type: 'boolean',
124
+ description: 'When true, prevents the user from interacting with the item.',
125
+ },
126
+ ]}
127
+ />
128
+ </div>
91
129
  </ComponentSection>
92
130
  );
93
131
  }
@@ -1,4 +1,5 @@
1
1
  import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { PropsTable } from '@/components/docs/PropsTable';
2
3
  import { Button } from '@/components/ui/button';
3
4
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';
4
5
 
@@ -10,11 +11,11 @@ export function TooltipDocs() {
10
11
  >
11
12
  <ComponentShowcase
12
13
  title="Default"
13
- description="A basic tooltip."
14
+ description="A default tooltip."
14
15
  code={`<TooltipProvider>
15
16
  <Tooltip>
16
17
  <TooltipTrigger asChild>
17
- <Button variant="outline">Hover me</Button>
18
+ <Button variant="outline">Hover</Button>
18
19
  </TooltipTrigger>
19
20
  <TooltipContent>
20
21
  <p>Add to library</p>
@@ -25,7 +26,7 @@ export function TooltipDocs() {
25
26
  <TooltipProvider>
26
27
  <Tooltip>
27
28
  <TooltipTrigger asChild>
28
- <Button variant="outline">Hover me</Button>
29
+ <Button variant="outline">Hover</Button>
29
30
  </TooltipTrigger>
30
31
  <TooltipContent>
31
32
  <p>Add to library</p>
@@ -33,6 +34,114 @@ export function TooltipDocs() {
33
34
  </Tooltip>
34
35
  </TooltipProvider>
35
36
  </ComponentShowcase>
37
+
38
+ <div className="space-y-4">
39
+ <h3 className="text-xl font-semibold">Props</h3>
40
+ <p className="text-sm text-muted-foreground">
41
+ The Tooltip component is built on top of{' '}
42
+ <a
43
+ href="https://www.radix-ui.com/primitives/docs/components/tooltip"
44
+ className="underline"
45
+ target="_blank"
46
+ rel="noreferrer"
47
+ >
48
+ Radix UI Tooltip
49
+ </a>
50
+ .
51
+ </p>
52
+
53
+ <h4 className="text-lg font-medium mt-6">TooltipProvider</h4>
54
+ <PropsTable
55
+ props={[
56
+ {
57
+ name: 'delayDuration',
58
+ type: 'number',
59
+ defaultValue: '700',
60
+ description: 'The duration from when the mouse enters a tooltip trigger until the tooltip opens.',
61
+ },
62
+ {
63
+ name: 'skipDelayDuration',
64
+ type: 'number',
65
+ defaultValue: '300',
66
+ description: 'How much time a user has to enter another trigger without incurring a delay again.',
67
+ },
68
+ {
69
+ name: 'disableHoverableContent',
70
+ type: 'boolean',
71
+ description:
72
+ 'When true, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger.',
73
+ },
74
+ ]}
75
+ />
76
+
77
+ <h4 className="text-lg font-medium mt-6">Tooltip (Root)</h4>
78
+ <PropsTable
79
+ props={[
80
+ {
81
+ name: 'defaultOpen',
82
+ type: 'boolean',
83
+ description: 'The open state of the tooltip when it is initially rendered.',
84
+ },
85
+ {
86
+ name: 'open',
87
+ type: 'boolean',
88
+ description: 'The controlled open state of the tooltip.',
89
+ },
90
+ {
91
+ name: 'onOpenChange',
92
+ type: '(open: boolean) => void',
93
+ description: 'Event handler called when the open state of the tooltip changes.',
94
+ },
95
+ {
96
+ name: 'delayDuration',
97
+ type: 'number',
98
+ defaultValue: '700',
99
+ description: 'The duration from when the mouse enters a tooltip trigger until the tooltip opens.',
100
+ },
101
+ {
102
+ name: 'disableHoverableContent',
103
+ type: 'boolean',
104
+ description:
105
+ 'When true, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger.',
106
+ },
107
+ ]}
108
+ />
109
+
110
+ <h4 className="text-lg font-medium mt-6">TooltipContent</h4>
111
+ <PropsTable
112
+ props={[
113
+ {
114
+ name: 'side',
115
+ type: '"top" | "right" | "bottom" | "left"',
116
+ defaultValue: '"top"',
117
+ description: 'The preferred side of the trigger to render against when open.',
118
+ },
119
+ {
120
+ name: 'sideOffset',
121
+ type: 'number',
122
+ description: 'The distance in pixels from the trigger.',
123
+ },
124
+ {
125
+ name: 'align',
126
+ type: '"start" | "center" | "end"',
127
+ defaultValue: '"center"',
128
+ description: 'The preferred alignment against the trigger.',
129
+ },
130
+ {
131
+ name: 'alignOffset',
132
+ type: 'number',
133
+ description: 'An offset in pixels from the "start" or "end" alignment options.',
134
+ },
135
+ {
136
+ name: 'avoidCollisions',
137
+ type: 'boolean',
138
+ defaultValue: 'true',
139
+ description:
140
+ 'When true, overrides the side and align preferences to prevent collisions with boundary edges.',
141
+ },
142
+ ]}
143
+ />
144
+ </div>
36
145
  </ComponentSection>
37
146
  );
38
147
  }
@@ -1,4 +1,5 @@
1
1
  // Getting Started
2
+ export { ColorTokensDocs } from './ColorTokensDocs';
2
3
  export { GettingStartedPage, InstallationPage } from './GettingStarted';
3
4
 
4
5
  // Component Docs
@@ -33,6 +34,7 @@ export { ProgressDocs } from './components/ProgressDocs';
33
34
  export { RadioGroupDocs } from './components/RadioGroupDocs';
34
35
  export { ResizableDocs } from './components/ResizableDocs';
35
36
  export { ScrollAreaDocs } from './components/ScrollAreaDocs';
37
+ export { SearchDocs } from './components/SearchDocs';
36
38
  export { SelectDocs } from './components/SelectDocs';
37
39
  export { SeparatorDocs } from './components/SeparatorDocs';
38
40
  export { SheetDocs } from './components/SheetDocs';
@@ -43,6 +45,7 @@ export { SwitchDocs } from './components/SwitchDocs';
43
45
  export { TableDocs } from './components/TableDocs';
44
46
  export { TabsDocs } from './components/TabsDocs';
45
47
  export { TextareaDocs } from './components/TextareaDocs';
48
+ export { ThemeToggleDocs } from './components/ThemeToggleDocs';
46
49
  export { ToastDocs } from './components/ToastDocs';
47
50
  export { ToggleDocs } from './components/ToggleDocs';
48
51
  export { ToggleGroupDocs } from './components/ToggleGroupDocs';