@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"themeToCssVars.js","sourceRoot":"","sources":["themeToCssVars.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Theme } from './Theme.js';\nimport { ThemeFactory } from './ThemeFactory.js';\nimport { REACT_UI_THEME_MARKERS, findPropertyDescriptor } from './ThemeHelpers.js';\n\n/**\n * Префикс всех CSS-переменных темы.\n * Без префикса потребитель не отличит переменные react-ui от своих.\n */\nexport const THEME_CSS_VAR_PREFIX = '--kontur-';\n\n/**\n * Имя CSS-переменной для переменной темы.\n * Имя переменной темы не переименовывается в kebab-case, чтобы его можно было\n * один в один сопоставить с документацией темы: `btnBgDefault` -> `--kontur-btnBgDefault`.\n */\nexport function getThemeCssVarName(themeKey: string): string {\n return `${THEME_CSS_VAR_PREFIX}${themeKey}`;\n}\n\n/** Служебные ключи-маркеры темы, которые не являются переменными. */\nconst MARKER_KEYS: readonly string[] = Object.values(REACT_UI_THEME_MARKERS).map((marker) => marker.key);\n\n/** Имя переменной темы, пригодное для использования в качестве имени CSS-переменной. */\nconst VALID_THEME_KEY = /^[A-Za-z_][A-Za-z0-9_-]*$/;\n\n/** Геттер-проброска: `return this.bgDefault;` */\nconst PASSTHROUGH_GETTER = /^return\\s+this\\.([A-Za-z_$][A-Za-z0-9_$]*)\\s*;?$/;\n\n/**\n * Геттер-шаблон: ``return `${this.a} solid ${this.b}`;``\n *\n * Пробел после `return` необязателен: перед кавычкой он не нужен, и минификатор\n * его убирает — ``return`${this.a} solid ${this.b}` ``.\n */\nconst TEMPLATE_GETTER = /^return\\s*`([^`]*)`\\s*;?$/;\n/** Начало es5-вида шаблонного геттера: `return \"\" ...` или `return \"литерал\" ...` */\nconst CONCAT_HEAD = /^\\s*return\\s*\"((?:[^\"\\\\]|\\\\.)*)\"/;\n\n/** Интерполяция-ссылка на другую переменную темы: `this.linkFocusOutlineWidth` */\nconst THIS_REFERENCE = /^this\\.([A-Za-z_$][A-Za-z0-9_$]*)$/;\n\n/**\n * Кусок значения переменной: либо литерал, либо ссылка на другую переменную темы.\n */\ntype ValuePart = { literal: string } | { ref: string };\n\nconst isRef = (part: ValuePart): part is { ref: string } => 'ref' in part;\n\n/**\n * Точка с запятой завершает объявление и не может быть частью значения CSS-переменной.\n * Хвостовые `;` в значениях темы (например, `selectBorderColorTransition`) отбрасываются,\n * значения с `;` в середине объявить нельзя — такие переменные пропускаются.\n */\nfunction sanitizeValue(value: string): string {\n return value.replace(/[\\s;]+$/, '');\n}\n\n/** Тело геттера в одну строку: `get x() { return this.y; }` -> `return this.y;` */\nfunction getGetterBody(theme: Theme, themeKey: string): string | null {\n const descriptor = findPropertyDescriptor(theme, themeKey);\n if (typeof descriptor.get !== 'function') {\n return null;\n }\n\n const source = descriptor.get.toString();\n const bodyStart = source.indexOf('{');\n const bodyEnd = source.lastIndexOf('}');\n if (bodyStart === -1 || bodyEnd <= bodyStart) {\n return null;\n }\n\n // Комментарии снимаются ДО схлопывания пробелов, и это не косметика.\n // Переносы строк схлопываются в пробел, и однострочный комментарий перед\n // `return` съедал бы весь остаток тела — геттер разбирался бы как литерал, а\n // его ссылки на другие токены теряли бы производность. В исходниках этого не\n // видно: комментарии до `Function.prototype.toString()` там не доживают.\n return stripComments(source.slice(bodyStart + 1, bodyEnd))\n .trim()\n .replace(/\\s+/g, ' ');\n}\n\n/**\n * Убирает комментарии из тела функции, не трогая строковые литералы.\n *\n * Регулярка тут не годится: `//` встречается внутри значений (протокол-\n * относительный `url(//…)`), и вырезать её как комментарий значило бы испортить\n * значение.\n */\nfunction stripComments(body: string): string {\n let result = '';\n let index = 0;\n let quote: string | null = null;\n\n while (index < body.length) {\n const char = body[index];\n\n if (quote) {\n if (char === '\\\\') {\n result += char + (body[index + 1] ?? '');\n index += 2;\n continue;\n }\n if (char === quote) {\n quote = null;\n }\n result += char;\n index += 1;\n continue;\n }\n\n if (char === '\"' || char === \"'\" || char === '`') {\n quote = char;\n result += char;\n index += 1;\n continue;\n }\n\n if (char === '/' && body[index + 1] === '/') {\n const lineEnd = body.indexOf('\\n', index);\n index = lineEnd === -1 ? body.length : lineEnd;\n // Перенос строки остаётся: без него `return` слипся бы с предыдущей строкой.\n continue;\n }\n\n if (char === '/' && body[index + 1] === '*') {\n const commentEnd = body.indexOf('*/', index + 2);\n index = commentEnd === -1 ? body.length : commentEnd + 2;\n result += ' ';\n continue;\n }\n\n result += char;\n index += 1;\n }\n\n return result;\n}\n\n/**\n * Разбирает исходник шаблонного литерала на литералы и ссылки.\n * Возвращает null, если хотя бы одна интерполяция — не простая ссылка `this.<переменная>`\n * (например, `${parseInt(this.menuOffsetY) - 1}`) или в литерале есть эскейп-последовательность.\n */\nfunction parseTemplateParts(template: string): ValuePart[] | null {\n const parts: ValuePart[] = [];\n let literal = '';\n let index = 0;\n\n while (index < template.length) {\n if (template[index] === '\\\\') {\n // Эскейпы (`\\n`, `\\${`) не переносятся в CSS как есть — отдаём значение литералом.\n return null;\n }\n\n if (template[index] !== '$' || template[index + 1] !== '{') {\n literal += template[index];\n index += 1;\n continue;\n }\n\n let depth = 1;\n let expression = '';\n index += 2;\n while (index < template.length && depth > 0) {\n if (template[index] === '{') {\n depth += 1;\n } else if (template[index] === '}') {\n depth -= 1;\n if (depth === 0) {\n break;\n }\n }\n expression += template[index];\n index += 1;\n }\n if (depth !== 0) {\n return null;\n }\n index += 1;\n\n const reference = expression.trim().match(THIS_REFERENCE);\n if (!reference) {\n return null;\n }\n\n parts.push({ literal });\n parts.push({ ref: reference[1] });\n literal = '';\n }\n\n parts.push({ literal });\n\n return parts;\n}\n\n/**\n * Раскладывает значение переменной темы на куски.\n * Проброски и шаблоны из ссылок становятся ссылками, всё остальное — литералом\n * с уже вычисленным значением.\n */\nfunction getValueParts(theme: Theme, themeKey: string, value: string): ValuePart[] {\n const literalOnly: ValuePart[] = [{ literal: value }];\n\n const body = getGetterBody(theme, themeKey);\n if (body === null) {\n return literalOnly;\n }\n\n const passthrough = body.match(PASSTHROUGH_GETTER);\n if (passthrough) {\n return [{ ref: passthrough[1] }];\n }\n\n const template = body.match(TEMPLATE_GETTER);\n if (template) {\n return parseTemplateParts(template[1]) || literalOnly;\n }\n\n return parseConcatParts(body) || literalOnly;\n}\n\n/**\n * Тот же шаблон, но после компиляции в es5.\n *\n * Пакет собирается с `target: \"es5\"` (см. корневой tsconfig), а\n * `Function.prototype.toString()` отдаёт то, что реально выполняется. Шаблонный\n * литерал к этому моменту уже превращён в цепочку `concat`:\n *\n * return \"\".concat(this.a, \" solid \").concat(this.b);\n *\n * Без разбора этой формы 14 ссылок деградировали бы в литералы именно в\n * опубликованном пакете — то есть в исходниках производность есть, а у\n * потребителя нет.\n */\nfunction parseConcatParts(body: string): ValuePart[] | null {\n const head = body.match(CONCAT_HEAD);\n if (!head) {\n return null;\n }\n\n const parts: ValuePart[] = [];\n if (head[1]) {\n parts.push({ literal: head[1] });\n }\n\n let index = head[0].length;\n while (index < body.length) {\n if (body.startsWith(';', index) || body[index] === undefined || /^\\s*$/.test(body.slice(index))) {\n break;\n }\n if (!body.startsWith('.concat(', index)) {\n return null;\n }\n index += '.concat('.length;\n\n // Скобки и кавычки считаем честно: в значениях темы встречаются и\n // `cubic-bezier(0.5, 1, 0.89, 1)`, и `rgba(0, 0, 0, .16)` — регулярка на\n // `[^)]*` обрывалась бы на первой внутренней скобке.\n const argsStart = index;\n let depth = 1;\n let quote: string | null = null;\n while (index < body.length && depth > 0) {\n const char = body[index];\n if (quote) {\n if (char === '\\\\') {\n index += 1;\n } else if (char === quote) {\n quote = null;\n }\n } else if (char === '\"' || char === \"'\") {\n quote = char;\n } else if (char === '(') {\n depth += 1;\n } else if (char === ')') {\n depth -= 1;\n if (depth === 0) {\n break;\n }\n }\n index += 1;\n }\n if (depth !== 0) {\n return null;\n }\n\n const args = splitConcatArgs(body.slice(argsStart, index));\n index += 1;\n if (!args) {\n return null;\n }\n\n for (const arg of args) {\n const reference = arg.match(THIS_REFERENCE);\n if (reference) {\n parts.push({ ref: reference[1] });\n continue;\n }\n const quoted = arg.match(/^([\"'])((?:[^\\\\]|\\\\.)*?)\\1$/);\n if (!quoted || quoted[2].includes('\\\\')) {\n // Не строковый литерал или эскейп — в CSS переносить нельзя.\n return null;\n }\n parts.push({ literal: quoted[2] });\n }\n }\n\n return parts.length ? parts : null;\n}\n\n/** Делит аргументы `concat` по запятым верхнего уровня, не ломая строки с запятой внутри. */\nfunction splitConcatArgs(source: string): string[] | null {\n const args: string[] = [];\n let current = '';\n let quote: string | null = null;\n\n for (let index = 0; index < source.length; index++) {\n const char = source[index];\n if (quote) {\n current += char;\n if (char === '\\\\') {\n current += source[++index] ?? '';\n } else if (char === quote) {\n quote = null;\n }\n continue;\n }\n if (char === '\"' || char === \"'\") {\n quote = char;\n current += char;\n continue;\n }\n if (char === ',') {\n args.push(current.trim());\n current = '';\n continue;\n }\n current += char;\n }\n args.push(current.trim());\n\n if (quote) {\n return null;\n }\n\n return args.filter(Boolean);\n}\n\n//#region Арифметические геттеры -> calc()\n\n/**\n * Часть геттеров считает размер арифметикой в JS:\n * `` return `${2 * parseInt(this.btnBorderWidth) + ...}px`; ``\n * Литерал `40px` из такого геттера рвёт производность: переопределение\n * `--kontur-btnLineHeightMedium` его уже не меняет. Поэтому выражение переносится\n * в `calc()`, где `parseInt(this.X)` становится `var(--kontur-X)`.\n *\n * Разбирается ровно то, что встречается в теме; всё остальное честно остаётся литералом.\n */\n\n/** Узел разобранного арифметического выражения. */\ntype CalcNode =\n | { kind: 'number'; value: number }\n | { kind: 'ref'; themeKey: string }\n | { kind: 'binary'; operator: CalcOperator; left: CalcNode; right: CalcNode };\n\ntype CalcOperator = '+' | '-' | '*' | '/';\n\n/**\n * Тип значения выражения. Нужен, потому что в `calc()` не всякая арифметика законна:\n * в умножении хотя бы один операнд обязан быть числом, в делении число обязан быть делитель.\n *\n * В JS-геттере единиц нет вовсе: он считает голые числа и приписывает `px` в конце.\n * Поэтому число в сумме с длиной — это пиксели (`parseInt(this.x) - 2` -> `var(--x) - 2px`),\n * а число в умножении и делении — множитель (`2 * parseInt(this.x)` -> `2 * var(--x)`).\n * Тип определяется снизу вверх, а `px` дописывается при печати в тех числах,\n * которые оказались в контексте длины.\n */\ntype CalcType = 'number' | 'length';\n\n/**\n * Начало объявления локальных переменных арифметического геттера.\n * `var` — тот же `const` после сборки в es5.\n */\nconst CALC_LOCAL_KEYWORD = /^(?:const|var)\\s+/;\n\n/** Один декларатор объявления: `borderWidth = parseInt(this.btnBorderWidth, 10) || 0`. */\nconst CALC_LOCAL_DECLARATOR = /^\\s*([A-Za-z_$][A-Za-z0-9_$]*)\\s*=\\s*/;\n\n/** ``return `${...}px`;`` и ``return `-${...}px`;`` — минус перед интерполяцией даёт отрицательный отступ. */\nconst CALC_RETURN_STATEMENT = /^return\\s*`(-?)\\$\\{(.+)\\}px`\\s*;?$/;\n\n/**\n * Тот же `return` после сборки в es5: `Function.prototype.toString()` отдаёт\n * то, что реально выполняется, а при `target: es5` TypeScript превращает\n * шаблонный литерал в `\"\".concat(...)`.\n */\nconst CALC_RETURN_STATEMENT_ES5 = /^return\\s*\"(-?)\"\\.concat\\((.+),\\s*\"px\"\\)\\s*;?$/;\n\n/** Значение переменной, которое `parseInt` читает без потерь: целое число пикселей. */\nconst INTEGER_PX_VALUE = /^-?\\d+px$/;\n\n/** Значение, с которым сравнивается результат вычисления выражения. */\nconst PX_VALUE = /^-?\\d+(?:\\.\\d+)?px$/;\n\n/**\n * Число, идентификатор, `||` или одиночный знак; последняя альтернатива ловит\n * всё непонятное по одному символу, чтобы такое выражение отсеялось целиком.\n */\nconst CALC_TOKEN = /\\d+(?:\\.\\d+)?|[A-Za-z_$][A-Za-z0-9_$]*|\\|\\||[()+\\-*/,.]|\\S/g;\n\n/** Токен из числа поддержанных. */\nconst CALC_VALID_TOKEN = /^(?:\\d+(?:\\.\\d+)?|[A-Za-z_$][A-Za-z0-9_$]*|\\|\\||[()+\\-*/,.])$/;\n\nconst CALC_PRECEDENCE: Record<CalcOperator, number> = { '+': 1, '-': 1, '*': 2, '/': 2 };\n\n/** Приоритет атома выше любого оператора: атом никогда не берётся в скобки. */\nconst CALC_ATOM_PRECEDENCE = 3;\n\nfunction tokenizeCalc(source: string): string[] | null {\n const tokens = source.match(CALC_TOKEN);\n if (tokens === null) {\n return null;\n }\n\n return tokens.every((token) => CALC_VALID_TOKEN.test(token)) ? tokens : null;\n}\n\n/**\n * Разбирает арифметическое выражение из исходника геттера.\n *\n * Локальные `const` подставляются в место использования: в CSS переменных для них нет,\n * а выражение всё равно уходит в одну строку.\n *\n * @param source Исходник выражения\n * @param locals Уже разобранные локальные переменные геттера\n * @returns Дерево выражения или null, если встретилось что-то неподдержанное\n */\nfunction parseCalcExpression(source: string, locals: Map<string, CalcNode>): CalcNode | null {\n const tokens = tokenizeCalc(source.trim());\n if (tokens === null) {\n return null;\n }\n\n let position = 0;\n const peek = (): string | undefined => tokens[position];\n const eat = (expected: string): boolean => {\n if (tokens[position] !== expected) {\n return false;\n }\n position += 1;\n return true;\n };\n\n /** `parseInt(this.X)` и `parseInt(this.X, 10)` — единственная форма чтения переменной темы. */\n const parseParseIntCall = (): CalcNode | null => {\n if (!eat('(') || !eat('this') || !eat('.')) {\n return null;\n }\n const themeKey = peek();\n if (themeKey === undefined || !/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(themeKey)) {\n return null;\n }\n position += 1;\n if (eat(',') && !eat('10')) {\n // Другое основание системы счисления меняет смысл: не переносим.\n return null;\n }\n if (!eat(')')) {\n return null;\n }\n return { kind: 'ref', themeKey };\n };\n\n const parseAtom = (): CalcNode | null => {\n const token = peek();\n if (token === undefined) {\n return null;\n }\n\n if (token === '(') {\n position += 1;\n const inner = parseOr();\n if (inner === null || !eat(')')) {\n return null;\n }\n return inner;\n }\n\n if (/^\\d/.test(token)) {\n position += 1;\n return { kind: 'number', value: Number(token) };\n }\n\n if (!/^[A-Za-z_$]/.test(token)) {\n return null;\n }\n position += 1;\n\n if (token === 'parseInt') {\n return parseParseIntCall();\n }\n\n // Всё, что не `parseInt` и не локальная переменная (`Math`, импорт модуля), не переносится.\n return locals.get(token) ?? null;\n };\n\n const parseUnary = (): CalcNode | null => {\n if (!eat('-')) {\n return parseAtom();\n }\n const operand = parseUnary();\n if (operand === null) {\n return null;\n }\n if (operand.kind === 'number') {\n return { kind: 'number', value: -operand.value };\n }\n // В `calc()` унарного минуса нет, умножение на -1 — его законный эквивалент.\n return { kind: 'binary', operator: '*', left: { kind: 'number', value: -1 }, right: operand };\n };\n\n const parseProduct = (): CalcNode | null => {\n let left = parseUnary();\n if (left === null) {\n return null;\n }\n while (peek() === '*' || peek() === '/') {\n const operator = tokens[position] as CalcOperator;\n position += 1;\n const right = parseUnary();\n if (right === null) {\n return null;\n }\n left = { kind: 'binary', operator, left, right };\n }\n return left;\n };\n\n // Стрелка, а не объявление функции: в объявлении TypeScript теряет сужение\n // `tokens` до непустого массива.\n const parseSum = (): CalcNode | null => {\n let left = parseProduct();\n if (left === null) {\n return null;\n }\n while (peek() === '+' || peek() === '-') {\n const operator = tokens[position] as CalcOperator;\n position += 1;\n const right = parseProduct();\n if (right === null) {\n return null;\n }\n left = { kind: 'binary', operator, left, right };\n }\n return left;\n };\n\n /**\n * `parseInt(this.X, 10) || 0` — страховка от NaN. В CSS её нет; на числах,\n * которые реально лежат в теме, она не срабатывает, и это подтверждает\n * сверка с JS-значением ниже.\n *\n * Уровень ниже суммы, а не только на самом верху выражения: минификатор,\n * подставляющий локальную переменную в место использования, уносит страховку\n * внутрь скобок — `2 * (parseInt(this.x, 10) || 0)`.\n */\n const parseOr = (): CalcNode | null => {\n const value = parseSum();\n if (value === null) {\n return null;\n }\n while (eat('||')) {\n const fallback = parseSum();\n if (fallback === null || fallback.kind !== 'number' || fallback.value !== 0) {\n return null;\n }\n }\n return value;\n };\n\n const parsed = parseOr();\n\n return parsed !== null && position === tokens.length ? parsed : null;\n}\n\n/**\n * Находит конец инициализатора локальной переменной: ближайшие `,` или `;` вне скобок.\n *\n * Запятую верхнего уровня пропускать нельзя: минификатор склеивает объявления в\n * список (`var a=1,b=2;`). Запятую внутри `parseInt(this.x, 10)` — наоборот,\n * учитывать нельзя. Кавычка любого вида означает, что объявления закончились и\n * началась строка `return`, — такое выражение не наше.\n *\n * @returns Индекс разделителя или null\n */\nfunction findCalcInitializerEnd(source: string, start: number): number | null {\n let depth = 0;\n\n for (let index = start; index < source.length; index++) {\n const char = source[index];\n if (char === '`' || char === '\"' || char === \"'\") {\n return null;\n }\n if (char === '(') {\n depth += 1;\n } else if (char === ')') {\n depth -= 1;\n if (depth < 0) {\n return null;\n }\n } else if (depth === 0 && (char === ',' || char === ';')) {\n return index;\n }\n }\n\n return null;\n}\n\n/**\n * Считывает объявления локальных переменных в начале тела геттера.\n *\n * Одно объявление может объявлять несколько переменных: `const a = 1, b = 2;` в\n * исходниках так не написано, но минификатор сводит к этому виду цепочку `const`.\n *\n * @param body Тело геттера\n * @param locals Карта, в которую складываются разобранные переменные\n * @returns Остаток тела после объявлений или null, если объявление не разобрано\n */\nfunction readCalcLocals(body: string, locals: Map<string, CalcNode>): string | null {\n let rest = body;\n\n let keyword = rest.match(CALC_LOCAL_KEYWORD);\n while (keyword) {\n let cursor = keyword[0].length;\n\n for (;;) {\n const declarator = rest.slice(cursor).match(CALC_LOCAL_DECLARATOR);\n if (!declarator) {\n return null;\n }\n cursor += declarator[0].length;\n\n const end = findCalcInitializerEnd(rest, cursor);\n if (end === null) {\n return null;\n }\n\n const value = parseCalcExpression(rest.slice(cursor, end), locals);\n if (value === null) {\n return null;\n }\n locals.set(declarator[1], value);\n\n const isLastDeclarator = rest[end] === ';';\n cursor = end + 1;\n if (isLastDeclarator) {\n break;\n }\n }\n\n rest = rest.slice(cursor).replace(/^\\s+/, '');\n keyword = rest.match(CALC_LOCAL_KEYWORD);\n }\n\n return rest;\n}\n\n/**\n * Разбирает тело арифметического геттера: объявления локальных переменных и завершающий `return`.\n * @returns Дерево выражения (с уже подставленными локальными переменными) или null\n */\nfunction parseCalcGetterBody(body: string): CalcNode | null {\n const locals = new Map<string, CalcNode>();\n\n const rest = readCalcLocals(body, locals);\n if (rest === null) {\n return null;\n }\n\n const returned = rest.match(CALC_RETURN_STATEMENT) ?? rest.match(CALC_RETURN_STATEMENT_ES5);\n if (!returned) {\n return null;\n }\n\n const expression = parseCalcExpression(returned[2], locals);\n if (expression === null) {\n return null;\n }\n\n if (returned[1] !== '-') {\n return expression;\n }\n\n return { kind: 'binary', operator: '*', left: { kind: 'number', value: -1 }, right: expression };\n}\n\n/**\n * Тип выражения по правилам `calc()`.\n * @returns 'length', 'number' или null, если такое выражение в `calc()` незаконно\n */\nfunction getCalcType(node: CalcNode): CalcType | null {\n if (node.kind === 'number') {\n return 'number';\n }\n if (node.kind === 'ref') {\n return 'length';\n }\n\n const left = getCalcType(node.left);\n const right = getCalcType(node.right);\n if (left === null || right === null) {\n return null;\n }\n\n switch (node.operator) {\n case '+':\n case '-':\n // Число рядом с длиной — это пиксели, `px` допишется при печати.\n return left === 'length' || right === 'length' ? 'length' : 'number';\n case '*':\n // В умножении хотя бы один операнд обязан быть числом.\n if (left === 'length' && right === 'length') {\n return null;\n }\n return left === 'number' ? right : left;\n case '/':\n // Делить можно только на число.\n return right === 'number' ? left : null;\n }\n}\n\n/** Есть ли в выражении хоть одна ссылка на переменную темы. */\nfunction hasCalcRef(node: CalcNode): boolean {\n if (node.kind === 'ref') {\n return true;\n }\n return node.kind === 'binary' && (hasCalcRef(node.left) || hasCalcRef(node.right));\n}\n\n/**\n * Вычисляет выражение так же, как это делает JS-геттер.\n * Ссылка берётся только из целого числа пикселей: на дробном или безразмерном значении\n * `parseInt` и CSS разошлись бы.\n */\nfunction evaluateCalc(node: CalcNode, values: Map<string, string>): number | null {\n if (node.kind === 'number') {\n return node.value;\n }\n\n if (node.kind === 'ref') {\n const value = values.get(node.themeKey);\n if (value === undefined || !INTEGER_PX_VALUE.test(value)) {\n return null;\n }\n return parseInt(value, 10);\n }\n\n const left = evaluateCalc(node.left, values);\n const right = evaluateCalc(node.right, values);\n if (left === null || right === null) {\n return null;\n }\n\n switch (node.operator) {\n case '+':\n return left + right;\n case '-':\n return left - right;\n case '*':\n return left * right;\n case '/':\n return right === 0 ? null : left / right;\n }\n}\n\nfunction getCalcPrecedence(node: CalcNode): number {\n return node.kind === 'binary' ? CALC_PRECEDENCE[node.operator] : CALC_ATOM_PRECEDENCE;\n}\n\n/**\n * Печатает выражение, расставляя скобки только там, где они меняют результат.\n * Правый операнд `-` и `/` скобок требует чаще: эти операторы не ассоциативны.\n *\n * @param node Узел выражения\n * @param context Чем должен оказаться узел в `calc()`: длиной или числом\n */\nfunction printCalc(node: CalcNode, context: CalcType): string {\n if (node.kind === 'number') {\n return context === 'length' ? `${node.value}px` : String(node.value);\n }\n if (node.kind === 'ref') {\n return `var(${getThemeCssVarName(node.themeKey)})`;\n }\n\n const operandPrecedence = CALC_PRECEDENCE[node.operator];\n const rightPrecedence = getCalcRightPrecedence(node.operator);\n const [leftContext, rightContext] = getCalcOperandContexts(node, context);\n\n return `${printCalcOperand(node.left, leftContext, operandPrecedence)} ${node.operator} ${printCalcOperand(node.right, rightContext, rightPrecedence)}`;\n}\n\n/**\n * Приоритет, ниже которого правый операнд надо взять в скобки.\n * `-` и `/` не ассоциативны: `a - (b + c)` и `a / (b * c)` без скобок меняют смысл.\n */\nfunction getCalcRightPrecedence(operator: CalcOperator): number {\n if (operator === '-') {\n return CALC_PRECEDENCE['*'];\n }\n if (operator === '/') {\n return CALC_ATOM_PRECEDENCE;\n }\n return CALC_PRECEDENCE[operator];\n}\n\n/**\n * Контексты операндов: в сумме оба операнда того же типа, что и результат,\n * в делении делитель всегда число, в умножении длину несёт ровно один операнд.\n */\nfunction getCalcOperandContexts(node: Extract<CalcNode, { kind: 'binary' }>, context: CalcType): [CalcType, CalcType] {\n if (node.operator === '+' || node.operator === '-') {\n return [context, context];\n }\n if (node.operator === '/') {\n return [context, 'number'];\n }\n if (context === 'number') {\n return ['number', 'number'];\n }\n // Длину несёт тот операнд, который ею уже является; если оба числовые —\n // единицы дописываются правому, результат тот же.\n return getCalcType(node.left) === 'length' ? ['length', 'number'] : ['number', 'length'];\n}\n\nfunction printCalcOperand(node: CalcNode, context: CalcType, minPrecedence: number): string {\n const printed = printCalc(node, context);\n return getCalcPrecedence(node) < minPrecedence ? `(${printed})` : printed;\n}\n\n/**\n * Переводит арифметический геттер в `calc()`.\n *\n * Значение отдаётся, только если выражение разобрано целиком, законно в `calc()`\n * и вычисляется ровно в то же число, что вернул JS-геттер. Единицы в `calc()`\n * приходят из самих переменных, поэтому `px` из шаблона не переносится.\n *\n * @param theme Объект темы\n * @param themeKey Ключ переменной\n * @param value Значение, которое вернул геттер\n * @param values Объявленные значения переменных темы\n * @returns Строка `calc(...)` или null\n */\nfunction getCalcValue(theme: Theme, themeKey: string, value: string, values: Map<string, string>): string | null {\n if (!PX_VALUE.test(value)) {\n return null;\n }\n\n const body = getGetterBody(theme, themeKey);\n if (body === null) {\n return null;\n }\n\n const expression = parseCalcGetterBody(body);\n // Выражение без ссылок производности не добавляет — такому место в литерале.\n if (expression === null || getCalcType(expression) !== 'length' || !hasCalcRef(expression)) {\n return null;\n }\n\n const evaluated = evaluateCalc(expression, values);\n if (evaluated === null || !Number.isFinite(evaluated) || evaluated !== parseFloat(value)) {\n return null;\n }\n\n return `calc(${printCalc(expression, 'length')})`;\n}\n\n//#endregion\n\n/**\n * Значение CSS-переменной для одного ключа темы.\n *\n * Порядок разбора: сначала ссылки (проброски и шаблоны), затем арифметика в `calc()`,\n * иначе — готовое значение литералом.\n */\nfunction getCssVarValue(theme: Theme, themeKey: string, value: string, values: Map<string, string>): string {\n const parts = getValueParts(theme, themeKey, value);\n\n // Ссылка допустима, только если переменная-источник объявлена и подстановка её\n // объявленного значения даёт ровно то же, что отдаёт тема. Иначе — литерал.\n const isResolvable =\n parts.some(isRef) &&\n parts.every((part) => !isRef(part) || values.has(part.ref)) &&\n parts.map((part) => (isRef(part) ? values.get(part.ref) : part.literal)).join('') === value;\n\n if (isResolvable) {\n return parts.map((part) => (isRef(part) ? `var(${getThemeCssVarName(part.ref)})` : part.literal)).join('');\n }\n\n return getCalcValue(theme, themeKey, value, values) ?? value;\n}\n\n/**\n * Собирает пары «имя CSS-переменной — значение» для всех переменных темы.\n *\n * Проброски и шаблоны превращаются в ссылки `var(--kontur-<источник>)`, а арифметические\n * геттеры — в `calc()` из тех же ссылок, чтобы переопределение одной переменной\n * автоматически меняло все производные от неё. Остальные значения эмитируются литералом.\n *\n * @param theme Объект темы\n * @returns Объект вида `{ '--kontur-bgSecondary': 'var(--kontur-bgDefault)' }`\n */\nexport function themeToCssVarsMap(theme: Theme): Record<string, string> {\n const themeKeys = ThemeFactory.getKeys(theme)\n .map(String)\n .filter((themeKey) => VALID_THEME_KEY.test(themeKey) && !MARKER_KEYS.includes(themeKey));\n\n const CSS_WIDE_KEYWORD = /^(inherit|initial|unset|revert|revert-layer)$/i;\n\n /**\n * CSS-wide keyword custom property нести не может: в объявлении\n * `--x: inherit` ключевое слово применяется К САМОЙ ПЕРЕМЕННОЙ — она наследует\n * значение родителя, а на верхнем уровне это ничто. Ссылка `var(--x)` тогда\n * вычисляется в пустоту, то есть даёт `unset`, а не подставляет `inherit`.\n *\n * Поэтому такой токен не объявляется вовсе — как и пустой. Результат тот же:\n * `var()` без объявления даёт `unset`, а для наследуемых свойств `unset`\n * и есть `inherit`, то есть ровно то, что токен и означал.\n */\n // Значения читаются один раз: геттеры темы вычисляемые.\n const values = new Map<string, string>();\n themeKeys.forEach((themeKey) => {\n const value = theme[themeKey as keyof Theme];\n if (typeof value !== 'string') {\n return;\n }\n const sanitized = sanitizeValue(value);\n if (sanitized === '' || sanitized.includes(';') || CSS_WIDE_KEYWORD.test(sanitized)) {\n return;\n }\n values.set(themeKey, sanitized);\n });\n\n const cssVars: Record<string, string> = {};\n\n values.forEach((value, themeKey) => {\n cssVars[getThemeCssVarName(themeKey)] = getCssVarValue(theme, themeKey, value, values);\n });\n\n return cssVars;\n}\n\n/**\n * Подпись темы: её значения, а не сгенерированный из них CSS.\n *\n * Из подписи считается имя класса-носителя, и потому она обязана быть\n * устойчивой к сборке приложения. Текст блока таким свойством не обладает:\n * `calc()` собирается из исходного текста геттера, и минификатор потребителя\n * сворачивает в нём константы — `* (8 - 1)` превращается в `* 7`. Значение то\n * же, текст другой, хеш другой, и совпасть с извлечённым на сборке файлом ему\n * уже нечем. Сами же значения темы минификатор не меняет.\n *\n * @param theme Объект темы\n * @returns Строка вида `bgDefault:#fff;btnBgDefault:…`\n */\nexport function themeValuesSignature(theme: Theme): string {\n return ThemeFactory.getKeys(theme)\n .map(String)\n .filter((themeKey) => VALID_THEME_KEY.test(themeKey) && !MARKER_KEYS.includes(themeKey))\n .map((themeKey) => {\n const value = theme[themeKey as keyof Theme];\n return typeof value === 'string' ? `${themeKey}:${value}` : '';\n })\n .join(';');\n}\n\n/**\n * Превращает тему в блок объявлений CSS-переменных.\n *\n * Блок не обёрнут в селектор — это делает вызывающий код,\n * например `:root { ... }` или `.my-scope { ... }`.\n *\n * @param theme Объект темы\n * @returns Строка объявлений, по одному на строку\n */\nexport function themeToCssVars(theme: Theme): string {\n const cached = cssVarsCache.get(theme);\n if (cached !== undefined) {\n return cached;\n }\n\n const cssVars = themeToCssVarsMap(theme);\n const result = Object.keys(cssVars)\n .map((name) => `${name}: ${cssVars[name]};`)\n .join('\\n');\n\n cssVarsCache.set(theme, result);\n\n return result;\n}\n\n/**\n * Блок один и тот же для одной темы, а собирается он недёшево: разбор исходников\n * 540 геттеров плюс склейка полутора тысяч объявлений — около 4 мс.\n *\n * Кеш общий, не привязанный к инстансу Emotion: на сервере инстанс свой на каждый\n * запрос, и без этого генерация повторялась бы на каждом. Ключ — объект темы,\n * поэтому `WeakMap`: темы создаются динамически через `ThemeFactory.create`, и\n * держать их вечно нельзя.\n */\nconst cssVarsCache = new WeakMap<Theme, string>();\n"]}
|