@muraldevkit/ui-toolkit 4.68.0-dev-NFbt.1 → 4.68.0-dev-nPeA.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
|
@@ -10,7 +10,10 @@ var useActiveColor = require('../../hooks/useActiveColor.js');
|
|
|
10
10
|
var MrlEditableTextareaRightButton = require('./MrlEditableTextareaRightButton.js');
|
|
11
11
|
var MrlSvg = require('../../../svg/MrlSvg/MrlSvg.js');
|
|
12
12
|
|
|
13
|
-
function
|
|
13
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
|
|
15
|
+
function _interopNamespace(e) {
|
|
16
|
+
if (e && e.__esModule) return e;
|
|
14
17
|
var n = Object.create(null);
|
|
15
18
|
if (e) {
|
|
16
19
|
Object.keys(e).forEach(function (k) {
|
|
@@ -27,7 +30,8 @@ function _interopNamespaceDefault(e) {
|
|
|
27
30
|
return Object.freeze(n);
|
|
28
31
|
}
|
|
29
32
|
|
|
30
|
-
var React__namespace = /*#__PURE__*/
|
|
33
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
34
|
+
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
31
35
|
|
|
32
36
|
var _excluded = ["autoExpand", "className", "inputId", "inputLabelText", "maxLength", "placeholder", "state", "value", "error", "isEditable", "setIsEditable"];
|
|
33
37
|
/**
|
|
@@ -60,7 +64,7 @@ var MrlEditableTextarea = /*#__PURE__*/React__namespace.forwardRef(function MrlE
|
|
|
60
64
|
var _useIsEditable = useIsEditable.useIsEditable({
|
|
61
65
|
changeHandler: controlledIsEditableUpdate,
|
|
62
66
|
initialValue: false,
|
|
63
|
-
state
|
|
67
|
+
state,
|
|
64
68
|
value: controlledIsEditable
|
|
65
69
|
}),
|
|
66
70
|
isEditable = _useIsEditable.isEditable,
|
|
@@ -73,15 +77,13 @@ var MrlEditableTextarea = /*#__PURE__*/React__namespace.forwardRef(function MrlE
|
|
|
73
77
|
_React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
|
|
74
78
|
hasEdited = _React$useState2[0],
|
|
75
79
|
setHasEdited = _React$useState2[1];
|
|
76
|
-
React__namespace.useImperativeHandle(ref,
|
|
77
|
-
|
|
78
|
-
});
|
|
79
|
-
React__namespace.useEffect(function () {
|
|
80
|
+
React__namespace.useImperativeHandle(ref, () => iconRef.current);
|
|
81
|
+
React__namespace.useEffect(() => {
|
|
80
82
|
if (iconRef.current && (attrs.autoFocus || hasEdited)) {
|
|
81
83
|
iconRef.current.focus();
|
|
82
84
|
}
|
|
83
85
|
}, [attrs, iconRef, hasEdited]);
|
|
84
|
-
React__namespace.useEffect(
|
|
86
|
+
React__namespace.useEffect(() => {
|
|
85
87
|
if (textareaRef.current) {
|
|
86
88
|
if (isEditable) {
|
|
87
89
|
textareaRef.current.focus();
|
|
@@ -95,7 +97,7 @@ var MrlEditableTextarea = /*#__PURE__*/React__namespace.forwardRef(function MrlE
|
|
|
95
97
|
}
|
|
96
98
|
}
|
|
97
99
|
}, [isEditable, isEditing]);
|
|
98
|
-
React__namespace.useEffect(
|
|
100
|
+
React__namespace.useEffect(() => {
|
|
99
101
|
if (!autoExpand || !textareaRef.current) return;
|
|
100
102
|
textareaRef.current.style.height = 'auto';
|
|
101
103
|
if (!textareaRef.current.value || textareaRef.current.value === '') {
|
|
@@ -104,7 +106,7 @@ var MrlEditableTextarea = /*#__PURE__*/React__namespace.forwardRef(function MrlE
|
|
|
104
106
|
textareaRef.current.style.height = "".concat(textareaRef.current.scrollHeight, "px");
|
|
105
107
|
}
|
|
106
108
|
}, [autoExpand, value]);
|
|
107
|
-
var onKeyDown =
|
|
109
|
+
var onKeyDown = event => {
|
|
108
110
|
var key = event.key;
|
|
109
111
|
if (key === 'Escape') {
|
|
110
112
|
event.stopPropagation();
|
|
@@ -113,7 +115,7 @@ var MrlEditableTextarea = /*#__PURE__*/React__namespace.forwardRef(function MrlE
|
|
|
113
115
|
setIsEditing(false);
|
|
114
116
|
}
|
|
115
117
|
};
|
|
116
|
-
var handleOnBlur = React__namespace.useCallback(
|
|
118
|
+
var handleOnBlur = React__namespace.useCallback(e => {
|
|
117
119
|
setHasActiveColor(false);
|
|
118
120
|
setIsEditable(false);
|
|
119
121
|
setIsEditing(false);
|
|
@@ -122,7 +124,7 @@ var MrlEditableTextarea = /*#__PURE__*/React__namespace.forwardRef(function MrlE
|
|
|
122
124
|
attrs.onBlur(e);
|
|
123
125
|
}
|
|
124
126
|
}, [attrs, setHasActiveColor, setIsEditable, setIsEditing]);
|
|
125
|
-
var handleOnFocus = React__namespace.useCallback(
|
|
127
|
+
var handleOnFocus = React__namespace.useCallback(e => {
|
|
126
128
|
setHasActiveColor(true);
|
|
127
129
|
setIsEditable(true);
|
|
128
130
|
setIsEditing(true);
|
|
@@ -131,19 +133,19 @@ var MrlEditableTextarea = /*#__PURE__*/React__namespace.forwardRef(function MrlE
|
|
|
131
133
|
attrs.onFocus(e);
|
|
132
134
|
}
|
|
133
135
|
}, [attrs, setHasActiveColor, setIsEditable, setIsEditing]);
|
|
134
|
-
var handleOnMouseEnter = React__namespace.useCallback(
|
|
136
|
+
var handleOnMouseEnter = React__namespace.useCallback(e => {
|
|
135
137
|
setHasActiveColor(true);
|
|
136
138
|
if (typeof attrs.onMouseEnter === 'function') {
|
|
137
139
|
attrs.onMouseEnter(e);
|
|
138
140
|
}
|
|
139
141
|
}, [attrs, setHasActiveColor]);
|
|
140
|
-
var handleOnMouseLeave = React__namespace.useCallback(
|
|
142
|
+
var handleOnMouseLeave = React__namespace.useCallback(e => {
|
|
141
143
|
setHasActiveColor(false);
|
|
142
144
|
if (typeof attrs.onMouseLeave === 'function') {
|
|
143
145
|
attrs.onMouseLeave(e);
|
|
144
146
|
}
|
|
145
147
|
}, [attrs, setHasActiveColor]);
|
|
146
|
-
var onClickEdit = React__namespace.useCallback(
|
|
148
|
+
var onClickEdit = React__namespace.useCallback(() => {
|
|
147
149
|
setIsEditable(true);
|
|
148
150
|
setIsEditing(true);
|
|
149
151
|
setHasEdited(true);
|
|
@@ -153,7 +155,9 @@ var MrlEditableTextarea = /*#__PURE__*/React__namespace.forwardRef(function MrlE
|
|
|
153
155
|
throw new Error('maxLength should have type number');
|
|
154
156
|
}
|
|
155
157
|
var hasErrorMessage = state === 'error' && (error === null || error === void 0 ? void 0 : error.message);
|
|
156
|
-
var inputClasses =
|
|
158
|
+
var inputClasses = classnames__default.default(className, MrlEditableTextarea_module.default['MrlEditableTextarea'], {
|
|
159
|
+
[MrlEditableTextarea_module.default['MrlEditableTextarea--readOnly']]: state === 'read-only'
|
|
160
|
+
}, 'MrlEditableTextarea', 'mrl-textarea');
|
|
157
161
|
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("div", {
|
|
158
162
|
className: "".concat(MrlEditableTextarea_module.default['MrlEditableTextarea--wrapper'], " MrlEditableTextarea--wrapper")
|
|
159
163
|
}, /*#__PURE__*/React__namespace.createElement("textarea", _rollupPluginBabelHelpers.extends({}, attrs, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MrlEditableTextarea.js","sources":["../../../../../../src/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { edit, error as errorIcon } from '@muraldevkit/ds-icons';\n\nimport styles from './MrlEditableTextarea.module.scss';\nimport './MrlEditableTextarea.global.scss';\nimport { useIsEditable } from '../../hooks/useIsEditable';\nimport { useActiveColor } from '../../hooks/useActiveColor';\nimport { InputStates, MrlFormInputError, MrlSvg } from '../../..';\nimport { MrlEditableTextareaRightButton } from './MrlEditableTextareaRightButton';\n\ninterface MrlEditableTextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n\t/** The value of the textarea used to make it a controlled input */\n\tvalue: string;\n\t/**\n\t * \tValue of the label text assigned to the input.\n\t * This is used to describe to the user what field they will be editing when interacting with the edit buton.\n\t */\n\tinputLabelText: string;\n\t/**\n\t * The maximum number of characters that the user can enter.\n\t * If undefined or set to \"0\", removes the character counter from the textarea\n\t */\n\tmaxLength?: number;\n\t/**\n\t * Id of the text input.\n\t */\n\tinputId: string;\n\t/**\n\t * Text placeholder for the text input.\n\t */\n\tplaceholder?: string;\n\t/**\n\t * Changes the state of the input based on user permissions or actions.\n\t */\n\tstate?: InputStates;\n\t/** Additional class to add to the textarea */\n\tclassName?: string;\n\t'data-qa': string;\n\terror?: MrlFormInputError;\n\t/* Expost isEditable and setIsEditable as optionally controlled state */\n\tisEditable?: boolean;\n\tsetIsEditable?: (isEditableUpdate: boolean) => void;\n\t/** Autoexpand will automatically adjust the height of the textarea based on the amount of text within it */\n\tautoExpand?: boolean;\n}\n\n/**\n * Allows the user to input plain text in a multi-line format\n * @param {MrlEditableTextareaProps} props - the component props\n * @returns a textarea element\n */\nexport const MrlEditableTextarea = React.forwardRef<HTMLButtonElement, MrlEditableTextareaProps>(\n\tfunction MrlEditableTextarea(\n\t\tprops: MrlEditableTextareaProps,\n\t\tref: React.Ref<HTMLButtonElement>\n\t): JSX.Element {\n\t\tconst {\n\t\t\tautoExpand = false,\n\t\t\tclassName,\n\t\t\tinputId,\n\t\t\tinputLabelText,\n\t\t\tmaxLength,\n\t\t\tplaceholder,\n\t\t\tstate,\n\t\t\tvalue,\n\t\t\terror,\n\t\t\tisEditable: controlledIsEditable,\n\t\t\tsetIsEditable: controlledIsEditableUpdate,\n\t\t\t...attrs\n\t\t} = props;\n\n\t\t// html id to be reference by input and error description to relay the error for a specific input\n\t\tconst describedById = `${inputId}-description`;\n\t\tconst textareaRef = React.useRef<HTMLTextAreaElement>(null);\n\t\tconst iconRef = React.useRef<HTMLButtonElement>(null);\n\n\t\tconst { hasActiveColor, setHasActiveColor } = useActiveColor(state);\n\t\tconst { isEditable, isEditing, setIsEditable, setIsEditing } = useIsEditable({\n\t\t\tchangeHandler: controlledIsEditableUpdate,\n\t\t\tinitialValue: false,\n\t\t\tstate,\n\t\t\tvalue: controlledIsEditable\n\t\t});\n\t\t// Allows us to track if the user has edited the input previously.\n\t\t// This helps conditionally focus the icon only when the user is done editing the input.\n\t\tconst [hasEdited, setHasEdited] = React.useState(false);\n\n\t\tReact.useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n\t\t\tref,\n\t\t\t() => iconRef.current\n\t\t);\n\n\t\tReact.useEffect(() => {\n\t\t\tif (iconRef.current && (attrs.autoFocus || hasEdited)) {\n\t\t\t\ticonRef.current.focus();\n\t\t\t}\n\t\t}, [attrs, iconRef, hasEdited]);\n\n\t\tReact.useEffect(() => {\n\t\t\tif (textareaRef.current) {\n\t\t\t\tif (isEditable) {\n\t\t\t\t\ttextareaRef.current.focus();\n\t\t\t\t} else {\n\t\t\t\t\ttextareaRef.current.style.height = 'auto';\n\t\t\t\t\tif (!textareaRef.current.value || textareaRef.current.value === '') {\n\t\t\t\t\t\ttextareaRef.current.style.height = '40px';\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttextareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, [isEditable, isEditing]);\n\n\t\tReact.useEffect(() => {\n\t\t\tif (!autoExpand || !textareaRef.current) return;\n\n\t\t\ttextareaRef.current.style.height = 'auto';\n\t\t\tif (!textareaRef.current.value || textareaRef.current.value === '') {\n\t\t\t\ttextareaRef.current.style.height = '40px';\n\t\t\t} else {\n\t\t\t\ttextareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`;\n\t\t\t}\n\t\t}, [autoExpand, value]);\n\n\t\tconst onKeyDown = (event: React.KeyboardEvent<HTMLTextAreaElement>) => {\n\t\t\tconst { key } = event;\n\n\t\t\tif (key === 'Escape') {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetIsEditable(false);\n\t\t\t\tsetIsEditing(false);\n\t\t\t}\n\t\t};\n\n\t\tconst handleOnBlur = React.useCallback(\n\t\t\t(e: React.FocusEvent<HTMLTextAreaElement>) => {\n\t\t\t\tsetHasActiveColor(false);\n\t\t\t\tsetIsEditable(false);\n\t\t\t\tsetIsEditing(false);\n\t\t\t\tsetHasEdited(false);\n\t\t\t\tif (typeof attrs.onBlur === 'function') {\n\t\t\t\t\tattrs.onBlur(e);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[attrs, setHasActiveColor, setIsEditable, setIsEditing]\n\t\t);\n\n\t\tconst handleOnFocus = React.useCallback(\n\t\t\t(e: React.FocusEvent<HTMLTextAreaElement>) => {\n\t\t\t\tsetHasActiveColor(true);\n\t\t\t\tsetIsEditable(true);\n\t\t\t\tsetIsEditing(true);\n\t\t\t\tsetHasEdited(true);\n\t\t\t\tif (typeof attrs.onFocus === 'function') {\n\t\t\t\t\tattrs.onFocus(e);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[attrs, setHasActiveColor, setIsEditable, setIsEditing]\n\t\t);\n\n\t\tconst handleOnMouseEnter = React.useCallback(\n\t\t\t(e: React.MouseEvent<HTMLTextAreaElement>) => {\n\t\t\t\tsetHasActiveColor(true);\n\t\t\t\tif (typeof attrs.onMouseEnter === 'function') {\n\t\t\t\t\tattrs.onMouseEnter(e);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[attrs, setHasActiveColor]\n\t\t);\n\n\t\tconst handleOnMouseLeave = React.useCallback(\n\t\t\t(e: React.MouseEvent<HTMLTextAreaElement>) => {\n\t\t\t\tsetHasActiveColor(false);\n\t\t\t\tif (typeof attrs.onMouseLeave === 'function') {\n\t\t\t\t\tattrs.onMouseLeave(e);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[attrs, setHasActiveColor]\n\t\t);\n\n\t\tconst onClickEdit = React.useCallback(() => {\n\t\t\tsetIsEditable(true);\n\t\t\tsetIsEditing(true);\n\t\t\tsetHasEdited(true);\n\t\t}, [setIsEditable, setIsEditing, setHasEdited]);\n\n\t\tconst hasCounter =\n\t\t\ttypeof maxLength !== 'undefined' && Number(maxLength) > 0 && state !== 'read-only';\n\n\t\tif (hasCounter && isNaN(Number(maxLength))) {\n\t\t\tthrow new Error('maxLength should have type number');\n\t\t}\n\n\t\tconst hasErrorMessage = state === 'error' && error?.message;\n\n\t\tconst inputClasses = classnames(\n\t\t\tclassName,\n\t\t\tstyles['MrlEditableTextarea'],\n\t\t\t{\n\t\t\t\t[styles['MrlEditableTextarea--readOnly']]: state === 'read-only'\n\t\t\t},\n\t\t\t'MrlEditableTextarea',\n\t\t\t'mrl-textarea'\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div className={`${styles['MrlEditableTextarea--wrapper']} MrlEditableTextarea--wrapper`}>\n\t\t\t\t\t<textarea\n\t\t\t\t\t\t{...attrs}\n\t\t\t\t\t\tid={inputId}\n\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\tclassName={inputClasses}\n\t\t\t\t\t\tdefaultValue={value}\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\tdisabled={state === 'disabled'}\n\t\t\t\t\t\taria-invalid={state === 'error'}\n\t\t\t\t\t\taria-describedby={hasErrorMessage ? describedById : undefined}\n\t\t\t\t\t\tonBlur={handleOnBlur}\n\t\t\t\t\t\tonFocus={handleOnFocus}\n\t\t\t\t\t\tonMouseEnter={handleOnMouseEnter}\n\t\t\t\t\t\tonMouseLeave={handleOnMouseLeave}\n\t\t\t\t\t\tonKeyDown={onKeyDown}\n\t\t\t\t\t\tmaxLength={hasCounter ? maxLength : undefined}\n\t\t\t\t\t\treadOnly={state === 'read-only' || !isEditable}\n\t\t\t\t\t\tref={textareaRef}\n\t\t\t\t\t\ttabIndex={!isEditable ? -1 : 0}\n\t\t\t\t\t/>\n\t\t\t\t\t{state !== 'read-only' && state !== 'disabled' && !isEditable && (\n\t\t\t\t\t\t<MrlEditableTextareaRightButton\n\t\t\t\t\t\t\taction={onClickEdit}\n\t\t\t\t\t\t\ticon={edit}\n\t\t\t\t\t\t\tlabel={`Edit ${inputLabelText}`}\n\t\t\t\t\t\t\tdataQa={attrs['data-qa'] && `${attrs['data-qa']}-edit`}\n\t\t\t\t\t\t\thasActiveColor={hasActiveColor || isEditable}\n\t\t\t\t\t\t\tsetHasActiveColor={setHasActiveColor}\n\t\t\t\t\t\t\tref={iconRef}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{hasCounter && isEditable && (\n\t\t\t\t\t<span className={styles['MrlForm-counter']}>\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{value?.length || 0}/{maxLength}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<p style={{ display: 'none' }} aria-live=\"polite\" id={`${inputId}-counter`}>\n\t\t\t\t\t\t\t{`${maxLength - (value?.length || 0)} of ${maxLength} characters remaining`}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t\t{state === 'error' && error?.message && (\n\t\t\t\t\t<span className={styles['MrlEditableTextarea-errorMessage']}>\n\t\t\t\t\t\t<MrlSvg\n\t\t\t\t\t\t\tclassName={styles['MrlEditableTextarea-errorIcon']}\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tsvg={errorIcon}\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span id={describedById}>{`${error?.message}`}</span>\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t}\n);\n"],"names":["MrlEditableTextarea","React","forwardRef","props","ref","_props$autoExpand","autoExpand","className","inputId","inputLabelText","maxLength","placeholder","state","value","error","controlledIsEditable","isEditable","controlledIsEditableUpdate","setIsEditable","attrs","_objectWithoutProperties","_excluded","describedById","concat","textareaRef","useRef","iconRef","_useActiveColor","useActiveColor","hasActiveColor","setHasActiveColor","_useIsEditable","useIsEditable","changeHandler","initialValue","isEditing","setIsEditing","_React$useState","useState","_React$useState2","_slicedToArray","hasEdited","setHasEdited","useImperativeHandle","current","useEffect","autoFocus","focus","style","height","scrollHeight","onKeyDown","event","key","stopPropagation","preventDefault","handleOnBlur","useCallback","e","onBlur","handleOnFocus","onFocus","handleOnMouseEnter","onMouseEnter","handleOnMouseLeave","onMouseLeave","onClickEdit","hasCounter","Number","isNaN","Error","hasErrorMessage","message","inputClasses","classnames","styles","_defineProperty","createElement","Fragment","_extends","id","defaultValue","disabled","undefined","readOnly","tabIndex","MrlEditableTextareaRightButton","action","icon","edit","label","dataQa","length","display","MrlSvg","svg","errorIcon","size"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MrlEditableTextarea.js","sources":["../../../../../../src/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { edit, error as errorIcon } from '@muraldevkit/ds-icons';\n\nimport styles from './MrlEditableTextarea.module.scss';\nimport './MrlEditableTextarea.global.scss';\nimport { useIsEditable } from '../../hooks/useIsEditable';\nimport { useActiveColor } from '../../hooks/useActiveColor';\nimport { InputStates, MrlFormInputError, MrlSvg } from '../../..';\nimport { MrlEditableTextareaRightButton } from './MrlEditableTextareaRightButton';\n\ninterface MrlEditableTextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n\t/** The value of the textarea used to make it a controlled input */\n\tvalue: string;\n\t/**\n\t * \tValue of the label text assigned to the input.\n\t * This is used to describe to the user what field they will be editing when interacting with the edit buton.\n\t */\n\tinputLabelText: string;\n\t/**\n\t * The maximum number of characters that the user can enter.\n\t * If undefined or set to \"0\", removes the character counter from the textarea\n\t */\n\tmaxLength?: number;\n\t/**\n\t * Id of the text input.\n\t */\n\tinputId: string;\n\t/**\n\t * Text placeholder for the text input.\n\t */\n\tplaceholder?: string;\n\t/**\n\t * Changes the state of the input based on user permissions or actions.\n\t */\n\tstate?: InputStates;\n\t/** Additional class to add to the textarea */\n\tclassName?: string;\n\t'data-qa': string;\n\terror?: MrlFormInputError;\n\t/* Expost isEditable and setIsEditable as optionally controlled state */\n\tisEditable?: boolean;\n\tsetIsEditable?: (isEditableUpdate: boolean) => void;\n\t/** Autoexpand will automatically adjust the height of the textarea based on the amount of text within it */\n\tautoExpand?: boolean;\n}\n\n/**\n * Allows the user to input plain text in a multi-line format\n * @param {MrlEditableTextareaProps} props - the component props\n * @returns a textarea element\n */\nexport const MrlEditableTextarea = React.forwardRef<HTMLButtonElement, MrlEditableTextareaProps>(\n\tfunction MrlEditableTextarea(\n\t\tprops: MrlEditableTextareaProps,\n\t\tref: React.Ref<HTMLButtonElement>\n\t): JSX.Element {\n\t\tconst {\n\t\t\tautoExpand = false,\n\t\t\tclassName,\n\t\t\tinputId,\n\t\t\tinputLabelText,\n\t\t\tmaxLength,\n\t\t\tplaceholder,\n\t\t\tstate,\n\t\t\tvalue,\n\t\t\terror,\n\t\t\tisEditable: controlledIsEditable,\n\t\t\tsetIsEditable: controlledIsEditableUpdate,\n\t\t\t...attrs\n\t\t} = props;\n\n\t\t// html id to be reference by input and error description to relay the error for a specific input\n\t\tconst describedById = `${inputId}-description`;\n\t\tconst textareaRef = React.useRef<HTMLTextAreaElement>(null);\n\t\tconst iconRef = React.useRef<HTMLButtonElement>(null);\n\n\t\tconst { hasActiveColor, setHasActiveColor } = useActiveColor(state);\n\t\tconst { isEditable, isEditing, setIsEditable, setIsEditing } = useIsEditable({\n\t\t\tchangeHandler: controlledIsEditableUpdate,\n\t\t\tinitialValue: false,\n\t\t\tstate,\n\t\t\tvalue: controlledIsEditable\n\t\t});\n\t\t// Allows us to track if the user has edited the input previously.\n\t\t// This helps conditionally focus the icon only when the user is done editing the input.\n\t\tconst [hasEdited, setHasEdited] = React.useState(false);\n\n\t\tReact.useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n\t\t\tref,\n\t\t\t() => iconRef.current\n\t\t);\n\n\t\tReact.useEffect(() => {\n\t\t\tif (iconRef.current && (attrs.autoFocus || hasEdited)) {\n\t\t\t\ticonRef.current.focus();\n\t\t\t}\n\t\t}, [attrs, iconRef, hasEdited]);\n\n\t\tReact.useEffect(() => {\n\t\t\tif (textareaRef.current) {\n\t\t\t\tif (isEditable) {\n\t\t\t\t\ttextareaRef.current.focus();\n\t\t\t\t} else {\n\t\t\t\t\ttextareaRef.current.style.height = 'auto';\n\t\t\t\t\tif (!textareaRef.current.value || textareaRef.current.value === '') {\n\t\t\t\t\t\ttextareaRef.current.style.height = '40px';\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttextareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, [isEditable, isEditing]);\n\n\t\tReact.useEffect(() => {\n\t\t\tif (!autoExpand || !textareaRef.current) return;\n\n\t\t\ttextareaRef.current.style.height = 'auto';\n\t\t\tif (!textareaRef.current.value || textareaRef.current.value === '') {\n\t\t\t\ttextareaRef.current.style.height = '40px';\n\t\t\t} else {\n\t\t\t\ttextareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`;\n\t\t\t}\n\t\t}, [autoExpand, value]);\n\n\t\tconst onKeyDown = (event: React.KeyboardEvent<HTMLTextAreaElement>) => {\n\t\t\tconst { key } = event;\n\n\t\t\tif (key === 'Escape') {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetIsEditable(false);\n\t\t\t\tsetIsEditing(false);\n\t\t\t}\n\t\t};\n\n\t\tconst handleOnBlur = React.useCallback(\n\t\t\t(e: React.FocusEvent<HTMLTextAreaElement>) => {\n\t\t\t\tsetHasActiveColor(false);\n\t\t\t\tsetIsEditable(false);\n\t\t\t\tsetIsEditing(false);\n\t\t\t\tsetHasEdited(false);\n\t\t\t\tif (typeof attrs.onBlur === 'function') {\n\t\t\t\t\tattrs.onBlur(e);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[attrs, setHasActiveColor, setIsEditable, setIsEditing]\n\t\t);\n\n\t\tconst handleOnFocus = React.useCallback(\n\t\t\t(e: React.FocusEvent<HTMLTextAreaElement>) => {\n\t\t\t\tsetHasActiveColor(true);\n\t\t\t\tsetIsEditable(true);\n\t\t\t\tsetIsEditing(true);\n\t\t\t\tsetHasEdited(true);\n\t\t\t\tif (typeof attrs.onFocus === 'function') {\n\t\t\t\t\tattrs.onFocus(e);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[attrs, setHasActiveColor, setIsEditable, setIsEditing]\n\t\t);\n\n\t\tconst handleOnMouseEnter = React.useCallback(\n\t\t\t(e: React.MouseEvent<HTMLTextAreaElement>) => {\n\t\t\t\tsetHasActiveColor(true);\n\t\t\t\tif (typeof attrs.onMouseEnter === 'function') {\n\t\t\t\t\tattrs.onMouseEnter(e);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[attrs, setHasActiveColor]\n\t\t);\n\n\t\tconst handleOnMouseLeave = React.useCallback(\n\t\t\t(e: React.MouseEvent<HTMLTextAreaElement>) => {\n\t\t\t\tsetHasActiveColor(false);\n\t\t\t\tif (typeof attrs.onMouseLeave === 'function') {\n\t\t\t\t\tattrs.onMouseLeave(e);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[attrs, setHasActiveColor]\n\t\t);\n\n\t\tconst onClickEdit = React.useCallback(() => {\n\t\t\tsetIsEditable(true);\n\t\t\tsetIsEditing(true);\n\t\t\tsetHasEdited(true);\n\t\t}, [setIsEditable, setIsEditing, setHasEdited]);\n\n\t\tconst hasCounter =\n\t\t\ttypeof maxLength !== 'undefined' && Number(maxLength) > 0 && state !== 'read-only';\n\n\t\tif (hasCounter && isNaN(Number(maxLength))) {\n\t\t\tthrow new Error('maxLength should have type number');\n\t\t}\n\n\t\tconst hasErrorMessage = state === 'error' && error?.message;\n\n\t\tconst inputClasses = classnames(\n\t\t\tclassName,\n\t\t\tstyles['MrlEditableTextarea'],\n\t\t\t{\n\t\t\t\t[styles['MrlEditableTextarea--readOnly']]: state === 'read-only'\n\t\t\t},\n\t\t\t'MrlEditableTextarea',\n\t\t\t'mrl-textarea'\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div className={`${styles['MrlEditableTextarea--wrapper']} MrlEditableTextarea--wrapper`}>\n\t\t\t\t\t<textarea\n\t\t\t\t\t\t{...attrs}\n\t\t\t\t\t\tid={inputId}\n\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\tclassName={inputClasses}\n\t\t\t\t\t\tdefaultValue={value}\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\tdisabled={state === 'disabled'}\n\t\t\t\t\t\taria-invalid={state === 'error'}\n\t\t\t\t\t\taria-describedby={hasErrorMessage ? describedById : undefined}\n\t\t\t\t\t\tonBlur={handleOnBlur}\n\t\t\t\t\t\tonFocus={handleOnFocus}\n\t\t\t\t\t\tonMouseEnter={handleOnMouseEnter}\n\t\t\t\t\t\tonMouseLeave={handleOnMouseLeave}\n\t\t\t\t\t\tonKeyDown={onKeyDown}\n\t\t\t\t\t\tmaxLength={hasCounter ? maxLength : undefined}\n\t\t\t\t\t\treadOnly={state === 'read-only' || !isEditable}\n\t\t\t\t\t\tref={textareaRef}\n\t\t\t\t\t\ttabIndex={!isEditable ? -1 : 0}\n\t\t\t\t\t/>\n\t\t\t\t\t{state !== 'read-only' && state !== 'disabled' && !isEditable && (\n\t\t\t\t\t\t<MrlEditableTextareaRightButton\n\t\t\t\t\t\t\taction={onClickEdit}\n\t\t\t\t\t\t\ticon={edit}\n\t\t\t\t\t\t\tlabel={`Edit ${inputLabelText}`}\n\t\t\t\t\t\t\tdataQa={attrs['data-qa'] && `${attrs['data-qa']}-edit`}\n\t\t\t\t\t\t\thasActiveColor={hasActiveColor || isEditable}\n\t\t\t\t\t\t\tsetHasActiveColor={setHasActiveColor}\n\t\t\t\t\t\t\tref={iconRef}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{hasCounter && isEditable && (\n\t\t\t\t\t<span className={styles['MrlForm-counter']}>\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{value?.length || 0}/{maxLength}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<p style={{ display: 'none' }} aria-live=\"polite\" id={`${inputId}-counter`}>\n\t\t\t\t\t\t\t{`${maxLength - (value?.length || 0)} of ${maxLength} characters remaining`}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t\t{state === 'error' && error?.message && (\n\t\t\t\t\t<span className={styles['MrlEditableTextarea-errorMessage']}>\n\t\t\t\t\t\t<MrlSvg\n\t\t\t\t\t\t\tclassName={styles['MrlEditableTextarea-errorIcon']}\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tsvg={errorIcon}\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span id={describedById}>{`${error?.message}`}</span>\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t}\n);\n"],"names":["MrlEditableTextarea","React","forwardRef","props","ref","_props$autoExpand","autoExpand","className","inputId","inputLabelText","maxLength","placeholder","state","value","error","controlledIsEditable","isEditable","controlledIsEditableUpdate","setIsEditable","attrs","_objectWithoutProperties","_excluded","describedById","concat","textareaRef","useRef","iconRef","_useActiveColor","useActiveColor","hasActiveColor","setHasActiveColor","_useIsEditable","useIsEditable","changeHandler","initialValue","isEditing","setIsEditing","_React$useState","useState","_React$useState2","_slicedToArray","hasEdited","setHasEdited","useImperativeHandle","current","useEffect","autoFocus","focus","style","height","scrollHeight","onKeyDown","event","key","stopPropagation","preventDefault","handleOnBlur","useCallback","e","onBlur","handleOnFocus","onFocus","handleOnMouseEnter","onMouseEnter","handleOnMouseLeave","onMouseLeave","onClickEdit","hasCounter","Number","isNaN","Error","hasErrorMessage","message","inputClasses","classnames","styles","createElement","Fragment","_extends","id","defaultValue","disabled","undefined","readOnly","tabIndex","MrlEditableTextareaRightButton","action","icon","edit","label","dataQa","length","display","MrlSvg","svg","errorIcon","size"],"mappings":"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"}
|
package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var _rollupPluginBabelHelpers = require('../../../../_virtual/_rollupPluginBabelHelpers.js');
|
|
4
3
|
var React = require('react');
|
|
5
4
|
var classnames = require('classnames');
|
|
6
5
|
var MrlEditableTextarea_module = require('./MrlEditableTextarea.module.scss.js');
|
|
7
6
|
var MrlSvg = require('../../../svg/MrlSvg/MrlSvg.js');
|
|
8
7
|
|
|
9
|
-
function
|
|
8
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
|
|
10
|
+
function _interopNamespace(e) {
|
|
11
|
+
if (e && e.__esModule) return e;
|
|
10
12
|
var n = Object.create(null);
|
|
11
13
|
if (e) {
|
|
12
14
|
Object.keys(e).forEach(function (k) {
|
|
@@ -23,7 +25,8 @@ function _interopNamespaceDefault(e) {
|
|
|
23
25
|
return Object.freeze(n);
|
|
24
26
|
}
|
|
25
27
|
|
|
26
|
-
var React__namespace = /*#__PURE__*/
|
|
28
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
29
|
+
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
27
30
|
|
|
28
31
|
/**
|
|
29
32
|
* Renders the right icon in the text input
|
|
@@ -38,31 +41,25 @@ var MrlEditableTextareaRightButton = /*#__PURE__*/React__namespace.forwardRef(fu
|
|
|
38
41
|
icon = _ref.icon,
|
|
39
42
|
label = _ref.label,
|
|
40
43
|
setHasActiveColor = _ref.setHasActiveColor;
|
|
41
|
-
var handleKeyUp = React__namespace.useCallback(
|
|
44
|
+
var handleKeyUp = React__namespace.useCallback(e => {
|
|
42
45
|
if (e.key === ' ' || e.key === 'Enter') {
|
|
43
46
|
action(e);
|
|
44
47
|
}
|
|
45
48
|
}, [action]);
|
|
46
49
|
return /*#__PURE__*/React__namespace.createElement("span", {
|
|
47
|
-
className:
|
|
50
|
+
className: classnames__default.default(MrlEditableTextarea_module.default['MrlEditableTextarea-dynamicIcon'], {
|
|
51
|
+
[MrlEditableTextarea_module.default['MrlEditableTextarea-dynamicIcon--active']]: hasActiveColor
|
|
52
|
+
})
|
|
48
53
|
}, /*#__PURE__*/React__namespace.createElement("button", {
|
|
49
54
|
type: "button",
|
|
50
55
|
"aria-label": label,
|
|
51
56
|
onMouseUp: action,
|
|
52
57
|
onKeyUp: handleKeyUp,
|
|
53
58
|
"data-qa": dataQa,
|
|
54
|
-
onMouseEnter:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return setHasActiveColor(false);
|
|
59
|
-
},
|
|
60
|
-
onFocus: function onFocus() {
|
|
61
|
-
return setHasActiveColor(true);
|
|
62
|
-
},
|
|
63
|
-
onBlur: function onBlur() {
|
|
64
|
-
return setHasActiveColor(false);
|
|
65
|
-
},
|
|
59
|
+
onMouseEnter: () => setHasActiveColor(true),
|
|
60
|
+
onMouseLeave: () => setHasActiveColor(false),
|
|
61
|
+
onFocus: () => setHasActiveColor(true),
|
|
62
|
+
onBlur: () => setHasActiveColor(false),
|
|
66
63
|
ref: ref
|
|
67
64
|
}, /*#__PURE__*/React__namespace.createElement(MrlSvg.MrlSvg, {
|
|
68
65
|
"aria-hidden": "true",
|
package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MrlEditableTextareaRightButton.js","sources":["../../../../../../src/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { DSIconType, MrlSvg } from '../../..';\nimport classnames from 'classnames';\n\nimport styles from './MrlEditableTextarea.module.scss';\n\nexport interface MrlEditableTextareaRightButtonProps {\n\t/** the action that should be executed when interacting with the icon */\n\taction: (event: React.MouseEvent | React.KeyboardEvent) => void;\n\t/** the icon that will be rendered */\n\ticon: DSIconType;\n\t/** data-qa attribute for the icon */\n\tdataQa?: string;\n\t/** describes the purpouse of the icon button */\n\tlabel: string;\n\t/** determines if the icon has active color or not */\n\thasActiveColor: boolean;\n\tsetHasActiveColor: (hasActiveColor: boolean) => void;\n\t/** the text input value used to calculate the active style */\n\tvalue?: string;\n\tref?: HTMLButtonElement;\n}\n\n/**\n * Renders the right icon in the text input\n *\n * @param {MrlEditableTextareaRightButtonProps} props - the component props\n * @returns a button element with an icon\n */\nexport const MrlEditableTextareaRightButton = React.forwardRef<\n\tHTMLButtonElement,\n\tMrlEditableTextareaRightButtonProps\n>(function MrlTextInputRightButton(\n\t{\n\t\taction,\n\t\tdataQa,\n\t\thasActiveColor,\n\t\ticon,\n\t\tlabel,\n\t\tsetHasActiveColor\n\t}: MrlEditableTextareaRightButtonProps,\n\tref\n): JSX.Element {\n\tconst handleKeyUp = React.useCallback(\n\t\t(e: React.KeyboardEvent<HTMLButtonElement>) => {\n\t\t\tif (e.key === ' ' || e.key === 'Enter') {\n\t\t\t\taction(e);\n\t\t\t}\n\t\t},\n\t\t[action]\n\t);\n\n\treturn (\n\t\t<span\n\t\t\tclassName={classnames(styles['MrlEditableTextarea-dynamicIcon'], {\n\t\t\t\t[styles['MrlEditableTextarea-dynamicIcon--active']]: hasActiveColor\n\t\t\t})}\n\t\t>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\taria-label={label}\n\t\t\t\tonMouseUp={action}\n\t\t\t\tonKeyUp={handleKeyUp}\n\t\t\t\tdata-qa={dataQa}\n\t\t\t\tonMouseEnter={() => setHasActiveColor(true)}\n\t\t\t\tonMouseLeave={() => setHasActiveColor(false)}\n\t\t\t\tonFocus={() => setHasActiveColor(true)}\n\t\t\t\tonBlur={() => setHasActiveColor(false)}\n\t\t\t\tref={ref}\n\t\t\t>\n\t\t\t\t<MrlSvg aria-hidden=\"true\" svg={icon} size=\"small\" />\n\t\t\t</button>\n\t\t</span>\n\t);\n});\n"],"names":["MrlEditableTextareaRightButton","React","forwardRef","MrlTextInputRightButton","_ref","ref","action","dataQa","hasActiveColor","icon","label","setHasActiveColor","handleKeyUp","useCallback","e","key","createElement","className","classnames","styles","
|
|
1
|
+
{"version":3,"file":"MrlEditableTextareaRightButton.js","sources":["../../../../../../src/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { DSIconType, MrlSvg } from '../../..';\nimport classnames from 'classnames';\n\nimport styles from './MrlEditableTextarea.module.scss';\n\nexport interface MrlEditableTextareaRightButtonProps {\n\t/** the action that should be executed when interacting with the icon */\n\taction: (event: React.MouseEvent | React.KeyboardEvent) => void;\n\t/** the icon that will be rendered */\n\ticon: DSIconType;\n\t/** data-qa attribute for the icon */\n\tdataQa?: string;\n\t/** describes the purpouse of the icon button */\n\tlabel: string;\n\t/** determines if the icon has active color or not */\n\thasActiveColor: boolean;\n\tsetHasActiveColor: (hasActiveColor: boolean) => void;\n\t/** the text input value used to calculate the active style */\n\tvalue?: string;\n\tref?: HTMLButtonElement;\n}\n\n/**\n * Renders the right icon in the text input\n *\n * @param {MrlEditableTextareaRightButtonProps} props - the component props\n * @returns a button element with an icon\n */\nexport const MrlEditableTextareaRightButton = React.forwardRef<\n\tHTMLButtonElement,\n\tMrlEditableTextareaRightButtonProps\n>(function MrlTextInputRightButton(\n\t{\n\t\taction,\n\t\tdataQa,\n\t\thasActiveColor,\n\t\ticon,\n\t\tlabel,\n\t\tsetHasActiveColor\n\t}: MrlEditableTextareaRightButtonProps,\n\tref\n): JSX.Element {\n\tconst handleKeyUp = React.useCallback(\n\t\t(e: React.KeyboardEvent<HTMLButtonElement>) => {\n\t\t\tif (e.key === ' ' || e.key === 'Enter') {\n\t\t\t\taction(e);\n\t\t\t}\n\t\t},\n\t\t[action]\n\t);\n\n\treturn (\n\t\t<span\n\t\t\tclassName={classnames(styles['MrlEditableTextarea-dynamicIcon'], {\n\t\t\t\t[styles['MrlEditableTextarea-dynamicIcon--active']]: hasActiveColor\n\t\t\t})}\n\t\t>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\taria-label={label}\n\t\t\t\tonMouseUp={action}\n\t\t\t\tonKeyUp={handleKeyUp}\n\t\t\t\tdata-qa={dataQa}\n\t\t\t\tonMouseEnter={() => setHasActiveColor(true)}\n\t\t\t\tonMouseLeave={() => setHasActiveColor(false)}\n\t\t\t\tonFocus={() => setHasActiveColor(true)}\n\t\t\t\tonBlur={() => setHasActiveColor(false)}\n\t\t\t\tref={ref}\n\t\t\t>\n\t\t\t\t<MrlSvg aria-hidden=\"true\" svg={icon} size=\"small\" />\n\t\t\t</button>\n\t\t</span>\n\t);\n});\n"],"names":["MrlEditableTextareaRightButton","React","forwardRef","MrlTextInputRightButton","_ref","ref","action","dataQa","hasActiveColor","icon","label","setHasActiveColor","handleKeyUp","useCallback","e","key","createElement","className","classnames","styles","type","onMouseUp","onKeyUp","onMouseEnter","onMouseLeave","onFocus","onBlur","MrlSvg","svg","size"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,8BAA8B,gBAAGC,gBAAK,CAACC,UAAU,CAG5D,SAASC,uBAAuBA,CAAAC,IAAA,EASjCC,GAAG,EACW;AAAA,EAAA,IARbC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,MAAM,GAAAH,IAAA,CAANG,MAAM;IACNC,cAAc,GAAAJ,IAAA,CAAdI,cAAc;IACdC,IAAI,GAAAL,IAAA,CAAJK,IAAI;IACJC,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,iBAAiB,GAAAP,IAAA,CAAjBO,iBAAiB;AAIlB,EAAA,IAAMC,WAAW,GAAGX,gBAAK,CAACY,WAAW,CACnCC,CAAyC,IAAK;IAC9C,IAAIA,CAAC,CAACC,GAAG,KAAK,GAAG,IAAID,CAAC,CAACC,GAAG,KAAK,OAAO,EAAE;MACvCT,MAAM,CAACQ,CAAC,CAAC;AACV,IAAA;AACD,EAAA,CAAC,EACD,CAACR,MAAM,CACR,CAAC;EAED,oBACCL,gBAAA,CAAAe,aAAA,CAAA,MAAA,EAAA;AACCC,IAAAA,SAAS,EAAEC,2BAAU,CAACC,kCAAM,CAAC,iCAAiC,CAAC,EAAE;AAChE,MAAA,CAACA,kCAAM,CAAC,yCAAyC,CAAC,GAAGX;KACrD;GAAE,eAEHP,gBAAA,CAAAe,aAAA,CAAA,QAAA,EAAA;AACCI,IAAAA,IAAI,EAAC,QAAQ;AACb,IAAA,YAAA,EAAYV,KAAM;AAClBW,IAAAA,SAAS,EAAEf,MAAO;AAClBgB,IAAAA,OAAO,EAAEV,WAAY;AACrB,IAAA,SAAA,EAASL,MAAO;AAChBgB,IAAAA,YAAY,EAAEA,MAAMZ,iBAAiB,CAAC,IAAI,CAAE;AAC5Ca,IAAAA,YAAY,EAAEA,MAAMb,iBAAiB,CAAC,KAAK,CAAE;AAC7Cc,IAAAA,OAAO,EAAEA,MAAMd,iBAAiB,CAAC,IAAI,CAAE;AACvCe,IAAAA,MAAM,EAAEA,MAAMf,iBAAiB,CAAC,KAAK,CAAE;AACvCN,IAAAA,GAAG,EAAEA;AAAI,GAAA,eAETJ,gBAAA,CAAAe,aAAA,CAACW,aAAM,EAAA;AAAC,IAAA,aAAA,EAAY,MAAM;AAACC,IAAAA,GAAG,EAAEnB,IAAK;AAACoB,IAAAA,IAAI,EAAC;GAAS,CAC7C,CACH,CAAC;AAET,CAAC;;;;"}
|
|
@@ -6,7 +6,10 @@ var classnames = require('classnames');
|
|
|
6
6
|
var MrlTextarea_module = require('./MrlTextarea.module.scss.js');
|
|
7
7
|
var setAttributes = require('../../../../utils/setAttributes/setAttributes.js');
|
|
8
8
|
|
|
9
|
-
function
|
|
9
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
|
|
11
|
+
function _interopNamespace(e) {
|
|
12
|
+
if (e && e.__esModule) return e;
|
|
10
13
|
var n = Object.create(null);
|
|
11
14
|
if (e) {
|
|
12
15
|
Object.keys(e).forEach(function (k) {
|
|
@@ -23,7 +26,8 @@ function _interopNamespaceDefault(e) {
|
|
|
23
26
|
return Object.freeze(n);
|
|
24
27
|
}
|
|
25
28
|
|
|
26
|
-
var React__namespace = /*#__PURE__*/
|
|
29
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
30
|
+
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
27
31
|
|
|
28
32
|
var _excluded = ["attrs", "className", "inputId", "state", "maxLength", "placeholder", "value", "autoExpand"];
|
|
29
33
|
/**
|
|
@@ -45,7 +49,7 @@ function MrlTextarea(_ref) {
|
|
|
45
49
|
autoExpand = _ref$autoExpand === void 0 ? false : _ref$autoExpand,
|
|
46
50
|
rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
|
|
47
51
|
var textareaRef = React__namespace.useRef(null);
|
|
48
|
-
React__namespace.useEffect(
|
|
52
|
+
React__namespace.useEffect(() => {
|
|
49
53
|
if (textareaRef.current && attrs.autofocus) {
|
|
50
54
|
textareaRef.current.focus();
|
|
51
55
|
}
|
|
@@ -53,7 +57,7 @@ function MrlTextarea(_ref) {
|
|
|
53
57
|
var dataMaxLength = attrs['data-maxlength'];
|
|
54
58
|
|
|
55
59
|
// Special use-case for AI Chat Input (AI-658)
|
|
56
|
-
React__namespace.useEffect(
|
|
60
|
+
React__namespace.useEffect(() => {
|
|
57
61
|
if (autoExpand && textareaRef.current) {
|
|
58
62
|
textareaRef.current.style.height = '0px';
|
|
59
63
|
var scrollHeight = textareaRef.current.scrollHeight + 4;
|
|
@@ -72,16 +76,19 @@ function MrlTextarea(_ref) {
|
|
|
72
76
|
if (hasMaxLength && hasDataMaxLength) {
|
|
73
77
|
throw new Error('maxLength and data-maxlength should not be used at the same time');
|
|
74
78
|
}
|
|
75
|
-
var inputClasses =
|
|
76
|
-
|
|
79
|
+
var inputClasses = classnames__default.default(attrs.class || attrs.className, className, MrlTextarea_module.default['MrlTextarea'], 'MrlTextarea', 'mrl-textarea', {
|
|
80
|
+
[MrlTextarea_module.default['MrlTextarea--auto-expand']]: autoExpand,
|
|
81
|
+
[MrlTextarea_module.default['MrlTextarea--read-only']]: state === 'read-only'
|
|
82
|
+
});
|
|
83
|
+
delete attrs.class;
|
|
77
84
|
delete attrs.className;
|
|
78
85
|
var attributes = setAttributes.setAttributes(attrs);
|
|
79
|
-
var renderCounter =
|
|
86
|
+
var renderCounter = () => {
|
|
80
87
|
var displayedValue = dataMaxLength ? dataMaxLength : maxLength;
|
|
81
88
|
var valueExceedsDataMaxLength = dataMaxLength && value ? value.length > dataMaxLength : false;
|
|
82
89
|
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("span", {
|
|
83
90
|
"aria-hidden": "true",
|
|
84
|
-
className:
|
|
91
|
+
className: classnames__default.default('MrlCounter', {
|
|
85
92
|
'MrlCounter-overMaxLength': valueExceedsDataMaxLength
|
|
86
93
|
}),
|
|
87
94
|
id: "".concat(inputId, "-visible-counter")
|
|
@@ -109,7 +116,7 @@ function MrlTextarea(_ref) {
|
|
|
109
116
|
ref: textareaRef,
|
|
110
117
|
readOnly: state === 'read-only'
|
|
111
118
|
}))), displayCounter && state !== 'read-only' && /*#__PURE__*/React__namespace.createElement("span", {
|
|
112
|
-
className:
|
|
119
|
+
className: classnames__default.default(MrlTextarea_module.default['MrlForm-counter'], 'MrlForm-counter')
|
|
113
120
|
}, renderCounter()));
|
|
114
121
|
}
|
|
115
122
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MrlTextarea.js","sources":["../../../../../../src/components/form/textarea/MrlTextarea/MrlTextarea.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { AttrsObject, setAttributes } from '../../../../utils';\n\nimport styles from './MrlTextarea.module.scss';\nimport './MrlTextarea.global.scss';\n\ntype MrlTextareaState = 'default' | 'disabled' | 'error' | 'read-only';\n\ninterface MrlTextareaProps {\n\t/** Applies additional HTML attributes to the textarea element */\n\tattrs?: AttrsObject;\n\t/** The value of the textarea used to make it a controlled input */\n\tvalue?: string;\n\t/**\n\t * The maximum number of characters that the user can enter.\n\t * If undefined or set to \"0\", removes the character counter from the textarea\n\t */\n\tmaxLength?: number;\n\t/**\n\t * Id of the text input.\n\t */\n\tinputId: string;\n\t/**\n\t * Text placeholder for the text input.\n\t */\n\tplaceholder?: string;\n\t/**\n\t * Changes the state of the input based on user permissions or actions.\n\t */\n\tstate?: MrlTextareaState;\n\n\t/** Additional class to add to the textarea */\n\tclassName?: string;\n\n\t/** Autoexpand will automatically adjust the height of the textarea based on the amount of text within it */\n\tautoExpand?: boolean;\n}\n\n/**\n * Allows the user to input plain text in a multi-line format\n * @param {MrlTextareaProps} props - the component props\n * @returns a textarea element\n */\nexport function MrlTextarea({\n\tattrs = {},\n\tclassName,\n\tinputId,\n\tstate = 'default',\n\tmaxLength,\n\tplaceholder,\n\tvalue,\n\tautoExpand = false,\n\t...rest\n}: MrlTextareaProps): JSX.Element {\n\tconst textareaRef = React.useRef<HTMLTextAreaElement>(null);\n\n\tReact.useEffect(() => {\n\t\tif (textareaRef.current && attrs.autofocus) {\n\t\t\ttextareaRef.current.focus();\n\t\t}\n\t}, [attrs, textareaRef]);\n\n\tconst dataMaxLength = attrs['data-maxlength'];\n\n\t// Special use-case for AI Chat Input (AI-658)\n\tReact.useEffect(() => {\n\t\tif (autoExpand && textareaRef.current) {\n\t\t\ttextareaRef.current.style.height = '0px';\n\t\t\tconst scrollHeight = textareaRef.current.scrollHeight + 4;\n\t\t\ttextareaRef.current.style.height = scrollHeight + 'px';\n\t\t}\n\t}, [value, autoExpand]);\n\n\tconst hasMaxLength = typeof maxLength !== 'undefined' && Number(maxLength) > 0;\n\tconst hasDataMaxLength = typeof dataMaxLength !== 'undefined' && Number(dataMaxLength) > 0;\n\n\tconst displayCounter = hasMaxLength || hasDataMaxLength;\n\n\tif (hasMaxLength && isNaN(Number(maxLength))) {\n\t\tthrow new Error('maxLength should have type number');\n\t}\n\n\tif (hasDataMaxLength && isNaN(Number(hasDataMaxLength))) {\n\t\tthrow new Error('data-maxlength should have type number');\n\t}\n\n\tif (hasMaxLength && hasDataMaxLength) {\n\t\tthrow new Error('maxLength and data-maxlength should not be used at the same time');\n\t}\n\n\tconst inputClasses = classnames(\n\t\tattrs.class || attrs.className,\n\t\tclassName,\n\t\tstyles['MrlTextarea'],\n\t\t'MrlTextarea',\n\t\t'mrl-textarea',\n\t\t{\n\t\t\t[styles['MrlTextarea--auto-expand']]: autoExpand,\n\t\t\t[styles['MrlTextarea--read-only']]: state === 'read-only'\n\t\t}\n\t);\n\n\tdelete attrs.class;\n\tdelete attrs.className;\n\n\tconst attributes = setAttributes(attrs);\n\n\tconst renderCounter = () => {\n\t\tconst displayedValue = dataMaxLength ? dataMaxLength : maxLength;\n\t\tconst valueExceedsDataMaxLength = dataMaxLength && value ? value.length > dataMaxLength : false;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<span\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={classnames('MrlCounter', {\n\t\t\t\t\t\t'MrlCounter-overMaxLength': valueExceedsDataMaxLength\n\t\t\t\t\t})}\n\t\t\t\t\tid={`${inputId}-visible-counter`}\n\t\t\t\t>\n\t\t\t\t\t{value?.length || 0}/{displayedValue}\n\t\t\t\t</span>\n\t\t\t\t<p style={{ display: 'none' }} id={`${inputId}-counter`}>\n\t\t\t\t\t{`${displayedValue - (value?.length || 0)} of ${displayedValue} characters remaining`}\n\t\t\t\t</p>\n\t\t\t</>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"MrlTextarea--wrapper\">\n\t\t\t\t<textarea\n\t\t\t\t\t{...rest}\n\t\t\t\t\t{...attributes}\n\t\t\t\t\tid={inputId}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\tclassName={inputClasses}\n\t\t\t\t\t// Force value if defined (controlled component) or pass\n\t\t\t\t\t// undefined and fallback to the default (uncontrolled)\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tdisabled={state === 'disabled'}\n\t\t\t\t\taria-invalid={state === 'error'}\n\t\t\t\t\taria-describedby={`${inputId}-counter`}\n\t\t\t\t\tmaxLength={hasMaxLength ? maxLength : undefined}\n\t\t\t\t\tref={textareaRef}\n\t\t\t\t\treadOnly={state === 'read-only'}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{displayCounter && state !== 'read-only' && (\n\t\t\t\t<span className={classnames(styles['MrlForm-counter'], 'MrlForm-counter')}>\n\t\t\t\t\t{renderCounter()}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"],"names":["MrlTextarea","_ref","_ref$attrs","attrs","className","inputId","_ref$state","state","maxLength","placeholder","value","_ref$autoExpand","autoExpand","rest","_objectWithoutProperties","_excluded","textareaRef","React","useRef","useEffect","current","autofocus","focus","dataMaxLength","style","height","scrollHeight","hasMaxLength","Number","hasDataMaxLength","displayCounter","isNaN","Error","inputClasses","classnames","
|
|
1
|
+
{"version":3,"file":"MrlTextarea.js","sources":["../../../../../../src/components/form/textarea/MrlTextarea/MrlTextarea.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { AttrsObject, setAttributes } from '../../../../utils';\n\nimport styles from './MrlTextarea.module.scss';\nimport './MrlTextarea.global.scss';\n\ntype MrlTextareaState = 'default' | 'disabled' | 'error' | 'read-only';\n\ninterface MrlTextareaProps {\n\t/** Applies additional HTML attributes to the textarea element */\n\tattrs?: AttrsObject;\n\t/** The value of the textarea used to make it a controlled input */\n\tvalue?: string;\n\t/**\n\t * The maximum number of characters that the user can enter.\n\t * If undefined or set to \"0\", removes the character counter from the textarea\n\t */\n\tmaxLength?: number;\n\t/**\n\t * Id of the text input.\n\t */\n\tinputId: string;\n\t/**\n\t * Text placeholder for the text input.\n\t */\n\tplaceholder?: string;\n\t/**\n\t * Changes the state of the input based on user permissions or actions.\n\t */\n\tstate?: MrlTextareaState;\n\n\t/** Additional class to add to the textarea */\n\tclassName?: string;\n\n\t/** Autoexpand will automatically adjust the height of the textarea based on the amount of text within it */\n\tautoExpand?: boolean;\n}\n\n/**\n * Allows the user to input plain text in a multi-line format\n * @param {MrlTextareaProps} props - the component props\n * @returns a textarea element\n */\nexport function MrlTextarea({\n\tattrs = {},\n\tclassName,\n\tinputId,\n\tstate = 'default',\n\tmaxLength,\n\tplaceholder,\n\tvalue,\n\tautoExpand = false,\n\t...rest\n}: MrlTextareaProps): JSX.Element {\n\tconst textareaRef = React.useRef<HTMLTextAreaElement>(null);\n\n\tReact.useEffect(() => {\n\t\tif (textareaRef.current && attrs.autofocus) {\n\t\t\ttextareaRef.current.focus();\n\t\t}\n\t}, [attrs, textareaRef]);\n\n\tconst dataMaxLength = attrs['data-maxlength'];\n\n\t// Special use-case for AI Chat Input (AI-658)\n\tReact.useEffect(() => {\n\t\tif (autoExpand && textareaRef.current) {\n\t\t\ttextareaRef.current.style.height = '0px';\n\t\t\tconst scrollHeight = textareaRef.current.scrollHeight + 4;\n\t\t\ttextareaRef.current.style.height = scrollHeight + 'px';\n\t\t}\n\t}, [value, autoExpand]);\n\n\tconst hasMaxLength = typeof maxLength !== 'undefined' && Number(maxLength) > 0;\n\tconst hasDataMaxLength = typeof dataMaxLength !== 'undefined' && Number(dataMaxLength) > 0;\n\n\tconst displayCounter = hasMaxLength || hasDataMaxLength;\n\n\tif (hasMaxLength && isNaN(Number(maxLength))) {\n\t\tthrow new Error('maxLength should have type number');\n\t}\n\n\tif (hasDataMaxLength && isNaN(Number(hasDataMaxLength))) {\n\t\tthrow new Error('data-maxlength should have type number');\n\t}\n\n\tif (hasMaxLength && hasDataMaxLength) {\n\t\tthrow new Error('maxLength and data-maxlength should not be used at the same time');\n\t}\n\n\tconst inputClasses = classnames(\n\t\tattrs.class || attrs.className,\n\t\tclassName,\n\t\tstyles['MrlTextarea'],\n\t\t'MrlTextarea',\n\t\t'mrl-textarea',\n\t\t{\n\t\t\t[styles['MrlTextarea--auto-expand']]: autoExpand,\n\t\t\t[styles['MrlTextarea--read-only']]: state === 'read-only'\n\t\t}\n\t);\n\n\tdelete attrs.class;\n\tdelete attrs.className;\n\n\tconst attributes = setAttributes(attrs);\n\n\tconst renderCounter = () => {\n\t\tconst displayedValue = dataMaxLength ? dataMaxLength : maxLength;\n\t\tconst valueExceedsDataMaxLength = dataMaxLength && value ? value.length > dataMaxLength : false;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<span\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={classnames('MrlCounter', {\n\t\t\t\t\t\t'MrlCounter-overMaxLength': valueExceedsDataMaxLength\n\t\t\t\t\t})}\n\t\t\t\t\tid={`${inputId}-visible-counter`}\n\t\t\t\t>\n\t\t\t\t\t{value?.length || 0}/{displayedValue}\n\t\t\t\t</span>\n\t\t\t\t<p style={{ display: 'none' }} id={`${inputId}-counter`}>\n\t\t\t\t\t{`${displayedValue - (value?.length || 0)} of ${displayedValue} characters remaining`}\n\t\t\t\t</p>\n\t\t\t</>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"MrlTextarea--wrapper\">\n\t\t\t\t<textarea\n\t\t\t\t\t{...rest}\n\t\t\t\t\t{...attributes}\n\t\t\t\t\tid={inputId}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\tclassName={inputClasses}\n\t\t\t\t\t// Force value if defined (controlled component) or pass\n\t\t\t\t\t// undefined and fallback to the default (uncontrolled)\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tdisabled={state === 'disabled'}\n\t\t\t\t\taria-invalid={state === 'error'}\n\t\t\t\t\taria-describedby={`${inputId}-counter`}\n\t\t\t\t\tmaxLength={hasMaxLength ? maxLength : undefined}\n\t\t\t\t\tref={textareaRef}\n\t\t\t\t\treadOnly={state === 'read-only'}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{displayCounter && state !== 'read-only' && (\n\t\t\t\t<span className={classnames(styles['MrlForm-counter'], 'MrlForm-counter')}>\n\t\t\t\t\t{renderCounter()}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"],"names":["MrlTextarea","_ref","_ref$attrs","attrs","className","inputId","_ref$state","state","maxLength","placeholder","value","_ref$autoExpand","autoExpand","rest","_objectWithoutProperties","_excluded","textareaRef","React","useRef","useEffect","current","autofocus","focus","dataMaxLength","style","height","scrollHeight","hasMaxLength","Number","hasDataMaxLength","displayCounter","isNaN","Error","inputClasses","classnames","class","styles","attributes","setAttributes","renderCounter","displayedValue","valueExceedsDataMaxLength","length","createElement","Fragment","id","concat","display","_extends","disabled","undefined","ref","readOnly"],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ var actions = {
|
|
|
42
42
|
* @param {string | undefined} search - current searchstring to determine how to handle space presses
|
|
43
43
|
* @returns {number | undefined} - returns action number or quits from function execution
|
|
44
44
|
*/
|
|
45
|
-
var getActionFromKey =
|
|
45
|
+
var getActionFromKey = (event, isMenuOpen, search) => {
|
|
46
46
|
var key = event.key,
|
|
47
47
|
altKey = event.altKey,
|
|
48
48
|
ctrlKey = event.ctrlKey,
|
|
@@ -121,9 +121,7 @@ function getDescribedby() {
|
|
|
121
121
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
122
122
|
args[_key] = arguments[_key];
|
|
123
123
|
}
|
|
124
|
-
var describedby = args.filter(
|
|
125
|
-
return Boolean(str);
|
|
126
|
-
}).join(' ');
|
|
124
|
+
var describedby = args.filter(str => Boolean(str)).join(' ');
|
|
127
125
|
if (describedby === '') return {};
|
|
128
126
|
return {
|
|
129
127
|
'aria-describedby': describedby
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/components/form/utils.ts"],"sourcesContent":["import { type KeyboardEvent } from 'react';\n\n/**\n * Defines all of the possible actions a user can take with their keyboard in a select.\n * This is used to create a more human-friendly connection between the actions and\n * keyboard short cuts since multiple keys may perform the same action.\n * See getActionFromKey for more details.\n *\n * @todo - need to verify what the pageDown/Up keys do differently. They have a\n * \t\tdifferent action in the getUpdatedIndex function but need to understand\n * \t\ta bit more. This is not merge blocking for MVP\n */\nexport const actions = {\n\t// Closes the menu without changing the value\n\tClose: 0,\n\t// Selects an item and closes the menu in one key press\n\tCloseSelect: 1,\n\t// Opens the menu and moves focus to the first item in the the menu\n\tFirst: 2,\n\t// Opens the menu and moves focus to the last item in the menu\n\tLast: 3,\n\t// Moves focus to the next item in the list\n\tNext: 4,\n\t// Displays the menu and moves focus to the selected item\n\tOpen: 5,\n\tPageDown: 6,\n\tPageUp: 7,\n\t// Moves focus to the previous item in the list\n\tPrevious: 8,\n\t// Selects the item without closing the list??\n\t// I don't think this is used anywhere\n\t// Select: 9,\n\t// The user is free-form typing to find an item in the menu\n\tType: 10\n};\n\n/**\n * Map a key press to an action (see the )\n *\n * @param {KeyboardEvent} event - keyboard event\n * @param {boolean} isMenuOpen - dropdown menu state\n * @param {string | undefined} search - current searchstring to determine how to handle space presses\n * @returns {number | undefined} - returns action number or quits from function execution\n */\nexport const getActionFromKey = (\n\tevent: KeyboardEvent,\n\tisMenuOpen: boolean,\n\tsearch?: string | undefined\n): number | undefined => {\n\tconst { key, altKey, ctrlKey, metaKey } = event;\n\n\t// all keys that will do the default open action\n\tconst openKeys = ['ArrowDown', 'ArrowUp', ' '];\n\n\t// handle opening when closed\n\tif (!isMenuOpen && openKeys.includes(key)) return actions.Open;\n\n\t// home and end move the selected option when open or closed\n\tif (key === 'Home') return actions.First;\n\tif (key === 'End') return actions.Last;\n\n\t// handle typing characters when open or closed\n\tif (\n\t\tkey === 'Backspace' ||\n\t\tkey === 'Clear' ||\n\t\t(key.length === 1 && key !== ' ' && !altKey && !ctrlKey && !metaKey) ||\n\t\t(search !== '' && key === ' ')\n\t) {\n\t\treturn actions.Type;\n\t}\n\n\t// handle shortcuts only allowed when the menu is open\n\tif (isMenuOpen) {\n\t\tswitch (key) {\n\t\tcase 'ArrowUp':\n\t\t\treturn altKey ? actions.CloseSelect : actions.Previous;\n\t\tcase 'ArrowDown':\n\t\t\treturn !altKey ? actions.Next : undefined;\n\t\tcase 'PageUp':\n\t\t\treturn actions.PageUp;\n\t\tcase 'PageDown':\n\t\t\treturn actions.PageDown;\n\t\tcase 'Escape':\n\t\t\treturn actions.Close;\n\t\tcase 'Enter':\n\t\tcase ' ':\n\t\t\treturn actions.CloseSelect;\n\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t}\n};\n\n/**\n * Get an updated item index based on the action\n *\n * @param {number} currentIndex - index of the active menu item\n * @param {number} maxIndex - last menu item's index\n * @param {action} action - keyboard key action\n * @returns {number} - returns updated index\n */\nexport const getUpdatedIndex = (currentIndex: number, maxIndex = 0, action: number): number => {\n\tswitch (action) {\n\tcase actions.First:\n\t\treturn 0;\n\tcase actions.Last:\n\t\treturn maxIndex;\n\tcase actions.Previous:\n\t\treturn Math.max(0, currentIndex === null ? 0 : currentIndex - 1);\n\tcase actions.Next:\n\t\treturn Math.min(maxIndex, currentIndex === null ? 0 : currentIndex + 1);\n\tcase actions.PageUp:\n\t\treturn Math.max(0, currentIndex === null ? 0 : currentIndex - maxIndex);\n\tcase actions.PageDown:\n\t\treturn Math.min(maxIndex, currentIndex === null ? 0 : currentIndex + maxIndex);\n\tdefault:\n\t\treturn currentIndex;\n\t}\n};\n\n/**\n * Checks if the select menu items has scrollable overflow\n *\n * @param {HTMLElement} menu - select menu component\n * @returns {boolean} - true if the menu has overflow content\n */\nexport const isScrollable = (menu: HTMLElement): boolean =>\n\tmenu && menu.clientHeight < menu.scrollHeight;\n\n/**\n * Ensures a given child element is within the parents's visible scroll area.\n * If the child is not visible, it scrolls the parent element.\n *\n * @param {HTMLElement} childEl - clicked/focused select item\n * @param {HTMLElement} scrollParent - select menu component\n * @todo - POST MVP - this could be a more reusable util function for other components\n * @todo - POST MVP - the marginY should be more dynamic\n */\nexport const maintainScrollVisibility = (childEl: HTMLElement, scrollParent: HTMLElement): void => {\n\tconst { offsetHeight, offsetTop } = childEl;\n\tconst { offsetHeight: parentOffsetHeight, scrollTop } = scrollParent;\n\n\tconst isAbove = offsetTop < scrollTop;\n\tconst isBelow = offsetTop + offsetHeight > scrollTop + parentOffsetHeight;\n\n\t// total amount of select item's Y-axis spacing\n\tconst marginY = 4 + 4;\n\n\tif (isAbove) {\n\t\tscrollParent.scrollTo(0, offsetTop - marginY);\n\t} else if (isBelow) {\n\t\tscrollParent.scrollTo(0, offsetTop - parentOffsetHeight + offsetHeight + marginY);\n\t}\n};\n\n/**\n * Filters an array of items against an input string\n * returns an array of options that begin with the filter string, case-independent\n *\n * @param {Element[]} options - menu items list\n * @param {string} filter - pressed letters combination\n * @returns {Element[]} - filtered options\n */\nconst filterOptions = (options: Element[], filter: string): Element[] => {\n\treturn options.filter((option) => {\n\t\tconst matches = option.textContent?.toLowerCase().indexOf(filter.toLowerCase()) === 0;\n\t\treturn matches;\n\t});\n};\n\n/**\n * Checks if the pressed letter is the same as previously pressed\n *\n * @param {string[]} array - filter string split by letters\n * @returns {boolean} - if the pressed letter is the same as previously pressed\n */\nconst allSameLetter = (array: Array<string>) =>\n\tarray.every((letter: string) => letter === array[0]);\n\n/**\n * Returns the index of an option from an array of options, based on a search string\n * if the filter is multiple iterations of the same letter (e.g \"aaa\"), then cycle through first-letter matches\n *\n * @param {Element[]} options - menu items list\n * @param {string} filter - pressed letters combination\n * @param {number} startIndex - start index\n * @returns {number} - menu item's index\n */\nexport const getIndexByLetter = (options: Element[], filter: string, startIndex = 0): number => {\n\tconst orderedOptions = [...options.slice(startIndex), ...options.slice(0, startIndex)];\n\tconst firstMatch = filterOptions(orderedOptions, filter)[0];\n\n\t// first check if there is an exact match for the typed string\n\tif (firstMatch) return options.indexOf(firstMatch);\n\t// if the same letter is being repeated, cycle through first-letter matches\n\telse if (allSameLetter(filter.split(''))) {\n\t\tconst matches = filterOptions(orderedOptions, filter[0]);\n\t\treturn options.indexOf(matches[0]);\n\t}\n\n\t// if no matches, return -1\n\telse return -1;\n};\n\ntype DebounceType = number | null | undefined;\ntype CallbackType = (_debounce: number) => void;\n\n/**\n * Waits a predetermined time before calling a function\n *\n * @param {Function} func - function to call after timeout\n * @param {number} timeout - time to wait before calling function\n * @param {number} debounce - existing debounce to clear\n * @param {Function} callback - callback function to update debounce\n * @returns {Function} - function to reset debounce and call callback\n * @todo - 4969 investigate combining this debounce function with the modal debounce function\n */\nexport const debounce = (\n\tfunc: () => void,\n\ttimeout = 500,\n\tdebounce: DebounceType,\n\tcallback: CallbackType\n): (() => void) => {\n\tif (debounce !== null) {\n\t\tclearTimeout(debounce);\n\t\tdebounce = null;\n\t}\n\treturn () => {\n\t\tdebounce = window.setTimeout(() => {\n\t\t\tfunc.apply(this);\n\t\t}, timeout);\n\t\tcallback(debounce);\n\t};\n};\n\ntype GetAriaDescribedByReturn =\n\t| { ['aria-describedby']?: string }\n\t| { ['aria-describedby']: string };\n\n/**\n * Generates the 'aria-describedby' attribute from multiple ids\n *\n * @param {Array<string | undefined>} args ids\n * @returns {GetAriaDescribedByReturn} an object with aria-describedby\n */\nexport function getDescribedby(...args: Array<string | undefined>): GetAriaDescribedByReturn {\n\tconst describedby = args.filter((str) => Boolean(str)).join(' ');\n\tif (describedby === '') return {};\n\treturn {\n\t\t'aria-describedby': describedby\n\t};\n}\n"],"names":["actions","Close","CloseSelect","First","Last","Next","Open","PageDown","PageUp","Previous","Type","getActionFromKey","event","isMenuOpen","search","key","altKey","ctrlKey","metaKey","openKeys","includes","length","undefined","getUpdatedIndex","currentIndex","maxIndex","arguments","action","Math","max","min","getDescribedby","_len","args","Array","_key","describedby","filter","str","Boolean","join"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/components/form/utils.ts"],"sourcesContent":["import { type KeyboardEvent } from 'react';\n\n/**\n * Defines all of the possible actions a user can take with their keyboard in a select.\n * This is used to create a more human-friendly connection between the actions and\n * keyboard short cuts since multiple keys may perform the same action.\n * See getActionFromKey for more details.\n *\n * @todo - need to verify what the pageDown/Up keys do differently. They have a\n * \t\tdifferent action in the getUpdatedIndex function but need to understand\n * \t\ta bit more. This is not merge blocking for MVP\n */\nexport const actions = {\n\t// Closes the menu without changing the value\n\tClose: 0,\n\t// Selects an item and closes the menu in one key press\n\tCloseSelect: 1,\n\t// Opens the menu and moves focus to the first item in the the menu\n\tFirst: 2,\n\t// Opens the menu and moves focus to the last item in the menu\n\tLast: 3,\n\t// Moves focus to the next item in the list\n\tNext: 4,\n\t// Displays the menu and moves focus to the selected item\n\tOpen: 5,\n\tPageDown: 6,\n\tPageUp: 7,\n\t// Moves focus to the previous item in the list\n\tPrevious: 8,\n\t// Selects the item without closing the list??\n\t// I don't think this is used anywhere\n\t// Select: 9,\n\t// The user is free-form typing to find an item in the menu\n\tType: 10\n};\n\n/**\n * Map a key press to an action (see the )\n *\n * @param {KeyboardEvent} event - keyboard event\n * @param {boolean} isMenuOpen - dropdown menu state\n * @param {string | undefined} search - current searchstring to determine how to handle space presses\n * @returns {number | undefined} - returns action number or quits from function execution\n */\nexport const getActionFromKey = (\n\tevent: KeyboardEvent,\n\tisMenuOpen: boolean,\n\tsearch?: string | undefined\n): number | undefined => {\n\tconst { key, altKey, ctrlKey, metaKey } = event;\n\n\t// all keys that will do the default open action\n\tconst openKeys = ['ArrowDown', 'ArrowUp', ' '];\n\n\t// handle opening when closed\n\tif (!isMenuOpen && openKeys.includes(key)) return actions.Open;\n\n\t// home and end move the selected option when open or closed\n\tif (key === 'Home') return actions.First;\n\tif (key === 'End') return actions.Last;\n\n\t// handle typing characters when open or closed\n\tif (\n\t\tkey === 'Backspace' ||\n\t\tkey === 'Clear' ||\n\t\t(key.length === 1 && key !== ' ' && !altKey && !ctrlKey && !metaKey) ||\n\t\t(search !== '' && key === ' ')\n\t) {\n\t\treturn actions.Type;\n\t}\n\n\t// handle shortcuts only allowed when the menu is open\n\tif (isMenuOpen) {\n\t\tswitch (key) {\n\t\tcase 'ArrowUp':\n\t\t\treturn altKey ? actions.CloseSelect : actions.Previous;\n\t\tcase 'ArrowDown':\n\t\t\treturn !altKey ? actions.Next : undefined;\n\t\tcase 'PageUp':\n\t\t\treturn actions.PageUp;\n\t\tcase 'PageDown':\n\t\t\treturn actions.PageDown;\n\t\tcase 'Escape':\n\t\t\treturn actions.Close;\n\t\tcase 'Enter':\n\t\tcase ' ':\n\t\t\treturn actions.CloseSelect;\n\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t}\n};\n\n/**\n * Get an updated item index based on the action\n *\n * @param {number} currentIndex - index of the active menu item\n * @param {number} maxIndex - last menu item's index\n * @param {action} action - keyboard key action\n * @returns {number} - returns updated index\n */\nexport const getUpdatedIndex = (currentIndex: number, maxIndex = 0, action: number): number => {\n\tswitch (action) {\n\tcase actions.First:\n\t\treturn 0;\n\tcase actions.Last:\n\t\treturn maxIndex;\n\tcase actions.Previous:\n\t\treturn Math.max(0, currentIndex === null ? 0 : currentIndex - 1);\n\tcase actions.Next:\n\t\treturn Math.min(maxIndex, currentIndex === null ? 0 : currentIndex + 1);\n\tcase actions.PageUp:\n\t\treturn Math.max(0, currentIndex === null ? 0 : currentIndex - maxIndex);\n\tcase actions.PageDown:\n\t\treturn Math.min(maxIndex, currentIndex === null ? 0 : currentIndex + maxIndex);\n\tdefault:\n\t\treturn currentIndex;\n\t}\n};\n\n/**\n * Checks if the select menu items has scrollable overflow\n *\n * @param {HTMLElement} menu - select menu component\n * @returns {boolean} - true if the menu has overflow content\n */\nexport const isScrollable = (menu: HTMLElement): boolean =>\n\tmenu && menu.clientHeight < menu.scrollHeight;\n\n/**\n * Ensures a given child element is within the parents's visible scroll area.\n * If the child is not visible, it scrolls the parent element.\n *\n * @param {HTMLElement} childEl - clicked/focused select item\n * @param {HTMLElement} scrollParent - select menu component\n * @todo - POST MVP - this could be a more reusable util function for other components\n * @todo - POST MVP - the marginY should be more dynamic\n */\nexport const maintainScrollVisibility = (childEl: HTMLElement, scrollParent: HTMLElement): void => {\n\tconst { offsetHeight, offsetTop } = childEl;\n\tconst { offsetHeight: parentOffsetHeight, scrollTop } = scrollParent;\n\n\tconst isAbove = offsetTop < scrollTop;\n\tconst isBelow = offsetTop + offsetHeight > scrollTop + parentOffsetHeight;\n\n\t// total amount of select item's Y-axis spacing\n\tconst marginY = 4 + 4;\n\n\tif (isAbove) {\n\t\tscrollParent.scrollTo(0, offsetTop - marginY);\n\t} else if (isBelow) {\n\t\tscrollParent.scrollTo(0, offsetTop - parentOffsetHeight + offsetHeight + marginY);\n\t}\n};\n\n/**\n * Filters an array of items against an input string\n * returns an array of options that begin with the filter string, case-independent\n *\n * @param {Element[]} options - menu items list\n * @param {string} filter - pressed letters combination\n * @returns {Element[]} - filtered options\n */\nconst filterOptions = (options: Element[], filter: string): Element[] => {\n\treturn options.filter((option) => {\n\t\tconst matches = option.textContent?.toLowerCase().indexOf(filter.toLowerCase()) === 0;\n\t\treturn matches;\n\t});\n};\n\n/**\n * Checks if the pressed letter is the same as previously pressed\n *\n * @param {string[]} array - filter string split by letters\n * @returns {boolean} - if the pressed letter is the same as previously pressed\n */\nconst allSameLetter = (array: Array<string>) =>\n\tarray.every((letter: string) => letter === array[0]);\n\n/**\n * Returns the index of an option from an array of options, based on a search string\n * if the filter is multiple iterations of the same letter (e.g \"aaa\"), then cycle through first-letter matches\n *\n * @param {Element[]} options - menu items list\n * @param {string} filter - pressed letters combination\n * @param {number} startIndex - start index\n * @returns {number} - menu item's index\n */\nexport const getIndexByLetter = (options: Element[], filter: string, startIndex = 0): number => {\n\tconst orderedOptions = [...options.slice(startIndex), ...options.slice(0, startIndex)];\n\tconst firstMatch = filterOptions(orderedOptions, filter)[0];\n\n\t// first check if there is an exact match for the typed string\n\tif (firstMatch) return options.indexOf(firstMatch);\n\t// if the same letter is being repeated, cycle through first-letter matches\n\telse if (allSameLetter(filter.split(''))) {\n\t\tconst matches = filterOptions(orderedOptions, filter[0]);\n\t\treturn options.indexOf(matches[0]);\n\t}\n\n\t// if no matches, return -1\n\telse return -1;\n};\n\ntype DebounceType = number | null | undefined;\ntype CallbackType = (_debounce: number) => void;\n\n/**\n * Waits a predetermined time before calling a function\n *\n * @param {Function} func - function to call after timeout\n * @param {number} timeout - time to wait before calling function\n * @param {number} debounce - existing debounce to clear\n * @param {Function} callback - callback function to update debounce\n * @returns {Function} - function to reset debounce and call callback\n * @todo - 4969 investigate combining this debounce function with the modal debounce function\n */\nexport const debounce = (\n\tfunc: () => void,\n\ttimeout = 500,\n\tdebounce: DebounceType,\n\tcallback: CallbackType\n): (() => void) => {\n\tif (debounce !== null) {\n\t\tclearTimeout(debounce);\n\t\tdebounce = null;\n\t}\n\treturn () => {\n\t\tdebounce = window.setTimeout(() => {\n\t\t\tfunc.apply(this);\n\t\t}, timeout);\n\t\tcallback(debounce);\n\t};\n};\n\ntype GetAriaDescribedByReturn =\n\t| { ['aria-describedby']?: string }\n\t| { ['aria-describedby']: string };\n\n/**\n * Generates the 'aria-describedby' attribute from multiple ids\n *\n * @param {Array<string | undefined>} args ids\n * @returns {GetAriaDescribedByReturn} an object with aria-describedby\n */\nexport function getDescribedby(...args: Array<string | undefined>): GetAriaDescribedByReturn {\n\tconst describedby = args.filter((str) => Boolean(str)).join(' ');\n\tif (describedby === '') return {};\n\treturn {\n\t\t'aria-describedby': describedby\n\t};\n}\n"],"names":["actions","Close","CloseSelect","First","Last","Next","Open","PageDown","PageUp","Previous","Type","getActionFromKey","event","isMenuOpen","search","key","altKey","ctrlKey","metaKey","openKeys","includes","length","undefined","getUpdatedIndex","currentIndex","maxIndex","arguments","action","Math","max","min","getDescribedby","_len","args","Array","_key","describedby","filter","str","Boolean","join"],"mappings":"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"}
|