@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 @@
1
+ {"version":3,"file":"Sidebar.js","sources":["../../../../../../../src/ui/components/SideNavbar/components/Sidebar/Sidebar.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState, useRef, useMemo, useCallback } from \"react\";\nimport { SidebarContext } from \"../../contexts/SidebarContext\";\nimport { useSideNavbarStateRequired } from \"../../contexts/SideNavbarStateContext\";\nimport { useSideNavbarThemeRequired } from \"../../contexts/SideNavbarThemeContext\";\nimport { parseWidthToPixels } from \"../../utils\";\nimport type { SidebarProps, SidebarContextValue } from \"../../types\";\nimport SidebarHeader from \"./SidebarHeader\";\nimport SidebarContent from \"./SidebarContent\";\nimport SidebarFooter from \"./SidebarFooter\";\nimport SidebarGroup from \"./SidebarGroup\";\nimport { SidebarSlot } from \"./SidebarSlot\";\nimport { SidebarSlotContent } from \"./SidebarSlotContent\";\nimport { cn } from \"../../../../utils\";\n\n/**\n * Sidebar subcomponent for SideNavbar\n *\n * Provides its own context that inherits from the root SideNavbar context.\n * Contains the expandable content area with header, content, and footer.\n *\n * @example\n * ```tsx\n * <SideNavbar.Sidebar>\n * <SideNavbar.Sidebar.Header title=\"Dashboard\" />\n * <SideNavbar.Sidebar.Content>\n * <SideNavbar.Sidebar.Group id=\"filters\" title=\"Filters\">\n * <FilterList />\n * </SideNavbar.Sidebar.Group>\n * </SideNavbar.Sidebar.Content>\n * <SideNavbar.Sidebar.Footer>\n * <Button>Apply</Button>\n * </SideNavbar.Sidebar.Footer>\n * </SideNavbar.Sidebar>\n * ```\n */\nfunction Sidebar({ children, className = \"\", style, ...props }: SidebarProps) {\n const rootState = useSideNavbarStateRequired();\n const rootTheme = useSideNavbarThemeRequired();\n const sidebarRef = useRef<HTMLDivElement>(null);\n const [scrollPosition, setScrollPosition] = useState(0);\n const [hasHeader, setHasHeader] = useState(false);\n const [hasFooter, setHasFooter] = useState(false);\n const [activeGroup, setActiveGroup] = useState<string | null>(null);\n\n const registerHeader = useCallback(() => setHasHeader(true), []);\n const unregisterHeader = useCallback(() => setHasHeader(false), []);\n const registerFooter = useCallback(() => setHasFooter(true), []);\n const unregisterFooter = useCallback(() => setHasFooter(false), []);\n\n const contextValue: SidebarContextValue = useMemo(\n () => ({\n // Inherited from root\n collapsed: rootState.collapsed,\n currentWidth: rootState.currentWidth,\n isMobile: rootState.isMobile,\n // Sidebar-specific\n sidebarRef,\n scrollPosition,\n setScrollPosition,\n hasHeader,\n hasFooter,\n registerHeader,\n unregisterHeader,\n registerFooter,\n unregisterFooter,\n activeGroup,\n setActiveGroup,\n }),\n [\n rootState.collapsed,\n rootState.currentWidth,\n rootState.isMobile,\n scrollPosition,\n hasHeader,\n hasFooter,\n registerHeader,\n unregisterHeader,\n registerFooter,\n unregisterFooter,\n activeGroup,\n ],\n );\n\n // Calculate sidebar width (total width minus navigation width)\n const totalWidth = parseWidthToPixels(rootTheme.contentWidth);\n const navWidth = parseWidthToPixels(rootTheme.navigationWidth);\n const sidebarWidth = totalWidth - navWidth;\n\n return (\n <SidebarContext.Provider value={contextValue}>\n {/* This inner container was previously an `<aside>` — a second\n * landmark nested inside SideNavbarRoot's outer `<aside\n * role=\"complementary\" aria-label=\"Sidebar navigation\">`. axe\n * `landmark-complementary-is-top-level` flagged it across all 20+\n * SideNavbar stories. The outer aside already provides the\n * landmark; this inner div is purely a layout container for the\n * collapsible content area. */}\n <div\n ref={sidebarRef}\n className={cn(\n \"flex\",\n \"flex-col\",\n \"h-full\",\n \"bg-surface-subtle\",\n \"border-r\",\n \"border-line-default\",\n \"overflow-hidden\",\n className,\n )}\n style={{\n width: rootState.collapsed ? 0 : sidebarWidth,\n opacity: rootState.collapsed ? 0 : 1,\n visibility: rootState.collapsed ? \"hidden\" : \"visible\",\n transitionProperty: \"width, opacity, visibility\",\n transitionDuration: `${rootTheme.animationDuration}ms`,\n transitionTimingFunction: rootTheme.animationEasing,\n ...style,\n }}\n aria-hidden={rootState.collapsed}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n );\n}\n\n// Attach compound components\nSidebar.Header = SidebarHeader;\nSidebar.Content = SidebarContent;\nSidebar.Footer = SidebarFooter;\nSidebar.Group = SidebarGroup;\n// Slot components (exclusive to Sidebar, not Navbar)\nSidebar.Slot = SidebarSlot;\nSidebar.SlotContent = SidebarSlotContent;\n\nexport default Sidebar;\n"],"names":["Sidebar","_a","_b","children","className","style","props","__objRest","rootState","useSideNavbarStateRequired","rootTheme","useSideNavbarThemeRequired","sidebarRef","useRef","scrollPosition","setScrollPosition","useState","hasHeader","setHasHeader","hasFooter","setHasFooter","activeGroup","setActiveGroup","registerHeader","useCallback","unregisterHeader","registerFooter","unregisterFooter","contextValue","useMemo","totalWidth","parseWidthToPixels","navWidth","sidebarWidth","jsx","SidebarContext","__spreadProps","__spreadValues","cn","SidebarHeader","SidebarContent","SidebarFooter","SidebarGroup","SidebarSlot","SidebarSlotContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,SAASA,EAAQC,GAA6D;AAA7D,MAAAC,IAAAD,GAAE,YAAAE,GAAU,WAAAC,IAAY,IAAI,OAAAC,MAA5BH,GAAsCI,IAAAC,EAAtCL,GAAsC,CAApC,YAAU,aAAgB;AAC3C,QAAMM,IAAYC,EAAA,GACZC,IAAYC,EAAA,GACZC,IAAaC,EAAuB,IAAI,GACxC,CAACC,GAAgBC,CAAiB,IAAIC,EAAS,CAAC,GAChD,CAACC,GAAWC,CAAY,IAAIF,EAAS,EAAK,GAC1C,CAACG,GAAWC,CAAY,IAAIJ,EAAS,EAAK,GAC1C,CAACK,GAAaC,CAAc,IAAIN,EAAwB,IAAI,GAE5DO,IAAiBC,EAAY,MAAMN,EAAa,EAAI,GAAG,CAAA,CAAE,GACzDO,IAAmBD,EAAY,MAAMN,EAAa,EAAK,GAAG,CAAA,CAAE,GAC5DQ,IAAiBF,EAAY,MAAMJ,EAAa,EAAI,GAAG,CAAA,CAAE,GACzDO,IAAmBH,EAAY,MAAMJ,EAAa,EAAK,GAAG,CAAA,CAAE,GAE5DQ,IAAoCC;AAAA,IACxC,OAAO;AAAA;AAAA,MAEL,WAAWrB,EAAU;AAAA,MACrB,cAAcA,EAAU;AAAA,MACxB,UAAUA,EAAU;AAAA;AAAA,MAEpB,YAAAI;AAAA,MACA,gBAAAE;AAAA,MACA,mBAAAC;AAAA,MACA,WAAAE;AAAA,MACA,WAAAE;AAAA,MACA,gBAAAI;AAAA,MACA,kBAAAE;AAAA,MACA,gBAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,aAAAN;AAAA,MACA,gBAAAC;AAAA,IAAA;AAAA,IAEF;AAAA,MACEd,EAAU;AAAA,MACVA,EAAU;AAAA,MACVA,EAAU;AAAA,MACVM;AAAA,MACAG;AAAA,MACAE;AAAA,MACAI;AAAA,MACAE;AAAA,MACAC;AAAA,MACAC;AAAA,MACAN;AAAA,IAAA;AAAA,EACF,GAIIS,IAAaC,EAAmBrB,EAAU,YAAY,GACtDsB,IAAWD,EAAmBrB,EAAU,eAAe,GACvDuB,IAAeH,IAAaE;AAElC,SACE,gBAAAE,EAACC,EAAe,UAAf,EAAwB,OAAOP,GAQ9B,UAAA,gBAAAM;AAAA,IAAC;AAAA,IAAAE,EAAAC,EAAA;AAAA,MACC,KAAKzB;AAAA,MACL,WAAW0B;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAlC;AAAA,MAAA;AAAA,MAEF,OAAOiC,EAAA;AAAA,QACL,OAAO7B,EAAU,YAAY,IAAIyB;AAAA,QACjC,SAASzB,EAAU,YAAY,IAAI;AAAA,QACnC,YAAYA,EAAU,YAAY,WAAW;AAAA,QAC7C,oBAAoB;AAAA,QACpB,oBAAoB,GAAGE,EAAU,iBAAiB;AAAA,QAClD,0BAA0BA,EAAU;AAAA,SACjCL;AAAA,MAEL,eAAaG,EAAU;AAAA,OACnBF,IAtBL;AAAA,MAwBE,UAAAH;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;AAGAH,EAAQ,SAASuC;AACjBvC,EAAQ,UAAUwC;AAClBxC,EAAQ,SAASyC;AACjBzC,EAAQ,QAAQ0C;AAEhB1C,EAAQ,OAAO2C;AACf3C,EAAQ,cAAc4C;"}
@@ -0,0 +1,71 @@
1
+ "use client";
2
+ var w = Object.defineProperty, g = Object.defineProperties;
3
+ var y = Object.getOwnPropertyDescriptors;
4
+ var e = Object.getOwnPropertySymbols;
5
+ var a = Object.prototype.hasOwnProperty, d = Object.prototype.propertyIsEnumerable;
6
+ var i = (o, r, t) => r in o ? w(o, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[r] = t, n = (o, r) => {
7
+ for (var t in r || (r = {}))
8
+ a.call(r, t) && i(o, t, r[t]);
9
+ if (e)
10
+ for (var t of e(r))
11
+ d.call(r, t) && i(o, t, r[t]);
12
+ return o;
13
+ }, f = (o, r) => g(o, y(r));
14
+ var m = (o, r) => {
15
+ var t = {};
16
+ for (var l in o)
17
+ a.call(o, l) && r.indexOf(l) < 0 && (t[l] = o[l]);
18
+ if (o != null && e)
19
+ for (var l of e(o))
20
+ r.indexOf(l) < 0 && d.call(o, l) && (t[l] = o[l]);
21
+ return t;
22
+ };
23
+ import { jsx as T } from "react/jsx-runtime";
24
+ import { useSidebarRequired as E } from "../../contexts/SidebarContext.js";
25
+ import { SIDEBAR_TOKENS as s } from "../../../../tokens/sidebar.js";
26
+ import { getSpacingClass as I } from "../../../../tokens/spacing.js";
27
+ function B(N) {
28
+ var c = N, {
29
+ scrollable: o = !0,
30
+ padding: r = "md",
31
+ children: t,
32
+ className: l = "",
33
+ style: u
34
+ } = c, p = m(c, [
35
+ "scrollable",
36
+ "padding",
37
+ "children",
38
+ "className",
39
+ "style"
40
+ ]);
41
+ const { collapsed: S, setScrollPosition: b } = E();
42
+ if (S)
43
+ return null;
44
+ const h = r !== "none" ? I(r, "p") : "", v = o ? "overflow-y-auto overflow-x-hidden" : "overflow-hidden", x = o ? {
45
+ scrollbarWidth: s.content.scrollbar.width,
46
+ scrollbarColor: `${s.content.scrollbar.color.thumb} ${s.content.scrollbar.color.track}`
47
+ } : {}, C = ($) => {
48
+ o && b($.currentTarget.scrollTop);
49
+ };
50
+ return /* @__PURE__ */ T(
51
+ "div",
52
+ f(n({
53
+ className: `
54
+ flex-1
55
+ min-h-0
56
+ ${v}
57
+ ${h}
58
+ ${l}
59
+ `,
60
+ style: n(n({}, x), u),
61
+ onScroll: C,
62
+ tabIndex: o ? 0 : void 0
63
+ }, p), {
64
+ children: t
65
+ })
66
+ );
67
+ }
68
+ export {
69
+ B as default
70
+ };
71
+ //# sourceMappingURL=SidebarContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarContent.js","sources":["../../../../../../../src/ui/components/SideNavbar/components/Sidebar/SidebarContent.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { useSidebarRequired } from \"../../contexts/SidebarContext\";\nimport { getSpacingClass } from \"../../../../tokens\";\nimport { SIDEBAR_TOKENS } from \"../../../../tokens/sidebar\";\nimport type { SidebarContentProps } from \"../../types\";\n\n/**\n * Content component for the Sidebar subcomponent\n *\n * The main scrollable area of the sidebar.\n * Supports configurable padding and scroll tracking.\n *\n * @example\n * ```tsx\n * <SideNavbar.Sidebar.Content padding=\"md\" scrollable>\n * <SideNavbar.Sidebar.Group id=\"filters\" title=\"Filters\">\n * <FilterList />\n * </SideNavbar.Sidebar.Group>\n * </SideNavbar.Sidebar.Content>\n * ```\n */\nexport default function SidebarContent({\n scrollable = true,\n padding = \"md\",\n children,\n className = \"\",\n style,\n ...props\n}: SidebarContentProps) {\n const { collapsed, setScrollPosition } = useSidebarRequired();\n\n if (collapsed) {\n return null;\n }\n\n const paddingClass = padding !== \"none\" ? getSpacingClass(padding, \"p\") : \"\";\n\n const scrollClasses = scrollable\n ? \"overflow-y-auto overflow-x-hidden\"\n : \"overflow-hidden\";\n\n const scrollbarStyles = scrollable\n ? {\n scrollbarWidth: SIDEBAR_TOKENS.content.scrollbar.width as \"thin\",\n scrollbarColor: `${SIDEBAR_TOKENS.content.scrollbar.color.thumb} ${SIDEBAR_TOKENS.content.scrollbar.color.track}`,\n }\n : {};\n\n const handleScroll = (e: React.UIEvent<HTMLDivElement>) => {\n if (scrollable) {\n setScrollPosition(e.currentTarget.scrollTop);\n }\n };\n\n return (\n <div\n className={`\n flex-1\n min-h-0\n ${scrollClasses}\n ${paddingClass}\n ${className}\n `}\n style={{\n ...scrollbarStyles,\n ...style,\n }}\n onScroll={handleScroll}\n // Defensive `tabIndex={0}` on the scrollable container so keyboard\n // users can enter the region and scroll with arrow keys. Required\n // by axe `scrollable-region-focusable` (serious) whenever the\n // content inside doesn't include focusable elements (the\n // LongContent story rendered plain text with no actionable items;\n // a keyboard user had no way to reach the scrollbar). When the\n // content DOES include focusable elements axe is also satisfied,\n // so the attribute is harmless then. Only set when scrollable\n // (a non-scrollable container has no region to enter).\n tabIndex={scrollable ? 0 : undefined}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"names":["SidebarContent","_a","_b","scrollable","padding","children","className","style","props","__objRest","collapsed","setScrollPosition","useSidebarRequired","paddingClass","getSpacingClass","scrollClasses","scrollbarStyles","SIDEBAR_TOKENS","handleScroll","e","jsx","__spreadProps","__spreadValues"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,SAAwBA,EAAeC,GAOf;AAPe,MAAAC,IAAAD,GACrC;AAAA,gBAAAE,IAAa;AAAA,IACb,SAAAC,IAAU;AAAA,IACV,UAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,OAAAC;AAAA,MALqCL,GAMlCM,IAAAC,EANkCP,GAMlC;AAAA,IALH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAM,EAAE,WAAAQ,GAAW,mBAAAC,EAAA,IAAsBC,EAAA;AAEzC,MAAIF;AACF,WAAO;AAGT,QAAMG,IAAeT,MAAY,SAASU,EAAgBV,GAAS,GAAG,IAAI,IAEpEW,IAAgBZ,IAClB,sCACA,mBAEEa,IAAkBb,IACpB;AAAA,IACE,gBAAgBc,EAAe,QAAQ,UAAU;AAAA,IACjD,gBAAgB,GAAGA,EAAe,QAAQ,UAAU,MAAM,KAAK,IAAIA,EAAe,QAAQ,UAAU,MAAM,KAAK;AAAA,EAAA,IAEjH,CAAA,GAEEC,IAAe,CAACC,MAAqC;AACzD,IAAIhB,KACFQ,EAAkBQ,EAAE,cAAc,SAAS;AAAA,EAE/C;AAEA,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAAC,EAAAC,EAAA;AAAA,MACC,WAAW;AAAA;AAAA;AAAA,UAGPP,CAAa;AAAA,UACbF,CAAY;AAAA,UACZP,CAAS;AAAA;AAAA,MAEb,OAAOgB,IAAA,IACFN,IACAT;AAAA,MAEL,UAAUW;AAAA,MAUV,UAAUf,IAAa,IAAI;AAAA,OACvBK,IAvBL;AAAA,MAyBE,UAAAH;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -0,0 +1,64 @@
1
+ "use client";
2
+ var F = Object.defineProperty, S = Object.defineProperties;
3
+ var $ = Object.getOwnPropertyDescriptors;
4
+ var s = Object.getOwnPropertySymbols;
5
+ var a = Object.prototype.hasOwnProperty, f = Object.prototype.propertyIsEnumerable;
6
+ var l = (e, r, t) => r in e ? F(e, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[r] = t, d = (e, r) => {
7
+ for (var t in r || (r = {}))
8
+ a.call(r, t) && l(e, t, r[t]);
9
+ if (s)
10
+ for (var t of s(r))
11
+ f.call(r, t) && l(e, t, r[t]);
12
+ return e;
13
+ }, m = (e, r) => S(e, $(r));
14
+ var c = (e, r) => {
15
+ var t = {};
16
+ for (var o in e)
17
+ a.call(e, o) && r.indexOf(o) < 0 && (t[o] = e[o]);
18
+ if (e != null && s)
19
+ for (var o of s(e))
20
+ r.indexOf(o) < 0 && f.call(e, o) && (t[o] = e[o]);
21
+ return t;
22
+ };
23
+ import { jsx as C } from "react/jsx-runtime";
24
+ import { useEffect as h } from "react";
25
+ import { useSidebarRequired as j } from "../../contexts/SidebarContext.js";
26
+ import { getSpacingClass as k } from "../../../../tokens/spacing.js";
27
+ function y(q) {
28
+ var i = q, {
29
+ padding: e = "md",
30
+ showBorder: r = !0,
31
+ children: t,
32
+ className: o = "",
33
+ style: p
34
+ } = i, b = c(i, [
35
+ "padding",
36
+ "showBorder",
37
+ "children",
38
+ "className",
39
+ "style"
40
+ ]);
41
+ const { collapsed: g, registerFooter: n, unregisterFooter: u } = j();
42
+ if (h(() => (n(), () => u()), [n, u]), g)
43
+ return null;
44
+ const x = e !== "none" ? k(e, "p") : "";
45
+ return /* @__PURE__ */ C(
46
+ "div",
47
+ m(d({
48
+ className: `
49
+ flex-shrink-0
50
+ ${x}
51
+ ${r ? "border-t border-line-default" : ""}
52
+ bg-surface-subtle
53
+ ${o}
54
+ `,
55
+ style: p
56
+ }, b), {
57
+ children: t
58
+ })
59
+ );
60
+ }
61
+ export {
62
+ y as default
63
+ };
64
+ //# sourceMappingURL=SidebarFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarFooter.js","sources":["../../../../../../../src/ui/components/SideNavbar/components/Sidebar/SidebarFooter.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport { useSidebarRequired } from \"../../contexts/SidebarContext\";\nimport { getSpacingClass } from \"../../../../tokens\";\nimport type { SidebarFooterProps } from \"../../types\";\n\n/**\n * Footer component for the Sidebar subcomponent\n *\n * Displays content at the bottom of the sidebar.\n * Automatically registers its presence with the Sidebar context.\n *\n * @example\n * ```tsx\n * <SideNavbar.Sidebar.Footer>\n * <Button variant=\"primary\">Apply Changes</Button>\n * </SideNavbar.Sidebar.Footer>\n * ```\n */\nexport default function SidebarFooter({\n padding = \"md\",\n showBorder = true,\n children,\n className = \"\",\n style,\n ...props\n}: SidebarFooterProps) {\n const { collapsed, registerFooter, unregisterFooter } = useSidebarRequired();\n\n // Register footer presence with Sidebar context\n useEffect(() => {\n registerFooter();\n return () => unregisterFooter();\n }, [registerFooter, unregisterFooter]);\n\n if (collapsed) {\n return null;\n }\n\n const paddingClass = padding !== \"none\" ? getSpacingClass(padding, \"p\") : \"\";\n\n return (\n <div\n className={`\n flex-shrink-0\n ${paddingClass}\n ${showBorder ? \"border-t border-line-default\" : \"\"}\n bg-surface-subtle\n ${className}\n `}\n style={style}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"names":["SidebarFooter","_a","_b","padding","showBorder","children","className","style","props","__objRest","collapsed","registerFooter","unregisterFooter","useSidebarRequired","useEffect","paddingClass","getSpacingClass","jsx","__spreadProps","__spreadValues"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,SAAwBA,EAAcC,GAOf;AAPe,MAAAC,IAAAD,GACpC;AAAA,aAAAE,IAAU;AAAA,IACV,YAAAC,IAAa;AAAA,IACb,UAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,OAAAC;AAAA,MALoCL,GAMjCM,IAAAC,EANiCP,GAMjC;AAAA,IALH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAM,EAAE,WAAAQ,GAAW,gBAAAC,GAAgB,kBAAAC,EAAA,IAAqBC,EAAA;AAQxD,MALAC,EAAU,OACRH,EAAA,GACO,MAAMC,EAAA,IACZ,CAACD,GAAgBC,CAAgB,CAAC,GAEjCF;AACF,WAAO;AAGT,QAAMK,IAAeZ,MAAY,SAASa,EAAgBb,GAAS,GAAG,IAAI;AAE1E,SACE,gBAAAc;AAAA,IAAC;AAAA,IAAAC,EAAAC,EAAA;AAAA,MACC,WAAW;AAAA;AAAA,UAEPJ,CAAY;AAAA,UACZX,IAAa,iCAAiC,EAAE;AAAA;AAAA,UAEhDE,CAAS;AAAA;AAAA,MAEb,OAAAC;AAAA,OACIC,IATL;AAAA,MAWE,UAAAH;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -0,0 +1,141 @@
1
+ "use client";
2
+ var A = Object.defineProperty, z = Object.defineProperties;
3
+ var E = Object.getOwnPropertyDescriptors;
4
+ var n = Object.getOwnPropertySymbols;
5
+ var h = Object.prototype.hasOwnProperty, b = Object.prototype.propertyIsEnumerable;
6
+ var g = (e, r, t) => r in e ? A(e, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[r] = t, N = (e, r) => {
7
+ for (var t in r || (r = {}))
8
+ h.call(r, t) && g(e, t, r[t]);
9
+ if (n)
10
+ for (var t of n(r))
11
+ b.call(r, t) && g(e, t, r[t]);
12
+ return e;
13
+ }, y = (e, r) => z(e, E(r));
14
+ var S = (e, r) => {
15
+ var t = {};
16
+ for (var s in e)
17
+ h.call(e, s) && r.indexOf(s) < 0 && (t[s] = e[s]);
18
+ if (e != null && n)
19
+ for (var s of n(e))
20
+ r.indexOf(s) < 0 && b.call(e, s) && (t[s] = e[s]);
21
+ return t;
22
+ };
23
+ import { jsxs as m, jsx as i } from "react/jsx-runtime";
24
+ import { useRef as H, useEffect as I } from "react";
25
+ import { ChevronDown as T } from "lucide-react";
26
+ import { useSidebarRequired as B } from "../../contexts/SidebarContext.js";
27
+ import { useSideNavbarStateRequired as F } from "../../contexts/SideNavbarStateContext.js";
28
+ import { useSideNavbarThemeRequired as J } from "../../contexts/SideNavbarThemeContext.js";
29
+ import K from "../../../../primitives/Collapsible/Collapsible.js";
30
+ import { getSpacingClass as a } from "../../../../tokens/spacing.js";
31
+ function Z(L) {
32
+ var p = L, {
33
+ id: e,
34
+ title: r,
35
+ icon: t,
36
+ actions: s,
37
+ collapsible: o = !0,
38
+ defaultCollapsed: c = !1,
39
+ children: f,
40
+ className: C = ""
41
+ } = p, w = S(p, [
42
+ "id",
43
+ "title",
44
+ "icon",
45
+ "actions",
46
+ "collapsible",
47
+ "defaultCollapsed",
48
+ "children",
49
+ "className"
50
+ ]);
51
+ var $;
52
+ const {
53
+ collapsed: G,
54
+ activeGroup: R,
55
+ setActiveGroup: j
56
+ } = B(), { groupStates: u, toggleGroup: q, setGroupCollapsed: l } = F(), { animationDuration: v } = J(), x = H(!1);
57
+ if (I(() => {
58
+ !x.current && u[e] === void 0 && (x.current = !0, l(e, c));
59
+ }, [e, c, u, l]), G)
60
+ return null;
61
+ const d = ($ = u[e]) != null ? $ : c, D = R === e, k = () => {
62
+ j(e), o && q(e);
63
+ };
64
+ return /* @__PURE__ */ m(
65
+ "div",
66
+ y(N({
67
+ className: `
68
+ border-b
69
+ border-line-default
70
+ last:border-b-0
71
+ ${C}
72
+ `
73
+ }, w), {
74
+ children: [
75
+ r && /* @__PURE__ */ m(
76
+ "button",
77
+ {
78
+ type: "button",
79
+ onClick: k,
80
+ className: `
81
+ flex
82
+ items-center
83
+ justify-between
84
+ w-full
85
+ ${a("md", "px")}
86
+ ${a("2.5", "py")}
87
+ text-left
88
+ transition-colors
89
+ duration-150
90
+ ${D ? "bg-surface-active" : "hover:bg-surface-active"}
91
+ ${o ? "cursor-pointer" : "cursor-default"}
92
+ `,
93
+ "aria-expanded": o ? !d : void 0,
94
+ "aria-controls": o ? `sidebar-group-${e}` : void 0,
95
+ children: [
96
+ /* @__PURE__ */ m("div", { className: `flex items-center ${a("sm", "gap")}`, children: [
97
+ t && /* @__PURE__ */ i("span", { className: "w-4 h-4 text-fg-tertiary", children: t }),
98
+ /* @__PURE__ */ i("span", { className: "text-sm font-medium text-fg-secondary", children: r })
99
+ ] }),
100
+ /* @__PURE__ */ m("div", { className: `flex items-center ${a("sm", "gap")}`, children: [
101
+ s,
102
+ o && /* @__PURE__ */ i(
103
+ T,
104
+ {
105
+ className: `
106
+ w-4
107
+ h-4
108
+ text-fg-tertiary
109
+ transition-transform
110
+ ${d ? "-rotate-90" : "rotate-0"}
111
+ `,
112
+ style: { transitionDuration: `${v}ms` },
113
+ "aria-hidden": "true"
114
+ }
115
+ )
116
+ ] })
117
+ ]
118
+ }
119
+ ),
120
+ o ? /* @__PURE__ */ i(K, { open: !d, duration: v, children: /* @__PURE__ */ i(
121
+ "div",
122
+ {
123
+ id: `sidebar-group-${e}`,
124
+ className: `${a("md", "px")} ${a("sm", "py")}`,
125
+ children: f
126
+ }
127
+ ) }) : /* @__PURE__ */ i(
128
+ "div",
129
+ {
130
+ className: `${a("md", "px")} ${a("sm", "py")}`,
131
+ children: f
132
+ }
133
+ )
134
+ ]
135
+ })
136
+ );
137
+ }
138
+ export {
139
+ Z as default
140
+ };
141
+ //# sourceMappingURL=SidebarGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarGroup.js","sources":["../../../../../../../src/ui/components/SideNavbar/components/Sidebar/SidebarGroup.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef } from \"react\";\nimport { ChevronDown } from \"lucide-react\";\nimport { useSidebarRequired } from \"../../contexts/SidebarContext\";\nimport { useSideNavbarStateRequired } from \"../../contexts/SideNavbarStateContext\";\nimport { useSideNavbarThemeRequired } from \"../../contexts/SideNavbarThemeContext\";\nimport Collapsible from \"../../../../primitives/Collapsible/Collapsible\";\nimport { getSpacingClass } from \"../../../../tokens/spacing\";\nimport type { SidebarGroupProps } from \"../../types\";\n\n/**\n * Group component for the Sidebar subcomponent\n *\n * Creates a collapsible section within the sidebar content.\n * State is managed by the root SideNavbar context.\n *\n * @example\n * ```tsx\n * <SideNavbar.Sidebar.Group\n * id=\"filters\"\n * title=\"Filters\"\n * icon={<Filter />}\n * collapsible\n * >\n * <FilterList />\n * </SideNavbar.Sidebar.Group>\n * ```\n */\nexport default function SidebarGroup({\n id,\n title,\n icon,\n actions,\n collapsible = true,\n defaultCollapsed = false,\n children,\n className = \"\",\n ...props\n}: SidebarGroupProps) {\n const {\n collapsed: sidebarCollapsed,\n activeGroup,\n setActiveGroup,\n } = useSidebarRequired();\n const { groupStates, toggleGroup, setGroupCollapsed } =\n useSideNavbarStateRequired();\n const { animationDuration } = useSideNavbarThemeRequired();\n const hasInitialized = useRef(false);\n\n // Initialize group state on mount (only once)\n useEffect(() => {\n if (!hasInitialized.current && groupStates[id] === undefined) {\n hasInitialized.current = true;\n setGroupCollapsed(id, defaultCollapsed);\n }\n }, [id, defaultCollapsed, groupStates, setGroupCollapsed]);\n\n // Don't render if sidebar is collapsed\n if (sidebarCollapsed) {\n return null;\n }\n\n const isCollapsed = groupStates[id] ?? defaultCollapsed;\n const isActive = activeGroup === id;\n\n const handleHeaderClick = () => {\n setActiveGroup(id);\n if (collapsible) {\n toggleGroup(id);\n }\n };\n\n return (\n <div\n className={`\n border-b\n border-line-default\n last:border-b-0\n ${className}\n `}\n {...props}\n >\n {title && (\n <button\n type=\"button\"\n onClick={handleHeaderClick}\n className={`\n flex\n items-center\n justify-between\n w-full\n ${getSpacingClass(\"md\", \"px\")}\n ${getSpacingClass(\"2.5\", \"py\")}\n text-left\n transition-colors\n duration-150\n ${isActive ? \"bg-surface-active\" : \"hover:bg-surface-active\"}\n ${!collapsible ? \"cursor-default\" : \"cursor-pointer\"}\n `}\n aria-expanded={collapsible ? !isCollapsed : undefined}\n aria-controls={collapsible ? `sidebar-group-${id}` : undefined}\n >\n <div className={`flex items-center ${getSpacingClass(\"sm\", \"gap\")}`}>\n {icon && <span className=\"w-4 h-4 text-fg-tertiary\">{icon}</span>}\n <span className=\"text-sm font-medium text-fg-secondary\">\n {title}\n </span>\n </div>\n <div className={`flex items-center ${getSpacingClass(\"sm\", \"gap\")}`}>\n {actions}\n {collapsible && (\n <ChevronDown\n className={`\n w-4\n h-4\n text-fg-tertiary\n transition-transform\n ${isCollapsed ? \"-rotate-90\" : \"rotate-0\"}\n `}\n style={{ transitionDuration: `${animationDuration}ms` }}\n aria-hidden=\"true\"\n />\n )}\n </div>\n </button>\n )}\n\n {collapsible ? (\n <Collapsible open={!isCollapsed} duration={animationDuration}>\n <div\n id={`sidebar-group-${id}`}\n className={`${getSpacingClass(\"md\", \"px\")} ${getSpacingClass(\"sm\", \"py\")}`}\n >\n {children}\n </div>\n </Collapsible>\n ) : (\n <div\n className={`${getSpacingClass(\"md\", \"px\")} ${getSpacingClass(\"sm\", \"py\")}`}\n >\n {children}\n </div>\n )}\n </div>\n );\n}\n"],"names":["SidebarGroup","_a","_b","id","title","icon","actions","collapsible","defaultCollapsed","children","className","props","__objRest","sidebarCollapsed","activeGroup","setActiveGroup","useSidebarRequired","groupStates","toggleGroup","setGroupCollapsed","useSideNavbarStateRequired","animationDuration","useSideNavbarThemeRequired","hasInitialized","useRef","useEffect","isCollapsed","isActive","handleHeaderClick","jsxs","__spreadProps","__spreadValues","getSpacingClass","jsx","ChevronDown","Collapsible"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAwBA,EAAaC,GAUf;AAVe,MAAAC,IAAAD,GACnC;AAAA,QAAAE;AAAA,IACA,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,SAAAC;AAAA,IACA,aAAAC,IAAc;AAAA,IACd,kBAAAC,IAAmB;AAAA,IACnB,UAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,MARuBR,GAShCS,IAAAC,EATgCV,GAShC;AAAA,IARH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;;AAGA,QAAM;AAAA,IACJ,WAAWW;AAAA,IACX,aAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,IACEC,EAAA,GACE,EAAE,aAAAC,GAAa,aAAAC,GAAa,mBAAAC,EAAA,IAChCC,EAAA,GACI,EAAE,mBAAAC,EAAA,IAAsBC,EAAA,GACxBC,IAAiBC,EAAO,EAAK;AAWnC,MARAC,EAAU,MAAM;AACd,IAAI,CAACF,EAAe,WAAWN,EAAYd,CAAE,MAAM,WACjDoB,EAAe,UAAU,IACzBJ,EAAkBhB,GAAIK,CAAgB;AAAA,EAE1C,GAAG,CAACL,GAAIK,GAAkBS,GAAaE,CAAiB,CAAC,GAGrDN;AACF,WAAO;AAGT,QAAMa,KAAczB,IAAAgB,EAAYd,CAAE,MAAd,OAAAF,IAAmBO,GACjCmB,IAAWb,MAAgBX,GAE3ByB,IAAoB,MAAM;AAC9B,IAAAb,EAAeZ,CAAE,GACbI,KACFW,EAAYf,CAAE;AAAA,EAElB;AAEA,SACE,gBAAA0B;AAAA,IAAC;AAAA,IAAAC,EAAAC,EAAA;AAAA,MACC,WAAW;AAAA;AAAA;AAAA;AAAA,UAIPrB,CAAS;AAAA;AAAA,OAETC,IAPL;AAAA,MASE,UAAA;AAAA,QAAAP,KACC,gBAAAyB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAASD;AAAA,YACT,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,cAKPI,EAAgB,MAAM,IAAI,CAAC;AAAA,cAC3BA,EAAgB,OAAO,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA,cAI5BL,IAAW,sBAAsB,yBAAyB;AAAA,cACzDpB,IAAiC,mBAAnB,gBAAmC;AAAA;AAAA,YAEtD,iBAAeA,IAAc,CAACmB,IAAc;AAAA,YAC5C,iBAAenB,IAAc,iBAAiBJ,CAAE,KAAK;AAAA,YAErD,UAAA;AAAA,cAAA,gBAAA0B,EAAC,SAAI,WAAW,qBAAqBG,EAAgB,MAAM,KAAK,CAAC,IAC9D,UAAA;AAAA,gBAAA3B,KAAQ,gBAAA4B,EAAC,QAAA,EAAK,WAAU,4BAA4B,UAAA5B,GAAK;AAAA,gBAC1D,gBAAA4B,EAAC,QAAA,EAAK,WAAU,yCACb,UAAA7B,EAAA,CACH;AAAA,cAAA,GACF;AAAA,cACA,gBAAAyB,EAAC,SAAI,WAAW,qBAAqBG,EAAgB,MAAM,KAAK,CAAC,IAC9D,UAAA;AAAA,gBAAA1B;AAAA,gBACAC,KACC,gBAAA0B;AAAA,kBAACC;AAAA,kBAAA;AAAA,oBACC,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKPR,IAAc,eAAe,UAAU;AAAA;AAAA,oBAE3C,OAAO,EAAE,oBAAoB,GAAGL,CAAiB,KAAA;AAAA,oBACjD,eAAY;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACd,EAAA,CAEJ;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAIHd,IACC,gBAAA0B,EAACE,GAAA,EAAY,MAAM,CAACT,GAAa,UAAUL,GACzC,UAAA,gBAAAY;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI,iBAAiB9B,CAAE;AAAA,YACvB,WAAW,GAAG6B,EAAgB,MAAM,IAAI,CAAC,IAAIA,EAAgB,MAAM,IAAI,CAAC;AAAA,YAEvE,UAAAvB;AAAA,UAAA;AAAA,QAAA,GAEL,IAEA,gBAAAwB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,GAAGD,EAAgB,MAAM,IAAI,CAAC,IAAIA,EAAgB,MAAM,IAAI,CAAC;AAAA,YAEvE,UAAAvB;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,90 @@
1
+ "use client";
2
+ var S = Object.defineProperty, H = Object.defineProperties;
3
+ var N = Object.getOwnPropertyDescriptors;
4
+ var n = Object.getOwnPropertySymbols;
5
+ var f = Object.prototype.hasOwnProperty, c = Object.prototype.propertyIsEnumerable;
6
+ var l = (e, r, s) => r in e ? S(e, r, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[r] = s, p = (e, r) => {
7
+ for (var s in r || (r = {}))
8
+ f.call(r, s) && l(e, s, r[s]);
9
+ if (n)
10
+ for (var s of n(r))
11
+ c.call(r, s) && l(e, s, r[s]);
12
+ return e;
13
+ }, u = (e, r) => H(e, N(r));
14
+ var g = (e, r) => {
15
+ var s = {};
16
+ for (var a in e)
17
+ f.call(e, a) && r.indexOf(a) < 0 && (s[a] = e[a]);
18
+ if (e != null && n)
19
+ for (var a of n(e))
20
+ r.indexOf(a) < 0 && c.call(e, a) && (s[a] = e[a]);
21
+ return s;
22
+ };
23
+ import { jsx as o, jsxs as j, Fragment as C } from "react/jsx-runtime";
24
+ import { useEffect as k } from "react";
25
+ import { useSidebarRequired as q } from "../../contexts/SidebarContext.js";
26
+ import { getTypographyClasses as $ } from "../../../../tokens/typography.js";
27
+ import { getSpacingClass as t } from "../../../../tokens/spacing.js";
28
+ function A(v) {
29
+ var m = v, {
30
+ title: e,
31
+ subtitle: r,
32
+ showBorder: s = !0,
33
+ children: a,
34
+ className: b = "",
35
+ style: h
36
+ } = m, x = g(m, [
37
+ "title",
38
+ "subtitle",
39
+ "showBorder",
40
+ "children",
41
+ "className",
42
+ "style"
43
+ ]);
44
+ const { collapsed: y, registerHeader: i, unregisterHeader: d } = q();
45
+ return k(() => (i(), () => d()), [i, d]), y ? null : /* @__PURE__ */ o(
46
+ "div",
47
+ u(p({
48
+ className: `
49
+ flex-shrink-0
50
+ ${t("md", "px")}
51
+ ${t("sm", "py")}
52
+ ${s ? "border-b border-line-default" : ""}
53
+ bg-surface-subtle
54
+ ${b}
55
+ `,
56
+ style: h
57
+ }, x), {
58
+ children: a || /* @__PURE__ */ j(C, { children: [
59
+ e && /* @__PURE__ */ o(
60
+ "h2",
61
+ {
62
+ className: `
63
+ ${$("h4")}
64
+ text-fg-primary
65
+ ${t("none", "m")}
66
+ font-semibold
67
+ `,
68
+ children: e
69
+ }
70
+ ),
71
+ r && /* @__PURE__ */ o(
72
+ "p",
73
+ {
74
+ className: `
75
+ ${$("bodySmall")}
76
+ text-fg-secondary
77
+ ${t("none", "m")}
78
+ ${t("xs", "mt")}
79
+ `,
80
+ children: r
81
+ }
82
+ )
83
+ ] })
84
+ })
85
+ );
86
+ }
87
+ export {
88
+ A as default
89
+ };
90
+ //# sourceMappingURL=SidebarHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarHeader.js","sources":["../../../../../../../src/ui/components/SideNavbar/components/Sidebar/SidebarHeader.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport { useSidebarRequired } from \"../../contexts/SidebarContext\";\nimport { getSpacingClass, getTypographyClasses } from \"../../../../tokens\";\nimport type { SidebarHeaderProps } from \"../../types\";\n\n/**\n * Header component for the Sidebar subcomponent\n *\n * Displays a title and optional subtitle at the top of the sidebar content.\n * Automatically registers its presence with the Sidebar context.\n *\n * @example\n * ```tsx\n * <SideNavbar.Sidebar.Header title=\"Dashboard\" subtitle=\"Overview\" />\n * ```\n */\nexport default function SidebarHeader({\n title,\n subtitle,\n showBorder = true,\n children,\n className = \"\",\n style,\n ...props\n}: SidebarHeaderProps) {\n const { collapsed, registerHeader, unregisterHeader } = useSidebarRequired();\n\n // Register header presence with Sidebar context\n useEffect(() => {\n registerHeader();\n return () => unregisterHeader();\n }, [registerHeader, unregisterHeader]);\n\n if (collapsed) {\n return null;\n }\n\n return (\n <div\n className={`\n flex-shrink-0\n ${getSpacingClass(\"md\", \"px\")}\n ${getSpacingClass(\"sm\", \"py\")}\n ${showBorder ? \"border-b border-line-default\" : \"\"}\n bg-surface-subtle\n ${className}\n `}\n style={style}\n {...props}\n >\n {children || (\n <>\n {title && (\n <h2\n className={`\n ${getTypographyClasses(\"h4\")}\n text-fg-primary\n ${getSpacingClass(\"none\", \"m\")}\n font-semibold\n `}\n >\n {title}\n </h2>\n )}\n {subtitle && (\n <p\n className={`\n ${getTypographyClasses(\"bodySmall\")}\n text-fg-secondary\n ${getSpacingClass(\"none\", \"m\")}\n ${getSpacingClass(\"xs\", \"mt\")}\n `}\n >\n {subtitle}\n </p>\n )}\n </>\n )}\n </div>\n );\n}\n"],"names":["SidebarHeader","_a","_b","title","subtitle","showBorder","children","className","style","props","__objRest","collapsed","registerHeader","unregisterHeader","useSidebarRequired","useEffect","jsx","__spreadProps","__spreadValues","getSpacingClass","jsxs","Fragment","getTypographyClasses"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,SAAwBA,EAAcC,GAQf;AARe,MAAAC,IAAAD,GACpC;AAAA,WAAAE;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,UAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,OAAAC;AAAA,MANoCN,GAOjCO,IAAAC,EAPiCR,GAOjC;AAAA,IANH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAM,EAAE,WAAAS,GAAW,gBAAAC,GAAgB,kBAAAC,EAAA,IAAqBC,EAAA;AAQxD,SALAC,EAAU,OACRH,EAAA,GACO,MAAMC,EAAA,IACZ,CAACD,GAAgBC,CAAgB,CAAC,GAEjCF,IACK,OAIP,gBAAAK;AAAA,IAAC;AAAA,IAAAC,EAAAC,EAAA;AAAA,MACC,WAAW;AAAA;AAAA,UAEPC,EAAgB,MAAM,IAAI,CAAC;AAAA,UAC3BA,EAAgB,MAAM,IAAI,CAAC;AAAA,UAC3Bd,IAAa,iCAAiC,EAAE;AAAA;AAAA,UAEhDE,CAAS;AAAA;AAAA,MAEb,OAAAC;AAAA,OACIC,IAVL;AAAA,MAYE,eACC,gBAAAW,EAAAC,GAAA,EACG,UAAA;AAAA,QAAAlB,KACC,gBAAAa;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,kBACPM,EAAqB,IAAI,CAAC;AAAA;AAAA,kBAE1BH,EAAgB,QAAQ,GAAG,CAAC;AAAA;AAAA;AAAA,YAI/B,UAAAhB;AAAA,UAAA;AAAA,QAAA;AAAA,QAGJC,KACC,gBAAAY;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,kBACPM,EAAqB,WAAW,CAAC;AAAA;AAAA,kBAEjCH,EAAgB,QAAQ,GAAG,CAAC;AAAA,kBAC5BA,EAAgB,MAAM,IAAI,CAAC;AAAA;AAAA,YAG9B,UAAAf;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import { jsx as n, Fragment as f } from "react/jsx-runtime";
3
+ import { useEffect as i } from "react";
4
+ import { useSidebarSlotRequired as m } from "../../contexts/SidebarSlotContext.js";
5
+ function a({ id: t, children: r }) {
6
+ const { activeSlot: u, registerSlot: e, unregisterSlot: o } = m();
7
+ return i(() => (e(t, r), () => o(t)), [t, r, e, o]), u !== t ? null : /* @__PURE__ */ n(f, { children: r });
8
+ }
9
+ export {
10
+ a as SidebarSlot
11
+ };
12
+ //# sourceMappingURL=SidebarSlot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarSlot.js","sources":["../../../../../../../src/ui/components/SideNavbar/components/Sidebar/SidebarSlot.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, type ReactNode } from \"react\";\nimport { useSidebarSlotRequired } from \"../../contexts/SidebarSlotContext\";\n\nexport interface SidebarSlotProps {\n /** Unique slot identifier */\n id: string;\n /** Slot content */\n children: ReactNode;\n}\n\n/**\n * SidebarSlot Component\n *\n * **Note: Slots are exclusive to the Sidebar component, not the Navbar.**\n *\n * Registers a content slot that can be displayed dynamically within the Sidebar.\n * The slot content is only rendered when it's the active slot.\n * Use this to switch between different content views in the Sidebar based on navigation.\n *\n * @example\n * ```tsx\n * <SideNavbar>\n * <SideNavbar.Navbar>\n * <SideNavbar.Navbar.Item icon={<Home />} label=\"Home\" />\n * </SideNavbar.Navbar>\n *\n * <SidebarSlotProvider defaultSlot=\"dashboard\">\n * <SideNavbar.Sidebar>\n * <SideNavbar.Sidebar.Content>\n * <SidebarSlot id=\"dashboard\">\n * <DashboardContent />\n * </SidebarSlot>\n * <SidebarSlot id=\"settings\">\n * <SettingsContent />\n * </SidebarSlot>\n * <SidebarSlotContent />\n * </SideNavbar.Sidebar.Content>\n * </SideNavbar.Sidebar>\n * </SidebarSlotProvider>\n * </SideNavbar>\n * ```\n */\nexport function SidebarSlot({ id, children }: SidebarSlotProps) {\n const { activeSlot, registerSlot, unregisterSlot } = useSidebarSlotRequired();\n\n useEffect(() => {\n registerSlot(id, children);\n return () => unregisterSlot(id);\n }, [id, children, registerSlot, unregisterSlot]);\n\n // Only render if this is the active slot\n if (activeSlot !== id) {\n return null;\n }\n\n return <>{children}</>;\n}\n"],"names":["SidebarSlot","id","children","activeSlot","registerSlot","unregisterSlot","useSidebarSlotRequired","useEffect"],"mappings":";;;;AA4CO,SAASA,EAAY,EAAE,IAAAC,GAAI,UAAAC,KAA8B;AAC9D,QAAM,EAAE,YAAAC,GAAY,cAAAC,GAAc,gBAAAC,EAAA,IAAmBC,EAAA;AAQrD,SANAC,EAAU,OACRH,EAAaH,GAAIC,CAAQ,GAClB,MAAMG,EAAeJ,CAAE,IAC7B,CAACA,GAAIC,GAAUE,GAAcC,CAAc,CAAC,GAG3CF,MAAeF,IACV,8BAGC,UAAAC,GAAS;AACrB;"}
@@ -0,0 +1,13 @@
1
+ "use client";
2
+ import { jsx as r, Fragment as n } from "react/jsx-runtime";
3
+ import { useSidebarSlotRequired as i } from "../../contexts/SidebarSlotContext.js";
4
+ function u({
5
+ fallback: o = null
6
+ }) {
7
+ const { activeSlot: t, slots: e } = i();
8
+ return !t || !e.has(t) ? /* @__PURE__ */ r(n, { children: o }) : /* @__PURE__ */ r(n, { children: e.get(t) });
9
+ }
10
+ export {
11
+ u as SidebarSlotContent
12
+ };
13
+ //# sourceMappingURL=SidebarSlotContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarSlotContent.js","sources":["../../../../../../../src/ui/components/SideNavbar/components/Sidebar/SidebarSlotContent.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ReactNode } from \"react\";\nimport { useSidebarSlotRequired } from \"../../contexts/SidebarSlotContext\";\n\nexport interface SidebarSlotContentProps {\n /** Fallback content when no slot is active */\n fallback?: ReactNode;\n}\n\n/**\n * SidebarSlotContent Component\n *\n * **Note: This component is exclusive to the Sidebar, not the Navbar.**\n *\n * Container that renders the currently active slot content within the Sidebar.\n * Displays fallback content if no slot is active.\n * Must be used inside a SidebarSlotProvider and within the Sidebar component.\n *\n * @example\n * ```tsx\n * <SideNavbar.Sidebar>\n * <SideNavbar.Sidebar.Content>\n * <SidebarSlotProvider defaultSlot=\"dashboard\">\n * <SidebarSlot id=\"dashboard\">\n * <DashboardContent />\n * </SidebarSlot>\n * <SidebarSlotContent fallback={<EmptyState />} />\n * </SidebarSlotProvider>\n * </SideNavbar.Sidebar.Content>\n * </SideNavbar.Sidebar>\n * ```\n */\nexport function SidebarSlotContent({\n fallback = null,\n}: SidebarSlotContentProps) {\n const { activeSlot, slots } = useSidebarSlotRequired();\n\n if (!activeSlot || !slots.has(activeSlot)) {\n return <>{fallback}</>;\n }\n\n return <>{slots.get(activeSlot)}</>;\n}\n"],"names":["SidebarSlotContent","fallback","activeSlot","slots","useSidebarSlotRequired","jsx","Fragment"],"mappings":";;;AAiCO,SAASA,EAAmB;AAAA,EACjC,UAAAC,IAAW;AACb,GAA4B;AAC1B,QAAM,EAAE,YAAAC,GAAY,OAAAC,EAAA,IAAUC,EAAA;AAE9B,SAAI,CAACF,KAAc,CAACC,EAAM,IAAID,CAAU,2BAC5B,UAAAD,EAAA,CAAS,IAGd,gBAAAI,EAAAC,GAAA,EAAG,UAAAH,EAAM,IAAID,CAAU,GAAE;AAClC;"}
@@ -0,0 +1,20 @@
1
+ "use client";
2
+ import { createContext as n, useContext as t } from "react";
3
+ const r = n(null);
4
+ function a() {
5
+ return t(r);
6
+ }
7
+ function u() {
8
+ const e = t(r);
9
+ if (!e)
10
+ throw new Error(
11
+ "useNavbarRequired must be used within a SideNavbar.Navbar component"
12
+ );
13
+ return e;
14
+ }
15
+ export {
16
+ r as NavbarContext,
17
+ a as useNavbar,
18
+ u as useNavbarRequired
19
+ };
20
+ //# sourceMappingURL=NavbarContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavbarContext.js","sources":["../../../../../../src/ui/components/SideNavbar/contexts/NavbarContext.tsx"],"sourcesContent":["\"use client\";\n\n/* eslint-disable react-refresh/only-export-components */\nimport { createContext, useContext } from \"react\";\nimport type { NavbarContextValue } from \"../types\";\n\n/**\n * Context for the Navbar subcomponent\n *\n * Provides navbar-specific state that inherits from the root SideNavbar context.\n * Must be used within a Navbar component.\n */\nexport const NavbarContext = createContext<NavbarContextValue | null>(null);\n\n/**\n * Hook to access Navbar context (returns null if outside Navbar)\n */\nexport function useNavbar(): NavbarContextValue | null {\n return useContext(NavbarContext);\n}\n\n/**\n * Hook to access Navbar context (throws if outside Navbar)\n * @throws Error if used outside of Navbar component\n */\nexport function useNavbarRequired(): NavbarContextValue {\n const context = useContext(NavbarContext);\n if (!context) {\n throw new Error(\n \"useNavbarRequired must be used within a SideNavbar.Navbar component\",\n );\n }\n return context;\n}\n\nexport default NavbarContext;\n"],"names":["NavbarContext","createContext","useNavbar","useContext","useNavbarRequired","context"],"mappings":";;AAYO,MAAMA,IAAgBC,EAAyC,IAAI;AAKnE,SAASC,IAAuC;AACrD,SAAOC,EAAWH,CAAa;AACjC;AAMO,SAASI,IAAwC;AACtD,QAAMC,IAAUF,EAAWH,CAAa;AACxC,MAAI,CAACK;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAGJ,SAAOA;AACT;"}
@@ -0,0 +1,37 @@
1
+ "use client";
2
+ import { useContext as t, createContext as i } from "react";
3
+ const o = i(null);
4
+ function a() {
5
+ return t(o);
6
+ }
7
+ function n() {
8
+ const e = t(o);
9
+ if (!e)
10
+ throw new Error(
11
+ "useSideNavbarConfigRequired must be used within SideNavbarConfigProvider"
12
+ );
13
+ return e;
14
+ }
15
+ const s = {
16
+ mode: "full",
17
+ resizable: !1,
18
+ minWidth: void 0,
19
+ maxWidth: void 0,
20
+ snapPoints: void 0,
21
+ responsive: !1,
22
+ mobileBreakpoint: 768,
23
+ mobileVariant: "collapse",
24
+ overlayBackdrop: !0,
25
+ persistState: !0,
26
+ persistWidth: !1,
27
+ storageKey: void 0,
28
+ keyboardShortcut: "Ctrl+B",
29
+ enableKeyboardShortcut: !0
30
+ };
31
+ export {
32
+ o as SideNavbarConfigContext,
33
+ s as defaultConfigValues,
34
+ a as useSideNavbarConfig,
35
+ n as useSideNavbarConfigRequired
36
+ };
37
+ //# sourceMappingURL=SideNavbarConfigContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SideNavbarConfigContext.js","sources":["../../../../../../src/ui/components/SideNavbar/contexts/SideNavbarConfigContext.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\nimport type { SideNavbarConfigContextValue } from \"../types\";\n\n/**\n * Config context for SideNavbar behavior configuration.\n * Contains behavioral settings that typically don't change during runtime.\n */\nexport const SideNavbarConfigContext =\n createContext<SideNavbarConfigContextValue | null>(null);\n\n/**\n * Hook to access SideNavbar config context.\n * Returns null if used outside of provider.\n */\nexport function useSideNavbarConfig(): SideNavbarConfigContextValue | null {\n return useContext(SideNavbarConfigContext);\n}\n\n/**\n * Hook to access SideNavbar config context with required check.\n * Throws error if used outside of provider.\n */\nexport function useSideNavbarConfigRequired(): SideNavbarConfigContextValue {\n const context = useContext(SideNavbarConfigContext);\n if (!context) {\n throw new Error(\n \"useSideNavbarConfigRequired must be used within SideNavbarConfigProvider\",\n );\n }\n return context;\n}\n\n// Default values\nexport const defaultConfigValues: SideNavbarConfigContextValue = {\n mode: \"full\",\n resizable: false,\n minWidth: undefined,\n maxWidth: undefined,\n snapPoints: undefined,\n responsive: false,\n mobileBreakpoint: 768,\n mobileVariant: \"collapse\",\n overlayBackdrop: true,\n persistState: true,\n persistWidth: false,\n storageKey: undefined,\n keyboardShortcut: \"Ctrl+B\",\n enableKeyboardShortcut: true,\n};\n"],"names":["SideNavbarConfigContext","createContext","useSideNavbarConfig","useContext","useSideNavbarConfigRequired","context","defaultConfigValues"],"mappings":";;AASO,MAAMA,IACXC,EAAmD,IAAI;AAMlD,SAASC,IAA2D;AACzE,SAAOC,EAAWH,CAAuB;AAC3C;AAMO,SAASI,IAA4D;AAC1E,QAAMC,IAAUF,EAAWH,CAAuB;AAClD,MAAI,CAACK;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAGJ,SAAOA;AACT;AAGO,MAAMC,IAAoD;AAAA,EAC/D,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,wBAAwB;AAC1B;"}
@@ -0,0 +1,20 @@
1
+ "use client";
2
+ import { useContext as t, createContext as a } from "react";
3
+ const r = a(null);
4
+ function i() {
5
+ return t(r);
6
+ }
7
+ function o() {
8
+ const e = t(r);
9
+ if (!e)
10
+ throw new Error(
11
+ "useSideNavbarStateRequired must be used within SideNavbarStateProvider"
12
+ );
13
+ return e;
14
+ }
15
+ export {
16
+ r as SideNavbarStateContext,
17
+ i as useSideNavbarState,
18
+ o as useSideNavbarStateRequired
19
+ };
20
+ //# sourceMappingURL=SideNavbarStateContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SideNavbarStateContext.js","sources":["../../../../../../src/ui/components/SideNavbar/contexts/SideNavbarStateContext.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\nimport type { SideNavbarStateContextValue } from \"../types\";\n\n/**\n * State context for SideNavbar runtime state.\n * Contains mutable state that changes during component lifecycle.\n */\nexport const SideNavbarStateContext =\n createContext<SideNavbarStateContextValue | null>(null);\n\n/**\n * Hook to access SideNavbar state context.\n * Returns null if used outside of provider.\n */\nexport function useSideNavbarState(): SideNavbarStateContextValue | null {\n return useContext(SideNavbarStateContext);\n}\n\n/**\n * Hook to access SideNavbar state context with required check.\n * Throws error if used outside of provider.\n */\nexport function useSideNavbarStateRequired(): SideNavbarStateContextValue {\n const context = useContext(SideNavbarStateContext);\n if (!context) {\n throw new Error(\n \"useSideNavbarStateRequired must be used within SideNavbarStateProvider\",\n );\n }\n return context;\n}\n\n// Default values factory (needs ref)\nexport function createDefaultStateValues(): SideNavbarStateContextValue {\n return {\n collapsed: false,\n toggle: () => {},\n setCollapsed: () => {},\n currentWidth: 320,\n setWidth: () => {},\n isMobile: false,\n isResizing: false,\n startResize: () => {},\n groupStates: {},\n toggleGroup: () => {},\n setGroupCollapsed: () => {},\n sidebarRef: { current: null },\n };\n}\n"],"names":["SideNavbarStateContext","createContext","useSideNavbarState","useContext","useSideNavbarStateRequired","context"],"mappings":";;AASO,MAAMA,IACXC,EAAkD,IAAI;AAMjD,SAASC,IAAyD;AACvE,SAAOC,EAAWH,CAAsB;AAC1C;AAMO,SAASI,IAA0D;AACxE,QAAMC,IAAUF,EAAWH,CAAsB;AACjD,MAAI,CAACK;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAGJ,SAAOA;AACT;"}
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import { useContext as t, createContext as i } from "react";
3
+ const n = i(null);
4
+ function r() {
5
+ return t(n);
6
+ }
7
+ function o() {
8
+ const e = t(n);
9
+ if (!e)
10
+ throw new Error(
11
+ "useSideNavbarThemeRequired must be used within SideNavbarThemeProvider"
12
+ );
13
+ return e;
14
+ }
15
+ const u = {
16
+ variant: "default",
17
+ navigationWidth: "56px",
18
+ contentWidth: "320px",
19
+ animationDuration: 300,
20
+ animationEasing: "ease-in-out"
21
+ };
22
+ export {
23
+ n as SideNavbarThemeContext,
24
+ u as defaultThemeValues,
25
+ r as useSideNavbarTheme,
26
+ o as useSideNavbarThemeRequired
27
+ };
28
+ //# sourceMappingURL=SideNavbarThemeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SideNavbarThemeContext.js","sources":["../../../../../../src/ui/components/SideNavbar/contexts/SideNavbarThemeContext.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\nimport type { SideNavbarThemeContextValue } from \"../types\";\n\n/**\n * Theme context for SideNavbar styling configuration.\n * Contains visual customization options that typically don't change during runtime.\n */\nexport const SideNavbarThemeContext =\n createContext<SideNavbarThemeContextValue | null>(null);\n\n/**\n * Hook to access SideNavbar theme context.\n * Returns null if used outside of provider.\n */\nexport function useSideNavbarTheme(): SideNavbarThemeContextValue | null {\n return useContext(SideNavbarThemeContext);\n}\n\n/**\n * Hook to access SideNavbar theme context with required check.\n * Throws error if used outside of provider.\n */\nexport function useSideNavbarThemeRequired(): SideNavbarThemeContextValue {\n const context = useContext(SideNavbarThemeContext);\n if (!context) {\n throw new Error(\n \"useSideNavbarThemeRequired must be used within SideNavbarThemeProvider\",\n );\n }\n return context;\n}\n\n// Default values\nexport const defaultThemeValues: SideNavbarThemeContextValue = {\n variant: \"default\",\n navigationWidth: \"56px\",\n contentWidth: \"320px\",\n animationDuration: 300,\n animationEasing: \"ease-in-out\",\n};\n"],"names":["SideNavbarThemeContext","createContext","useSideNavbarTheme","useContext","useSideNavbarThemeRequired","context","defaultThemeValues"],"mappings":";;AASO,MAAMA,IACXC,EAAkD,IAAI;AAMjD,SAASC,IAAyD;AACvE,SAAOC,EAAWH,CAAsB;AAC1C;AAMO,SAASI,IAA0D;AACxE,QAAMC,IAAUF,EAAWH,CAAsB;AACjD,MAAI,CAACK;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAGJ,SAAOA;AACT;AAGO,MAAMC,IAAkD;AAAA,EAC7D,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,iBAAiB;AACnB;"}
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { useContext as t, createContext as n } from "react";
3
+ const o = n(null);
4
+ function i() {
5
+ return t(o);
6
+ }
7
+ function u() {
8
+ const e = t(o);
9
+ return e || {
10
+ showMainToggle: !0,
11
+ mainTogglePosition: "floating"
12
+ };
13
+ }
14
+ export {
15
+ o as SideNavbarToggleContext,
16
+ i as useSideNavbarToggleContext,
17
+ u as useSideNavbarToggleContextRequired
18
+ };
19
+ //# sourceMappingURL=SideNavbarToggleContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SideNavbarToggleContext.js","sources":["../../../../../../src/ui/components/SideNavbar/contexts/SideNavbarToggleContext.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\nimport type { SideNavbarTogglePosition } from \"../types\";\n\nexport interface SideNavbarToggleContextValue {\n showMainToggle: boolean;\n mainTogglePosition: SideNavbarTogglePosition;\n}\n\nexport const SideNavbarToggleContext =\n createContext<SideNavbarToggleContextValue | null>(null);\n\nexport function useSideNavbarToggleContext(): SideNavbarToggleContextValue | null {\n return useContext(SideNavbarToggleContext);\n}\n\nexport function useSideNavbarToggleContextRequired(): SideNavbarToggleContextValue {\n const context = useContext(SideNavbarToggleContext);\n if (!context) {\n // Return defaults if context is not available (for backward compatibility)\n return {\n showMainToggle: true,\n mainTogglePosition: \"floating\",\n };\n }\n return context;\n}\n"],"names":["SideNavbarToggleContext","createContext","useSideNavbarToggleContext","useContext","useSideNavbarToggleContextRequired","context"],"mappings":";;AAUO,MAAMA,IACXC,EAAmD,IAAI;AAElD,SAASC,IAAkE;AAChF,SAAOC,EAAWH,CAAuB;AAC3C;AAEO,SAASI,IAAmE;AACjF,QAAMC,IAAUF,EAAWH,CAAuB;AAClD,SAAKK,KAEI;AAAA,IACL,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,EAAA;AAI1B;"}