@skbkontur/react-ui 0.0.0-7feb61cdde → 0.0.0-80c5917afc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +94 -0
- package/cjs/components/Autocomplete/Autocomplete.d.ts +5 -0
- package/cjs/components/Autocomplete/Autocomplete.js +18 -4
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +1 -1
- package/cjs/components/Button/Button.js +7 -2
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.js +6 -4
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Button/getInnerLinkTheme.js +2 -3
- package/cjs/components/Button/getInnerLinkTheme.js.map +1 -1
- package/cjs/components/Calendar/Calendar.styles.js +1 -2
- package/cjs/components/Calendar/Calendar.styles.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.js +1 -1
- package/cjs/components/Calendar/DayCellView.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.styles.d.ts +1 -1
- package/cjs/components/Calendar/DayCellView.styles.js +4 -4
- package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +10 -0
- package/cjs/components/Checkbox/Checkbox.js +70 -15
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.md +18 -0
- package/cjs/components/Checkbox/Checkbox.mixins.d.ts +2 -0
- package/cjs/components/Checkbox/Checkbox.mixins.js +35 -0
- package/cjs/components/Checkbox/Checkbox.mixins.js.map +1 -0
- package/cjs/components/Checkbox/Checkbox.styles.d.ts +6 -0
- package/cjs/components/Checkbox/Checkbox.styles.js +95 -34
- package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.md +5 -3
- package/cjs/components/CurrencyInput/CurrencyHelper.d.ts +2 -0
- package/cjs/components/CurrencyInput/CurrencyHelper.js +21 -6
- package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +3 -0
- package/cjs/components/DateInput/DateInput.js +11 -3
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/Dropdown/getDropdownTheme.js +3 -1
- package/cjs/components/Dropdown/getDropdownTheme.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js +4 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.md +28 -0
- package/cjs/components/DropdownMenu/getDropdownMenuTheme.js +5 -1
- package/cjs/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.styles.js +3 -2
- package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.js +6 -2
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -1
- package/cjs/components/GlobalLoader/GlobalLoaderView.js +6 -4
- package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +1 -5
- package/cjs/components/Input/Input.js +4 -5
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.styles.js +3 -2
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +1 -1
- package/cjs/components/Kebab/Kebab.js +6 -1
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Kebab/Kebab.md +28 -0
- package/cjs/components/Link/Link.js +4 -2
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Link/Link.mixins.d.ts +1 -2
- package/cjs/components/Link/Link.mixins.js +5 -16
- package/cjs/components/Link/Link.mixins.js.map +1 -1
- package/cjs/components/Link/Link.styles.d.ts +2 -0
- package/cjs/components/Link/Link.styles.js +58 -38
- package/cjs/components/Link/Link.styles.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.js +1 -1
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.js +1 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Radio/Radio.styles.js +6 -2
- package/cjs/components/Radio/Radio.styles.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +3 -2
- package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +7 -5
- package/cjs/components/Select/Select.js +15 -6
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/Select.styles.js +3 -2
- package/cjs/components/Select/Select.styles.js.map +1 -1
- package/cjs/components/Select/selectTheme.js +4 -1
- package/cjs/components/Select/selectTheme.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +1 -0
- package/cjs/components/Tabs/Tab.js +15 -1
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tab.styles.d.ts +9 -3
- package/cjs/components/Tabs/Tab.styles.js +106 -68
- package/cjs/components/Tabs/Tab.styles.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +8 -2
- package/cjs/components/Tabs/Tabs.js +15 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Tabs/Tabs.md +32 -0
- package/cjs/components/Tabs/Tabs.styles.d.ts +3 -1
- package/cjs/components/Tabs/Tabs.styles.js +23 -7
- package/cjs/components/Tabs/Tabs.styles.js.map +1 -1
- package/cjs/components/Tabs/TabsContext.d.ts +2 -1
- package/cjs/components/Tabs/TabsContext.js +2 -0
- package/cjs/components/Tabs/TabsContext.js.map +1 -1
- package/cjs/components/Tabs/helpers.d.ts +6 -0
- package/cjs/components/Tabs/helpers.js +30 -0
- package/cjs/components/Tabs/helpers.js.map +1 -0
- package/cjs/components/Textarea/Textarea.styles.js +2 -2
- package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
- package/cjs/components/Toast/ToastView.styles.js +2 -2
- package/cjs/components/Toast/ToastView.styles.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +11 -1
- package/cjs/components/Toggle/Toggle.js +102 -2
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Toggle/Toggle.md +16 -2
- package/cjs/components/Toggle/Toggle.mixins.d.ts +7 -0
- package/cjs/components/Toggle/Toggle.mixins.js +90 -0
- package/cjs/components/Toggle/Toggle.mixins.js.map +1 -0
- package/cjs/components/Toggle/Toggle.styles.d.ts +21 -1
- package/cjs/components/Toggle/Toggle.styles.js +172 -56
- package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
- package/cjs/components/TokenInput/TokenInput.js +8 -2
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.md +26 -35
- package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
- package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.d.ts +7 -0
- package/cjs/components/TokenInput/TokenInputMenu.js +9 -1
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.js +8 -2
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.md +28 -0
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.styles.js +2 -1
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +10 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -0
- package/cjs/internal/CustomComboBox/ComboBoxView.js +11 -3
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.js +13 -11
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.js +1 -1
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.styles.d.ts +3 -0
- package/cjs/internal/DateSelect/DateSelect.styles.js +15 -3
- package/cjs/internal/DateSelect/DateSelect.styles.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +3 -2
- package/cjs/internal/DropdownContainer/DropdownContainer.js +6 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -4
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +7 -5
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.js +16 -4
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.d.ts +13 -4
- package/cjs/internal/InternalMenu/InternalMenu.js +15 -5
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.styles.d.ts +1 -0
- package/cjs/internal/InternalMenu/InternalMenu.styles.js +13 -7
- package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
- package/cjs/internal/InternalMenu/isIconPaddingEnabled.d.ts +2 -0
- package/cjs/internal/InternalMenu/isIconPaddingEnabled.js +9 -0
- package/cjs/internal/InternalMenu/isIconPaddingEnabled.js.map +1 -0
- package/cjs/internal/Menu/Menu.d.ts +42 -8
- package/cjs/internal/Menu/Menu.js +272 -78
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/Menu/Menu.styles.d.ts +6 -1
- package/cjs/internal/Menu/Menu.styles.js +42 -8
- package/cjs/internal/Menu/Menu.styles.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +2 -2
- package/cjs/internal/MobilePopup/MobilePopup.js +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +7 -2
- package/cjs/internal/Popup/Popup.js +13 -3
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -1
- package/cjs/internal/PopupMenu/PopupMenu.js +29 -4
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +114 -17
- package/cjs/internal/themes/DefaultTheme.js +244 -68
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/internal/themes/Theme2022.d.ts +19 -3
- package/cjs/internal/themes/Theme2022.js +33 -13
- package/cjs/internal/themes/Theme2022.js.map +1 -1
- package/cjs/internal/themes/Theme2022Dark.d.ts +0 -4
- package/cjs/internal/themes/Theme2022Dark.js +3 -14
- package/cjs/internal/themes/Theme2022Dark.js.map +1 -1
- package/cjs/typings/html.d.ts +0 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +13 -3
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +5 -0
- package/components/Button/Button/Button.js +2 -0
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -1
- package/components/Button/Button.styles/Button.styles.js +2 -2
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js +2 -3
- package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js.map +1 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js +1 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -1
- package/components/Calendar/DayCellView/DayCellView.js +1 -1
- package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js +2 -2
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
- package/components/Calendar/DayCellView.styles.d.ts +1 -1
- package/components/Checkbox/Checkbox/Checkbox.js +56 -8
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +10 -0
- package/components/Checkbox/Checkbox.md +18 -0
- package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js +17 -0
- package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js.map +1 -0
- package/components/Checkbox/Checkbox.mixins/package.json +6 -0
- package/components/Checkbox/Checkbox.mixins.d.ts +2 -0
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +39 -25
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
- package/components/Checkbox/Checkbox.styles.d.ts +6 -0
- package/components/ComboBox/ComboBox.md +5 -3
- package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +32 -4
- package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
- package/components/CurrencyInput/CurrencyHelper.d.ts +2 -0
- package/components/DateInput/DateInput/DateInput.js +5 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +3 -0
- package/components/Dropdown/getDropdownTheme/getDropdownTheme.js +3 -1
- package/components/Dropdown/getDropdownTheme/getDropdownTheme.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -0
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +1 -1
- package/components/DropdownMenu/DropdownMenu.md +28 -0
- package/components/DropdownMenu/getDropdownMenuTheme/getDropdownMenuTheme.js +5 -1
- package/components/DropdownMenu/getDropdownMenuTheme/getDropdownMenuTheme.js.map +1 -1
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +1 -1
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +5 -1
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +6 -2
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -1
- package/components/Input/Input/Input.js +3 -1
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +1 -5
- package/components/Input/Input.styles/Input.styles.js +2 -2
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Kebab/Kebab/Kebab.js +4 -1
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +1 -1
- package/components/Kebab/Kebab.md +28 -0
- package/components/Link/Link/Link.js +4 -4
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.mixins/Link.mixins.js +2 -5
- package/components/Link/Link.mixins/Link.mixins.js.map +1 -1
- package/components/Link/Link.mixins.d.ts +1 -2
- package/components/Link/Link.styles/Link.styles.js +29 -21
- package/components/Link/Link.styles/Link.styles.js.map +1 -1
- package/components/Link/Link.styles.d.ts +2 -0
- package/components/Modal/ModalFooter/ModalFooter.js +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Radio/Radio.styles/Radio.styles.js +2 -2
- package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +3 -2
- package/components/Select/Select/Select.js +15 -7
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +7 -5
- package/components/Select/Select.styles/Select.styles.js +1 -1
- package/components/Select/Select.styles/Select.styles.js.map +1 -1
- package/components/Select/selectTheme/selectTheme.js +3 -1
- package/components/Select/selectTheme/selectTheme.js.map +1 -1
- package/components/Tabs/Tab/Tab.js +3 -3
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +1 -0
- package/components/Tabs/Tab.styles/Tab.styles.js +52 -23
- package/components/Tabs/Tab.styles/Tab.styles.js.map +1 -1
- package/components/Tabs/Tab.styles.d.ts +9 -3
- package/components/Tabs/Tabs/Tabs.js +11 -3
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +8 -2
- package/components/Tabs/Tabs.md +32 -0
- package/components/Tabs/Tabs.styles/Tabs.styles.js +15 -4
- package/components/Tabs/Tabs.styles/Tabs.styles.js.map +1 -1
- package/components/Tabs/Tabs.styles.d.ts +3 -1
- package/components/Tabs/TabsContext/TabsContext.js +1 -0
- package/components/Tabs/TabsContext/TabsContext.js.map +1 -1
- package/components/Tabs/TabsContext.d.ts +2 -1
- package/components/Tabs/helpers/helpers.js +25 -0
- package/components/Tabs/helpers/helpers.js.map +1 -0
- package/components/Tabs/helpers/package.json +6 -0
- package/components/Tabs/helpers.d.ts +6 -0
- package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
- package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
- package/components/Toast/ToastView.styles/ToastView.styles.js +1 -1
- package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
- package/components/Toggle/Toggle/Toggle.js +112 -9
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +11 -1
- package/components/Toggle/Toggle.md +16 -2
- package/components/Toggle/Toggle.mixins/Toggle.mixins.js +35 -0
- package/components/Toggle/Toggle.mixins/Toggle.mixins.js.map +1 -0
- package/components/Toggle/Toggle.mixins/package.json +6 -0
- package/components/Toggle/Toggle.mixins.d.ts +7 -0
- package/components/Toggle/Toggle.styles/Toggle.styles.js +85 -31
- package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
- package/components/Toggle/Toggle.styles.d.ts +21 -1
- package/components/TokenInput/TokenInput/TokenInput.js +9 -3
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +2 -0
- package/components/TokenInput/TokenInput.md +26 -35
- package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
- package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -0
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/TokenInput/TokenInputMenu.d.ts +7 -0
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +7 -2
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +1 -1
- package/components/TooltipMenu/TooltipMenu.md +28 -0
- package/internal/CloseButtonIcon/CloseButtonIcon.styles/CloseButtonIcon.styles.js +1 -1
- package/internal/CloseButtonIcon/CloseButtonIcon.styles/CloseButtonIcon.styles.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +5 -0
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +10 -3
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +4 -0
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +23 -20
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/DateSelect/DateSelect/DateSelect.js +2 -1
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js +5 -2
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js.map +1 -1
- package/internal/DateSelect/DateSelect.styles.d.ts +3 -0
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +2 -0
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer.d.ts +3 -2
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +5 -4
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -4
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +20 -8
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +11 -6
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.d.ts +13 -4
- package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +10 -7
- package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.styles.d.ts +1 -0
- package/internal/InternalMenu/isIconPaddingEnabled/isIconPaddingEnabled.js +6 -0
- package/internal/InternalMenu/isIconPaddingEnabled/isIconPaddingEnabled.js.map +1 -0
- package/internal/InternalMenu/isIconPaddingEnabled/package.json +6 -0
- package/internal/InternalMenu/isIconPaddingEnabled.d.ts +2 -0
- package/internal/Menu/Menu/Menu.js +197 -42
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +42 -8
- package/internal/Menu/Menu.styles/Menu.styles.js +20 -5
- package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
- package/internal/Menu/Menu.styles.d.ts +6 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +1 -0
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +2 -2
- package/internal/Popup/Popup/Popup.js +9 -3
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +7 -2
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +27 -5
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +4 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +320 -88
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +114 -17
- package/internal/themes/Theme2022/Theme2022.js +59 -44
- package/internal/themes/Theme2022/Theme2022.js.map +1 -1
- package/internal/themes/Theme2022.d.ts +19 -3
- package/internal/themes/Theme2022Dark/Theme2022Dark.js +1 -18
- package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -1
- package/internal/themes/Theme2022Dark.d.ts +0 -4
- package/package.json +3 -3
- package/typings/html.d.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Link.tsx"],"names":["React","PropTypes","keyListener","ThemeContext","isExternalLink","Spinner","CommonWrapper","cx","rootNode","createPropsGetter","ThemeFactory","isTheme2022","globalClasses","styles","LinkDataTids","root","Link","getProps","defaultProps","state","focusedByTab","renderMain","props","disabled","href","icon","use","loading","_button","_buttonOpened","relOrigin","rel","Component","as","focused","rest","_isTheme2022","theme","iconElement","arrow","isFocused","linkProps","className","useDefault","useSuccess","useDanger","useGrayed","button","buttonOpened","getLinkClassName","Boolean","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","tabIndex","child","children","text","lineText","requestAnimationFrame","isTabPressed","setState","event","preventDefault","render","create","setRootNode","isBorderBottom","parseInt","linkLineBorderBottomWidth","focus","useGrayedFocus","lineRoot","lineFocus","lineFocusSuccess","lineFocusDanger","lineFocusGrayed","__KONTUR_REACT_UI__","propTypes","bool","string","node","oneOf"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { Spinner } from '../Spinner';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { globalClasses, styles } from './Link.styles';\n\nexport interface LinkProps\n extends CommonProps,\n Override<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * HTML-атрибут `href`.\n */\n href?: string;\n /**\n * Добавляет ссылке иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n /**\n * Компонент, используемый в качестве корневого узла.\n * @ignore\n */\n as?: React.ElementType | keyof React.ReactHTML;\n /**\n * @ignore\n */\n focused?: boolean;\n }\n > {}\n\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps, 'href' | 'use' | 'as'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link extends React.Component<LinkProps, LinkState> {\n public static __KONTUR_REACT_UI__ = 'Link';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.node,\n\n use: PropTypes.oneOf(['default', 'success', 'danger', 'grayed']),\n };\n\n public static defaultProps: DefaultProps = {\n href: '',\n use: 'default',\n as: 'a',\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\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.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n href,\n icon,\n use,\n loading,\n _button,\n _buttonOpened,\n rel: relOrigin,\n as: Component,\n focused = false,\n ...rest\n } = props;\n const _isTheme2022 = isTheme2022(this.theme);\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <span className={styles.icon(this.theme)}>{loading ? <Spinner caption={null} dimmed inline /> : icon}</span>\n );\n }\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n let rel = relOrigin;\n if (typeof rel === 'undefined' && href) {\n rel = `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const linkProps = {\n className: cx(\n use === 'default' && styles.useDefault(this.theme),\n use === 'success' && styles.useSuccess(this.theme),\n use === 'danger' && styles.useDanger(this.theme),\n use === 'grayed' && styles.useGrayed(this.theme),\n !!_button && styles.button(this.theme),\n !!_buttonOpened && styles.buttonOpened(this.theme),\n this.getLinkClassName(isFocused, Boolean(disabled || loading)),\n ),\n href,\n rel,\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: disabled || loading ? -1 : this.props.tabIndex,\n };\n\n let child = this.props.children;\n if (_isTheme2022) {\n child = <span className={cx(globalClasses.text, styles.lineText(this.theme))}>{this.props.children}</span>;\n }\n\n return (\n <Component data-tid={LinkDataTids.root} {...rest} {...linkProps}>\n {iconElement}\n {child}\n {arrow}\n </Component>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n const { onClick, disabled, loading } = this.props;\n const href = this.getProps().href;\n if (!href) {\n event.preventDefault();\n }\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n\n private getLinkClassName(focused: boolean, disabled: boolean): string {\n const { use } = this.getProps();\n const isBorderBottom = parseInt(this.theme.linkLineBorderBottomWidth) > 0;\n const isFocused = focused && !disabled;\n\n return !isBorderBottom\n ? cx(\n styles.root(this.theme),\n isFocused && styles.focus(this.theme),\n disabled && styles.disabled(this.theme),\n use === 'grayed' && focused && styles.useGrayedFocus(this.theme),\n )\n : cx(\n styles.lineRoot(),\n disabled && styles.disabled(this.theme),\n isFocused && use === 'default' && styles.lineFocus(this.theme),\n isFocused && use === 'success' && styles.lineFocusSuccess(this.theme),\n isFocused && use === 'danger' && styles.lineFocusDanger(this.theme),\n isFocused && use === 'grayed' && styles.lineFocusGrayed(this.theme),\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Link.tsx"],"names":["React","PropTypes","keyListener","ThemeContext","isExternalLink","Spinner","CommonWrapper","cx","rootNode","createPropsGetter","ThemeFactory","isDarkTheme","isTheme2022","globalClasses","styles","LinkDataTids","root","Link","getProps","defaultProps","state","focusedByTab","renderMain","props","disabled","href","icon","use","loading","_button","_buttonOpened","relOrigin","rel","Component","as","focused","rest","_isTheme2022","theme","iconElement","arrow","isFocused","linkProps","className","useRoot","useDefault","useSuccess","useDanger","useGrayed","button","buttonOpened","getLinkClassName","Boolean","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","tabIndex","child","children","text","lineText","requestAnimationFrame","isTabPressed","setState","event","preventDefault","render","create","setRootNode","isBorderBottom","parseInt","linkLineBorderBottomWidth","focus","useGrayedFocus","lineRoot","disabledDark22Theme","lineFocus","lineFocusSuccess","lineFocusDanger","lineFocusGrayed","__KONTUR_REACT_UI__","propTypes","bool","string","node","oneOf"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { Spinner } from '../Spinner';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { isDarkTheme, isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { globalClasses, styles } from './Link.styles';\n\nexport interface LinkProps\n extends CommonProps,\n Override<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * HTML-атрибут `href`.\n */\n href?: string;\n /**\n * Добавляет ссылке иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n /**\n * Компонент, используемый в качестве корневого узла.\n * @ignore\n */\n as?: React.ElementType | keyof React.ReactHTML;\n /**\n * @ignore\n */\n focused?: boolean;\n }\n > {}\n\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps, 'href' | 'use' | 'as'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link extends React.Component<LinkProps, LinkState> {\n public static __KONTUR_REACT_UI__ = 'Link';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.node,\n\n use: PropTypes.oneOf(['default', 'success', 'danger', 'grayed']),\n };\n\n public static defaultProps: DefaultProps = {\n href: '',\n use: 'default',\n as: 'a',\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\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.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n href,\n icon,\n use,\n loading,\n _button,\n _buttonOpened,\n rel: relOrigin,\n as: Component,\n focused = false,\n ...rest\n } = props;\n const _isTheme2022 = isTheme2022(this.theme);\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <span className={styles.icon(this.theme)}>{loading ? <Spinner caption={null} dimmed inline /> : icon}</span>\n );\n }\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n let rel = relOrigin;\n if (typeof rel === 'undefined' && href) {\n rel = `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const linkProps = {\n className: cx(\n styles.useRoot(),\n use === 'default' && styles.useDefault(this.theme),\n use === 'success' && styles.useSuccess(this.theme),\n use === 'danger' && styles.useDanger(this.theme),\n use === 'grayed' && styles.useGrayed(this.theme),\n !!_button && styles.button(this.theme),\n !!_buttonOpened && styles.buttonOpened(this.theme),\n this.getLinkClassName(isFocused, Boolean(disabled || loading), _isTheme2022),\n ),\n href,\n rel,\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: disabled || loading ? -1 : this.props.tabIndex,\n };\n\n let child = this.props.children;\n if (_isTheme2022) {\n child = <span className={cx(globalClasses.text, styles.lineText(this.theme))}>{this.props.children}</span>;\n }\n\n return (\n <Component data-tid={LinkDataTids.root} {...rest} {...linkProps}>\n {iconElement}\n {child}\n {arrow}\n </Component>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n const { onClick, disabled, loading } = this.props;\n const href = this.getProps().href;\n if (!href) {\n event.preventDefault();\n }\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n\n private getLinkClassName(focused: boolean, disabled: boolean, _isTheme2022: boolean): string {\n const { use } = this.getProps();\n const isBorderBottom = parseInt(this.theme.linkLineBorderBottomWidth) > 0;\n const isFocused = focused && !disabled;\n\n return !isBorderBottom\n ? cx(\n styles.root(this.theme),\n isFocused && styles.focus(this.theme),\n disabled && styles.disabled(this.theme),\n use === 'grayed' && focused && styles.useGrayedFocus(this.theme),\n )\n : cx(\n styles.lineRoot(),\n disabled && styles.disabled(this.theme),\n disabled && _isTheme2022 && isDarkTheme(this.theme) && styles.disabledDark22Theme(this.theme),\n isFocused && use === 'default' && styles.lineFocus(this.theme),\n isFocused && use === 'success' && styles.lineFocusSuccess(this.theme),\n isFocused && use === 'danger' && styles.lineFocusDanger(this.theme),\n isFocused && use === 'grayed' && styles.lineFocusGrayed(this.theme),\n );\n }\n}\n"]}
|
|
@@ -7,9 +7,6 @@ export var linkDisabledMixin = function linkDisabledMixin() {
|
|
|
7
7
|
export var linkUseColorsMixin = function linkUseColorsMixin(mainColor, hoverColor, activeColor) {
|
|
8
8
|
return "\n color: " + mainColor + ";\n\n &:hover {\n color: " + hoverColor + ";\n }\n\n &:active {\n color: " + activeColor + ";\n }\n ";
|
|
9
9
|
};
|
|
10
|
-
export var
|
|
11
|
-
return "\n
|
|
12
|
-
};
|
|
13
|
-
export var linkUseLineColorsHoverMixin = function linkUseLineColorsHoverMixin(hoverColor, nestedSelector) {
|
|
14
|
-
return "\n &:hover " + nestedSelector + " {\n border-bottom-color: " + hoverColor + ";\n }\n ";
|
|
10
|
+
export var linkUseLineHovered = function linkUseLineHovered(linkLineHoverBorderBottomStyle) {
|
|
11
|
+
return "\n animation: none !important;\n border-bottom-style: " + linkLineHoverBorderBottomStyle + ";\n ";
|
|
15
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Link.mixins.ts"],"names":["linkMixin","hoverTextDecoration","linkDisabledMixin","linkUseColorsMixin","mainColor","hoverColor","activeColor","
|
|
1
|
+
{"version":3,"sources":["Link.mixins.ts"],"names":["linkMixin","hoverTextDecoration","linkDisabledMixin","linkUseColorsMixin","mainColor","hoverColor","activeColor","linkUseLineHovered","linkLineHoverBorderBottomStyle"],"mappings":"AAAA,OAAO,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAACC,mBAAD,EAAiC;AACxD;;;;;;AAMuBA,EAAAA,mBANvB;;;AASD,CAVM;;AAYP,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,GAAM;AACrC;;;;;;;;;;AAUD,CAXM;;AAaP,OAAO,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,SAAD,EAAoBC,UAApB,EAAwCC,WAAxC,EAAgE;AAChG;AACWF,EAAAA,SADX;;;AAIaC,EAAAA,UAJb;;;;AAQaC,EAAAA,WARb;;;AAWD,CAZM;;AAcP,OAAO,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,8BAAD,EAA4C;AAC5E;;AAEyBA,EAAAA,8BAFzB;;AAID,CALM","sourcesContent":["export const linkMixin = (hoverTextDecoration: string) => {\n return `\n border-radius: 1px;\n outline: none;\n text-decoration: none;\n\n &:hover {\n text-decoration: ${hoverTextDecoration};\n }\n `;\n};\n\nexport const linkDisabledMixin = () => {\n return `\n box-shadow: none;\n cursor: default;\n pointer-events: none;\n text-decoration: none;\n\n &:hover {\n text-decoration: none;\n }\n `;\n};\n\nexport const linkUseColorsMixin = (mainColor: string, hoverColor: string, activeColor: string) => {\n return `\n color: ${mainColor};\n\n &:hover {\n color: ${hoverColor};\n }\n\n &:active {\n color: ${activeColor};\n }\n `;\n};\n\nexport const linkUseLineHovered = (linkLineHoverBorderBottomStyle: string) => {\n return `\n animation: none !important;\n border-bottom-style: ${linkLineHoverBorderBottomStyle};\n `;\n};\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export declare const linkMixin: (hoverTextDecoration: string) => string;
|
|
2
2
|
export declare const linkDisabledMixin: () => string;
|
|
3
3
|
export declare const linkUseColorsMixin: (mainColor: string, hoverColor: string, activeColor: string) => string;
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const linkUseLineColorsHoverMixin: (hoverColor: string, nestedSelector: string) => string;
|
|
4
|
+
export declare const linkUseLineHovered: (linkLineHoverBorderBottomStyle: string) => string;
|
|
@@ -1,65 +1,73 @@
|
|
|
1
1
|
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
2
2
|
|
|
3
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18;
|
|
3
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21;
|
|
4
4
|
|
|
5
|
-
import { css, memoizeStyle, prefix } from "../../../lib/theming/Emotion";
|
|
6
|
-
import { linkMixin, linkDisabledMixin, linkUseColorsMixin,
|
|
5
|
+
import { css, keyframes, memoizeStyle, prefix } from "../../../lib/theming/Emotion";
|
|
6
|
+
import { linkMixin, linkDisabledMixin, linkUseColorsMixin, linkUseLineHovered } from "../Link.mixins";
|
|
7
7
|
export var globalClasses = prefix('link')({
|
|
8
8
|
text: 'text'
|
|
9
9
|
});
|
|
10
|
+
var line = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n 0% {\n border-bottom-color: inherit;\n }\n 100% {\n border-bottom-color: transparent;\n }\n"])));
|
|
10
11
|
export var styles = memoizeStyle({
|
|
11
12
|
root: function root(t) {
|
|
12
|
-
return css(
|
|
13
|
+
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n ", ";\n position: relative;\n "])), linkMixin(t.linkHoverTextDecoration));
|
|
13
14
|
},
|
|
14
15
|
lineRoot: function lineRoot() {
|
|
15
|
-
return css(
|
|
16
|
+
return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n border-radius: 1px;\n outline: none;\n text-decoration: none;\n "])));
|
|
16
17
|
},
|
|
17
18
|
lineText: function lineText(t) {
|
|
18
|
-
|
|
19
|
+
var delay = parseFloat(t.linkLineBorderBottomOpacity) - 1;
|
|
20
|
+
return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n border-bottom-style: ", ";\n border-bottom-width: ", ";\n animation: ", " 1s linear !important; // override creevey\n animation-play-state: paused !important;\n animation-delay: ", "s !important;\n animation-fill-mode: forwards !important;\n "])), t.linkLineBorderBottomStyle, t.linkLineBorderBottomWidth, line, delay);
|
|
19
21
|
},
|
|
20
22
|
lineFocus: function lineFocus(t) {
|
|
21
|
-
return css(
|
|
23
|
+
return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n color: ", ";\n .", " {\n ", "\n }\n "])), t.linkHoverColor, globalClasses.text, linkUseLineHovered(t.linkLineHoverBorderBottomStyle));
|
|
22
24
|
},
|
|
23
25
|
lineFocusSuccess: function lineFocusSuccess(t) {
|
|
24
|
-
return css(
|
|
26
|
+
return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n color: ", " !important;\n .", " {\n ", "\n }\n "])), t.linkSuccessHoverColor, globalClasses.text, linkUseLineHovered(t.linkLineHoverBorderBottomStyle));
|
|
25
27
|
},
|
|
26
28
|
lineFocusDanger: function lineFocusDanger(t) {
|
|
27
|
-
return css(
|
|
29
|
+
return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n color: ", " !important;\n .", " {\n ", "\n }\n "])), t.linkDangerHoverColor, globalClasses.text, linkUseLineHovered(t.linkLineHoverBorderBottomStyle));
|
|
28
30
|
},
|
|
29
31
|
lineFocusGrayed: function lineFocusGrayed(t) {
|
|
30
|
-
return css(
|
|
32
|
+
return css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n color: ", " !important;\n .", " {\n ", "\n }\n "])), t.linkGrayedHoverColor, globalClasses.text, linkUseLineHovered(t.linkLineHoverBorderBottomStyle));
|
|
31
33
|
},
|
|
32
34
|
button: function button(t) {
|
|
33
|
-
return css(
|
|
35
|
+
return css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n line-height: ", ";\n padding-left: ", ";\n padding-right: ", ";\n "])), t.linkButtonLineHeight, t.linkButtonPaddingX, t.linkButtonPaddingX);
|
|
34
36
|
},
|
|
35
37
|
buttonOpened: function buttonOpened(t) {
|
|
36
|
-
return css(
|
|
38
|
+
return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n background: ", ";\n "])), t.btnDefaultActiveBg);
|
|
37
39
|
},
|
|
38
40
|
arrow: function arrow() {
|
|
39
|
-
return css(
|
|
41
|
+
return css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n border: 4px solid transparent;\n border-bottom-width: 0;\n border-top-color: #a0a0a0;\n display: inline-block;\n margin-bottom: 3px;\n margin-left: 3px;\n vertical-align: middle;\n "])));
|
|
42
|
+
},
|
|
43
|
+
useRoot: function useRoot() {
|
|
44
|
+
return css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n border-bottom-color: currentColor;\n "])));
|
|
40
45
|
},
|
|
41
46
|
useDefault: function useDefault(t) {
|
|
42
|
-
return css(
|
|
47
|
+
return css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteralLoose(["\n ", ";\n .", " {\n :hover {\n ", "\n }\n }\n "])), linkUseColorsMixin(t.linkColor, t.linkHoverColor, t.linkActiveColor), globalClasses.text, linkUseLineHovered(t.linkLineHoverBorderBottomStyle));
|
|
43
48
|
},
|
|
44
49
|
useSuccess: function useSuccess(t) {
|
|
45
|
-
return css(
|
|
50
|
+
return css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteralLoose(["\n ", ";\n .", " {\n :hover {\n ", "\n }\n }\n "])), linkUseColorsMixin(t.linkSuccessColor, t.linkSuccessHoverColor, t.linkSuccessActiveColor), globalClasses.text, linkUseLineHovered(t.linkLineHoverBorderBottomStyle));
|
|
46
51
|
},
|
|
47
52
|
useDanger: function useDanger(t) {
|
|
48
|
-
return css(
|
|
53
|
+
return css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteralLoose(["\n ", ";\n .", " {\n :hover {\n ", "\n }\n }\n "])), linkUseColorsMixin(t.linkDangerColor, t.linkDangerHoverColor, t.linkDangerActiveColor), globalClasses.text, linkUseLineHovered(t.linkLineHoverBorderBottomStyle));
|
|
49
54
|
},
|
|
50
55
|
useGrayed: function useGrayed(t) {
|
|
51
|
-
return css(
|
|
56
|
+
return css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteralLoose(["\n ", ";\n .", " {\n :hover {\n ", "\n }\n }\n "])), linkUseColorsMixin(t.linkGrayedColor, t.linkGrayedHoverColor, t.linkGrayedActiveColor), globalClasses.text, linkUseLineHovered(t.linkLineHoverBorderBottomStyle));
|
|
52
57
|
},
|
|
53
58
|
useGrayedFocus: function useGrayedFocus(t) {
|
|
54
|
-
return css(
|
|
59
|
+
return css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), t.linkDisabledColor);
|
|
55
60
|
},
|
|
56
61
|
focus: function focus(t) {
|
|
57
|
-
return css(
|
|
62
|
+
return css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteralLoose(["\n text-decoration: ", ";\n "])), t.linkHoverTextDecoration);
|
|
58
63
|
},
|
|
59
64
|
disabled: function disabled(t) {
|
|
60
|
-
return css(
|
|
65
|
+
return css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteralLoose(["\n ", ";\n\n color: ", " !important; // override root color\n\n &:hover {\n color: ", ";\n }\n "])), linkDisabledMixin(), t.linkDisabledColor, t.linkDisabledColor);
|
|
66
|
+
},
|
|
67
|
+
disabledDark22Theme: function disabledDark22Theme(t) {
|
|
68
|
+
return css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteralLoose(["\n .", " {\n ", "\n }\n "])), globalClasses.text, linkUseLineHovered(t.linkLineHoverBorderBottomStyle));
|
|
61
69
|
},
|
|
62
70
|
icon: function icon(t) {
|
|
63
|
-
return css(
|
|
71
|
+
return css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteralLoose(["\n display: inline-block;\n margin-right: ", ";\n "])), t.linkIconMarginRight);
|
|
64
72
|
}
|
|
65
73
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Link.styles.ts"],"names":["css","memoizeStyle","prefix","linkMixin","linkDisabledMixin","linkUseColorsMixin","
|
|
1
|
+
{"version":3,"sources":["Link.styles.ts"],"names":["css","keyframes","memoizeStyle","prefix","linkMixin","linkDisabledMixin","linkUseColorsMixin","linkUseLineHovered","globalClasses","text","line","styles","root","t","linkHoverTextDecoration","lineRoot","lineText","delay","parseFloat","linkLineBorderBottomOpacity","linkLineBorderBottomStyle","linkLineBorderBottomWidth","lineFocus","linkHoverColor","linkLineHoverBorderBottomStyle","lineFocusSuccess","linkSuccessHoverColor","lineFocusDanger","linkDangerHoverColor","lineFocusGrayed","linkGrayedHoverColor","button","linkButtonLineHeight","linkButtonPaddingX","buttonOpened","btnDefaultActiveBg","arrow","useRoot","useDefault","linkColor","linkActiveColor","useSuccess","linkSuccessColor","linkSuccessActiveColor","useDanger","linkDangerColor","linkDangerActiveColor","useGrayed","linkGrayedColor","linkGrayedActiveColor","useGrayedFocus","linkDisabledColor","focus","disabled","disabledDark22Theme","icon","linkIconMarginRight"],"mappings":"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","sourcesContent":["import { css, keyframes, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nimport { linkMixin, linkDisabledMixin, linkUseColorsMixin, linkUseLineHovered } from './Link.mixins';\n\nexport const globalClasses = prefix('link')({\n text: 'text',\n});\n\nconst line = keyframes`\n 0% {\n border-bottom-color: inherit;\n }\n 100% {\n border-bottom-color: transparent;\n }\n`;\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n ${linkMixin(t.linkHoverTextDecoration)};\n position: relative;\n `;\n },\n\n lineRoot() {\n return css`\n border-radius: 1px;\n outline: none;\n text-decoration: none;\n `;\n },\n\n lineText(t: Theme) {\n const delay = parseFloat(t.linkLineBorderBottomOpacity) - 1;\n return css`\n border-bottom-style: ${t.linkLineBorderBottomStyle};\n border-bottom-width: ${t.linkLineBorderBottomWidth};\n animation: ${line} 1s linear !important; // override creevey\n animation-play-state: paused !important;\n animation-delay: ${delay}s !important;\n animation-fill-mode: forwards !important;\n `;\n },\n\n lineFocus(t: Theme) {\n return css`\n color: ${t.linkHoverColor};\n .${globalClasses.text} {\n ${linkUseLineHovered(t.linkLineHoverBorderBottomStyle)}\n }\n `;\n },\n\n lineFocusSuccess(t: Theme) {\n return css`\n color: ${t.linkSuccessHoverColor} !important;\n .${globalClasses.text} {\n ${linkUseLineHovered(t.linkLineHoverBorderBottomStyle)}\n }\n `;\n },\n\n lineFocusDanger(t: Theme) {\n return css`\n color: ${t.linkDangerHoverColor} !important;\n .${globalClasses.text} {\n ${linkUseLineHovered(t.linkLineHoverBorderBottomStyle)}\n }\n `;\n },\n\n lineFocusGrayed(t: Theme) {\n return css`\n color: ${t.linkGrayedHoverColor} !important;\n .${globalClasses.text} {\n ${linkUseLineHovered(t.linkLineHoverBorderBottomStyle)}\n }\n `;\n },\n\n button(t: Theme) {\n return css`\n display: inline-block;\n line-height: ${t.linkButtonLineHeight};\n padding-left: ${t.linkButtonPaddingX};\n padding-right: ${t.linkButtonPaddingX};\n `;\n },\n\n buttonOpened(t: Theme) {\n return css`\n background: ${t.btnDefaultActiveBg};\n `;\n },\n\n arrow() {\n return css`\n border: 4px solid transparent;\n border-bottom-width: 0;\n border-top-color: #a0a0a0;\n display: inline-block;\n margin-bottom: 3px;\n margin-left: 3px;\n vertical-align: middle;\n `;\n },\n\n useRoot() {\n return css`\n border-bottom-color: currentColor;\n `;\n },\n useDefault(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkColor, t.linkHoverColor, t.linkActiveColor)};\n .${globalClasses.text} {\n :hover {\n ${linkUseLineHovered(t.linkLineHoverBorderBottomStyle)}\n }\n }\n `;\n },\n\n useSuccess(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkSuccessColor, t.linkSuccessHoverColor, t.linkSuccessActiveColor)};\n .${globalClasses.text} {\n :hover {\n ${linkUseLineHovered(t.linkLineHoverBorderBottomStyle)}\n }\n }\n `;\n },\n\n useDanger(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkDangerColor, t.linkDangerHoverColor, t.linkDangerActiveColor)};\n .${globalClasses.text} {\n :hover {\n ${linkUseLineHovered(t.linkLineHoverBorderBottomStyle)}\n }\n }\n `;\n },\n\n useGrayed(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkGrayedColor, t.linkGrayedHoverColor, t.linkGrayedActiveColor)};\n .${globalClasses.text} {\n :hover {\n ${linkUseLineHovered(t.linkLineHoverBorderBottomStyle)}\n }\n }\n `;\n },\n\n useGrayedFocus(t: Theme) {\n return css`\n color: ${t.linkDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n text-decoration: ${t.linkHoverTextDecoration};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n ${linkDisabledMixin()};\n\n color: ${t.linkDisabledColor} !important; // override root color\n\n &:hover {\n color: ${t.linkDisabledColor};\n }\n `;\n },\n\n disabledDark22Theme(t: Theme) {\n return css`\n .${globalClasses.text} {\n ${linkUseLineHovered(t.linkLineHoverBorderBottomStyle)}\n }\n `;\n },\n\n icon(t: Theme) {\n return css`\n display: inline-block;\n margin-right: ${t.linkIconMarginRight};\n `;\n },\n});\n"]}
|
|
@@ -13,6 +13,7 @@ export declare const styles: {
|
|
|
13
13
|
button(t: Theme): string;
|
|
14
14
|
buttonOpened(t: Theme): string;
|
|
15
15
|
arrow(): string;
|
|
16
|
+
useRoot(): string;
|
|
16
17
|
useDefault(t: Theme): string;
|
|
17
18
|
useSuccess(t: Theme): string;
|
|
18
19
|
useDanger(t: Theme): string;
|
|
@@ -20,5 +21,6 @@ export declare const styles: {
|
|
|
20
21
|
useGrayedFocus(t: Theme): string;
|
|
21
22
|
focus(t: Theme): string;
|
|
22
23
|
disabled(t: Theme): string;
|
|
24
|
+
disabledDark22Theme(t: Theme): string;
|
|
23
25
|
icon(t: Theme): string;
|
|
24
26
|
};
|
|
@@ -42,7 +42,7 @@ function ModalFooter(props) {
|
|
|
42
42
|
fixed = false;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
return /*#__PURE__*/React.createElement(
|
|
45
|
+
return /*#__PURE__*/React.createElement("div", null, (panel || fixed) && /*#__PURE__*/React.createElement(ModalSeparator, {
|
|
46
46
|
fixed: fixed
|
|
47
47
|
}), /*#__PURE__*/React.createElement("div", {
|
|
48
48
|
"data-tid": ModalFooterDataTids.root,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ModalFooter.tsx"],"names":["React","useContext","useLayoutEffect","getScrollWidth","Sticky","ThemeContext","CommonWrapper","cx","useResponsiveLayout","Gapped","isNonNullable","styles","ModalContext","ModalSeparator","ModalFooterDataTids","root","ModalFooter","props","theme","modal","layout","sticky","isMobile","gap","panel","children","setHasFooter","setHasPanel","renderContent","fixed","footer","fixedFooter","Boolean","fixedPanel","mobileFooter","horizontalScroll","__KONTUR_REACT_UI__","__MODAL_FOOTER__"],"mappings":"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","sourcesContent":["import React, { ReactNode, useContext, useLayoutEffect } from 'react';\n\nimport { getScrollWidth } from '../../lib/dom/getScrollWidth';\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { Gapped, GappedProps } from '../Gapped';\nimport { isNonNullable } from '../../lib/utils';\n\nimport { styles } from './Modal.styles';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalFooterProps extends CommonProps {\n /**\n * Включает серый цвет в футере\n */\n panel?: boolean;\n /**\n * Закрепляет футер снизу модального окна\n *\n * На десктопе по умолчанию равен `true`\n * На мобильных по умолчанию равен `false`\n */\n sticky?: boolean;\n /**\n * Контент футера\n */\n children?: ReactNode;\n /**\n * Задаёт отступ между элементами футера\n */\n gap?: GappedProps['gap'];\n}\n\nexport const ModalFooterDataTids = {\n root: 'ModalFooter__root',\n} as const;\n\n/**\n * Футер модального окна.\n *\n * @visibleName Modal.Footer\n */\nfunction ModalFooter(props: ModalFooterProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, gap, panel, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasFooter?.();\n modal.setHasPanel?.(panel);\n\n return () => {\n modal.setHasFooter?.(false);\n modal.setHasPanel?.(false);\n };\n }, [panel]);\n\n const renderContent = (fixed = false) => {\n return (\n
|
|
1
|
+
{"version":3,"sources":["ModalFooter.tsx"],"names":["React","useContext","useLayoutEffect","getScrollWidth","Sticky","ThemeContext","CommonWrapper","cx","useResponsiveLayout","Gapped","isNonNullable","styles","ModalContext","ModalSeparator","ModalFooterDataTids","root","ModalFooter","props","theme","modal","layout","sticky","isMobile","gap","panel","children","setHasFooter","setHasPanel","renderContent","fixed","footer","fixedFooter","Boolean","fixedPanel","mobileFooter","horizontalScroll","__KONTUR_REACT_UI__","__MODAL_FOOTER__"],"mappings":"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","sourcesContent":["import React, { ReactNode, useContext, useLayoutEffect } from 'react';\n\nimport { getScrollWidth } from '../../lib/dom/getScrollWidth';\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { Gapped, GappedProps } from '../Gapped';\nimport { isNonNullable } from '../../lib/utils';\n\nimport { styles } from './Modal.styles';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalFooterProps extends CommonProps {\n /**\n * Включает серый цвет в футере\n */\n panel?: boolean;\n /**\n * Закрепляет футер снизу модального окна\n *\n * На десктопе по умолчанию равен `true`\n * На мобильных по умолчанию равен `false`\n */\n sticky?: boolean;\n /**\n * Контент футера\n */\n children?: ReactNode;\n /**\n * Задаёт отступ между элементами футера\n */\n gap?: GappedProps['gap'];\n}\n\nexport const ModalFooterDataTids = {\n root: 'ModalFooter__root',\n} as const;\n\n/**\n * Футер модального окна.\n *\n * @visibleName Modal.Footer\n */\nfunction ModalFooter(props: ModalFooterProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, gap, panel, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasFooter?.();\n modal.setHasPanel?.(panel);\n\n return () => {\n modal.setHasFooter?.(false);\n modal.setHasPanel?.(false);\n };\n }, [panel]);\n\n const renderContent = (fixed = false) => {\n return (\n <div>\n {(panel || fixed) && <ModalSeparator fixed={fixed} />}\n <div\n data-tid={ModalFooterDataTids.root}\n className={cx(\n styles.footer(theme),\n fixed && styles.fixedFooter(theme),\n Boolean(panel) && styles.panel(theme),\n fixed && Boolean(panel) && styles.fixedPanel(theme),\n layout.isMobile && styles.mobileFooter(theme),\n )}\n >\n {isNonNullable(gap) ? (\n <Gapped vertical={layout.isMobile} gap={gap}>\n {children}\n </Gapped>\n ) : (\n children\n )}\n </div>\n </div>\n );\n };\n\n return (\n <CommonWrapper {...props}>\n {sticky ? (\n <Sticky side=\"bottom\" offset={modal.horizontalScroll ? getScrollWidth() : 0}>\n {renderContent}\n </Sticky>\n ) : (\n renderContent()\n )}\n </CommonWrapper>\n );\n}\n\nModalFooter.__KONTUR_REACT_UI__ = 'ModalFooter';\nModalFooter.__MODAL_FOOTER__ = true;\n\nexport { ModalFooter };\n"]}
|
|
@@ -36,7 +36,7 @@ function ModalHeader(props) {
|
|
|
36
36
|
fixed = false;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
return /*#__PURE__*/React.createElement(
|
|
39
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
40
40
|
"data-tid": ModalHeaderDataTids.root,
|
|
41
41
|
className: cx(styles.header(theme), layout.isMobile && styles.mobileHeader(theme), Boolean(modal.additionalPadding) && styles.headerAddPadding(theme), fixed && styles.fixedHeader(theme), fixed && layout.isMobile && styles.mobileFixedHeader(theme), Boolean(modal.close) && styles.headerWithClose(theme), layout.isMobile && styles.mobileHeaderWithClose(theme))
|
|
42
42
|
}, modal.close && /*#__PURE__*/React.createElement(ModalClose, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ModalHeader.tsx"],"names":["React","useContext","useLayoutEffect","Sticky","ThemeContext","CommonWrapper","cx","useResponsiveLayout","styles","ModalClose","ModalContext","ModalSeparator","ModalHeaderDataTids","root","ModalHeader","props","theme","modal","layout","sticky","isMobile","children","setHasHeader","renderContent","fixed","header","mobileHeader","Boolean","additionalPadding","headerAddPadding","fixedHeader","mobileFixedHeader","close","headerWithClose","mobileHeaderWithClose","requestClose","disableClose","__KONTUR_REACT_UI__","__MODAL_HEADER__"],"mappings":"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","sourcesContent":["import React, { ReactNode, useContext, useLayoutEffect } from 'react';\n\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\n\nimport { styles } from './Modal.styles';\nimport { ModalClose } from './ModalClose';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalHeaderProps extends CommonProps {\n sticky?: boolean;\n children?: ReactNode;\n}\n\nexport const ModalHeaderDataTids = {\n root: 'ModalHeader__root',\n} as const;\n\n/**\n * Шапка модального окна\n *\n * @visibleName Modal.Header\n */\nfunction ModalHeader(props: ModalHeaderProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasHeader?.();\n\n return () => modal.setHasHeader?.(false);\n }, []);\n\n const renderContent = (fixed = false) => {\n return (\n
|
|
1
|
+
{"version":3,"sources":["ModalHeader.tsx"],"names":["React","useContext","useLayoutEffect","Sticky","ThemeContext","CommonWrapper","cx","useResponsiveLayout","styles","ModalClose","ModalContext","ModalSeparator","ModalHeaderDataTids","root","ModalHeader","props","theme","modal","layout","sticky","isMobile","children","setHasHeader","renderContent","fixed","header","mobileHeader","Boolean","additionalPadding","headerAddPadding","fixedHeader","mobileFixedHeader","close","headerWithClose","mobileHeaderWithClose","requestClose","disableClose","__KONTUR_REACT_UI__","__MODAL_HEADER__"],"mappings":"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","sourcesContent":["import React, { ReactNode, useContext, useLayoutEffect } from 'react';\n\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\n\nimport { styles } from './Modal.styles';\nimport { ModalClose } from './ModalClose';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalHeaderProps extends CommonProps {\n sticky?: boolean;\n children?: ReactNode;\n}\n\nexport const ModalHeaderDataTids = {\n root: 'ModalHeader__root',\n} as const;\n\n/**\n * Шапка модального окна\n *\n * @visibleName Modal.Header\n */\nfunction ModalHeader(props: ModalHeaderProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasHeader?.();\n\n return () => modal.setHasHeader?.(false);\n }, []);\n\n const renderContent = (fixed = false) => {\n return (\n <div>\n <div\n data-tid={ModalHeaderDataTids.root}\n className={cx(\n styles.header(theme),\n layout.isMobile && styles.mobileHeader(theme),\n Boolean(modal.additionalPadding) && styles.headerAddPadding(theme),\n fixed && styles.fixedHeader(theme),\n fixed && layout.isMobile && styles.mobileFixedHeader(theme),\n Boolean(modal.close) && styles.headerWithClose(theme),\n layout.isMobile && styles.mobileHeaderWithClose(theme),\n )}\n >\n {modal.close && (\n <ModalClose requestClose={modal.close.requestClose} disableClose={modal.close.disableClose} />\n )}\n {children}\n </div>\n {fixed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n return (\n <CommonWrapper {...props}>{sticky ? <Sticky side=\"top\">{renderContent}</Sticky> : renderContent()}</CommonWrapper>\n );\n}\n\nModalHeader.__KONTUR_REACT_UI__ = 'ModalHeader';\nModalHeader.__MODAL_HEADER__ = true;\n\nexport { ModalHeader };\n"]}
|
|
@@ -15,7 +15,7 @@ var mixins = {
|
|
|
15
15
|
};
|
|
16
16
|
export var styles = memoizeStyle({
|
|
17
17
|
root: function root(t) {
|
|
18
|
-
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n cursor: pointer;\n position: relative;\n white-space: nowrap;\n padding-top: ", ";\n padding-bottom: ", ";\n display: inline-flex;\n align-items: baseline;\n line-height: ", ";\n font-size: ", ";\n\n &:hover .", " {\n background: ", ";\n box-shadow: ", ";\n }\n &:active .", " {\n background: ", ";\n box-shadow: ", ";\n }\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned circle,\n // and also height and baseline for radio without caption.\n content: '\\00A0';\n display: inline-block;\n width: ", ";\n flex: 0 0 auto;\n }\n "], ["\n cursor: pointer;\n position: relative;\n white-space: nowrap;\n padding-top: ", ";\n padding-bottom: ", ";\n display: inline-flex;\n align-items: baseline;\n line-height: ", ";\n font-size: ", ";\n\n &:hover .", " {\n background: ", ";\n box-shadow: ", ";\n }\n &:active .", " {\n background: ", ";\n box-shadow: ", ";\n }\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned circle,\n // and also height and baseline for radio without caption.\n content: '\\\\00A0';\n display: inline-block;\n width: ", ";\n flex: 0 0 auto;\n }\n "])), t.radioPaddingY, t.radioPaddingY, t.radioLineHeight, t.radioFontSize, globalClasses.circle, t.radioHoverBg, t.radioHoverShadow, globalClasses.circle, t.radioActiveBg, t.radioActiveShadow, t.radioSize);
|
|
18
|
+
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n cursor: pointer;\n position: relative;\n white-space: nowrap;\n padding-top: ", ";\n padding-bottom: ", ";\n display: inline-flex;\n align-items: baseline;\n line-height: ", ";\n font-size: ", ";\n\n .", " {\n transition: background ", " ", ";\n }\n\n &:hover .", " {\n background: ", ";\n box-shadow: ", ";\n }\n &:active .", " {\n background: ", ";\n box-shadow: ", ";\n }\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned circle,\n // and also height and baseline for radio without caption.\n content: '\\00A0';\n display: inline-block;\n width: ", ";\n flex: 0 0 auto;\n }\n "], ["\n cursor: pointer;\n position: relative;\n white-space: nowrap;\n padding-top: ", ";\n padding-bottom: ", ";\n display: inline-flex;\n align-items: baseline;\n line-height: ", ";\n font-size: ", ";\n\n .", " {\n transition: background ", " ", ";\n }\n\n &:hover .", " {\n background: ", ";\n box-shadow: ", ";\n }\n &:active .", " {\n background: ", ";\n box-shadow: ", ";\n }\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned circle,\n // and also height and baseline for radio without caption.\n content: '\\\\00A0';\n display: inline-block;\n width: ", ";\n flex: 0 0 auto;\n }\n "])), t.radioPaddingY, t.radioPaddingY, t.radioLineHeight, t.radioFontSize, globalClasses.circle, t.transitionDuration, t.transitionTimingFunction, globalClasses.circle, t.radioHoverBg, t.radioHoverShadow, globalClasses.circle, t.radioActiveBg, t.radioActiveShadow, t.radioSize);
|
|
19
19
|
},
|
|
20
20
|
rootIE11: function rootIE11() {
|
|
21
21
|
return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n display: inline-table;\n "])));
|
|
@@ -25,7 +25,7 @@ export var styles = memoizeStyle({
|
|
|
25
25
|
},
|
|
26
26
|
circle: function circle(t) {
|
|
27
27
|
var labGrotesqueCompenstation = parseInt(t.labGrotesqueBaselineCompensation);
|
|
28
|
-
var fontSize = parseInt(t.
|
|
28
|
+
var fontSize = parseInt(t.radioFontSize);
|
|
29
29
|
var baselineCompensation = getLabGrotesqueBaselineCompensation(fontSize, labGrotesqueCompenstation, isChrome);
|
|
30
30
|
var circleSize = "calc(" + t.radioSize + " - 2 * " + t.radioBorderWidthCompensation + ")";
|
|
31
31
|
var circleOffsetY = "calc(" + t.radioCircleOffsetY + " + " + t.radioBorderWidthCompensation + " + " + baselineCompensation + "px)";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Radio.styles.ts"],"names":["getLabGrotesqueBaselineCompensation","css","memoizeStyle","prefix","isChrome","globalClasses","circle","mixins","afterOutline","t","radioOutlineWidth","radioSizeAfter","styles","root","radioPaddingY","radioLineHeight","radioFontSize","radioHoverBg","radioHoverShadow","radioActiveBg","radioActiveShadow","radioSize","rootIE11","rootChecked","radioCheckedHoverBgColor","labGrotesqueCompenstation","parseInt","labGrotesqueBaselineCompensation","fontSize","
|
|
1
|
+
{"version":3,"sources":["Radio.styles.ts"],"names":["getLabGrotesqueBaselineCompensation","css","memoizeStyle","prefix","isChrome","globalClasses","circle","mixins","afterOutline","t","radioOutlineWidth","radioSizeAfter","styles","root","radioPaddingY","radioLineHeight","radioFontSize","transitionDuration","transitionTimingFunction","radioHoverBg","radioHoverShadow","radioActiveBg","radioActiveShadow","radioSize","rootIE11","rootChecked","radioCheckedHoverBgColor","labGrotesqueCompenstation","parseInt","labGrotesqueBaselineCompensation","fontSize","baselineCompensation","circleSize","radioBorderWidthCompensation","circleOffsetY","radioCircleOffsetY","circleMarginX","radioBgImage","radioBorder","radioBoxShadow","radioBgColor","focus","radioFocusShadow","radioBorderColorFocus","warning","radioBorderColorWarning","error","radioBorderColorError","checked","radioCheckedBgColor","radioCheckedBorderColor","radioBulletSize","radioCheckedBulletColor","checkedDisabled","radioCheckedDisabledBulletBg","input","disabled","radioDisabledBg","radioDisabledShadow","caption","radioCaptionDisplay","radioCaptionGap","radioTextColor","captionIE11","captionDisabled","textColorDisabled","placeholder"],"mappings":"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","sourcesContent":["import { getLabGrotesqueBaselineCompensation } from '../../lib/styles/getLabGrotesqueBaselineCompensation';\nimport { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isChrome } from '../../lib/client';\n\nexport const globalClasses = prefix('radio')({\n circle: 'circle',\n});\n\nconst mixins = {\n afterOutline(t: Theme) {\n return css`\n content: ' ';\n position: absolute;\n left: -${t.radioOutlineWidth};\n top: -${t.radioOutlineWidth};\n width: ${t.radioSizeAfter};\n height: ${t.radioSizeAfter};\n border-width: ${t.radioOutlineWidth};\n border-style: solid;\n border-radius: 50%;\n box-sizing: border-box;\n `;\n },\n};\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n cursor: pointer;\n position: relative;\n white-space: nowrap;\n padding-top: ${t.radioPaddingY};\n padding-bottom: ${t.radioPaddingY};\n display: inline-flex;\n align-items: baseline;\n line-height: ${t.radioLineHeight};\n font-size: ${t.radioFontSize};\n\n .${globalClasses.circle} {\n transition: background ${t.transitionDuration} ${t.transitionTimingFunction};\n }\n\n &:hover .${globalClasses.circle} {\n background: ${t.radioHoverBg};\n box-shadow: ${t.radioHoverShadow};\n }\n &:active .${globalClasses.circle} {\n background: ${t.radioActiveBg};\n box-shadow: ${t.radioActiveShadow};\n }\n\n &::before {\n // non-breaking space.\n // makes a correct space for absolutely positioned circle,\n // and also height and baseline for radio without caption.\n content: '\\\\00A0';\n display: inline-block;\n width: ${t.radioSize};\n flex: 0 0 auto;\n }\n `;\n },\n\n rootIE11() {\n return css`\n display: inline-table;\n `;\n },\n\n rootChecked(t: Theme) {\n return css`\n &:hover .${globalClasses.circle} {\n background: ${t.radioCheckedHoverBgColor};\n }\n `;\n },\n\n circle(t: Theme) {\n const labGrotesqueCompenstation = parseInt(t.labGrotesqueBaselineCompensation);\n const fontSize = parseInt(t.radioFontSize);\n\n const baselineCompensation = getLabGrotesqueBaselineCompensation(fontSize, labGrotesqueCompenstation, isChrome);\n const circleSize = `calc(${t.radioSize} - 2 * ${t.radioBorderWidthCompensation})`;\n const circleOffsetY = `calc(${t.radioCircleOffsetY} + ${t.radioBorderWidthCompensation} + ${baselineCompensation}px)`;\n const circleMarginX = t.radioBorderWidthCompensation;\n return css`\n background-image: ${t.radioBgImage};\n border-radius: 50%;\n border: ${t.radioBorder};\n box-shadow: ${t.radioBoxShadow};\n box-sizing: border-box;\n display: inline-block;\n height: ${circleSize};\n width: ${circleSize};\n position: absolute;\n left: 0;\n margin: ${circleOffsetY} ${circleMarginX} 0;\n background-color: ${t.radioBgColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorFocus};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorWarning};\n }\n `;\n },\n\n error(t: Theme) {\n return css`\n &::after {\n ${mixins.afterOutline(t)};\n box-shadow: ${t.radioFocusShadow};\n border-color: ${t.radioBorderColorError};\n }\n `;\n },\n\n checked(t: Theme) {\n return css`\n background-color: ${t.radioCheckedBgColor};\n border-color: ${t.radioCheckedBorderColor};\n\n &::before {\n content: ' ';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n height: ${t.radioBulletSize};\n width: ${t.radioBulletSize};\n border-radius: 50%;\n background: ${t.radioCheckedBulletColor};\n }\n `;\n },\n\n checkedDisabled(t: Theme) {\n return css`\n &::before {\n background: ${t.radioCheckedDisabledBulletBg};\n }\n `;\n },\n\n input() {\n return css`\n display: inline-block;\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n z-index: -1;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n background: ${t.radioDisabledBg} !important; // override root hover/active styles\n border-color: transparent !important; // override root hover/active styles\n box-shadow: ${t.radioDisabledShadow} !important; // override root hover/active styles\n `;\n },\n\n caption(t: Theme) {\n return css`\n display: ${t.radioCaptionDisplay};\n padding-left: ${t.radioCaptionGap};\n white-space: normal;\n color: ${t.radioTextColor};\n `;\n },\n\n captionIE11() {\n return css`\n display: table-cell;\n `;\n },\n\n captionDisabled(t: Theme) {\n return css`\n color: ${t.textColorDisabled};\n `;\n },\n\n placeholder() {\n return css`\n display: inline-block;\n `;\n },\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ScrollContainer.tsx"],"names":["React","PropTypes","LayoutEvents","CommonWrapper","cx","isIE11","rootNode","getDOMRect","createPropsGetter","isTestEnv","styles","globalClasses","scrollSizeParametersNames","getScrollYOffset","convertScrollbarXScrollState","convertScrollbarYScrollState","ScrollBar","ScrollContainerDataTids","root","inner","ScrollContainer","getProps","defaultProps","render","props","disabled","children","innerStyle","scrollBehavior","scrollBehaviour","maxHeight","maxWidth","scrollbarY","renderScrollbar","scrollbarX","setRootNode","handleMouseMove","handleMouseLeave","refInner","innerIE11","handleNativeScroll","axis","refScrollBar","refScrollBarX","refScrollBarY","offsetY","offsetX","invert","hideScrollBar","disableAnimations","hideScrollBarDelay","offset","handleScrollStateChange","scrollState","scrollY","scrollX","scrollXState","onScrollStateChangeX","scrollYState","onScrollStateChange","onScrollStateChangeY","scrollbar","element","preventWindowScroll","addEventListener","handleInnerScrollWheel","passive","removeEventListener","event","reflow","onScroll","preventDefault","emit","WheelEvent","shiftKey","hasScrollBar","pos","size","deltaY","right","currentTarget","pageX","bottom","pageY","setHover","updateInnerElement","setInnerElement","componentDidMount","componentDidUpdate","prevProps","scrollTo","scrollLeft","offsetLeft","scrollTop","scrollToTop","scrollToBottom","scrollHeight","offsetHeight","scrollToLeft","scrollToRight","scrollWidth","offsetWidth","Component","__KONTUR_REACT_UI__","propTypes","bool","oneOfType","string","number","oneOf","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isIE11 } from '../../lib/client';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTestEnv } from '../../lib/currentEnvironment';\n\nimport { styles, globalClasses } from './ScrollContainer.styles';\nimport { scrollSizeParametersNames } from './ScrollContainer.constants';\nimport {\n getScrollYOffset,\n convertScrollbarXScrollState,\n convertScrollbarYScrollState,\n} from './ScrollContainer.helpers';\nimport { ScrollAxis, ScrollBar, ScrollBarScrollState } from './ScrollBar';\n\nexport type ScrollContainerScrollStateX = 'left' | 'scroll' | 'right';\nexport type ScrollContainerScrollStateY = 'top' | 'scroll' | 'bottom';\nexport type ScrollContainerScrollState = ScrollContainerScrollStateY; // deprecated\nexport type ScrollBehaviour = 'auto' | 'smooth';\n\ntype OffsetCSSPropsY = 'top' | 'right' | 'bottom';\ntype OffsetCSSPropsX = 'right' | 'bottom' | 'left';\n\nexport interface ScrollContainerProps extends CommonProps {\n /**\n * Инвертировать цвет скроллбара\n * @default false\n */\n invert?: boolean;\n maxHeight?: React.CSSProperties['maxHeight'];\n maxWidth?: React.CSSProperties['maxWidth'];\n /**\n * @default false\n */\n preventWindowScroll?: boolean;\n /**\n * Поведение скролла (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior)\n * @default 'auto'\n */\n scrollBehaviour?: ScrollBehaviour;\n onScrollStateChangeX?: (scrollState: ScrollContainerScrollStateX) => void;\n onScrollStateChangeY?: (scrollState: ScrollContainerScrollStateY) => void;\n onScrollStateChange?: (scrollYState: ScrollContainerScrollState) => void; // deprecated\n onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;\n /**\n * Отключение кастомного скролла\n */\n disabled?: boolean;\n /**\n * Смещение вертикального скроллбара\n */\n offsetY?: Partial<Record<OffsetCSSPropsY, React.CSSProperties[OffsetCSSPropsY]>>;\n /**\n * Смещение горизонтального скроллбара\n */\n offsetX?: Partial<Record<OffsetCSSPropsX, React.CSSProperties[OffsetCSSPropsX]>>;\n /**\n * Скрывать скроллбар при отсутствии активности пользователя\n */\n hideScrollBar?: boolean;\n /**\n * Задержка перед скрытием скроллбара, ms. Работает только если `hideScrollBar = true`\n */\n hideScrollBarDelay?: number;\n /**\n * Отключить анимации\n */\n disableAnimations?: boolean;\n}\n\nexport const ScrollContainerDataTids = {\n root: 'ScrollContainer__root',\n inner: 'ScrollContainer__inner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n ScrollContainerProps,\n 'invert' | 'scrollBehaviour' | 'preventWindowScroll' | 'hideScrollBar' | 'disableAnimations' | 'hideScrollBarDelay'\n >\n>;\n\n@rootNode\nexport class ScrollContainer extends React.Component<ScrollContainerProps> {\n public static __KONTUR_REACT_UI__ = 'ScrollContainer';\n\n public static propTypes = {\n invert: PropTypes.bool,\n maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n scrollBehaviour: PropTypes.oneOf(['auto', 'smooth']),\n preventWindowScroll: PropTypes.bool,\n onScrollStateChange: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n invert: false,\n scrollBehaviour: 'auto',\n preventWindowScroll: false,\n hideScrollBar: false,\n disableAnimations: isTestEnv,\n hideScrollBarDelay: 500,\n };\n\n private getProps = createPropsGetter(ScrollContainer.defaultProps);\n\n private scrollX: Nullable<ScrollBar>;\n private scrollY: Nullable<ScrollBar>;\n private inner: Nullable<HTMLElement>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.updateInnerElement();\n }\n\n public componentDidUpdate(prevProps: ScrollContainerProps) {\n const preventWindowScroll = this.getProps().preventWindowScroll;\n if (this.inner) {\n if (prevProps.preventWindowScroll && !preventWindowScroll) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n if (!prevProps.preventWindowScroll && preventWindowScroll) {\n this.inner.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n }\n\n if (prevProps.disabled !== this.props.disabled && !this.props.disabled) {\n this.updateInnerElement();\n }\n }\n\n public render = () => {\n const props = this.props;\n\n if (this.props.disabled) {\n return this.props.children;\n }\n\n const innerStyle: React.CSSProperties = {\n scrollBehavior: this.getProps().scrollBehaviour,\n maxHeight: props.maxHeight,\n maxWidth: props.maxWidth,\n };\n\n const scrollbarY = this.renderScrollbar('y');\n const scrollbarX = this.renderScrollbar('x');\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={ScrollContainerDataTids.root}\n className={styles.root()}\n onMouseMove={this.handleMouseMove}\n onMouseLeave={this.handleMouseLeave}\n >\n {scrollbarY}\n {scrollbarX}\n <div\n style={innerStyle}\n ref={this.refInner}\n className={cx(styles.inner(), globalClasses.inner, isIE11 && styles.innerIE11())}\n data-tid={ScrollContainerDataTids.inner}\n onScroll={this.handleNativeScroll}\n >\n {props.children}\n </div>\n </div>\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n * @param {Element} element\n */\n public scrollTo(element: Nullable<HTMLElement>) {\n if (!element || !this.inner) {\n return;\n }\n\n this.inner.scrollLeft = element.offsetLeft;\n this.inner.scrollTop = getScrollYOffset(element, this.inner);\n }\n\n /**\n * @public\n */\n public scrollToTop() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = 0;\n }\n\n /**\n * @public\n */\n public scrollToBottom() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = this.inner.scrollHeight - this.inner.offsetHeight;\n }\n\n /**\n * @public\n */\n public scrollToLeft() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollLeft = 0;\n }\n\n /**\n * @public\n */\n public scrollToRight() {\n if (!this.inner) {\n return;\n }\n\n this.inner.scrollLeft = this.inner.scrollWidth - this.inner.offsetWidth;\n }\n\n private hasScrollBar(axis: ScrollAxis) {\n if (!this.inner) {\n return false;\n }\n\n return axis === 'x'\n ? this.inner.offsetWidth < this.inner.scrollWidth\n : this.inner.offsetHeight < this.inner.scrollHeight;\n }\n\n private renderScrollbar = (axis: ScrollAxis) => {\n const refScrollBar = axis === 'x' ? this.refScrollBarX : this.refScrollBarY;\n const { offsetY, offsetX, invert, hideScrollBar, disableAnimations, hideScrollBarDelay } = this.getProps();\n\n const offset = axis === 'x' ? offsetX : offsetY;\n\n return (\n <ScrollBar\n axis={axis}\n ref={refScrollBar}\n invert={invert}\n onScrollStateChange={this.handleScrollStateChange}\n offset={offset}\n hideScrollBar={hideScrollBar}\n disableAnimations={disableAnimations}\n hideScrollBarDelay={hideScrollBarDelay}\n />\n );\n };\n\n private handleScrollStateChange = (scrollState: ScrollBarScrollState, axis: ScrollAxis) => {\n if (!this.scrollY || !this.scrollX) {\n return;\n }\n\n if (axis === 'x') {\n const scrollXState = convertScrollbarXScrollState(scrollState);\n\n this.props.onScrollStateChangeX?.(scrollXState);\n return;\n }\n\n const scrollYState = convertScrollbarYScrollState(scrollState);\n\n this.props.onScrollStateChange?.(scrollYState);\n this.props.onScrollStateChangeY?.(scrollYState);\n };\n\n private refScrollBarY = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollY = scrollbar;\n };\n\n private refScrollBarX = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollX = scrollbar;\n };\n\n private refInner = (element: HTMLElement | null) => {\n if (!this.inner && element && this.getProps().preventWindowScroll) {\n element.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n if (this.inner && !element) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n this.inner = element;\n };\n\n private handleNativeScroll = (event: React.UIEvent<HTMLDivElement>) => {\n this.scrollY?.reflow(event);\n this.scrollX?.reflow(event);\n\n this.props.onScroll?.(event);\n if (this.getProps().preventWindowScroll) {\n event.preventDefault();\n return;\n }\n LayoutEvents.emit();\n };\n\n private handleInnerScrollWheel = (event: Event) => {\n if (!this.inner || !(event instanceof WheelEvent)) {\n return;\n }\n\n const axis: ScrollAxis = event.shiftKey ? 'x' : 'y';\n\n if (this.hasScrollBar(axis)) {\n const { pos, size, offset } = scrollSizeParametersNames[axis];\n\n if (event.deltaY > 0 && this.inner[size] <= this.inner[pos] + this.inner[offset]) {\n event.preventDefault();\n return false;\n }\n if (event.deltaY < 0 && this.inner[pos] <= 0) {\n event.preventDefault();\n return false;\n }\n }\n };\n\n private handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const right = getDOMRect(event.currentTarget).right - event.pageX;\n const bottom = getDOMRect(event.currentTarget).bottom - event.pageY;\n\n this.scrollY?.setHover(right <= 12);\n this.scrollX?.setHover(right >= 12 && bottom <= 12);\n };\n\n private handleMouseLeave = () => {\n this.scrollY?.setHover(false);\n this.scrollX?.setHover(false);\n };\n\n private updateInnerElement = () => {\n this.scrollX?.setInnerElement(this.inner);\n this.scrollY?.setInnerElement(this.inner);\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["ScrollContainer.tsx"],"names":["React","PropTypes","LayoutEvents","CommonWrapper","cx","isIE11","rootNode","getDOMRect","createPropsGetter","isTestEnv","styles","globalClasses","scrollSizeParametersNames","getScrollYOffset","convertScrollbarXScrollState","convertScrollbarYScrollState","ScrollBar","ScrollContainerDataTids","root","inner","ScrollContainer","getProps","defaultProps","render","props","disabled","children","innerStyle","scrollBehavior","scrollBehaviour","maxHeight","maxWidth","scrollbarY","renderScrollbar","scrollbarX","setRootNode","handleMouseMove","handleMouseLeave","refInner","innerIE11","handleNativeScroll","axis","refScrollBar","refScrollBarX","refScrollBarY","offsetY","offsetX","invert","hideScrollBar","disableAnimations","hideScrollBarDelay","offset","handleScrollStateChange","scrollState","scrollY","scrollX","scrollXState","onScrollStateChangeX","scrollYState","onScrollStateChange","onScrollStateChangeY","scrollbar","element","preventWindowScroll","addEventListener","handleInnerScrollWheel","passive","removeEventListener","event","reflow","onScroll","preventDefault","emit","WheelEvent","shiftKey","hasScrollBar","pos","size","deltaY","right","currentTarget","pageX","bottom","pageY","setHover","updateInnerElement","setInnerElement","componentDidMount","componentDidUpdate","prevProps","scrollTo","scrollLeft","offsetLeft","scrollTop","scrollToTop","scrollToBottom","scrollHeight","offsetHeight","scrollToLeft","scrollToRight","scrollWidth","offsetWidth","Component","__KONTUR_REACT_UI__","propTypes","bool","oneOfType","string","number","oneOf","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isIE11 } from '../../lib/client';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTestEnv } from '../../lib/currentEnvironment';\n\nimport { styles, globalClasses } from './ScrollContainer.styles';\nimport { scrollSizeParametersNames } from './ScrollContainer.constants';\nimport {\n getScrollYOffset,\n convertScrollbarXScrollState,\n convertScrollbarYScrollState,\n} from './ScrollContainer.helpers';\nimport { ScrollAxis, ScrollBar, ScrollBarScrollState } from './ScrollBar';\n\nexport type ScrollContainerScrollStateX = 'left' | 'scroll' | 'right';\nexport type ScrollContainerScrollStateY = 'top' | 'scroll' | 'bottom';\nexport type ScrollContainerScrollState = ScrollContainerScrollStateY; // deprecated\nexport type ScrollBehaviour = 'auto' | 'smooth';\n\ntype OffsetCSSPropsY = 'top' | 'right' | 'bottom';\ntype OffsetCSSPropsX = 'right' | 'bottom' | 'left';\n\nexport interface ScrollContainerProps extends CommonProps {\n /**\n * Инвертировать цвет скроллбара\n * @default false\n */\n invert?: boolean;\n maxHeight?: React.CSSProperties['maxHeight'];\n maxWidth?: React.CSSProperties['maxWidth'];\n /**\n * @default false\n */\n preventWindowScroll?: boolean;\n /**\n * Поведение скролла (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior)\n * @default 'auto'\n */\n scrollBehaviour?: ScrollBehaviour;\n onScrollStateChangeX?: (scrollState: ScrollContainerScrollStateX) => void;\n onScrollStateChangeY?: (scrollState: ScrollContainerScrollStateY) => void;\n onScrollStateChange?: (scrollYState: ScrollContainerScrollState) => void; // deprecated\n onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;\n /**\n * Отключение кастомного скролла\n */\n disabled?: boolean;\n /**\n * Смещение вертикального скроллбара\n */\n offsetY?: Partial<Record<OffsetCSSPropsY, React.CSSProperties[OffsetCSSPropsY]>>;\n /**\n * Смещение горизонтального скроллбара\n */\n offsetX?: Partial<Record<OffsetCSSPropsX, React.CSSProperties[OffsetCSSPropsX]>>;\n /**\n * Скрывать скроллбар при отсутствии активности пользователя\n */\n hideScrollBar?: boolean;\n /**\n * Задержка перед скрытием скроллбара, ms. Работает только если `hideScrollBar = true`\n */\n hideScrollBarDelay?: number;\n /**\n * Отключить анимации\n */\n disableAnimations?: boolean;\n}\n\nexport const ScrollContainerDataTids = {\n root: 'ScrollContainer__root',\n inner: 'ScrollContainer__inner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n ScrollContainerProps,\n 'invert' | 'scrollBehaviour' | 'preventWindowScroll' | 'hideScrollBar' | 'disableAnimations' | 'hideScrollBarDelay'\n >\n>;\n\n@rootNode\nexport class ScrollContainer extends React.Component<ScrollContainerProps> {\n public static __KONTUR_REACT_UI__ = 'ScrollContainer';\n\n public inner: Nullable<HTMLElement>;\n\n public static propTypes = {\n invert: PropTypes.bool,\n maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n scrollBehaviour: PropTypes.oneOf(['auto', 'smooth']),\n preventWindowScroll: PropTypes.bool,\n onScrollStateChange: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n invert: false,\n scrollBehaviour: 'auto',\n preventWindowScroll: false,\n hideScrollBar: false,\n disableAnimations: isTestEnv,\n hideScrollBarDelay: 500,\n };\n\n private getProps = createPropsGetter(ScrollContainer.defaultProps);\n\n private scrollX: Nullable<ScrollBar>;\n private scrollY: Nullable<ScrollBar>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.updateInnerElement();\n }\n\n public componentDidUpdate(prevProps: ScrollContainerProps) {\n const preventWindowScroll = this.getProps().preventWindowScroll;\n if (this.inner) {\n if (prevProps.preventWindowScroll && !preventWindowScroll) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n if (!prevProps.preventWindowScroll && preventWindowScroll) {\n this.inner.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n }\n\n if (prevProps.disabled !== this.props.disabled && !this.props.disabled) {\n this.updateInnerElement();\n }\n }\n\n public render = () => {\n const props = this.props;\n\n if (this.props.disabled) {\n return this.props.children;\n }\n\n const innerStyle: React.CSSProperties = {\n scrollBehavior: this.getProps().scrollBehaviour,\n maxHeight: props.maxHeight,\n maxWidth: props.maxWidth,\n };\n\n const scrollbarY = this.renderScrollbar('y');\n const scrollbarX = this.renderScrollbar('x');\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={ScrollContainerDataTids.root}\n className={styles.root()}\n onMouseMove={this.handleMouseMove}\n onMouseLeave={this.handleMouseLeave}\n >\n {scrollbarY}\n {scrollbarX}\n <div\n style={innerStyle}\n ref={this.refInner}\n className={cx(styles.inner(), globalClasses.inner, isIE11 && styles.innerIE11())}\n data-tid={ScrollContainerDataTids.inner}\n onScroll={this.handleNativeScroll}\n >\n {props.children}\n </div>\n </div>\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n * @param {Element} element\n */\n public scrollTo(element: Nullable<HTMLElement>) {\n if (!element || !this.inner) {\n return;\n }\n\n this.inner.scrollLeft = element.offsetLeft;\n this.inner.scrollTop = getScrollYOffset(element, this.inner);\n }\n\n /**\n * @public\n */\n public scrollToTop() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = 0;\n }\n\n /**\n * @public\n */\n public scrollToBottom() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = this.inner.scrollHeight - this.inner.offsetHeight;\n }\n\n /**\n * @public\n */\n public scrollToLeft() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollLeft = 0;\n }\n\n /**\n * @public\n */\n public scrollToRight() {\n if (!this.inner) {\n return;\n }\n\n this.inner.scrollLeft = this.inner.scrollWidth - this.inner.offsetWidth;\n }\n\n public hasScrollBar(axis: ScrollAxis) {\n if (!this.inner) {\n return false;\n }\n\n return axis === 'x'\n ? this.inner.offsetWidth < this.inner.scrollWidth\n : this.inner.offsetHeight < this.inner.scrollHeight;\n }\n\n private renderScrollbar = (axis: ScrollAxis) => {\n const refScrollBar = axis === 'x' ? this.refScrollBarX : this.refScrollBarY;\n const { offsetY, offsetX, invert, hideScrollBar, disableAnimations, hideScrollBarDelay } = this.getProps();\n\n const offset = axis === 'x' ? offsetX : offsetY;\n\n return (\n <ScrollBar\n axis={axis}\n ref={refScrollBar}\n invert={invert}\n onScrollStateChange={this.handleScrollStateChange}\n offset={offset}\n hideScrollBar={hideScrollBar}\n disableAnimations={disableAnimations}\n hideScrollBarDelay={hideScrollBarDelay}\n />\n );\n };\n\n private handleScrollStateChange = (scrollState: ScrollBarScrollState, axis: ScrollAxis) => {\n if (!this.scrollY || !this.scrollX) {\n return;\n }\n\n if (axis === 'x') {\n const scrollXState = convertScrollbarXScrollState(scrollState);\n\n this.props.onScrollStateChangeX?.(scrollXState);\n return;\n }\n\n const scrollYState = convertScrollbarYScrollState(scrollState);\n\n this.props.onScrollStateChange?.(scrollYState);\n this.props.onScrollStateChangeY?.(scrollYState);\n };\n\n private refScrollBarY = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollY = scrollbar;\n };\n\n private refScrollBarX = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollX = scrollbar;\n };\n\n private refInner = (element: HTMLElement | null) => {\n if (!this.inner && element && this.getProps().preventWindowScroll) {\n element.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n if (this.inner && !element) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n this.inner = element;\n };\n\n private handleNativeScroll = (event: React.UIEvent<HTMLDivElement>) => {\n this.scrollY?.reflow(event);\n this.scrollX?.reflow(event);\n\n this.props.onScroll?.(event);\n if (this.getProps().preventWindowScroll) {\n event.preventDefault();\n return;\n }\n LayoutEvents.emit();\n };\n\n private handleInnerScrollWheel = (event: Event) => {\n if (!this.inner || !(event instanceof WheelEvent)) {\n return;\n }\n\n const axis: ScrollAxis = event.shiftKey ? 'x' : 'y';\n\n if (this.hasScrollBar(axis)) {\n const { pos, size, offset } = scrollSizeParametersNames[axis];\n\n if (event.deltaY > 0 && this.inner[size] <= this.inner[pos] + this.inner[offset]) {\n event.preventDefault();\n return false;\n }\n if (event.deltaY < 0 && this.inner[pos] <= 0) {\n event.preventDefault();\n return false;\n }\n }\n };\n\n private handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const right = getDOMRect(event.currentTarget).right - event.pageX;\n const bottom = getDOMRect(event.currentTarget).bottom - event.pageY;\n\n this.scrollY?.setHover(right <= 12);\n this.scrollX?.setHover(right >= 12 && bottom <= 12);\n };\n\n private handleMouseLeave = () => {\n this.scrollY?.setHover(false);\n this.scrollX?.setHover(false);\n };\n\n private updateInnerElement = () => {\n this.scrollX?.setInnerElement(this.inner);\n this.scrollY?.setInnerElement(this.inner);\n };\n}\n"]}
|