@sprinklrjs/spaceweb 11.0.0 → 12.14.4
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/allComponentsAndUtilities.d.ts +1 -0
- package/allComponentsAndUtilities.js +2 -1
- package/asyncSelect/asyncSelect.d.ts +4 -2
- package/asyncSelect/asyncSelect.js +43 -108
- package/asyncSelect/groupedAsyncSelect.d.ts +5 -0
- package/asyncSelect/groupedAsyncSelect.js +41 -0
- package/asyncSelect/helpers.d.ts +8 -2
- package/asyncSelect/helpers.js +35 -4
- package/asyncSelect/hooks/useAsyncOptionHandlers.d.ts +16 -11
- package/asyncSelect/hooks/useAsyncOptionHandlers.js +73 -26
- package/asyncSelect/hooks/useAsyncSelect.d.ts +10 -0
- package/asyncSelect/hooks/useAsyncSelect.js +182 -0
- package/asyncSelect/hooks/useResolveSelectedOptions.d.ts +10 -7
- package/asyncSelect/hooks/useResolveSelectedOptions.js +59 -47
- package/asyncSelect/index.d.ts +4 -1
- package/asyncSelect/index.js +8 -0
- package/asyncSelect/types.d.ts +61 -9
- package/avatar/avatar.js +12 -2
- package/avatar/styled-component.js +7 -22
- package/badge/styled-component.js +10 -8
- package/banner/banner.js +1 -1
- package/breadcrumb/breadcrumb-item.d.ts +7 -0
- package/breadcrumb/breadcrumb-item.js +41 -0
- package/breadcrumb/breadcrumb.d.ts +7 -0
- package/breadcrumb/breadcrumb.js +29 -0
- package/breadcrumb/index.d.ts +4 -0
- package/breadcrumb/index.js +17 -0
- package/breadcrumb/package.json +4 -0
- package/breadcrumb/styled-components.d.ts +7 -0
- package/breadcrumb/styled-components.js +19 -0
- package/breadcrumb/types.d.ts +38 -0
- package/breadcrumb/types.js +2 -0
- package/button/Button.d.ts +2 -0
- package/button/Button.js +13 -1
- package/button/IconButton/IconButton.d.ts +2 -4
- package/button/IconButton/IconButton.js +5 -2
- package/button/IconButton/types.d.ts +10 -1
- package/button/basewebAdapter.d.ts +3 -1
- package/button/styled-components.js +30 -25
- package/button/types.d.ts +3 -0
- package/button-group/ButtonGroup.d.ts +1 -0
- package/button-group/ButtonGroup.js +9 -5
- package/button-group/StatefulButtonGroup.d.ts +1 -0
- package/button-group/styled-components.d.ts +34 -0
- package/button-group/styled-components.js +57 -9
- package/button-group/types.d.ts +2 -0
- package/checkbox/basewebAdapters.js +6 -1
- package/color-picker/ColorPalette.d.ts +9 -0
- package/color-picker/ColorPalette.js +26 -0
- package/color-picker/ColorPicker.d.ts +3 -0
- package/color-picker/ColorPicker.js +35 -0
- package/color-picker/Swatch.d.ts +12 -0
- package/color-picker/Swatch.js +40 -0
- package/color-picker/colors.d.ts +1 -0
- package/color-picker/colors.js +109 -0
- package/color-picker/getContrastRatio.d.ts +1 -0
- package/color-picker/getContrastRatio.js +23 -0
- package/color-picker/index.d.ts +3 -0
- package/color-picker/index.js +7 -0
- package/color-picker/locale.d.ts +3 -0
- package/color-picker/locale.js +2 -0
- package/color-picker/package.json +4 -0
- package/color-picker/styled-component.d.ts +1 -0
- package/color-picker/styled-component.js +5 -0
- package/color-picker/types.d.ts +15 -0
- package/color-picker/types.js +2 -0
- package/currency/Currency.d.ts +3 -0
- package/currency/Currency.js +14 -0
- package/currency/constants.d.ts +3 -0
- package/currency/constants.js +8 -0
- package/currency/index.d.ts +5 -0
- package/currency/index.js +12 -0
- package/currency/package.json +4 -0
- package/currency/types.d.ts +7 -0
- package/currency/types.js +2 -0
- package/currency/useCurrency.d.ts +2 -0
- package/currency/useCurrency.js +12 -0
- package/currency/utils.d.ts +8 -0
- package/currency/utils.js +11 -0
- package/date-input/Before.d.ts +4 -2
- package/date-input/Before.js +4 -4
- package/date-input/CalendarIconButton.js +7 -1
- package/date-input/DateInput.d.ts +1 -1
- package/date-input/DateInput.js +46 -25
- package/date-input/styled-components.d.ts +2 -2
- package/date-input/styled-components.js +10 -8
- package/date-input/types.d.ts +4 -2
- package/date-picker/Calendar.js +5 -3
- package/date-picker/DateInput.js +16 -14
- package/date-picker/DatePickerContent.d.ts +9 -3
- package/date-picker/DatePickerContent.js +59 -8
- package/date-picker/DatePickerInput.js +9 -6
- package/date-picker/StatelessDatePicker.js +35 -16
- package/date-picker/locale.d.ts +2 -0
- package/date-picker/stateful-container.js +11 -8
- package/date-picker/styled-components.js +53 -3
- package/date-picker/types.d.ts +10 -1
- package/date-picker/utils.d.ts +3 -1
- package/date-picker/utils.js +8 -3
- package/date-time/DateTime.d.ts +3 -0
- package/date-time/DateTime.js +12 -0
- package/date-time/index.d.ts +3 -0
- package/date-time/index.js +9 -0
- package/date-time/package.json +4 -0
- package/date-time/types.d.ts +21 -0
- package/date-time/types.js +18 -0
- package/date-time/useDateTime.d.ts +2 -0
- package/date-time/useDateTime.js +13 -0
- package/date-time/variants.d.ts +4 -0
- package/date-time/variants.js +87 -0
- package/esm/allComponentsAndUtilities.d.ts +1 -0
- package/esm/allComponentsAndUtilities.js +2 -0
- package/esm/asyncSelect/asyncSelect.d.ts +4 -2
- package/esm/asyncSelect/asyncSelect.js +46 -111
- package/esm/asyncSelect/groupedAsyncSelect.d.ts +5 -0
- package/esm/asyncSelect/groupedAsyncSelect.js +37 -0
- package/esm/asyncSelect/helpers.d.ts +8 -2
- package/esm/asyncSelect/helpers.js +31 -3
- package/esm/asyncSelect/hooks/useAsyncOptionHandlers.d.ts +16 -11
- package/esm/asyncSelect/hooks/useAsyncOptionHandlers.js +76 -29
- package/esm/asyncSelect/hooks/useAsyncSelect.d.ts +10 -0
- package/esm/asyncSelect/hooks/useAsyncSelect.js +178 -0
- package/esm/asyncSelect/hooks/useResolveSelectedOptions.d.ts +10 -7
- package/esm/asyncSelect/hooks/useResolveSelectedOptions.js +62 -50
- package/esm/asyncSelect/index.d.ts +4 -1
- package/esm/asyncSelect/index.js +3 -0
- package/esm/asyncSelect/types.d.ts +61 -9
- package/esm/avatar/avatar.js +12 -2
- package/esm/avatar/styled-component.js +7 -22
- package/esm/badge/styled-component.js +10 -8
- package/esm/banner/banner.js +1 -1
- package/esm/breadcrumb/breadcrumb-item.d.ts +7 -0
- package/esm/breadcrumb/breadcrumb-item.js +39 -0
- package/esm/breadcrumb/breadcrumb.d.ts +7 -0
- package/esm/breadcrumb/breadcrumb.js +27 -0
- package/esm/breadcrumb/index.d.ts +4 -0
- package/esm/breadcrumb/index.js +3 -0
- package/esm/breadcrumb/styled-components.d.ts +7 -0
- package/esm/breadcrumb/styled-components.js +15 -0
- package/esm/breadcrumb/types.d.ts +38 -0
- package/esm/breadcrumb/types.js +1 -0
- package/esm/button/Button.d.ts +2 -0
- package/esm/button/Button.js +13 -1
- package/esm/button/IconButton/IconButton.d.ts +2 -4
- package/esm/button/IconButton/IconButton.js +5 -2
- package/esm/button/IconButton/types.d.ts +10 -1
- package/esm/button/basewebAdapter.d.ts +3 -1
- package/esm/button/styled-components.js +30 -25
- package/esm/button/types.d.ts +3 -0
- package/esm/button-group/ButtonGroup.d.ts +1 -0
- package/esm/button-group/ButtonGroup.js +9 -5
- package/esm/button-group/StatefulButtonGroup.d.ts +1 -0
- package/esm/button-group/styled-components.d.ts +34 -0
- package/esm/button-group/styled-components.js +55 -8
- package/esm/button-group/types.d.ts +2 -0
- package/esm/checkbox/basewebAdapters.js +6 -1
- package/esm/color-picker/ColorPalette.d.ts +9 -0
- package/esm/color-picker/ColorPalette.js +22 -0
- package/esm/color-picker/ColorPicker.d.ts +3 -0
- package/esm/color-picker/ColorPicker.js +31 -0
- package/esm/color-picker/Swatch.d.ts +12 -0
- package/esm/color-picker/Swatch.js +37 -0
- package/esm/color-picker/colors.d.ts +1 -0
- package/esm/color-picker/colors.js +106 -0
- package/esm/color-picker/getContrastRatio.d.ts +1 -0
- package/esm/color-picker/getContrastRatio.js +19 -0
- package/esm/color-picker/index.d.ts +3 -0
- package/esm/color-picker/index.js +2 -0
- package/esm/color-picker/locale.d.ts +3 -0
- package/esm/color-picker/locale.js +1 -0
- package/esm/color-picker/styled-component.d.ts +1 -0
- package/esm/color-picker/styled-component.js +2 -0
- package/esm/color-picker/types.d.ts +15 -0
- package/esm/color-picker/types.js +1 -0
- package/esm/currency/Currency.d.ts +3 -0
- package/esm/currency/Currency.js +10 -0
- package/esm/currency/constants.d.ts +3 -0
- package/esm/currency/constants.js +5 -0
- package/esm/currency/index.d.ts +5 -0
- package/esm/currency/index.js +5 -0
- package/esm/currency/types.d.ts +7 -0
- package/esm/currency/types.js +1 -0
- package/esm/currency/useCurrency.d.ts +2 -0
- package/esm/currency/useCurrency.js +8 -0
- package/esm/currency/utils.d.ts +8 -0
- package/esm/currency/utils.js +7 -0
- package/esm/date-input/Before.d.ts +4 -2
- package/esm/date-input/Before.js +4 -4
- package/esm/date-input/CalendarIconButton.js +7 -1
- package/esm/date-input/DateInput.d.ts +1 -1
- package/esm/date-input/DateInput.js +47 -26
- package/esm/date-input/styled-components.d.ts +2 -2
- package/esm/date-input/styled-components.js +10 -7
- package/esm/date-input/types.d.ts +4 -2
- package/esm/date-picker/Calendar.js +5 -3
- package/esm/date-picker/DateInput.js +17 -15
- package/esm/date-picker/DatePickerContent.d.ts +9 -3
- package/esm/date-picker/DatePickerContent.js +60 -9
- package/esm/date-picker/DatePickerInput.js +9 -6
- package/esm/date-picker/StatelessDatePicker.js +35 -16
- package/esm/date-picker/locale.d.ts +2 -0
- package/esm/date-picker/stateful-container.js +11 -8
- package/esm/date-picker/styled-components.js +53 -3
- package/esm/date-picker/types.d.ts +10 -1
- package/esm/date-picker/utils.d.ts +3 -1
- package/esm/date-picker/utils.js +9 -4
- package/esm/date-time/DateTime.d.ts +3 -0
- package/esm/date-time/DateTime.js +8 -0
- package/esm/date-time/index.d.ts +3 -0
- package/esm/date-time/index.js +3 -0
- package/esm/date-time/types.d.ts +21 -0
- package/esm/date-time/types.js +15 -0
- package/esm/date-time/useDateTime.d.ts +2 -0
- package/esm/date-time/useDateTime.js +9 -0
- package/esm/date-time/variants.d.ts +4 -0
- package/esm/date-time/variants.js +84 -0
- package/esm/form-control/form-control.d.ts +1 -1
- package/esm/form-control/form-control.js +17 -12
- package/esm/form-control/styled-component.js +17 -6
- package/esm/helpers/ClearIconButton.js +3 -1
- package/esm/helpers/StyledTombstone.d.ts +1 -0
- package/esm/helpers/StyledTombstone.js +17 -0
- package/esm/helpers/baseui/useConvertOverrides.js +6 -1
- package/esm/helpers/commonStyles.js +3 -6
- package/esm/helpers/index.d.ts +1 -0
- package/esm/helpers/index.js +8 -0
- package/esm/helpers/themeHelpers.d.ts +1 -0
- package/esm/helpers/themeHelpers.js +13 -0
- package/esm/hooks/useAutoFocus.js +6 -0
- package/esm/hooks/useMatchMedia.js +13 -2
- package/esm/icon/components/alert-solid.js +2 -0
- package/esm/icon/components/alert.js +2 -0
- package/esm/icon/components/calendar-solid.js +2 -0
- package/esm/icon/components/chevron-down.js +2 -0
- package/esm/icon/components/chevron-left.d.ts +3 -0
- package/esm/icon/components/chevron-left.js +8 -0
- package/esm/icon/components/chevron-right.d.ts +3 -0
- package/esm/icon/components/chevron-right.js +8 -0
- package/esm/icon/components/close.js +2 -0
- package/esm/icon/components/error-clr.js +2 -0
- package/esm/icon/components/error-solid.js +2 -0
- package/esm/icon/components/error.js +2 -0
- package/esm/icon/components/imagePreview.js +2 -0
- package/esm/icon/components/info.js +2 -0
- package/esm/icon/components/play-video.js +2 -0
- package/esm/icon/components/reset-color.d.ts +3 -0
- package/esm/icon/components/reset-color.js +8 -0
- package/esm/icon/components/search.js +2 -0
- package/esm/icon/components/tick.js +2 -0
- package/esm/icon/components/tickCircle-solid.js +2 -0
- package/esm/icon/components/user.js +2 -0
- package/esm/icon/components/video-non-playable.js +2 -0
- package/esm/index.d.ts +2 -0
- package/esm/index.js +2 -0
- package/esm/input/basewebAdapters.js +18 -3
- package/esm/input/styled-components.js +8 -6
- package/esm/input/types.d.ts +4 -1
- package/esm/layer/useLayersContextValue.js +3 -2
- package/esm/list/avatar-list-item.d.ts +12 -22
- package/esm/list/avatar-list-item.js +6 -4
- package/esm/list/index.d.ts +1 -1
- package/esm/list/index.js +1 -1
- package/esm/list/list-item.d.ts +3 -1
- package/esm/list/list-item.js +9 -6
- package/esm/list/styled-component.d.ts +1 -0
- package/esm/list/styled-component.js +23 -15
- package/esm/list/types.d.ts +3 -0
- package/esm/locale/en_US.js +26 -0
- package/esm/locale/types.d.ts +19 -0
- package/esm/menu/MenuContext.d.ts +2 -1
- package/esm/menu/MenuContext.js +1 -0
- package/esm/menu/menu-item.d.ts +4 -1
- package/esm/menu/menu-item.js +11 -11
- package/esm/menu/menu.d.ts +1 -0
- package/esm/menu/menu.js +11 -11
- package/esm/menu/types.d.ts +1 -0
- package/esm/menu/useKeyboardNavigation.d.ts +6 -3
- package/esm/menu/useKeyboardNavigation.js +21 -14
- package/esm/menu/useStatefulMenu.d.ts +5 -2
- package/esm/menu/useStatefulMenu.js +14 -8
- package/esm/modal/modal.js +3 -1
- package/esm/modal/overrides.d.ts +2 -2
- package/esm/modal/overrides.js +6 -7
- package/esm/modal/styled-components.js +7 -7
- package/esm/number/Number.d.ts +3 -0
- package/esm/number/Number.js +10 -0
- package/esm/number/constants.d.ts +2 -0
- package/esm/number/constants.js +4 -0
- package/esm/number/index.d.ts +5 -0
- package/esm/number/index.js +5 -0
- package/esm/number/types.d.ts +6 -0
- package/esm/number/types.js +1 -0
- package/esm/number/useNumber.d.ts +2 -0
- package/esm/number/useNumber.js +8 -0
- package/esm/overrides/index.d.ts +1 -1
- package/esm/overrides/index.js +1 -1
- package/esm/overrides/mergeOverrides.d.ts +3 -2
- package/esm/overrides/mergeOverrides.js +1 -1
- package/esm/payment-card/basewebAdapters.d.ts +2 -0
- package/esm/payment-card/basewebAdapters.js +23 -1
- package/esm/payment-card/styled-components.js +25 -6
- package/esm/phone-input/country-select-container.js +1 -1
- package/esm/phone-input/country-select.js +3 -3
- package/esm/phone-input/default-props.d.ts +5 -5
- package/esm/phone-input/default-props.js +7 -7
- package/esm/phone-input/flag-container.js +1 -1
- package/esm/phone-input/phone-input.d.ts +0 -4
- package/esm/phone-input/phone-input.js +20 -12
- package/esm/phone-input/stateful-phone-input-container.js +4 -3
- package/esm/phone-input/stateful-phone-input.d.ts +0 -4
- package/esm/phone-input/styled-components.d.ts +9 -1
- package/esm/phone-input/styled-components.js +21 -7
- package/esm/phone-input/types.d.ts +2 -1
- package/esm/phone-input/utils.d.ts +5 -1
- package/esm/phone-input/utils.js +6 -1
- package/esm/popover/adapter.d.ts +1 -0
- package/esm/popover/adapter.js +15 -0
- package/esm/popover/overrides.js +8 -19
- package/esm/popover/popover.d.ts +1 -0
- package/esm/popover/popover.js +9 -4
- package/esm/popover/stateful-popover.js +2 -2
- package/esm/popover/types.d.ts +3 -0
- package/esm/popover/utils.d.ts +12 -0
- package/esm/popover/utils.js +9 -0
- package/esm/progress/linear/styled-component.d.ts +1 -1
- package/esm/progress/linear/styled-component.js +5 -5
- package/esm/radio/styled-components.js +5 -5
- package/esm/search/index.d.ts +1 -0
- package/esm/search/index.js +1 -0
- package/esm/search/search.d.ts +1 -1
- package/esm/search/search.js +15 -6
- package/esm/search/stateful-search.d.ts +3 -0
- package/esm/search/stateful-search.js +15 -0
- package/esm/search/styled-components.d.ts +1 -10
- package/esm/search/styled-components.js +54 -24
- package/esm/search/types.d.ts +8 -2
- package/esm/select/base-select.d.ts +22 -5
- package/esm/select/base-select.js +174 -82
- package/esm/select/constants.d.ts +3 -0
- package/esm/select/constants.js +3 -1
- package/esm/select/default-props.d.ts +1 -0
- package/esm/select/default-props.js +3 -0
- package/esm/select/index.d.ts +2 -2
- package/esm/select/index.js +2 -2
- package/esm/select/locale.d.ts +4 -0
- package/esm/select/mobileSelect/MobileSheet.js +3 -1
- package/esm/select/multi-value.js +22 -12
- package/esm/select/overlaySelect/OverlaySelect.js +1 -0
- package/esm/select/overlaySelect/hooks/useOverlaySelectOverrides.d.ts +2 -1
- package/esm/select/overlaySelect/hooks/useOverlaySelectOverrides.js +13 -16
- package/esm/select/overrides.d.ts +3 -0
- package/esm/select/overrides.js +19 -6
- package/esm/select/select.d.ts +1 -0
- package/esm/select/select.js +9 -3
- package/esm/select/selectMenuAdapter/CollapsibleSelectMenu.d.ts +118 -0
- package/esm/select/selectMenuAdapter/CollapsibleSelectMenu.js +70 -0
- package/esm/select/selectMenuAdapter/SelectMenuAdapter.d.ts +2 -34
- package/esm/select/selectMenuAdapter/SelectMenuAdapter.js +3 -3
- package/esm/select/selectMenuAdapter/SelectMenuItem.d.ts +4 -1
- package/esm/select/selectMenuAdapter/hooks/useGetExpandedGroup.d.ts +6 -0
- package/esm/select/selectMenuAdapter/hooks/useGetExpandedGroup.js +16 -0
- package/esm/select/selectMenuAdapter/types.d.ts +42 -0
- package/esm/select/selectMenuAdapter/types.js +1 -0
- package/esm/select/stateful-select.d.ts +1 -0
- package/esm/select/styled-component.d.ts +10 -1
- package/esm/select/styled-component.js +39 -15
- package/esm/select/types.d.ts +23 -1
- package/esm/select/types.js +1 -0
- package/esm/select/utils/default-filter-options.d.ts +2 -1
- package/esm/select/utils/default-filter-options.js +5 -1
- package/esm/select/utils/hidden-element.d.ts +6 -0
- package/esm/select/utils/hidden-element.js +16 -0
- package/esm/select/utils/merge-options.d.ts +2 -0
- package/esm/select/utils/merge-options.js +18 -0
- package/esm/select/utils/test-utils.d.ts +1 -0
- package/esm/select/utils/test-utils.js +7 -0
- package/esm/slider/styled-components.js +4 -4
- package/esm/snackbar/Snackbar.js +12 -12
- package/esm/snackbar/styled-component.js +9 -6
- package/esm/spacewebProvider/SpacewebProvider.d.ts +2 -0
- package/esm/spacewebProvider/SpacewebProvider.js +9 -9
- package/esm/stack/stack.js +6 -13
- package/esm/style/_buildUtils.d.ts +1 -1
- package/esm/style/_buildUtils.js +3 -1
- package/esm/style/_parseStyle.js +7 -2
- package/esm/style/useMemoizedStyletron.js +6 -1
- package/esm/switch/styled-components.js +3 -3
- package/esm/tag/avatar-tag.js +23 -16
- package/esm/tag/styled-components.js +32 -27
- package/esm/tag/tag.js +20 -12
- package/esm/tag/types.d.ts +2 -2
- package/esm/tag/utils.d.ts +50 -0
- package/esm/tag/utils.js +64 -0
- package/esm/textarea/basewebAdapters.js +3 -3
- package/esm/textarea/textarea.js +3 -3
- package/esm/textarea/types.d.ts +2 -2
- package/esm/theme/Provider.d.ts +10 -0
- package/esm/theme/Provider.js +61 -0
- package/esm/theme/context.d.ts +1 -10
- package/esm/theme/context.js +1 -61
- package/esm/theme/index.d.ts +1 -0
- package/esm/theme/index.js +1 -0
- package/esm/time-picker/TimePicker.js +4 -1
- package/esm/time-range-picker/RangeSelectorContainer.js +1 -1
- package/esm/time-range-picker/TimeRangePicker.js +20 -12
- package/esm/time-range-picker/index.d.ts +1 -1
- package/esm/time-range-picker/index.js +1 -1
- package/esm/time-range-picker/types.d.ts +1 -2
- package/esm/time-range-picker/utils.d.ts +33 -4
- package/esm/time-range-picker/utils.js +49 -15
- package/esm/time-zone-picker/types.d.ts +2 -0
- package/esm/tooltip/overrides.js +0 -1
- package/esm/tooltip/stateful-tooltip.js +2 -2
- package/esm/tooltip/tooltip.d.ts +1 -1
- package/esm/tooltip/tooltip.js +5 -2
- package/esm/tooltip/types.d.ts +2 -0
- package/esm/types.d.ts +2 -1
- package/esm/typography/Typography.js +14 -1
- package/esm/typography/constants.d.ts +56 -0
- package/esm/typography/constants.js +56 -0
- package/esm/typography/index.d.ts +1 -0
- package/esm/typography/index.js +1 -0
- package/esm/typography/styled-components.js +12 -4
- package/esm/typography/types.d.ts +1 -1
- package/esm/utils/intlNumberFormatUtils/index.d.ts +7 -0
- package/esm/utils/intlNumberFormatUtils/index.js +36 -0
- package/esm/utils/intlNumberFormatUtils/types.d.ts +21 -0
- package/esm/utils/intlNumberFormatUtils/types.js +6 -0
- package/form-control/form-control.d.ts +1 -1
- package/form-control/form-control.js +16 -11
- package/form-control/styled-component.js +17 -6
- package/helpers/ClearIconButton.js +3 -1
- package/helpers/StyledTombstone.d.ts +1 -0
- package/helpers/StyledTombstone.js +21 -0
- package/helpers/baseui/useConvertOverrides.js +6 -1
- package/helpers/commonStyles.js +3 -6
- package/helpers/index.d.ts +1 -0
- package/helpers/index.js +10 -1
- package/helpers/themeHelpers.d.ts +1 -0
- package/helpers/themeHelpers.js +15 -1
- package/hooks/useAutoFocus.js +6 -0
- package/hooks/useMatchMedia.js +13 -2
- package/icon/components/alert-solid.js +2 -0
- package/icon/components/alert.js +2 -0
- package/icon/components/calendar-solid.js +2 -0
- package/icon/components/chevron-down.js +2 -0
- package/icon/components/chevron-left.d.ts +3 -0
- package/icon/components/chevron-left.js +11 -0
- package/icon/components/chevron-right.d.ts +3 -0
- package/icon/components/chevron-right.js +11 -0
- package/icon/components/close.js +2 -0
- package/icon/components/error-clr.js +2 -0
- package/icon/components/error-solid.js +2 -0
- package/icon/components/error.js +2 -0
- package/icon/components/imagePreview.js +2 -0
- package/icon/components/info.js +2 -0
- package/icon/components/play-video.js +2 -0
- package/icon/components/reset-color.d.ts +3 -0
- package/icon/components/reset-color.js +11 -0
- package/icon/components/search.js +2 -0
- package/icon/components/tick.js +2 -0
- package/icon/components/tickCircle-solid.js +2 -0
- package/icon/components/user.js +2 -0
- package/icon/components/video-non-playable.js +2 -0
- package/index.d.ts +2 -0
- package/index.js +3 -0
- package/input/basewebAdapters.js +18 -3
- package/input/styled-components.js +7 -5
- package/input/types.d.ts +4 -1
- package/layer/useLayersContextValue.js +2 -1
- package/list/avatar-list-item.d.ts +12 -22
- package/list/avatar-list-item.js +5 -3
- package/list/index.d.ts +1 -1
- package/list/index.js +2 -1
- package/list/list-item.d.ts +3 -1
- package/list/list-item.js +9 -6
- package/list/styled-component.d.ts +1 -0
- package/list/styled-component.js +24 -16
- package/list/types.d.ts +3 -0
- package/locale/en_US.js +26 -0
- package/locale/types.d.ts +19 -0
- package/menu/MenuContext.d.ts +2 -1
- package/menu/MenuContext.js +1 -0
- package/menu/menu-item.d.ts +4 -1
- package/menu/menu-item.js +11 -11
- package/menu/menu.d.ts +1 -0
- package/menu/menu.js +11 -11
- package/menu/types.d.ts +1 -0
- package/menu/useKeyboardNavigation.d.ts +6 -3
- package/menu/useKeyboardNavigation.js +21 -14
- package/menu/useStatefulMenu.d.ts +5 -2
- package/menu/useStatefulMenu.js +14 -8
- package/modal/modal.js +3 -1
- package/modal/overrides.d.ts +2 -2
- package/modal/overrides.js +6 -7
- package/modal/styled-components.js +7 -7
- package/number/Number.d.ts +3 -0
- package/number/Number.js +14 -0
- package/number/constants.d.ts +2 -0
- package/number/constants.js +7 -0
- package/number/index.d.ts +5 -0
- package/number/index.js +12 -0
- package/number/package.json +4 -0
- package/number/types.d.ts +6 -0
- package/number/types.js +2 -0
- package/number/useNumber.d.ts +2 -0
- package/number/useNumber.js +12 -0
- package/overrides/index.d.ts +1 -1
- package/overrides/index.js +2 -1
- package/overrides/mergeOverrides.d.ts +3 -2
- package/overrides/mergeOverrides.js +2 -1
- package/package.json +8 -5
- package/payment-card/basewebAdapters.d.ts +2 -0
- package/payment-card/basewebAdapters.js +23 -1
- package/payment-card/styled-components.js +24 -5
- package/phone-input/country-select-container.js +1 -1
- package/phone-input/country-select.js +3 -3
- package/phone-input/default-props.d.ts +5 -5
- package/phone-input/default-props.js +8 -7
- package/phone-input/flag-container.js +1 -1
- package/phone-input/phone-input.d.ts +0 -4
- package/phone-input/phone-input.js +19 -11
- package/phone-input/stateful-phone-input-container.js +4 -3
- package/phone-input/stateful-phone-input.d.ts +0 -4
- package/phone-input/styled-components.d.ts +9 -1
- package/phone-input/styled-components.js +22 -7
- package/phone-input/types.d.ts +2 -1
- package/phone-input/utils.d.ts +5 -1
- package/phone-input/utils.js +7 -1
- package/popover/adapter.d.ts +1 -0
- package/popover/adapter.js +16 -1
- package/popover/overrides.js +8 -19
- package/popover/popover.d.ts +1 -0
- package/popover/popover.js +8 -3
- package/popover/stateful-popover.js +2 -2
- package/popover/types.d.ts +3 -0
- package/popover/utils.d.ts +12 -0
- package/popover/utils.js +11 -1
- package/progress/linear/styled-component.d.ts +1 -1
- package/progress/linear/styled-component.js +5 -5
- package/radio/styled-components.js +5 -5
- package/search/index.d.ts +1 -0
- package/search/index.js +3 -1
- package/search/search.d.ts +1 -1
- package/search/search.js +14 -5
- package/search/stateful-search.d.ts +3 -0
- package/search/stateful-search.js +19 -0
- package/search/styled-components.d.ts +1 -10
- package/search/styled-components.js +56 -25
- package/search/types.d.ts +8 -2
- package/select/base-select.d.ts +22 -5
- package/select/base-select.js +172 -80
- package/select/constants.d.ts +3 -0
- package/select/constants.js +4 -2
- package/select/default-props.d.ts +1 -0
- package/select/default-props.js +3 -0
- package/select/index.d.ts +2 -2
- package/select/index.js +4 -1
- package/select/locale.d.ts +4 -0
- package/select/mobileSelect/MobileSheet.js +3 -1
- package/select/multi-value.js +21 -11
- package/select/overlaySelect/OverlaySelect.js +1 -0
- package/select/overlaySelect/hooks/useOverlaySelectOverrides.d.ts +2 -1
- package/select/overlaySelect/hooks/useOverlaySelectOverrides.js +13 -16
- package/select/overrides.d.ts +3 -0
- package/select/overrides.js +20 -6
- package/select/select.d.ts +1 -0
- package/select/select.js +9 -3
- package/select/selectMenuAdapter/CollapsibleSelectMenu.d.ts +118 -0
- package/select/selectMenuAdapter/CollapsibleSelectMenu.js +74 -0
- package/select/selectMenuAdapter/SelectMenuAdapter.d.ts +2 -34
- package/select/selectMenuAdapter/SelectMenuAdapter.js +3 -3
- package/select/selectMenuAdapter/SelectMenuItem.d.ts +4 -1
- package/select/selectMenuAdapter/hooks/useGetExpandedGroup.d.ts +6 -0
- package/select/selectMenuAdapter/hooks/useGetExpandedGroup.js +20 -0
- package/select/selectMenuAdapter/types.d.ts +42 -0
- package/select/selectMenuAdapter/types.js +2 -0
- package/select/stateful-select.d.ts +1 -0
- package/select/styled-component.d.ts +10 -1
- package/select/styled-component.js +38 -14
- package/select/types.d.ts +23 -1
- package/select/types.js +2 -1
- package/select/utils/default-filter-options.d.ts +2 -1
- package/select/utils/default-filter-options.js +6 -5
- package/select/utils/hidden-element.d.ts +6 -0
- package/select/utils/hidden-element.js +19 -0
- package/select/utils/merge-options.d.ts +2 -0
- package/select/utils/merge-options.js +22 -0
- package/select/utils/test-utils.d.ts +1 -0
- package/select/utils/test-utils.js +11 -0
- package/slider/styled-components.js +4 -4
- package/snackbar/Snackbar.js +12 -12
- package/snackbar/styled-component.js +9 -6
- package/spacewebProvider/SpacewebProvider.d.ts +2 -0
- package/spacewebProvider/SpacewebProvider.js +8 -8
- package/stack/stack.js +6 -13
- package/style/_buildUtils.d.ts +1 -1
- package/style/_buildUtils.js +3 -1
- package/style/_parseStyle.js +7 -2
- package/style/useMemoizedStyletron.js +6 -1
- package/switch/styled-components.js +3 -3
- package/tag/avatar-tag.js +23 -16
- package/tag/styled-components.js +32 -27
- package/tag/tag.js +19 -11
- package/tag/types.d.ts +2 -2
- package/tag/utils.d.ts +50 -0
- package/tag/utils.js +67 -1
- package/textarea/basewebAdapters.js +2 -2
- package/textarea/textarea.js +2 -2
- package/textarea/types.d.ts +2 -2
- package/theme/Provider.d.ts +10 -0
- package/theme/Provider.js +65 -0
- package/theme/context.d.ts +1 -10
- package/theme/context.js +1 -61
- package/theme/index.d.ts +1 -0
- package/theme/index.js +1 -0
- package/time-picker/TimePicker.js +4 -1
- package/time-range-picker/RangeSelectorContainer.js +1 -1
- package/time-range-picker/TimeRangePicker.js +19 -11
- package/time-range-picker/index.d.ts +1 -1
- package/time-range-picker/index.js +4 -1
- package/time-range-picker/types.d.ts +1 -2
- package/time-range-picker/utils.d.ts +33 -4
- package/time-range-picker/utils.js +53 -17
- package/time-zone-picker/types.d.ts +2 -0
- package/tooltip/overrides.js +0 -1
- package/tooltip/stateful-tooltip.js +2 -2
- package/tooltip/tooltip.d.ts +1 -1
- package/tooltip/tooltip.js +5 -2
- package/tooltip/types.d.ts +2 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/types.d.ts +2 -1
- package/typography/Typography.js +14 -1
- package/typography/constants.d.ts +56 -0
- package/typography/constants.js +57 -1
- package/typography/index.d.ts +1 -0
- package/typography/index.js +3 -1
- package/typography/styled-components.js +11 -3
- package/typography/types.d.ts +1 -1
- package/utils/intlNumberFormatUtils/index.d.ts +7 -0
- package/utils/intlNumberFormatUtils/index.js +40 -0
- package/utils/intlNumberFormatUtils/types.d.ts +21 -0
- package/utils/intlNumberFormatUtils/types.js +9 -0
- package/utils/package.json +4 -0
- package/esm/icon/components/chevron-right-solid.d.ts +0 -3
- package/esm/icon/components/chevron-right-solid.js +0 -6
- package/icon/components/chevron-right-solid.d.ts +0 -3
- package/icon/components/chevron-right-solid.js +0 -9
package/esm/list/list-item.js
CHANGED
|
@@ -7,8 +7,9 @@ import useCombinedRefs from '../hooks/useCombinedRef';
|
|
|
7
7
|
import { useOverrides } from '../overrides';
|
|
8
8
|
import { StyledChildContainer, StyledEndEnhancer, StyledListItem, StyledStartEnhancer } from './styled-component';
|
|
9
9
|
import { useFocusVisible } from '../hooks/useFocusVisible';
|
|
10
|
+
import { StatefulTooltip as DefaultStatefulTooltip } from '../tooltip';
|
|
10
11
|
var ListItem = React.forwardRef(function (_a, ref) {
|
|
11
|
-
var startEnhancer = _a.startEnhancer, children = _a.children, _b = _a.alignItems, alignItems = _b === void 0 ? 'center' : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, endEnhancer = _a.endEnhancer, _d = _a.selected, selected = _d === void 0 ? false : _d, _e = _a.highlighted, highlighted = _e === void 0 ? false : _e, _f = _a.autoFocus, autoFocus = _f === void 0 ? false : _f, _g = _a.button, button = _g === void 0 ? false : _g, _h = _a.overrides, overrides = _h === void 0 ? {} : _h, _j = _a.tabIndex, tabIndex = _j === void 0 ? button ? 0 : undefined : _j, _k = _a.$as, $as = _k === void 0 ? 'li' : _k, onClick = _a.onClick, onKeyDown = _a.onKeyDown, onFocus = _a.onFocus, onBlur = _a.onBlur, restProps = __rest(_a, ["startEnhancer", "children", "alignItems", "disabled", "endEnhancer", "selected", "highlighted", "autoFocus", "button", "overrides", "tabIndex", "$as", "onClick", "onKeyDown", "onFocus", "onBlur"]);
|
|
12
|
+
var startEnhancer = _a.startEnhancer, children = _a.children, _b = _a.alignItems, alignItems = _b === void 0 ? 'center' : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, endEnhancer = _a.endEnhancer, _d = _a.selected, selected = _d === void 0 ? false : _d, _e = _a.highlighted, highlighted = _e === void 0 ? false : _e, _f = _a.autoFocus, autoFocus = _f === void 0 ? false : _f, _g = _a.button, button = _g === void 0 ? false : _g, _h = _a.overrides, overrides = _h === void 0 ? {} : _h, _j = _a.tabIndex, tabIndex = _j === void 0 ? button ? 0 : undefined : _j, _k = _a.$as, $as = _k === void 0 ? 'li' : _k, onClick = _a.onClick, onKeyDown = _a.onKeyDown, onFocus = _a.onFocus, onBlur = _a.onBlur, _l = _a.tooltipContent, tooltipContent = _l === void 0 ? '' : _l, restProps = __rest(_a, ["startEnhancer", "children", "alignItems", "disabled", "endEnhancer", "selected", "highlighted", "autoFocus", "button", "overrides", "tabIndex", "$as", "onClick", "onKeyDown", "onFocus", "onBlur", "tooltipContent"]);
|
|
12
13
|
var ownRef = useRef(null);
|
|
13
14
|
var combinedRef = useCombinedRefs(ref, ownRef);
|
|
14
15
|
React.useEffect(function () {
|
|
@@ -29,10 +30,10 @@ var ListItem = React.forwardRef(function (_a, ref) {
|
|
|
29
30
|
onKeyDown(event);
|
|
30
31
|
}
|
|
31
32
|
}, [button, disabled, onClick, onKeyDown]);
|
|
32
|
-
var
|
|
33
|
-
var
|
|
34
|
-
var
|
|
35
|
-
var
|
|
33
|
+
var _m = __read(useOverrides(overrides.Root, StyledListItem), 2), Root = _m[0], rootProps = _m[1];
|
|
34
|
+
var _o = __read(useOverrides(overrides.ChildContainer, StyledChildContainer), 2), ChildContainer = _o[0], childContainerProps = _o[1];
|
|
35
|
+
var _p = __read(useOverrides(overrides.StartEnhancer, StyledStartEnhancer), 2), StartEnhancer = _p[0], startEnhancerProps = _p[1];
|
|
36
|
+
var _q = __read(useOverrides(overrides.EndEnhancer, StyledEndEnhancer), 2), EndEnhancer = _q[0], endEnhancerProps = _q[1];
|
|
36
37
|
var sharedProps = {
|
|
37
38
|
$withStartEnhancer: !!startEnhancer,
|
|
38
39
|
$withEndEnhancer: !!endEnhancer,
|
|
@@ -45,7 +46,9 @@ var ListItem = React.forwardRef(function (_a, ref) {
|
|
|
45
46
|
var renderEnhancer = function (enhancer) {
|
|
46
47
|
return typeof enhancer === 'function' ? enhancer(sharedProps) : enhancer;
|
|
47
48
|
};
|
|
48
|
-
|
|
49
|
+
var _r = __read(useOverrides(overrides === null || overrides === void 0 ? void 0 : overrides.StatefulTooltip, DefaultStatefulTooltip), 2), StatefulTooltip = _r[0], statefulTooltipProps = _r[1];
|
|
50
|
+
var listEl = (_jsxs(Root, __assign({ "data-spaceweb": "list-item", role: "listitem", ref: combinedRef, tabIndex: tabIndex, "aria-disabled": disabled, "$as": $as, onClick: disabled ? _noop : onClick, onKeyDown: handleKeyDown, "data-highlighted": highlighted }, sharedProps, restProps, rootProps, useFocusVisibleProps, { children: [startEnhancer && (_jsx(StartEnhancer, __assign({}, sharedProps, startEnhancerProps, { children: renderEnhancer(startEnhancer) }), void 0)), _jsx(ChildContainer, __assign({}, sharedProps, childContainerProps, { children: children }), void 0), endEnhancer && (_jsx(EndEnhancer, __assign({}, sharedProps, endEnhancerProps, { children: renderEnhancer(endEnhancer) }), void 0))] }), void 0));
|
|
51
|
+
return tooltipContent ? (_jsx(StatefulTooltip, __assign({ placement: "bottom", content: tooltipContent }, statefulTooltipProps, { children: listEl }), void 0)) : (listEl);
|
|
49
52
|
});
|
|
50
53
|
ListItem.displayName = 'ListItem';
|
|
51
54
|
export default React.memo(ListItem);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare const LIST_MIN_WIDTH = 150;
|
|
1
2
|
export declare const StyledList: import("../style/styled").StyledComponent;
|
|
2
3
|
export declare const StyledListItem: import("../style/styled").StyledComponent;
|
|
3
4
|
export declare const StyledListItemText: import("../style/styled").StyledComponent;
|
|
@@ -3,9 +3,13 @@ import cx from '../classNames';
|
|
|
3
3
|
import { borderRadius } from '../helpers/longHandHelpers';
|
|
4
4
|
import { getComponentTheme } from '../helpers/themeHelpers';
|
|
5
5
|
import { styled } from '../style';
|
|
6
|
+
export var LIST_MIN_WIDTH = 150;
|
|
6
7
|
export var StyledList = styled('ul',
|
|
7
8
|
// bottom spacing will be added by ListItem
|
|
8
|
-
'box-border spr-ui-01 py-1 px-1 my-0', borderRadius('inherit'), function (
|
|
9
|
+
'box-border spr-ui-01 py-1 px-1 my-0', borderRadius('inherit'), function (_a) {
|
|
10
|
+
var px2rem = _a.px2rem;
|
|
11
|
+
return ({ minWidth: px2rem(LIST_MIN_WIDTH) });
|
|
12
|
+
}, function (_, _a) {
|
|
9
13
|
var $showFocusOutline = _a.$showFocusOutline;
|
|
10
14
|
return ($showFocusOutline ? 'focus-visible:outline-01' : '');
|
|
11
15
|
});
|
|
@@ -25,9 +29,16 @@ var backgroundColor = function (_a, _b) {
|
|
|
25
29
|
}
|
|
26
30
|
return styles;
|
|
27
31
|
};
|
|
28
|
-
|
|
29
|
-
var
|
|
30
|
-
|
|
32
|
+
var getListItemCompactStyles = function (_a) {
|
|
33
|
+
var theme = _a.theme;
|
|
34
|
+
if (theme.density === 'COMPACT')
|
|
35
|
+
return 'py-1 px-2 typography-l2 rounded-4 mb-0.5 last-child:mb-0';
|
|
36
|
+
else
|
|
37
|
+
return 'py-1.5 px-2 typography-l1 rounded-6 mb-0.5 last-child:mb-0';
|
|
38
|
+
};
|
|
39
|
+
export var StyledListItem = styled('li', getListItemCompactStyles, function (_a, props) {
|
|
40
|
+
var getStyle = _a.getStyle, theme = _a.theme;
|
|
41
|
+
return getStyle(cx('relative flex justify-start fill-current spr-ui-01', {
|
|
31
42
|
'items-start': props.$alignItems === 'start',
|
|
32
43
|
'items-center': props.$alignItems === 'center',
|
|
33
44
|
'cursor-pointer': props.$button && !props.$disabled,
|
|
@@ -48,26 +59,23 @@ export var StyledSecondaryText = styled('div', 'spr-text-02 typography-l3', func
|
|
|
48
59
|
marginTop: px2rem(2),
|
|
49
60
|
});
|
|
50
61
|
});
|
|
51
|
-
export var StyledListItemDivider = styled('li', 'block h-px spr-ui-03 mb-
|
|
52
|
-
export var StyledStartEnhancer = styled('div', 'inline-flex', function (_a, props) {
|
|
53
|
-
var getStyle = _a.getStyle
|
|
62
|
+
export var StyledListItemDivider = styled('li', 'block h-px spr-ui-03 mb-0.5 last-child:mb-0');
|
|
63
|
+
export var StyledStartEnhancer = styled('div', 'inline-flex pr-2', function (_a, props) {
|
|
64
|
+
var getStyle = _a.getStyle;
|
|
54
65
|
return getStyle(cx({
|
|
55
|
-
'pr-2': direction !== 'rtl',
|
|
56
|
-
'pl-2': direction === 'rtl',
|
|
57
66
|
'mt-1': props.$alignItems === 'start',
|
|
58
67
|
}));
|
|
59
68
|
});
|
|
60
|
-
export var StyledEndEnhancer = styled('div', 'inline-flex', function (_a, props) {
|
|
61
|
-
var getStyle = _a.getStyle
|
|
69
|
+
export var StyledEndEnhancer = styled('div', 'inline-flex pl-2', function (_a, props) {
|
|
70
|
+
var getStyle = _a.getStyle;
|
|
62
71
|
return getStyle(cx({
|
|
63
|
-
'pl-2': direction !== 'rtl',
|
|
64
|
-
'pr-2': direction === 'rtl',
|
|
65
72
|
'mt-1': props.$alignItems === 'start',
|
|
66
73
|
}));
|
|
67
74
|
});
|
|
68
|
-
export var StyledChildContainer = styled('div', '
|
|
69
|
-
var theme = _a.theme;
|
|
75
|
+
export var StyledChildContainer = styled('div', 'flex-auto', function (_a, props) {
|
|
76
|
+
var theme = _a.theme, px2rem = _a.px2rem;
|
|
70
77
|
return ({
|
|
71
78
|
fontWeight: props.$selected ? 700 : 400,
|
|
79
|
+
fontSize: px2rem(13),
|
|
72
80
|
});
|
|
73
81
|
});
|
package/esm/list/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { KeyboardEvent, MouseEvent, ReactNode } from 'react';
|
|
2
2
|
import { Override } from '../overrides/types';
|
|
3
3
|
import { SpacewebComponentProps } from '../types';
|
|
4
|
+
import { StatefulTooltipProps } from '../tooltip';
|
|
4
5
|
export declare type AlignItems = 'start' | 'center';
|
|
5
6
|
export declare type Enhancer<SharedProps> = ReactNode | ((props: SharedProps) => ReactNode);
|
|
6
7
|
export declare type ListItemSharedProps = {
|
|
@@ -26,9 +27,11 @@ export declare type ListItemProps = SpacewebComponentProps & {
|
|
|
26
27
|
EndEnhancer?: Override<ListItemSharedProps & Record<string, any>>;
|
|
27
28
|
Root?: Override<ListItemSharedProps & Record<string, any>>;
|
|
28
29
|
StartEnhancer?: Override<ListItemSharedProps & Record<string, any>>;
|
|
30
|
+
StatefulTooltip?: Override<ListItemSharedProps & Record<string, any>>;
|
|
29
31
|
};
|
|
30
32
|
selected?: boolean;
|
|
31
33
|
startEnhancer?: Enhancer<ListItemSharedProps>;
|
|
34
|
+
tooltipContent?: StatefulTooltipProps['content'];
|
|
32
35
|
};
|
|
33
36
|
export declare type ListProps = SpacewebComponentProps & {
|
|
34
37
|
children?: ReactNode;
|
package/esm/locale/en_US.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
export var DEFAULT_LOCALE = {
|
|
2
|
+
colorPicker: {
|
|
3
|
+
resetButtonLabel: 'Reset Color',
|
|
4
|
+
},
|
|
2
5
|
select: {
|
|
3
6
|
noResultsMsg: 'No Results',
|
|
4
7
|
selectAllLabel: 'Select All',
|
|
8
|
+
hideButtonAriaLabel: 'Hide',
|
|
9
|
+
selectPlaceholder: 'Select...',
|
|
10
|
+
clearOptionLabel: 'Unassign',
|
|
11
|
+
selectedValuesPrefix: 'Selected ${values}.',
|
|
5
12
|
},
|
|
6
13
|
asyncSelect: {
|
|
7
14
|
searchingText: 'Searching',
|
|
@@ -12,9 +19,12 @@ export var DEFAULT_LOCALE = {
|
|
|
12
19
|
dateInputStartLabel: 'Start Date',
|
|
13
20
|
timePickerEndLabel: 'End Time',
|
|
14
21
|
dateInputEndLabel: 'End Date',
|
|
22
|
+
calendarButtonAriaLabel: 'Open Calendar',
|
|
15
23
|
},
|
|
16
24
|
datePicker: {
|
|
17
25
|
popoverAriaLabel: 'Select a date',
|
|
26
|
+
timezonePickerLabel: 'Timezone',
|
|
27
|
+
timezonePickerPlaceholder: 'Select a timezone',
|
|
18
28
|
},
|
|
19
29
|
timeRangePicker: {
|
|
20
30
|
today: 'Today',
|
|
@@ -74,4 +84,20 @@ export var DEFAULT_LOCALE = {
|
|
|
74
84
|
toggleButtonShowAriaLabel: 'Show Alerts',
|
|
75
85
|
toggleButtonHideAriaLabel: 'Hide Alerts',
|
|
76
86
|
},
|
|
87
|
+
input: {
|
|
88
|
+
clearAriaLabel: 'Clear Value',
|
|
89
|
+
},
|
|
90
|
+
modal: {
|
|
91
|
+
closeAriaLabel: 'Close Modal',
|
|
92
|
+
},
|
|
93
|
+
snackbar: {
|
|
94
|
+
closeAriaLabel: 'Hide Snackbar',
|
|
95
|
+
},
|
|
96
|
+
tag: {
|
|
97
|
+
closeAriaLabel: 'Remove Tag',
|
|
98
|
+
},
|
|
99
|
+
search: {
|
|
100
|
+
searchPlaceholder: 'Search',
|
|
101
|
+
},
|
|
102
|
+
langCode: 'en-US',
|
|
77
103
|
};
|
package/esm/locale/types.d.ts
CHANGED
|
@@ -4,8 +4,10 @@ import { AsyncSelectLocale } from '../asyncSelect';
|
|
|
4
4
|
import { PhoneInputLocale } from '../phone-input';
|
|
5
5
|
import { DatePickerLocale } from '../date-picker/locale';
|
|
6
6
|
import { BannerLocale } from '../banner';
|
|
7
|
+
import { ColorPickerLocale } from '../color-picker/locale';
|
|
7
8
|
export declare type Locale = {
|
|
8
9
|
select: SelectLocale;
|
|
10
|
+
colorPicker: ColorPickerLocale;
|
|
9
11
|
asyncSelect: AsyncSelectLocale;
|
|
10
12
|
datePicker: DatePickerLocale;
|
|
11
13
|
timeRangePicker: TimeRangePickerLocale;
|
|
@@ -15,9 +17,26 @@ export declare type Locale = {
|
|
|
15
17
|
dateInputStartLabel: string;
|
|
16
18
|
timePickerEndLabel: string;
|
|
17
19
|
dateInputEndLabel: string;
|
|
20
|
+
calendarButtonAriaLabel: string;
|
|
18
21
|
};
|
|
19
22
|
menu: {
|
|
20
23
|
nestedMenuItemAriaLabel: string;
|
|
21
24
|
};
|
|
22
25
|
banner: BannerLocale;
|
|
26
|
+
input: {
|
|
27
|
+
clearAriaLabel: string;
|
|
28
|
+
};
|
|
29
|
+
modal: {
|
|
30
|
+
closeAriaLabel: string;
|
|
31
|
+
};
|
|
32
|
+
snackbar: {
|
|
33
|
+
closeAriaLabel: string;
|
|
34
|
+
};
|
|
35
|
+
tag: {
|
|
36
|
+
closeAriaLabel: string;
|
|
37
|
+
};
|
|
38
|
+
search: {
|
|
39
|
+
searchPlaceholder: string;
|
|
40
|
+
};
|
|
41
|
+
langCode: string;
|
|
23
42
|
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
declare type MenuContextValue = {
|
|
3
3
|
highlightedItem: HTMLElement | null;
|
|
4
|
-
setHighlightedItem: (item: HTMLElement | null) => void;
|
|
4
|
+
setHighlightedItem: (item: HTMLElement | null, showFocusVisibleStyles?: boolean) => void;
|
|
5
5
|
setMenuContainerRef: (ref: HTMLElement | null) => void;
|
|
6
6
|
nestedMenuOpen: boolean;
|
|
7
|
+
listItemFocusVisible: boolean;
|
|
7
8
|
setNestedMenuOpen: (open: boolean) => void;
|
|
8
9
|
};
|
|
9
10
|
export declare const MenuProvider: import("react").Provider<MenuContextValue>;
|
package/esm/menu/MenuContext.js
CHANGED
|
@@ -4,6 +4,7 @@ var MenuContext = createContext({
|
|
|
4
4
|
setHighlightedItem: function () { return null; },
|
|
5
5
|
setMenuContainerRef: function () { return null; },
|
|
6
6
|
nestedMenuOpen: false,
|
|
7
|
+
listItemFocusVisible: false,
|
|
7
8
|
setNestedMenuOpen: function () { return null; },
|
|
8
9
|
});
|
|
9
10
|
export var MenuProvider = MenuContext.Provider;
|
package/esm/menu/menu-item.d.ts
CHANGED
|
@@ -17,15 +17,17 @@ declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponen
|
|
|
17
17
|
disabled?: boolean | undefined;
|
|
18
18
|
endEnhancer?: import("../list/types").Enhancer<import("../list").ListItemSharedProps>;
|
|
19
19
|
highlighted?: boolean | undefined;
|
|
20
|
-
onClick?: ((event: React.
|
|
20
|
+
onClick?: ((event: React.KeyboardEvent<Element> | React.MouseEvent<Element, MouseEvent>) => void) | undefined;
|
|
21
21
|
overrides?: {
|
|
22
22
|
ChildContainer?: import("../overrides").Override<import("../list").ListItemSharedProps & Record<string, any>> | undefined;
|
|
23
23
|
EndEnhancer?: import("../overrides").Override<import("../list").ListItemSharedProps & Record<string, any>> | undefined;
|
|
24
24
|
Root?: import("../overrides").Override<import("../list").ListItemSharedProps & Record<string, any>> | undefined;
|
|
25
25
|
StartEnhancer?: import("../overrides").Override<import("../list").ListItemSharedProps & Record<string, any>> | undefined;
|
|
26
|
+
StatefulTooltip?: import("../overrides").Override<import("../list").ListItemSharedProps & Record<string, any>> | undefined;
|
|
26
27
|
} | undefined;
|
|
27
28
|
selected?: boolean | undefined;
|
|
28
29
|
startEnhancer?: import("../list/types").Enhancer<import("../list").ListItemSharedProps>;
|
|
30
|
+
tooltipContent?: React.ReactNode | import("baseui/popover").StatefulContentRenderProp;
|
|
29
31
|
} & Record<string, any>> | undefined;
|
|
30
32
|
Popover?: import("../overrides").Override<Omit<import("baseui/popover").PopoverProps, "children" | "overrides" | "triggerType" | "placement"> & {
|
|
31
33
|
overrides?: ({
|
|
@@ -42,6 +44,7 @@ declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponen
|
|
|
42
44
|
triggerType?: import("../popover").TriggerType | undefined;
|
|
43
45
|
placement?: "auto" | "bottom" | "left" | "right" | "top" | "topLeft" | "topRight" | "rightTop" | "rightBottom" | "bottomRight" | "bottomLeft" | "leftBottom" | "leftTop" | undefined;
|
|
44
46
|
innerRef?: React.Ref<HTMLElement> | undefined;
|
|
47
|
+
viewportAsBoundary?: boolean | undefined;
|
|
45
48
|
} & Record<string, any>> | undefined;
|
|
46
49
|
} | undefined;
|
|
47
50
|
} & React.RefAttributes<HTMLElement>>>;
|
package/esm/menu/menu-item.js
CHANGED
|
@@ -14,19 +14,20 @@ import { Popover } from '../popover';
|
|
|
14
14
|
import { useLocale } from '../locale';
|
|
15
15
|
import { canHighlightItem } from './helpers';
|
|
16
16
|
import { useMenuContext } from './MenuContext';
|
|
17
|
+
import cx from '../classNames';
|
|
17
18
|
var listItemOverrides = {
|
|
18
19
|
ListItem: {
|
|
19
20
|
props: {
|
|
20
21
|
overrides: {
|
|
21
22
|
Root: {
|
|
22
23
|
style: function (_a, _b) {
|
|
23
|
-
var theme = _a.theme;
|
|
24
|
-
var $disabled = _b.$disabled, $highlighted = _b.$highlighted, $selected = _b.$selected;
|
|
24
|
+
var getStyle = _a.getStyle, theme = _a.theme;
|
|
25
|
+
var $disabled = _b.$disabled, $highlighted = _b.$highlighted, $selected = _b.$selected, $outlined = _b.$outlined;
|
|
25
26
|
var hoverBackgroundColor = getComponentTheme(theme, 'list').hoverBackgroundColor;
|
|
26
|
-
return {
|
|
27
|
+
return getStyle(cx({ 'outline-01 outline-offset-0': $outlined }), {
|
|
27
28
|
backgroundColor: $highlighted || $selected ? hoverBackgroundColor : 'none',
|
|
28
29
|
cursor: $disabled ? 'not-allowed' : 'pointer',
|
|
29
|
-
};
|
|
30
|
+
});
|
|
30
31
|
},
|
|
31
32
|
},
|
|
32
33
|
},
|
|
@@ -34,13 +35,12 @@ var listItemOverrides = {
|
|
|
34
35
|
},
|
|
35
36
|
};
|
|
36
37
|
var MenuItem = React.forwardRef(function (_a, ref) {
|
|
37
|
-
var _b;
|
|
38
38
|
var selected = _a.selected, highlighted = _a.highlighted, overrides = _a.overrides, getChildMenu = _a.getChildMenu, onMouseEnter = _a.onMouseEnter, onMouseLeave = _a.onMouseLeave, onMouseOver = _a.onMouseOver, renderAll = _a.renderAll, restProps = __rest(_a, ["selected", "highlighted", "overrides", "getChildMenu", "onMouseEnter", "onMouseLeave", "onMouseOver", "renderAll"]);
|
|
39
|
-
var
|
|
39
|
+
var _b = __read(useState(false), 2), hovered = _b[0], setHovered = _b[1];
|
|
40
40
|
var ChildMenu = getChildMenu === null || getChildMenu === void 0 ? void 0 : getChildMenu();
|
|
41
41
|
var ownRef = useRef(null);
|
|
42
42
|
var itemRef = useCombinedRefs(ref, ownRef);
|
|
43
|
-
var
|
|
43
|
+
var _c = useMenuContext(), highlightedItem = _c.highlightedItem, setHighlightedItem = _c.setHighlightedItem, setMenuContainerRef = _c.setMenuContainerRef, listItemFocusVisible = _c.listItemFocusVisible, nestedMenuOpen = _c.nestedMenuOpen, setNestedMenuOpen = _c.setNestedMenuOpen;
|
|
44
44
|
var locale = useLocale();
|
|
45
45
|
useEffect(function () {
|
|
46
46
|
var _a, _b;
|
|
@@ -48,8 +48,8 @@ var MenuItem = React.forwardRef(function (_a, ref) {
|
|
|
48
48
|
}, [setMenuContainerRef]);
|
|
49
49
|
var isItemHighlighted = highlighted || (highlightedItem !== null && highlightedItem === ownRef.current);
|
|
50
50
|
var mergedOverrides = useMemo(function () { return mergeOverrides(listItemOverrides, overrides); }, [overrides]);
|
|
51
|
-
var
|
|
52
|
-
var
|
|
51
|
+
var _d = __read(useOverrides(mergedOverrides === null || mergedOverrides === void 0 ? void 0 : mergedOverrides.ListItem, ListItem), 2), ListItemOverride = _d[0], listItemProps = _d[1];
|
|
52
|
+
var _e = __read(useOverrides(mergedOverrides === null || mergedOverrides === void 0 ? void 0 : mergedOverrides.Popover, Popover), 2), PopoverOverride = _e[0], popoverProps = _e[1];
|
|
53
53
|
var onMouseOverRef = useLatest(onMouseOver);
|
|
54
54
|
var handleMouseOver = useCallback(function (e) {
|
|
55
55
|
var _a;
|
|
@@ -61,7 +61,7 @@ var MenuItem = React.forwardRef(function (_a, ref) {
|
|
|
61
61
|
var resetMenu = useCallback(function () { return setHighlightedItem(null); }, [setHighlightedItem]);
|
|
62
62
|
var closeNestedMenu = useCallback(function () { return setNestedMenuOpen(false); }, [setNestedMenuOpen]);
|
|
63
63
|
var id = useUniqueId();
|
|
64
|
-
var listItem = (_jsx(ListItemOverride, __assign({ id: id.toString(), ref: itemRef, role: "menuitem", "aria-label": ChildMenu ? locale.menu.nestedMenuItemAriaLabel : undefined, selected: selected, "aria-selected": selected, "data-haschildmenu": Boolean(ChildMenu), highlighted: isItemHighlighted, endEnhancer: ChildMenu && _jsx(ChevronDown, { size: 10, className: "transform -rotate-90" }, void 0), onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, restProps, { onMouseOver: handleMouseOver }, listItemProps), void 0));
|
|
64
|
+
var listItem = (_jsx(ListItemOverride, __assign({ id: id.toString(), ref: itemRef, role: "menuitem", "aria-label": ChildMenu ? locale.menu.nestedMenuItemAriaLabel : undefined, selected: selected, "aria-selected": selected, "data-haschildmenu": Boolean(ChildMenu), highlighted: isItemHighlighted, "$outlined": isItemHighlighted && listItemFocusVisible, endEnhancer: ChildMenu && _jsx(ChevronDown, { size: 10, className: "transform -rotate-90" }, void 0), onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, restProps, { onMouseOver: handleMouseOver }, listItemProps), void 0));
|
|
65
65
|
var handleMouseEnter = useCombinedHandler(function () { return setHovered(true); }, onMouseEnter);
|
|
66
66
|
var handleMouseLeave = useCombinedHandler(function () { return setHovered(false); }, onMouseLeave);
|
|
67
67
|
// when we have opened child menu using hover, then after switching to keyboard hovered state remains true
|
|
@@ -74,7 +74,7 @@ var MenuItem = React.forwardRef(function (_a, ref) {
|
|
|
74
74
|
if (!ChildMenu) {
|
|
75
75
|
return listItem;
|
|
76
76
|
}
|
|
77
|
-
return (_jsx(PopoverOverride, __assign({ content: ChildMenu, isOpen: isItemHighlighted && (hovered || nestedMenuOpen), placement: "rightTop", onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onMouseLeaveDelay: 30, triggerType: "hover",
|
|
77
|
+
return (_jsx(PopoverOverride, __assign({ content: ChildMenu, isOpen: isItemHighlighted && (hovered || nestedMenuOpen), placement: "rightTop", onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onMouseLeaveDelay: 30, triggerType: "hover", renderAll: renderAll, onClickOutside: resetMenu, onEsc: closeNestedMenu }, popoverProps, { children: listItem }), void 0));
|
|
78
78
|
});
|
|
79
79
|
MenuItem.displayName = 'MenuItem';
|
|
80
80
|
export default React.memo(MenuItem);
|
package/esm/menu/menu.d.ts
CHANGED
|
@@ -26,5 +26,6 @@ declare const _default: import("react").MemoExoticComponent<import("react").Forw
|
|
|
26
26
|
resetMenuOnMouseLeave?: boolean | undefined;
|
|
27
27
|
reducer?: import("./types").Reducer | undefined;
|
|
28
28
|
captureScroll?: boolean | undefined;
|
|
29
|
+
selectOnTab?: boolean | undefined;
|
|
29
30
|
} & import("react").RefAttributes<MenuRef>>>;
|
|
30
31
|
export default _default;
|
package/esm/menu/menu.js
CHANGED
|
@@ -9,20 +9,21 @@ import { defaultReducer } from './helpers';
|
|
|
9
9
|
import { MenuProvider } from './MenuContext';
|
|
10
10
|
import useItemContainerEventHandlers from './useItemContainerEventHandlers';
|
|
11
11
|
import useStatefulMenu from './useStatefulMenu';
|
|
12
|
-
import { useNestedMenuContext } from './nested-menu-context';
|
|
13
12
|
var Menu = forwardRef(function (_a, ref) {
|
|
14
|
-
var _b = _a.disableNavigationOnMount, disableNavigationOnMount = _b === void 0 ? false : _b, _c = _a.focusWhenNavigationEnabled, focusWhenNavigationEnabled = _c === void 0 ? true : _c, _d = _a.virtual, virtual = _d === void 0 ? false : _d, overscanCount = _a.overscanCount, _e = _a.scrollElement, scrollElement = _e === void 0 ? null : _e, estimateItemSize = _a.estimateItemSize, children = _a.children, overrides = _a.overrides, onHighlightedItemChange = _a.onHighlightedItemChange, disableAutoHighlight = _a.disableAutoHighlight, resetMenuOnMouseLeave = _a.resetMenuOnMouseLeave, resetMenuHighlightOnMouseLeave = _a.resetMenuHighlightOnMouseLeave, _f = _a.reducer, reducer = _f === void 0 ? defaultReducer : _f, captureScroll = _a.captureScroll, restProps = __rest(_a, ["disableNavigationOnMount", "focusWhenNavigationEnabled", "virtual", "overscanCount", "scrollElement", "estimateItemSize", "children", "overrides", "onHighlightedItemChange", "disableAutoHighlight", "resetMenuOnMouseLeave", "resetMenuHighlightOnMouseLeave", "reducer", "captureScroll"]);
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var
|
|
13
|
+
var _b = _a.disableNavigationOnMount, disableNavigationOnMount = _b === void 0 ? false : _b, _c = _a.focusWhenNavigationEnabled, focusWhenNavigationEnabled = _c === void 0 ? true : _c, _d = _a.virtual, virtual = _d === void 0 ? false : _d, overscanCount = _a.overscanCount, _e = _a.scrollElement, scrollElement = _e === void 0 ? null : _e, estimateItemSize = _a.estimateItemSize, children = _a.children, overrides = _a.overrides, onHighlightedItemChange = _a.onHighlightedItemChange, disableAutoHighlight = _a.disableAutoHighlight, resetMenuOnMouseLeave = _a.resetMenuOnMouseLeave, resetMenuHighlightOnMouseLeave = _a.resetMenuHighlightOnMouseLeave, _f = _a.reducer, reducer = _f === void 0 ? defaultReducer : _f, captureScroll = _a.captureScroll, _g = _a.selectOnTab, selectOnTab = _g === void 0 ? false : _g, restProps = __rest(_a, ["disableNavigationOnMount", "focusWhenNavigationEnabled", "virtual", "overscanCount", "scrollElement", "estimateItemSize", "children", "overrides", "onHighlightedItemChange", "disableAutoHighlight", "resetMenuOnMouseLeave", "resetMenuHighlightOnMouseLeave", "reducer", "captureScroll", "selectOnTab"]);
|
|
14
|
+
var _h = __read(useState(null), 2), listRef = _h[0], setListRef = _h[1];
|
|
15
|
+
var _j = __read(useOverrides(overrides === null || overrides === void 0 ? void 0 : overrides.List, List), 2), ListOverride = _j[0], listProps = _j[1];
|
|
16
|
+
var _k = __read(useState(null), 2), listItemsContainer = _k[0], setListItemsContainer = _k[1];
|
|
17
|
+
var _l = useStatefulMenu({
|
|
19
18
|
disableNavigationOnMount: disableNavigationOnMount,
|
|
20
19
|
disableAutoHighlight: disableAutoHighlight,
|
|
21
20
|
focusWhenNavigationEnabled: focusWhenNavigationEnabled,
|
|
22
21
|
onHighlightedItemChange: onHighlightedItemChange,
|
|
23
22
|
listItemsContainerRef: listItemsContainer,
|
|
24
23
|
reducer: reducer,
|
|
25
|
-
|
|
24
|
+
selectOnTab: selectOnTab,
|
|
25
|
+
children: children,
|
|
26
|
+
}), turnOnKeyboardNavigation = _l.turnOnKeyboardNavigation, turnOffKeyboardNavigation = _l.turnOffKeyboardNavigation, highlightedItem = _l.highlightedItem, setHighlightedItem = _l.setHighlightedItem, nestedMenuOpen = _l.nestedMenuOpen, listItemFocusVisible = _l.listItemFocusVisible, setNestedMenuOpen = _l.setNestedMenuOpen;
|
|
26
27
|
var setScrollTarget = useScrollCapture({ enabled: captureScroll });
|
|
27
28
|
var setListCombinedRef = useCombinedRefs(setListRef, setScrollTarget);
|
|
28
29
|
var menuContextValue = useMemo(function () { return ({
|
|
@@ -30,8 +31,9 @@ var Menu = forwardRef(function (_a, ref) {
|
|
|
30
31
|
setHighlightedItem: setHighlightedItem,
|
|
31
32
|
setMenuContainerRef: setListItemsContainer,
|
|
32
33
|
nestedMenuOpen: nestedMenuOpen,
|
|
34
|
+
listItemFocusVisible: listItemFocusVisible,
|
|
33
35
|
setNestedMenuOpen: setNestedMenuOpen,
|
|
34
|
-
}); }, [highlightedItem, setHighlightedItem, nestedMenuOpen, setNestedMenuOpen]);
|
|
36
|
+
}); }, [highlightedItem, setHighlightedItem, nestedMenuOpen, listItemFocusVisible, setNestedMenuOpen]);
|
|
35
37
|
useItemContainerEventHandlers({
|
|
36
38
|
listItemsContainer: listItemsContainer,
|
|
37
39
|
resetMenuHighlightOnMouseLeave: resetMenuHighlightOnMouseLeave || resetMenuOnMouseLeave,
|
|
@@ -48,9 +50,7 @@ var Menu = forwardRef(function (_a, ref) {
|
|
|
48
50
|
}
|
|
49
51
|
return menuRef;
|
|
50
52
|
}, [turnOnKeyboardNavigation, turnOffKeyboardNavigation, setHighlightedItem, listRef]);
|
|
51
|
-
|
|
52
|
-
var $showFocusOutline = Object.keys(nestedMenuContext).length !== 0;
|
|
53
|
-
return (_jsx(MenuProvider, __assign({ value: menuContextValue }, { children: _jsx(ListOverride, __assign({ ref: setListCombinedRef, "$showFocusOutline": $showFocusOutline, role: "menu", virtual: virtual, overscanCount: overscanCount, scrollElement: scrollElement, estimateItemSize: estimateItemSize }, restProps, listProps, { children: children }), void 0) }), void 0));
|
|
53
|
+
return (_jsx(MenuProvider, __assign({ value: menuContextValue }, { children: _jsx(ListOverride, __assign({ ref: setListCombinedRef, role: "menu", virtual: virtual, overscanCount: overscanCount, scrollElement: scrollElement, estimateItemSize: estimateItemSize }, restProps, listProps, { children: children }), void 0) }), void 0));
|
|
54
54
|
});
|
|
55
55
|
Menu.displayName = 'Menu';
|
|
56
56
|
export default memo(Menu);
|
package/esm/menu/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
import { Reducer } from './types';
|
|
3
3
|
declare type Params = {
|
|
4
4
|
/**
|
|
@@ -9,15 +9,18 @@ declare type Params = {
|
|
|
9
9
|
disableNavigationOnMount?: boolean;
|
|
10
10
|
disableAutoHighlight?: boolean;
|
|
11
11
|
reducer: Reducer;
|
|
12
|
+
selectOnTab?: boolean;
|
|
13
|
+
children?: ReactNode;
|
|
12
14
|
};
|
|
13
15
|
declare type NavigationUtils = {
|
|
14
16
|
highlightedItem: HTMLElement | null;
|
|
15
|
-
setHighlightedItem:
|
|
17
|
+
setHighlightedItem: (item: HTMLElement | null, showFocusVisibleStyles?: boolean) => void;
|
|
16
18
|
turnOnKeyboardNavigation: () => void;
|
|
17
19
|
turnOffKeyboardNavigation: () => void;
|
|
20
|
+
listItemFocusVisible: boolean;
|
|
18
21
|
navigationEnabled: boolean;
|
|
19
22
|
nestedMenuOpen: boolean;
|
|
20
23
|
setNestedMenuOpen: (open: boolean) => void;
|
|
21
24
|
};
|
|
22
|
-
declare const useKeyboardNavigation: ({ listItemsContainerRef, disableNavigationOnMount, focusWhenNavigationEnabled, disableAutoHighlight, reducer, }: Params) => NavigationUtils;
|
|
25
|
+
declare const useKeyboardNavigation: ({ listItemsContainerRef, disableNavigationOnMount, focusWhenNavigationEnabled, disableAutoHighlight, reducer, selectOnTab, children, }: Params) => NavigationUtils;
|
|
23
26
|
export default useKeyboardNavigation;
|
|
@@ -5,27 +5,29 @@ import { useDocument } from '../spacewebProvider/DocumentProvider';
|
|
|
5
5
|
import { getFirstHighlightableElement, getNextHighlightedItem } from './helpers';
|
|
6
6
|
import { useNestedMenuContext } from './nested-menu-context';
|
|
7
7
|
var useKeyboardNavigation = function (_a) {
|
|
8
|
-
var listItemsContainerRef = _a.listItemsContainerRef, _b = _a.disableNavigationOnMount, disableNavigationOnMount = _b === void 0 ? false : _b, _c = _a.focusWhenNavigationEnabled, focusWhenNavigationEnabled = _c === void 0 ? true : _c, disableAutoHighlight = _a.disableAutoHighlight, reducer = _a.reducer;
|
|
9
|
-
var _d = __read(useState(null), 2), highlightedItem = _d[0],
|
|
10
|
-
var _e = __read(useState(
|
|
11
|
-
var _f = __read(useState(
|
|
8
|
+
var listItemsContainerRef = _a.listItemsContainerRef, _b = _a.disableNavigationOnMount, disableNavigationOnMount = _b === void 0 ? false : _b, _c = _a.focusWhenNavigationEnabled, focusWhenNavigationEnabled = _c === void 0 ? true : _c, disableAutoHighlight = _a.disableAutoHighlight, reducer = _a.reducer, selectOnTab = _a.selectOnTab, children = _a.children;
|
|
9
|
+
var _d = __read(useState(null), 2), highlightedItem = _d[0], _setHighlightedItem = _d[1];
|
|
10
|
+
var _e = __read(useState(false), 2), listItemFocusVisible = _e[0], setListItemFocusVisible = _e[1];
|
|
11
|
+
var _f = __read(useState(!disableNavigationOnMount), 2), navigationEnabled = _f[0], setNavigationEnabled = _f[1];
|
|
12
|
+
var _g = __read(useState(false), 2), nestedMenuOpen = _g[0], setNestedMenuOpen = _g[1];
|
|
12
13
|
var highlightedItemRef = useLatest(highlightedItem);
|
|
13
14
|
var reducerRef = useLatest(reducer);
|
|
14
15
|
var ownerDocument = useDocument();
|
|
16
|
+
var setHighlightedItem = function (item, showFocusVisibleStyles) {
|
|
17
|
+
if (showFocusVisibleStyles === void 0) { showFocusVisibleStyles = false; }
|
|
18
|
+
_setHighlightedItem(item);
|
|
19
|
+
setListItemFocusVisible(showFocusVisibleStyles);
|
|
20
|
+
};
|
|
15
21
|
// highlight first item in the list if prevHighlighted item is no longer in dom
|
|
16
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps -- run this hook whenever menu re-renders
|
|
17
22
|
useLayoutEffect(function () {
|
|
18
23
|
var isHighlightedItemInDom = ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.body.contains(highlightedItem);
|
|
19
|
-
if (!
|
|
20
|
-
disableAutoHighlight ||
|
|
21
|
-
isHighlightedItemInDom ||
|
|
22
|
-
!navigationEnabled ||
|
|
23
|
-
!listItemsContainerRef) {
|
|
24
|
+
if (disableAutoHighlight || isHighlightedItemInDom || !navigationEnabled || !listItemsContainerRef) {
|
|
24
25
|
return;
|
|
25
26
|
}
|
|
26
27
|
var firstHighlightableItem = getFirstHighlightableElement(listItemsContainerRef).firstHighlightableItem;
|
|
27
28
|
firstHighlightableItem && setHighlightedItem(firstHighlightableItem);
|
|
28
|
-
|
|
29
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- run this hook only when children changes
|
|
30
|
+
}, [children]);
|
|
29
31
|
useEffect(function () {
|
|
30
32
|
// Scroll the selected item into view for the first time when menu opens up
|
|
31
33
|
window.requestAnimationFrame(function () {
|
|
@@ -38,7 +40,7 @@ var useKeyboardNavigation = function (_a) {
|
|
|
38
40
|
setNestedMenuOpen(false);
|
|
39
41
|
}, [setNavigationEnabled, setNestedMenuOpen]);
|
|
40
42
|
var turnOffKeyboardNavigation = useCallback(function () { return setNavigationEnabled(false); }, []);
|
|
41
|
-
var
|
|
43
|
+
var _h = useNestedMenuContext(), getMenuInfo = _h.getMenuInfo, getParentMenuInfo = _h.getParentMenuInfo, getChildMenuInfo = _h.getChildMenuInfo;
|
|
42
44
|
// Highlight previously selected item or first highlightable item on mount
|
|
43
45
|
useEffect(function () {
|
|
44
46
|
if (disableAutoHighlight || !listItemsContainerRef) {
|
|
@@ -75,13 +77,17 @@ var useKeyboardNavigation = function (_a) {
|
|
|
75
77
|
// Stop scrolling the menu
|
|
76
78
|
event.preventDefault();
|
|
77
79
|
}
|
|
78
|
-
|
|
80
|
+
else if (event.key === 'Tab' && selectOnTab) {
|
|
81
|
+
_highlightedItem === null || _highlightedItem === void 0 ? void 0 : _highlightedItem.click();
|
|
82
|
+
event.preventDefault();
|
|
83
|
+
}
|
|
84
|
+
setHighlightedItem(nextItemToHighlight, true);
|
|
79
85
|
/**
|
|
80
86
|
* When Menu mounts for the first time inside popover, it renders outside visible viewport until popover measures position of anchor/target element.
|
|
81
87
|
* By calling `scrollIntoView` after keydown(instead useEffect), avoiding scrollIntoView call for the first render.
|
|
82
88
|
*/
|
|
83
89
|
(_a = nextItemToHighlight === null || nextItemToHighlight === void 0 ? void 0 : nextItemToHighlight.scrollIntoView) === null || _a === void 0 ? void 0 : _a.call(nextItemToHighlight, { block: 'nearest' });
|
|
84
|
-
}, [getMenuInfo, getParentMenuInfo, highlightedItemRef, listItemsContainerRef, ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.body]);
|
|
90
|
+
}, [getMenuInfo, getParentMenuInfo, highlightedItemRef, listItemsContainerRef, ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.body, selectOnTab]);
|
|
85
91
|
useEffect(function () {
|
|
86
92
|
if (!navigationEnabled) {
|
|
87
93
|
return undefined;
|
|
@@ -115,6 +121,7 @@ var useKeyboardNavigation = function (_a) {
|
|
|
115
121
|
return {
|
|
116
122
|
highlightedItem: highlightedItem,
|
|
117
123
|
setHighlightedItem: setHighlightedItem,
|
|
124
|
+
listItemFocusVisible: listItemFocusVisible,
|
|
118
125
|
turnOffKeyboardNavigation: turnOffKeyboardNavigation,
|
|
119
126
|
turnOnKeyboardNavigation: turnOnKeyboardNavigation,
|
|
120
127
|
navigationEnabled: navigationEnabled,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
import { Reducer } from './types';
|
|
3
3
|
declare type UseStatefulMenu = (params: {
|
|
4
4
|
disableNavigationOnMount?: boolean;
|
|
@@ -7,11 +7,14 @@ declare type UseStatefulMenu = (params: {
|
|
|
7
7
|
listItemsContainerRef: HTMLElement | null;
|
|
8
8
|
onHighlightedItemChange?: (item?: HTMLElement | null) => void;
|
|
9
9
|
reducer?: Reducer;
|
|
10
|
+
selectOnTab?: boolean;
|
|
11
|
+
children?: ReactNode;
|
|
10
12
|
}) => {
|
|
11
13
|
highlightedItem: HTMLElement | null;
|
|
12
|
-
setHighlightedItem:
|
|
14
|
+
setHighlightedItem: (item: HTMLElement | null, showFocusVisibleStyles?: boolean) => void;
|
|
13
15
|
turnOnKeyboardNavigation: () => void;
|
|
14
16
|
turnOffKeyboardNavigation: () => void;
|
|
17
|
+
listItemFocusVisible: boolean;
|
|
15
18
|
navigationEnabled: boolean;
|
|
16
19
|
nestedMenuOpen: boolean;
|
|
17
20
|
setNestedMenuOpen: (open: boolean) => void;
|
|
@@ -4,7 +4,7 @@ import { defaultReducer } from './helpers';
|
|
|
4
4
|
import { useNestedMenuContext } from './nested-menu-context';
|
|
5
5
|
import useKeyboardNavigation from './useKeyboardNavigation';
|
|
6
6
|
var useStatefulMenu = function (_a) {
|
|
7
|
-
var _b = _a.disableNavigationOnMount, disableNavigationOnMount = _b === void 0 ? false : _b, focusWhenNavigationEnabled = _a.focusWhenNavigationEnabled, listItemsContainerRef = _a.listItemsContainerRef, onHighlightedItemChange = _a.onHighlightedItemChange, disableAutoHighlight = _a.disableAutoHighlight, _c = _a.reducer, reducer = _c === void 0 ? defaultReducer : _c;
|
|
7
|
+
var _b = _a.disableNavigationOnMount, disableNavigationOnMount = _b === void 0 ? false : _b, focusWhenNavigationEnabled = _a.focusWhenNavigationEnabled, listItemsContainerRef = _a.listItemsContainerRef, onHighlightedItemChange = _a.onHighlightedItemChange, disableAutoHighlight = _a.disableAutoHighlight, _c = _a.reducer, reducer = _c === void 0 ? defaultReducer : _c, selectOnTab = _a.selectOnTab, children = _a.children;
|
|
8
8
|
useEffect(function () {
|
|
9
9
|
// focusWhenNavigationEnabled is true, then make listContainer focusable if required
|
|
10
10
|
if (focusWhenNavigationEnabled && listItemsContainerRef && listItemsContainerRef.tabIndex < 0) {
|
|
@@ -17,7 +17,9 @@ var useStatefulMenu = function (_a) {
|
|
|
17
17
|
focusWhenNavigationEnabled: focusWhenNavigationEnabled,
|
|
18
18
|
listItemsContainerRef: listItemsContainerRef,
|
|
19
19
|
reducer: reducer,
|
|
20
|
-
|
|
20
|
+
selectOnTab: selectOnTab,
|
|
21
|
+
children: children,
|
|
22
|
+
}), highlightedItem = _d.highlightedItem, setHighlightedItem = _d.setHighlightedItem, turnOnKeyboardNavigation = _d.turnOnKeyboardNavigation, turnOffKeyboardNavigation = _d.turnOffKeyboardNavigation, listItemFocusVisible = _d.listItemFocusVisible, navigationEnabled = _d.navigationEnabled, nestedMenuOpen = _d.nestedMenuOpen, setNestedMenuOpen = _d.setNestedMenuOpen;
|
|
21
23
|
var _e = useNestedMenuContext(), unregisterMenu = _e.unregisterMenu, registerMenu = _e.registerMenu, getParentMenuInfo = _e.getParentMenuInfo;
|
|
22
24
|
useEffect(function () {
|
|
23
25
|
if (!listItemsContainerRef)
|
|
@@ -44,20 +46,24 @@ var useStatefulMenu = function (_a) {
|
|
|
44
46
|
(_a = onHighlightedItemChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onHighlightedItemChangeRef, highlightedItem);
|
|
45
47
|
}, [highlightedItem, onHighlightedItemChangeRef]);
|
|
46
48
|
useEffect(function () {
|
|
47
|
-
var
|
|
49
|
+
var activeElement;
|
|
48
50
|
// set aria-activedescendant to current focused element whenever highlighted item changes
|
|
49
|
-
if (navigationEnabled && (highlightedItem === null || highlightedItem === void 0 ? void 0 : highlightedItem.id)) {
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
if (navigationEnabled && (highlightedItem === null || highlightedItem === void 0 ? void 0 : highlightedItem.id) && document.activeElement) {
|
|
52
|
+
activeElement = document.activeElement;
|
|
53
|
+
activeElement.setAttribute('aria-activedescendant', highlightedItem.id);
|
|
52
54
|
}
|
|
53
|
-
|
|
54
|
-
(
|
|
55
|
+
return function () {
|
|
56
|
+
if (activeElement) {
|
|
57
|
+
activeElement.removeAttribute('aria-activedescendant');
|
|
58
|
+
}
|
|
59
|
+
};
|
|
55
60
|
}, [navigationEnabled, highlightedItem]);
|
|
56
61
|
return {
|
|
57
62
|
highlightedItem: highlightedItem,
|
|
58
63
|
setHighlightedItem: setHighlightedItem,
|
|
59
64
|
turnOffKeyboardNavigation: turnOffKeyboardNavigation,
|
|
60
65
|
turnOnKeyboardNavigation: turnOnKeyboardNavigation,
|
|
66
|
+
listItemFocusVisible: listItemFocusVisible,
|
|
61
67
|
navigationEnabled: navigationEnabled,
|
|
62
68
|
nestedMenuOpen: nestedMenuOpen,
|
|
63
69
|
setNestedMenuOpen: setNestedMenuOpen,
|