@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 @@
1
+ {"version":3,"file":"DatePickerInput.js","sources":["../../../../../src/ui/components/DatePicker/DatePickerInput.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState, useRef, useEffect, type HTMLAttributes } from \"react\";\nimport { Calendar } from \"lucide-react\";\nimport { useDatePickerContext } from \"./DatePickerContext\";\nimport Input from \"../../primitives/Input/Input\";\nimport Button from \"../../primitives/Button/Button\";\n\nexport interface DatePickerInputProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n \"onChange\" | \"onFocus\"\n> {\n placeholder?: string;\n format?: string; // Date format string (e.g., 'MM/dd/yyyy')\n showCalendarButton?: boolean;\n \"aria-label\"?: string;\n onFocus?: () => void;\n}\n\n// Simple date formatting without date-fns dependency\nfunction formatDate(date: Date, format: string = \"yyyy-MM-dd\"): string {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n\n return format\n .replace(\"yyyy\", String(year))\n .replace(\"MM\", month)\n .replace(\"dd\", day)\n .replace(\"MM/dd/yyyy\", `${month}/${day}/${year}`)\n .replace(\"dd/MM/yyyy\", `${day}/${month}/${year}`);\n}\n\nfunction parseDate(value: string): Date | null {\n if (!value) return null;\n\n // Try ISO format first (yyyy-MM-dd)\n const isoMatch = value.match(/^(\\d{4})-(\\d{2})-(\\d{2})$/);\n if (isoMatch) {\n const [, year, month, day] = isoMatch;\n const date = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));\n if (!isNaN(date.getTime())) return date;\n }\n\n // Try MM/dd/yyyy\n const usMatch = value.match(/^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/);\n if (usMatch) {\n const [, month, day, year] = usMatch;\n const date = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));\n if (!isNaN(date.getTime())) return date;\n }\n\n // Try dd/MM/yyyy\n const euMatch = value.match(/^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/);\n if (euMatch) {\n const [, day, month, year] = euMatch;\n const date = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));\n if (!isNaN(date.getTime())) return date;\n }\n\n return null;\n}\n\nexport function DatePickerInput({\n placeholder = \"Select date\",\n format = \"yyyy-MM-dd\",\n showCalendarButton = true,\n \"aria-label\": ariaLabel,\n onFocus,\n className = \"\",\n ...props\n}: DatePickerInputProps) {\n const { selectedDate, selectedRange, mode, onDateChange } =\n useDatePickerContext();\n const [inputValue, setInputValue] = useState(\"\");\n const [_isFocused, setIsFocused] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Update input value when selected date changes\n useEffect(() => {\n if (mode === \"single\" && selectedDate) {\n setInputValue(formatDate(selectedDate, format));\n } else if (mode === \"range\" && selectedRange) {\n if (selectedRange.start && selectedRange.end) {\n setInputValue(\n `${formatDate(selectedRange.start, format)} - ${formatDate(selectedRange.end, format)}`,\n );\n } else if (selectedRange.start) {\n setInputValue(formatDate(selectedRange.start, format));\n } else {\n setInputValue(\"\");\n }\n } else {\n setInputValue(\"\");\n }\n }, [selectedDate, selectedRange, mode, format]);\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n setInputValue(value);\n\n if (mode === \"single\") {\n const date = parseDate(value);\n onDateChange(date);\n }\n // Range mode parsing would be more complex, handled by calendar\n };\n\n const handleInputBlur = () => {\n setIsFocused(false);\n // Validate and format on blur\n if (inputValue && mode === \"single\") {\n const date = parseDate(inputValue);\n if (date) {\n setInputValue(formatDate(date, format));\n }\n }\n };\n\n const handleCalendarClick = () => {\n inputRef.current?.focus();\n // Calendar popup would be triggered by parent component\n };\n\n return (\n <div className={`relative ${className}`} {...props}>\n <Input\n ref={inputRef}\n type=\"text\"\n value={inputValue}\n onChange={handleInputChange}\n onFocus={() => {\n setIsFocused(true);\n onFocus?.();\n }}\n onBlur={handleInputBlur}\n placeholder={placeholder}\n aria-label={ariaLabel || placeholder}\n rightIcon={\n showCalendarButton ? (\n <Button\n variant=\"iconOnly\"\n size=\"sm\"\n onClick={handleCalendarClick}\n aria-label=\"Open calendar\"\n type=\"button\"\n >\n <Calendar className=\"h-4 w-4\" />\n </Button>\n ) : undefined\n }\n />\n </div>\n );\n}\n"],"names":["formatDate","date","format","year","month","day","parseDate","value","isoMatch","usMatch","euMatch","DatePickerInput","_a","_b","placeholder","showCalendarButton","ariaLabel","onFocus","className","props","__objRest","selectedDate","selectedRange","mode","onDateChange","useDatePickerContext","inputValue","setInputValue","useState","_isFocused","setIsFocused","inputRef","useRef","useEffect","handleInputChange","e","handleInputBlur","handleCalendarClick","__spreadProps","__spreadValues","jsx","Input","Button","Calendar"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,SAASA,EAAWC,GAAYC,IAAiB,cAAsB;AACrE,QAAMC,IAAOF,EAAK,YAAA,GACZG,IAAQ,OAAOH,EAAK,SAAA,IAAa,CAAC,EAAE,SAAS,GAAG,GAAG,GACnDI,IAAM,OAAOJ,EAAK,QAAA,CAAS,EAAE,SAAS,GAAG,GAAG;AAElD,SAAOC,EACJ,QAAQ,QAAQ,OAAOC,CAAI,CAAC,EAC5B,QAAQ,MAAMC,CAAK,EACnB,QAAQ,MAAMC,CAAG,EACjB,QAAQ,cAAc,GAAGD,CAAK,IAAIC,CAAG,IAAIF,CAAI,EAAE,EAC/C,QAAQ,cAAc,GAAGE,CAAG,IAAID,CAAK,IAAID,CAAI,EAAE;AACpD;AAEA,SAASG,EAAUC,GAA4B;AAC7C,MAAI,CAACA,EAAO,QAAO;AAGnB,QAAMC,IAAWD,EAAM,MAAM,2BAA2B;AACxD,MAAIC,GAAU;AACZ,UAAM,GAAGL,GAAMC,GAAOC,CAAG,IAAIG,GACvBP,IAAO,IAAI,KAAK,SAASE,CAAI,GAAG,SAASC,CAAK,IAAI,GAAG,SAASC,CAAG,CAAC;AACxE,QAAI,CAAC,MAAMJ,EAAK,QAAA,CAAS,EAAG,QAAOA;AAAA,EACrC;AAGA,QAAMQ,IAAUF,EAAM,MAAM,6BAA6B;AACzD,MAAIE,GAAS;AACX,UAAM,GAAGL,GAAOC,GAAKF,CAAI,IAAIM,GACvBR,IAAO,IAAI,KAAK,SAASE,CAAI,GAAG,SAASC,CAAK,IAAI,GAAG,SAASC,CAAG,CAAC;AACxE,QAAI,CAAC,MAAMJ,EAAK,QAAA,CAAS,EAAG,QAAOA;AAAA,EACrC;AAGA,QAAMS,IAAUH,EAAM,MAAM,6BAA6B;AACzD,MAAIG,GAAS;AACX,UAAM,GAAGL,GAAKD,GAAOD,CAAI,IAAIO,GACvBT,IAAO,IAAI,KAAK,SAASE,CAAI,GAAG,SAASC,CAAK,IAAI,GAAG,SAASC,CAAG,CAAC;AACxE,QAAI,CAAC,MAAMJ,EAAK,QAAA,CAAS,EAAG,QAAOA;AAAA,EACrC;AAEA,SAAO;AACT;AAEO,SAASU,EAAgBC,GAQP;AARO,MAAAC,IAAAD,GAC9B;AAAA,iBAAAE,IAAc;AAAA,IACd,QAAAZ,IAAS;AAAA,IACT,oBAAAa,IAAqB;AAAA,IACrB,cAAcC;AAAA,IACd,SAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,MANkBL,GAO3BM,IAAAC,EAP2BP,GAO3B;AAAA,IANH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAM,EAAE,cAAAQ,GAAc,eAAAC,GAAe,MAAAC,GAAM,cAAAC,EAAA,IACzCC,EAAA,GACI,CAACC,GAAYC,CAAa,IAAIC,EAAS,EAAE,GACzC,CAACC,GAAYC,CAAY,IAAIF,EAAS,EAAK,GAC3CG,IAAWC,EAAyB,IAAI;AAG9C,EAAAC,EAAU,MAAM;AACd,IAAIV,MAAS,YAAYF,IACvBM,EAAc3B,EAAWqB,GAAcnB,CAAM,CAAC,IACrCqB,MAAS,WAAWD,IACzBA,EAAc,SAASA,EAAc,MACvCK;AAAA,MACE,GAAG3B,EAAWsB,EAAc,OAAOpB,CAAM,CAAC,MAAMF,EAAWsB,EAAc,KAAKpB,CAAM,CAAC;AAAA,IAAA,IAE9EoB,EAAc,QACvBK,EAAc3B,EAAWsB,EAAc,OAAOpB,CAAM,CAAC,IAErDyB,EAAc,EAAE,IAGlBA,EAAc,EAAE;AAAA,EAEpB,GAAG,CAACN,GAAcC,GAAeC,GAAMrB,CAAM,CAAC;AAE9C,QAAMgC,IAAoB,CAACC,MAA2C;AACpE,UAAM5B,IAAQ4B,EAAE,OAAO;AAGvB,QAFAR,EAAcpB,CAAK,GAEfgB,MAAS,UAAU;AACrB,YAAMtB,IAAOK,EAAUC,CAAK;AAC5B,MAAAiB,EAAavB,CAAI;AAAA,IACnB;AAAA,EAEF,GAEMmC,IAAkB,MAAM;AAG5B,QAFAN,EAAa,EAAK,GAEdJ,KAAcH,MAAS,UAAU;AACnC,YAAMtB,IAAOK,EAAUoB,CAAU;AACjC,MAAIzB,KACF0B,EAAc3B,EAAWC,GAAMC,CAAM,CAAC;AAAA,IAE1C;AAAA,EACF,GAEMmC,IAAsB,MAAM;;AAChC,KAAAzB,IAAAmB,EAAS,YAAT,QAAAnB,EAAkB;AAAA,EAEpB;AAEA,2BACG,OAAA0B,EAAAC,EAAA,EAAI,WAAW,YAAYrB,CAAS,MAAQC,IAA5C,EACC,UAAA,gBAAAqB;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAKV;AAAA,MACL,MAAK;AAAA,MACL,OAAOL;AAAA,MACP,UAAUQ;AAAA,MACV,SAAS,MAAM;AACb,QAAAJ,EAAa,EAAI,GACjBb,KAAA,QAAAA;AAAA,MACF;AAAA,MACA,QAAQmB;AAAA,MACR,aAAAtB;AAAA,MACA,cAAYE,KAAaF;AAAA,MACzB,WACEC,IACE,gBAAAyB;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,SAASL;AAAA,UACT,cAAW;AAAA,UACX,MAAK;AAAA,UAEL,UAAA,gBAAAG,EAACG,GAAA,EAAS,WAAU,UAAA,CAAU;AAAA,QAAA;AAAA,MAAA,IAE9B;AAAA,IAAA;AAAA,EAAA,IAGV;AAEJ;"}
@@ -0,0 +1,47 @@
1
+ "use client";
2
+ import { jsx as I } from "react/jsx-runtime";
3
+ import { useState as e } from "react";
4
+ import { DatePickerContext as U } from "./DatePickerContext.js";
5
+ function A({
6
+ children: c,
7
+ mode: i = "single",
8
+ value: t,
9
+ defaultValue: n,
10
+ onValueChange: r,
11
+ minDate: g,
12
+ maxDate: D,
13
+ disabledDates: f,
14
+ locale: o
15
+ }) {
16
+ const v = () => {
17
+ if (t !== void 0) return null;
18
+ if (n) {
19
+ if (i === "single" && n instanceof Date)
20
+ return n;
21
+ if (i === "range" && typeof n == "object" && "start" in n)
22
+ return null;
23
+ }
24
+ return null;
25
+ }, p = () => t === void 0 && n && i === "range" && typeof n == "object" && "start" in n ? n : { start: null, end: null }, [R, j] = e(
26
+ v()
27
+ ), [x, P] = e(p()), b = i === "single" ? t instanceof Date ? t : R : null, y = i === "range" ? t && typeof t == "object" && "start" in t ? t : x : null, k = {
28
+ selectedDate: b,
29
+ selectedRange: y,
30
+ mode: i,
31
+ onDateChange: (s) => {
32
+ i === "single" && (t === void 0 && j(s), r == null || r(s));
33
+ },
34
+ onRangeChange: (s) => {
35
+ i === "range" && (t === void 0 && P(s), r == null || r(s));
36
+ },
37
+ minDate: g,
38
+ maxDate: D,
39
+ disabledDates: f,
40
+ locale: o
41
+ };
42
+ return /* @__PURE__ */ I(U.Provider, { value: k, children: c });
43
+ }
44
+ export {
45
+ A as DatePickerProvider
46
+ };
47
+ //# sourceMappingURL=DatePickerProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePickerProvider.js","sources":["../../../../../src/ui/components/DatePicker/DatePickerProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState, type ReactNode } from \"react\";\nimport {\n DatePickerContext,\n type DatePickerContextValue,\n type Locale,\n} from \"./DatePickerContext\";\n\nexport interface DatePickerProviderProps {\n children: ReactNode;\n mode?: \"single\" | \"range\";\n value?: Date | { start: Date | null; end: Date | null };\n defaultValue?: Date | { start: Date | null; end: Date | null };\n onValueChange?: (\n value: Date | { start: Date | null; end: Date | null } | null,\n ) => void;\n minDate?: Date;\n maxDate?: Date;\n disabledDates?: Date[];\n locale?: Locale;\n}\n\nexport function DatePickerProvider({\n children,\n mode = \"single\",\n value: controlledValue,\n defaultValue,\n onValueChange,\n minDate,\n maxDate,\n disabledDates,\n locale,\n}: DatePickerProviderProps) {\n // Initialize state\n const getInitialDate = () => {\n if (controlledValue !== undefined) return null; // Controlled mode\n if (defaultValue) {\n if (mode === \"single\" && defaultValue instanceof Date) {\n return defaultValue;\n }\n if (\n mode === \"range\" &&\n typeof defaultValue === \"object\" &&\n \"start\" in defaultValue\n ) {\n return null; // Range handled separately\n }\n }\n return null;\n };\n\n const getInitialRange = (): { start: Date | null; end: Date | null } => {\n if (\n controlledValue === undefined &&\n defaultValue &&\n mode === \"range\" &&\n typeof defaultValue === \"object\" &&\n \"start\" in defaultValue\n ) {\n return defaultValue;\n }\n return { start: null, end: null };\n };\n\n const [uncontrolledDate, setUncontrolledDate] = useState<Date | null>(\n getInitialDate(),\n );\n const [uncontrolledRange, setUncontrolledRange] = useState<{\n start: Date | null;\n end: Date | null;\n }>(getInitialRange());\n\n // Use controlled or uncontrolled state\n const selectedDate =\n mode === \"single\"\n ? controlledValue instanceof Date\n ? controlledValue\n : uncontrolledDate\n : null;\n\n const selectedRange =\n mode === \"range\"\n ? controlledValue &&\n typeof controlledValue === \"object\" &&\n \"start\" in controlledValue\n ? controlledValue\n : uncontrolledRange\n : null;\n\n const handleDateChange = (date: Date | null) => {\n if (mode !== \"single\") return;\n\n if (controlledValue === undefined) {\n setUncontrolledDate(date);\n }\n onValueChange?.(date);\n };\n\n const handleRangeChange = (range: {\n start: Date | null;\n end: Date | null;\n }) => {\n if (mode !== \"range\") return;\n\n if (controlledValue === undefined) {\n setUncontrolledRange(range);\n }\n onValueChange?.(range);\n };\n\n const contextValue: DatePickerContextValue = {\n selectedDate,\n selectedRange,\n mode,\n onDateChange: handleDateChange,\n onRangeChange: handleRangeChange,\n minDate,\n maxDate,\n disabledDates,\n locale,\n };\n\n return (\n <DatePickerContext.Provider value={contextValue}>\n {children}\n </DatePickerContext.Provider>\n );\n}\n"],"names":["DatePickerProvider","children","mode","controlledValue","defaultValue","onValueChange","minDate","maxDate","disabledDates","locale","getInitialDate","getInitialRange","uncontrolledDate","setUncontrolledDate","useState","uncontrolledRange","setUncontrolledRange","selectedDate","selectedRange","contextValue","date","range","DatePickerContext"],"mappings":";;;;AAuBO,SAASA,EAAmB;AAAA,EACjC,UAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAOC;AAAA,EACP,cAAAC;AAAA,EACA,eAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AACF,GAA4B;AAE1B,QAAMC,IAAiB,MAAM;AAC3B,QAAIP,MAAoB,OAAW,QAAO;AAC1C,QAAIC,GAAc;AAChB,UAAIF,MAAS,YAAYE,aAAwB;AAC/C,eAAOA;AAET,UACEF,MAAS,WACT,OAAOE,KAAiB,YACxB,WAAWA;AAEX,eAAO;AAAA,IAEX;AACA,WAAO;AAAA,EACT,GAEMO,IAAkB,MAEpBR,MAAoB,UACpBC,KACAF,MAAS,WACT,OAAOE,KAAiB,YACxB,WAAWA,IAEJA,IAEF,EAAE,OAAO,MAAM,KAAK,KAAA,GAGvB,CAACQ,GAAkBC,CAAmB,IAAIC;AAAA,IAC9CJ,EAAA;AAAA,EAAe,GAEX,CAACK,GAAmBC,CAAoB,IAAIF,EAG/CH,GAAiB,GAGdM,IACJf,MAAS,WACLC,aAA2B,OACzBA,IACAS,IACF,MAEAM,IACJhB,MAAS,UACLC,KACA,OAAOA,KAAoB,YAC3B,WAAWA,IACTA,IACAY,IACF,MAuBAI,IAAuC;AAAA,IAC3C,cAAAF;AAAA,IACA,eAAAC;AAAA,IACA,MAAAhB;AAAA,IACA,cAzBuB,CAACkB,MAAsB;AAC9C,MAAIlB,MAAS,aAETC,MAAoB,UACtBU,EAAoBO,CAAI,GAE1Bf,KAAA,QAAAA,EAAgBe;AAAA,IAClB;AAAA,IAmBE,eAjBwB,CAACC,MAGrB;AACJ,MAAInB,MAAS,YAETC,MAAoB,UACtBa,EAAqBK,CAAK,GAE5BhB,KAAA,QAAAA,EAAgBgB;AAAA,IAClB;AAAA,IAQE,SAAAf;AAAA,IACA,SAAAC;AAAA,IACA,eAAAC;AAAA,IACA,QAAAC;AAAA,EAAA;AAGF,2BACGa,EAAkB,UAAlB,EAA2B,OAAOH,GAChC,UAAAlB,GACH;AAEJ;"}
@@ -0,0 +1,48 @@
1
+ "use client";
2
+ import { jsx as i, jsxs as c, Fragment as j } from "react/jsx-runtime";
3
+ import d from "./Dialog.js";
4
+ import { DialogContent as y } from "./DialogContent.js";
5
+ import { DialogHeader as F } from "./DialogHeader.js";
6
+ import { DialogFooter as h } from "./DialogFooter.js";
7
+ import { Button as m } from "../../primitives/Button/Button.js";
8
+ function q({
9
+ open: e,
10
+ defaultOpen: f,
11
+ onOpenChange: r,
12
+ title: o,
13
+ description: s,
14
+ confirmLabel: a = "Confirm",
15
+ cancelLabel: u = "Cancel",
16
+ variant: D = "default",
17
+ onConfirm: l,
18
+ onCancel: t,
19
+ children: v
20
+ }) {
21
+ const k = () => {
22
+ l == null || l(), r == null || r(!1);
23
+ }, x = () => {
24
+ t == null || t(), r == null || r(!1);
25
+ };
26
+ return /* @__PURE__ */ i(d, { open: e, defaultOpen: f, onOpenChange: r, children: /* @__PURE__ */ i(y, { size: "sm", closeOnOverlayClick: !1, children: v || /* @__PURE__ */ c(j, { children: [
27
+ /* @__PURE__ */ c(F, { children: [
28
+ /* @__PURE__ */ i(d.Title, { children: o }),
29
+ s && /* @__PURE__ */ i(d.Description, { children: s })
30
+ ] }),
31
+ /* @__PURE__ */ c(h, { children: [
32
+ /* @__PURE__ */ i(m, { variant: "outline", onClick: x, children: u }),
33
+ /* @__PURE__ */ i(
34
+ m,
35
+ {
36
+ variant: D === "destructive" ? "error" : "primary",
37
+ onClick: k,
38
+ children: a
39
+ }
40
+ )
41
+ ] })
42
+ ] }) }) });
43
+ }
44
+ export {
45
+ q as AlertDialog,
46
+ q as default
47
+ };
48
+ //# sourceMappingURL=AlertDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertDialog.js","sources":["../../../../../src/ui/components/Dialog/AlertDialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ReactNode } from \"react\";\nimport Dialog from \"./Dialog\";\nimport { DialogContent } from \"./DialogContent\";\nimport { DialogHeader } from \"./DialogHeader\";\nimport { DialogFooter } from \"./DialogFooter\";\nimport Button from \"../../primitives/Button/Button\";\n\nexport interface AlertDialogProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n title: string;\n description?: string;\n confirmLabel?: string;\n cancelLabel?: string;\n variant?: \"default\" | \"destructive\";\n onConfirm?: () => void;\n onCancel?: () => void;\n children?: ReactNode;\n}\n\n/**\n * AlertDialog Component\n *\n * A specialized dialog for confirmations and alerts.\n * Built on top of Dialog with pre-configured layout.\n *\n * @example\n * ```tsx\n * <AlertDialog\n * open={isOpen}\n * onOpenChange={setIsOpen}\n * title=\"Delete Item\"\n * description=\"Are you sure? This action cannot be undone.\"\n * variant=\"destructive\"\n * onConfirm={handleDelete}\n * />\n * ```\n */\nexport function AlertDialog({\n open,\n defaultOpen,\n onOpenChange,\n title,\n description,\n confirmLabel = \"Confirm\",\n cancelLabel = \"Cancel\",\n variant = \"default\",\n onConfirm,\n onCancel,\n children,\n}: AlertDialogProps) {\n const handleConfirm = () => {\n onConfirm?.();\n onOpenChange?.(false);\n };\n\n const handleCancel = () => {\n onCancel?.();\n onOpenChange?.(false);\n };\n\n return (\n <Dialog open={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>\n <DialogContent size=\"sm\" closeOnOverlayClick={false}>\n {children || (\n <>\n <DialogHeader>\n <Dialog.Title>{title}</Dialog.Title>\n {description && (\n <Dialog.Description>{description}</Dialog.Description>\n )}\n </DialogHeader>\n <DialogFooter>\n <Button variant=\"outline\" onClick={handleCancel}>\n {cancelLabel}\n </Button>\n <Button\n variant={variant === \"destructive\" ? \"error\" : \"primary\"}\n onClick={handleConfirm}\n >\n {confirmLabel}\n </Button>\n </DialogFooter>\n </>\n )}\n </DialogContent>\n </Dialog>\n );\n}\n\nexport default AlertDialog;\n"],"names":["AlertDialog","open","defaultOpen","onOpenChange","title","description","confirmLabel","cancelLabel","variant","onConfirm","onCancel","children","handleConfirm","handleCancel","jsx","Dialog","DialogContent","jsxs","Fragment","DialogHeader","DialogFooter","Button"],"mappings":";;;;;;;AAyCO,SAASA,EAAY;AAAA,EAC1B,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,aAAAC,IAAc;AAAA,EACd,SAAAC,IAAU;AAAA,EACV,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AACF,GAAqB;AACnB,QAAMC,IAAgB,MAAM;AAC1B,IAAAH,KAAA,QAAAA,KACAN,KAAA,QAAAA,EAAe;AAAA,EACjB,GAEMU,IAAe,MAAM;AACzB,IAAAH,KAAA,QAAAA,KACAP,KAAA,QAAAA,EAAe;AAAA,EACjB;AAEA,SACE,gBAAAW,EAACC,GAAA,EAAO,MAAAd,GAAY,aAAAC,GAA0B,cAAAC,GAC5C,UAAA,gBAAAW,EAACE,GAAA,EAAc,MAAK,MAAK,qBAAqB,IAC3C,UAAAL,KACC,gBAAAM,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAD,EAACE,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAL,EAACC,EAAO,OAAP,EAAc,UAAAX,EAAA,CAAM;AAAA,MACpBC,KACC,gBAAAS,EAACC,EAAO,aAAP,EAAoB,UAAAV,EAAA,CAAY;AAAA,IAAA,GAErC;AAAA,sBACCe,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAN,EAACO,GAAA,EAAO,SAAQ,WAAU,SAASR,GAChC,UAAAN,GACH;AAAA,MACA,gBAAAO;AAAA,QAACO;AAAA,QAAA;AAAA,UACC,SAASb,MAAY,gBAAgB,UAAU;AAAA,UAC/C,SAASI;AAAA,UAER,UAAAN;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,EAAA,CACF;AAAA,EAAA,EAAA,CACF,GAEJ,GACF;AAEJ;"}
@@ -0,0 +1,36 @@
1
+ "use client";
2
+ import { jsx as a } from "react/jsx-runtime";
3
+ import { useId as r } from "react";
4
+ import { DialogProvider as g } from "../../providers/DialogProvider.js";
5
+ import { DialogTrigger as n } from "./DialogTrigger.js";
6
+ import { DialogContent as f } from "./DialogContent.js";
7
+ import { DialogHeader as s } from "./DialogHeader.js";
8
+ import { DialogTitle as D } from "./DialogTitle.js";
9
+ import { DialogDescription as d } from "./DialogDescription.js";
10
+ import { DialogFooter as c } from "./DialogFooter.js";
11
+ import { DialogClose as u } from "./DialogClose.js";
12
+ function o({ children: i, open: t, defaultOpen: e, onOpenChange: m }) {
13
+ const l = r(), p = r();
14
+ return /* @__PURE__ */ a(
15
+ g,
16
+ {
17
+ open: t,
18
+ defaultOpen: e,
19
+ onOpenChange: m,
20
+ titleId: l,
21
+ descriptionId: p,
22
+ children: i
23
+ }
24
+ );
25
+ }
26
+ o.Trigger = n;
27
+ o.Content = f;
28
+ o.Header = s;
29
+ o.Title = D;
30
+ o.Description = d;
31
+ o.Footer = c;
32
+ o.Close = u;
33
+ export {
34
+ o as default
35
+ };
36
+ //# sourceMappingURL=Dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.js","sources":["../../../../../src/ui/components/Dialog/Dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { useId, type ReactNode } from \"react\";\nimport { DialogProvider } from \"../../providers/DialogProvider\";\nimport { DialogTrigger } from \"./DialogTrigger\";\nimport { DialogContent } from \"./DialogContent\";\nimport { DialogHeader } from \"./DialogHeader\";\nimport { DialogTitle } from \"./DialogTitle\";\nimport { DialogDescription } from \"./DialogDescription\";\nimport { DialogFooter } from \"./DialogFooter\";\nimport { DialogClose } from \"./DialogClose\";\n\nexport interface DialogProps {\n children: ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\n/**\n * Dialog Component\n *\n * A flexible dialog component using compound components pattern.\n * Supports both controlled and uncontrolled modes.\n * Includes portal rendering, focus trap, and full accessibility.\n *\n * @example\n * ```tsx\n * // Uncontrolled\n * <Dialog>\n * <Dialog.Trigger>Open Dialog</Dialog.Trigger>\n * <Dialog.Content>\n * <Dialog.Header>\n * <Dialog.Title>Dialog Title</Dialog.Title>\n * <Dialog.Description>Dialog description</Dialog.Description>\n * </Dialog.Header>\n * <Dialog.Footer>\n * <Button onClick={handleClose}>Close</Button>\n * </Dialog.Footer>\n * </Dialog.Content>\n * </Dialog>\n *\n * // Controlled\n * <Dialog open={isOpen} onOpenChange={setIsOpen}>\n * <Dialog.Content>\n * <Dialog.Header>\n * <Dialog.Title>Dialog Title</Dialog.Title>\n * </Dialog.Header>\n * </Dialog.Content>\n * </Dialog>\n * ```\n */\nfunction Dialog({ children, open, defaultOpen, onOpenChange }: DialogProps) {\n const titleId = useId();\n const descriptionId = useId();\n\n return (\n <DialogProvider\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n titleId={titleId}\n descriptionId={descriptionId}\n >\n {children}\n </DialogProvider>\n );\n}\n\n// Compound components\nDialog.Trigger = DialogTrigger;\nDialog.Content = DialogContent;\nDialog.Header = DialogHeader;\nDialog.Title = DialogTitle;\nDialog.Description = DialogDescription;\nDialog.Footer = DialogFooter;\nDialog.Close = DialogClose;\n\nexport default Dialog;\n"],"names":["Dialog","children","open","defaultOpen","onOpenChange","titleId","useId","descriptionId","jsx","DialogProvider","DialogTrigger","DialogContent","DialogHeader","DialogTitle","DialogDescription","DialogFooter","DialogClose"],"mappings":";;;;;;;;;;;AAoDA,SAASA,EAAO,EAAE,UAAAC,GAAU,MAAAC,GAAM,aAAAC,GAAa,cAAAC,KAA6B;AAC1E,QAAMC,IAAUC,EAAA,GACVC,IAAgBD,EAAA;AAEtB,SACE,gBAAAE;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAAP;AAAA,MACA,aAAAC;AAAA,MACA,cAAAC;AAAA,MACA,SAAAC;AAAA,MACA,eAAAE;AAAA,MAEC,UAAAN;AAAA,IAAA;AAAA,EAAA;AAGP;AAGAD,EAAO,UAAUU;AACjBV,EAAO,UAAUW;AACjBX,EAAO,SAASY;AAChBZ,EAAO,QAAQa;AACfb,EAAO,cAAcc;AACrBd,EAAO,SAASe;AAChBf,EAAO,QAAQgB;"}
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ import { isValidElement as m, cloneElement as c } from "react";
4
+ import { X as p } from "lucide-react";
5
+ import { useDialogContext as f } from "../../providers/DialogContext.js";
6
+ import { Button as u } from "../../primitives/Button/Button.js";
7
+ function D({
8
+ "aria-label": r = "Close dialog",
9
+ className: a = "",
10
+ asChild: n = !1,
11
+ children: o
12
+ }) {
13
+ const { onClose: l } = f();
14
+ return n && m(o) ? c(o, {
15
+ onClick: (s) => {
16
+ var e, i;
17
+ l(), (i = (e = o.props).onClick) == null || i.call(e, s);
18
+ }
19
+ }) : /* @__PURE__ */ t(
20
+ u,
21
+ {
22
+ variant: "iconOnly",
23
+ size: "sm",
24
+ onClick: l,
25
+ className: `absolute right-4 top-4 ${a}`,
26
+ "aria-label": r,
27
+ children: /* @__PURE__ */ t(p, { className: "h-4 w-4" })
28
+ }
29
+ );
30
+ }
31
+ export {
32
+ D as DialogClose
33
+ };
34
+ //# sourceMappingURL=DialogClose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogClose.js","sources":["../../../../../src/ui/components/Dialog/DialogClose.tsx"],"sourcesContent":["\"use client\";\n\nimport { cloneElement, isValidElement, type ReactElement } from \"react\";\nimport { X } from \"lucide-react\";\nimport { useDialogContext } from \"../../providers/DialogContext\";\nimport Button from \"../../primitives/Button/Button\";\n\ntype CloseChildProps = {\n onClick?: (e: React.MouseEvent) => void;\n};\n\nexport interface DialogCloseProps {\n \"aria-label\"?: string;\n className?: string;\n asChild?: boolean;\n children?: ReactElement<CloseChildProps>;\n}\n\nexport function DialogClose({\n \"aria-label\": ariaLabel = \"Close dialog\",\n className = \"\",\n asChild = false,\n children,\n}: DialogCloseProps) {\n const { onClose } = useDialogContext();\n\n if (asChild && isValidElement<CloseChildProps>(children)) {\n return cloneElement(children, {\n onClick: (e: React.MouseEvent) => {\n onClose();\n children.props.onClick?.(e);\n },\n });\n }\n\n return (\n <Button\n variant=\"iconOnly\"\n size=\"sm\"\n onClick={onClose}\n className={`absolute right-4 top-4 ${className}`}\n aria-label={ariaLabel}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n );\n}\n"],"names":["DialogClose","ariaLabel","className","asChild","children","onClose","useDialogContext","isValidElement","cloneElement","e","_b","_a","jsx","Button","X"],"mappings":";;;;;;AAkBO,SAASA,EAAY;AAAA,EAC1B,cAAcC,IAAY;AAAA,EAC1B,WAAAC,IAAY;AAAA,EACZ,SAAAC,IAAU;AAAA,EACV,UAAAC;AACF,GAAqB;AACnB,QAAM,EAAE,SAAAC,EAAA,IAAYC,EAAA;AAEpB,SAAIH,KAAWI,EAAgCH,CAAQ,IAC9CI,EAAaJ,GAAU;AAAA,IAC5B,SAAS,CAACK,MAAwB;;AAChC,MAAAJ,EAAA,IACAK,KAAAC,IAAAP,EAAS,OAAM,YAAf,QAAAM,EAAA,KAAAC,GAAyBF;AAAA,IAC3B;AAAA,EAAA,CACD,IAID,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,SAASR;AAAA,MACT,WAAW,0BAA0BH,CAAS;AAAA,MAC9C,cAAYD;AAAA,MAEZ,UAAA,gBAAAW,EAACE,GAAA,EAAE,WAAU,UAAA,CAAU;AAAA,IAAA;AAAA,EAAA;AAG7B;"}
@@ -0,0 +1,114 @@
1
+ "use client";
2
+ var j = Object.defineProperty, D = Object.defineProperties;
3
+ var F = Object.getOwnPropertyDescriptors;
4
+ var l = Object.getOwnPropertySymbols;
5
+ var p = Object.prototype.hasOwnProperty, x = Object.prototype.propertyIsEnumerable;
6
+ var c = (e, t, o) => t in e ? j(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, g = (e, t) => {
7
+ for (var o in t || (t = {}))
8
+ p.call(t, o) && c(e, o, t[o]);
9
+ if (l)
10
+ for (var o of l(t))
11
+ x.call(t, o) && c(e, o, t[o]);
12
+ return e;
13
+ }, y = (e, t) => D(e, F(t));
14
+ var v = (e, t) => {
15
+ var o = {};
16
+ for (var r in e)
17
+ p.call(e, r) && t.indexOf(r) < 0 && (o[r] = e[r]);
18
+ if (e != null && l)
19
+ for (var r of l(e))
20
+ t.indexOf(r) < 0 && x.call(e, r) && (o[r] = e[r]);
21
+ return o;
22
+ };
23
+ import { jsxs as L, jsx as m } from "react/jsx-runtime";
24
+ import { useRef as w, useEffect as S } from "react";
25
+ import { createPortal as z } from "react-dom";
26
+ import { useDialogContext as A } from "../../providers/DialogContext.js";
27
+ import { useFocusTrap as O } from "../../hooks/useFocusTrap.js";
28
+ import { useAutoFocus as P } from "../../hooks/useAutoFocus.js";
29
+ import { getSpacingClass as C } from "../../tokens/spacing.js";
30
+ import { getRadiusClass as b } from "../../tokens/radius.js";
31
+ import { getShadowClass as T } from "../../tokens/shadows.js";
32
+ import { getZIndexClass as Z } from "../../tokens/z-index.js";
33
+ function Y(q) {
34
+ var d = q, {
35
+ children: e,
36
+ size: t = "md",
37
+ closeOnOverlayClick: o = !0,
38
+ closeOnEscape: r = !0,
39
+ className: h = ""
40
+ } = d, $ = v(d, [
41
+ "children",
42
+ "size",
43
+ "closeOnOverlayClick",
44
+ "closeOnEscape",
45
+ "className"
46
+ ]);
47
+ const { isOpen: n, onClose: s, titleId: k, descriptionId: E } = A(), a = w(null), f = w(null);
48
+ if (O(a, n), P(a, n), S(() => {
49
+ if (!n || !r) return;
50
+ const i = (R) => {
51
+ R.key === "Escape" && s();
52
+ };
53
+ return document.addEventListener("keydown", i), () => {
54
+ document.removeEventListener("keydown", i);
55
+ };
56
+ }, [n, s, r]), !n) return null;
57
+ const I = {
58
+ sm: "max-w-sm",
59
+ md: "max-w-md",
60
+ lg: "max-w-lg",
61
+ xl: "max-w-2xl",
62
+ fullscreen: `max-w-full h-full ${C("none", "m")} ${b("none")}`
63
+ }, N = (i) => {
64
+ o && i.target === f.current && s();
65
+ }, u = /* @__PURE__ */ L(
66
+ "div",
67
+ {
68
+ className: `fixed inset-0 ${Z("modal")} overflow-y-auto`,
69
+ onClick: N,
70
+ children: [
71
+ /* @__PURE__ */ m(
72
+ "div",
73
+ {
74
+ ref: f,
75
+ className: "fixed inset-0 bg-scrim transition-opacity",
76
+ "aria-hidden": "true"
77
+ }
78
+ ),
79
+ /* @__PURE__ */ m(
80
+ "div",
81
+ {
82
+ className: `flex min-h-full items-center justify-center ${C("base", "p")}`,
83
+ children: /* @__PURE__ */ m(
84
+ "div",
85
+ y(g({
86
+ ref: a,
87
+ role: "dialog",
88
+ "aria-modal": "true",
89
+ "aria-labelledby": k,
90
+ "aria-describedby": E,
91
+ className: `
92
+ relative w-full
93
+ ${I[t]}
94
+ bg-surface-overlay
95
+ ${b("lg")}
96
+ ${T("xl")}
97
+ ${h}
98
+ `,
99
+ tabIndex: -1
100
+ }, $), {
101
+ children: e
102
+ })
103
+ )
104
+ }
105
+ )
106
+ ]
107
+ }
108
+ );
109
+ return typeof window != "undefined" ? z(u, document.body) : u;
110
+ }
111
+ export {
112
+ Y as DialogContent
113
+ };
114
+ //# sourceMappingURL=DialogContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogContent.js","sources":["../../../../../src/ui/components/Dialog/DialogContent.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useDialogContext } from \"../../providers/DialogContext\";\nimport { useFocusTrap } from \"../../hooks/useFocusTrap\";\nimport { useAutoFocus } from \"../../hooks/useAutoFocus\";\nimport { getRadiusClass, getShadowClass, getZIndexClass } from \"../../tokens\";\nimport { getSpacingClass } from \"../../tokens/spacing\";\n\nexport interface DialogContentProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n \"role\"\n> {\n children: ReactNode;\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"fullscreen\";\n closeOnOverlayClick?: boolean;\n closeOnEscape?: boolean;\n}\n\nexport function DialogContent({\n children,\n size = \"md\",\n closeOnOverlayClick = true,\n closeOnEscape = true,\n className = \"\",\n ...props\n}: DialogContentProps) {\n const { isOpen, onClose, titleId, descriptionId } = useDialogContext();\n const contentRef = useRef<HTMLDivElement>(null);\n const overlayRef = useRef<HTMLDivElement>(null);\n\n // Modal focus contract — Tab cycling + auto-focus, consumed from the\n // shared hooks introduced in Phase 3 PR 1. Replaces an inline\n // implementation that duplicated the selector / disabled-and-hidden\n // filter / boundary-check logic verbatim. The hook variant ALSO\n // closes a focus-outside-container gap the inline trap silently had\n // (it relied on auto-focus running first to mask it); the hook\n // pulls focus back to the trap edge regardless. Focus restore on\n // close is the separate concern of `useFocusRestore`, consumed in\n // `DialogProvider`.\n useFocusTrap(contentRef, isOpen);\n useAutoFocus(contentRef, isOpen);\n\n // ESC handling stays inline — gated by the per-Dialog `closeOnEscape`\n // prop, which the shared hooks intentionally don't know about. Same\n // shape as Drawer's parallel handler.\n useEffect(() => {\n if (!isOpen || !closeOnEscape) return;\n\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n onClose();\n }\n };\n\n document.addEventListener(\"keydown\", handleEscape);\n return () => {\n document.removeEventListener(\"keydown\", handleEscape);\n };\n }, [isOpen, onClose, closeOnEscape]);\n\n if (!isOpen) return null;\n\n const sizeClasses = {\n sm: \"max-w-sm\",\n md: \"max-w-md\",\n lg: \"max-w-lg\",\n xl: \"max-w-2xl\",\n fullscreen: `max-w-full h-full ${getSpacingClass(\"none\", \"m\")} ${getRadiusClass(\"none\")}`,\n };\n\n const handleOverlayClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (closeOnOverlayClick && e.target === overlayRef.current) {\n onClose();\n }\n };\n\n const dialogContent = (\n <div\n className={`fixed inset-0 ${getZIndexClass(\"modal\")} overflow-y-auto`}\n onClick={handleOverlayClick}\n >\n {/* Overlay */}\n <div\n ref={overlayRef}\n className=\"fixed inset-0 bg-scrim transition-opacity\"\n aria-hidden=\"true\"\n />\n\n {/* Dialog */}\n <div\n className={`flex min-h-full items-center justify-center ${getSpacingClass(\"base\", \"p\")}`}\n >\n <div\n ref={contentRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n className={`\n relative w-full\n ${sizeClasses[size]}\n bg-surface-overlay\n ${getRadiusClass(\"lg\")}\n ${getShadowClass(\"xl\")}\n ${className}\n `}\n tabIndex={-1}\n {...props}\n >\n {children}\n </div>\n </div>\n </div>\n );\n\n // Portal rendering\n if (typeof window !== \"undefined\") {\n return createPortal(dialogContent, document.body);\n }\n\n return dialogContent;\n}\n"],"names":["DialogContent","_a","_b","children","size","closeOnOverlayClick","closeOnEscape","className","props","__objRest","isOpen","onClose","titleId","descriptionId","useDialogContext","contentRef","useRef","overlayRef","useFocusTrap","useAutoFocus","useEffect","handleEscape","e","sizeClasses","getSpacingClass","getRadiusClass","handleOverlayClick","dialogContent","jsxs","getZIndexClass","jsx","__spreadProps","__spreadValues","getShadowClass","createPortal"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBO,SAASA,EAAcC,GAOP;AAPO,MAAAC,IAAAD,GAC5B;AAAA,cAAAE;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,qBAAAC,IAAsB;AAAA,IACtB,eAAAC,IAAgB;AAAA,IAChB,WAAAC,IAAY;AAAA,MALgBL,GAMzBM,IAAAC,EANyBP,GAMzB;AAAA,IALH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAM,EAAE,QAAAQ,GAAQ,SAAAC,GAAS,SAAAC,GAAS,eAAAC,EAAA,IAAkBC,EAAA,GAC9CC,IAAaC,EAAuB,IAAI,GACxCC,IAAaD,EAAuB,IAAI;AAgC9C,MArBAE,EAAaH,GAAYL,CAAM,GAC/BS,EAAaJ,GAAYL,CAAM,GAK/BU,EAAU,MAAM;AACd,QAAI,CAACV,KAAU,CAACJ,EAAe;AAE/B,UAAMe,IAAe,CAACC,MAAqB;AACzC,MAAIA,EAAE,QAAQ,YACZX,EAAA;AAAA,IAEJ;AAEA,oBAAS,iBAAiB,WAAWU,CAAY,GAC1C,MAAM;AACX,eAAS,oBAAoB,WAAWA,CAAY;AAAA,IACtD;AAAA,EACF,GAAG,CAACX,GAAQC,GAASL,CAAa,CAAC,GAE/B,CAACI,EAAQ,QAAO;AAEpB,QAAMa,IAAc;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY,qBAAqBC,EAAgB,QAAQ,GAAG,CAAC,IAAIC,EAAe,MAAM,CAAC;AAAA,EAAA,GAGnFC,IAAqB,CAACJ,MAAwC;AAClE,IAAIjB,KAAuBiB,EAAE,WAAWL,EAAW,WACjDN,EAAA;AAAA,EAEJ,GAEMgB,IACJ,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,iBAAiBC,EAAe,OAAO,CAAC;AAAA,MACnD,SAASH;AAAA,MAGT,UAAA;AAAA,QAAA,gBAAAI;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAKb;AAAA,YACL,WAAU;AAAA,YACV,eAAY;AAAA,UAAA;AAAA,QAAA;AAAA,QAId,gBAAAa;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,+CAA+CN,EAAgB,QAAQ,GAAG,CAAC;AAAA,YAEtF,UAAA,gBAAAM;AAAA,cAAC;AAAA,cAAAC,EAAAC,EAAA;AAAA,gBACC,KAAKjB;AAAA,gBACL,MAAK;AAAA,gBACL,cAAW;AAAA,gBACX,mBAAiBH;AAAA,gBACjB,oBAAkBC;AAAA,gBAClB,WAAW;AAAA;AAAA,cAEPU,EAAYnB,CAAI,CAAC;AAAA;AAAA,cAEjBqB,EAAe,IAAI,CAAC;AAAA,cACpBQ,EAAe,IAAI,CAAC;AAAA,cACpB1B,CAAS;AAAA;AAAA,gBAEb,UAAU;AAAA,iBACNC,IAfL;AAAA,gBAiBE,UAAAL;AAAA,cAAA;AAAA,YAAA;AAAA,UACH;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAKJ,SAAI,OAAO,UAAW,cACb+B,EAAaP,GAAe,SAAS,IAAI,IAG3CA;AACT;"}
@@ -0,0 +1,51 @@
1
+ "use client";
2
+ var u = Object.defineProperty, x = Object.defineProperties;
3
+ var y = Object.getOwnPropertyDescriptors;
4
+ var s = Object.getOwnPropertySymbols;
5
+ var a = Object.prototype.hasOwnProperty, c = Object.prototype.propertyIsEnumerable;
6
+ var n = (o, t, e) => t in o ? u(o, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[t] = e, m = (o, t) => {
7
+ for (var e in t || (t = {}))
8
+ a.call(t, e) && n(o, e, t[e]);
9
+ if (s)
10
+ for (var e of s(t))
11
+ c.call(t, e) && n(o, e, t[e]);
12
+ return o;
13
+ }, p = (o, t) => x(o, y(t));
14
+ var d = (o, t) => {
15
+ var e = {};
16
+ for (var r in o)
17
+ a.call(o, r) && t.indexOf(r) < 0 && (e[r] = o[r]);
18
+ if (o != null && s)
19
+ for (var r of s(o))
20
+ t.indexOf(r) < 0 && c.call(o, r) && (e[r] = o[r]);
21
+ return e;
22
+ };
23
+ import { jsx as I } from "react/jsx-runtime";
24
+ import { useId as D } from "react";
25
+ import { useDialogContext as C } from "../../providers/DialogContext.js";
26
+ import { getTypographyClasses as $ } from "../../tokens/typography.js";
27
+ function k(b) {
28
+ var i = b, {
29
+ children: o,
30
+ className: t = "",
31
+ id: e
32
+ } = i, r = d(i, [
33
+ "children",
34
+ "className",
35
+ "id"
36
+ ]);
37
+ const l = C(), f = D(), g = e || l.descriptionId || f;
38
+ return /* @__PURE__ */ I(
39
+ "p",
40
+ p(m({
41
+ id: g,
42
+ className: `${$("bodySmall")} text-fg-secondary ${t}`
43
+ }, r), {
44
+ children: o
45
+ })
46
+ );
47
+ }
48
+ export {
49
+ k as DialogDescription
50
+ };
51
+ //# sourceMappingURL=DialogDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogDescription.js","sources":["../../../../../src/ui/components/Dialog/DialogDescription.tsx"],"sourcesContent":["\"use client\";\n\nimport { useId, type HTMLAttributes } from \"react\";\nimport { useDialogContext } from \"../../providers/DialogContext\";\nimport { getTypographyClasses } from \"../../tokens\";\n\nexport type DialogDescriptionProps = HTMLAttributes<HTMLParagraphElement>;\n\nexport function DialogDescription({\n children,\n className = \"\",\n id,\n ...props\n}: DialogDescriptionProps) {\n const context = useDialogContext();\n const generatedId = useId();\n const finalId = id || context.descriptionId || generatedId;\n\n return (\n <p\n id={finalId}\n className={`${getTypographyClasses(\"bodySmall\")} text-fg-secondary ${className}`}\n {...props}\n >\n {children}\n </p>\n );\n}\n"],"names":["DialogDescription","_a","_b","children","className","id","props","__objRest","context","useDialogContext","generatedId","useId","finalId","jsx","__spreadProps","__spreadValues","getTypographyClasses"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,SAASA,EAAkBC,GAKP;AALO,MAAAC,IAAAD,GAChC;AAAA,cAAAE;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,IAAAC;AAAA,MAHgCH,GAI7BI,IAAAC,EAJ6BL,GAI7B;AAAA,IAHH;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAMM,IAAUC,EAAA,GACVC,IAAcC,EAAA,GACdC,IAAUP,KAAMG,EAAQ,iBAAiBE;AAE/C,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAAC,EAAAC,EAAA;AAAA,MACC,IAAIH;AAAA,MACJ,WAAW,GAAGI,EAAqB,WAAW,CAAC,sBAAsBZ,CAAS;AAAA,OAC1EE,IAHL;AAAA,MAKE,UAAAH;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -0,0 +1,45 @@
1
+ "use client";
2
+ var x = Object.defineProperty, g = Object.defineProperties;
3
+ var u = Object.getOwnPropertyDescriptors;
4
+ var t = Object.getOwnPropertySymbols;
5
+ var a = Object.prototype.hasOwnProperty, f = Object.prototype.propertyIsEnumerable;
6
+ var i = (e, s, o) => s in e ? x(e, s, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[s] = o, p = (e, s) => {
7
+ for (var o in s || (s = {}))
8
+ a.call(s, o) && i(e, o, s[o]);
9
+ if (t)
10
+ for (var o of t(s))
11
+ f.call(s, o) && i(e, o, s[o]);
12
+ return e;
13
+ }, c = (e, s) => g(e, u(s));
14
+ var n = (e, s) => {
15
+ var o = {};
16
+ for (var r in e)
17
+ a.call(e, r) && s.indexOf(r) < 0 && (o[r] = e[r]);
18
+ if (e != null && t)
19
+ for (var r of t(e))
20
+ s.indexOf(r) < 0 && f.call(e, r) && (o[r] = e[r]);
21
+ return o;
22
+ };
23
+ import { jsx as $ } from "react/jsx-runtime";
24
+ import { getSpacingClass as l } from "../../tokens/spacing.js";
25
+ function b(r) {
26
+ var m = r, {
27
+ children: e,
28
+ className: s = ""
29
+ } = m, o = n(m, [
30
+ "children",
31
+ "className"
32
+ ]);
33
+ return /* @__PURE__ */ $(
34
+ "div",
35
+ c(p({
36
+ className: `flex flex-col-reverse sm:flex-row sm:justify-end sm:${l("sm", "space-x")} ${l("lg", "p")} ${l("base", "pt")} ${s}`
37
+ }, o), {
38
+ children: e
39
+ })
40
+ );
41
+ }
42
+ export {
43
+ b as DialogFooter
44
+ };
45
+ //# sourceMappingURL=DialogFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogFooter.js","sources":["../../../../../src/ui/components/Dialog/DialogFooter.tsx"],"sourcesContent":["\"use client\";\n\nimport { type HTMLAttributes, type ReactNode } from \"react\";\nimport { getSpacingClass } from \"../../tokens/spacing\";\n\nexport interface DialogFooterProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport function DialogFooter({\n children,\n className = \"\",\n ...props\n}: DialogFooterProps) {\n return (\n <div\n className={`flex flex-col-reverse sm:flex-row sm:justify-end sm:${getSpacingClass(\"sm\", \"space-x\")} ${getSpacingClass(\"lg\", \"p\")} ${getSpacingClass(\"base\", \"pt\")} ${className}`}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"names":["DialogFooter","_a","_b","children","className","props","__objRest","jsx","__spreadProps","__spreadValues","getSpacingClass"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASO,SAASA,EAAaC,GAIP;AAJO,MAAAC,IAAAD,GAC3B;AAAA,cAAAE;AAAA,IACA,WAAAC,IAAY;AAAA,MAFeF,GAGxBG,IAAAC,EAHwBJ,GAGxB;AAAA,IAFH;AAAA,IACA;AAAA;AAGA,SACE,gBAAAK;AAAA,IAAC;AAAA,IAAAC,EAAAC,EAAA;AAAA,MACC,WAAW,uDAAuDC,EAAgB,MAAM,SAAS,CAAC,IAAIA,EAAgB,MAAM,GAAG,CAAC,IAAIA,EAAgB,QAAQ,IAAI,CAAC,IAAIN,CAAS;AAAA,OAC1KC,IAFL;AAAA,MAIE,UAAAF;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -0,0 +1,45 @@
1
+ "use client";
2
+ var g = Object.defineProperty, x = Object.defineProperties;
3
+ var $ = Object.getOwnPropertyDescriptors;
4
+ var r = Object.getOwnPropertySymbols;
5
+ var t = Object.prototype.hasOwnProperty, c = Object.prototype.propertyIsEnumerable;
6
+ var p = (e, a, l) => a in e ? g(e, a, { enumerable: !0, configurable: !0, writable: !0, value: l }) : e[a] = l, f = (e, a) => {
7
+ for (var l in a || (a = {}))
8
+ t.call(a, l) && p(e, l, a[l]);
9
+ if (r)
10
+ for (var l of r(a))
11
+ c.call(a, l) && p(e, l, a[l]);
12
+ return e;
13
+ }, m = (e, a) => x(e, $(a));
14
+ var n = (e, a) => {
15
+ var l = {};
16
+ for (var o in e)
17
+ t.call(e, o) && a.indexOf(o) < 0 && (l[o] = e[o]);
18
+ if (e != null && r)
19
+ for (var o of r(e))
20
+ a.indexOf(o) < 0 && c.call(e, o) && (l[o] = e[o]);
21
+ return l;
22
+ };
23
+ import { jsx as u } from "react/jsx-runtime";
24
+ import { getSpacingClass as s } from "../../tokens/spacing.js";
25
+ function v(o) {
26
+ var i = o, {
27
+ children: e,
28
+ className: a = ""
29
+ } = i, l = n(i, [
30
+ "children",
31
+ "className"
32
+ ]);
33
+ return /* @__PURE__ */ u(
34
+ "div",
35
+ m(f({
36
+ className: `flex flex-col ${s("1.5", "space-y")} ${s("lg", "p")} ${s("base", "pb")} ${a}`
37
+ }, l), {
38
+ children: e
39
+ })
40
+ );
41
+ }
42
+ export {
43
+ v as DialogHeader
44
+ };
45
+ //# sourceMappingURL=DialogHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogHeader.js","sources":["../../../../../src/ui/components/Dialog/DialogHeader.tsx"],"sourcesContent":["\"use client\";\n\nimport { type HTMLAttributes, type ReactNode } from \"react\";\nimport { getSpacingClass } from \"../../tokens/spacing\";\n\nexport interface DialogHeaderProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport function DialogHeader({\n children,\n className = \"\",\n ...props\n}: DialogHeaderProps) {\n return (\n <div\n className={`flex flex-col ${getSpacingClass(\"1.5\", \"space-y\")} ${getSpacingClass(\"lg\", \"p\")} ${getSpacingClass(\"base\", \"pb\")} ${className}`}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"names":["DialogHeader","_a","_b","children","className","props","__objRest","jsx","__spreadProps","__spreadValues","getSpacingClass"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASO,SAASA,EAAaC,GAIP;AAJO,MAAAC,IAAAD,GAC3B;AAAA,cAAAE;AAAA,IACA,WAAAC,IAAY;AAAA,MAFeF,GAGxBG,IAAAC,EAHwBJ,GAGxB;AAAA,IAFH;AAAA,IACA;AAAA;AAGA,SACE,gBAAAK;AAAA,IAAC;AAAA,IAAAC,EAAAC,EAAA;AAAA,MACC,WAAW,iBAAiBC,EAAgB,OAAO,SAAS,CAAC,IAAIA,EAAgB,MAAM,GAAG,CAAC,IAAIA,EAAgB,QAAQ,IAAI,CAAC,IAAIN,CAAS;AAAA,OACrIC,IAFL;AAAA,MAIE,UAAAF;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -0,0 +1,53 @@
1
+ "use client";
2
+ var h = Object.defineProperty, x = Object.defineProperties;
3
+ var I = Object.getOwnPropertyDescriptors;
4
+ var n = Object.getOwnPropertySymbols;
5
+ var a = Object.prototype.hasOwnProperty, l = Object.prototype.propertyIsEnumerable;
6
+ var s = (t, o, e) => o in t ? h(t, o, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[o] = e, m = (t, o) => {
7
+ for (var e in o || (o = {}))
8
+ a.call(o, e) && s(t, e, o[e]);
9
+ if (n)
10
+ for (var e of n(o))
11
+ l.call(o, e) && s(t, e, o[e]);
12
+ return t;
13
+ }, c = (t, o) => x(t, I(o));
14
+ var d = (t, o) => {
15
+ var e = {};
16
+ for (var i in t)
17
+ a.call(t, i) && o.indexOf(i) < 0 && (e[i] = t[i]);
18
+ if (t != null && n)
19
+ for (var i of n(t))
20
+ o.indexOf(i) < 0 && l.call(t, i) && (e[i] = t[i]);
21
+ return e;
22
+ };
23
+ import { jsx as y } from "react/jsx-runtime";
24
+ import { useId as C } from "react";
25
+ import { useDialogContext as D } from "../../providers/DialogContext.js";
26
+ import { getTypographyClasses as T } from "../../tokens/typography.js";
27
+ function v($) {
28
+ var r = $, {
29
+ as: t = "h2",
30
+ children: o,
31
+ className: e = "",
32
+ id: i
33
+ } = r, g = d(r, [
34
+ "as",
35
+ "children",
36
+ "className",
37
+ "id"
38
+ ]);
39
+ const f = D(), p = C(), u = i || f.titleId || p;
40
+ return /* @__PURE__ */ y(
41
+ t,
42
+ c(m({
43
+ id: u,
44
+ className: `${T("h3")} font-semibold leading-none tracking-tight ${e}`
45
+ }, g), {
46
+ children: o
47
+ })
48
+ );
49
+ }
50
+ export {
51
+ v as DialogTitle
52
+ };
53
+ //# sourceMappingURL=DialogTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogTitle.js","sources":["../../../../../src/ui/components/Dialog/DialogTitle.tsx"],"sourcesContent":["\"use client\";\n\nimport { useId, type HTMLAttributes } from \"react\";\nimport { useDialogContext } from \"../../providers/DialogContext\";\nimport { getTypographyClasses } from \"../../tokens\";\n\nexport interface DialogTitleProps extends HTMLAttributes<HTMLHeadingElement> {\n as?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n}\n\nexport function DialogTitle({\n as: Component = \"h2\",\n children,\n className = \"\",\n id,\n ...props\n}: DialogTitleProps) {\n const context = useDialogContext();\n const generatedId = useId();\n const finalId = id || context.titleId || generatedId;\n\n return (\n <Component\n id={finalId}\n className={`${getTypographyClasses(\"h3\")} font-semibold leading-none tracking-tight ${className}`}\n {...props}\n >\n {children}\n </Component>\n );\n}\n"],"names":["DialogTitle","_a","_b","Component","children","className","id","props","__objRest","context","useDialogContext","generatedId","useId","finalId","jsx","__spreadProps","__spreadValues","getTypographyClasses"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAUO,SAASA,EAAYC,GAMP;AANO,MAAAC,IAAAD,GAC1B;AAAA,QAAIE,IAAY;AAAA,IAChB,UAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,IAAAC;AAAA,MAJ0BJ,GAKvBK,IAAAC,EALuBN,GAKvB;AAAA,IAJH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAMO,IAAUC,EAAA,GACVC,IAAcC,EAAA,GACdC,IAAUP,KAAMG,EAAQ,WAAWE;AAEzC,SACE,gBAAAG;AAAA,IAACX;AAAA,IAAAY,EAAAC,EAAA;AAAA,MACC,IAAIH;AAAA,MACJ,WAAW,GAAGI,EAAqB,IAAI,CAAC,8CAA8CZ,CAAS;AAAA,OAC3FE,IAHL;AAAA,MAKE,UAAAH;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import { jsx as p } from "react/jsx-runtime";
3
+ import { isValidElement as u, cloneElement as a } from "react";
4
+ import { useDialogContext as l } from "../../providers/DialogContext.js";
5
+ function g({
6
+ children: o,
7
+ asChild: r = !1
8
+ }) {
9
+ const { onOpenChange: t } = l();
10
+ return r && u(o) ? a(o, {
11
+ onClick: (i) => {
12
+ var e, n;
13
+ t(!0), (n = (e = o.props).onClick) == null || n.call(e, i);
14
+ }
15
+ }) : /* @__PURE__ */ p(
16
+ "button",
17
+ {
18
+ type: "button",
19
+ onClick: () => t(!0),
20
+ "aria-haspopup": "dialog",
21
+ children: o
22
+ }
23
+ );
24
+ }
25
+ export {
26
+ g as DialogTrigger
27
+ };
28
+ //# sourceMappingURL=DialogTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogTrigger.js","sources":["../../../../../src/ui/components/Dialog/DialogTrigger.tsx"],"sourcesContent":["\"use client\";\n\nimport { cloneElement, isValidElement, type ReactElement } from \"react\";\nimport { useDialogContext } from \"../../providers/DialogContext\";\n\ntype TriggerChildProps = {\n onClick?: (e: React.MouseEvent) => void;\n};\n\nexport interface DialogTriggerProps {\n children: ReactElement<TriggerChildProps>;\n asChild?: boolean;\n}\n\nexport function DialogTrigger({\n children,\n asChild = false,\n}: DialogTriggerProps) {\n const { onOpenChange } = useDialogContext();\n\n if (asChild && isValidElement<TriggerChildProps>(children)) {\n return cloneElement(children, {\n onClick: (e: React.MouseEvent) => {\n onOpenChange(true);\n children.props.onClick?.(e);\n },\n });\n }\n\n return (\n <button\n type=\"button\"\n onClick={() => onOpenChange(true)}\n aria-haspopup=\"dialog\"\n >\n {children}\n </button>\n );\n}\n"],"names":["DialogTrigger","children","asChild","onOpenChange","useDialogContext","isValidElement","cloneElement","e","_b","_a","jsx"],"mappings":";;;;AAcO,SAASA,EAAc;AAAA,EAC5B,UAAAC;AAAA,EACA,SAAAC,IAAU;AACZ,GAAuB;AACrB,QAAM,EAAE,cAAAC,EAAA,IAAiBC,EAAA;AAEzB,SAAIF,KAAWG,EAAkCJ,CAAQ,IAChDK,EAAaL,GAAU;AAAA,IAC5B,SAAS,CAACM,MAAwB;;AAChC,MAAAJ,EAAa,EAAI,IACjBK,KAAAC,IAAAR,EAAS,OAAM,YAAf,QAAAO,EAAA,KAAAC,GAAyBF;AAAA,IAC3B;AAAA,EAAA,CACD,IAID,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAS,MAAMP,EAAa,EAAI;AAAA,MAChC,iBAAc;AAAA,MAEb,UAAAF;AAAA,IAAA;AAAA,EAAA;AAGP;"}