@skbkontur/react-ui 0.0.0-5188be76c1 → 0.0.0-53ccdcbfcc
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/CHANGELOG.md +164 -16
- package/cjs/components/Button/Button.d.ts +1 -0
- package/cjs/components/Button/Button.js +18 -6
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.md +68 -0
- package/cjs/components/Button/Button.mixins.d.ts +6 -6
- package/cjs/components/Button/Button.mixins.js +54 -53
- package/cjs/components/Button/Button.mixins.js.map +1 -1
- package/cjs/components/Button/Button.styles.d.ts +2 -1
- package/cjs/components/Button/Button.styles.js +200 -161
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Button/ButtonArrow.js +1 -1
- package/cjs/components/Button/ButtonArrow.js.map +1 -1
- package/cjs/components/Button/ButtonIcon.js +1 -4
- package/cjs/components/Button/ButtonIcon.js.map +1 -1
- package/cjs/components/Button/getInnerLinkTheme.js +1 -0
- package/cjs/components/Button/getInnerLinkTheme.js.map +1 -1
- package/cjs/components/Calendar/Calendar.js +8 -6
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.js +8 -7
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Clickable/ArrowLeftIcon.d.ts +3 -0
- package/cjs/components/Clickable/ArrowLeftIcon.js +15 -0
- package/cjs/components/Clickable/ArrowLeftIcon.js.map +1 -0
- package/cjs/components/Clickable/ArrowRightIcon.d.ts +3 -0
- package/cjs/components/Clickable/ArrowRightIcon.js +15 -0
- package/cjs/components/Clickable/ArrowRightIcon.js.map +1 -0
- package/cjs/components/Clickable/Clickable.d.ts +95 -0
- package/cjs/components/Clickable/Clickable.js +248 -0
- package/cjs/components/Clickable/Clickable.js.map +1 -0
- package/cjs/components/Clickable/Clickable.md +210 -0
- package/cjs/components/Clickable/Clickable.styles.d.ts +11 -0
- package/cjs/components/Clickable/Clickable.styles.js +31 -0
- package/cjs/components/Clickable/Clickable.styles.js.map +1 -0
- package/cjs/components/Clickable/ClickableButton.d.ts +5 -0
- package/cjs/components/Clickable/ClickableButton.js +43 -0
- package/cjs/components/Clickable/ClickableButton.js.map +1 -0
- package/cjs/components/Clickable/ClickableButton.mixins.d.ts +30 -0
- package/cjs/components/Clickable/ClickableButton.mixins.js +134 -0
- package/cjs/components/Clickable/ClickableButton.mixins.js.map +1 -0
- package/cjs/components/Clickable/ClickableButton.styles.d.ts +63 -0
- package/cjs/components/Clickable/ClickableButton.styles.js +604 -0
- package/cjs/components/Clickable/ClickableButton.styles.js.map +1 -0
- package/cjs/components/Clickable/ClickableButtonArrow.d.ts +4 -0
- package/cjs/components/Clickable/ClickableButtonArrow.js +32 -0
- package/cjs/components/Clickable/ClickableButtonArrow.js.map +1 -0
- package/cjs/components/Clickable/ClickableButtonArrow.styles.d.ts +8 -0
- package/cjs/components/Clickable/ClickableButtonArrow.styles.js +40 -0
- package/cjs/components/Clickable/ClickableButtonArrow.styles.js.map +1 -0
- package/cjs/components/Clickable/ClickableButtonCaption.d.ts +2 -0
- package/cjs/components/Clickable/ClickableButtonCaption.js +57 -0
- package/cjs/components/Clickable/ClickableButtonCaption.js.map +1 -0
- package/cjs/components/Clickable/ClickableButtonCaption.styles.d.ts +5 -0
- package/cjs/components/Clickable/ClickableButtonCaption.styles.js +23 -0
- package/cjs/components/Clickable/ClickableButtonCaption.styles.js.map +1 -0
- package/cjs/components/Clickable/ClickableButtonIcon.d.ts +7 -0
- package/cjs/components/Clickable/ClickableButtonIcon.js +64 -0
- package/cjs/components/Clickable/ClickableButtonIcon.js.map +1 -0
- package/cjs/components/Clickable/ClickableButtonIcon.styles.d.ts +19 -0
- package/cjs/components/Clickable/ClickableButtonIcon.styles.js +108 -0
- package/cjs/components/Clickable/ClickableButtonIcon.styles.js.map +1 -0
- package/cjs/components/Clickable/ClickableButtonLoadingIcon.d.ts +6 -0
- package/cjs/components/Clickable/ClickableButtonLoadingIcon.js +19 -0
- package/cjs/components/Clickable/ClickableButtonLoadingIcon.js.map +1 -0
- package/cjs/components/Clickable/ClickableButtonLoadingIcon.styles.d.ts +3 -0
- package/cjs/components/Clickable/ClickableButtonLoadingIcon.styles.js +17 -0
- package/cjs/components/Clickable/ClickableButtonLoadingIcon.styles.js.map +1 -0
- package/cjs/components/Clickable/ClickableButtonOutline.d.ts +4 -0
- package/cjs/components/Clickable/ClickableButtonOutline.js +36 -0
- package/cjs/components/Clickable/ClickableButtonOutline.js.map +1 -0
- package/cjs/components/Clickable/ClickableButtonOutline.styles.d.ts +6 -0
- package/cjs/components/Clickable/ClickableButtonOutline.styles.js +25 -0
- package/cjs/components/Clickable/ClickableButtonOutline.styles.js.map +1 -0
- package/cjs/components/Clickable/ClickableButtonWrapper.d.ts +3 -0
- package/cjs/components/Clickable/ClickableButtonWrapper.js +27 -0
- package/cjs/components/Clickable/ClickableButtonWrapper.js.map +1 -0
- package/cjs/components/Clickable/ClickableButtonWrapper.styles.d.ts +7 -0
- package/cjs/components/Clickable/ClickableButtonWrapper.styles.js +27 -0
- package/cjs/components/Clickable/ClickableButtonWrapper.styles.js.map +1 -0
- package/cjs/components/Clickable/ClickableLink.d.ts +5 -0
- package/cjs/components/Clickable/ClickableLink.js +28 -0
- package/cjs/components/Clickable/ClickableLink.js.map +1 -0
- package/cjs/components/Clickable/ClickableLink.styles.d.ts +21 -0
- package/cjs/components/Clickable/ClickableLink.styles.js +134 -0
- package/cjs/components/Clickable/ClickableLink.styles.js.map +1 -0
- package/cjs/components/Clickable/ClickableLinkChild.d.ts +7 -0
- package/cjs/components/Clickable/ClickableLinkChild.js +40 -0
- package/cjs/components/Clickable/ClickableLinkChild.js.map +1 -0
- package/cjs/components/Clickable/ClickableLinkChild.styles.d.ts +7 -0
- package/cjs/components/Clickable/ClickableLinkChild.styles.js +42 -0
- package/cjs/components/Clickable/ClickableLinkChild.styles.js.map +1 -0
- package/cjs/components/Clickable/ClickableLinkIcon.d.ts +7 -0
- package/cjs/components/Clickable/ClickableLinkIcon.js +30 -0
- package/cjs/components/Clickable/ClickableLinkIcon.js.map +1 -0
- package/cjs/components/Clickable/ClickableLinkIcon.styles.d.ts +6 -0
- package/cjs/components/Clickable/ClickableLinkIcon.styles.js +20 -0
- package/cjs/components/Clickable/ClickableLinkIcon.styles.js.map +1 -0
- package/cjs/components/Clickable/index.d.ts +1 -0
- package/cjs/components/Clickable/index.js +1 -0
- package/cjs/components/Clickable/index.js.map +1 -0
- package/cjs/components/Clickable/utils.d.ts +6 -0
- package/cjs/components/Clickable/utils.js +47 -0
- package/cjs/components/Clickable/utils.js.map +1 -0
- package/cjs/components/CurrencyInput/CurrencyInput.js +3 -1
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js +2 -1
- package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
- package/cjs/components/DateInput/DateInput.js +2 -1
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DateInput/helpers/SelectionHelpers.js +11 -10
- package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
- package/cjs/components/Dropdown/getDropdownTheme.js +21 -22
- package/cjs/components/Dropdown/getDropdownTheme.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.js +5 -5
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.styles.d.ts +1 -1
- package/cjs/components/FileUploader/FileUploader.styles.js +10 -2
- package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +1 -2
- package/cjs/components/GlobalLoader/GlobalLoader.js +11 -16
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +1 -2
- package/cjs/components/GlobalLoader/GlobalLoaderView.js +3 -5
- package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
- package/cjs/components/Group/Group.js +7 -5
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Group/Group.md +24 -0
- package/cjs/components/Hint/Hint.js +5 -5
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +22 -5
- package/cjs/components/Input/Input.js +43 -22
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.typings.d.ts +7 -0
- package/cjs/components/Input/Input.typings.js +1 -0
- package/cjs/components/Input/Input.typings.js.map +1 -0
- package/cjs/components/Input/InputLayout/InputLayout.d.ts +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.styles.js +7 -2
- package/cjs/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAside.js +1 -7
- package/cjs/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
- package/cjs/components/Input/index.d.ts +1 -0
- package/cjs/components/Input/index.js +2 -1
- package/cjs/components/Input/index.js.map +1 -1
- package/cjs/components/Kebab/Kebab.js +3 -2
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.js +11 -7
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Link/Link.md +69 -0
- package/cjs/components/Link/Link.styles.d.ts +1 -0
- package/cjs/components/Link/Link.styles.js +30 -22
- package/cjs/components/Link/Link.styles.js.map +1 -1
- package/cjs/components/Loader/Loader.js +8 -7
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.d.ts +24 -0
- package/cjs/components/MaskedInput/MaskedInput.js +78 -0
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -0
- package/cjs/components/MaskedInput/MaskedInput.md +21 -0
- package/cjs/components/MaskedInput/index.js.map +1 -0
- package/cjs/components/MenuHeader/MenuHeader.js +3 -1
- package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +21 -0
- package/cjs/components/MenuItem/MenuItem.js +113 -15
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.md +20 -6
- package/cjs/components/MiniModal/MiniModal.d.ts +18 -0
- package/cjs/components/MiniModal/MiniModal.js +47 -0
- package/cjs/components/MiniModal/MiniModal.js.map +1 -0
- package/cjs/components/MiniModal/MiniModal.md +233 -0
- package/cjs/components/MiniModal/MiniModal.styles.d.ts +14 -0
- package/cjs/components/MiniModal/MiniModal.styles.js +87 -0
- package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -0
- package/cjs/components/MiniModal/MiniModalBody.d.ts +7 -0
- package/cjs/components/MiniModal/MiniModalBody.js +24 -0
- package/cjs/components/MiniModal/MiniModalBody.js.map +1 -0
- package/cjs/components/MiniModal/MiniModalFooter.d.ts +18 -0
- package/cjs/components/MiniModal/MiniModalFooter.js +60 -0
- package/cjs/components/MiniModal/MiniModalFooter.js.map +1 -0
- package/cjs/components/MiniModal/MiniModalHeader.d.ts +17 -0
- package/cjs/components/MiniModal/MiniModalHeader.js +47 -0
- package/cjs/components/MiniModal/MiniModalHeader.js.map +1 -0
- package/cjs/components/MiniModal/MiniModalIndent.d.ts +6 -0
- package/cjs/components/MiniModal/MiniModalIndent.js +29 -0
- package/cjs/components/MiniModal/MiniModalIndent.js.map +1 -0
- package/cjs/components/MiniModal/getMiniModalTheme.d.ts +16 -0
- package/cjs/components/MiniModal/getMiniModalTheme.js +24 -0
- package/cjs/components/MiniModal/getMiniModalTheme.js.map +1 -0
- package/cjs/components/MiniModal/index.d.ts +5 -0
- package/cjs/components/MiniModal/index.js +5 -0
- package/cjs/components/MiniModal/index.js.map +1 -0
- package/cjs/components/Modal/Modal.d.ts +6 -0
- package/cjs/components/Modal/Modal.js +15 -1
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.d.ts +5 -0
- package/cjs/components/Modal/Modal.styles.js +56 -39
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/Modal/ModalClose.js +2 -1
- package/cjs/components/Modal/ModalClose.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.js +1 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Modal/ModalSeparator.d.ts +5 -0
- package/cjs/components/Modal/ModalSeparator.js +5 -0
- package/cjs/components/Modal/ModalSeparator.js.map +1 -1
- package/cjs/components/Modal/getModalTheme.d.ts +2 -2
- package/cjs/components/Modal/getModalTheme.js +6 -2
- package/cjs/components/Modal/getModalTheme.js.map +1 -1
- package/cjs/components/Paging/NavigationHelper.js +2 -1
- package/cjs/components/Paging/NavigationHelper.js.map +1 -1
- package/cjs/components/Paging/Paging.js +16 -14
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/Paging.styles.d.ts +0 -1
- package/cjs/components/Paging/Paging.styles.js +3 -9
- package/cjs/components/Paging/Paging.styles.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js +4 -2
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.js +2 -1
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +5 -6
- package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.d.ts +4 -7
- package/cjs/components/ScrollContainer/ScrollBar.js +15 -45
- package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.constants.js +1 -2
- package/cjs/components/ScrollContainer/ScrollContainer.constants.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +18 -3
- package/cjs/components/ScrollContainer/ScrollContainer.js +102 -21
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.md +29 -2
- package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +0 -4
- package/cjs/components/ScrollContainer/ScrollContainer.styles.js +8 -30
- package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
- package/cjs/components/Select/Item.d.ts +1 -0
- package/cjs/components/Select/Item.js +2 -1
- package/cjs/components/Select/Item.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +2 -0
- package/cjs/components/Select/Select.js +25 -8
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/Select.md +12 -0
- package/cjs/components/SidePage/SidePage.d.ts +3 -1
- package/cjs/components/SidePage/SidePage.js +36 -5
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageCloseButton.js +2 -1
- package/cjs/components/SidePage/SidePageCloseButton.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
- package/cjs/components/SidePage/SidePageHeader.js +8 -6
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/SingleToast/SingleToast.d.ts +11 -0
- package/cjs/components/SingleToast/SingleToast.js +20 -0
- package/cjs/components/SingleToast/SingleToast.js.map +1 -0
- package/cjs/components/SingleToast/SingleToast.md +35 -0
- package/cjs/components/SingleToast/index.d.ts +1 -0
- package/cjs/components/SingleToast/index.js +1 -0
- package/cjs/components/SingleToast/index.js.map +1 -0
- package/cjs/components/Spinner/Spinner.d.ts +1 -0
- package/cjs/components/Spinner/Spinner.js +16 -1
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Spinner/SpinnerFallbackAnimation.js +6 -2
- package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
- package/cjs/components/Sticky/Sticky.js +5 -10
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +1 -1
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Tabs/Indicator.js +3 -1
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.js +2 -1
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.js +3 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +1 -0
- package/cjs/components/Textarea/Textarea.js +38 -11
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/TextareaCounter.d.ts +1 -1
- package/cjs/components/Textarea/TextareaCounter.js +2 -1
- package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
- package/cjs/components/Textarea/TextareaHelpers.d.ts +1 -1
- package/cjs/components/Textarea/TextareaHelpers.js +7 -2
- package/cjs/components/Textarea/TextareaHelpers.js.map +1 -1
- package/cjs/components/Textarea/TextareaWithSafari17Workaround.d.ts +6 -0
- package/cjs/components/Textarea/TextareaWithSafari17Workaround.js +20 -0
- package/cjs/components/Textarea/TextareaWithSafari17Workaround.js.map +1 -0
- package/cjs/components/Toast/Toast.d.ts +10 -3
- package/cjs/components/Toast/Toast.js +26 -8
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/Toast.md +0 -105
- package/cjs/components/Toast/ToastStatic.js +4 -3
- package/cjs/components/Toast/ToastStatic.js.map +1 -1
- package/cjs/components/Token/Token.js +1 -6
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
- package/cjs/components/TokenInput/TokenInput.js +42 -9
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.md +71 -0
- package/cjs/components/Tooltip/Tooltip.d.ts +6 -1
- package/cjs/components/Tooltip/Tooltip.js +15 -5
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.md +24 -0
- package/cjs/hooks/useDrop.js +3 -2
- package/cjs/hooks/useDrop.js.map +1 -1
- package/cjs/index.d.ts +5 -0
- package/cjs/index.js +5 -0
- package/cjs/index.js.map +1 -1
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js +2 -1
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
- package/cjs/internal/ComponentCombinator.d.ts +7 -8
- package/cjs/internal/ComponentCombinator.js +2 -5
- package/cjs/internal/ComponentCombinator.js.map +1 -1
- package/cjs/internal/ComponentTable.d.ts +7 -19
- package/cjs/internal/ComponentTable.js +50 -77
- package/cjs/internal/ComponentTable.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.js +4 -3
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +3 -2
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.js +20 -16
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +0 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.js +14 -13
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/DropdownContainer/getManualPosition.js +6 -4
- package/cjs/internal/DropdownContainer/getManualPosition.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +2 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/cjs/internal/FocusTrap/FocusTrap.js +8 -6
- package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +19 -20
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +3 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js +17 -16
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/{MaskedInput/MaskedInput.d.ts → InternalMaskedInput/InternalMaskedInput.d.ts} +8 -5
- package/cjs/internal/{MaskedInput/MaskedInput.js → InternalMaskedInput/InternalMaskedInput.js} +11 -8
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -0
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.styles.js.map +1 -0
- package/cjs/internal/InternalMaskedInput/index.d.ts +1 -0
- package/cjs/internal/InternalMaskedInput/index.js +1 -0
- package/cjs/internal/InternalMaskedInput/index.js.map +1 -0
- package/cjs/internal/InternalMenu/InternalMenu.js +8 -7
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/MaskedInputElement/MaskedInputElement.d.ts +14 -0
- package/cjs/internal/MaskedInputElement/MaskedInputElement.helpers.d.ts +16 -0
- package/cjs/internal/MaskedInputElement/MaskedInputElement.helpers.js +52 -0
- package/cjs/internal/MaskedInputElement/MaskedInputElement.helpers.js.map +1 -0
- package/cjs/internal/MaskedInputElement/MaskedInputElement.js +196 -0
- package/cjs/internal/MaskedInputElement/MaskedInputElement.js.map +1 -0
- package/cjs/internal/MaskedInputElement/MaskedInputElement.styles.js +29 -0
- package/cjs/internal/MaskedInputElement/MaskedInputElement.styles.js.map +1 -0
- package/cjs/internal/MaskedInputElement/index.d.ts +1 -0
- package/cjs/internal/MaskedInputElement/index.js +1 -0
- package/cjs/internal/MaskedInputElement/index.js.map +1 -0
- package/cjs/internal/Menu/Menu.d.ts +6 -0
- package/cjs/internal/Menu/Menu.js +84 -16
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/Menu/MenuContext.d.ts +10 -0
- package/cjs/internal/Menu/MenuContext.js +16 -0
- package/cjs/internal/Menu/MenuContext.js.map +1 -0
- package/cjs/internal/Menu/MenuNavigation.d.ts +26 -0
- package/cjs/internal/Menu/MenuNavigation.js +107 -0
- package/cjs/internal/Menu/MenuNavigation.js.map +1 -0
- package/cjs/internal/Menu/isActiveElement.js +1 -1
- package/cjs/internal/Menu/isActiveElement.js.map +1 -1
- package/cjs/internal/MenuMessage/MenuMessage.d.ts +1 -1
- package/cjs/internal/Popup/Popup.js +12 -8
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupHelper.js +9 -7
- package/cjs/internal/Popup/PopupHelper.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js +3 -2
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.d.ts +0 -1
- package/cjs/internal/RenderContainer/RenderContainer.js +18 -22
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +2 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.js +5 -3
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/VariableValue.js +1 -0
- package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
- package/cjs/internal/ThemePlayground/constants.js +1 -0
- package/cjs/internal/ThemePlayground/constants.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.js +6 -4
- package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
- package/cjs/internal/ZIndex/ZIndex.js +2 -2
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/ZIndex/ZIndexStorage.js +2 -2
- package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
- package/cjs/internal/icons/16px/index.d.ts +19 -19
- package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.d.ts +1 -1
- package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.d.ts +1 -1
- package/cjs/internal/icons2022/BaseIcon.d.ts +1 -1
- package/cjs/internal/icons2022/BaseIcon.js +3 -7
- package/cjs/internal/icons2022/BaseIcon.js.map +1 -1
- package/cjs/internal/icons2022/BaseIcon.styles.d.ts +3 -0
- package/cjs/internal/icons2022/BaseIcon.styles.js +14 -0
- package/cjs/internal/icons2022/BaseIcon.styles.js.map +1 -0
- package/cjs/internal/icons2022/CalendarIcon/CalendarIcon16Light.d.ts +1 -1
- package/cjs/internal/icons2022/CalendarIcon/CalendarIcon20Light.d.ts +1 -1
- package/cjs/internal/icons2022/CalendarIcon/CalendarIcon24Regular.d.ts +1 -1
- package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Light.d.ts +1 -1
- package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Regular.d.ts +1 -1
- package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Solid.d.ts +1 -1
- package/cjs/internal/icons2022/CheckAIcon/CheckAIcon20Light.d.ts +1 -1
- package/cjs/internal/icons2022/CheckAIcon/CheckAIcon20Solid.d.ts +1 -1
- package/cjs/internal/icons2022/CheckAIcon/CheckAIcon24Regular.d.ts +1 -1
- package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.d.ts +1 -1
- package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.d.ts +1 -1
- package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.d.ts +1 -1
- package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.d.ts +1 -1
- package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.d.ts +1 -1
- package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.d.ts +1 -1
- package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.d.ts +2 -0
- package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js +20 -0
- package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js.map +1 -0
- package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.d.ts +1 -1
- package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.d.ts +1 -1
- package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.d.ts +1 -1
- package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Light.d.ts +1 -1
- package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Regular.d.ts +1 -1
- package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon20Light.d.ts +1 -1
- package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon24Regular.d.ts +1 -1
- package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.d.ts +1 -1
- package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon20Light.d.ts +1 -1
- package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.d.ts +1 -1
- package/cjs/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.d.ts +1 -1
- package/cjs/internal/icons2022/SearchLoupeIcon/SearchLoupeIcon16Regular.d.ts +1 -1
- package/cjs/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.d.ts +1 -1
- package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.d.ts +1 -1
- package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.d.ts +1 -1
- package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.d.ts +1 -1
- package/cjs/internal/icons2022/XIcon/XIcon16Light.d.ts +1 -1
- package/cjs/internal/icons2022/XIcon/XIcon16Regular.d.ts +1 -1
- package/cjs/internal/icons2022/XIcon/XIcon20Light.d.ts +1 -1
- package/cjs/internal/icons2022/XIcon/XIcon20Regular.d.ts +1 -1
- package/cjs/internal/icons2022/XIcon/XIcon24Regular.d.ts +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +67 -2
- package/cjs/internal/themes/DefaultTheme.js +134 -7
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/internal/themes/Theme2022.d.ts +22 -7
- package/cjs/internal/themes/Theme2022.js +40 -11
- package/cjs/internal/themes/Theme2022.js.map +1 -1
- package/cjs/internal/themes/Theme2022Dark.d.ts +5 -9
- package/cjs/internal/themes/Theme2022Dark.js +10 -10
- package/cjs/internal/themes/Theme2022Dark.js.map +1 -1
- package/cjs/lib/LayoutEvents.js +5 -4
- package/cjs/lib/LayoutEvents.js.map +1 -1
- package/cjs/lib/ModalStack.js +2 -3
- package/cjs/lib/ModalStack.js.map +1 -1
- package/cjs/lib/SSRSafe.d.ts +1 -6
- package/cjs/lib/SSRSafe.js +4 -48
- package/cjs/lib/SSRSafe.js.map +1 -1
- package/cjs/lib/Upgrades.d.ts +1 -0
- package/cjs/lib/Upgrades.js +3 -1
- package/cjs/lib/Upgrades.js.map +1 -1
- package/cjs/lib/animation/index.js +6 -4
- package/cjs/lib/animation/index.js.map +1 -1
- package/cjs/lib/chars.d.ts +1 -1
- package/cjs/lib/chars.js +2 -2
- package/cjs/lib/chars.js.map +1 -1
- package/cjs/lib/client.d.ts +2 -7
- package/cjs/lib/client.js +9 -7
- package/cjs/lib/client.js.map +1 -1
- package/cjs/lib/dom/getScrollWidth.js +4 -4
- package/cjs/lib/dom/getScrollWidth.js.map +1 -1
- package/cjs/lib/dom/tabbableHelpers.d.ts +2 -1
- package/cjs/lib/dom/tabbableHelpers.js +8 -2
- package/cjs/lib/dom/tabbableHelpers.js.map +1 -1
- package/cjs/lib/events/MouseDrag.js +11 -11
- package/cjs/lib/events/MouseDrag.js.map +1 -1
- package/cjs/lib/events/fixClickFocusIE.js +6 -3
- package/cjs/lib/events/fixClickFocusIE.js.map +1 -1
- package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js +5 -2
- package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -1
- package/cjs/lib/events/keyListener.js +9 -11
- package/cjs/lib/events/keyListener.js.map +1 -1
- package/cjs/lib/events/keyboard/identifiers.js +5 -2
- package/cjs/lib/events/keyboard/identifiers.js.map +1 -1
- package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +185 -0
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +8 -0
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.js +5 -0
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.js.map +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +10 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +20 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -0
- package/cjs/lib/featureFlagsContext/index.d.ts +2 -0
- package/cjs/lib/featureFlagsContext/index.js +3 -0
- package/cjs/lib/featureFlagsContext/index.js.map +1 -0
- package/cjs/lib/forwardRefAndName.d.ts +1 -1
- package/cjs/lib/forwardRefAndName.js +4 -1
- package/cjs/lib/forwardRefAndName.js.map +1 -1
- package/cjs/lib/isInstanceOf.d.ts +1 -0
- package/cjs/lib/isInstanceOf.js +6 -0
- package/cjs/lib/isInstanceOf.js.map +1 -0
- package/cjs/lib/listenFocusOutside.js +15 -15
- package/cjs/lib/listenFocusOutside.js.map +1 -1
- package/cjs/lib/needsPolyfillPlaceholder.js +5 -3
- package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -1
- package/cjs/lib/net/fetch.js +24 -18
- package/cjs/lib/net/fetch.js.map +1 -1
- package/cjs/lib/rootNode/getRootNode.js +6 -6
- package/cjs/lib/rootNode/getRootNode.js.map +1 -1
- package/cjs/lib/styles/ColorFactory.js +13 -11
- package/cjs/lib/styles/ColorFactory.js.map +1 -1
- package/cjs/lib/styles/ColorHelpers.d.ts +1 -1
- package/cjs/lib/styles/ColorHelpers.js +3 -7
- package/cjs/lib/styles/ColorHelpers.js.map +1 -1
- package/cjs/lib/taskWithDelayAndMinimalDuration.js +5 -5
- package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/cjs/lib/theming/Emotion.js +4 -2
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/cjs/lib/utils.d.ts +7 -0
- package/cjs/lib/utils.js +29 -7
- package/cjs/lib/utils.js.map +1 -1
- package/cjs/typings/global.d.ts +3 -4
- package/cjs/typings/react-ref.d.ts +29 -0
- package/cjs/typings/utility-types.d.ts +2 -0
- package/components/Button/Button/Button.js +16 -3
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -0
- package/components/Button/Button.md +68 -0
- package/components/Button/Button.mixins/Button.mixins.js +58 -13
- package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
- package/components/Button/Button.mixins.d.ts +6 -6
- package/components/Button/Button.styles/Button.styles.js +210 -24
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Button/Button.styles.d.ts +2 -1
- package/components/Button/ButtonArrow/ButtonArrow.js +1 -1
- package/components/Button/ButtonArrow/ButtonArrow.js.map +1 -1
- package/components/Button/ButtonIcon/ButtonIcon.js +2 -4
- package/components/Button/ButtonIcon/ButtonIcon.js.map +1 -1
- package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js +1 -0
- package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js.map +1 -1
- package/components/Calendar/Calendar/Calendar.js +8 -6
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Checkbox/Checkbox/Checkbox.js +10 -5
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Clickable/ArrowLeftIcon/ArrowLeftIcon.js +17 -0
- package/components/Clickable/ArrowLeftIcon/ArrowLeftIcon.js.map +1 -0
- package/components/Clickable/ArrowLeftIcon/package.json +6 -0
- package/components/Clickable/ArrowLeftIcon.d.ts +3 -0
- package/components/Clickable/ArrowRightIcon/ArrowRightIcon.js +17 -0
- package/components/Clickable/ArrowRightIcon/ArrowRightIcon.js.map +1 -0
- package/components/Clickable/ArrowRightIcon/package.json +6 -0
- package/components/Clickable/ArrowRightIcon.d.ts +3 -0
- package/components/Clickable/Clickable/Clickable.js +165 -0
- package/components/Clickable/Clickable/Clickable.js.map +1 -0
- package/components/Clickable/Clickable/package.json +6 -0
- package/components/Clickable/Clickable.d.ts +95 -0
- package/components/Clickable/Clickable.md +210 -0
- package/components/Clickable/Clickable.styles/Clickable.styles.js +13 -0
- package/components/Clickable/Clickable.styles/Clickable.styles.js.map +1 -0
- package/components/Clickable/Clickable.styles/package.json +6 -0
- package/components/Clickable/Clickable.styles.d.ts +11 -0
- package/components/Clickable/ClickableButton/ClickableButton.js +31 -0
- package/components/Clickable/ClickableButton/ClickableButton.js.map +1 -0
- package/components/Clickable/ClickableButton/package.json +6 -0
- package/components/Clickable/ClickableButton.d.ts +5 -0
- package/components/Clickable/ClickableButton.mixins/ClickableButton.mixins.js +81 -0
- package/components/Clickable/ClickableButton.mixins/ClickableButton.mixins.js.map +1 -0
- package/components/Clickable/ClickableButton.mixins/package.json +6 -0
- package/components/Clickable/ClickableButton.mixins.d.ts +30 -0
- package/components/Clickable/ClickableButton.styles/ClickableButton.styles.js +313 -0
- package/components/Clickable/ClickableButton.styles/ClickableButton.styles.js.map +1 -0
- package/components/Clickable/ClickableButton.styles/package.json +6 -0
- package/components/Clickable/ClickableButton.styles.d.ts +63 -0
- package/components/Clickable/ClickableButtonArrow/ClickableButtonArrow.js +21 -0
- package/components/Clickable/ClickableButtonArrow/ClickableButtonArrow.js.map +1 -0
- package/components/Clickable/ClickableButtonArrow/package.json +6 -0
- package/components/Clickable/ClickableButtonArrow.d.ts +4 -0
- package/components/Clickable/ClickableButtonArrow.styles/ClickableButtonArrow.styles.js +22 -0
- package/components/Clickable/ClickableButtonArrow.styles/ClickableButtonArrow.styles.js.map +1 -0
- package/components/Clickable/ClickableButtonArrow.styles/package.json +6 -0
- package/components/Clickable/ClickableButtonArrow.styles.d.ts +8 -0
- package/components/Clickable/ClickableButtonCaption/ClickableButtonCaption.js +37 -0
- package/components/Clickable/ClickableButtonCaption/ClickableButtonCaption.js.map +1 -0
- package/components/Clickable/ClickableButtonCaption/package.json +6 -0
- package/components/Clickable/ClickableButtonCaption.d.ts +2 -0
- package/components/Clickable/ClickableButtonCaption.styles/ClickableButtonCaption.styles.js +16 -0
- package/components/Clickable/ClickableButtonCaption.styles/ClickableButtonCaption.styles.js.map +1 -0
- package/components/Clickable/ClickableButtonCaption.styles/package.json +6 -0
- package/components/Clickable/ClickableButtonCaption.styles.d.ts +5 -0
- package/components/Clickable/ClickableButtonIcon/ClickableButtonIcon.js +51 -0
- package/components/Clickable/ClickableButtonIcon/ClickableButtonIcon.js.map +1 -0
- package/components/Clickable/ClickableButtonIcon/package.json +6 -0
- package/components/Clickable/ClickableButtonIcon.d.ts +7 -0
- package/components/Clickable/ClickableButtonIcon.styles/ClickableButtonIcon.styles.js +58 -0
- package/components/Clickable/ClickableButtonIcon.styles/ClickableButtonIcon.styles.js.map +1 -0
- package/components/Clickable/ClickableButtonIcon.styles/package.json +6 -0
- package/components/Clickable/ClickableButtonIcon.styles.d.ts +19 -0
- package/components/Clickable/ClickableButtonLoadingIcon/ClickableButtonLoadingIcon.js +18 -0
- package/components/Clickable/ClickableButtonLoadingIcon/ClickableButtonLoadingIcon.js.map +1 -0
- package/components/Clickable/ClickableButtonLoadingIcon/package.json +6 -0
- package/components/Clickable/ClickableButtonLoadingIcon.d.ts +6 -0
- package/components/Clickable/ClickableButtonLoadingIcon.styles/ClickableButtonLoadingIcon.styles.js +10 -0
- package/components/Clickable/ClickableButtonLoadingIcon.styles/ClickableButtonLoadingIcon.styles.js.map +1 -0
- package/components/Clickable/ClickableButtonLoadingIcon.styles/package.json +6 -0
- package/components/Clickable/ClickableButtonLoadingIcon.styles.d.ts +3 -0
- package/components/Clickable/ClickableButtonOutline/ClickableButtonOutline.js +22 -0
- package/components/Clickable/ClickableButtonOutline/ClickableButtonOutline.js.map +1 -0
- package/components/Clickable/ClickableButtonOutline/package.json +6 -0
- package/components/Clickable/ClickableButtonOutline.d.ts +4 -0
- package/components/Clickable/ClickableButtonOutline.styles/ClickableButtonOutline.styles.js +16 -0
- package/components/Clickable/ClickableButtonOutline.styles/ClickableButtonOutline.styles.js.map +1 -0
- package/components/Clickable/ClickableButtonOutline.styles/package.json +6 -0
- package/components/Clickable/ClickableButtonOutline.styles.d.ts +6 -0
- package/components/Clickable/ClickableButtonWrapper/ClickableButtonWrapper.js +18 -0
- package/components/Clickable/ClickableButtonWrapper/ClickableButtonWrapper.js.map +1 -0
- package/components/Clickable/ClickableButtonWrapper/package.json +6 -0
- package/components/Clickable/ClickableButtonWrapper.d.ts +3 -0
- package/components/Clickable/ClickableButtonWrapper.styles/ClickableButtonWrapper.styles.js +19 -0
- package/components/Clickable/ClickableButtonWrapper.styles/ClickableButtonWrapper.styles.js.map +1 -0
- package/components/Clickable/ClickableButtonWrapper.styles/package.json +6 -0
- package/components/Clickable/ClickableButtonWrapper.styles.d.ts +7 -0
- package/components/Clickable/ClickableLink/ClickableLink.js +24 -0
- package/components/Clickable/ClickableLink/ClickableLink.js.map +1 -0
- package/components/Clickable/ClickableLink/package.json +6 -0
- package/components/Clickable/ClickableLink.d.ts +5 -0
- package/components/Clickable/ClickableLink.styles/ClickableLink.styles.js +52 -0
- package/components/Clickable/ClickableLink.styles/ClickableLink.styles.js.map +1 -0
- package/components/Clickable/ClickableLink.styles/package.json +6 -0
- package/components/Clickable/ClickableLink.styles.d.ts +21 -0
- package/components/Clickable/ClickableLinkChild/ClickableLinkChild.js +20 -0
- package/components/Clickable/ClickableLinkChild/ClickableLinkChild.js.map +1 -0
- package/components/Clickable/ClickableLinkChild/package.json +6 -0
- package/components/Clickable/ClickableLinkChild.d.ts +7 -0
- package/components/Clickable/ClickableLinkChild.styles/ClickableLinkChild.styles.js +24 -0
- package/components/Clickable/ClickableLinkChild.styles/ClickableLinkChild.styles.js.map +1 -0
- package/components/Clickable/ClickableLinkChild.styles/package.json +6 -0
- package/components/Clickable/ClickableLinkChild.styles.d.ts +7 -0
- package/components/Clickable/ClickableLinkIcon/ClickableLinkIcon.js +21 -0
- package/components/Clickable/ClickableLinkIcon/ClickableLinkIcon.js.map +1 -0
- package/components/Clickable/ClickableLinkIcon/package.json +6 -0
- package/components/Clickable/ClickableLinkIcon.d.ts +7 -0
- package/components/Clickable/ClickableLinkIcon.styles/ClickableLinkIcon.styles.js +16 -0
- package/components/Clickable/ClickableLinkIcon.styles/ClickableLinkIcon.styles.js.map +1 -0
- package/components/Clickable/ClickableLinkIcon.styles/package.json +6 -0
- package/components/Clickable/ClickableLinkIcon.styles.d.ts +6 -0
- package/components/Clickable/index/index.js +1 -0
- package/components/Clickable/index/index.js.map +1 -0
- package/{internal/MaskedInput → components/Clickable}/index/package.json +1 -1
- package/components/Clickable/index.d.ts +1 -0
- package/{internal/MaskedInput → components/Clickable}/package.json +1 -1
- package/components/Clickable/utils/package.json +6 -0
- package/components/Clickable/utils/utils.js +44 -0
- package/components/Clickable/utils/utils.js.map +1 -0
- package/components/Clickable/utils.d.ts +6 -0
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +3 -1
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js +4 -1
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js +2 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +10 -10
- package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
- package/components/Dropdown/getDropdownTheme/getDropdownTheme.js +21 -22
- package/components/Dropdown/getDropdownTheme/getDropdownTheme.js.map +1 -1
- package/components/FileUploader/FileUploader/FileUploader.js +5 -5
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +2 -2
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
- package/components/FileUploader/FileUploader.styles.d.ts +1 -1
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +30 -34
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +1 -2
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +2 -3
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.d.ts +1 -2
- package/components/Group/Group/Group.js +9 -10
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.md +24 -0
- package/components/Hint/Hint/Hint.js +6 -7
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Input/Input/Input.js +28 -16
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +22 -5
- package/components/Input/Input.typings/Input.typings.js +1 -0
- package/components/Input/Input.typings/Input.typings.js.map +1 -0
- package/components/Input/Input.typings/package.json +6 -0
- package/components/Input/Input.typings.d.ts +7 -0
- package/components/Input/InputLayout/InputLayout.d.ts +1 -1
- package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js +2 -1
- package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutAside/InputLayoutAside.js +1 -2
- package/components/Input/InputLayout/InputLayoutAside/InputLayoutAside.js.map +1 -1
- package/components/Input/index/index.js +2 -1
- package/components/Input/index/index.js.map +1 -1
- package/components/Input/index.d.ts +1 -0
- package/components/Kebab/Kebab/Kebab.js +3 -2
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Link/Link/Link.js +5 -4
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.md +69 -0
- package/components/Link/Link.styles/Link.styles.js +25 -22
- package/components/Link/Link.styles/Link.styles.js.map +1 -1
- package/components/Link/Link.styles.d.ts +1 -0
- package/components/Loader/Loader/Loader.js +9 -6
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/MaskedInput/MaskedInput/MaskedInput.js +62 -0
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -0
- package/{internal → components}/MaskedInput/MaskedInput/package.json +1 -1
- package/components/MaskedInput/MaskedInput.d.ts +24 -0
- package/components/MaskedInput/MaskedInput.md +21 -0
- package/components/MaskedInput/index/index.js.map +1 -0
- package/components/MaskedInput/index/package.json +6 -0
- package/components/MaskedInput/package.json +6 -0
- package/components/MenuHeader/MenuHeader/MenuHeader.js +3 -1
- package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
- package/components/MenuItem/MenuItem/MenuItem.js +129 -19
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +21 -0
- package/components/MenuItem/MenuItem.md +20 -6
- package/components/MiniModal/MiniModal/MiniModal.js +38 -0
- package/components/MiniModal/MiniModal/MiniModal.js.map +1 -0
- package/components/MiniModal/MiniModal/package.json +6 -0
- package/components/MiniModal/MiniModal.d.ts +18 -0
- package/components/MiniModal/MiniModal.md +233 -0
- package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +41 -0
- package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -0
- package/components/MiniModal/MiniModal.styles/package.json +6 -0
- package/components/MiniModal/MiniModal.styles.d.ts +14 -0
- package/components/MiniModal/MiniModalBody/MiniModalBody.js +23 -0
- package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -0
- package/components/MiniModal/MiniModalBody/package.json +6 -0
- package/components/MiniModal/MiniModalBody.d.ts +7 -0
- package/components/MiniModal/MiniModalFooter/MiniModalFooter.js +35 -0
- package/components/MiniModal/MiniModalFooter/MiniModalFooter.js.map +1 -0
- package/components/MiniModal/MiniModalFooter/package.json +6 -0
- package/components/MiniModal/MiniModalFooter.d.ts +18 -0
- package/components/MiniModal/MiniModalHeader/MiniModalHeader.js +33 -0
- package/components/MiniModal/MiniModalHeader/MiniModalHeader.js.map +1 -0
- package/components/MiniModal/MiniModalHeader/package.json +6 -0
- package/components/MiniModal/MiniModalHeader.d.ts +17 -0
- package/components/MiniModal/MiniModalIndent/MiniModalIndent.js +27 -0
- package/components/MiniModal/MiniModalIndent/MiniModalIndent.js.map +1 -0
- package/components/MiniModal/MiniModalIndent/package.json +6 -0
- package/components/MiniModal/MiniModalIndent.d.ts +6 -0
- package/components/MiniModal/getMiniModalTheme/getMiniModalTheme.js +23 -0
- package/components/MiniModal/getMiniModalTheme/getMiniModalTheme.js.map +1 -0
- package/components/MiniModal/getMiniModalTheme/package.json +6 -0
- package/components/MiniModal/getMiniModalTheme.d.ts +16 -0
- package/components/MiniModal/index/index.js +5 -0
- package/components/MiniModal/index/index.js.map +1 -0
- package/components/MiniModal/index/package.json +6 -0
- package/components/MiniModal/index.d.ts +5 -0
- package/components/MiniModal/package.json +6 -0
- package/components/Modal/Modal/Modal.js +18 -14
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +6 -0
- package/components/Modal/Modal.styles/Modal.styles.js +44 -37
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- package/components/Modal/Modal.styles.d.ts +5 -0
- package/components/Modal/ModalClose/ModalClose.js +2 -1
- package/components/Modal/ModalClose/ModalClose.js.map +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Modal/ModalSeparator/ModalSeparator.js +6 -0
- package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
- package/components/Modal/ModalSeparator.d.ts +5 -0
- package/components/Modal/getModalTheme/getModalTheme.js +8 -3
- package/components/Modal/getModalTheme/getModalTheme.js.map +1 -1
- package/components/Modal/getModalTheme.d.ts +2 -2
- package/components/Paging/NavigationHelper/NavigationHelper.js +2 -1
- package/components/Paging/NavigationHelper/NavigationHelper.js.map +1 -1
- package/components/Paging/Paging/Paging.js +16 -10
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.styles/Paging.styles.js +2 -5
- package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
- package/components/Paging/Paging.styles.d.ts +0 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +4 -2
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/Radio/Radio/Radio.js +2 -1
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +5 -6
- package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
- package/components/ScrollContainer/ScrollBar/ScrollBar.js +17 -50
- package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
- package/components/ScrollContainer/ScrollBar.d.ts +4 -7
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +109 -22
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js +1 -2
- package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +18 -3
- package/components/ScrollContainer/ScrollContainer.md +29 -2
- package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +6 -18
- package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.styles.d.ts +0 -4
- package/components/Select/Item/Item.js +3 -1
- package/components/Select/Item/Item.js.map +1 -1
- package/components/Select/Item.d.ts +1 -0
- package/components/Select/Select/Select.js +23 -16
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +2 -0
- package/components/Select/Select.md +12 -0
- package/components/SidePage/SidePage/SidePage.js +34 -9
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +3 -1
- package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js +2 -1
- package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js.map +1 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js +6 -4
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +1 -0
- package/components/SingleToast/SingleToast/SingleToast.js +53 -0
- package/components/SingleToast/SingleToast/SingleToast.js.map +1 -0
- package/components/SingleToast/SingleToast/package.json +6 -0
- package/components/SingleToast/SingleToast.d.ts +11 -0
- package/components/SingleToast/SingleToast.md +35 -0
- package/components/SingleToast/index/index.js +1 -0
- package/components/SingleToast/index/index.js.map +1 -0
- package/components/SingleToast/index/package.json +6 -0
- package/components/SingleToast/index.d.ts +1 -0
- package/components/SingleToast/package.json +6 -0
- package/components/Spinner/Spinner/Spinner.js +10 -4
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +1 -0
- package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +5 -2
- package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
- package/components/Sticky/Sticky/Sticky.js +5 -6
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +1 -1
- package/components/Tabs/Indicator/Indicator.js +3 -1
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Tab/Tab.js +2 -1
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tabs/Tabs.js +3 -1
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Textarea/Textarea/Textarea.js +33 -19
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +1 -0
- package/components/Textarea/TextareaCounter/TextareaCounter.js +2 -3
- package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
- package/components/Textarea/TextareaCounter.d.ts +1 -1
- package/components/Textarea/TextareaHelpers/TextareaHelpers.js +6 -1
- package/components/Textarea/TextareaHelpers/TextareaHelpers.js.map +1 -1
- package/components/Textarea/TextareaHelpers.d.ts +1 -1
- package/components/Textarea/TextareaWithSafari17Workaround/TextareaWithSafari17Workaround.js +21 -0
- package/components/Textarea/TextareaWithSafari17Workaround/TextareaWithSafari17Workaround.js.map +1 -0
- package/components/Textarea/TextareaWithSafari17Workaround/package.json +6 -0
- package/components/Textarea/TextareaWithSafari17Workaround.d.ts +6 -0
- package/components/Toast/Toast/Toast.js +16 -7
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +10 -3
- package/components/Toast/Toast.md +0 -105
- package/components/Toast/ToastStatic/ToastStatic.js +4 -4
- package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
- package/components/Token/Token/Token.js +4 -3
- package/components/Token/Token/Token.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +51 -11
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +2 -0
- package/components/TokenInput/TokenInput.md +71 -0
- package/components/Tooltip/Tooltip/Tooltip.js +10 -7
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +6 -1
- package/components/Tooltip/Tooltip.md +24 -0
- package/hooks/useDrop/useDrop.js +3 -2
- package/hooks/useDrop/useDrop.js.map +1 -1
- package/index.d.ts +5 -0
- package/index.js +5 -0
- package/index.js.map +1 -1
- package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js +2 -1
- package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
- package/internal/ComponentCombinator/ComponentCombinator.js +4 -8
- package/internal/ComponentCombinator/ComponentCombinator.js.map +1 -1
- package/internal/ComponentCombinator.d.ts +7 -8
- package/internal/ComponentTable/ComponentTable.js +66 -103
- package/internal/ComponentTable/ComponentTable.js.map +1 -1
- package/internal/ComponentTable.d.ts +7 -19
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +4 -3
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +3 -2
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/DateSelect/DateSelect/DateSelect.js +20 -20
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +19 -17
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer.d.ts +0 -1
- package/internal/DropdownContainer/getManualPosition/getManualPosition.js +4 -3
- package/internal/DropdownContainer/getManualPosition/getManualPosition.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +2 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -1
- package/internal/FocusTrap/FocusTrap/FocusTrap.js +9 -3
- package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +25 -26
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +3 -1
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +29 -19
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/{MaskedInput/MaskedInput/MaskedInput.js → InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js} +13 -9
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -0
- package/internal/InternalMaskedInput/InternalMaskedInput/package.json +6 -0
- package/internal/{MaskedInput/MaskedInput.d.ts → InternalMaskedInput/InternalMaskedInput.d.ts} +8 -5
- package/{cjs/internal/MaskedInput/MaskedInput.styles.js.map → internal/InternalMaskedInput/InternalMaskedInput.styles/InternalMaskedInput.styles.js.map} +1 -1
- package/internal/InternalMaskedInput/InternalMaskedInput.styles/package.json +6 -0
- package/internal/InternalMaskedInput/InternalMaskedInput.styles.d.ts +6 -0
- package/internal/InternalMaskedInput/index/index.js +1 -0
- package/internal/InternalMaskedInput/index/index.js.map +1 -0
- package/internal/InternalMaskedInput/index/package.json +6 -0
- package/internal/InternalMaskedInput/index.d.ts +1 -0
- package/internal/InternalMaskedInput/package.json +6 -0
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +10 -9
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/MaskedInputElement/MaskedInputElement/MaskedInputElement.js +206 -0
- package/internal/MaskedInputElement/MaskedInputElement/MaskedInputElement.js.map +1 -0
- package/internal/MaskedInputElement/MaskedInputElement/package.json +6 -0
- package/internal/MaskedInputElement/MaskedInputElement.d.ts +14 -0
- package/internal/MaskedInputElement/MaskedInputElement.helpers/MaskedInputElement.helpers.js +43 -0
- package/internal/MaskedInputElement/MaskedInputElement.helpers/MaskedInputElement.helpers.js.map +1 -0
- package/internal/MaskedInputElement/MaskedInputElement.helpers/package.json +6 -0
- package/internal/MaskedInputElement/MaskedInputElement.helpers.d.ts +16 -0
- package/internal/MaskedInputElement/MaskedInputElement.styles/MaskedInputElement.styles.js +16 -0
- package/internal/MaskedInputElement/MaskedInputElement.styles/MaskedInputElement.styles.js.map +1 -0
- package/internal/MaskedInputElement/MaskedInputElement.styles/package.json +6 -0
- package/internal/MaskedInputElement/MaskedInputElement.styles.d.ts +6 -0
- package/internal/MaskedInputElement/index/index.js +1 -0
- package/internal/MaskedInputElement/index/index.js.map +1 -0
- package/internal/MaskedInputElement/index/package.json +6 -0
- package/internal/MaskedInputElement/index.d.ts +1 -0
- package/internal/MaskedInputElement/package.json +6 -0
- package/internal/Menu/Menu/Menu.js +144 -62
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +6 -0
- package/internal/Menu/MenuContext/MenuContext.js +5 -0
- package/internal/Menu/MenuContext/MenuContext.js.map +1 -0
- package/internal/Menu/MenuContext/package.json +6 -0
- package/internal/Menu/MenuContext.d.ts +10 -0
- package/internal/Menu/MenuNavigation/MenuNavigation.js +123 -0
- package/internal/Menu/MenuNavigation/MenuNavigation.js.map +1 -0
- package/internal/Menu/MenuNavigation/package.json +6 -0
- package/internal/Menu/MenuNavigation.d.ts +26 -0
- package/internal/Menu/isActiveElement/isActiveElement.js +1 -1
- package/internal/Menu/isActiveElement/isActiveElement.js.map +1 -1
- package/internal/MenuMessage/MenuMessage.d.ts +1 -1
- package/internal/Popup/Popup/Popup.js +12 -13
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/PopupHelper/PopupHelper.js +8 -5
- package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -2
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +26 -16
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/RenderContainer/RenderContainer.d.ts +0 -1
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +2 -3
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +11 -5
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
- package/internal/ThemePlayground/constants/constants.js +3 -0
- package/internal/ThemePlayground/constants/constants.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +5 -2
- package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +2 -2
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +2 -2
- package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
- package/internal/icons/16px/index.d.ts +19 -19
- package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.d.ts +1 -1
- package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.d.ts +1 -1
- package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.d.ts +1 -1
- package/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.d.ts +1 -1
- package/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.d.ts +1 -1
- package/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.d.ts +1 -1
- package/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.d.ts +1 -1
- package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.d.ts +1 -1
- package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.d.ts +1 -1
- package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.d.ts +1 -1
- package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.d.ts +1 -1
- package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.d.ts +1 -1
- package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.d.ts +1 -1
- package/internal/icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular.d.ts +1 -1
- package/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.d.ts +1 -1
- package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.d.ts +1 -1
- package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.d.ts +1 -1
- package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.d.ts +1 -1
- package/internal/icons2022/BaseIcon/BaseIcon.js +3 -6
- package/internal/icons2022/BaseIcon/BaseIcon.js.map +1 -1
- package/internal/icons2022/BaseIcon.d.ts +1 -1
- package/internal/icons2022/BaseIcon.styles/BaseIcon.styles.js +11 -0
- package/internal/icons2022/BaseIcon.styles/BaseIcon.styles.js.map +1 -0
- package/internal/icons2022/BaseIcon.styles/package.json +6 -0
- package/internal/icons2022/BaseIcon.styles.d.ts +3 -0
- package/internal/icons2022/CalendarIcon/CalendarIcon16Light.d.ts +1 -1
- package/internal/icons2022/CalendarIcon/CalendarIcon20Light.d.ts +1 -1
- package/internal/icons2022/CalendarIcon/CalendarIcon24Regular.d.ts +1 -1
- package/internal/icons2022/CheckAIcon/CheckAIcon16Light.d.ts +1 -1
- package/internal/icons2022/CheckAIcon/CheckAIcon16Regular.d.ts +1 -1
- package/internal/icons2022/CheckAIcon/CheckAIcon16Solid.d.ts +1 -1
- package/internal/icons2022/CheckAIcon/CheckAIcon20Light.d.ts +1 -1
- package/internal/icons2022/CheckAIcon/CheckAIcon20Solid.d.ts +1 -1
- package/internal/icons2022/CheckAIcon/CheckAIcon24Regular.d.ts +1 -1
- package/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.d.ts +1 -1
- package/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.d.ts +1 -1
- package/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.d.ts +1 -1
- package/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.d.ts +1 -1
- package/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.d.ts +1 -1
- package/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.d.ts +1 -1
- package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/InfoCircleIcon64Regular.js +18 -0
- package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/InfoCircleIcon64Regular.js.map +1 -0
- package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/package.json +6 -0
- package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.d.ts +2 -0
- package/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.d.ts +1 -1
- package/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.d.ts +1 -1
- package/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.d.ts +1 -1
- package/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Light.d.ts +1 -1
- package/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Regular.d.ts +1 -1
- package/internal/icons2022/MinusCircleIcon/MinusCircleIcon20Light.d.ts +1 -1
- package/internal/icons2022/MinusCircleIcon/MinusCircleIcon24Regular.d.ts +1 -1
- package/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.d.ts +1 -1
- package/internal/icons2022/NetUploadIcon/NetUploadIcon20Light.d.ts +1 -1
- package/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.d.ts +1 -1
- package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.d.ts +1 -1
- package/internal/icons2022/SearchLoupeIcon/SearchLoupeIcon16Regular.d.ts +1 -1
- package/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.d.ts +1 -1
- package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.d.ts +1 -1
- package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.d.ts +1 -1
- package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.d.ts +1 -1
- package/internal/icons2022/XIcon/XIcon16Light.d.ts +1 -1
- package/internal/icons2022/XIcon/XIcon16Regular.d.ts +1 -1
- package/internal/icons2022/XIcon/XIcon20Light.d.ts +1 -1
- package/internal/icons2022/XIcon/XIcon20Regular.d.ts +1 -1
- package/internal/icons2022/XIcon/XIcon24Regular.d.ts +1 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +178 -6
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +67 -2
- package/internal/themes/Theme2022/Theme2022.js +62 -15
- package/internal/themes/Theme2022/Theme2022.js.map +1 -1
- package/internal/themes/Theme2022.d.ts +22 -7
- package/internal/themes/Theme2022Dark/Theme2022Dark.js +18 -13
- package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -1
- package/internal/themes/Theme2022Dark.d.ts +5 -9
- package/lib/LayoutEvents/LayoutEvents.js +5 -4
- package/lib/LayoutEvents/LayoutEvents.js.map +1 -1
- package/lib/ModalStack/ModalStack.js +2 -2
- package/lib/ModalStack/ModalStack.js.map +1 -1
- package/lib/SSRSafe/SSRSafe.js +3 -35
- package/lib/SSRSafe/SSRSafe.js.map +1 -1
- package/lib/SSRSafe.d.ts +1 -6
- package/lib/Upgrades/Upgrades.js +3 -1
- package/lib/Upgrades/Upgrades.js.map +1 -1
- package/lib/Upgrades.d.ts +1 -0
- package/lib/animation/index/index.js +6 -3
- package/lib/animation/index/index.js.map +1 -1
- package/lib/chars/chars.js +1 -1
- package/lib/chars/chars.js.map +1 -1
- package/lib/chars.d.ts +1 -1
- package/lib/client/client.js +9 -7
- package/lib/client/client.js.map +1 -1
- package/lib/client.d.ts +2 -7
- package/lib/dom/getScrollWidth/getScrollWidth.js +4 -5
- package/lib/dom/getScrollWidth/getScrollWidth.js.map +1 -1
- package/lib/dom/tabbableHelpers/tabbableHelpers.js +4 -2
- package/lib/dom/tabbableHelpers/tabbableHelpers.js.map +1 -1
- package/lib/dom/tabbableHelpers.d.ts +2 -1
- package/lib/events/MouseDrag/MouseDrag.js +15 -11
- package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
- package/lib/events/fixClickFocusIE/fixClickFocusIE.js +4 -2
- package/lib/events/fixClickFocusIE/fixClickFocusIE.js.map +1 -1
- package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js +7 -2
- package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -1
- package/lib/events/keyListener/keyListener.js +9 -12
- package/lib/events/keyListener/keyListener.js.map +1 -1
- package/lib/events/keyboard/identifiers/identifiers.js +3 -1
- package/lib/events/keyboard/identifiers/identifiers.js.map +1 -1
- package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +185 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers/FeatureFlagsHelpers.js +5 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers/FeatureFlagsHelpers.js.map +1 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers/package.json +6 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +8 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +10 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/package.json +6 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +10 -0
- package/lib/featureFlagsContext/index/index.js +2 -0
- package/lib/featureFlagsContext/index/index.js.map +1 -0
- package/lib/featureFlagsContext/index/package.json +6 -0
- package/lib/featureFlagsContext/index.d.ts +2 -0
- package/lib/featureFlagsContext/package.json +6 -0
- package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
- package/lib/forwardRefAndName.d.ts +1 -1
- package/lib/isInstanceOf/isInstanceOf.js +3 -0
- package/lib/isInstanceOf/isInstanceOf.js.map +1 -0
- package/lib/isInstanceOf/package.json +6 -0
- package/lib/isInstanceOf.d.ts +1 -0
- package/lib/listenFocusOutside/listenFocusOutside.js +19 -10
- package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
- package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +4 -3
- package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -1
- package/lib/net/fetch/fetch.js +29 -21
- package/lib/net/fetch/fetch.js.map +1 -1
- package/lib/rootNode/getRootNode/getRootNode.js +6 -6
- package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
- package/lib/styles/ColorFactory/ColorFactory.js +13 -9
- package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
- package/lib/styles/ColorHelpers/ColorHelpers.js +3 -7
- package/lib/styles/ColorHelpers/ColorHelpers.js.map +1 -1
- package/lib/styles/ColorHelpers.d.ts +1 -1
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +5 -4
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/lib/theming/Emotion/Emotion.js +6 -1
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/lib/utils/utils.js +31 -6
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +7 -0
- package/package.json +4 -4
- package/typings/global.d.ts +3 -4
- package/typings/react-ref.d.ts +29 -0
- package/typings/utility-types.d.ts +2 -0
- package/cjs/internal/MaskedInput/MaskedInput.js.map +0 -1
- package/cjs/internal/MaskedInput/index.js.map +0 -1
- package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +0 -1
- package/internal/MaskedInput/MaskedInput.styles/MaskedInput.styles.js.map +0 -1
- package/internal/MaskedInput/MaskedInput.styles/package.json +0 -6
- package/internal/MaskedInput/index/index.js.map +0 -1
- /package/cjs/{internal → components}/MaskedInput/index.d.ts +0 -0
- /package/cjs/{internal → components}/MaskedInput/index.js +0 -0
- /package/cjs/internal/{MaskedInput/MaskedInput.styles.d.ts → InternalMaskedInput/InternalMaskedInput.styles.d.ts} +0 -0
- /package/cjs/internal/{MaskedInput/MaskedInput.styles.js → InternalMaskedInput/InternalMaskedInput.styles.js} +0 -0
- /package/{internal/MaskedInput/MaskedInput.styles.d.ts → cjs/internal/MaskedInputElement/MaskedInputElement.styles.d.ts} +0 -0
- /package/{internal → components}/MaskedInput/index/index.js +0 -0
- /package/{internal → components}/MaskedInput/index.d.ts +0 -0
- /package/internal/{MaskedInput/MaskedInput.styles/MaskedInput.styles.js → InternalMaskedInput/InternalMaskedInput.styles/InternalMaskedInput.styles.js} +0 -0
|
@@ -4,14 +4,15 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
|
4
4
|
var _class, _class2, _temp;
|
|
5
5
|
|
|
6
6
|
import React from 'react';
|
|
7
|
+
import { globalObject, isBrowser } from '@skbkontur/global-object';
|
|
7
8
|
import { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from "../../../lib/events/keyboard/identifiers";
|
|
8
9
|
import { MenuSeparator } from "../../../components/MenuSeparator";
|
|
9
10
|
import { ThemeFactory } from "../../../lib/theming/ThemeFactory";
|
|
10
11
|
import { getDOMRect } from "../../../lib/dom/getDOMRect";
|
|
11
|
-
import { isHTMLElement } from "../../../lib/SSRSafe";
|
|
12
12
|
import { responsiveLayout } from "../../../components/ResponsiveLayout/decorator";
|
|
13
13
|
import { isNonNullable, isNullable } from "../../../lib/utils";
|
|
14
14
|
import { ScrollContainer } from "../../../components/ScrollContainer";
|
|
15
|
+
import { MenuItemDataTids } from "../../../components/MenuItem";
|
|
15
16
|
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
16
17
|
import { cx } from "../../../lib/theming/Emotion";
|
|
17
18
|
import { getRootNode, rootNode } from "../../../lib/rootNode";
|
|
@@ -20,8 +21,12 @@ import { isIE11 } from "../../../lib/client";
|
|
|
20
21
|
import { createPropsGetter } from "../../../lib/createPropsGetter";
|
|
21
22
|
import { isTheme2022 } from "../../../lib/theming/ThemeHelpers";
|
|
22
23
|
import { isIconPaddingEnabled } from "../../InternalMenu/isIconPaddingEnabled";
|
|
24
|
+
import { isInstanceOf } from "../../../lib/isInstanceOf";
|
|
25
|
+
import { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext";
|
|
23
26
|
import { styles } from "../Menu.styles";
|
|
24
27
|
import { isActiveElement } from "../isActiveElement";
|
|
28
|
+
import { MenuNavigation } from "../MenuNavigation";
|
|
29
|
+
import { MenuContext } from "../MenuContext";
|
|
25
30
|
export var MenuDataTids = {
|
|
26
31
|
root: 'Menu__root'
|
|
27
32
|
};
|
|
@@ -40,14 +45,17 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
40
45
|
_this.state = {
|
|
41
46
|
highlightedIndex: -1,
|
|
42
47
|
maxHeight: _this.getProps().maxHeight || 'none',
|
|
43
|
-
scrollState: 'top'
|
|
48
|
+
scrollState: 'top',
|
|
49
|
+
enableIconPadding: false
|
|
44
50
|
};
|
|
45
51
|
_this.unmounted = false;
|
|
52
|
+
_this.contentRef = /*#__PURE__*/React.createRef();
|
|
53
|
+
_this.menuNavigation = new MenuNavigation(_this.contentRef, MenuItemDataTids.content);
|
|
46
54
|
|
|
47
55
|
_this.focusOnRootElement = function () {
|
|
48
56
|
var rootNode = getRootNode(_assertThisInitialized(_this));
|
|
49
57
|
|
|
50
|
-
if (
|
|
58
|
+
if (isInstanceOf(rootNode, globalObject.HTMLElement)) {
|
|
51
59
|
rootNode == null ? void 0 : rootNode.focus();
|
|
52
60
|
}
|
|
53
61
|
};
|
|
@@ -91,6 +99,10 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
91
99
|
};
|
|
92
100
|
|
|
93
101
|
_this.getChildList = function () {
|
|
102
|
+
if (_this.menuItemsAtAnyLevel) {
|
|
103
|
+
return _this.props.children;
|
|
104
|
+
}
|
|
105
|
+
|
|
94
106
|
var enableIconPadding = isIconPaddingEnabled(_this.props.children, _this.props.preventIconsOffset);
|
|
95
107
|
return React.Children.map(_this.props.children, function (child, index) {
|
|
96
108
|
if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {
|
|
@@ -147,8 +159,8 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
147
159
|
var parsedMaxHeight = maxHeight;
|
|
148
160
|
var rootNode = getRootNode(_assertThisInitialized(_this));
|
|
149
161
|
|
|
150
|
-
if (typeof maxHeight === 'string' &&
|
|
151
|
-
var rootElementMaxHeight =
|
|
162
|
+
if (typeof maxHeight === 'string' && isBrowser(globalObject) && rootNode) {
|
|
163
|
+
var rootElementMaxHeight = globalObject.getComputedStyle == null ? void 0 : globalObject.getComputedStyle(rootNode).maxHeight;
|
|
152
164
|
|
|
153
165
|
if (rootElementMaxHeight) {
|
|
154
166
|
parsedMaxHeight = parseFloat(rootElementMaxHeight);
|
|
@@ -167,11 +179,13 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
167
179
|
};
|
|
168
180
|
|
|
169
181
|
_this.scrollToSelected = function () {
|
|
170
|
-
|
|
171
|
-
|
|
182
|
+
var highlightedItem = _this.menuItemsAtAnyLevel ? _this.menuNavigation.highlightedItem : _this.highlighted;
|
|
183
|
+
|
|
184
|
+
if (_this.scrollContainer && highlightedItem) {
|
|
185
|
+
var _rootNode = getRootNode(highlightedItem); // TODO: Remove this check once IF-647 is resolved
|
|
172
186
|
|
|
173
187
|
|
|
174
|
-
if (_rootNode
|
|
188
|
+
if (isInstanceOf(_rootNode, globalObject.HTMLElement)) {
|
|
175
189
|
_this.scrollContainer.scrollTo(_rootNode);
|
|
176
190
|
}
|
|
177
191
|
}
|
|
@@ -189,6 +203,21 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
189
203
|
}
|
|
190
204
|
};
|
|
191
205
|
|
|
206
|
+
_this.scroll = function (nextIndex) {
|
|
207
|
+
switch (nextIndex) {
|
|
208
|
+
case 0:
|
|
209
|
+
_this.scrollToTop == null ? void 0 : _this.scrollToTop();
|
|
210
|
+
break;
|
|
211
|
+
|
|
212
|
+
case _this.menuNavigation.items.length - 1:
|
|
213
|
+
_this.scrollToBottom == null ? void 0 : _this.scrollToBottom();
|
|
214
|
+
break;
|
|
215
|
+
|
|
216
|
+
default:
|
|
217
|
+
_this.scrollToSelected == null ? void 0 : _this.scrollToSelected();
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
|
|
192
221
|
_this.highlight = function (index) {
|
|
193
222
|
_this.setState({
|
|
194
223
|
highlightedIndex: index
|
|
@@ -219,7 +248,9 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
219
248
|
|
|
220
249
|
_this.down();
|
|
221
250
|
} else if (isKeyEnter(event)) {
|
|
222
|
-
if (_this.
|
|
251
|
+
if (_this.menuItemsAtAnyLevel) {
|
|
252
|
+
_this.menuNavigation.select(event);
|
|
253
|
+
} else if (_this.highlighted && _this.highlighted.props.onClick) {
|
|
223
254
|
_this.highlighted.props.onClick(event);
|
|
224
255
|
}
|
|
225
256
|
}
|
|
@@ -248,6 +279,12 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
248
279
|
}
|
|
249
280
|
};
|
|
250
281
|
|
|
282
|
+
_this.setEnableIconPadding = function (isIconPaddingEnabled) {
|
|
283
|
+
!_this.getProps().preventIconsOffset && _this.setState({
|
|
284
|
+
enableIconPadding: isIconPaddingEnabled
|
|
285
|
+
});
|
|
286
|
+
};
|
|
287
|
+
|
|
251
288
|
return _this;
|
|
252
289
|
}
|
|
253
290
|
|
|
@@ -281,9 +318,12 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
281
318
|
_proto.render = function render() {
|
|
282
319
|
var _this2 = this;
|
|
283
320
|
|
|
284
|
-
return /*#__PURE__*/React.createElement(
|
|
285
|
-
_this2.
|
|
286
|
-
return
|
|
321
|
+
return /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Consumer, null, function (flags) {
|
|
322
|
+
_this2.menuItemsAtAnyLevel = getFullReactUIFlagsContext(flags).menuItemsAtAnyLevel;
|
|
323
|
+
return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
|
|
324
|
+
_this2.theme = theme;
|
|
325
|
+
return _this2.renderMain();
|
|
326
|
+
});
|
|
287
327
|
});
|
|
288
328
|
}
|
|
289
329
|
/**
|
|
@@ -308,6 +348,13 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
308
348
|
;
|
|
309
349
|
|
|
310
350
|
_proto.enter = function enter(event) {
|
|
351
|
+
if (this.menuItemsAtAnyLevel) {
|
|
352
|
+
var _this$menuNavigation$;
|
|
353
|
+
|
|
354
|
+
(_this$menuNavigation$ = this.menuNavigation.highlightedItem) == null ? void 0 : _this$menuNavigation$.navigate();
|
|
355
|
+
return this.menuNavigation.select(event);
|
|
356
|
+
}
|
|
357
|
+
|
|
311
358
|
return this.select(this.state.highlightedIndex, true, event);
|
|
312
359
|
}
|
|
313
360
|
/**
|
|
@@ -316,9 +363,13 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
316
363
|
;
|
|
317
364
|
|
|
318
365
|
_proto.reset = function reset() {
|
|
319
|
-
this.
|
|
320
|
-
|
|
321
|
-
}
|
|
366
|
+
if (this.menuItemsAtAnyLevel) {
|
|
367
|
+
this.menuNavigation.reset();
|
|
368
|
+
} else {
|
|
369
|
+
this.setState({
|
|
370
|
+
highlightedIndex: -1
|
|
371
|
+
});
|
|
372
|
+
}
|
|
322
373
|
}
|
|
323
374
|
/**
|
|
324
375
|
* @public
|
|
@@ -326,11 +377,19 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
326
377
|
;
|
|
327
378
|
|
|
328
379
|
_proto.hasHighlightedItem = function hasHighlightedItem() {
|
|
380
|
+
if (this.menuItemsAtAnyLevel) {
|
|
381
|
+
return !!this.menuNavigation.highlightedItem;
|
|
382
|
+
}
|
|
383
|
+
|
|
329
384
|
return this.state.highlightedIndex !== -1;
|
|
330
385
|
};
|
|
331
386
|
|
|
332
387
|
_proto.highlightItem = function highlightItem(index) {
|
|
333
|
-
this.
|
|
388
|
+
if (this.menuItemsAtAnyLevel) {
|
|
389
|
+
this.menuNavigation.highlightByIndex(index);
|
|
390
|
+
} else {
|
|
391
|
+
this.highlight(index);
|
|
392
|
+
}
|
|
334
393
|
};
|
|
335
394
|
|
|
336
395
|
_proto.renderMain = function renderMain() {
|
|
@@ -367,8 +426,16 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
367
426
|
disabled: this.props.disableScrollContainer,
|
|
368
427
|
offsetY: offsetY
|
|
369
428
|
}, /*#__PURE__*/React.createElement("div", {
|
|
370
|
-
className: cx((_cx4 = {}, _cx4[styles.scrollContainer(this.theme)] = true, _cx4[styles.scrollContainerMobile(this.theme)] = isMobile, _cx4))
|
|
371
|
-
|
|
429
|
+
className: cx((_cx4 = {}, _cx4[styles.scrollContainer(this.theme)] = true, _cx4[styles.scrollContainerMobile(this.theme)] = isMobile, _cx4)),
|
|
430
|
+
ref: this.contentRef
|
|
431
|
+
}, /*#__PURE__*/React.createElement(MenuContext.Provider, {
|
|
432
|
+
value: {
|
|
433
|
+
navigation: this.menuNavigation,
|
|
434
|
+
onItemClick: this.props.onItemClick,
|
|
435
|
+
enableIconPadding: this.state.enableIconPadding,
|
|
436
|
+
setEnableIconPadding: this.setEnableIconPadding
|
|
437
|
+
}
|
|
438
|
+
}, this.getChildList()))), this.props.footer && this.renderFooter());
|
|
372
439
|
};
|
|
373
440
|
|
|
374
441
|
_proto.refHighlighted = function refHighlighted(originalRef, menuItem) {
|
|
@@ -382,12 +449,12 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
382
449
|
_proto.select = function select(index, shouldHandleHref, event) {
|
|
383
450
|
var item = childrenToArray(this.props.children)[index];
|
|
384
451
|
|
|
385
|
-
if (isActiveElement(item)) {
|
|
452
|
+
if (isActiveElement(item) && isBrowser(globalObject)) {
|
|
386
453
|
if (shouldHandleHref && item.props.href) {
|
|
387
454
|
if (item.props.target) {
|
|
388
|
-
|
|
455
|
+
globalObject.open(item.props.href, item.props.target);
|
|
389
456
|
} else {
|
|
390
|
-
location.href = item.props.href;
|
|
457
|
+
globalObject.location.href = item.props.href;
|
|
391
458
|
}
|
|
392
459
|
}
|
|
393
460
|
|
|
@@ -413,64 +480,79 @@ export var Menu = responsiveLayout(_class = rootNode(_class = (_temp = _class2 =
|
|
|
413
480
|
return;
|
|
414
481
|
}
|
|
415
482
|
|
|
416
|
-
|
|
417
|
-
|
|
483
|
+
if (this.menuItemsAtAnyLevel) {
|
|
484
|
+
var nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);
|
|
485
|
+
this.scroll(nextIndex);
|
|
486
|
+
} else {
|
|
487
|
+
var _ret = function () {
|
|
488
|
+
var children = childrenToArray(_this3.props.children);
|
|
489
|
+
var activeElements = children.filter(isActiveElement);
|
|
490
|
+
|
|
491
|
+
if (!activeElements.length) {
|
|
492
|
+
return {
|
|
493
|
+
v: void 0
|
|
494
|
+
};
|
|
495
|
+
}
|
|
418
496
|
|
|
419
|
-
|
|
420
|
-
return;
|
|
421
|
-
}
|
|
497
|
+
var index = _this3.state.highlightedIndex;
|
|
422
498
|
|
|
423
|
-
|
|
499
|
+
var _loop = function _loop() {
|
|
500
|
+
index += step;
|
|
424
501
|
|
|
425
|
-
|
|
426
|
-
|
|
502
|
+
if (!_this3.getProps().cyclicSelection && (index < 0 || index > children.length)) {
|
|
503
|
+
return {
|
|
504
|
+
v: {
|
|
505
|
+
v: void 0
|
|
506
|
+
}
|
|
507
|
+
};
|
|
508
|
+
}
|
|
427
509
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
510
|
+
if (index < 0) {
|
|
511
|
+
index = children.length - 1;
|
|
512
|
+
} else if (index > children.length) {
|
|
513
|
+
index = 0;
|
|
514
|
+
}
|
|
433
515
|
|
|
434
|
-
|
|
435
|
-
index = children.length - 1;
|
|
436
|
-
} else if (index > children.length) {
|
|
437
|
-
index = 0;
|
|
438
|
-
}
|
|
516
|
+
var child = children[index];
|
|
439
517
|
|
|
440
|
-
|
|
518
|
+
if (isActiveElement(child)) {
|
|
519
|
+
_this3.setState({
|
|
520
|
+
highlightedIndex: index
|
|
521
|
+
}, function () {
|
|
522
|
+
switch (activeElements.indexOf(child)) {
|
|
523
|
+
case 0:
|
|
524
|
+
_this3.scrollToTop();
|
|
441
525
|
|
|
442
|
-
|
|
443
|
-
_this3.setState({
|
|
444
|
-
highlightedIndex: index
|
|
445
|
-
}, function () {
|
|
446
|
-
switch (activeElements.indexOf(child)) {
|
|
447
|
-
case 0:
|
|
448
|
-
_this3.scrollToTop();
|
|
526
|
+
break;
|
|
449
527
|
|
|
450
|
-
|
|
528
|
+
case activeElements.length - 1:
|
|
529
|
+
_this3.scrollToBottom();
|
|
451
530
|
|
|
452
|
-
|
|
453
|
-
_this3.scrollToBottom();
|
|
531
|
+
break;
|
|
454
532
|
|
|
455
|
-
|
|
533
|
+
default:
|
|
534
|
+
_this3.scrollToSelected();
|
|
456
535
|
|
|
457
|
-
|
|
458
|
-
|
|
536
|
+
}
|
|
537
|
+
});
|
|
459
538
|
|
|
539
|
+
return {
|
|
540
|
+
v: {
|
|
541
|
+
v: void 0
|
|
542
|
+
}
|
|
543
|
+
};
|
|
460
544
|
}
|
|
461
|
-
});
|
|
462
|
-
|
|
463
|
-
return {
|
|
464
|
-
v: void 0
|
|
465
545
|
};
|
|
466
|
-
}
|
|
467
|
-
};
|
|
468
546
|
|
|
469
|
-
|
|
470
|
-
|
|
547
|
+
do {
|
|
548
|
+
var _ret2 = _loop();
|
|
549
|
+
|
|
550
|
+
if (typeof _ret2 === "object") return _ret2.v;
|
|
551
|
+
} while (index !== _this3.state.highlightedIndex);
|
|
552
|
+
}();
|
|
471
553
|
|
|
472
554
|
if (typeof _ret === "object") return _ret.v;
|
|
473
|
-
}
|
|
555
|
+
}
|
|
474
556
|
};
|
|
475
557
|
|
|
476
558
|
_proto.isEmpty = function isEmpty() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Menu.tsx"],"names":["React","isKeyArrowDown","isKeyArrowUp","isKeyEnter","MenuSeparator","ThemeFactory","getDOMRect","isHTMLElement","responsiveLayout","isNonNullable","isNullable","ScrollContainer","ThemeContext","cx","getRootNode","rootNode","addIconPaddingIfPartOfMenu","isIE11","createPropsGetter","isTheme2022","isIconPaddingEnabled","styles","isActiveElement","MenuDataTids","root","Menu","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","unmounted","focusOnRootElement","focus","renderHeader","wrapper","headerWrapper","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","footerWrapper","footer","create","menuSeparatorMarginY","getChildList","enableIconPadding","children","preventIconsOffset","Children","map","child","index","modifiedChild","highlight","ref","refHighlighted","bind","cloneElement","onClick","select","onMouseEnter","onMouseLeave","unhighlight","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","count","calculateMaxHeight","parsedMaxHeight","window","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlighted","HTMLElement","scrollTo","scrollToTop","scrollToBottom","handleKeyDown","event","onKeyDown","defaultPrevented","preventDefault","up","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","componentWillUnmount","componentDidMount","componentDidUpdate","render","renderMain","move","enter","reset","hasHighlightedItem","highlightItem","isEmpty","hasShadow","preventWindowScroll","offsetY","top","scrollContainerScrollBarOffsetY","right","bottom","isMobile","isMobileLayout","getAlignRightClass","mobileRoot","shadow","id","setRootNode","disableScrollContainer","scrollContainerMobile","originalRef","menuItem","shouldHandleHref","item","childrenToArray","href","target","open","location","onItemClick","step","activeElements","filter","length","cyclicSelection","indexOf","PureComponent","__KONTUR_REACT_UI__","ret","forEach","push","alignRight","alignRightIE11","alignRightIE11FixAutoWidth"],"mappings":"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","sourcesContent":["import React, { CSSProperties, HTMLAttributes } from 'react';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { isHTMLElement } from '../../lib/SSRSafe';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { MenuItem, MenuItemProps } from '../../components/MenuItem';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { addIconPaddingIfPartOfMenu } from '../InternalMenu/addIconPaddingIfPartOfMenu';\nimport { isIE11 } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { isIconPaddingEnabled } from '../InternalMenu/isIconPaddingEnabled';\n\nimport { styles } from './Menu.styles';\nimport { isActiveElement } from './isActiveElement';\n\nexport interface MenuProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n children: React.ReactNode;\n hasShadow?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'maxHeight'\n | 'hasShadow'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private highlighted: Nullable<MenuItem>;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isHTMLElement(rootNode)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n return this.select(this.state.highlightedIndex, true, event);\n }\n\n /**\n * @public\n */\n public reset() {\n this.setState({ highlightedIndex: -1 });\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n return this.state.highlightedIndex !== -1;\n }\n\n public highlightItem(index: number) {\n this.highlight(index);\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasShadow, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = isTheme2022(this.theme)\n ? {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n }\n : {};\n\n const isMobile = this.isMobileLayout;\n return (\n <div\n data-tid={MenuDataTids.root}\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: hasShadow && !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={cx({\n [styles.scrollContainer(this.theme)]: true,\n [styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n >\n {this.getChildList()}\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private getChildList = () => {\n const enableIconPadding = isIconPaddingEnabled(this.props.children, this.props.preventIconsOffset);\n\n return React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\n return child;\n }\n\n const modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);\n\n if (isActiveElement(modifiedChild)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = modifiedChild.ref;\n if (highlight && typeof modifiedChild.ref !== 'string') {\n ref = this.refHighlighted.bind(this, modifiedChild.ref);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(modifiedChild, {\n ref,\n state: highlight ? 'hover' : modifiedChild.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: this.highlight.bind(this, index),\n onMouseLeave: this.unhighlight,\n });\n }\n\n return modifiedChild;\n });\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && typeof window !== 'undefined' && rootNode) {\n const rootElementMaxHeight = window.getComputedStyle(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: ((menuItem: MenuItem | null) => any) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (typeof originalRef === 'function') {\n originalRef(menuItem);\n }\n }\n\n private scrollToSelected = () => {\n if (this.scrollContainer && this.highlighted) {\n const rootNode = getRootNode(this.highlighted);\n // TODO: Remove this check once IF-647 is resolved\n if (rootNode instanceof HTMLElement) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\n if (isActiveElement(item)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n window.open(item.props.href, item.props.target);\n } else {\n location.href = item.props.href;\n }\n }\n if (item.props.onClick) {\n item.props.onClick(event);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick(event);\n }\n return true;\n }\n return false;\n }\n\n private highlight = (index: number) => {\n this.setState({ highlightedIndex: index });\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n\n const children = childrenToArray(this.props.children);\n const activeElements = children.filter(isActiveElement);\n if (!activeElements.length) {\n return;\n }\n let index = this.state.highlightedIndex;\n do {\n index += step;\n\n if (!this.getProps().cyclicSelection && (index < 0 || index > children.length)) {\n return;\n }\n\n if (index < 0) {\n index = children.length - 1;\n } else if (index > children.length) {\n index = 0;\n }\n\n const child = children[index];\n if (isActiveElement(child)) {\n this.setState({ highlightedIndex: index }, () => {\n switch (activeElements.indexOf(child)) {\n case 0:\n this.scrollToTop();\n break;\n case activeElements.length - 1:\n this.scrollToBottom();\n break;\n default:\n this.scrollToSelected();\n }\n });\n return;\n }\n } while (index !== this.state.highlightedIndex);\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(event);\n }\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n\nconst getAlignRightClass = (props: MenuProps) => {\n if (props.align === 'right') {\n return cx({\n [styles.alignRight()]: !isIE11,\n [styles.alignRightIE11()]: isIE11,\n [styles.alignRightIE11FixAutoWidth()]: isIE11 && props.width === 'auto',\n });\n }\n\n return null;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["Menu.tsx"],"names":["React","globalObject","isBrowser","isKeyArrowDown","isKeyArrowUp","isKeyEnter","MenuSeparator","ThemeFactory","getDOMRect","responsiveLayout","isNonNullable","isNullable","ScrollContainer","MenuItemDataTids","ThemeContext","cx","getRootNode","rootNode","addIconPaddingIfPartOfMenu","isIE11","createPropsGetter","isTheme2022","isIconPaddingEnabled","isInstanceOf","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","styles","isActiveElement","MenuNavigation","MenuContext","MenuDataTids","root","Menu","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","enableIconPadding","unmounted","contentRef","createRef","menuNavigation","content","focusOnRootElement","HTMLElement","focus","renderHeader","wrapper","headerWrapper","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","footerWrapper","footer","create","menuSeparatorMarginY","getChildList","menuItemsAtAnyLevel","children","preventIconsOffset","Children","map","child","index","modifiedChild","highlight","ref","refHighlighted","bind","cloneElement","onClick","select","onMouseEnter","onMouseLeave","unhighlight","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","count","calculateMaxHeight","parsedMaxHeight","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlightedItem","highlighted","scrollTo","scrollToTop","scrollToBottom","scroll","nextIndex","items","length","handleKeyDown","event","onKeyDown","defaultPrevented","preventDefault","up","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","setEnableIconPadding","componentWillUnmount","componentDidMount","componentDidUpdate","render","flags","renderMain","move","enter","navigate","reset","hasHighlightedItem","highlightItem","highlightByIndex","isEmpty","hasShadow","preventWindowScroll","offsetY","top","scrollContainerScrollBarOffsetY","right","bottom","isMobile","isMobileLayout","getAlignRightClass","mobileRoot","shadow","id","setRootNode","disableScrollContainer","scrollContainerMobile","navigation","onItemClick","originalRef","menuItem","shouldHandleHref","item","childrenToArray","href","target","open","location","step","cyclicSelection","activeElements","filter","indexOf","PureComponent","__KONTUR_REACT_UI__","ret","forEach","push","alignRight","alignRightIE11","alignRightIE11FixAutoWidth"],"mappings":"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","sourcesContent":["import React, { CSSProperties, HTMLAttributes } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { MenuItem, MenuItemDataTids, MenuItemProps } from '../../components/MenuItem';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { addIconPaddingIfPartOfMenu } from '../InternalMenu/addIconPaddingIfPartOfMenu';\nimport { isIE11 } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { isIconPaddingEnabled } from '../InternalMenu/isIconPaddingEnabled';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './Menu.styles';\nimport { isActiveElement } from './isActiveElement';\nimport { MenuNavigation } from './MenuNavigation';\nimport { MenuContext } from './MenuContext';\n\nexport interface MenuProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n children: React.ReactNode;\n hasShadow?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n enableIconPadding: boolean;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'maxHeight'\n | 'hasShadow'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n enableIconPadding: false,\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private highlighted: Nullable<MenuItem>;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private contentRef = React.createRef<HTMLDivElement>();\n private menuNavigation: MenuNavigation<MenuItem> = new MenuNavigation(this.contentRef, MenuItemDataTids.content);\n private menuItemsAtAnyLevel?: boolean;\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.menuItemsAtAnyLevel = getFullReactUIFlagsContext(flags).menuItemsAtAnyLevel;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.highlightedItem?.navigate();\n return this.menuNavigation.select(event);\n }\n return this.select(this.state.highlightedIndex, true, event);\n }\n\n /**\n * @public\n */\n public reset() {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.reset();\n } else {\n this.setState({ highlightedIndex: -1 });\n }\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n if (this.menuItemsAtAnyLevel) {\n return !!this.menuNavigation.highlightedItem;\n }\n return this.state.highlightedIndex !== -1;\n }\n\n public highlightItem(index: number) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.highlightByIndex(index);\n } else {\n this.highlight(index);\n }\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasShadow, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = isTheme2022(this.theme)\n ? {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n }\n : {};\n\n const isMobile = this.isMobileLayout;\n return (\n <div\n data-tid={MenuDataTids.root}\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: hasShadow && !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={cx({\n [styles.scrollContainer(this.theme)]: true,\n [styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n ref={this.contentRef}\n >\n <MenuContext.Provider\n value={{\n navigation: this.menuNavigation,\n onItemClick: this.props.onItemClick,\n enableIconPadding: this.state.enableIconPadding,\n setEnableIconPadding: this.setEnableIconPadding,\n }}\n >\n {this.getChildList()}\n </MenuContext.Provider>\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private getChildList = () => {\n if (this.menuItemsAtAnyLevel) {\n return this.props.children;\n }\n const enableIconPadding = isIconPaddingEnabled(this.props.children, this.props.preventIconsOffset);\n\n return React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\n return child;\n }\n\n const modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);\n\n if (isActiveElement(modifiedChild)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = modifiedChild.ref;\n if (highlight && typeof modifiedChild.ref !== 'string') {\n ref = this.refHighlighted.bind(this, modifiedChild.ref);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(modifiedChild, {\n ref,\n state: highlight ? 'hover' : modifiedChild.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: this.highlight.bind(this, index),\n onMouseLeave: this.unhighlight,\n });\n }\n\n return modifiedChild;\n });\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && isBrowser(globalObject) && rootNode) {\n const rootElementMaxHeight = globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: ((menuItem: MenuItem | null) => any) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (typeof originalRef === 'function') {\n originalRef(menuItem);\n }\n }\n\n private scrollToSelected = () => {\n const highlightedItem = this.menuItemsAtAnyLevel ? this.menuNavigation.highlightedItem : this.highlighted;\n if (this.scrollContainer && highlightedItem) {\n const rootNode = getRootNode(highlightedItem);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private scroll = (nextIndex: number) => {\n switch (nextIndex) {\n case 0:\n this.scrollToTop?.();\n break;\n case this.menuNavigation.items.length - 1:\n this.scrollToBottom?.();\n break;\n default:\n this.scrollToSelected?.();\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\n if (isActiveElement(item) && isBrowser(globalObject)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n globalObject.open(item.props.href, item.props.target);\n } else {\n globalObject.location.href = item.props.href;\n }\n }\n if (item.props.onClick) {\n item.props.onClick(event);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick(event);\n }\n return true;\n }\n return false;\n }\n\n private highlight = (index: number) => {\n this.setState({ highlightedIndex: index });\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n if (this.menuItemsAtAnyLevel) {\n const nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);\n this.scroll(nextIndex);\n } else {\n const children = childrenToArray(this.props.children);\n const activeElements = children.filter(isActiveElement);\n if (!activeElements.length) {\n return;\n }\n let index = this.state.highlightedIndex;\n do {\n index += step;\n\n if (!this.getProps().cyclicSelection && (index < 0 || index > children.length)) {\n return;\n }\n\n if (index < 0) {\n index = children.length - 1;\n } else if (index > children.length) {\n index = 0;\n }\n\n const child = children[index];\n if (isActiveElement(child)) {\n this.setState({ highlightedIndex: index }, () => {\n switch (activeElements.indexOf(child)) {\n case 0:\n this.scrollToTop();\n break;\n case activeElements.length - 1:\n this.scrollToBottom();\n break;\n default:\n this.scrollToSelected();\n }\n });\n return;\n }\n } while (index !== this.state.highlightedIndex);\n }\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.select(event);\n } else if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(event);\n }\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n\n private setEnableIconPadding = (isIconPaddingEnabled: boolean) => {\n !this.getProps().preventIconsOffset && this.setState({ enableIconPadding: isIconPaddingEnabled });\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n\nconst getAlignRightClass = (props: MenuProps) => {\n if (props.align === 'right') {\n return cx({\n [styles.alignRight()]: !isIE11,\n [styles.alignRightIE11()]: isIE11,\n [styles.alignRightIE11FixAutoWidth()]: isIE11 && props.width === 'auto',\n });\n }\n\n return null;\n};\n"]}
|
package/internal/Menu/Menu.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export interface MenuState {
|
|
|
35
35
|
highlightedIndex: number;
|
|
36
36
|
maxHeight: number | string;
|
|
37
37
|
scrollState: ScrollContainerScrollState;
|
|
38
|
+
enableIconPadding: boolean;
|
|
38
39
|
}
|
|
39
40
|
export declare const MenuDataTids: {
|
|
40
41
|
readonly root: "Menu__root";
|
|
@@ -53,6 +54,9 @@ export declare class Menu extends React.PureComponent<MenuProps, MenuState> {
|
|
|
53
54
|
private setRootNode;
|
|
54
55
|
private header;
|
|
55
56
|
private footer;
|
|
57
|
+
private contentRef;
|
|
58
|
+
private menuNavigation;
|
|
59
|
+
private menuItemsAtAnyLevel?;
|
|
56
60
|
componentWillUnmount(): void;
|
|
57
61
|
componentDidMount(): void;
|
|
58
62
|
componentDidUpdate(prevProps: MenuProps): void;
|
|
@@ -93,6 +97,7 @@ export declare class Menu extends React.PureComponent<MenuProps, MenuState> {
|
|
|
93
97
|
private scrollToSelected;
|
|
94
98
|
private scrollToTop;
|
|
95
99
|
private scrollToBottom;
|
|
100
|
+
private scroll;
|
|
96
101
|
private select;
|
|
97
102
|
private highlight;
|
|
98
103
|
private unhighlight;
|
|
@@ -101,5 +106,6 @@ export declare class Menu extends React.PureComponent<MenuProps, MenuState> {
|
|
|
101
106
|
private handleKeyDown;
|
|
102
107
|
private getStyle;
|
|
103
108
|
private handleScrollStateChange;
|
|
109
|
+
private setEnableIconPadding;
|
|
104
110
|
}
|
|
105
111
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["MenuContext.ts"],"names":["React","MenuContext","createContext","navigation","enableIconPadding"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;;;;;;;;;;;;AAaA,OAAO,IAAMC,WAAW,gBAAGD,KAAK,CAACE,aAAN,CAAqC;AAC9DC,EAAAA,UAAU,EAAE,IADkD;AAE9DC,EAAAA,iBAAiB,EAAE,KAF2C,EAArC,CAApB","sourcesContent":["import React from 'react';\n\nimport { MenuItem } from '../../components/MenuItem';\n\nimport { MenuNavigation } from './MenuNavigation';\n\nexport interface MenuContextType {\n navigation: MenuNavigation<MenuItem> | null;\n enableIconPadding: boolean;\n setEnableIconPadding?: (isIconPaddingEnabled: boolean) => void;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n navigation: null,\n enableIconPadding: false,\n});\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { MenuItem } from '../../components/MenuItem';
|
|
3
|
+
import { MenuNavigation } from './MenuNavigation';
|
|
4
|
+
export interface MenuContextType {
|
|
5
|
+
navigation: MenuNavigation<MenuItem> | null;
|
|
6
|
+
enableIconPadding: boolean;
|
|
7
|
+
setEnableIconPadding?: (isIconPaddingEnabled: boolean) => void;
|
|
8
|
+
onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const MenuContext: React.Context<MenuContextType>;
|