@fabio.caffarello/react-design-system 3.7.0 → 3.9.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 (419) hide show
  1. package/README.md +4 -2
  2. package/dist/granular/index.js +445 -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/Form/Form.js +184 -0
  81. package/dist/granular/ui/components/Form/Form.js.map +1 -0
  82. package/dist/granular/ui/components/Form/FormContext.js +19 -0
  83. package/dist/granular/ui/components/Form/FormContext.js.map +1 -0
  84. package/dist/granular/ui/components/Form/FormField.js +66 -0
  85. package/dist/granular/ui/components/Form/FormField.js.map +1 -0
  86. package/dist/granular/ui/components/Form/FormProvider.js +17 -0
  87. package/dist/granular/ui/components/Form/FormProvider.js.map +1 -0
  88. package/dist/granular/ui/components/Form/useFormFieldArray.js +29 -0
  89. package/dist/granular/ui/components/Form/useFormFieldArray.js.map +1 -0
  90. package/dist/granular/ui/components/FormWizardPattern/FormWizardPattern.js +121 -0
  91. package/dist/granular/ui/components/FormWizardPattern/FormWizardPattern.js.map +1 -0
  92. package/dist/granular/ui/components/Header/Header.js +98 -0
  93. package/dist/granular/ui/components/Header/Header.js.map +1 -0
  94. package/dist/granular/ui/components/Header/components/HeaderActions.js +21 -0
  95. package/dist/granular/ui/components/Header/components/HeaderActions.js.map +1 -0
  96. package/dist/granular/ui/components/Header/components/HeaderHamburger.js +31 -0
  97. package/dist/granular/ui/components/Header/components/HeaderHamburger.js.map +1 -0
  98. package/dist/granular/ui/components/Header/components/HeaderLogo.js +50 -0
  99. package/dist/granular/ui/components/Header/components/HeaderLogo.js.map +1 -0
  100. package/dist/granular/ui/components/Header/components/HeaderMobileMenu.js +38 -0
  101. package/dist/granular/ui/components/Header/components/HeaderMobileMenu.js.map +1 -0
  102. package/dist/granular/ui/components/Header/components/HeaderNavigation.js +27 -0
  103. package/dist/granular/ui/components/Header/components/HeaderNavigation.js.map +1 -0
  104. package/dist/granular/ui/components/Header/contexts/HeaderContext.js +49 -0
  105. package/dist/granular/ui/components/Header/contexts/HeaderContext.js.map +1 -0
  106. package/dist/granular/ui/components/LoginBox/LoginBox.js +84 -0
  107. package/dist/granular/ui/components/LoginBox/LoginBox.js.map +1 -0
  108. package/dist/granular/ui/components/Menu/Menu.js +45 -0
  109. package/dist/granular/ui/components/Menu/Menu.js.map +1 -0
  110. package/dist/granular/ui/components/Menu/MenuContent.js +94 -0
  111. package/dist/granular/ui/components/Menu/MenuContent.js.map +1 -0
  112. package/dist/granular/ui/components/Menu/MenuContext.js +21 -0
  113. package/dist/granular/ui/components/Menu/MenuContext.js.map +1 -0
  114. package/dist/granular/ui/components/Menu/MenuItem.js +93 -0
  115. package/dist/granular/ui/components/Menu/MenuItem.js.map +1 -0
  116. package/dist/granular/ui/components/Menu/MenuSeparator.js +46 -0
  117. package/dist/granular/ui/components/Menu/MenuSeparator.js.map +1 -0
  118. package/dist/granular/ui/components/Menu/MenuTrigger.js +71 -0
  119. package/dist/granular/ui/components/Menu/MenuTrigger.js.map +1 -0
  120. package/dist/granular/ui/components/Modal/Modal.js +171 -0
  121. package/dist/granular/ui/components/Modal/Modal.js.map +1 -0
  122. package/dist/granular/ui/components/MultiSelect/MultiSelect.js +193 -0
  123. package/dist/granular/ui/components/MultiSelect/MultiSelect.js.map +1 -0
  124. package/dist/granular/ui/components/Navigation/Navigation.js +141 -0
  125. package/dist/granular/ui/components/Navigation/Navigation.js.map +1 -0
  126. package/dist/granular/ui/components/PageHeader/PageHeader.js +95 -0
  127. package/dist/granular/ui/components/PageHeader/PageHeader.js.map +1 -0
  128. package/dist/granular/ui/components/Pagination/Pagination.js +156 -0
  129. package/dist/granular/ui/components/Pagination/Pagination.js.map +1 -0
  130. package/dist/granular/ui/components/Popover/Popover.js +171 -0
  131. package/dist/granular/ui/components/Popover/Popover.js.map +1 -0
  132. package/dist/granular/ui/components/Rating/Rating.js +110 -0
  133. package/dist/granular/ui/components/Rating/Rating.js.map +1 -0
  134. package/dist/granular/ui/components/SearchAndFilterPattern/SearchAndFilterPattern.js +120 -0
  135. package/dist/granular/ui/components/SearchAndFilterPattern/SearchAndFilterPattern.js.map +1 -0
  136. package/dist/granular/ui/components/SearchInput/SearchInput.js +103 -0
  137. package/dist/granular/ui/components/SearchInput/SearchInput.js.map +1 -0
  138. package/dist/granular/ui/components/SideNavbar/SideNavbar.js +143 -0
  139. package/dist/granular/ui/components/SideNavbar/SideNavbar.js.map +1 -0
  140. package/dist/granular/ui/components/SideNavbar/components/Navbar/Navbar.js +173 -0
  141. package/dist/granular/ui/components/SideNavbar/components/Navbar/Navbar.js.map +1 -0
  142. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarGroup.js +87 -0
  143. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarGroup.js.map +1 -0
  144. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarItem.js +242 -0
  145. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarItem.js.map +1 -0
  146. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarSeparator.js +66 -0
  147. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarSeparator.js.map +1 -0
  148. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarToggle.js +108 -0
  149. package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarToggle.js.map +1 -0
  150. package/dist/granular/ui/components/SideNavbar/components/SideNavbarBackdrop.js +63 -0
  151. package/dist/granular/ui/components/SideNavbar/components/SideNavbarBackdrop.js.map +1 -0
  152. package/dist/granular/ui/components/SideNavbar/components/SideNavbarResizeHandle.js +113 -0
  153. package/dist/granular/ui/components/SideNavbar/components/SideNavbarResizeHandle.js.map +1 -0
  154. package/dist/granular/ui/components/SideNavbar/components/SideNavbarRoot.js +150 -0
  155. package/dist/granular/ui/components/SideNavbar/components/SideNavbarRoot.js.map +1 -0
  156. package/dist/granular/ui/components/SideNavbar/components/SideNavbarToggle.js +197 -0
  157. package/dist/granular/ui/components/SideNavbar/components/SideNavbarToggle.js.map +1 -0
  158. package/dist/granular/ui/components/SideNavbar/components/Sidebar/Sidebar.js +108 -0
  159. package/dist/granular/ui/components/SideNavbar/components/Sidebar/Sidebar.js.map +1 -0
  160. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarContent.js +71 -0
  161. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarContent.js.map +1 -0
  162. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarFooter.js +64 -0
  163. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarFooter.js.map +1 -0
  164. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarGroup.js +141 -0
  165. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarGroup.js.map +1 -0
  166. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarHeader.js +90 -0
  167. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarHeader.js.map +1 -0
  168. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlot.js +12 -0
  169. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlot.js.map +1 -0
  170. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlotContent.js +13 -0
  171. package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlotContent.js.map +1 -0
  172. package/dist/granular/ui/components/SideNavbar/contexts/NavbarContext.js +20 -0
  173. package/dist/granular/ui/components/SideNavbar/contexts/NavbarContext.js.map +1 -0
  174. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarConfigContext.js +37 -0
  175. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarConfigContext.js.map +1 -0
  176. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarStateContext.js +20 -0
  177. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarStateContext.js.map +1 -0
  178. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarThemeContext.js +28 -0
  179. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarThemeContext.js.map +1 -0
  180. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarToggleContext.js +19 -0
  181. package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarToggleContext.js.map +1 -0
  182. package/dist/granular/ui/components/SideNavbar/contexts/SidebarContext.js +20 -0
  183. package/dist/granular/ui/components/SideNavbar/contexts/SidebarContext.js.map +1 -0
  184. package/dist/granular/ui/components/SideNavbar/contexts/SidebarSlotContext.js +22 -0
  185. package/dist/granular/ui/components/SideNavbar/contexts/SidebarSlotContext.js.map +1 -0
  186. package/dist/granular/ui/components/SideNavbar/hooks/useFocusManagement.js +43 -0
  187. package/dist/granular/ui/components/SideNavbar/hooks/useFocusManagement.js.map +1 -0
  188. package/dist/granular/ui/components/SideNavbar/hooks/useGroupState.js +59 -0
  189. package/dist/granular/ui/components/SideNavbar/hooks/useGroupState.js.map +1 -0
  190. package/dist/granular/ui/components/SideNavbar/hooks/useKeyboardShortcut.js +34 -0
  191. package/dist/granular/ui/components/SideNavbar/hooks/useKeyboardShortcut.js.map +1 -0
  192. package/dist/granular/ui/components/SideNavbar/hooks/useResize.js +58 -0
  193. package/dist/granular/ui/components/SideNavbar/hooks/useResize.js.map +1 -0
  194. package/dist/granular/ui/components/SideNavbar/hooks/useResponsiveSidebar.js +35 -0
  195. package/dist/granular/ui/components/SideNavbar/hooks/useResponsiveSidebar.js.map +1 -0
  196. package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbar.js +21 -0
  197. package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbar.js.map +1 -0
  198. package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarContent.js +19 -0
  199. package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarContent.js.map +1 -0
  200. package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarNavigation.js +21 -0
  201. package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarNavigation.js.map +1 -0
  202. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarConfigProvider.js +61 -0
  203. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarConfigProvider.js.map +1 -0
  204. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarProvider.js +82 -0
  205. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarProvider.js.map +1 -0
  206. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarStateProvider.js +165 -0
  207. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarStateProvider.js.map +1 -0
  208. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarThemeProvider.js +34 -0
  209. package/dist/granular/ui/components/SideNavbar/providers/SideNavbarThemeProvider.js.map +1 -0
  210. package/dist/granular/ui/components/SideNavbar/providers/SidebarSlotProvider.js +28 -0
  211. package/dist/granular/ui/components/SideNavbar/providers/SidebarSlotProvider.js.map +1 -0
  212. package/dist/granular/ui/components/SideNavbar/utils/parseKeyboardShortcut.js +60 -0
  213. package/dist/granular/ui/components/SideNavbar/utils/parseKeyboardShortcut.js.map +1 -0
  214. package/dist/granular/ui/components/SideNavbar/utils/parseWidth.js +19 -0
  215. package/dist/granular/ui/components/SideNavbar/utils/parseWidth.js.map +1 -0
  216. package/dist/granular/ui/components/Stat/Stat.js +84 -0
  217. package/dist/granular/ui/components/Stat/Stat.js.map +1 -0
  218. package/dist/granular/ui/components/Stat/StatGroup.js +61 -0
  219. package/dist/granular/ui/components/Stat/StatGroup.js.map +1 -0
  220. package/dist/granular/ui/components/Stepper/Stepper.js +248 -0
  221. package/dist/granular/ui/components/Stepper/Stepper.js.map +1 -0
  222. package/dist/granular/ui/components/Table/Table.js +162 -0
  223. package/dist/granular/ui/components/Table/Table.js.map +1 -0
  224. package/dist/granular/ui/components/Table/TableActions/TableActions.js +67 -0
  225. package/dist/granular/ui/components/Table/TableActions/TableActions.js.map +1 -0
  226. package/dist/granular/ui/components/Table/TableActions.js +44 -0
  227. package/dist/granular/ui/components/Table/TableActions.js.map +1 -0
  228. package/dist/granular/ui/components/Table/TableBody.js +134 -0
  229. package/dist/granular/ui/components/Table/TableBody.js.map +1 -0
  230. package/dist/granular/ui/components/Table/TableCell.js +40 -0
  231. package/dist/granular/ui/components/Table/TableCell.js.map +1 -0
  232. package/dist/granular/ui/components/Table/TableContext.js +19 -0
  233. package/dist/granular/ui/components/Table/TableContext.js.map +1 -0
  234. package/dist/granular/ui/components/Table/TableEmptyState.js +62 -0
  235. package/dist/granular/ui/components/Table/TableEmptyState.js.map +1 -0
  236. package/dist/granular/ui/components/Table/TableFilters/TableFilters.js +189 -0
  237. package/dist/granular/ui/components/Table/TableFilters/TableFilters.js.map +1 -0
  238. package/dist/granular/ui/components/Table/TableFilters.js +48 -0
  239. package/dist/granular/ui/components/Table/TableFilters.js.map +1 -0
  240. package/dist/granular/ui/components/Table/TableHeader.js +45 -0
  241. package/dist/granular/ui/components/Table/TableHeader.js.map +1 -0
  242. package/dist/granular/ui/components/Table/TableHeaderCell.js +117 -0
  243. package/dist/granular/ui/components/Table/TableHeaderCell.js.map +1 -0
  244. package/dist/granular/ui/components/Table/TableHeaderRow.js +89 -0
  245. package/dist/granular/ui/components/Table/TableHeaderRow.js.map +1 -0
  246. package/dist/granular/ui/components/Table/TablePagination/TablePagination.js +216 -0
  247. package/dist/granular/ui/components/Table/TablePagination/TablePagination.js.map +1 -0
  248. package/dist/granular/ui/components/Table/TablePagination.js +56 -0
  249. package/dist/granular/ui/components/Table/TablePagination.js.map +1 -0
  250. package/dist/granular/ui/components/Table/TableProvider.js +244 -0
  251. package/dist/granular/ui/components/Table/TableProvider.js.map +1 -0
  252. package/dist/granular/ui/components/Table/TableRow.js +95 -0
  253. package/dist/granular/ui/components/Table/TableRow.js.map +1 -0
  254. package/dist/granular/ui/components/Table/useColumnResizing.js +71 -0
  255. package/dist/granular/ui/components/Table/useColumnResizing.js.map +1 -0
  256. package/dist/granular/ui/components/Table/useVirtualScrolling.js +50 -0
  257. package/dist/granular/ui/components/Table/useVirtualScrolling.js.map +1 -0
  258. package/dist/granular/ui/components/Tabs/Tabs.js +39 -0
  259. package/dist/granular/ui/components/Tabs/Tabs.js.map +1 -0
  260. package/dist/granular/ui/components/Tabs/TabsContent.js +59 -0
  261. package/dist/granular/ui/components/Tabs/TabsContent.js.map +1 -0
  262. package/dist/granular/ui/components/Tabs/TabsContext.js +18 -0
  263. package/dist/granular/ui/components/Tabs/TabsContext.js.map +1 -0
  264. package/dist/granular/ui/components/Tabs/TabsList.js +84 -0
  265. package/dist/granular/ui/components/Tabs/TabsList.js.map +1 -0
  266. package/dist/granular/ui/components/Tabs/TabsProvider.js +31 -0
  267. package/dist/granular/ui/components/Tabs/TabsProvider.js.map +1 -0
  268. package/dist/granular/ui/components/Tabs/TabsTrigger.js +103 -0
  269. package/dist/granular/ui/components/Tabs/TabsTrigger.js.map +1 -0
  270. package/dist/granular/ui/components/TimePicker/TimePicker.js +216 -0
  271. package/dist/granular/ui/components/TimePicker/TimePicker.js.map +1 -0
  272. package/dist/granular/ui/components/Timeline/Timeline.js +152 -0
  273. package/dist/granular/ui/components/Timeline/Timeline.js.map +1 -0
  274. package/dist/granular/ui/components/Toast/Toast.js +159 -0
  275. package/dist/granular/ui/components/Toast/Toast.js.map +1 -0
  276. package/dist/granular/ui/components/Toast/ToastContainer.js +41 -0
  277. package/dist/granular/ui/components/Toast/ToastContainer.js.map +1 -0
  278. package/dist/granular/ui/components/Toast/useToast.js +64 -0
  279. package/dist/granular/ui/components/Toast/useToast.js.map +1 -0
  280. package/dist/granular/ui/hooks/createGenericContext.js +27 -0
  281. package/dist/granular/ui/hooks/createGenericContext.js.map +1 -0
  282. package/dist/granular/ui/hooks/focusable.js +14 -0
  283. package/dist/granular/ui/hooks/focusable.js.map +1 -0
  284. package/dist/granular/ui/hooks/useAutoFocus.js +23 -0
  285. package/dist/granular/ui/hooks/useAutoFocus.js.map +1 -0
  286. package/dist/granular/ui/hooks/useCollapsible.js +37 -0
  287. package/dist/granular/ui/hooks/useCollapsible.js.map +1 -0
  288. package/dist/granular/ui/hooks/useFocusRestore.js +20 -0
  289. package/dist/granular/ui/hooks/useFocusRestore.js.map +1 -0
  290. package/dist/granular/ui/hooks/useFocusTrap.js +31 -0
  291. package/dist/granular/ui/hooks/useFocusTrap.js.map +1 -0
  292. package/dist/granular/ui/hooks/useScrollSpy.js +23 -0
  293. package/dist/granular/ui/hooks/useScrollSpy.js.map +1 -0
  294. package/dist/granular/ui/layouts/Container/Container.js +73 -0
  295. package/dist/granular/ui/layouts/Container/Container.js.map +1 -0
  296. package/dist/granular/ui/layouts/Stack/Stack.js +79 -0
  297. package/dist/granular/ui/layouts/Stack/Stack.js.map +1 -0
  298. package/dist/granular/ui/primitives/Avatar/Avatar.js +122 -0
  299. package/dist/granular/ui/primitives/Avatar/Avatar.js.map +1 -0
  300. package/dist/granular/ui/primitives/Avatar/AvatarGroup.js +97 -0
  301. package/dist/granular/ui/primitives/Avatar/AvatarGroup.js.map +1 -0
  302. package/dist/granular/ui/primitives/Badge/Badge.js +212 -0
  303. package/dist/granular/ui/primitives/Badge/Badge.js.map +1 -0
  304. package/dist/granular/ui/primitives/Button/Button.js +288 -0
  305. package/dist/granular/ui/primitives/Button/Button.js.map +1 -0
  306. package/dist/granular/ui/primitives/Checkbox/Checkbox.js +129 -0
  307. package/dist/granular/ui/primitives/Checkbox/Checkbox.js.map +1 -0
  308. package/dist/granular/ui/primitives/Chip/Chip.js +206 -0
  309. package/dist/granular/ui/primitives/Chip/Chip.js.map +1 -0
  310. package/dist/granular/ui/primitives/Collapsible/Collapsible.js +115 -0
  311. package/dist/granular/ui/primitives/Collapsible/Collapsible.js.map +1 -0
  312. package/dist/granular/ui/primitives/ErrorMessage/ErrorMessage.js +54 -0
  313. package/dist/granular/ui/primitives/ErrorMessage/ErrorMessage.js.map +1 -0
  314. package/dist/granular/ui/primitives/Info/Info.js +57 -0
  315. package/dist/granular/ui/primitives/Info/Info.js.map +1 -0
  316. package/dist/granular/ui/primitives/Input/Input.js +351 -0
  317. package/dist/granular/ui/primitives/Input/Input.js.map +1 -0
  318. package/dist/granular/ui/primitives/Label/Label.js +61 -0
  319. package/dist/granular/ui/primitives/Label/Label.js.map +1 -0
  320. package/dist/granular/ui/primitives/NavLink/NavLink.js +229 -0
  321. package/dist/granular/ui/primitives/NavLink/NavLink.js.map +1 -0
  322. package/dist/granular/ui/primitives/NavLink/hooks/useNavLink.js +15 -0
  323. package/dist/granular/ui/primitives/NavLink/hooks/useNavLink.js.map +1 -0
  324. package/dist/granular/ui/primitives/Progress/Progress.js +182 -0
  325. package/dist/granular/ui/primitives/Progress/Progress.js.map +1 -0
  326. package/dist/granular/ui/primitives/Radio/Radio.js +118 -0
  327. package/dist/granular/ui/primitives/Radio/Radio.js.map +1 -0
  328. package/dist/granular/ui/primitives/Select/Select.js +210 -0
  329. package/dist/granular/ui/primitives/Select/Select.js.map +1 -0
  330. package/dist/granular/ui/primitives/Separator/Separator.js +69 -0
  331. package/dist/granular/ui/primitives/Separator/Separator.js.map +1 -0
  332. package/dist/granular/ui/primitives/Skeleton/Skeleton.js +87 -0
  333. package/dist/granular/ui/primitives/Skeleton/Skeleton.js.map +1 -0
  334. package/dist/granular/ui/primitives/Slider/Slider.js +291 -0
  335. package/dist/granular/ui/primitives/Slider/Slider.js.map +1 -0
  336. package/dist/granular/ui/primitives/Spinner/Spinner.js +95 -0
  337. package/dist/granular/ui/primitives/Spinner/Spinner.js.map +1 -0
  338. package/dist/granular/ui/primitives/Switch/Switch.js +212 -0
  339. package/dist/granular/ui/primitives/Switch/Switch.js.map +1 -0
  340. package/dist/granular/ui/primitives/Text/Text.js +118 -0
  341. package/dist/granular/ui/primitives/Text/Text.js.map +1 -0
  342. package/dist/granular/ui/primitives/Textarea/Textarea.js +129 -0
  343. package/dist/granular/ui/primitives/Textarea/Textarea.js.map +1 -0
  344. package/dist/granular/ui/primitives/Tooltip/Tooltip.js +227 -0
  345. package/dist/granular/ui/primitives/Tooltip/Tooltip.js.map +1 -0
  346. package/dist/granular/ui/providers/AppProvider.js +50 -0
  347. package/dist/granular/ui/providers/AppProvider.js.map +1 -0
  348. package/dist/granular/ui/providers/ConfigProvider.js +95 -0
  349. package/dist/granular/ui/providers/ConfigProvider.js.map +1 -0
  350. package/dist/granular/ui/providers/DialogContext.js +20 -0
  351. package/dist/granular/ui/providers/DialogContext.js.map +1 -0
  352. package/dist/granular/ui/providers/DialogProvider.js +32 -0
  353. package/dist/granular/ui/providers/DialogProvider.js.map +1 -0
  354. package/dist/granular/ui/providers/ThemeProvider.js +56 -0
  355. package/dist/granular/ui/providers/ThemeProvider.js.map +1 -0
  356. package/dist/granular/ui/providers/ToastContext.js +20 -0
  357. package/dist/granular/ui/providers/ToastContext.js.map +1 -0
  358. package/dist/granular/ui/providers/ToastProvider.js +47 -0
  359. package/dist/granular/ui/providers/ToastProvider.js.map +1 -0
  360. package/dist/granular/ui/providers/providers-bundle.js +23 -0
  361. package/dist/granular/ui/providers/providers-bundle.js.map +1 -0
  362. package/dist/granular/ui/tokens/animations.js +106 -0
  363. package/dist/granular/ui/tokens/animations.js.map +1 -0
  364. package/dist/granular/ui/tokens/borders.js +54 -0
  365. package/dist/granular/ui/tokens/borders.js.map +1 -0
  366. package/dist/granular/ui/tokens/breakpoints.js +43 -0
  367. package/dist/granular/ui/tokens/breakpoints.js.map +1 -0
  368. package/dist/granular/ui/tokens/colors/brand.js +67 -0
  369. package/dist/granular/ui/tokens/colors/brand.js.map +1 -0
  370. package/dist/granular/ui/tokens/colors/index.js +25 -0
  371. package/dist/granular/ui/tokens/colors/index.js.map +1 -0
  372. package/dist/granular/ui/tokens/colors/primitives.js +320 -0
  373. package/dist/granular/ui/tokens/colors/primitives.js.map +1 -0
  374. package/dist/granular/ui/tokens/colors/semantic.js +212 -0
  375. package/dist/granular/ui/tokens/colors/semantic.js.map +1 -0
  376. package/dist/granular/ui/tokens/colors/types.js +18 -0
  377. package/dist/granular/ui/tokens/colors/types.js.map +1 -0
  378. package/dist/granular/ui/tokens/colors/utils.js +131 -0
  379. package/dist/granular/ui/tokens/colors/utils.js.map +1 -0
  380. package/dist/granular/ui/tokens/opacity.js +59 -0
  381. package/dist/granular/ui/tokens/opacity.js.map +1 -0
  382. package/dist/granular/ui/tokens/radius.js +76 -0
  383. package/dist/granular/ui/tokens/radius.js.map +1 -0
  384. package/dist/granular/ui/tokens/shadows.js +63 -0
  385. package/dist/granular/ui/tokens/shadows.js.map +1 -0
  386. package/dist/granular/ui/tokens/sidebar.js +92 -0
  387. package/dist/granular/ui/tokens/sidebar.js.map +1 -0
  388. package/dist/granular/ui/tokens/spacing.js +143 -0
  389. package/dist/granular/ui/tokens/spacing.js.map +1 -0
  390. package/dist/granular/ui/tokens/switch.js +51 -0
  391. package/dist/granular/ui/tokens/switch.js.map +1 -0
  392. package/dist/granular/ui/tokens/typography.js +146 -0
  393. package/dist/granular/ui/tokens/typography.js.map +1 -0
  394. package/dist/granular/ui/tokens/z-index.js +79 -0
  395. package/dist/granular/ui/tokens/z-index.js.map +1 -0
  396. package/dist/granular/ui/utils/cn.js +10 -0
  397. package/dist/granular/ui/utils/cn.js.map +1 -0
  398. package/dist/granular/ui/utils/cva.js +14 -0
  399. package/dist/granular/ui/utils/cva.js.map +1 -0
  400. package/dist/granular/ui/utils/mergeRefs.js +11 -0
  401. package/dist/granular/ui/utils/mergeRefs.js.map +1 -0
  402. package/dist/granular/vite.svg +1 -0
  403. package/dist/hooks/index.cjs +2 -0
  404. package/dist/hooks/index.cjs.map +1 -0
  405. package/dist/hooks/index.js +23 -0
  406. package/dist/hooks/index.js.map +1 -0
  407. package/dist/index.cjs +44 -70
  408. package/dist/index.cjs.map +1 -1
  409. package/dist/index.js +1900 -1885
  410. package/dist/index.js.map +1 -1
  411. package/dist/react-design-system.css +1 -1
  412. package/dist/server/index.cjs +23 -23
  413. package/dist/server/index.cjs.map +1 -1
  414. package/dist/server/index.js +863 -1180
  415. package/dist/server/index.js.map +1 -1
  416. package/dist/ui/components/Accordion/Accordion.d.ts +9 -1
  417. package/dist/ui/hooks-entry.d.ts +2 -0
  418. package/dist/ui/utils/tailwind-safelist.d.ts +3 -1
  419. package/package.json +24 -13
@@ -0,0 +1,102 @@
1
+ "use client";
2
+ var v = Object.defineProperty, T = Object.defineProperties;
3
+ var C = Object.getOwnPropertyDescriptors;
4
+ var m = Object.getOwnPropertySymbols;
5
+ var h = Object.prototype.hasOwnProperty, d = Object.prototype.propertyIsEnumerable;
6
+ var n = (e, t, r) => t in e ? v(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, f = (e, t) => {
7
+ for (var r in t || (t = {}))
8
+ h.call(t, r) && n(e, r, t[r]);
9
+ if (m)
10
+ for (var r of m(t))
11
+ d.call(t, r) && n(e, r, t[r]);
12
+ return e;
13
+ }, x = (e, t) => T(e, C(t));
14
+ var y = (e, t) => {
15
+ var r = {};
16
+ for (var s in e)
17
+ h.call(e, s) && t.indexOf(s) < 0 && (r[s] = e[s]);
18
+ if (e != null && m)
19
+ for (var s of m(e))
20
+ t.indexOf(s) < 0 && d.call(e, s) && (r[s] = e[s]);
21
+ return r;
22
+ };
23
+ import { jsxs as F, jsx as i } from "react/jsx-runtime";
24
+ import { cn as o } from "../../utils/cn.js";
25
+ import { getSpacingClass as a } from "../../tokens/spacing.js";
26
+ import g from "../../primitives/Text/Text.js";
27
+ import { getTypographyWeightFromFontWeight as I, getTypographySize as u } from "../../tokens/typography.js";
28
+ import { Button as W } from "../../primitives/Button/Button.js";
29
+ function G($) {
30
+ var p = $, {
31
+ title: e,
32
+ message: t,
33
+ actionLabel: r,
34
+ onAction: s,
35
+ illustration: l,
36
+ variant: c = "default",
37
+ className: b = ""
38
+ } = p, w = y(p, [
39
+ "title",
40
+ "message",
41
+ "actionLabel",
42
+ "onAction",
43
+ "illustration",
44
+ "variant",
45
+ "className"
46
+ ]);
47
+ const N = o(
48
+ "flex",
49
+ "flex-col",
50
+ "items-center",
51
+ "justify-center",
52
+ "text-center",
53
+ a("xl", "py"),
54
+ a("base", "px"),
55
+ b
56
+ ), S = c === "withAction" || r && s, j = c === "withIllustration" || l;
57
+ return /* @__PURE__ */ F(
58
+ "div",
59
+ x(f({
60
+ className: N,
61
+ role: "status",
62
+ "aria-live": "polite",
63
+ "aria-label": `${e}. ${t}`
64
+ }, w), {
65
+ children: [
66
+ j && l && /* @__PURE__ */ i("div", { className: o(a("base", "mb")), "aria-hidden": "true", children: l }),
67
+ /* @__PURE__ */ i(
68
+ g,
69
+ {
70
+ as: "h3",
71
+ className: o(
72
+ u("h4"),
73
+ I("semibold"),
74
+ "text-fg-primary",
75
+ a("sm", "mb")
76
+ ),
77
+ children: e
78
+ }
79
+ ),
80
+ /* @__PURE__ */ i(
81
+ g,
82
+ {
83
+ as: "p",
84
+ className: o(
85
+ u("bodySmall"),
86
+ "text-fg-secondary",
87
+ a("md", "mb"),
88
+ "max-w-sm"
89
+ // Max width utility - justified as layout constraint
90
+ ),
91
+ children: t
92
+ }
93
+ ),
94
+ S && r && s && /* @__PURE__ */ i(W, { variant: "primary", onClick: s, children: r })
95
+ ]
96
+ })
97
+ );
98
+ }
99
+ export {
100
+ G as default
101
+ };
102
+ //# sourceMappingURL=EmptyState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.js","sources":["../../../../../src/ui/components/EmptyState/EmptyState.tsx"],"sourcesContent":["\"use client\";\n\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { Button } from \"../../primitives\";\nimport { Text } from \"../../primitives\";\nimport { cn } from \"../../utils\";\nimport {\n getSpacingClass,\n getTypographySize,\n getTypographyWeightFromFontWeight,\n} from \"../../tokens\";\n\nexport interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {\n title: string;\n message: string;\n actionLabel?: string;\n onAction?: () => void;\n illustration?: ReactNode;\n variant?: \"default\" | \"withAction\" | \"withIllustration\";\n}\n\n/**\n * EmptyState Component\n *\n * A component for displaying empty states when there's no content to show.\n * Follows Atomic Design principles as a Molecule component.\n *\n * @example\n * ```tsx\n * <EmptyState\n * title=\"No epics yet\"\n * message=\"Get started by creating your first epic\"\n * actionLabel=\"Create Epic\"\n * onAction={() => router.push('/epics/new')}\n * />\n * ```\n */\nexport default function EmptyState({\n title,\n message,\n actionLabel,\n onAction,\n illustration,\n variant = \"default\",\n className = \"\",\n ...props\n}: EmptyStateProps) {\n const classes = cn(\n \"flex\",\n \"flex-col\",\n \"items-center\",\n \"justify-center\",\n \"text-center\",\n getSpacingClass(\"xl\", \"py\"),\n getSpacingClass(\"base\", \"px\"),\n className,\n );\n\n const showAction = variant === \"withAction\" || (actionLabel && onAction);\n const showIllustration = variant === \"withIllustration\" || illustration;\n\n return (\n <div\n className={classes}\n role=\"status\"\n aria-live=\"polite\"\n aria-label={`${title}. ${message}`}\n {...props}\n >\n {showIllustration && illustration && (\n <div className={cn(getSpacingClass(\"base\", \"mb\"))} aria-hidden=\"true\">\n {illustration}\n </div>\n )}\n\n <Text\n as=\"h3\"\n className={cn(\n getTypographySize(\"h4\"),\n getTypographyWeightFromFontWeight(\"semibold\"),\n \"text-fg-primary\",\n getSpacingClass(\"sm\", \"mb\"),\n )}\n >\n {title}\n </Text>\n\n <Text\n as=\"p\"\n className={cn(\n getTypographySize(\"bodySmall\"),\n \"text-fg-secondary\",\n getSpacingClass(\"md\", \"mb\"),\n \"max-w-sm\", // Max width utility - justified as layout constraint\n )}\n >\n {message}\n </Text>\n\n {showAction && actionLabel && onAction && (\n <Button variant=\"primary\" onClick={onAction}>\n {actionLabel}\n </Button>\n )}\n </div>\n );\n}\n"],"names":["EmptyState","_a","_b","title","message","actionLabel","onAction","illustration","variant","className","props","__objRest","classes","cn","getSpacingClass","showAction","showIllustration","jsxs","__spreadProps","__spreadValues","jsx","Text","getTypographySize","getTypographyWeightFromFontWeight","Button"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,SAAwBA,EAAWC,GASf;AATe,MAAAC,IAAAD,GACjC;AAAA,WAAAE;AAAA,IACA,SAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,WAAAC,IAAY;AAAA,MAPqBP,GAQ9BQ,IAAAC,EAR8BT,GAQ9B;AAAA,IAPH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAMU,IAAUC;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAC,EAAgB,MAAM,IAAI;AAAA,IAC1BA,EAAgB,QAAQ,IAAI;AAAA,IAC5BL;AAAA,EAAA,GAGIM,IAAaP,MAAY,gBAAiBH,KAAeC,GACzDU,IAAmBR,MAAY,sBAAsBD;AAE3D,SACE,gBAAAU;AAAA,IAAC;AAAA,IAAAC,EAAAC,EAAA;AAAA,MACC,WAAWP;AAAA,MACX,MAAK;AAAA,MACL,aAAU;AAAA,MACV,cAAY,GAAGT,CAAK,KAAKC,CAAO;AAAA,OAC5BM,IALL;AAAA,MAOE,UAAA;AAAA,QAAAM,KAAoBT,KACnB,gBAAAa,EAAC,OAAA,EAAI,WAAWP,EAAGC,EAAgB,QAAQ,IAAI,CAAC,GAAG,eAAY,QAC5D,UAAAP,GACH;AAAA,QAGF,gBAAAa;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,IAAG;AAAA,YACH,WAAWR;AAAA,cACTS,EAAkB,IAAI;AAAA,cACtBC,EAAkC,UAAU;AAAA,cAC5C;AAAA,cACAT,EAAgB,MAAM,IAAI;AAAA,YAAA;AAAA,YAG3B,UAAAX;AAAA,UAAA;AAAA,QAAA;AAAA,QAGH,gBAAAiB;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,IAAG;AAAA,YACH,WAAWR;AAAA,cACTS,EAAkB,WAAW;AAAA,cAC7B;AAAA,cACAR,EAAgB,MAAM,IAAI;AAAA,cAC1B;AAAA;AAAA,YAAA;AAAA,YAGD,UAAAV;AAAA,UAAA;AAAA,QAAA;AAAA,QAGFW,KAAcV,KAAeC,KAC5B,gBAAAc,EAACI,KAAO,SAAQ,WAAU,SAASlB,GAChC,UAAAD,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,342 @@
1
+ "use client";
2
+ var _ = Object.defineProperty, P = Object.defineProperties;
3
+ var U = Object.getOwnPropertyDescriptors;
4
+ var T = Object.getOwnPropertySymbols;
5
+ var ee = Object.prototype.hasOwnProperty, re = Object.prototype.propertyIsEnumerable;
6
+ var W = (n, c, a) => c in n ? _(n, c, { enumerable: !0, configurable: !0, writable: !0, value: a }) : n[c] = a, C = (n, c) => {
7
+ for (var a in c || (c = {}))
8
+ ee.call(c, a) && W(n, a, c[a]);
9
+ if (T)
10
+ for (var a of T(c))
11
+ re.call(c, a) && W(n, a, c[a]);
12
+ return n;
13
+ }, O = (n, c) => P(n, U(c));
14
+ import { jsxs as l, jsx as t } from "react/jsx-runtime";
15
+ import { useState as S, useRef as se } from "react";
16
+ import { Upload as te, File as ae, AlertCircle as ce, CheckCircle2 as ne, X as oe } from "lucide-react";
17
+ import { Button as ie } from "../../primitives/Button/Button.js";
18
+ import le from "../../primitives/Progress/Progress.js";
19
+ import { cn as r } from "../../utils/cn.js";
20
+ import { getSpacingClass as o } from "../../tokens/spacing.js";
21
+ import { getTypographyWeightFromFontWeight as z, getTypographySizeFromFontSize as m } from "../../tokens/typography.js";
22
+ import { getAnimationClass as me } from "../../tokens/animations.js";
23
+ import { getRadiusClass as A } from "../../tokens/radius.js";
24
+ function De({
25
+ accept: n,
26
+ multiple: c = !1,
27
+ maxSize: a,
28
+ maxFiles: B,
29
+ onFilesChange: g,
30
+ onFileRemove: h,
31
+ showPreview: F = !0,
32
+ showProgress: x = !1,
33
+ disabled: d = !1,
34
+ className: E = "",
35
+ label: v,
36
+ description: N
37
+ }) {
38
+ const [p, y] = S([]), [b, D] = S(!1), u = se(null), w = (e) => {
39
+ if (e === 0) return "0 Bytes";
40
+ const s = 1024, i = ["Bytes", "KB", "MB", "GB"], f = Math.floor(Math.log(e) / Math.log(s));
41
+ return Math.round(e / Math.pow(s, f) * 100) / 100 + " " + i[f];
42
+ }, G = (e) => a && e.size > a ? `File size exceeds ${w(a)}` : null, $ = (e) => {
43
+ const s = Array.from(e), i = [];
44
+ return s.forEach((f) => {
45
+ const k = G(f), j = `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`, V = {
46
+ file: f,
47
+ id: j,
48
+ error: k != null ? k : void 0,
49
+ progress: x ? 0 : void 0
50
+ };
51
+ if (F && f.type.startsWith("image/")) {
52
+ const L = new FileReader();
53
+ L.onload = (Y) => {
54
+ y(
55
+ (Z) => Z.map(
56
+ (M) => {
57
+ var R;
58
+ return M.id === j ? O(C({}, M), { preview: (R = Y.target) == null ? void 0 : R.result }) : M;
59
+ }
60
+ )
61
+ );
62
+ }, L.readAsDataURL(f);
63
+ }
64
+ i.push(V);
65
+ }), i;
66
+ }, I = (e) => {
67
+ const s = c ? [...p, ...e] : e, i = B ? s.slice(0, B) : s;
68
+ y(i), g == null || g(i);
69
+ }, K = (e) => {
70
+ if (e.preventDefault(), D(!1), d) return;
71
+ const s = e.dataTransfer.files;
72
+ if (s.length > 0) {
73
+ const i = $(s);
74
+ I(i);
75
+ }
76
+ }, X = (e) => {
77
+ e.preventDefault(), d || D(!0);
78
+ }, q = (e) => {
79
+ e.preventDefault(), D(!1);
80
+ }, H = (e) => {
81
+ if (e.target.files && e.target.files.length > 0) {
82
+ const s = $(e.target.files);
83
+ I(s);
84
+ }
85
+ u.current && (u.current.value = "");
86
+ }, J = (e) => {
87
+ const s = p.filter((i) => i.id !== e);
88
+ y(s), g == null || g(s), h == null || h(e);
89
+ }, Q = () => {
90
+ var e;
91
+ d || (e = u.current) == null || e.click();
92
+ };
93
+ return /* @__PURE__ */ l(
94
+ "div",
95
+ {
96
+ className: r(
97
+ o("lg", "gap"),
98
+ "flex",
99
+ "flex-col",
100
+ E
101
+ ),
102
+ children: [
103
+ (v || N) && /* @__PURE__ */ l("div", { children: [
104
+ v && /* @__PURE__ */ t(
105
+ "label",
106
+ {
107
+ className: r(
108
+ "block",
109
+ m("sm"),
110
+ z("medium"),
111
+ "text-fg-primary",
112
+ o("xs", "mb")
113
+ ),
114
+ children: v
115
+ }
116
+ ),
117
+ N && /* @__PURE__ */ t(
118
+ "p",
119
+ {
120
+ className: r(
121
+ m("sm"),
122
+ "text-fg-secondary"
123
+ ),
124
+ children: N
125
+ }
126
+ )
127
+ ] }),
128
+ /* @__PURE__ */ l(
129
+ "div",
130
+ {
131
+ onDrop: K,
132
+ onDragOver: X,
133
+ onDragLeave: q,
134
+ onClick: Q,
135
+ className: r(
136
+ "relative",
137
+ "border-2",
138
+ "border-dashed",
139
+ b ? "border-line-brand" : "border-line-default",
140
+ A("lg"),
141
+ o("lg", "p"),
142
+ "text-center",
143
+ "cursor-pointer",
144
+ me("base"),
145
+ "focus:border-line-focus",
146
+ d ? "opacity-50 cursor-not-allowed" : r(
147
+ "hover:border-line-strong",
148
+ "focus:outline-none",
149
+ "focus:ring-2",
150
+ "focus:ring-offset-2"
151
+ )
152
+ ),
153
+ role: "button",
154
+ tabIndex: d ? -1 : 0,
155
+ "aria-label": "Upload files",
156
+ "aria-disabled": d,
157
+ children: [
158
+ /* @__PURE__ */ t(
159
+ "input",
160
+ {
161
+ ref: u,
162
+ type: "file",
163
+ accept: n,
164
+ multiple: c,
165
+ onChange: H,
166
+ disabled: d,
167
+ className: "hidden"
168
+ }
169
+ ),
170
+ /* @__PURE__ */ l(
171
+ "div",
172
+ {
173
+ className: r(
174
+ "flex",
175
+ "flex-col",
176
+ "items-center",
177
+ o("sm", "gap")
178
+ ),
179
+ children: [
180
+ /* @__PURE__ */ t(
181
+ te,
182
+ {
183
+ className: r(
184
+ "h-8",
185
+ "w-8",
186
+ b ? "text-fg-brand" : "text-fg-secondary"
187
+ )
188
+ }
189
+ ),
190
+ /* @__PURE__ */ l("div", { children: [
191
+ /* @__PURE__ */ t(
192
+ "span",
193
+ {
194
+ className: r(
195
+ m("sm"),
196
+ z("medium"),
197
+ "text-fg-primary"
198
+ ),
199
+ children: b ? "Drop files here" : "Click to upload or drag and drop"
200
+ }
201
+ ),
202
+ n && /* @__PURE__ */ l(
203
+ "p",
204
+ {
205
+ className: r(
206
+ m("xs"),
207
+ "text-fg-secondary",
208
+ o("xs", "mt")
209
+ ),
210
+ children: [
211
+ "Accepted: ",
212
+ n
213
+ ]
214
+ }
215
+ ),
216
+ a && /* @__PURE__ */ l(
217
+ "p",
218
+ {
219
+ className: r(
220
+ m("xs"),
221
+ "text-fg-secondary"
222
+ ),
223
+ children: [
224
+ "Max size: ",
225
+ w(a)
226
+ ]
227
+ }
228
+ )
229
+ ] })
230
+ ]
231
+ }
232
+ )
233
+ ]
234
+ }
235
+ ),
236
+ p.length > 0 && /* @__PURE__ */ t("div", { className: r("flex", "flex-col", o("sm", "gap")), children: p.map((e) => /* @__PURE__ */ l(
237
+ "div",
238
+ {
239
+ className: r(
240
+ "flex",
241
+ "items-center",
242
+ o("md", "gap"),
243
+ o("base", "p"),
244
+ "border",
245
+ "border-line-default",
246
+ A("md"),
247
+ e.error ? "bg-error-bg" : "bg-surface-muted"
248
+ ),
249
+ children: [
250
+ F && e.preview ? /* @__PURE__ */ t(
251
+ "img",
252
+ {
253
+ src: e.preview,
254
+ alt: e.file.name,
255
+ className: r(
256
+ "w-12",
257
+ "h-12",
258
+ "object-cover",
259
+ A("md")
260
+ )
261
+ }
262
+ ) : /* @__PURE__ */ t(ae, { className: r("h-8", "w-8", "text-fg-secondary") }),
263
+ /* @__PURE__ */ l("div", { className: r("flex-1", "min-w-0"), children: [
264
+ /* @__PURE__ */ t(
265
+ "p",
266
+ {
267
+ className: r(
268
+ m("sm"),
269
+ z("medium"),
270
+ "text-fg-primary",
271
+ "truncate"
272
+ ),
273
+ children: e.file.name
274
+ }
275
+ ),
276
+ /* @__PURE__ */ t(
277
+ "p",
278
+ {
279
+ className: r(
280
+ m("xs"),
281
+ "text-fg-secondary"
282
+ ),
283
+ children: w(e.file.size)
284
+ }
285
+ ),
286
+ e.error && /* @__PURE__ */ l(
287
+ "div",
288
+ {
289
+ className: r(
290
+ "flex",
291
+ "items-center",
292
+ o("xs", "gap"),
293
+ o("xs", "mt")
294
+ ),
295
+ children: [
296
+ /* @__PURE__ */ t(
297
+ ce,
298
+ {
299
+ className: r("h-3", "w-3", "text-fg-error")
300
+ }
301
+ ),
302
+ /* @__PURE__ */ t(
303
+ "span",
304
+ {
305
+ className: r(
306
+ m("xs"),
307
+ "text-fg-error"
308
+ ),
309
+ children: e.error
310
+ }
311
+ )
312
+ ]
313
+ }
314
+ ),
315
+ x && e.progress !== void 0 && /* @__PURE__ */ t("div", { className: r(o("sm", "mt")), children: /* @__PURE__ */ t(le, { value: e.progress, size: "sm" }) })
316
+ ] }),
317
+ !e.error && !x && /* @__PURE__ */ t(ne, { className: r("h-5", "w-5", "text-fg-success") }),
318
+ /* @__PURE__ */ t(
319
+ ie,
320
+ {
321
+ variant: "ghost",
322
+ size: "sm",
323
+ onClick: (s) => {
324
+ s.stopPropagation(), J(e.id);
325
+ },
326
+ className: `h-auto ${o("xs", "p")}`,
327
+ "aria-label": `Remove ${e.file.name}`,
328
+ children: /* @__PURE__ */ t(oe, { className: "h-4 w-4" })
329
+ }
330
+ )
331
+ ]
332
+ },
333
+ e.id
334
+ )) })
335
+ ]
336
+ }
337
+ );
338
+ }
339
+ export {
340
+ De as default
341
+ };
342
+ //# sourceMappingURL=FileUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUpload.js","sources":["../../../../../src/ui/components/FileUpload/FileUpload.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState, useRef, type DragEvent, type ChangeEvent } from \"react\";\nimport { Upload, X, File, CheckCircle2, AlertCircle } from \"lucide-react\";\nimport { cn } from \"../../utils\";\nimport {\n getSpacingClass,\n getRadiusClass,\n getAnimationClass,\n getTypographySizeFromFontSize,\n getTypographyWeightFromFontWeight,\n} from \"../../tokens\";\nimport Button from \"../../primitives/Button/Button\";\nimport Progress from \"../../primitives/Progress/Progress\";\n\nexport interface FileUploadFile {\n file: File;\n id: string;\n preview?: string;\n progress?: number;\n error?: string;\n}\n\nexport interface FileUploadProps {\n accept?: string;\n multiple?: boolean;\n maxSize?: number; // in bytes\n maxFiles?: number;\n onFilesChange?: (files: FileUploadFile[]) => void;\n onFileRemove?: (fileId: string) => void;\n showPreview?: boolean;\n showProgress?: boolean;\n disabled?: boolean;\n className?: string;\n label?: string;\n description?: string;\n}\n\n/**\n * FileUpload Component\n *\n * A file upload component with drag and drop, preview, validation, and progress.\n * Follows Atomic Design principles as a Molecule component.\n *\n * @example\n * ```tsx\n * <FileUpload\n * accept=\"image/*\"\n * maxSize={5 * 1024 * 1024} // 5MB\n * onFilesChange={(files) => console.log(files)}\n * />\n * ```\n */\nexport default function FileUpload({\n accept,\n multiple = false,\n maxSize,\n maxFiles,\n onFilesChange,\n onFileRemove,\n showPreview = true,\n showProgress = false,\n disabled = false,\n className = \"\",\n label,\n description,\n}: FileUploadProps) {\n const [files, setFiles] = useState<FileUploadFile[]>([]);\n const [isDragging, setIsDragging] = useState(false);\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const formatFileSize = (bytes: number): string => {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + \" \" + sizes[i];\n };\n\n const validateFile = (file: File): string | null => {\n if (maxSize && file.size > maxSize) {\n return `File size exceeds ${formatFileSize(maxSize)}`;\n }\n return null;\n };\n\n const processFiles = (fileList: FileList | File[]): FileUploadFile[] => {\n const fileArray = Array.from(fileList);\n const newFiles: FileUploadFile[] = [];\n\n fileArray.forEach((file) => {\n const error = validateFile(file);\n const fileId = `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;\n\n const fileUpload: FileUploadFile = {\n file,\n id: fileId,\n error: error ?? undefined,\n progress: showProgress ? 0 : undefined,\n };\n\n // Generate preview for images\n if (showPreview && file.type.startsWith(\"image/\")) {\n const reader = new FileReader();\n reader.onload = (e) => {\n setFiles((prev) =>\n prev.map((f) =>\n f.id === fileId\n ? { ...f, preview: e.target?.result as string }\n : f,\n ),\n );\n };\n reader.readAsDataURL(file);\n }\n\n newFiles.push(fileUpload);\n });\n\n return newFiles;\n };\n\n const handleFiles = (newFiles: FileUploadFile[]) => {\n const updatedFiles = multiple ? [...files, ...newFiles] : newFiles;\n const limitedFiles = maxFiles\n ? updatedFiles.slice(0, maxFiles)\n : updatedFiles;\n\n setFiles(limitedFiles);\n onFilesChange?.(limitedFiles);\n };\n\n const handleDrop = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n setIsDragging(false);\n\n if (disabled) return;\n\n const droppedFiles = e.dataTransfer.files;\n if (droppedFiles.length > 0) {\n const processedFiles = processFiles(droppedFiles);\n handleFiles(processedFiles);\n }\n };\n\n const handleDragOver = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n if (!disabled) {\n setIsDragging(true);\n }\n };\n\n const handleDragLeave = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n setIsDragging(false);\n };\n\n const handleFileInput = (e: ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0) {\n const processedFiles = processFiles(e.target.files);\n handleFiles(processedFiles);\n }\n // Reset input\n if (fileInputRef.current) {\n fileInputRef.current.value = \"\";\n }\n };\n\n const handleRemove = (fileId: string) => {\n const updatedFiles = files.filter((f) => f.id !== fileId);\n setFiles(updatedFiles);\n onFilesChange?.(updatedFiles);\n onFileRemove?.(fileId);\n };\n\n const handleClick = () => {\n if (!disabled) {\n fileInputRef.current?.click();\n }\n };\n\n return (\n <div\n className={cn(\n getSpacingClass(\"lg\", \"gap\"),\n \"flex\",\n \"flex-col\",\n className,\n )}\n >\n {(label || description) && (\n <div>\n {label && (\n <label\n className={cn(\n \"block\",\n getTypographySizeFromFontSize(\"sm\"),\n getTypographyWeightFromFontWeight(\"medium\"),\n \"text-fg-primary\",\n getSpacingClass(\"xs\", \"mb\"),\n )}\n >\n {label}\n </label>\n )}\n {description && (\n <p\n className={cn(\n getTypographySizeFromFontSize(\"sm\"),\n \"text-fg-secondary\",\n )}\n >\n {description}\n </p>\n )}\n </div>\n )}\n\n <div\n onDrop={handleDrop}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onClick={handleClick}\n className={cn(\n \"relative\",\n \"border-2\",\n \"border-dashed\",\n isDragging ? \"border-line-brand\" : \"border-line-default\",\n getRadiusClass(\"lg\"),\n getSpacingClass(\"lg\", \"p\"),\n \"text-center\",\n \"cursor-pointer\",\n getAnimationClass(\"base\"),\n \"focus:border-line-focus\",\n disabled\n ? \"opacity-50 cursor-not-allowed\"\n : cn(\n \"hover:border-line-strong\",\n \"focus:outline-none\",\n \"focus:ring-2\",\n \"focus:ring-offset-2\",\n ),\n )}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-label=\"Upload files\"\n aria-disabled={disabled}\n >\n <input\n ref={fileInputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleFileInput}\n disabled={disabled}\n className=\"hidden\"\n />\n\n <div\n className={cn(\n \"flex\",\n \"flex-col\",\n \"items-center\",\n getSpacingClass(\"sm\", \"gap\"),\n )}\n >\n <Upload\n className={cn(\n \"h-8\",\n \"w-8\",\n isDragging ? \"text-fg-brand\" : \"text-fg-secondary\",\n )}\n />\n <div>\n <span\n className={cn(\n getTypographySizeFromFontSize(\"sm\"),\n getTypographyWeightFromFontWeight(\"medium\"),\n \"text-fg-primary\",\n )}\n >\n {isDragging\n ? \"Drop files here\"\n : \"Click to upload or drag and drop\"}\n </span>\n {accept && (\n <p\n className={cn(\n getTypographySizeFromFontSize(\"xs\"),\n \"text-fg-secondary\",\n getSpacingClass(\"xs\", \"mt\"),\n )}\n >\n Accepted: {accept}\n </p>\n )}\n {maxSize && (\n <p\n className={cn(\n getTypographySizeFromFontSize(\"xs\"),\n \"text-fg-secondary\",\n )}\n >\n Max size: {formatFileSize(maxSize)}\n </p>\n )}\n </div>\n </div>\n </div>\n\n {files.length > 0 && (\n <div className={cn(\"flex\", \"flex-col\", getSpacingClass(\"sm\", \"gap\"))}>\n {files.map((fileUpload) => (\n <div\n key={fileUpload.id}\n className={cn(\n \"flex\",\n \"items-center\",\n getSpacingClass(\"md\", \"gap\"),\n getSpacingClass(\"base\", \"p\"),\n \"border\",\n \"border-line-default\",\n getRadiusClass(\"md\"),\n fileUpload.error ? \"bg-error-bg\" : \"bg-surface-muted\",\n )}\n >\n {showPreview && fileUpload.preview ? (\n <img\n src={fileUpload.preview}\n alt={fileUpload.file.name}\n className={cn(\n \"w-12\",\n \"h-12\",\n \"object-cover\",\n getRadiusClass(\"md\"),\n )}\n />\n ) : (\n <File className={cn(\"h-8\", \"w-8\", \"text-fg-secondary\")} />\n )}\n\n <div className={cn(\"flex-1\", \"min-w-0\")}>\n <p\n className={cn(\n getTypographySizeFromFontSize(\"sm\"),\n getTypographyWeightFromFontWeight(\"medium\"),\n \"text-fg-primary\",\n \"truncate\",\n )}\n >\n {fileUpload.file.name}\n </p>\n <p\n className={cn(\n getTypographySizeFromFontSize(\"xs\"),\n \"text-fg-secondary\",\n )}\n >\n {formatFileSize(fileUpload.file.size)}\n </p>\n {fileUpload.error && (\n <div\n className={cn(\n \"flex\",\n \"items-center\",\n getSpacingClass(\"xs\", \"gap\"),\n getSpacingClass(\"xs\", \"mt\"),\n )}\n >\n <AlertCircle\n className={cn(\"h-3\", \"w-3\", \"text-fg-error\")}\n />\n <span\n className={cn(\n getTypographySizeFromFontSize(\"xs\"),\n \"text-fg-error\",\n )}\n >\n {fileUpload.error}\n </span>\n </div>\n )}\n {showProgress && fileUpload.progress !== undefined && (\n <div className={cn(getSpacingClass(\"sm\", \"mt\"))}>\n <Progress value={fileUpload.progress} size=\"sm\" />\n </div>\n )}\n </div>\n\n {!fileUpload.error && !showProgress && (\n <CheckCircle2 className={cn(\"h-5\", \"w-5\", \"text-fg-success\")} />\n )}\n\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={(e) => {\n e.stopPropagation();\n handleRemove(fileUpload.id);\n }}\n className={`h-auto ${getSpacingClass(\"xs\", \"p\")}`}\n aria-label={`Remove ${fileUpload.file.name}`}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n}\n"],"names":["FileUpload","accept","multiple","maxSize","maxFiles","onFilesChange","onFileRemove","showPreview","showProgress","disabled","className","label","description","files","setFiles","useState","isDragging","setIsDragging","fileInputRef","useRef","formatFileSize","bytes","k","sizes","i","validateFile","file","processFiles","fileList","fileArray","newFiles","error","fileId","fileUpload","reader","e","prev","f","__spreadProps","__spreadValues","_a","handleFiles","updatedFiles","limitedFiles","handleDrop","droppedFiles","processedFiles","handleDragOver","handleDragLeave","handleFileInput","handleRemove","handleClick","jsxs","cn","getSpacingClass","jsx","getTypographySizeFromFontSize","getTypographyWeightFromFontWeight","getRadiusClass","getAnimationClass","Upload","File","AlertCircle","Progress","CheckCircle2","Button","X"],"mappings":"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"}
@@ -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