@redsift/design-system 11.5.0 → 11.6.0-muiv5-alpha.1
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/_virtual/_rollupPluginBabelHelpers.js +133 -0
- package/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/_virtual/jsx-runtime.js +4 -0
- package/_virtual/jsx-runtime.js.map +1 -0
- package/_virtual/react-jsx-runtime.development.js +4 -0
- package/_virtual/react-jsx-runtime.development.js.map +1 -0
- package/_virtual/react-jsx-runtime.production.min.js +4 -0
- package/_virtual/react-jsx-runtime.production.min.js.map +1 -0
- package/components/alert/Alert.d.ts +9 -0
- package/components/alert/Alert.js +117 -0
- package/components/alert/Alert.js.map +1 -0
- package/components/alert/intl/en-US.json.js +7 -0
- package/components/alert/intl/en-US.json.js.map +1 -0
- package/components/alert/intl/fr-FR.json.js +7 -0
- package/components/alert/intl/fr-FR.json.js.map +1 -0
- package/components/alert/intl/index.js +10 -0
- package/components/alert/intl/index.js.map +1 -0
- package/components/alert/styles.js +54 -0
- package/components/alert/styles.js.map +1 -0
- package/components/alert/types.d.ts +49 -0
- package/components/alert/types.js +20 -0
- package/components/alert/types.js.map +1 -0
- package/components/app-bar/AppBar.d.ts +9 -0
- package/components/app-bar/AppBar.js +95 -0
- package/components/app-bar/AppBar.js.map +1 -0
- package/components/app-bar/intl/en-US.json.js +9 -0
- package/components/app-bar/intl/en-US.json.js.map +1 -0
- package/components/app-bar/intl/fr-FR.json.js +9 -0
- package/components/app-bar/intl/fr-FR.json.js.map +1 -0
- package/components/app-bar/intl/index.js +10 -0
- package/components/app-bar/intl/index.js.map +1 -0
- package/components/app-bar/styles.js +139 -0
- package/components/app-bar/styles.js.map +1 -0
- package/components/app-bar/types.d.ts +31 -0
- package/components/app-container/AppContainer.d.ts +11 -0
- package/components/app-container/AppContainer.js +117 -0
- package/components/app-container/AppContainer.js.map +1 -0
- package/components/app-container/context.d.ts +6 -0
- package/components/app-container/context.js +6 -0
- package/components/app-container/context.js.map +1 -0
- package/components/app-container/styles.js +30 -0
- package/components/app-container/styles.js.map +1 -0
- package/components/app-container/types.d.ts +51 -0
- package/components/app-content/AppContent.d.ts +9 -0
- package/components/app-content/AppContent.js +42 -0
- package/components/app-content/AppContent.js.map +1 -0
- package/components/app-content/styles.js +54 -0
- package/components/app-content/styles.js.map +1 -0
- package/components/app-content/types.d.ts +19 -0
- package/components/app-side-panel/AppSidePanel.d.ts +9 -0
- package/components/app-side-panel/AppSidePanel.js +86 -0
- package/components/app-side-panel/AppSidePanel.js.map +1 -0
- package/components/app-side-panel/intl/en-US.json.js +9 -0
- package/components/app-side-panel/intl/en-US.json.js.map +1 -0
- package/components/app-side-panel/intl/fr-FR.json.js +9 -0
- package/components/app-side-panel/intl/fr-FR.json.js.map +1 -0
- package/components/app-side-panel/intl/index.js +10 -0
- package/components/app-side-panel/intl/index.js.map +1 -0
- package/components/app-side-panel/styles.js +183 -0
- package/components/app-side-panel/styles.js.map +1 -0
- package/components/app-side-panel/types.d.ts +39 -0
- package/components/app-side-panel/types.js +15 -0
- package/components/app-side-panel/types.js.map +1 -0
- package/components/app-side-panel/useAppSidePanel.d.ts +6 -0
- package/components/app-side-panel/useAppSidePanel.js +23 -0
- package/components/app-side-panel/useAppSidePanel.js.map +1 -0
- package/components/badge/Badge.d.ts +9 -0
- package/components/badge/Badge.js +44 -0
- package/components/badge/Badge.js.map +1 -0
- package/components/badge/styles.js +93 -0
- package/components/badge/styles.js.map +1 -0
- package/components/badge/types.d.ts +37 -0
- package/components/badge/types.js +14 -0
- package/components/badge/types.js.map +1 -0
- package/components/breadcrumb-item/BreadcrumbItem.d.ts +9 -0
- package/components/breadcrumb-item/BreadcrumbItem.js +47 -0
- package/components/breadcrumb-item/BreadcrumbItem.js.map +1 -0
- package/components/breadcrumb-item/styles.js +48 -0
- package/components/breadcrumb-item/styles.js.map +1 -0
- package/components/breadcrumb-item/types.d.ts +23 -0
- package/components/breadcrumbs/Breadcrumbs.d.ts +13 -0
- package/components/breadcrumbs/Breadcrumbs.js +61 -0
- package/components/breadcrumbs/Breadcrumbs.js.map +1 -0
- package/components/breadcrumbs/styles.js +38 -0
- package/components/breadcrumbs/styles.js.map +1 -0
- package/components/breadcrumbs/types.d.ts +19 -0
- package/components/button/Button.d.ts +13 -0
- package/components/button/Button.js +92 -0
- package/components/button/Button.js.map +1 -0
- package/components/button/styles.d.ts +20 -0
- package/components/button/styles.js +219 -0
- package/components/button/styles.js.map +1 -0
- package/components/button/types.d.ts +67 -0
- package/components/button/types.js +19 -0
- package/components/button/types.js.map +1 -0
- package/components/button-group/ButtonGroup.d.ts +9 -0
- package/components/button-group/ButtonGroup.js +67 -0
- package/components/button-group/ButtonGroup.js.map +1 -0
- package/components/button-group/styles.js +103 -0
- package/components/button-group/styles.js.map +1 -0
- package/components/button-group/types.d.ts +36 -0
- package/components/button-group/types.js +19 -0
- package/components/button-group/types.js.map +1 -0
- package/components/button-link/ButtonLink.d.ts +13 -0
- package/components/button-link/ButtonLink.js +85 -0
- package/components/button-link/ButtonLink.js.map +1 -0
- package/components/button-link/types.d.ts +18 -0
- package/components/card/Card.d.ts +13 -0
- package/components/card/Card.js +81 -0
- package/components/card/Card.js.map +1 -0
- package/components/card/intl/en-US.json.js +9 -0
- package/components/card/intl/en-US.json.js.map +1 -0
- package/components/card/intl/fr-FR.json.js +9 -0
- package/components/card/intl/fr-FR.json.js.map +1 -0
- package/components/card/intl/index.js +10 -0
- package/components/card/intl/index.js.map +1 -0
- package/components/card/styles.js +63 -0
- package/components/card/styles.js.map +1 -0
- package/components/card/types.d.ts +25 -0
- package/components/card-actions/CardActions.d.ts +9 -0
- package/components/card-actions/CardActions.js +33 -0
- package/components/card-actions/CardActions.js.map +1 -0
- package/components/card-actions/styles.js +15 -0
- package/components/card-actions/styles.js.map +1 -0
- package/components/card-actions/types.d.ts +11 -0
- package/components/card-body/CardBody.d.ts +9 -0
- package/components/card-body/CardBody.js +28 -0
- package/components/card-body/CardBody.js.map +1 -0
- package/components/card-body/styles.js +18 -0
- package/components/card-body/styles.js.map +1 -0
- package/components/card-body/types.d.ts +11 -0
- package/components/card-header/CardHeader.d.ts +9 -0
- package/components/card-header/CardHeader.js +56 -0
- package/components/card-header/CardHeader.js.map +1 -0
- package/components/card-header/styles.js +31 -0
- package/components/card-header/styles.js.map +1 -0
- package/components/card-header/types.d.ts +28 -0
- package/components/checkbox/Checkbox.d.ts +11 -0
- package/components/checkbox/Checkbox.js +135 -0
- package/components/checkbox/Checkbox.js.map +1 -0
- package/components/checkbox/styles.js +113 -0
- package/components/checkbox/styles.js.map +1 -0
- package/components/checkbox/types.d.ts +60 -0
- package/components/checkbox-group/CheckboxGroup.d.ts +10 -0
- package/components/checkbox-group/CheckboxGroup.js +101 -0
- package/components/checkbox-group/CheckboxGroup.js.map +1 -0
- package/components/checkbox-group/context.js +6 -0
- package/components/checkbox-group/context.js.map +1 -0
- package/components/checkbox-group/styles.js +78 -0
- package/components/checkbox-group/styles.js.map +1 -0
- package/components/checkbox-group/types.d.ts +72 -0
- package/components/checkbox-group/types.js +18 -0
- package/components/checkbox-group/types.js.map +1 -0
- package/components/conditional-wrapper/ConditionalWrapper.d.ts +6 -0
- package/components/conditional-wrapper/ConditionalWrapper.js +13 -0
- package/components/conditional-wrapper/ConditionalWrapper.js.map +1 -0
- package/components/conditional-wrapper/types.d.ts +10 -0
- package/components/detailed-card/DetailedCard.d.ts +15 -0
- package/components/detailed-card/DetailedCard.js +170 -0
- package/components/detailed-card/DetailedCard.js.map +1 -0
- package/components/detailed-card/intl/en-US.json.js +7 -0
- package/components/detailed-card/intl/en-US.json.js.map +1 -0
- package/components/detailed-card/intl/fr-FR.json.js +7 -0
- package/components/detailed-card/intl/fr-FR.json.js.map +1 -0
- package/components/detailed-card/intl/index.js +10 -0
- package/components/detailed-card/intl/index.js.map +1 -0
- package/components/detailed-card/styles.js +49 -0
- package/components/detailed-card/styles.js.map +1 -0
- package/components/detailed-card/types.d.ts +40 -0
- package/components/detailed-card-collapsible-section-items/DetailedCardCollapsibleSectionItems.d.ts +9 -0
- package/components/detailed-card-collapsible-section-items/DetailedCardCollapsibleSectionItems.js +33 -0
- package/components/detailed-card-collapsible-section-items/DetailedCardCollapsibleSectionItems.js.map +1 -0
- package/components/detailed-card-collapsible-section-items/styles.js +35 -0
- package/components/detailed-card-collapsible-section-items/styles.js.map +1 -0
- package/components/detailed-card-collapsible-section-items/types.d.ts +16 -0
- package/components/detailed-card-header/DetailedCardHeader.d.ts +9 -0
- package/components/detailed-card-header/DetailedCardHeader.js +45 -0
- package/components/detailed-card-header/DetailedCardHeader.js.map +1 -0
- package/components/detailed-card-header/styles.js +26 -0
- package/components/detailed-card-header/styles.js.map +1 -0
- package/components/detailed-card-header/types.d.ts +20 -0
- package/components/detailed-card-section/DetailedCardSection.d.ts +9 -0
- package/components/detailed-card-section/DetailedCardSection.js +90 -0
- package/components/detailed-card-section/DetailedCardSection.js.map +1 -0
- package/components/detailed-card-section/intl/en-US.json.js +9 -0
- package/components/detailed-card-section/intl/en-US.json.js.map +1 -0
- package/components/detailed-card-section/intl/fr-FR.json.js +9 -0
- package/components/detailed-card-section/intl/fr-FR.json.js.map +1 -0
- package/components/detailed-card-section/intl/index.js +10 -0
- package/components/detailed-card-section/intl/index.js.map +1 -0
- package/components/detailed-card-section/styles.js +69 -0
- package/components/detailed-card-section/styles.js.map +1 -0
- package/components/detailed-card-section/types.d.ts +27 -0
- package/components/detailed-card-section-item/DetailedCardSectionItem.d.ts +9 -0
- package/components/detailed-card-section-item/DetailedCardSectionItem.js +64 -0
- package/components/detailed-card-section-item/DetailedCardSectionItem.js.map +1 -0
- package/components/detailed-card-section-item/styles.js +34 -0
- package/components/detailed-card-section-item/styles.js.map +1 -0
- package/components/detailed-card-section-item/types.d.ts +35 -0
- package/components/flexbox/Flexbox.d.ts +9 -0
- package/components/flexbox/Flexbox.js +44 -0
- package/components/flexbox/Flexbox.js.map +1 -0
- package/components/flexbox/styles.js +54 -0
- package/components/flexbox/styles.js.map +1 -0
- package/components/flexbox/types.d.ts +24 -0
- package/components/focus-within-group/FocusWithinGroup.d.ts +41 -0
- package/components/focus-within-group/FocusWithinGroup.js +91 -0
- package/components/focus-within-group/FocusWithinGroup.js.map +1 -0
- package/components/focus-within-group/context.d.ts +7 -0
- package/components/focus-within-group/context.js +21 -0
- package/components/focus-within-group/context.js.map +1 -0
- package/components/focus-within-group/reducer.d.ts +5 -0
- package/components/focus-within-group/reducer.js +419 -0
- package/components/focus-within-group/reducer.js.map +1 -0
- package/components/focus-within-group/types.d.ts +143 -0
- package/components/focus-within-group/types.js +42 -0
- package/components/focus-within-group/types.js.map +1 -0
- package/components/focus-within-group/useFocusOnList.d.ts +5 -0
- package/components/focus-within-group/useFocusOnList.js +44 -0
- package/components/focus-within-group/useFocusOnList.js.map +1 -0
- package/components/focus-within-group/useFocusOnListItem.d.ts +39 -0
- package/components/focus-within-group/useFocusOnListItem.js +148 -0
- package/components/focus-within-group/useFocusOnListItem.js.map +1 -0
- package/components/gradient-border/index.d.ts +14 -0
- package/components/gradient-border/index.js +38 -0
- package/components/gradient-border/index.js.map +1 -0
- package/components/grid/Grid.d.ts +13 -0
- package/components/grid/Grid.js +45 -0
- package/components/grid/Grid.js.map +1 -0
- package/components/grid/styles.js +55 -0
- package/components/grid/styles.js.map +1 -0
- package/components/grid/types.d.ts +22 -0
- package/components/grid-item/GridItem.d.ts +9 -0
- package/components/grid-item/GridItem.js +28 -0
- package/components/grid-item/GridItem.js.map +1 -0
- package/components/grid-item/styles.js +16 -0
- package/components/grid-item/styles.js.map +1 -0
- package/components/grid-item/types.d.ts +11 -0
- package/components/heading/Heading.d.ts +9 -0
- package/components/heading/Heading.js +50 -0
- package/components/heading/Heading.js.map +1 -0
- package/components/heading/styles.js +67 -0
- package/components/heading/styles.js.map +1 -0
- package/components/heading/types.d.ts +62 -0
- package/components/heading/types.js +26 -0
- package/components/heading/types.js.map +1 -0
- package/components/icon/Icon.d.ts +10 -0
- package/components/icon/Icon.js +116 -0
- package/components/icon/Icon.js.map +1 -0
- package/components/icon/styles.js +84 -0
- package/components/icon/styles.js.map +1 -0
- package/components/icon/types.d.ts +57 -0
- package/components/icon/types.js +18 -0
- package/components/icon/types.js.map +1 -0
- package/components/icon-button/IconButton.d.ts +12 -0
- package/components/icon-button/IconButton.js +81 -0
- package/components/icon-button/IconButton.js.map +1 -0
- package/components/icon-button/styles.js +31 -0
- package/components/icon-button/styles.js.map +1 -0
- package/components/icon-button/types.d.ts +56 -0
- package/components/icon-button/types.js +19 -0
- package/components/icon-button/types.js.map +1 -0
- package/components/icon-button-link/IconButtonLink.d.ts +13 -0
- package/components/icon-button-link/IconButtonLink.js +76 -0
- package/components/icon-button-link/IconButtonLink.js.map +1 -0
- package/components/icon-button-link/types.d.ts +18 -0
- package/components/item/Item.d.ts +10 -0
- package/components/item/Item.js +225 -0
- package/components/item/Item.js.map +1 -0
- package/components/item/styles.d.ts +20 -0
- package/components/item/styles.js +129 -0
- package/components/item/styles.js.map +1 -0
- package/components/item/types.d.ts +59 -0
- package/components/item/useMenuItem.js +55 -0
- package/components/item/useMenuItem.js.map +1 -0
- package/components/link/Link.d.ts +14 -0
- package/components/link/Link.js +67 -0
- package/components/link/Link.js.map +1 -0
- package/components/link/styles.d.ts +15 -0
- package/components/link/styles.js +145 -0
- package/components/link/styles.js.map +1 -0
- package/components/link/types.d.ts +40 -0
- package/components/link-button/LinkButton.d.ts +13 -0
- package/components/link-button/LinkButton.js +66 -0
- package/components/link-button/LinkButton.js.map +1 -0
- package/components/link-button/types.d.ts +13 -0
- package/components/listbox/ActiveDescendantListbox.d.ts +8 -0
- package/components/listbox/ActiveDescendantListbox.js +74 -0
- package/components/listbox/ActiveDescendantListbox.js.map +1 -0
- package/components/listbox/Listbox.d.ts +10 -0
- package/components/listbox/Listbox.js +110 -0
- package/components/listbox/Listbox.js.map +1 -0
- package/components/listbox/RovingTabindexListbox.d.ts +8 -0
- package/components/listbox/RovingTabindexListbox.js +30 -0
- package/components/listbox/RovingTabindexListbox.js.map +1 -0
- package/components/listbox/context.d.ts +7 -0
- package/components/listbox/context.js +15 -0
- package/components/listbox/context.js.map +1 -0
- package/components/listbox/reducer.d.ts +5 -0
- package/components/listbox/reducer.js +45 -0
- package/components/listbox/reducer.js.map +1 -0
- package/components/listbox/styles.js +44 -0
- package/components/listbox/styles.js.map +1 -0
- package/components/listbox/types.d.ts +101 -0
- package/components/listbox/types.js +32 -0
- package/components/listbox/types.js.map +1 -0
- package/components/listbox/useListboxItem.d.ts +12 -0
- package/components/listbox/useListboxItem.js +90 -0
- package/components/listbox/useListboxItem.js.map +1 -0
- package/components/number/Number.d.ts +9 -0
- package/components/number/Number.js +105 -0
- package/components/number/Number.js.map +1 -0
- package/components/number/styles.js +10 -0
- package/components/number/styles.js.map +1 -0
- package/components/number/types.d.ts +63 -0
- package/components/number-field/NumberField.d.ts +10 -0
- package/components/number-field/NumberField.js +216 -0
- package/components/number-field/NumberField.js.map +1 -0
- package/components/number-field/styles.js +240 -0
- package/components/number-field/styles.js.map +1 -0
- package/components/number-field/types.d.ts +74 -0
- package/components/number-field/types.js +14 -0
- package/components/number-field/types.js.map +1 -0
- package/components/pill/Pill.d.ts +9 -0
- package/components/pill/Pill.js +93 -0
- package/components/pill/Pill.js.map +1 -0
- package/components/pill/styles.js +305 -0
- package/components/pill/styles.js.map +1 -0
- package/components/pill/types.d.ts +47 -0
- package/components/pill/types.js +15 -0
- package/components/pill/types.js.map +1 -0
- package/components/progress-bar/ProgressBar.d.ts +9 -0
- package/components/progress-bar/ProgressBar.js +35 -0
- package/components/progress-bar/ProgressBar.js.map +1 -0
- package/components/progress-bar/styles.js +38 -0
- package/components/progress-bar/styles.js.map +1 -0
- package/components/progress-bar/types.d.ts +20 -0
- package/components/radio/Radio.d.ts +11 -0
- package/components/radio/Radio.js +128 -0
- package/components/radio/Radio.js.map +1 -0
- package/components/radio/styles.js +113 -0
- package/components/radio/styles.js.map +1 -0
- package/components/radio/types.d.ts +58 -0
- package/components/radio-group/RadioGroup.d.ts +10 -0
- package/components/radio-group/RadioGroup.js +89 -0
- package/components/radio-group/RadioGroup.js.map +1 -0
- package/components/radio-group/context.js +6 -0
- package/components/radio-group/context.js.map +1 -0
- package/components/radio-group/styles.js +78 -0
- package/components/radio-group/styles.js.map +1 -0
- package/components/radio-group/types.d.ts +68 -0
- package/components/radio-group/types.js +18 -0
- package/components/radio-group/types.js.map +1 -0
- package/components/shared/styles.d.ts +17 -0
- package/components/shared/styles.js +250 -0
- package/components/shared/styles.js.map +1 -0
- package/components/shield/Shield.d.ts +9 -0
- package/components/shield/Shield.js +136 -0
- package/components/shield/Shield.js.map +1 -0
- package/components/shield/styles.js +71 -0
- package/components/shield/styles.js.map +1 -0
- package/components/shield/types.d.ts +52 -0
- package/components/shield/types.js +25 -0
- package/components/shield/types.js.map +1 -0
- package/components/side-navigation-menu/SideNavigationMenu.d.ts +9 -0
- package/components/side-navigation-menu/SideNavigationMenu.js +367 -0
- package/components/side-navigation-menu/SideNavigationMenu.js.map +1 -0
- package/components/side-navigation-menu/context.js +6 -0
- package/components/side-navigation-menu/context.js.map +1 -0
- package/components/side-navigation-menu/reducer.js +26 -0
- package/components/side-navigation-menu/reducer.js.map +1 -0
- package/components/side-navigation-menu/styles.js +196 -0
- package/components/side-navigation-menu/styles.js.map +1 -0
- package/components/side-navigation-menu/types.d.ts +72 -0
- package/components/side-navigation-menu/types.js +21 -0
- package/components/side-navigation-menu/types.js.map +1 -0
- package/components/side-navigation-menu-bar/SideNavigationMenuBar.d.ts +9 -0
- package/components/side-navigation-menu-bar/SideNavigationMenuBar.js +217 -0
- package/components/side-navigation-menu-bar/SideNavigationMenuBar.js.map +1 -0
- package/components/side-navigation-menu-bar/context.js +6 -0
- package/components/side-navigation-menu-bar/context.js.map +1 -0
- package/components/side-navigation-menu-bar/styles.js +89 -0
- package/components/side-navigation-menu-bar/styles.js.map +1 -0
- package/components/side-navigation-menu-bar/types.d.ts +65 -0
- package/components/side-navigation-menu-bar/types.js +22 -0
- package/components/side-navigation-menu-bar/types.js.map +1 -0
- package/components/side-navigation-menu-bar/useSideNavigationMenuBar.d.ts +9 -0
- package/components/side-navigation-menu-bar/useSideNavigationMenuBar.js +70 -0
- package/components/side-navigation-menu-bar/useSideNavigationMenuBar.js.map +1 -0
- package/components/side-navigation-menu-item/SideNavigationMenuItem.d.ts +9 -0
- package/components/side-navigation-menu-item/SideNavigationMenuItem.js +115 -0
- package/components/side-navigation-menu-item/SideNavigationMenuItem.js.map +1 -0
- package/components/side-navigation-menu-item/styles.js +174 -0
- package/components/side-navigation-menu-item/styles.js.map +1 -0
- package/components/side-navigation-menu-item/types.d.ts +51 -0
- package/components/skeleton/Skeleton.d.ts +15 -0
- package/components/skeleton/Skeleton.js +42 -0
- package/components/skeleton/Skeleton.js.map +1 -0
- package/components/skeleton/styles.js +84 -0
- package/components/skeleton/styles.js.map +1 -0
- package/components/skeleton/types.d.ts +18 -0
- package/components/skeleton-circle/SkeletonCircle.d.ts +9 -0
- package/components/skeleton-circle/SkeletonCircle.js +36 -0
- package/components/skeleton-circle/SkeletonCircle.js.map +1 -0
- package/components/skeleton-circle/styles.js +26 -0
- package/components/skeleton-circle/styles.js.map +1 -0
- package/components/skeleton-circle/types.d.ts +12 -0
- package/components/skeleton-text/SkeletonText.d.ts +9 -0
- package/components/skeleton-text/SkeletonText.js +42 -0
- package/components/skeleton-text/SkeletonText.js.map +1 -0
- package/components/skeleton-text/styles.js +39 -0
- package/components/skeleton-text/styles.js.map +1 -0
- package/components/skeleton-text/types.d.ts +36 -0
- package/components/skeleton-text/types.js +20 -0
- package/components/skeleton-text/types.js.map +1 -0
- package/components/spinner/Spinner.d.ts +9 -0
- package/components/spinner/Spinner.js +82 -0
- package/components/spinner/Spinner.js.map +1 -0
- package/components/spinner/images/spinner-grey-l1.svg.js +4 -0
- package/components/spinner/images/spinner-grey-l1.svg.js.map +1 -0
- package/components/spinner/images/spinner-grey-l2.svg.js +4 -0
- package/components/spinner/images/spinner-grey-l2.svg.js.map +1 -0
- package/components/spinner/images/spinner-grey-l3.svg.js +4 -0
- package/components/spinner/images/spinner-grey-l3.svg.js.map +1 -0
- package/components/spinner/images/spinner-primary-n.svg.js +4 -0
- package/components/spinner/images/spinner-primary-n.svg.js.map +1 -0
- package/components/spinner/intl/en-US.json.js +7 -0
- package/components/spinner/intl/en-US.json.js.map +1 -0
- package/components/spinner/intl/fr-FR.json.js +7 -0
- package/components/spinner/intl/fr-FR.json.js.map +1 -0
- package/components/spinner/intl/index.js +10 -0
- package/components/spinner/intl/index.js.map +1 -0
- package/components/spinner/styles.js +13 -0
- package/components/spinner/styles.js.map +1 -0
- package/components/spinner/types.d.ts +38 -0
- package/components/spinner/types.js +16 -0
- package/components/spinner/types.js.map +1 -0
- package/components/switch/Switch.d.ts +11 -0
- package/components/switch/Switch.js +137 -0
- package/components/switch/Switch.js.map +1 -0
- package/components/switch/styles.js +187 -0
- package/components/switch/styles.js.map +1 -0
- package/components/switch/types.d.ts +58 -0
- package/components/switch-group/SwitchGroup.d.ts +10 -0
- package/components/switch-group/SwitchGroup.js +101 -0
- package/components/switch-group/SwitchGroup.js.map +1 -0
- package/components/switch-group/context.js +6 -0
- package/components/switch-group/context.js.map +1 -0
- package/components/switch-group/styles.js +78 -0
- package/components/switch-group/styles.js.map +1 -0
- package/components/switch-group/types.d.ts +72 -0
- package/components/switch-group/types.js +18 -0
- package/components/switch-group/types.js.map +1 -0
- package/components/text/Text.d.ts +9 -0
- package/components/text/Text.js +51 -0
- package/components/text/Text.js.map +1 -0
- package/components/text/styles.js +112 -0
- package/components/text/styles.js.map +1 -0
- package/components/text/types.d.ts +73 -0
- package/components/text/types.js +34 -0
- package/components/text/types.js.map +1 -0
- package/components/text-area/TextArea.d.ts +10 -0
- package/components/text-area/TextArea.js +165 -0
- package/components/text-area/TextArea.js.map +1 -0
- package/components/text-area/styles.js +240 -0
- package/components/text-area/styles.js.map +1 -0
- package/components/text-area/types.d.ts +28 -0
- package/components/text-area/types.js +14 -0
- package/components/text-area/types.js.map +1 -0
- package/components/text-field/TextField.d.ts +10 -0
- package/components/text-field/TextField.js +197 -0
- package/components/text-field/TextField.js.map +1 -0
- package/components/text-field/intl/en-US.json.js +8 -0
- package/components/text-field/intl/en-US.json.js.map +1 -0
- package/components/text-field/intl/fr-FR.json.js +8 -0
- package/components/text-field/intl/fr-FR.json.js.map +1 -0
- package/components/text-field/intl/index.js +10 -0
- package/components/text-field/intl/index.js.map +1 -0
- package/components/text-field/styles.d.ts +22 -0
- package/components/text-field/styles.js +252 -0
- package/components/text-field/styles.js.map +1 -0
- package/components/text-field/types.d.ts +99 -0
- package/components/text-field/types.js +18 -0
- package/components/text-field/types.js.map +1 -0
- package/components/theme/context.d.ts +11 -0
- package/components/theme/context.js +7 -0
- package/components/theme/context.js.map +1 -0
- package/components/theme/useTheme.d.ts +5 -0
- package/components/theme/useTheme.js +13 -0
- package/components/theme/useTheme.js.map +1 -0
- package/hooks/useBoundingRect.d.ts +8 -0
- package/hooks/useBoundingRect.js +17 -0
- package/hooks/useBoundingRect.js.map +1 -0
- package/hooks/useComputeNumberOfRows.d.ts +15 -0
- package/hooks/useComputeNumberOfRows.js +40 -0
- package/hooks/useComputeNumberOfRows.js.map +1 -0
- package/hooks/useIsLoaded.d.ts +5 -0
- package/hooks/useIsLoaded.js +14 -0
- package/hooks/useIsLoaded.js.map +1 -0
- package/hooks/useWindowSize.d.ts +8 -0
- package/hooks/useWindowSize.js +42 -0
- package/hooks/useWindowSize.js.map +1 -0
- package/index.d.ts +157 -4667
- package/index.js +121 -24514
- package/index.js.map +1 -1
- package/package.json +4 -3
- package/packages/popovers/src/components/tooltip/Tooltip.js +62 -0
- package/packages/popovers/src/components/tooltip/Tooltip.js.map +1 -0
- package/packages/popovers/src/components/tooltip/context.js +6 -0
- package/packages/popovers/src/components/tooltip/context.js.map +1 -0
- package/packages/popovers/src/components/tooltip/types.js +28 -0
- package/packages/popovers/src/components/tooltip/types.js.map +1 -0
- package/packages/popovers/src/components/tooltip/useTooltip.js +78 -0
- package/packages/popovers/src/components/tooltip/useTooltip.js.map +1 -0
- package/packages/popovers/src/components/tooltip/useTooltipContext.js +13 -0
- package/packages/popovers/src/components/tooltip/useTooltipContext.js.map +1 -0
- package/packages/popovers/src/components/tooltip-content/TooltipContent.js +80 -0
- package/packages/popovers/src/components/tooltip-content/TooltipContent.js.map +1 -0
- package/packages/popovers/src/components/tooltip-content/styles.js +128 -0
- package/packages/popovers/src/components/tooltip-content/styles.js.map +1 -0
- package/packages/popovers/src/components/tooltip-trigger/TooltipTrigger.js +47 -0
- package/packages/popovers/src/components/tooltip-trigger/TooltipTrigger.js.map +1 -0
- package/react-aria/internationalized/date/DateFormatter.d.ts +25 -0
- package/react-aria/internationalized/date/DateFormatter.js +187 -0
- package/react-aria/internationalized/date/DateFormatter.js.map +1 -0
- package/react-aria/internationalized/message/MessageDictionary.d.ts +7 -0
- package/react-aria/internationalized/message/MessageDictionary.js +82 -0
- package/react-aria/internationalized/message/MessageDictionary.js.map +1 -0
- package/react-aria/internationalized/message/MessageFormatter.js +38 -0
- package/react-aria/internationalized/message/MessageFormatter.js.map +1 -0
- package/react-aria/internationalized/number/NumberFormatter.d.ts +6 -0
- package/react-aria/internationalized/number/NumberFormatter.js +222 -0
- package/react-aria/internationalized/number/NumberFormatter.js.map +1 -0
- package/react-aria/internationalized/number/NumberParser.js +288 -0
- package/react-aria/internationalized/number/NumberParser.js.map +1 -0
- package/react-aria/internationalized/string/LocalizedStringDictionary.d.ts +21 -0
- package/react-aria/internationalized/string/LocalizedStringDictionary.js +118 -0
- package/react-aria/internationalized/string/LocalizedStringDictionary.js.map +1 -0
- package/react-aria/internationalized/string/LocalizedStringFormatter.d.ts +21 -0
- package/react-aria/internationalized/string/LocalizedStringFormatter.js +70 -0
- package/react-aria/internationalized/string/LocalizedStringFormatter.js.map +1 -0
- package/react-aria/react-aria/button/useButton.js +95 -0
- package/react-aria/react-aria/button/useButton.js.map +1 -0
- package/react-aria/react-aria/focus/focusSafely.js +33 -0
- package/react-aria/react-aria/focus/focusSafely.js.map +1 -0
- package/react-aria/react-aria/focus/useFocusRing.js +57 -0
- package/react-aria/react-aria/focus/useFocusRing.js.map +1 -0
- package/react-aria/react-aria/focus/useFocusable.js +47 -0
- package/react-aria/react-aria/focus/useFocusable.js.map +1 -0
- package/react-aria/react-aria/form/useFormValidation.js +112 -0
- package/react-aria/react-aria/form/useFormValidation.js.map +1 -0
- package/react-aria/react-aria/i18n/context.d.ts +19 -0
- package/react-aria/react-aria/i18n/context.js +41 -0
- package/react-aria/react-aria/i18n/context.js.map +1 -0
- package/react-aria/react-aria/i18n/useCollator.d.ts +8 -0
- package/react-aria/react-aria/i18n/useCollator.js +25 -0
- package/react-aria/react-aria/i18n/useCollator.js.map +1 -0
- package/react-aria/react-aria/i18n/useDateFormatter.d.ts +13 -0
- package/react-aria/react-aria/i18n/useDateFormatter.js +39 -0
- package/react-aria/react-aria/i18n/useDateFormatter.js.map +1 -0
- package/react-aria/react-aria/i18n/useDefaultLocale.d.ts +10 -0
- package/react-aria/react-aria/i18n/useDefaultLocale.js +67 -0
- package/react-aria/react-aria/i18n/useDefaultLocale.js.map +1 -0
- package/react-aria/react-aria/i18n/useFilter.d.ts +15 -0
- package/react-aria/react-aria/i18n/useFilter.js +58 -0
- package/react-aria/react-aria/i18n/useFilter.js.map +1 -0
- package/react-aria/react-aria/i18n/useListFormatter.d.ts +8 -0
- package/react-aria/react-aria/i18n/useListFormatter.js +20 -0
- package/react-aria/react-aria/i18n/useListFormatter.js.map +1 -0
- package/react-aria/react-aria/i18n/useLocalizedStringFormatter.d.ts +15 -0
- package/react-aria/react-aria/i18n/useLocalizedStringFormatter.js +38 -0
- package/react-aria/react-aria/i18n/useLocalizedStringFormatter.js.map +1 -0
- package/react-aria/react-aria/i18n/useMessageFormatter.d.ts +13 -0
- package/react-aria/react-aria/i18n/useMessageFormatter.js +32 -0
- package/react-aria/react-aria/i18n/useMessageFormatter.js.map +1 -0
- package/react-aria/react-aria/i18n/useNumberFormatter.d.ts +10 -0
- package/react-aria/react-aria/i18n/useNumberFormatter.js +21 -0
- package/react-aria/react-aria/i18n/useNumberFormatter.js.map +1 -0
- package/react-aria/react-aria/i18n/utils.js +49 -0
- package/react-aria/react-aria/i18n/utils.js.map +1 -0
- package/react-aria/react-aria/interactions/context.js +20 -0
- package/react-aria/react-aria/interactions/context.js.map +1 -0
- package/react-aria/react-aria/interactions/createEventHandler.js +48 -0
- package/react-aria/react-aria/interactions/createEventHandler.js.map +1 -0
- package/react-aria/react-aria/interactions/textSelection.js +85 -0
- package/react-aria/react-aria/interactions/textSelection.js.map +1 -0
- package/react-aria/react-aria/interactions/useFocus.js +53 -0
- package/react-aria/react-aria/interactions/useFocus.js.map +1 -0
- package/react-aria/react-aria/interactions/useFocusVisible.js +236 -0
- package/react-aria/react-aria/interactions/useFocusVisible.js.map +1 -0
- package/react-aria/react-aria/interactions/useFocusWithin.js +65 -0
- package/react-aria/react-aria/interactions/useFocusWithin.js.map +1 -0
- package/react-aria/react-aria/interactions/useKeyboard.js +27 -0
- package/react-aria/react-aria/interactions/useKeyboard.js.map +1 -0
- package/react-aria/react-aria/interactions/usePress.js +769 -0
- package/react-aria/react-aria/interactions/usePress.js.map +1 -0
- package/react-aria/react-aria/interactions/useScrollWheel.js +31 -0
- package/react-aria/react-aria/interactions/useScrollWheel.js.map +1 -0
- package/react-aria/react-aria/interactions/utils.js +116 -0
- package/react-aria/react-aria/interactions/utils.js.map +1 -0
- package/react-aria/react-aria/label/useField.js +42 -0
- package/react-aria/react-aria/label/useField.js.map +1 -0
- package/react-aria/react-aria/label/useLabel.js +42 -0
- package/react-aria/react-aria/label/useLabel.js.map +1 -0
- package/react-aria/react-aria/live-announcer/LiveAnnouncer.js +121 -0
- package/react-aria/react-aria/live-announcer/LiveAnnouncer.js.map +1 -0
- package/react-aria/react-aria/numberfield/intl/en-US.json.js +11 -0
- package/react-aria/react-aria/numberfield/intl/en-US.json.js.map +1 -0
- package/react-aria/react-aria/numberfield/intl/fr-FR.json.js +11 -0
- package/react-aria/react-aria/numberfield/intl/fr-FR.json.js.map +1 -0
- package/react-aria/react-aria/numberfield/intl/index.js +10 -0
- package/react-aria/react-aria/numberfield/intl/index.js.map +1 -0
- package/react-aria/react-aria/numberfield/useNumberField.js +294 -0
- package/react-aria/react-aria/numberfield/useNumberField.js.map +1 -0
- package/react-aria/react-aria/spinbutton/intl/en-US.json.js +7 -0
- package/react-aria/react-aria/spinbutton/intl/en-US.json.js.map +1 -0
- package/react-aria/react-aria/spinbutton/intl/fr-FR.json.js +7 -0
- package/react-aria/react-aria/spinbutton/intl/fr-FR.json.js.map +1 -0
- package/react-aria/react-aria/spinbutton/intl/index.js +10 -0
- package/react-aria/react-aria/spinbutton/intl/index.js.map +1 -0
- package/react-aria/react-aria/spinbutton/useSpinButton.js +168 -0
- package/react-aria/react-aria/spinbutton/useSpinButton.js.map +1 -0
- package/react-aria/react-aria/ssr/SSRProvider.d.ts +22 -0
- package/react-aria/react-aria/ssr/SSRProvider.js +157 -0
- package/react-aria/react-aria/ssr/SSRProvider.js.map +1 -0
- package/react-aria/react-aria/textfield/useFormattedTextField.js +142 -0
- package/react-aria/react-aria/textfield/useFormattedTextField.js.map +1 -0
- package/react-aria/react-aria/textfield/useTextField.js +156 -0
- package/react-aria/react-aria/textfield/useTextField.js.map +1 -0
- package/react-aria/react-aria/utils/chain.js +33 -0
- package/react-aria/react-aria/utils/chain.js.map +1 -0
- package/react-aria/react-aria/utils/domHelpers.js +14 -0
- package/react-aria/react-aria/utils/domHelpers.js.map +1 -0
- package/react-aria/react-aria/utils/filterDOMProps.js +45 -0
- package/react-aria/react-aria/utils/filterDOMProps.js.map +1 -0
- package/react-aria/react-aria/utils/focusWithoutScrolling.js +88 -0
- package/react-aria/react-aria/utils/focusWithoutScrolling.js.map +1 -0
- package/react-aria/react-aria/utils/isVirtualEvent.js +51 -0
- package/react-aria/react-aria/utils/isVirtualEvent.js.map +1 -0
- package/react-aria/react-aria/utils/mergeProps.js +48 -0
- package/react-aria/react-aria/utils/mergeProps.js.map +1 -0
- package/react-aria/react-aria/utils/openLink.js +55 -0
- package/react-aria/react-aria/utils/openLink.js.map +1 -0
- package/react-aria/react-aria/utils/platform.js +69 -0
- package/react-aria/react-aria/utils/platform.js.map +1 -0
- package/react-aria/react-aria/utils/runAfterTransition.js +100 -0
- package/react-aria/react-aria/utils/runAfterTransition.js.map +1 -0
- package/react-aria/react-aria/utils/useDeepMemo.js +16 -0
- package/react-aria/react-aria/utils/useDeepMemo.js.map +1 -0
- package/react-aria/react-aria/utils/useEffectEvent.js +31 -0
- package/react-aria/react-aria/utils/useEffectEvent.js.map +1 -0
- package/react-aria/react-aria/utils/useEvent.js +21 -0
- package/react-aria/react-aria/utils/useEvent.js.map +1 -0
- package/react-aria/react-aria/utils/useFormReset.js +23 -0
- package/react-aria/react-aria/utils/useFormReset.js.map +1 -0
- package/react-aria/react-aria/utils/useGlobalListeners.js +44 -0
- package/react-aria/react-aria/utils/useGlobalListeners.js.map +1 -0
- package/react-aria/react-aria/utils/useId.js +86 -0
- package/react-aria/react-aria/utils/useId.js.map +1 -0
- package/react-aria/react-aria/utils/useLabels.js +39 -0
- package/react-aria/react-aria/utils/useLabels.js.map +1 -0
- package/react-aria/react-aria/utils/useLayoutEffect.js +21 -0
- package/react-aria/react-aria/utils/useLayoutEffect.js.map +1 -0
- package/react-aria/react-aria/utils/useSyncRef.js +29 -0
- package/react-aria/react-aria/utils/useSyncRef.js.map +1 -0
- package/react-aria/react-aria/utils/useValueEffect.js +52 -0
- package/react-aria/react-aria/utils/useValueEffect.js.map +1 -0
- package/react-aria/react-stately/form/useFormValidationState.js +191 -0
- package/react-aria/react-stately/form/useFormValidationState.js.map +1 -0
- package/react-aria/react-stately/numberfield/useNumberFieldState.js +196 -0
- package/react-aria/react-stately/numberfield/useNumberFieldState.js.map +1 -0
- package/react-aria/react-stately/utils/number.js +56 -0
- package/react-aria/react-stately/utils/number.js.map +1 -0
- package/react-aria/react-stately/utils/useControlledState.js +68 -0
- package/react-aria/react-stately/utils/useControlledState.js.map +1 -0
- package/react-aria/react-types/shared/locale.d.ts +3 -0
- package/types/colors.d.ts +102 -0
- package/types/colors.js +64 -0
- package/types/colors.js.map +1 -0
- package/types/fonts.d.ts +12 -0
- package/types/fonts.js +10 -0
- package/types/fonts.js.map +1 -0
- package/types/helpers.d.ts +23 -0
- package/types/products.d.ts +40 -0
- package/types/products.js +38 -0
- package/types/products.js.map +1 -0
- package/types/styles.d.ts +283 -0
- package/types/styles.js +161 -0
- package/types/styles.js.map +1 -0
- package/utils/filterComponents.d.ts +12 -0
- package/utils/filterComponents.js +24 -0
- package/utils/filterComponents.js.map +1 -0
- package/utils/getTextWidth.d.ts +6 -0
- package/utils/getTextWidth.js +32 -0
- package/utils/getTextWidth.js.map +1 -0
- package/utils/isComponent.d.ts +12 -0
- package/utils/isComponent.js +15 -0
- package/utils/isComponent.js.map +1 -0
- package/utils/partitionComponents.d.ts +10 -0
- package/utils/partitionComponents.js +26 -0
- package/utils/partitionComponents.js.map +1 -0
- package/utils/redsift-design-tokens.d.ts +1389 -0
- package/utils/redsift-design-tokens.js +1391 -0
- package/utils/redsift-design-tokens.js.map +1 -0
- package/utils/useId.d.ts +6 -0
- package/utils/useId.js +42 -0
- package/utils/useId.js.map +1 -0
- package/utils/warnIfNoAccessibleLabelFound.d.ts +11 -0
- package/utils/warnIfNoAccessibleLabelFound.js +20 -0
- package/utils/warnIfNoAccessibleLabelFound.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../src/components/side-navigation-menu/styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { StyledSideNavigationMenuProps } from './types';\nimport { SideNavigationMenuBarVariant } from '../side-navigation-menu-bar';\n\n/**\n * Component style.\n */\nexport const StyledSideNavigationMenu = styled.div<StyledSideNavigationMenuProps>`\n .redsift-side-navigation-menu__current-indicator-container {\n min-width: 4px;\n }\n\n .redsift-side-navigation-menu__menu-container {\n width: 100%;\n }\n\n .redsift-badge {\n margin-left: 8px;\n }\n\n ${({ $isDisabled, $variant, $theme }) => css`\n .redsift-side-navigation-menu__menu-container > button {\n ${!$isDisabled\n ? css`\n & {\n color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-resting);\n }\n `\n : css`\n & {\n color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-disabled);\n }\n `}\n align-items: center;\n background-color: var(--redsift-color-${$theme}-components-side-navigation-background);\n border: none;\n border-radius: 0 4px 4px 0;\n display: flex;\n font-family: var(--redsift-typography-body-font-family);\n font-size: 14px;\n font-weight: var(--redsift-typography-body-font-weight);\n gap: 0;\n height: 40px;\n line-height: var(--redsift-typography-body-line-height);\n margin-left: -4px;\n transition: padding 300ms ease-out;\n padding: 0 16px 0 ${$variant === SideNavigationMenuBarVariant.shrinked ? '16px' : '16px'};\n text-decoration: none;\n text-transform: uppercase;\n width: calc(100% + ${$variant === SideNavigationMenuBarVariant.shrinked ? '0px' : '4px'});\n\n :hover,\n :focus-visible {\n outline: none;\n\n ${!$isDisabled\n ? css`\n background-color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-background-hover);\n &,\n .redsift-icon.first,\n .redsift-side-navigation-menu__expand-icon {\n color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-hover);\n }\n cursor: pointer;\n `\n : ''}\n }\n\n :active {\n ${!$isDisabled\n ? css`\n background-color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-background-active);\n `\n : ''}\n }\n\n @media (prefers-reduced-motion: no-preference) {\n :focus-visible {\n > span${$variant === SideNavigationMenuBarVariant.shrinked ? '.first' : '.content'} {\n outline: 2px solid var(--redsift-color-primary-n);\n transition: outline-offset 75ms ease-out;\n }\n\n :not(:active):focus-visible {\n > span${$variant === SideNavigationMenuBarVariant.shrinked ? '.first' : '.content'} {\n transition-duration: 0.25s;\n }\n }\n }\n\n :not(:active):focus-visible {\n > span${$variant === SideNavigationMenuBarVariant.shrinked ? '.first' : '.content'} {\n outline-offset: 0.25rem;\n }\n }\n }\n }\n\n .content {\n transition: opacity 300ms ease-out;\n opacity: ${$variant === SideNavigationMenuBarVariant.shrinked ? '0' : '1'};\n overflow: hidden;\n white-space: nowrap;\n }\n `}\n\n .first {\n box-sizing: unset;\n margin-right: 8px;\n }\n\n .redsift-side-navigation-menu__expand-icon {\n transition: transform 300ms ease-out;\n ${({ $isDisabled, $theme }) =>\n !$isDisabled\n ? css`\n &,\n .redsift-icon.first {\n color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-resting);\n }\n `\n : css`\n &,\n .redsift-icon.first {\n color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-disabled);\n }\n `}\n ${({ $isExpanded }) =>\n !$isExpanded\n ? css`\n transform: rotate(0);\n `\n : css`\n transform: rotate(-180deg);\n `}\n margin-left: auto;\n\n transition: opacity 300ms ease-out;\n opacity: ${({ $variant }) => ($variant === SideNavigationMenuBarVariant.standard ? '1' : '0')};\n }\n\n [dir='rtl'] & {\n .redsift-side-navigation-menu__expand-icon {\n margin-left: unset;\n margin-right: auto;\n }\n }\n\n /**\n * Display children or not\n */\n\n .redsift-side-navigation-menu__menu-container > ul {\n list-style: none;\n margin: unset;\n padding: unset;\n margin-left: -4px;\n\n ${({ $variant }) => css`\n width: calc(100% + ${$variant === SideNavigationMenuBarVariant.shrinked ? '0px' : '4px'});\n `}\n margin-bottom: 4px;\n max-width: 241px;\n transition: height 300ms ease-out;\n overflow: hidden;\n ${({ $isExpanded, $numberOfChildren }) =>\n $isExpanded\n ? css`\n height: ${$numberOfChildren * 32}px;\n `\n : css`\n height: 0;\n `};\n }\n`;\n"],"names":["StyledSideNavigationMenu","styled","div","_ref","$isDisabled","$variant","$theme","css","SideNavigationMenuBarVariant","shrinked","_ref2","_ref3","$isExpanded","_ref4","standard","_ref5","_ref6","$numberOfChildren"],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { ComponentProps, MutableRefObject } from 'react';
|
|
2
|
+
import { BadgeProps } from '../badge/types.js';
|
|
3
|
+
import { SideNavigationMenuBarVariant } from '../side-navigation-menu-bar/types.js';
|
|
4
|
+
import { IconProps } from '../icon/types.js';
|
|
5
|
+
import { Theme } from '../../types/colors.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Context props.
|
|
9
|
+
*/
|
|
10
|
+
type SideNavigationMenuContextProps = {
|
|
11
|
+
menuItems: Set<HTMLAnchorElement | HTMLButtonElement>;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Reducer props.
|
|
15
|
+
*/
|
|
16
|
+
type SideNavigationMenuReducerState = {
|
|
17
|
+
isExpanded: boolean;
|
|
18
|
+
currentIndex: number;
|
|
19
|
+
previousIndex: number;
|
|
20
|
+
};
|
|
21
|
+
declare enum SideNavigationMenuReducerActionType {
|
|
22
|
+
Expand = "expand",
|
|
23
|
+
Collapse = "collapse",
|
|
24
|
+
Move = "move"
|
|
25
|
+
}
|
|
26
|
+
type SideNavigationMenuReducerAction = {
|
|
27
|
+
type: SideNavigationMenuReducerActionType;
|
|
28
|
+
index?: number;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Component props.
|
|
32
|
+
*/
|
|
33
|
+
interface SideNavigationMenuProps extends ComponentProps<'div'> {
|
|
34
|
+
/** Custom props to pass to the button. */
|
|
35
|
+
buttonProps?: ComponentProps<'button'>;
|
|
36
|
+
/** Custom ref to pass to the button. */
|
|
37
|
+
buttonRef?: MutableRefObject<HTMLButtonElement>;
|
|
38
|
+
/** Custom props to pass to the Badge component, if any. */
|
|
39
|
+
badgeProps?: Omit<BadgeProps, 'ref'>;
|
|
40
|
+
/** Whether or not the menu contains children that have a badge. */
|
|
41
|
+
hasBadge?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Can be a string or an array of strings containing `d` property of the `path` SVG element.<br />
|
|
44
|
+
* Can also be a ReactElement.
|
|
45
|
+
*/
|
|
46
|
+
icon?: IconProps['icon'];
|
|
47
|
+
/** Custom props to pass to the Icon component. */
|
|
48
|
+
iconProps?: Omit<IconProps, 'ref' | 'icon'>;
|
|
49
|
+
/** Custom ref to pass to the Icon component. */
|
|
50
|
+
iconRef?: MutableRefObject<HTMLElement>;
|
|
51
|
+
/** Whether the component is disabled or not. */
|
|
52
|
+
isDisabled?: boolean;
|
|
53
|
+
/** Whether the menu is expanded or not. */
|
|
54
|
+
isExpanded?: boolean;
|
|
55
|
+
/** By default, the badge is hidden when the menu is expanded. This prop controls this behavior. */
|
|
56
|
+
keepBadgeVisible?: boolean;
|
|
57
|
+
/** Custom props to pass to the menu. */
|
|
58
|
+
menuProps?: ComponentProps<'ul'>;
|
|
59
|
+
/** Custom ref to pass to the menu. */
|
|
60
|
+
menuRef?: MutableRefObject<HTMLUListElement>;
|
|
61
|
+
/** Theme. */
|
|
62
|
+
theme?: Theme;
|
|
63
|
+
}
|
|
64
|
+
type StyledSideNavigationMenuProps = Omit<SideNavigationMenuProps, 'isDisabled' | 'isExpanded'> & {
|
|
65
|
+
$isDisabled: SideNavigationMenuProps['isDisabled'];
|
|
66
|
+
$isExpanded: SideNavigationMenuProps['isExpanded'];
|
|
67
|
+
$numberOfChildren: number;
|
|
68
|
+
$variant: SideNavigationMenuBarVariant;
|
|
69
|
+
$theme: SideNavigationMenuProps['theme'];
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export { SideNavigationMenuContextProps, SideNavigationMenuProps, SideNavigationMenuReducerAction, SideNavigationMenuReducerActionType, SideNavigationMenuReducerState, StyledSideNavigationMenuProps };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context props.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Reducer props.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
let SideNavigationMenuReducerActionType = /*#__PURE__*/function (SideNavigationMenuReducerActionType) {
|
|
10
|
+
SideNavigationMenuReducerActionType["Expand"] = "expand";
|
|
11
|
+
SideNavigationMenuReducerActionType["Collapse"] = "collapse";
|
|
12
|
+
SideNavigationMenuReducerActionType["Move"] = "move";
|
|
13
|
+
return SideNavigationMenuReducerActionType;
|
|
14
|
+
}({});
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Component props.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
export { SideNavigationMenuReducerActionType };
|
|
21
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../src/components/side-navigation-menu/types.ts"],"sourcesContent":["import { ComponentProps, MutableRefObject } from 'react';\nimport { IconProps } from '../icon';\nimport { SideNavigationMenuBarVariant } from '../side-navigation-menu-bar';\nimport { Theme } from '@redsift/design-system/types';\nimport { BadgeProps } from '../badge';\n\n/**\n * Context props.\n */\nexport type SideNavigationMenuContextProps = {\n menuItems: Set<HTMLAnchorElement | HTMLButtonElement>;\n};\n\n/**\n * Reducer props.\n */\nexport type SideNavigationMenuReducerState = {\n isExpanded: boolean;\n currentIndex: number;\n previousIndex: number;\n};\n\nexport enum SideNavigationMenuReducerActionType {\n Expand = 'expand',\n Collapse = 'collapse',\n Move = 'move',\n}\n\nexport type SideNavigationMenuReducerAction = {\n type: SideNavigationMenuReducerActionType;\n index?: number;\n};\n\n/**\n * Component props.\n */\nexport interface SideNavigationMenuProps extends ComponentProps<'div'> {\n /** Custom props to pass to the button. */\n buttonProps?: ComponentProps<'button'>;\n /** Custom ref to pass to the button. */\n buttonRef?: MutableRefObject<HTMLButtonElement>;\n /** Custom props to pass to the Badge component, if any. */\n badgeProps?: Omit<BadgeProps, 'ref'>;\n /** Whether or not the menu contains children that have a badge. */\n hasBadge?: boolean;\n /**\n * Can be a string or an array of strings containing `d` property of the `path` SVG element.<br />\n * Can also be a ReactElement.\n */\n icon?: IconProps['icon'];\n /** Custom props to pass to the Icon component. */\n iconProps?: Omit<IconProps, 'ref' | 'icon'>;\n /** Custom ref to pass to the Icon component. */\n iconRef?: MutableRefObject<HTMLElement>;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the menu is expanded or not. */\n isExpanded?: boolean;\n /** By default, the badge is hidden when the menu is expanded. This prop controls this behavior. */\n keepBadgeVisible?: boolean;\n /** Custom props to pass to the menu. */\n menuProps?: ComponentProps<'ul'>;\n /** Custom ref to pass to the menu. */\n menuRef?: MutableRefObject<HTMLUListElement>;\n /** Theme. */\n theme?: Theme;\n}\n\nexport type StyledSideNavigationMenuProps = Omit<SideNavigationMenuProps, 'isDisabled' | 'isExpanded'> & {\n $isDisabled: SideNavigationMenuProps['isDisabled'];\n $isExpanded: SideNavigationMenuProps['isExpanded'];\n $numberOfChildren: number;\n $variant: SideNavigationMenuBarVariant;\n $theme: SideNavigationMenuProps['theme'];\n};\n"],"names":["SideNavigationMenuReducerActionType"],"mappings":"AAMA;AACA;AACA;;AAKA;AACA;AACA;;AAOYA,IAAAA,mCAAmC,0BAAnCA,mCAAmC,EAAA;EAAnCA,mCAAmC,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA;EAAnCA,mCAAmC,CAAA,UAAA,CAAA,GAAA,UAAA,CAAA;EAAnCA,mCAAmC,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;AAAA,EAAA,OAAnCA,mCAAmC,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;;AAW/C;AACA;AACA;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SideNavigationMenuBarProps } from './types.js';
|
|
2
|
+
import { Comp } from '../../types/helpers.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The SideNavigationMenuBar component.
|
|
6
|
+
*/
|
|
7
|
+
declare const SideNavigationMenuBar: Comp<SideNavigationMenuBarProps, HTMLElement>;
|
|
8
|
+
|
|
9
|
+
export { SideNavigationMenuBar };
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React__default, { forwardRef, useRef, useContext, useState, useEffect, useMemo } from 'react';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound.js';
|
|
5
|
+
import { StyledSideNavigationMenuBar } from './styles.js';
|
|
6
|
+
import { SideNavigationMenuBarVariant } from './types.js';
|
|
7
|
+
import { SideNavigationMenuBarContext } from './context.js';
|
|
8
|
+
import { useBoundingClientRect } from '../../hooks/useBoundingRect.js';
|
|
9
|
+
import { filterComponents } from '../../utils/filterComponents.js';
|
|
10
|
+
import { SideNavigationMenu } from '../side-navigation-menu/SideNavigationMenu.js';
|
|
11
|
+
import { AppContainerContext } from '../app-container/context.js';
|
|
12
|
+
import { useTheme } from '../theme/useTheme.js';
|
|
13
|
+
import { AppSidePanelVariant } from '../app-side-panel/types.js';
|
|
14
|
+
import { ThemeProvider } from '../theme/context.js';
|
|
15
|
+
import { SideNavigationMenuItem } from '../side-navigation-menu-item/SideNavigationMenuItem.js';
|
|
16
|
+
|
|
17
|
+
const _excluded = ["aria-label", "aria-labelledby", "canHaveMultipleMenuOpenAtOnce", "children", "className", "isDisabled", "menubarProps", "menubarRef", "theme", "variant"];
|
|
18
|
+
const COMPONENT_NAME = 'SideNavigationMenuBar';
|
|
19
|
+
const CLASSNAME = 'redsift-side-navigation-menu-bar';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Hook to store the previous index for further use
|
|
23
|
+
*/
|
|
24
|
+
const usePrevious = value => {
|
|
25
|
+
const ref = useRef(0);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
ref.current = value;
|
|
28
|
+
}, [value]);
|
|
29
|
+
return ref.current;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* The SideNavigationMenuBar component.
|
|
34
|
+
*/
|
|
35
|
+
const SideNavigationMenuBar = /*#__PURE__*/forwardRef((props, ref) => {
|
|
36
|
+
const navRef = ref || useRef();
|
|
37
|
+
const {
|
|
38
|
+
'aria-label': ariaLabel,
|
|
39
|
+
'aria-labelledby': ariaLabelledby,
|
|
40
|
+
canHaveMultipleMenuOpenAtOnce,
|
|
41
|
+
children,
|
|
42
|
+
className,
|
|
43
|
+
isDisabled,
|
|
44
|
+
menubarProps = {},
|
|
45
|
+
menubarRef = useRef(),
|
|
46
|
+
theme: propsTheme,
|
|
47
|
+
variant: propsVariant = SideNavigationMenuBarVariant.standard
|
|
48
|
+
} = props,
|
|
49
|
+
forwardedProps = _objectWithoutProperties(props, _excluded);
|
|
50
|
+
warnIfNoAccessibleLabelFound(props, undefined, 'SideNavigationMenuBar');
|
|
51
|
+
const appContainerState = useContext(AppContainerContext);
|
|
52
|
+
const theme = useTheme(propsTheme);
|
|
53
|
+
const {
|
|
54
|
+
top
|
|
55
|
+
} = useBoundingClientRect(navRef, [children]);
|
|
56
|
+
const [variant, setVariant] = useState(appContainerState ? appContainerState.sidePanelVariant === AppSidePanelVariant.hidden ? SideNavigationMenuBarVariant.shrinked : appContainerState.sidePanelVariant : propsVariant);
|
|
57
|
+
const [currentOpenMenuId, setCurrentOpenMenuId] = useState();
|
|
58
|
+
useEffect(() => {
|
|
59
|
+
setVariant(propsVariant);
|
|
60
|
+
}, [propsVariant]);
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
if (appContainerState && appContainerState.sidePanelVariant && appContainerState.sidePanelVariant !== variant) {
|
|
63
|
+
setVariant(appContainerState.sidePanelVariant === AppSidePanelVariant.hidden ? SideNavigationMenuBarVariant.shrinked : appContainerState.sidePanelVariant);
|
|
64
|
+
}
|
|
65
|
+
}, [appContainerState === null || appContainerState === void 0 ? void 0 : appContainerState.sidePanelVariant]);
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Create an array containing only valid children being either SideNavigationMenu or SideNavigationMenuItem.
|
|
69
|
+
*/
|
|
70
|
+
const childArray = filterComponents([SideNavigationMenu, SideNavigationMenuItem])(children);
|
|
71
|
+
const navItems = childArray.map((child, index) => {
|
|
72
|
+
var _child$key, _child$key2;
|
|
73
|
+
return /*#__PURE__*/React__default.createElement("li", {
|
|
74
|
+
key: (_child$key = child.key) !== null && _child$key !== void 0 ? _child$key : index,
|
|
75
|
+
role: "none"
|
|
76
|
+
}, /*#__PURE__*/React__default.cloneElement(child, {
|
|
77
|
+
isDisabled: child.props.isDisabled || isDisabled || undefined,
|
|
78
|
+
key: (_child$key2 = child.key) !== null && _child$key2 !== void 0 ? _child$key2 : index,
|
|
79
|
+
tabIndex: index === 0 ? 0 : -1
|
|
80
|
+
}));
|
|
81
|
+
});
|
|
82
|
+
const menuItems = useRef(new Set()).current;
|
|
83
|
+
const [currentIndex, setCurrentIndex] = useState(0);
|
|
84
|
+
const previousIndex = usePrevious(currentIndex);
|
|
85
|
+
const first = () => setCurrentIndex(0);
|
|
86
|
+
const last = () => setCurrentIndex(menuItems.size - 1);
|
|
87
|
+
const next = () => {
|
|
88
|
+
const index = currentIndex === menuItems.size - 1 ? 0 : currentIndex + 1;
|
|
89
|
+
setCurrentIndex(index);
|
|
90
|
+
};
|
|
91
|
+
const previous = () => {
|
|
92
|
+
const index = currentIndex === 0 ? menuItems.size - 1 : currentIndex - 1;
|
|
93
|
+
setCurrentIndex(index);
|
|
94
|
+
};
|
|
95
|
+
const match = event => {
|
|
96
|
+
const items = Array.from(menuItems);
|
|
97
|
+
|
|
98
|
+
// Reorder the array, starting with the currentNode
|
|
99
|
+
const reorderedItems = [...items.slice(currentIndex), ...items.slice(0, currentIndex)];
|
|
100
|
+
|
|
101
|
+
// Find all nodes that begin with the pressed letter
|
|
102
|
+
const matches = reorderedItems.filter(menuItem => {
|
|
103
|
+
const {
|
|
104
|
+
textContent
|
|
105
|
+
} = menuItem;
|
|
106
|
+
// istanbul ignore next
|
|
107
|
+
const firstLetter = textContent === null || textContent === void 0 ? void 0 : textContent.toLowerCase().charAt(0);
|
|
108
|
+
return event.key === firstLetter;
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
// Exit early if there are no matches
|
|
112
|
+
if (!matches.length) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// If the focused item is a match, focus the next match.
|
|
117
|
+
// Otherwise, focus the first match
|
|
118
|
+
const currentNode = items[currentIndex];
|
|
119
|
+
const nextMatch = matches.includes(currentNode) ? matches[1] : matches[0];
|
|
120
|
+
const index = items.findIndex(item => {
|
|
121
|
+
return item === nextMatch;
|
|
122
|
+
});
|
|
123
|
+
setCurrentIndex(index);
|
|
124
|
+
};
|
|
125
|
+
const keyDown = e => {
|
|
126
|
+
var _menubarProps$onKeyDo, _currentNode$parentNo;
|
|
127
|
+
(_menubarProps$onKeyDo = menubarProps.onKeyDown) === null || _menubarProps$onKeyDo === void 0 ? void 0 : _menubarProps$onKeyDo.call(menubarProps, e);
|
|
128
|
+
e.stopPropagation();
|
|
129
|
+
const currentNode = e.target;
|
|
130
|
+
// istanbul ignore next
|
|
131
|
+
const parentMenu = currentNode === null || currentNode === void 0 ? void 0 : (_currentNode$parentNo = currentNode.parentNode) === null || _currentNode$parentNo === void 0 ? void 0 : _currentNode$parentNo.parentNode;
|
|
132
|
+
const isFromSubmenu = parentMenu.getAttribute('role') === 'menu';
|
|
133
|
+
switch (e.code) {
|
|
134
|
+
case 'ArrowUp':
|
|
135
|
+
e.preventDefault();
|
|
136
|
+
previous();
|
|
137
|
+
break;
|
|
138
|
+
case 'ArrowDown':
|
|
139
|
+
e.preventDefault();
|
|
140
|
+
next();
|
|
141
|
+
break;
|
|
142
|
+
case 'ArrowRight':
|
|
143
|
+
e.preventDefault();
|
|
144
|
+
if (isFromSubmenu) {
|
|
145
|
+
next();
|
|
146
|
+
}
|
|
147
|
+
break;
|
|
148
|
+
case 'End':
|
|
149
|
+
e.preventDefault();
|
|
150
|
+
last();
|
|
151
|
+
break;
|
|
152
|
+
case 'Home':
|
|
153
|
+
e.preventDefault();
|
|
154
|
+
first();
|
|
155
|
+
break;
|
|
156
|
+
case 'Enter':
|
|
157
|
+
case 'Space':
|
|
158
|
+
e.preventDefault();
|
|
159
|
+
currentNode.click();
|
|
160
|
+
break;
|
|
161
|
+
default:
|
|
162
|
+
match(e);
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
const value = useMemo(() => ({
|
|
167
|
+
menuItems,
|
|
168
|
+
sideNavigationMenuBarVariant: variant,
|
|
169
|
+
setSideNavigationMenuBarVariant: setVariant,
|
|
170
|
+
currentOpenMenuId,
|
|
171
|
+
setCurrentOpenMenuId: value => {
|
|
172
|
+
if (!canHaveMultipleMenuOpenAtOnce) {
|
|
173
|
+
setCurrentOpenMenuId(value);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}), [menuItems, variant, setVariant, currentOpenMenuId, setCurrentOpenMenuId]);
|
|
177
|
+
useEffect(() => {
|
|
178
|
+
if (currentIndex !== previousIndex) {
|
|
179
|
+
const items = Array.from(menuItems);
|
|
180
|
+
const currentNode = items[currentIndex];
|
|
181
|
+
const previousNode = items[previousIndex];
|
|
182
|
+
|
|
183
|
+
// istanbul ignore next
|
|
184
|
+
previousNode === null || previousNode === void 0 ? void 0 : previousNode.setAttribute('tabindex', '-1');
|
|
185
|
+
currentNode === null || currentNode === void 0 ? void 0 : currentNode.setAttribute('tabindex', '0');
|
|
186
|
+
currentNode === null || currentNode === void 0 ? void 0 : currentNode.focus();
|
|
187
|
+
}
|
|
188
|
+
}, [currentIndex, previousIndex, menuItems]);
|
|
189
|
+
return /*#__PURE__*/React__default.createElement(ThemeProvider, {
|
|
190
|
+
value: {
|
|
191
|
+
theme
|
|
192
|
+
}
|
|
193
|
+
}, /*#__PURE__*/React__default.createElement(StyledSideNavigationMenuBar, _extends({}, forwardedProps, {
|
|
194
|
+
$isDisabled: isDisabled,
|
|
195
|
+
$marginTop: top,
|
|
196
|
+
$theme: theme,
|
|
197
|
+
$variant: variant,
|
|
198
|
+
"aria-label": ariaLabel,
|
|
199
|
+
"aria-labelledby": ariaLabelledby,
|
|
200
|
+
className: classNames(SideNavigationMenuBar.className, className),
|
|
201
|
+
ref: navRef
|
|
202
|
+
}), /*#__PURE__*/React__default.createElement(SideNavigationMenuBarContext.Provider, {
|
|
203
|
+
value: value
|
|
204
|
+
}, /*#__PURE__*/React__default.createElement("ul", _extends({}, menubarProps, {
|
|
205
|
+
"aria-label": ariaLabel,
|
|
206
|
+
"aria-labelledby": ariaLabelledby,
|
|
207
|
+
"aria-orientation": "vertical",
|
|
208
|
+
onKeyDown: keyDown,
|
|
209
|
+
ref: menubarRef,
|
|
210
|
+
role: "menubar"
|
|
211
|
+
}), navItems))));
|
|
212
|
+
});
|
|
213
|
+
SideNavigationMenuBar.className = CLASSNAME;
|
|
214
|
+
SideNavigationMenuBar.displayName = COMPONENT_NAME;
|
|
215
|
+
|
|
216
|
+
export { SideNavigationMenuBar };
|
|
217
|
+
//# sourceMappingURL=SideNavigationMenuBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNavigationMenuBar.js","sources":["../../../src/components/side-navigation-menu-bar/SideNavigationMenuBar.tsx"],"sourcesContent":["import React, {\n forwardRef,\n KeyboardEvent,\n MutableRefObject,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { SideNavigationMenu } from '../side-navigation-menu';\nimport { SideNavigationMenuItem } from '../side-navigation-menu-item';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { StyledSideNavigationMenuBar } from './styles';\nimport { SideNavigationMenuBarProps, SideNavigationMenuBarContextProps, SideNavigationMenuBarVariant } from './types';\nimport { SideNavigationMenuBarContext } from './context';\nimport { useBoundingClientRect } from '../../hooks/useBoundingRect';\nimport { filterComponents } from '../../utils/filterComponents';\nimport { AppContainerContext } from '../app-container';\nimport { ThemeProvider, useTheme } from '../theme';\nimport { AppSidePanelVariant } from '../app-side-panel';\n\nconst COMPONENT_NAME = 'SideNavigationMenuBar';\nconst CLASSNAME = 'redsift-side-navigation-menu-bar';\n\n/**\n * Hook to store the previous index for further use\n */\nconst usePrevious = (value: number) => {\n const ref = useRef(0);\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n};\n\n/**\n * The SideNavigationMenuBar component.\n */\nexport const SideNavigationMenuBar: Comp<SideNavigationMenuBarProps, HTMLElement> = forwardRef((props, ref) => {\n const navRef = (ref || useRef<HTMLElement>()) as MutableRefObject<HTMLElement>;\n\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n canHaveMultipleMenuOpenAtOnce,\n children,\n className,\n isDisabled,\n menubarProps = {},\n menubarRef = useRef<HTMLUListElement>(),\n theme: propsTheme,\n variant: propsVariant = SideNavigationMenuBarVariant.standard,\n ...forwardedProps\n } = props;\n\n warnIfNoAccessibleLabelFound(props, undefined, 'SideNavigationMenuBar');\n const appContainerState = useContext(AppContainerContext);\n const theme = useTheme(propsTheme);\n const { top } = useBoundingClientRect(navRef, [children]);\n const [variant, setVariant] = useState<SideNavigationMenuBarVariant>(\n appContainerState\n ? appContainerState.sidePanelVariant === AppSidePanelVariant.hidden\n ? SideNavigationMenuBarVariant.shrinked\n : appContainerState.sidePanelVariant\n : propsVariant!\n );\n const [currentOpenMenuId, setCurrentOpenMenuId] = useState<string | undefined>();\n\n useEffect(() => {\n setVariant(propsVariant!);\n }, [propsVariant]);\n\n useEffect(() => {\n if (appContainerState && appContainerState.sidePanelVariant && appContainerState.sidePanelVariant !== variant) {\n setVariant(\n appContainerState.sidePanelVariant === AppSidePanelVariant.hidden\n ? SideNavigationMenuBarVariant.shrinked\n : appContainerState.sidePanelVariant\n );\n }\n }, [appContainerState?.sidePanelVariant]);\n\n /**\n * Create an array containing only valid children being either SideNavigationMenu or SideNavigationMenuItem.\n */\n const childArray = filterComponents([SideNavigationMenu, SideNavigationMenuItem])(children);\n const navItems = childArray.map((child, index) => {\n return (\n <li key={child.key ?? index} role=\"none\">\n {React.cloneElement(child, {\n isDisabled: child.props.isDisabled || isDisabled || undefined,\n key: child.key ?? index,\n tabIndex: index === 0 ? 0 : -1,\n })}\n </li>\n );\n });\n\n const menuItems = useRef<Set<HTMLAnchorElement | HTMLButtonElement>>(new Set()).current;\n const [currentIndex, setCurrentIndex] = useState(0);\n const previousIndex = usePrevious(currentIndex);\n\n const first = () => setCurrentIndex(0);\n\n const last = () => setCurrentIndex(menuItems.size - 1);\n\n const next = () => {\n const index = currentIndex === menuItems.size - 1 ? 0 : currentIndex + 1;\n setCurrentIndex(index);\n };\n\n const previous = () => {\n const index = currentIndex === 0 ? menuItems.size - 1 : currentIndex - 1;\n setCurrentIndex(index);\n };\n\n const match = (event: React.KeyboardEvent<HTMLUListElement>) => {\n const items = Array.from(menuItems);\n\n // Reorder the array, starting with the currentNode\n const reorderedItems = [...items.slice(currentIndex), ...items.slice(0, currentIndex)];\n\n // Find all nodes that begin with the pressed letter\n const matches = reorderedItems.filter((menuItem) => {\n const { textContent } = menuItem;\n // istanbul ignore next\n const firstLetter = textContent?.toLowerCase().charAt(0);\n return event.key === firstLetter;\n });\n\n // Exit early if there are no matches\n if (!matches.length) {\n return;\n }\n\n // If the focused item is a match, focus the next match.\n // Otherwise, focus the first match\n const currentNode = items[currentIndex];\n const nextMatch = matches.includes(currentNode) ? matches[1] : matches[0];\n const index = items.findIndex((item) => {\n return item === nextMatch;\n });\n\n setCurrentIndex(index);\n };\n\n const keyDown = (e: KeyboardEvent<HTMLUListElement>) => {\n menubarProps.onKeyDown?.(e);\n e.stopPropagation();\n\n const currentNode = e.target as HTMLUListElement;\n // istanbul ignore next\n const parentMenu = currentNode?.parentNode?.parentNode as HTMLElement;\n const isFromSubmenu = parentMenu.getAttribute('role') === 'menu';\n\n switch (e.code) {\n case 'ArrowUp':\n e.preventDefault();\n previous();\n break;\n case 'ArrowDown':\n e.preventDefault();\n next();\n break;\n case 'ArrowRight':\n e.preventDefault();\n if (isFromSubmenu) {\n next();\n }\n break;\n case 'End':\n e.preventDefault();\n last();\n break;\n case 'Home':\n e.preventDefault();\n first();\n break;\n case 'Enter':\n case 'Space':\n e.preventDefault();\n currentNode.click();\n break;\n default:\n match(e);\n break;\n }\n };\n\n const value = useMemo<SideNavigationMenuBarContextProps>(\n () => ({\n menuItems,\n sideNavigationMenuBarVariant: variant,\n setSideNavigationMenuBarVariant: setVariant,\n currentOpenMenuId,\n setCurrentOpenMenuId: (value: React.SetStateAction<string | undefined>) => {\n if (!canHaveMultipleMenuOpenAtOnce) {\n setCurrentOpenMenuId(value);\n }\n },\n }),\n [menuItems, variant, setVariant, currentOpenMenuId, setCurrentOpenMenuId]\n );\n\n useEffect(() => {\n if (currentIndex !== previousIndex) {\n const items = Array.from(menuItems);\n const currentNode = items[currentIndex] as HTMLElement;\n const previousNode = items[previousIndex] as HTMLElement;\n\n // istanbul ignore next\n previousNode?.setAttribute('tabindex', '-1');\n currentNode?.setAttribute('tabindex', '0');\n currentNode?.focus();\n }\n }, [currentIndex, previousIndex, menuItems]);\n\n return (\n <ThemeProvider value={{ theme }}>\n <StyledSideNavigationMenuBar\n {...forwardedProps}\n $isDisabled={isDisabled}\n $marginTop={top}\n $theme={theme}\n $variant={variant}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n className={classNames(SideNavigationMenuBar.className, className)}\n ref={navRef as MutableRefObject<HTMLElement>}\n >\n <SideNavigationMenuBarContext.Provider value={value}>\n <ul\n {...menubarProps}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-orientation=\"vertical\"\n onKeyDown={keyDown}\n ref={menubarRef as MutableRefObject<HTMLUListElement>}\n role=\"menubar\"\n >\n {navItems}\n </ul>\n </SideNavigationMenuBarContext.Provider>\n </StyledSideNavigationMenuBar>\n </ThemeProvider>\n );\n});\nSideNavigationMenuBar.className = CLASSNAME;\nSideNavigationMenuBar.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","usePrevious","value","ref","useRef","useEffect","current","SideNavigationMenuBar","forwardRef","props","navRef","ariaLabel","ariaLabelledby","canHaveMultipleMenuOpenAtOnce","children","className","isDisabled","menubarProps","menubarRef","theme","propsTheme","variant","propsVariant","SideNavigationMenuBarVariant","standard","forwardedProps","_objectWithoutProperties","_excluded","warnIfNoAccessibleLabelFound","undefined","appContainerState","useContext","AppContainerContext","useTheme","top","useBoundingClientRect","setVariant","useState","sidePanelVariant","AppSidePanelVariant","hidden","shrinked","currentOpenMenuId","setCurrentOpenMenuId","childArray","filterComponents","SideNavigationMenu","SideNavigationMenuItem","navItems","map","child","index","_child$key","_child$key2","React","createElement","key","role","cloneElement","tabIndex","menuItems","Set","currentIndex","setCurrentIndex","previousIndex","first","last","size","next","previous","match","event","items","Array","from","reorderedItems","slice","matches","filter","menuItem","textContent","firstLetter","toLowerCase","charAt","length","currentNode","nextMatch","includes","findIndex","item","keyDown","e","_menubarProps$onKeyDo","_currentNode$parentNo","onKeyDown","call","stopPropagation","target","parentMenu","parentNode","isFromSubmenu","getAttribute","code","preventDefault","click","useMemo","sideNavigationMenuBarVariant","setSideNavigationMenuBarVariant","previousNode","setAttribute","focus","ThemeProvider","StyledSideNavigationMenuBar","_extends","$isDisabled","$marginTop","$theme","$variant","classNames","SideNavigationMenuBarContext","Provider","displayName"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../../src/components/side-navigation-menu-bar/context.ts"],"sourcesContent":["import React from 'react';\nimport { SideNavigationMenuBarContextProps } from './types';\n\nexport const SideNavigationMenuBarContext =\n React.createContext<SideNavigationMenuBarContextProps>(null!);\n"],"names":["SideNavigationMenuBarContext","React","createContext"],"mappings":";;AAGO,MAAMA,4BAA4B,gBACvCC,cAAK,CAACC,aAAa,CAAoC,IAAK;;;;"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import styled, { css } from 'styled-components';
|
|
2
|
+
import { SideNavigationMenuBarVariant } from './types.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Component style.
|
|
6
|
+
*/
|
|
7
|
+
const StyledSideNavigationMenuBar = styled.nav`
|
|
8
|
+
background-color: ${_ref => {
|
|
9
|
+
let {
|
|
10
|
+
$theme
|
|
11
|
+
} = _ref;
|
|
12
|
+
return `var(--redsift-color-${$theme}-components-side-navigation-background)`;
|
|
13
|
+
}};
|
|
14
|
+
box-sizing: content-box;
|
|
15
|
+
overflow-x: hidden;
|
|
16
|
+
overflow-y: auto;
|
|
17
|
+
scrollbar-gutter: stable;
|
|
18
|
+
transition: width 300ms ease-out;
|
|
19
|
+
width: ${_ref2 => {
|
|
20
|
+
let {
|
|
21
|
+
$variant
|
|
22
|
+
} = _ref2;
|
|
23
|
+
return $variant === SideNavigationMenuBarVariant.shrinked ? '64px' : '250px';
|
|
24
|
+
}};
|
|
25
|
+
|
|
26
|
+
${_ref3 => {
|
|
27
|
+
let {
|
|
28
|
+
$marginTop = 0
|
|
29
|
+
} = _ref3;
|
|
30
|
+
return $marginTop ? css`
|
|
31
|
+
height: calc(100% - ${$marginTop}px);
|
|
32
|
+
` : '';
|
|
33
|
+
}}
|
|
34
|
+
|
|
35
|
+
ul {
|
|
36
|
+
list-style: none;
|
|
37
|
+
margin: unset;
|
|
38
|
+
padding: unset;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
scrollbar-color: ${_ref4 => {
|
|
42
|
+
let {
|
|
43
|
+
$theme
|
|
44
|
+
} = _ref4;
|
|
45
|
+
return `var(--redsift-color-${$theme}-components-side-navigation-scrollbar-resting) transparent`;
|
|
46
|
+
}};
|
|
47
|
+
scrollbar-width: thin;
|
|
48
|
+
|
|
49
|
+
&::-webkit-scrollbar {
|
|
50
|
+
block-size: 9px;
|
|
51
|
+
inline-size: 9px;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
&::-webkit-scrollbar-thumb {
|
|
55
|
+
background-clip: padding-box;
|
|
56
|
+
background-color: ${_ref5 => {
|
|
57
|
+
let {
|
|
58
|
+
$theme
|
|
59
|
+
} = _ref5;
|
|
60
|
+
return `var(--redsift-color-${$theme}-components-side-navigation-scrollbar-resting)`;
|
|
61
|
+
}};
|
|
62
|
+
border-radius: 0px;
|
|
63
|
+
border-left: 2px solid transparent;
|
|
64
|
+
border-right: 2px solid transparent;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
&::-webkit-scrollbar-track {
|
|
68
|
+
background-color: transparent;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
&::-webkit-scrollbar-thumb:horizontal,
|
|
72
|
+
&::-webkit-scrollbar-thumb:vertical {
|
|
73
|
+
&:hover {
|
|
74
|
+
background-color: ${_ref6 => {
|
|
75
|
+
let {
|
|
76
|
+
$theme
|
|
77
|
+
} = _ref6;
|
|
78
|
+
return `var(--redsift-color-${$theme}-components-side-navigation-scrollbar-hover)`;
|
|
79
|
+
}};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
&::-webkit-scrollbar-corner {
|
|
84
|
+
visibility: hidden;
|
|
85
|
+
}
|
|
86
|
+
`;
|
|
87
|
+
|
|
88
|
+
export { StyledSideNavigationMenuBar };
|
|
89
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../src/components/side-navigation-menu-bar/styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { SideNavigationMenuBarVariant, StyledSideNavigationMenuBarProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSideNavigationMenuBar = styled.nav<StyledSideNavigationMenuBarProps>`\n background-color: ${({ $theme }) => `var(--redsift-color-${$theme}-components-side-navigation-background)`};\n box-sizing: content-box;\n overflow-x: hidden;\n overflow-y: auto;\n scrollbar-gutter: stable;\n transition: width 300ms ease-out;\n width: ${({ $variant }) => ($variant === SideNavigationMenuBarVariant.shrinked ? '64px' : '250px')};\n\n ${({ $marginTop = 0 }) =>\n $marginTop\n ? css`\n height: calc(100% - ${$marginTop}px);\n `\n : ''}\n\n ul {\n list-style: none;\n margin: unset;\n padding: unset;\n }\n\n scrollbar-color: ${({ $theme }) =>\n `var(--redsift-color-${$theme}-components-side-navigation-scrollbar-resting) transparent`};\n scrollbar-width: thin;\n\n &::-webkit-scrollbar {\n block-size: 9px;\n inline-size: 9px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-clip: padding-box;\n background-color: ${({ $theme }) => `var(--redsift-color-${$theme}-components-side-navigation-scrollbar-resting)`};\n border-radius: 0px;\n border-left: 2px solid transparent;\n border-right: 2px solid transparent;\n }\n\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-thumb:horizontal,\n &::-webkit-scrollbar-thumb:vertical {\n &:hover {\n background-color: ${({ $theme }) => `var(--redsift-color-${$theme}-components-side-navigation-scrollbar-hover)`};\n }\n }\n\n &::-webkit-scrollbar-corner {\n visibility: hidden;\n }\n`;\n"],"names":["StyledSideNavigationMenuBar","styled","nav","_ref","$theme","_ref2","$variant","SideNavigationMenuBarVariant","shrinked","_ref3","$marginTop","css","_ref4","_ref5","_ref6"],"mappings":";;;AAGA;AACA;AACA;AACaA,MAAAA,2BAA2B,GAAGC,MAAM,CAACC,GAAsC,CAAA;AACxF,oBAAA,EAAsBC,IAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,MAAAA;AAAO,GAAC,GAAAD,IAAA,CAAA;EAAA,OAAM,CAAA,oBAAA,EAAsBC,MAAO,CAAwC,uCAAA,CAAA,CAAA;AAAA,CAAC,CAAA;AAC7G;AACA;AACA;AACA;AACA;AACA,SAAA,EAAWC,KAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,QAAAA;AAAS,GAAC,GAAAD,KAAA,CAAA;EAAA,OAAMC,QAAQ,KAAKC,4BAA4B,CAACC,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AAAA,CAAE,CAAA;AACrG;AACA,EAAA,EAAIC,KAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,UAAU,GAAG,CAAA;AAAE,GAAC,GAAAD,KAAA,CAAA;EAAA,OACnBC,UAAU,GACNC,GAAI,CAAA;AACZ,8BAAA,EAAgCD,UAAW,CAAA;AAC3C,QAAA,CAAS,GACD,EAAE,CAAA;AAAA,CAAC,CAAA;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAA,EAAqBE,KAAA,IAAA;EAAA,IAAC;AAAER,IAAAA,MAAAA;AAAO,GAAC,GAAAQ,KAAA,CAAA;EAAA,OAC3B,CAAA,oBAAA,EAAsBR,MAAO,CAA2D,0DAAA,CAAA,CAAA;AAAA,CAAC,CAAA;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAA,EAAwBS,KAAA,IAAA;EAAA,IAAC;AAAET,IAAAA,MAAAA;AAAO,GAAC,GAAAS,KAAA,CAAA;EAAA,OAAM,CAAA,oBAAA,EAAsBT,MAAO,CAA+C,8CAAA,CAAA,CAAA;AAAA,CAAC,CAAA;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAA,EAA0BU,KAAA,IAAA;EAAA,IAAC;AAAEV,IAAAA,MAAAA;AAAO,GAAC,GAAAU,KAAA,CAAA;EAAA,OAAM,CAAA,oBAAA,EAAsBV,MAAO,CAA6C,4CAAA,CAAA,CAAA;AAAA,CAAC,CAAA;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;;;;"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Dispatch, SetStateAction, ComponentProps, MutableRefObject } from 'react';
|
|
2
|
+
import { SideNavigationMenuItemProps } from '../side-navigation-menu-item/types.js';
|
|
3
|
+
import { SideNavigationMenuProps } from '../side-navigation-menu/types.js';
|
|
4
|
+
import { ValueOf } from '../../types/helpers.js';
|
|
5
|
+
import { Theme } from '../../types/colors.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Component variant.
|
|
9
|
+
*/
|
|
10
|
+
declare const SideNavigationMenuBarVariant: {
|
|
11
|
+
readonly shrinked: "shrinked";
|
|
12
|
+
readonly standard: "standard";
|
|
13
|
+
};
|
|
14
|
+
type SideNavigationMenuBarVariant = ValueOf<typeof SideNavigationMenuBarVariant>;
|
|
15
|
+
/**
|
|
16
|
+
* Context props.
|
|
17
|
+
*/
|
|
18
|
+
type SideNavigationMenuBarContextProps = {
|
|
19
|
+
/** List of menu items. */
|
|
20
|
+
menuItems: Set<HTMLAnchorElement | HTMLButtonElement>;
|
|
21
|
+
/** Side navigation variant. */
|
|
22
|
+
sideNavigationMenuBarVariant: SideNavigationMenuBarVariant;
|
|
23
|
+
/** Change side navigation variant. */
|
|
24
|
+
setSideNavigationMenuBarVariant: Dispatch<SetStateAction<SideNavigationMenuBarVariant>>;
|
|
25
|
+
/** Current open menu, used to close other menu when canHaveMultipleMenuOpenAtOnce is false. */
|
|
26
|
+
currentOpenMenuId?: string;
|
|
27
|
+
/** Change current open menu id. */
|
|
28
|
+
setCurrentOpenMenuId?: Dispatch<SetStateAction<string | undefined>>;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Component props.
|
|
32
|
+
*/
|
|
33
|
+
interface SideNavigationMenuBarProps extends ComponentProps<'nav'> {
|
|
34
|
+
/** Whether or not opening a menu closes the others. */
|
|
35
|
+
canHaveMultipleMenuOpenAtOnce?: boolean;
|
|
36
|
+
/** Whether the component is disabled or not. */
|
|
37
|
+
isDisabled?: boolean;
|
|
38
|
+
/** Custom props to pass to the menubar. */
|
|
39
|
+
menubarProps?: ComponentProps<'ul'>;
|
|
40
|
+
/** Custom ref to pass to the menubar. */
|
|
41
|
+
menubarRef?: MutableRefObject<HTMLUListElement>;
|
|
42
|
+
/** Theme. */
|
|
43
|
+
theme?: Theme;
|
|
44
|
+
/** Variant. */
|
|
45
|
+
variant?: SideNavigationMenuBarVariant;
|
|
46
|
+
}
|
|
47
|
+
type StyledSideNavigationMenuBarProps = Omit<SideNavigationMenuBarProps, 'isDisabled'> & {
|
|
48
|
+
$isDisabled: SideNavigationMenuBarProps['isDisabled'];
|
|
49
|
+
$marginTop?: number;
|
|
50
|
+
$variant: SideNavigationMenuBarProps['variant'];
|
|
51
|
+
$theme: SideNavigationMenuBarProps['theme'];
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Hook props.
|
|
55
|
+
*/
|
|
56
|
+
interface MenuItem extends Omit<SideNavigationMenuItemProps, 'children'> {
|
|
57
|
+
title: string;
|
|
58
|
+
}
|
|
59
|
+
interface Menu extends Omit<SideNavigationMenuProps, 'children'> {
|
|
60
|
+
title: string;
|
|
61
|
+
children: MenuItem[];
|
|
62
|
+
}
|
|
63
|
+
type MenuBarItems = (Menu | MenuItem)[];
|
|
64
|
+
|
|
65
|
+
export { Menu, MenuBarItems, MenuItem, SideNavigationMenuBarContextProps, SideNavigationMenuBarProps, SideNavigationMenuBarVariant, StyledSideNavigationMenuBarProps };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component variant.
|
|
3
|
+
*/
|
|
4
|
+
const SideNavigationMenuBarVariant = {
|
|
5
|
+
shrinked: 'shrinked',
|
|
6
|
+
standard: 'standard'
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Context props.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Component props.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Hook props.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
export { SideNavigationMenuBarVariant };
|
|
22
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../src/components/side-navigation-menu-bar/types.ts"],"sourcesContent":["import { ComponentProps, Dispatch, MutableRefObject, SetStateAction } from 'react';\nimport { SideNavigationMenuProps } from '../side-navigation-menu';\nimport { SideNavigationMenuItemProps } from '../side-navigation-menu-item';\nimport { Theme, ValueOf } from '@redsift/design-system/types';\n\n/**\n * Component variant.\n */\nexport const SideNavigationMenuBarVariant = {\n shrinked: 'shrinked',\n standard: 'standard',\n} as const;\nexport type SideNavigationMenuBarVariant = ValueOf<typeof SideNavigationMenuBarVariant>;\n\n/**\n * Context props.\n */\nexport type SideNavigationMenuBarContextProps = {\n /** List of menu items. */\n menuItems: Set<HTMLAnchorElement | HTMLButtonElement>;\n /** Side navigation variant. */\n sideNavigationMenuBarVariant: SideNavigationMenuBarVariant;\n /** Change side navigation variant. */\n setSideNavigationMenuBarVariant: Dispatch<SetStateAction<SideNavigationMenuBarVariant>>;\n /** Current open menu, used to close other menu when canHaveMultipleMenuOpenAtOnce is false. */\n currentOpenMenuId?: string;\n /** Change current open menu id. */\n setCurrentOpenMenuId?: Dispatch<SetStateAction<string | undefined>>;\n};\n\n/**\n * Component props.\n */\nexport interface SideNavigationMenuBarProps extends ComponentProps<'nav'> {\n /** Whether or not opening a menu closes the others. */\n canHaveMultipleMenuOpenAtOnce?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Custom props to pass to the menubar. */\n menubarProps?: ComponentProps<'ul'>;\n /** Custom ref to pass to the menubar. */\n menubarRef?: MutableRefObject<HTMLUListElement>;\n /** Theme. */\n theme?: Theme;\n /** Variant. */\n variant?: SideNavigationMenuBarVariant;\n}\n\nexport type StyledSideNavigationMenuBarProps = Omit<SideNavigationMenuBarProps, 'isDisabled'> & {\n $isDisabled: SideNavigationMenuBarProps['isDisabled'];\n $marginTop?: number;\n $variant: SideNavigationMenuBarProps['variant'];\n $theme: SideNavigationMenuBarProps['theme'];\n};\n\n/**\n * Hook props.\n */\nexport interface MenuItem extends Omit<SideNavigationMenuItemProps, 'children'> {\n title: string;\n}\nexport interface Menu extends Omit<SideNavigationMenuProps, 'children'> {\n title: string;\n children: MenuItem[];\n}\nexport type MenuBarItems = (Menu | MenuItem)[];\n"],"names":["SideNavigationMenuBarVariant","shrinked","standard"],"mappings":"AAKA;AACA;AACA;AACO,MAAMA,4BAA4B,GAAG;AAC1CC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,QAAQ,EAAE,UAAA;AACZ,EAAU;;AAGV;AACA;AACA;;AAcA;AACA;AACA;;AAuBA;AACA;AACA;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MenuBarItems, SideNavigationMenuBarProps } from './types.js';
|
|
2
|
+
|
|
3
|
+
interface UseSideNavigationMenuBarProps {
|
|
4
|
+
items: MenuBarItems;
|
|
5
|
+
isActive?: (href: string) => boolean;
|
|
6
|
+
}
|
|
7
|
+
declare const useSideNavigationMenuBar: ({ items, isActive, }: UseSideNavigationMenuBarProps) => Omit<SideNavigationMenuBarProps, 'ref'>;
|
|
8
|
+
|
|
9
|
+
export { UseSideNavigationMenuBarProps, useSideNavigationMenuBar };
|