@skbkontur/react-ui 6.4.2-static-css.0 → 6.4.3-5e1c3.0
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/README.md +0 -97
- package/components/Autocomplete/Autocomplete.d.ts +1 -0
- package/components/Autocomplete/Autocomplete.js +4 -13
- package/components/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.styles.d.ts +4 -4
- package/components/Autocomplete/Autocomplete.styles.js +16 -5
- package/components/Autocomplete/Autocomplete.styles.js.map +1 -1
- package/components/Button/Button.d.ts +1 -15
- package/components/Button/Button.js +76 -162
- package/components/Button/Button.js.map +1 -1
- package/components/Button/Button.mixins.d.ts +4 -0
- package/components/Button/Button.mixins.js +21 -0
- package/components/Button/Button.mixins.js.map +1 -0
- package/components/Button/Button.styles.d.ts +91 -107
- package/components/Button/Button.styles.js +255 -108
- package/components/Button/Button.styles.js.map +1 -1
- package/components/Button/ButtonArrow.d.ts +3 -2
- package/components/Button/ButtonArrow.js +10 -8
- package/components/Button/ButtonArrow.js.map +1 -1
- package/components/Button/ButtonIcon.js +17 -7
- package/components/Button/ButtonIcon.js.map +1 -1
- package/components/Button/ButtonIcon.styles.d.ts +15 -15
- package/components/Button/ButtonIcon.styles.js +51 -16
- package/components/Button/ButtonIcon.styles.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +1 -0
- package/components/Calendar/Calendar.js +3 -3
- package/components/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.styles.d.ts +5 -5
- package/components/Calendar/Calendar.styles.js +20 -6
- package/components/Calendar/Calendar.styles.js.map +1 -1
- package/components/Calendar/CalendarDay.js +7 -11
- package/components/Calendar/CalendarDay.js.map +1 -1
- package/components/Calendar/DayCellView.js +3 -1
- package/components/Calendar/DayCellView.js.map +1 -1
- package/components/Calendar/DayCellView.styles.d.ts +8 -10
- package/components/Calendar/DayCellView.styles.js +29 -11
- package/components/Calendar/DayCellView.styles.js.map +1 -1
- package/components/Calendar/Month.js +10 -6
- package/components/Calendar/Month.js.map +1 -1
- package/components/Calendar/MonthView.js +7 -7
- package/components/Calendar/MonthView.js.map +1 -1
- package/components/Calendar/MonthView.styles.d.ts +12 -12
- package/components/Calendar/MonthView.styles.js +45 -13
- package/components/Calendar/MonthView.styles.js.map +1 -1
- package/components/Center/Center.d.ts +1 -0
- package/components/Center/Center.js +1 -1
- package/components/Center/Center.js.map +1 -1
- package/components/Center/Center.styles.d.ts +6 -7
- package/components/Center/Center.styles.js +25 -8
- package/components/Center/Center.styles.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +1 -8
- package/components/Checkbox/Checkbox.js +26 -57
- package/components/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.mixins.d.ts +4 -0
- package/components/Checkbox/Checkbox.mixins.js +18 -0
- package/components/Checkbox/Checkbox.mixins.js.map +1 -0
- package/components/Checkbox/Checkbox.styles.d.ts +30 -33
- package/components/Checkbox/Checkbox.styles.js +95 -35
- package/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/components/DateInput/DateFragmentsView.d.ts +2 -0
- package/components/DateInput/DateFragmentsView.js +7 -10
- package/components/DateInput/DateFragmentsView.js.map +1 -1
- package/components/DateInput/DateFragmentsView.styles.d.ts +6 -8
- package/components/DateInput/DateFragmentsView.styles.js +26 -9
- package/components/DateInput/DateFragmentsView.styles.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +2 -0
- package/components/DateInput/DateInput.js +8 -6
- package/components/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.styles.d.ts +11 -10
- package/components/DateInput/DateInput.styles.js +28 -11
- package/components/DateInput/DateInput.styles.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +1 -0
- package/components/DatePicker/DatePicker.js +2 -2
- package/components/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.styles.d.ts +4 -4
- package/components/DatePicker/DatePicker.styles.js +16 -5
- package/components/DatePicker/DatePicker.styles.js.map +1 -1
- package/components/DatePicker/MobilePicker.styles.d.ts +2 -3
- package/components/DatePicker/MobilePicker.styles.js +13 -4
- package/components/DatePicker/MobilePicker.styles.js.map +1 -1
- package/components/DatePicker/getMobilePickerTheme.js +9 -27
- package/components/DatePicker/getMobilePickerTheme.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +4 -4
- package/components/DateRangePicker/DateRangePicker.js +28 -26
- package/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.styles.d.ts +14 -20
- package/components/DateRangePicker/DateRangePicker.styles.js +49 -25
- package/components/DateRangePicker/DateRangePicker.styles.js.map +1 -1
- package/components/DateRangePicker/DateRangePickerTheme.js +10 -30
- package/components/DateRangePicker/DateRangePickerTheme.js.map +1 -1
- package/components/Dropdown/getDropdownTheme.d.ts +0 -11
- package/components/Dropdown/getDropdownTheme.js +4 -23
- package/components/Dropdown/getDropdownTheme.js.map +1 -1
- package/components/DropdownMenu/getDropdownMenuTheme.js +2 -9
- package/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +1 -2
- package/components/FileUploader/FileUploader.js +45 -50
- package/components/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.mixins.d.ts +1 -0
- package/components/FileUploader/FileUploader.mixins.js +4 -0
- package/components/FileUploader/FileUploader.mixins.js.map +1 -0
- package/components/FileUploader/FileUploader.styles.d.ts +68 -69
- package/components/FileUploader/FileUploader.styles.js +214 -71
- package/components/FileUploader/FileUploader.styles.js.map +1 -1
- package/components/FileUploader/FileUploaderFile.js +30 -28
- package/components/FileUploader/FileUploaderFile.js.map +1 -1
- package/components/FileUploader/FileUploaderFile.styles.d.ts +57 -57
- package/components/FileUploader/FileUploaderFile.styles.js +180 -58
- package/components/FileUploader/FileUploaderFile.styles.js.map +1 -1
- package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js +19 -17
- package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.d.ts +31 -31
- package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js +99 -32
- package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -1
- package/components/FileUploader/FileUploaderFileStatusIcon.js +4 -2
- package/components/FileUploader/FileUploaderFileStatusIcon.js.map +1 -1
- package/components/FileUploader/FileUploaderFileTypeIcon.js +52 -47
- package/components/FileUploader/FileUploaderFileTypeIcon.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +1 -1
- package/components/FxInput/FxInput.js +3 -7
- package/components/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInputRestoreBtn.js +15 -23
- package/components/FxInput/FxInputRestoreBtn.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.js +14 -30
- package/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.styles.d.ts +16 -22
- package/components/GlobalLoader/GlobalLoaderView.styles.js +67 -22
- package/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -1
- package/components/Group/Group.d.ts +1 -0
- package/components/Group/Group.js +3 -2
- package/components/Group/Group.js.map +1 -1
- package/components/Group/Group.styles.d.ts +7 -7
- package/components/Group/Group.styles.js +28 -8
- package/components/Group/Group.styles.js.map +1 -1
- package/components/Hint/Hint.d.ts +1 -0
- package/components/Hint/Hint.js +3 -3
- package/components/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.styles.d.ts +4 -4
- package/components/Hint/Hint.styles.js +16 -5
- package/components/Hint/Hint.styles.js.map +1 -1
- package/components/Input/Input.d.ts +1 -0
- package/components/Input/Input.js +13 -13
- package/components/Input/Input.js.map +1 -1
- package/components/Input/Input.styles.d.ts +20 -20
- package/components/Input/Input.styles.js +66 -21
- package/components/Input/Input.styles.js.map +1 -1
- package/components/Input/InputLayout/InputLayout.styles.d.ts +17 -26
- package/components/Input/InputLayout/InputLayout.styles.js +57 -27
- package/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutAsideCounter.js +8 -8
- package/components/Input/InputLayout/InputLayoutAsideCounter.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon.js +25 -19
- package/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutAsideText.js +4 -4
- package/components/Input/InputLayout/InputLayoutAsideText.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +1 -0
- package/components/Kebab/Kebab.js +2 -2
- package/components/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.styles.d.ts +10 -10
- package/components/Kebab/Kebab.styles.js +34 -11
- package/components/Kebab/Kebab.styles.js.map +1 -1
- package/components/Link/Link.d.ts +1 -0
- package/components/Link/Link.js +18 -23
- package/components/Link/Link.js.map +1 -1
- package/components/Link/Link.mixins.d.ts +2 -0
- package/components/Link/Link.mixins.js +7 -0
- package/components/Link/Link.mixins.js.map +1 -0
- package/components/Link/Link.styles.d.ts +23 -23
- package/components/Link/Link.styles.js +81 -25
- package/components/Link/Link.styles.js.map +1 -1
- package/components/Link/LinkIcon.js +6 -4
- package/components/Link/LinkIcon.js.map +1 -1
- package/components/Loader/Loader.d.ts +2 -0
- package/components/Loader/Loader.js +3 -2
- package/components/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.styles.d.ts +7 -7
- package/components/Loader/Loader.styles.js +25 -8
- package/components/Loader/Loader.styles.js.map +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +21 -15
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.d.ts +2 -3
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js +13 -5
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js.map +1 -1
- package/components/MaskedInput/MaskedInput.styles.d.ts +3 -3
- package/components/MaskedInput/MaskedInput.styles.js +14 -5
- package/components/MaskedInput/MaskedInput.styles.js.map +1 -1
- package/components/MaskedInput/MaskedInputLegacy.js +6 -4
- package/components/MaskedInput/MaskedInputLegacy.js.map +1 -1
- package/components/MaskedInputV2/MaskedInputV2.js +6 -4
- package/components/MaskedInputV2/MaskedInputV2.js.map +1 -1
- package/components/MaskedInputV2/MaskedInputV2.styles.d.ts +3 -3
- package/components/MaskedInputV2/MaskedInputV2.styles.js +14 -5
- package/components/MaskedInputV2/MaskedInputV2.styles.js.map +1 -1
- package/components/MaskedInputV2/internal/MaskOverlay.js +8 -8
- package/components/MaskedInputV2/internal/MaskOverlay.js.map +1 -1
- package/components/MaskedInputV2/internal/MaskedCore.js +5 -7
- package/components/MaskedInputV2/internal/MaskedCore.js.map +1 -1
- package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +7 -7
- package/components/MaskedInputV2/internal/MaskedInternal.styles.js +25 -9
- package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +1 -1
- package/components/MenuFooter/MenuFooter.js +12 -10
- package/components/MenuFooter/MenuFooter.js.map +1 -1
- package/components/MenuFooter/MenuFooter.mixins.d.ts +2 -0
- package/components/MenuFooter/MenuFooter.mixins.js +8 -0
- package/components/MenuFooter/MenuFooter.mixins.js.map +1 -0
- package/components/MenuFooter/MenuFooter.styles.d.ts +9 -9
- package/components/MenuFooter/MenuFooter.styles.js +32 -10
- package/components/MenuFooter/MenuFooter.styles.js.map +1 -1
- package/components/MenuHeader/MenuHeader.js +11 -9
- package/components/MenuHeader/MenuHeader.js.map +1 -1
- package/components/MenuHeader/MenuHeader.mixins.d.ts +2 -0
- package/components/MenuHeader/MenuHeader.mixins.js +8 -0
- package/components/MenuHeader/MenuHeader.mixins.js.map +1 -0
- package/components/MenuHeader/MenuHeader.styles.d.ts +9 -9
- package/components/MenuHeader/MenuHeader.styles.js +32 -10
- package/components/MenuHeader/MenuHeader.styles.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +1 -0
- package/components/MenuItem/MenuItem.js +30 -24
- package/components/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.mixins.d.ts +0 -6
- package/components/MenuItem/MenuItem.mixins.js +1 -7
- package/components/MenuItem/MenuItem.mixins.js.map +1 -1
- package/components/MenuItem/MenuItem.styles.d.ts +26 -26
- package/components/MenuItem/MenuItem.styles.js +85 -28
- package/components/MenuItem/MenuItem.styles.js.map +1 -1
- package/components/MenuSeparator/MenuSeparator.js +6 -4
- package/components/MenuSeparator/MenuSeparator.js.map +1 -1
- package/components/MenuSeparator/MenuSeparator.styles.d.ts +4 -4
- package/components/MenuSeparator/MenuSeparator.styles.js +16 -5
- package/components/MenuSeparator/MenuSeparator.styles.js.map +1 -1
- package/components/MiniModal/MiniModal.styles.d.ts +10 -10
- package/components/MiniModal/MiniModal.styles.js +35 -11
- package/components/MiniModal/MiniModal.styles.js.map +1 -1
- package/components/MiniModal/MiniModalBody.js +3 -3
- package/components/MiniModal/MiniModalBody.js.map +1 -1
- package/components/MiniModal/MiniModalFooter.js +6 -4
- package/components/MiniModal/MiniModalFooter.js.map +1 -1
- package/components/MiniModal/MiniModalHeader.js +6 -4
- package/components/MiniModal/MiniModalHeader.js.map +1 -1
- package/components/MiniModal/MiniModalIndent.js +4 -2
- package/components/MiniModal/MiniModalIndent.js.map +1 -1
- package/components/MiniModal/getMiniModalTheme.js +13 -39
- package/components/MiniModal/getMiniModalTheme.js.map +1 -1
- package/components/Modal/Modal.d.ts +1 -0
- package/components/Modal/Modal.js +8 -8
- package/components/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.styles.d.ts +50 -50
- package/components/Modal/Modal.styles.js +161 -52
- package/components/Modal/Modal.styles.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +1 -0
- package/components/Modal/ModalBody.js +7 -7
- package/components/Modal/ModalBody.js.map +1 -1
- package/components/Modal/ModalClose.js +9 -7
- package/components/Modal/ModalClose.js.map +1 -1
- package/components/Modal/ModalFooter.js +3 -3
- package/components/Modal/ModalFooter.js.map +1 -1
- package/components/Modal/ModalHeader.js +3 -3
- package/components/Modal/ModalHeader.js.map +1 -1
- package/components/Modal/ModalSeparator.js +6 -4
- package/components/Modal/ModalSeparator.js.map +1 -1
- package/components/Paging/Paging.d.ts +2 -0
- package/components/Paging/Paging.js +37 -32
- package/components/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.styles.d.ts +31 -31
- package/components/Paging/Paging.styles.js +97 -32
- package/components/Paging/Paging.styles.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +2 -0
- package/components/PasswordInput/PasswordInput.js +11 -6
- package/components/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.styles.d.ts +10 -10
- package/components/PasswordInput/PasswordInput.styles.js +34 -11
- package/components/PasswordInput/PasswordInput.styles.js.map +1 -1
- package/components/Radio/Radio.d.ts +1 -8
- package/components/Radio/Radio.js +28 -59
- package/components/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.mixins.d.ts +7 -0
- package/components/Radio/Radio.mixins.js +30 -0
- package/components/Radio/Radio.mixins.js.map +1 -0
- package/components/Radio/Radio.styles.d.ts +30 -33
- package/components/Radio/Radio.styles.js +95 -35
- package/components/Radio/Radio.styles.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +1 -0
- package/components/RadioGroup/RadioGroup.js +2 -1
- package/components/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.styles.d.ts +5 -5
- package/components/RadioGroup/RadioGroup.styles.js +22 -6
- package/components/RadioGroup/RadioGroup.styles.js.map +1 -1
- package/components/ScrollContainer/ScrollBar.d.ts +3 -1
- package/components/ScrollContainer/ScrollBar.js +14 -9
- package/components/ScrollContainer/ScrollBar.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/components/ScrollContainer/ScrollContainer.js +1 -1
- package/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.styles.d.ts +13 -13
- package/components/ScrollContainer/ScrollContainer.styles.js +43 -15
- package/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
- package/components/Select/Select.d.ts +1 -0
- package/components/Select/Select.js +12 -12
- package/components/Select/Select.js.map +1 -1
- package/components/Select/Select.styles.d.ts +17 -17
- package/components/Select/Select.styles.js +55 -18
- package/components/Select/Select.styles.js.map +1 -1
- package/components/Select/selectTheme.js +7 -31
- package/components/Select/selectTheme.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +6 -0
- package/components/SidePage/SidePage.js +27 -9
- package/components/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.styles.d.ts +49 -49
- package/components/SidePage/SidePage.styles.js +156 -50
- package/components/SidePage/SidePage.styles.js.map +1 -1
- package/components/SidePage/SidePageBody.d.ts +1 -0
- package/components/SidePage/SidePageBody.js +8 -7
- package/components/SidePage/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageCloseButton.js +8 -6
- package/components/SidePage/SidePageCloseButton.js.map +1 -1
- package/components/SidePage/SidePageContainer.d.ts +2 -0
- package/components/SidePage/SidePageContainer.js +13 -11
- package/components/SidePage/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageContext.d.ts +2 -0
- package/components/SidePage/SidePageContext.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +2 -0
- package/components/SidePage/SidePageFooter.js +17 -12
- package/components/SidePage/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +2 -0
- package/components/SidePage/SidePageHeader.js +20 -11
- package/components/SidePage/SidePageHeader.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +2 -0
- package/components/Spinner/Spinner.js +10 -7
- package/components/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.styles.d.ts +12 -12
- package/components/Spinner/Spinner.styles.js +41 -13
- package/components/Spinner/Spinner.styles.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +1 -0
- package/components/Sticky/Sticky.js +1 -1
- package/components/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.styles.d.ts +6 -7
- package/components/Sticky/Sticky.styles.js +25 -8
- package/components/Sticky/Sticky.styles.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +1 -0
- package/components/Switcher/Switcher.js +6 -6
- package/components/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.styles.d.ts +11 -11
- package/components/Switcher/Switcher.styles.js +37 -12
- package/components/Switcher/Switcher.styles.js.map +1 -1
- package/components/Switcher/switcherTheme.js +4 -12
- package/components/Switcher/switcherTheme.js.map +1 -1
- package/components/Tabs/Indicator.d.ts +1 -0
- package/components/Tabs/Indicator.js +2 -2
- package/components/Tabs/Indicator.js.map +1 -1
- package/components/Tabs/Indicator.styles.d.ts +7 -7
- package/components/Tabs/Indicator.styles.js +25 -8
- package/components/Tabs/Indicator.styles.js.map +1 -1
- package/components/Tabs/Tab.d.ts +18 -4
- package/components/Tabs/Tab.js +24 -19
- package/components/Tabs/Tab.js.map +1 -1
- package/components/Tabs/Tab.styles.d.ts +27 -27
- package/components/Tabs/Tab.styles.js +99 -30
- package/components/Tabs/Tab.styles.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +2 -0
- package/components/Tabs/Tabs.js +29 -24
- package/components/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.styles.d.ts +6 -6
- package/components/Tabs/Tabs.styles.js +25 -8
- package/components/Tabs/Tabs.styles.js.map +1 -1
- package/components/Tabs/helpers.d.ts +6 -0
- package/components/Tabs/helpers.js +25 -0
- package/components/Tabs/helpers.js.map +1 -0
- package/components/Textarea/Textarea.d.ts +2 -0
- package/components/Textarea/Textarea.js +24 -17
- package/components/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.mixins.d.ts +2 -0
- package/components/Textarea/Textarea.mixins.js +7 -0
- package/components/Textarea/Textarea.mixins.js.map +1 -0
- package/components/Textarea/Textarea.styles.d.ts +22 -26
- package/components/Textarea/Textarea.styles.js +71 -27
- package/components/Textarea/Textarea.styles.js.map +1 -1
- package/components/Textarea/TextareaCounter.js +14 -22
- package/components/Textarea/TextareaCounter.js.map +1 -1
- package/components/TimePicker/TimePicker.styles.d.ts +11 -11
- package/components/TimePicker/TimePicker.styles.js +37 -12
- package/components/TimePicker/TimePicker.styles.js.map +1 -1
- package/components/TimePicker/TimePickerItems.js +6 -6
- package/components/TimePicker/TimePickerItems.js.map +1 -1
- package/components/TimePicker/TimePickerPopup.js +1 -1
- package/components/TimePicker/TimePickerPopup.js.map +1 -1
- package/components/Toast/Toast.d.ts +1 -0
- package/components/Toast/Toast.js +1 -1
- package/components/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.styles.d.ts +5 -6
- package/components/Toast/Toast.styles.js +22 -7
- package/components/Toast/Toast.styles.js.map +1 -1
- package/components/Toast/ToastView.d.ts +1 -0
- package/components/Toast/ToastView.js +17 -9
- package/components/Toast/ToastView.js.map +1 -1
- package/components/Toast/ToastView.styles.d.ts +17 -19
- package/components/Toast/ToastView.styles.js +65 -20
- package/components/Toast/ToastView.styles.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +1 -1
- package/components/Toggle/Toggle.js +39 -55
- package/components/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.mixins.d.ts +8 -0
- package/components/Toggle/Toggle.mixins.js +32 -0
- package/components/Toggle/Toggle.mixins.js.map +1 -0
- package/components/Toggle/Toggle.styles.d.ts +46 -47
- package/components/Toggle/Toggle.styles.js +143 -48
- package/components/Toggle/Toggle.styles.js.map +1 -1
- package/components/Token/Token.d.ts +2 -0
- package/components/Token/Token.js +10 -5
- package/components/Token/Token.js.map +1 -1
- package/components/Token/Token.mixins.d.ts +1 -0
- package/components/Token/Token.mixins.js +4 -0
- package/components/Token/Token.mixins.js.map +1 -0
- package/components/Token/Token.styles.d.ts +19 -20
- package/components/Token/Token.styles.js +62 -22
- package/components/Token/Token.styles.js.map +1 -1
- package/components/Token/TokenView.js +10 -8
- package/components/Token/TokenView.js.map +1 -1
- package/components/TokenInput/TextWidthHelper.d.ts +1 -0
- package/components/TokenInput/TextWidthHelper.js +4 -4
- package/components/TokenInput/TextWidthHelper.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +2 -1
- package/components/TokenInput/TokenInput.js +22 -20
- package/components/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.mixins.d.ts +2 -0
- package/components/TokenInput/TokenInput.mixins.js +7 -0
- package/components/TokenInput/TokenInput.mixins.js.map +1 -0
- package/components/TokenInput/TokenInput.styles.d.ts +20 -21
- package/components/TokenInput/TokenInput.styles.js +66 -22
- package/components/TokenInput/TokenInput.styles.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +1 -0
- package/components/Tooltip/Tooltip.js +12 -12
- package/components/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.styles.d.ts +10 -11
- package/components/Tooltip/Tooltip.styles.js +34 -12
- package/components/Tooltip/Tooltip.styles.js.map +1 -1
- package/index.d.ts +0 -4
- package/index.js +0 -12
- package/index.js.map +1 -1
- package/internal/ClearCrossIcon/ClearCrossIcon.js +9 -7
- package/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
- package/internal/ClearCrossIcon/ClearCrossIcon.styles.d.ts +12 -11
- package/internal/ClearCrossIcon/ClearCrossIcon.styles.js +35 -12
- package/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -1
- package/internal/CloseButtonIcon/CloseButtonIcon.d.ts +11 -21
- package/internal/CloseButtonIcon/CloseButtonIcon.js +13 -28
- package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
- package/internal/CloseButtonIcon/CloseButtonIcon.styles.d.ts +8 -8
- package/internal/CloseButtonIcon/CloseButtonIcon.styles.js +23 -9
- package/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +1 -5
- package/internal/CommonWrapper/CommonWrapper.js +6 -107
- package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +2 -1
- package/internal/CustomComboBox/ComboBoxView.js +7 -8
- package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.styles.d.ts +3 -5
- package/internal/CustomComboBox/CustomComboBox.styles.js +16 -6
- package/internal/CustomComboBox/CustomComboBox.styles.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +1 -0
- package/internal/DateSelect/DateSelect.js +2 -2
- package/internal/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.styles.d.ts +5 -5
- package/internal/DateSelect/DateSelect.styles.js +19 -7
- package/internal/DateSelect/DateSelect.styles.js.map +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -15
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +15 -36
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/internal/InputLikeText/InputLikeText.js +17 -21
- package/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.styles.d.ts +7 -7
- package/internal/InputLikeText/InputLikeText.styles.js +28 -8
- package/internal/InputLikeText/InputLikeText.styles.js.map +1 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +14 -14
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.d.ts +2 -3
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js +13 -4
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.styles.js.map +1 -1
- package/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +2 -3
- package/internal/MaskCharLowLine/MaskCharLowLine.styles.js +13 -4
- package/internal/MaskCharLowLine/MaskCharLowLine.styles.js.map +1 -1
- package/internal/Menu/Menu.d.ts +1 -0
- package/internal/Menu/Menu.js +9 -9
- package/internal/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.styles.d.ts +15 -15
- package/internal/Menu/Menu.styles.js +49 -16
- package/internal/Menu/Menu.styles.js.map +1 -1
- package/internal/MenuMessage/MenuMessage.js +10 -10
- package/internal/MenuMessage/MenuMessage.js.map +1 -1
- package/internal/MenuMessage/MenuMessage.styles.d.ts +10 -10
- package/internal/MenuMessage/MenuMessage.styles.js +39 -11
- package/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +1 -0
- package/internal/MobilePopup/MobilePopup.js +11 -23
- package/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.styles.d.ts +16 -16
- package/internal/MobilePopup/MobilePopup.styles.js +55 -17
- package/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +1 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +5 -5
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +6 -6
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +23 -7
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +10 -10
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +13 -13
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +45 -14
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
- package/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
- package/internal/NativeDateInput/NativeDateInput.js +1 -1
- package/internal/NativeDateInput/NativeDateInput.js.map +1 -1
- package/internal/NativeDateInput/NativeDateInput.styles.d.ts +2 -3
- package/internal/NativeDateInput/NativeDateInput.styles.js +13 -4
- package/internal/NativeDateInput/NativeDateInput.styles.js.map +1 -1
- package/internal/NativeTimeInput/NativeTimeInput.js +2 -1
- package/internal/NativeTimeInput/NativeTimeInput.js.map +1 -1
- package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +2 -3
- package/internal/NativeTimeInput/NativeTimeInput.styles.js +13 -4
- package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +1 -1
- package/internal/Popup/Popup.d.ts +1 -0
- package/internal/Popup/Popup.js +5 -5
- package/internal/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.styles.d.ts +21 -21
- package/internal/Popup/Popup.styles.js +67 -22
- package/internal/Popup/Popup.styles.js.map +1 -1
- package/internal/Popup/PopupPin.d.ts +1 -0
- package/internal/Popup/PopupPin.js +1 -1
- package/internal/Popup/PopupPin.js.map +1 -1
- package/internal/Popup/PopupPin.styles.d.ts +8 -9
- package/internal/Popup/PopupPin.styles.js +31 -10
- package/internal/Popup/PopupPin.styles.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +1 -0
- package/internal/PopupMenu/PopupMenu.js +1 -1
- package/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.styles.d.ts +3 -4
- package/internal/PopupMenu/PopupMenu.styles.js +16 -5
- package/internal/PopupMenu/PopupMenu.styles.js.map +1 -1
- package/internal/RenderContainer/RenderInnerContainer.js +2 -4
- package/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
- package/internal/ResizeDetector/ResizeDetector.js +1 -1
- package/internal/ResizeDetector/ResizeDetector.js.map +1 -1
- package/internal/ResizeDetector/ResizeDetector.styles.d.ts +6 -7
- package/internal/ResizeDetector/ResizeDetector.styles.js +25 -8
- package/internal/ResizeDetector/ResizeDetector.styles.js.map +1 -1
- package/internal/SpinnerIcon/SpinnerIcon.js +2 -2
- package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
- package/internal/SpinnerIcon/SpinnerIcon.styles.d.ts +5 -6
- package/internal/SpinnerIcon/SpinnerIcon.styles.js +22 -7
- package/internal/SpinnerIcon/SpinnerIcon.styles.js.map +1 -1
- package/internal/TextWidthHelper/TextWidthHelper.d.ts +1 -0
- package/internal/TextWidthHelper/TextWidthHelper.js +1 -1
- package/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +3 -4
- package/internal/TextWidthHelper/TextWidthHelper.styles.js +16 -5
- package/internal/TextWidthHelper/TextWidthHelper.styles.js.map +1 -1
- package/internal/TimeInput/TimeFragments.js +15 -19
- package/internal/TimeInput/TimeFragments.js.map +1 -1
- package/internal/TimeInput/TimeFragments.styles.d.ts +31 -19
- package/internal/TimeInput/TimeFragments.styles.js +76 -20
- package/internal/TimeInput/TimeFragments.styles.js.map +1 -1
- package/internal/TimeInput/TimeInput.js +4 -4
- package/internal/TimeInput/TimeInput.js.map +1 -1
- package/internal/TimeInput/TimeInput.styles.d.ts +6 -6
- package/internal/TimeInput/TimeInput.styles.js +22 -7
- package/internal/TimeInput/TimeInput.styles.js.map +1 -1
- package/internal/icons2022/BaseIcon.js +1 -8
- package/internal/icons2022/BaseIcon.js.map +1 -1
- package/internal/icons2022/BaseIcon.styles.d.ts +2 -5
- package/internal/icons2022/BaseIcon.styles.js +14 -6
- package/internal/icons2022/BaseIcon.styles.js.map +1 -1
- package/internal/icons2022/LoadingIcon.js +5 -3
- package/internal/icons2022/LoadingIcon.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +40 -10
- package/internal/themes/BasicTheme.js +78 -17
- package/internal/themes/BasicTheme.js.map +1 -1
- package/internal/themes/DarkTheme6_0.js +361 -62
- package/internal/themes/DarkTheme6_0.js.map +1 -1
- package/internal/themes/DarkTheme6_1.js +3 -11
- package/internal/themes/DarkTheme6_1.js.map +1 -1
- package/internal/themes/DarkTheme6_4.js +1 -11
- package/internal/themes/DarkTheme6_4.js.map +1 -1
- package/internal/themes/DarkTheme6_5.d.ts +1 -0
- package/internal/themes/DarkTheme6_5.js +87 -0
- package/internal/themes/DarkTheme6_5.js.map +1 -0
- package/internal/themes/LightTheme6_5.d.ts +1 -0
- package/internal/themes/LightTheme6_5.js +87 -0
- package/internal/themes/LightTheme6_5.js.map +1 -0
- package/lib/Upgrades.d.ts +2 -12
- package/lib/Upgrades.js +16 -12
- package/lib/Upgrades.js.map +1 -1
- package/lib/chars.d.ts +8 -0
- package/lib/chars.js +9 -0
- package/lib/chars.js.map +1 -0
- package/lib/globalObject.js +1 -4
- package/lib/globalObject.js.map +1 -1
- package/lib/renderEnvironment/RenderEnvironmentContext.d.ts +6 -38
- package/lib/renderEnvironment/RenderEnvironmentContext.js +19 -21
- package/lib/renderEnvironment/RenderEnvironmentContext.js.map +1 -1
- package/lib/renderEnvironment/RenderEnvironmentDecorator.js +3 -6
- package/lib/renderEnvironment/RenderEnvironmentDecorator.js.map +1 -1
- package/lib/styles/Mixins.d.ts +2 -0
- package/lib/styles/Mixins.js +7 -0
- package/lib/styles/Mixins.js.map +1 -0
- package/lib/styles/UiFont.d.ts +3 -0
- package/lib/styles/UiFont.js +18 -0
- package/lib/styles/UiFont.js.map +1 -0
- package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
- package/lib/styles/getLabGrotesqueBaselineCompensation.js +10 -0
- package/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
- package/lib/theming/AnimationKeyframes.d.ts +7 -0
- package/lib/theming/AnimationKeyframes.js +24 -0
- package/lib/theming/AnimationKeyframes.js.map +1 -0
- package/lib/theming/Emotion.d.ts +9 -43
- package/lib/theming/Emotion.js +35 -70
- package/lib/theming/Emotion.js.map +1 -1
- package/lib/theming/ThemeVersions.d.ts +1 -1
- package/lib/theming/ThemeVersions.js.map +1 -1
- package/lib/theming/themes/DarkTheme.d.ts +1 -0
- package/lib/theming/themes/DarkTheme.js +3 -1
- package/lib/theming/themes/DarkTheme.js.map +1 -1
- package/lib/theming/themes/LightTheme.d.ts +1 -0
- package/lib/theming/themes/LightTheme.js +3 -1
- package/lib/theming/themes/LightTheme.js.map +1 -1
- package/lib/theming/useTheme.d.ts +2 -0
- package/lib/theming/useTheme.js +6 -0
- package/lib/theming/useTheme.js.map +1 -0
- package/package.json +5 -46
- package/typings/stylis-plugin-extra-scope.d.ts +3 -0
- package/components/FileUploader/FileUploaderFileTypeIcon.styles.d.ts +0 -14
- package/components/FileUploader/FileUploaderFileTypeIcon.styles.js +0 -16
- package/components/FileUploader/FileUploaderFileTypeIcon.styles.js.map +0 -1
- package/components/FxInput/FxInput.styles.d.ts +0 -4
- package/components/FxInput/FxInput.styles.js +0 -6
- package/components/FxInput/FxInput.styles.js.map +0 -1
- package/components/FxInput/FxInputRestoreBtn.styles.d.ts +0 -6
- package/components/FxInput/FxInputRestoreBtn.styles.js +0 -8
- package/components/FxInput/FxInputRestoreBtn.styles.js.map +0 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.styles.d.ts +0 -5
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.styles.js +0 -7
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.styles.js.map +0 -1
- package/lib/classNames.generated.d.ts +0 -1235
- package/lib/classNames.generated.js +0 -1233
- package/lib/classNames.generated.js.map +0 -1
- package/lib/styles/baselineCompensation.d.ts +0 -63
- package/lib/styles/baselineCompensation.js +0 -122
- package/lib/styles/baselineCompensation.js.map +0 -1
- package/lib/theming/declaredTheme.d.ts +0 -43
- package/lib/theming/declaredTheme.js +0 -56
- package/lib/theming/declaredTheme.js.map +0 -1
- package/lib/theming/hashString.d.ts +0 -19
- package/lib/theming/hashString.js +0 -52
- package/lib/theming/hashString.js.map +0 -1
- package/lib/theming/staticStyles.d.ts +0 -17
- package/lib/theming/staticStyles.js +0 -8
- package/lib/theming/staticStyles.js.map +0 -1
- package/lib/theming/staticThemeDelta.d.ts +0 -17
- package/lib/theming/staticThemeDelta.js +0 -37
- package/lib/theming/staticThemeDelta.js.map +0 -1
- package/lib/theming/staticThemeVars.d.ts +0 -21
- package/lib/theming/staticThemeVars.js +0 -35
- package/lib/theming/staticThemeVars.js.map +0 -1
- package/lib/theming/themeCssVarsClass.d.ts +0 -89
- package/lib/theming/themeCssVarsClass.js +0 -253
- package/lib/theming/themeCssVarsClass.js.map +0 -1
- package/lib/theming/themeCssVarsDelta.d.ts +0 -13
- package/lib/theming/themeCssVarsDelta.js +0 -67
- package/lib/theming/themeCssVarsDelta.js.map +0 -1
- package/lib/theming/themeToCssVars.d.ts +0 -47
- package/lib/theming/themeToCssVars.js +0 -861
- package/lib/theming/themeToCssVars.js.map +0 -1
- package/react-ui-tailwind.css +0 -544
- package/react-ui-themes.css +0 -8628
- package/react-ui-token-map.json +0 -9029
- package/react-ui.css +0 -7776
- package/react-ui.layer.css +0 -7778
- package/themes/dark-6-0.css +0 -1439
- package/themes/dark-6-0.scoped.css +0 -1439
- package/themes/dark-6-1.css +0 -1439
- package/themes/dark-6-1.scoped.css +0 -1439
- package/themes/dark.css +0 -1439
- package/themes/dark.scoped.css +0 -1439
- package/themes/light-6-0.css +0 -1437
- package/themes/light-6-0.scoped.css +0 -1437
- package/themes/light-6-1.css +0 -1437
- package/themes/light-6-1.scoped.css +0 -1437
- package/themes/light.css +0 -1437
- package/themes/light.scoped.css +0 -1437
|
@@ -79,22 +79,6 @@ var SpanComponent = function (_a) {
|
|
|
79
79
|
var children = _a.children, rest = __rest(_a, ["children"]);
|
|
80
80
|
return React.createElement("span", __assign({}, rest), children);
|
|
81
81
|
};
|
|
82
|
-
/**
|
|
83
|
-
* Фон рисуется градиентом, только если концы градиента отличаются.
|
|
84
|
-
*
|
|
85
|
-
* Сравниваются значения объекта темы, а не подстановки `var(--kontur-*)`: в
|
|
86
|
-
* поставляемых темах оба конца — `none`, и `linear-gradient(none, none)` не
|
|
87
|
-
* «плоский цвет», а невалидное значение.
|
|
88
|
-
*/
|
|
89
|
-
var hasGradient = function (backgroundStart, backgroundEnd) { return backgroundStart !== backgroundEnd; };
|
|
90
|
-
/**
|
|
91
|
-
* Граница нужна вторым слоем тени поверх фона, только если её цвет задан и
|
|
92
|
-
* отличается от цвета фона: у `use="text"` они совпадают и полупрозрачны, и
|
|
93
|
-
* второй слой того же цвета удвоил бы альфу.
|
|
94
|
-
*/
|
|
95
|
-
var isBorderAboveBg = function (borderColor, background) {
|
|
96
|
-
return borderColor !== '' && borderColor !== background;
|
|
97
|
-
};
|
|
98
82
|
/** Кнопка запускает действие, сценарий или позволяет перейти на другую страницу. */
|
|
99
83
|
var Button = /** @class */ (function (_super) {
|
|
100
84
|
__extends(Button, _super);
|
|
@@ -112,35 +96,38 @@ var Button = /** @class */ (function (_super) {
|
|
|
112
96
|
var sizeClass = _this.getSizeClassName();
|
|
113
97
|
var isFocused = _this.state.focusedByTab || visuallyFocused;
|
|
114
98
|
var isLink = use === 'link';
|
|
115
|
-
var _h = getButtonArrow(__assign(__assign({}, _this.props), { isFocused: Boolean(isFocused), size: _this.size }), _this.styles, _this.cx), rootClassNameWithArrow = _h[0], arrowNode = _h[1];
|
|
99
|
+
var _h = getButtonArrow(__assign(__assign({}, _this.props), { isFocused: Boolean(isFocused), size: _this.size }), _this.theme, _this.styles, _this.cx), rootClassNameWithArrow = _h[0], arrowNode = _h[1];
|
|
116
100
|
var isUseStateWithoutOutlineInDisabledState = !['default', 'backless', 'outline'].includes(use);
|
|
117
101
|
var isAriaDisabled = ariaDisabled === true || ariaDisabled === 'true';
|
|
118
102
|
var nonInteractive = disabled || loading;
|
|
119
103
|
var _j = _this.getUseStyle(use), style = _j.style, styleActive = _j.styleActive;
|
|
120
|
-
var rootClassName = _this.cx.apply(_this, __spreadArray(
|
|
104
|
+
var rootClassName = _this.cx.apply(_this, __spreadArray([_this.styles.root(_this.theme),
|
|
105
|
+
style,
|
|
106
|
+
sizeClass,
|
|
121
107
|
narrow && _this.styles.narrow(),
|
|
122
108
|
_noPadding && _this.styles.noPadding(),
|
|
123
109
|
_noRightPadding && _this.styles.noRightPadding(),
|
|
124
|
-
rootClassNameWithArrow],
|
|
110
|
+
rootClassNameWithArrow], (nonInteractive || isAriaDisabled
|
|
125
111
|
? [
|
|
126
|
-
_this.styles.disabled(),
|
|
127
|
-
isUseStateWithoutOutlineInDisabledState && _this.styles.disabledWithoutOutline(),
|
|
128
|
-
checked && _this.styles.checkedDisabled(),
|
|
112
|
+
_this.styles.disabled(_this.theme),
|
|
113
|
+
isUseStateWithoutOutlineInDisabledState && _this.styles.disabledWithoutOutline(_this.theme),
|
|
114
|
+
checked && _this.styles.checkedDisabled(_this.theme),
|
|
129
115
|
borderless && _this.styles.borderless(),
|
|
130
|
-
(use === 'backless' || use === 'outline') && _this.styles.backlessDisabled(),
|
|
116
|
+
(use === 'backless' || use === 'outline') && _this.styles.backlessDisabled(_this.theme),
|
|
131
117
|
use === 'text' && _this.styles.textDisabled(),
|
|
132
118
|
globalClasses.disabled,
|
|
133
119
|
]
|
|
134
|
-
:
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
checked &&
|
|
120
|
+
: [
|
|
121
|
+
active && !checked && styleActive,
|
|
122
|
+
isFocused && _this.styles.focus(_this.theme),
|
|
123
|
+
checked && _this.styles.checked(_this.theme),
|
|
124
|
+
checked && isFocused && _this.styles.checkedFocused(_this.theme),
|
|
138
125
|
borderless && !checked && !isFocused && _this.styles.borderless(),
|
|
139
|
-
]
|
|
126
|
+
]), false));
|
|
140
127
|
var rootProps = __assign(__assign({}, rest), { className: rootClassName, style: __assign({ textAlign: align }, corners), onFocus: _this.handleFocus, onBlur: _this.handleBlur, tabIndex: _this.getTabIndex({ disableFocus: disableFocus, disabled: nonInteractive, tabIndex: tabIndex }) });
|
|
141
128
|
var wrapProps = {
|
|
142
129
|
className: _this.cx(globalClasses.root, (_a = {},
|
|
143
|
-
_a[_this.styles.wrap()] = true,
|
|
130
|
+
_a[_this.styles.wrap(_this.theme)] = true,
|
|
144
131
|
_a[_this.getSizeWrapClassName()] = true,
|
|
145
132
|
_a)),
|
|
146
133
|
style: {
|
|
@@ -152,11 +139,11 @@ var Button = /** @class */ (function (_super) {
|
|
|
152
139
|
var outlineNode = null;
|
|
153
140
|
if ((!isFocused || isLink) && !nonInteractive) {
|
|
154
141
|
outlineNode = (React.createElement("div", { className: _this.cx(_this.styles.outlineDefault(), (_b = {},
|
|
155
|
-
_b[_this.styles.outlineWarning()] = warning,
|
|
156
|
-
_b[_this.styles.outlineError()] = error,
|
|
142
|
+
_b[_this.styles.outlineWarning(_this.theme)] = warning,
|
|
143
|
+
_b[_this.styles.outlineError(_this.theme)] = error,
|
|
157
144
|
_b[_this.styles.outlineLink()] = isLink,
|
|
158
|
-
_b[_this.styles.outlineLinkWarning()] = isLink && warning,
|
|
159
|
-
_b[_this.styles.outlineLinkError()] = isLink && error,
|
|
145
|
+
_b[_this.styles.outlineLinkWarning(_this.theme)] = isLink && warning,
|
|
146
|
+
_b[_this.styles.outlineLinkError(_this.theme)] = isLink && error,
|
|
160
147
|
_b)) }));
|
|
161
148
|
}
|
|
162
149
|
var iconProps = {
|
|
@@ -170,16 +157,16 @@ var Button = /** @class */ (function (_super) {
|
|
|
170
157
|
// Force disable all props and features, that cannot be use with Link
|
|
171
158
|
if (isLink) {
|
|
172
159
|
rootProps.className = _this.cx((_c = {},
|
|
173
|
-
_c[_this.styles.root()] = true,
|
|
160
|
+
_c[_this.styles.root(_this.theme)] = true,
|
|
174
161
|
_c[sizeClass] = true,
|
|
175
|
-
_c[_this.styles.link()] = true,
|
|
162
|
+
_c[_this.styles.link(_this.theme)] = true,
|
|
176
163
|
_c[_this.styles.linkLineHeight()] = !isSafari,
|
|
177
164
|
_c[_this.styles.linkLineHeightSafariFallback()] = isSafari,
|
|
178
|
-
_c[_this.styles.linkFocus()] = isFocused,
|
|
179
|
-
_c[_this.styles.linkDisabled()] = nonInteractive,
|
|
165
|
+
_c[_this.styles.linkFocus(_this.theme)] = isFocused,
|
|
166
|
+
_c[_this.styles.linkDisabled(_this.theme)] = nonInteractive,
|
|
180
167
|
_c));
|
|
181
168
|
Object.assign(wrapProps, {
|
|
182
|
-
className: _this.cx(_this.styles.wrap(), _this.styles.wrapLink()),
|
|
169
|
+
className: _this.cx(_this.styles.wrap(_this.theme), _this.styles.wrapLink()),
|
|
183
170
|
style: { width: wrapProps.style.width },
|
|
184
171
|
});
|
|
185
172
|
rootProps.style.textAlign = undefined;
|
|
@@ -268,17 +255,11 @@ var Button = /** @class */ (function (_super) {
|
|
|
268
255
|
};
|
|
269
256
|
Button.prototype.render = function () {
|
|
270
257
|
var _this = this;
|
|
271
|
-
this.styles = getStyles();
|
|
272
|
-
this.activeStyles = getActiveStyles();
|
|
258
|
+
this.styles = getStyles(this.emotion);
|
|
259
|
+
this.activeStyles = getActiveStyles(this.emotion);
|
|
273
260
|
return (React.createElement(ThemeContext.Consumer, null, function (theme) {
|
|
274
261
|
_this.theme = _this.props.theme ? ThemeFactory.create(_this.props.theme, theme) : theme;
|
|
275
|
-
return (
|
|
276
|
-
// Слитую тему надо отдать в контекст, а не только в `this.theme`:
|
|
277
|
-
// блок переменных `--kontur-*` на корне печатает `CommonWrapper`,
|
|
278
|
-
// а он берёт тему из контекста. Без этого стили кнопки читали бы
|
|
279
|
-
// `var(--kontur-*)` внешней темы, а проп `theme` не работал.
|
|
280
|
-
React.createElement(ThemeContext.Provider, { value: _this.theme },
|
|
281
|
-
React.createElement(CommonWrapper, __assign({ rootNodeRef: _this.setRootNode }, _this.props), _this.renderMain)));
|
|
262
|
+
return (React.createElement(CommonWrapper, __assign({ rootNodeRef: _this.setRootNode }, _this.props), _this.renderMain));
|
|
282
263
|
}));
|
|
283
264
|
};
|
|
284
265
|
Button.prototype.getTabIndex = function (_a) {
|
|
@@ -297,113 +278,46 @@ var Button = /** @class */ (function (_super) {
|
|
|
297
278
|
}
|
|
298
279
|
return icon;
|
|
299
280
|
};
|
|
300
|
-
/**
|
|
301
|
-
* Классы use-стиля: базовый плюс варианты, выбранные по значениям темы.
|
|
302
|
-
*
|
|
303
|
-
* Все решения по теме собраны здесь — в стилях их нет вовсе. В стилевом файле
|
|
304
|
-
* значения приходят строками `var(--kontur-*)`, и сравнение сравнивало бы имена
|
|
305
|
-
* переменных, а не цвета; поэтому сравниваются значения объекта темы, а класс
|
|
306
|
-
* с готовым содержимым только выбирается — как для `checked` или `disabled`.
|
|
307
|
-
*
|
|
308
|
-
* Обе ветки рисовать всегда нельзя: `linear-gradient(none, none)` при равных
|
|
309
|
-
* `BgStart` и `BgEnd` — невалидное значение, а второй слой тени полупрозрачным
|
|
310
|
-
* цветом (у `use="text"` цвет границы и фона совпадают) удваивает альфу.
|
|
311
|
-
*
|
|
312
|
-
* Порядок в массиве — порядок объявлений в слитом классе: вариант идёт сразу
|
|
313
|
-
* за базовым классом и перебивает его при равном весе.
|
|
314
|
-
*/
|
|
315
281
|
Button.prototype.getUseStyle = function (use) {
|
|
316
|
-
var
|
|
282
|
+
var style;
|
|
283
|
+
var styleActive;
|
|
284
|
+
var _a = this, styles = _a.styles, activeStyles = _a.activeStyles;
|
|
317
285
|
switch (use) {
|
|
318
286
|
case 'primary':
|
|
319
|
-
case 'accent':
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
styles.accent(),
|
|
324
|
-
hasGradient(t.btnPrimaryBgStart, t.btnPrimaryBgEnd) && styles.accentGradient(),
|
|
325
|
-
hasGradient(t.btnPrimaryHoverBgStart, t.btnPrimaryHoverBgEnd) && styles.accentHoverGradient(),
|
|
326
|
-
isBorderAboveBg(t.btnPrimaryHoverBorderColor, t.btnPrimaryHoverBg) && styles.accentHoverBorderAboveBg(),
|
|
327
|
-
activeBorderAboveBg && styles.accentActiveBorderAboveBg(),
|
|
328
|
-
],
|
|
329
|
-
styleActive: [activeStyles.accent(), activeBorderAboveBg && activeStyles.accentBorderAboveBg()],
|
|
330
|
-
};
|
|
331
|
-
}
|
|
287
|
+
case 'accent':
|
|
288
|
+
style = styles.accent(this.theme);
|
|
289
|
+
styleActive = activeStyles.accent(this.theme);
|
|
290
|
+
break;
|
|
332
291
|
case 'backless':
|
|
333
|
-
case 'outline':
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
styles.outline(),
|
|
338
|
-
isBorderAboveBg(t.btnBacklessHoverBorderColor, t.btnBacklessHoverBg) && styles.outlineHoverBorderAboveBg(),
|
|
339
|
-
activeBorderAboveBg && styles.outlineActiveBorderAboveBg(),
|
|
340
|
-
],
|
|
341
|
-
styleActive: [activeStyles.outline(), activeBorderAboveBg && activeStyles.outlineBorderAboveBg()],
|
|
342
|
-
};
|
|
343
|
-
}
|
|
292
|
+
case 'outline':
|
|
293
|
+
style = styles.outline(this.theme);
|
|
294
|
+
styleActive = activeStyles.outline(this.theme);
|
|
295
|
+
break;
|
|
344
296
|
case 'fill':
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
var activeBorderAboveBg = isBorderAboveBg(t.btnDangerActiveBorderColor, t.btnDangerActiveBg);
|
|
361
|
-
return {
|
|
362
|
-
style: [
|
|
363
|
-
styles.danger(),
|
|
364
|
-
hasGradient(t.btnDangerBgStart, t.btnDangerBgEnd) && styles.dangerGradient(),
|
|
365
|
-
hasGradient(t.btnDangerHoverBgStart, t.btnDangerHoverBgEnd) && styles.dangerHoverGradient(),
|
|
366
|
-
isBorderAboveBg(t.btnDangerHoverBorderColor, t.btnDangerHoverBg) && styles.dangerHoverBorderAboveBg(),
|
|
367
|
-
activeBorderAboveBg && styles.dangerActiveBorderAboveBg(),
|
|
368
|
-
],
|
|
369
|
-
styleActive: [activeStyles.danger(), activeBorderAboveBg && activeStyles.dangerBorderAboveBg()],
|
|
370
|
-
};
|
|
371
|
-
}
|
|
372
|
-
case 'pay': {
|
|
373
|
-
var activeBorderAboveBg = isBorderAboveBg(t.btnPayActiveBorderColor, t.btnPayActiveBg);
|
|
374
|
-
return {
|
|
375
|
-
style: [
|
|
376
|
-
styles.pay(),
|
|
377
|
-
hasGradient(t.btnPayBgStart, t.btnPayBgEnd) && styles.payGradient(),
|
|
378
|
-
hasGradient(t.btnPayHoverBgStart, t.btnPayHoverBgEnd) && styles.payHoverGradient(),
|
|
379
|
-
isBorderAboveBg(t.btnPayHoverBorderColor, t.btnPayHoverBg) && styles.payHoverBorderAboveBg(),
|
|
380
|
-
activeBorderAboveBg && styles.payActiveBorderAboveBg(),
|
|
381
|
-
],
|
|
382
|
-
styleActive: [activeStyles.pay(), activeBorderAboveBg && activeStyles.payBorderAboveBg()],
|
|
383
|
-
};
|
|
384
|
-
}
|
|
297
|
+
style = styles.fill(this.theme);
|
|
298
|
+
styleActive = activeStyles.fill(this.theme);
|
|
299
|
+
break;
|
|
300
|
+
case 'success':
|
|
301
|
+
style = styles.success(this.theme);
|
|
302
|
+
styleActive = activeStyles.success(this.theme);
|
|
303
|
+
break;
|
|
304
|
+
case 'danger':
|
|
305
|
+
style = styles.danger(this.theme);
|
|
306
|
+
styleActive = activeStyles.danger(this.theme);
|
|
307
|
+
break;
|
|
308
|
+
case 'pay':
|
|
309
|
+
style = styles.pay(this.theme);
|
|
310
|
+
styleActive = activeStyles.pay(this.theme);
|
|
311
|
+
break;
|
|
385
312
|
case 'text':
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
};
|
|
393
|
-
default: {
|
|
394
|
-
var activeBorderAboveBg = isBorderAboveBg(t.btnDefaultActiveBorderColor, t.btnDefaultActiveBg);
|
|
395
|
-
return {
|
|
396
|
-
style: [
|
|
397
|
-
styles.default(),
|
|
398
|
-
hasGradient(t.btnDefaultBgStart, t.btnDefaultBgEnd) && styles.defaultGradient(),
|
|
399
|
-
hasGradient(t.btnDefaultHoverBgStart, t.btnDefaultHoverBgEnd) && styles.defaultHoverGradient(),
|
|
400
|
-
isBorderAboveBg(t.btnDefaultHoverBorderColor, t.btnDefaultHoverBg) && styles.defaultHoverBorderAboveBg(),
|
|
401
|
-
activeBorderAboveBg && styles.defaultActiveBorderAboveBg(),
|
|
402
|
-
],
|
|
403
|
-
styleActive: [activeStyles.default(), activeBorderAboveBg && activeStyles.defaultBorderAboveBg()],
|
|
404
|
-
};
|
|
405
|
-
}
|
|
313
|
+
style = styles.text(this.theme);
|
|
314
|
+
styleActive = activeStyles.text(this.theme);
|
|
315
|
+
break;
|
|
316
|
+
default:
|
|
317
|
+
style = styles.default(this.theme);
|
|
318
|
+
styleActive = activeStyles.default(this.theme);
|
|
406
319
|
}
|
|
320
|
+
return { style: style, styleActive: styleActive };
|
|
407
321
|
};
|
|
408
322
|
Button.prototype.getSizeClassName = function () {
|
|
409
323
|
var _a, _b, _c;
|
|
@@ -411,40 +325,40 @@ var Button = /** @class */ (function (_super) {
|
|
|
411
325
|
switch (this.size) {
|
|
412
326
|
case 'large': {
|
|
413
327
|
var commonClasses = (_a = {},
|
|
414
|
-
_a[this.styles.sizeLargeWithIcon()] = !!icon,
|
|
415
|
-
_a[this.styles.sizeLargeWithRightIcon()] = !!rightIcon,
|
|
416
|
-
_a[this.styles.sizeLargeWithIconWithoutText()] = (!!icon || !!rightIcon) && !children,
|
|
328
|
+
_a[this.styles.sizeLargeWithIcon(this.theme)] = !!icon,
|
|
329
|
+
_a[this.styles.sizeLargeWithRightIcon(this.theme)] = !!rightIcon,
|
|
330
|
+
_a[this.styles.sizeLargeWithIconWithoutText(this.theme)] = (!!icon || !!rightIcon) && !children,
|
|
417
331
|
_a);
|
|
418
|
-
return this.cx(this.styles.sizeLarge(), commonClasses);
|
|
332
|
+
return this.cx(this.styles.sizeLarge(this.theme), commonClasses);
|
|
419
333
|
}
|
|
420
334
|
case 'medium': {
|
|
421
335
|
var commonClasses = (_b = {},
|
|
422
|
-
_b[this.styles.sizeMediumWithIcon()] = !!icon,
|
|
423
|
-
_b[this.styles.sizeMediumWithRightIcon()] = !!rightIcon,
|
|
424
|
-
_b[this.styles.sizeMediumWithIconWithoutText()] = (!!icon || !!rightIcon) && !children,
|
|
336
|
+
_b[this.styles.sizeMediumWithIcon(this.theme)] = !!icon,
|
|
337
|
+
_b[this.styles.sizeMediumWithRightIcon(this.theme)] = !!rightIcon,
|
|
338
|
+
_b[this.styles.sizeMediumWithIconWithoutText(this.theme)] = (!!icon || !!rightIcon) && !children,
|
|
425
339
|
_b);
|
|
426
|
-
return this.cx(this.styles.sizeMedium(), commonClasses);
|
|
340
|
+
return this.cx(this.styles.sizeMedium(this.theme), commonClasses);
|
|
427
341
|
}
|
|
428
342
|
case 'small':
|
|
429
343
|
default: {
|
|
430
344
|
var commonClasses = (_c = {},
|
|
431
|
-
_c[this.styles.sizeSmallWithIcon()] = !!icon,
|
|
432
|
-
_c[this.styles.sizeSmallWithRightIcon()] = !!rightIcon,
|
|
433
|
-
_c[this.styles.sizeSmallWithIconWithoutText()] = (!!icon || !!rightIcon) && !children,
|
|
345
|
+
_c[this.styles.sizeSmallWithIcon(this.theme)] = !!icon,
|
|
346
|
+
_c[this.styles.sizeSmallWithRightIcon(this.theme)] = !!rightIcon,
|
|
347
|
+
_c[this.styles.sizeSmallWithIconWithoutText(this.theme)] = (!!icon || !!rightIcon) && !children,
|
|
434
348
|
_c);
|
|
435
|
-
return this.cx(this.styles.sizeSmall(), commonClasses);
|
|
349
|
+
return this.cx(this.styles.sizeSmall(this.theme), commonClasses);
|
|
436
350
|
}
|
|
437
351
|
}
|
|
438
352
|
};
|
|
439
353
|
Button.prototype.getSizeWrapClassName = function () {
|
|
440
354
|
switch (this.size) {
|
|
441
355
|
case 'large':
|
|
442
|
-
return this.styles.wrapLarge();
|
|
356
|
+
return this.styles.wrapLarge(this.theme);
|
|
443
357
|
case 'medium':
|
|
444
|
-
return this.styles.wrapMedium();
|
|
358
|
+
return this.styles.wrapMedium(this.theme);
|
|
445
359
|
case 'small':
|
|
446
360
|
default:
|
|
447
|
-
return this.styles.wrapSmall();
|
|
361
|
+
return this.styles.wrapSmall(this.theme);
|
|
448
362
|
}
|
|
449
363
|
};
|
|
450
364
|
var Button_1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["Button.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { HTMLAttributes, JSX } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { IconProps } from '../../internal/icons2022/BaseIcon.js';\nimport { isSafari } from '../../lib/client.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { KeyListener } from '../../lib/events/keyListener.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { ClassNames } from '../../lib/theming/Emotion.js';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link.js';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isKonturIcon } from '../../lib/utils.js';\nimport { Link } from '../Link/index.js';\nimport { getActiveStyles, getStyles, globalClasses } from './Button.styles.js';\nimport { useButtonArrow as getButtonArrow } from './ButtonArrow.js';\nimport { ButtonIcon, getButtonIconSizes } from './ButtonIcon.js';\nimport type { ButtonIconProps } from './ButtonIcon.js';\nimport { getInnerLinkTheme } from './getInnerLinkTheme.js';\nimport { LoadingButtonIcon } from './LoadingButtonIcon.js';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse =\n | 'default'\n | 'outline'\n | 'fill'\n | 'text'\n | 'accent'\n | 'danger'\n | 'success'\n | 'pay'\n /** @deprecated Используйте компонент <Link component=\"button\" /> */\n | 'link'\n /** @deprecated Используйте use=\"outline\" */\n | 'backless'\n /** @deprecated Используйте use=\"accent\" */\n | 'primary';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * @ignore\n * @deprecated Проп будет удален вместе с use=\"default\" в 7.0\n */\n _noWarningForUseDefault?: boolean;\n\n /** Применяет к кнопке стили псевдокласса `:active`. */\n active?: boolean;\n\n /** Выравнивание текста в кнопке. */\n align?: React.CSSProperties['textAlign'];\n\n /** Преобразует обычную кнопку в кнопку со стрелкой. */\n arrow?: boolean | 'left';\n\n /** Устанавливает фокус на кнопке после окончания загрузки страницы.*/\n autoFocus?: boolean;\n\n /** Убирает обводку у кнопки.\n *\n * **Не рекомендуем использовать, противоречит дизайн-требованиям.\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0.\n *\n * Альтернативный вариант использования — use=\"fill\" или переменную темы `btnBorderWidth` */\n borderless?: boolean;\n\n /** @ignore */\n checked?: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Блокирует кнопку и перекрашивает в серый. */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Ошибка\".\n *\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0. */\n error?: boolean;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от текста кнопки. */\n rightIcon?: React.ReactElement;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Сужает кнопку.\n *\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0.\n *\n * Альтернативный вариант использования — через переменные темы `btnPaddingXSmall`, `btnPaddingXMedium`, `btnPaddingXLarge` */\n narrow?: boolean;\n\n /** Размер кнопки. */\n size?: SizeProp;\n\n /** HTML-атрибут `type`. */\n type?: ButtonType;\n\n /** HTML-атрибут `title`. */\n title?: string;\n\n /** Стиль кнопки.\n * - accent — кнопка основного действия\n * - outline — кнопка второстепенного действия с границами без фона\n * - fill — кнопка второстепенного действия с фоном без границ\n * - text — кнопка второстепенного действия без фона и обводки\n * - danger — кнопка деструктивного действия\n * - success — кнопка позитивного действия\n * - pay — кнопка, связанная с оплатой\n *\n * ⚠️ Deprecated-стили, будут удалены в 7.0:\n * - use=\"primary\" → use=\"accent\"\n * - use=\"backless\" → use=\"outline\"\n * - use=\"link\" → `<Link component=\"button\">`\n * - use=\"default\" → use=\"outline\" или use=\"fill\"\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Предупреждение\".\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0. */\n warning?: boolean;\n\n /** Ширина кнопки. */\n width?: number | string;\n\n /** Объект с переменными темы. */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\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<ButtonLinkAllowedValues>, 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n/**\n * Фон рисуется градиентом, только если концы градиента отличаются.\n *\n * Сравниваются значения объекта темы, а не подстановки `var(--kontur-*)`: в\n * поставляемых темах оба конца — `none`, и `linear-gradient(none, none)` не\n * «плоский цвет», а невалидное значение.\n */\nconst hasGradient = (backgroundStart: string, backgroundEnd: string): boolean => backgroundStart !== backgroundEnd;\n\n/**\n * Граница нужна вторым слоем тени поверх фона, только если её цвет задан и\n * отличается от цвета фона: у `use=\"text\"` они совпадают и полупрозрачны, и\n * второй слой того же цвета удвоил бы альфу.\n */\nconst isBorderAboveBg = (borderColor: string, background: string): boolean =>\n borderColor !== '' && borderColor !== background;\n\n/** Кнопка запускает действие, сценарий или позволяет перейти на другую страницу. */\n@withRenderEnvironment\n@withSize\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\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: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private globalObject!: GlobalObject;\n private cx!: ClassNames;\n private styles!: ReturnType<typeof getStyles>;\n private activeStyles!: ReturnType<typeof getActiveStyles>;\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n if (this.props.autoFocus) {\n this.keyListener.isTabPressed = true;\n this.focus();\n }\n warning(\n this.props.use !== 'link',\n '[Button]: `use=\"link\"` has been deprecated. Please, use `<Link component=\"button\" />` instead.',\n );\n warning(\n this.props.use !== 'primary',\n '[Button]: `use=\"primary\"` has been deprecated. Please, use `use=\"accent\"` instead.',\n );\n warning(\n this.props.use !== 'backless',\n '[Button]: `use=\"backless\"` has been deprecated. Please, use `use=\"outline\"` instead.',\n );\n if (!this.props._noWarningForUseDefault) {\n warning(\n this.props.use !== 'default',\n '[Button]: `use=\"default\"` has been deprecated. Please, use `use=\"outline\"` or `use=\"fill\"` instead.',\n );\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(): void {\n this.node?.focus();\n }\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur(): void {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n this.styles = getStyles();\n this.activeStyles = getActiveStyles();\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n // Слитую тему надо отдать в контекст, а не только в `this.theme`:\n // блок переменных `--kontur-*` на корне печатает `CommonWrapper`,\n // а он берёт тему из контекста. Без этого стили кнопки читали бы\n // `var(--kontur-*)` внешней темы, а проп `theme` не работал.\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\n private getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n _noWarningForUseDefault,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n theme,\n ...rest\n } = props;\n const {\n use = isThemeGTE(this.theme, '6.1') ? 'outline' : 'default',\n component,\n children,\n 'aria-disabled': ariaDisabled,\n } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n const [rootClassNameWithArrow, arrowNode] = getButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused), size: this.size },\n this.styles,\n this.cx,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless', 'outline'].includes(use);\n\n const isAriaDisabled = ariaDisabled === true || ariaDisabled === 'true';\n const nonInteractive = disabled || loading;\n const { style, styleActive } = this.getUseStyle(use);\n\n const rootClassName = this.cx(\n this.styles.root(),\n ...style,\n sizeClass,\n narrow && this.styles.narrow(),\n _noPadding && this.styles.noPadding(),\n _noRightPadding && this.styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(nonInteractive || isAriaDisabled\n ? [\n this.styles.disabled(),\n isUseStateWithoutOutlineInDisabledState && this.styles.disabledWithoutOutline(),\n checked && this.styles.checkedDisabled(),\n borderless && this.styles.borderless(),\n (use === 'backless' || use === 'outline') && this.styles.backlessDisabled(),\n use === 'text' && this.styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n ...(active && !checked ? styleActive : []),\n isFocused && this.styles.focus(),\n checked && this.styles.checked(),\n checked && isFocused && this.styles.checkedFocused(),\n borderless && !checked && !isFocused && this.styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: nonInteractive, tabIndex }),\n };\n\n const wrapProps = {\n className: this.cx(globalClasses.root, {\n [this.styles.wrap()]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const buttonOnlyProps = component === 'button' ? { disabled: nonInteractive } : {};\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !nonInteractive) {\n outlineNode = (\n <div\n className={this.cx(this.styles.outlineDefault(), {\n [this.styles.outlineWarning()]: warning,\n [this.styles.outlineError()]: error,\n [this.styles.outlineLink()]: isLink,\n [this.styles.outlineLinkWarning()]: isLink && warning,\n [this.styles.outlineLinkError()]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.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.cx({\n [this.styles.root()]: true,\n [sizeClass]: true,\n [this.styles.link()]: true,\n [this.styles.linkLineHeight()]: !isSafari,\n [this.styles.linkLineHeightSafariFallback()]: isSafari,\n [this.styles.linkFocus()]: isFocused,\n [this.styles.linkDisabled()]: nonInteractive,\n });\n Object.assign(wrapProps, {\n className: this.cx(this.styles.wrap(), this.styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={this.size} />;\n\n let captionNode = (\n <div\n className={this.cx(this.styles.caption(), globalClasses.caption, {\n [this.styles.captionLink()]: isLink,\n [this.styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={this.cx(globalClasses.text, {\n [this.styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps} {...buttonOnlyProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon?.props && isKonturIcon(icon)) {\n const iconProps = icon.props as IconProps;\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: iconProps.size ?? sizes[this.size] } as IconProps);\n }\n\n return icon;\n }\n\n /**\n * Классы use-стиля: базовый плюс варианты, выбранные по значениям темы.\n *\n * Все решения по теме собраны здесь — в стилях их нет вовсе. В стилевом файле\n * значения приходят строками `var(--kontur-*)`, и сравнение сравнивало бы имена\n * переменных, а не цвета; поэтому сравниваются значения объекта темы, а класс\n * с готовым содержимым только выбирается — как для `checked` или `disabled`.\n *\n * Обе ветки рисовать всегда нельзя: `linear-gradient(none, none)` при равных\n * `BgStart` и `BgEnd` — невалидное значение, а второй слой тени полупрозрачным\n * цветом (у `use=\"text\"` цвет границы и фона совпадают) удваивает альфу.\n *\n * Порядок в массиве — порядок объявлений в слитом классе: вариант идёт сразу\n * за базовым классом и перебивает его при равном весе.\n */\n private getUseStyle(use: ButtonUse) {\n const { styles, activeStyles, theme: t } = this;\n\n switch (use) {\n case 'primary':\n case 'accent': {\n const activeBorderAboveBg = isBorderAboveBg(t.btnPrimaryActiveBorderColor, t.btnPrimaryActiveBg);\n return {\n style: [\n styles.accent(),\n hasGradient(t.btnPrimaryBgStart, t.btnPrimaryBgEnd) && styles.accentGradient(),\n hasGradient(t.btnPrimaryHoverBgStart, t.btnPrimaryHoverBgEnd) && styles.accentHoverGradient(),\n isBorderAboveBg(t.btnPrimaryHoverBorderColor, t.btnPrimaryHoverBg) && styles.accentHoverBorderAboveBg(),\n activeBorderAboveBg && styles.accentActiveBorderAboveBg(),\n ],\n styleActive: [activeStyles.accent(), activeBorderAboveBg && activeStyles.accentBorderAboveBg()],\n };\n }\n case 'backless':\n case 'outline': {\n const activeBorderAboveBg = isBorderAboveBg(t.btnBacklessActiveBorderColor, t.btnBacklessActiveBg);\n return {\n style: [\n styles.outline(),\n isBorderAboveBg(t.btnBacklessHoverBorderColor, t.btnBacklessHoverBg) && styles.outlineHoverBorderAboveBg(),\n activeBorderAboveBg && styles.outlineActiveBorderAboveBg(),\n ],\n styleActive: [activeStyles.outline(), activeBorderAboveBg && activeStyles.outlineBorderAboveBg()],\n };\n }\n case 'fill':\n return { style: [styles.fill()], styleActive: [activeStyles.fill()] };\n case 'success': {\n const activeBorderAboveBg = isBorderAboveBg(t.btnSuccessActiveBorderColor, t.btnSuccessActiveBg);\n return {\n style: [\n styles.success(),\n hasGradient(t.btnSuccessBgStart, t.btnSuccessBgEnd) && styles.successGradient(),\n hasGradient(t.btnSuccessHoverBgStart, t.btnSuccessHoverBgEnd) && styles.successHoverGradient(),\n isBorderAboveBg(t.btnSuccessHoverBorderColor, t.btnSuccessHoverBg) && styles.successHoverBorderAboveBg(),\n activeBorderAboveBg && styles.successActiveBorderAboveBg(),\n ],\n styleActive: [activeStyles.success(), activeBorderAboveBg && activeStyles.successBorderAboveBg()],\n };\n }\n case 'danger': {\n const activeBorderAboveBg = isBorderAboveBg(t.btnDangerActiveBorderColor, t.btnDangerActiveBg);\n return {\n style: [\n styles.danger(),\n hasGradient(t.btnDangerBgStart, t.btnDangerBgEnd) && styles.dangerGradient(),\n hasGradient(t.btnDangerHoverBgStart, t.btnDangerHoverBgEnd) && styles.dangerHoverGradient(),\n isBorderAboveBg(t.btnDangerHoverBorderColor, t.btnDangerHoverBg) && styles.dangerHoverBorderAboveBg(),\n activeBorderAboveBg && styles.dangerActiveBorderAboveBg(),\n ],\n styleActive: [activeStyles.danger(), activeBorderAboveBg && activeStyles.dangerBorderAboveBg()],\n };\n }\n case 'pay': {\n const activeBorderAboveBg = isBorderAboveBg(t.btnPayActiveBorderColor, t.btnPayActiveBg);\n return {\n style: [\n styles.pay(),\n hasGradient(t.btnPayBgStart, t.btnPayBgEnd) && styles.payGradient(),\n hasGradient(t.btnPayHoverBgStart, t.btnPayHoverBgEnd) && styles.payHoverGradient(),\n isBorderAboveBg(t.btnPayHoverBorderColor, t.btnPayHoverBg) && styles.payHoverBorderAboveBg(),\n activeBorderAboveBg && styles.payActiveBorderAboveBg(),\n ],\n styleActive: [activeStyles.pay(), activeBorderAboveBg && activeStyles.payBorderAboveBg()],\n };\n }\n case 'text':\n return {\n style: [\n styles.text(),\n isBorderAboveBg(t.btnTextHoverBorderColor, t.btnTextHoverBg) && styles.textHoverBorderAboveBg(),\n ],\n styleActive: [activeStyles.text()],\n };\n default: {\n const activeBorderAboveBg = isBorderAboveBg(t.btnDefaultActiveBorderColor, t.btnDefaultActiveBg);\n return {\n style: [\n styles.default(),\n hasGradient(t.btnDefaultBgStart, t.btnDefaultBgEnd) && styles.defaultGradient(),\n hasGradient(t.btnDefaultHoverBgStart, t.btnDefaultHoverBgEnd) && styles.defaultHoverGradient(),\n isBorderAboveBg(t.btnDefaultHoverBorderColor, t.btnDefaultHoverBg) && styles.defaultHoverBorderAboveBg(),\n activeBorderAboveBg && styles.defaultActiveBorderAboveBg(),\n ],\n styleActive: [activeStyles.default(), activeBorderAboveBg && activeStyles.defaultBorderAboveBg()],\n };\n }\n }\n }\n\n private getSizeClassName() {\n const { icon, rightIcon, children } = this.getProps();\n\n switch (this.size) {\n case 'large': {\n const commonClasses = {\n [this.styles.sizeLargeWithIcon()]: !!icon,\n [this.styles.sizeLargeWithRightIcon()]: !!rightIcon,\n [this.styles.sizeLargeWithIconWithoutText()]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeLarge(), commonClasses);\n }\n case 'medium': {\n const commonClasses = {\n [this.styles.sizeMediumWithIcon()]: !!icon,\n [this.styles.sizeMediumWithRightIcon()]: !!rightIcon,\n [this.styles.sizeMediumWithIconWithoutText()]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeMedium(), commonClasses);\n }\n case 'small':\n default: {\n const commonClasses = {\n [this.styles.sizeSmallWithIcon()]: !!icon,\n [this.styles.sizeSmallWithRightIcon()]: !!rightIcon,\n [this.styles.sizeSmallWithIconWithoutText()]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeSmall(), commonClasses);\n }\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.wrapLarge();\n case 'medium':\n return this.styles.wrapMedium();\n case 'small':\n default:\n return this.styles.wrapSmall();\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\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 this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\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: HTMLElement | null) => {\n this.node = node;\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["Button.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { HTMLAttributes, JSX } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { IconProps } from '../../internal/icons2022/BaseIcon.js';\nimport { isSafari } from '../../lib/client.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { KeyListener } from '../../lib/events/keyListener.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link.js';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isKonturIcon } from '../../lib/utils.js';\nimport { Link } from '../Link/index.js';\nimport { getActiveStyles, getStyles, globalClasses } from './Button.styles.js';\nimport { useButtonArrow as getButtonArrow } from './ButtonArrow.js';\nimport { ButtonIcon, getButtonIconSizes } from './ButtonIcon.js';\nimport type { ButtonIconProps } from './ButtonIcon.js';\nimport { getInnerLinkTheme } from './getInnerLinkTheme.js';\nimport { LoadingButtonIcon } from './LoadingButtonIcon.js';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse =\n | 'default'\n | 'outline'\n | 'fill'\n | 'text'\n | 'accent'\n | 'danger'\n | 'success'\n | 'pay'\n /** @deprecated Используйте компонент <Link component=\"button\" /> */\n | 'link'\n /** @deprecated Используйте use=\"outline\" */\n | 'backless'\n /** @deprecated Используйте use=\"accent\" */\n | 'primary';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * @ignore\n * @deprecated Проп будет удален вместе с use=\"default\" в 7.0\n */\n _noWarningForUseDefault?: boolean;\n\n /** Применяет к кнопке стили псевдокласса `:active`. */\n active?: boolean;\n\n /** Выравнивание текста в кнопке. */\n align?: React.CSSProperties['textAlign'];\n\n /** Преобразует обычную кнопку в кнопку со стрелкой. */\n arrow?: boolean | 'left';\n\n /** Устанавливает фокус на кнопке после окончания загрузки страницы.*/\n autoFocus?: boolean;\n\n /** Убирает обводку у кнопки.\n *\n * **Не рекомендуем использовать, противоречит дизайн-требованиям.\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0.\n *\n * Альтернативный вариант использования — use=\"fill\" или переменную темы `btnBorderWidth` */\n borderless?: boolean;\n\n /** @ignore */\n checked?: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Блокирует кнопку и перекрашивает в серый. */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Ошибка\".\n *\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0. */\n error?: boolean;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от текста кнопки. */\n rightIcon?: React.ReactElement;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Сужает кнопку.\n *\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0.\n *\n * Альтернативный вариант использования — через переменные темы `btnPaddingXSmall`, `btnPaddingXMedium`, `btnPaddingXLarge` */\n narrow?: boolean;\n\n /** Размер кнопки. */\n size?: SizeProp;\n\n /** HTML-атрибут `type`. */\n type?: ButtonType;\n\n /** HTML-атрибут `title`. */\n title?: string;\n\n /** Стиль кнопки.\n * - accent — кнопка основного действия\n * - outline — кнопка второстепенного действия с границами без фона\n * - fill — кнопка второстепенного действия с фоном без границ\n * - text — кнопка второстепенного действия без фона и обводки\n * - danger — кнопка деструктивного действия\n * - success — кнопка позитивного действия\n * - pay — кнопка, связанная с оплатой\n *\n * ⚠️ Deprecated-стили, будут удалены в 7.0:\n * - use=\"primary\" → use=\"accent\"\n * - use=\"backless\" → use=\"outline\"\n * - use=\"link\" → `<Link component=\"button\">`\n * - use=\"default\" → use=\"outline\" или use=\"fill\"\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Предупреждение\".\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0. */\n warning?: boolean;\n\n /** Ширина кнопки. */\n width?: number | string;\n\n /** Объект с переменными темы. */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\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<ButtonLinkAllowedValues>, 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n/** Кнопка запускает действие, сценарий или позволяет перейти на другую страницу. */\n@withRenderEnvironment\n@withSize\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\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: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private activeStyles!: ReturnType<typeof getActiveStyles>;\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n if (this.props.autoFocus) {\n this.keyListener.isTabPressed = true;\n this.focus();\n }\n warning(\n this.props.use !== 'link',\n '[Button]: `use=\"link\"` has been deprecated. Please, use `<Link component=\"button\" />` instead.',\n );\n warning(\n this.props.use !== 'primary',\n '[Button]: `use=\"primary\"` has been deprecated. Please, use `use=\"accent\"` instead.',\n );\n warning(\n this.props.use !== 'backless',\n '[Button]: `use=\"backless\"` has been deprecated. Please, use `use=\"outline\"` instead.',\n );\n if (!this.props._noWarningForUseDefault) {\n warning(\n this.props.use !== 'default',\n '[Button]: `use=\"default\"` has been deprecated. Please, use `use=\"outline\"` or `use=\"fill\"` instead.',\n );\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(): void {\n this.node?.focus();\n }\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur(): void {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n this.activeStyles = getActiveStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n _noWarningForUseDefault,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n theme,\n ...rest\n } = props;\n const {\n use = isThemeGTE(this.theme, '6.1') ? 'outline' : 'default',\n component,\n children,\n 'aria-disabled': ariaDisabled,\n } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n const [rootClassNameWithArrow, arrowNode] = getButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused), size: this.size },\n this.theme,\n this.styles,\n this.cx,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless', 'outline'].includes(use);\n\n const isAriaDisabled = ariaDisabled === true || ariaDisabled === 'true';\n const nonInteractive = disabled || loading;\n const { style, styleActive } = this.getUseStyle(use);\n\n const rootClassName = this.cx(\n this.styles.root(this.theme),\n style,\n sizeClass,\n narrow && this.styles.narrow(),\n _noPadding && this.styles.noPadding(),\n _noRightPadding && this.styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(nonInteractive || isAriaDisabled\n ? [\n this.styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && this.styles.disabledWithoutOutline(this.theme),\n checked && this.styles.checkedDisabled(this.theme),\n borderless && this.styles.borderless(),\n (use === 'backless' || use === 'outline') && this.styles.backlessDisabled(this.theme),\n use === 'text' && this.styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && styleActive,\n isFocused && this.styles.focus(this.theme),\n checked && this.styles.checked(this.theme),\n checked && isFocused && this.styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && this.styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: nonInteractive, tabIndex }),\n };\n\n const wrapProps = {\n className: this.cx(globalClasses.root, {\n [this.styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const buttonOnlyProps = component === 'button' ? { disabled: nonInteractive } : {};\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !nonInteractive) {\n outlineNode = (\n <div\n className={this.cx(this.styles.outlineDefault(), {\n [this.styles.outlineWarning(this.theme)]: warning,\n [this.styles.outlineError(this.theme)]: error,\n [this.styles.outlineLink()]: isLink,\n [this.styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [this.styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.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.cx({\n [this.styles.root(this.theme)]: true,\n [sizeClass]: true,\n [this.styles.link(this.theme)]: true,\n [this.styles.linkLineHeight()]: !isSafari,\n [this.styles.linkLineHeightSafariFallback()]: isSafari,\n [this.styles.linkFocus(this.theme)]: isFocused,\n [this.styles.linkDisabled(this.theme)]: nonInteractive,\n });\n Object.assign(wrapProps, {\n className: this.cx(this.styles.wrap(this.theme), this.styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={this.size} />;\n\n let captionNode = (\n <div\n className={this.cx(this.styles.caption(), globalClasses.caption, {\n [this.styles.captionLink()]: isLink,\n [this.styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={this.cx(globalClasses.text, {\n [this.styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps} {...buttonOnlyProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon?.props && isKonturIcon(icon)) {\n const iconProps = icon.props as IconProps;\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: iconProps.size ?? sizes[this.size] } as IconProps);\n }\n\n return icon;\n }\n\n private getUseStyle(use: ButtonUse) {\n let style;\n let styleActive;\n const { styles, activeStyles } = this;\n\n switch (use) {\n case 'primary':\n case 'accent':\n style = styles.accent(this.theme);\n styleActive = activeStyles.accent(this.theme);\n break;\n case 'backless':\n case 'outline':\n style = styles.outline(this.theme);\n styleActive = activeStyles.outline(this.theme);\n break;\n case 'fill':\n style = styles.fill(this.theme);\n styleActive = activeStyles.fill(this.theme);\n break;\n case 'success':\n style = styles.success(this.theme);\n styleActive = activeStyles.success(this.theme);\n break;\n case 'danger':\n style = styles.danger(this.theme);\n styleActive = activeStyles.danger(this.theme);\n break;\n case 'pay':\n style = styles.pay(this.theme);\n styleActive = activeStyles.pay(this.theme);\n break;\n case 'text':\n style = styles.text(this.theme);\n styleActive = activeStyles.text(this.theme);\n break;\n default:\n style = styles.default(this.theme);\n styleActive = activeStyles.default(this.theme);\n }\n\n return { style, styleActive };\n }\n\n private getSizeClassName() {\n const { icon, rightIcon, children } = this.getProps();\n\n switch (this.size) {\n case 'large': {\n const commonClasses = {\n [this.styles.sizeLargeWithIcon(this.theme)]: !!icon,\n [this.styles.sizeLargeWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeLargeWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeLarge(this.theme), commonClasses);\n }\n case 'medium': {\n const commonClasses = {\n [this.styles.sizeMediumWithIcon(this.theme)]: !!icon,\n [this.styles.sizeMediumWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeMediumWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeMedium(this.theme), commonClasses);\n }\n case 'small':\n default: {\n const commonClasses = {\n [this.styles.sizeSmallWithIcon(this.theme)]: !!icon,\n [this.styles.sizeSmallWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeSmallWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeSmall(this.theme), commonClasses);\n }\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.wrapLarge(this.theme);\n case 'medium':\n return this.styles.wrapMedium(this.theme);\n case 'small':\n default:\n return this.styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\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 this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\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: HTMLElement | null) => {\n this.node = node;\n };\n}\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const buttonUseMixin: (btnBackground: string, btnBackgroundStart: string, btnBackgroundEnd: string, color: string, borderColor: string, borderWidth: string) => string;
|
|
2
|
+
export declare const buttonHoverMixin: (btnBackground: string, btnBackgroundStart: string, btnBackgroundEnd: string, color: string, borderColor: string, borderWidth: string) => string;
|
|
3
|
+
export declare const buttonActiveMixin: (btnBackground: string, btnShadow: string, borderColor: string, borderWidth: string) => string;
|
|
4
|
+
export declare const buttonSizeMixin: (fontSize: string, lineHeight: string, paddingX: string, paddingY: string) => string;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { globalClasses } from './Button.classes.js';
|
|
2
|
+
var getBtnPadding = function (paddingY, paddingX) {
|
|
3
|
+
return "".concat(paddingY, " ").concat(paddingX, " ").concat(paddingY);
|
|
4
|
+
};
|
|
5
|
+
export var buttonUseMixin = function (btnBackground, btnBackgroundStart, btnBackgroundEnd, color, borderColor, borderWidth) {
|
|
6
|
+
var hasGradient = btnBackgroundStart !== btnBackgroundEnd;
|
|
7
|
+
return "\n background-color: ".concat(hasGradient ? "initial" : btnBackground, ";\n background-image: ").concat(hasGradient ? "linear-gradient(".concat(btnBackgroundStart, ", ").concat(btnBackgroundEnd, ")") : "none", ";\n color: ").concat(color, ";\n box-shadow: 0 0 0 ").concat(borderWidth, " ").concat(borderColor, ";\n\n :enabled:hover,\n :enabled {\n .").concat(globalClasses.arrow, " svg {\n color: ").concat(color, ";\n }\n }\n ");
|
|
8
|
+
};
|
|
9
|
+
export var buttonHoverMixin = function (btnBackground, btnBackgroundStart, btnBackgroundEnd, color, borderColor, borderWidth) {
|
|
10
|
+
var hasGradient = btnBackgroundStart !== btnBackgroundEnd;
|
|
11
|
+
var isBorderAboveBg = borderColor !== '' && borderColor !== btnBackground;
|
|
12
|
+
return "\n background-color: ".concat(hasGradient ? "initial" : btnBackground, ";\n background-image: ").concat(hasGradient ? "linear-gradient(".concat(btnBackgroundStart, ", ").concat(btnBackgroundEnd, ")") : "none", ";\n box-shadow: 0 0 0 ").concat(borderWidth, " ").concat(borderColor).concat(isBorderAboveBg ? ", 0 0 0 ".concat(borderWidth, " ").concat(btnBackground) : '', ";\n color: ").concat(color, ";\n ");
|
|
13
|
+
};
|
|
14
|
+
export var buttonActiveMixin = function (btnBackground, btnShadow, borderColor, borderWidth) {
|
|
15
|
+
var isBorderAboveBg = borderColor !== '' && borderColor !== btnBackground;
|
|
16
|
+
return "\n &,\n &:hover {\n background-image: none !important; // override :hover styles\n background-color: ".concat(btnBackground, " !important; // override :hover styles\n box-shadow: 0 0 0 ").concat(borderWidth, " ").concat(borderColor).concat(isBorderAboveBg ? ", 0 0 0 ".concat(borderWidth, " ").concat(btnBackground) : '', " !important; // override :hover styles\n\n .").concat(globalClasses.innerShadow, " {\n box-shadow: ").concat(btnShadow, ";\n }\n }\n ");
|
|
17
|
+
};
|
|
18
|
+
export var buttonSizeMixin = function (fontSize, lineHeight, paddingX, paddingY) {
|
|
19
|
+
return "\n font-size: ".concat(fontSize, ";\n box-sizing: border-box;\n padding: ").concat(getBtnPadding(paddingY, paddingX), ";\n line-height: ").concat(lineHeight, ";\n ");
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=Button.mixins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.mixins.js","sourceRoot":"","sources":["Button.mixins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,IAAM,aAAa,GAAG,UAAC,QAAgB,EAAE,QAAgB;IACvD,OAAO,UAAG,QAAQ,cAAI,QAAQ,cAAI,QAAQ,CAAE,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,cAAc,GAAG,UAC5B,aAAqB,EACrB,kBAA0B,EAC1B,gBAAwB,EACxB,KAAa,EACb,WAAmB,EACnB,WAAmB;IAEnB,IAAM,WAAW,GAAG,kBAAkB,KAAK,gBAAgB,CAAC;IAC5D,OAAO,kCACe,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,sCACvC,WAAW,CAAC,CAAC,CAAC,0BAAmB,kBAAkB,eAAK,gBAAgB,MAAG,CAAC,CAAC,CAAC,MAAM,2BAC/F,KAAK,sCACM,WAAW,cAAI,WAAW,8DAIzC,aAAa,CAAC,KAAK,oCACX,KAAK,0BAGnB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAC9B,aAAqB,EACrB,kBAA0B,EAC1B,gBAAwB,EACxB,KAAa,EACb,WAAmB,EACnB,WAAmB;IAEnB,IAAM,WAAW,GAAG,kBAAkB,KAAK,gBAAgB,CAAC;IAC5D,IAAM,eAAe,GAAG,WAAW,KAAK,EAAE,IAAI,WAAW,KAAK,aAAa,CAAC;IAC5E,OAAO,kCACe,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,sCACvC,WAAW,CAAC,CAAC,CAAC,0BAAmB,kBAAkB,eAAK,gBAAgB,MAAG,CAAC,CAAC,CAAC,MAAM,sCACpF,WAAW,cAAI,WAAW,SAAG,eAAe,CAAC,CAAC,CAAC,kBAAW,WAAW,cAAI,aAAa,CAAE,CAAC,CAAC,CAAC,EAAE,2BACxG,KAAK,UACf,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAC/B,aAAqB,EACrB,SAAiB,EACjB,WAAmB,EACnB,WAAmB;IAEnB,IAAM,eAAe,GAAG,WAAW,KAAK,EAAE,IAAI,WAAW,KAAK,aAAa,CAAC;IAC5E,OAAO,+HAIiB,aAAa,6EACb,WAAW,cAAI,WAAW,SAAG,eAAe,CAAC,CAAC,CAAC,kBAAW,WAAW,cAAI,aAAa,CAAE,CAAC,CAAC,CAAC,EAAE,8DAE9G,aAAa,CAAC,WAAW,qCACZ,SAAS,0BAG5B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,eAAe,GAAG,UAAC,QAAgB,EAAE,UAAkB,EAAE,QAAgB,EAAE,QAAgB;IACtG,OAAO,2BACQ,QAAQ,0DAEV,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,iCAC7B,UAAU,UAC1B,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { globalClasses } from './Button.classes.js';\n\nconst getBtnPadding = (paddingY: string, paddingX: string): string => {\n return `${paddingY} ${paddingX} ${paddingY}`;\n};\n\nexport const buttonUseMixin = (\n btnBackground: string,\n btnBackgroundStart: string,\n btnBackgroundEnd: string,\n color: string,\n borderColor: string,\n borderWidth: string,\n): string => {\n const hasGradient = btnBackgroundStart !== btnBackgroundEnd;\n return `\n background-color: ${hasGradient ? `initial` : btnBackground};\n background-image: ${hasGradient ? `linear-gradient(${btnBackgroundStart}, ${btnBackgroundEnd})` : `none`};\n color: ${color};\n box-shadow: 0 0 0 ${borderWidth} ${borderColor};\n\n :enabled:hover,\n :enabled {\n .${globalClasses.arrow} svg {\n color: ${color};\n }\n }\n `;\n};\n\nexport const buttonHoverMixin = (\n btnBackground: string,\n btnBackgroundStart: string,\n btnBackgroundEnd: string,\n color: string,\n borderColor: string,\n borderWidth: string,\n): string => {\n const hasGradient = btnBackgroundStart !== btnBackgroundEnd;\n const isBorderAboveBg = borderColor !== '' && borderColor !== btnBackground;\n return `\n background-color: ${hasGradient ? `initial` : btnBackground};\n background-image: ${hasGradient ? `linear-gradient(${btnBackgroundStart}, ${btnBackgroundEnd})` : `none`};\n box-shadow: 0 0 0 ${borderWidth} ${borderColor}${isBorderAboveBg ? `, 0 0 0 ${borderWidth} ${btnBackground}` : ''};\n color: ${color};\n `;\n};\n\nexport const buttonActiveMixin = (\n btnBackground: string,\n btnShadow: string,\n borderColor: string,\n borderWidth: string,\n): string => {\n const isBorderAboveBg = borderColor !== '' && borderColor !== btnBackground;\n return `\n &,\n &:hover {\n background-image: none !important; // override :hover styles\n background-color: ${btnBackground} !important; // override :hover styles\n box-shadow: 0 0 0 ${borderWidth} ${borderColor}${isBorderAboveBg ? `, 0 0 0 ${borderWidth} ${btnBackground}` : ''} !important; // override :hover styles\n\n .${globalClasses.innerShadow} {\n box-shadow: ${btnShadow};\n }\n }\n `;\n};\n\nexport const buttonSizeMixin = (fontSize: string, lineHeight: string, paddingX: string, paddingY: string): string => {\n return `\n font-size: ${fontSize};\n box-sizing: border-box;\n padding: ${getBtnPadding(paddingY, paddingX)};\n line-height: ${lineHeight};\n `;\n};\n"]}
|