@muraldevkit/ui-toolkit 4.68.0-dev-NFbt.1 → 4.68.0-dev-5W5E.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/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -250
- package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/dist/cjs/components/avatar/MrlAvatar/MrlAvatar.js +17 -11
- package/dist/cjs/components/avatar/MrlAvatar/MrlAvatar.js.map +1 -1
- package/dist/cjs/components/avatar/MrlAvatarButton/MrlAvatarButton.js +27 -25
- package/dist/cjs/components/avatar/MrlAvatarButton/MrlAvatarButton.js.map +1 -1
- package/dist/cjs/components/badge/MrlBadge/MrlBadge.js +11 -5
- package/dist/cjs/components/badge/MrlBadge/MrlBadge.js.map +1 -1
- package/dist/cjs/components/badge/MrlBadgeNotification/MrlBadgeNotification.js +12 -4
- package/dist/cjs/components/badge/MrlBadgeNotification/MrlBadgeNotification.js.map +1 -1
- package/dist/cjs/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js +13 -6
- package/dist/cjs/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js.map +1 -1
- package/dist/cjs/components/breadcrumb/MrlBreadcrumbSeparator/MrlBreadcrumbSeparator.js +7 -3
- package/dist/cjs/components/breadcrumb/MrlBreadcrumbSeparator/MrlBreadcrumbSeparator.js.map +1 -1
- package/dist/cjs/components/breadcrumb/MrlBreadcrumbs/MrlBreadcrumbs.js +24 -28
- package/dist/cjs/components/breadcrumb/MrlBreadcrumbs/MrlBreadcrumbs.js.map +1 -1
- package/dist/cjs/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js +20 -20
- package/dist/cjs/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js.map +1 -1
- package/dist/cjs/components/button/MrlButton/MrlButton.js +21 -21
- package/dist/cjs/components/button/MrlButton/MrlButton.js.map +1 -1
- package/dist/cjs/components/button/MrlIconButton/MrlIconButton.js +20 -22
- package/dist/cjs/components/button/MrlIconButton/MrlIconButton.js.map +1 -1
- package/dist/cjs/components/button/MrlProcessingButton/MrlProcessingButton.js +14 -10
- package/dist/cjs/components/button/MrlProcessingButton/MrlProcessingButton.js.map +1 -1
- package/dist/cjs/components/button/MrlProcessingButton/actions.js +11 -16
- package/dist/cjs/components/button/MrlProcessingButton/actions.js.map +1 -1
- package/dist/cjs/components/button/helpers.js +4 -6
- package/dist/cjs/components/button/helpers.js.map +1 -1
- package/dist/cjs/components/callout/MrlCallout/MrlCallout.js +8 -9
- package/dist/cjs/components/callout/MrlCallout/MrlCallout.js.map +1 -1
- package/dist/cjs/components/container/MrlContainer/MrlContainer.js +14 -7
- package/dist/cjs/components/container/MrlContainer/MrlContainer.js.map +1 -1
- package/dist/cjs/components/divider/MrlDivider/MrlDivider.js +18 -6
- package/dist/cjs/components/divider/MrlDivider/MrlDivider.js.map +1 -1
- package/dist/cjs/components/empty/default/MrlEmpty.js +8 -4
- package/dist/cjs/components/empty/default/MrlEmpty.js.map +1 -1
- package/dist/cjs/components/empty/large/MrlEmptyLarge.js +8 -4
- package/dist/cjs/components/empty/large/MrlEmptyLarge.js.map +1 -1
- package/dist/cjs/components/error-boundary/MrlErrorBoundary.js +30 -38
- package/dist/cjs/components/error-boundary/MrlErrorBoundary.js.map +1 -1
- package/dist/cjs/components/filter/MrlFilter/MrlFilter.js +7 -3
- package/dist/cjs/components/filter/MrlFilter/MrlFilter.js.map +1 -1
- package/dist/cjs/components/filter/MrlFilterContext/MrlFilterContext.js +8 -7
- package/dist/cjs/components/filter/MrlFilterContext/MrlFilterContext.js.map +1 -1
- package/dist/cjs/components/filter/MrlFilterItem/MrlFilterItem.js +9 -3
- package/dist/cjs/components/filter/MrlFilterItem/MrlFilterItem.js.map +1 -1
- package/dist/cjs/components/focus-trap/MrlFocusTrap/MrlFocusTrap.js +6 -5
- package/dist/cjs/components/focus-trap/MrlFocusTrap/MrlFocusTrap.js.map +1 -1
- package/dist/cjs/components/form/checkbox/MrlCheckbox/MrlCheckbox.js +13 -4
- package/dist/cjs/components/form/checkbox/MrlCheckbox/MrlCheckbox.js.map +1 -1
- package/dist/cjs/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js +11 -7
- package/dist/cjs/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js.map +1 -1
- package/dist/cjs/components/form/date-picker/MrlDatePicker.js +21 -14
- package/dist/cjs/components/form/date-picker/MrlDatePicker.js.map +1 -1
- package/dist/cjs/components/form/fieldset/MrlFieldset/MrlFieldset.js +8 -4
- package/dist/cjs/components/form/fieldset/MrlFieldset/MrlFieldset.js.map +1 -1
- package/dist/cjs/components/form/hooks/useActiveColor.js +2 -2
- package/dist/cjs/components/form/hooks/useActiveColor.js.map +1 -1
- package/dist/cjs/components/form/hooks/useIsEditable.js +3 -3
- package/dist/cjs/components/form/hooks/useIsEditable.js.map +1 -1
- package/dist/cjs/components/form/label/MrlLabel/MrlLabel.js +12 -5
- package/dist/cjs/components/form/label/MrlLabel/MrlLabel.js.map +1 -1
- package/dist/cjs/components/form/label/MrlLabelWithDescription/MrlLabelWithDescription.js +19 -5
- package/dist/cjs/components/form/label/MrlLabelWithDescription/MrlLabelWithDescription.js.map +1 -1
- package/dist/cjs/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js +42 -31
- package/dist/cjs/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js.map +1 -1
- package/dist/cjs/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js +21 -12
- package/dist/cjs/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js.map +1 -1
- package/dist/cjs/components/form/legacy-select/MrlLegacySelectMenu/MrlLegacySelectMenu.js +19 -11
- package/dist/cjs/components/form/legacy-select/MrlLegacySelectMenu/MrlLegacySelectMenu.js.map +1 -1
- package/dist/cjs/components/form/legacy-select/context/SelectContext.js +8 -7
- package/dist/cjs/components/form/legacy-select/context/SelectContext.js.map +1 -1
- package/dist/cjs/components/form/legacy-select/index.js +4 -3
- package/dist/cjs/components/form/legacy-select/index.js.map +1 -1
- package/dist/cjs/components/form/radio/MrlRadioButton/MrlRadioButton.js +7 -3
- package/dist/cjs/components/form/radio/MrlRadioButton/MrlRadioButton.js.map +1 -1
- package/dist/cjs/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js +11 -5
- package/dist/cjs/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js.map +1 -1
- package/dist/cjs/components/form/radio/MrlRadioGroup/MrlRadioGroup.js +3 -2
- package/dist/cjs/components/form/radio/MrlRadioGroup/MrlRadioGroup.js.map +1 -1
- package/dist/cjs/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js +10 -8
- package/dist/cjs/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js.map +1 -1
- package/dist/cjs/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js +10 -8
- package/dist/cjs/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js.map +1 -1
- package/dist/cjs/components/form/select/MrlMultiSelect/MrlMultiSelect.js +9 -5
- package/dist/cjs/components/form/select/MrlMultiSelect/MrlMultiSelect.js.map +1 -1
- package/dist/cjs/components/form/select/MrlSelect/MrlSelect.js +9 -5
- package/dist/cjs/components/form/select/MrlSelect/MrlSelect.js.map +1 -1
- package/dist/cjs/components/form/select/components/MrlSelectClearIndicator.js +3 -2
- package/dist/cjs/components/form/select/components/MrlSelectClearIndicator.js.map +1 -1
- package/dist/cjs/components/form/select/components/MrlSelectContainer.js +3 -2
- package/dist/cjs/components/form/select/components/MrlSelectContainer.js.map +1 -1
- package/dist/cjs/components/form/select/components/MrlSelectDropdownIndicator.js +3 -2
- package/dist/cjs/components/form/select/components/MrlSelectDropdownIndicator.js.map +1 -1
- package/dist/cjs/components/form/select/components/MrlSelectMultiValue.js +9 -3
- package/dist/cjs/components/form/select/components/MrlSelectMultiValue.js.map +1 -1
- package/dist/cjs/components/form/select/components/MrlSelectMultiValueRemove.js +3 -2
- package/dist/cjs/components/form/select/components/MrlSelectMultiValueRemove.js.map +1 -1
- package/dist/cjs/components/form/select/components/MrlSelectOption.js +3 -2
- package/dist/cjs/components/form/select/components/MrlSelectOption.js.map +1 -1
- package/dist/cjs/components/form/select/components/MrlSelectValueContainer.js +3 -2
- package/dist/cjs/components/form/select/components/MrlSelectValueContainer.js.map +1 -1
- package/dist/cjs/components/form/select/styles/default.js +18 -18
- package/dist/cjs/components/form/select/styles/default.js.map +1 -1
- package/dist/cjs/components/form/select/styles/inline.js +2 -2
- package/dist/cjs/components/form/select/styles/inline.js.map +1 -1
- package/dist/cjs/components/form/select/styles/inlineNoLabel.js +3 -3
- package/dist/cjs/components/form/select/styles/inlineNoLabel.js.map +1 -1
- package/dist/cjs/components/form/select/styles/inlineStacked.js +2 -2
- package/dist/cjs/components/form/select/styles/inlineStacked.js.map +1 -1
- package/dist/cjs/components/form/switch/MrlSwitch/MrlSwitch.js +14 -7
- package/dist/cjs/components/form/switch/MrlSwitch/MrlSwitch.js.map +1 -1
- package/dist/cjs/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js +13 -9
- package/dist/cjs/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js.map +1 -1
- package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js +31 -19
- package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js.map +1 -1
- package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInputRightIcon.js +14 -17
- package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInputRightIcon.js.map +1 -1
- package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInput.js +28 -23
- package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInput.js.map +1 -1
- package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInputRightIcon.js +14 -17
- package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInputRightIcon.js.map +1 -1
- package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js +20 -16
- package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js.map +1 -1
- package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.js +14 -17
- package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.js.map +1 -1
- package/dist/cjs/components/form/textarea/MrlTextarea/MrlTextarea.js +16 -9
- package/dist/cjs/components/form/textarea/MrlTextarea/MrlTextarea.js.map +1 -1
- package/dist/cjs/components/form/utils.js +2 -4
- package/dist/cjs/components/form/utils.js.map +1 -1
- package/dist/cjs/components/grid/MrlCol/MrlCol.js +37 -46
- package/dist/cjs/components/grid/MrlCol/MrlCol.js.map +1 -1
- package/dist/cjs/components/grid/MrlGrid/MrlGrid.js +7 -3
- package/dist/cjs/components/grid/MrlGrid/MrlGrid.js.map +1 -1
- package/dist/cjs/components/grid/MrlRow/MrlRow.js +7 -3
- package/dist/cjs/components/grid/MrlRow/MrlRow.js.map +1 -1
- package/dist/cjs/components/keystroke/MrlKeystroke/MrlKeystroke.js +7 -3
- package/dist/cjs/components/keystroke/MrlKeystroke/MrlKeystroke.js.map +1 -1
- package/dist/cjs/components/keystroke/MrlKeystrokes/MrlKeystrokes.js +7 -3
- package/dist/cjs/components/keystroke/MrlKeystrokes/MrlKeystrokes.js.map +1 -1
- package/dist/cjs/components/layout/MrlMain/MrlMain.js +9 -3
- package/dist/cjs/components/layout/MrlMain/MrlMain.js.map +1 -1
- package/dist/cjs/components/layout/MrlPage/MrlPage.js +9 -3
- package/dist/cjs/components/layout/MrlPage/MrlPage.js.map +1 -1
- package/dist/cjs/components/layout/MrlPage/index.js +3 -2
- package/dist/cjs/components/layout/MrlPage/index.js.map +1 -1
- package/dist/cjs/components/layout/MrlSidebar/MrlSidebar.js +27 -15
- package/dist/cjs/components/layout/MrlSidebar/MrlSidebar.js.map +1 -1
- package/dist/cjs/components/layout/MrlTopbar/MrlTopbar.js +10 -3
- package/dist/cjs/components/layout/MrlTopbar/MrlTopbar.js.map +1 -1
- package/dist/cjs/components/layout/context/LayoutContext.js +7 -6
- package/dist/cjs/components/layout/context/LayoutContext.js.map +1 -1
- package/dist/cjs/components/layout/error-page/MrlBrandColors/MrlBrandColors.js +18 -14
- package/dist/cjs/components/layout/error-page/MrlBrandColors/MrlBrandColors.js.map +1 -1
- package/dist/cjs/components/layout/error-page/MrlErrorPage/MrlErrorPage.js +13 -9
- package/dist/cjs/components/layout/error-page/MrlErrorPage/MrlErrorPage.js.map +1 -1
- package/dist/cjs/components/layout/utils.js +2 -2
- package/dist/cjs/components/layout/utils.js.map +1 -1
- package/dist/cjs/components/link/MrlLink/MrlLink.js +13 -4
- package/dist/cjs/components/link/MrlLink/MrlLink.js.map +1 -1
- package/dist/cjs/components/link/MrlLinkButton/MrlLinkButton.js +16 -14
- package/dist/cjs/components/link/MrlLinkButton/MrlLinkButton.js.map +1 -1
- package/dist/cjs/components/live-region/MrlLiveRegion/MrlLiveRegion.js +13 -12
- package/dist/cjs/components/live-region/MrlLiveRegion/MrlLiveRegion.js.map +1 -1
- package/dist/cjs/components/loader/MrlProgressBar/MrlProgressBar.js +16 -6
- package/dist/cjs/components/loader/MrlProgressBar/MrlProgressBar.js.map +1 -1
- package/dist/cjs/components/loader/MrlSpinner/MrlSpinner.js +16 -4
- package/dist/cjs/components/loader/MrlSpinner/MrlSpinner.js.map +1 -1
- package/dist/cjs/components/menu/MrlMenu/MrlMenu.js +61 -63
- package/dist/cjs/components/menu/MrlMenu/MrlMenu.js.map +1 -1
- package/dist/cjs/components/menu/MrlMenu/utilities.js +4 -6
- package/dist/cjs/components/menu/MrlMenu/utilities.js.map +1 -1
- package/dist/cjs/components/menu/MrlMenuGroup/MrlMenuGroup.js +4 -3
- package/dist/cjs/components/menu/MrlMenuGroup/MrlMenuGroup.js.map +1 -1
- package/dist/cjs/components/menu/MrlMenuItem/MrlMenuItem.js +24 -19
- package/dist/cjs/components/menu/MrlMenuItem/MrlMenuItem.js.map +1 -1
- package/dist/cjs/components/menu/MrlMenuItemLink/MrlMenuItemLink.js +10 -6
- package/dist/cjs/components/menu/MrlMenuItemLink/MrlMenuItemLink.js.map +1 -1
- package/dist/cjs/components/menu/context/MrlMenuContext.js +3 -2
- package/dist/cjs/components/menu/context/MrlMenuContext.js.map +1 -1
- package/dist/cjs/components/menu/hooks/useBrowserEdgeScroll.js +19 -15
- package/dist/cjs/components/menu/hooks/useBrowserEdgeScroll.js.map +1 -1
- package/dist/cjs/components/menu/hooks/useMenuScroll.js +8 -8
- package/dist/cjs/components/menu/hooks/useMenuScroll.js.map +1 -1
- package/dist/cjs/components/menu/hooks/useSubMenuElementPosition.js +3 -3
- package/dist/cjs/components/menu/hooks/useSubMenuElementPosition.js.map +1 -1
- package/dist/cjs/components/menu/utilities/flip-position.js +1 -1
- package/dist/cjs/components/menu/utilities/flip-position.js.map +1 -1
- package/dist/cjs/components/modal/MrlModal/MrlModal.js +29 -25
- package/dist/cjs/components/modal/MrlModal/MrlModal.js.map +1 -1
- package/dist/cjs/components/modal/MrlModalContent/MrlModalContent.js +12 -8
- package/dist/cjs/components/modal/MrlModalContent/MrlModalContent.js.map +1 -1
- package/dist/cjs/components/modal/MrlModalContext/MrlModalContext.js +4 -3
- package/dist/cjs/components/modal/MrlModalContext/MrlModalContext.js.map +1 -1
- package/dist/cjs/components/modal/MrlModalFooter/MrlModalFooter.js +13 -6
- package/dist/cjs/components/modal/MrlModalFooter/MrlModalFooter.js.map +1 -1
- package/dist/cjs/components/modal/MrlModalHeader/MrlModalHeader.js +12 -6
- package/dist/cjs/components/modal/MrlModalHeader/MrlModalHeader.js.map +1 -1
- package/dist/cjs/components/navigation-sidebar/MrlSidebarNavGroup/MrlSidebarNavGroup.js +7 -3
- package/dist/cjs/components/navigation-sidebar/MrlSidebarNavGroup/MrlSidebarNavGroup.js.map +1 -1
- package/dist/cjs/components/navigation-sidebar/MrlSidebarNavItem/MrlSidebarNavItem.js +11 -3
- package/dist/cjs/components/navigation-sidebar/MrlSidebarNavItem/MrlSidebarNavItem.js.map +1 -1
- package/dist/cjs/components/notification/MrlBlockNotification/MrlBlockNotification.js +26 -19
- package/dist/cjs/components/notification/MrlBlockNotification/MrlBlockNotification.js.map +1 -1
- package/dist/cjs/components/notification/MrlInlineMessage/MrlInlineMessage.js +17 -7
- package/dist/cjs/components/notification/MrlInlineMessage/MrlInlineMessage.js.map +1 -1
- package/dist/cjs/components/notification/MrlToast/MrlToast.js +18 -9
- package/dist/cjs/components/notification/MrlToast/MrlToast.js.map +1 -1
- package/dist/cjs/components/pagination/MrlPagination/MrlPagination.js +7 -3
- package/dist/cjs/components/pagination/MrlPagination/MrlPagination.js.map +1 -1
- package/dist/cjs/components/pagination/MrlPaginationButton/MrlPaginationButton.js +7 -3
- package/dist/cjs/components/pagination/MrlPaginationButton/MrlPaginationButton.js.map +1 -1
- package/dist/cjs/components/pagination/MrlPaginationText/MrlPaginationText.js +8 -4
- package/dist/cjs/components/pagination/MrlPaginationText/MrlPaginationText.js.map +1 -1
- package/dist/cjs/components/panel/MrlPanel/MrlPanel.js +25 -17
- package/dist/cjs/components/panel/MrlPanel/MrlPanel.js.map +1 -1
- package/dist/cjs/components/panel/MrlPanelContext/MrlPanelContext.js +3 -2
- package/dist/cjs/components/panel/MrlPanelContext/MrlPanelContext.js.map +1 -1
- package/dist/cjs/components/panel/MrlPanelFooter/MrlPanelFooter.js +9 -5
- package/dist/cjs/components/panel/MrlPanelFooter/MrlPanelFooter.js.map +1 -1
- package/dist/cjs/components/panel/MrlPanelStickyHeader/MrlPanelStickyHeader.js +8 -4
- package/dist/cjs/components/panel/MrlPanelStickyHeader/MrlPanelStickyHeader.js.map +1 -1
- package/dist/cjs/components/popover/MrlPopover/MrlPopover.js +77 -73
- package/dist/cjs/components/popover/MrlPopover/MrlPopover.js.map +1 -1
- package/dist/cjs/components/popover/MrlPopover/MrlPopoverScrollContainer.js +3 -2
- package/dist/cjs/components/popover/MrlPopover/MrlPopoverScrollContainer.js.map +1 -1
- package/dist/cjs/components/popover/MrlPopover/context/MrlPopoverContext.js +3 -2
- package/dist/cjs/components/popover/MrlPopover/context/MrlPopoverContext.js.map +1 -1
- package/dist/cjs/components/popover/MrlPopover/hooks/use-mrl-popover-event-handlers.js +22 -23
- package/dist/cjs/components/popover/MrlPopover/hooks/use-mrl-popover-event-handlers.js.map +1 -1
- package/dist/cjs/components/popover/MrlPopover/utilities/get-data-point.js +1 -1
- package/dist/cjs/components/popover/MrlPopover/utilities/get-data-point.js.map +1 -1
- package/dist/cjs/components/popover/MrlPopover/utilities/get-offset.js +1 -1
- package/dist/cjs/components/popover/MrlPopover/utilities/get-offset.js.map +1 -1
- package/dist/cjs/components/portal/MrlPortal.js +5 -4
- package/dist/cjs/components/portal/MrlPortal.js.map +1 -1
- package/dist/cjs/components/rovingTabindex/MrlRovingTabindex/MrlRovingTabindex.js +237 -263
- package/dist/cjs/components/rovingTabindex/MrlRovingTabindex/MrlRovingTabindex.js.map +1 -1
- package/dist/cjs/components/skeleton/MrlSkeleton/MrlSkeleton.js +11 -5
- package/dist/cjs/components/skeleton/MrlSkeleton/MrlSkeleton.js.map +1 -1
- package/dist/cjs/components/skeleton/MrlSkeletonText/MrlSkeletonText.js +12 -6
- package/dist/cjs/components/skeleton/MrlSkeletonText/MrlSkeletonText.js.map +1 -1
- package/dist/cjs/components/svg/MrlSvg/MrlSvg.js +17 -17
- package/dist/cjs/components/svg/MrlSvg/MrlSvg.js.map +1 -1
- package/dist/cjs/components/svg/MrlSvgAnimate/MrlSvgAnimate.js +20 -15
- package/dist/cjs/components/svg/MrlSvgAnimate/MrlSvgAnimate.js.map +1 -1
- package/dist/cjs/components/table/MrlSmartTable/MrlSmartTable.js +78 -96
- package/dist/cjs/components/table/MrlSmartTable/MrlSmartTable.js.map +1 -1
- package/dist/cjs/components/table/MrlSmartTable/components/DefaultCellContent.js +5 -4
- package/dist/cjs/components/table/MrlSmartTable/components/DefaultCellContent.js.map +1 -1
- package/dist/cjs/components/table/MrlTable/MrlTable.js +7 -3
- package/dist/cjs/components/table/MrlTable/MrlTable.js.map +1 -1
- package/dist/cjs/components/table/MrlTableBody/MrlTableBody.js +7 -3
- package/dist/cjs/components/table/MrlTableBody/MrlTableBody.js.map +1 -1
- package/dist/cjs/components/table/MrlTableCell/MrlTableCell.js +12 -3
- package/dist/cjs/components/table/MrlTableCell/MrlTableCell.js.map +1 -1
- package/dist/cjs/components/table/MrlTableColumn/MrlTableColumn.js +13 -3
- package/dist/cjs/components/table/MrlTableColumn/MrlTableColumn.js.map +1 -1
- package/dist/cjs/components/table/MrlTableEmptyState/MrlTableEmptyState.js +7 -3
- package/dist/cjs/components/table/MrlTableEmptyState/MrlTableEmptyState.js.map +1 -1
- package/dist/cjs/components/table/MrlTableHeader/MrlTableHeader.js +7 -3
- package/dist/cjs/components/table/MrlTableHeader/MrlTableHeader.js.map +1 -1
- package/dist/cjs/components/table/MrlTableRow/MrlTableRow.js +13 -7
- package/dist/cjs/components/table/MrlTableRow/MrlTableRow.js.map +1 -1
- package/dist/cjs/components/table/utils.js +4 -10
- package/dist/cjs/components/table/utils.js.map +1 -1
- package/dist/cjs/components/tabs/MrlTab/MrlTab.js +16 -9
- package/dist/cjs/components/tabs/MrlTab/MrlTab.js.map +1 -1
- package/dist/cjs/components/tabs/MrlTabContent/MrlTabContent.js +12 -5
- package/dist/cjs/components/tabs/MrlTabContent/MrlTabContent.js.map +1 -1
- package/dist/cjs/components/tabs/MrlTabGroup/MrlTabGroup.js +15 -13
- package/dist/cjs/components/tabs/MrlTabGroup/MrlTabGroup.js.map +1 -1
- package/dist/cjs/components/tabs/MrlTabLink/MrlTabLink.js +16 -9
- package/dist/cjs/components/tabs/MrlTabLink/MrlTabLink.js.map +1 -1
- package/dist/cjs/components/tabs/MrlTabs/MrlTabs.js +16 -10
- package/dist/cjs/components/tabs/MrlTabs/MrlTabs.js.map +1 -1
- package/dist/cjs/components/text/MrlText/MrlText.js +14 -5
- package/dist/cjs/components/text/MrlText/MrlText.js.map +1 -1
- package/dist/cjs/components/text/MrlTextHeading/MrlTextHeading.js +14 -4
- package/dist/cjs/components/text/MrlTextHeading/MrlTextHeading.js.map +1 -1
- package/dist/cjs/components/toolbar/MrlToolbar/MrlToolbar.js +17 -8
- package/dist/cjs/components/toolbar/MrlToolbar/MrlToolbar.js.map +1 -1
- package/dist/cjs/components/toolbar/MrlToolbarButton/MrlToolbarButton.js +7 -3
- package/dist/cjs/components/toolbar/MrlToolbarButton/MrlToolbarButton.js.map +1 -1
- package/dist/cjs/components/toolbar/MrlToolbarItem/MrlToolbarItem.js +1 -1
- package/dist/cjs/components/toolbar/MrlToolbarItem/MrlToolbarItem.js.map +1 -1
- package/dist/cjs/components/tooltip/MrlTooltip/MrlTooltip.js +37 -36
- package/dist/cjs/components/tooltip/MrlTooltip/MrlTooltip.js.map +1 -1
- package/dist/cjs/components/tooltip/MrlTooltipContent/MrlTooltipContent.js +13 -4
- package/dist/cjs/components/tooltip/MrlTooltipContent/MrlTooltipContent.js.map +1 -1
- package/dist/cjs/components/tooltip/useTooltipPosition/index.js +21 -19
- package/dist/cjs/components/tooltip/useTooltipPosition/index.js.map +1 -1
- package/dist/cjs/components/tooltip/useTooltipPosition/utilities.js +4 -4
- package/dist/cjs/components/tooltip/useTooltipPosition/utilities.js.map +1 -1
- package/dist/cjs/components/tooltip/utils.js +3 -3
- package/dist/cjs/components/tooltip/utils.js.map +1 -1
- package/dist/cjs/hooks/useAutoClose/useAutoClose.js +7 -6
- package/dist/cjs/hooks/useAutoClose/useAutoClose.js.map +1 -1
- package/dist/cjs/hooks/useBreakpoint/index.js +5 -5
- package/dist/cjs/hooks/useBreakpoint/index.js.map +1 -1
- package/dist/cjs/hooks/useClickOutside/index.js +4 -4
- package/dist/cjs/hooks/useClickOutside/index.js.map +1 -1
- package/dist/cjs/hooks/useCoordinate/index.js +19 -28
- package/dist/cjs/hooks/useCoordinate/index.js.map +1 -1
- package/dist/cjs/hooks/useElementDimensions/index.js +21 -33
- package/dist/cjs/hooks/useElementDimensions/index.js.map +1 -1
- package/dist/cjs/hooks/useHasFocusableDescendant/index.js +7 -8
- package/dist/cjs/hooks/useHasFocusableDescendant/index.js.map +1 -1
- package/dist/cjs/hooks/useScrollbarInfo/index.js +11 -10
- package/dist/cjs/hooks/useScrollbarInfo/index.js.map +1 -1
- package/dist/cjs/hooks/useTriggerPosition/index.js +20 -22
- package/dist/cjs/hooks/useTriggerPosition/index.js.map +1 -1
- package/dist/cjs/hooks/useTriggerPosition/utilities.js +15 -23
- package/dist/cjs/hooks/useTriggerPosition/utilities.js.map +1 -1
- package/dist/cjs/utils/checkInvalidAttributes/index.js +2 -4
- package/dist/cjs/utils/checkInvalidAttributes/index.js.map +1 -1
- package/dist/cjs/utils/frameDebounce/index.js +27 -28
- package/dist/cjs/utils/frameDebounce/index.js.map +1 -1
- package/dist/cjs/utils/getCamelCase/getCamelCase.js +2 -2
- package/dist/cjs/utils/getCamelCase/getCamelCase.js.map +1 -1
- package/dist/cjs/utils/getScrollableContainer/getScrollableContainer.js +1 -1
- package/dist/cjs/utils/getScrollableContainer/getScrollableContainer.js.map +1 -1
- package/dist/cjs/utils/hasHorizontalScroll/hasHorizontalScroll.js +1 -1
- package/dist/cjs/utils/hasHorizontalScroll/hasHorizontalScroll.js.map +1 -1
- package/dist/cjs/utils/hasScrollContent/hasScrollContent.js +1 -1
- package/dist/cjs/utils/hasScrollContent/hasScrollContent.js.map +1 -1
- package/dist/cjs/utils/isElementAriaDisabled/isElementAriaDisabled.js +1 -1
- package/dist/cjs/utils/isElementAriaDisabled/isElementAriaDisabled.js.map +1 -1
- package/dist/cjs/utils/isElementScrollable/index.js +1 -1
- package/dist/cjs/utils/isElementScrollable/index.js.map +1 -1
- package/dist/cjs/utils/isImagePath/index.js +4 -3
- package/dist/cjs/utils/isImagePath/index.js.map +1 -1
- package/dist/cjs/utils/isImageUri/index.js +1 -1
- package/dist/cjs/utils/isImageUri/index.js.map +1 -1
- package/dist/cjs/utils/isObject/isObject.js +1 -1
- package/dist/cjs/utils/isObject/isObject.js.map +1 -1
- package/dist/cjs/utils/isTouch/index.js +1 -1
- package/dist/cjs/utils/isTouch/index.js.map +1 -1
- package/dist/cjs/utils/layers/index.js +1 -1
- package/dist/cjs/utils/layers/index.js.map +1 -1
- package/dist/cjs/utils/noop/index.js +1 -1
- package/dist/cjs/utils/noop/index.js.map +1 -1
- package/dist/cjs/utils/preventDefault/preventDefault.js +1 -1
- package/dist/cjs/utils/preventDefault/preventDefault.js.map +1 -1
- package/dist/cjs/utils/setAttributes/setAttributes.js +11 -5
- package/dist/cjs/utils/setAttributes/setAttributes.js.map +1 -1
- package/dist/cjs/utils/trapFocus/index.js +9 -11
- package/dist/cjs/utils/trapFocus/index.js.map +1 -1
- package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +1 -234
- package/dist/esm/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/dist/esm/components/avatar/MrlAvatar/MrlAvatar.js +12 -10
- package/dist/esm/components/avatar/MrlAvatar/MrlAvatar.js.map +1 -1
- package/dist/esm/components/avatar/MrlAvatarButton/MrlAvatarButton.js +22 -24
- package/dist/esm/components/avatar/MrlAvatarButton/MrlAvatarButton.js.map +1 -1
- package/dist/esm/components/badge/MrlBadge/MrlBadge.js +6 -4
- package/dist/esm/components/badge/MrlBadge/MrlBadge.js.map +1 -1
- package/dist/esm/components/badge/MrlBadgeNotification/MrlBadgeNotification.js +7 -3
- package/dist/esm/components/badge/MrlBadgeNotification/MrlBadgeNotification.js.map +1 -1
- package/dist/esm/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js +7 -4
- package/dist/esm/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js.map +1 -1
- package/dist/esm/components/breadcrumb/MrlBreadcrumbs/MrlBreadcrumbs.js +18 -26
- package/dist/esm/components/breadcrumb/MrlBreadcrumbs/MrlBreadcrumbs.js.map +1 -1
- package/dist/esm/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js +14 -18
- package/dist/esm/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js.map +1 -1
- package/dist/esm/components/button/MrlButton/MrlButton.js +16 -20
- package/dist/esm/components/button/MrlButton/MrlButton.js.map +1 -1
- package/dist/esm/components/button/MrlIconButton/MrlIconButton.js +14 -20
- package/dist/esm/components/button/MrlIconButton/MrlIconButton.js.map +1 -1
- package/dist/esm/components/button/MrlProcessingButton/MrlProcessingButton.js +7 -7
- package/dist/esm/components/button/MrlProcessingButton/MrlProcessingButton.js.map +1 -1
- package/dist/esm/components/button/MrlProcessingButton/actions.js +12 -17
- package/dist/esm/components/button/MrlProcessingButton/actions.js.map +1 -1
- package/dist/esm/components/button/helpers.js +4 -6
- package/dist/esm/components/button/helpers.js.map +1 -1
- package/dist/esm/components/callout/MrlCallout/MrlCallout.js +5 -7
- package/dist/esm/components/callout/MrlCallout/MrlCallout.js.map +1 -1
- package/dist/esm/components/container/MrlContainer/MrlContainer.js +7 -4
- package/dist/esm/components/container/MrlContainer/MrlContainer.js.map +1 -1
- package/dist/esm/components/divider/MrlDivider/MrlDivider.js +13 -5
- package/dist/esm/components/divider/MrlDivider/MrlDivider.js.map +1 -1
- package/dist/esm/components/empty/default/MrlEmpty.js +1 -1
- package/dist/esm/components/empty/default/MrlEmpty.js.map +1 -1
- package/dist/esm/components/empty/large/MrlEmptyLarge.js +1 -1
- package/dist/esm/components/empty/large/MrlEmptyLarge.js.map +1 -1
- package/dist/esm/components/error-boundary/MrlErrorBoundary.js +28 -37
- package/dist/esm/components/error-boundary/MrlErrorBoundary.js.map +1 -1
- package/dist/esm/components/filter/MrlFilterContext/MrlFilterContext.js +5 -5
- package/dist/esm/components/filter/MrlFilterContext/MrlFilterContext.js.map +1 -1
- package/dist/esm/components/filter/MrlFilterItem/MrlFilterItem.js +4 -2
- package/dist/esm/components/filter/MrlFilterItem/MrlFilterItem.js.map +1 -1
- package/dist/esm/components/focus-trap/MrlFocusTrap/MrlFocusTrap.js +3 -3
- package/dist/esm/components/focus-trap/MrlFocusTrap/MrlFocusTrap.js.map +1 -1
- package/dist/esm/components/form/checkbox/MrlCheckbox/MrlCheckbox.js +8 -3
- package/dist/esm/components/form/checkbox/MrlCheckbox/MrlCheckbox.js.map +1 -1
- package/dist/esm/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js +2 -2
- package/dist/esm/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js.map +1 -1
- package/dist/esm/components/form/date-picker/MrlDatePicker.js +15 -12
- package/dist/esm/components/form/date-picker/MrlDatePicker.js.map +1 -1
- package/dist/esm/components/form/fieldset/MrlFieldset/MrlFieldset.js +2 -2
- package/dist/esm/components/form/fieldset/MrlFieldset/MrlFieldset.js.map +1 -1
- package/dist/esm/components/form/hooks/useActiveColor.js +2 -2
- package/dist/esm/components/form/hooks/useActiveColor.js.map +1 -1
- package/dist/esm/components/form/hooks/useIsEditable.js +3 -3
- package/dist/esm/components/form/hooks/useIsEditable.js.map +1 -1
- package/dist/esm/components/form/label/MrlLabel/MrlLabel.js +6 -3
- package/dist/esm/components/form/label/MrlLabel/MrlLabel.js.map +1 -1
- package/dist/esm/components/form/label/MrlLabelWithDescription/MrlLabelWithDescription.js +14 -4
- package/dist/esm/components/form/label/MrlLabelWithDescription/MrlLabelWithDescription.js.map +1 -1
- package/dist/esm/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js +37 -30
- package/dist/esm/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js.map +1 -1
- package/dist/esm/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js +16 -11
- package/dist/esm/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js.map +1 -1
- package/dist/esm/components/form/legacy-select/MrlLegacySelectMenu/MrlLegacySelectMenu.js +14 -10
- package/dist/esm/components/form/legacy-select/MrlLegacySelectMenu/MrlLegacySelectMenu.js.map +1 -1
- package/dist/esm/components/form/legacy-select/context/SelectContext.js +5 -5
- package/dist/esm/components/form/legacy-select/context/SelectContext.js.map +1 -1
- package/dist/esm/components/form/legacy-select/index.js +1 -1
- package/dist/esm/components/form/legacy-select/index.js.map +1 -1
- package/dist/esm/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js +4 -2
- package/dist/esm/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js.map +1 -1
- package/dist/esm/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js +3 -5
- package/dist/esm/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js.map +1 -1
- package/dist/esm/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js +3 -5
- package/dist/esm/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js.map +1 -1
- package/dist/esm/components/form/select/MrlMultiSelect/MrlMultiSelect.js +2 -2
- package/dist/esm/components/form/select/MrlMultiSelect/MrlMultiSelect.js.map +1 -1
- package/dist/esm/components/form/select/MrlSelect/MrlSelect.js +2 -2
- package/dist/esm/components/form/select/MrlSelect/MrlSelect.js.map +1 -1
- package/dist/esm/components/form/select/components/MrlSelectMultiValue.js +4 -2
- package/dist/esm/components/form/select/components/MrlSelectMultiValue.js.map +1 -1
- package/dist/esm/components/form/select/styles/default.js +18 -18
- package/dist/esm/components/form/select/styles/default.js.map +1 -1
- package/dist/esm/components/form/select/styles/inline.js +2 -2
- package/dist/esm/components/form/select/styles/inline.js.map +1 -1
- package/dist/esm/components/form/select/styles/inlineNoLabel.js +3 -3
- package/dist/esm/components/form/select/styles/inlineNoLabel.js.map +1 -1
- package/dist/esm/components/form/select/styles/inlineStacked.js +2 -2
- package/dist/esm/components/form/select/styles/inlineStacked.js.map +1 -1
- package/dist/esm/components/form/switch/MrlSwitch/MrlSwitch.js +9 -6
- package/dist/esm/components/form/switch/MrlSwitch/MrlSwitch.js.map +1 -1
- package/dist/esm/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js +3 -3
- package/dist/esm/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js.map +1 -1
- package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js +25 -17
- package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js.map +1 -1
- package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInputRightIcon.js +8 -15
- package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInputRightIcon.js.map +1 -1
- package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInput.js +21 -20
- package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInput.js.map +1 -1
- package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInputRightIcon.js +8 -15
- package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInputRightIcon.js.map +1 -1
- package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js +15 -15
- package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js.map +1 -1
- package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.js +8 -15
- package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.js.map +1 -1
- package/dist/esm/components/form/textarea/MrlTextarea/MrlTextarea.js +9 -6
- package/dist/esm/components/form/textarea/MrlTextarea/MrlTextarea.js.map +1 -1
- package/dist/esm/components/form/utils.js +2 -4
- package/dist/esm/components/form/utils.js.map +1 -1
- package/dist/esm/components/grid/MrlCol/MrlCol.js +31 -44
- package/dist/esm/components/grid/MrlCol/MrlCol.js.map +1 -1
- package/dist/esm/components/layout/MrlMain/MrlMain.js +4 -2
- package/dist/esm/components/layout/MrlMain/MrlMain.js.map +1 -1
- package/dist/esm/components/layout/MrlPage/MrlPage.js +4 -2
- package/dist/esm/components/layout/MrlPage/MrlPage.js.map +1 -1
- package/dist/esm/components/layout/MrlSidebar/MrlSidebar.js +19 -11
- package/dist/esm/components/layout/MrlSidebar/MrlSidebar.js.map +1 -1
- package/dist/esm/components/layout/MrlTopbar/MrlTopbar.js +5 -2
- package/dist/esm/components/layout/MrlTopbar/MrlTopbar.js.map +1 -1
- package/dist/esm/components/layout/context/LayoutContext.js +4 -4
- package/dist/esm/components/layout/context/LayoutContext.js.map +1 -1
- package/dist/esm/components/layout/error-page/MrlBrandColors/MrlBrandColors.js +1 -1
- package/dist/esm/components/layout/error-page/MrlBrandColors/MrlBrandColors.js.map +1 -1
- package/dist/esm/components/layout/error-page/MrlErrorPage/MrlErrorPage.js +1 -1
- package/dist/esm/components/layout/error-page/MrlErrorPage/MrlErrorPage.js.map +1 -1
- package/dist/esm/components/layout/utils.js +2 -2
- package/dist/esm/components/layout/utils.js.map +1 -1
- package/dist/esm/components/link/MrlLink/MrlLink.js +8 -3
- package/dist/esm/components/link/MrlLink/MrlLink.js.map +1 -1
- package/dist/esm/components/link/MrlLinkButton/MrlLinkButton.js +9 -11
- package/dist/esm/components/link/MrlLinkButton/MrlLinkButton.js.map +1 -1
- package/dist/esm/components/live-region/MrlLiveRegion/MrlLiveRegion.js +5 -9
- package/dist/esm/components/live-region/MrlLiveRegion/MrlLiveRegion.js.map +1 -1
- package/dist/esm/components/loader/MrlProgressBar/MrlProgressBar.js +9 -3
- package/dist/esm/components/loader/MrlProgressBar/MrlProgressBar.js.map +1 -1
- package/dist/esm/components/loader/MrlSpinner/MrlSpinner.js +11 -3
- package/dist/esm/components/loader/MrlSpinner/MrlSpinner.js.map +1 -1
- package/dist/esm/components/menu/MrlMenu/MrlMenu.js +56 -62
- package/dist/esm/components/menu/MrlMenu/MrlMenu.js.map +1 -1
- package/dist/esm/components/menu/MrlMenu/utilities.js +4 -6
- package/dist/esm/components/menu/MrlMenu/utilities.js.map +1 -1
- package/dist/esm/components/menu/MrlMenuGroup/MrlMenuGroup.js +1 -1
- package/dist/esm/components/menu/MrlMenuGroup/MrlMenuGroup.js.map +1 -1
- package/dist/esm/components/menu/MrlMenuItem/MrlMenuItem.js +18 -17
- package/dist/esm/components/menu/MrlMenuItem/MrlMenuItem.js.map +1 -1
- package/dist/esm/components/menu/MrlMenuItemLink/MrlMenuItemLink.js +2 -2
- package/dist/esm/components/menu/MrlMenuItemLink/MrlMenuItemLink.js.map +1 -1
- package/dist/esm/components/menu/hooks/useBrowserEdgeScroll.js +14 -14
- package/dist/esm/components/menu/hooks/useBrowserEdgeScroll.js.map +1 -1
- package/dist/esm/components/menu/hooks/useMenuScroll.js +8 -8
- package/dist/esm/components/menu/hooks/useMenuScroll.js.map +1 -1
- package/dist/esm/components/menu/hooks/useSubMenuElementPosition.js +3 -3
- package/dist/esm/components/menu/hooks/useSubMenuElementPosition.js.map +1 -1
- package/dist/esm/components/menu/utilities/flip-position.js +1 -1
- package/dist/esm/components/menu/utilities/flip-position.js.map +1 -1
- package/dist/esm/components/modal/MrlModal/MrlModal.js +22 -22
- package/dist/esm/components/modal/MrlModal/MrlModal.js.map +1 -1
- package/dist/esm/components/modal/MrlModalContent/MrlModalContent.js +5 -5
- package/dist/esm/components/modal/MrlModalContent/MrlModalContent.js.map +1 -1
- package/dist/esm/components/modal/MrlModalContext/MrlModalContext.js +1 -1
- package/dist/esm/components/modal/MrlModalContext/MrlModalContext.js.map +1 -1
- package/dist/esm/components/modal/MrlModalFooter/MrlModalFooter.js +7 -4
- package/dist/esm/components/modal/MrlModalFooter/MrlModalFooter.js.map +1 -1
- package/dist/esm/components/modal/MrlModalHeader/MrlModalHeader.js +7 -5
- package/dist/esm/components/modal/MrlModalHeader/MrlModalHeader.js.map +1 -1
- package/dist/esm/components/navigation-sidebar/MrlSidebarNavItem/MrlSidebarNavItem.js +6 -2
- package/dist/esm/components/navigation-sidebar/MrlSidebarNavItem/MrlSidebarNavItem.js.map +1 -1
- package/dist/esm/components/notification/MrlBlockNotification/MrlBlockNotification.js +18 -15
- package/dist/esm/components/notification/MrlBlockNotification/MrlBlockNotification.js.map +1 -1
- package/dist/esm/components/notification/MrlInlineMessage/MrlInlineMessage.js +11 -5
- package/dist/esm/components/notification/MrlInlineMessage/MrlInlineMessage.js.map +1 -1
- package/dist/esm/components/notification/MrlToast/MrlToast.js +14 -9
- package/dist/esm/components/notification/MrlToast/MrlToast.js.map +1 -1
- package/dist/esm/components/panel/MrlPanel/MrlPanel.js +14 -10
- package/dist/esm/components/panel/MrlPanel/MrlPanel.js.map +1 -1
- package/dist/esm/components/panel/MrlPanelFooter/MrlPanelFooter.js +2 -2
- package/dist/esm/components/panel/MrlPanelFooter/MrlPanelFooter.js.map +1 -1
- package/dist/esm/components/panel/MrlPanelStickyHeader/MrlPanelStickyHeader.js +1 -1
- package/dist/esm/components/panel/MrlPanelStickyHeader/MrlPanelStickyHeader.js.map +1 -1
- package/dist/esm/components/popover/MrlPopover/MrlPopover.js +71 -71
- package/dist/esm/components/popover/MrlPopover/MrlPopover.js.map +1 -1
- package/dist/esm/components/popover/MrlPopover/hooks/use-mrl-popover-event-handlers.js +19 -21
- package/dist/esm/components/popover/MrlPopover/hooks/use-mrl-popover-event-handlers.js.map +1 -1
- package/dist/esm/components/popover/MrlPopover/utilities/get-data-point.js +1 -1
- package/dist/esm/components/popover/MrlPopover/utilities/get-data-point.js.map +1 -1
- package/dist/esm/components/popover/MrlPopover/utilities/get-offset.js +1 -1
- package/dist/esm/components/popover/MrlPopover/utilities/get-offset.js.map +1 -1
- package/dist/esm/components/portal/MrlPortal.js +2 -2
- package/dist/esm/components/portal/MrlPortal.js.map +1 -1
- package/dist/esm/components/rovingTabindex/MrlRovingTabindex/MrlRovingTabindex.js +235 -262
- package/dist/esm/components/rovingTabindex/MrlRovingTabindex/MrlRovingTabindex.js.map +1 -1
- package/dist/esm/components/skeleton/MrlSkeleton/MrlSkeleton.js +6 -4
- package/dist/esm/components/skeleton/MrlSkeleton/MrlSkeleton.js.map +1 -1
- package/dist/esm/components/skeleton/MrlSkeletonText/MrlSkeletonText.js +7 -5
- package/dist/esm/components/skeleton/MrlSkeletonText/MrlSkeletonText.js.map +1 -1
- package/dist/esm/components/svg/MrlSvg/MrlSvg.js +7 -11
- package/dist/esm/components/svg/MrlSvg/MrlSvg.js.map +1 -1
- package/dist/esm/components/svg/MrlSvgAnimate/MrlSvgAnimate.js +8 -8
- package/dist/esm/components/svg/MrlSvgAnimate/MrlSvgAnimate.js.map +1 -1
- package/dist/esm/components/table/MrlSmartTable/MrlSmartTable.js +71 -94
- package/dist/esm/components/table/MrlSmartTable/MrlSmartTable.js.map +1 -1
- package/dist/esm/components/table/MrlSmartTable/components/DefaultCellContent.js +2 -2
- package/dist/esm/components/table/MrlSmartTable/components/DefaultCellContent.js.map +1 -1
- package/dist/esm/components/table/MrlTableCell/MrlTableCell.js +7 -2
- package/dist/esm/components/table/MrlTableCell/MrlTableCell.js.map +1 -1
- package/dist/esm/components/table/MrlTableColumn/MrlTableColumn.js +8 -2
- package/dist/esm/components/table/MrlTableColumn/MrlTableColumn.js.map +1 -1
- package/dist/esm/components/table/MrlTableRow/MrlTableRow.js +7 -5
- package/dist/esm/components/table/MrlTableRow/MrlTableRow.js.map +1 -1
- package/dist/esm/components/table/utils.js +4 -10
- package/dist/esm/components/table/utils.js.map +1 -1
- package/dist/esm/components/tabs/MrlTab/MrlTab.js +11 -8
- package/dist/esm/components/tabs/MrlTab/MrlTab.js.map +1 -1
- package/dist/esm/components/tabs/MrlTabContent/MrlTabContent.js +7 -4
- package/dist/esm/components/tabs/MrlTabContent/MrlTabContent.js.map +1 -1
- package/dist/esm/components/tabs/MrlTabGroup/MrlTabGroup.js +8 -10
- package/dist/esm/components/tabs/MrlTabGroup/MrlTabGroup.js.map +1 -1
- package/dist/esm/components/tabs/MrlTabLink/MrlTabLink.js +11 -8
- package/dist/esm/components/tabs/MrlTabLink/MrlTabLink.js.map +1 -1
- package/dist/esm/components/tabs/MrlTabs/MrlTabs.js +11 -9
- package/dist/esm/components/tabs/MrlTabs/MrlTabs.js.map +1 -1
- package/dist/esm/components/text/MrlText/MrlText.js +8 -3
- package/dist/esm/components/text/MrlText/MrlText.js.map +1 -1
- package/dist/esm/components/text/MrlTextHeading/MrlTextHeading.js +9 -3
- package/dist/esm/components/text/MrlTextHeading/MrlTextHeading.js.map +1 -1
- package/dist/esm/components/toolbar/MrlToolbar/MrlToolbar.js +12 -7
- package/dist/esm/components/toolbar/MrlToolbar/MrlToolbar.js.map +1 -1
- package/dist/esm/components/toolbar/MrlToolbarItem/MrlToolbarItem.js +1 -1
- package/dist/esm/components/toolbar/MrlToolbarItem/MrlToolbarItem.js.map +1 -1
- package/dist/esm/components/tooltip/MrlTooltip/MrlTooltip.js +31 -34
- package/dist/esm/components/tooltip/MrlTooltip/MrlTooltip.js.map +1 -1
- package/dist/esm/components/tooltip/MrlTooltipContent/MrlTooltipContent.js +8 -3
- package/dist/esm/components/tooltip/MrlTooltipContent/MrlTooltipContent.js.map +1 -1
- package/dist/esm/components/tooltip/useTooltipPosition/index.js +15 -17
- package/dist/esm/components/tooltip/useTooltipPosition/index.js.map +1 -1
- package/dist/esm/components/tooltip/useTooltipPosition/utilities.js +4 -4
- package/dist/esm/components/tooltip/useTooltipPosition/utilities.js.map +1 -1
- package/dist/esm/components/tooltip/utils.js +3 -3
- package/dist/esm/components/tooltip/utils.js.map +1 -1
- package/dist/esm/hooks/useAutoClose/useAutoClose.js +4 -4
- package/dist/esm/hooks/useAutoClose/useAutoClose.js.map +1 -1
- package/dist/esm/hooks/useBreakpoint/index.js +5 -5
- package/dist/esm/hooks/useBreakpoint/index.js.map +1 -1
- package/dist/esm/hooks/useClickOutside/index.js +4 -4
- package/dist/esm/hooks/useClickOutside/index.js.map +1 -1
- package/dist/esm/hooks/useCoordinate/index.js +20 -29
- package/dist/esm/hooks/useCoordinate/index.js.map +1 -1
- package/dist/esm/hooks/useElementDimensions/index.js +19 -32
- package/dist/esm/hooks/useElementDimensions/index.js.map +1 -1
- package/dist/esm/hooks/useHasFocusableDescendant/index.js +4 -6
- package/dist/esm/hooks/useHasFocusableDescendant/index.js.map +1 -1
- package/dist/esm/hooks/useScrollbarInfo/index.js +8 -8
- package/dist/esm/hooks/useScrollbarInfo/index.js.map +1 -1
- package/dist/esm/hooks/useTriggerPosition/index.js +14 -20
- package/dist/esm/hooks/useTriggerPosition/index.js.map +1 -1
- package/dist/esm/hooks/useTriggerPosition/utilities.js +15 -23
- package/dist/esm/hooks/useTriggerPosition/utilities.js.map +1 -1
- package/dist/esm/utils/checkInvalidAttributes/index.js +2 -4
- package/dist/esm/utils/checkInvalidAttributes/index.js.map +1 -1
- package/dist/esm/utils/frameDebounce/index.js +28 -29
- package/dist/esm/utils/frameDebounce/index.js.map +1 -1
- package/dist/esm/utils/getCamelCase/getCamelCase.js +2 -2
- package/dist/esm/utils/getCamelCase/getCamelCase.js.map +1 -1
- package/dist/esm/utils/getScrollableContainer/getScrollableContainer.js +1 -1
- package/dist/esm/utils/getScrollableContainer/getScrollableContainer.js.map +1 -1
- package/dist/esm/utils/hasHorizontalScroll/hasHorizontalScroll.js +1 -1
- package/dist/esm/utils/hasHorizontalScroll/hasHorizontalScroll.js.map +1 -1
- package/dist/esm/utils/hasScrollContent/hasScrollContent.js +1 -1
- package/dist/esm/utils/hasScrollContent/hasScrollContent.js.map +1 -1
- package/dist/esm/utils/isElementAriaDisabled/isElementAriaDisabled.js +1 -1
- package/dist/esm/utils/isElementAriaDisabled/isElementAriaDisabled.js.map +1 -1
- package/dist/esm/utils/isElementScrollable/index.js +1 -1
- package/dist/esm/utils/isElementScrollable/index.js.map +1 -1
- package/dist/esm/utils/isImagePath/index.js +1 -1
- package/dist/esm/utils/isImagePath/index.js.map +1 -1
- package/dist/esm/utils/isImageUri/index.js +1 -1
- package/dist/esm/utils/isImageUri/index.js.map +1 -1
- package/dist/esm/utils/isObject/isObject.js +1 -1
- package/dist/esm/utils/isObject/isObject.js.map +1 -1
- package/dist/esm/utils/isTouch/index.js +1 -1
- package/dist/esm/utils/isTouch/index.js.map +1 -1
- package/dist/esm/utils/layers/index.js +1 -1
- package/dist/esm/utils/layers/index.js.map +1 -1
- package/dist/esm/utils/noop/index.js +1 -1
- package/dist/esm/utils/noop/index.js.map +1 -1
- package/dist/esm/utils/preventDefault/preventDefault.js +1 -1
- package/dist/esm/utils/preventDefault/preventDefault.js.map +1 -1
- package/dist/esm/utils/setAttributes/setAttributes.js +7 -5
- package/dist/esm/utils/setAttributes/setAttributes.js.map +1 -1
- package/dist/esm/utils/trapFocus/index.js +9 -11
- package/dist/esm/utils/trapFocus/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { objectWithoutProperties as _objectWithoutProperties,
|
|
1
|
+
import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import classnames from 'classnames';
|
|
4
4
|
import { spinnerDefaults } from '../constants.js';
|
|
@@ -26,8 +26,16 @@ function MrlSpinner(_ref) {
|
|
|
26
26
|
_ref$text = _ref.text,
|
|
27
27
|
text = _ref$text === void 0 ? spinnerDefaults.text : _ref$text,
|
|
28
28
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
29
|
-
var containerClasses = classnames(styles['MrlSpinner-container'], 'MrlSpinner-container',
|
|
30
|
-
|
|
29
|
+
var containerClasses = classnames(styles['MrlSpinner-container'], 'MrlSpinner-container', {
|
|
30
|
+
["".concat(className, "-container")]: className !== '',
|
|
31
|
+
[styles["MrlSpinner-container--".concat(size)]]: size !== spinnerDefaults.size,
|
|
32
|
+
[styles["MrlSpinner-container--logo"]]: logo !== spinnerDefaults.logo,
|
|
33
|
+
['MrlSpinner-container--logo']: logo !== spinnerDefaults.logo
|
|
34
|
+
});
|
|
35
|
+
var spinnerClasses = classnames(styles['MrlSpinner'], 'MrlSpinner', className, {
|
|
36
|
+
[styles["MrlSpinner--".concat(kind)]]: kind !== spinnerDefaults.kind,
|
|
37
|
+
[styles["MrlSpinner--".concat(size)]]: size !== spinnerDefaults.size
|
|
38
|
+
});
|
|
31
39
|
return /*#__PURE__*/React.createElement("span", _extends({}, rest, {
|
|
32
40
|
className: containerClasses,
|
|
33
41
|
role: role
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MrlSpinner.js","sources":["../../../../../src/components/loader/MrlSpinner/MrlSpinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { SpinnerComponent, spinnerDefaults } from '../constants';\n\nimport styles from './MrlSpinner.module.scss';\nimport '../../../styles/shared/a11y-helpers/a11y.global.scss';\n\n/**\n * MrlSpinner React component.\n *\n * @param props - component props\n * @returns a MrlSpinner React component.\n */\nexport function MrlSpinner({\n\tclassName = '',\n\tlogo = false,\n\tkind = spinnerDefaults.kind,\n\trole = spinnerDefaults.role,\n\tsize = spinnerDefaults.size,\n\ttext = spinnerDefaults.text,\n\t...rest\n}: SpinnerComponent): JSX.Element {\n\tconst containerClasses = classnames(styles['MrlSpinner-container'], 'MrlSpinner-container', {\n\t\t[`${className}-container`]: className !== '',\n\t\t[styles[`MrlSpinner-container--${size}`]]: size !== spinnerDefaults.size,\n\t\t[styles[`MrlSpinner-container--logo`]]: logo !== spinnerDefaults.logo,\n\t\t['MrlSpinner-container--logo']: logo !== spinnerDefaults.logo\n\t});\n\tconst spinnerClasses = classnames(styles['MrlSpinner'], 'MrlSpinner', className, {\n\t\t[styles[`MrlSpinner--${kind}`]]: kind !== spinnerDefaults.kind,\n\t\t[styles[`MrlSpinner--${size}`]]: size !== spinnerDefaults.size\n\t});\n\n\treturn (\n\t\t<span {...rest} className={containerClasses} role={role}>\n\t\t\t<span className={spinnerClasses} />\n\t\t\t{logo && (\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tviewBox=\"0 0 99 30\"\n\t\t\t\t\tdata-mrl-svg-name=\"brandWordmark\"\n\t\t\t\t\trole=\"presentation\"\n\t\t\t\t\tclassName={styles.MrlSpinnerLogo}\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfill=\"#00843F\"\n\t\t\t\t\t\td=\"M80.557 29.328c-5.36 0-9.722-4.577-9.722-10.194 0-5.617 4.361-10.194 9.722-10.194 5.36 0 9.721 4.577 9.721 10.194 0 5.617-4.374 10.194-9.721 10.194Zm.594-15.73c-2.836 0-5.131 2.484-5.131 5.522 0 3.052 2.309 5.523 5.13 5.523 2.823 0 5.132-2.484 5.132-5.523 0-3.038-2.31-5.522-5.131-5.522Z\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path fill=\"#000\" d=\"M35.836 9.21h-5.185v19.794h5.185V9.21Z\"></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfill=\"#FF4B4B\"\n\t\t\t\t\t\td=\"M11.234 29.004V9.21A3.028 3.028 0 0 0 8.21 6.185 3.02 3.02 0 0 0 5.185 9.21H0c0-4.524 3.686-8.197 8.21-8.197 4.523 0 8.21 3.687 8.21 8.21v14.61h3.01V9.21c0-4.524 3.686-8.21 8.21-8.21 4.523 0 8.21 3.686 8.21 8.21h-5.186a3.028 3.028 0 0 0-3.024-3.025 3.028 3.028 0 0 0-3.025 3.025v19.794h-13.38Z\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfill=\"#000\"\n\t\t\t\t\t\td=\"M5.185 9.21H0v19.794h5.185V9.21Zm50.702 0h-5.185v11.166h5.185V9.21Z\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfill=\"#5887FF\"\n\t\t\t\t\t\td=\"M46.908 29.328c-4.942 0-8.966-4.023-8.966-8.965h5.185c0 2.08 1.702 3.78 3.781 3.78 2.08 0 3.78-1.7 3.78-3.78h5.186c0 4.942-4.024 8.965-8.966 8.965Z\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path fill=\"#000\" d=\"M43.141 9.21h-5.185v11.166h5.185V9.21Z\"></path>\n\t\t\t\t\t<path fill=\"#FC83FF\" d=\"M98.772 1.324h-5.185V9.21h5.185V1.324Z\"></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfill=\"#000\"\n\t\t\t\t\t\td=\"M91.467 9.21h-5.185v19.794h5.185V9.21Zm7.305 0h-5.185v19.794h5.185V9.21Zm-35.58 5.171h-5.185v14.61h5.185V14.38Z\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path fill=\"#FA0\" d=\"M70.767 9.21h-12.76v5.185h12.76V9.21Z\"></path>\n\t\t\t\t</svg>\n\t\t\t)}\n\t\t\t<span className=\"mrl-visually-hidden\">{text || spinnerDefaults.text}</span>\n\t\t</span>\n\t);\n}\n"],"names":["MrlSpinner","_ref","_ref$className","className","_ref$logo","logo","_ref$kind","kind","spinnerDefaults","_ref$role","role","_ref$size","size","_ref$text","text","rest","_objectWithoutProperties","_excluded","containerClasses","classnames","styles","
|
|
1
|
+
{"version":3,"file":"MrlSpinner.js","sources":["../../../../../src/components/loader/MrlSpinner/MrlSpinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { SpinnerComponent, spinnerDefaults } from '../constants';\n\nimport styles from './MrlSpinner.module.scss';\nimport '../../../styles/shared/a11y-helpers/a11y.global.scss';\n\n/**\n * MrlSpinner React component.\n *\n * @param props - component props\n * @returns a MrlSpinner React component.\n */\nexport function MrlSpinner({\n\tclassName = '',\n\tlogo = false,\n\tkind = spinnerDefaults.kind,\n\trole = spinnerDefaults.role,\n\tsize = spinnerDefaults.size,\n\ttext = spinnerDefaults.text,\n\t...rest\n}: SpinnerComponent): JSX.Element {\n\tconst containerClasses = classnames(styles['MrlSpinner-container'], 'MrlSpinner-container', {\n\t\t[`${className}-container`]: className !== '',\n\t\t[styles[`MrlSpinner-container--${size}`]]: size !== spinnerDefaults.size,\n\t\t[styles[`MrlSpinner-container--logo`]]: logo !== spinnerDefaults.logo,\n\t\t['MrlSpinner-container--logo']: logo !== spinnerDefaults.logo\n\t});\n\tconst spinnerClasses = classnames(styles['MrlSpinner'], 'MrlSpinner', className, {\n\t\t[styles[`MrlSpinner--${kind}`]]: kind !== spinnerDefaults.kind,\n\t\t[styles[`MrlSpinner--${size}`]]: size !== spinnerDefaults.size\n\t});\n\n\treturn (\n\t\t<span {...rest} className={containerClasses} role={role}>\n\t\t\t<span className={spinnerClasses} />\n\t\t\t{logo && (\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tviewBox=\"0 0 99 30\"\n\t\t\t\t\tdata-mrl-svg-name=\"brandWordmark\"\n\t\t\t\t\trole=\"presentation\"\n\t\t\t\t\tclassName={styles.MrlSpinnerLogo}\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfill=\"#00843F\"\n\t\t\t\t\t\td=\"M80.557 29.328c-5.36 0-9.722-4.577-9.722-10.194 0-5.617 4.361-10.194 9.722-10.194 5.36 0 9.721 4.577 9.721 10.194 0 5.617-4.374 10.194-9.721 10.194Zm.594-15.73c-2.836 0-5.131 2.484-5.131 5.522 0 3.052 2.309 5.523 5.13 5.523 2.823 0 5.132-2.484 5.132-5.523 0-3.038-2.31-5.522-5.131-5.522Z\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path fill=\"#000\" d=\"M35.836 9.21h-5.185v19.794h5.185V9.21Z\"></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfill=\"#FF4B4B\"\n\t\t\t\t\t\td=\"M11.234 29.004V9.21A3.028 3.028 0 0 0 8.21 6.185 3.02 3.02 0 0 0 5.185 9.21H0c0-4.524 3.686-8.197 8.21-8.197 4.523 0 8.21 3.687 8.21 8.21v14.61h3.01V9.21c0-4.524 3.686-8.21 8.21-8.21 4.523 0 8.21 3.686 8.21 8.21h-5.186a3.028 3.028 0 0 0-3.024-3.025 3.028 3.028 0 0 0-3.025 3.025v19.794h-13.38Z\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfill=\"#000\"\n\t\t\t\t\t\td=\"M5.185 9.21H0v19.794h5.185V9.21Zm50.702 0h-5.185v11.166h5.185V9.21Z\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfill=\"#5887FF\"\n\t\t\t\t\t\td=\"M46.908 29.328c-4.942 0-8.966-4.023-8.966-8.965h5.185c0 2.08 1.702 3.78 3.781 3.78 2.08 0 3.78-1.7 3.78-3.78h5.186c0 4.942-4.024 8.965-8.966 8.965Z\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path fill=\"#000\" d=\"M43.141 9.21h-5.185v11.166h5.185V9.21Z\"></path>\n\t\t\t\t\t<path fill=\"#FC83FF\" d=\"M98.772 1.324h-5.185V9.21h5.185V1.324Z\"></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfill=\"#000\"\n\t\t\t\t\t\td=\"M91.467 9.21h-5.185v19.794h5.185V9.21Zm7.305 0h-5.185v19.794h5.185V9.21Zm-35.58 5.171h-5.185v14.61h5.185V14.38Z\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path fill=\"#FA0\" d=\"M70.767 9.21h-12.76v5.185h12.76V9.21Z\"></path>\n\t\t\t\t</svg>\n\t\t\t)}\n\t\t\t<span className=\"mrl-visually-hidden\">{text || spinnerDefaults.text}</span>\n\t\t</span>\n\t);\n}\n"],"names":["MrlSpinner","_ref","_ref$className","className","_ref$logo","logo","_ref$kind","kind","spinnerDefaults","_ref$role","role","_ref$size","size","_ref$text","text","rest","_objectWithoutProperties","_excluded","containerClasses","classnames","styles","concat","spinnerClasses","React","createElement","_extends","xmlns","fill","viewBox","MrlSpinnerLogo","d"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray,
|
|
1
|
+
import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends, objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useTriggerPosition } from '../../../hooks/useTriggerPosition/index.js';
|
|
4
4
|
import { useClickOutside } from '../../../hooks/useClickOutside/index.js';
|
|
@@ -88,7 +88,7 @@ function MrlMenu(_ref) {
|
|
|
88
88
|
* Checks if the trigger element is disabled
|
|
89
89
|
* @returns {boolean} - true if the trigger element is disabled, false otherwise
|
|
90
90
|
*/
|
|
91
|
-
var isTriggerDisabled = React.useCallback(
|
|
91
|
+
var isTriggerDisabled = React.useCallback(() => {
|
|
92
92
|
return isElementAriaDisabled(triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current);
|
|
93
93
|
}, [triggerRef]);
|
|
94
94
|
|
|
@@ -96,37 +96,33 @@ function MrlMenu(_ref) {
|
|
|
96
96
|
* Sets up trigger event listeners to open and close the menu
|
|
97
97
|
* @param e - mouse event
|
|
98
98
|
*/
|
|
99
|
-
var toggleMenuTrigger = React.useCallback(
|
|
99
|
+
var toggleMenuTrigger = React.useCallback(e => {
|
|
100
100
|
if (isTriggerDisabled()) return;
|
|
101
101
|
if (triggerStopPropagation) {
|
|
102
102
|
preventDefault(e);
|
|
103
103
|
}
|
|
104
|
-
setState(
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
};
|
|
109
|
-
});
|
|
104
|
+
setState(prevState => ({
|
|
105
|
+
actionType: 'click',
|
|
106
|
+
isOpen: !prevState.isOpen
|
|
107
|
+
}));
|
|
110
108
|
}, [triggerStopPropagation, isTriggerDisabled]);
|
|
111
109
|
|
|
112
110
|
/**
|
|
113
111
|
* Used to display the menu when hovering over a menu item that has a submenu
|
|
114
112
|
*/
|
|
115
|
-
var showMenuHover = React.useCallback(
|
|
113
|
+
var showMenuHover = React.useCallback(() => {
|
|
116
114
|
setState({
|
|
117
115
|
actionType: 'click',
|
|
118
116
|
isOpen: true
|
|
119
117
|
});
|
|
120
118
|
}, []);
|
|
121
|
-
var showMenuTap = React.useCallback(
|
|
122
|
-
setState(
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
};
|
|
127
|
-
});
|
|
119
|
+
var showMenuTap = React.useCallback(() => {
|
|
120
|
+
setState(prevState => ({
|
|
121
|
+
actionType: 'click',
|
|
122
|
+
isOpen: !prevState.isOpen
|
|
123
|
+
}));
|
|
128
124
|
}, []);
|
|
129
|
-
var hideMenuHover = React.useCallback(
|
|
125
|
+
var hideMenuHover = React.useCallback(event => {
|
|
130
126
|
var relatedTarget = event.relatedTarget;
|
|
131
127
|
|
|
132
128
|
// If the related target is not a child of the menu, close the menu
|
|
@@ -142,8 +138,8 @@ function MrlMenu(_ref) {
|
|
|
142
138
|
/**
|
|
143
139
|
* Sets up trigger event listeners to open and close the menu with a keyboard
|
|
144
140
|
*/
|
|
145
|
-
var toggleMenuKey = React.useCallback(
|
|
146
|
-
var openMenu =
|
|
141
|
+
var toggleMenuKey = React.useCallback(e => {
|
|
142
|
+
var openMenu = () => {
|
|
147
143
|
if (isTriggerDisabled()) return;
|
|
148
144
|
setState({
|
|
149
145
|
actionType: e.key,
|
|
@@ -203,7 +199,7 @@ function MrlMenu(_ref) {
|
|
|
203
199
|
*/
|
|
204
200
|
var disableClickOutside = !state.isOpen || position === 'static';
|
|
205
201
|
useClickOutside(menuRef, triggerRef, clickOutsideEvent, closeMenu, disableClickOutside);
|
|
206
|
-
var handleMenuKeyUp =
|
|
202
|
+
var handleMenuKeyUp = e => {
|
|
207
203
|
var actions = ['ArrowUp', 'ArrowDown', 'ArrowRight', 'Enter', 'Escape', ' '];
|
|
208
204
|
if (actions.includes(e.key)) {
|
|
209
205
|
preventDefault(e);
|
|
@@ -214,11 +210,9 @@ function MrlMenu(_ref) {
|
|
|
214
210
|
* Focus management when someone is using a keyboard to navigate the menu
|
|
215
211
|
* @param e - keyboard event
|
|
216
212
|
*/
|
|
217
|
-
var handleMenuKey =
|
|
213
|
+
var handleMenuKey = e => {
|
|
218
214
|
var _menuItems$nextIndex, _menuItems$nextIndex2, _triggerRef$current;
|
|
219
|
-
var currentIndex = menuItems.findIndex(
|
|
220
|
-
return document.activeElement === item;
|
|
221
|
-
});
|
|
215
|
+
var currentIndex = menuItems.findIndex(item => document.activeElement === item);
|
|
222
216
|
var nextIndex;
|
|
223
217
|
if (state.isOpen) {
|
|
224
218
|
switch (e.key) {
|
|
@@ -269,13 +263,13 @@ function MrlMenu(_ref) {
|
|
|
269
263
|
* useEffect hooks to handle menu state changes
|
|
270
264
|
*/
|
|
271
265
|
|
|
272
|
-
React.useEffect(
|
|
266
|
+
React.useEffect(() => {
|
|
273
267
|
if (triggerRef !== null && triggerRef !== void 0 && triggerRef.current) {
|
|
274
268
|
triggerRef.current.setAttribute('aria-haspopup', 'menu');
|
|
275
269
|
}
|
|
276
270
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
277
271
|
}, []);
|
|
278
|
-
React.useEffect(
|
|
272
|
+
React.useEffect(() => {
|
|
279
273
|
if (position === 'static') {
|
|
280
274
|
setState({
|
|
281
275
|
actionType: 'click',
|
|
@@ -283,12 +277,12 @@ function MrlMenu(_ref) {
|
|
|
283
277
|
});
|
|
284
278
|
}
|
|
285
279
|
}, [position]);
|
|
286
|
-
React.useEffect(
|
|
280
|
+
React.useEffect(() => {
|
|
287
281
|
var _triggerRef$current2;
|
|
288
282
|
triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.setAttribute('aria-expanded', state.isOpen.toString());
|
|
289
283
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
290
284
|
}, [state.isOpen]);
|
|
291
|
-
React.useEffect(
|
|
285
|
+
React.useEffect(() => {
|
|
292
286
|
if (!isSubMenu && position !== 'static') setState({
|
|
293
287
|
actionType: actionState.actionType,
|
|
294
288
|
isOpen: actionState.isOpen
|
|
@@ -296,7 +290,7 @@ function MrlMenu(_ref) {
|
|
|
296
290
|
}, [actionState.isOpen, actionState.actionType, isSubMenu, position]);
|
|
297
291
|
|
|
298
292
|
// setup event handlers for mouse, keyboard, and scroll interactions
|
|
299
|
-
React.useEffect(
|
|
293
|
+
React.useEffect(() => {
|
|
300
294
|
var triggerElement = triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current;
|
|
301
295
|
var menuElement = menuRef === null || menuRef === void 0 ? void 0 : menuRef.current;
|
|
302
296
|
var menuItems = menuElement === null || menuElement === void 0 ? void 0 : menuElement.querySelectorAll(MENU_ITEM_SELECTOR);
|
|
@@ -321,24 +315,20 @@ function MrlMenu(_ref) {
|
|
|
321
315
|
if (closeOnScroll) {
|
|
322
316
|
scrollableParent = getScrollableParent(triggerElement);
|
|
323
317
|
if (scrollableParent) {
|
|
324
|
-
scrollableParent.addEventListener('scroll',
|
|
325
|
-
return closeMenu();
|
|
326
|
-
}, {
|
|
318
|
+
scrollableParent.addEventListener('scroll', () => closeMenu(), {
|
|
327
319
|
capture: true,
|
|
328
320
|
passive: true
|
|
329
321
|
});
|
|
330
322
|
}
|
|
331
323
|
}
|
|
332
|
-
return
|
|
324
|
+
return () => {
|
|
333
325
|
triggerElement.removeEventListener('mousedown', preventDefault);
|
|
334
326
|
if (!isSubMenu) triggerElement.removeEventListener('click', toggleMenuTrigger);
|
|
335
327
|
triggerElement.removeEventListener('keydown', toggleMenuKey);
|
|
336
328
|
if (menuItems) {
|
|
337
|
-
menuItems.forEach(
|
|
329
|
+
menuItems.forEach(item => {
|
|
338
330
|
if (!item.getAttribute('aria-haspopup')) {
|
|
339
|
-
item.removeEventListener('mousedown',
|
|
340
|
-
return closeMenu();
|
|
341
|
-
});
|
|
331
|
+
item.removeEventListener('mousedown', () => closeMenu());
|
|
342
332
|
}
|
|
343
333
|
});
|
|
344
334
|
}
|
|
@@ -354,9 +344,7 @@ function MrlMenu(_ref) {
|
|
|
354
344
|
}
|
|
355
345
|
}
|
|
356
346
|
if (closeOnScroll && scrollableParent) {
|
|
357
|
-
scrollableParent.removeEventListener('scroll',
|
|
358
|
-
return closeMenu();
|
|
359
|
-
});
|
|
347
|
+
scrollableParent.removeEventListener('scroll', () => closeMenu());
|
|
360
348
|
}
|
|
361
349
|
};
|
|
362
350
|
}
|
|
@@ -366,7 +354,7 @@ function MrlMenu(_ref) {
|
|
|
366
354
|
// - making sure that the menu component is aware of it's menu items
|
|
367
355
|
// - adding a class to the trigger element when the submenu is open for styling
|
|
368
356
|
// - storing the menu rect in state for positioning calculations
|
|
369
|
-
React.useEffect(
|
|
357
|
+
React.useEffect(() => {
|
|
370
358
|
if (state.isOpen) {
|
|
371
359
|
var _menuRef$current;
|
|
372
360
|
var foundMenuItems = Array.from(((_menuRef$current = menuRef.current) === null || _menuRef$current === void 0 ? void 0 : _menuRef$current.querySelectorAll(MENU_ITEM_SELECTOR)) || []);
|
|
@@ -395,7 +383,7 @@ function MrlMenu(_ref) {
|
|
|
395
383
|
/**
|
|
396
384
|
* Focus management for when the menu is opening or closing
|
|
397
385
|
*/
|
|
398
|
-
React.useEffect(
|
|
386
|
+
React.useEffect(() => {
|
|
399
387
|
var _menuItemToFocus, _menuItemToFocus2;
|
|
400
388
|
if (menuItems.length > 0) {
|
|
401
389
|
var menuItemToFocus;
|
|
@@ -413,7 +401,7 @@ function MrlMenu(_ref) {
|
|
|
413
401
|
// Scroll to the bottom of the menu when the last item is focused
|
|
414
402
|
// setTimeout is required to ensure the element has been rendered
|
|
415
403
|
// and the scrollHeight is accurate prior to scrolling
|
|
416
|
-
setTimeout(
|
|
404
|
+
setTimeout(() => {
|
|
417
405
|
if (listRef.current) {
|
|
418
406
|
listRef.current.scrollTo(0, listRef.current.scrollHeight);
|
|
419
407
|
}
|
|
@@ -505,27 +493,33 @@ function MrlMenu(_ref) {
|
|
|
505
493
|
}
|
|
506
494
|
};
|
|
507
495
|
var transitions = useTransition(state.isOpen, position === 'static' ? transitionStatic : transitionConfig);
|
|
508
|
-
var menuClasses = classnames(styles$1['MrlMenu'], 'MrlMenu',
|
|
496
|
+
var menuClasses = classnames(styles$1['MrlMenu'], 'MrlMenu', {
|
|
497
|
+
[styles$1['MrlMenu--submenu']]: isSubMenu,
|
|
498
|
+
[styles$1.open]: state.isOpen,
|
|
499
|
+
[styles$1['MrlMenu--compact']]: spacing === 'compact',
|
|
500
|
+
[styles$1['MrlMenu--static']]: position === 'static',
|
|
501
|
+
[styles$1['MrlMenu--internal']]: isInternal,
|
|
502
|
+
[styles$1['MrlMenu--scrolling']]: menuScroll.isScrolling,
|
|
503
|
+
[styles$1['MrlMenu--ignore']]: position === 'ignore'
|
|
504
|
+
});
|
|
509
505
|
var positionStyles = isSubMenu ? inlineStyles.submenu : position !== 'static' ? inlineStyles.menu : {};
|
|
510
506
|
var menuScrollStyles = menuScroll.maxHeight !== undefined && {
|
|
511
507
|
maxHeight: menuScroll.maxHeight
|
|
512
508
|
} || undefined;
|
|
513
|
-
var renderMenu =
|
|
514
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, transitions(
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
}, children));
|
|
528
|
-
}));
|
|
509
|
+
var renderMenu = () => {
|
|
510
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, transitions((style, item) => item && /*#__PURE__*/React.createElement(animated.div, _extends({
|
|
511
|
+
className: menuClasses,
|
|
512
|
+
id: id,
|
|
513
|
+
style: _objectSpread2(_objectSpread2({}, positionStyles), style),
|
|
514
|
+
onKeyUp: handleMenuKeyUp,
|
|
515
|
+
onKeyDown: handleMenuKey,
|
|
516
|
+
ref: menuRef,
|
|
517
|
+
role: "none"
|
|
518
|
+
}, remainingProps), /*#__PURE__*/React.createElement("ul", {
|
|
519
|
+
ref: listRef,
|
|
520
|
+
role: "menu",
|
|
521
|
+
style: menuScrollStyles
|
|
522
|
+
}, children))));
|
|
529
523
|
};
|
|
530
524
|
|
|
531
525
|
// For managing and restoring focus to the original menu trigger
|
|
@@ -534,7 +528,7 @@ function MrlMenu(_ref) {
|
|
|
534
528
|
var contextTriggerRef = isSubMenu ? parentContext === null || parentContext === void 0 ? void 0 : parentContext.triggerRef : triggerRef;
|
|
535
529
|
return /*#__PURE__*/React.createElement(MrlMenuContext.Provider, {
|
|
536
530
|
value: {
|
|
537
|
-
closeMenu
|
|
531
|
+
closeMenu,
|
|
538
532
|
closeParent: !isSubMenu ? closeMenu : undefined,
|
|
539
533
|
triggerRef: contextTriggerRef
|
|
540
534
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MrlMenu.js","sources":["../../../../../src/components/menu/MrlMenu/MrlMenu.tsx"],"sourcesContent":["import * as React from 'react';\nimport { MrlPortal, PortalProps } from '../../../components';\nimport { useTriggerPosition } from '../../../hooks/useTriggerPosition';\nimport { useClickOutside } from '../../../hooks/useClickOutside';\nimport { useSubMenuElementPosition } from '../hooks/useSubMenuElementPosition';\nimport {\n\tMenuPosition,\n\tMenuAlignment,\n\tActionState,\n\tActionType,\n\tCustomMenuPosition\n} from '../constants';\nimport { PORTAL_LAYERS } from '../../../utils/layers';\nimport {\n\tfindAdjacentInteractiveElement,\n\tpreventDefault,\n\tisElementAriaDisabled\n} from '../../../utils';\nimport classnames from 'classnames';\nimport { MrlMenuContext } from '../context/MrlMenuContext';\nimport styles from './MrlMenu.module.scss';\nimport itemStyles from '../MrlMenuItem/MrlMenuItem.module.scss';\nimport { useTransition, animated } from '@react-spring/web';\nimport { isTouchDevice } from '../../../utils/isTouch';\nimport { getScrollableParent } from '../utilities/get-scrollable-parent';\nimport { useMenuScroll } from '../hooks/useMenuScroll';\n\nexport interface MrlMenuProps {\n\t/** Custom position for the menu */\n\tcustomPosition?: CustomMenuPosition;\n\n\t/** Children to be rendered within the menu component*/\n\tchildren: React.ReactNode;\n\n\t/** Event to close the menu */\n\tclickOutsideEvent?: 'mousedown' | 'mouseup' | 'click';\n\n\t/**\n\t * Enables closing the menu when scrolling. Default is false.\n\t *\n\t */\n\tcloseOnScroll?: boolean;\n\n\t/**\n\t * Private closeParent prop for use with MrlMenuItem\n\t *\n\t * !!! Please do not use this prop directly, it is only used internally by MrlMenuItem !!!\n\t * @private\n\t */\n\tcloseParent?: () => void;\n\n\t/**\n\t * Disable arrows from opening the menu\n\t * - This is useful when you want to disable the default browser behavior of opening a menu on arrow down.\n\t *\n\t * Example usage: the menu is within a vertical toolbar and you want to use the arrow keys to navigate the toolbar.\n\t * By using this prop you can disable the arrow key open/close so that navigating the toolbar does not conflict\n\t * with opening/closing the menu.\n\t */\n\tdisableArrowOpen?: boolean;\n\n\t/**\n\t * Disable flipping of the menu when it goes off the screen\n\t * @default false\n\t */\n\tdisableFlipping?: boolean;\n\n\t/** Unique identifier for the menu */\n\tid?: string;\n\n\t/**\n\t * Use when the menu is embedded within another component\n\t * Removes the following styles:\n\t * - padding on the menu\n\t * - drop shadow and border\n\t * @default false\n\t */\n\tisInternal?: boolean;\n\n\t/**\n\t * Private isSubMenu prop for use with MrlMenuItem\n\t *\n\t * !!! Please do not use this prop directly, it is only used internally by MrlMenuItem !!!\n\t * @private\n\t */\n\tisSubMenu?: boolean;\n\n\t/**\n\t * spacing of menu\n\t * - compact has less padding\n\t * @default 'default'\n\t */\n\tspacing?: 'default' | 'compact';\n\n\t/**\n\t * Offset of the menu from the trigger element in pixels\n\t * @default 10px\n\t */\n\tmenuOffset?: number;\n\n\t/**\n\t * Configuration for the portal component\n\t */\n\tportalProps?: Omit<PortalProps, 'children'>;\n\n\t/**\n\t * Horizontal and vertical alignment of the menu relative to the trigger element\n\t * - position 'left', 'right', 'top', 'bottom' position relative to the trigger\n\t * - position 'static' renders the menu in place, not using the portal\n\t * - position 'ignore' will not position the menu, allowing you to use the customPosition prop to position the element\n\t * @default 'bottom'\n\t */\n\tposition?: MenuPosition;\n\n\t/**\n\t * Set initial state of menu\n\t * @default { actionType: null, isOpen: false }\n\t */\n\tactionState?: ActionState;\n\n\t/**\n\t * Reference to the DOM element that triggers this menu.\n\t */\n\ttriggerRef?: React.RefObject<HTMLButtonElement>;\n\n\t/**\n\t * Trigger stop propagation on click\n\t *\n\t * In some instances we may want the trigger element to stop propogation to the\n\t * rest of the DOM. Use this flag to enable and disable it.\n\t * @default false\n\t */\n\ttriggerStopPropagation?: boolean;\n\n\t/**\n\t * Vertical and horizontal alignment of the menu relative to the position of the menu with the trigger\n\t * - 'left' and 'right' work with position 'top' and 'bottom'\n\t * - 'top' and 'bottom' work with position 'left' and 'right'\n\t * - 'center' works with all positions\n\t *\n\t * This does not impact submenus\n\t */\n\talignment?: MenuAlignment;\n\n\t/**\n\t * Callback to be called when the menu is closed\n\t * @param type - type of close event\n\t */\n\tonClose?: (type?: string) => void;\n}\n\nconst MENU_ITEM_SELECTOR = '[role=\"menuitem\"], [role=\"menuitemcheckbox\"], [role=\"menuitemradio\"]';\n\n/**\n * MrlMenu component\n *\n * Renders a menu component with alignment relative to a trigger element\n * @param {MrlMenuProps} props - The props for the MrlMenu component\n * @returns {Element} - rendered MrlMenu component\n */\nexport function MrlMenu({\n\tactionState = { actionType: null, isOpen: false },\n\talignment = 'center',\n\tchildren,\n\tcloseOnScroll = false,\n\tcloseParent,\n\tcustomPosition,\n\tclickOutsideEvent = 'mouseup',\n\tdisableArrowOpen,\n\tdisableFlipping = false,\n\tid,\n\tisInternal = false,\n\tisSubMenu = false,\n\tspacing = 'default',\n\tmenuOffset = 10,\n\tportalProps = { id: PORTAL_LAYERS.MENU.name },\n\tposition = 'bottom',\n\ttriggerStopPropagation = false,\n\tonClose,\n\ttriggerRef,\n\t...remainingProps\n}: MrlMenuProps): JSX.Element {\n\tconst defaultOpenState = position === 'static' || false;\n\n\tconst [state, setState] = React.useState({\n\t\tactionType: null,\n\t\tisOpen: defaultOpenState\n\t} as ActionState);\n\n\tconst menuRef = React.useRef<HTMLDivElement>(null);\n\tconst listRef = React.useRef<HTMLUListElement>(null);\n\tconst [menuItems, setMenuItems] = React.useState<HTMLButtonElement[]>([]);\n\tconst [menuRect, setMenuRect] = React.useState<DOMRect | null>(null);\n\n\t/**\n\t * Checks if the trigger element is disabled\n\t * @returns {boolean} - true if the trigger element is disabled, false otherwise\n\t */\n\tconst isTriggerDisabled = React.useCallback((): boolean => {\n\t\treturn isElementAriaDisabled(triggerRef?.current);\n\t}, [triggerRef]);\n\n\t/**\n\t * Sets up trigger event listeners to open and close the menu\n\t * @param e - mouse event\n\t */\n\tconst toggleMenuTrigger = React.useCallback(\n\t\t(e: MouseEvent) => {\n\t\t\tif (isTriggerDisabled()) return;\n\n\t\t\tif (triggerStopPropagation) {\n\t\t\t\tpreventDefault(e);\n\t\t\t}\n\n\t\t\tsetState((prevState) => ({ actionType: 'click', isOpen: !prevState.isOpen }));\n\t\t},\n\t\t[triggerStopPropagation, isTriggerDisabled]\n\t);\n\n\t/**\n\t * Used to display the menu when hovering over a menu item that has a submenu\n\t */\n\tconst showMenuHover = React.useCallback(() => {\n\t\tsetState({ actionType: 'click', isOpen: true });\n\t}, []);\n\n\tconst showMenuTap = React.useCallback(() => {\n\t\tsetState((prevState) => ({ actionType: 'click', isOpen: !prevState.isOpen }));\n\t}, []);\n\n\tconst hideMenuHover = React.useCallback(\n\t\t(event: MouseEvent) => {\n\t\t\tconst relatedTarget = event.relatedTarget as Node;\n\n\t\t\t// If the related target is not a child of the menu, close the menu\n\t\t\t// This prevents the menu from closing when hovering over a submenu item or trigger\n\t\t\tif (\n\t\t\t\ttriggerRef &&\n\t\t\t\tmenuRef.current &&\n\t\t\t\t!menuRef.current.contains(relatedTarget) &&\n\t\t\t\ttriggerRef.current &&\n\t\t\t\t!triggerRef.current.contains(relatedTarget)\n\t\t\t) {\n\t\t\t\tsetState({ actionType: null, isOpen: false });\n\t\t\t}\n\t\t},\n\t\t[triggerRef]\n\t);\n\n\t/**\n\t * Sets up trigger event listeners to open and close the menu with a keyboard\n\t */\n\tconst toggleMenuKey = React.useCallback(\n\t\t(e: KeyboardEvent) => {\n\t\t\tconst openMenu = () => {\n\t\t\t\tif (isTriggerDisabled()) return;\n\t\t\t\tsetState({ actionType: e.key as ActionType, isOpen: true });\n\t\t\t};\n\n\t\t\tif (!state.isOpen) {\n\t\t\t\tif (isSubMenu) {\n\t\t\t\t\tswitch (e.key) {\n\t\t\t\t\t\tcase 'ArrowRight':\n\t\t\t\t\t\tcase 'Enter':\n\t\t\t\t\t\tcase ' ':\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\topenMenu();\n\t\t\t\t\t}\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tswitch (e.key) {\n\t\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\t\tif (!disableArrowOpen && !isTriggerDisabled()) {\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\topenMenu();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Enter':\n\t\t\t\t\tcase ' ':\n\t\t\t\t\t\tif (isTriggerDisabled()) return;\n\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\topenMenu();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[state.isOpen, isTriggerDisabled, disableArrowOpen, isSubMenu]\n\t);\n\n\tconst closeMenu = React.useCallback(\n\t\t(shouldCloseParent = true) => {\n\t\t\tif (position === 'static') return;\n\n\t\t\t/**\n\t\t\t * What is closeParent?\n\t\t\t *\n\t\t\t * It is passed from the context provider to the MenuItem (which helps render our submenus)\n\t\t\t * When we render the submenu, we pass the closeMenu function as \"closeParent\" to the submenu.\n\t\t\t * This allows us to trigger closing the parent menu when the submenu is closed. And that's\n\t\t\t * what this call is for.\n\t\t\t */\n\t\t\tif (shouldCloseParent && closeParent) closeParent();\n\n\t\t\tsetState({ actionType: null, isOpen: false });\n\t\t\tonClose?.();\n\t\t},\n\t\t[position, closeParent, onClose]\n\t);\n\n\t/**\n\t * Click outside to dismiss the menu\n\t * @param e\n\t */\n\tconst disableClickOutside = !state.isOpen || position === 'static';\n\tuseClickOutside(menuRef, triggerRef, clickOutsideEvent, closeMenu, disableClickOutside);\n\n\tconst handleMenuKeyUp = (e: React.KeyboardEvent) => {\n\t\tconst actions: ActionType[] = ['ArrowUp', 'ArrowDown', 'ArrowRight', 'Enter', 'Escape', ' '];\n\n\t\tif (actions.includes(e.key as ActionType)) {\n\t\t\tpreventDefault(e);\n\t\t}\n\t};\n\n\t/**\n\t * Focus management when someone is using a keyboard to navigate the menu\n\t * @param e - keyboard event\n\t */\n\tconst handleMenuKey = (e: React.KeyboardEvent) => {\n\t\tconst currentIndex = menuItems.findIndex((item) => document.activeElement === item);\n\t\tlet nextIndex: number;\n\n\t\tif (state.isOpen) {\n\t\t\tswitch (e.key) {\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\tnextIndex = currentIndex < menuItems.length - 1 ? currentIndex + 1 : currentIndex;\n\t\t\t\t\tmenuItems[nextIndex]?.focus();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\tnextIndex = currentIndex > 0 ? currentIndex - 1 : 0;\n\t\t\t\t\tmenuItems[nextIndex]?.focus();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowRight':\n\t\t\t\tcase 'ArrowLeft':\n\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Escape':\n\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\ttriggerRef?.current?.focus();\n\t\t\t\t\tcloseMenu(false);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Tab':\n\t\t\t\t\tif (!isSubMenu && position !== 'static') {\n\t\t\t\t\t\tif (e.shiftKey) {\n\t\t\t\t\t\t\t// Handle shift + tab: move focus to the previous item\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\tif (triggerRef) {\n\t\t\t\t\t\t\t\tconst prevElement = findAdjacentInteractiveElement(triggerRef, 'previous');\n\t\t\t\t\t\t\t\tprevElement?.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Regular tab: close the menu or move to the next item\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\tif (triggerRef) {\n\t\t\t\t\t\t\t\tconst nextElement = findAdjacentInteractiveElement(triggerRef);\n\t\t\t\t\t\t\t\tnextElement?.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcloseMenu();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * useEffect hooks to handle menu state changes\n\t */\n\n\tReact.useEffect(() => {\n\t\tif (triggerRef?.current) {\n\t\t\ttriggerRef.current.setAttribute('aria-haspopup', 'menu');\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tif (position === 'static') {\n\t\t\tsetState({ actionType: 'click', isOpen: true });\n\t\t}\n\t}, [position]);\n\n\tReact.useEffect(() => {\n\t\ttriggerRef?.current?.setAttribute('aria-expanded', state.isOpen.toString());\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [state.isOpen]);\n\n\tReact.useEffect(() => {\n\t\tif (!isSubMenu && position !== 'static')\n\t\t\tsetState({ actionType: actionState.actionType, isOpen: actionState.isOpen });\n\t}, [actionState.isOpen, actionState.actionType, isSubMenu, position]);\n\n\t// setup event handlers for mouse, keyboard, and scroll interactions\n\tReact.useEffect(() => {\n\t\tconst triggerElement = triggerRef?.current;\n\t\tconst menuElement = menuRef?.current;\n\t\tconst menuItems = menuElement?.querySelectorAll(MENU_ITEM_SELECTOR);\n\n\t\tlet scrollableParent: HTMLElement | Window;\n\n\t\tif (triggerElement) {\n\t\t\ttriggerElement.addEventListener('mousedown', preventDefault);\n\t\t\tif (!isSubMenu) triggerElement.addEventListener('click', toggleMenuTrigger);\n\t\t\ttriggerElement.addEventListener('keydown', toggleMenuKey);\n\n\t\t\t// Setup event listeners for when the menu is a submenu\n\t\t\tif (isSubMenu) {\n\t\t\t\ttriggerElement.addEventListener('mouseover', showMenuHover);\n\t\t\t\ttriggerElement.addEventListener('mouseout', hideMenuHover);\n\n\t\t\t\tif (isTouchDevice()) {\n\t\t\t\t\ttriggerElement.addEventListener('touchend', showMenuTap);\n\t\t\t\t}\n\n\t\t\t\tif (menuElement) {\n\t\t\t\t\tmenuElement.addEventListener('mouseover', showMenuHover);\n\t\t\t\t\tmenuElement.addEventListener('mouseout', hideMenuHover);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (closeOnScroll) {\n\t\t\t\tscrollableParent = getScrollableParent(triggerElement);\n\t\t\t\tif (scrollableParent) {\n\t\t\t\t\tscrollableParent.addEventListener('scroll', () => closeMenu(), {\n\t\t\t\t\t\tcapture: true,\n\t\t\t\t\t\tpassive: true\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\ttriggerElement.removeEventListener('mousedown', preventDefault);\n\t\t\t\tif (!isSubMenu) triggerElement.removeEventListener('click', toggleMenuTrigger);\n\t\t\t\ttriggerElement.removeEventListener('keydown', toggleMenuKey);\n\n\t\t\t\tif (menuItems) {\n\t\t\t\t\tmenuItems.forEach((item: Element) => {\n\t\t\t\t\t\tif (!item.getAttribute('aria-haspopup')) {\n\t\t\t\t\t\t\titem.removeEventListener('mousedown', () => closeMenu());\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (isSubMenu) {\n\t\t\t\t\ttriggerElement.removeEventListener('mouseover', showMenuHover);\n\t\t\t\t\ttriggerElement.removeEventListener('mouseout', hideMenuHover);\n\n\t\t\t\t\tif (isTouchDevice()) {\n\t\t\t\t\t\ttriggerElement.removeEventListener('touchstart', showMenuHover);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (menuElement) {\n\t\t\t\t\t\tmenuElement.removeEventListener('mouseover', showMenuHover);\n\t\t\t\t\t\tmenuElement.removeEventListener('mouseout', hideMenuHover);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (closeOnScroll && scrollableParent) {\n\t\t\t\t\tscrollableParent.removeEventListener('scroll', () => closeMenu());\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}, [\n\t\tcloseOnScroll,\n\t\tisSubMenu,\n\t\ttriggerRef,\n\t\ttoggleMenuTrigger,\n\t\ttoggleMenuKey,\n\t\tshowMenuHover,\n\t\thideMenuHover,\n\t\tcloseMenu,\n\t\tshowMenuTap\n\t]);\n\n\t// This use effect handles a few things when we open the menu:\n\t// - making sure that the menu component is aware of it's menu items\n\t// - adding a class to the trigger element when the submenu is open for styling\n\t// - storing the menu rect in state for positioning calculations\n\tReact.useEffect(() => {\n\t\tif (state.isOpen) {\n\t\t\tconst foundMenuItems = Array.from(\n\t\t\t\tmenuRef.current?.querySelectorAll(MENU_ITEM_SELECTOR) || []\n\t\t\t) as HTMLButtonElement[];\n\n\t\t\tsetMenuItems(foundMenuItems);\n\t\t}\n\n\t\tif (state.isOpen && isSubMenu) {\n\t\t\ttriggerRef?.current?.classList.add(itemStyles['MrlMenuItem--item--submenuOpen']);\n\t\t} else if (!state.isOpen && isSubMenu) {\n\t\t\ttriggerRef?.current?.classList.remove(itemStyles['MrlMenuItem--item--submenuOpen']);\n\t\t}\n\n\t\t// For consistent submenu calculations, we are storing the menu rect in state\n\t\t// Anytime we need to use the menu rect, we want to make sure the values are based\n\t\t// on the original state of the menu for proper transformations\n\t\tif (!menuRect && menuRef.current) {\n\t\t\tconst newRect = menuRef.current?.getBoundingClientRect();\n\t\t\tsetMenuRect(newRect || null);\n\t\t}\n\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [state.isOpen, menuRect, isSubMenu]);\n\n\t/**\n\t * Focus management for when the menu is opening or closing\n\t */\n\tReact.useEffect(() => {\n\t\tif (menuItems.length > 0) {\n\t\t\tlet menuItemToFocus;\n\n\t\t\tswitch (state.actionType) {\n\t\t\t\tcase 'Enter':\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\tcase ' ':\n\t\t\t\t\tmenuItemToFocus = menuItems[0];\n\t\t\t\t\tmenuItemToFocus?.focus();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\tmenuItemToFocus = menuItems[menuItems.length - 1];\n\t\t\t\t\tmenuItemToFocus?.focus();\n\n\t\t\t\t\t// Scroll to the bottom of the menu when the last item is focused\n\t\t\t\t\t// setTimeout is required to ensure the element has been rendered\n\t\t\t\t\t// and the scrollHeight is accurate prior to scrolling\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (listRef.current) {\n\t\t\t\t\t\t\tlistRef.current.scrollTo(0, listRef.current.scrollHeight);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 20);\n\t\t\t}\n\n\t\t\tif (isSubMenu && state.actionType === 'ArrowRight') {\n\t\t\t\tmenuItemToFocus = menuItems[0];\n\t\t\t\tmenuItemToFocus?.focus();\n\t\t\t}\n\t\t}\n\t}, [isSubMenu, menuItems, state.actionType]);\n\n\t/**\n\t * Menu scroll behavior\n\t *\n\t * When the menu cannot fit in the preferred or flipped position,\n\t * this hook constrains the menu height and enables internal scrolling.\n\t * Called before useTriggerPosition so that isScrolling can disable flipping,\n\t * preventing the positioning hook from fighting the scroll constraint.\n\t */\n\tconst disableMenuScroll =\n\t\tisSubMenu || !state.isOpen || position === 'static' || position === 'ignore';\n\n\t/**\n\t * Sets overflow (scrolling) on menu when there is no space to display\n\t * the menu in the preferred or flipped position.\n\t */\n\tconst menuScroll = useMenuScroll(\n\t\ttriggerRef,\n\t\tlistRef,\n\t\tposition,\n\t\tmenuOffset,\n\t\tstate.isOpen,\n\t\tdisableMenuScroll\n\t);\n\n\t/**\n\t * Primary menu positioning, alignment, and transition styling\n\t *\n\t * This hook is only enabled if isSubMenu is FALSE\n\t */\n\tconst disableTriggerPosition = isSubMenu || !state.isOpen || position === 'static';\n\tconst menuPositionStyles = useTriggerPosition(\n\t\ttriggerRef,\n\t\tmenuRef,\n\t\t{\n\t\t\talign: alignment,\n\t\t\tcustomPosition: customPosition,\n\t\t\tposition: position\n\t\t},\n\t\tstate.isOpen,\n\t\tmenuOffset,\n\t\tdisableTriggerPosition,\n\t\tdisableFlipping || menuScroll.isScrolling\n\t);\n\n\t/**\n\t * Submenu positioning and alignment\n\t *\n\t * This hook is only enabled if isSubMenu is TRUE\n\t */\n\tconst subMenuPosition = useSubMenuElementPosition(\n\t\ttriggerRef,\n\t\tmenuRef,\n\t\tisSubMenu,\n\t\tstate.isOpen,\n\t\tmenuRect,\n\t\t// disable the subelement positioning if it's not a submenu\n\t\t!isSubMenu\n\t);\n\n\tconst inlineStyles = {\n\t\tmenu: {\n\t\t\tleft: menuPositionStyles.left,\n\t\t\tposition: 'fixed' as const,\n\t\t\ttop: menuPositionStyles.top\n\t\t},\n\t\tsubmenu: {\n\t\t\tleft: subMenuPosition.left,\n\t\t\ttop: subMenuPosition.top\n\t\t}\n\t};\n\n\t/**\n\t * React Spring transitions for the menu\n\t */\n\tconst transitionConfig = {\n\t\tconfig: { duration: state.isOpen ? 300 : 150 },\n\t\tenter: { opacity: 1, transform: 'translateY(0)' },\n\t\tfrom: { opacity: 0, transform: 'translateY(4px)' },\n\t\tleave: { opacity: 0, transform: 'translateY(4px)' }\n\t};\n\n\tconst transitionStatic = {\n\t\tconfig: { duration: 0 },\n\t\tenter: { opacity: 1, transform: 'translateY(0)' }\n\t};\n\n\tconst transitions = useTransition(\n\t\tstate.isOpen,\n\t\tposition === 'static' ? transitionStatic : transitionConfig\n\t);\n\n\tconst menuClasses = classnames(styles['MrlMenu'], 'MrlMenu', {\n\t\t[styles['MrlMenu--submenu']]: isSubMenu,\n\t\t[styles.open]: state.isOpen,\n\t\t[styles['MrlMenu--compact']]: spacing === 'compact',\n\t\t[styles['MrlMenu--static']]: position === 'static',\n\t\t[styles['MrlMenu--internal']]: isInternal,\n\t\t[styles['MrlMenu--scrolling']]: menuScroll.isScrolling,\n\t\t[styles['MrlMenu--ignore']]: position === 'ignore'\n\t});\n\n\tconst positionStyles = isSubMenu\n\t\t? inlineStyles.submenu\n\t\t: position !== 'static'\n\t\t\t? inlineStyles.menu\n\t\t\t: {};\n\n\tconst menuScrollStyles =\n\t\t(menuScroll.maxHeight !== undefined && { maxHeight: menuScroll.maxHeight }) || undefined;\n\n\tconst renderMenu = () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{transitions(\n\t\t\t\t\t(style, item) =>\n\t\t\t\t\t\titem && (\n\t\t\t\t\t\t\t<animated.div\n\t\t\t\t\t\t\t\tclassName={menuClasses}\n\t\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t\t\tstyle={{ ...positionStyles, ...style }}\n\t\t\t\t\t\t\t\tonKeyUp={handleMenuKeyUp}\n\t\t\t\t\t\t\t\tonKeyDown={handleMenuKey}\n\t\t\t\t\t\t\t\tref={menuRef}\n\t\t\t\t\t\t\t\trole=\"none\"\n\t\t\t\t\t\t\t\t{...remainingProps}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ul ref={listRef} role=\"menu\" style={menuScrollStyles}>\n\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</animated.div>\n\t\t\t\t\t\t)\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t};\n\n\t// For managing and restoring focus to the original menu trigger\n\t// Ensures the triggerRef in context is always the parent triggerRef\n\tconst parentContext = React.useContext(MrlMenuContext);\n\tconst contextTriggerRef = isSubMenu ? parentContext?.triggerRef : triggerRef;\n\n\treturn (\n\t\t<MrlMenuContext.Provider\n\t\t\tvalue={{\n\t\t\t\tcloseMenu,\n\t\t\t\tcloseParent: !isSubMenu ? closeMenu : undefined,\n\t\t\t\ttriggerRef: contextTriggerRef\n\t\t\t}}\n\t\t>\n\t\t\t{isSubMenu || position === 'static' ? (\n\t\t\t\trenderMenu()\n\t\t\t) : (\n\t\t\t\t<MrlPortal layer={portalProps.layer || PORTAL_LAYERS.MENU} {...portalProps}>\n\t\t\t\t\t{renderMenu()}\n\t\t\t\t</MrlPortal>\n\t\t\t)}\n\t\t</MrlMenuContext.Provider>\n\t);\n\t/* eslint-enable */\n}\n\nMrlMenu.componentType = 'Menu';\n"],"names":["MENU_ITEM_SELECTOR","MrlMenu","_ref","_ref$actionState","actionState","actionType","isOpen","_ref$alignment","alignment","children","_ref$closeOnScroll","closeOnScroll","closeParent","customPosition","_ref$clickOutsideEven","clickOutsideEvent","disableArrowOpen","_ref$disableFlipping","disableFlipping","id","_ref$isInternal","isInternal","_ref$isSubMenu","isSubMenu","_ref$spacing","spacing","_ref$menuOffset","menuOffset","_ref$portalProps","portalProps","PORTAL_LAYERS","MENU","name","_ref$position","position","_ref$triggerStopPropa","triggerStopPropagation","onClose","triggerRef","remainingProps","_objectWithoutProperties","_excluded","defaultOpenState","_React$useState","React","useState","_React$useState2","_slicedToArray","state","setState","menuRef","useRef","listRef","_React$useState3","_React$useState4","menuItems","setMenuItems","_React$useState5","_React$useState6","menuRect","setMenuRect","isTriggerDisabled","useCallback","isElementAriaDisabled","current","toggleMenuTrigger","e","preventDefault","prevState","showMenuHover","showMenuTap","hideMenuHover","event","relatedTarget","contains","toggleMenuKey","openMenu","key","closeMenu","shouldCloseParent","arguments","length","undefined","disableClickOutside","useClickOutside","handleMenuKeyUp","actions","includes","handleMenuKey","_menuItems$nextIndex","_menuItems$nextIndex2","_triggerRef$current","currentIndex","findIndex","item","document","activeElement","nextIndex","focus","shiftKey","prevElement","findAdjacentInteractiveElement","nextElement","useEffect","setAttribute","_triggerRef$current2","toString","triggerElement","menuElement","querySelectorAll","scrollableParent","addEventListener","isTouchDevice","getScrollableParent","capture","passive","removeEventListener","forEach","getAttribute","_menuRef$current","foundMenuItems","Array","from","_triggerRef$current3","classList","add","itemStyles","_triggerRef$current4","remove","_menuRef$current2","newRect","getBoundingClientRect","_menuItemToFocus","_menuItemToFocus2","menuItemToFocus","setTimeout","scrollTo","scrollHeight","_menuItemToFocus3","disableMenuScroll","menuScroll","useMenuScroll","disableTriggerPosition","menuPositionStyles","useTriggerPosition","align","isScrolling","subMenuPosition","useSubMenuElementPosition","inlineStyles","menu","left","top","submenu","transitionConfig","config","duration","enter","opacity","transform","leave","transitionStatic","transitions","useTransition","menuClasses","classnames","styles","_defineProperty","open","positionStyles","menuScrollStyles","maxHeight","renderMenu","createElement","Fragment","style","animated","div","_extends","className","_objectSpread","onKeyUp","onKeyDown","ref","role","parentContext","useContext","MrlMenuContext","contextTriggerRef","Provider","value","MrlPortal","layer","componentType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MrlMenu.js","sources":["../../../../../src/components/menu/MrlMenu/MrlMenu.tsx"],"sourcesContent":["import * as React from 'react';\nimport { MrlPortal, PortalProps } from '../../../components';\nimport { useTriggerPosition } from '../../../hooks/useTriggerPosition';\nimport { useClickOutside } from '../../../hooks/useClickOutside';\nimport { useSubMenuElementPosition } from '../hooks/useSubMenuElementPosition';\nimport {\n\tMenuPosition,\n\tMenuAlignment,\n\tActionState,\n\tActionType,\n\tCustomMenuPosition\n} from '../constants';\nimport { PORTAL_LAYERS } from '../../../utils/layers';\nimport {\n\tfindAdjacentInteractiveElement,\n\tpreventDefault,\n\tisElementAriaDisabled\n} from '../../../utils';\nimport classnames from 'classnames';\nimport { MrlMenuContext } from '../context/MrlMenuContext';\nimport styles from './MrlMenu.module.scss';\nimport itemStyles from '../MrlMenuItem/MrlMenuItem.module.scss';\nimport { useTransition, animated } from '@react-spring/web';\nimport { isTouchDevice } from '../../../utils/isTouch';\nimport { getScrollableParent } from '../utilities/get-scrollable-parent';\nimport { useMenuScroll } from '../hooks/useMenuScroll';\n\nexport interface MrlMenuProps {\n\t/** Custom position for the menu */\n\tcustomPosition?: CustomMenuPosition;\n\n\t/** Children to be rendered within the menu component*/\n\tchildren: React.ReactNode;\n\n\t/** Event to close the menu */\n\tclickOutsideEvent?: 'mousedown' | 'mouseup' | 'click';\n\n\t/**\n\t * Enables closing the menu when scrolling. Default is false.\n\t *\n\t */\n\tcloseOnScroll?: boolean;\n\n\t/**\n\t * Private closeParent prop for use with MrlMenuItem\n\t *\n\t * !!! Please do not use this prop directly, it is only used internally by MrlMenuItem !!!\n\t * @private\n\t */\n\tcloseParent?: () => void;\n\n\t/**\n\t * Disable arrows from opening the menu\n\t * - This is useful when you want to disable the default browser behavior of opening a menu on arrow down.\n\t *\n\t * Example usage: the menu is within a vertical toolbar and you want to use the arrow keys to navigate the toolbar.\n\t * By using this prop you can disable the arrow key open/close so that navigating the toolbar does not conflict\n\t * with opening/closing the menu.\n\t */\n\tdisableArrowOpen?: boolean;\n\n\t/**\n\t * Disable flipping of the menu when it goes off the screen\n\t * @default false\n\t */\n\tdisableFlipping?: boolean;\n\n\t/** Unique identifier for the menu */\n\tid?: string;\n\n\t/**\n\t * Use when the menu is embedded within another component\n\t * Removes the following styles:\n\t * - padding on the menu\n\t * - drop shadow and border\n\t * @default false\n\t */\n\tisInternal?: boolean;\n\n\t/**\n\t * Private isSubMenu prop for use with MrlMenuItem\n\t *\n\t * !!! Please do not use this prop directly, it is only used internally by MrlMenuItem !!!\n\t * @private\n\t */\n\tisSubMenu?: boolean;\n\n\t/**\n\t * spacing of menu\n\t * - compact has less padding\n\t * @default 'default'\n\t */\n\tspacing?: 'default' | 'compact';\n\n\t/**\n\t * Offset of the menu from the trigger element in pixels\n\t * @default 10px\n\t */\n\tmenuOffset?: number;\n\n\t/**\n\t * Configuration for the portal component\n\t */\n\tportalProps?: Omit<PortalProps, 'children'>;\n\n\t/**\n\t * Horizontal and vertical alignment of the menu relative to the trigger element\n\t * - position 'left', 'right', 'top', 'bottom' position relative to the trigger\n\t * - position 'static' renders the menu in place, not using the portal\n\t * - position 'ignore' will not position the menu, allowing you to use the customPosition prop to position the element\n\t * @default 'bottom'\n\t */\n\tposition?: MenuPosition;\n\n\t/**\n\t * Set initial state of menu\n\t * @default { actionType: null, isOpen: false }\n\t */\n\tactionState?: ActionState;\n\n\t/**\n\t * Reference to the DOM element that triggers this menu.\n\t */\n\ttriggerRef?: React.RefObject<HTMLButtonElement>;\n\n\t/**\n\t * Trigger stop propagation on click\n\t *\n\t * In some instances we may want the trigger element to stop propogation to the\n\t * rest of the DOM. Use this flag to enable and disable it.\n\t * @default false\n\t */\n\ttriggerStopPropagation?: boolean;\n\n\t/**\n\t * Vertical and horizontal alignment of the menu relative to the position of the menu with the trigger\n\t * - 'left' and 'right' work with position 'top' and 'bottom'\n\t * - 'top' and 'bottom' work with position 'left' and 'right'\n\t * - 'center' works with all positions\n\t *\n\t * This does not impact submenus\n\t */\n\talignment?: MenuAlignment;\n\n\t/**\n\t * Callback to be called when the menu is closed\n\t * @param type - type of close event\n\t */\n\tonClose?: (type?: string) => void;\n}\n\nconst MENU_ITEM_SELECTOR = '[role=\"menuitem\"], [role=\"menuitemcheckbox\"], [role=\"menuitemradio\"]';\n\n/**\n * MrlMenu component\n *\n * Renders a menu component with alignment relative to a trigger element\n * @param {MrlMenuProps} props - The props for the MrlMenu component\n * @returns {Element} - rendered MrlMenu component\n */\nexport function MrlMenu({\n\tactionState = { actionType: null, isOpen: false },\n\talignment = 'center',\n\tchildren,\n\tcloseOnScroll = false,\n\tcloseParent,\n\tcustomPosition,\n\tclickOutsideEvent = 'mouseup',\n\tdisableArrowOpen,\n\tdisableFlipping = false,\n\tid,\n\tisInternal = false,\n\tisSubMenu = false,\n\tspacing = 'default',\n\tmenuOffset = 10,\n\tportalProps = { id: PORTAL_LAYERS.MENU.name },\n\tposition = 'bottom',\n\ttriggerStopPropagation = false,\n\tonClose,\n\ttriggerRef,\n\t...remainingProps\n}: MrlMenuProps): JSX.Element {\n\tconst defaultOpenState = position === 'static' || false;\n\n\tconst [state, setState] = React.useState({\n\t\tactionType: null,\n\t\tisOpen: defaultOpenState\n\t} as ActionState);\n\n\tconst menuRef = React.useRef<HTMLDivElement>(null);\n\tconst listRef = React.useRef<HTMLUListElement>(null);\n\tconst [menuItems, setMenuItems] = React.useState<HTMLButtonElement[]>([]);\n\tconst [menuRect, setMenuRect] = React.useState<DOMRect | null>(null);\n\n\t/**\n\t * Checks if the trigger element is disabled\n\t * @returns {boolean} - true if the trigger element is disabled, false otherwise\n\t */\n\tconst isTriggerDisabled = React.useCallback((): boolean => {\n\t\treturn isElementAriaDisabled(triggerRef?.current);\n\t}, [triggerRef]);\n\n\t/**\n\t * Sets up trigger event listeners to open and close the menu\n\t * @param e - mouse event\n\t */\n\tconst toggleMenuTrigger = React.useCallback(\n\t\t(e: MouseEvent) => {\n\t\t\tif (isTriggerDisabled()) return;\n\n\t\t\tif (triggerStopPropagation) {\n\t\t\t\tpreventDefault(e);\n\t\t\t}\n\n\t\t\tsetState((prevState) => ({ actionType: 'click', isOpen: !prevState.isOpen }));\n\t\t},\n\t\t[triggerStopPropagation, isTriggerDisabled]\n\t);\n\n\t/**\n\t * Used to display the menu when hovering over a menu item that has a submenu\n\t */\n\tconst showMenuHover = React.useCallback(() => {\n\t\tsetState({ actionType: 'click', isOpen: true });\n\t}, []);\n\n\tconst showMenuTap = React.useCallback(() => {\n\t\tsetState((prevState) => ({ actionType: 'click', isOpen: !prevState.isOpen }));\n\t}, []);\n\n\tconst hideMenuHover = React.useCallback(\n\t\t(event: MouseEvent) => {\n\t\t\tconst relatedTarget = event.relatedTarget as Node;\n\n\t\t\t// If the related target is not a child of the menu, close the menu\n\t\t\t// This prevents the menu from closing when hovering over a submenu item or trigger\n\t\t\tif (\n\t\t\t\ttriggerRef &&\n\t\t\t\tmenuRef.current &&\n\t\t\t\t!menuRef.current.contains(relatedTarget) &&\n\t\t\t\ttriggerRef.current &&\n\t\t\t\t!triggerRef.current.contains(relatedTarget)\n\t\t\t) {\n\t\t\t\tsetState({ actionType: null, isOpen: false });\n\t\t\t}\n\t\t},\n\t\t[triggerRef]\n\t);\n\n\t/**\n\t * Sets up trigger event listeners to open and close the menu with a keyboard\n\t */\n\tconst toggleMenuKey = React.useCallback(\n\t\t(e: KeyboardEvent) => {\n\t\t\tconst openMenu = () => {\n\t\t\t\tif (isTriggerDisabled()) return;\n\t\t\t\tsetState({ actionType: e.key as ActionType, isOpen: true });\n\t\t\t};\n\n\t\t\tif (!state.isOpen) {\n\t\t\t\tif (isSubMenu) {\n\t\t\t\t\tswitch (e.key) {\n\t\t\t\t\t\tcase 'ArrowRight':\n\t\t\t\t\t\tcase 'Enter':\n\t\t\t\t\t\tcase ' ':\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\topenMenu();\n\t\t\t\t\t}\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tswitch (e.key) {\n\t\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\t\tif (!disableArrowOpen && !isTriggerDisabled()) {\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\topenMenu();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Enter':\n\t\t\t\t\tcase ' ':\n\t\t\t\t\t\tif (isTriggerDisabled()) return;\n\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\topenMenu();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[state.isOpen, isTriggerDisabled, disableArrowOpen, isSubMenu]\n\t);\n\n\tconst closeMenu = React.useCallback(\n\t\t(shouldCloseParent = true) => {\n\t\t\tif (position === 'static') return;\n\n\t\t\t/**\n\t\t\t * What is closeParent?\n\t\t\t *\n\t\t\t * It is passed from the context provider to the MenuItem (which helps render our submenus)\n\t\t\t * When we render the submenu, we pass the closeMenu function as \"closeParent\" to the submenu.\n\t\t\t * This allows us to trigger closing the parent menu when the submenu is closed. And that's\n\t\t\t * what this call is for.\n\t\t\t */\n\t\t\tif (shouldCloseParent && closeParent) closeParent();\n\n\t\t\tsetState({ actionType: null, isOpen: false });\n\t\t\tonClose?.();\n\t\t},\n\t\t[position, closeParent, onClose]\n\t);\n\n\t/**\n\t * Click outside to dismiss the menu\n\t * @param e\n\t */\n\tconst disableClickOutside = !state.isOpen || position === 'static';\n\tuseClickOutside(menuRef, triggerRef, clickOutsideEvent, closeMenu, disableClickOutside);\n\n\tconst handleMenuKeyUp = (e: React.KeyboardEvent) => {\n\t\tconst actions: ActionType[] = ['ArrowUp', 'ArrowDown', 'ArrowRight', 'Enter', 'Escape', ' '];\n\n\t\tif (actions.includes(e.key as ActionType)) {\n\t\t\tpreventDefault(e);\n\t\t}\n\t};\n\n\t/**\n\t * Focus management when someone is using a keyboard to navigate the menu\n\t * @param e - keyboard event\n\t */\n\tconst handleMenuKey = (e: React.KeyboardEvent) => {\n\t\tconst currentIndex = menuItems.findIndex((item) => document.activeElement === item);\n\t\tlet nextIndex: number;\n\n\t\tif (state.isOpen) {\n\t\t\tswitch (e.key) {\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\tnextIndex = currentIndex < menuItems.length - 1 ? currentIndex + 1 : currentIndex;\n\t\t\t\t\tmenuItems[nextIndex]?.focus();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\tnextIndex = currentIndex > 0 ? currentIndex - 1 : 0;\n\t\t\t\t\tmenuItems[nextIndex]?.focus();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowRight':\n\t\t\t\tcase 'ArrowLeft':\n\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Escape':\n\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\ttriggerRef?.current?.focus();\n\t\t\t\t\tcloseMenu(false);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Tab':\n\t\t\t\t\tif (!isSubMenu && position !== 'static') {\n\t\t\t\t\t\tif (e.shiftKey) {\n\t\t\t\t\t\t\t// Handle shift + tab: move focus to the previous item\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\tif (triggerRef) {\n\t\t\t\t\t\t\t\tconst prevElement = findAdjacentInteractiveElement(triggerRef, 'previous');\n\t\t\t\t\t\t\t\tprevElement?.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Regular tab: close the menu or move to the next item\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\tif (triggerRef) {\n\t\t\t\t\t\t\t\tconst nextElement = findAdjacentInteractiveElement(triggerRef);\n\t\t\t\t\t\t\t\tnextElement?.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcloseMenu();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * useEffect hooks to handle menu state changes\n\t */\n\n\tReact.useEffect(() => {\n\t\tif (triggerRef?.current) {\n\t\t\ttriggerRef.current.setAttribute('aria-haspopup', 'menu');\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tif (position === 'static') {\n\t\t\tsetState({ actionType: 'click', isOpen: true });\n\t\t}\n\t}, [position]);\n\n\tReact.useEffect(() => {\n\t\ttriggerRef?.current?.setAttribute('aria-expanded', state.isOpen.toString());\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [state.isOpen]);\n\n\tReact.useEffect(() => {\n\t\tif (!isSubMenu && position !== 'static')\n\t\t\tsetState({ actionType: actionState.actionType, isOpen: actionState.isOpen });\n\t}, [actionState.isOpen, actionState.actionType, isSubMenu, position]);\n\n\t// setup event handlers for mouse, keyboard, and scroll interactions\n\tReact.useEffect(() => {\n\t\tconst triggerElement = triggerRef?.current;\n\t\tconst menuElement = menuRef?.current;\n\t\tconst menuItems = menuElement?.querySelectorAll(MENU_ITEM_SELECTOR);\n\n\t\tlet scrollableParent: HTMLElement | Window;\n\n\t\tif (triggerElement) {\n\t\t\ttriggerElement.addEventListener('mousedown', preventDefault);\n\t\t\tif (!isSubMenu) triggerElement.addEventListener('click', toggleMenuTrigger);\n\t\t\ttriggerElement.addEventListener('keydown', toggleMenuKey);\n\n\t\t\t// Setup event listeners for when the menu is a submenu\n\t\t\tif (isSubMenu) {\n\t\t\t\ttriggerElement.addEventListener('mouseover', showMenuHover);\n\t\t\t\ttriggerElement.addEventListener('mouseout', hideMenuHover);\n\n\t\t\t\tif (isTouchDevice()) {\n\t\t\t\t\ttriggerElement.addEventListener('touchend', showMenuTap);\n\t\t\t\t}\n\n\t\t\t\tif (menuElement) {\n\t\t\t\t\tmenuElement.addEventListener('mouseover', showMenuHover);\n\t\t\t\t\tmenuElement.addEventListener('mouseout', hideMenuHover);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (closeOnScroll) {\n\t\t\t\tscrollableParent = getScrollableParent(triggerElement);\n\t\t\t\tif (scrollableParent) {\n\t\t\t\t\tscrollableParent.addEventListener('scroll', () => closeMenu(), {\n\t\t\t\t\t\tcapture: true,\n\t\t\t\t\t\tpassive: true\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\ttriggerElement.removeEventListener('mousedown', preventDefault);\n\t\t\t\tif (!isSubMenu) triggerElement.removeEventListener('click', toggleMenuTrigger);\n\t\t\t\ttriggerElement.removeEventListener('keydown', toggleMenuKey);\n\n\t\t\t\tif (menuItems) {\n\t\t\t\t\tmenuItems.forEach((item: Element) => {\n\t\t\t\t\t\tif (!item.getAttribute('aria-haspopup')) {\n\t\t\t\t\t\t\titem.removeEventListener('mousedown', () => closeMenu());\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (isSubMenu) {\n\t\t\t\t\ttriggerElement.removeEventListener('mouseover', showMenuHover);\n\t\t\t\t\ttriggerElement.removeEventListener('mouseout', hideMenuHover);\n\n\t\t\t\t\tif (isTouchDevice()) {\n\t\t\t\t\t\ttriggerElement.removeEventListener('touchstart', showMenuHover);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (menuElement) {\n\t\t\t\t\t\tmenuElement.removeEventListener('mouseover', showMenuHover);\n\t\t\t\t\t\tmenuElement.removeEventListener('mouseout', hideMenuHover);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (closeOnScroll && scrollableParent) {\n\t\t\t\t\tscrollableParent.removeEventListener('scroll', () => closeMenu());\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}, [\n\t\tcloseOnScroll,\n\t\tisSubMenu,\n\t\ttriggerRef,\n\t\ttoggleMenuTrigger,\n\t\ttoggleMenuKey,\n\t\tshowMenuHover,\n\t\thideMenuHover,\n\t\tcloseMenu,\n\t\tshowMenuTap\n\t]);\n\n\t// This use effect handles a few things when we open the menu:\n\t// - making sure that the menu component is aware of it's menu items\n\t// - adding a class to the trigger element when the submenu is open for styling\n\t// - storing the menu rect in state for positioning calculations\n\tReact.useEffect(() => {\n\t\tif (state.isOpen) {\n\t\t\tconst foundMenuItems = Array.from(\n\t\t\t\tmenuRef.current?.querySelectorAll(MENU_ITEM_SELECTOR) || []\n\t\t\t) as HTMLButtonElement[];\n\n\t\t\tsetMenuItems(foundMenuItems);\n\t\t}\n\n\t\tif (state.isOpen && isSubMenu) {\n\t\t\ttriggerRef?.current?.classList.add(itemStyles['MrlMenuItem--item--submenuOpen']);\n\t\t} else if (!state.isOpen && isSubMenu) {\n\t\t\ttriggerRef?.current?.classList.remove(itemStyles['MrlMenuItem--item--submenuOpen']);\n\t\t}\n\n\t\t// For consistent submenu calculations, we are storing the menu rect in state\n\t\t// Anytime we need to use the menu rect, we want to make sure the values are based\n\t\t// on the original state of the menu for proper transformations\n\t\tif (!menuRect && menuRef.current) {\n\t\t\tconst newRect = menuRef.current?.getBoundingClientRect();\n\t\t\tsetMenuRect(newRect || null);\n\t\t}\n\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [state.isOpen, menuRect, isSubMenu]);\n\n\t/**\n\t * Focus management for when the menu is opening or closing\n\t */\n\tReact.useEffect(() => {\n\t\tif (menuItems.length > 0) {\n\t\t\tlet menuItemToFocus;\n\n\t\t\tswitch (state.actionType) {\n\t\t\t\tcase 'Enter':\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\tcase ' ':\n\t\t\t\t\tmenuItemToFocus = menuItems[0];\n\t\t\t\t\tmenuItemToFocus?.focus();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\tmenuItemToFocus = menuItems[menuItems.length - 1];\n\t\t\t\t\tmenuItemToFocus?.focus();\n\n\t\t\t\t\t// Scroll to the bottom of the menu when the last item is focused\n\t\t\t\t\t// setTimeout is required to ensure the element has been rendered\n\t\t\t\t\t// and the scrollHeight is accurate prior to scrolling\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (listRef.current) {\n\t\t\t\t\t\t\tlistRef.current.scrollTo(0, listRef.current.scrollHeight);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 20);\n\t\t\t}\n\n\t\t\tif (isSubMenu && state.actionType === 'ArrowRight') {\n\t\t\t\tmenuItemToFocus = menuItems[0];\n\t\t\t\tmenuItemToFocus?.focus();\n\t\t\t}\n\t\t}\n\t}, [isSubMenu, menuItems, state.actionType]);\n\n\t/**\n\t * Menu scroll behavior\n\t *\n\t * When the menu cannot fit in the preferred or flipped position,\n\t * this hook constrains the menu height and enables internal scrolling.\n\t * Called before useTriggerPosition so that isScrolling can disable flipping,\n\t * preventing the positioning hook from fighting the scroll constraint.\n\t */\n\tconst disableMenuScroll =\n\t\tisSubMenu || !state.isOpen || position === 'static' || position === 'ignore';\n\n\t/**\n\t * Sets overflow (scrolling) on menu when there is no space to display\n\t * the menu in the preferred or flipped position.\n\t */\n\tconst menuScroll = useMenuScroll(\n\t\ttriggerRef,\n\t\tlistRef,\n\t\tposition,\n\t\tmenuOffset,\n\t\tstate.isOpen,\n\t\tdisableMenuScroll\n\t);\n\n\t/**\n\t * Primary menu positioning, alignment, and transition styling\n\t *\n\t * This hook is only enabled if isSubMenu is FALSE\n\t */\n\tconst disableTriggerPosition = isSubMenu || !state.isOpen || position === 'static';\n\tconst menuPositionStyles = useTriggerPosition(\n\t\ttriggerRef,\n\t\tmenuRef,\n\t\t{\n\t\t\talign: alignment,\n\t\t\tcustomPosition: customPosition,\n\t\t\tposition: position\n\t\t},\n\t\tstate.isOpen,\n\t\tmenuOffset,\n\t\tdisableTriggerPosition,\n\t\tdisableFlipping || menuScroll.isScrolling\n\t);\n\n\t/**\n\t * Submenu positioning and alignment\n\t *\n\t * This hook is only enabled if isSubMenu is TRUE\n\t */\n\tconst subMenuPosition = useSubMenuElementPosition(\n\t\ttriggerRef,\n\t\tmenuRef,\n\t\tisSubMenu,\n\t\tstate.isOpen,\n\t\tmenuRect,\n\t\t// disable the subelement positioning if it's not a submenu\n\t\t!isSubMenu\n\t);\n\n\tconst inlineStyles = {\n\t\tmenu: {\n\t\t\tleft: menuPositionStyles.left,\n\t\t\tposition: 'fixed' as const,\n\t\t\ttop: menuPositionStyles.top\n\t\t},\n\t\tsubmenu: {\n\t\t\tleft: subMenuPosition.left,\n\t\t\ttop: subMenuPosition.top\n\t\t}\n\t};\n\n\t/**\n\t * React Spring transitions for the menu\n\t */\n\tconst transitionConfig = {\n\t\tconfig: { duration: state.isOpen ? 300 : 150 },\n\t\tenter: { opacity: 1, transform: 'translateY(0)' },\n\t\tfrom: { opacity: 0, transform: 'translateY(4px)' },\n\t\tleave: { opacity: 0, transform: 'translateY(4px)' }\n\t};\n\n\tconst transitionStatic = {\n\t\tconfig: { duration: 0 },\n\t\tenter: { opacity: 1, transform: 'translateY(0)' }\n\t};\n\n\tconst transitions = useTransition(\n\t\tstate.isOpen,\n\t\tposition === 'static' ? transitionStatic : transitionConfig\n\t);\n\n\tconst menuClasses = classnames(styles['MrlMenu'], 'MrlMenu', {\n\t\t[styles['MrlMenu--submenu']]: isSubMenu,\n\t\t[styles.open]: state.isOpen,\n\t\t[styles['MrlMenu--compact']]: spacing === 'compact',\n\t\t[styles['MrlMenu--static']]: position === 'static',\n\t\t[styles['MrlMenu--internal']]: isInternal,\n\t\t[styles['MrlMenu--scrolling']]: menuScroll.isScrolling,\n\t\t[styles['MrlMenu--ignore']]: position === 'ignore'\n\t});\n\n\tconst positionStyles = isSubMenu\n\t\t? inlineStyles.submenu\n\t\t: position !== 'static'\n\t\t\t? inlineStyles.menu\n\t\t\t: {};\n\n\tconst menuScrollStyles =\n\t\t(menuScroll.maxHeight !== undefined && { maxHeight: menuScroll.maxHeight }) || undefined;\n\n\tconst renderMenu = () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{transitions(\n\t\t\t\t\t(style, item) =>\n\t\t\t\t\t\titem && (\n\t\t\t\t\t\t\t<animated.div\n\t\t\t\t\t\t\t\tclassName={menuClasses}\n\t\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t\t\tstyle={{ ...positionStyles, ...style }}\n\t\t\t\t\t\t\t\tonKeyUp={handleMenuKeyUp}\n\t\t\t\t\t\t\t\tonKeyDown={handleMenuKey}\n\t\t\t\t\t\t\t\tref={menuRef}\n\t\t\t\t\t\t\t\trole=\"none\"\n\t\t\t\t\t\t\t\t{...remainingProps}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ul ref={listRef} role=\"menu\" style={menuScrollStyles}>\n\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</animated.div>\n\t\t\t\t\t\t)\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t};\n\n\t// For managing and restoring focus to the original menu trigger\n\t// Ensures the triggerRef in context is always the parent triggerRef\n\tconst parentContext = React.useContext(MrlMenuContext);\n\tconst contextTriggerRef = isSubMenu ? parentContext?.triggerRef : triggerRef;\n\n\treturn (\n\t\t<MrlMenuContext.Provider\n\t\t\tvalue={{\n\t\t\t\tcloseMenu,\n\t\t\t\tcloseParent: !isSubMenu ? closeMenu : undefined,\n\t\t\t\ttriggerRef: contextTriggerRef\n\t\t\t}}\n\t\t>\n\t\t\t{isSubMenu || position === 'static' ? (\n\t\t\t\trenderMenu()\n\t\t\t) : (\n\t\t\t\t<MrlPortal layer={portalProps.layer || PORTAL_LAYERS.MENU} {...portalProps}>\n\t\t\t\t\t{renderMenu()}\n\t\t\t\t</MrlPortal>\n\t\t\t)}\n\t\t</MrlMenuContext.Provider>\n\t);\n\t/* eslint-enable */\n}\n\nMrlMenu.componentType = 'Menu';\n"],"names":["MENU_ITEM_SELECTOR","MrlMenu","_ref","_ref$actionState","actionState","actionType","isOpen","_ref$alignment","alignment","children","_ref$closeOnScroll","closeOnScroll","closeParent","customPosition","_ref$clickOutsideEven","clickOutsideEvent","disableArrowOpen","_ref$disableFlipping","disableFlipping","id","_ref$isInternal","isInternal","_ref$isSubMenu","isSubMenu","_ref$spacing","spacing","_ref$menuOffset","menuOffset","_ref$portalProps","portalProps","PORTAL_LAYERS","MENU","name","_ref$position","position","_ref$triggerStopPropa","triggerStopPropagation","onClose","triggerRef","remainingProps","_objectWithoutProperties","_excluded","defaultOpenState","_React$useState","React","useState","_React$useState2","_slicedToArray","state","setState","menuRef","useRef","listRef","_React$useState3","_React$useState4","menuItems","setMenuItems","_React$useState5","_React$useState6","menuRect","setMenuRect","isTriggerDisabled","useCallback","isElementAriaDisabled","current","toggleMenuTrigger","e","preventDefault","prevState","showMenuHover","showMenuTap","hideMenuHover","event","relatedTarget","contains","toggleMenuKey","openMenu","key","closeMenu","shouldCloseParent","arguments","length","undefined","disableClickOutside","useClickOutside","handleMenuKeyUp","actions","includes","handleMenuKey","_menuItems$nextIndex","_menuItems$nextIndex2","_triggerRef$current","currentIndex","findIndex","item","document","activeElement","nextIndex","focus","shiftKey","prevElement","findAdjacentInteractiveElement","nextElement","useEffect","setAttribute","_triggerRef$current2","toString","triggerElement","menuElement","querySelectorAll","scrollableParent","addEventListener","isTouchDevice","getScrollableParent","capture","passive","removeEventListener","forEach","getAttribute","_menuRef$current","foundMenuItems","Array","from","_triggerRef$current3","classList","add","itemStyles","_triggerRef$current4","remove","_menuRef$current2","newRect","getBoundingClientRect","_menuItemToFocus","_menuItemToFocus2","menuItemToFocus","setTimeout","scrollTo","scrollHeight","_menuItemToFocus3","disableMenuScroll","menuScroll","useMenuScroll","disableTriggerPosition","menuPositionStyles","useTriggerPosition","align","isScrolling","subMenuPosition","useSubMenuElementPosition","inlineStyles","menu","left","top","submenu","transitionConfig","config","duration","enter","opacity","transform","leave","transitionStatic","transitions","useTransition","menuClasses","classnames","styles","open","positionStyles","menuScrollStyles","maxHeight","renderMenu","createElement","Fragment","style","animated","div","_extends","className","_objectSpread","onKeyUp","onKeyDown","ref","role","parentContext","useContext","MrlMenuContext","contextTriggerRef","Provider","value","MrlPortal","layer","componentType"],"mappings":"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"}
|
|
@@ -4,9 +4,7 @@
|
|
|
4
4
|
* @param el - The element to start searching from
|
|
5
5
|
* @returns The closest menu parent or null if none is found
|
|
6
6
|
*/
|
|
7
|
-
var findClosestMenuParent =
|
|
8
|
-
return el === null || el === void 0 ? void 0 : el.closest('[role="menu"]');
|
|
9
|
-
};
|
|
7
|
+
var findClosestMenuParent = el => el === null || el === void 0 ? void 0 : el.closest('[role="menu"]');
|
|
10
8
|
|
|
11
9
|
/**
|
|
12
10
|
* Calculate the horizontal positioning of the submenu
|
|
@@ -17,7 +15,7 @@ var findClosestMenuParent = function findClosestMenuParent(el) {
|
|
|
17
15
|
* @param triggerRef - The ref of the trigger element
|
|
18
16
|
* @returns The left position of the menu
|
|
19
17
|
*/
|
|
20
|
-
var calculateLeftPosition =
|
|
18
|
+
var calculateLeftPosition = (overlapsRight, overlapsLeft, menuRect, triggerRef) => {
|
|
21
19
|
if (overlapsRight && overlapsLeft) {
|
|
22
20
|
// if we overlap on the left and right, provide an offset value so the menu
|
|
23
21
|
// isn't flush left with the trigger element (per design specs)
|
|
@@ -44,7 +42,7 @@ var calculateLeftPosition = function calculateLeftPosition(overlapsRight, overla
|
|
|
44
42
|
* @param triggerRect - The bounding rectangle of the trigger element
|
|
45
43
|
* @returns The top position of the menu
|
|
46
44
|
*/
|
|
47
|
-
var calculateTopPosition =
|
|
45
|
+
var calculateTopPosition = (overlapsRight, overlapsLeft, triggerRef, menuRect, parentMenu, triggerRect) => {
|
|
48
46
|
if (triggerRef.current) {
|
|
49
47
|
var parentContainer = parentMenu.parentElement;
|
|
50
48
|
if (parentContainer) {
|
|
@@ -75,7 +73,7 @@ var calculateTopPosition = function calculateTopPosition(overlapsRight, overlaps
|
|
|
75
73
|
* @param element - The element to check
|
|
76
74
|
* @returns Whether the element has overflow-y set to auto
|
|
77
75
|
*/
|
|
78
|
-
var hasOverflowY =
|
|
76
|
+
var hasOverflowY = element => {
|
|
79
77
|
var style = window.getComputedStyle(element);
|
|
80
78
|
return style.overflowY === 'auto';
|
|
81
79
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.js","sources":["../../../../../src/components/menu/MrlMenu/utilities.ts"],"sourcesContent":["/**\n * Find the closest menu parent of an element\n *\n * @param el - The element to start searching from\n * @returns The closest menu parent or null if none is found\n */\nexport const findClosestMenuParent = (el: HTMLElement | null): HTMLElement | null | undefined =>\n\tel?.closest('[role=\"menu\"]');\n\n/**\n * Calculate the horizontal positioning of the submenu\n *\n * @param overlapsRight - Whether the menu overlaps the right side of the screen\n * @param overlapsLeft - Whether the menu overlaps the left side of the screen\n * @param menuRect - The bounding rectangle of the menu\n * @param triggerRef - The ref of the trigger element\n * @returns The left position of the menu\n */\nexport const calculateLeftPosition = (\n\toverlapsRight: boolean,\n\toverlapsLeft: boolean,\n\tmenuRect: DOMRect,\n\ttriggerRef: React.RefObject<HTMLElement>\n): string => {\n\tif (overlapsRight && overlapsLeft) {\n\t\t// if we overlap on the left and right, provide an offset value so the menu\n\t\t// isn't flush left with the trigger element (per design specs)\n\t\treturn '55px';\n\t} else if (overlapsRight) {\n\t\t// if we overlap on the right, move the menu to the left side of the trigger\n\t\treturn `-${menuRect.width - 5}px`;\n\t} else if (triggerRef.current) {\n\t\t// otherwise display on the right\n\t\treturn `${triggerRef.current?.clientWidth + 13}px`;\n\t}\n\n\treturn '0';\n};\n\n/**\n * Calculate vertical positioning of the submenu\n *\n * @param overlapsRight - Whether the menu overlaps the right side of the screen\n * @param overlapsLeft - Whether the menu overlaps the left side of the screen\n * @param triggerRef - The ref of the trigger element\n * @param menuRect - The bounding rectangle of the menu\n * @param parentMenu - The parent menu element\n * @param triggerRect - The bounding rectangle of the trigger element\n * @returns The top position of the menu\n */\nexport const calculateTopPosition = (\n\toverlapsRight: boolean,\n\toverlapsLeft: boolean,\n\ttriggerRef: React.RefObject<HTMLElement>,\n\tmenuRect: DOMRect,\n\tparentMenu: HTMLElement,\n\ttriggerRect: DOMRect\n): string => {\n\tif (triggerRef.current) {\n\t\tconst parentContainer = parentMenu.parentElement;\n\n\t\tif (parentContainer) {\n\t\t\tconst menuBottom = triggerRect.top + menuRect.height;\n\t\t\tconst parentRect = parentContainer.getBoundingClientRect();\n\n\t\t\t// if we overlap both left and right, we want to position the menu above or below the trigger\n\t\t\tif (overlapsRight && overlapsLeft) {\n\t\t\t\t// if the menu overlaps and is below the trigger, position it above, otherwise position it below\n\t\t\t\treturn menuBottom > window.innerHeight\n\t\t\t\t\t? `${triggerRef.current.offsetTop - menuRect.height - 21 - parentMenu.scrollTop}px`\n\t\t\t\t\t: `${triggerRef.current.offsetTop + triggerRect.height - parentMenu.scrollTop}px`;\n\t\t\t} else if (menuBottom > parentRect.bottom) {\n\t\t\t\t// if the menu's bottom edge is below the parent container's bottom, align bottom\n\t\t\t\tconst topPosition = parentRect.height - menuRect.height;\n\t\t\t\tconst offset = hasOverflowY(parentMenu) ? 20 : 0;\n\t\t\t\treturn `${topPosition - offset}px`;\n\t\t\t} else {\n\t\t\t\t// otherwise align it with the top of the trigger\n\t\t\t\treturn `${triggerRef.current.offsetTop - parentMenu.scrollTop - 12}px`;\n\t\t\t}\n\t\t}\n\t}\n\treturn '0';\n};\n\n/*\n * Check if an element has overflow-y set to auto\n *\n * @param element - The element to check\n * @returns Whether the element has overflow-y set to auto\n */\nconst hasOverflowY = (element: HTMLElement) => {\n\tconst style = window.getComputedStyle(element);\n\treturn style.overflowY === 'auto';\n};\n"],"names":["findClosestMenuParent","el","closest","calculateLeftPosition","overlapsRight","overlapsLeft","menuRect","triggerRef","concat","width","current","_triggerRef$current","clientWidth","calculateTopPosition","parentMenu","triggerRect","parentContainer","parentElement","menuBottom","top","height","parentRect","getBoundingClientRect","window","innerHeight","offsetTop","scrollTop","bottom","topPosition","offset","hasOverflowY","element","style","getComputedStyle","overflowY"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"file":"utilities.js","sources":["../../../../../src/components/menu/MrlMenu/utilities.ts"],"sourcesContent":["/**\n * Find the closest menu parent of an element\n *\n * @param el - The element to start searching from\n * @returns The closest menu parent or null if none is found\n */\nexport const findClosestMenuParent = (el: HTMLElement | null): HTMLElement | null | undefined =>\n\tel?.closest('[role=\"menu\"]');\n\n/**\n * Calculate the horizontal positioning of the submenu\n *\n * @param overlapsRight - Whether the menu overlaps the right side of the screen\n * @param overlapsLeft - Whether the menu overlaps the left side of the screen\n * @param menuRect - The bounding rectangle of the menu\n * @param triggerRef - The ref of the trigger element\n * @returns The left position of the menu\n */\nexport const calculateLeftPosition = (\n\toverlapsRight: boolean,\n\toverlapsLeft: boolean,\n\tmenuRect: DOMRect,\n\ttriggerRef: React.RefObject<HTMLElement>\n): string => {\n\tif (overlapsRight && overlapsLeft) {\n\t\t// if we overlap on the left and right, provide an offset value so the menu\n\t\t// isn't flush left with the trigger element (per design specs)\n\t\treturn '55px';\n\t} else if (overlapsRight) {\n\t\t// if we overlap on the right, move the menu to the left side of the trigger\n\t\treturn `-${menuRect.width - 5}px`;\n\t} else if (triggerRef.current) {\n\t\t// otherwise display on the right\n\t\treturn `${triggerRef.current?.clientWidth + 13}px`;\n\t}\n\n\treturn '0';\n};\n\n/**\n * Calculate vertical positioning of the submenu\n *\n * @param overlapsRight - Whether the menu overlaps the right side of the screen\n * @param overlapsLeft - Whether the menu overlaps the left side of the screen\n * @param triggerRef - The ref of the trigger element\n * @param menuRect - The bounding rectangle of the menu\n * @param parentMenu - The parent menu element\n * @param triggerRect - The bounding rectangle of the trigger element\n * @returns The top position of the menu\n */\nexport const calculateTopPosition = (\n\toverlapsRight: boolean,\n\toverlapsLeft: boolean,\n\ttriggerRef: React.RefObject<HTMLElement>,\n\tmenuRect: DOMRect,\n\tparentMenu: HTMLElement,\n\ttriggerRect: DOMRect\n): string => {\n\tif (triggerRef.current) {\n\t\tconst parentContainer = parentMenu.parentElement;\n\n\t\tif (parentContainer) {\n\t\t\tconst menuBottom = triggerRect.top + menuRect.height;\n\t\t\tconst parentRect = parentContainer.getBoundingClientRect();\n\n\t\t\t// if we overlap both left and right, we want to position the menu above or below the trigger\n\t\t\tif (overlapsRight && overlapsLeft) {\n\t\t\t\t// if the menu overlaps and is below the trigger, position it above, otherwise position it below\n\t\t\t\treturn menuBottom > window.innerHeight\n\t\t\t\t\t? `${triggerRef.current.offsetTop - menuRect.height - 21 - parentMenu.scrollTop}px`\n\t\t\t\t\t: `${triggerRef.current.offsetTop + triggerRect.height - parentMenu.scrollTop}px`;\n\t\t\t} else if (menuBottom > parentRect.bottom) {\n\t\t\t\t// if the menu's bottom edge is below the parent container's bottom, align bottom\n\t\t\t\tconst topPosition = parentRect.height - menuRect.height;\n\t\t\t\tconst offset = hasOverflowY(parentMenu) ? 20 : 0;\n\t\t\t\treturn `${topPosition - offset}px`;\n\t\t\t} else {\n\t\t\t\t// otherwise align it with the top of the trigger\n\t\t\t\treturn `${triggerRef.current.offsetTop - parentMenu.scrollTop - 12}px`;\n\t\t\t}\n\t\t}\n\t}\n\treturn '0';\n};\n\n/*\n * Check if an element has overflow-y set to auto\n *\n * @param element - The element to check\n * @returns Whether the element has overflow-y set to auto\n */\nconst hasOverflowY = (element: HTMLElement) => {\n\tconst style = window.getComputedStyle(element);\n\treturn style.overflowY === 'auto';\n};\n"],"names":["findClosestMenuParent","el","closest","calculateLeftPosition","overlapsRight","overlapsLeft","menuRect","triggerRef","concat","width","current","_triggerRef$current","clientWidth","calculateTopPosition","parentMenu","triggerRect","parentContainer","parentElement","menuBottom","top","height","parentRect","getBoundingClientRect","window","innerHeight","offsetTop","scrollTop","bottom","topPosition","offset","hasOverflowY","element","style","getComputedStyle","overflowY"],"mappings":"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"}
|