@fabio.caffarello/react-design-system 3.8.0 → 3.10.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 (418) hide show
  1. package/README.md +2 -1
  2. package/dist/granular/index.js +447 -0
  3. package/dist/granular/index.js.map +1 -0
  4. package/dist/granular/ui/components/Accordion/Accordion.js +105 -0
  5. package/dist/granular/ui/components/Accordion/Accordion.js.map +1 -0
  6. package/dist/granular/ui/components/Autocomplete/Autocomplete.js +133 -0
  7. package/dist/granular/ui/components/Autocomplete/Autocomplete.js.map +1 -0
  8. package/dist/granular/ui/components/Autocomplete/AutocompleteList.js +119 -0
  9. package/dist/granular/ui/components/Autocomplete/AutocompleteList.js.map +1 -0
  10. package/dist/granular/ui/components/Autocomplete/AutocompleteOption.js +42 -0
  11. package/dist/granular/ui/components/Autocomplete/AutocompleteOption.js.map +1 -0
  12. package/dist/granular/ui/components/Breadcrumb/Breadcrumb.js +100 -0
  13. package/dist/granular/ui/components/Breadcrumb/Breadcrumb.js.map +1 -0
  14. package/dist/granular/ui/components/Card/Card.js +113 -0
  15. package/dist/granular/ui/components/Card/Card.js.map +1 -0
  16. package/dist/granular/ui/components/Card/CardActions.js +51 -0
  17. package/dist/granular/ui/components/Card/CardActions.js.map +1 -0
  18. package/dist/granular/ui/components/Card/CardBody.js +32 -0
  19. package/dist/granular/ui/components/Card/CardBody.js.map +1 -0
  20. package/dist/granular/ui/components/Card/CardHeader.js +47 -0
  21. package/dist/granular/ui/components/Card/CardHeader.js.map +1 -0
  22. package/dist/granular/ui/components/Card/CardSubtitle.js +38 -0
  23. package/dist/granular/ui/components/Card/CardSubtitle.js.map +1 -0
  24. package/dist/granular/ui/components/Card/CardTitle.js +61 -0
  25. package/dist/granular/ui/components/Card/CardTitle.js.map +1 -0
  26. package/dist/granular/ui/components/ColorPicker/ColorPicker.js +250 -0
  27. package/dist/granular/ui/components/ColorPicker/ColorPicker.js.map +1 -0
  28. package/dist/granular/ui/components/CommandPalette/CommandPalette.js +274 -0
  29. package/dist/granular/ui/components/CommandPalette/CommandPalette.js.map +1 -0
  30. package/dist/granular/ui/components/DashboardLayout/DashboardLayout.js +37 -0
  31. package/dist/granular/ui/components/DashboardLayout/DashboardLayout.js.map +1 -0
  32. package/dist/granular/ui/components/DataGrid/DataGrid.js +155 -0
  33. package/dist/granular/ui/components/DataGrid/DataGrid.js.map +1 -0
  34. package/dist/granular/ui/components/DataTablePattern/DataTablePattern.js +113 -0
  35. package/dist/granular/ui/components/DataTablePattern/DataTablePattern.js.map +1 -0
  36. package/dist/granular/ui/components/DatePicker/DatePicker.js +126 -0
  37. package/dist/granular/ui/components/DatePicker/DatePicker.js.map +1 -0
  38. package/dist/granular/ui/components/DatePicker/DatePickerCalendar.js +294 -0
  39. package/dist/granular/ui/components/DatePicker/DatePickerCalendar.js.map +1 -0
  40. package/dist/granular/ui/components/DatePicker/DatePickerContext.js +16 -0
  41. package/dist/granular/ui/components/DatePicker/DatePickerContext.js.map +1 -0
  42. package/dist/granular/ui/components/DatePicker/DatePickerInput.js +119 -0
  43. package/dist/granular/ui/components/DatePicker/DatePickerInput.js.map +1 -0
  44. package/dist/granular/ui/components/DatePicker/DatePickerProvider.js +47 -0
  45. package/dist/granular/ui/components/DatePicker/DatePickerProvider.js.map +1 -0
  46. package/dist/granular/ui/components/Dialog/AlertDialog.js +48 -0
  47. package/dist/granular/ui/components/Dialog/AlertDialog.js.map +1 -0
  48. package/dist/granular/ui/components/Dialog/Dialog.js +36 -0
  49. package/dist/granular/ui/components/Dialog/Dialog.js.map +1 -0
  50. package/dist/granular/ui/components/Dialog/DialogClose.js +34 -0
  51. package/dist/granular/ui/components/Dialog/DialogClose.js.map +1 -0
  52. package/dist/granular/ui/components/Dialog/DialogContent.js +114 -0
  53. package/dist/granular/ui/components/Dialog/DialogContent.js.map +1 -0
  54. package/dist/granular/ui/components/Dialog/DialogDescription.js +51 -0
  55. package/dist/granular/ui/components/Dialog/DialogDescription.js.map +1 -0
  56. package/dist/granular/ui/components/Dialog/DialogFooter.js +45 -0
  57. package/dist/granular/ui/components/Dialog/DialogFooter.js.map +1 -0
  58. package/dist/granular/ui/components/Dialog/DialogHeader.js +45 -0
  59. package/dist/granular/ui/components/Dialog/DialogHeader.js.map +1 -0
  60. package/dist/granular/ui/components/Dialog/DialogTitle.js +53 -0
  61. package/dist/granular/ui/components/Dialog/DialogTitle.js.map +1 -0
  62. package/dist/granular/ui/components/Dialog/DialogTrigger.js +28 -0
  63. package/dist/granular/ui/components/Dialog/DialogTrigger.js.map +1 -0
  64. package/dist/granular/ui/components/Drawer/Drawer.js +47 -0
  65. package/dist/granular/ui/components/Drawer/Drawer.js.map +1 -0
  66. package/dist/granular/ui/components/Drawer/DrawerContent.js +140 -0
  67. package/dist/granular/ui/components/Drawer/DrawerContent.js.map +1 -0
  68. package/dist/granular/ui/components/Drawer/DrawerContext.js +21 -0
  69. package/dist/granular/ui/components/Drawer/DrawerContext.js.map +1 -0
  70. package/dist/granular/ui/components/Drawer/DrawerFooter.js +53 -0
  71. package/dist/granular/ui/components/Drawer/DrawerFooter.js.map +1 -0
  72. package/dist/granular/ui/components/Drawer/DrawerHeader.js +50 -0
  73. package/dist/granular/ui/components/Drawer/DrawerHeader.js.map +1 -0
  74. package/dist/granular/ui/components/Dropdown/Dropdown.js +243 -0
  75. package/dist/granular/ui/components/Dropdown/Dropdown.js.map +1 -0
  76. package/dist/granular/ui/components/EmptyState/EmptyState.js +102 -0
  77. package/dist/granular/ui/components/EmptyState/EmptyState.js.map +1 -0
  78. package/dist/granular/ui/components/FileUpload/FileUpload.js +342 -0
  79. package/dist/granular/ui/components/FileUpload/FileUpload.js.map +1 -0
  80. package/dist/granular/ui/components/FilterChips/FilterChips.js +67 -0
  81. package/dist/granular/ui/components/FilterChips/FilterChips.js.map +1 -0
  82. package/dist/granular/ui/components/Form/Form.js +184 -0
  83. package/dist/granular/ui/components/Form/Form.js.map +1 -0
  84. package/dist/granular/ui/components/Form/FormContext.js +19 -0
  85. package/dist/granular/ui/components/Form/FormContext.js.map +1 -0
  86. package/dist/granular/ui/components/Form/FormField.js +66 -0
  87. package/dist/granular/ui/components/Form/FormField.js.map +1 -0
  88. package/dist/granular/ui/components/Form/FormProvider.js +17 -0
  89. package/dist/granular/ui/components/Form/FormProvider.js.map +1 -0
  90. package/dist/granular/ui/components/Form/useFormFieldArray.js +29 -0
  91. package/dist/granular/ui/components/Form/useFormFieldArray.js.map +1 -0
  92. package/dist/granular/ui/components/FormWizardPattern/FormWizardPattern.js +121 -0
  93. package/dist/granular/ui/components/FormWizardPattern/FormWizardPattern.js.map +1 -0
  94. package/dist/granular/ui/components/Header/Header.js +98 -0
  95. package/dist/granular/ui/components/Header/Header.js.map +1 -0
  96. package/dist/granular/ui/components/Header/components/HeaderActions.js +21 -0
  97. package/dist/granular/ui/components/Header/components/HeaderActions.js.map +1 -0
  98. package/dist/granular/ui/components/Header/components/HeaderHamburger.js +31 -0
  99. package/dist/granular/ui/components/Header/components/HeaderHamburger.js.map +1 -0
  100. package/dist/granular/ui/components/Header/components/HeaderLogo.js +50 -0
  101. package/dist/granular/ui/components/Header/components/HeaderLogo.js.map +1 -0
  102. package/dist/granular/ui/components/Header/components/HeaderMobileMenu.js +38 -0
  103. package/dist/granular/ui/components/Header/components/HeaderMobileMenu.js.map +1 -0
  104. package/dist/granular/ui/components/Header/components/HeaderNavigation.js +27 -0
  105. package/dist/granular/ui/components/Header/components/HeaderNavigation.js.map +1 -0
  106. package/dist/granular/ui/components/Header/contexts/HeaderContext.js +49 -0
  107. package/dist/granular/ui/components/Header/contexts/HeaderContext.js.map +1 -0
  108. package/dist/granular/ui/components/LoginBox/LoginBox.js +84 -0
  109. package/dist/granular/ui/components/LoginBox/LoginBox.js.map +1 -0
  110. package/dist/granular/ui/components/Menu/Menu.js +45 -0
  111. package/dist/granular/ui/components/Menu/Menu.js.map +1 -0
  112. package/dist/granular/ui/components/Menu/MenuContent.js +94 -0
  113. package/dist/granular/ui/components/Menu/MenuContent.js.map +1 -0
  114. package/dist/granular/ui/components/Menu/MenuContext.js +21 -0
  115. package/dist/granular/ui/components/Menu/MenuContext.js.map +1 -0
  116. package/dist/granular/ui/components/Menu/MenuItem.js +93 -0
  117. package/dist/granular/ui/components/Menu/MenuItem.js.map +1 -0
  118. package/dist/granular/ui/components/Menu/MenuSeparator.js +46 -0
  119. package/dist/granular/ui/components/Menu/MenuSeparator.js.map +1 -0
  120. package/dist/granular/ui/components/Menu/MenuTrigger.js +71 -0
  121. package/dist/granular/ui/components/Menu/MenuTrigger.js.map +1 -0
  122. package/dist/granular/ui/components/Modal/Modal.js +171 -0
  123. package/dist/granular/ui/components/Modal/Modal.js.map +1 -0
  124. package/dist/granular/ui/components/MultiSelect/MultiSelect.js +193 -0
  125. package/dist/granular/ui/components/MultiSelect/MultiSelect.js.map +1 -0
  126. package/dist/granular/ui/components/Navigation/Navigation.js +141 -0
  127. package/dist/granular/ui/components/Navigation/Navigation.js.map +1 -0
  128. package/dist/granular/ui/components/PageHeader/PageHeader.js +95 -0
  129. package/dist/granular/ui/components/PageHeader/PageHeader.js.map +1 -0
  130. package/dist/granular/ui/components/Pagination/Pagination.js +156 -0
  131. package/dist/granular/ui/components/Pagination/Pagination.js.map +1 -0
  132. package/dist/granular/ui/components/Popover/Popover.js +171 -0
  133. package/dist/granular/ui/components/Popover/Popover.js.map +1 -0
  134. package/dist/granular/ui/components/Rating/Rating.js +110 -0
  135. package/dist/granular/ui/components/Rating/Rating.js.map +1 -0
  136. package/dist/granular/ui/components/SearchAndFilterPattern/SearchAndFilterPattern.js +120 -0
  137. package/dist/granular/ui/components/SearchAndFilterPattern/SearchAndFilterPattern.js.map +1 -0
  138. package/dist/granular/ui/components/SearchInput/SearchInput.js +103 -0
  139. package/dist/granular/ui/components/SearchInput/SearchInput.js.map +1 -0
  140. package/dist/granular/ui/components/SideNavbar/SideNavbar.js +143 -0
  141. package/dist/granular/ui/components/SideNavbar/SideNavbar.js.map +1 -0
  142. package/dist/granular/ui/components/SideNavbar/components/Navbar/Navbar.js +173 -0
  143. package/dist/granular/ui/components/SideNavbar/components/Navbar/Navbar.js.map +1 -0
  144. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarGroup.js +87 -0
  145. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarGroup.js.map +1 -0
  146. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarItem.js +242 -0
  147. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarItem.js.map +1 -0
  148. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarSeparator.js +66 -0
  149. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarSeparator.js.map +1 -0
  150. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarToggle.js +108 -0
  151. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarToggle.js.map +1 -0
  152. package/dist/granular/ui/components/SideNavbar/components/SideNavbarBackdrop.js +63 -0
  153. package/dist/granular/ui/components/SideNavbar/components/SideNavbarBackdrop.js.map +1 -0
  154. package/dist/granular/ui/components/SideNavbar/components/SideNavbarResizeHandle.js +113 -0
  155. package/dist/granular/ui/components/SideNavbar/components/SideNavbarResizeHandle.js.map +1 -0
  156. package/dist/granular/ui/components/SideNavbar/components/SideNavbarRoot.js +150 -0
  157. package/dist/granular/ui/components/SideNavbar/components/SideNavbarRoot.js.map +1 -0
  158. package/dist/granular/ui/components/SideNavbar/components/SideNavbarToggle.js +197 -0
  159. package/dist/granular/ui/components/SideNavbar/components/SideNavbarToggle.js.map +1 -0
  160. package/dist/granular/ui/components/SideNavbar/components/Sidebar/Sidebar.js +108 -0
  161. package/dist/granular/ui/components/SideNavbar/components/Sidebar/Sidebar.js.map +1 -0
  162. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarContent.js +71 -0
  163. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarContent.js.map +1 -0
  164. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarFooter.js +64 -0
  165. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarFooter.js.map +1 -0
  166. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarGroup.js +141 -0
  167. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarGroup.js.map +1 -0
  168. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarHeader.js +90 -0
  169. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarHeader.js.map +1 -0
  170. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlot.js +12 -0
  171. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlot.js.map +1 -0
  172. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlotContent.js +13 -0
  173. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlotContent.js.map +1 -0
  174. package/dist/granular/ui/components/SideNavbar/contexts/NavbarContext.js +20 -0
  175. package/dist/granular/ui/components/SideNavbar/contexts/NavbarContext.js.map +1 -0
  176. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarConfigContext.js +37 -0
  177. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarConfigContext.js.map +1 -0
  178. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarStateContext.js +20 -0
  179. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarStateContext.js.map +1 -0
  180. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarThemeContext.js +28 -0
  181. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarThemeContext.js.map +1 -0
  182. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarToggleContext.js +19 -0
  183. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarToggleContext.js.map +1 -0
  184. package/dist/granular/ui/components/SideNavbar/contexts/SidebarContext.js +20 -0
  185. package/dist/granular/ui/components/SideNavbar/contexts/SidebarContext.js.map +1 -0
  186. package/dist/granular/ui/components/SideNavbar/contexts/SidebarSlotContext.js +22 -0
  187. package/dist/granular/ui/components/SideNavbar/contexts/SidebarSlotContext.js.map +1 -0
  188. package/dist/granular/ui/components/SideNavbar/hooks/useFocusManagement.js +43 -0
  189. package/dist/granular/ui/components/SideNavbar/hooks/useFocusManagement.js.map +1 -0
  190. package/dist/granular/ui/components/SideNavbar/hooks/useGroupState.js +59 -0
  191. package/dist/granular/ui/components/SideNavbar/hooks/useGroupState.js.map +1 -0
  192. package/dist/granular/ui/components/SideNavbar/hooks/useKeyboardShortcut.js +34 -0
  193. package/dist/granular/ui/components/SideNavbar/hooks/useKeyboardShortcut.js.map +1 -0
  194. package/dist/granular/ui/components/SideNavbar/hooks/useResize.js +58 -0
  195. package/dist/granular/ui/components/SideNavbar/hooks/useResize.js.map +1 -0
  196. package/dist/granular/ui/components/SideNavbar/hooks/useResponsiveSidebar.js +35 -0
  197. package/dist/granular/ui/components/SideNavbar/hooks/useResponsiveSidebar.js.map +1 -0
  198. package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbar.js +21 -0
  199. package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbar.js.map +1 -0
  200. package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarContent.js +19 -0
  201. package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarContent.js.map +1 -0
  202. package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarNavigation.js +21 -0
  203. package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarNavigation.js.map +1 -0
  204. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarConfigProvider.js +61 -0
  205. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarConfigProvider.js.map +1 -0
  206. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarProvider.js +82 -0
  207. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarProvider.js.map +1 -0
  208. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarStateProvider.js +165 -0
  209. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarStateProvider.js.map +1 -0
  210. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarThemeProvider.js +34 -0
  211. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarThemeProvider.js.map +1 -0
  212. package/dist/granular/ui/components/SideNavbar/providers/SidebarSlotProvider.js +28 -0
  213. package/dist/granular/ui/components/SideNavbar/providers/SidebarSlotProvider.js.map +1 -0
  214. package/dist/granular/ui/components/SideNavbar/utils/parseKeyboardShortcut.js +60 -0
  215. package/dist/granular/ui/components/SideNavbar/utils/parseKeyboardShortcut.js.map +1 -0
  216. package/dist/granular/ui/components/SideNavbar/utils/parseWidth.js +19 -0
  217. package/dist/granular/ui/components/SideNavbar/utils/parseWidth.js.map +1 -0
  218. package/dist/granular/ui/components/Stat/Stat.js +84 -0
  219. package/dist/granular/ui/components/Stat/Stat.js.map +1 -0
  220. package/dist/granular/ui/components/Stat/StatGroup.js +61 -0
  221. package/dist/granular/ui/components/Stat/StatGroup.js.map +1 -0
  222. package/dist/granular/ui/components/Stepper/Stepper.js +248 -0
  223. package/dist/granular/ui/components/Stepper/Stepper.js.map +1 -0
  224. package/dist/granular/ui/components/Table/Table.js +162 -0
  225. package/dist/granular/ui/components/Table/Table.js.map +1 -0
  226. package/dist/granular/ui/components/Table/TableActions/TableActions.js +67 -0
  227. package/dist/granular/ui/components/Table/TableActions/TableActions.js.map +1 -0
  228. package/dist/granular/ui/components/Table/TableActions.js +44 -0
  229. package/dist/granular/ui/components/Table/TableActions.js.map +1 -0
  230. package/dist/granular/ui/components/Table/TableBody.js +134 -0
  231. package/dist/granular/ui/components/Table/TableBody.js.map +1 -0
  232. package/dist/granular/ui/components/Table/TableCell.js +40 -0
  233. package/dist/granular/ui/components/Table/TableCell.js.map +1 -0
  234. package/dist/granular/ui/components/Table/TableContext.js +19 -0
  235. package/dist/granular/ui/components/Table/TableContext.js.map +1 -0
  236. package/dist/granular/ui/components/Table/TableEmptyState.js +62 -0
  237. package/dist/granular/ui/components/Table/TableEmptyState.js.map +1 -0
  238. package/dist/granular/ui/components/Table/TableFilters/TableFilters.js +189 -0
  239. package/dist/granular/ui/components/Table/TableFilters/TableFilters.js.map +1 -0
  240. package/dist/granular/ui/components/Table/TableFilters.js +48 -0
  241. package/dist/granular/ui/components/Table/TableFilters.js.map +1 -0
  242. package/dist/granular/ui/components/Table/TableHeader.js +45 -0
  243. package/dist/granular/ui/components/Table/TableHeader.js.map +1 -0
  244. package/dist/granular/ui/components/Table/TableHeaderCell.js +117 -0
  245. package/dist/granular/ui/components/Table/TableHeaderCell.js.map +1 -0
  246. package/dist/granular/ui/components/Table/TableHeaderRow.js +89 -0
  247. package/dist/granular/ui/components/Table/TableHeaderRow.js.map +1 -0
  248. package/dist/granular/ui/components/Table/TablePagination/TablePagination.js +216 -0
  249. package/dist/granular/ui/components/Table/TablePagination/TablePagination.js.map +1 -0
  250. package/dist/granular/ui/components/Table/TablePagination.js +56 -0
  251. package/dist/granular/ui/components/Table/TablePagination.js.map +1 -0
  252. package/dist/granular/ui/components/Table/TableProvider.js +244 -0
  253. package/dist/granular/ui/components/Table/TableProvider.js.map +1 -0
  254. package/dist/granular/ui/components/Table/TableRow.js +95 -0
  255. package/dist/granular/ui/components/Table/TableRow.js.map +1 -0
  256. package/dist/granular/ui/components/Table/useColumnResizing.js +71 -0
  257. package/dist/granular/ui/components/Table/useColumnResizing.js.map +1 -0
  258. package/dist/granular/ui/components/Table/useVirtualScrolling.js +50 -0
  259. package/dist/granular/ui/components/Table/useVirtualScrolling.js.map +1 -0
  260. package/dist/granular/ui/components/Tabs/Tabs.js +39 -0
  261. package/dist/granular/ui/components/Tabs/Tabs.js.map +1 -0
  262. package/dist/granular/ui/components/Tabs/TabsContent.js +59 -0
  263. package/dist/granular/ui/components/Tabs/TabsContent.js.map +1 -0
  264. package/dist/granular/ui/components/Tabs/TabsContext.js +18 -0
  265. package/dist/granular/ui/components/Tabs/TabsContext.js.map +1 -0
  266. package/dist/granular/ui/components/Tabs/TabsList.js +84 -0
  267. package/dist/granular/ui/components/Tabs/TabsList.js.map +1 -0
  268. package/dist/granular/ui/components/Tabs/TabsProvider.js +31 -0
  269. package/dist/granular/ui/components/Tabs/TabsProvider.js.map +1 -0
  270. package/dist/granular/ui/components/Tabs/TabsTrigger.js +103 -0
  271. package/dist/granular/ui/components/Tabs/TabsTrigger.js.map +1 -0
  272. package/dist/granular/ui/components/TimePicker/TimePicker.js +216 -0
  273. package/dist/granular/ui/components/TimePicker/TimePicker.js.map +1 -0
  274. package/dist/granular/ui/components/Timeline/Timeline.js +152 -0
  275. package/dist/granular/ui/components/Timeline/Timeline.js.map +1 -0
  276. package/dist/granular/ui/components/Toast/Toast.js +159 -0
  277. package/dist/granular/ui/components/Toast/Toast.js.map +1 -0
  278. package/dist/granular/ui/components/Toast/ToastContainer.js +41 -0
  279. package/dist/granular/ui/components/Toast/ToastContainer.js.map +1 -0
  280. package/dist/granular/ui/components/Toast/useToast.js +64 -0
  281. package/dist/granular/ui/components/Toast/useToast.js.map +1 -0
  282. package/dist/granular/ui/hooks/createGenericContext.js +27 -0
  283. package/dist/granular/ui/hooks/createGenericContext.js.map +1 -0
  284. package/dist/granular/ui/hooks/focusable.js +14 -0
  285. package/dist/granular/ui/hooks/focusable.js.map +1 -0
  286. package/dist/granular/ui/hooks/useAutoFocus.js +23 -0
  287. package/dist/granular/ui/hooks/useAutoFocus.js.map +1 -0
  288. package/dist/granular/ui/hooks/useCollapsible.js +37 -0
  289. package/dist/granular/ui/hooks/useCollapsible.js.map +1 -0
  290. package/dist/granular/ui/hooks/useFocusRestore.js +20 -0
  291. package/dist/granular/ui/hooks/useFocusRestore.js.map +1 -0
  292. package/dist/granular/ui/hooks/useFocusTrap.js +31 -0
  293. package/dist/granular/ui/hooks/useFocusTrap.js.map +1 -0
  294. package/dist/granular/ui/hooks/useScrollSpy.js +23 -0
  295. package/dist/granular/ui/hooks/useScrollSpy.js.map +1 -0
  296. package/dist/granular/ui/layouts/Container/Container.js +73 -0
  297. package/dist/granular/ui/layouts/Container/Container.js.map +1 -0
  298. package/dist/granular/ui/layouts/Stack/Stack.js +79 -0
  299. package/dist/granular/ui/layouts/Stack/Stack.js.map +1 -0
  300. package/dist/granular/ui/primitives/Avatar/Avatar.js +122 -0
  301. package/dist/granular/ui/primitives/Avatar/Avatar.js.map +1 -0
  302. package/dist/granular/ui/primitives/Avatar/AvatarGroup.js +97 -0
  303. package/dist/granular/ui/primitives/Avatar/AvatarGroup.js.map +1 -0
  304. package/dist/granular/ui/primitives/Badge/Badge.js +212 -0
  305. package/dist/granular/ui/primitives/Badge/Badge.js.map +1 -0
  306. package/dist/granular/ui/primitives/Button/Button.js +288 -0
  307. package/dist/granular/ui/primitives/Button/Button.js.map +1 -0
  308. package/dist/granular/ui/primitives/Checkbox/Checkbox.js +129 -0
  309. package/dist/granular/ui/primitives/Checkbox/Checkbox.js.map +1 -0
  310. package/dist/granular/ui/primitives/Chip/Chip.js +206 -0
  311. package/dist/granular/ui/primitives/Chip/Chip.js.map +1 -0
  312. package/dist/granular/ui/primitives/Collapsible/Collapsible.js +115 -0
  313. package/dist/granular/ui/primitives/Collapsible/Collapsible.js.map +1 -0
  314. package/dist/granular/ui/primitives/ErrorMessage/ErrorMessage.js +54 -0
  315. package/dist/granular/ui/primitives/ErrorMessage/ErrorMessage.js.map +1 -0
  316. package/dist/granular/ui/primitives/Info/Info.js +57 -0
  317. package/dist/granular/ui/primitives/Info/Info.js.map +1 -0
  318. package/dist/granular/ui/primitives/Input/Input.js +351 -0
  319. package/dist/granular/ui/primitives/Input/Input.js.map +1 -0
  320. package/dist/granular/ui/primitives/Label/Label.js +61 -0
  321. package/dist/granular/ui/primitives/Label/Label.js.map +1 -0
  322. package/dist/granular/ui/primitives/NavLink/NavLink.js +229 -0
  323. package/dist/granular/ui/primitives/NavLink/NavLink.js.map +1 -0
  324. package/dist/granular/ui/primitives/NavLink/hooks/useNavLink.js +15 -0
  325. package/dist/granular/ui/primitives/NavLink/hooks/useNavLink.js.map +1 -0
  326. package/dist/granular/ui/primitives/Progress/Progress.js +182 -0
  327. package/dist/granular/ui/primitives/Progress/Progress.js.map +1 -0
  328. package/dist/granular/ui/primitives/Radio/Radio.js +118 -0
  329. package/dist/granular/ui/primitives/Radio/Radio.js.map +1 -0
  330. package/dist/granular/ui/primitives/Select/Select.js +210 -0
  331. package/dist/granular/ui/primitives/Select/Select.js.map +1 -0
  332. package/dist/granular/ui/primitives/Separator/Separator.js +69 -0
  333. package/dist/granular/ui/primitives/Separator/Separator.js.map +1 -0
  334. package/dist/granular/ui/primitives/Skeleton/Skeleton.js +87 -0
  335. package/dist/granular/ui/primitives/Skeleton/Skeleton.js.map +1 -0
  336. package/dist/granular/ui/primitives/Slider/Slider.js +291 -0
  337. package/dist/granular/ui/primitives/Slider/Slider.js.map +1 -0
  338. package/dist/granular/ui/primitives/Spinner/Spinner.js +95 -0
  339. package/dist/granular/ui/primitives/Spinner/Spinner.js.map +1 -0
  340. package/dist/granular/ui/primitives/Switch/Switch.js +212 -0
  341. package/dist/granular/ui/primitives/Switch/Switch.js.map +1 -0
  342. package/dist/granular/ui/primitives/Text/Text.js +118 -0
  343. package/dist/granular/ui/primitives/Text/Text.js.map +1 -0
  344. package/dist/granular/ui/primitives/Textarea/Textarea.js +129 -0
  345. package/dist/granular/ui/primitives/Textarea/Textarea.js.map +1 -0
  346. package/dist/granular/ui/primitives/Tooltip/Tooltip.js +227 -0
  347. package/dist/granular/ui/primitives/Tooltip/Tooltip.js.map +1 -0
  348. package/dist/granular/ui/providers/AppProvider.js +50 -0
  349. package/dist/granular/ui/providers/AppProvider.js.map +1 -0
  350. package/dist/granular/ui/providers/ConfigProvider.js +95 -0
  351. package/dist/granular/ui/providers/ConfigProvider.js.map +1 -0
  352. package/dist/granular/ui/providers/DialogContext.js +20 -0
  353. package/dist/granular/ui/providers/DialogContext.js.map +1 -0
  354. package/dist/granular/ui/providers/DialogProvider.js +32 -0
  355. package/dist/granular/ui/providers/DialogProvider.js.map +1 -0
  356. package/dist/granular/ui/providers/ThemeProvider.js +56 -0
  357. package/dist/granular/ui/providers/ThemeProvider.js.map +1 -0
  358. package/dist/granular/ui/providers/ToastContext.js +20 -0
  359. package/dist/granular/ui/providers/ToastContext.js.map +1 -0
  360. package/dist/granular/ui/providers/ToastProvider.js +47 -0
  361. package/dist/granular/ui/providers/ToastProvider.js.map +1 -0
  362. package/dist/granular/ui/providers/providers-bundle.js +23 -0
  363. package/dist/granular/ui/providers/providers-bundle.js.map +1 -0
  364. package/dist/granular/ui/tokens/animations.js +106 -0
  365. package/dist/granular/ui/tokens/animations.js.map +1 -0
  366. package/dist/granular/ui/tokens/borders.js +54 -0
  367. package/dist/granular/ui/tokens/borders.js.map +1 -0
  368. package/dist/granular/ui/tokens/breakpoints.js +43 -0
  369. package/dist/granular/ui/tokens/breakpoints.js.map +1 -0
  370. package/dist/granular/ui/tokens/colors/brand.js +67 -0
  371. package/dist/granular/ui/tokens/colors/brand.js.map +1 -0
  372. package/dist/granular/ui/tokens/colors/index.js +25 -0
  373. package/dist/granular/ui/tokens/colors/index.js.map +1 -0
  374. package/dist/granular/ui/tokens/colors/primitives.js +320 -0
  375. package/dist/granular/ui/tokens/colors/primitives.js.map +1 -0
  376. package/dist/granular/ui/tokens/colors/semantic.js +212 -0
  377. package/dist/granular/ui/tokens/colors/semantic.js.map +1 -0
  378. package/dist/granular/ui/tokens/colors/types.js +18 -0
  379. package/dist/granular/ui/tokens/colors/types.js.map +1 -0
  380. package/dist/granular/ui/tokens/colors/utils.js +131 -0
  381. package/dist/granular/ui/tokens/colors/utils.js.map +1 -0
  382. package/dist/granular/ui/tokens/opacity.js +59 -0
  383. package/dist/granular/ui/tokens/opacity.js.map +1 -0
  384. package/dist/granular/ui/tokens/radius.js +76 -0
  385. package/dist/granular/ui/tokens/radius.js.map +1 -0
  386. package/dist/granular/ui/tokens/shadows.js +63 -0
  387. package/dist/granular/ui/tokens/shadows.js.map +1 -0
  388. package/dist/granular/ui/tokens/sidebar.js +92 -0
  389. package/dist/granular/ui/tokens/sidebar.js.map +1 -0
  390. package/dist/granular/ui/tokens/spacing.js +143 -0
  391. package/dist/granular/ui/tokens/spacing.js.map +1 -0
  392. package/dist/granular/ui/tokens/switch.js +51 -0
  393. package/dist/granular/ui/tokens/switch.js.map +1 -0
  394. package/dist/granular/ui/tokens/typography.js +146 -0
  395. package/dist/granular/ui/tokens/typography.js.map +1 -0
  396. package/dist/granular/ui/tokens/z-index.js +79 -0
  397. package/dist/granular/ui/tokens/z-index.js.map +1 -0
  398. package/dist/granular/ui/utils/cn.js +10 -0
  399. package/dist/granular/ui/utils/cn.js.map +1 -0
  400. package/dist/granular/ui/utils/cva.js +14 -0
  401. package/dist/granular/ui/utils/cva.js.map +1 -0
  402. package/dist/granular/ui/utils/mergeRefs.js +11 -0
  403. package/dist/granular/ui/utils/mergeRefs.js.map +1 -0
  404. package/dist/granular/vite.svg +1 -0
  405. package/dist/index.cjs +46 -46
  406. package/dist/index.cjs.map +1 -1
  407. package/dist/index.js +1172 -1135
  408. package/dist/index.js.map +1 -1
  409. package/dist/react-design-system.css +1 -1
  410. package/dist/server/index.cjs +23 -23
  411. package/dist/server/index.cjs.map +1 -1
  412. package/dist/server/index.js +882 -1179
  413. package/dist/server/index.js.map +1 -1
  414. package/dist/ui/components/FilterChips/FilterChips.d.ts +83 -0
  415. package/dist/ui/components/FilterChips/index.d.ts +2 -0
  416. package/dist/ui/components/index.d.ts +2 -0
  417. package/dist/ui/server.d.ts +2 -0
  418. package/package.json +9 -2
@@ -0,0 +1,184 @@
1
+ "use client";
2
+ var _ = Object.defineProperty, q = Object.defineProperties;
3
+ var A = Object.getOwnPropertyDescriptors;
4
+ var g = Object.getOwnPropertySymbols;
5
+ var R = Object.prototype.hasOwnProperty, j = Object.prototype.propertyIsEnumerable;
6
+ var P = (r, o, e) => o in r ? _(r, o, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[o] = e, k = (r, o) => {
7
+ for (var e in o || (o = {}))
8
+ R.call(o, e) && P(r, e, o[e]);
9
+ if (g)
10
+ for (var e of g(o))
11
+ j.call(o, e) && P(r, e, o[e]);
12
+ return r;
13
+ }, F = (r, o) => q(r, A(o));
14
+ var h = (r, o) => {
15
+ var e = {};
16
+ for (var t in r)
17
+ R.call(r, t) && o.indexOf(t) < 0 && (e[t] = r[t]);
18
+ if (r != null && g)
19
+ for (var t of g(r))
20
+ o.indexOf(t) < 0 && j.call(r, t) && (e[t] = r[t]);
21
+ return e;
22
+ };
23
+ var z = (r, o, e) => new Promise((t, m) => {
24
+ var S = (s) => {
25
+ try {
26
+ f(e.next(s));
27
+ } catch (l) {
28
+ m(l);
29
+ }
30
+ }, a = (s) => {
31
+ try {
32
+ f(e.throw(s));
33
+ } catch (l) {
34
+ m(l);
35
+ }
36
+ }, f = (s) => s.done ? t(s.value) : Promise.resolve(s.value).then(S, a);
37
+ f((e = e.apply(r, o)).next());
38
+ });
39
+ import { jsx as c, jsxs as C } from "react/jsx-runtime";
40
+ import { FormProvider as B } from "./FormProvider.js";
41
+ import { cn as n } from "../../utils/cn.js";
42
+ import { getSpacingClass as b } from "../../tokens/spacing.js";
43
+ import { getRadiusClass as p } from "../../tokens/radius.js";
44
+ import { getTypographySizeFromFontSize as x } from "../../tokens/typography.js";
45
+ function X(f) {
46
+ var s = f, {
47
+ children: r,
48
+ onSubmit: o,
49
+ loading: e = !1,
50
+ error: t = null,
51
+ success: m = null,
52
+ className: S = ""
53
+ } = s, a = h(s, [
54
+ "children",
55
+ "onSubmit",
56
+ "loading",
57
+ "error",
58
+ "success",
59
+ "className"
60
+ ]);
61
+ const l = n(
62
+ b("lg", "gap"),
63
+ "flex",
64
+ "flex-col",
65
+ S
66
+ );
67
+ if ("form" in a && a.form !== void 0) {
68
+ const N = a, {
69
+ form: i,
70
+ onSubmit: H,
71
+ onSubmitError: d
72
+ } = N, V = h(N, [
73
+ "form",
74
+ "onSubmit",
75
+ "onSubmitError"
76
+ ]), w = i.handleSubmit(
77
+ (v) => z(null, null, function* () {
78
+ try {
79
+ yield H(v);
80
+ } catch (T) {
81
+ d == null || d(T);
82
+ }
83
+ }),
84
+ (v) => {
85
+ d == null || d(v);
86
+ }
87
+ );
88
+ return /* @__PURE__ */ c(B, { form: i, loading: e, children: /* @__PURE__ */ C(
89
+ "form",
90
+ F(k({
91
+ className: l,
92
+ onSubmit: w,
93
+ noValidate: !0
94
+ }, V), {
95
+ children: [
96
+ r,
97
+ t && /* @__PURE__ */ c(
98
+ "div",
99
+ {
100
+ role: "alert",
101
+ className: n(
102
+ b("md", "p"),
103
+ x("sm"),
104
+ "text-error-dark",
105
+ "bg-error-bg",
106
+ "border",
107
+ "border-error",
108
+ p("md")
109
+ ),
110
+ children: t
111
+ }
112
+ ),
113
+ m && /* @__PURE__ */ c(
114
+ "div",
115
+ {
116
+ role: "alert",
117
+ className: n(
118
+ b("md", "p"),
119
+ x("sm"),
120
+ "text-success-dark",
121
+ "bg-success-bg",
122
+ "border",
123
+ "border-success",
124
+ p("md")
125
+ ),
126
+ children: m
127
+ }
128
+ )
129
+ ]
130
+ })
131
+ ) });
132
+ }
133
+ const u = a.onSubmit || o, y = a, { onSubmit: I } = y, D = h(y, ["onSubmit"]);
134
+ return /* @__PURE__ */ C(
135
+ "form",
136
+ F(k({
137
+ className: l,
138
+ onSubmit: (i) => {
139
+ i.preventDefault(), u && !e && (u == null || u(i));
140
+ },
141
+ noValidate: !0
142
+ }, D), {
143
+ children: [
144
+ r,
145
+ t && /* @__PURE__ */ c(
146
+ "div",
147
+ {
148
+ role: "alert",
149
+ className: n(
150
+ b("md", "p"),
151
+ x("sm"),
152
+ "text-error-dark",
153
+ "bg-error-bg",
154
+ "border",
155
+ "border-error",
156
+ p("md")
157
+ ),
158
+ children: t
159
+ }
160
+ ),
161
+ m && /* @__PURE__ */ c(
162
+ "div",
163
+ {
164
+ role: "alert",
165
+ className: n(
166
+ b("md", "p"),
167
+ x("sm"),
168
+ "text-success-dark",
169
+ "bg-success-bg",
170
+ "border",
171
+ "border-success",
172
+ p("md")
173
+ ),
174
+ children: m
175
+ }
176
+ )
177
+ ]
178
+ })
179
+ );
180
+ }
181
+ export {
182
+ X as default
183
+ };
184
+ //# sourceMappingURL=Form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.js","sources":["../../../../../src/ui/components/Form/Form.tsx"],"sourcesContent":["\"use client\";\n\nimport type { FormHTMLAttributes, ReactNode } from \"react\";\nimport { FormProvider } from \"./FormProvider\";\nimport type { FieldValues, UseFormReturn } from \"react-hook-form\";\nimport { cn } from \"../../utils\";\nimport {\n getSpacingClass,\n getRadiusClass,\n getTypographySizeFromFontSize,\n} from \"../../tokens\";\n\n// Simple Form Props\ninterface SimpleFormProps extends FormHTMLAttributes<HTMLFormElement> {\n children: ReactNode;\n onSubmit?: (e: React.FormEvent<HTMLFormElement>) => void;\n loading?: boolean;\n error?: string | null;\n success?: string | null;\n form?: never; // Cannot use form prop in simple mode\n}\n\n// React Hook Form Props\ninterface ReactHookFormProps<\n TFieldValues extends FieldValues = FieldValues,\n> extends Omit<FormHTMLAttributes<HTMLFormElement>, \"onSubmit\"> {\n children: ReactNode;\n form: UseFormReturn<TFieldValues>;\n onSubmit: (data: TFieldValues) => void | Promise<void>;\n loading?: boolean;\n error?: string | null;\n success?: string | null;\n onSubmitError?: (errors: unknown) => void;\n}\n\ntype FormProps<TFieldValues extends FieldValues = FieldValues> =\n | SimpleFormProps\n | ReactHookFormProps<TFieldValues>;\n\n/**\n * Form Component\n *\n * A flexible form component that supports both simple forms and react-hook-form integration.\n *\n * @example\n * ```tsx\n * // Simple form\n * <Form onSubmit={handleSubmit} loading={isSubmitting}>\n * <Input name=\"email\" />\n * <Button type=\"submit\">Submit</Button>\n * </Form>\n *\n * // With react-hook-form\n * const form = useForm({ resolver: zodResolver(schema) });\n * <Form form={form} onSubmit={handleSubmit}>\n * <FormField name=\"email\">\n * {({ register, error }) => (\n * <>\n * <Input {...register('email')} />\n * {error && <ErrorMessage>{error}</ErrorMessage>}\n * </>\n * )}\n * </FormField>\n * </Form>\n * ```\n */\nexport default function Form<TFieldValues extends FieldValues = FieldValues>({\n children,\n onSubmit,\n loading = false,\n error = null,\n success = null,\n className = \"\",\n ...props\n}: FormProps<TFieldValues>) {\n const classes = cn(\n getSpacingClass(\"lg\", \"gap\"),\n \"flex\",\n \"flex-col\",\n className,\n );\n\n // Check if using react-hook-form\n const isReactHookForm = \"form\" in props && props.form !== undefined;\n\n if (isReactHookForm) {\n const {\n form,\n onSubmit: onSubmitData,\n onSubmitError,\n ...formProps\n } = props as ReactHookFormProps<TFieldValues>;\n\n const handleSubmit = form.handleSubmit(\n async (data) => {\n try {\n await onSubmitData(data);\n } catch (err) {\n onSubmitError?.(err);\n }\n },\n (errors) => {\n onSubmitError?.(errors);\n },\n );\n\n return (\n <FormProvider form={form} loading={loading}>\n <form\n className={classes}\n onSubmit={handleSubmit}\n noValidate\n {...formProps}\n >\n {children}\n {error && (\n <div\n role=\"alert\"\n className={cn(\n getSpacingClass(\"md\", \"p\"),\n getTypographySizeFromFontSize(\"sm\"),\n \"text-error-dark\",\n \"bg-error-bg\",\n \"border\",\n \"border-error\",\n getRadiusClass(\"md\"),\n )}\n >\n {error}\n </div>\n )}\n {success && (\n <div\n role=\"alert\"\n className={cn(\n getSpacingClass(\"md\", \"p\"),\n getTypographySizeFromFontSize(\"sm\"),\n \"text-success-dark\",\n \"bg-success-bg\",\n \"border\",\n \"border-success\",\n getRadiusClass(\"md\"),\n )}\n >\n {success}\n </div>\n )}\n </form>\n </FormProvider>\n );\n }\n\n // Simple form mode\n // Use onSubmit from props or from direct prop\n const onSubmitSimple = (props as SimpleFormProps).onSubmit || onSubmit;\n const { onSubmit: _, ...simpleProps } = props as SimpleFormProps;\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n if (onSubmitSimple && !loading) {\n // Narrow the union: we're in the !isReactHookForm branch, so\n // onSubmit takes a FormEvent. TS sees the union member's intersected\n // parameter type and can't prove it; the cast names the branch.\n (onSubmitSimple as SimpleFormProps[\"onSubmit\"])?.(e);\n }\n };\n\n return (\n <form\n className={classes}\n onSubmit={handleSubmit}\n noValidate\n {...simpleProps}\n >\n {children}\n {error && (\n <div\n role=\"alert\"\n className={cn(\n getSpacingClass(\"md\", \"p\"),\n getTypographySizeFromFontSize(\"sm\"),\n \"text-error-dark\",\n \"bg-error-bg\",\n \"border\",\n \"border-error\",\n getRadiusClass(\"md\"),\n )}\n >\n {error}\n </div>\n )}\n {success && (\n <div\n role=\"alert\"\n className={cn(\n getSpacingClass(\"md\", \"p\"),\n getTypographySizeFromFontSize(\"sm\"),\n \"text-success-dark\",\n \"bg-success-bg\",\n \"border\",\n \"border-success\",\n getRadiusClass(\"md\"),\n )}\n >\n {success}\n </div>\n )}\n </form>\n );\n}\n"],"names":["Form","_a","_b","children","onSubmit","loading","error","success","className","props","__objRest","classes","cn","getSpacingClass","form","onSubmitData","onSubmitError","formProps","handleSubmit","data","__async","err","errors","jsx","FormProvider","jsxs","__spreadProps","__spreadValues","getTypographySizeFromFontSize","getRadiusClass","onSubmitSimple","_","simpleProps","e"],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { createGenericContext as e } from "../../hooks/createGenericContext.js";
3
+ const t = e({
4
+ displayName: "FormContext",
5
+ errorMessage: "useFormContext must be used within a Form component with react-hook-form integration"
6
+ }), n = t.Context, r = t.Provider;
7
+ function i() {
8
+ return t.useContextRequired();
9
+ }
10
+ function m() {
11
+ return t.useContextOptional();
12
+ }
13
+ export {
14
+ n as FormContext,
15
+ r as FormContextProvider,
16
+ i as useFormContext,
17
+ m as useFormContextOptional
18
+ };
19
+ //# sourceMappingURL=FormContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormContext.js","sources":["../../../../../src/ui/components/Form/FormContext.tsx"],"sourcesContent":["\"use client\";\n\n/* eslint-disable react-refresh/only-export-components */\nimport type { FieldValues, UseFormReturn } from \"react-hook-form\";\nimport { createGenericContext } from \"../../hooks/createGenericContext\";\n\nexport interface FormContextValue<\n TFieldValues extends FieldValues = FieldValues,\n> {\n form?: UseFormReturn<TFieldValues>;\n loading?: boolean;\n}\n\nconst formContext = createGenericContext<FormContextValue>({\n displayName: \"FormContext\",\n errorMessage:\n \"useFormContext must be used within a Form component with react-hook-form integration\",\n});\n\n/**\n * Raw React Context object. Exposed so `useContextSelector(FormContext, …)`\n * keeps working. Prefer the typed hooks below for direct reads.\n */\nexport const FormContext = formContext.Context;\n\n/**\n * Internal Provider — consumed by `FormProvider.tsx` only. Not re-exported\n * from `Form/index.ts`; keeps the public surface unchanged.\n */\nexport const FormContextProvider = formContext.Provider;\n\n/**\n * Hook to access Form context.\n *\n * @throws Error if used outside of Form component with react-hook-form\n */\nexport function useFormContext<\n TFieldValues extends FieldValues = FieldValues,\n>(): FormContextValue<TFieldValues> {\n return formContext.useContextRequired<FormContextValue<TFieldValues>>();\n}\n\n/**\n * Hook to access Form context (optional, returns undefined if not in Form).\n */\nexport function useFormContextOptional<\n TFieldValues extends FieldValues = FieldValues,\n>(): FormContextValue<TFieldValues> | undefined {\n return formContext.useContextOptional<FormContextValue<TFieldValues>>();\n}\n"],"names":["formContext","createGenericContext","FormContext","FormContextProvider","useFormContext","useFormContextOptional"],"mappings":";;AAaA,MAAMA,IAAcC,EAAuC;AAAA,EACzD,aAAa;AAAA,EACb,cACE;AACJ,CAAC,GAMYC,IAAcF,EAAY,SAM1BG,IAAsBH,EAAY;AAOxC,SAASI,IAEoB;AAClC,SAAOJ,EAAY,mBAAA;AACrB;AAKO,SAASK,IAEgC;AAC9C,SAAOL,EAAY,mBAAA;AACrB;"}
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ import { jsxs as u, jsx as g } from "react/jsx-runtime";
3
+ import { useFormContext as d } from "./FormContext.js";
4
+ import x from "../../primitives/Label/Label.js";
5
+ import { cn as c } from "../../utils/cn.js";
6
+ import { getTypographyWeightFromFontWeight as w, getTypographySizeFromFontSize as y } from "../../tokens/typography.js";
7
+ import C from "../../primitives/ErrorMessage/ErrorMessage.js";
8
+ import { getSpacingClass as S } from "../../tokens/spacing.js";
9
+ function N({
10
+ name: r,
11
+ label: e,
12
+ children: a,
13
+ rules: t,
14
+ className: f = ""
15
+ }) {
16
+ var n;
17
+ const { form: i } = d();
18
+ if (!i)
19
+ throw new Error(
20
+ "FormField must be used within a Form component with react-hook-form integration"
21
+ );
22
+ const {
23
+ register: m,
24
+ formState: { errors: p },
25
+ watch: l
26
+ } = i, s = m(r, t), o = (n = p[r]) == null ? void 0 : n.message, h = l(r);
27
+ return /* @__PURE__ */ u(
28
+ "div",
29
+ {
30
+ className: c(
31
+ "flex",
32
+ "flex-col",
33
+ S("sm", "gap"),
34
+ f
35
+ ),
36
+ children: [
37
+ e && /* @__PURE__ */ g(
38
+ x,
39
+ {
40
+ htmlFor: r,
41
+ className: c(
42
+ "block",
43
+ y("sm"),
44
+ w("medium"),
45
+ "text-fg-primary"
46
+ ),
47
+ children: e
48
+ }
49
+ ),
50
+ a({
51
+ name: r,
52
+ register: (F) => m(F, t),
53
+ error: o,
54
+ value: h,
55
+ onChange: s.onChange,
56
+ onBlur: s.onBlur
57
+ }),
58
+ o && /* @__PURE__ */ g(C, { message: o })
59
+ ]
60
+ }
61
+ );
62
+ }
63
+ export {
64
+ N as FormField
65
+ };
66
+ //# sourceMappingURL=FormField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormField.js","sources":["../../../../../src/ui/components/Form/FormField.tsx"],"sourcesContent":["\"use client\";\n\nimport { useFormContext } from \"./FormContext\";\nimport { ErrorMessage, Label } from \"../../primitives\";\nimport { cn } from \"../../utils\";\nimport {\n getSpacingClass,\n getTypographySizeFromFontSize,\n getTypographyWeightFromFontWeight,\n} from \"../../tokens\";\nimport type { FieldValues, Path, RegisterOptions } from \"react-hook-form\";\nimport type { ReactNode } from \"react\";\nimport type { UseFormReturn } from \"react-hook-form\";\n\nexport interface FormFieldProps<\n TFieldValues extends FieldValues = FieldValues,\n> {\n name: Path<TFieldValues>;\n label?: string;\n children: (props: {\n name: string;\n register: (\n fieldName: Path<TFieldValues>,\n ) => ReturnType<UseFormReturn<TFieldValues>[\"register\"]>;\n error?: string;\n value?: unknown;\n onChange?: ReturnType<UseFormReturn<TFieldValues>[\"register\"]>[\"onChange\"];\n onBlur?: ReturnType<UseFormReturn<TFieldValues>[\"register\"]>[\"onBlur\"];\n }) => ReactNode;\n rules?: RegisterOptions<TFieldValues>;\n className?: string;\n}\n\n/**\n * FormField Component\n *\n * A wrapper component for form fields that integrates with react-hook-form.\n * Provides register, error, and validation state to children.\n *\n * @example\n * ```tsx\n * <FormField name=\"email\" label=\"Email\">\n * {({ register, error }) => (\n * <>\n * <Label htmlFor=\"email\">Email</Label>\n * <Input id=\"email\" {...register('email')} />\n * {error && <ErrorMessage>{error}</ErrorMessage>}\n * </>\n * )}\n * </FormField>\n * ```\n */\nexport function FormField<TFieldValues extends FieldValues = FieldValues>({\n name,\n label,\n children,\n rules,\n className = \"\",\n}: FormFieldProps<TFieldValues>) {\n const { form } = useFormContext<TFieldValues>();\n\n if (!form) {\n throw new Error(\n \"FormField must be used within a Form component with react-hook-form integration\",\n );\n }\n\n const {\n register,\n formState: { errors },\n watch,\n } = form;\n\n const fieldRegister = register(name, rules);\n const error = errors[name]?.message as string | undefined;\n const value = watch(name);\n\n return (\n <div\n className={cn(\n \"flex\",\n \"flex-col\",\n getSpacingClass(\"sm\", \"gap\"),\n className,\n )}\n >\n {label && (\n <Label\n htmlFor={name}\n className={cn(\n \"block\",\n getTypographySizeFromFontSize(\"sm\"),\n getTypographyWeightFromFontWeight(\"medium\"),\n \"text-fg-primary\",\n )}\n >\n {label}\n </Label>\n )}\n {children({\n name,\n register: (fieldName: Path<TFieldValues>) => register(fieldName, rules),\n error,\n value,\n onChange: fieldRegister.onChange,\n onBlur: fieldRegister.onBlur,\n })}\n {error && <ErrorMessage message={error} />}\n </div>\n );\n}\n"],"names":["FormField","name","label","children","rules","className","form","useFormContext","register","errors","watch","fieldRegister","error","_a","value","jsxs","cn","getSpacingClass","jsx","Label","getTypographySizeFromFontSize","getTypographyWeightFromFontWeight","fieldName","ErrorMessage"],"mappings":";;;;;;;;AAoDO,SAASA,EAA0D;AAAA,EACxE,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAiC;;AAC/B,QAAM,EAAE,MAAAC,EAAA,IAASC,EAAA;AAEjB,MAAI,CAACD;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAIJ,QAAM;AAAA,IACJ,UAAAE;AAAA,IACA,WAAW,EAAE,QAAAC,EAAA;AAAA,IACb,OAAAC;AAAA,EAAA,IACEJ,GAEEK,IAAgBH,EAASP,GAAMG,CAAK,GACpCQ,KAAQC,IAAAJ,EAAOR,CAAI,MAAX,gBAAAY,EAAc,SACtBC,IAAQJ,EAAMT,CAAI;AAExB,SACE,gBAAAc;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,QACAC,EAAgB,MAAM,KAAK;AAAA,QAC3BZ;AAAA,MAAA;AAAA,MAGD,UAAA;AAAA,QAAAH,KACC,gBAAAgB;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,SAASlB;AAAA,YACT,WAAWe;AAAA,cACT;AAAA,cACAI,EAA8B,IAAI;AAAA,cAClCC,EAAkC,QAAQ;AAAA,cAC1C;AAAA,YAAA;AAAA,YAGD,UAAAnB;AAAA,UAAA;AAAA,QAAA;AAAA,QAGJC,EAAS;AAAA,UACR,MAAAF;AAAA,UACA,UAAU,CAACqB,MAAkCd,EAASc,GAAWlB,CAAK;AAAA,UACtE,OAAAQ;AAAA,UACA,OAAAE;AAAA,UACA,UAAUH,EAAc;AAAA,UACxB,QAAQA,EAAc;AAAA,QAAA,CACvB;AAAA,QACAC,KAAS,gBAAAM,EAACK,GAAA,EAAa,SAASX,EAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG9C;"}
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ import { FormContextProvider as n } from "./FormContext.js";
4
+ function c({
5
+ form: o,
6
+ loading: e = !1,
7
+ children: r
8
+ }) {
9
+ return /* @__PURE__ */ t(n, { value: {
10
+ form: o,
11
+ loading: e
12
+ }, children: r });
13
+ }
14
+ export {
15
+ c as FormProvider
16
+ };
17
+ //# sourceMappingURL=FormProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormProvider.js","sources":["../../../../../src/ui/components/Form/FormProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { FormContextProvider, type FormContextValue } from \"./FormContext\";\nimport type { ReactNode } from \"react\";\nimport type { FieldValues, UseFormReturn } from \"react-hook-form\";\n\nexport interface FormProviderProps<\n TFieldValues extends FieldValues = FieldValues,\n> {\n form?: UseFormReturn<TFieldValues>;\n loading?: boolean;\n children: ReactNode;\n}\n\n/**\n * FormProvider Component\n *\n * Provides react-hook-form context to form children.\n * Used internally by Form component when react-hook-form is integrated.\n */\nexport function FormProvider<TFieldValues extends FieldValues = FieldValues>({\n form,\n loading = false,\n children,\n}: FormProviderProps<TFieldValues>) {\n const contextValue: FormContextValue<TFieldValues> = {\n form,\n loading,\n };\n\n return (\n <FormContextProvider value={contextValue}>{children}</FormContextProvider>\n );\n}\n"],"names":["FormProvider","form","loading","children","jsx","FormContextProvider"],"mappings":";;;AAoBO,SAASA,EAA6D;AAAA,EAC3E,MAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,UAAAC;AACF,GAAoC;AAMlC,SACE,gBAAAC,EAACC,GAAA,EAAoB,OAN8B;AAAA,IACnD,MAAAJ;AAAA,IACA,SAAAC;AAAA,EAAA,GAI2C,UAAAC,EAAA,CAAS;AAExD;"}
@@ -0,0 +1,29 @@
1
+ "use client";
2
+ var u = Object.defineProperty, s = Object.defineProperties;
3
+ var c = Object.getOwnPropertyDescriptors;
4
+ var e = Object.getOwnPropertySymbols;
5
+ var F = Object.prototype.hasOwnProperty, a = Object.prototype.propertyIsEnumerable;
6
+ var n = (o, r, t) => r in o ? u(o, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[r] = t, i = (o, r) => {
7
+ for (var t in r || (r = {}))
8
+ F.call(r, t) && n(o, t, r[t]);
9
+ if (e)
10
+ for (var t of e(r))
11
+ a.call(r, t) && n(o, t, r[t]);
12
+ return o;
13
+ }, m = (o, r) => s(o, c(r));
14
+ import { useFormContext as f } from "./FormContext.js";
15
+ import { useFieldArray as l } from "react-hook-form";
16
+ function w(o) {
17
+ const { form: r } = f();
18
+ if (!r)
19
+ throw new Error(
20
+ "useFormFieldArray must be used within a Form component with react-hook-form integration"
21
+ );
22
+ return l(m(i({}, o), {
23
+ control: r.control
24
+ }));
25
+ }
26
+ export {
27
+ w as useFormFieldArray
28
+ };
29
+ //# sourceMappingURL=useFormFieldArray.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFormFieldArray.js","sources":["../../../../../src/ui/components/Form/useFormFieldArray.ts"],"sourcesContent":["\"use client\";\n\nimport { useFormContext } from \"./FormContext\";\nimport { useFieldArray } from \"react-hook-form\";\nimport type {\n ArrayPath,\n FieldValues,\n UseFieldArrayProps,\n} from \"react-hook-form\";\n\n/**\n * Hook for managing field arrays in forms\n *\n * Wrapper around react-hook-form's useFieldArray that integrates with Form context.\n *\n * @example\n * ```tsx\n * const { fields, append, remove } = useFormFieldArray({\n * name: 'items',\n * });\n *\n * return (\n * <>\n * {fields.map((field, index) => (\n * <div key={field.id}>\n * <FormField name={`items.${index}.name`}>\n * {({ register }) => <Input {...register(`items.${index}.name`)} />}\n * </FormField>\n * <Button onClick={() => remove(index)}>Remove</Button>\n * </div>\n * ))}\n * <Button onClick={() => append({ name: '' })}>Add Item</Button>\n * </>\n * );\n * ```\n */\nexport function useFormFieldArray<\n TFieldValues extends FieldValues = FieldValues,\n TFieldArrayName extends ArrayPath<TFieldValues> = ArrayPath<TFieldValues>,\n>(props: Omit<UseFieldArrayProps<TFieldValues, TFieldArrayName>, \"control\">) {\n const { form } = useFormContext<TFieldValues>();\n\n if (!form) {\n throw new Error(\n \"useFormFieldArray must be used within a Form component with react-hook-form integration\",\n );\n }\n\n return useFieldArray<TFieldValues, TFieldArrayName>({\n ...props,\n control: form.control,\n });\n}\n"],"names":["useFormFieldArray","props","form","useFormContext","useFieldArray","__spreadProps","__spreadValues"],"mappings":";;;;;;;;;;;;;;;AAoCO,SAASA,EAGdC,GAA2E;AAC3E,QAAM,EAAE,MAAAC,EAAA,IAASC,EAAA;AAEjB,MAAI,CAACD;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAIJ,SAAOE,EAA6CC,EAAAC,EAAA,IAC/CL,IAD+C;AAAA,IAElD,SAASC,EAAK;AAAA,EAAA,EACf;AACH;"}
@@ -0,0 +1,121 @@
1
+ "use client";
2
+ var E = Object.defineProperty, F = Object.defineProperties;
3
+ var P = Object.getOwnPropertyDescriptors;
4
+ var N = Object.getOwnPropertySymbols;
5
+ var V = Object.prototype.hasOwnProperty, W = Object.prototype.propertyIsEnumerable;
6
+ var v = (t, i, e) => i in t ? E(t, i, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[i] = e, p = (t, i) => {
7
+ for (var e in i || (i = {}))
8
+ V.call(i, e) && v(t, e, i[e]);
9
+ if (N)
10
+ for (var e of N(i))
11
+ W.call(i, e) && v(t, e, i[e]);
12
+ return t;
13
+ }, f = (t, i) => F(t, P(i));
14
+ var C = (t, i, e) => new Promise((S, r) => {
15
+ var c = (n) => {
16
+ try {
17
+ l(e.next(n));
18
+ } catch (s) {
19
+ r(s);
20
+ }
21
+ }, d = (n) => {
22
+ try {
23
+ l(e.throw(n));
24
+ } catch (s) {
25
+ r(s);
26
+ }
27
+ }, l = (n) => n.done ? S(n.value) : Promise.resolve(n.value).then(c, d);
28
+ l((e = e.apply(t, i)).next());
29
+ });
30
+ import { jsx as o, jsxs as h } from "react/jsx-runtime";
31
+ import { useState as b } from "react";
32
+ import { Container as _ } from "../../layouts/Container/Container.js";
33
+ import { Stack as $ } from "../../layouts/Stack/Stack.js";
34
+ import { getRadiusClass as z } from "../../tokens/radius.js";
35
+ import { getSpacingClass as u } from "../../tokens/spacing.js";
36
+ import B from "../Stepper/Stepper.js";
37
+ import { Button as k } from "../../primitives/Button/Button.js";
38
+ function K({
39
+ steps: t,
40
+ onComplete: i,
41
+ allowBackNavigation: e = !0,
42
+ showStepNumbers: S = !0
43
+ }) {
44
+ const [r, c] = b(0), [d, l] = b({}), [n, s] = b({}), w = () => C(null, null, function* () {
45
+ const a = t[r];
46
+ if (a.validate && !(yield a.validate())) {
47
+ s(f(p({}, n), { [r]: !0 }));
48
+ return;
49
+ }
50
+ s(f(p({}, n), { [r]: !1 })), a.onSubmit && (yield a.onSubmit(d)), r < t.length - 1 ? c(r + 1) : i && i(d);
51
+ }), y = () => {
52
+ r > 0 && e && (c(r - 1), s(f(p({}, n), { [r - 1]: !1 })));
53
+ }, j = (a) => {
54
+ e && a < r && c(a);
55
+ }, m = t[r], D = r === t.length - 1, x = n[r] === !0;
56
+ return /* @__PURE__ */ o(_, { maxWidth: "lg", paddingX: "base", paddingY: "lg", children: /* @__PURE__ */ h($, { spacing: "lg", children: [
57
+ /* @__PURE__ */ o(
58
+ B,
59
+ {
60
+ steps: t.map((a, g) => ({
61
+ id: a.id,
62
+ title: a.title,
63
+ content: a.content,
64
+ description: a.description,
65
+ status: g < r ? "completed" : g === r ? x ? "error" : "active" : "pending"
66
+ })),
67
+ currentStep: r,
68
+ onStepChange: j,
69
+ allowNavigation: e
70
+ }
71
+ ),
72
+ /* @__PURE__ */ o(
73
+ "div",
74
+ {
75
+ className: `bg-surface-base ${z("lg")} border ${u("lg", "p")}`,
76
+ children: /* @__PURE__ */ h($, { spacing: "md", children: [
77
+ /* @__PURE__ */ h("div", { children: [
78
+ /* @__PURE__ */ o("h2", { className: "text-2xl font-semibold", children: m.title }),
79
+ m.description && /* @__PURE__ */ o(
80
+ "p",
81
+ {
82
+ className: `text-fg-secondary ${u("xs", "mt")}`,
83
+ children: m.description
84
+ }
85
+ )
86
+ ] }),
87
+ x && /* @__PURE__ */ o(
88
+ "div",
89
+ {
90
+ className: `bg-error-bg border border-error-border rounded ${u("md", "p")}`,
91
+ children: /* @__PURE__ */ o("p", { className: "text-sm text-fg-error", children: "Please fix the errors before proceeding." })
92
+ }
93
+ ),
94
+ /* @__PURE__ */ o("div", { className: "min-h-48", children: m.fields }),
95
+ /* @__PURE__ */ h(
96
+ "div",
97
+ {
98
+ className: `flex justify-between ${u("base", "pt")} border-t`,
99
+ children: [
100
+ /* @__PURE__ */ o(
101
+ k,
102
+ {
103
+ variant: "outline",
104
+ onClick: y,
105
+ disabled: r === 0,
106
+ children: "Back"
107
+ }
108
+ ),
109
+ /* @__PURE__ */ o(k, { variant: "primary", onClick: w, children: D ? "Complete" : "Next" })
110
+ ]
111
+ }
112
+ )
113
+ ] })
114
+ }
115
+ )
116
+ ] }) });
117
+ }
118
+ export {
119
+ K as FormWizardPattern
120
+ };
121
+ //# sourceMappingURL=FormWizardPattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormWizardPattern.js","sources":["../../../../../src/ui/components/FormWizardPattern/FormWizardPattern.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { Stepper } from \"../../components\";\nimport { Container } from \"../../layouts/Container/Container\";\nimport { Stack } from \"../../layouts/Stack/Stack\";\nimport { Button } from \"../../primitives\";\nimport { getRadiusClass } from \"../../tokens/radius\";\nimport { getSpacingClass } from \"../../tokens/spacing\";\nimport type { StepperStep } from \"../../components\";\n\nexport interface FormWizardStep extends StepperStep {\n /**\n * Form fields for this step\n */\n fields: React.ReactNode;\n /**\n * Validation function for this step\n */\n validate?: () => boolean | Promise<boolean>;\n /**\n * Submit handler for this step\n */\n onSubmit?: (data: unknown) => void | Promise<void>;\n}\n\nexport interface FormWizardPatternProps {\n /**\n * Steps configuration\n */\n steps: FormWizardStep[];\n /**\n * Callback when wizard is completed\n */\n onComplete?: (data: Record<string, unknown>) => void;\n /**\n * Allow navigation to previous steps\n * @default true\n */\n allowBackNavigation?: boolean;\n /**\n * Show step numbers\n * @default true\n */\n showStepNumbers?: boolean;\n}\n\n/**\n * FormWizardPattern - A complete form wizard pattern combining Stepper and Form\n *\n * This pattern solves the common UX problem of multi-step forms with validation.\n * It combines Stepper for navigation and Form for data collection.\n *\n * @example\n * ```tsx\n * <FormWizardPattern\n * steps={steps}\n * onComplete={(data) => console.log(data)}\n * />\n * ```\n */\nexport function FormWizardPattern({\n steps,\n onComplete,\n allowBackNavigation = true,\n showStepNumbers: _showStepNumbers = true,\n}: FormWizardPatternProps) {\n const [currentStep, setCurrentStep] = useState(0);\n const [formData, _setFormData] = useState<Record<string, unknown>>({});\n const [errors, setErrors] = useState<Record<number, boolean>>({});\n\n const handleNext = async () => {\n const step = steps[currentStep];\n\n // Validate current step if validation function exists\n if (step.validate) {\n const isValid = await step.validate();\n if (!isValid) {\n setErrors({ ...errors, [currentStep]: true });\n return;\n }\n }\n\n // Clear error for current step\n setErrors({ ...errors, [currentStep]: false });\n\n // Submit current step if handler exists\n if (step.onSubmit) {\n await step.onSubmit(formData);\n }\n\n // Move to next step\n if (currentStep < steps.length - 1) {\n setCurrentStep(currentStep + 1);\n } else {\n // Wizard completed\n if (onComplete) {\n onComplete(formData);\n }\n }\n };\n\n const handleBack = () => {\n if (currentStep > 0 && allowBackNavigation) {\n setCurrentStep(currentStep - 1);\n // Clear error when going back\n setErrors({ ...errors, [currentStep - 1]: false });\n }\n };\n\n const handleStepClick = (stepIndex: number) => {\n if (allowBackNavigation && stepIndex < currentStep) {\n setCurrentStep(stepIndex);\n }\n };\n\n const currentStepData = steps[currentStep];\n const isLastStep = currentStep === steps.length - 1;\n const hasError = errors[currentStep] === true;\n\n return (\n <Container maxWidth=\"lg\" paddingX=\"base\" paddingY=\"lg\">\n <Stack spacing=\"lg\">\n {/* Stepper */}\n <Stepper\n steps={steps.map((step, index) => ({\n id: step.id,\n title: step.title,\n content: step.content,\n description: step.description,\n status:\n index < currentStep\n ? \"completed\"\n : index === currentStep\n ? hasError\n ? \"error\"\n : \"active\"\n : \"pending\",\n }))}\n currentStep={currentStep}\n onStepChange={handleStepClick}\n allowNavigation={allowBackNavigation}\n />\n\n {/* Form Content */}\n <div\n className={`bg-surface-base ${getRadiusClass(\"lg\")} border ${getSpacingClass(\"lg\", \"p\")}`}\n >\n <Stack spacing=\"md\">\n <div>\n <h2 className=\"text-2xl font-semibold\">\n {currentStepData.title}\n </h2>\n {currentStepData.description && (\n <p\n className={`text-fg-secondary ${getSpacingClass(\"xs\", \"mt\")}`}\n >\n {currentStepData.description}\n </p>\n )}\n </div>\n\n {hasError && (\n <div\n className={`bg-error-bg border border-error-border rounded ${getSpacingClass(\"md\", \"p\")}`}\n >\n <p className=\"text-sm text-fg-error\">\n Please fix the errors before proceeding.\n </p>\n </div>\n )}\n\n <div className=\"min-h-48\">{currentStepData.fields}</div>\n\n {/* Navigation Buttons */}\n <div\n className={`flex justify-between ${getSpacingClass(\"base\", \"pt\")} border-t`}\n >\n <Button\n variant=\"outline\"\n onClick={handleBack}\n disabled={currentStep === 0}\n >\n Back\n </Button>\n <Button variant=\"primary\" onClick={handleNext}>\n {isLastStep ? \"Complete\" : \"Next\"}\n </Button>\n </div>\n </Stack>\n </div>\n </Stack>\n </Container>\n );\n}\n"],"names":["FormWizardPattern","steps","onComplete","allowBackNavigation","_showStepNumbers","currentStep","setCurrentStep","useState","formData","_setFormData","errors","setErrors","handleNext","__async","step","__spreadProps","__spreadValues","handleBack","handleStepClick","stepIndex","currentStepData","isLastStep","hasError","jsx","Container","jsxs","Stack","Stepper","index","getRadiusClass","getSpacingClass","Button"],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ "use client";
2
+ var w = Object.defineProperty, x = Object.defineProperties;
3
+ var C = Object.getOwnPropertyDescriptors;
4
+ var n = Object.getOwnPropertySymbols;
5
+ var b = Object.prototype.hasOwnProperty, g = Object.prototype.propertyIsEnumerable;
6
+ var p = (e, r, a) => r in e ? w(e, r, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[r] = a, d = (e, r) => {
7
+ for (var a in r || (r = {}))
8
+ b.call(r, a) && p(e, a, r[a]);
9
+ if (n)
10
+ for (var a of n(r))
11
+ g.call(r, a) && p(e, a, r[a]);
12
+ return e;
13
+ }, m = (e, r) => x(e, C(r));
14
+ var v = (e, r) => {
15
+ var a = {};
16
+ for (var o in e)
17
+ b.call(e, o) && r.indexOf(o) < 0 && (a[o] = e[o]);
18
+ if (e != null && n)
19
+ for (var o of n(e))
20
+ r.indexOf(o) < 0 && g.call(e, o) && (a[o] = e[o]);
21
+ return a;
22
+ };
23
+ import { jsx as t } from "react/jsx-runtime";
24
+ import { HeaderProvider as h } from "./contexts/HeaderContext.js";
25
+ import { HeaderLogo as M } from "./components/HeaderLogo.js";
26
+ import { HeaderNavigation as N } from "./components/HeaderNavigation.js";
27
+ import { HeaderActions as j } from "./components/HeaderActions.js";
28
+ import { HeaderHamburger as k } from "./components/HeaderHamburger.js";
29
+ import { HeaderMobileMenu as y } from "./components/HeaderMobileMenu.js";
30
+ import { getShadowClass as A } from "../../tokens/shadows.js";
31
+ import { getSpacingClass as L } from "../../tokens/spacing.js";
32
+ import { getZIndexClass as S } from "../../tokens/z-index.js";
33
+ import { cn as s } from "../../utils/cn.js";
34
+ import { Container as V } from "../../layouts/Container/Container.js";
35
+ import { cva as $ } from "../../utils/cva.js";
36
+ const I = $(
37
+ // Base classes
38
+ s("w-full", "bg-surface-base", "transition-shadow", "transition-colors"),
39
+ {
40
+ variants: {
41
+ variant: {
42
+ default: "",
43
+ elevated: A("sm"),
44
+ bordered: s("border-b", "border-line-muted")
45
+ }
46
+ },
47
+ defaultVariants: {
48
+ variant: "default"
49
+ }
50
+ }
51
+ );
52
+ function i(P) {
53
+ var c = P, {
54
+ children: e,
55
+ variant: r = "default",
56
+ sticky: a = !1,
57
+ maxWidth: o = "full",
58
+ bare: H = !1,
59
+ className: l
60
+ } = c, f = v(c, [
61
+ "children",
62
+ "variant",
63
+ "sticky",
64
+ "maxWidth",
65
+ "bare",
66
+ "className"
67
+ ]);
68
+ const u = /* @__PURE__ */ t(
69
+ "div",
70
+ {
71
+ className: `flex items-center justify-between ${L("base", "gap")}`,
72
+ children: e
73
+ }
74
+ );
75
+ return H ? /* @__PURE__ */ t(h, { children: /* @__PURE__ */ t("div", m(d({ className: s(l) }, f), { children: u })) }) : /* @__PURE__ */ t(h, { children: /* @__PURE__ */ t(
76
+ "header",
77
+ m(d({
78
+ className: s(
79
+ I({ variant: r }),
80
+ a && `sticky top-0 ${S("sticky")}`,
81
+ a && "backdrop-blur-sm bg-surface-base/95",
82
+ l
83
+ )
84
+ }, f), {
85
+ children: /* @__PURE__ */ t(V, { maxWidth: o, paddingX: "base", paddingY: "sm", children: u })
86
+ })
87
+ ) });
88
+ }
89
+ i.Logo = M;
90
+ i.Navigation = N;
91
+ i.Actions = j;
92
+ i.Hamburger = k;
93
+ i.MobileMenu = y;
94
+ export {
95
+ i as Header,
96
+ i as default
97
+ };
98
+ //# sourceMappingURL=Header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.js","sources":["../../../../../src/ui/components/Header/Header.tsx"],"sourcesContent":["/**\n * Header Component\n *\n * Horizontal header component with logo, navigation, and actions slots.\n * Uses compound components pattern for maximum flexibility.\n *\n * @see EPIC-002: Header Component (Molecule)\n * @see RFC-003: Header Composition Pattern (APPROVED)\n * @see ADR-002: Header + SideNavbar Compatibility (ACCEPTED)\n */\n\n\"use client\";\n\nimport { HeaderProvider } from \"./contexts/HeaderContext\";\nimport { HeaderLogo } from \"./components/HeaderLogo\";\nimport { HeaderNavigation } from \"./components/HeaderNavigation\";\nimport { HeaderActions } from \"./components/HeaderActions\";\nimport { HeaderHamburger } from \"./components/HeaderHamburger\";\nimport { HeaderMobileMenu } from \"./components/HeaderMobileMenu\";\nimport { getShadowClass } from \"../../tokens/shadows\";\nimport { getSpacingClass } from \"../../tokens/spacing\";\nimport { getZIndexClass } from \"../../tokens/z-index\";\nimport type { HeaderProps } from \"./types\";\nimport { cn, cva } from \"../../utils\";\nimport { Container } from \"../../layouts\";\n\n/**\n * Header Variants using CVA\n * Type-safe variant system for Header component\n */\nconst headerVariants = cva(\n // Base classes\n cn(\"w-full\", \"bg-surface-base\", \"transition-shadow\", \"transition-colors\"),\n {\n variants: {\n variant: {\n default: \"\",\n elevated: getShadowClass(\"sm\"),\n bordered: cn(\"border-b\", \"border-line-muted\"),\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\n/**\n * Header Component\n *\n * Horizontal header with compound components pattern.\n *\n * @example\n * ```tsx\n * <Header>\n * <Header.Logo href=\"/\">MyApp</Header.Logo>\n * <Header.Navigation>\n * <NavLink href=\"/home\">Home</NavLink>\n * <NavLink href=\"/about\">About</NavLink>\n * </Header.Navigation>\n * <Header.Actions>\n * <Button>Sign In</Button>\n * </Header.Actions>\n * </Header>\n * ```\n */\nexport function Header({\n children,\n variant = \"default\",\n sticky = false,\n maxWidth = \"full\",\n bare = false,\n className,\n ...props\n}: HeaderProps) {\n const content = (\n <div\n className={`flex items-center justify-between ${getSpacingClass(\"base\", \"gap\")}`}\n >\n {/* Children are rendered here - compound components handle their own layout */}\n {children}\n </div>\n );\n\n // Bare mode: Just render content without header/Container wrapper\n // Useful when used inside DashboardLayout which provides the wrapper\n if (bare) {\n return (\n <HeaderProvider>\n <div className={cn(className)} {...props}>\n {content}\n </div>\n </HeaderProvider>\n );\n }\n\n // Normal mode: Create header element with Container\n return (\n <HeaderProvider>\n <header\n className={cn(\n headerVariants({ variant }),\n sticky && `sticky top-0 ${getZIndexClass(\"sticky\")}`,\n sticky && \"backdrop-blur-sm bg-surface-base/95\",\n className,\n )}\n {...props}\n >\n <Container maxWidth={maxWidth} paddingX=\"base\" paddingY=\"sm\">\n {content}\n </Container>\n </header>\n </HeaderProvider>\n );\n}\n\n// Compound Components\nHeader.Logo = HeaderLogo;\nHeader.Navigation = HeaderNavigation;\nHeader.Actions = HeaderActions;\nHeader.Hamburger = HeaderHamburger;\nHeader.MobileMenu = HeaderMobileMenu;\n\nexport default Header;\n"],"names":["headerVariants","cva","cn","getShadowClass","Header","_a","_b","children","variant","sticky","maxWidth","bare","className","props","__objRest","content","jsx","getSpacingClass","HeaderProvider","__spreadProps","__spreadValues","getZIndexClass","Container","HeaderLogo","HeaderNavigation","HeaderActions","HeaderHamburger","HeaderMobileMenu"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,MAAMA,IAAiBC;AAAA;AAAA,EAErBC,EAAG,UAAU,mBAAmB,qBAAqB,mBAAmB;AAAA,EACxE;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,UAAUC,EAAe,IAAI;AAAA,QAC7B,UAAUD,EAAG,YAAY,mBAAmB;AAAA,MAAA;AAAA,IAC9C;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAqBO,SAASE,EAAOC,GAQP;AARO,MAAAC,IAAAD,GACrB;AAAA,cAAAE;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,QAAAC,IAAS;AAAA,IACT,UAAAC,IAAW;AAAA,IACX,MAAAC,IAAO;AAAA,IACP,WAAAC;AAAA,MANqBN,GAOlBO,IAAAC,EAPkBR,GAOlB;AAAA,IANH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAMS,IACJ,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,qCAAqCC,EAAgB,QAAQ,KAAK,CAAC;AAAA,MAG7E,UAAAV;AAAA,IAAA;AAAA,EAAA;AAML,SAAII,IAEA,gBAAAK,EAACE,GAAA,EACC,UAAA,gBAAAF,EAAC,OAAAG,EAAAC,EAAA,EAAI,WAAWlB,EAAGU,CAAS,KAAOC,IAAlC,EACE,UAAAE,EAAA,EACH,GACF,sBAMDG,GAAA,EACC,UAAA,gBAAAF;AAAA,IAAC;AAAA,IAAAG,EAAAC,EAAA;AAAA,MACC,WAAWlB;AAAA,QACTF,EAAe,EAAE,SAAAQ,GAAS;AAAA,QAC1BC,KAAU,gBAAgBY,EAAe,QAAQ,CAAC;AAAA,QAClDZ,KAAU;AAAA,QACVG;AAAA,MAAA;AAAA,OAEEC,IAPL;AAAA,MASC,4BAACS,GAAA,EAAU,UAAAZ,GAAoB,UAAS,QAAO,UAAS,MACrD,UAAAK,EAAA,CACH;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;AAGAX,EAAO,OAAOmB;AACdnB,EAAO,aAAaoB;AACpBpB,EAAO,UAAUqB;AACjBrB,EAAO,YAAYsB;AACnBtB,EAAO,aAAauB;"}
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ import { getSpacingClass as i } from "../../../tokens/spacing.js";
4
+ import { cn as s } from "../../../utils/cn.js";
5
+ function c({ children: e, className: r }) {
6
+ return /* @__PURE__ */ t(
7
+ "div",
8
+ {
9
+ className: s(
10
+ "flex-shrink-0 flex items-center",
11
+ i("sm", "gap"),
12
+ r
13
+ ),
14
+ children: e
15
+ }
16
+ );
17
+ }
18
+ export {
19
+ c as HeaderActions
20
+ };
21
+ //# sourceMappingURL=HeaderActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderActions.js","sources":["../../../../../../src/ui/components/Header/components/HeaderActions.tsx"],"sourcesContent":["/**\n * HeaderActions Component\n *\n * Actions slot component for Header (typically buttons, user menu, etc.).\n *\n * @see EPIC-002: Header Component (Molecule)\n * @see RFC-003: Header Composition Pattern (APPROVED)\n */\n\n\"use client\";\n\nimport { type ReactNode } from \"react\";\nimport { cn } from \"../../../utils\";\nimport { getSpacingClass } from \"../../../tokens/spacing\";\n\nexport interface HeaderActionsProps {\n /**\n * Actions content (typically Button components)\n */\n children: ReactNode;\n\n /**\n * Additional CSS classes\n */\n className?: string;\n}\n\n/**\n * HeaderActions Component\n *\n * Actions slot for Header. Typically contains Button components or user menu.\n *\n * @example\n * ```tsx\n * <Header.Actions>\n * <Button variant=\"outline\">Sign In</Button>\n * <Button variant=\"primary\">Sign Up</Button>\n * </Header.Actions>\n * ```\n */\nexport function HeaderActions({ children, className }: HeaderActionsProps) {\n return (\n <div\n className={cn(\n \"flex-shrink-0 flex items-center\",\n getSpacingClass(\"sm\", \"gap\"),\n className,\n )}\n >\n {children}\n </div>\n );\n}\n"],"names":["HeaderActions","children","className","jsx","cn","getSpacingClass"],"mappings":";;;;AAwCO,SAASA,EAAc,EAAE,UAAAC,GAAU,WAAAC,KAAiC;AACzE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAC,EAAgB,MAAM,KAAK;AAAA,QAC3BH;AAAA,MAAA;AAAA,MAGD,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;"}