@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.
- package/README.md +4 -2
- package/dist/granular/index.js +445 -0
- package/dist/granular/index.js.map +1 -0
- package/dist/granular/ui/components/Accordion/Accordion.js +105 -0
- package/dist/granular/ui/components/Accordion/Accordion.js.map +1 -0
- package/dist/granular/ui/components/Autocomplete/Autocomplete.js +133 -0
- package/dist/granular/ui/components/Autocomplete/Autocomplete.js.map +1 -0
- package/dist/granular/ui/components/Autocomplete/AutocompleteList.js +119 -0
- package/dist/granular/ui/components/Autocomplete/AutocompleteList.js.map +1 -0
- package/dist/granular/ui/components/Autocomplete/AutocompleteOption.js +42 -0
- package/dist/granular/ui/components/Autocomplete/AutocompleteOption.js.map +1 -0
- package/dist/granular/ui/components/Breadcrumb/Breadcrumb.js +100 -0
- package/dist/granular/ui/components/Breadcrumb/Breadcrumb.js.map +1 -0
- package/dist/granular/ui/components/Card/Card.js +113 -0
- package/dist/granular/ui/components/Card/Card.js.map +1 -0
- package/dist/granular/ui/components/Card/CardActions.js +51 -0
- package/dist/granular/ui/components/Card/CardActions.js.map +1 -0
- package/dist/granular/ui/components/Card/CardBody.js +32 -0
- package/dist/granular/ui/components/Card/CardBody.js.map +1 -0
- package/dist/granular/ui/components/Card/CardHeader.js +47 -0
- package/dist/granular/ui/components/Card/CardHeader.js.map +1 -0
- package/dist/granular/ui/components/Card/CardSubtitle.js +38 -0
- package/dist/granular/ui/components/Card/CardSubtitle.js.map +1 -0
- package/dist/granular/ui/components/Card/CardTitle.js +61 -0
- package/dist/granular/ui/components/Card/CardTitle.js.map +1 -0
- package/dist/granular/ui/components/ColorPicker/ColorPicker.js +250 -0
- package/dist/granular/ui/components/ColorPicker/ColorPicker.js.map +1 -0
- package/dist/granular/ui/components/CommandPalette/CommandPalette.js +274 -0
- package/dist/granular/ui/components/CommandPalette/CommandPalette.js.map +1 -0
- package/dist/granular/ui/components/DashboardLayout/DashboardLayout.js +37 -0
- package/dist/granular/ui/components/DashboardLayout/DashboardLayout.js.map +1 -0
- package/dist/granular/ui/components/DataGrid/DataGrid.js +155 -0
- package/dist/granular/ui/components/DataGrid/DataGrid.js.map +1 -0
- package/dist/granular/ui/components/DataTablePattern/DataTablePattern.js +113 -0
- package/dist/granular/ui/components/DataTablePattern/DataTablePattern.js.map +1 -0
- package/dist/granular/ui/components/DatePicker/DatePicker.js +126 -0
- package/dist/granular/ui/components/DatePicker/DatePicker.js.map +1 -0
- package/dist/granular/ui/components/DatePicker/DatePickerCalendar.js +294 -0
- package/dist/granular/ui/components/DatePicker/DatePickerCalendar.js.map +1 -0
- package/dist/granular/ui/components/DatePicker/DatePickerContext.js +16 -0
- package/dist/granular/ui/components/DatePicker/DatePickerContext.js.map +1 -0
- package/dist/granular/ui/components/DatePicker/DatePickerInput.js +119 -0
- package/dist/granular/ui/components/DatePicker/DatePickerInput.js.map +1 -0
- package/dist/granular/ui/components/DatePicker/DatePickerProvider.js +47 -0
- package/dist/granular/ui/components/DatePicker/DatePickerProvider.js.map +1 -0
- package/dist/granular/ui/components/Dialog/AlertDialog.js +48 -0
- package/dist/granular/ui/components/Dialog/AlertDialog.js.map +1 -0
- package/dist/granular/ui/components/Dialog/Dialog.js +36 -0
- package/dist/granular/ui/components/Dialog/Dialog.js.map +1 -0
- package/dist/granular/ui/components/Dialog/DialogClose.js +34 -0
- package/dist/granular/ui/components/Dialog/DialogClose.js.map +1 -0
- package/dist/granular/ui/components/Dialog/DialogContent.js +114 -0
- package/dist/granular/ui/components/Dialog/DialogContent.js.map +1 -0
- package/dist/granular/ui/components/Dialog/DialogDescription.js +51 -0
- package/dist/granular/ui/components/Dialog/DialogDescription.js.map +1 -0
- package/dist/granular/ui/components/Dialog/DialogFooter.js +45 -0
- package/dist/granular/ui/components/Dialog/DialogFooter.js.map +1 -0
- package/dist/granular/ui/components/Dialog/DialogHeader.js +45 -0
- package/dist/granular/ui/components/Dialog/DialogHeader.js.map +1 -0
- package/dist/granular/ui/components/Dialog/DialogTitle.js +53 -0
- package/dist/granular/ui/components/Dialog/DialogTitle.js.map +1 -0
- package/dist/granular/ui/components/Dialog/DialogTrigger.js +28 -0
- package/dist/granular/ui/components/Dialog/DialogTrigger.js.map +1 -0
- package/dist/granular/ui/components/Drawer/Drawer.js +47 -0
- package/dist/granular/ui/components/Drawer/Drawer.js.map +1 -0
- package/dist/granular/ui/components/Drawer/DrawerContent.js +140 -0
- package/dist/granular/ui/components/Drawer/DrawerContent.js.map +1 -0
- package/dist/granular/ui/components/Drawer/DrawerContext.js +21 -0
- package/dist/granular/ui/components/Drawer/DrawerContext.js.map +1 -0
- package/dist/granular/ui/components/Drawer/DrawerFooter.js +53 -0
- package/dist/granular/ui/components/Drawer/DrawerFooter.js.map +1 -0
- package/dist/granular/ui/components/Drawer/DrawerHeader.js +50 -0
- package/dist/granular/ui/components/Drawer/DrawerHeader.js.map +1 -0
- package/dist/granular/ui/components/Dropdown/Dropdown.js +243 -0
- package/dist/granular/ui/components/Dropdown/Dropdown.js.map +1 -0
- package/dist/granular/ui/components/EmptyState/EmptyState.js +102 -0
- package/dist/granular/ui/components/EmptyState/EmptyState.js.map +1 -0
- package/dist/granular/ui/components/FileUpload/FileUpload.js +342 -0
- package/dist/granular/ui/components/FileUpload/FileUpload.js.map +1 -0
- package/dist/granular/ui/components/Form/Form.js +184 -0
- package/dist/granular/ui/components/Form/Form.js.map +1 -0
- package/dist/granular/ui/components/Form/FormContext.js +19 -0
- package/dist/granular/ui/components/Form/FormContext.js.map +1 -0
- package/dist/granular/ui/components/Form/FormField.js +66 -0
- package/dist/granular/ui/components/Form/FormField.js.map +1 -0
- package/dist/granular/ui/components/Form/FormProvider.js +17 -0
- package/dist/granular/ui/components/Form/FormProvider.js.map +1 -0
- package/dist/granular/ui/components/Form/useFormFieldArray.js +29 -0
- package/dist/granular/ui/components/Form/useFormFieldArray.js.map +1 -0
- package/dist/granular/ui/components/FormWizardPattern/FormWizardPattern.js +121 -0
- package/dist/granular/ui/components/FormWizardPattern/FormWizardPattern.js.map +1 -0
- package/dist/granular/ui/components/Header/Header.js +98 -0
- package/dist/granular/ui/components/Header/Header.js.map +1 -0
- package/dist/granular/ui/components/Header/components/HeaderActions.js +21 -0
- package/dist/granular/ui/components/Header/components/HeaderActions.js.map +1 -0
- package/dist/granular/ui/components/Header/components/HeaderHamburger.js +31 -0
- package/dist/granular/ui/components/Header/components/HeaderHamburger.js.map +1 -0
- package/dist/granular/ui/components/Header/components/HeaderLogo.js +50 -0
- package/dist/granular/ui/components/Header/components/HeaderLogo.js.map +1 -0
- package/dist/granular/ui/components/Header/components/HeaderMobileMenu.js +38 -0
- package/dist/granular/ui/components/Header/components/HeaderMobileMenu.js.map +1 -0
- package/dist/granular/ui/components/Header/components/HeaderNavigation.js +27 -0
- package/dist/granular/ui/components/Header/components/HeaderNavigation.js.map +1 -0
- package/dist/granular/ui/components/Header/contexts/HeaderContext.js +49 -0
- package/dist/granular/ui/components/Header/contexts/HeaderContext.js.map +1 -0
- package/dist/granular/ui/components/LoginBox/LoginBox.js +84 -0
- package/dist/granular/ui/components/LoginBox/LoginBox.js.map +1 -0
- package/dist/granular/ui/components/Menu/Menu.js +45 -0
- package/dist/granular/ui/components/Menu/Menu.js.map +1 -0
- package/dist/granular/ui/components/Menu/MenuContent.js +94 -0
- package/dist/granular/ui/components/Menu/MenuContent.js.map +1 -0
- package/dist/granular/ui/components/Menu/MenuContext.js +21 -0
- package/dist/granular/ui/components/Menu/MenuContext.js.map +1 -0
- package/dist/granular/ui/components/Menu/MenuItem.js +93 -0
- package/dist/granular/ui/components/Menu/MenuItem.js.map +1 -0
- package/dist/granular/ui/components/Menu/MenuSeparator.js +46 -0
- package/dist/granular/ui/components/Menu/MenuSeparator.js.map +1 -0
- package/dist/granular/ui/components/Menu/MenuTrigger.js +71 -0
- package/dist/granular/ui/components/Menu/MenuTrigger.js.map +1 -0
- package/dist/granular/ui/components/Modal/Modal.js +171 -0
- package/dist/granular/ui/components/Modal/Modal.js.map +1 -0
- package/dist/granular/ui/components/MultiSelect/MultiSelect.js +193 -0
- package/dist/granular/ui/components/MultiSelect/MultiSelect.js.map +1 -0
- package/dist/granular/ui/components/Navigation/Navigation.js +141 -0
- package/dist/granular/ui/components/Navigation/Navigation.js.map +1 -0
- package/dist/granular/ui/components/PageHeader/PageHeader.js +95 -0
- package/dist/granular/ui/components/PageHeader/PageHeader.js.map +1 -0
- package/dist/granular/ui/components/Pagination/Pagination.js +156 -0
- package/dist/granular/ui/components/Pagination/Pagination.js.map +1 -0
- package/dist/granular/ui/components/Popover/Popover.js +171 -0
- package/dist/granular/ui/components/Popover/Popover.js.map +1 -0
- package/dist/granular/ui/components/Rating/Rating.js +110 -0
- package/dist/granular/ui/components/Rating/Rating.js.map +1 -0
- package/dist/granular/ui/components/SearchAndFilterPattern/SearchAndFilterPattern.js +120 -0
- package/dist/granular/ui/components/SearchAndFilterPattern/SearchAndFilterPattern.js.map +1 -0
- package/dist/granular/ui/components/SearchInput/SearchInput.js +103 -0
- package/dist/granular/ui/components/SearchInput/SearchInput.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/SideNavbar.js +143 -0
- package/dist/granular/ui/components/SideNavbar/SideNavbar.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/Navbar.js +173 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/Navbar.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarGroup.js +87 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarGroup.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarItem.js +242 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarItem.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarSeparator.js +66 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarSeparator.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarToggle.js +108 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarToggle.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarBackdrop.js +63 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarBackdrop.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarResizeHandle.js +113 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarResizeHandle.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarRoot.js +150 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarRoot.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarToggle.js +197 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarToggle.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/Sidebar.js +108 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/Sidebar.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarContent.js +71 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarContent.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarFooter.js +64 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarFooter.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarGroup.js +141 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarGroup.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarHeader.js +90 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarHeader.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlot.js +12 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlot.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlotContent.js +13 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlotContent.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/contexts/NavbarContext.js +20 -0
- package/dist/granular/ui/components/SideNavbar/contexts/NavbarContext.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarConfigContext.js +37 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarConfigContext.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarStateContext.js +20 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarStateContext.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarThemeContext.js +28 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarThemeContext.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarToggleContext.js +19 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarToggleContext.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SidebarContext.js +20 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SidebarContext.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SidebarSlotContext.js +22 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SidebarSlotContext.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useFocusManagement.js +43 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useFocusManagement.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useGroupState.js +59 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useGroupState.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useKeyboardShortcut.js +34 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useKeyboardShortcut.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useResize.js +58 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useResize.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useResponsiveSidebar.js +35 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useResponsiveSidebar.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbar.js +21 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbar.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarContent.js +19 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarContent.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarNavigation.js +21 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarNavigation.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarConfigProvider.js +61 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarConfigProvider.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarProvider.js +82 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarProvider.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarStateProvider.js +165 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarStateProvider.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarThemeProvider.js +34 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarThemeProvider.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/providers/SidebarSlotProvider.js +28 -0
- package/dist/granular/ui/components/SideNavbar/providers/SidebarSlotProvider.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/utils/parseKeyboardShortcut.js +60 -0
- package/dist/granular/ui/components/SideNavbar/utils/parseKeyboardShortcut.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/utils/parseWidth.js +19 -0
- package/dist/granular/ui/components/SideNavbar/utils/parseWidth.js.map +1 -0
- package/dist/granular/ui/components/Stat/Stat.js +84 -0
- package/dist/granular/ui/components/Stat/Stat.js.map +1 -0
- package/dist/granular/ui/components/Stat/StatGroup.js +61 -0
- package/dist/granular/ui/components/Stat/StatGroup.js.map +1 -0
- package/dist/granular/ui/components/Stepper/Stepper.js +248 -0
- package/dist/granular/ui/components/Stepper/Stepper.js.map +1 -0
- package/dist/granular/ui/components/Table/Table.js +162 -0
- package/dist/granular/ui/components/Table/Table.js.map +1 -0
- package/dist/granular/ui/components/Table/TableActions/TableActions.js +67 -0
- package/dist/granular/ui/components/Table/TableActions/TableActions.js.map +1 -0
- package/dist/granular/ui/components/Table/TableActions.js +44 -0
- package/dist/granular/ui/components/Table/TableActions.js.map +1 -0
- package/dist/granular/ui/components/Table/TableBody.js +134 -0
- package/dist/granular/ui/components/Table/TableBody.js.map +1 -0
- package/dist/granular/ui/components/Table/TableCell.js +40 -0
- package/dist/granular/ui/components/Table/TableCell.js.map +1 -0
- package/dist/granular/ui/components/Table/TableContext.js +19 -0
- package/dist/granular/ui/components/Table/TableContext.js.map +1 -0
- package/dist/granular/ui/components/Table/TableEmptyState.js +62 -0
- package/dist/granular/ui/components/Table/TableEmptyState.js.map +1 -0
- package/dist/granular/ui/components/Table/TableFilters/TableFilters.js +189 -0
- package/dist/granular/ui/components/Table/TableFilters/TableFilters.js.map +1 -0
- package/dist/granular/ui/components/Table/TableFilters.js +48 -0
- package/dist/granular/ui/components/Table/TableFilters.js.map +1 -0
- package/dist/granular/ui/components/Table/TableHeader.js +45 -0
- package/dist/granular/ui/components/Table/TableHeader.js.map +1 -0
- package/dist/granular/ui/components/Table/TableHeaderCell.js +117 -0
- package/dist/granular/ui/components/Table/TableHeaderCell.js.map +1 -0
- package/dist/granular/ui/components/Table/TableHeaderRow.js +89 -0
- package/dist/granular/ui/components/Table/TableHeaderRow.js.map +1 -0
- package/dist/granular/ui/components/Table/TablePagination/TablePagination.js +216 -0
- package/dist/granular/ui/components/Table/TablePagination/TablePagination.js.map +1 -0
- package/dist/granular/ui/components/Table/TablePagination.js +56 -0
- package/dist/granular/ui/components/Table/TablePagination.js.map +1 -0
- package/dist/granular/ui/components/Table/TableProvider.js +244 -0
- package/dist/granular/ui/components/Table/TableProvider.js.map +1 -0
- package/dist/granular/ui/components/Table/TableRow.js +95 -0
- package/dist/granular/ui/components/Table/TableRow.js.map +1 -0
- package/dist/granular/ui/components/Table/useColumnResizing.js +71 -0
- package/dist/granular/ui/components/Table/useColumnResizing.js.map +1 -0
- package/dist/granular/ui/components/Table/useVirtualScrolling.js +50 -0
- package/dist/granular/ui/components/Table/useVirtualScrolling.js.map +1 -0
- package/dist/granular/ui/components/Tabs/Tabs.js +39 -0
- package/dist/granular/ui/components/Tabs/Tabs.js.map +1 -0
- package/dist/granular/ui/components/Tabs/TabsContent.js +59 -0
- package/dist/granular/ui/components/Tabs/TabsContent.js.map +1 -0
- package/dist/granular/ui/components/Tabs/TabsContext.js +18 -0
- package/dist/granular/ui/components/Tabs/TabsContext.js.map +1 -0
- package/dist/granular/ui/components/Tabs/TabsList.js +84 -0
- package/dist/granular/ui/components/Tabs/TabsList.js.map +1 -0
- package/dist/granular/ui/components/Tabs/TabsProvider.js +31 -0
- package/dist/granular/ui/components/Tabs/TabsProvider.js.map +1 -0
- package/dist/granular/ui/components/Tabs/TabsTrigger.js +103 -0
- package/dist/granular/ui/components/Tabs/TabsTrigger.js.map +1 -0
- package/dist/granular/ui/components/TimePicker/TimePicker.js +216 -0
- package/dist/granular/ui/components/TimePicker/TimePicker.js.map +1 -0
- package/dist/granular/ui/components/Timeline/Timeline.js +152 -0
- package/dist/granular/ui/components/Timeline/Timeline.js.map +1 -0
- package/dist/granular/ui/components/Toast/Toast.js +159 -0
- package/dist/granular/ui/components/Toast/Toast.js.map +1 -0
- package/dist/granular/ui/components/Toast/ToastContainer.js +41 -0
- package/dist/granular/ui/components/Toast/ToastContainer.js.map +1 -0
- package/dist/granular/ui/components/Toast/useToast.js +64 -0
- package/dist/granular/ui/components/Toast/useToast.js.map +1 -0
- package/dist/granular/ui/hooks/createGenericContext.js +27 -0
- package/dist/granular/ui/hooks/createGenericContext.js.map +1 -0
- package/dist/granular/ui/hooks/focusable.js +14 -0
- package/dist/granular/ui/hooks/focusable.js.map +1 -0
- package/dist/granular/ui/hooks/useAutoFocus.js +23 -0
- package/dist/granular/ui/hooks/useAutoFocus.js.map +1 -0
- package/dist/granular/ui/hooks/useCollapsible.js +37 -0
- package/dist/granular/ui/hooks/useCollapsible.js.map +1 -0
- package/dist/granular/ui/hooks/useFocusRestore.js +20 -0
- package/dist/granular/ui/hooks/useFocusRestore.js.map +1 -0
- package/dist/granular/ui/hooks/useFocusTrap.js +31 -0
- package/dist/granular/ui/hooks/useFocusTrap.js.map +1 -0
- package/dist/granular/ui/hooks/useScrollSpy.js +23 -0
- package/dist/granular/ui/hooks/useScrollSpy.js.map +1 -0
- package/dist/granular/ui/layouts/Container/Container.js +73 -0
- package/dist/granular/ui/layouts/Container/Container.js.map +1 -0
- package/dist/granular/ui/layouts/Stack/Stack.js +79 -0
- package/dist/granular/ui/layouts/Stack/Stack.js.map +1 -0
- package/dist/granular/ui/primitives/Avatar/Avatar.js +122 -0
- package/dist/granular/ui/primitives/Avatar/Avatar.js.map +1 -0
- package/dist/granular/ui/primitives/Avatar/AvatarGroup.js +97 -0
- package/dist/granular/ui/primitives/Avatar/AvatarGroup.js.map +1 -0
- package/dist/granular/ui/primitives/Badge/Badge.js +212 -0
- package/dist/granular/ui/primitives/Badge/Badge.js.map +1 -0
- package/dist/granular/ui/primitives/Button/Button.js +288 -0
- package/dist/granular/ui/primitives/Button/Button.js.map +1 -0
- package/dist/granular/ui/primitives/Checkbox/Checkbox.js +129 -0
- package/dist/granular/ui/primitives/Checkbox/Checkbox.js.map +1 -0
- package/dist/granular/ui/primitives/Chip/Chip.js +206 -0
- package/dist/granular/ui/primitives/Chip/Chip.js.map +1 -0
- package/dist/granular/ui/primitives/Collapsible/Collapsible.js +115 -0
- package/dist/granular/ui/primitives/Collapsible/Collapsible.js.map +1 -0
- package/dist/granular/ui/primitives/ErrorMessage/ErrorMessage.js +54 -0
- package/dist/granular/ui/primitives/ErrorMessage/ErrorMessage.js.map +1 -0
- package/dist/granular/ui/primitives/Info/Info.js +57 -0
- package/dist/granular/ui/primitives/Info/Info.js.map +1 -0
- package/dist/granular/ui/primitives/Input/Input.js +351 -0
- package/dist/granular/ui/primitives/Input/Input.js.map +1 -0
- package/dist/granular/ui/primitives/Label/Label.js +61 -0
- package/dist/granular/ui/primitives/Label/Label.js.map +1 -0
- package/dist/granular/ui/primitives/NavLink/NavLink.js +229 -0
- package/dist/granular/ui/primitives/NavLink/NavLink.js.map +1 -0
- package/dist/granular/ui/primitives/NavLink/hooks/useNavLink.js +15 -0
- package/dist/granular/ui/primitives/NavLink/hooks/useNavLink.js.map +1 -0
- package/dist/granular/ui/primitives/Progress/Progress.js +182 -0
- package/dist/granular/ui/primitives/Progress/Progress.js.map +1 -0
- package/dist/granular/ui/primitives/Radio/Radio.js +118 -0
- package/dist/granular/ui/primitives/Radio/Radio.js.map +1 -0
- package/dist/granular/ui/primitives/Select/Select.js +210 -0
- package/dist/granular/ui/primitives/Select/Select.js.map +1 -0
- package/dist/granular/ui/primitives/Separator/Separator.js +69 -0
- package/dist/granular/ui/primitives/Separator/Separator.js.map +1 -0
- package/dist/granular/ui/primitives/Skeleton/Skeleton.js +87 -0
- package/dist/granular/ui/primitives/Skeleton/Skeleton.js.map +1 -0
- package/dist/granular/ui/primitives/Slider/Slider.js +291 -0
- package/dist/granular/ui/primitives/Slider/Slider.js.map +1 -0
- package/dist/granular/ui/primitives/Spinner/Spinner.js +95 -0
- package/dist/granular/ui/primitives/Spinner/Spinner.js.map +1 -0
- package/dist/granular/ui/primitives/Switch/Switch.js +212 -0
- package/dist/granular/ui/primitives/Switch/Switch.js.map +1 -0
- package/dist/granular/ui/primitives/Text/Text.js +118 -0
- package/dist/granular/ui/primitives/Text/Text.js.map +1 -0
- package/dist/granular/ui/primitives/Textarea/Textarea.js +129 -0
- package/dist/granular/ui/primitives/Textarea/Textarea.js.map +1 -0
- package/dist/granular/ui/primitives/Tooltip/Tooltip.js +227 -0
- package/dist/granular/ui/primitives/Tooltip/Tooltip.js.map +1 -0
- package/dist/granular/ui/providers/AppProvider.js +50 -0
- package/dist/granular/ui/providers/AppProvider.js.map +1 -0
- package/dist/granular/ui/providers/ConfigProvider.js +95 -0
- package/dist/granular/ui/providers/ConfigProvider.js.map +1 -0
- package/dist/granular/ui/providers/DialogContext.js +20 -0
- package/dist/granular/ui/providers/DialogContext.js.map +1 -0
- package/dist/granular/ui/providers/DialogProvider.js +32 -0
- package/dist/granular/ui/providers/DialogProvider.js.map +1 -0
- package/dist/granular/ui/providers/ThemeProvider.js +56 -0
- package/dist/granular/ui/providers/ThemeProvider.js.map +1 -0
- package/dist/granular/ui/providers/ToastContext.js +20 -0
- package/dist/granular/ui/providers/ToastContext.js.map +1 -0
- package/dist/granular/ui/providers/ToastProvider.js +47 -0
- package/dist/granular/ui/providers/ToastProvider.js.map +1 -0
- package/dist/granular/ui/providers/providers-bundle.js +23 -0
- package/dist/granular/ui/providers/providers-bundle.js.map +1 -0
- package/dist/granular/ui/tokens/animations.js +106 -0
- package/dist/granular/ui/tokens/animations.js.map +1 -0
- package/dist/granular/ui/tokens/borders.js +54 -0
- package/dist/granular/ui/tokens/borders.js.map +1 -0
- package/dist/granular/ui/tokens/breakpoints.js +43 -0
- package/dist/granular/ui/tokens/breakpoints.js.map +1 -0
- package/dist/granular/ui/tokens/colors/brand.js +67 -0
- package/dist/granular/ui/tokens/colors/brand.js.map +1 -0
- package/dist/granular/ui/tokens/colors/index.js +25 -0
- package/dist/granular/ui/tokens/colors/index.js.map +1 -0
- package/dist/granular/ui/tokens/colors/primitives.js +320 -0
- package/dist/granular/ui/tokens/colors/primitives.js.map +1 -0
- package/dist/granular/ui/tokens/colors/semantic.js +212 -0
- package/dist/granular/ui/tokens/colors/semantic.js.map +1 -0
- package/dist/granular/ui/tokens/colors/types.js +18 -0
- package/dist/granular/ui/tokens/colors/types.js.map +1 -0
- package/dist/granular/ui/tokens/colors/utils.js +131 -0
- package/dist/granular/ui/tokens/colors/utils.js.map +1 -0
- package/dist/granular/ui/tokens/opacity.js +59 -0
- package/dist/granular/ui/tokens/opacity.js.map +1 -0
- package/dist/granular/ui/tokens/radius.js +76 -0
- package/dist/granular/ui/tokens/radius.js.map +1 -0
- package/dist/granular/ui/tokens/shadows.js +63 -0
- package/dist/granular/ui/tokens/shadows.js.map +1 -0
- package/dist/granular/ui/tokens/sidebar.js +92 -0
- package/dist/granular/ui/tokens/sidebar.js.map +1 -0
- package/dist/granular/ui/tokens/spacing.js +143 -0
- package/dist/granular/ui/tokens/spacing.js.map +1 -0
- package/dist/granular/ui/tokens/switch.js +51 -0
- package/dist/granular/ui/tokens/switch.js.map +1 -0
- package/dist/granular/ui/tokens/typography.js +146 -0
- package/dist/granular/ui/tokens/typography.js.map +1 -0
- package/dist/granular/ui/tokens/z-index.js +79 -0
- package/dist/granular/ui/tokens/z-index.js.map +1 -0
- package/dist/granular/ui/utils/cn.js +10 -0
- package/dist/granular/ui/utils/cn.js.map +1 -0
- package/dist/granular/ui/utils/cva.js +14 -0
- package/dist/granular/ui/utils/cva.js.map +1 -0
- package/dist/granular/ui/utils/mergeRefs.js +11 -0
- package/dist/granular/ui/utils/mergeRefs.js.map +1 -0
- package/dist/granular/vite.svg +1 -0
- package/dist/hooks/index.cjs +2 -0
- package/dist/hooks/index.cjs.map +1 -0
- package/dist/hooks/index.js +23 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.cjs +44 -70
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1900 -1885
- package/dist/index.js.map +1 -1
- package/dist/react-design-system.css +1 -1
- package/dist/server/index.cjs +23 -23
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.js +863 -1180
- package/dist/server/index.js.map +1 -1
- package/dist/ui/components/Accordion/Accordion.d.ts +9 -1
- package/dist/ui/hooks-entry.d.ts +2 -0
- package/dist/ui/utils/tailwind-safelist.d.ts +3 -1
- 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;"}
|