@skbkontur/react-ui 4.0.6 → 4.1.2
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 +53 -0
- package/README.md +1 -1
- package/cjs/components/Autocomplete/Autocomplete.js +8 -4
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +1 -5
- package/cjs/components/Button/Button.js +4 -12
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +5 -0
- package/cjs/components/Checkbox/Checkbox.js +29 -1
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -0
- package/cjs/components/Checkbox/Checkbox.styles.js +27 -24
- package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyHelper.js +18 -12
- package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.js +15 -7
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInputHelper.js +7 -5
- package/cjs/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
- package/cjs/components/CurrencyInput/CursorHelper.js +19 -16
- package/cjs/components/CurrencyInput/CursorHelper.js.map +1 -1
- package/cjs/components/DateInput/DateInput.js +5 -1
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
- package/cjs/components/DateInput/helpers/InternalDateMediator.js +12 -2
- package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
- package/cjs/components/DateInput/helpers/inputNumber.d.ts +1 -1
- package/cjs/components/DateInput/helpers/inputNumber.js +45 -12
- package/cjs/components/DateInput/helpers/inputNumber.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -4
- package/cjs/components/DropdownMenu/DropdownMenu.js +2 -16
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.js +8 -5
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.styles.d.ts +3 -2
- package/cjs/components/FileUploader/FileUploader.styles.js +21 -15
- package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
- package/cjs/components/Gapped/Gapped.js +4 -3
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.js +3 -5
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js +5 -7
- package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -1
- package/cjs/components/Group/Group.js +74 -31
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +1 -5
- package/cjs/components/Input/Input.js +14 -21
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +2 -13
- package/cjs/components/Kebab/Kebab.js +5 -29
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.styles.js +3 -2
- package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
- package/cjs/components/Modal/Modal.js +2 -1
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.js +10 -6
- package/cjs/components/Modal/Modal.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/Paging/Paging.d.ts +13 -3
- package/cjs/components/Paging/Paging.js +15 -4
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/PagingDefaultComponent.d.ts +9 -0
- package/cjs/components/Paging/PagingDefaultComponent.js +21 -0
- package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -0
- package/cjs/components/PasswordInput/PasswordInput.d.ts +2 -0
- package/cjs/components/PasswordInput/PasswordInput.js +23 -6
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
- package/cjs/components/PasswordInput/PasswordInputIcon.js +15 -0
- package/cjs/components/PasswordInput/PasswordInputIcon.js.map +1 -0
- package/cjs/components/Radio/Radio.styles.js +4 -7
- package/cjs/components/Radio/Radio.styles.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.js +1 -1
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +7 -2
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +3 -4
- package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
- package/cjs/components/Select/Select.js +33 -15
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.js +2 -1
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +0 -1
- package/cjs/components/Spinner/Spinner.js +1 -5
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Spinner/SpinnerFallbackAnimation.js +16 -5
- package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
- package/cjs/components/Switcher/Switcher.styles.js +2 -2
- package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +2 -2
- package/cjs/components/Textarea/Textarea.js +6 -6
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/TextareaCounter.d.ts +1 -2
- package/cjs/components/Textarea/TextareaCounter.js +15 -6
- package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
- package/cjs/components/Toast/ToastView.js +1 -1
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toast/ToastView.styles.d.ts +1 -1
- package/cjs/components/Toast/ToastView.styles.js +3 -2
- package/cjs/components/Toast/ToastView.styles.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +1 -1
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Toggle/Toggle.styles.js +12 -10
- package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
- package/cjs/components/Token/Token.js +14 -2
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/Token/Token.styles.js +13 -6
- package/cjs/components/Token/Token.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +10 -0
- package/cjs/components/TokenInput/TokenInput.js +30 -12
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.styles.js +3 -2
- package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.js +5 -2
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.js +2 -0
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/hooks/useDrop.js +3 -1
- package/cjs/hooks/useDrop.js.map +1 -1
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +2 -0
- package/cjs/index.js.map +1 -1
- package/cjs/internal/Calendar/Calendar.js +3 -3
- package/cjs/internal/Calendar/Calendar.js.map +1 -1
- package/cjs/internal/Calendar/CalendarDateShape.d.ts +1 -1
- package/cjs/internal/Calendar/MonthViewModel.js +36 -17
- package/cjs/internal/Calendar/MonthViewModel.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js +3 -3
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +6 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.js +3 -2
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +35 -35
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.js +22 -11
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +3 -1
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +14 -10
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.js +5 -12
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -2
- package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
- package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
- package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js +16 -0
- package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
- package/cjs/internal/MaskedInput/MaskedInput.js +9 -2
- package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/internal/Menu/Menu.js +14 -18
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/Menu/Menu.styles.js +5 -3
- package/cjs/internal/Menu/Menu.styles.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +1 -0
- package/cjs/internal/Popup/Popup.js +8 -9
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -0
- package/cjs/internal/PopupMenu/PopupMenu.js +13 -0
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/PopupMenu/validatePositions.js +6 -6
- package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
- package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +9 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.js +4 -1
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.js +11 -19
- package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
- package/cjs/internal/ThemePlayground/SizesGroup.d.ts +4 -0
- package/cjs/internal/ThemePlayground/SizesGroup.js +20 -0
- package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -0
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -2
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeEditor.js +6 -1
- package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
- package/cjs/internal/ThemePlayground/VariableValue.js +18 -6
- package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
- package/cjs/internal/ThemePlayground/constants.d.ts +3 -1
- package/cjs/internal/ThemePlayground/constants.js +3 -1
- package/cjs/internal/ThemePlayground/constants.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js +4 -7
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.js +5 -6
- package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
- package/cjs/internal/ZIndex/ZIndexStorage.d.ts +2 -1
- package/cjs/internal/ZIndex/ZIndexStorage.js +13 -6
- package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
- package/cjs/internal/icons/16px/index.d.ts +19 -19
- package/cjs/internal/icons/16px/index.js +45 -38
- package/cjs/internal/icons/16px/index.js.map +1 -1
- package/cjs/internal/icons/20px/svg.js +6 -0
- package/cjs/internal/icons/20px/svg.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +20 -1
- package/cjs/internal/themes/DefaultTheme.js +40 -5
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/internal/themes/NotFlat.d.ts +6 -0
- package/cjs/internal/themes/NotFlat.js +12 -2
- package/cjs/internal/themes/NotFlat.js.map +1 -1
- package/cjs/internal/themes/Theme2022.d.ts +66 -0
- package/cjs/internal/themes/Theme2022.js +100 -0
- package/cjs/internal/themes/Theme2022.js.map +1 -0
- package/cjs/internal/themes/Theme2022Dark.d.ts +5 -0
- package/cjs/internal/themes/Theme2022Dark.js +9 -0
- package/cjs/internal/themes/Theme2022Dark.js.map +1 -0
- package/cjs/lib/animation/index.d.ts +1 -1
- package/cjs/lib/animation/index.js +3 -3
- package/cjs/lib/animation/index.js.map +1 -1
- package/cjs/lib/date/InternalDate.js +23 -9
- package/cjs/lib/date/InternalDate.js.map +1 -1
- package/cjs/lib/date/InternalDateCalculator.js +16 -2
- package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
- package/cjs/lib/date/InternalDateGetter.d.ts +1 -1
- package/cjs/lib/date/InternalDateGetter.js +27 -7
- package/cjs/lib/date/InternalDateGetter.js.map +1 -1
- package/cjs/lib/date/InternalDateTransformer.js +11 -2
- package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
- package/cjs/lib/date/InternalDateValidator.js +52 -17
- package/cjs/lib/date/InternalDateValidator.js.map +1 -1
- package/cjs/lib/date/types.d.ts +4 -0
- package/cjs/lib/date/types.js.map +1 -1
- package/cjs/lib/events/MouseDrag.js +5 -1
- package/cjs/lib/events/MouseDrag.js.map +1 -1
- package/cjs/lib/events/keyboard/extractCode.js +7 -5
- package/cjs/lib/events/keyboard/extractCode.js.map +1 -1
- package/cjs/lib/needsPolyfillPlaceholder.d.ts +6 -0
- package/cjs/lib/needsPolyfillPlaceholder.js +19 -0
- package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -0
- package/cjs/lib/rootNode/getRootNode.d.ts +9 -0
- package/cjs/lib/rootNode/getRootNode.js +37 -8
- package/cjs/lib/rootNode/getRootNode.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -1
- package/cjs/lib/rootNode/rootNodeDecorator.js +11 -2
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/lib/stringUtils.js +3 -1
- package/cjs/lib/stringUtils.js.map +1 -1
- package/cjs/lib/styles/ColorFactory.js +9 -9
- package/cjs/lib/styles/ColorFactory.js.map +1 -1
- package/cjs/lib/styles/ColorHelpers.d.ts +1 -0
- package/cjs/lib/styles/ColorHelpers.js +33 -10
- package/cjs/lib/styles/ColorHelpers.js.map +1 -1
- package/cjs/lib/styles/ColorObject.js +3 -2
- package/cjs/lib/styles/ColorObject.js.map +1 -1
- package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
- package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js +9 -0
- package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
- package/cjs/lib/taskWithDelayAndMinimalDuration.js +3 -1
- package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/cjs/lib/theming/Emotion.js +5 -2
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/cjs/lib/theming/ThemeFactory.js +5 -1
- package/cjs/lib/theming/ThemeFactory.js.map +1 -1
- package/cjs/lib/theming/ThemeHelpers.js +7 -2
- package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
- package/cjs/lib/theming/themes/Theme2022.d.ts +1 -0
- package/cjs/lib/theming/themes/Theme2022.js +6 -0
- package/cjs/lib/theming/themes/Theme2022.js.map +1 -0
- package/cjs/lib/theming/themes/Theme2022Dark.d.ts +1 -0
- package/cjs/lib/theming/themes/Theme2022Dark.js +9 -0
- package/cjs/lib/theming/themes/Theme2022Dark.js.map +1 -0
- package/cjs/lib/utils.d.ts +15 -0
- package/cjs/lib/utils.js +45 -9
- package/cjs/lib/utils.js.map +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +6 -5
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Button/Button/Button.js +4 -10
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -5
- package/components/Checkbox/Checkbox/Checkbox.js +29 -2
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +5 -0
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +22 -18
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
- package/components/Checkbox/Checkbox.styles.d.ts +1 -0
- package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +12 -11
- package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +15 -7
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js +7 -1
- package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js.map +1 -1
- package/components/CurrencyInput/CursorHelper/CursorHelper.js +18 -11
- package/components/CurrencyInput/CursorHelper/CursorHelper.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js +9 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +16 -10
- package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
- package/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
- package/components/DateInput/helpers/inputNumber/inputNumber.js +53 -16
- package/components/DateInput/helpers/inputNumber/inputNumber.js.map +1 -1
- package/components/DateInput/helpers/inputNumber.d.ts +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -16
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +1 -4
- package/components/FileUploader/FileUploader/FileUploader.js +9 -7
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +15 -12
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
- package/components/FileUploader/FileUploader.styles.d.ts +3 -2
- package/components/Gapped/Gapped/Gapped.js +4 -3
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +5 -7
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js +1 -2
- package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js.map +1 -1
- package/components/Group/Group/Group.js +62 -30
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Input/Input/Input.js +7 -25
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +1 -5
- package/components/Kebab/Kebab/Kebab.js +3 -13
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +2 -13
- package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +1 -1
- package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
- package/components/Modal/Modal/Modal.js +2 -1
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.styles/Modal.styles.js +4 -4
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- 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/Paging/Paging/Paging.js +13 -14
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +13 -3
- package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js +19 -0
- package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -0
- package/components/Paging/PagingDefaultComponent/package.json +6 -0
- package/components/Paging/PagingDefaultComponent.d.ts +9 -0
- package/components/PasswordInput/PasswordInput/PasswordInput.js +27 -8
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +2 -0
- package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js +15 -0
- package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js.map +1 -0
- package/components/PasswordInput/PasswordInputIcon/package.json +6 -0
- package/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
- package/components/Radio/Radio.styles/Radio.styles.js +2 -1
- package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
- package/components/RadioGroup/RadioGroup/RadioGroup.js +2 -2
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -0
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -3
- package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
- package/components/Select/Select/Select.js +31 -15
- package/components/Select/Select/Select.js.map +1 -1
- package/components/SidePage/SidePage/SidePage.js +2 -1
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/Spinner/Spinner/Spinner.js +6 -2
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +0 -1
- package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +18 -4
- package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
- package/components/Switcher/Switcher.styles/Switcher.styles.js +1 -1
- package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
- package/components/Textarea/Textarea/Textarea.js +6 -6
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +2 -2
- package/components/Textarea/TextareaCounter/TextareaCounter.js +11 -2
- package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
- package/components/Textarea/TextareaCounter.d.ts +1 -2
- package/components/Toast/ToastView/ToastView.js +1 -1
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toast/ToastView.styles/ToastView.styles.js +2 -2
- package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
- package/components/Toast/ToastView.styles.d.ts +1 -1
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +1 -1
- package/components/Toggle/Toggle.styles/Toggle.styles.js +3 -4
- package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
- package/components/Token/Token/Token.js +12 -1
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.styles/Token.styles.js +11 -4
- package/components/Token/Token.styles/Token.styles.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +25 -16
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +10 -0
- 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.map +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js +5 -2
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +2 -0
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +1 -1
- package/hooks/useDrop/useDrop.js +5 -1
- package/hooks/useDrop/useDrop.js.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/internal/Calendar/Calendar/Calendar.js +6 -4
- package/internal/Calendar/Calendar/Calendar.js.map +1 -1
- package/internal/Calendar/CalendarDateShape.d.ts +1 -1
- package/internal/Calendar/MonthViewModel/MonthViewModel.js +35 -18
- package/internal/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -3
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +23 -15
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +18 -17
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +35 -35
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
- package/internal/DateSelect/DateSelect/DateSelect.js +21 -15
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +5 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -0
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +1 -1
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +14 -21
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
- package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
- package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js +14 -0
- package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
- package/internal/InternalMenu/addIconPaddingIfPartOfMenu/package.json +6 -0
- package/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
- package/internal/MaskedInput/MaskedInput/MaskedInput.js +10 -3
- package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/internal/Menu/Menu/Menu.js +11 -19
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.styles/Menu.styles.js +1 -1
- package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/Popup/Popup/Popup.js +8 -7
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +1 -0
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +8 -0
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +4 -0
- package/internal/PopupMenu/validatePositions/validatePositions.js +6 -6
- package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
- package/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -2
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +5 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/ThemePlayground/Playground/Playground.js +15 -29
- package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
- package/internal/ThemePlayground/SizesGroup/SizesGroup.js +29 -0
- package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -0
- package/internal/ThemePlayground/SizesGroup/package.json +6 -0
- package/internal/ThemePlayground/SizesGroup.d.ts +4 -0
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +14 -2
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
- package/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
- package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js +5 -1
- package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
- package/internal/ThemePlayground/VariableValue/VariableValue.js +16 -5
- package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
- package/internal/ThemePlayground/constants/constants.js +2 -0
- package/internal/ThemePlayground/constants/constants.js.map +1 -1
- package/internal/ThemePlayground/constants.d.ts +3 -1
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +3 -6
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +4 -6
- package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +12 -6
- package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
- package/internal/ZIndex/ZIndexStorage.d.ts +2 -1
- package/internal/icons/16px/index/index.js +28 -20
- package/internal/icons/16px/index/index.js.map +1 -1
- package/internal/icons/16px/index.d.ts +19 -19
- package/internal/icons/20px/svg/svg.js +5 -0
- package/internal/icons/20px/svg/svg.js.map +1 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +48 -4
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +20 -1
- package/internal/themes/NotFlat/NotFlat.js +15 -0
- package/internal/themes/NotFlat/NotFlat.js.map +1 -1
- package/internal/themes/NotFlat.d.ts +6 -0
- package/internal/themes/Theme2022/Theme2022.js +78 -0
- package/internal/themes/Theme2022/Theme2022.js.map +1 -0
- package/internal/themes/Theme2022/package.json +6 -0
- package/internal/themes/Theme2022.d.ts +66 -0
- package/internal/themes/Theme2022Dark/Theme2022Dark.js +17 -0
- package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
- package/internal/themes/Theme2022Dark/package.json +6 -0
- package/internal/themes/Theme2022Dark.d.ts +5 -0
- package/lib/animation/index/index.js +1 -1
- package/lib/animation/index/index.js.map +1 -1
- package/lib/animation/index.d.ts +1 -1
- package/lib/date/InternalDate/InternalDate.js +16 -1
- package/lib/date/InternalDate/InternalDate.js.map +1 -1
- package/lib/date/InternalDateCalculator/InternalDateCalculator.js +14 -2
- package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
- package/lib/date/InternalDateGetter/InternalDateGetter.js +23 -7
- package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
- package/lib/date/InternalDateGetter.d.ts +1 -1
- package/lib/date/InternalDateTransformer/InternalDateTransformer.js +11 -1
- package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
- package/lib/date/InternalDateValidator/InternalDateValidator.js +75 -34
- package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
- package/lib/date/types/types.js.map +1 -1
- package/lib/date/types.d.ts +4 -0
- package/lib/events/MouseDrag/MouseDrag.js +5 -1
- package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
- package/lib/events/keyboard/extractCode/extractCode.js +5 -5
- package/lib/events/keyboard/extractCode/extractCode.js.map +1 -1
- package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +21 -0
- package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -0
- package/lib/needsPolyfillPlaceholder/package.json +6 -0
- package/lib/needsPolyfillPlaceholder.d.ts +6 -0
- package/lib/rootNode/getRootNode/getRootNode.js +36 -8
- package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
- package/lib/rootNode/getRootNode.d.ts +9 -0
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +3 -1
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +9 -1
- package/lib/stringUtils/stringUtils.js +4 -1
- package/lib/stringUtils/stringUtils.js.map +1 -1
- package/lib/styles/ColorFactory/ColorFactory.js +9 -9
- package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
- package/lib/styles/ColorHelpers/ColorHelpers.js +26 -9
- package/lib/styles/ColorHelpers/ColorHelpers.js.map +1 -1
- package/lib/styles/ColorHelpers.d.ts +1 -0
- package/lib/styles/ColorObject/ColorObject.js +2 -2
- package/lib/styles/ColorObject/ColorObject.js.map +1 -1
- package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js +9 -0
- package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js.map +1 -0
- package/lib/styles/getLabGrotesqueBaselineCompensation/package.json +6 -0
- package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +4 -1
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/lib/theming/Emotion/Emotion.js +5 -2
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/lib/theming/ThemeFactory/ThemeFactory.js +5 -2
- package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
- package/lib/theming/ThemeHelpers/ThemeHelpers.js +5 -1
- package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
- package/lib/theming/themes/Theme2022/Theme2022.js +4 -0
- package/lib/theming/themes/Theme2022/Theme2022.js.map +1 -0
- package/lib/theming/themes/Theme2022/package.json +6 -0
- package/lib/theming/themes/Theme2022.d.ts +1 -0
- package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js +5 -0
- package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
- package/lib/theming/themes/Theme2022Dark/package.json +6 -0
- package/lib/theming/themes/Theme2022Dark.d.ts +1 -0
- package/lib/utils/utils.js +42 -6
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +15 -0
- package/package.json +5 -3
- package/cjs/components/Button/Corners.d.ts +0 -6
- package/cjs/components/Button/Corners.js +0 -5
- package/cjs/components/Button/Corners.js.map +0 -1
- package/cjs/lib/polyfillPlaceholder.d.ts +0 -1
- package/cjs/lib/polyfillPlaceholder.js +0 -17
- package/cjs/lib/polyfillPlaceholder.js.map +0 -1
- package/components/Button/Corners/Corners.js +0 -6
- package/components/Button/Corners/Corners.js.map +0 -1
- package/components/Button/Corners/package.json +0 -6
- package/components/Button/Corners.d.ts +0 -6
- package/lib/polyfillPlaceholder/package.json +0 -6
- package/lib/polyfillPlaceholder/polyfillPlaceholder.js +0 -12
- package/lib/polyfillPlaceholder/polyfillPlaceholder.js.map +0 -1
- package/lib/polyfillPlaceholder.d.ts +0 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import ReactDOM from 'react-dom';
|
|
3
|
+
import ReactDOM from 'react-dom';
|
|
4
|
+
import propTypes from 'prop-types';
|
|
5
|
+
import { safePropTypesInstanceOf } from "../../../lib/SSRSafe"; // Заглушка нужна для корректной гидрации порталов после SSR,
|
|
4
6
|
// которую реакт сам пока не поддерживает.
|
|
5
7
|
// @see https://github.com/facebook/react/issues/13097
|
|
6
8
|
// А также для вставки актуального render-container-id на клиенте.
|
|
@@ -63,4 +65,11 @@ export var RenderInnerContainer = /*#__PURE__*/function (_React$Component) {
|
|
|
63
65
|
|
|
64
66
|
return RenderInnerContainer;
|
|
65
67
|
}(React.Component);
|
|
66
|
-
RenderInnerContainer.__KONTUR_REACT_UI__ = 'RenderInnerContainer';
|
|
68
|
+
RenderInnerContainer.__KONTUR_REACT_UI__ = 'RenderInnerContainer';
|
|
69
|
+
Portal.propTypes = {
|
|
70
|
+
container: safePropTypesInstanceOf(function () {
|
|
71
|
+
return HTMLElement;
|
|
72
|
+
}),
|
|
73
|
+
rt_rootID: propTypes.string.isRequired,
|
|
74
|
+
children: propTypes.node.isRequired
|
|
75
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["RenderInnerContainer.tsx"],"names":["React","ReactDOM","SSRPlaceholder","Portal","container","rt_rootID","children","createPortal","RenderInnerContainer","render","props","anchor","domContainer","rootId","inner","Component","__KONTUR_REACT_UI__"],"mappings":"sEAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,QAAP,MAAqB,WAArB
|
|
1
|
+
{"version":3,"sources":["RenderInnerContainer.tsx"],"names":["React","ReactDOM","propTypes","safePropTypesInstanceOf","SSRPlaceholder","Portal","container","rt_rootID","children","createPortal","RenderInnerContainer","render","props","anchor","domContainer","rootId","inner","Component","__KONTUR_REACT_UI__","HTMLElement","string","isRequired","node"],"mappings":"sEAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,QAAP,MAAqB,WAArB;AACA,OAAOC,SAAP,MAAsB,YAAtB;;;AAGA,SAASC,uBAAT,QAAwC,mBAAxC;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,wBAAM,gCAAQ,WAAQ,iBAAhB,GAAN,EAAvB;;AAEA,OAAO,IAAMC,MAAM,GAAG,SAATA,MAAS,OAAqD,KAAlDC,SAAkD,QAAlDA,SAAkD,CAAvCC,SAAuC,QAAvCA,SAAuC,CAA5BC,QAA4B,QAA5BA,QAA4B;AACzE;AACA;AACE,wBAAC,KAAD,CAAO,QAAP;AACGF,IAAAA,SAAS,gBAAGL,QAAQ,CAACQ,YAAT,CAAsBD,QAAtB,EAAgCF,SAAhC,CAAH,gBAAgD,oBAAC,cAAD,OAD5D;AAEGA,IAAAA,SAAS,gBAAG,kCAAU,4BAA0BC,SAApC,GAAH,gBAAuD,oBAAC,cAAD,OAFnE,CADF;;;AAMD,CARM;;AAUP,WAAaG,oBAAb;;;AAGSC,EAAAA,MAHT,GAGE,kBAAgB;AACd,sBAAmD,KAAKC,KAAxD,CAAQC,MAAR,eAAQA,MAAR,CAAgBL,QAAhB,eAAgBA,QAAhB,CAA0BM,YAA1B,eAA0BA,YAA1B,CAAwCC,MAAxC,eAAwCA,MAAxC;AACA,QAAIC,KAAK,GAAGH,MAAZ;;AAEA,QAAIL,QAAJ,EAAc;AACZQ,MAAAA,KAAK;AACH,0BAAC,KAAD,CAAO,QAAP;AACGH,MAAAA,MADH;AAEE,0BAAC,MAAD,IAAQ,GAAG,EAAC,YAAZ,EAAyB,SAAS,EAAEE,MAApC,EAA4C,SAAS,EAAED,YAAvD;AACGN,MAAAA,QADH,CAFF,CADF;;;;AAQD;;AAED,WAAOQ,KAAP;AACD,GAnBH,+BAA0ChB,KAAK,CAACiB,SAAhD,EAAaP,oB,CACGQ,mB,GAAsB,sB;;;AAqBtCb,MAAM,CAACH,SAAP,GAAmB;AACjBI,EAAAA,SAAS,EAAEH,uBAAuB,CAAC,oBAAMgB,WAAN,EAAD,CADjB;AAEjBZ,EAAAA,SAAS,EAAEL,SAAS,CAACkB,MAAV,CAAiBC,UAFX;AAGjBb,EAAAA,QAAQ,EAAEN,SAAS,CAACoB,IAAV,CAAeD,UAHR,EAAnB","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport propTypes from 'prop-types';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { safePropTypesInstanceOf } from '../../lib/SSRSafe';\n\nimport { PortalProps, RenderContainerProps } from './RenderContainerTypes';\n\ninterface RenderInnerContainerProps extends RenderContainerProps {\n domContainer: Nullable<HTMLElement>;\n rootId: string;\n}\n\n// Заглушка нужна для корректной гидрации порталов после SSR,\n// которую реакт сам пока не поддерживает.\n// @see https://github.com/facebook/react/issues/13097\n// А также для вставки актуального render-container-id на клиенте.\n//\n// Дело в том, что во время гидрации, структура HTML на сервере\n// и на клиенте должна совпадать, иначе возможны артефакты.\n// Алгоритм там примерно такой. Клиент во время гидрации идет\n// по этим двум деревьям и сравнивает узлы. Элементы разных типов\n// он подменяет на свои. А те, что совпадают, он оставляет как есть\n// вместе со всеми атрибутами, навесив только обработчики событий.\n//\n// Поэтому, для портала, который рендерится только на клиенте,\n// нужно использовать серверную заглушку, чтобы при гидрации\n// он не испортил какой-то другой элемент. Null не подходит,\n// т.к. на сервере он тоже не рендерится.\n// А элемент с render-container-id нужно отрендерить с нуля.\n\nconst SSRPlaceholder = () => <script data-id=\"ssr-placeholder\" />;\n\nexport const Portal = ({ container, rt_rootID, children }: PortalProps) => {\n // container exists only in browser\n return (\n <React.Fragment>\n {container ? ReactDOM.createPortal(children, container) : <SSRPlaceholder />}\n {container ? <noscript data-render-container-id={rt_rootID} /> : <SSRPlaceholder />}\n </React.Fragment>\n );\n};\n\nexport class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderInnerContainer';\n\n public render() {\n const { anchor, children, domContainer, rootId } = this.props;\n let inner = anchor;\n\n if (children) {\n inner = (\n <React.Fragment>\n {anchor}\n <Portal key=\"portal-ref\" rt_rootID={rootId} container={domContainer}>\n {children}\n </Portal>\n </React.Fragment>\n );\n }\n\n return inner;\n }\n}\n\nPortal.propTypes = {\n container: safePropTypesInstanceOf(() => HTMLElement),\n rt_rootID: propTypes.string.isRequired,\n children: propTypes.node.isRequired,\n};\n"]}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import propTypes from 'prop-types';
|
|
2
3
|
import { Nullable } from '../../typings/utility-types';
|
|
3
4
|
import { PortalProps, RenderContainerProps } from './RenderContainerTypes';
|
|
4
5
|
interface RenderInnerContainerProps extends RenderContainerProps {
|
|
5
6
|
domContainer: Nullable<HTMLElement>;
|
|
6
7
|
rootId: string;
|
|
7
8
|
}
|
|
8
|
-
export declare const Portal:
|
|
9
|
+
export declare const Portal: {
|
|
10
|
+
({ container, rt_rootID, children }: PortalProps): JSX.Element;
|
|
11
|
+
propTypes: {
|
|
12
|
+
container: propTypes.Requireable<HTMLElement>;
|
|
13
|
+
rt_rootID: propTypes.Validator<string>;
|
|
14
|
+
children: propTypes.Validator<string | number | boolean | {} | propTypes.ReactElementLike | propTypes.ReactNodeArray>;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
9
17
|
export declare class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {
|
|
10
18
|
static __KONTUR_REACT_UI__: string;
|
|
11
19
|
render(): React.ReactNode;
|
|
@@ -77,7 +77,11 @@ export var RenderLayer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/funct
|
|
|
77
77
|
var _this$props$getAnchor, _this$props;
|
|
78
78
|
|
|
79
79
|
var rootNode = getRootNode(this) || ((_this$props$getAnchor = (_this$props = this.props).getAnchorElement) == null ? void 0 : _this$props$getAnchor.call(_this$props));
|
|
80
|
-
|
|
80
|
+
|
|
81
|
+
if (!rootNode) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
|
|
81
85
|
this.focusOutsideListenerToken = listenFocusOutside(function () {
|
|
82
86
|
return [rootNode];
|
|
83
87
|
}, this.handleFocusOutside);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["RenderLayer.tsx"],"names":["React","listen","listenFocusOutside","containsTargetOrRenderContainer","CommonWrapper","getRootNode","rootNode","RenderLayer","focusOutsideListenerToken","handleFocusOutside","event","props","onFocusOutside","handleNativeDocClick","target","srcElement","node","getAnchorElement","Element","onClickOutside","componentDidMount","active","attachListeners","componentDidUpdate","prevProps","detachListeners","componentWillUnmount","render","setRootNode","Children","only","children","window","addEventListener","document","documentElement","remove","removeEventListener","Component","__KONTUR_REACT_UI__","propTypes","propName","componentName","Error","defaultProps"],"mappings":"iPAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,MAAM,IAAIC,kBAAnB,EAAuCC,+BAAvC,QAA8E,8BAA9E;AACA,SAAsBC,aAAtB,QAA2C,kBAA3C;AACA,SAASC,WAAT,EAAsBC,QAAtB,QAAoD,oBAApD;;;;;;;;;;;;AAYA,WAAaC,WAAb,GADCD,QACD;;;;;;;;;;;;;;;;;;AAkBUE,IAAAA,yBAlBV;;AAoBa,QApBb
|
|
1
|
+
{"version":3,"sources":["RenderLayer.tsx"],"names":["React","listen","listenFocusOutside","containsTargetOrRenderContainer","CommonWrapper","getRootNode","rootNode","RenderLayer","focusOutsideListenerToken","handleFocusOutside","event","props","onFocusOutside","handleNativeDocClick","target","srcElement","node","getAnchorElement","Element","onClickOutside","componentDidMount","active","attachListeners","componentDidUpdate","prevProps","detachListeners","componentWillUnmount","render","setRootNode","Children","only","children","window","addEventListener","document","documentElement","remove","removeEventListener","Component","__KONTUR_REACT_UI__","propTypes","propName","componentName","Error","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { listen as listenFocusOutside, containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { Nullable } from '../../typings/utility-types';\n\nexport interface RenderLayerProps extends CommonProps {\n children: JSX.Element;\n onClickOutside?: (e: Event) => void;\n onFocusOutside?: (e: Event) => void;\n active?: boolean;\n getAnchorElement?: () => Nullable<HTMLElement>;\n}\n\n@rootNode\nexport class RenderLayer extends React.Component<RenderLayerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderLayer';\n\n public static propTypes = {\n active(props: RenderLayerProps, propName: keyof RenderLayerProps, componentName: string) {\n const { active, onClickOutside, onFocusOutside } = props;\n if (active && !(onClickOutside || onFocusOutside)) {\n return new Error(\n `[${componentName}]: using the component without either 'onClickOutside' or 'onFocusOutside' callback is pointless.`,\n );\n }\n },\n };\n\n public static defaultProps = {\n active: true,\n };\n\n private focusOutsideListenerToken: {\n remove: () => void;\n } | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.active) {\n this.attachListeners();\n }\n }\n\n public componentDidUpdate(prevProps: RenderLayerProps) {\n if (!prevProps.active && this.props.active) {\n this.attachListeners();\n }\n if (prevProps.active && !this.props.active) {\n this.detachListeners();\n }\n }\n\n public componentWillUnmount() {\n if (this.props.active) {\n this.detachListeners();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {React.Children.only(this.props.children)}\n </CommonWrapper>\n );\n }\n\n private attachListeners() {\n const rootNode = getRootNode(this) || this.props.getAnchorElement?.();\n if (!rootNode) {\n return;\n }\n\n this.focusOutsideListenerToken = listenFocusOutside(() => [rootNode], this.handleFocusOutside);\n window.addEventListener('blur', this.handleFocusOutside);\n document.addEventListener(\n 'ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private detachListeners() {\n if (this.focusOutsideListenerToken) {\n this.focusOutsideListenerToken.remove();\n this.focusOutsideListenerToken = null;\n }\n\n window.removeEventListener('blur', this.handleFocusOutside);\n document.removeEventListener(\n 'ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n\n private handleFocusOutside = (event: Event) => {\n if (this.props.onFocusOutside) {\n this.props.onFocusOutside(event);\n }\n };\n\n private handleNativeDocClick = (event: Event) => {\n const target = event.target || event.srcElement;\n const node = getRootNode(this) || getRootNode(this.props.getAnchorElement?.());\n\n if (!node || (target instanceof Element && containsTargetOrRenderContainer(target)(node))) {\n return;\n }\n\n if (this.props.onClickOutside) {\n this.props.onClickOutside(event);\n }\n };\n}\n"]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import SearchIcon from '@skbkontur/react-icons/Search';
|
|
4
|
-
import CardIcon from '@skbkontur/react-icons/Card';
|
|
5
4
|
import LinkIcon from '@skbkontur/react-icons/Link';
|
|
6
5
|
import OkIcon from '@skbkontur/react-icons/Ok';
|
|
7
6
|
import ErrorIcon from '@skbkontur/react-icons/Error';
|
|
@@ -25,7 +24,6 @@ import { TogglePlayground } from "../TogglePlayground";
|
|
|
25
24
|
import { SwitcherPlayground } from "../SwitcherPlayground";
|
|
26
25
|
import { FxInputPlayground } from "../FxInputPlayground";
|
|
27
26
|
import { CurrencyInputPlayground } from "../CurrencyInputPlayground";
|
|
28
|
-
import { SelectPlayground } from "../SelectPlayground";
|
|
29
27
|
import { getComponentsFromPropsList } from "../helpers";
|
|
30
28
|
import { CheckboxPlayground } from "../CheckboxPlayground";
|
|
31
29
|
import { RadioPlayground } from "../RadioPlayground";
|
|
@@ -33,6 +31,7 @@ import { PagingPlayground } from "../PagingPlayground";
|
|
|
33
31
|
import { HintPlayground } from "../HintPlayground";
|
|
34
32
|
import { ComponentsGroup } from "../ComponentsGroup";
|
|
35
33
|
import { styles } from "../Playground.styles";
|
|
34
|
+
import { SizesGroup } from "../SizesGroup";
|
|
36
35
|
var useSticky = !isTestEnv;
|
|
37
36
|
export var Playground = /*#__PURE__*/function (_React$Component) {
|
|
38
37
|
_inheritsLoose(Playground, _React$Component);
|
|
@@ -65,43 +64,26 @@ export var Playground = /*#__PURE__*/function (_React$Component) {
|
|
|
65
64
|
case ThemeType.DefaultOld:
|
|
66
65
|
return ThemeType.DefaultOld;
|
|
67
66
|
|
|
67
|
+
case ThemeType.Theme2022:
|
|
68
|
+
return ThemeType.Theme2022;
|
|
69
|
+
|
|
70
|
+
case ThemeType.Theme2022Dark:
|
|
71
|
+
return ThemeType.Theme2022Dark;
|
|
72
|
+
|
|
68
73
|
default:
|
|
69
74
|
return ThemeType.Default;
|
|
70
75
|
}
|
|
71
76
|
};
|
|
72
77
|
|
|
73
78
|
_this.renderSizesGroup = function () {
|
|
74
|
-
var Group = function Group(_ref) {
|
|
75
|
-
var size = _ref.size;
|
|
76
|
-
return /*#__PURE__*/React.createElement(Gapped, {
|
|
77
|
-
wrap: true,
|
|
78
|
-
verticalAlign: "middle",
|
|
79
|
-
gap: 10
|
|
80
|
-
}, /*#__PURE__*/React.createElement(SelectPlayground, {
|
|
81
|
-
width: 120,
|
|
82
|
-
size: size
|
|
83
|
-
}), /*#__PURE__*/React.createElement(Input, {
|
|
84
|
-
rightIcon: /*#__PURE__*/React.createElement(CardIcon, null),
|
|
85
|
-
placeholder: 'Text value',
|
|
86
|
-
size: size
|
|
87
|
-
}), /*#__PURE__*/React.createElement(Button, {
|
|
88
|
-
width: 120,
|
|
89
|
-
size: size
|
|
90
|
-
}, "Button"), /*#__PURE__*/React.createElement(Button, {
|
|
91
|
-
icon: /*#__PURE__*/React.createElement(LinkIcon, null),
|
|
92
|
-
use: 'link',
|
|
93
|
-
size: size
|
|
94
|
-
}, "Button like a link"));
|
|
95
|
-
};
|
|
96
|
-
|
|
97
79
|
return /*#__PURE__*/React.createElement(ComponentsGroup, {
|
|
98
80
|
title: 'Размеры',
|
|
99
81
|
theme: _this.theme
|
|
100
|
-
}, /*#__PURE__*/React.createElement(
|
|
82
|
+
}, /*#__PURE__*/React.createElement(SizesGroup, {
|
|
101
83
|
size: 'small'
|
|
102
|
-
}), /*#__PURE__*/React.createElement(
|
|
84
|
+
}), /*#__PURE__*/React.createElement(SizesGroup, {
|
|
103
85
|
size: 'medium'
|
|
104
|
-
}), /*#__PURE__*/React.createElement(
|
|
86
|
+
}), /*#__PURE__*/React.createElement(SizesGroup, {
|
|
105
87
|
size: 'large'
|
|
106
88
|
}));
|
|
107
89
|
};
|
|
@@ -351,7 +333,11 @@ export var Playground = /*#__PURE__*/function (_React$Component) {
|
|
|
351
333
|
id: ThemeType.DefaultOld
|
|
352
334
|
}, "\u0414\u0435\u0444\u043E\u043B\u0442\u043D\u0430\u044F 3.0"), /*#__PURE__*/React.createElement(Tabs.Tab, {
|
|
353
335
|
id: ThemeType.FlatOld
|
|
354
|
-
}, "\u041F\u043B\u043E\u0441\u043A\u0430\u044F 3.0")
|
|
336
|
+
}, "\u041F\u043B\u043E\u0441\u043A\u0430\u044F 3.0"), /*#__PURE__*/React.createElement(Tabs.Tab, {
|
|
337
|
+
id: ThemeType.Theme2022
|
|
338
|
+
}, "\u041D\u043E\u0432\u0430\u044F 2022"), /*#__PURE__*/React.createElement(Tabs.Tab, {
|
|
339
|
+
id: ThemeType.Theme2022Dark
|
|
340
|
+
}, "\u041D\u043E\u0432\u0430\u044F 2022 \u0422\u0451\u043C\u043D\u0430\u044F"))), /*#__PURE__*/React.createElement(Link, {
|
|
355
341
|
onClick: onEditLinkClick
|
|
356
342
|
}, "\u041D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0442\u0435\u043C\u0443")));
|
|
357
343
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Playground.tsx"],"names":["React","SearchIcon","CardIcon","LinkIcon","OkIcon","ErrorIcon","TrashIcon","HelpDotIcon","Button","Tabs","Gapped","Link","Input","ThemeContext","Tooltip","Sticky","isTestEnv","cx","FileUploader","ThemeType","TokenInputPlayground","DatePickerPlayground","TogglePlayground","SwitcherPlayground","FxInputPlayground","CurrencyInputPlayground","SelectPlayground","getComponentsFromPropsList","CheckboxPlayground","RadioPlayground","PagingPlayground","HintPlayground","ComponentsGroup","styles","useSticky","Playground","stopEl","createRef","renderTabsGroup","getStickyStop","renderTabs","getCurrentTab","props","currentThemeType","Dark","FlatOld","DefaultOld","Default","renderSizesGroup","Group","size","theme","renderLinksGroup","propsList","icon","children","use","disabled","renderButtonsGroup","arrow","width","loading","renderInputsGroup","placeholder","error","warning","fromProps","renderTokenInputsGroup","renderOtherInputsGroup","renderSwitchersGroup","renderControlsGroup","renderHintsGroup","renderTooltip","tooltipContent","renderPaging","renderFileUploader","renderStickyStopElement","height","current","render","renderMain","wrapperClassName","playground","playgroundWrapper","onThemeChange","onEditLinkClick","tabsOuterWrapperStyle","background","bgDefault","tabsOuterWrapperClass","tabsWrapper","stickyTabsWrapper","tabsInnerWrapper","Component"],"mappings":"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","sourcesContent":["import React from 'react';\nimport SearchIcon from '@skbkontur/react-icons/Search';\nimport CardIcon from '@skbkontur/react-icons/Card';\nimport LinkIcon from '@skbkontur/react-icons/Link';\nimport OkIcon from '@skbkontur/react-icons/Ok';\nimport ErrorIcon from '@skbkontur/react-icons/Error';\nimport TrashIcon from '@skbkontur/react-icons/Trash';\nimport HelpDotIcon from '@skbkontur/react-icons/HelpDot';\n\nimport { Button, ButtonProps } from '../../components/Button';\nimport { Tabs } from '../../components/Tabs';\nimport { Gapped } from '../../components/Gapped';\nimport { Link, LinkProps } from '../../components/Link';\nimport { Input, InputProps } from '../../components/Input';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Tooltip } from '../../components/Tooltip';\nimport { Sticky } from '../../components/Sticky';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport { FileUploader } from '../../components/FileUploader';\n\nimport { ThemeType } from './constants';\nimport { TokenInputPlayground } from './TokenInputPlayground';\nimport { DatePickerPlayground } from './AnotherInputsPlayground';\nimport { TogglePlayground } from './TogglePlayground';\nimport { SwitcherPlayground } from './SwitcherPlayground';\nimport { FxInputPlayground } from './FxInputPlayground';\nimport { CurrencyInputPlayground } from './CurrencyInputPlayground';\nimport { SelectPlayground } from './SelectPlayground';\nimport { getComponentsFromPropsList } from './helpers';\nimport { CheckboxPlayground } from './CheckboxPlayground';\nimport { RadioPlayground } from './RadioPlayground';\nimport { PagingPlayground } from './PagingPlayground';\nimport { HintPlayground } from './HintPlayground';\nimport { ComponentsGroup } from './ComponentsGroup';\nimport { styles } from './Playground.styles';\n\nconst useSticky = !isTestEnv;\n\nexport interface PlaygroundProps {\n currentThemeType: ThemeType;\n onThemeChange: (value: string) => void;\n onEditLinkClick: () => void;\n}\n\nexport class Playground extends React.Component<PlaygroundProps, {}> {\n private theme!: Theme;\n private stopEl = React.createRef<HTMLDivElement>();\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n private renderMain() {\n const wrapperClassName = cx(styles.playground(), styles.playgroundWrapper(this.theme));\n return (\n <div className={wrapperClassName}>\n <Gapped vertical gap={50}>\n {this.renderTabsGroup()}\n {this.renderSizesGroup()}\n {this.renderLinksGroup()}\n {this.renderButtonsGroup()}\n {this.renderInputsGroup()}\n {this.renderOtherInputsGroup()}\n {this.renderTokenInputsGroup()}\n {this.renderSwitchersGroup()}\n {this.renderControlsGroup()}\n </Gapped>\n {this.renderStickyStopElement()}\n <Gapped vertical gap={50}>\n {this.renderHintsGroup()}\n {this.renderTooltip()}\n {this.renderPaging()}\n {this.renderFileUploader()}\n </Gapped>\n </div>\n );\n }\n\n private renderTabsGroup = () => {\n return useSticky ? (\n <Sticky side={'top'} getStop={this.getStickyStop}>\n {this.renderTabs()}\n </Sticky>\n ) : (\n this.renderTabs()\n );\n };\n\n private renderTabs() {\n const { onThemeChange, onEditLinkClick } = this.props;\n const tabsOuterWrapperStyle = { background: this.theme.bgDefault };\n const tabsOuterWrapperClass = cx({\n [styles.tabsWrapper(this.theme)]: true,\n [styles.stickyTabsWrapper(this.theme)]: useSticky,\n });\n\n return (\n <div style={tabsOuterWrapperStyle} className={tabsOuterWrapperClass}>\n <Gapped gap={40}>\n <Tabs value={this.getCurrentTab()} onValueChange={onThemeChange} vertical={false}>\n <div className={styles.tabsInnerWrapper(this.theme)}>\n <Tabs.Tab id={ThemeType.Default}>Дефолтная</Tabs.Tab>\n <Tabs.Tab id={ThemeType.Dark}>Темная</Tabs.Tab>\n <Tabs.Tab id={ThemeType.DefaultOld}>Дефолтная 3.0</Tabs.Tab>\n <Tabs.Tab id={ThemeType.FlatOld}>Плоская 3.0</Tabs.Tab>\n </div>\n </Tabs>\n <Link onClick={onEditLinkClick}>Настроить тему</Link>\n </Gapped>\n </div>\n );\n }\n\n private getCurrentTab = () => {\n switch (this.props.currentThemeType) {\n case ThemeType.Dark:\n return ThemeType.Dark;\n case ThemeType.FlatOld:\n return ThemeType.FlatOld;\n case ThemeType.DefaultOld:\n return ThemeType.DefaultOld;\n default:\n return ThemeType.Default;\n }\n };\n\n private renderSizesGroup = () => {\n const Group = ({ size }: { size: 'small' | 'medium' | 'large' }) => (\n <Gapped wrap verticalAlign=\"middle\" gap={10}>\n <SelectPlayground width={120} size={size} />\n <Input rightIcon={<CardIcon />} placeholder={'Text value'} size={size} />\n <Button width={120} size={size}>\n Button\n </Button>\n <Button icon={<LinkIcon />} use={'link'} size={size}>\n Button like a link\n </Button>\n </Gapped>\n );\n\n return (\n <ComponentsGroup title={'Размеры'} theme={this.theme}>\n <Group size={'small'} />\n <Group size={'medium'} />\n <Group size={'large'} />\n </ComponentsGroup>\n );\n };\n\n private renderLinksGroup = () => {\n const propsList: LinkProps[] = [\n { icon: <LinkIcon />, children: 'Enabled' },\n { icon: <OkIcon />, use: 'success', children: 'Success' },\n { icon: <ErrorIcon />, use: 'danger', children: 'Danger' },\n { icon: <TrashIcon />, use: 'grayed', children: 'Grayed' },\n { icon: <TrashIcon />, children: 'Disabled', disabled: true },\n ];\n return (\n <ComponentsGroup title={'Ссылки'} theme={this.theme}>\n <Gapped wrap verticalAlign=\"middle\" gap={10}>\n {getComponentsFromPropsList(<Link />, propsList)}\n </Gapped>\n </ComponentsGroup>\n );\n };\n\n private renderButtonsGroup = () => {\n const propsList: ButtonProps[] = [\n { children: 'Default' },\n { children: 'Primary', use: 'primary' },\n { children: 'Danger', use: 'danger' },\n { children: 'Pay', use: 'pay' },\n { children: 'Success', use: 'success' },\n { children: 'Disabled', disabled: true },\n { children: 'Back', arrow: 'left', size: 'medium', width: 110 },\n { children: 'Forward', arrow: true, size: 'medium', use: 'primary', width: 110 },\n { children: 'Loading', size: 'medium', loading: true },\n ];\n\n return (\n <ComponentsGroup title={'Кнопки'} theme={this.theme}>\n {getComponentsFromPropsList(<Button width={120} size={'small'} />, propsList)}\n </ComponentsGroup>\n );\n };\n\n private renderInputsGroup = () => {\n const propsList: InputProps[] = [\n { placeholder: 'Enabled' },\n { placeholder: 'Error', error: true },\n { placeholder: 'Warning', warning: true },\n { placeholder: 'Disabled', disabled: true },\n ];\n const fromProps = getComponentsFromPropsList(<Input width={120} />, propsList);\n return (\n <ComponentsGroup title={'Поле ввода'} theme={this.theme}>\n <Input width={380} prefix=\"https://kontur.ru/search?query=\" rightIcon={<SearchIcon />} />\n <div>\n <Gapped gap={10}>{fromProps}</Gapped>\n </div>\n </ComponentsGroup>\n );\n };\n\n private renderTokenInputsGroup = () => {\n return (\n <ComponentsGroup title={'Поле с токеном'} theme={this.theme}>\n <TokenInputPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderOtherInputsGroup = () => {\n return (\n <ComponentsGroup title={'Прочие поля'} theme={this.theme}>\n <CurrencyInputPlayground />\n <FxInputPlayground />\n <DatePickerPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderSwitchersGroup = () => {\n return (\n <ComponentsGroup title={'Переключатели'} theme={this.theme}>\n <SwitcherPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderControlsGroup = () => {\n return (\n <ComponentsGroup title={'Радио, чекбоксы'} theme={this.theme}>\n <Gapped verticalAlign={'top'} gap={60}>\n <CheckboxPlayground />\n <RadioPlayground />\n <TogglePlayground />\n </Gapped>\n </ComponentsGroup>\n );\n };\n\n private renderHintsGroup = () => {\n return (\n <ComponentsGroup title={'Тултип'} theme={this.theme}>\n <HintPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderTooltip = () => {\n const tooltipContent = () => (\n <div className={styles.tooltipContent()}>\n {'Информация об ошибке. Короткий объясняющий текст и ссылка, если нужно'}\n </div>\n );\n return (\n <ComponentsGroup title={'Тултип'} theme={this.theme}>\n <Tooltip render={tooltipContent} pos=\"right middle\" trigger={'opened'} disableAnimations={true}>\n <Link icon={<HelpDotIcon />} />\n </Tooltip>\n </ComponentsGroup>\n );\n };\n\n private renderPaging = () => {\n return (\n <ComponentsGroup title={'Пейджинг'} theme={this.theme}>\n <PagingPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderFileUploader = () => {\n return (\n <ComponentsGroup title={'FileUploader'} theme={this.theme}>\n <FileUploader multiple />\n </ComponentsGroup>\n );\n };\n\n private renderStickyStopElement = () => {\n return <div ref={this.stopEl} style={{ height: 50 }} />;\n };\n\n private getStickyStop = () => this.stopEl.current;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Playground.tsx"],"names":["React","SearchIcon","LinkIcon","OkIcon","ErrorIcon","TrashIcon","HelpDotIcon","Button","Tabs","Gapped","Link","Input","ThemeContext","Tooltip","Sticky","isTestEnv","cx","FileUploader","ThemeType","TokenInputPlayground","DatePickerPlayground","TogglePlayground","SwitcherPlayground","FxInputPlayground","CurrencyInputPlayground","getComponentsFromPropsList","CheckboxPlayground","RadioPlayground","PagingPlayground","HintPlayground","ComponentsGroup","styles","SizesGroup","useSticky","Playground","stopEl","createRef","renderTabsGroup","getStickyStop","renderTabs","getCurrentTab","props","currentThemeType","Dark","FlatOld","DefaultOld","Theme2022","Theme2022Dark","Default","renderSizesGroup","theme","renderLinksGroup","propsList","icon","children","use","disabled","renderButtonsGroup","arrow","size","width","loading","renderInputsGroup","placeholder","error","warning","fromProps","renderTokenInputsGroup","renderOtherInputsGroup","renderSwitchersGroup","renderControlsGroup","renderHintsGroup","renderTooltip","tooltipContent","renderPaging","renderFileUploader","renderStickyStopElement","height","current","render","renderMain","wrapperClassName","playground","playgroundWrapper","onThemeChange","onEditLinkClick","tabsOuterWrapperStyle","background","bgDefault","tabsOuterWrapperClass","tabsWrapper","stickyTabsWrapper","tabsInnerWrapper","Component"],"mappings":"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","sourcesContent":["import React from 'react';\nimport SearchIcon from '@skbkontur/react-icons/Search';\nimport LinkIcon from '@skbkontur/react-icons/Link';\nimport OkIcon from '@skbkontur/react-icons/Ok';\nimport ErrorIcon from '@skbkontur/react-icons/Error';\nimport TrashIcon from '@skbkontur/react-icons/Trash';\nimport HelpDotIcon from '@skbkontur/react-icons/HelpDot';\n\nimport { Button, ButtonProps } from '../../components/Button';\nimport { Tabs } from '../../components/Tabs';\nimport { Gapped } from '../../components/Gapped';\nimport { Link, LinkProps } from '../../components/Link';\nimport { Input, InputProps } from '../../components/Input';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Tooltip } from '../../components/Tooltip';\nimport { Sticky } from '../../components/Sticky';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport { FileUploader } from '../../components/FileUploader';\n\nimport { ThemeType } from './constants';\nimport { TokenInputPlayground } from './TokenInputPlayground';\nimport { DatePickerPlayground } from './AnotherInputsPlayground';\nimport { TogglePlayground } from './TogglePlayground';\nimport { SwitcherPlayground } from './SwitcherPlayground';\nimport { FxInputPlayground } from './FxInputPlayground';\nimport { CurrencyInputPlayground } from './CurrencyInputPlayground';\nimport { getComponentsFromPropsList } from './helpers';\nimport { CheckboxPlayground } from './CheckboxPlayground';\nimport { RadioPlayground } from './RadioPlayground';\nimport { PagingPlayground } from './PagingPlayground';\nimport { HintPlayground } from './HintPlayground';\nimport { ComponentsGroup } from './ComponentsGroup';\nimport { styles } from './Playground.styles';\nimport { SizesGroup } from './SizesGroup';\n\nconst useSticky = !isTestEnv;\n\nexport interface PlaygroundProps {\n currentThemeType: ThemeType;\n onThemeChange: (value: string) => void;\n onEditLinkClick: () => void;\n}\n\nexport class Playground extends React.Component<PlaygroundProps, {}> {\n private theme!: Theme;\n private stopEl = React.createRef<HTMLDivElement>();\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n private renderMain() {\n const wrapperClassName = cx(styles.playground(), styles.playgroundWrapper(this.theme));\n return (\n <div className={wrapperClassName}>\n <Gapped vertical gap={50}>\n {this.renderTabsGroup()}\n {this.renderSizesGroup()}\n {this.renderLinksGroup()}\n {this.renderButtonsGroup()}\n {this.renderInputsGroup()}\n {this.renderOtherInputsGroup()}\n {this.renderTokenInputsGroup()}\n {this.renderSwitchersGroup()}\n {this.renderControlsGroup()}\n </Gapped>\n {this.renderStickyStopElement()}\n <Gapped vertical gap={50}>\n {this.renderHintsGroup()}\n {this.renderTooltip()}\n {this.renderPaging()}\n {this.renderFileUploader()}\n </Gapped>\n </div>\n );\n }\n\n private renderTabsGroup = () => {\n return useSticky ? (\n <Sticky side={'top'} getStop={this.getStickyStop}>\n {this.renderTabs()}\n </Sticky>\n ) : (\n this.renderTabs()\n );\n };\n\n private renderTabs() {\n const { onThemeChange, onEditLinkClick } = this.props;\n const tabsOuterWrapperStyle = { background: this.theme.bgDefault };\n const tabsOuterWrapperClass = cx({\n [styles.tabsWrapper(this.theme)]: true,\n [styles.stickyTabsWrapper(this.theme)]: useSticky,\n });\n\n return (\n <div style={tabsOuterWrapperStyle} className={tabsOuterWrapperClass}>\n <Gapped gap={40}>\n <Tabs value={this.getCurrentTab()} onValueChange={onThemeChange} vertical={false}>\n <div className={styles.tabsInnerWrapper(this.theme)}>\n <Tabs.Tab id={ThemeType.Default}>Дефолтная</Tabs.Tab>\n <Tabs.Tab id={ThemeType.Dark}>Темная</Tabs.Tab>\n <Tabs.Tab id={ThemeType.DefaultOld}>Дефолтная 3.0</Tabs.Tab>\n <Tabs.Tab id={ThemeType.FlatOld}>Плоская 3.0</Tabs.Tab>\n <Tabs.Tab id={ThemeType.Theme2022}>Новая 2022</Tabs.Tab>\n <Tabs.Tab id={ThemeType.Theme2022Dark}>Новая 2022 Тёмная</Tabs.Tab>\n </div>\n </Tabs>\n <Link onClick={onEditLinkClick}>Настроить тему</Link>\n </Gapped>\n </div>\n );\n }\n\n private getCurrentTab = () => {\n switch (this.props.currentThemeType) {\n case ThemeType.Dark:\n return ThemeType.Dark;\n case ThemeType.FlatOld:\n return ThemeType.FlatOld;\n case ThemeType.DefaultOld:\n return ThemeType.DefaultOld;\n case ThemeType.Theme2022:\n return ThemeType.Theme2022;\n case ThemeType.Theme2022Dark:\n return ThemeType.Theme2022Dark;\n default:\n return ThemeType.Default;\n }\n };\n\n private renderSizesGroup = () => {\n return (\n <ComponentsGroup title={'Размеры'} theme={this.theme}>\n <SizesGroup size={'small'} />\n <SizesGroup size={'medium'} />\n <SizesGroup size={'large'} />\n </ComponentsGroup>\n );\n };\n\n private renderLinksGroup = () => {\n const propsList: LinkProps[] = [\n { icon: <LinkIcon />, children: 'Enabled' },\n { icon: <OkIcon />, use: 'success', children: 'Success' },\n { icon: <ErrorIcon />, use: 'danger', children: 'Danger' },\n { icon: <TrashIcon />, use: 'grayed', children: 'Grayed' },\n { icon: <TrashIcon />, children: 'Disabled', disabled: true },\n ];\n return (\n <ComponentsGroup title={'Ссылки'} theme={this.theme}>\n <Gapped wrap verticalAlign=\"middle\" gap={10}>\n {getComponentsFromPropsList(<Link />, propsList)}\n </Gapped>\n </ComponentsGroup>\n );\n };\n\n private renderButtonsGroup = () => {\n const propsList: ButtonProps[] = [\n { children: 'Default' },\n { children: 'Primary', use: 'primary' },\n { children: 'Danger', use: 'danger' },\n { children: 'Pay', use: 'pay' },\n { children: 'Success', use: 'success' },\n { children: 'Disabled', disabled: true },\n { children: 'Back', arrow: 'left', size: 'medium', width: 110 },\n { children: 'Forward', arrow: true, size: 'medium', use: 'primary', width: 110 },\n { children: 'Loading', size: 'medium', loading: true },\n ];\n\n return (\n <ComponentsGroup title={'Кнопки'} theme={this.theme}>\n {getComponentsFromPropsList(<Button width={120} size={'small'} />, propsList)}\n </ComponentsGroup>\n );\n };\n\n private renderInputsGroup = () => {\n const propsList: InputProps[] = [\n { placeholder: 'Enabled' },\n { placeholder: 'Error', error: true },\n { placeholder: 'Warning', warning: true },\n { placeholder: 'Disabled', disabled: true },\n ];\n const fromProps = getComponentsFromPropsList(<Input width={120} />, propsList);\n return (\n <ComponentsGroup title={'Поле ввода'} theme={this.theme}>\n <Input width={380} prefix=\"https://kontur.ru/search?query=\" rightIcon={<SearchIcon />} />\n <div>\n <Gapped gap={10}>{fromProps}</Gapped>\n </div>\n </ComponentsGroup>\n );\n };\n\n private renderTokenInputsGroup = () => {\n return (\n <ComponentsGroup title={'Поле с токеном'} theme={this.theme}>\n <TokenInputPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderOtherInputsGroup = () => {\n return (\n <ComponentsGroup title={'Прочие поля'} theme={this.theme}>\n <CurrencyInputPlayground />\n <FxInputPlayground />\n <DatePickerPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderSwitchersGroup = () => {\n return (\n <ComponentsGroup title={'Переключатели'} theme={this.theme}>\n <SwitcherPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderControlsGroup = () => {\n return (\n <ComponentsGroup title={'Радио, чекбоксы'} theme={this.theme}>\n <Gapped verticalAlign={'top'} gap={60}>\n <CheckboxPlayground />\n <RadioPlayground />\n <TogglePlayground />\n </Gapped>\n </ComponentsGroup>\n );\n };\n\n private renderHintsGroup = () => {\n return (\n <ComponentsGroup title={'Тултип'} theme={this.theme}>\n <HintPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderTooltip = () => {\n const tooltipContent = () => (\n <div className={styles.tooltipContent()}>\n {'Информация об ошибке. Короткий объясняющий текст и ссылка, если нужно'}\n </div>\n );\n return (\n <ComponentsGroup title={'Тултип'} theme={this.theme}>\n <Tooltip render={tooltipContent} pos=\"right middle\" trigger={'opened'} disableAnimations>\n <Link icon={<HelpDotIcon />} />\n </Tooltip>\n </ComponentsGroup>\n );\n };\n\n private renderPaging = () => {\n return (\n <ComponentsGroup title={'Пейджинг'} theme={this.theme}>\n <PagingPlayground />\n </ComponentsGroup>\n );\n };\n\n private renderFileUploader = () => {\n return (\n <ComponentsGroup title={'FileUploader'} theme={this.theme}>\n <FileUploader multiple />\n </ComponentsGroup>\n );\n };\n\n private renderStickyStopElement = () => {\n return <div ref={this.stopEl} style={{ height: 50 }} />;\n };\n\n private getStickyStop = () => this.stopEl.current;\n}\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import CardIcon from '@skbkontur/react-icons/Card';
|
|
3
|
+
import LinkIcon from '@skbkontur/react-icons/Link';
|
|
4
|
+
import { Input } from "../../../components/Input";
|
|
5
|
+
import { Gapped } from "../../../components/Gapped";
|
|
6
|
+
import { Button } from "../../../components/Button";
|
|
7
|
+
import { SelectPlayground } from "../SelectPlayground";
|
|
8
|
+
export var SizesGroup = function SizesGroup(_ref) {
|
|
9
|
+
var size = _ref.size;
|
|
10
|
+
return /*#__PURE__*/React.createElement(Gapped, {
|
|
11
|
+
wrap: true,
|
|
12
|
+
verticalAlign: "middle",
|
|
13
|
+
gap: 10
|
|
14
|
+
}, /*#__PURE__*/React.createElement(SelectPlayground, {
|
|
15
|
+
width: 120,
|
|
16
|
+
size: size
|
|
17
|
+
}), /*#__PURE__*/React.createElement(Input, {
|
|
18
|
+
rightIcon: /*#__PURE__*/React.createElement(CardIcon, null),
|
|
19
|
+
placeholder: 'Text value',
|
|
20
|
+
size: size
|
|
21
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
22
|
+
width: 120,
|
|
23
|
+
size: size
|
|
24
|
+
}, "Button"), /*#__PURE__*/React.createElement(Button, {
|
|
25
|
+
icon: /*#__PURE__*/React.createElement(LinkIcon, null),
|
|
26
|
+
use: 'link',
|
|
27
|
+
size: size
|
|
28
|
+
}, "Button like a link"));
|
|
29
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["SizesGroup.tsx"],"names":["React","CardIcon","LinkIcon","Input","Gapped","Button","SelectPlayground","SizesGroup","size"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,QAAP,MAAqB,6BAArB;AACA,OAAOC,QAAP,MAAqB,6BAArB;;AAEA,SAASC,KAAT,QAAsB,wBAAtB;AACA,SAASC,MAAT,QAAuB,yBAAvB;AACA,SAASC,MAAT,QAAuB,yBAAvB;;AAEA,SAASC,gBAAT,QAAiC,oBAAjC;;;;AAIA,OAAO,IAAMC,UAAU,GAAG,SAAbA,UAAa,YAAGC,IAAH,QAAGA,IAAH;AACxB,wBAAC,MAAD,IAAQ,IAAI,MAAZ,EAAa,aAAa,EAAC,QAA3B,EAAoC,GAAG,EAAE,EAAzC;AACE,wBAAC,gBAAD,IAAkB,KAAK,EAAE,GAAzB,EAA8B,IAAI,EAAEA,IAApC,GADF;AAEE,wBAAC,KAAD,IAAO,SAAS,eAAE,oBAAC,QAAD,OAAlB,EAAgC,WAAW,EAAE,YAA7C,EAA2D,IAAI,EAAEA,IAAjE,GAFF;AAGE,wBAAC,MAAD,IAAQ,KAAK,EAAE,GAAf,EAAoB,IAAI,EAAEA,IAA1B,aAHF;;;AAME,wBAAC,MAAD,IAAQ,IAAI,eAAE,oBAAC,QAAD,OAAd,EAA4B,GAAG,EAAE,MAAjC,EAAyC,IAAI,EAAEA,IAA/C,yBANF,CADwB,GAAnB","sourcesContent":["import React from 'react';\nimport CardIcon from '@skbkontur/react-icons/Card';\nimport LinkIcon from '@skbkontur/react-icons/Link';\n\nimport { Input } from '../../components/Input';\nimport { Gapped } from '../../components/Gapped';\nimport { Button } from '../../components/Button';\n\nimport { SelectPlayground } from './SelectPlayground';\n\nexport type SizesGroupProps = { size: 'small' | 'medium' | 'large' };\n\nexport const SizesGroup = ({ size }: SizesGroupProps) => (\n <Gapped wrap verticalAlign=\"middle\" gap={10}>\n <SelectPlayground width={120} size={size} />\n <Input rightIcon={<CardIcon />} placeholder={'Text value'} size={size} />\n <Button width={120} size={size}>\n Button\n </Button>\n <Button icon={<LinkIcon />} use={'link'} size={size}>\n Button like a link\n </Button>\n </Gapped>\n);\n"]}
|
|
@@ -12,7 +12,9 @@ import { Gapped } from "../../../components/Gapped";
|
|
|
12
12
|
import { ComboBox } from "../../../components/ComboBox";
|
|
13
13
|
import { Link } from "../../../components/Link";
|
|
14
14
|
import * as ColorFunctions from "../../../lib/styles/ColorFunctions";
|
|
15
|
+
import { THEME_2022 } from "../../../lib/theming/themes/Theme2022";
|
|
15
16
|
import { findPropertyDescriptor } from "../../../lib/theming/ThemeHelpers";
|
|
17
|
+
import { THEME_2022_DARK } from "../../../lib/theming/themes/Theme2022Dark";
|
|
16
18
|
import { ThemeEditor } from "../ThemeEditor";
|
|
17
19
|
import { styles } from "../Playground.styles";
|
|
18
20
|
import { Playground } from "../Playground";
|
|
@@ -36,6 +38,12 @@ export var ThemeContextPlayground = /*#__PURE__*/function (_React$Component) {
|
|
|
36
38
|
}, {
|
|
37
39
|
value: ThemeType.FlatOld,
|
|
38
40
|
label: 'Старая плоская'
|
|
41
|
+
}, {
|
|
42
|
+
value: ThemeType.Theme2022,
|
|
43
|
+
label: 'Новая 2022'
|
|
44
|
+
}, {
|
|
45
|
+
value: ThemeType.Theme2022Dark,
|
|
46
|
+
label: 'Новая 2022 Тёмная'
|
|
39
47
|
}];
|
|
40
48
|
|
|
41
49
|
_this.renderSidePage = function () {
|
|
@@ -192,13 +200,17 @@ export var ThemeContextPlayground = /*#__PURE__*/function (_React$Component) {
|
|
|
192
200
|
"default": DEFAULT_THEME,
|
|
193
201
|
defaultOld: DEFAULT_THEME_8PX_OLD,
|
|
194
202
|
dark: DARK_THEME,
|
|
195
|
-
flatOld: FLAT_THEME_8PX_OLD
|
|
203
|
+
flatOld: FLAT_THEME_8PX_OLD,
|
|
204
|
+
theme2022: THEME_2022,
|
|
205
|
+
theme2022Dark: THEME_2022_DARK
|
|
196
206
|
},
|
|
197
207
|
themesErrors: {
|
|
198
208
|
"default": {},
|
|
199
209
|
defaultOld: {},
|
|
200
210
|
dark: {},
|
|
201
|
-
flatOld: {}
|
|
211
|
+
flatOld: {},
|
|
212
|
+
theme2022: {},
|
|
213
|
+
theme2022Dark: {}
|
|
202
214
|
}
|
|
203
215
|
};
|
|
204
216
|
return _this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ThemeContextPlayground.tsx"],"names":["React","ThemeContext","ThemeFactory","FLAT_THEME_8PX_OLD","DEFAULT_THEME_8PX_OLD","DEFAULT_THEME","DARK_THEME","SidePage","Gapped","ComboBox","Link","ColorFunctions","findPropertyDescriptor","ThemeEditor","styles","Playground","ThemeType","ThemeContextPlayground","props","editableThemesItems","value","Default","label","Dark","DefaultOld","FlatOld","renderSidePage","state","currentTheme","themesErrors","editingThemeItem","themes","themeErrors","handleClose","editorHeaderWrapper","getEditableThemesItems","handleEditingThemeSwitch","fontSize","marginTop","handelGetTheme","sidePageBody","handleThemeVariableChange","themeObject","getKeys","forEach","key","descriptor","Object","getOwnPropertyDescriptor","get","console","log","JSON","stringify","handleOpen","setState","editorOpened","find","i","currentThemeType","handleThemeChange","themeType","variable","editingThemeType","theme","currentValue","canSetVariable","isValid","nextThemeErrors","stateUpdate","result","changeThemeVariable","query","Promise","resolve","filter","toLowerCase","includes","item","variableName","variableValue","enumerable","configurable","set","defineProperty","create","defaultOld","dark","flatOld","render","Component"],"mappings":"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","sourcesContent":["import React, { ReactNode } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { FLAT_THEME_8PX_OLD } from '../../lib/theming/themes/FlatTheme8pxOld';\nimport { DEFAULT_THEME_8PX_OLD } from '../../lib/theming/themes/DefaultTheme8pxOld';\nimport { DEFAULT_THEME } from '../../lib/theming/themes/DefaultTheme';\nimport { DARK_THEME } from '../../lib/theming/themes/DarkTheme';\nimport { SidePage } from '../../components/SidePage';\nimport { Gapped } from '../../components/Gapped';\nimport { ComboBox } from '../../components/ComboBox';\nimport { Link } from '../../components/Link';\nimport * as ColorFunctions from '../../lib/styles/ColorFunctions';\nimport { Writeable } from '../../typings/utility-types';\nimport { findPropertyDescriptor } from '../../lib/theming/ThemeHelpers';\n\nimport { ThemeEditor } from './ThemeEditor';\nimport { styles } from './Playground.styles';\nimport { Playground } from './Playground';\nimport { ThemeType } from './constants';\n\ninterface PlaygroundState {\n editorOpened: boolean;\n editingThemeItem?: EditingThemeItem;\n themes: Themes;\n themesErrors: ThemesErrors;\n currentTheme: Theme;\n currentThemeType: ThemeType;\n}\ninterface Themes {\n default: Theme;\n dark: Theme;\n defaultOld: Theme;\n flatOld: Theme;\n}\ninterface ThemesErrors {\n default: ThemeErrorsType;\n dark: ThemeErrorsType;\n defaultOld: ThemeErrorsType;\n flatOld: ThemeErrorsType;\n}\ninterface EditingThemeItem {\n value: ThemeType;\n label: string;\n}\ninterface PlaygroundProps {\n children?: ReactNode;\n}\nexport type ThemeErrorsType = Writeable<{ [key in keyof Theme]?: boolean }>;\n\nexport class ThemeContextPlayground extends React.Component<PlaygroundProps, PlaygroundState> {\n private readonly editableThemesItems = [\n { value: ThemeType.Default, label: 'Дефолтная' },\n { value: ThemeType.Dark, label: 'Темная' },\n { value: ThemeType.DefaultOld, label: 'Старая дефолтная' },\n { value: ThemeType.FlatOld, label: 'Старая плоская' },\n ];\n\n constructor(props: PlaygroundProps) {\n super(props);\n this.state = {\n currentTheme: DEFAULT_THEME,\n currentThemeType: ThemeType.Default,\n editorOpened: false,\n themes: {\n default: DEFAULT_THEME,\n defaultOld: DEFAULT_THEME_8PX_OLD,\n dark: DARK_THEME,\n flatOld: FLAT_THEME_8PX_OLD,\n },\n themesErrors: {\n default: {},\n defaultOld: {},\n dark: {},\n flatOld: {},\n },\n };\n }\n\n public render() {\n const { currentTheme, editorOpened, currentThemeType } = this.state;\n return (\n <ThemeContext.Provider value={currentTheme}>\n {editorOpened && this.renderSidePage()}\n {\n <Playground\n onThemeChange={this.handleThemeChange}\n currentThemeType={currentThemeType}\n onEditLinkClick={this.handleOpen}\n />\n }\n </ThemeContext.Provider>\n );\n }\n\n private renderSidePage = () => {\n const { currentTheme, themesErrors, editingThemeItem, themes } = this.state;\n const themeErrors = themesErrors[editingThemeItem ? editingThemeItem.value : 'default'];\n return (\n <SidePage disableAnimations ignoreBackgroundClick blockBackground width={600} onClose={this.handleClose}>\n <SidePage.Header>\n <div className={styles.editorHeaderWrapper(currentTheme)}>\n <Gapped wrap verticalAlign=\"middle\">\n <span>Тема для редактирования:</span>\n <ComboBox\n getItems={this.getEditableThemesItems}\n value={editingThemeItem}\n onValueChange={this.handleEditingThemeSwitch}\n />\n </Gapped>\n </div>\n <div style={{ fontSize: 14, marginTop: 8 }}>\n <Link onClick={this.handelGetTheme}>Вывести тему в консоль</Link>\n </div>\n </SidePage.Header>\n <SidePage.Body>\n <div className={styles.sidePageBody()}>\n <ThemeEditor\n editingTheme={themes[editingThemeItem!.value]}\n currentTheme={currentTheme}\n currentErrors={themeErrors}\n onValueChange={this.handleThemeVariableChange}\n />\n </div>\n </SidePage.Body>\n </SidePage>\n );\n };\n\n private handelGetTheme = () => {\n const currentTheme = this.state.currentTheme;\n const themeObject: Writeable<ThemeIn> = {};\n ThemeFactory.getKeys(currentTheme).forEach((key) => {\n const descriptor = Object.getOwnPropertyDescriptor(currentTheme, key);\n if (descriptor && !descriptor.get && DEFAULT_THEME[key] && currentTheme[key] !== DEFAULT_THEME[key]) {\n themeObject[key] = currentTheme[key] as keyof Theme;\n }\n });\n\n console.log(JSON.stringify(themeObject));\n };\n\n private handleOpen = () => {\n this.setState((state) => ({\n editorOpened: true,\n editingThemeItem: this.editableThemesItems.find((i) => i.value === state.currentThemeType),\n }));\n };\n\n private handleClose = () => {\n this.setState({\n editorOpened: false,\n });\n };\n\n private handleThemeChange = (value: string) => {\n const themeType = value as ThemeType;\n this.setState({\n currentThemeType: themeType,\n currentTheme: this.state.themes[themeType],\n });\n };\n\n private handleThemeVariableChange = (variable: keyof Theme, value: string) => {\n const { editingThemeItem, currentTheme, themes, themesErrors } = this.state;\n const editingThemeType = editingThemeItem!.value;\n\n const theme = themes[editingThemeType];\n const currentValue = theme[variable] as string;\n\n let canSetVariable = true;\n if (ColorFunctions.isValid(currentValue)) {\n canSetVariable = ColorFunctions.isValid(value);\n themesErrors[editingThemeType][variable] = !canSetVariable;\n }\n\n const nextThemeErrors: ThemesErrors = { ...themesErrors };\n nextThemeErrors[editingThemeType][variable] = !canSetVariable;\n const stateUpdate = { themes, currentTheme, themesErrors: nextThemeErrors };\n\n if (canSetVariable) {\n const result = this.changeThemeVariable(theme, variable, value);\n stateUpdate.themes[editingThemeType] = result;\n if (this.state.currentThemeType === editingThemeType) {\n stateUpdate.currentTheme = result;\n }\n }\n\n this.setState(stateUpdate);\n };\n\n private getEditableThemesItems = (query: string) => {\n return Promise.resolve(this.editableThemesItems.filter((i) => i.label.toLowerCase().includes(query.toLowerCase())));\n };\n\n private handleEditingThemeSwitch = (item: EditingThemeItem) => {\n this.setState({ editingThemeItem: item });\n };\n\n private changeThemeVariable = (theme: Theme, variableName: keyof Theme, variableValue: string): Theme => {\n const result: ThemeIn = {};\n ThemeFactory.getKeys(theme).forEach((key) => {\n const descriptor = findPropertyDescriptor(theme, key);\n descriptor.enumerable = true;\n descriptor.configurable = true;\n if (key === variableName) {\n delete descriptor.get;\n delete descriptor.set;\n descriptor.value = variableValue;\n }\n Object.defineProperty(result, key, descriptor);\n });\n\n return ThemeFactory.create<ThemeIn>(result);\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["ThemeContextPlayground.tsx"],"names":["React","ThemeContext","ThemeFactory","FLAT_THEME_8PX_OLD","DEFAULT_THEME_8PX_OLD","DEFAULT_THEME","DARK_THEME","SidePage","Gapped","ComboBox","Link","ColorFunctions","THEME_2022","findPropertyDescriptor","THEME_2022_DARK","ThemeEditor","styles","Playground","ThemeType","ThemeContextPlayground","props","editableThemesItems","value","Default","label","Dark","DefaultOld","FlatOld","Theme2022","Theme2022Dark","renderSidePage","state","currentTheme","themesErrors","editingThemeItem","themes","themeErrors","handleClose","editorHeaderWrapper","getEditableThemesItems","handleEditingThemeSwitch","fontSize","marginTop","handelGetTheme","sidePageBody","handleThemeVariableChange","themeObject","getKeys","forEach","key","descriptor","Object","getOwnPropertyDescriptor","get","console","log","JSON","stringify","handleOpen","setState","editorOpened","find","i","currentThemeType","handleThemeChange","themeType","variable","editingThemeType","theme","currentValue","canSetVariable","isValid","nextThemeErrors","stateUpdate","result","changeThemeVariable","query","Promise","resolve","filter","toLowerCase","includes","item","variableName","variableValue","enumerable","configurable","set","defineProperty","create","defaultOld","dark","flatOld","theme2022","theme2022Dark","render","Component"],"mappings":"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","sourcesContent":["import React, { ReactNode } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { FLAT_THEME_8PX_OLD } from '../../lib/theming/themes/FlatTheme8pxOld';\nimport { DEFAULT_THEME_8PX_OLD } from '../../lib/theming/themes/DefaultTheme8pxOld';\nimport { DEFAULT_THEME } from '../../lib/theming/themes/DefaultTheme';\nimport { DARK_THEME } from '../../lib/theming/themes/DarkTheme';\nimport { SidePage } from '../../components/SidePage';\nimport { Gapped } from '../../components/Gapped';\nimport { ComboBox } from '../../components/ComboBox';\nimport { Link } from '../../components/Link';\nimport * as ColorFunctions from '../../lib/styles/ColorFunctions';\nimport { Writeable } from '../../typings/utility-types';\nimport { THEME_2022 } from '../../lib/theming/themes/Theme2022';\nimport { findPropertyDescriptor } from '../../lib/theming/ThemeHelpers';\nimport { THEME_2022_DARK } from '../../lib/theming/themes/Theme2022Dark';\n\nimport { ThemeEditor } from './ThemeEditor';\nimport { styles } from './Playground.styles';\nimport { Playground } from './Playground';\nimport { ThemeType } from './constants';\n\ninterface PlaygroundState {\n editorOpened: boolean;\n editingThemeItem?: EditingThemeItem;\n themes: Themes;\n themesErrors: ThemesErrors;\n currentTheme: Theme;\n currentThemeType: ThemeType;\n}\ninterface Themes {\n default: Theme;\n dark: Theme;\n defaultOld: Theme;\n flatOld: Theme;\n theme2022: Theme;\n theme2022Dark: Theme;\n}\ninterface ThemesErrors {\n default: ThemeErrorsType;\n dark: ThemeErrorsType;\n defaultOld: ThemeErrorsType;\n flatOld: ThemeErrorsType;\n theme2022: ThemeErrorsType;\n theme2022Dark: ThemeErrorsType;\n}\ninterface EditingThemeItem {\n value: ThemeType;\n label: string;\n}\ninterface PlaygroundProps {\n children?: ReactNode;\n}\nexport type ThemeErrorsType = Writeable<{ [key in keyof Theme]?: boolean }>;\n\nexport class ThemeContextPlayground extends React.Component<PlaygroundProps, PlaygroundState> {\n private readonly editableThemesItems = [\n { value: ThemeType.Default, label: 'Дефолтная' },\n { value: ThemeType.Dark, label: 'Темная' },\n { value: ThemeType.DefaultOld, label: 'Старая дефолтная' },\n { value: ThemeType.FlatOld, label: 'Старая плоская' },\n { value: ThemeType.Theme2022, label: 'Новая 2022' },\n { value: ThemeType.Theme2022Dark, label: 'Новая 2022 Тёмная' },\n ];\n\n constructor(props: PlaygroundProps) {\n super(props);\n this.state = {\n currentTheme: DEFAULT_THEME,\n currentThemeType: ThemeType.Default,\n editorOpened: false,\n themes: {\n default: DEFAULT_THEME,\n defaultOld: DEFAULT_THEME_8PX_OLD,\n dark: DARK_THEME,\n flatOld: FLAT_THEME_8PX_OLD,\n theme2022: THEME_2022,\n theme2022Dark: THEME_2022_DARK,\n },\n themesErrors: {\n default: {},\n defaultOld: {},\n dark: {},\n flatOld: {},\n theme2022: {},\n theme2022Dark: {},\n },\n };\n }\n\n public render() {\n const { currentTheme, editorOpened, currentThemeType } = this.state;\n return (\n <ThemeContext.Provider value={currentTheme}>\n {editorOpened && this.renderSidePage()}\n {\n <Playground\n onThemeChange={this.handleThemeChange}\n currentThemeType={currentThemeType}\n onEditLinkClick={this.handleOpen}\n />\n }\n </ThemeContext.Provider>\n );\n }\n\n private renderSidePage = () => {\n const { currentTheme, themesErrors, editingThemeItem, themes } = this.state;\n const themeErrors = themesErrors[editingThemeItem ? editingThemeItem.value : 'default'];\n return (\n <SidePage disableAnimations ignoreBackgroundClick blockBackground width={600} onClose={this.handleClose}>\n <SidePage.Header>\n <div className={styles.editorHeaderWrapper(currentTheme)}>\n <Gapped wrap verticalAlign=\"middle\">\n <span>Тема для редактирования:</span>\n <ComboBox\n getItems={this.getEditableThemesItems}\n value={editingThemeItem}\n onValueChange={this.handleEditingThemeSwitch}\n />\n </Gapped>\n </div>\n <div style={{ fontSize: 14, marginTop: 8 }}>\n <Link onClick={this.handelGetTheme}>Вывести тему в консоль</Link>\n </div>\n </SidePage.Header>\n <SidePage.Body>\n <div className={styles.sidePageBody()}>\n <ThemeEditor\n editingTheme={themes[editingThemeItem!.value]}\n currentTheme={currentTheme}\n currentErrors={themeErrors}\n onValueChange={this.handleThemeVariableChange}\n />\n </div>\n </SidePage.Body>\n </SidePage>\n );\n };\n\n private handelGetTheme = () => {\n const currentTheme = this.state.currentTheme;\n const themeObject: Writeable<ThemeIn> = {};\n ThemeFactory.getKeys(currentTheme).forEach((key) => {\n const descriptor = Object.getOwnPropertyDescriptor(currentTheme, key);\n if (descriptor && !descriptor.get && DEFAULT_THEME[key] && currentTheme[key] !== DEFAULT_THEME[key]) {\n themeObject[key] = currentTheme[key] as keyof Theme;\n }\n });\n\n console.log(JSON.stringify(themeObject));\n };\n\n private handleOpen = () => {\n this.setState((state) => ({\n editorOpened: true,\n editingThemeItem: this.editableThemesItems.find((i) => i.value === state.currentThemeType),\n }));\n };\n\n private handleClose = () => {\n this.setState({\n editorOpened: false,\n });\n };\n\n private handleThemeChange = (value: string) => {\n const themeType = value as ThemeType;\n this.setState({\n currentThemeType: themeType,\n currentTheme: this.state.themes[themeType],\n });\n };\n\n private handleThemeVariableChange = (variable: keyof Theme, value: string) => {\n const { editingThemeItem, currentTheme, themes, themesErrors } = this.state;\n const editingThemeType = editingThemeItem!.value;\n\n const theme = themes[editingThemeType];\n const currentValue = theme[variable] as string;\n\n let canSetVariable = true;\n if (ColorFunctions.isValid(currentValue)) {\n canSetVariable = ColorFunctions.isValid(value);\n themesErrors[editingThemeType][variable] = !canSetVariable;\n }\n\n const nextThemeErrors: ThemesErrors = { ...themesErrors };\n nextThemeErrors[editingThemeType][variable] = !canSetVariable;\n const stateUpdate = { themes, currentTheme, themesErrors: nextThemeErrors };\n\n if (canSetVariable) {\n const result = this.changeThemeVariable(theme, variable, value);\n stateUpdate.themes[editingThemeType] = result;\n if (this.state.currentThemeType === editingThemeType) {\n stateUpdate.currentTheme = result;\n }\n }\n\n this.setState(stateUpdate);\n };\n\n private getEditableThemesItems = (query: string) => {\n return Promise.resolve(this.editableThemesItems.filter((i) => i.label.toLowerCase().includes(query.toLowerCase())));\n };\n\n private handleEditingThemeSwitch = (item: EditingThemeItem) => {\n this.setState({ editingThemeItem: item });\n };\n\n private changeThemeVariable = (theme: Theme, variableName: keyof Theme, variableValue: string): Theme => {\n const result: ThemeIn = {};\n ThemeFactory.getKeys(theme).forEach((key) => {\n const descriptor = findPropertyDescriptor(theme, key);\n descriptor.enumerable = true;\n descriptor.configurable = true;\n if (key === variableName) {\n delete descriptor.get;\n delete descriptor.set;\n descriptor.value = variableValue;\n }\n Object.defineProperty(result, key, descriptor);\n });\n\n return ThemeFactory.create<ThemeIn>(result);\n };\n}\n"]}
|
|
@@ -15,12 +15,16 @@ interface Themes {
|
|
|
15
15
|
dark: Theme;
|
|
16
16
|
defaultOld: Theme;
|
|
17
17
|
flatOld: Theme;
|
|
18
|
+
theme2022: Theme;
|
|
19
|
+
theme2022Dark: Theme;
|
|
18
20
|
}
|
|
19
21
|
interface ThemesErrors {
|
|
20
22
|
default: ThemeErrorsType;
|
|
21
23
|
dark: ThemeErrorsType;
|
|
22
24
|
defaultOld: ThemeErrorsType;
|
|
23
25
|
flatOld: ThemeErrorsType;
|
|
26
|
+
theme2022: ThemeErrorsType;
|
|
27
|
+
theme2022Dark: ThemeErrorsType;
|
|
24
28
|
}
|
|
25
29
|
interface EditingThemeItem {
|
|
26
30
|
value: ThemeType;
|
|
@@ -44,6 +44,7 @@ import React from 'react';
|
|
|
44
44
|
import { ThemeFactory } from "../../../lib/theming/ThemeFactory";
|
|
45
45
|
import { Gapped } from "../../../components/Gapped";
|
|
46
46
|
import { Loader } from "../../../components/Loader";
|
|
47
|
+
import { isNonNullable } from "../../../lib/utils";
|
|
47
48
|
import { VariableValue } from "../VariableValue";
|
|
48
49
|
import { VARIABLES_GROUPS, DEPRECATED_VARIABLES } from "../constants";
|
|
49
50
|
import { styles } from "../Playground.styles";
|
|
@@ -188,7 +189,10 @@ var prefixesReducer = function prefixesReducer(acc, current) {
|
|
|
188
189
|
};
|
|
189
190
|
|
|
190
191
|
var getBaseVariables = function getBaseVariables(theme, variable) {
|
|
191
|
-
|
|
192
|
+
// TODO: Rewrite for loop.
|
|
193
|
+
// TODO: Enable `no-param-reassign` rule.
|
|
194
|
+
// eslint-disable-next-line no-param-reassign
|
|
195
|
+
for (; isNonNullable(theme); theme = Object.getPrototypeOf(theme)) {
|
|
192
196
|
if (Object.prototype.hasOwnProperty.call(theme, variable)) {
|
|
193
197
|
var descriptor = Object.getOwnPropertyDescriptor(theme, variable);
|
|
194
198
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ThemeEditor.tsx"],"names":["React","ThemeFactory","Gapped","Loader","VariableValue","VARIABLES_GROUPS","DEPRECATED_VARIABLES","styles","ThemeEditor","state","groups","isLoading","renderGroups","props","editingTheme","currentTheme","currentErrors","onValueChange","keys","getKeys","filter","key","isDeprecatedVariable","map","i","title","isCommon","isCommonVariable","bind","reduce","prefixesReducer","isGroupVariable","prefix","length","render","loaderWrapper","loader","componentDidMount","updateTimeout","window","setTimeout","setState","componentWillUnmount","clearTimeout","Component","Group","variables","editorGroupHeader","variable","value","isError","getBaseVariables","name","includes","splitPrefix","split","item","startsWith","trim","prefixes","acc","current","theme","Object","getPrototypeOf","prototype","hasOwnProperty","call","descriptor","getOwnPropertyDescriptor","get","getterBody","toString","variableNameMatchArray","match","v","replace"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Gapped } from '../../components/Gapped';\nimport { Loader } from '../../components/Loader';\n\nimport { VariableValue } from './VariableValue';\nimport { VARIABLES_GROUPS, DEPRECATED_VARIABLES } from './constants';\nimport { ThemeErrorsType } from './ThemeContextPlayground';\nimport { styles } from './Playground.styles';\n\ninterface ThemeEditorProps {\n editingTheme: Theme;\n currentTheme: Theme;\n currentErrors: ThemeErrorsType;\n onValueChange: (variable: keyof Theme, value: string) => void;\n}\ninterface ThemeEditorState {\n groups: Group[];\n isLoading: boolean;\n}\ninterface Group {\n title: string;\n prefix: string;\n isCommon?: boolean;\n}\nexport class ThemeEditor extends React.Component<ThemeEditorProps, ThemeEditorState> {\n public state = {\n groups: [],\n isLoading: true,\n };\n private updateTimeout?: number;\n\n public render() {\n return this.state.isLoading ? (\n <div className={styles.loaderWrapper()}>\n <Loader type=\"big\" active className={styles.loader()} />\n </div>\n ) : (\n this.renderGroups()\n );\n }\n\n public componentDidMount() {\n this.updateTimeout = window.setTimeout(() => {\n this.setState({ groups: VARIABLES_GROUPS, isLoading: false });\n }, 500);\n }\n\n public componentWillUnmount(): void {\n clearTimeout(this.updateTimeout);\n }\n\n private renderGroups = () => {\n const { editingTheme, currentTheme, currentErrors, onValueChange } = this.props;\n const keys = ThemeFactory.getKeys(editingTheme).filter((key) => !isDeprecatedVariable(key));\n\n return (\n <Gapped vertical>\n {this.state.groups.map((i: Group) => (\n <Group\n editingTheme={editingTheme}\n currentTheme={currentTheme}\n currentErrors={currentErrors}\n onValueChange={onValueChange}\n title={i.title}\n variables={keys.filter(\n i.isCommon\n ? isCommonVariable.bind(null, this.state.groups.reduce(prefixesReducer, []))\n : isGroupVariable.bind(null, i.prefix),\n )}\n key={i.title}\n />\n ))}\n {DEPRECATED_VARIABLES.length > 0 ? (\n <Group\n editingTheme={editingTheme}\n currentTheme={currentTheme}\n currentErrors={currentErrors}\n onValueChange={onValueChange}\n title={'Deprecated Variables'}\n variables={DEPRECATED_VARIABLES}\n />\n ) : null}\n </Gapped>\n );\n };\n}\n\ninterface GroupProps {\n editingTheme: Theme;\n currentTheme: Theme;\n currentErrors: ThemeErrorsType;\n title: string;\n variables: Array<keyof Theme>;\n onValueChange: (variable: keyof Theme, value: string) => void;\n}\nconst Group = (props: GroupProps) => {\n const { editingTheme, currentTheme, currentErrors, onValueChange, title, variables } = props;\n\n return variables.length > 0 ? (\n <React.Fragment>\n <h2 className={styles.editorGroupHeader(currentTheme)}>{title}</h2>\n {variables.map((variable) => {\n const value = editingTheme[variable] as string;\n const isError = currentErrors[variable];\n return (\n <VariableValue\n theme={currentTheme}\n onChange={onValueChange}\n value={value}\n isError={isError || false}\n variable={variable}\n key={variable}\n baseVariables={getBaseVariables(editingTheme, variable)}\n deprecated={isDeprecatedVariable(variable)}\n />\n );\n })}\n </React.Fragment>\n ) : null;\n};\n\nconst isDeprecatedVariable = (name: keyof Theme) => {\n return DEPRECATED_VARIABLES.includes(name);\n};\n\nconst isGroupVariable = (prefix: string, name: string) => {\n const splitPrefix = prefix.split(' ') || [];\n\n for (const item of splitPrefix) {\n if (name.startsWith(item.trim())) {\n return true;\n }\n }\n return false;\n};\nconst isCommonVariable = (prefixes: string[], name: string) => {\n for (const item of prefixes) {\n if (name.startsWith(item.trim())) {\n return false;\n }\n }\n return true;\n};\nconst prefixesReducer = (acc: string[], current: { title: string; prefix: string }): string[] => {\n const splitPrefix = current.prefix.split(' ');\n return [...acc, ...splitPrefix];\n};\n\ntype GetBaseVariablesReturnType = Array<keyof Theme>;\nconst getBaseVariables = (theme: Theme, variable: keyof Theme): GetBaseVariablesReturnType => {\n for (; theme != null; theme = Object.getPrototypeOf(theme)) {\n if (Object.prototype.hasOwnProperty.call(theme, variable)) {\n const descriptor = Object.getOwnPropertyDescriptor(theme, variable);\n\n if (descriptor && typeof descriptor.get !== 'undefined') {\n const getterBody = descriptor.get.toString();\n const variableNameMatchArray = getterBody.match(/this\\.(\\w+)\\b/gm) || [];\n return (variableNameMatchArray || []).map((v) => v.replace(/this\\./g, '')) as GetBaseVariablesReturnType;\n }\n break;\n }\n }\n return [];\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["ThemeEditor.tsx"],"names":["React","ThemeFactory","Gapped","Loader","isNonNullable","VariableValue","VARIABLES_GROUPS","DEPRECATED_VARIABLES","styles","ThemeEditor","state","groups","isLoading","renderGroups","props","editingTheme","currentTheme","currentErrors","onValueChange","keys","getKeys","filter","key","isDeprecatedVariable","map","i","title","isCommon","isCommonVariable","bind","reduce","prefixesReducer","isGroupVariable","prefix","length","render","loaderWrapper","loader","componentDidMount","updateTimeout","window","setTimeout","setState","componentWillUnmount","clearTimeout","Component","Group","variables","editorGroupHeader","variable","value","isError","getBaseVariables","name","includes","splitPrefix","split","item","startsWith","trim","prefixes","acc","current","theme","Object","getPrototypeOf","prototype","hasOwnProperty","call","descriptor","getOwnPropertyDescriptor","get","getterBody","toString","variableNameMatchArray","match","v","replace"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Gapped } from '../../components/Gapped';\nimport { Loader } from '../../components/Loader';\nimport { isNonNullable } from '../../lib/utils';\n\nimport { VariableValue } from './VariableValue';\nimport { VARIABLES_GROUPS, DEPRECATED_VARIABLES } from './constants';\nimport { ThemeErrorsType } from './ThemeContextPlayground';\nimport { styles } from './Playground.styles';\n\ninterface ThemeEditorProps {\n editingTheme: Theme;\n currentTheme: Theme;\n currentErrors: ThemeErrorsType;\n onValueChange: (variable: keyof Theme, value: string) => void;\n}\ninterface ThemeEditorState {\n groups: Group[];\n isLoading: boolean;\n}\ninterface Group {\n title: string;\n prefix: string;\n isCommon?: boolean;\n}\nexport class ThemeEditor extends React.Component<ThemeEditorProps, ThemeEditorState> {\n public state = {\n groups: [],\n isLoading: true,\n };\n private updateTimeout?: number;\n\n public render() {\n return this.state.isLoading ? (\n <div className={styles.loaderWrapper()}>\n <Loader type=\"big\" active className={styles.loader()} />\n </div>\n ) : (\n this.renderGroups()\n );\n }\n\n public componentDidMount() {\n this.updateTimeout = window.setTimeout(() => {\n this.setState({ groups: VARIABLES_GROUPS, isLoading: false });\n }, 500);\n }\n\n public componentWillUnmount(): void {\n clearTimeout(this.updateTimeout);\n }\n\n private renderGroups = () => {\n const { editingTheme, currentTheme, currentErrors, onValueChange } = this.props;\n const keys = ThemeFactory.getKeys(editingTheme).filter((key) => !isDeprecatedVariable(key));\n\n return (\n <Gapped vertical>\n {this.state.groups.map((i: Group) => (\n <Group\n editingTheme={editingTheme}\n currentTheme={currentTheme}\n currentErrors={currentErrors}\n onValueChange={onValueChange}\n title={i.title}\n variables={keys.filter(\n i.isCommon\n ? isCommonVariable.bind(null, this.state.groups.reduce(prefixesReducer, []))\n : isGroupVariable.bind(null, i.prefix),\n )}\n key={i.title}\n />\n ))}\n {DEPRECATED_VARIABLES.length > 0 ? (\n <Group\n editingTheme={editingTheme}\n currentTheme={currentTheme}\n currentErrors={currentErrors}\n onValueChange={onValueChange}\n title={'Deprecated Variables'}\n variables={DEPRECATED_VARIABLES}\n />\n ) : null}\n </Gapped>\n );\n };\n}\n\ninterface GroupProps {\n editingTheme: Theme;\n currentTheme: Theme;\n currentErrors: ThemeErrorsType;\n title: string;\n variables: Array<keyof Theme>;\n onValueChange: (variable: keyof Theme, value: string) => void;\n}\nconst Group = (props: GroupProps) => {\n const { editingTheme, currentTheme, currentErrors, onValueChange, title, variables } = props;\n\n return variables.length > 0 ? (\n <React.Fragment>\n <h2 className={styles.editorGroupHeader(currentTheme)}>{title}</h2>\n {variables.map((variable) => {\n const value = editingTheme[variable] as string;\n const isError = currentErrors[variable];\n return (\n <VariableValue\n theme={currentTheme}\n onChange={onValueChange}\n value={value}\n isError={isError || false}\n variable={variable}\n key={variable}\n baseVariables={getBaseVariables(editingTheme, variable)}\n deprecated={isDeprecatedVariable(variable)}\n />\n );\n })}\n </React.Fragment>\n ) : null;\n};\n\nconst isDeprecatedVariable = (name: keyof Theme) => {\n return DEPRECATED_VARIABLES.includes(name);\n};\n\nconst isGroupVariable = (prefix: string, name: string) => {\n const splitPrefix = prefix.split(' ') || [];\n\n for (const item of splitPrefix) {\n if (name.startsWith(item.trim())) {\n return true;\n }\n }\n return false;\n};\nconst isCommonVariable = (prefixes: string[], name: string) => {\n for (const item of prefixes) {\n if (name.startsWith(item.trim())) {\n return false;\n }\n }\n return true;\n};\nconst prefixesReducer = (acc: string[], current: { title: string; prefix: string }): string[] => {\n const splitPrefix = current.prefix.split(' ');\n return [...acc, ...splitPrefix];\n};\n\ntype GetBaseVariablesReturnType = Array<keyof Theme>;\nconst getBaseVariables = (theme: Theme, variable: keyof Theme): GetBaseVariablesReturnType => {\n // TODO: Rewrite for loop.\n // TODO: Enable `no-param-reassign` rule.\n // eslint-disable-next-line no-param-reassign\n for (; isNonNullable(theme); theme = Object.getPrototypeOf(theme)) {\n if (Object.prototype.hasOwnProperty.call(theme, variable)) {\n const descriptor = Object.getOwnPropertyDescriptor(theme, variable);\n\n if (descriptor && typeof descriptor.get !== 'undefined') {\n const getterBody = descriptor.get.toString();\n const variableNameMatchArray = getterBody.match(/this\\.(\\w+)\\b/gm) || [];\n return (variableNameMatchArray || []).map((v) => v.replace(/this\\./g, '')) as GetBaseVariablesReturnType;\n }\n break;\n }\n }\n\n return [];\n};\n"]}
|