@skbkontur/react-ui 0.0.0-95a1dbe516 → 0.0.0-9ab4f802f3
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 +120 -0
- package/README.md +41 -13
- package/cjs/components/Autocomplete/Autocomplete.js +12 -6
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Autocomplete/Autocomplete.md +76 -3
- package/cjs/components/Autocomplete/Autocomplete.styles.d.ts +1 -0
- package/cjs/components/Autocomplete/Autocomplete.styles.js +7 -1
- package/cjs/components/Autocomplete/Autocomplete.styles.js.map +1 -1
- package/cjs/components/Button/Button.js +2 -2
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.md +38 -11
- package/cjs/components/Calendar/Calendar.d.ts +28 -5
- package/cjs/components/Calendar/Calendar.js +80 -36
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Calendar/Calendar.md +82 -1
- package/cjs/components/Calendar/Calendar.styles.js +1 -1
- package/cjs/components/Calendar/Calendar.styles.js.map +1 -1
- package/cjs/components/Calendar/CalendarContext.d.ts +12 -0
- package/cjs/components/Calendar/CalendarContext.js +16 -0
- package/cjs/components/Calendar/CalendarContext.js.map +1 -0
- package/cjs/components/Calendar/CalendarDateShape.d.ts +4 -2
- package/cjs/components/Calendar/CalendarDateShape.js +13 -3
- package/cjs/components/Calendar/CalendarDateShape.js.map +1 -1
- package/cjs/components/Calendar/CalendarDay.d.ts +12 -0
- package/cjs/components/Calendar/CalendarDay.js +79 -0
- package/cjs/components/Calendar/CalendarDay.js.map +1 -0
- package/cjs/components/Calendar/CalendarDay.md +70 -0
- package/cjs/components/Calendar/CalendarUtils.d.ts +2 -1
- package/cjs/components/Calendar/CalendarUtils.js +4 -6
- package/cjs/components/Calendar/CalendarUtils.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.d.ts +4 -12
- package/cjs/components/Calendar/DayCellView.js +20 -42
- package/cjs/components/Calendar/DayCellView.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.styles.d.ts +2 -5
- package/cjs/components/Calendar/DayCellView.styles.js +37 -43
- package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
- package/cjs/components/Calendar/Month.d.ts +0 -10
- package/cjs/components/Calendar/Month.js +36 -88
- package/cjs/components/Calendar/Month.js.map +1 -1
- package/cjs/components/Calendar/MonthView.d.ts +3 -2
- package/cjs/components/Calendar/MonthView.js +47 -37
- package/cjs/components/Calendar/MonthView.js.map +1 -1
- package/cjs/components/Calendar/MonthView.styles.d.ts +3 -0
- package/cjs/components/Calendar/MonthView.styles.js +45 -7
- package/cjs/components/Calendar/MonthView.styles.js.map +1 -1
- package/cjs/components/Calendar/MonthViewModel.js +24 -6
- package/cjs/components/Calendar/MonthViewModel.js.map +1 -1
- package/cjs/components/Calendar/config.js +12 -6
- package/cjs/components/Calendar/config.js.map +1 -1
- package/cjs/components/Calendar/index.d.ts +1 -0
- package/cjs/components/Calendar/index.js +2 -1
- package/cjs/components/Calendar/index.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.js +1 -1
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
- package/cjs/components/DateInput/DateInput.js +1 -1
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +4 -1
- package/cjs/components/DatePicker/DatePicker.js +72 -45
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.md +29 -1
- package/cjs/components/DatePicker/DatePickerHelpers.js +2 -1
- package/cjs/components/DatePicker/DatePickerHelpers.js.map +1 -1
- package/cjs/components/DatePicker/MobilePicker.d.ts +10 -0
- package/cjs/components/DatePicker/MobilePicker.js +118 -0
- package/cjs/components/DatePicker/MobilePicker.js.map +1 -0
- package/cjs/components/DatePicker/MobilePicker.styles.d.ts +3 -0
- package/cjs/components/DatePicker/MobilePicker.styles.js +8 -0
- package/cjs/components/DatePicker/MobilePicker.styles.js.map +1 -0
- package/cjs/components/DatePicker/Picker.js +1 -1
- package/cjs/components/DatePicker/Picker.js.map +1 -1
- package/cjs/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
- package/cjs/components/DatePicker/getMobilePickerTheme.js +19 -0
- package/cjs/components/DatePicker/getMobilePickerTheme.js.map +1 -0
- package/cjs/components/Dropdown/Dropdown.js +1 -1
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.md +39 -0
- package/cjs/components/FileUploader/FileUploader.d.ts +2 -0
- package/cjs/components/FileUploader/FileUploader.js +32 -9
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.md +29 -0
- package/cjs/components/FxInput/FxInput.js +1 -1
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Group/Group.js +1 -1
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +4 -3
- package/cjs/components/Hint/Hint.js +9 -8
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.js +1 -1
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.styles.d.ts +1 -1
- package/cjs/components/Input/Input.styles.js +3 -2
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.styles.js +3 -2
- package/cjs/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
- package/cjs/components/Kebab/Kebab.js +6 -1
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.js +3 -2
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.js +1 -1
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.js +2 -2
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MiniModal/MiniModal.js +1 -1
- package/cjs/components/MiniModal/MiniModal.js.map +1 -1
- package/cjs/components/Modal/Modal.js +1 -1
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalBody.js +1 -1
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Paging/Paging.js +8 -3
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.js +1 -1
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.js +10 -1
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.js +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js +6 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.js +6 -3
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.js +1 -1
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageBody.js +1 -1
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/SidePage/SidePageContainer.js +1 -1
- package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.js +1 -1
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.js +1 -1
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Spinner/Spinner.js +1 -1
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Switcher/Switcher.js +1 -1
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Tabs/Indicator.js +1 -1
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.js +2 -2
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.js +1 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.js +1 -1
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Toast/Toast.js +1 -1
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastView.js +1 -1
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toggle/Toggle.js +1 -1
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.js +2 -1
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.js +1 -1
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.js +2 -2
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +10 -5
- package/cjs/components/Tooltip/Tooltip.js +59 -20
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.js +4 -4
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/hooks/useDrop.d.ts +1 -1
- package/cjs/hooks/useDrop.js.map +1 -1
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +2 -0
- package/cjs/index.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js +2 -2
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/CommonWrapper/{extractCommonProps.d.ts → utils/extractCommonProps.d.ts} +2 -2
- package/cjs/internal/CommonWrapper/utils/extractCommonProps.js.map +1 -0
- package/cjs/internal/CommonWrapper/{getCommonVisualStateDataAttributes.js → utils/getCommonVisualStateDataAttributes.js} +3 -4
- package/cjs/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes.js.map +1 -0
- package/cjs/internal/CommonWrapper/{getVisualStateDataAttributes.d.ts → utils/getVisualStateDataAttributes.d.ts} +1 -1
- package/cjs/internal/CommonWrapper/{getVisualStateDataAttributes.js → utils/getVisualStateDataAttributes.js} +3 -3
- package/cjs/internal/CommonWrapper/utils/getVisualStateDataAttributes.js.map +1 -0
- package/cjs/internal/CommonWrapper/utils/tryGetBoolean.d.ts +1 -0
- package/cjs/internal/CommonWrapper/utils/tryGetBoolean.js +1 -0
- package/cjs/internal/CommonWrapper/utils/tryGetBoolean.js.map +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +2 -3
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js +3 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +2 -0
- package/cjs/internal/DateSelect/DateSelect.js +51 -4
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.styles.d.ts +1 -0
- package/cjs/internal/DateSelect/DateSelect.styles.js +15 -1
- package/cjs/internal/DateSelect/DateSelect.styles.js.map +1 -1
- package/cjs/internal/DateSelect/locale/locales/en.js +2 -1
- package/cjs/internal/DateSelect/locale/locales/en.js.map +1 -1
- package/cjs/internal/DateSelect/locale/locales/ru.js +2 -1
- package/cjs/internal/DateSelect/locale/locales/ru.js.map +1 -1
- package/cjs/internal/DateSelect/locale/types.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +16 -3
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +4 -2
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +3 -2
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js +2 -2
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +1 -1
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.js +2 -2
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/Menu/Menu.js +2 -2
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +7 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +32 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +15 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.js +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.js.map +1 -0
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/cjs/internal/NativeDateInput/utils.js +3 -2
- package/cjs/internal/NativeDateInput/utils.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +15 -4
- package/cjs/internal/Popup/Popup.js +67 -4
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.d.ts +3 -0
- package/cjs/internal/RenderContainer/RenderContainer.js +34 -24
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +8 -4
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.js +5 -1
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.js +1 -1
- package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +9 -6
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/constants.js +2 -1
- package/cjs/internal/ThemePlayground/constants.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +7 -3
- package/cjs/internal/ZIndex/ZIndex.js +41 -3
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/themes/DarkTheme.d.ts +2 -0
- package/cjs/internal/themes/DarkTheme.js +6 -1
- package/cjs/internal/themes/DarkTheme.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +18 -0
- package/cjs/internal/themes/DefaultTheme.js +32 -4
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/date/InternalDate.d.ts +2 -0
- package/cjs/lib/date/InternalDate.js +8 -1
- package/cjs/lib/date/InternalDate.js.map +1 -1
- package/cjs/lib/date/InternalDateTransformer.d.ts +3 -0
- package/cjs/lib/date/InternalDateTransformer.js +23 -0
- package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
- package/cjs/lib/date/InternalDateValidator.js +2 -1
- package/cjs/lib/date/InternalDateValidator.js.map +1 -1
- package/cjs/lib/date/comparison.d.ts +6 -0
- package/cjs/lib/date/comparison.js +44 -0
- package/cjs/lib/date/comparison.js.map +1 -0
- package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +24 -0
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/cjs/lib/listenFocusOutside.js +4 -2
- package/cjs/lib/listenFocusOutside.js.map +1 -1
- package/cjs/lib/locale/constants.d.ts +3 -0
- package/cjs/lib/locale/constants.js +6 -2
- package/cjs/lib/locale/constants.js.map +1 -1
- package/cjs/lib/taskWithDelayAndMinimalDuration.js +1 -0
- package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/cjs/lib/theming/Emotion.d.ts +7 -1
- package/cjs/lib/theming/Emotion.js +6 -3
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.d.ts +0 -2
- package/cjs/lib/theming/ThemeContext.js +1 -3
- package/cjs/lib/theming/ThemeContext.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.md +3 -1
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js +50 -0
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js.map +1 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.js +75 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.js.map +1 -0
- package/cjs/lib/widgets/StylesContainer.d.ts +13 -0
- package/cjs/lib/widgets/StylesContainer.js +70 -0
- package/cjs/lib/widgets/StylesContainer.js.map +1 -0
- package/cjs/lib/widgets/index.d.ts +1 -0
- package/cjs/lib/widgets/index.js +1 -0
- package/cjs/lib/widgets/index.js.map +1 -0
- package/components/Autocomplete/Autocomplete/Autocomplete.js +11 -5
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.md +76 -3
- package/components/Autocomplete/Autocomplete.styles/Autocomplete.styles.js +4 -1
- package/components/Autocomplete/Autocomplete.styles/Autocomplete.styles.js.map +1 -1
- package/components/Autocomplete/Autocomplete.styles.d.ts +1 -0
- package/components/Button/Button/Button.js +3 -3
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.md +38 -11
- package/components/Calendar/Calendar/Calendar.js +83 -66
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +28 -5
- package/components/Calendar/Calendar.md +82 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js +1 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -1
- package/components/Calendar/CalendarContext/CalendarContext.js +2 -0
- package/components/Calendar/CalendarContext/CalendarContext.js.map +1 -0
- package/components/Calendar/CalendarContext/package.json +6 -0
- package/components/Calendar/CalendarContext.d.ts +12 -0
- package/components/Calendar/CalendarDateShape/CalendarDateShape.js +23 -1
- package/components/Calendar/CalendarDateShape/CalendarDateShape.js.map +1 -1
- package/components/Calendar/CalendarDateShape.d.ts +4 -2
- package/components/Calendar/CalendarDay/CalendarDay.js +64 -0
- package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -0
- package/components/Calendar/CalendarDay/package.json +6 -0
- package/components/Calendar/CalendarDay.d.ts +12 -0
- package/components/Calendar/CalendarDay.md +70 -0
- package/components/Calendar/CalendarUtils/CalendarUtils.js +5 -4
- package/components/Calendar/CalendarUtils/CalendarUtils.js.map +1 -1
- package/components/Calendar/CalendarUtils.d.ts +2 -1
- package/components/Calendar/DayCellView/DayCellView.js +33 -46
- package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
- package/components/Calendar/DayCellView.d.ts +4 -12
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js +10 -14
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
- package/components/Calendar/DayCellView.styles.d.ts +2 -5
- package/components/Calendar/Month/Month.js +50 -84
- package/components/Calendar/Month/Month.js.map +1 -1
- package/components/Calendar/Month.d.ts +0 -10
- package/components/Calendar/MonthView/MonthView.js +50 -45
- package/components/Calendar/MonthView/MonthView.js.map +1 -1
- package/components/Calendar/MonthView.d.ts +3 -2
- package/components/Calendar/MonthView.styles/MonthView.styles.js +20 -6
- package/components/Calendar/MonthView.styles/MonthView.styles.js.map +1 -1
- package/components/Calendar/MonthView.styles.d.ts +3 -0
- package/components/Calendar/MonthViewModel/MonthViewModel.js +9 -6
- package/components/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
- package/components/Calendar/config/config.js +6 -4
- package/components/Calendar/config/config.js.map +1 -1
- package/components/Calendar/index/index.js +2 -1
- package/components/Calendar/index/index.js.map +1 -1
- package/components/Calendar/index.d.ts +1 -0
- package/components/Checkbox/Checkbox/Checkbox.js +2 -2
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js +2 -2
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js +2 -2
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DatePicker/DatePicker/DatePicker.js +62 -41
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +4 -1
- package/components/DatePicker/DatePicker.md +29 -1
- package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js +2 -1
- package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js.map +1 -1
- package/components/DatePicker/MobilePicker/MobilePicker.js +91 -0
- package/components/DatePicker/MobilePicker/MobilePicker.js.map +1 -0
- package/components/DatePicker/MobilePicker/package.json +6 -0
- package/components/DatePicker/MobilePicker.d.ts +10 -0
- package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js +10 -0
- package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js.map +1 -0
- package/components/DatePicker/MobilePicker.styles/package.json +6 -0
- package/components/DatePicker/MobilePicker.styles.d.ts +3 -0
- package/components/DatePicker/Picker/Picker.js +3 -3
- package/components/DatePicker/Picker/Picker.js.map +1 -1
- package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js +14 -0
- package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js.map +1 -0
- package/components/DatePicker/getMobilePickerTheme/package.json +6 -0
- package/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
- package/components/Dropdown/Dropdown/Dropdown.js +3 -3
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -3
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.md +39 -0
- package/components/FileUploader/FileUploader/FileUploader.js +30 -8
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +2 -0
- package/components/FileUploader/FileUploader.md +29 -0
- package/components/FxInput/FxInput/FxInput.js +2 -2
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/Group/Group/Group.js +2 -2
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Hint/Hint/Hint.js +53 -48
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +4 -3
- package/components/Input/Input/Input.js +3 -3
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.styles/Input.styles.js +2 -2
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Input/Input.styles.d.ts +1 -1
- package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js +2 -2
- package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js.map +1 -1
- package/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
- package/components/Kebab/Kebab/Kebab.js +7 -4
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Link/Link/Link.js +6 -3
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Loader/Loader/Loader.js +2 -2
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/MenuItem/MenuItem/MenuItem.js +3 -3
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MiniModal/MiniModal/MiniModal.js +2 -2
- package/components/MiniModal/MiniModal/MiniModal.js.map +1 -1
- package/components/Modal/Modal/Modal.js +3 -3
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/ModalBody/ModalBody.js +3 -3
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Paging/Paging/Paging.js +10 -6
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +2 -2
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/Radio/Radio/Radio.js +2 -2
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/RadioGroup/RadioGroup/RadioGroup.js +8 -4
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/ScrollContainer/ScrollBar/ScrollBar.js +2 -2
- package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +5 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/components/Select/Select/Select.js +6 -5
- package/components/Select/Select/Select.js.map +1 -1
- package/components/SidePage/SidePage/SidePage.js +2 -2
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePageBody/SidePageBody.js +2 -2
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageContainer/SidePageContainer.js +2 -2
- package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageFooter/SidePageFooter.js +2 -2
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js +2 -2
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/Spinner/Spinner/Spinner.js +2 -2
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Switcher/Switcher/Switcher.js +3 -3
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Tabs/Indicator/Indicator.js +2 -2
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Tab/Tab.js +3 -3
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tabs/Tabs.js +2 -2
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Textarea/Textarea/Textarea.js +2 -2
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Toast/Toast/Toast.js +3 -3
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/ToastView/ToastView.js +2 -2
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toggle/Toggle/Toggle.js +2 -2
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Token/Token/Token.js +6 -3
- package/components/Token/Token/Token.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +2 -2
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +3 -3
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js +67 -46
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +10 -5
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +3 -3
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/hooks/useDrop/useDrop.js.map +1 -1
- package/hooks/useDrop.d.ts +1 -1
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +2 -2
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/utils/extractCommonProps/extractCommonProps.js.map +1 -0
- package/internal/CommonWrapper/{extractCommonProps → utils/extractCommonProps}/package.json +1 -1
- package/internal/CommonWrapper/{extractCommonProps.d.ts → utils/extractCommonProps.d.ts} +2 -2
- package/internal/CommonWrapper/{getCommonVisualStateDataAttributes → utils/getCommonVisualStateDataAttributes}/getCommonVisualStateDataAttributes.js +1 -5
- package/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +1 -0
- package/internal/CommonWrapper/{getCommonVisualStateDataAttributes → utils/getCommonVisualStateDataAttributes}/package.json +1 -1
- package/internal/CommonWrapper/{getVisualStateDataAttributes → utils/getVisualStateDataAttributes}/getVisualStateDataAttributes.js +3 -3
- package/internal/CommonWrapper/utils/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +1 -0
- package/internal/CommonWrapper/{getVisualStateDataAttributes → utils/getVisualStateDataAttributes}/package.json +1 -1
- package/internal/CommonWrapper/{getVisualStateDataAttributes.d.ts → utils/getVisualStateDataAttributes.d.ts} +1 -1
- package/internal/CommonWrapper/utils/tryGetBoolean/package.json +6 -0
- package/internal/CommonWrapper/utils/tryGetBoolean/tryGetBoolean.js +3 -0
- package/internal/CommonWrapper/utils/tryGetBoolean/tryGetBoolean.js.map +1 -0
- package/internal/CommonWrapper/utils/tryGetBoolean.d.ts +1 -0
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +3 -3
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +5 -3
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/DateSelect/DateSelect/DateSelect.js +59 -6
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +2 -0
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js +4 -1
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js.map +1 -1
- package/internal/DateSelect/DateSelect.styles.d.ts +1 -0
- package/internal/DateSelect/locale/locales/en/en.js +2 -1
- package/internal/DateSelect/locale/locales/en/en.js.map +1 -1
- package/internal/DateSelect/locale/locales/ru/ru.js +2 -1
- package/internal/DateSelect/locale/locales/ru/ru.js.map +1 -1
- package/internal/DateSelect/locale/types.d.ts +1 -0
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +12 -3
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +4 -2
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -2
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +3 -3
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js +2 -2
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +3 -3
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/Menu/Menu/Menu.js +3 -3
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +4 -3
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js +37 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js +11 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
- package/internal/MobilePopup/MobilePopupFooter/index/index.js +1 -0
- package/internal/MobilePopup/MobilePopupFooter/index/index.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/index/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
- package/internal/MobilePopup/MobilePopupFooter/package.json +6 -0
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +2 -2
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/internal/NativeDateInput/utils/utils.js +2 -1
- package/internal/NativeDateInput/utils/utils.js.map +1 -1
- package/internal/Popup/Popup/Popup.js +53 -10
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +15 -4
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +19 -12
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/RenderContainer/RenderContainer.d.ts +3 -0
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -5
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +2 -2
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/ThemePlayground/Playground/Playground.js +2 -2
- package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +10 -7
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
- package/internal/ThemePlayground/constants/constants.js +3 -0
- package/internal/ThemePlayground/constants/constants.js.map +1 -1
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +2 -2
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +55 -7
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +7 -3
- package/internal/themes/DarkTheme/DarkTheme.js +2 -0
- package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/internal/themes/DarkTheme.d.ts +2 -0
- package/internal/themes/DefaultTheme/DefaultTheme.js +32 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +18 -0
- package/lib/date/InternalDate/InternalDate.js +7 -1
- package/lib/date/InternalDate/InternalDate.js.map +1 -1
- package/lib/date/InternalDate.d.ts +2 -0
- package/lib/date/InternalDateTransformer/InternalDateTransformer.js +30 -0
- package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
- package/lib/date/InternalDateTransformer.d.ts +3 -0
- package/lib/date/InternalDateValidator/InternalDateValidator.js +6 -1
- package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
- package/lib/date/comparison/comparison.js +45 -0
- package/lib/date/comparison/comparison.js.map +1 -0
- package/lib/date/comparison/package.json +6 -0
- package/lib/date/comparison.d.ts +6 -0
- package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +24 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/lib/listenFocusOutside/listenFocusOutside.js +3 -2
- package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
- package/lib/locale/constants/constants.js +4 -1
- package/lib/locale/constants/constants.js.map +1 -1
- package/lib/locale/constants.d.ts +3 -0
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +2 -0
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/lib/theming/Emotion/Emotion.js +12 -3
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/lib/theming/Emotion.d.ts +7 -1
- package/lib/theming/ThemeContext/ThemeContext.js +0 -2
- package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
- package/lib/theming/ThemeContext.d.ts +0 -2
- package/lib/theming/ThemeContext.md +3 -1
- package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js +33 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js.map +1 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024/package.json +6 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
- package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js +50 -0
- package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js.map +1 -0
- package/lib/theming/themes/Theme2022Update2024/package.json +6 -0
- package/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
- package/lib/widgets/StylesContainer/StylesContainer.js +65 -0
- package/lib/widgets/StylesContainer/StylesContainer.js.map +1 -0
- package/lib/widgets/StylesContainer/package.json +6 -0
- package/lib/widgets/StylesContainer.d.ts +13 -0
- package/lib/widgets/index/index.js +1 -0
- package/lib/widgets/index/index.js.map +1 -0
- package/lib/widgets/index/package.json +6 -0
- package/lib/widgets/index.d.ts +1 -0
- package/lib/widgets/package.json +6 -0
- package/package.json +3 -2
- package/cjs/internal/CommonWrapper/extractCommonProps.js.map +0 -1
- package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js.map +0 -1
- package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js.map +0 -1
- package/cjs/lib/theming/StyleContainer.d.ts +0 -4
- package/cjs/lib/theming/StyleContainer.js +0 -21
- package/cjs/lib/theming/StyleContainer.js.map +0 -1
- package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js.map +0 -1
- package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +0 -1
- package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +0 -1
- package/lib/theming/StyleContainer/StyleContainer.js +0 -21
- package/lib/theming/StyleContainer/StyleContainer.js.map +0 -1
- package/lib/theming/StyleContainer/package.json +0 -6
- package/lib/theming/StyleContainer.d.ts +0 -4
- /package/cjs/internal/CommonWrapper/{extractCommonProps.js → utils/extractCommonProps.js} +0 -0
- /package/cjs/internal/CommonWrapper/{getCommonVisualStateDataAttributes.d.ts → utils/getCommonVisualStateDataAttributes.d.ts} +0 -0
- /package/internal/CommonWrapper/{extractCommonProps → utils/extractCommonProps}/extractCommonProps.js +0 -0
- /package/internal/CommonWrapper/{getCommonVisualStateDataAttributes.d.ts → utils/getCommonVisualStateDataAttributes.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Autocomplete.tsx"],"names":["React","PropTypes","MenuMessage","locale","getRandomID","isNullable","isKeyArrowDown","isKeyArrowUp","isKeyEnter","isKeyEscape","Input","DropdownContainer","Menu","MenuItem","RenderLayer","createPropsGetter","fixClickFocusIE","CommonWrapper","MobilePopup","responsiveLayout","getRootNode","rootNode","getDOMRect","EmotionConsumer","ThemeConsumer","ThemeProvider","AutocompleteLocaleHelper","getAutocompleteTheme","getStyles","match","pattern","items","Promise","resolve","lowerCasedPattern","toLowerCase","itemsMatchingPattern","filter","item","includes","renderItem","AutocompleteDataTids","root","menu","AutocompleteIds","Autocomplete","state","selected","focused","isMobileOpened","opened","input","menuId","requestId","getProps","defaultProps","renderMain","props","isMobile","isMobileLayout","onValueChange","onKeyDown","onFocus","onBlur","_renderItem","disablePortal","hasShadow","menuAlign","menuMaxHeight","preventWindowScroll","source","width","theme","inputWidth","mobileMenuHeaderText","ariaLabel","rest","inputProps","handleValueChange","handleKeyDown","handleFocus","ref","refInput","styles","emotion","handleBlur","handleClickOutside","refRootSpan","renderMobileMenu","renderMenu","autoFocus","onKeyPress","handleKeyPressMobile","value","placeholder","enterValue","handleCloseMobile","refMobilePopup","refMenu","mobilePopup","close","length","getItems","renderHints","map","i","handleMenuItemClick","size","fireChange","setState","e","key","event","blur","preventDefault","up","down","enter","getAnchor","el","span","rootSpan","focus","componentDidUpdate","prevProps","updateItems","render","setRootNode","notFound","updateValue","menuWidth","menuPos","menuProps","maxHeight","handleItemClick","index","button","choose","trim","promise","expectingId","then","Component","__KONTUR_REACT_UI__","displayName","propTypes","func","oneOfType","array"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes, KeyboardEvent } from 'react';\nimport PropTypes from 'prop-types';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { MenuMessage } from '../../internal/MenuMessage';\nimport { locale } from '../../lib/locale/decorators';\nimport { getRandomID, isNullable } from '../../lib/utils';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { Input, InputProps } from '../Input';\nimport { DropdownContainer, DropdownContainerProps } from '../../internal/DropdownContainer';\nimport { Menu } from '../../internal/Menu';\nimport { MenuItem } from '../MenuItem';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { SizeProp } from '../../lib/types/props';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { ThemeConsumer, ThemeProvider } from '../../lib/theming/ThemeContext';\n\nimport { AutocompleteLocale, AutocompleteLocaleHelper } from './locale';\nimport { getAutocompleteTheme } from './getAutocompleteTheme';\nimport { getStyles } from './Autocomplete.styles';\n\nfunction match(pattern: string, items: string[]) {\n if (!pattern || !items) {\n return Promise.resolve([]);\n }\n\n const lowerCasedPattern = pattern.toLowerCase();\n const itemsMatchingPattern = items.filter((item) => {\n return item.toLowerCase().includes(lowerCasedPattern);\n });\n\n return Promise.resolve(itemsMatchingPattern);\n}\n\nfunction renderItem(item: any) {\n return item;\n}\n\nexport interface AutocompleteProps\n extends CommonProps,\n Pick<DropdownContainerProps, 'menuPos'>,\n Pick<AriaAttributes, 'aria-label'>,\n Override<\n InputProps,\n {\n /** Функция отрисовки элемента меню */\n renderItem?: (item: string) => React.ReactNode;\n /** Промис, резолвящий элементы меню */\n source?: string[] | ((patter: string) => Promise<string[]>);\n /** Отключает использование портала */\n disablePortal?: boolean;\n /** Отрисовка тени у выпадающего меню */\n hasShadow?: boolean;\n /** Выравнивание выпадающего меню */\n menuAlign?: 'left' | 'right';\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Отключить скролл окна, когда меню открыто */\n preventWindowScroll?: boolean;\n /** Вызывается при изменении `value` */\n onValueChange: (value: string) => void;\n /** onBlur */\n onBlur?: () => void;\n /** Размер инпута */\n size?: SizeProp;\n /** value */\n value: string;\n /**\n * Текст заголовка выпадающего меню в мобильной версии\n */\n mobileMenuHeaderText?: string;\n }\n > {}\n\nexport interface AutocompleteState {\n items: Nullable<string[]>;\n selected: number;\n focused: boolean;\n isMobileOpened: boolean;\n}\n\nexport const AutocompleteDataTids = {\n root: 'Autocomplete__root',\n menu: 'Autocomplete__menu',\n} as const;\n\nexport const AutocompleteIds = {\n menu: AutocompleteDataTids.menu,\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n AutocompleteProps,\n 'renderItem' | 'size' | 'disablePortal' | 'hasShadow' | 'menuMaxHeight' | 'menuAlign' | 'preventWindowScroll'\n >\n>;\n\n/**\n * Стандартный инпут с подсказками.\n *\n * Все свойства передаются во внутренний *Input*.\n */\n@responsiveLayout\n@rootNode\n@locale('Autocomplete', AutocompleteLocaleHelper)\nexport class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {\n public static __KONTUR_REACT_UI__ = 'Autocomplete';\n public static displayName = 'Autocomplete';\n\n public static propTypes = {\n /**\n * Функция для отрисовки элемента в выпадающем списке. Единственный аргумент\n * — *item*.\n */\n renderItem: PropTypes.func,\n\n /**\n * Если передан массив, то совпадения ищутся по этому массиву.\n *\n * Если передается функция, то она должна возвращать thenable, который\n * резолвится уже отфильтрованным массивом. Возвращенный thenable может\n * иметь метод cancel, который будет вызван при отмене поиска (пользователь\n * изменил строку поиска, автокомплит потерял фокус).\n * ```\n * function(pattern) {\n * return service.findAll(pattern);\n * }\n * ```\n */\n source: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n };\n\n public static defaultProps: DefaultProps = {\n renderItem,\n size: 'small',\n disablePortal: false,\n hasShadow: true,\n menuMaxHeight: 300,\n menuAlign: 'left',\n preventWindowScroll: true,\n };\n\n public state: AutocompleteState = {\n items: null,\n selected: -1,\n focused: false,\n isMobileOpened: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private readonly locale!: AutocompleteLocale;\n private isMobileLayout!: boolean;\n private opened = false;\n private input: Nullable<Input> = null;\n private menu: Nullable<Menu>;\n private menuId = AutocompleteIds.menu + getRandomID();\n private rootSpan: Nullable<HTMLSpanElement>;\n private mobilePopup: Nullable<MobilePopup>;\n\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n this.handleBlur();\n }\n\n public componentDidUpdate(prevProps: AutocompleteProps) {\n if (prevProps.value !== this.props.value) {\n this.updateItems(this.props.value || '');\n }\n }\n\n public render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = getAutocompleteTheme(theme);\n return (\n <ThemeProvider value={this.theme}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeProvider>\n );\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n public renderMain = (props: CommonWrapperRestProps<AutocompleteProps>) => {\n const { focused } = this.state;\n\n const isMobile = this.isMobileLayout;\n\n const {\n onValueChange,\n onKeyDown,\n onFocus,\n onBlur,\n renderItem: _renderItem,\n disablePortal,\n hasShadow,\n menuAlign,\n menuMaxHeight,\n preventWindowScroll,\n source,\n width = this.theme.inputWidth,\n mobileMenuHeaderText,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n ref: this.refInput,\n };\n\n const styles = getStyles(this.emotion);\n return (\n <RenderLayer onFocusOutside={this.handleBlur} onClickOutside={this.handleClickOutside} active={focused}>\n <span\n data-tid={AutocompleteDataTids.root}\n className={styles.root(this.theme)}\n style={{ width }}\n ref={this.refRootSpan}\n >\n <Input aria-label={ariaLabel} aria-controls={this.menuId} {...inputProps} />\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n );\n };\n\n private renderHints(): React.ReactNode {\n const items = this.state.items;\n\n if (!this.props.value) {\n return <MenuMessage>{this.locale.enterValue}</MenuMessage>;\n }\n\n if (items?.length === 0 && this.props.value) {\n return <MenuMessage>{this.locale.notFound}</MenuMessage>;\n }\n\n if (isNullable(items) && this.props.value) {\n return <MenuMessage>{this.locale.updateValue}</MenuMessage>;\n }\n\n return null;\n }\n\n private renderMenu(): React.ReactNode {\n const items = this.state.items;\n const { menuMaxHeight, hasShadow, menuWidth, width, preventWindowScroll, menuAlign, disablePortal, menuPos } =\n this.getProps();\n const menuProps = {\n ref: this.refMenu,\n maxHeight: menuMaxHeight,\n hasShadow,\n width: menuWidth || (width && getDOMRect(this.rootSpan).width),\n preventWindowScroll,\n };\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <DropdownContainer\n id={this.menuId}\n data-tid={AutocompleteDataTids.menu}\n getParent={this.getAnchor}\n align={menuAlign}\n disablePortal={disablePortal}\n menuPos={menuPos}\n >\n <Menu {...menuProps}>{this.getItems()}</Menu>\n </DropdownContainer>\n );\n }\n\n private renderMobileMenu = () => {\n const inputProps: InputProps = {\n autoFocus: true,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyPress: this.handleKeyPressMobile,\n value: this.props.value,\n placeholder: this.locale.enterValue,\n };\n\n const items = this.state.items;\n\n return (\n <MobilePopup\n id={this.menuId}\n headerChildComponent={<Input {...inputProps} />}\n caption={this.props.mobileMenuHeaderText}\n opened={this.state.isMobileOpened}\n onCloseRequest={this.handleCloseMobile}\n ref={this.refMobilePopup}\n >\n <Menu ref={this.refMenu} onItemClick={this.mobilePopup?.close} disableScrollContainer maxHeight={'auto'}>\n {items && items.length > 0 && this.getItems()}\n {this.renderHints()}\n </Menu>\n </MobilePopup>\n );\n };\n\n private getItems = () => {\n const items = this.state.items;\n const isMobile = this.isMobileLayout;\n\n return items\n ? items.map((item, i) => {\n return (\n <MenuItem onClick={this.handleMenuItemClick(i)} key={i} isMobile={isMobile} size={this.props.size}>\n {this.getProps().renderItem(item)}\n </MenuItem>\n );\n })\n : null;\n };\n\n private handleValueChange = (value: string) => {\n this.opened = true;\n\n this.fireChange(value);\n };\n\n private handleCloseMobile = () => {\n this.setState({\n isMobileOpened: false,\n });\n\n this.handleBlur();\n };\n\n private handleKeyPressMobile = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this.mobilePopup?.close();\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.isMobileLayout) {\n this.setState({ isMobileOpened: true });\n }\n\n if (this.state.focused) {\n return;\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = () => {\n if (!this.state.focused) {\n return;\n }\n\n this.opened = false;\n this.setState({ items: null, focused: false });\n\n if (this.input) {\n this.input.blur();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n switch (true) {\n case isKeyEscape(e):\n e.preventDefault();\n this.setState({ items: null });\n return;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n return;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n return;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n return;\n }\n };\n\n private handleMenuItemClick(i: number) {\n return (event: React.SyntheticEvent<HTMLElement>) => this.handleItemClick(event, i);\n }\n\n private getAnchor = () => {\n return getRootNode(this);\n };\n\n private handleItemClick(event: React.SyntheticEvent<HTMLElement> | React.MouseEvent<HTMLElement>, index: number) {\n if ((event as React.MouseEvent<HTMLElement>).button) {\n return;\n }\n\n event.preventDefault();\n this.choose(index);\n }\n\n private choose(index: number) {\n if (!this.state.items) {\n return;\n }\n\n const value = this.state.items[index];\n this.opened = false;\n this.setState({\n selected: -1,\n items: null,\n });\n\n this.fireChange(value);\n this.blur();\n }\n\n private updateItems(value: string) {\n if (!this.opened) {\n return;\n }\n const pattern = value.trim();\n const source = this.props.source;\n\n if (!source) {\n return;\n }\n\n let promise;\n this.requestId += 1;\n const expectingId = this.requestId;\n if (typeof source === 'function') {\n promise = source(pattern);\n } else {\n promise = match(pattern, source);\n }\n promise.then((items) => {\n if (this.opened && expectingId === this.requestId) {\n this.setState({\n items,\n selected: -1,\n });\n }\n });\n }\n\n private fireChange(value: string) {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n }\n\n private refInput = (el: Input | null) => {\n this.input = el;\n };\n\n private refMenu = (menu: Menu | null) => {\n this.menu = menu;\n };\n\n private refRootSpan = (span: HTMLSpanElement) => {\n this.rootSpan = span;\n };\n\n private refMobilePopup = (mobilePopup: MobilePopup | null) => {\n this.mobilePopup = mobilePopup;\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Autocomplete.tsx"],"names":["React","PropTypes","MenuMessage","locale","getRandomID","isNullable","cx","isKeyArrowDown","isKeyArrowUp","isKeyEnter","isKeyEscape","Input","DropdownContainer","Menu","MenuItem","RenderLayer","createPropsGetter","fixClickFocusIE","CommonWrapper","MobilePopup","responsiveLayout","getRootNode","rootNode","getDOMRect","EmotionConsumer","ThemeContext","AutocompleteLocaleHelper","getAutocompleteTheme","getStyles","match","pattern","items","Promise","resolve","lowerCasedPattern","toLowerCase","itemsMatchingPattern","filter","item","includes","renderItem","AutocompleteDataTids","root","menu","AutocompleteIds","Autocomplete","state","selected","focused","isMobileOpened","opened","input","menuId","requestId","getProps","defaultProps","renderMain","props","isMobile","isMobileLayout","onValueChange","onKeyDown","onFocus","onBlur","_renderItem","disablePortal","hasShadow","menuAlign","menuMaxHeight","preventWindowScroll","source","menuPos","width","theme","inputWidth","mobileMenuHeaderText","ariaLabel","rest","inputProps","autoComplete","handleValueChange","handleKeyDown","handleFocus","ref","refInput","styles","emotion","handleBlur","handleClickOutside","noPortal","refRootSpan","renderMobileMenu","renderMenu","autoFocus","onKeyPress","handleKeyPressMobile","value","placeholder","enterValue","handleCloseMobile","refMobilePopup","refMenu","mobilePopup","close","length","getItems","renderHints","map","i","handleMenuItemClick","size","fireChange","setState","e","key","event","blur","preventDefault","up","down","enter","getAnchor","el","span","rootSpan","focus","componentDidUpdate","prevProps","updateItems","render","setRootNode","notFound","updateValue","menuWidth","menuProps","maxHeight","handleItemClick","index","button","choose","trim","promise","expectingId","then","Component","__KONTUR_REACT_UI__","displayName","propTypes","func","oneOfType","array"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes, KeyboardEvent } from 'react';\nimport PropTypes from 'prop-types';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { MenuMessage } from '../../internal/MenuMessage';\nimport { locale } from '../../lib/locale/decorators';\nimport { getRandomID, isNullable } from '../../lib/utils';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { Input, InputProps } from '../Input';\nimport { DropdownContainer, DropdownContainerProps } from '../../internal/DropdownContainer';\nimport { Menu } from '../../internal/Menu';\nimport { MenuItem } from '../MenuItem';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { SizeProp } from '../../lib/types/props';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { AutocompleteLocale, AutocompleteLocaleHelper } from './locale';\nimport { getAutocompleteTheme } from './getAutocompleteTheme';\nimport { getStyles } from './Autocomplete.styles';\n\nfunction match(pattern: string, items: string[]) {\n if (!pattern || !items) {\n return Promise.resolve([]);\n }\n\n const lowerCasedPattern = pattern.toLowerCase();\n const itemsMatchingPattern = items.filter((item) => {\n return item.toLowerCase().includes(lowerCasedPattern);\n });\n\n return Promise.resolve(itemsMatchingPattern);\n}\n\nfunction renderItem(item: any) {\n return item;\n}\n\nexport interface AutocompleteProps\n extends CommonProps,\n Pick<DropdownContainerProps, 'menuPos'>,\n Pick<AriaAttributes, 'aria-label'>,\n Override<\n InputProps,\n {\n /** Функция отрисовки элемента меню */\n renderItem?: (item: string) => React.ReactNode;\n /** Промис, резолвящий элементы меню */\n source?: string[] | ((patter: string) => Promise<string[]>);\n /** Отключает использование портала */\n disablePortal?: boolean;\n /** Отрисовка тени у выпадающего меню */\n hasShadow?: boolean;\n /** Выравнивание выпадающего меню */\n menuAlign?: 'left' | 'right';\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Отключить скролл окна, когда меню открыто */\n preventWindowScroll?: boolean;\n /** Вызывается при изменении `value` */\n onValueChange: (value: string) => void;\n /** onBlur */\n onBlur?: () => void;\n /** Размер инпута */\n size?: SizeProp;\n /** value */\n value: string;\n /**\n * Текст заголовка выпадающего меню в мобильной версии\n */\n mobileMenuHeaderText?: string;\n }\n > {}\n\nexport interface AutocompleteState {\n items: Nullable<string[]>;\n selected: number;\n focused: boolean;\n isMobileOpened: boolean;\n}\n\nexport const AutocompleteDataTids = {\n root: 'Autocomplete__root',\n menu: 'Autocomplete__menu',\n} as const;\n\nexport const AutocompleteIds = {\n menu: AutocompleteDataTids.menu,\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n AutocompleteProps,\n 'renderItem' | 'size' | 'disablePortal' | 'hasShadow' | 'menuMaxHeight' | 'menuAlign' | 'preventWindowScroll'\n >\n>;\n\n/**\n * Стандартный инпут с подсказками.\n *\n * Все свойства передаются во внутренний *Input*.\n */\n@responsiveLayout\n@rootNode\n@locale('Autocomplete', AutocompleteLocaleHelper)\nexport class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {\n public static __KONTUR_REACT_UI__ = 'Autocomplete';\n public static displayName = 'Autocomplete';\n\n public static propTypes = {\n /**\n * Функция для отрисовки элемента в выпадающем списке. Единственный аргумент\n * — *item*.\n */\n renderItem: PropTypes.func,\n\n /**\n * Если передан массив, то совпадения ищутся по этому массиву.\n *\n * Если передается функция, то она должна возвращать thenable, который\n * резолвится уже отфильтрованным массивом. Возвращенный thenable может\n * иметь метод cancel, который будет вызван при отмене поиска (пользователь\n * изменил строку поиска, автокомплит потерял фокус).\n * ```\n * function(pattern) {\n * return service.findAll(pattern);\n * }\n * ```\n */\n source: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n };\n\n public static defaultProps: DefaultProps = {\n renderItem,\n size: 'small',\n disablePortal: false,\n hasShadow: true,\n menuMaxHeight: 300,\n menuAlign: 'left',\n preventWindowScroll: true,\n };\n\n public state: AutocompleteState = {\n items: null,\n selected: -1,\n focused: false,\n isMobileOpened: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private readonly locale!: AutocompleteLocale;\n private isMobileLayout!: boolean;\n private opened = false;\n private input: Nullable<Input> = null;\n private menu: Nullable<Menu>;\n private menuId = AutocompleteIds.menu + getRandomID();\n private rootSpan: Nullable<HTMLSpanElement>;\n private mobilePopup: Nullable<MobilePopup>;\n\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n this.handleBlur();\n }\n\n public componentDidUpdate(prevProps: AutocompleteProps) {\n if (prevProps.value !== this.props.value) {\n this.updateItems(this.props.value || '');\n }\n }\n\n public render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getAutocompleteTheme(theme);\n return (\n <ThemeContext.Provider value={this.theme}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n public renderMain = (props: CommonWrapperRestProps<AutocompleteProps>) => {\n const { focused } = this.state;\n\n const isMobile = this.isMobileLayout;\n\n const {\n onValueChange,\n onKeyDown,\n onFocus,\n onBlur,\n renderItem: _renderItem,\n disablePortal,\n hasShadow,\n menuAlign,\n menuMaxHeight,\n preventWindowScroll,\n source,\n menuPos,\n width = this.theme.inputWidth,\n mobileMenuHeaderText,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n autoComplete: 'off',\n onValueChange: this.handleValueChange,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n ref: this.refInput,\n };\n\n const styles = getStyles(this.emotion);\n return (\n <RenderLayer onFocusOutside={this.handleBlur} onClickOutside={this.handleClickOutside} active={focused}>\n <span\n data-tid={AutocompleteDataTids.root}\n className={cx(styles.root(this.theme), {\n [styles.noPortal()]: disablePortal,\n })}\n style={{ width }}\n ref={this.refRootSpan}\n >\n <Input aria-label={ariaLabel} aria-controls={this.menuId} {...inputProps} />\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n );\n };\n\n private renderHints(): React.ReactNode {\n const items = this.state.items;\n\n if (!this.props.value) {\n return <MenuMessage>{this.locale.enterValue}</MenuMessage>;\n }\n\n if (items?.length === 0 && this.props.value) {\n return <MenuMessage>{this.locale.notFound}</MenuMessage>;\n }\n\n if (isNullable(items) && this.props.value) {\n return <MenuMessage>{this.locale.updateValue}</MenuMessage>;\n }\n\n return null;\n }\n\n private renderMenu(): React.ReactNode {\n const items = this.state.items;\n const { menuMaxHeight, hasShadow, menuWidth, width, preventWindowScroll, menuAlign, disablePortal, menuPos } =\n this.getProps();\n const menuProps = {\n ref: this.refMenu,\n maxHeight: menuMaxHeight,\n hasShadow,\n width: menuWidth || (width && getDOMRect(this.rootSpan).width),\n preventWindowScroll,\n };\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <DropdownContainer\n id={this.menuId}\n data-tid={AutocompleteDataTids.menu}\n getParent={this.getAnchor}\n align={menuAlign}\n disablePortal={disablePortal}\n menuPos={menuPos}\n >\n <Menu {...menuProps}>{this.getItems()}</Menu>\n </DropdownContainer>\n );\n }\n\n private renderMobileMenu = () => {\n const inputProps: InputProps = {\n autoComplete: 'off',\n autoFocus: true,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyPress: this.handleKeyPressMobile,\n value: this.props.value,\n placeholder: this.locale.enterValue,\n };\n\n const items = this.state.items;\n\n return (\n <MobilePopup\n id={this.menuId}\n headerChildComponent={<Input {...inputProps} />}\n caption={this.props.mobileMenuHeaderText}\n opened={this.state.isMobileOpened}\n onCloseRequest={this.handleCloseMobile}\n ref={this.refMobilePopup}\n >\n <Menu ref={this.refMenu} onItemClick={this.mobilePopup?.close} disableScrollContainer maxHeight={'auto'}>\n {items && items.length > 0 && this.getItems()}\n {this.renderHints()}\n </Menu>\n </MobilePopup>\n );\n };\n\n private getItems = () => {\n const items = this.state.items;\n const isMobile = this.isMobileLayout;\n\n return items\n ? items.map((item, i) => {\n return (\n <MenuItem onClick={this.handleMenuItemClick(i)} key={i} isMobile={isMobile} size={this.props.size}>\n {this.getProps().renderItem(item)}\n </MenuItem>\n );\n })\n : null;\n };\n\n private handleValueChange = (value: string) => {\n this.opened = true;\n\n this.fireChange(value);\n };\n\n private handleCloseMobile = () => {\n this.setState({\n isMobileOpened: false,\n });\n\n this.handleBlur();\n };\n\n private handleKeyPressMobile = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this.mobilePopup?.close();\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.isMobileLayout) {\n this.setState({ isMobileOpened: true });\n }\n\n if (this.state.focused) {\n return;\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = () => {\n if (!this.state.focused) {\n return;\n }\n\n this.opened = false;\n this.setState({ items: null, focused: false });\n\n if (this.input) {\n this.input.blur();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n switch (true) {\n case isKeyEscape(e):\n e.preventDefault();\n this.setState({ items: null });\n return;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n return;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n return;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n return;\n }\n };\n\n private handleMenuItemClick(i: number) {\n return (event: React.SyntheticEvent<HTMLElement>) => this.handleItemClick(event, i);\n }\n\n private getAnchor = () => {\n return getRootNode(this);\n };\n\n private handleItemClick(event: React.SyntheticEvent<HTMLElement> | React.MouseEvent<HTMLElement>, index: number) {\n if ((event as React.MouseEvent<HTMLElement>).button) {\n return;\n }\n\n event.preventDefault();\n this.choose(index);\n }\n\n private choose(index: number) {\n if (!this.state.items) {\n return;\n }\n\n const value = this.state.items[index];\n this.opened = false;\n this.setState({\n selected: -1,\n items: null,\n });\n\n this.fireChange(value);\n this.blur();\n }\n\n private updateItems(value: string) {\n if (!this.opened) {\n return;\n }\n const pattern = value.trim();\n const source = this.props.source;\n\n if (!source) {\n return;\n }\n\n let promise;\n this.requestId += 1;\n const expectingId = this.requestId;\n if (typeof source === 'function') {\n promise = source(pattern);\n } else {\n promise = match(pattern, source);\n }\n promise.then((items) => {\n if (this.opened && expectingId === this.requestId) {\n this.setState({\n items,\n selected: -1,\n });\n }\n });\n }\n\n private fireChange(value: string) {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n }\n\n private refInput = (el: Input | null) => {\n this.input = el;\n };\n\n private refMenu = (menu: Menu | null) => {\n this.menu = menu;\n };\n\n private refRootSpan = (span: HTMLSpanElement) => {\n this.rootSpan = span;\n };\n\n private refMobilePopup = (mobilePopup: MobilePopup | null) => {\n this.mobilePopup = mobilePopup;\n };\n}\n"]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
```jsx harmony
|
|
2
|
+
import { Autocomplete } from '@skbkontur/react-ui';
|
|
3
|
+
|
|
2
4
|
const items = ['Grey Face', 'Grey Space', 'Kappa', 'Keepo', 'Resident Sleeper'];
|
|
3
5
|
|
|
4
6
|
const [value, setValue] = React.useState('Kappa');
|
|
@@ -6,9 +8,9 @@ const [value, setValue] = React.useState('Kappa');
|
|
|
6
8
|
<Autocomplete source={items} value={value} onValueChange={setValue} />;
|
|
7
9
|
```
|
|
8
10
|
|
|
9
|
-
Очистить значение в `Autocomplete` можно только с помощью пустой
|
|
11
|
+
Очистить значение в `Autocomplete` можно только с помощью пустой строки.
|
|
10
12
|
```jsx harmony
|
|
11
|
-
import { Button, Group } from '@skbkontur/react-ui';
|
|
13
|
+
import { Autocomplete, Button, Group } from '@skbkontur/react-ui';
|
|
12
14
|
|
|
13
15
|
const items = ['Grey Face', 'Grey Space', 'Kappa', 'Keepo', 'Resident Sleeper'];
|
|
14
16
|
|
|
@@ -22,7 +24,7 @@ const [value, setValue] = React.useState('Kappa');
|
|
|
22
24
|
|
|
23
25
|
У Autocomplete есть 3 стандартных размера.
|
|
24
26
|
```jsx harmony
|
|
25
|
-
import { Gapped } from '@skbkontur/react-ui';
|
|
27
|
+
import { Autocomplete, Gapped } from '@skbkontur/react-ui';
|
|
26
28
|
|
|
27
29
|
const items = ['Маленький', 'Средний', 'Большой'];
|
|
28
30
|
|
|
@@ -36,3 +38,74 @@ const [valueLarge, setValueLarge] = React.useState('Большой');
|
|
|
36
38
|
<Autocomplete source={items} value={valueLarge} onValueChange={setValueLarge} size={'large'} />
|
|
37
39
|
</Gapped>
|
|
38
40
|
```
|
|
41
|
+
|
|
42
|
+
Можно выделять введеное значение при фокусе.
|
|
43
|
+
```jsx harmony
|
|
44
|
+
import { Autocomplete } from '@skbkontur/react-ui';
|
|
45
|
+
|
|
46
|
+
const items = ['Grey Face', 'Grey Space', 'Kappa', 'Keepo', 'Resident Sleeper'];
|
|
47
|
+
|
|
48
|
+
const [value, setValue] = React.useState('');
|
|
49
|
+
|
|
50
|
+
<Autocomplete source={items} value={value} onValueChange={setValue} selectAllOnFocus />
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Расположение иконки слева и справа.
|
|
54
|
+
```jsx harmony
|
|
55
|
+
import { Autocomplete, Gapped } from '@skbkontur/react-ui';
|
|
56
|
+
import { SearchLoupeIcon16Regular } from '@skbkontur/icons/SearchLoupeIcon16Regular';
|
|
57
|
+
|
|
58
|
+
const items = ['Grey Face', 'Grey Space', 'Kappa', 'Keepo', 'Resident Sleeper'];
|
|
59
|
+
|
|
60
|
+
const [valueLeft, setValueLeft] = React.useState('');
|
|
61
|
+
const [valueRight, setValueRight] = React.useState('');
|
|
62
|
+
|
|
63
|
+
<Gapped>
|
|
64
|
+
<Autocomplete source={items} value={valueLeft} onValueChange={setValueLeft} leftIcon={<SearchLoupeIcon16Regular />} />
|
|
65
|
+
<Autocomplete source={items} value={valueRight} onValueChange={setValueRight} rightIcon={<SearchLoupeIcon16Regular />} />
|
|
66
|
+
</Gapped>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Изменение ширины меню.
|
|
70
|
+
```jsx harmony
|
|
71
|
+
import { Autocomplete } from '@skbkontur/react-ui';
|
|
72
|
+
|
|
73
|
+
const items = ['Grey Face', 'Grey Space', 'Kappa', 'Keepo', 'Resident Sleeper'];
|
|
74
|
+
|
|
75
|
+
const [value, setValue] = React.useState('');
|
|
76
|
+
|
|
77
|
+
<Autocomplete source={items} value={value} onValueChange={setValue} menuWidth={'80%'} />
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Расположение выпадающего окна Autocomplete.
|
|
81
|
+
```jsx harmony
|
|
82
|
+
import { Autocomplete } from '@skbkontur/react-ui';
|
|
83
|
+
|
|
84
|
+
const items = ['Grey Face', 'Grey Space', 'Kappa', 'Keepo', 'Resident Sleeper'];
|
|
85
|
+
|
|
86
|
+
const [value, setValue] = React.useState('');
|
|
87
|
+
|
|
88
|
+
<Autocomplete source={items} value={value} onValueChange={setValue} menuPos={'top'} />
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Отрисовка тени у выпадающего меню.
|
|
92
|
+
```jsx harmony
|
|
93
|
+
import { Autocomplete } from '@skbkontur/react-ui';
|
|
94
|
+
|
|
95
|
+
const items = ['Grey Face', 'Grey Space', 'Kappa', 'Keepo', 'Resident Sleeper'];
|
|
96
|
+
|
|
97
|
+
const [value, setValue] = React.useState('');
|
|
98
|
+
|
|
99
|
+
<Autocomplete source={items} value={value} onValueChange={setValue} hasShadow />
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Использование режима прозрачной рамки.
|
|
103
|
+
```jsx harmony
|
|
104
|
+
import { Autocomplete } from '@skbkontur/react-ui';
|
|
105
|
+
|
|
106
|
+
const items = ['Grey Face', 'Grey Space', 'Kappa', 'Keepo', 'Resident Sleeper'];
|
|
107
|
+
|
|
108
|
+
const [value, setValue] = React.useState('Kappa');
|
|
109
|
+
|
|
110
|
+
<Autocomplete source={items} value={value} onValueChange={setValue} borderless />
|
|
111
|
+
```
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
2
2
|
|
|
3
|
-
var _templateObject;
|
|
3
|
+
var _templateObject, _templateObject2;
|
|
4
4
|
|
|
5
5
|
import { memoizeStyle } from "../../../lib/theming/Emotion";
|
|
6
6
|
export var getStyles = function getStyles(emotion) {
|
|
7
7
|
return memoizeStyle({
|
|
8
8
|
root: function root(t) {
|
|
9
9
|
return emotion.css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n display: inline-block;\n width: ", ";\n "])), t.inputWidth);
|
|
10
|
+
},
|
|
11
|
+
noPortal: function noPortal() {
|
|
12
|
+
return emotion.css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n position: relative;\n "])));
|
|
10
13
|
}
|
|
11
14
|
});
|
|
12
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Autocomplete.styles.ts"],"names":["memoizeStyle","getStyles","emotion","root","t","css","inputWidth"],"mappings":";;AAEA,SAASA,YAAT,QAA6B,2BAA7B;;;AAGA,OAAO,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,OAAD;AACvBF,IAAAA,YAAY,CAAC;AACXG,MAAAA,IADW,gBACNC,CADM,EACI;AACb,eAAOF,OAAO,CAACG,GAAf;;AAEWD,QAAAA,CAAC,CAACE,UAFb;;AAID,OANU,EAAD,CADW,GAAlB","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const getStyles = (emotion: Emotion) =>\n memoizeStyle({\n root(t: Theme) {\n return emotion.css`\n display: inline-block;\n width: ${t.inputWidth};\n `;\n },\n });\n"]}
|
|
1
|
+
{"version":3,"sources":["Autocomplete.styles.ts"],"names":["memoizeStyle","getStyles","emotion","root","t","css","inputWidth","noPortal"],"mappings":";;AAEA,SAASA,YAAT,QAA6B,2BAA7B;;;AAGA,OAAO,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,OAAD;AACvBF,IAAAA,YAAY,CAAC;AACXG,MAAAA,IADW,gBACNC,CADM,EACI;AACb,eAAOF,OAAO,CAACG,GAAf;;AAEWD,QAAAA,CAAC,CAACE,UAFb;;AAID,OANU;;AAQXC,MAAAA,QARW,sBAQA;AACT,eAAOL,OAAO,CAACG,GAAf;;;AAGD,OAZU,EAAD,CADW,GAAlB","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const getStyles = (emotion: Emotion) =>\n memoizeStyle({\n root(t: Theme) {\n return emotion.css`\n display: inline-block;\n width: ${t.inputWidth};\n `;\n },\n\n noPortal() {\n return emotion.css`\n position: relative;\n `;\n },\n });\n"]}
|
|
@@ -10,7 +10,7 @@ import { globalObject } from '@skbkontur/global-object';
|
|
|
10
10
|
import { isKonturIcon, isReactUIComponent } from "../../../lib/utils";
|
|
11
11
|
import { isEdge, isIE11, isSafari } from "../../../lib/client";
|
|
12
12
|
import { keyListener } from "../../../lib/events/keyListener";
|
|
13
|
-
import {
|
|
13
|
+
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
14
14
|
import { CommonWrapper } from "../../../internal/CommonWrapper";
|
|
15
15
|
import { rootNode } from "../../../lib/rootNode";
|
|
16
16
|
import { ThemeFactory } from "../../../lib/theming/ThemeFactory";
|
|
@@ -125,7 +125,7 @@ export var Button = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
|
|
|
125
125
|
|
|
126
126
|
return /*#__PURE__*/React.createElement(EmotionConsumer, null, function (emotion) {
|
|
127
127
|
_this2.emotion = emotion;
|
|
128
|
-
return /*#__PURE__*/React.createElement(
|
|
128
|
+
return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
|
|
129
129
|
_this2.theme = _this2.props.theme ? ThemeFactory.create(_this2.props.theme, theme) : theme;
|
|
130
130
|
return _this2.renderMain();
|
|
131
131
|
});
|
|
@@ -308,7 +308,7 @@ export var Button = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
|
|
|
308
308
|
}, children), rightIconNode);
|
|
309
309
|
|
|
310
310
|
if (_isTheme2022 && isLink && !loading) {
|
|
311
|
-
captionNode = /*#__PURE__*/React.createElement(
|
|
311
|
+
captionNode = /*#__PURE__*/React.createElement(ThemeContext.Provider, {
|
|
312
312
|
value: getInnerLinkTheme(this.theme)
|
|
313
313
|
}, /*#__PURE__*/React.createElement(Link, {
|
|
314
314
|
focused: isFocused,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Button.tsx"],"names":["React","globalObject","isKonturIcon","isReactUIComponent","isEdge","isIE11","isSafari","keyListener","ThemeConsumer","ThemeProvider","CommonWrapper","rootNode","ThemeFactory","createPropsGetter","isTheme2022","Link","EmotionConsumer","getActiveStyles","getStyles","globalClasses","ButtonIcon","getButtonIconSizes","useButtonArrow","getInnerLinkTheme","LoadingButtonIcon","ButtonDataTids","rootElement","root","spinner","Button","getProps","defaultProps","state","focusedByTab","node","handleFocus","e","props","disabled","disableFocus","requestAnimationFrame","isTabPressed","setState","onFocus","handleBlur","onBlur","_ref","componentDidMount","autoFocus","focus","getDerivedStateFromProps","loading","blur","render","emotion","theme","create","renderMain","renderLinkRootWithoutHandlers","onClick","children","rest","corners","active","borderless","checked","error","warning","narrow","icon","rightIcon","_noPadding","_noRightPadding","visuallyFocused","align","onMouseEnter","onMouseLeave","onMouseOver","onMouseDown","onMouseUp","onKeyDown","onClickCapture","width","ariaDescribedby","ariaHasPopup","ariaControls","ariaLabel","ariaChecked","ariaExpanded","role","use","type","size","sizeClass","getSizeClassName","isFocused","isLink","_isTheme2022","Boolean","wrapClassNameWithArrow","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","rootClassName","styles","activeStyles","trueDisabled","cx","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","checkedDisabled2022","borderless2022","backlessDisabled2022","textDisabled2022","checked2022","checkedFocused","simulatedPress","rootProps","className","style","textAlign","tabIndex","title","wrapProps","wrap","getSizeWrapClassName","innerShadowNode","innerShadow","outlineNode","isDisabled2022","zIndex","undefined","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","rightIconNode","link","linkLineHeight","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","hasLoadingNode","loadingNode","captionNode","caption","captionTranslated","captionLink","captionDisabled","text","visibilityHidden","renderIcon2022","setRootNode","sizes","cloneElement","sizeLarge","sizeLargeIE11","sizeLargeWithIcon","sizeLargeWithIconWithoutText","sizeMedium","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeSmall","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","isButton"],"mappings":"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","sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { HTMLProps } from '../../typings/html';\nimport { isKonturIcon, isReactUIComponent } from '../../lib/utils';\nimport { isEdge, isIE11, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeConsumer, ThemeProvider } from '../../lib/theming/ThemeContext';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { Link, LinkProps } from '../Link';\nimport { SizeProp } from '../../lib/types/props';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\n\nimport { getActiveStyles, getStyles, globalClasses } from './Button.styles';\nimport { ButtonIcon, ButtonIconProps, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\nimport { LoadingButtonIcon } from './LoadingButtonIcon';\n\n/**\n * @deprecated use SizeProp\n */\nexport type ButtonSize = SizeProp;\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonProps\n extends CommonProps,\n Pick<\n AriaAttributes,\n 'aria-haspopup' | 'aria-describedby' | 'aria-controls' | 'aria-label' | 'aria-checked' | 'aria-expanded'\n >,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<HTMLProps['button'], 'onClickCapture' | 'onMouseUp' | 'onMouseDown'> {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement;\n\n /**\n * Иконка справа от текста кнопки.\n */\n rightIcon?: React.ReactElement;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onclick`.\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onfocus`.\n */\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `keydown`.\n */\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: SizeProp;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`, `\"text\"`, `\"backless\"`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps, 'use' | 'size' | 'type'>>;\n\n@rootNode\nexport class Button extends React.Component<ButtonProps, ButtonState> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n size: 'small',\n type: 'button',\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private node: HTMLButtonElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return this.renderMain();\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderLinkRootWithoutHandlers(props: LinkProps) {\n const { onClick, onFocus, onBlur, children, ...rest } = props;\n return <span {...rest}>{children}</span>;\n }\n\n private renderMain() {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onMouseDown,\n onMouseUp,\n onKeyDown,\n onClick,\n onClickCapture,\n width,\n children,\n 'aria-describedby': ariaDescribedby,\n 'aria-haspopup': ariaHasPopup,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n 'aria-checked': ariaChecked,\n 'aria-expanded': ariaExpanded,\n role,\n } = this.props;\n const { use, type, size } = this.getProps();\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n const _isTheme2022 = isTheme2022(this.theme);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [wrapClassNameWithArrow, rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused) },\n this.theme,\n this.emotion,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n let rootClassName = '';\n const styles = getStyles(this.emotion);\n const activeStyles = getActiveStyles(this.emotion);\n if (_isTheme2022) {\n const trueDisabled = disabled || loading;\n rootClassName = this.emotion.cx(\n styles.root(this.theme),\n styles[use](this.theme),\n sizeClass,\n narrow && styles.narrow(),\n _noPadding && styles.noPadding(),\n _noRightPadding && styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(trueDisabled\n ? [\n styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && styles.disabledWithoutOutline(this.theme),\n checked && styles.checkedDisabled(this.theme),\n checked && styles.checkedDisabled2022(this.theme),\n borderless && styles.borderless2022(),\n use === 'backless' && !checked && styles.backlessDisabled2022(this.theme),\n use === 'text' && styles.textDisabled2022(),\n ]\n : [\n active && !checked && activeStyles[use](this.theme),\n isFocused && styles.focus(this.theme),\n checked && styles.checked2022(this.theme),\n checked && isFocused && styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && styles.borderless2022(),\n ]),\n );\n } else {\n rootClassName = this.emotion.cx({\n [styles.root(this.theme)]: true,\n [styles.simulatedPress()]: true,\n [styles[use](this.theme)]: true,\n [activeStyles[use](this.theme)]: active,\n [sizeClass]: true,\n [styles.focus(this.theme)]: isFocused,\n [styles.checked(this.theme)]: checked,\n [styles.checkedFocused(this.theme)]: checked && isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n [styles.borderless()]: borderless && !disabled && !loading && !checked && !isFocused && !active,\n [styles.narrow()]: narrow,\n [styles.noPadding()]: _noPadding,\n [styles.noRightPadding()]: _noRightPadding,\n });\n }\n\n const rootProps = {\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type,\n role,\n 'aria-describedby': ariaDescribedby,\n 'aria-haspopup': ariaHasPopup,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n 'aria-checked': ariaChecked,\n 'aria-expanded': ariaExpanded,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n disabled: disabled || loading,\n onClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onMouseDown,\n onMouseUp,\n onClickCapture,\n tabIndex: disableFocus ? -1 : 0,\n title: this.props.title,\n };\n\n const wrapProps = {\n className: this.emotion.cx(globalClasses.root, {\n [styles.wrap(this.theme)]: true,\n [wrapClassNameWithArrow]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const innerShadowNode = _isTheme2022 ? null : <div className={globalClasses.innerShadow} />;\n\n let outlineNode = null;\n const isDisabled2022 = _isTheme2022 && (disabled || loading);\n if ((!isFocused || isLink) && !isDisabled2022) {\n outlineNode = (\n <div\n style={{ zIndex: _isTheme2022 && isLink ? -1 : undefined }}\n className={this.emotion.cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.getProps().size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = this.emotion.cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkLineHeight()]: !isSafari || (isSafari && !_isTheme2022),\n [styles.linkLineHeightSafariFallback()]: isSafari && _isTheme2022,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: disabled || loading,\n });\n Object.assign(wrapProps, {\n className: this.emotion.cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={size} />;\n\n let captionNode = (\n <div\n className={this.emotion.cx(styles.caption(), globalClasses.caption, {\n [styles.captionTranslated()]: (active || checked) && !loading && !_isTheme2022,\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={this.emotion.cx(globalClasses.text, {\n [styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (_isTheme2022 && isLink && !loading) {\n captionNode = (\n <ThemeProvider value={getInnerLinkTheme(this.theme)}>\n <Link\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n as={this.renderLinkRootWithoutHandlers}\n tabIndex={-1}\n >\n {children}\n </Link>\n </ThemeProvider>\n );\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span {...wrapProps} data-tid={ButtonDataTids.rootElement}>\n <button data-tid={ButtonDataTids.root} ref={this._ref} {...rootProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </button>\n </span>\n </CommonWrapper>\n );\n }\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.getProps().size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n const styles = getStyles(this.emotion);\n const _isTheme2022 = isTheme2022(this.theme);\n switch (this.getProps().size) {\n case 'large':\n return this.emotion.cx(styles.sizeLarge(this.theme), {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: _isTheme2022 && !!this.props.icon && !this.props.children,\n });\n case 'medium':\n return this.emotion.cx(styles.sizeMedium(this.theme), {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: _isTheme2022 && !!this.props.icon && !this.props.children,\n });\n case 'small':\n default:\n return this.emotion.cx(styles.sizeSmall(this.theme), {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: _isTheme2022 && !!this.props.icon && !this.props.children,\n });\n }\n }\n\n private getSizeWrapClassName() {\n const styles = getStyles(this.emotion);\n\n switch (this.getProps().size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent<HTMLButtonElement>) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLButtonElement>) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLButtonElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"]}
|
|
1
|
+
{"version":3,"sources":["Button.tsx"],"names":["React","globalObject","isKonturIcon","isReactUIComponent","isEdge","isIE11","isSafari","keyListener","ThemeContext","CommonWrapper","rootNode","ThemeFactory","createPropsGetter","isTheme2022","Link","EmotionConsumer","getActiveStyles","getStyles","globalClasses","ButtonIcon","getButtonIconSizes","useButtonArrow","getInnerLinkTheme","LoadingButtonIcon","ButtonDataTids","rootElement","root","spinner","Button","getProps","defaultProps","state","focusedByTab","node","handleFocus","e","props","disabled","disableFocus","requestAnimationFrame","isTabPressed","setState","onFocus","handleBlur","onBlur","_ref","componentDidMount","autoFocus","focus","getDerivedStateFromProps","loading","blur","render","emotion","theme","create","renderMain","renderLinkRootWithoutHandlers","onClick","children","rest","corners","active","borderless","checked","error","warning","narrow","icon","rightIcon","_noPadding","_noRightPadding","visuallyFocused","align","onMouseEnter","onMouseLeave","onMouseOver","onMouseDown","onMouseUp","onKeyDown","onClickCapture","width","ariaDescribedby","ariaHasPopup","ariaControls","ariaLabel","ariaChecked","ariaExpanded","role","use","type","size","sizeClass","getSizeClassName","isFocused","isLink","_isTheme2022","Boolean","wrapClassNameWithArrow","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","rootClassName","styles","activeStyles","trueDisabled","cx","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","checkedDisabled2022","borderless2022","backlessDisabled2022","textDisabled2022","checked2022","checkedFocused","simulatedPress","rootProps","className","style","textAlign","tabIndex","title","wrapProps","wrap","getSizeWrapClassName","innerShadowNode","innerShadow","outlineNode","isDisabled2022","zIndex","undefined","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","rightIconNode","link","linkLineHeight","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","hasLoadingNode","loadingNode","captionNode","caption","captionTranslated","captionLink","captionDisabled","text","visibilityHidden","renderIcon2022","setRootNode","sizes","cloneElement","sizeLarge","sizeLargeIE11","sizeLargeWithIcon","sizeLargeWithIconWithoutText","sizeMedium","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeSmall","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","isButton"],"mappings":"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","sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { HTMLProps } from '../../typings/html';\nimport { isKonturIcon, isReactUIComponent } from '../../lib/utils';\nimport { isEdge, isIE11, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { Link, LinkProps } from '../Link';\nimport { SizeProp } from '../../lib/types/props';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\n\nimport { getActiveStyles, getStyles, globalClasses } from './Button.styles';\nimport { ButtonIcon, ButtonIconProps, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\nimport { LoadingButtonIcon } from './LoadingButtonIcon';\n\n/**\n * @deprecated use SizeProp\n */\nexport type ButtonSize = SizeProp;\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonProps\n extends CommonProps,\n Pick<\n AriaAttributes,\n 'aria-haspopup' | 'aria-describedby' | 'aria-controls' | 'aria-label' | 'aria-checked' | 'aria-expanded'\n >,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<HTMLProps['button'], 'onClickCapture' | 'onMouseUp' | 'onMouseDown'> {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement;\n\n /**\n * Иконка справа от текста кнопки.\n */\n rightIcon?: React.ReactElement;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onclick`.\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onfocus`.\n */\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `keydown`.\n */\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: SizeProp;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`, `\"text\"`, `\"backless\"`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps, 'use' | 'size' | 'type'>>;\n\n@rootNode\nexport class Button extends React.Component<ButtonProps, ButtonState> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n size: 'small',\n type: 'button',\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private emotion!: Emotion;\n private node: HTMLButtonElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n private renderLinkRootWithoutHandlers(props: LinkProps) {\n const { onClick, onFocus, onBlur, children, ...rest } = props;\n return <span {...rest}>{children}</span>;\n }\n\n private renderMain() {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onMouseDown,\n onMouseUp,\n onKeyDown,\n onClick,\n onClickCapture,\n width,\n children,\n 'aria-describedby': ariaDescribedby,\n 'aria-haspopup': ariaHasPopup,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n 'aria-checked': ariaChecked,\n 'aria-expanded': ariaExpanded,\n role,\n } = this.props;\n const { use, type, size } = this.getProps();\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n const _isTheme2022 = isTheme2022(this.theme);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [wrapClassNameWithArrow, rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused) },\n this.theme,\n this.emotion,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n let rootClassName = '';\n const styles = getStyles(this.emotion);\n const activeStyles = getActiveStyles(this.emotion);\n if (_isTheme2022) {\n const trueDisabled = disabled || loading;\n rootClassName = this.emotion.cx(\n styles.root(this.theme),\n styles[use](this.theme),\n sizeClass,\n narrow && styles.narrow(),\n _noPadding && styles.noPadding(),\n _noRightPadding && styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(trueDisabled\n ? [\n styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && styles.disabledWithoutOutline(this.theme),\n checked && styles.checkedDisabled(this.theme),\n checked && styles.checkedDisabled2022(this.theme),\n borderless && styles.borderless2022(),\n use === 'backless' && !checked && styles.backlessDisabled2022(this.theme),\n use === 'text' && styles.textDisabled2022(),\n ]\n : [\n active && !checked && activeStyles[use](this.theme),\n isFocused && styles.focus(this.theme),\n checked && styles.checked2022(this.theme),\n checked && isFocused && styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && styles.borderless2022(),\n ]),\n );\n } else {\n rootClassName = this.emotion.cx({\n [styles.root(this.theme)]: true,\n [styles.simulatedPress()]: true,\n [styles[use](this.theme)]: true,\n [activeStyles[use](this.theme)]: active,\n [sizeClass]: true,\n [styles.focus(this.theme)]: isFocused,\n [styles.checked(this.theme)]: checked,\n [styles.checkedFocused(this.theme)]: checked && isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n [styles.borderless()]: borderless && !disabled && !loading && !checked && !isFocused && !active,\n [styles.narrow()]: narrow,\n [styles.noPadding()]: _noPadding,\n [styles.noRightPadding()]: _noRightPadding,\n });\n }\n\n const rootProps = {\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type,\n role,\n 'aria-describedby': ariaDescribedby,\n 'aria-haspopup': ariaHasPopup,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n 'aria-checked': ariaChecked,\n 'aria-expanded': ariaExpanded,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n disabled: disabled || loading,\n onClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onMouseDown,\n onMouseUp,\n onClickCapture,\n tabIndex: disableFocus ? -1 : 0,\n title: this.props.title,\n };\n\n const wrapProps = {\n className: this.emotion.cx(globalClasses.root, {\n [styles.wrap(this.theme)]: true,\n [wrapClassNameWithArrow]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const innerShadowNode = _isTheme2022 ? null : <div className={globalClasses.innerShadow} />;\n\n let outlineNode = null;\n const isDisabled2022 = _isTheme2022 && (disabled || loading);\n if ((!isFocused || isLink) && !isDisabled2022) {\n outlineNode = (\n <div\n style={{ zIndex: _isTheme2022 && isLink ? -1 : undefined }}\n className={this.emotion.cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.getProps().size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = this.emotion.cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkLineHeight()]: !isSafari || (isSafari && !_isTheme2022),\n [styles.linkLineHeightSafariFallback()]: isSafari && _isTheme2022,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: disabled || loading,\n });\n Object.assign(wrapProps, {\n className: this.emotion.cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={size} />;\n\n let captionNode = (\n <div\n className={this.emotion.cx(styles.caption(), globalClasses.caption, {\n [styles.captionTranslated()]: (active || checked) && !loading && !_isTheme2022,\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={this.emotion.cx(globalClasses.text, {\n [styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (_isTheme2022 && isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n <Link\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n as={this.renderLinkRootWithoutHandlers}\n tabIndex={-1}\n >\n {children}\n </Link>\n </ThemeContext.Provider>\n );\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span {...wrapProps} data-tid={ButtonDataTids.rootElement}>\n <button data-tid={ButtonDataTids.root} ref={this._ref} {...rootProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </button>\n </span>\n </CommonWrapper>\n );\n }\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.getProps().size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n const styles = getStyles(this.emotion);\n const _isTheme2022 = isTheme2022(this.theme);\n switch (this.getProps().size) {\n case 'large':\n return this.emotion.cx(styles.sizeLarge(this.theme), {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: _isTheme2022 && !!this.props.icon && !this.props.children,\n });\n case 'medium':\n return this.emotion.cx(styles.sizeMedium(this.theme), {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: _isTheme2022 && !!this.props.icon && !this.props.children,\n });\n case 'small':\n default:\n return this.emotion.cx(styles.sizeSmall(this.theme), {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: _isTheme2022 && !!this.props.icon && !this.props.children,\n });\n }\n }\n\n private getSizeWrapClassName() {\n const styles = getStyles(this.emotion);\n\n switch (this.getProps().size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent<HTMLButtonElement>) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLButtonElement>) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLButtonElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"]}
|
|
@@ -60,15 +60,15 @@ import { XIcon16Regular } from '@skbkontur/icons/XIcon16Regular';
|
|
|
60
60
|
|
|
61
61
|
```jsx harmony
|
|
62
62
|
<div
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
63
|
+
style={{
|
|
64
|
+
display: "flex",
|
|
65
|
+
alignItems: "end",
|
|
66
|
+
gap: '10px',
|
|
67
|
+
}}
|
|
68
|
+
>
|
|
69
|
+
<Button size="small">Маленькая</Button>
|
|
70
|
+
<Button size="medium">Средняя</Button>
|
|
71
|
+
<Button size="large">Большая</Button>
|
|
72
72
|
</div>
|
|
73
73
|
```
|
|
74
74
|
|
|
@@ -133,7 +133,7 @@ const handleClick = () => {
|
|
|
133
133
|
|
|
134
134
|
```
|
|
135
135
|
|
|
136
|
-
Пример кнопки с пропом `theme
|
|
136
|
+
Пример кнопки с пропом `theme`.
|
|
137
137
|
|
|
138
138
|
```jsx harmony
|
|
139
139
|
import { Button, Gapped } from '@skbkontur/react-ui';
|
|
@@ -146,7 +146,7 @@ import { Button, Gapped } from '@skbkontur/react-ui';
|
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
|
|
149
|
-
Пример кастомизации
|
|
149
|
+
Пример кастомизации кнопки-ссылки.
|
|
150
150
|
|
|
151
151
|
```jsx harmony
|
|
152
152
|
import { Toast } from "@skbkontur/react-ui";
|
|
@@ -212,3 +212,30 @@ const renderExampleRow = (title, styles, index) => {
|
|
|
212
212
|
{renderExampleRow('Изменение цвета ссылки', differentColorStyles)}
|
|
213
213
|
</table>
|
|
214
214
|
```
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
Кнопка может быть узкой.
|
|
218
|
+
|
|
219
|
+
```jsx harmony
|
|
220
|
+
import { Button } from '@skbkontur/react-ui';
|
|
221
|
+
|
|
222
|
+
<Button narrow>
|
|
223
|
+
Создать отчет
|
|
224
|
+
</Button>
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
У кнопки есть состояния валидации.
|
|
229
|
+
|
|
230
|
+
```jsx harmony
|
|
231
|
+
import { Button, Gapped } from '@skbkontur/react-ui';
|
|
232
|
+
|
|
233
|
+
<Gapped gap={5}>
|
|
234
|
+
<Button warning>
|
|
235
|
+
Warning
|
|
236
|
+
</Button>
|
|
237
|
+
<Button error>
|
|
238
|
+
Error
|
|
239
|
+
</Button>
|
|
240
|
+
</Gapped>
|
|
241
|
+
```
|