@skbkontur/react-ui 0.0.0-68e286f9fe → 0.0.0-6911f001e4
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 +182 -0
- package/README.md +6 -6
- package/cjs/components/Autocomplete/Autocomplete.d.ts +18 -4
- package/cjs/components/Autocomplete/Autocomplete.js +73 -15
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +4 -1
- package/cjs/components/Button/Button.js +47 -17
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.d.ts +6 -0
- package/cjs/components/Button/Button.styles.js +107 -75
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Button/ButtonArrow.js +13 -14
- package/cjs/components/Button/ButtonArrow.js.map +1 -1
- package/cjs/components/Calendar/Calendar.d.ts +2 -0
- package/cjs/components/Calendar/Calendar.js +1 -0
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Center/Center.d.ts +2 -0
- package/cjs/components/Center/Center.js +1 -0
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +4 -4
- package/cjs/components/Checkbox/Checkbox.js +16 -19
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.d.ts +20 -7
- package/cjs/components/ComboBox/ComboBox.js +19 -1
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +5 -0
- package/cjs/components/CurrencyInput/CurrencyInput.js +9 -1
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyInput/constants.js +1 -2
- package/cjs/components/CurrencyInput/constants.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +2 -3
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +5 -1
- package/cjs/components/DateInput/DateInput.js +9 -4
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +2 -0
- package/cjs/components/DatePicker/DatePicker.js +1 -0
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/MobilePicker.js +1 -0
- package/cjs/components/DatePicker/MobilePicker.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.js +1 -0
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +2 -0
- package/cjs/components/Dropdown/Dropdown.js +1 -0
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +4 -2
- package/cjs/components/DropdownMenu/DropdownMenu.js +1 -0
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.js +1 -0
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +12 -2
- package/cjs/components/FxInput/FxInput.js +141 -58
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/FxInput/FxInputRestoreBtn.js +2 -3
- package/cjs/components/FxInput/FxInputRestoreBtn.js.map +1 -1
- package/cjs/components/Gapped/Gapped.d.ts +2 -0
- package/cjs/components/Gapped/Gapped.js +1 -0
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +2 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js +1 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/Group/Group.d.ts +2 -0
- package/cjs/components/Group/Group.js +1 -0
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +2 -0
- package/cjs/components/Hint/Hint.js +1 -0
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +6 -5
- package/cjs/components/Input/Input.js +17 -47
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.styles.d.ts +0 -1
- package/cjs/components/Input/Input.styles.js +8 -19
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +4 -1
- package/cjs/components/Kebab/Kebab.js +10 -5
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +2 -0
- package/cjs/components/Link/Link.js +10 -1
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +3 -0
- package/cjs/components/Loader/Loader.js +6 -1
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -0
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +107 -78
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/cjs/components/MaskedInput/FixedIMaskInput.js +3 -2
- package/cjs/components/MaskedInput/FixedIMaskInput.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.d.ts +9 -0
- package/cjs/components/MaskedInput/MaskedInput.js +43 -4
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +3 -0
- package/cjs/components/MenuItem/MenuItem.js +15 -2
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.styles.d.ts +3 -1
- package/cjs/components/MenuItem/MenuItem.styles.js +35 -21
- package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.d.ts +1 -0
- package/cjs/components/Modal/Modal.styles.js +36 -28
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/Modal/ModalBody.d.ts +2 -0
- package/cjs/components/Modal/ModalBody.js +1 -0
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.d.ts +5 -0
- package/cjs/components/Modal/ModalHeader.js +8 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Paging/DotsIcon.d.ts +3 -0
- package/cjs/components/Paging/DotsIcon.js +13 -0
- package/cjs/components/Paging/DotsIcon.js.map +1 -0
- package/cjs/components/Paging/ForwardIcon.d.ts +3 -0
- package/cjs/components/Paging/ForwardIcon.js +13 -1
- package/cjs/components/Paging/ForwardIcon.js.map +1 -1
- package/cjs/components/Paging/NavigationHelper.d.ts +3 -2
- package/cjs/components/Paging/NavigationHelper.js +8 -6
- package/cjs/components/Paging/NavigationHelper.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +13 -1
- package/cjs/components/Paging/Paging.js +120 -24
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/Paging.styles.d.ts +24 -1
- package/cjs/components/Paging/Paging.styles.js +151 -22
- package/cjs/components/Paging/Paging.styles.js.map +1 -1
- package/cjs/components/Paging/PagingHelper.d.ts +1 -1
- package/cjs/components/Paging/PagingHelper.js +18 -11
- package/cjs/components/Paging/PagingHelper.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +5 -5
- package/cjs/components/PasswordInput/PasswordInput.js +21 -22
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +4 -1
- package/cjs/components/Radio/Radio.js +7 -4
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -0
- package/cjs/components/RadioGroup/RadioGroup.js +1 -0
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +2 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +4 -1
- package/cjs/components/Select/Select.js +11 -6
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.js +3 -1
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePage.styles.d.ts +3 -1
- package/cjs/components/SidePage/SidePage.styles.js +52 -38
- package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePageBody.d.ts +2 -0
- package/cjs/components/SidePage/SidePageBody.js +1 -0
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/SidePage/SidePageContainer.d.ts +2 -0
- package/cjs/components/SidePage/SidePageContainer.js +1 -0
- package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +2 -0
- package/cjs/components/SidePage/SidePageFooter.js +1 -0
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +12 -2
- package/cjs/components/SidePage/SidePageHeader.js +60 -19
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/SingleToast/SingleToast.d.ts +32 -2
- package/cjs/components/SingleToast/SingleToast.js +58 -3
- package/cjs/components/SingleToast/SingleToast.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +2 -0
- package/cjs/components/Spinner/Spinner.js +1 -0
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +2 -0
- package/cjs/components/Sticky/Sticky.js +1 -0
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +2 -0
- package/cjs/components/Switcher/Switcher.js +1 -0
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Tabs/Indicator.d.ts +2 -0
- package/cjs/components/Tabs/Indicator.js +1 -0
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +2 -0
- package/cjs/components/Tabs/Tab.js +1 -0
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +2 -0
- package/cjs/components/Tabs/Tabs.js +1 -0
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +4 -1
- package/cjs/components/Textarea/Textarea.js +9 -4
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/Textarea.styles.js +3 -3
- package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
- package/cjs/components/Toast/Toast.d.ts +56 -9
- package/cjs/components/Toast/Toast.js +104 -11
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastView.d.ts +7 -1
- package/cjs/components/Toast/ToastView.js +22 -5
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toast/ToastView.styles.d.ts +4 -0
- package/cjs/components/Toast/ToastView.styles.js +43 -9
- package/cjs/components/Toast/ToastView.styles.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +4 -1
- package/cjs/components/Toggle/Toggle.js +6 -5
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.d.ts +2 -0
- package/cjs/components/Token/Token.js +1 -0
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +6 -1
- package/cjs/components/TokenInput/TokenInput.js +43 -30
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +12 -5
- package/cjs/components/Tooltip/Tooltip.js +100 -13
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.styles.d.ts +7 -1
- package/cjs/components/Tooltip/Tooltip.styles.js +50 -12
- package/cjs/components/Tooltip/Tooltip.styles.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +4 -2
- package/cjs/components/TooltipMenu/TooltipMenu.js +1 -0
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +1 -0
- package/cjs/index.js.map +1 -1
- package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js +4 -4
- package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
- package/cjs/internal/CommonWrapper/CommonWrapper.js +1 -0
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +8 -4
- package/cjs/internal/CustomComboBox/ComboBoxView.js +35 -25
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +7 -2
- package/cjs/internal/CustomComboBox/CustomComboBox.js +17 -5
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/CustomComboBox/getComboBoxTheme.d.ts +2 -1
- package/cjs/internal/CustomComboBox/getComboBoxTheme.js +10 -7
- package/cjs/internal/CustomComboBox/getComboBoxTheme.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.js +1 -1
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/FocusTrap/FocusTrap.d.ts +2 -0
- package/cjs/internal/FocusTrap/FocusTrap.js +1 -0
- package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +1 -0
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +4 -3
- package/cjs/internal/InputLikeText/InputLikeText.js +13 -14
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +23 -21
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +2 -0
- package/cjs/internal/Menu/Menu.js +1 -0
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/MenuMessage/MenuMessage.js +13 -1
- package/cjs/internal/MenuMessage/MenuMessage.js.map +1 -1
- package/cjs/internal/MenuMessage/MenuMessage.styles.d.ts +3 -1
- package/cjs/internal/MenuMessage/MenuMessage.styles.js +24 -8
- package/cjs/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +9 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +24 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.styles.d.ts +7 -3
- package/cjs/internal/MobilePopup/MobilePopup.styles.js +55 -19
- package/cjs/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +8 -1
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +36 -18
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +3 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +23 -3
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +3 -0
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +31 -33
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +3 -2
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +22 -13
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +2 -0
- package/cjs/internal/Popup/Popup.js +14 -3
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupPinNew.d.ts +31 -0
- package/cjs/internal/Popup/PopupPinNew.js +180 -0
- package/cjs/internal/Popup/PopupPinNew.js.map +1 -0
- package/cjs/internal/Popup/PopupPinNew.styles.d.ts +7 -0
- package/cjs/internal/Popup/PopupPinNew.styles.js +33 -0
- package/cjs/internal/Popup/PopupPinNew.styles.js.map +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +2 -0
- package/cjs/internal/PopupMenu/PopupMenu.js +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -0
- package/cjs/internal/RenderLayer/RenderLayer.js +1 -0
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.js +5 -1
- package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.styles.js +5 -8
- package/cjs/internal/ThemePlayground/Playground.styles.js.map +1 -1
- package/cjs/internal/ThemePlayground/ShowcaseGroup.js +12 -1
- package/cjs/internal/ThemePlayground/ShowcaseGroup.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +2 -0
- package/cjs/internal/ZIndex/ZIndex.js +1 -0
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js +16 -0
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js.map +1 -0
- package/cjs/internal/themes/BasicTheme.d.ts +147 -28
- package/cjs/internal/themes/BasicTheme.js +800 -33
- package/cjs/internal/themes/BasicTheme.js.map +1 -1
- package/cjs/internal/themes/DarkTheme5_4.d.ts +1 -0
- package/cjs/internal/themes/DarkTheme5_4.js +18 -0
- package/cjs/internal/themes/DarkTheme5_4.js.map +1 -0
- package/cjs/internal/themes/LightTheme5_4.d.ts +1 -0
- package/cjs/internal/themes/LightTheme5_4.js +18 -0
- package/cjs/internal/themes/LightTheme5_4.js.map +1 -0
- package/cjs/internal/themes/consts.d.ts +8 -0
- package/cjs/internal/themes/consts.js +8 -0
- package/cjs/internal/themes/consts.js.map +1 -0
- package/cjs/lib/__stories__/Blink.creevey.mts +90 -0
- package/cjs/lib/blink.d.ts +15 -0
- package/cjs/lib/blink.js +65 -0
- package/cjs/lib/blink.js.map +1 -0
- package/cjs/lib/delay.mts +3 -0
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +6 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +6 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +13 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -1
- package/cjs/lib/rootNode/rootNodeDecorator.js +1 -0
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/lib/size/SizeControlContext.d.ts +6 -0
- package/cjs/lib/size/SizeControlContext.js +16 -0
- package/cjs/lib/size/SizeControlContext.js.map +1 -0
- package/cjs/lib/size/SizeDecorator.d.ts +33 -0
- package/cjs/lib/size/SizeDecorator.js +41 -0
- package/cjs/lib/size/SizeDecorator.js.map +1 -0
- package/cjs/lib/size/constants.d.ts +2 -0
- package/cjs/lib/size/constants.js +3 -0
- package/cjs/lib/size/constants.js.map +1 -0
- package/cjs/lib/size/index.d.ts +1 -0
- package/cjs/lib/size/index.js +1 -0
- package/cjs/lib/size/index.js.map +1 -0
- package/cjs/lib/size/useSizeControl.d.ts +2 -0
- package/cjs/lib/size/useSizeControl.js +10 -0
- package/cjs/lib/size/useSizeControl.js.map +1 -0
- package/cjs/lib/theming/ThemeVersions.d.ts +1 -1
- package/cjs/lib/theming/ThemeVersions.js.map +1 -1
- package/cjs/lib/theming/themes/DarkTheme.d.ts +1 -0
- package/cjs/lib/theming/themes/DarkTheme.js +4 -2
- package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
- package/cjs/lib/theming/themes/LightTheme.d.ts +1 -0
- package/cjs/lib/theming/themes/LightTheme.js +4 -2
- package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
- package/cjs/lib/utils.d.ts +13 -0
- package/cjs/lib/utils.js +34 -1
- package/cjs/lib/utils.js.map +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +72 -32
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +18 -4
- package/components/Button/Button/Button.js +45 -24
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +4 -1
- package/components/Button/Button.styles/Button.styles.js +78 -60
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Button/Button.styles.d.ts +6 -0
- package/components/Button/ButtonArrow/ButtonArrow.js +1 -3
- package/components/Button/ButtonArrow/ButtonArrow.js.map +1 -1
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +2 -0
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +2 -0
- package/components/Checkbox/Checkbox/Checkbox.js +12 -13
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +4 -4
- package/components/ComboBox/ComboBox/ComboBox.js +1 -1
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +20 -7
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +6 -2
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +5 -0
- package/components/CurrencyInput/constants/constants.js +0 -1
- package/components/CurrencyInput/constants/constants.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js +9 -8
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +5 -1
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +2 -0
- package/components/DatePicker/MobilePicker/MobilePicker.js +1 -0
- package/components/DatePicker/MobilePicker/MobilePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +1 -0
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +2 -0
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +4 -2
- package/components/FileUploader/FileUploader/FileUploader.js +1 -0
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FxInput/FxInput/FxInput.js +121 -65
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +12 -2
- package/components/FxInput/FxInputRestoreBtn/FxInputRestoreBtn.js +2 -2
- package/components/FxInput/FxInputRestoreBtn/FxInputRestoreBtn.js.map +1 -1
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +2 -0
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.d.ts +2 -0
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +2 -0
- package/components/Input/Input/Input.js +23 -52
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +6 -5
- package/components/Input/Input.styles/Input.styles.js +9 -13
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Input/Input.styles.d.ts +0 -1
- package/components/Kebab/Kebab/Kebab.js +7 -7
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +4 -1
- package/components/Link/Link/Link.js +4 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +2 -0
- package/components/Loader/Loader/Loader.js +2 -1
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +3 -0
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +81 -66
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -0
- package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js +3 -2
- package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput/MaskedInput.js +28 -2
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput.d.ts +9 -0
- package/components/MenuItem/MenuItem/MenuItem.js +12 -1
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +3 -0
- package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +25 -19
- package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
- package/components/MenuItem/MenuItem.styles.d.ts +3 -1
- package/components/Modal/Modal.styles/Modal.styles.js +31 -28
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- package/components/Modal/Modal.styles.d.ts +1 -0
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +2 -0
- package/components/Modal/ModalHeader/ModalHeader.js +3 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Modal/ModalHeader.d.ts +5 -0
- package/components/Paging/DotsIcon/DotsIcon.js +14 -0
- package/components/Paging/DotsIcon/DotsIcon.js.map +1 -0
- package/components/Paging/DotsIcon/package.json +6 -0
- package/components/Paging/DotsIcon.d.ts +3 -0
- package/components/Paging/ForwardIcon/ForwardIcon.js +15 -1
- package/components/Paging/ForwardIcon/ForwardIcon.js.map +1 -1
- package/components/Paging/ForwardIcon.d.ts +3 -0
- package/components/Paging/NavigationHelper/NavigationHelper.js +9 -8
- package/components/Paging/NavigationHelper/NavigationHelper.js.map +1 -1
- package/components/Paging/NavigationHelper.d.ts +3 -2
- package/components/Paging/Paging/Paging.js +95 -25
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +13 -1
- package/components/Paging/Paging.styles/Paging.styles.js +77 -16
- package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
- package/components/Paging/Paging.styles.d.ts +24 -1
- package/components/Paging/PagingHelper/PagingHelper.js +16 -8
- package/components/Paging/PagingHelper/PagingHelper.js.map +1 -1
- package/components/Paging/PagingHelper.d.ts +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +13 -19
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +5 -5
- package/components/Radio/Radio/Radio.js +7 -7
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +4 -1
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +2 -0
- package/components/Select/Select/Select.js +17 -15
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +4 -1
- package/components/SidePage/SidePage/SidePage.js +2 -2
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.styles/SidePage.styles.js +41 -35
- package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
- package/components/SidePage/SidePage.styles.d.ts +3 -1
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageBody.d.ts +2 -0
- package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageContainer.d.ts +2 -0
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +2 -0
- package/components/SidePage/SidePageHeader/SidePageHeader.js +61 -39
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +12 -2
- package/components/SingleToast/SingleToast/SingleToast.js +37 -12
- package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
- package/components/SingleToast/SingleToast.d.ts +32 -2
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +2 -0
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +2 -0
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +2 -0
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Indicator.d.ts +2 -0
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +2 -0
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +2 -0
- package/components/Textarea/Textarea/Textarea.js +7 -6
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +4 -1
- package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
- package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
- package/components/Toast/Toast/Toast.js +86 -23
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +56 -9
- package/components/Toast/ToastView/ToastView.js +17 -5
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toast/ToastView.d.ts +7 -1
- package/components/Toast/ToastView.styles/ToastView.styles.js +17 -5
- package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
- package/components/Toast/ToastView.styles.d.ts +4 -0
- package/components/Toggle/Toggle/Toggle.js +10 -10
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +4 -1
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +2 -0
- package/components/TokenInput/TokenInput/TokenInput.js +47 -42
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +6 -1
- package/components/Tooltip/Tooltip/Tooltip.js +69 -19
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +12 -5
- package/components/Tooltip/Tooltip.styles/Tooltip.styles.js +22 -4
- package/components/Tooltip/Tooltip.styles/Tooltip.styles.js.map +1 -1
- package/components/Tooltip/Tooltip.styles.d.ts +7 -1
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +4 -2
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js +1 -1
- package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +46 -45
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +8 -4
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +12 -7
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +7 -2
- package/internal/CustomComboBox/getComboBoxTheme/getComboBoxTheme.js +5 -3
- package/internal/CustomComboBox/getComboBoxTheme/getComboBoxTheme.js.map +1 -1
- package/internal/CustomComboBox/getComboBoxTheme.d.ts +2 -1
- package/internal/DateSelect/DateSelect/DateSelect.js +1 -1
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
- package/internal/FocusTrap/FocusTrap.d.ts +2 -0
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +17 -28
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +4 -3
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js +21 -16
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +2 -0
- package/internal/MenuMessage/MenuMessage/MenuMessage.js +12 -1
- package/internal/MenuMessage/MenuMessage/MenuMessage.js.map +1 -1
- package/internal/MenuMessage/MenuMessage.styles/MenuMessage.styles.js +12 -6
- package/internal/MenuMessage/MenuMessage.styles/MenuMessage.styles.js.map +1 -1
- package/internal/MenuMessage/MenuMessage.styles.d.ts +3 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +19 -6
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +9 -0
- package/internal/MobilePopup/MobilePopup.styles/MobilePopup.styles.js +24 -12
- package/internal/MobilePopup/MobilePopup.styles/MobilePopup.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.styles.d.ts +7 -3
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js +23 -9
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +8 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js +11 -2
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +3 -0
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +29 -23
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +3 -0
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles/MobilePopupHeader.styles.js +12 -9
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles/MobilePopupHeader.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +3 -2
- package/internal/Popup/Popup/Popup.js +10 -3
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +2 -0
- package/internal/Popup/PopupPinNew/PopupPinNew.js +146 -0
- package/internal/Popup/PopupPinNew/PopupPinNew.js.map +1 -0
- package/internal/Popup/PopupPinNew/package.json +6 -0
- package/internal/Popup/PopupPinNew.d.ts +31 -0
- package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js +20 -0
- package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js.map +1 -0
- package/internal/Popup/PopupPinNew.styles/package.json +6 -0
- package/internal/Popup/PopupPinNew.styles.d.ts +7 -0
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +2 -0
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +2 -0
- package/internal/ThemePlayground/Playground/Playground.js +8 -5
- package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
- package/internal/ThemePlayground/Playground.styles/Playground.styles.js +4 -4
- package/internal/ThemePlayground/Playground.styles/Playground.styles.js.map +1 -1
- package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js +6 -1
- package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +2 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js +21 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js.map +1 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/package.json +6 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
- package/internal/themes/BasicTheme/BasicTheme.js +267 -44
- package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +147 -28
- package/internal/themes/DarkTheme5_4/DarkTheme5_4.js +17 -0
- package/internal/themes/DarkTheme5_4/DarkTheme5_4.js.map +1 -0
- package/internal/themes/DarkTheme5_4/package.json +6 -0
- package/internal/themes/DarkTheme5_4.d.ts +1 -0
- package/internal/themes/LightTheme5_4/LightTheme5_4.js +17 -0
- package/internal/themes/LightTheme5_4/LightTheme5_4.js.map +1 -0
- package/internal/themes/LightTheme5_4/package.json +6 -0
- package/internal/themes/LightTheme5_4.d.ts +1 -0
- package/internal/themes/consts/consts.js +9 -0
- package/internal/themes/consts/consts.js.map +1 -0
- package/internal/themes/consts/package.json +6 -0
- package/internal/themes/consts.d.ts +8 -0
- package/lib/__stories__/Blink.creevey.mts +90 -0
- package/lib/blink/blink.js +63 -0
- package/lib/blink/blink.js.map +1 -0
- package/lib/blink/package.json +6 -0
- package/lib/blink.d.ts +15 -0
- package/lib/delay.d.mts +1 -0
- package/lib/delay.mts +3 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +6 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +7 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +6 -0
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +2 -1
- package/lib/size/SizeControlContext/SizeControlContext.js +7 -0
- package/lib/size/SizeControlContext/SizeControlContext.js.map +1 -0
- package/lib/size/SizeControlContext/package.json +6 -0
- package/lib/size/SizeControlContext.d.ts +6 -0
- package/lib/size/SizeDecorator/SizeDecorator.js +41 -0
- package/lib/size/SizeDecorator/SizeDecorator.js.map +1 -0
- package/lib/size/SizeDecorator/package.json +6 -0
- package/lib/size/SizeDecorator.d.ts +33 -0
- package/lib/size/constants/constants.js +1 -0
- package/lib/size/constants/constants.js.map +1 -0
- package/lib/size/constants/package.json +6 -0
- package/lib/size/constants.d.ts +2 -0
- package/lib/size/index/index.js +1 -0
- package/lib/size/index/index.js.map +1 -0
- package/lib/size/index/package.json +6 -0
- package/lib/size/index.d.ts +1 -0
- package/lib/size/package.json +6 -0
- package/lib/size/useSizeControl/package.json +6 -0
- package/lib/size/useSizeControl/useSizeControl.js +7 -0
- package/lib/size/useSizeControl/useSizeControl.js.map +1 -0
- package/lib/size/useSizeControl.d.ts +2 -0
- package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
- package/lib/theming/ThemeVersions.d.ts +1 -1
- package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
- package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/lib/theming/themes/DarkTheme.d.ts +1 -0
- package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
- package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
- package/lib/theming/themes/LightTheme.d.ts +1 -0
- package/lib/utils/utils.js +26 -0
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +13 -0
- package/package.json +9 -15
- package/cjs/components/Autocomplete/Autocomplete.md +0 -113
- package/cjs/components/Button/Button.md +0 -261
- package/cjs/components/Calendar/Calendar.md +0 -276
- package/cjs/components/Calendar/CalendarDay.md +0 -70
- package/cjs/components/Center/Center.md +0 -26
- package/cjs/components/Checkbox/Checkbox.md +0 -171
- package/cjs/components/ComboBox/ComboBox.md +0 -574
- package/cjs/components/CurrencyInput/CurrencyInput.md +0 -39
- package/cjs/components/CurrencyLabel/CurrencyLabel.md +0 -29
- package/cjs/components/DateInput/DateInput.md +0 -111
- package/cjs/components/DatePicker/DatePicker.md +0 -368
- package/cjs/components/Dropdown/Dropdown.md +0 -45
- package/cjs/components/DropdownMenu/DropdownMenu.md +0 -290
- package/cjs/components/FileUploader/FileUploader.md +0 -131
- package/cjs/components/FxInput/FxInput.md +0 -31
- package/cjs/components/Gapped/Gapped.md +0 -44
- package/cjs/components/GlobalLoader/GlobalLoader.md +0 -97
- package/cjs/components/Group/Group.md +0 -19
- package/cjs/components/Hint/Hint.md +0 -86
- package/cjs/components/Input/Input.md +0 -86
- package/cjs/components/Kebab/Kebab.md +0 -306
- package/cjs/components/Link/Link.md +0 -182
- package/cjs/components/Loader/Loader.md +0 -33
- package/cjs/components/MaskedInput/MaskedInput.md +0 -114
- package/cjs/components/MenuFooter/MenuFooter.md +0 -27
- package/cjs/components/MenuHeader/MenuHeader.md +0 -35
- package/cjs/components/MenuItem/MenuItem.md +0 -139
- package/cjs/components/MenuSeparator/MenuSeparator.md +0 -14
- package/cjs/components/MiniModal/MiniModal.md +0 -231
- package/cjs/components/Modal/Modal.md +0 -56
- package/cjs/components/Paging/Paging.md +0 -57
- package/cjs/components/PasswordInput/PasswordInput.md +0 -29
- package/cjs/components/Radio/Radio.md +0 -57
- package/cjs/components/RadioGroup/RadioGroup.md +0 -44
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +0 -75
- package/cjs/components/ScrollContainer/ScrollContainer.md +0 -224
- package/cjs/components/Select/Select.md +0 -113
- package/cjs/components/SidePage/SidePage.md +0 -65
- package/cjs/components/SingleToast/SingleToast.md +0 -36
- package/cjs/components/Spinner/Spinner.md +0 -36
- package/cjs/components/Sticky/Sticky.md +0 -28
- package/cjs/components/Switcher/Switcher.md +0 -111
- package/cjs/components/Tabs/Tab.md +0 -73
- package/cjs/components/Tabs/Tabs.md +0 -54
- package/cjs/components/Textarea/Textarea.md +0 -58
- package/cjs/components/Toast/Toast.md +0 -69
- package/cjs/components/Toggle/Toggle.md +0 -110
- package/cjs/components/Token/Token.md +0 -48
- package/cjs/components/TokenInput/TokenInput.md +0 -277
- package/cjs/components/Tooltip/Tooltip.md +0 -322
- package/cjs/components/TooltipMenu/TooltipMenu.md +0 -241
- package/cjs/internal/DataTids/DATATIDS.md +0 -12
- package/cjs/internal/DataTids/DataTids.d.ts +0 -12
- package/cjs/internal/DataTids/DataTids.js +0 -50
- package/cjs/internal/DataTids/DataTids.js.map +0 -1
- package/cjs/internal/DataTids/DataTids.styles.d.ts +0 -7
- package/cjs/internal/DataTids/DataTids.styles.js +0 -42
- package/cjs/internal/DataTids/DataTids.styles.js.map +0 -1
- package/cjs/internal/DataTids/componentsDataTids.d.ts +0 -5
- package/cjs/internal/DataTids/componentsDataTids.js +0 -15
- package/cjs/internal/DataTids/componentsDataTids.js.map +0 -1
- package/cjs/internal/ThemePlayground/Playground.md +0 -7
- package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +0 -64
- package/cjs/lib/locale/LOCALECONTEXT.md +0 -222
- package/cjs/lib/theming/ThemeContext.md +0 -265
- package/components/Autocomplete/Autocomplete.md +0 -113
- package/components/Button/Button.md +0 -261
- package/components/Calendar/Calendar.md +0 -276
- package/components/Calendar/CalendarDay.md +0 -70
- package/components/Center/Center.md +0 -26
- package/components/Checkbox/Checkbox.md +0 -171
- package/components/ComboBox/ComboBox.md +0 -574
- package/components/CurrencyInput/CurrencyInput.md +0 -39
- package/components/CurrencyLabel/CurrencyLabel.md +0 -29
- package/components/DateInput/DateInput.md +0 -111
- package/components/DatePicker/DatePicker.md +0 -368
- package/components/Dropdown/Dropdown.md +0 -45
- package/components/DropdownMenu/DropdownMenu.md +0 -290
- package/components/FileUploader/FileUploader.md +0 -131
- package/components/FxInput/FxInput.md +0 -31
- package/components/Gapped/Gapped.md +0 -44
- package/components/GlobalLoader/GlobalLoader.md +0 -97
- package/components/Group/Group.md +0 -19
- package/components/Hint/Hint.md +0 -86
- package/components/Input/Input.md +0 -86
- package/components/Kebab/Kebab.md +0 -306
- package/components/Link/Link.md +0 -182
- package/components/Loader/Loader.md +0 -33
- package/components/MaskedInput/MaskedInput.md +0 -114
- package/components/MenuFooter/MenuFooter.md +0 -27
- package/components/MenuHeader/MenuHeader.md +0 -35
- package/components/MenuItem/MenuItem.md +0 -139
- package/components/MenuSeparator/MenuSeparator.md +0 -14
- package/components/MiniModal/MiniModal.md +0 -231
- package/components/Modal/Modal.md +0 -56
- package/components/Paging/Paging.md +0 -57
- package/components/PasswordInput/PasswordInput.md +0 -29
- package/components/Radio/Radio.md +0 -57
- package/components/RadioGroup/RadioGroup.md +0 -44
- package/components/ResponsiveLayout/ResponsiveLayout.md +0 -75
- package/components/ScrollContainer/ScrollContainer.md +0 -224
- package/components/Select/Select.md +0 -113
- package/components/SidePage/SidePage.md +0 -65
- package/components/SingleToast/SingleToast.md +0 -36
- package/components/Spinner/Spinner.md +0 -36
- package/components/Sticky/Sticky.md +0 -28
- package/components/Switcher/Switcher.md +0 -111
- package/components/Tabs/Tab.md +0 -73
- package/components/Tabs/Tabs.md +0 -54
- package/components/Textarea/Textarea.md +0 -58
- package/components/Toast/Toast.md +0 -69
- package/components/Toggle/Toggle.md +0 -110
- package/components/Token/Token.md +0 -48
- package/components/TokenInput/TokenInput.md +0 -277
- package/components/Tooltip/Tooltip.md +0 -322
- package/components/TooltipMenu/TooltipMenu.md +0 -241
- package/internal/DataTids/DATATIDS.md +0 -12
- package/internal/DataTids/DataTids/DataTids.js +0 -69
- package/internal/DataTids/DataTids/DataTids.js.map +0 -1
- package/internal/DataTids/DataTids/package.json +0 -6
- package/internal/DataTids/DataTids.d.ts +0 -12
- package/internal/DataTids/DataTids.styles/DataTids.styles.js +0 -20
- package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +0 -1
- package/internal/DataTids/DataTids.styles/package.json +0 -6
- package/internal/DataTids/DataTids.styles.d.ts +0 -7
- package/internal/DataTids/componentsDataTids/componentsDataTids.js +0 -12
- package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +0 -1
- package/internal/DataTids/componentsDataTids/package.json +0 -6
- package/internal/DataTids/componentsDataTids.d.ts +0 -5
- package/internal/ThemePlayground/Playground.md +0 -7
- package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +0 -64
- package/lib/locale/LOCALECONTEXT.md +0 -222
- package/lib/theming/ThemeContext.md +0 -265
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_ThemeContext","_SpinnerIcon","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_Spinner2","_class","_Spinner","types","SpinnerDataTids","exports","root","Spinner","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","renderSpinner","type","dimmed","inline","_cx","default","createElement","SpinnerIcon","size","className","cx","styles","circle","theme","props","color","circleDimmedColor","circleWithoutColorAnimation","width","renderCaption","caption","captionColor","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","renderMain","_this$props","_this$props$caption","CommonWrapper","_extends2","rootNodeRef","setRootNode","spinner","inner","React","Component","__KONTUR_REACT_UI__","displayName","Types","Object","assign","map","_ref"],"sources":["Spinner.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { SpinnerIcon } from '../../internal/SpinnerIcon/SpinnerIcon';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Spinner.styles';\n\nconst types = ['big', 'mini', 'normal'] as const;\n\nexport type SpinnerType = (typeof types)[number];\n\nexport interface SpinnerProps extends CommonProps {\n /** Задает подпись под спиннером.\n * @default \"Загрузка\" */\n caption?: React.ReactNode;\n\n /** Переводит спиннер в \"затемнённый режим\".\n * Цвет спиннера в \"затемнённом режиме\" определяется переменной `spinnerDimmedColor`. */\n dimmed?: boolean;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: SpinnerType;\n\n /** Уменьшает спиннер для вставки в инлайн элемент. При type = \"big\"|\"normal\" размер спиннера уменьшается. */\n inline?: boolean;\n\n /** Задает толщину спиннера. */\n width?: number;\n\n /** Задает цвет спиннера. Не работает с пропом dimmed. */\n color?: React.CSSProperties['color'];\n}\n\nexport const SpinnerDataTids = {\n root: 'Spinner__root',\n} as const;\n\ntype DefaultProps = Required<Pick<SpinnerProps, 'type'>>;\n\n/**\n * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.\n *\n * Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.\n * Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.\n *\n * Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.\n */\n@rootNode\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n public static displayName = 'Spinner';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n };\n\n private getProps = createPropsGetter(Spinner.defaultProps);\n\n public static Types: Record<SpinnerType, SpinnerType> = Object.assign({}, ...types.map((type) => ({ [type]: type })));\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\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 private renderMain() {\n const { caption = null, dimmed, inline } = this.props;\n const type = this.getProps().type;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SpinnerDataTids.root} className={styles.spinner()}>\n <span className={styles.inner()}>{this.renderSpinner(type, dimmed, inline)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean, inline?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={cx({\n [styles.circle(this.theme)]: !dimmed && !this.props.color,\n [styles.circleDimmedColor(this.theme)]: dimmed,\n [styles.circleWithoutColorAnimation()]: dimmed || !!this.props.color,\n })}\n dimmed={dimmed}\n width={this.props.width}\n color={this.props.color}\n inline={inline}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={cx(styles[type](this.theme), styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"],"mappings":"uWAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;;AAGA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;;AAEA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;;AAEA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAN,OAAA;;AAEA,IAAAO,SAAA,GAAAP,OAAA,qBAA0C,IAAAQ,MAAA,EAAAC,QAAA;;AAE1C,IAAMC,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BzC,IAAMC,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG;EAC7BE,IAAI,EAAE;AACR,CAAU;;;;AAIV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAPA;;AASaC,OAAO,GAAAF,OAAA,CAAAE,OAAA,OADnBC,kBAAQ,EAAAP,MAAA,IAAAC,QAAA,0BAAAO,gBAAA,YAAAF,QAAA,OAAAG,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;IASCU,QAAQ,GAAG,IAAAC,oCAAiB,EAACd,OAAO,CAACe,YAAY,CAAC,CAAAZ,KAAA
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_ThemeContext","_SpinnerIcon","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_Spinner2","_class","_Spinner","types","SpinnerDataTids","exports","root","Spinner","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","renderSpinner","type","dimmed","inline","_cx","default","createElement","SpinnerIcon","size","className","cx","styles","circle","theme","props","color","circleDimmedColor","circleWithoutColorAnimation","width","renderCaption","caption","captionColor","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","renderMain","_this$props","_this$props$caption","CommonWrapper","_extends2","rootNodeRef","setRootNode","spinner","inner","React","Component","__KONTUR_REACT_UI__","displayName","Types","Object","assign","map","_ref"],"sources":["Spinner.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { SpinnerIcon } from '../../internal/SpinnerIcon/SpinnerIcon';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Spinner.styles';\n\nconst types = ['big', 'mini', 'normal'] as const;\n\nexport type SpinnerType = (typeof types)[number];\n\nexport interface SpinnerProps extends CommonProps {\n /** Задает подпись под спиннером.\n * @default \"Загрузка\" */\n caption?: React.ReactNode;\n\n /** Переводит спиннер в \"затемнённый режим\".\n * Цвет спиннера в \"затемнённом режиме\" определяется переменной `spinnerDimmedColor`. */\n dimmed?: boolean;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: SpinnerType;\n\n /** Уменьшает спиннер для вставки в инлайн элемент. При type = \"big\"|\"normal\" размер спиннера уменьшается. */\n inline?: boolean;\n\n /** Задает толщину спиннера. */\n width?: number;\n\n /** Задает цвет спиннера. Не работает с пропом dimmed. */\n color?: React.CSSProperties['color'];\n}\n\nexport const SpinnerDataTids = {\n root: 'Spinner__root',\n} as const;\n\ntype DefaultProps = Required<Pick<SpinnerProps, 'type'>>;\n\n/**\n * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.\n *\n * Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.\n * Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.\n *\n * Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.\n */\n@rootNode\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n public static displayName = 'Spinner';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n };\n\n private getProps = createPropsGetter(Spinner.defaultProps);\n\n public static Types: Record<SpinnerType, SpinnerType> = Object.assign({}, ...types.map((type) => ({ [type]: type })));\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\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 private renderMain() {\n const { caption = null, dimmed, inline } = this.props;\n const type = this.getProps().type;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SpinnerDataTids.root} className={styles.spinner()}>\n <span className={styles.inner()}>{this.renderSpinner(type, dimmed, inline)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean, inline?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={cx({\n [styles.circle(this.theme)]: !dimmed && !this.props.color,\n [styles.circleDimmedColor(this.theme)]: dimmed,\n [styles.circleWithoutColorAnimation()]: dimmed || !!this.props.color,\n })}\n dimmed={dimmed}\n width={this.props.width}\n color={this.props.color}\n inline={inline}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={cx(styles[type](this.theme), styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { Nullable } from '../../typings/utility-types';
|
|
3
3
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
4
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
4
5
|
import type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';
|
|
5
6
|
export interface StickyProps extends Omit<CommonProps, 'children'> {
|
|
6
7
|
/** Задает сторону залипания. */
|
|
@@ -40,6 +41,7 @@ export declare class Sticky extends React.Component<StickyProps, StickyState> {
|
|
|
40
41
|
private inner;
|
|
41
42
|
private layoutSubscription;
|
|
42
43
|
private reflowCounter;
|
|
44
|
+
getRootNode: TGetRootNode;
|
|
43
45
|
private setRootNode;
|
|
44
46
|
featureFlags: ReactUIFeatureFlags;
|
|
45
47
|
componentDidMount(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_shallowequal","_globalObject","LayoutEvents","_interopRequireWildcard","_utils","_ZIndex","_CommonWrapper","_Emotion","_rootNode","_getDOMRect3","_createPropsGetter","_featureFlagsContext","_Sticky2","_class","_Sticky","MAX_REFLOW_RETRIES","StickyDataTids","exports","root","Sticky","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","fixed","deltaHeight","stopped","relativeTop","layoutSubscription","remove","reflowCounter","refWrapper","ref","wrapper","refInner","inner","reflow","_globalObject$documen","globalObject","document","documentElement","Error","windowHeight","innerHeight","clientHeight","_getDOMRect","getDOMRect","top","bottom","left","width","_getDOMRect2","height","_this$props","props","getStop","side","_this$state","prevFixed","_this$state$height","prevHeight","offset","Math","ceil","floor","setState","stop","stopRect","outerHeight","_inheritsLoose2","default","_proto","prototype","componentDidMount","addListener","componentWillUnmount","componentDidUpdate","prevProps","prevState","shallowEqual","featureFlags","stickyReduceLayoutEvents","emit","render","_this2","createElement","ReactUIFeatureFlagsContext","Consumer","flags","getFullReactUIFlagsContext","renderMain","_cx","children","_this$state2","innerStyle","isFunction","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","styles","ZIndex","priority","applyZIndex","cx","style","wrapperRef","container","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Sticky.tsx"],"sourcesContent":["import React from 'react';\nimport shallowEqual from 'shallowequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable } from '../../typings/utility-types';\nimport { isFunction } from '../../lib/utils';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './Sticky.styles';\n\nconst MAX_REFLOW_RETRIES = 5;\n\nexport interface StickyProps extends Omit<CommonProps, 'children'> {\n /** Задает сторону залипания. */\n side: 'top' | 'bottom';\n\n /** Задает отступ от края экрана в пикселях, на который сдвигается элемент в залипшем состоянии.\n * @default 0 */\n offset?: number;\n\n /** Задает функцию, которая возвращает DOM-элемент, который нельзя пересекать. */\n getStop?: () => Nullable<HTMLElement>;\n\n /** @ignore */\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n}\n\nexport interface StickyState {\n fixed: boolean;\n deltaHeight: number;\n height?: number;\n width?: number;\n left?: number;\n stopped: boolean;\n relativeTop: number;\n}\n\nexport const StickyDataTids = {\n root: 'Sticky__root',\n} as const;\n\ntype DefaultProps = Required<Pick<StickyProps, 'offset'>>;\n\n/**\n * `Sticky` позволяет закреплять элемент интерфейса в определенной позиции на экране при прокрутке страницы.\n * Это полезно для создания \"прилипающих\" элементов, которые остаются видимыми при прокрутке содержимого.\n */\n@rootNode\nexport class Sticky extends React.Component<StickyProps, StickyState> {\n public static __KONTUR_REACT_UI__ = 'Sticky';\n public static displayName = 'Sticky';\n\n public static defaultProps: DefaultProps = { offset: 0 };\n\n private getProps = createPropsGetter(Sticky.defaultProps);\n\n public state: StickyState = {\n fixed: false,\n deltaHeight: 0,\n stopped: false,\n relativeTop: 0,\n };\n\n private wrapper: Nullable<HTMLElement>;\n private inner: Nullable<HTMLElement>;\n private layoutSubscription: { remove: Nullable<() => void> } = { remove: null };\n private reflowCounter = 0;\n private setRootNode!: TSetRootNode;\n public featureFlags!: ReactUIFeatureFlags;\n\n public componentDidMount() {\n this.reflow();\n\n this.layoutSubscription = LayoutEvents.addListener(this.reflow);\n }\n\n public componentWillUnmount() {\n if (this.layoutSubscription.remove) {\n this.layoutSubscription.remove();\n }\n }\n\n public componentDidUpdate(prevProps: StickyProps, prevState: StickyState) {\n if (!shallowEqual(prevProps, this.props) || !shallowEqual(prevState, this.state)) {\n if (this.reflowCounter < MAX_REFLOW_RETRIES) {\n this.featureFlags.stickyReduceLayoutEvents ? this.reflow() : LayoutEvents.emit();\n this.reflowCounter += 1;\n return;\n }\n }\n this.reflowCounter = 0;\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return this.renderMain();\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n private renderMain() {\n let { children } = this.props;\n const { side } = this.props;\n const offset = this.getProps().offset;\n const { fixed, stopped, relativeTop, deltaHeight, width, height, left } = this.state;\n const innerStyle: React.CSSProperties = {};\n\n if (fixed) {\n if (stopped) {\n innerStyle.top = relativeTop;\n innerStyle[side === 'top' ? 'marginTop' : 'marginBottom'] = deltaHeight;\n } else {\n innerStyle.width = width;\n innerStyle[side] = offset;\n innerStyle.left = left;\n }\n }\n\n if (isFunction(children)) {\n children = children(fixed);\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={StickyDataTids.root} ref={this.refWrapper} className={styles.wrapper()}>\n <ZIndex\n priority=\"Sticky\"\n applyZIndex={fixed}\n className={cx(styles.inner(), {\n [styles.fixed()]: fixed && !stopped,\n [styles.stopped()]: stopped,\n })}\n style={innerStyle}\n wrapperRef={this.refInner}\n >\n <div className={styles.container()}>{children}</div>\n </ZIndex>\n {fixed && !stopped ? <div style={{ width, height }} /> : null}\n </div>\n </CommonWrapper>\n );\n }\n\n private refWrapper = (ref: Nullable<HTMLElement>) => (this.wrapper = ref);\n\n private refInner = (ref: Nullable<HTMLElement>) => (this.inner = ref);\n\n /**\n * Пересчитать габариты и позицию залипшего элемента\n *\n * @public\n */\n public reflow = () => {\n if (!globalObject.document?.documentElement) {\n throw Error('There is no \"documentElement\" in document');\n }\n\n const windowHeight = globalObject.innerHeight || globalObject.document.documentElement.clientHeight;\n if (!this.wrapper || !this.inner) {\n return;\n }\n const { top, bottom, left, width } = getDOMRect(this.wrapper);\n const { height } = getDOMRect(this.inner);\n const { getStop, side } = this.props;\n const { fixed: prevFixed, height: prevHeight = height } = this.state;\n const offset = this.getProps().offset;\n const fixed = side === 'top' ? Math.ceil(top) < offset : Math.floor(bottom) > windowHeight - offset;\n\n this.setState({ fixed, left });\n\n if (fixed && !prevFixed) {\n this.setState({ width, height });\n }\n\n if (fixed) {\n this.setState({ width });\n const stop = getStop && getStop();\n if (stop) {\n const deltaHeight = prevHeight - height;\n const stopRect = getDOMRect(stop);\n const outerHeight = height + offset;\n let stopped = false;\n let relativeTop = 0;\n\n if (side === 'top') {\n stopped = stopRect.top - outerHeight < 0;\n relativeTop = stopRect.top - prevHeight - top;\n } else {\n stopped = stopRect.bottom + outerHeight > windowHeight;\n relativeTop = stopRect.bottom - top;\n }\n\n this.setState({ relativeTop, deltaHeight, stopped });\n }\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_shallowequal","_globalObject","LayoutEvents","_interopRequireWildcard","_utils","_ZIndex","_CommonWrapper","_Emotion","_rootNode","_getDOMRect3","_createPropsGetter","_featureFlagsContext","_Sticky2","_class","_Sticky","MAX_REFLOW_RETRIES","StickyDataTids","exports","root","Sticky","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","fixed","deltaHeight","stopped","relativeTop","layoutSubscription","remove","reflowCounter","refWrapper","ref","wrapper","refInner","inner","reflow","_globalObject$documen","globalObject","document","documentElement","Error","windowHeight","innerHeight","clientHeight","_getDOMRect","getDOMRect","top","bottom","left","width","_getDOMRect2","height","_this$props","props","getStop","side","_this$state","prevFixed","_this$state$height","prevHeight","offset","Math","ceil","floor","setState","stop","stopRect","outerHeight","_inheritsLoose2","default","_proto","prototype","componentDidMount","addListener","componentWillUnmount","componentDidUpdate","prevProps","prevState","shallowEqual","featureFlags","stickyReduceLayoutEvents","emit","render","_this2","createElement","ReactUIFeatureFlagsContext","Consumer","flags","getFullReactUIFlagsContext","renderMain","_cx","children","_this$state2","innerStyle","isFunction","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","styles","ZIndex","priority","applyZIndex","cx","style","wrapperRef","container","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Sticky.tsx"],"sourcesContent":["import React from 'react';\nimport shallowEqual from 'shallowequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable } from '../../typings/utility-types';\nimport { isFunction } from '../../lib/utils';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './Sticky.styles';\n\nconst MAX_REFLOW_RETRIES = 5;\n\nexport interface StickyProps extends Omit<CommonProps, 'children'> {\n /** Задает сторону залипания. */\n side: 'top' | 'bottom';\n\n /** Задает отступ от края экрана в пикселях, на который сдвигается элемент в залипшем состоянии.\n * @default 0 */\n offset?: number;\n\n /** Задает функцию, которая возвращает DOM-элемент, который нельзя пересекать. */\n getStop?: () => Nullable<HTMLElement>;\n\n /** @ignore */\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n}\n\nexport interface StickyState {\n fixed: boolean;\n deltaHeight: number;\n height?: number;\n width?: number;\n left?: number;\n stopped: boolean;\n relativeTop: number;\n}\n\nexport const StickyDataTids = {\n root: 'Sticky__root',\n} as const;\n\ntype DefaultProps = Required<Pick<StickyProps, 'offset'>>;\n\n/**\n * `Sticky` позволяет закреплять элемент интерфейса в определенной позиции на экране при прокрутке страницы.\n * Это полезно для создания \"прилипающих\" элементов, которые остаются видимыми при прокрутке содержимого.\n */\n@rootNode\nexport class Sticky extends React.Component<StickyProps, StickyState> {\n public static __KONTUR_REACT_UI__ = 'Sticky';\n public static displayName = 'Sticky';\n\n public static defaultProps: DefaultProps = { offset: 0 };\n\n private getProps = createPropsGetter(Sticky.defaultProps);\n\n public state: StickyState = {\n fixed: false,\n deltaHeight: 0,\n stopped: false,\n relativeTop: 0,\n };\n\n private wrapper: Nullable<HTMLElement>;\n private inner: Nullable<HTMLElement>;\n private layoutSubscription: { remove: Nullable<() => void> } = { remove: null };\n private reflowCounter = 0;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n public featureFlags!: ReactUIFeatureFlags;\n\n public componentDidMount() {\n this.reflow();\n\n this.layoutSubscription = LayoutEvents.addListener(this.reflow);\n }\n\n public componentWillUnmount() {\n if (this.layoutSubscription.remove) {\n this.layoutSubscription.remove();\n }\n }\n\n public componentDidUpdate(prevProps: StickyProps, prevState: StickyState) {\n if (!shallowEqual(prevProps, this.props) || !shallowEqual(prevState, this.state)) {\n if (this.reflowCounter < MAX_REFLOW_RETRIES) {\n this.featureFlags.stickyReduceLayoutEvents ? this.reflow() : LayoutEvents.emit();\n this.reflowCounter += 1;\n return;\n }\n }\n this.reflowCounter = 0;\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return this.renderMain();\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n private renderMain() {\n let { children } = this.props;\n const { side } = this.props;\n const offset = this.getProps().offset;\n const { fixed, stopped, relativeTop, deltaHeight, width, height, left } = this.state;\n const innerStyle: React.CSSProperties = {};\n\n if (fixed) {\n if (stopped) {\n innerStyle.top = relativeTop;\n innerStyle[side === 'top' ? 'marginTop' : 'marginBottom'] = deltaHeight;\n } else {\n innerStyle.width = width;\n innerStyle[side] = offset;\n innerStyle.left = left;\n }\n }\n\n if (isFunction(children)) {\n children = children(fixed);\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={StickyDataTids.root} ref={this.refWrapper} className={styles.wrapper()}>\n <ZIndex\n priority=\"Sticky\"\n applyZIndex={fixed}\n className={cx(styles.inner(), {\n [styles.fixed()]: fixed && !stopped,\n [styles.stopped()]: stopped,\n })}\n style={innerStyle}\n wrapperRef={this.refInner}\n >\n <div className={styles.container()}>{children}</div>\n </ZIndex>\n {fixed && !stopped ? <div style={{ width, height }} /> : null}\n </div>\n </CommonWrapper>\n );\n }\n\n private refWrapper = (ref: Nullable<HTMLElement>) => (this.wrapper = ref);\n\n private refInner = (ref: Nullable<HTMLElement>) => (this.inner = ref);\n\n /**\n * Пересчитать габариты и позицию залипшего элемента\n *\n * @public\n */\n public reflow = () => {\n if (!globalObject.document?.documentElement) {\n throw Error('There is no \"documentElement\" in document');\n }\n\n const windowHeight = globalObject.innerHeight || globalObject.document.documentElement.clientHeight;\n if (!this.wrapper || !this.inner) {\n return;\n }\n const { top, bottom, left, width } = getDOMRect(this.wrapper);\n const { height } = getDOMRect(this.inner);\n const { getStop, side } = this.props;\n const { fixed: prevFixed, height: prevHeight = height } = this.state;\n const offset = this.getProps().offset;\n const fixed = side === 'top' ? Math.ceil(top) < offset : Math.floor(bottom) > windowHeight - offset;\n\n this.setState({ fixed, left });\n\n if (fixed && !prevFixed) {\n this.setState({ width, height });\n }\n\n if (fixed) {\n this.setState({ width });\n const stop = getStop && getStop();\n if (stop) {\n const deltaHeight = prevHeight - height;\n const stopRect = getDOMRect(stop);\n const outerHeight = height + offset;\n let stopped = false;\n let relativeTop = 0;\n\n if (side === 'top') {\n stopped = stopRect.top - outerHeight < 0;\n relativeTop = stopRect.top - prevHeight - top;\n } else {\n stopped = stopRect.bottom + outerHeight > windowHeight;\n relativeTop = stopRect.bottom - top;\n }\n\n this.setState({ relativeTop, deltaHeight, stopped });\n }\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@ import React from 'react';
|
|
|
3
3
|
import type { ButtonProps } from '../Button';
|
|
4
4
|
import type { Nullable } from '../../typings/utility-types';
|
|
5
5
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
6
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
6
7
|
import type { SizeProp } from '../../lib/types/props';
|
|
7
8
|
export type SwitcherItems = string | SwitcherItem;
|
|
8
9
|
export declare const SwitcherDataTids: {
|
|
@@ -49,6 +50,7 @@ export declare class Switcher extends React.Component<SwitcherProps, SwitcherSta
|
|
|
49
50
|
static defaultProps: DefaultProps;
|
|
50
51
|
state: SwitcherState;
|
|
51
52
|
private theme;
|
|
53
|
+
getRootNode: TGetRootNode;
|
|
52
54
|
private setRootNode;
|
|
53
55
|
render(): React.JSX.Element;
|
|
54
56
|
private renderMain;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_identifiers","_Group","_Button","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_ThemeHelpers","_featureFlagsContext","_Switcher2","_switcherTheme","_helpers","_class","_Switcher","SwitcherDataTids","exports","root","Switcher","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","focusedIndex","selectItem","value","props","onValueChange","_extractPropsFromItem","item","label","_extractValuesFromItems","items","map","_this$_extractPropsFr","_focus","index","setState","handleKey","e","isKeyEnter","_this$_extractPropsFr2","buttonProps","disabled","isKeyArrowHorizontal","preventDefault","move","isKeyArrowLeft","left","selectedIndex","newFocusedIndex","_getNextFocusedIndex","_this$props","i","mod","_this$_extractPropsFr3","_handleFocus","currentIndex","indexOf","_handleBlur","_renderItems","_this$props2","size","width","role","renderItem","_this$_extractPropsFr4","ariaLabel","itemValue","customButtonProps","isChecked","commonButtonProps","checked","visuallyFocused","onClick","disableFocus","corners","getButtonCorners","_extends2","default","renderDefault","renderDefaultItem","createElement","Button","key","getLabelSizeClassName","styles","captionLarge","theme","captionMedium","captionSmall","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","getSwitcherTheme","Provider","renderMain","_cx","_cx2","inputProps","type","onKeyDown","onFocus","onBlur","className","input","isThemeGTE_5_1","isThemeGTE","isTheme_5_0","ReactUIFeatureFlagsContext","groupAddHintAndTooltipSupport","Group","captionClassName","cx","caption","wrapperClassName","wrap","error5_1","error","wrapCustomWidth","undefined","errorClassName","CommonWrapper","rootNodeRef","setRootNode","style","React","Component","__KONTUR_REACT_UI__","displayName","defaultProps"],"sources":["Switcher.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { isKeyArrowHorizontal, isKeyArrowLeft, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { getButtonCorners, Group } from '../Group';\nimport type { ButtonProps } from '../Button';\nimport { Button } from '../Button';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { SizeProp } from '../../lib/types/props';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './Switcher.styles';\nimport { getSwitcherTheme } from './switcherTheme';\nimport { mod } from './helpers';\n\nexport type SwitcherItems = string | SwitcherItem;\n\nexport const SwitcherDataTids = {\n root: 'Switcher__root',\n} as const;\n\nexport interface SwitcherProps extends Pick<HTMLAttributes<unknown>, 'role'>, CommonProps {\n /** Задает список элементов в свитчере. Это массив строк или объектов типа `{ label: string, value: string, buttonProps?: Partial<ButtonProps> }` */\n items: SwitcherItems[];\n\n /** Устанавливает значение свитчера. */\n value?: string;\n\n /** Задает функцию, которая вызывается при изменении значения свитчера (value). */\n onValueChange?: (value: string) => void;\n\n /** Задает подпись около свитчера. */\n caption?: string;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Задает ширину контрола. С этим пропом элементы внутри автоматически равномерно растянутся. */\n width?: React.CSSProperties['width'];\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает функцию отрисовки элемента. Параметр `renderDefault` - это встроенная дефолтная функция отрисовки элемента, которую можно вызывать в `renderItem`. */\n renderItem?: (\n label: string,\n value: string,\n buttonProps: ButtonProps,\n renderDefault: () => React.ReactNode,\n ariaLabel?: string,\n ) => React.ReactNode;\n}\n\ntype DefaultProps = Required<Pick<SwitcherProps, 'role'>>;\n\nexport interface SwitcherState {\n focusedIndex: Nullable<number>;\n}\n\ninterface SwitcherItem {\n value: string;\n label: string;\n 'aria-label'?: string;\n buttonProps?: Partial<ButtonProps>;\n}\n\n/**\n * Переключатель `Switcher` — это замена RadioGroup.\n *\n * Не используйте переключатель в качестве навигации, для этого лучше подходят Tabs.\n */\n@rootNode\nexport class Switcher extends React.Component<SwitcherProps, SwitcherState> {\n public static __KONTUR_REACT_UI__ = 'Switcher';\n public static displayName = 'Switcher';\n\n public static defaultProps: DefaultProps = {\n role: 'switch',\n };\n\n public state: SwitcherState = {\n focusedIndex: null,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getSwitcherTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const inputProps = {\n type: 'checkbox',\n onKeyDown: this.handleKey,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n className: styles.input(),\n };\n const isThemeGTE_5_1 = isThemeGTE(this.theme, '5.1');\n const isTheme_5_0 = !isThemeGTE_5_1;\n const items = (\n <ReactUIFeatureFlagsContext.Provider value={{ groupAddHintAndTooltipSupport: true }}>\n <Group width={'100%'}>{this._renderItems()}</Group>\n </ReactUIFeatureFlagsContext.Provider>\n );\n\n const captionClassName = cx(styles.caption(this.theme), this.getLabelSizeClassName());\n const wrapperClassName = cx(styles.wrap(), {\n [styles.error5_1(this.theme)]: isThemeGTE_5_1 && this.props.error,\n [styles.wrapCustomWidth()]: this.props.width !== undefined,\n });\n const errorClassName = cx({ [styles.error(this.theme)]: isTheme_5_0 && this.props.error });\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SwitcherDataTids.root} className={styles.root()} style={{ width: this.props.width }}>\n {this.props.caption ? <div className={captionClassName}>{this.props.caption}</div> : null}\n <div className={wrapperClassName}>\n <input {...inputProps} />\n {isThemeGTE_5_1 ? items : <div className={errorClassName}>{items}</div>}\n </div>\n </div>\n </CommonWrapper>\n );\n }\n\n private selectItem = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private _extractPropsFromItem = (item: string | SwitcherItem): SwitcherItem => {\n return typeof item === 'object' ? item : { label: item, value: item };\n };\n\n private _extractValuesFromItems = (): string[] => {\n return this.props.items.map((item) => {\n const { value } = this._extractPropsFromItem(item);\n return value;\n });\n };\n\n private _focus = (index: number) => {\n this.setState({ focusedIndex: index });\n };\n\n private handleKey = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const focusedIndex = this.state.focusedIndex;\n if (typeof focusedIndex !== 'number') {\n return;\n }\n\n if (isKeyEnter(e)) {\n if (this.props.onValueChange) {\n const { value, buttonProps } = this._extractPropsFromItem(this.props.items[focusedIndex]);\n if (!buttonProps?.disabled) {\n this.selectItem(value);\n }\n }\n return;\n }\n\n if (isKeyArrowHorizontal(e)) {\n e.preventDefault();\n this.move(isKeyArrowLeft(e));\n }\n };\n\n private move = (left: boolean) => {\n const selectedIndex = this.state.focusedIndex;\n\n if (typeof selectedIndex !== 'number') {\n return;\n }\n const newFocusedIndex = this._getNextFocusedIndex(left, selectedIndex);\n this._focus(newFocusedIndex);\n };\n\n private _getNextFocusedIndex = (left: boolean, focusedIndex: number): number => {\n const { items, disabled } = this.props;\n if (disabled) {\n return focusedIndex;\n }\n\n for (let i = 1; i < items.length; i++) {\n const index = mod(focusedIndex + (left ? -i : i), items.length);\n const { buttonProps } = this._extractPropsFromItem(items[index]);\n if (!buttonProps?.disabled) {\n return index;\n }\n }\n return focusedIndex;\n };\n\n private _handleFocus = () => {\n const { value } = this.props;\n\n const items = this._extractValuesFromItems();\n const currentIndex = [...items].indexOf(value as string);\n const index = currentIndex > -1 ? currentIndex : 0;\n\n this.setState({ focusedIndex: index });\n };\n\n private _handleBlur = () => {\n this.setState({ focusedIndex: null });\n };\n\n private _renderItems = () => {\n const { items, value, size, width, disabled, role, renderItem } = this.props;\n\n return items.map((item, i) => {\n const {\n 'aria-label': ariaLabel,\n label,\n value: itemValue,\n buttonProps: customButtonProps,\n } = this._extractPropsFromItem(item);\n\n const isChecked = value === itemValue;\n const commonButtonProps = {\n 'aria-checked': isChecked,\n role,\n checked: isChecked,\n visuallyFocused: this.state.focusedIndex === i,\n onClick: () => {\n this.selectItem(itemValue);\n },\n disableFocus: true,\n size,\n disabled,\n corners: getButtonCorners(i === 0, i === items.length - 1),\n };\n\n const buttonProps = {\n ...commonButtonProps,\n ...customButtonProps,\n };\n\n if (!buttonProps.width && width) {\n buttonProps.width = '100%';\n }\n\n const renderDefault = () => this.renderDefaultItem(label, itemValue, buttonProps, ariaLabel);\n return renderItem ? renderItem(label, itemValue, buttonProps, renderDefault, ariaLabel) : renderDefault();\n });\n };\n\n private renderDefaultItem = (label: string, value: string, buttonProps: ButtonProps, ariaLabel?: string) => (\n <Button aria-label={ariaLabel} key={value} {...buttonProps}>\n {label}\n </Button>\n );\n\n private getLabelSizeClassName = (): string => {\n switch (this.props.size) {\n case 'large':\n return styles.captionLarge(this.theme);\n case 'medium':\n return styles.captionMedium(this.theme);\n case 'small':\n default:\n return styles.captionSmall(this.theme);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_identifiers","_Group","_Button","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_ThemeHelpers","_featureFlagsContext","_Switcher2","_switcherTheme","_helpers","_class","_Switcher","SwitcherDataTids","exports","root","Switcher","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","focusedIndex","selectItem","value","props","onValueChange","_extractPropsFromItem","item","label","_extractValuesFromItems","items","map","_this$_extractPropsFr","_focus","index","setState","handleKey","e","isKeyEnter","_this$_extractPropsFr2","buttonProps","disabled","isKeyArrowHorizontal","preventDefault","move","isKeyArrowLeft","left","selectedIndex","newFocusedIndex","_getNextFocusedIndex","_this$props","i","mod","_this$_extractPropsFr3","_handleFocus","currentIndex","indexOf","_handleBlur","_renderItems","_this$props2","size","width","role","renderItem","_this$_extractPropsFr4","ariaLabel","itemValue","customButtonProps","isChecked","commonButtonProps","checked","visuallyFocused","onClick","disableFocus","corners","getButtonCorners","_extends2","default","renderDefault","renderDefaultItem","createElement","Button","key","getLabelSizeClassName","styles","captionLarge","theme","captionMedium","captionSmall","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","getSwitcherTheme","Provider","renderMain","_cx","_cx2","inputProps","type","onKeyDown","onFocus","onBlur","className","input","isThemeGTE_5_1","isThemeGTE","isTheme_5_0","ReactUIFeatureFlagsContext","groupAddHintAndTooltipSupport","Group","captionClassName","cx","caption","wrapperClassName","wrap","error5_1","error","wrapCustomWidth","undefined","errorClassName","CommonWrapper","rootNodeRef","setRootNode","style","React","Component","__KONTUR_REACT_UI__","displayName","defaultProps"],"sources":["Switcher.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { isKeyArrowHorizontal, isKeyArrowLeft, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { getButtonCorners, Group } from '../Group';\nimport type { ButtonProps } from '../Button';\nimport { Button } from '../Button';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { SizeProp } from '../../lib/types/props';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './Switcher.styles';\nimport { getSwitcherTheme } from './switcherTheme';\nimport { mod } from './helpers';\n\nexport type SwitcherItems = string | SwitcherItem;\n\nexport const SwitcherDataTids = {\n root: 'Switcher__root',\n} as const;\n\nexport interface SwitcherProps extends Pick<HTMLAttributes<unknown>, 'role'>, CommonProps {\n /** Задает список элементов в свитчере. Это массив строк или объектов типа `{ label: string, value: string, buttonProps?: Partial<ButtonProps> }` */\n items: SwitcherItems[];\n\n /** Устанавливает значение свитчера. */\n value?: string;\n\n /** Задает функцию, которая вызывается при изменении значения свитчера (value). */\n onValueChange?: (value: string) => void;\n\n /** Задает подпись около свитчера. */\n caption?: string;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Задает ширину контрола. С этим пропом элементы внутри автоматически равномерно растянутся. */\n width?: React.CSSProperties['width'];\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает функцию отрисовки элемента. Параметр `renderDefault` - это встроенная дефолтная функция отрисовки элемента, которую можно вызывать в `renderItem`. */\n renderItem?: (\n label: string,\n value: string,\n buttonProps: ButtonProps,\n renderDefault: () => React.ReactNode,\n ariaLabel?: string,\n ) => React.ReactNode;\n}\n\ntype DefaultProps = Required<Pick<SwitcherProps, 'role'>>;\n\nexport interface SwitcherState {\n focusedIndex: Nullable<number>;\n}\n\ninterface SwitcherItem {\n value: string;\n label: string;\n 'aria-label'?: string;\n buttonProps?: Partial<ButtonProps>;\n}\n\n/**\n * Переключатель `Switcher` — это замена RadioGroup.\n *\n * Не используйте переключатель в качестве навигации, для этого лучше подходят Tabs.\n */\n@rootNode\nexport class Switcher extends React.Component<SwitcherProps, SwitcherState> {\n public static __KONTUR_REACT_UI__ = 'Switcher';\n public static displayName = 'Switcher';\n\n public static defaultProps: DefaultProps = {\n role: 'switch',\n };\n\n public state: SwitcherState = {\n focusedIndex: null,\n };\n\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getSwitcherTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const inputProps = {\n type: 'checkbox',\n onKeyDown: this.handleKey,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n className: styles.input(),\n };\n const isThemeGTE_5_1 = isThemeGTE(this.theme, '5.1');\n const isTheme_5_0 = !isThemeGTE_5_1;\n const items = (\n <ReactUIFeatureFlagsContext.Provider value={{ groupAddHintAndTooltipSupport: true }}>\n <Group width={'100%'}>{this._renderItems()}</Group>\n </ReactUIFeatureFlagsContext.Provider>\n );\n\n const captionClassName = cx(styles.caption(this.theme), this.getLabelSizeClassName());\n const wrapperClassName = cx(styles.wrap(), {\n [styles.error5_1(this.theme)]: isThemeGTE_5_1 && this.props.error,\n [styles.wrapCustomWidth()]: this.props.width !== undefined,\n });\n const errorClassName = cx({ [styles.error(this.theme)]: isTheme_5_0 && this.props.error });\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SwitcherDataTids.root} className={styles.root()} style={{ width: this.props.width }}>\n {this.props.caption ? <div className={captionClassName}>{this.props.caption}</div> : null}\n <div className={wrapperClassName}>\n <input {...inputProps} />\n {isThemeGTE_5_1 ? items : <div className={errorClassName}>{items}</div>}\n </div>\n </div>\n </CommonWrapper>\n );\n }\n\n private selectItem = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private _extractPropsFromItem = (item: string | SwitcherItem): SwitcherItem => {\n return typeof item === 'object' ? item : { label: item, value: item };\n };\n\n private _extractValuesFromItems = (): string[] => {\n return this.props.items.map((item) => {\n const { value } = this._extractPropsFromItem(item);\n return value;\n });\n };\n\n private _focus = (index: number) => {\n this.setState({ focusedIndex: index });\n };\n\n private handleKey = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const focusedIndex = this.state.focusedIndex;\n if (typeof focusedIndex !== 'number') {\n return;\n }\n\n if (isKeyEnter(e)) {\n if (this.props.onValueChange) {\n const { value, buttonProps } = this._extractPropsFromItem(this.props.items[focusedIndex]);\n if (!buttonProps?.disabled) {\n this.selectItem(value);\n }\n }\n return;\n }\n\n if (isKeyArrowHorizontal(e)) {\n e.preventDefault();\n this.move(isKeyArrowLeft(e));\n }\n };\n\n private move = (left: boolean) => {\n const selectedIndex = this.state.focusedIndex;\n\n if (typeof selectedIndex !== 'number') {\n return;\n }\n const newFocusedIndex = this._getNextFocusedIndex(left, selectedIndex);\n this._focus(newFocusedIndex);\n };\n\n private _getNextFocusedIndex = (left: boolean, focusedIndex: number): number => {\n const { items, disabled } = this.props;\n if (disabled) {\n return focusedIndex;\n }\n\n for (let i = 1; i < items.length; i++) {\n const index = mod(focusedIndex + (left ? -i : i), items.length);\n const { buttonProps } = this._extractPropsFromItem(items[index]);\n if (!buttonProps?.disabled) {\n return index;\n }\n }\n return focusedIndex;\n };\n\n private _handleFocus = () => {\n const { value } = this.props;\n\n const items = this._extractValuesFromItems();\n const currentIndex = [...items].indexOf(value as string);\n const index = currentIndex > -1 ? currentIndex : 0;\n\n this.setState({ focusedIndex: index });\n };\n\n private _handleBlur = () => {\n this.setState({ focusedIndex: null });\n };\n\n private _renderItems = () => {\n const { items, value, size, width, disabled, role, renderItem } = this.props;\n\n return items.map((item, i) => {\n const {\n 'aria-label': ariaLabel,\n label,\n value: itemValue,\n buttonProps: customButtonProps,\n } = this._extractPropsFromItem(item);\n\n const isChecked = value === itemValue;\n const commonButtonProps = {\n 'aria-checked': isChecked,\n role,\n checked: isChecked,\n visuallyFocused: this.state.focusedIndex === i,\n onClick: () => {\n this.selectItem(itemValue);\n },\n disableFocus: true,\n size,\n disabled,\n corners: getButtonCorners(i === 0, i === items.length - 1),\n };\n\n const buttonProps = {\n ...commonButtonProps,\n ...customButtonProps,\n };\n\n if (!buttonProps.width && width) {\n buttonProps.width = '100%';\n }\n\n const renderDefault = () => this.renderDefaultItem(label, itemValue, buttonProps, ariaLabel);\n return renderItem ? renderItem(label, itemValue, buttonProps, renderDefault, ariaLabel) : renderDefault();\n });\n };\n\n private renderDefaultItem = (label: string, value: string, buttonProps: ButtonProps, ariaLabel?: string) => (\n <Button aria-label={ariaLabel} key={value} {...buttonProps}>\n {label}\n </Button>\n );\n\n private getLabelSizeClassName = (): string => {\n switch (this.props.size) {\n case 'large':\n return styles.captionLarge(this.theme);\n case 'medium':\n return styles.captionMedium(this.theme);\n case 'small':\n default:\n return styles.captionSmall(this.theme);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
2
3
|
import type { TabsContextType } from './TabsContext';
|
|
3
4
|
export interface IndicatorProps {
|
|
4
5
|
className?: string;
|
|
@@ -17,6 +18,7 @@ export declare class Indicator extends React.Component<IndicatorProps, Indicator
|
|
|
17
18
|
private theme;
|
|
18
19
|
private eventListener;
|
|
19
20
|
private removeTabUpdatesListener;
|
|
21
|
+
getRootNode: TGetRootNode;
|
|
20
22
|
private setRootNode;
|
|
21
23
|
componentDidMount(): void;
|
|
22
24
|
componentWillUnmount(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","_isInstanceOf","LayoutEvents","_interopRequireWildcard","_ThemeContext","_Emotion","_rootNode","_getDOMRect","_Indicator2","_TabsContext","_Tabs","_class","_Indicator","Indicator","exports","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","styles","eventListener","removeTabUpdatesListener","reflow","throttle","_this$context","getTab","activeTab","node","nodeStyles","getStyles","stylesUpdated","some","prop","setState","_inheritsLoose2","default","_proto","prototype","componentDidMount","addListener","props","tabUpdates","on","componentWillUnmount","cancel","remove","componentDidUpdate","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","_this$context2","indicators","getIndicators","error","warning","success","primary","disabled","TabsDataTids","indicatorRoot","className","cx","root","style","ref","setRootNode","htmlNode","getRootNode","isInstanceOf","globalObject","HTMLElement","rect","getDOMRect","vertical","width","tabBorderWidth","left","offsetLeft","top","offsetTop","height","bottom","parseInt","offsetHeight","right","React","Component","contextType","TabsContext"],"sources":["Indicator.tsx"],"sourcesContent":["import React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './Indicator.styles';\nimport type { TabsContextType } from './TabsContext';\nimport { TabsContext } from './TabsContext';\nimport type { TabIndicators } from './Tab';\nimport { TabsDataTids } from './Tabs';\n\nexport interface IndicatorProps {\n className?: string;\n tabUpdates: {\n on: (x0: () => void) => () => void;\n };\n vertical: boolean;\n}\n\nexport interface IndicatorState {\n styles: React.CSSProperties;\n}\n\n@rootNode\nexport class Indicator extends React.Component<IndicatorProps, IndicatorState> {\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public state: IndicatorState = {\n styles: {},\n };\n\n private theme!: Theme;\n\n private eventListener: Nullable<{\n remove: () => void;\n }> = null;\n\n private removeTabUpdatesListener: Nullable<() => void> = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.eventListener = LayoutEvents.addListener(this.reflow);\n this.removeTabUpdatesListener = this.props.tabUpdates.on(this.reflow);\n this.reflow();\n }\n\n public componentWillUnmount() {\n this.reflow.cancel();\n\n if (this.eventListener) {\n this.eventListener.remove();\n }\n if (this.removeTabUpdatesListener) {\n this.removeTabUpdatesListener();\n }\n }\n\n public componentDidUpdate() {\n this.reflow();\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 private renderMain() {\n const { getTab, activeTab } = this.context;\n const node = getTab(activeTab);\n const indicators: TabIndicators = (node && node.getIndicators && node.getIndicators()) || {\n error: false,\n warning: false,\n success: false,\n primary: false,\n disabled: false,\n };\n return (\n <div\n data-tid={TabsDataTids.indicatorRoot}\n className={cx(\n styles.root(this.theme),\n indicators.primary && styles.primary(this.theme),\n indicators.success && styles.success(this.theme),\n indicators.warning && styles.warning(this.theme),\n indicators.error && styles.error(this.theme),\n this.props.className,\n )}\n style={this.state.styles}\n ref={this.setRootNode}\n />\n );\n }\n\n private reflow = throttle(() => {\n const { getTab, activeTab } = this.context;\n const node = getTab(activeTab);\n const nodeStyles = this.getStyles(node);\n const stylesUpdated = ['left', 'top', 'width', 'height'].some(\n (prop) => nodeStyles[prop as keyof React.CSSProperties] !== this.state.styles[prop as keyof React.CSSProperties],\n );\n if (stylesUpdated) {\n this.setState({ styles: nodeStyles });\n }\n }, 100);\n\n private getStyles(node: any): React.CSSProperties {\n const htmlNode = getRootNode(node);\n\n if (isInstanceOf(htmlNode, globalObject.HTMLElement)) {\n const rect = getDOMRect(htmlNode);\n if (this.props.vertical) {\n return {\n width: this.theme.tabBorderWidth,\n left: htmlNode.offsetLeft,\n top: htmlNode.offsetTop,\n height: rect.bottom - rect.top,\n };\n }\n\n const tabBorderWidth = parseInt(this.theme.tabBorderWidth, 10) || 0;\n return {\n left: htmlNode.offsetLeft,\n top: htmlNode.offsetHeight + htmlNode.offsetTop - tabBorderWidth,\n width: rect.right - rect.left,\n };\n }\n\n return {};\n }\n}\n"],"mappings":"4VAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;;AAEA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAC,uBAAA,CAAAL,OAAA;;AAEA,IAAAM,aAAA,GAAAN,OAAA;;AAEA,IAAAO,QAAA,GAAAP,OAAA;;AAEA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;;AAEA,IAAAU,WAAA,GAAAV,OAAA;;AAEA,IAAAW,YAAA,GAAAX,OAAA;;AAEA,IAAAY,KAAA,GAAAZ,OAAA,WAAsC,IAAAa,MAAA,EAAAC,UAAA;;;;;;;;;;;;;;;AAezBC,SAAS,GAAAC,OAAA,CAAAD,SAAA,OADrBE,kBAAQ,EAAAJ,MAAA,IAAAC,UAAA,0BAAAI,gBAAA,YAAAH,UAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;IAGAU,OAAO,GAAoBV,KAAA,CAAKU,OAAO,CAAAV,KAAA;;IAEvCW,KAAK,GAAmB;MAC7BC,MAAM,EAAE,CAAC;IACX,CAAC,CAAAZ,KAAA;;;;IAIOa,aAAa;;IAEhB,IAAI,CAAAb,KAAA;;IAEDc,wBAAwB,GAAyB,IAAI,CAAAd,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8DrDe,MAAM,GAAG,IAAAC,eAAQ,EAAC,YAAM;MAC9B,IAAAC,aAAA,GAA8BjB,KAAA,CAAKU,OAAO,CAAlCQ,MAAM,GAAAD,aAAA,CAANC,MAAM,CAAEC,SAAS,GAAAF,aAAA,CAATE,SAAS;MACzB,IAAMC,IAAI,GAAGF,MAAM,CAACC,SAAS,CAAC;MAC9B,IAAME,UAAU,GAAGrB,KAAA,CAAKsB,SAAS,CAACF,IAAI,CAAC;MACvC,IAAMG,aAAa,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAACC,IAAI;QAC3D,UAACC,IAAI,UAAKJ,UAAU,CAACI,IAAI,CAA8B,KAAKzB,KAAA,CAAKW,KAAK,CAACC,MAAM,CAACa,IAAI,CAA8B;MAClH,CAAC;MACD,IAAIF,aAAa,EAAE;QACjBvB,KAAA,CAAK0B,QAAQ,CAAC,EAAEd,MAAM,EAAES,UAAU,CAAC,CAAC,CAAC;MACvC;IACF,CAAC,EAAE,GAAG,CAAC,QAAArB,KAAA,MAAA2B,eAAA,CAAAC,OAAA,EAAAhC,SAAA,EAAAG,gBAAA,MAAA8B,MAAA,GAAAjC,SAAA,CAAAkC,SAAA,CAAAD,MAAA,CArEAE,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,CAAClB,aAAa,GAAG5B,YAAY,CAAC+C,WAAW,CAAC,IAAI,CAACjB,MAAM,CAAC,CAC1D,IAAI,CAACD,wBAAwB,GAAG,IAAI,CAACmB,KAAK,CAACC,UAAU,CAACC,EAAE,CAAC,IAAI,CAACpB,MAAM,CAAC,CACrE,IAAI,CAACA,MAAM,CAAC,CAAC,CACf,CAAC,CAAAc,MAAA,CAEMO,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,CAACrB,MAAM,CAACsB,MAAM,CAAC,CAAC,CAEpB,IAAI,IAAI,CAACxB,aAAa,EAAE,CACtB,IAAI,CAACA,aAAa,CAACyB,MAAM,CAAC,CAAC,CAC7B,CACA,IAAI,IAAI,CAACxB,wBAAwB,EAAE,CACjC,IAAI,CAACA,wBAAwB,CAAC,CAAC,CACjC,CACF,CAAC,CAAAe,MAAA,CAEMU,kBAAkB,GAAzB,SAAAA,mBAAA,EAA4B,CAC1B,IAAI,CAACxB,MAAM,CAAC,CAAC,CACf,CAAC,CAAAc,MAAA,CAEMW,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACE9D,MAAA,CAAAiD,OAAA,CAAAc,aAAA,CAACvD,aAAA,CAAAwD,YAAY,CAACC,QAAQ,QACnB,UAACC,KAAK,EAAK,CACVJ,MAAI,CAACI,KAAK,GAAGA,KAAK,CAClB,OAAOJ,MAAI,CAACK,UAAU,CAAC,CAAC,CAC1B,CACqB,CAAC,CAE5B,CAAC,CAAAjB,MAAA,CAEOiB,UAAU,GAAlB,SAAAA,WAAA,EAAqB,CACnB,IAAAC,cAAA,GAA8B,IAAI,CAACrC,OAAO,CAAlCQ,MAAM,GAAA6B,cAAA,CAAN7B,MAAM,CAAEC,SAAS,GAAA4B,cAAA,CAAT5B,SAAS,CACzB,IAAMC,IAAI,GAAGF,MAAM,CAACC,SAAS,CAAC,CAC9B,IAAM6B,UAAyB,GAAI5B,IAAI,IAAIA,IAAI,CAAC6B,aAAa,IAAI7B,IAAI,CAAC6B,aAAa,CAAC,CAAC,IAAK,EACxFC,KAAK,EAAE,KAAK,EACZC,OAAO,EAAE,KAAK,EACdC,OAAO,EAAE,KAAK,EACdC,OAAO,EAAE,KAAK,EACdC,QAAQ,EAAE,KAAK,CACjB,CAAC,CACD,oBACE3E,MAAA,CAAAiD,OAAA,CAAAc,aAAA,UACE,YAAUa,kBAAY,CAACC,aAAc,EACrCC,SAAS,EAAE,IAAAC,WAAE,EACX9C,kBAAM,CAAC+C,IAAI,CAAC,IAAI,CAACd,KAAK,CAAC,EACvBG,UAAU,CAACK,OAAO,IAAIzC,kBAAM,CAACyC,OAAO,CAAC,IAAI,CAACR,KAAK,CAAC,EAChDG,UAAU,CAACI,OAAO,IAAIxC,kBAAM,CAACwC,OAAO,CAAC,IAAI,CAACP,KAAK,CAAC,EAChDG,UAAU,CAACG,OAAO,IAAIvC,kBAAM,CAACuC,OAAO,CAAC,IAAI,CAACN,KAAK,CAAC,EAChDG,UAAU,CAACE,KAAK,IAAItC,kBAAM,CAACsC,KAAK,CAAC,IAAI,CAACL,KAAK,CAAC,EAC5C,IAAI,CAACZ,KAAK,CAACwB,SACb,CAAE,EACFG,KAAK,EAAE,IAAI,CAACjD,KAAK,CAACC,MAAO,EACzBiD,GAAG,EAAE,IAAI,CAACC,WAAY,EACvB,CAAC,CAEN,CAAC,CAAAjC,MAAA;;EAcOP,SAAS,GAAjB,SAAAA,UAAkBF,IAAS,EAAuB;IAChD,IAAM2C,QAAQ,GAAG,IAAAC,qBAAW,EAAC5C,IAAI,CAAC;;IAElC,IAAI,IAAA6C,0BAAY,EAACF,QAAQ,EAAEG,0BAAY,CAACC,WAAW,CAAC,EAAE;MACpD,IAAMC,IAAI,GAAG,IAAAC,sBAAU,EAACN,QAAQ,CAAC;MACjC,IAAI,IAAI,CAAC9B,KAAK,CAACqC,QAAQ,EAAE;QACvB,OAAO;UACLC,KAAK,EAAE,IAAI,CAAC1B,KAAK,CAAC2B,cAAc;UAChCC,IAAI,EAAEV,QAAQ,CAACW,UAAU;UACzBC,GAAG,EAAEZ,QAAQ,CAACa,SAAS;UACvBC,MAAM,EAAET,IAAI,CAACU,MAAM,GAAGV,IAAI,CAACO;QAC7B,CAAC;MACH;;MAEA,IAAMH,cAAc,GAAGO,QAAQ,CAAC,IAAI,CAAClC,KAAK,CAAC2B,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC;MACnE,OAAO;QACLC,IAAI,EAAEV,QAAQ,CAACW,UAAU;QACzBC,GAAG,EAAEZ,QAAQ,CAACiB,YAAY,GAAGjB,QAAQ,CAACa,SAAS,GAAGJ,cAAc;QAChED,KAAK,EAAEH,IAAI,CAACa,KAAK,GAAGb,IAAI,CAACK;MAC3B,CAAC;IACH;;IAEA,OAAO,CAAC,CAAC;EACX,CAAC,QAAA7E,SAAA,GA/G4BsF,cAAK,CAACC,SAAS,GAAAxF,UAAA,CAC9ByF,WAAW,GAAGC,wBAAW,EAAA1F,UAAA,MAAAD,MAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","_isInstanceOf","LayoutEvents","_interopRequireWildcard","_ThemeContext","_Emotion","_rootNode","_getDOMRect","_Indicator2","_TabsContext","_Tabs","_class","_Indicator","Indicator","exports","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","context","state","styles","eventListener","removeTabUpdatesListener","reflow","throttle","_this$context","getTab","activeTab","node","nodeStyles","getStyles","stylesUpdated","some","prop","setState","_inheritsLoose2","default","_proto","prototype","componentDidMount","addListener","props","tabUpdates","on","componentWillUnmount","cancel","remove","componentDidUpdate","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","_this$context2","indicators","getIndicators","error","warning","success","primary","disabled","TabsDataTids","indicatorRoot","className","cx","root","style","ref","setRootNode","htmlNode","getRootNode","isInstanceOf","globalObject","HTMLElement","rect","getDOMRect","vertical","width","tabBorderWidth","left","offsetLeft","top","offsetTop","height","bottom","parseInt","offsetHeight","right","React","Component","contextType","TabsContext"],"sources":["Indicator.tsx"],"sourcesContent":["import React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './Indicator.styles';\nimport type { TabsContextType } from './TabsContext';\nimport { TabsContext } from './TabsContext';\nimport type { TabIndicators } from './Tab';\nimport { TabsDataTids } from './Tabs';\n\nexport interface IndicatorProps {\n className?: string;\n tabUpdates: {\n on: (x0: () => void) => () => void;\n };\n vertical: boolean;\n}\n\nexport interface IndicatorState {\n styles: React.CSSProperties;\n}\n\n@rootNode\nexport class Indicator extends React.Component<IndicatorProps, IndicatorState> {\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public state: IndicatorState = {\n styles: {},\n };\n\n private theme!: Theme;\n\n private eventListener: Nullable<{\n remove: () => void;\n }> = null;\n\n private removeTabUpdatesListener: Nullable<() => void> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.eventListener = LayoutEvents.addListener(this.reflow);\n this.removeTabUpdatesListener = this.props.tabUpdates.on(this.reflow);\n this.reflow();\n }\n\n public componentWillUnmount() {\n this.reflow.cancel();\n\n if (this.eventListener) {\n this.eventListener.remove();\n }\n if (this.removeTabUpdatesListener) {\n this.removeTabUpdatesListener();\n }\n }\n\n public componentDidUpdate() {\n this.reflow();\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 private renderMain() {\n const { getTab, activeTab } = this.context;\n const node = getTab(activeTab);\n const indicators: TabIndicators = (node && node.getIndicators && node.getIndicators()) || {\n error: false,\n warning: false,\n success: false,\n primary: false,\n disabled: false,\n };\n return (\n <div\n data-tid={TabsDataTids.indicatorRoot}\n className={cx(\n styles.root(this.theme),\n indicators.primary && styles.primary(this.theme),\n indicators.success && styles.success(this.theme),\n indicators.warning && styles.warning(this.theme),\n indicators.error && styles.error(this.theme),\n this.props.className,\n )}\n style={this.state.styles}\n ref={this.setRootNode}\n />\n );\n }\n\n private reflow = throttle(() => {\n const { getTab, activeTab } = this.context;\n const node = getTab(activeTab);\n const nodeStyles = this.getStyles(node);\n const stylesUpdated = ['left', 'top', 'width', 'height'].some(\n (prop) => nodeStyles[prop as keyof React.CSSProperties] !== this.state.styles[prop as keyof React.CSSProperties],\n );\n if (stylesUpdated) {\n this.setState({ styles: nodeStyles });\n }\n }, 100);\n\n private getStyles(node: any): React.CSSProperties {\n const htmlNode = getRootNode(node);\n\n if (isInstanceOf(htmlNode, globalObject.HTMLElement)) {\n const rect = getDOMRect(htmlNode);\n if (this.props.vertical) {\n return {\n width: this.theme.tabBorderWidth,\n left: htmlNode.offsetLeft,\n top: htmlNode.offsetTop,\n height: rect.bottom - rect.top,\n };\n }\n\n const tabBorderWidth = parseInt(this.theme.tabBorderWidth, 10) || 0;\n return {\n left: htmlNode.offsetLeft,\n top: htmlNode.offsetHeight + htmlNode.offsetTop - tabBorderWidth,\n width: rect.right - rect.left,\n };\n }\n\n return {};\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@ import type { AriaAttributes } from 'react';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { Nullable } from '../../typings/utility-types';
|
|
4
4
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
5
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
5
6
|
import type { TabsContextType } from './TabsContext';
|
|
6
7
|
export interface TabIndicators {
|
|
7
8
|
error: boolean;
|
|
@@ -53,6 +54,7 @@ export declare class Tab<T extends string = string> extends React.Component<TabP
|
|
|
53
54
|
state: TabState;
|
|
54
55
|
private theme;
|
|
55
56
|
private tabComponent;
|
|
57
|
+
getRootNode: TGetRootNode;
|
|
56
58
|
private setRootNode;
|
|
57
59
|
constructor(props: TabProps<T>);
|
|
58
60
|
componentDidMount(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_invariant","_globalObject","_ResizeDetector","_identifiers","_keyListener","_utils","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_getVisualStateDataAttributes","_TabsContext","_Tab2","_class","_Tab","TabDataTids","exports","root","Tab","rootNode","_React$Component","props","_this","call","context","getProps","createPropsGetter","defaultProps","state","focusedByKeyboard","tabComponent","getUnderlyingNode","getId","id","href","refTabComponent","instance","getTabInstance","switchTab","event","disabled","preventDefault","_this$getProps","component","onClick","defaultPrevented","handleKeyDown","e","onKeyDown","isKeyArrow","delta","isKeyArrowLeft","isKeyArrowUp","shiftFocus","handleFocus","globalObject","requestAnimationFrame","keyListener","isTabPressed","isArrowPressed","setState","handleBlur","invariant","TabsContextDefaultValue","_inheritsLoose2","default","_proto","prototype","componentDidMount","addTab","componentDidUpdate","activeTab","notifyUpdate","componentWillUnmount","removeTab","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","getIndicators","error","Boolean","warning","success","primary","_cx","_cx2","_this$props","children","ariaDescribedby","ariaLabel","_this$getProps2","Component","isActive","isVertical","vertical","orientationStyles","verticalStyles","horizontalStyles","CommonWrapper","_extends2","rootNodeRef","setRootNode","getVisualStateDataAttributes","active","className","cx","styles","rootSmall","size","rootMedium","rootLarge","verticalSmall","verticalMedium","verticalLarge","onBlur","onFocus","tabIndex","ref","isFunctionalComponent","ResizeDetector","onResize","globalClasses","focus","focusSmall","focusMedium","focusLarge","React","__KONTUR_REACT_UI__","displayName","contextType","TabsContext"],"sources":["Tab.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport invariant from 'invariant';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isKeyArrow, isKeyArrowLeft, isKeyArrowUp } from '../../lib/events/keyboard/identifiers';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Nullable } from '../../typings/utility-types';\nimport { isFunctionalComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport type { TabsContextType } from './TabsContext';\nimport { TabsContext, TabsContextDefaultValue } from './TabsContext';\nimport { globalClasses, horizontalStyles, styles, verticalStyles } from './Tab.styles';\n\nexport interface TabIndicators {\n error: boolean;\n warning: boolean;\n success: boolean;\n primary: boolean;\n disabled: boolean;\n}\n\nexport const TabDataTids = {\n root: 'Tab__root',\n} as const;\n\nexport interface TabProps<T extends string = string>\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n CommonProps {\n /** Позволяет передавать свой компонент, строку или функцию, которая заменит собой элемент используемый в компоненте по умолчанию.\n * Реализует паттерн [render prop](https://www.patterns.dev/posts/render-props-pattern). */\n component?: React.ComponentType<any> | string;\n\n /** Задает HTML-атрибут `href` - адрес, на который следует перейти. */\n href?: string;\n\n /** Задает уникальный идентификатор таба. По нему компонент `<Tabs />` определяет какой `<Tab />` сейчас выбран. */\n id?: T;\n\n /**`HTML`-событие `onclick`. */\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** `HTML`-событие `onkeydown`. */\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Устанавливает визульное состояние валидации \"успех\". */\n success?: boolean;\n\n /** Задает визульное состояние главного элемента. */\n primary?: boolean;\n}\n\nexport interface TabState {\n focusedByKeyboard: boolean;\n}\n\ntype DefaultProps = Required<Pick<TabProps, 'component' | 'href'>>;\n\n/**\n * Вложенный элемент компонента Tabs.\n */\n@rootNode\nexport class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {\n public static __KONTUR_REACT_UI__ = 'Tab';\n public static displayName = 'Tab';\n\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public static defaultProps: DefaultProps = {\n component: 'a',\n href: '',\n };\n\n private getProps = createPropsGetter(Tab.defaultProps);\n\n public state: TabState = {\n focusedByKeyboard: false,\n };\n\n private theme!: Theme;\n private tabComponent: Nullable<React.ReactElement<Tab<T>>> = null;\n private setRootNode!: TSetRootNode;\n\n constructor(props: TabProps<T>) {\n super(props);\n invariant(this.context !== TabsContextDefaultValue, 'Tab should be placed inside Tabs component');\n }\n\n public componentDidMount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.addTab(id, this.getTabInstance);\n }\n }\n\n public componentDidUpdate() {\n if (this.context.activeTab === this.props.id) {\n this.context.notifyUpdate();\n }\n }\n\n public componentWillUnmount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.removeTab(id);\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 public getIndicators() {\n return {\n error: Boolean(this.props.error),\n warning: Boolean(this.props.warning),\n success: Boolean(this.props.success),\n primary: Boolean(this.props.primary),\n disabled: Boolean(this.props.disabled),\n };\n }\n\n public getUnderlyingNode = () => this.tabComponent;\n\n private renderMain() {\n const {\n children,\n disabled,\n error,\n warning,\n success,\n primary,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n const { component: Component, href } = this.getProps();\n\n let isActive = false;\n let isVertical = false;\n\n const id = this.getId();\n if (typeof id === 'string') {\n isActive = this.context.activeTab === this.getId();\n isVertical = this.context.vertical;\n }\n const orientationStyles = isVertical ? verticalStyles : horizontalStyles;\n\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({ active: isActive, disabled })}\n {...this.props}\n >\n <Component\n data-tid={TabDataTids.root}\n className={cx({\n [styles.rootSmall(this.theme)]: this.context.size === 'small',\n [styles.rootMedium(this.theme)]: this.context.size === 'medium',\n [styles.rootLarge(this.theme)]: this.context.size === 'large',\n [styles.verticalSmall(this.theme)]: !!isVertical && this.context.size === 'small',\n [styles.verticalMedium(this.theme)]: !!isVertical && this.context.size === 'medium',\n [styles.verticalLarge(this.theme)]: !!isVertical && this.context.size === 'large',\n [orientationStyles.primary(this.theme)]: !!primary,\n [orientationStyles.success(this.theme)]: !!success,\n [orientationStyles.warning(this.theme)]: !!warning,\n [orientationStyles.error(this.theme)]: !!error,\n [styles.active()]: !!isActive,\n [orientationStyles.active(this.theme)]: !!isActive,\n [styles.disabled(this.theme)]: !!disabled,\n [orientationStyles.disabled()]: !!disabled,\n })}\n onBlur={this.handleBlur}\n onClick={this.switchTab}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n ref={isFunctionalComponent(Component) ? null : this.refTabComponent}\n href={href}\n aria-describedby={ariaDescribedby}\n aria-label={ariaLabel}\n >\n <ResizeDetector onResize={this.context.notifyUpdate}>{children}</ResizeDetector>\n {this.state.focusedByKeyboard && (\n <div\n className={cx(globalClasses.focus, {\n [styles.focusSmall(this.theme)]: this.context.size === 'small',\n [styles.focusMedium(this.theme)]: this.context.size === 'medium',\n [styles.focusLarge(this.theme)]: this.context.size === 'large',\n })}\n />\n )}\n </Component>\n </CommonWrapper>\n );\n }\n\n private getId = () => this.props.id || this.getProps().href;\n\n private refTabComponent = (instance: React.ReactElement<any>) => {\n this.tabComponent = instance;\n };\n\n private getTabInstance = () => this;\n\n private switchTab = (event: React.MouseEvent<HTMLElement>) => {\n if (this.props.disabled) {\n event.preventDefault();\n return;\n }\n const { href, component } = this.getProps();\n\n const id = this.props.id || href;\n if (this.props.onClick) {\n this.props.onClick(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n if (typeof id === 'string') {\n this.context.switchTab(id);\n }\n if (component === 'a' && !href) {\n event.preventDefault();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n const id = this.getId();\n if (typeof id !== 'string') {\n return;\n }\n if (!isKeyArrow(e)) {\n return;\n }\n e.preventDefault();\n const delta = isKeyArrowLeft(e) || isKeyArrowUp(e) ? -1 : 1;\n this.context.shiftFocus(id, delta);\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n // focus event fires before keyDown eventlistener\n // so we should check focusKeyPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed || keyListener.isArrowPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n };\n\n private handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focusedByKeyboard: false });\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_invariant","_globalObject","_ResizeDetector","_identifiers","_keyListener","_utils","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_getVisualStateDataAttributes","_TabsContext","_Tab2","_class","_Tab","TabDataTids","exports","root","Tab","rootNode","_React$Component","props","_this","call","context","getProps","createPropsGetter","defaultProps","state","focusedByKeyboard","tabComponent","getUnderlyingNode","getId","id","href","refTabComponent","instance","getTabInstance","switchTab","event","disabled","preventDefault","_this$getProps","component","onClick","defaultPrevented","handleKeyDown","e","onKeyDown","isKeyArrow","delta","isKeyArrowLeft","isKeyArrowUp","shiftFocus","handleFocus","globalObject","requestAnimationFrame","keyListener","isTabPressed","isArrowPressed","setState","handleBlur","invariant","TabsContextDefaultValue","_inheritsLoose2","default","_proto","prototype","componentDidMount","addTab","componentDidUpdate","activeTab","notifyUpdate","componentWillUnmount","removeTab","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","getIndicators","error","Boolean","warning","success","primary","_cx","_cx2","_this$props","children","ariaDescribedby","ariaLabel","_this$getProps2","Component","isActive","isVertical","vertical","orientationStyles","verticalStyles","horizontalStyles","CommonWrapper","_extends2","rootNodeRef","setRootNode","getVisualStateDataAttributes","active","className","cx","styles","rootSmall","size","rootMedium","rootLarge","verticalSmall","verticalMedium","verticalLarge","onBlur","onFocus","tabIndex","ref","isFunctionalComponent","ResizeDetector","onResize","globalClasses","focus","focusSmall","focusMedium","focusLarge","React","__KONTUR_REACT_UI__","displayName","contextType","TabsContext"],"sources":["Tab.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport invariant from 'invariant';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isKeyArrow, isKeyArrowLeft, isKeyArrowUp } from '../../lib/events/keyboard/identifiers';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Nullable } from '../../typings/utility-types';\nimport { isFunctionalComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport type { TabsContextType } from './TabsContext';\nimport { TabsContext, TabsContextDefaultValue } from './TabsContext';\nimport { globalClasses, horizontalStyles, styles, verticalStyles } from './Tab.styles';\n\nexport interface TabIndicators {\n error: boolean;\n warning: boolean;\n success: boolean;\n primary: boolean;\n disabled: boolean;\n}\n\nexport const TabDataTids = {\n root: 'Tab__root',\n} as const;\n\nexport interface TabProps<T extends string = string>\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n CommonProps {\n /** Позволяет передавать свой компонент, строку или функцию, которая заменит собой элемент используемый в компоненте по умолчанию.\n * Реализует паттерн [render prop](https://www.patterns.dev/posts/render-props-pattern). */\n component?: React.ComponentType<any> | string;\n\n /** Задает HTML-атрибут `href` - адрес, на который следует перейти. */\n href?: string;\n\n /** Задает уникальный идентификатор таба. По нему компонент `<Tabs />` определяет какой `<Tab />` сейчас выбран. */\n id?: T;\n\n /**`HTML`-событие `onclick`. */\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** `HTML`-событие `onkeydown`. */\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Устанавливает визульное состояние валидации \"успех\". */\n success?: boolean;\n\n /** Задает визульное состояние главного элемента. */\n primary?: boolean;\n}\n\nexport interface TabState {\n focusedByKeyboard: boolean;\n}\n\ntype DefaultProps = Required<Pick<TabProps, 'component' | 'href'>>;\n\n/**\n * Вложенный элемент компонента Tabs.\n */\n@rootNode\nexport class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {\n public static __KONTUR_REACT_UI__ = 'Tab';\n public static displayName = 'Tab';\n\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public static defaultProps: DefaultProps = {\n component: 'a',\n href: '',\n };\n\n private getProps = createPropsGetter(Tab.defaultProps);\n\n public state: TabState = {\n focusedByKeyboard: false,\n };\n\n private theme!: Theme;\n private tabComponent: Nullable<React.ReactElement<Tab<T>>> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: TabProps<T>) {\n super(props);\n invariant(this.context !== TabsContextDefaultValue, 'Tab should be placed inside Tabs component');\n }\n\n public componentDidMount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.addTab(id, this.getTabInstance);\n }\n }\n\n public componentDidUpdate() {\n if (this.context.activeTab === this.props.id) {\n this.context.notifyUpdate();\n }\n }\n\n public componentWillUnmount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.removeTab(id);\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 public getIndicators() {\n return {\n error: Boolean(this.props.error),\n warning: Boolean(this.props.warning),\n success: Boolean(this.props.success),\n primary: Boolean(this.props.primary),\n disabled: Boolean(this.props.disabled),\n };\n }\n\n public getUnderlyingNode = () => this.tabComponent;\n\n private renderMain() {\n const {\n children,\n disabled,\n error,\n warning,\n success,\n primary,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n const { component: Component, href } = this.getProps();\n\n let isActive = false;\n let isVertical = false;\n\n const id = this.getId();\n if (typeof id === 'string') {\n isActive = this.context.activeTab === this.getId();\n isVertical = this.context.vertical;\n }\n const orientationStyles = isVertical ? verticalStyles : horizontalStyles;\n\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({ active: isActive, disabled })}\n {...this.props}\n >\n <Component\n data-tid={TabDataTids.root}\n className={cx({\n [styles.rootSmall(this.theme)]: this.context.size === 'small',\n [styles.rootMedium(this.theme)]: this.context.size === 'medium',\n [styles.rootLarge(this.theme)]: this.context.size === 'large',\n [styles.verticalSmall(this.theme)]: !!isVertical && this.context.size === 'small',\n [styles.verticalMedium(this.theme)]: !!isVertical && this.context.size === 'medium',\n [styles.verticalLarge(this.theme)]: !!isVertical && this.context.size === 'large',\n [orientationStyles.primary(this.theme)]: !!primary,\n [orientationStyles.success(this.theme)]: !!success,\n [orientationStyles.warning(this.theme)]: !!warning,\n [orientationStyles.error(this.theme)]: !!error,\n [styles.active()]: !!isActive,\n [orientationStyles.active(this.theme)]: !!isActive,\n [styles.disabled(this.theme)]: !!disabled,\n [orientationStyles.disabled()]: !!disabled,\n })}\n onBlur={this.handleBlur}\n onClick={this.switchTab}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n ref={isFunctionalComponent(Component) ? null : this.refTabComponent}\n href={href}\n aria-describedby={ariaDescribedby}\n aria-label={ariaLabel}\n >\n <ResizeDetector onResize={this.context.notifyUpdate}>{children}</ResizeDetector>\n {this.state.focusedByKeyboard && (\n <div\n className={cx(globalClasses.focus, {\n [styles.focusSmall(this.theme)]: this.context.size === 'small',\n [styles.focusMedium(this.theme)]: this.context.size === 'medium',\n [styles.focusLarge(this.theme)]: this.context.size === 'large',\n })}\n />\n )}\n </Component>\n </CommonWrapper>\n );\n }\n\n private getId = () => this.props.id || this.getProps().href;\n\n private refTabComponent = (instance: React.ReactElement<any>) => {\n this.tabComponent = instance;\n };\n\n private getTabInstance = () => this;\n\n private switchTab = (event: React.MouseEvent<HTMLElement>) => {\n if (this.props.disabled) {\n event.preventDefault();\n return;\n }\n const { href, component } = this.getProps();\n\n const id = this.props.id || href;\n if (this.props.onClick) {\n this.props.onClick(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n if (typeof id === 'string') {\n this.context.switchTab(id);\n }\n if (component === 'a' && !href) {\n event.preventDefault();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n const id = this.getId();\n if (typeof id !== 'string') {\n return;\n }\n if (!isKeyArrow(e)) {\n return;\n }\n e.preventDefault();\n const delta = isKeyArrowLeft(e) || isKeyArrowUp(e) ? -1 : 1;\n this.context.shiftFocus(id, delta);\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n // focus event fires before keyDown eventlistener\n // so we should check focusKeyPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed || keyListener.isArrowPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n };\n\n private handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focusedByKeyboard: false });\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { AriaAttributes } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
4
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
4
5
|
import type { SizeProp } from '../../lib/types/props';
|
|
5
6
|
import { Tab } from './Tab';
|
|
6
7
|
type ValueBaseType = string;
|
|
@@ -44,6 +45,7 @@ export declare class Tabs<T extends string = string> extends React.Component<Tab
|
|
|
44
45
|
private tabs;
|
|
45
46
|
private tabUpdates;
|
|
46
47
|
private listeners;
|
|
48
|
+
getRootNode: TGetRootNode;
|
|
47
49
|
private setRootNode;
|
|
48
50
|
render(): JSX.Element;
|
|
49
51
|
private shiftFocus;
|