@gv-tech/design-system 1.0.0 → 1.2.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 (335) hide show
  1. package/.agent/skills/dogfood-components/SKILL.md +34 -0
  2. package/.agent/skills/maintain-component/SKILL.md +42 -0
  3. package/.prettierignore +2 -0
  4. package/CHANGELOG.md +24 -0
  5. package/dist/App.d.ts.map +1 -1
  6. package/dist/components/docs/Footer.d.ts.map +1 -1
  7. package/dist/components/docs/PropsTable.d.ts +13 -0
  8. package/dist/components/docs/PropsTable.d.ts.map +1 -0
  9. package/dist/components/docs/Sidebar.d.ts.map +1 -1
  10. package/dist/components/docs/index.d.ts +1 -0
  11. package/dist/components/docs/index.d.ts.map +1 -1
  12. package/dist/components/ui/accordion.test.d.ts +2 -0
  13. package/dist/components/ui/accordion.test.d.ts.map +1 -0
  14. package/dist/components/ui/alert-dialog.test.d.ts +2 -0
  15. package/dist/components/ui/alert-dialog.test.d.ts.map +1 -0
  16. package/dist/components/ui/alert.test.d.ts +2 -0
  17. package/dist/components/ui/alert.test.d.ts.map +1 -0
  18. package/dist/components/ui/aspect-ratio.test.d.ts +2 -0
  19. package/dist/components/ui/aspect-ratio.test.d.ts.map +1 -0
  20. package/dist/components/ui/avatar.test.d.ts +2 -0
  21. package/dist/components/ui/avatar.test.d.ts.map +1 -0
  22. package/dist/components/ui/badge.test.d.ts +2 -0
  23. package/dist/components/ui/badge.test.d.ts.map +1 -0
  24. package/dist/components/ui/breadcrumb.test.d.ts +2 -0
  25. package/dist/components/ui/breadcrumb.test.d.ts.map +1 -0
  26. package/dist/components/ui/button.test.d.ts +2 -0
  27. package/dist/components/ui/button.test.d.ts.map +1 -0
  28. package/dist/components/ui/calendar.d.ts.map +1 -1
  29. package/dist/components/ui/calendar.test.d.ts +2 -0
  30. package/dist/components/ui/calendar.test.d.ts.map +1 -0
  31. package/dist/components/ui/card.test.d.ts +2 -0
  32. package/dist/components/ui/card.test.d.ts.map +1 -0
  33. package/dist/components/ui/carousel.test.d.ts +2 -0
  34. package/dist/components/ui/carousel.test.d.ts.map +1 -0
  35. package/dist/components/ui/chart.test.d.ts +2 -0
  36. package/dist/components/ui/chart.test.d.ts.map +1 -0
  37. package/dist/components/ui/checkbox.test.d.ts +2 -0
  38. package/dist/components/ui/checkbox.test.d.ts.map +1 -0
  39. package/dist/components/ui/collapsible.test.d.ts +2 -0
  40. package/dist/components/ui/collapsible.test.d.ts.map +1 -0
  41. package/dist/components/ui/command.test.d.ts +2 -0
  42. package/dist/components/ui/command.test.d.ts.map +1 -0
  43. package/dist/components/ui/context-menu.test.d.ts +2 -0
  44. package/dist/components/ui/context-menu.test.d.ts.map +1 -0
  45. package/dist/components/ui/dialog.test.d.ts +2 -0
  46. package/dist/components/ui/dialog.test.d.ts.map +1 -0
  47. package/dist/components/ui/drawer.test.d.ts +2 -0
  48. package/dist/components/ui/drawer.test.d.ts.map +1 -0
  49. package/dist/components/ui/dropdown-menu.test.d.ts +2 -0
  50. package/dist/components/ui/dropdown-menu.test.d.ts.map +1 -0
  51. package/dist/components/ui/form.test.d.ts +2 -0
  52. package/dist/components/ui/form.test.d.ts.map +1 -0
  53. package/dist/components/ui/hover-card.test.d.ts +2 -0
  54. package/dist/components/ui/hover-card.test.d.ts.map +1 -0
  55. package/dist/components/ui/input.test.d.ts +2 -0
  56. package/dist/components/ui/input.test.d.ts.map +1 -0
  57. package/dist/components/ui/label.test.d.ts +2 -0
  58. package/dist/components/ui/label.test.d.ts.map +1 -0
  59. package/dist/components/ui/menubar.test.d.ts +2 -0
  60. package/dist/components/ui/menubar.test.d.ts.map +1 -0
  61. package/dist/components/ui/navigation-menu.test.d.ts +2 -0
  62. package/dist/components/ui/navigation-menu.test.d.ts.map +1 -0
  63. package/dist/components/ui/pagination.test.d.ts +2 -0
  64. package/dist/components/ui/pagination.test.d.ts.map +1 -0
  65. package/dist/components/ui/popover.test.d.ts +2 -0
  66. package/dist/components/ui/popover.test.d.ts.map +1 -0
  67. package/dist/components/ui/progress.d.ts.map +1 -1
  68. package/dist/components/ui/progress.test.d.ts +2 -0
  69. package/dist/components/ui/progress.test.d.ts.map +1 -0
  70. package/dist/components/ui/radio-group.test.d.ts +2 -0
  71. package/dist/components/ui/radio-group.test.d.ts.map +1 -0
  72. package/dist/components/ui/resizable.test.d.ts +2 -0
  73. package/dist/components/ui/resizable.test.d.ts.map +1 -0
  74. package/dist/components/ui/scroll-area.test.d.ts +2 -0
  75. package/dist/components/ui/scroll-area.test.d.ts.map +1 -0
  76. package/dist/components/ui/select.test.d.ts +2 -0
  77. package/dist/components/ui/select.test.d.ts.map +1 -0
  78. package/dist/components/ui/separator.test.d.ts +2 -0
  79. package/dist/components/ui/separator.test.d.ts.map +1 -0
  80. package/dist/components/ui/sheet.test.d.ts +2 -0
  81. package/dist/components/ui/sheet.test.d.ts.map +1 -0
  82. package/dist/components/ui/skeleton.test.d.ts +2 -0
  83. package/dist/components/ui/skeleton.test.d.ts.map +1 -0
  84. package/dist/components/ui/slider.test.d.ts +2 -0
  85. package/dist/components/ui/slider.test.d.ts.map +1 -0
  86. package/dist/components/ui/sonner.test.d.ts +2 -0
  87. package/dist/components/ui/sonner.test.d.ts.map +1 -0
  88. package/dist/components/ui/switch.test.d.ts +2 -0
  89. package/dist/components/ui/switch.test.d.ts.map +1 -0
  90. package/dist/components/ui/table.test.d.ts +2 -0
  91. package/dist/components/ui/table.test.d.ts.map +1 -0
  92. package/dist/components/ui/tabs.test.d.ts +2 -0
  93. package/dist/components/ui/tabs.test.d.ts.map +1 -0
  94. package/dist/components/ui/textarea.test.d.ts +2 -0
  95. package/dist/components/ui/textarea.test.d.ts.map +1 -0
  96. package/dist/components/ui/theme-toggle.d.ts +17 -0
  97. package/dist/components/ui/theme-toggle.d.ts.map +1 -0
  98. package/dist/components/ui/toast.test.d.ts +2 -0
  99. package/dist/components/ui/toast.test.d.ts.map +1 -0
  100. package/dist/components/ui/toggle-group.test.d.ts +2 -0
  101. package/dist/components/ui/toggle-group.test.d.ts.map +1 -0
  102. package/dist/components/ui/toggle.test.d.ts +2 -0
  103. package/dist/components/ui/toggle.test.d.ts.map +1 -0
  104. package/dist/components/ui/tooltip.test.d.ts +2 -0
  105. package/dist/components/ui/tooltip.test.d.ts.map +1 -0
  106. package/dist/index.cjs.js +3 -3
  107. package/dist/index.cjs.js.map +1 -1
  108. package/dist/index.d.ts +2 -0
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.es.js +978 -860
  111. package/dist/index.es.js.map +1 -1
  112. package/dist/lib/tokens.d.ts +54 -0
  113. package/dist/lib/tokens.d.ts.map +1 -0
  114. package/dist/pages/ColorTokensDocs.d.ts +2 -0
  115. package/dist/pages/ColorTokensDocs.d.ts.map +1 -0
  116. package/dist/pages/GettingStarted.d.ts.map +1 -1
  117. package/dist/pages/components/AccordionDocs.d.ts.map +1 -1
  118. package/dist/pages/components/AlertDialogDocs.d.ts.map +1 -1
  119. package/dist/pages/components/AlertDocs.d.ts.map +1 -1
  120. package/dist/pages/components/AspectRatioDocs.d.ts.map +1 -1
  121. package/dist/pages/components/AvatarDocs.d.ts.map +1 -1
  122. package/dist/pages/components/BadgeDocs.d.ts.map +1 -1
  123. package/dist/pages/components/BreadcrumbDocs.d.ts.map +1 -1
  124. package/dist/pages/components/ButtonDocs.d.ts.map +1 -1
  125. package/dist/pages/components/CalendarDocs.d.ts.map +1 -1
  126. package/dist/pages/components/CardDocs.d.ts.map +1 -1
  127. package/dist/pages/components/CarouselDocs.d.ts.map +1 -1
  128. package/dist/pages/components/ChartDocs.d.ts.map +1 -1
  129. package/dist/pages/components/CheckboxDocs.d.ts.map +1 -1
  130. package/dist/pages/components/CollapsibleDocs.d.ts.map +1 -1
  131. package/dist/pages/components/CommandDocs.d.ts.map +1 -1
  132. package/dist/pages/components/ContextMenuDocs.d.ts.map +1 -1
  133. package/dist/pages/components/DialogDocs.d.ts.map +1 -1
  134. package/dist/pages/components/DrawerDocs.d.ts.map +1 -1
  135. package/dist/pages/components/DropdownMenuDocs.d.ts.map +1 -1
  136. package/dist/pages/components/FormDocs.d.ts.map +1 -1
  137. package/dist/pages/components/HoverCardDocs.d.ts.map +1 -1
  138. package/dist/pages/components/InputDocs.d.ts.map +1 -1
  139. package/dist/pages/components/LabelDocs.d.ts.map +1 -1
  140. package/dist/pages/components/MenubarDocs.d.ts.map +1 -1
  141. package/dist/pages/components/NavigationMenuDocs.d.ts.map +1 -1
  142. package/dist/pages/components/PaginationDocs.d.ts.map +1 -1
  143. package/dist/pages/components/PopoverDocs.d.ts.map +1 -1
  144. package/dist/pages/components/ProgressDocs.d.ts.map +1 -1
  145. package/dist/pages/components/RadioGroupDocs.d.ts.map +1 -1
  146. package/dist/pages/components/ResizableDocs.d.ts.map +1 -1
  147. package/dist/pages/components/ScrollAreaDocs.d.ts.map +1 -1
  148. package/dist/pages/components/SelectDocs.d.ts.map +1 -1
  149. package/dist/pages/components/SeparatorDocs.d.ts.map +1 -1
  150. package/dist/pages/components/SheetDocs.d.ts.map +1 -1
  151. package/dist/pages/components/SkeletonDocs.d.ts.map +1 -1
  152. package/dist/pages/components/SliderDocs.d.ts.map +1 -1
  153. package/dist/pages/components/SonnerDocs.d.ts.map +1 -1
  154. package/dist/pages/components/SwitchDocs.d.ts.map +1 -1
  155. package/dist/pages/components/TableDocs.d.ts.map +1 -1
  156. package/dist/pages/components/TabsDocs.d.ts.map +1 -1
  157. package/dist/pages/components/TextareaDocs.d.ts.map +1 -1
  158. package/dist/pages/components/ThemeToggleDocs.d.ts +2 -0
  159. package/dist/pages/components/ThemeToggleDocs.d.ts.map +1 -0
  160. package/dist/pages/components/ToastDocs.d.ts.map +1 -1
  161. package/dist/pages/components/ToggleDocs.d.ts.map +1 -1
  162. package/dist/pages/components/ToggleGroupDocs.d.ts.map +1 -1
  163. package/dist/pages/components/TooltipDocs.d.ts.map +1 -1
  164. package/dist/pages/index.d.ts +2 -0
  165. package/dist/pages/index.d.ts.map +1 -1
  166. package/dist/registry/accordion.test.json +13 -0
  167. package/dist/registry/alert-dialog.test.json +13 -0
  168. package/dist/registry/alert.test.json +13 -0
  169. package/dist/registry/aspect-ratio.test.json +13 -0
  170. package/dist/registry/avatar.test.json +13 -0
  171. package/dist/registry/badge.test.json +13 -0
  172. package/dist/registry/breadcrumb.test.json +13 -0
  173. package/dist/registry/button.test.json +13 -0
  174. package/dist/registry/calendar.json +1 -1
  175. package/dist/registry/calendar.test.json +13 -0
  176. package/dist/registry/card.test.json +13 -0
  177. package/dist/registry/carousel.test.json +13 -0
  178. package/dist/registry/chart.test.json +13 -0
  179. package/dist/registry/checkbox.test.json +13 -0
  180. package/dist/registry/collapsible.test.json +13 -0
  181. package/dist/registry/command.test.json +13 -0
  182. package/dist/registry/context-menu.test.json +13 -0
  183. package/dist/registry/dialog.test.json +13 -0
  184. package/dist/registry/drawer.test.json +13 -0
  185. package/dist/registry/dropdown-menu.test.json +13 -0
  186. package/dist/registry/form.test.json +13 -0
  187. package/dist/registry/hover-card.test.json +13 -0
  188. package/dist/registry/index.json +322 -0
  189. package/dist/registry/input.test.json +13 -0
  190. package/dist/registry/label.test.json +13 -0
  191. package/dist/registry/menubar.test.json +13 -0
  192. package/dist/registry/navigation-menu.test.json +13 -0
  193. package/dist/registry/pagination.test.json +13 -0
  194. package/dist/registry/popover.test.json +13 -0
  195. package/dist/registry/progress.json +1 -1
  196. package/dist/registry/progress.test.json +13 -0
  197. package/dist/registry/radio-group.test.json +13 -0
  198. package/dist/registry/resizable.test.json +13 -0
  199. package/dist/registry/scroll-area.test.json +13 -0
  200. package/dist/registry/select.test.json +13 -0
  201. package/dist/registry/separator.test.json +13 -0
  202. package/dist/registry/sheet.test.json +13 -0
  203. package/dist/registry/skeleton.test.json +13 -0
  204. package/dist/registry/slider.test.json +13 -0
  205. package/dist/registry/sonner.test.json +13 -0
  206. package/dist/registry/switch.test.json +13 -0
  207. package/dist/registry/table.test.json +13 -0
  208. package/dist/registry/tabs.test.json +13 -0
  209. package/dist/registry/textarea.test.json +13 -0
  210. package/dist/registry/theme-toggle.json +13 -0
  211. package/dist/registry/toast.test.json +13 -0
  212. package/dist/registry/toggle-group.test.json +13 -0
  213. package/dist/registry/toggle.test.json +13 -0
  214. package/dist/registry/tooltip.test.json +13 -0
  215. package/dist/setupTests.d.ts +2 -0
  216. package/dist/setupTests.d.ts.map +1 -0
  217. package/dist/{vendor-ZhQmrf1h.mjs → vendor-CAF5bxO5.mjs} +2451 -2415
  218. package/dist/vendor-CAF5bxO5.mjs.map +1 -0
  219. package/dist/{vendor-CMSUBoIg.js → vendor-Hw1BQGd3.js} +17 -17
  220. package/dist/vendor-Hw1BQGd3.js.map +1 -0
  221. package/eslint.config.mjs +8 -81
  222. package/package.json +38 -41
  223. package/postcss.config.mjs +5 -0
  224. package/src/App.tsx +37 -7
  225. package/src/components/docs/Footer.tsx +51 -30
  226. package/src/components/docs/PropsTable.tsx +43 -0
  227. package/src/components/docs/Sidebar.tsx +44 -72
  228. package/src/components/docs/index.ts +1 -0
  229. package/src/components/ui/accordion.test.tsx +86 -0
  230. package/src/components/ui/alert-dialog.test.tsx +89 -0
  231. package/src/components/ui/alert.test.tsx +33 -0
  232. package/src/components/ui/aspect-ratio.test.tsx +34 -0
  233. package/src/components/ui/avatar.test.tsx +33 -0
  234. package/src/components/ui/badge.test.tsx +24 -0
  235. package/src/components/ui/breadcrumb.test.tsx +55 -0
  236. package/src/components/ui/button.test.tsx +62 -0
  237. package/src/components/ui/calendar.test.tsx +23 -0
  238. package/src/components/ui/calendar.tsx +14 -10
  239. package/src/components/ui/card.test.tsx +35 -0
  240. package/src/components/ui/carousel.test.tsx +37 -0
  241. package/src/components/ui/chart.test.tsx +62 -0
  242. package/src/components/ui/checkbox.test.tsx +30 -0
  243. package/src/components/ui/collapsible.test.tsx +51 -0
  244. package/src/components/ui/command.test.tsx +79 -0
  245. package/src/components/ui/context-menu.test.tsx +37 -0
  246. package/src/components/ui/dialog.test.tsx +66 -0
  247. package/src/components/ui/drawer.test.tsx +68 -0
  248. package/src/components/ui/dropdown-menu.test.tsx +93 -0
  249. package/src/components/ui/form.test.tsx +85 -0
  250. package/src/components/ui/hover-card.test.tsx +48 -0
  251. package/src/components/ui/input.test.tsx +33 -0
  252. package/src/components/ui/label.test.tsx +27 -0
  253. package/src/components/ui/menubar.test.tsx +92 -0
  254. package/src/components/ui/navigation-menu.test.tsx +53 -0
  255. package/src/components/ui/pagination.test.tsx +57 -0
  256. package/src/components/ui/popover.test.tsx +31 -0
  257. package/src/components/ui/progress.test.tsx +18 -0
  258. package/src/components/ui/progress.tsx +1 -0
  259. package/src/components/ui/radio-group.test.tsx +39 -0
  260. package/src/components/ui/resizable.test.tsx +23 -0
  261. package/src/components/ui/scroll-area.test.tsx +15 -0
  262. package/src/components/ui/select.test.tsx +42 -0
  263. package/src/components/ui/separator.test.tsx +16 -0
  264. package/src/components/ui/sheet.test.tsx +48 -0
  265. package/src/components/ui/skeleton.test.tsx +13 -0
  266. package/src/components/ui/slider.test.tsx +18 -0
  267. package/src/components/ui/sonner.test.tsx +13 -0
  268. package/src/components/ui/switch.test.tsx +22 -0
  269. package/src/components/ui/table.test.tsx +29 -0
  270. package/src/components/ui/tabs.test.tsx +43 -0
  271. package/src/components/ui/textarea.test.tsx +21 -0
  272. package/src/components/ui/theme-toggle.tsx +108 -0
  273. package/src/components/ui/toast.test.tsx +42 -0
  274. package/src/components/ui/toggle-group.test.tsx +40 -0
  275. package/src/components/ui/toggle.test.tsx +21 -0
  276. package/src/components/ui/tooltip.test.tsx +25 -0
  277. package/src/globals.css +94 -37
  278. package/src/index.ts +2 -0
  279. package/src/lib/tokens.ts +54 -0
  280. package/src/pages/ColorTokensDocs.tsx +181 -0
  281. package/src/pages/GettingStarted.tsx +55 -35
  282. package/src/pages/components/AccordionDocs.tsx +109 -0
  283. package/src/pages/components/AlertDialogDocs.tsx +88 -0
  284. package/src/pages/components/AlertDocs.tsx +20 -0
  285. package/src/pages/components/AspectRatioDocs.tsx +21 -0
  286. package/src/pages/components/AvatarDocs.tsx +48 -0
  287. package/src/pages/components/BadgeDocs.tsx +20 -0
  288. package/src/pages/components/BreadcrumbDocs.tsx +33 -0
  289. package/src/pages/components/ButtonDocs.tsx +43 -0
  290. package/src/pages/components/CalendarDocs.tsx +43 -0
  291. package/src/pages/components/CardDocs.tsx +20 -0
  292. package/src/pages/components/CarouselDocs.tsx +31 -0
  293. package/src/pages/components/ChartDocs.tsx +131 -101
  294. package/src/pages/components/CheckboxDocs.tsx +58 -0
  295. package/src/pages/components/CollapsibleDocs.tsx +51 -0
  296. package/src/pages/components/CommandDocs.tsx +109 -0
  297. package/src/pages/components/ContextMenuDocs.tsx +65 -0
  298. package/src/pages/components/DialogDocs.tsx +98 -11
  299. package/src/pages/components/DrawerDocs.tsx +210 -15
  300. package/src/pages/components/DropdownMenuDocs.tsx +273 -11
  301. package/src/pages/components/FormDocs.tsx +149 -70
  302. package/src/pages/components/HoverCardDocs.tsx +82 -5
  303. package/src/pages/components/InputDocs.tsx +51 -20
  304. package/src/pages/components/LabelDocs.tsx +40 -9
  305. package/src/pages/components/MenubarDocs.tsx +191 -18
  306. package/src/pages/components/NavigationMenuDocs.tsx +147 -49
  307. package/src/pages/components/PaginationDocs.tsx +27 -2
  308. package/src/pages/components/PopoverDocs.tsx +124 -2
  309. package/src/pages/components/ProgressDocs.tsx +54 -24
  310. package/src/pages/components/RadioGroupDocs.tsx +95 -1
  311. package/src/pages/components/ResizableDocs.tsx +102 -75
  312. package/src/pages/components/ScrollAreaDocs.tsx +64 -51
  313. package/src/pages/components/SelectDocs.tsx +119 -48
  314. package/src/pages/components/SeparatorDocs.tsx +37 -2
  315. package/src/pages/components/SheetDocs.tsx +112 -38
  316. package/src/pages/components/SkeletonDocs.tsx +16 -20
  317. package/src/pages/components/SliderDocs.tsx +96 -10
  318. package/src/pages/components/SonnerDocs.tsx +89 -61
  319. package/src/pages/components/SwitchDocs.tsx +65 -10
  320. package/src/pages/components/TableDocs.tsx +89 -14
  321. package/src/pages/components/TabsDocs.tsx +149 -37
  322. package/src/pages/components/TextareaDocs.tsx +38 -32
  323. package/src/pages/components/ThemeToggleDocs.tsx +50 -0
  324. package/src/pages/components/ToastDocs.tsx +104 -65
  325. package/src/pages/components/ToggleDocs.tsx +55 -38
  326. package/src/pages/components/ToggleGroupDocs.tsx +96 -58
  327. package/src/pages/components/TooltipDocs.tsx +112 -3
  328. package/src/pages/index.ts +2 -0
  329. package/src/setupTests.ts +47 -0
  330. package/temp.md +292 -0
  331. package/vitest.config.ts +4 -0
  332. package/dist/vendor-CMSUBoIg.js.map +0 -1
  333. package/dist/vendor-ZhQmrf1h.mjs.map +0 -1
  334. package/postcss.config.js +0 -6
  335. package/tailwind.config.js +0 -79
@@ -1,26 +1,19 @@
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 { Input } from '@/components/ui/input';
4
5
  import { Label } from '@/components/ui/label';
5
6
 
6
7
  export function InputDocs() {
7
8
  return (
8
- <ComponentSection title="Input" description="Displays a form input field for collecting user text input.">
9
+ <ComponentSection
10
+ title="Input"
11
+ description="Displays a form input field or a component that looks like an input field."
12
+ >
9
13
  <ComponentShowcase
10
14
  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>`}
15
+ description="A default input field."
16
+ code={`<Input type="email" placeholder="Email" />`}
24
17
  >
25
18
  <div className="grid w-full max-w-sm items-center gap-1.5">
26
19
  <Label htmlFor="email">Email</Label>
@@ -29,8 +22,8 @@ export function InputDocs() {
29
22
  </ComponentShowcase>
30
23
 
31
24
  <ComponentShowcase
32
- title="File Input"
33
- description="Input for file uploads."
25
+ title="File"
26
+ description="A file input field."
34
27
  code={`<div className="grid w-full max-w-sm items-center gap-1.5">
35
28
  <Label htmlFor="picture">Picture</Label>
36
29
  <Input id="picture" type="file" />
@@ -44,15 +37,18 @@ export function InputDocs() {
44
37
 
45
38
  <ComponentShowcase
46
39
  title="Disabled"
47
- description="Disabled state prevents user interaction."
48
- code={`<Input disabled type="text" placeholder="Disabled" />`}
40
+ description="A disabled input field."
41
+ code={`<Input disabled type="email" placeholder="Email" />`}
49
42
  >
50
- <Input disabled type="text" placeholder="Disabled" className="max-w-xs" />
43
+ <div className="grid w-full max-w-sm items-center gap-1.5">
44
+ <Label htmlFor="email-disabled">Email</Label>
45
+ <Input disabled type="email" id="email-disabled" placeholder="Email" />
46
+ </div>
51
47
  </ComponentShowcase>
52
48
 
53
49
  <ComponentShowcase
54
50
  title="With Button"
55
- description="Combine input with a button for search patterns."
51
+ description="An input field with a button."
56
52
  code={`<div className="flex w-full max-w-sm items-center space-x-2">
57
53
  <Input type="email" placeholder="Email" />
58
54
  <Button type="submit">Subscribe</Button>
@@ -63,6 +59,41 @@ export function InputDocs() {
63
59
  <Button type="submit">Subscribe</Button>
64
60
  </div>
65
61
  </ComponentShowcase>
62
+
63
+ <div className="space-y-4">
64
+ <h3 className="text-xl font-semibold">Props</h3>
65
+ <p className="text-sm text-muted-foreground">The Input component extends the standard HTML input element.</p>
66
+ <PropsTable
67
+ props={[
68
+ {
69
+ name: 'type',
70
+ type: 'string',
71
+ defaultValue: '"text"',
72
+ description: 'The type of input to render.',
73
+ },
74
+ {
75
+ name: 'placeholder',
76
+ type: 'string',
77
+ description: 'The placeholder text for the input.',
78
+ },
79
+ {
80
+ name: 'value',
81
+ type: 'string | number | readonly string[]',
82
+ description: 'The value of the input.',
83
+ },
84
+ {
85
+ name: 'disabled',
86
+ type: 'boolean',
87
+ description: 'Whether the input is disabled.',
88
+ },
89
+ {
90
+ name: 'onChange',
91
+ type: '(event: React.ChangeEvent<HTMLInputElement>) => void',
92
+ description: 'Event handler called when the value changes.',
93
+ },
94
+ ]}
95
+ />
96
+ </div>
66
97
  </ComponentSection>
67
98
  );
68
99
  }
@@ -1,23 +1,54 @@
1
1
  import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
- import { Input } from '@/components/ui/input';
2
+ import { PropsTable } from '@/components/docs/PropsTable';
3
+ import { Checkbox } from '@/components/ui/checkbox';
3
4
  import { Label } from '@/components/ui/label';
4
5
 
5
6
  export function LabelDocs() {
6
7
  return (
7
- <ComponentSection title="Label" description="Renders an accessible label associated with form controls.">
8
+ <ComponentSection title="Label" description="Renders an accessible label associated with controls.">
8
9
  <ComponentShowcase
9
10
  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" />
11
+ description="A default label."
12
+ code={`<div className="flex items-center space-x-2">
13
+ <Checkbox id="terms" />
14
+ <Label htmlFor="terms">Accept terms and conditions</Label>
14
15
  </div>`}
15
16
  >
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" />
17
+ <div className="flex items-center space-x-2">
18
+ <Checkbox id="terms" />
19
+ <Label htmlFor="terms">Accept terms and conditions</Label>
19
20
  </div>
20
21
  </ComponentShowcase>
22
+
23
+ <div className="space-y-4">
24
+ <h3 className="text-xl font-semibold">Props</h3>
25
+ <p className="text-sm text-muted-foreground">
26
+ The Label component is built on top of{' '}
27
+ <a
28
+ href="https://www.radix-ui.com/primitives/docs/components/label"
29
+ className="underline"
30
+ target="_blank"
31
+ rel="noreferrer"
32
+ >
33
+ Radix UI Label
34
+ </a>
35
+ .
36
+ </p>
37
+ <PropsTable
38
+ props={[
39
+ {
40
+ name: 'htmlFor',
41
+ type: 'string',
42
+ description: 'The id of the element the label is associated with.',
43
+ },
44
+ {
45
+ name: 'asChild',
46
+ type: 'boolean',
47
+ description: 'Change the default rendered element for the one passed as a child.',
48
+ },
49
+ ]}
50
+ />
51
+ </div>
21
52
  </ComponentSection>
22
53
  );
23
54
  }
@@ -1,9 +1,13 @@
1
1
  import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
2
+ import { PropsTable } from '@/components/docs/PropsTable';
2
3
  import {
3
4
  Menubar,
5
+ MenubarCheckboxItem,
4
6
  MenubarContent,
5
7
  MenubarItem,
6
8
  MenubarMenu,
9
+ MenubarRadioGroup,
10
+ MenubarRadioItem,
7
11
  MenubarSeparator,
8
12
  MenubarShortcut,
9
13
  MenubarSub,
@@ -14,10 +18,13 @@ import {
14
18
 
15
19
  export function MenubarDocs() {
16
20
  return (
17
- <ComponentSection title="Menubar" description="A visually persistent menu common in desktop applications.">
21
+ <ComponentSection
22
+ title="Menubar"
23
+ description="A visually persistent menu common in desktop applications that provides quick access to a consistent set of commands."
24
+ >
18
25
  <ComponentShowcase
19
26
  title="Default"
20
- description="A menubar with submenus and shortcuts."
27
+ description="A standard menubar."
21
28
  code={`<Menubar>
22
29
  <MenubarMenu>
23
30
  <MenubarTrigger>File</MenubarTrigger>
@@ -25,11 +32,23 @@ export function MenubarDocs() {
25
32
  <MenubarItem>
26
33
  New Tab <MenubarShortcut>⌘T</MenubarShortcut>
27
34
  </MenubarItem>
28
- <MenubarItem>New Window</MenubarItem>
35
+ <MenubarItem>
36
+ New Window <MenubarShortcut>⌘N</MenubarShortcut>
37
+ </MenubarItem>
38
+ <MenubarItem disabled>New Incognito Window</MenubarItem>
29
39
  <MenubarSeparator />
30
- <MenubarItem>Share</MenubarItem>
40
+ <MenubarSub>
41
+ <MenubarSubTrigger>Share</MenubarSubTrigger>
42
+ <MenubarSubContent>
43
+ <MenubarItem>Email link</MenubarItem>
44
+ <MenubarItem>Messages</MenubarItem>
45
+ <MenubarItem>Notes</MenubarItem>
46
+ </MenubarSubContent>
47
+ </MenubarSub>
31
48
  <MenubarSeparator />
32
- <MenubarItem>Print</MenubarItem>
49
+ <MenubarItem>
50
+ Print... <MenubarShortcut>⌘P</MenubarShortcut>
51
+ </MenubarItem>
33
52
  </MenubarContent>
34
53
  </MenubarMenu>
35
54
  <MenubarMenu>
@@ -46,21 +65,50 @@ export function MenubarDocs() {
46
65
  <MenubarSubTrigger>Find</MenubarSubTrigger>
47
66
  <MenubarSubContent>
48
67
  <MenubarItem>Search the web</MenubarItem>
68
+ <MenubarSeparator />
49
69
  <MenubarItem>Find...</MenubarItem>
50
- <MenubarItem>Find and Replace</MenubarItem>
70
+ <MenubarItem>Find Next</MenubarItem>
71
+ <MenubarItem>Find Previous</MenubarItem>
51
72
  </MenubarSubContent>
52
73
  </MenubarSub>
74
+ <MenubarSeparator />
75
+ <MenubarItem>Cut</MenubarItem>
76
+ <MenubarItem>Copy</MenubarItem>
77
+ <MenubarItem>Paste</MenubarItem>
53
78
  </MenubarContent>
54
79
  </MenubarMenu>
55
80
  <MenubarMenu>
56
81
  <MenubarTrigger>View</MenubarTrigger>
57
82
  <MenubarContent>
58
- <MenubarItem>
59
- Zoom In <MenubarShortcut>⌘+</MenubarShortcut>
83
+ <MenubarCheckboxItem>Always Show Bookmarks Bar</MenubarCheckboxItem>
84
+ <MenubarCheckboxItem checked>
85
+ Always Show Full URLs
86
+ </MenubarCheckboxItem>
87
+ <MenubarSeparator />
88
+ <MenubarItem inset>
89
+ Reload <MenubarShortcut>⌘R</MenubarShortcut>
60
90
  </MenubarItem>
61
- <MenubarItem>
62
- Zoom Out <MenubarShortcut>⌘-</MenubarShortcut>
91
+ <MenubarItem disabled inset>
92
+ Force Reload <MenubarShortcut>⇧⌘R</MenubarShortcut>
63
93
  </MenubarItem>
94
+ <MenubarSeparator />
95
+ <MenubarItem inset>Toggle Fullscreen</MenubarItem>
96
+ <MenubarSeparator />
97
+ <MenubarItem inset>Hide Sidebar</MenubarItem>
98
+ </MenubarContent>
99
+ </MenubarMenu>
100
+ <MenubarMenu>
101
+ <MenubarTrigger>Profiles</MenubarTrigger>
102
+ <MenubarContent>
103
+ <MenubarRadioGroup value="benoit">
104
+ <MenubarRadioItem value="andy">Andy</MenubarRadioItem>
105
+ <MenubarRadioItem value="benoit">Benoit</MenubarRadioItem>
106
+ <MenubarRadioItem value="Luis">Luis</MenubarRadioItem>
107
+ </MenubarRadioGroup>
108
+ <MenubarSeparator />
109
+ <MenubarItem inset>Edit...</MenubarItem>
110
+ <MenubarSeparator />
111
+ <MenubarItem inset>Add Profile...</MenubarItem>
64
112
  </MenubarContent>
65
113
  </MenubarMenu>
66
114
  </Menubar>`}
@@ -72,11 +120,23 @@ export function MenubarDocs() {
72
120
  <MenubarItem>
73
121
  New Tab <MenubarShortcut>⌘T</MenubarShortcut>
74
122
  </MenubarItem>
75
- <MenubarItem>New Window</MenubarItem>
123
+ <MenubarItem>
124
+ New Window <MenubarShortcut>⌘N</MenubarShortcut>
125
+ </MenubarItem>
126
+ <MenubarItem disabled>New Incognito Window</MenubarItem>
76
127
  <MenubarSeparator />
77
- <MenubarItem>Share</MenubarItem>
128
+ <MenubarSub>
129
+ <MenubarSubTrigger>Share</MenubarSubTrigger>
130
+ <MenubarSubContent>
131
+ <MenubarItem>Email link</MenubarItem>
132
+ <MenubarItem>Messages</MenubarItem>
133
+ <MenubarItem>Notes</MenubarItem>
134
+ </MenubarSubContent>
135
+ </MenubarSub>
78
136
  <MenubarSeparator />
79
- <MenubarItem>Print</MenubarItem>
137
+ <MenubarItem>
138
+ Print... <MenubarShortcut>⌘P</MenubarShortcut>
139
+ </MenubarItem>
80
140
  </MenubarContent>
81
141
  </MenubarMenu>
82
142
  <MenubarMenu>
@@ -93,25 +153,138 @@ export function MenubarDocs() {
93
153
  <MenubarSubTrigger>Find</MenubarSubTrigger>
94
154
  <MenubarSubContent>
95
155
  <MenubarItem>Search the web</MenubarItem>
156
+ <MenubarSeparator />
96
157
  <MenubarItem>Find...</MenubarItem>
97
- <MenubarItem>Find and Replace</MenubarItem>
158
+ <MenubarItem>Find Next</MenubarItem>
159
+ <MenubarItem>Find Previous</MenubarItem>
98
160
  </MenubarSubContent>
99
161
  </MenubarSub>
162
+ <MenubarSeparator />
163
+ <MenubarItem>Cut</MenubarItem>
164
+ <MenubarItem>Copy</MenubarItem>
165
+ <MenubarItem>Paste</MenubarItem>
100
166
  </MenubarContent>
101
167
  </MenubarMenu>
102
168
  <MenubarMenu>
103
169
  <MenubarTrigger>View</MenubarTrigger>
104
170
  <MenubarContent>
105
- <MenubarItem>
106
- Zoom In <MenubarShortcut>⌘+</MenubarShortcut>
171
+ <MenubarCheckboxItem>Always Show Bookmarks Bar</MenubarCheckboxItem>
172
+ <MenubarCheckboxItem checked>Always Show Full URLs</MenubarCheckboxItem>
173
+ <MenubarSeparator />
174
+ <MenubarItem inset>
175
+ Reload <MenubarShortcut>⌘R</MenubarShortcut>
107
176
  </MenubarItem>
108
- <MenubarItem>
109
- Zoom Out <MenubarShortcut>⌘-</MenubarShortcut>
177
+ <MenubarItem disabled inset>
178
+ Force Reload <MenubarShortcut>⇧⌘R</MenubarShortcut>
110
179
  </MenubarItem>
180
+ <MenubarSeparator />
181
+ <MenubarItem inset>Toggle Fullscreen</MenubarItem>
182
+ <MenubarSeparator />
183
+ <MenubarItem inset>Hide Sidebar</MenubarItem>
184
+ </MenubarContent>
185
+ </MenubarMenu>
186
+ <MenubarMenu>
187
+ <MenubarTrigger>Profiles</MenubarTrigger>
188
+ <MenubarContent>
189
+ <MenubarRadioGroup value="benoit">
190
+ <MenubarRadioItem value="andy">Andy</MenubarRadioItem>
191
+ <MenubarRadioItem value="benoit">Benoit</MenubarRadioItem>
192
+ <MenubarRadioItem value="Luis">Luis</MenubarRadioItem>
193
+ </MenubarRadioGroup>
194
+ <MenubarSeparator />
195
+ <MenubarItem inset>Edit...</MenubarItem>
196
+ <MenubarSeparator />
197
+ <MenubarItem inset>Add Profile...</MenubarItem>
111
198
  </MenubarContent>
112
199
  </MenubarMenu>
113
200
  </Menubar>
114
201
  </ComponentShowcase>
202
+
203
+ <div className="space-y-4">
204
+ <h3 className="text-xl font-semibold">Props</h3>
205
+ <p className="text-sm text-muted-foreground">
206
+ The Menubar component is built on top of{' '}
207
+ <a
208
+ href="https://www.radix-ui.com/primitives/docs/components/menubar"
209
+ className="underline"
210
+ target="_blank"
211
+ rel="noreferrer"
212
+ >
213
+ Radix UI Menubar
214
+ </a>
215
+ .
216
+ </p>
217
+
218
+ <h4 className="text-lg font-medium mt-6">Menubar (Root)</h4>
219
+ <PropsTable
220
+ props={[
221
+ {
222
+ name: 'defaultValue',
223
+ type: 'string',
224
+ description: 'The value of the menu item that should be active when initially rendered.',
225
+ },
226
+ {
227
+ name: 'value',
228
+ type: 'string',
229
+ description: 'The controlled value of the active menu item.',
230
+ },
231
+ {
232
+ name: 'onValueChange',
233
+ type: '(value: string) => void',
234
+ description: 'Event handler called when the value changes.',
235
+ },
236
+ {
237
+ name: 'loop',
238
+ type: 'boolean',
239
+ defaultValue: 'false',
240
+ description: 'Whether keyboard navigation should loop from last item to first, and vice versa.',
241
+ },
242
+ ]}
243
+ />
244
+
245
+ <h4 className="text-lg font-medium mt-6">MenubarMenu</h4>
246
+ <PropsTable
247
+ props={[
248
+ {
249
+ name: 'value',
250
+ type: 'string',
251
+ description: 'A unique value that identifies the menu.',
252
+ },
253
+ ]}
254
+ />
255
+
256
+ <h4 className="text-lg font-medium mt-6">MenubarCheckboxItem</h4>
257
+ <PropsTable
258
+ props={[
259
+ {
260
+ name: 'checked',
261
+ type: 'boolean | "indeterminate"',
262
+ description: 'The controlled checked state of the item.',
263
+ },
264
+ {
265
+ name: 'onCheckedChange',
266
+ type: '(checked: boolean) => void',
267
+ description: 'Event handler called when the checked state changes.',
268
+ },
269
+ ]}
270
+ />
271
+
272
+ <h4 className="text-lg font-medium mt-6">MenubarRadioGroup</h4>
273
+ <PropsTable
274
+ props={[
275
+ {
276
+ name: 'value',
277
+ type: 'string',
278
+ description: 'The value of the selected item in the group.',
279
+ },
280
+ {
281
+ name: 'onValueChange',
282
+ type: '(value: string) => void',
283
+ description: 'Event handler called when the value changes.',
284
+ },
285
+ ]}
286
+ />
287
+ </div>
115
288
  </ComponentSection>
116
289
  );
117
290
  }