@vkontakte/vkui 4.26.0 → 4.27.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/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +389 -243
- package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +1 -2
- package/.cache/ts/src/components/Alert/Alert.d.ts +1 -2
- package/.cache/ts/src/components/AppearanceProvider/AppearanceProvider.d.ts +1 -0
- package/.cache/ts/src/components/AppearanceProvider/AppearanceProviderContext.d.ts +1 -6
- package/.cache/ts/src/components/Card/Card.d.ts +1 -2
- package/.cache/ts/src/components/CardScroll/CardScroll.d.ts +4 -7
- package/.cache/ts/src/components/Chip/Chip.d.ts +2 -2
- package/.cache/ts/src/components/ConfigProvider/ConfigProvider.d.ts +1 -1
- package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +5 -12
- package/.cache/ts/src/components/Gradient/Gradient.d.ts +1 -2
- package/.cache/ts/src/components/SegmentedControl/SegmentedControl.d.ts +17 -0
- package/.cache/ts/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +4 -0
- package/.cache/ts/src/components/SliderSwitch/SliderSwitch.d.ts +6 -2
- package/.cache/ts/src/components/SliderSwitch/SliderSwitchButton.d.ts +4 -2
- package/.cache/ts/src/components/Switch/Switch.d.ts +3 -2
- package/.cache/ts/src/components/Typography/Subhead/Subhead.d.ts +4 -1
- package/.cache/ts/src/components/Typography/Title/Title.d.ts +4 -1
- package/.cache/ts/src/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +12 -0
- package/.cache/ts/src/hooks/useAppearance.d.ts +1 -1
- package/.cache/ts/src/hooks/usePlatform.d.ts +1 -1
- package/.cache/ts/src/index.d.ts +7 -5
- package/.cache/ts/src/lib/utils.d.ts +1 -0
- package/.cache/ts/src/tokenized/index.d.ts +12 -0
- package/CSS_GUIDE.md +145 -0
- package/VKUI_TOKENS_MIGRATION_GUIDE.md +2 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +5 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts +1 -2
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +16 -11
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cjs/components/Alert/Alert.d.ts +1 -2
- package/dist/cjs/components/Alert/Alert.js +12 -12
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRoot.js +0 -8
- package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRootPortal.js +9 -2
- package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cjs/components/AppearanceProvider/AppearanceProvider.d.ts +1 -0
- package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js +34 -12
- package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/cjs/components/AppearanceProvider/AppearanceProviderContext.d.ts +1 -6
- package/dist/cjs/components/AppearanceProvider/AppearanceProviderContext.js +3 -1
- package/dist/cjs/components/AppearanceProvider/AppearanceProviderContext.js.map +1 -1
- package/dist/cjs/components/Banner/Banner.js +2 -4
- package/dist/cjs/components/Banner/Banner.js.map +1 -1
- package/dist/cjs/components/Button/Button.js +12 -4
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/Card/Card.d.ts +1 -2
- package/dist/cjs/components/Card/Card.js +4 -8
- package/dist/cjs/components/Card/Card.js.map +1 -1
- package/dist/cjs/components/CardScroll/CardScroll.d.ts +4 -7
- package/dist/cjs/components/CardScroll/CardScroll.js +11 -15
- package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cjs/components/Chip/Chip.d.ts +2 -2
- package/dist/cjs/components/Chip/Chip.js +3 -5
- package/dist/cjs/components/Chip/Chip.js.map +1 -1
- package/dist/cjs/components/ChipsInput/ChipsInput.js +2 -2
- package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProvider.d.ts +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js +32 -44
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProviderContext.d.ts +5 -12
- package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js +3 -5
- package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cjs/components/ContentCard/ContentCard.js +4 -4
- package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cjs/components/FormItem/FormItem.js +0 -1
- package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
- package/dist/cjs/components/Gradient/Gradient.d.ts +1 -2
- package/dist/cjs/components/Gradient/Gradient.js +6 -10
- package/dist/cjs/components/Gradient/Gradient.js.map +1 -1
- package/dist/cjs/components/Header/Header.js +3 -7
- package/dist/cjs/components/Header/Header.js.map +1 -1
- package/dist/cjs/components/HorizontalCell/HorizontalCell.js +1 -3
- package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +1 -6
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js +1 -6
- package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- package/dist/cjs/components/InfoRow/InfoRow.js +1 -2
- package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cjs/components/Placeholder/Placeholder.js +1 -1
- package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/cjs/components/Removable/Removable.js +8 -4
- package/dist/cjs/components/Removable/Removable.js.map +1 -1
- package/dist/cjs/components/RichCell/RichCell.js +0 -1
- package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
- package/dist/cjs/components/Search/Search.js +47 -23
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControl.d.ts +17 -0
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js +116 -0
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -0
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +4 -0
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +61 -0
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -0
- package/dist/cjs/components/SimpleCell/SimpleCell.js +21 -9
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/SliderSwitch/SliderSwitch.d.ts +6 -2
- package/dist/cjs/components/SliderSwitch/SliderSwitch.js +18 -6
- package/dist/cjs/components/SliderSwitch/SliderSwitch.js.map +1 -1
- package/dist/cjs/components/SliderSwitch/SliderSwitchButton.d.ts +4 -2
- package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js +6 -5
- package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +1 -3
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cjs/components/Switch/Switch.d.ts +3 -2
- package/dist/cjs/components/Switch/Switch.js +3 -6
- package/dist/cjs/components/Switch/Switch.js.map +1 -1
- package/dist/cjs/components/TextTooltip/TextTooltip.js +1 -2
- package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js +1 -2
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +4 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.js +15 -8
- package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.d.ts +4 -1
- package/dist/cjs/components/Typography/Title/Title.js +9 -19
- package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
- package/dist/cjs/components/UsersStack/UsersStack.js +0 -1
- package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +12 -0
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js +37 -0
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -0
- package/dist/cjs/hooks/useAppearance.d.ts +1 -1
- package/dist/cjs/hooks/useAppearance.js +2 -2
- package/dist/cjs/hooks/useAppearance.js.map +1 -1
- package/dist/cjs/hooks/usePlatform.d.ts +1 -1
- package/dist/cjs/hooks/usePlatform.js.map +1 -1
- package/dist/cjs/index.d.ts +7 -5
- package/dist/cjs/index.js +18 -10
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/utils.d.ts +1 -0
- package/dist/cjs/lib/utils.js +7 -0
- package/dist/cjs/lib/utils.js.map +1 -1
- package/dist/cjs/tokenized/index.d.ts +12 -0
- package/dist/cjs/tokenized/index.js +48 -0
- package/dist/cjs/tokenized/index.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +5 -1
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +1 -2
- package/dist/components/ActionSheetItem/ActionSheetItem.js +14 -11
- package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/components/Alert/Alert.d.ts +1 -2
- package/dist/components/Alert/Alert.js +11 -12
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.js +0 -7
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.js +7 -2
- package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/components/AppearanceProvider/AppearanceProvider.d.ts +1 -0
- package/dist/components/AppearanceProvider/AppearanceProvider.js +29 -11
- package/dist/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/components/AppearanceProvider/AppearanceProviderContext.d.ts +1 -6
- package/dist/components/AppearanceProvider/AppearanceProviderContext.js +2 -1
- package/dist/components/AppearanceProvider/AppearanceProviderContext.js.map +1 -1
- package/dist/components/Banner/Banner.js +2 -4
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/Button/Button.js +12 -5
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Card/Card.d.ts +1 -2
- package/dist/components/Card/Card.js +3 -9
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/CardScroll/CardScroll.d.ts +4 -7
- package/dist/components/CardScroll/CardScroll.js +9 -14
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/Chip/Chip.d.ts +2 -2
- package/dist/components/Chip/Chip.js +2 -6
- package/dist/components/Chip/Chip.js.map +1 -1
- package/dist/components/ChipsInput/ChipsInput.js +1 -1
- package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.d.ts +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js +31 -44
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +5 -12
- package/dist/components/ConfigProvider/ConfigProviderContext.js +2 -3
- package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.js +3 -3
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/FormItem/FormItem.js +0 -1
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/Gradient/Gradient.d.ts +1 -2
- package/dist/components/Gradient/Gradient.js +5 -11
- package/dist/components/Gradient/Gradient.js.map +1 -1
- package/dist/components/Header/Header.js +3 -7
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.js +1 -3
- package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js +1 -4
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScrollArrow.js +1 -4
- package/dist/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- package/dist/components/InfoRow/InfoRow.js +1 -2
- package/dist/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +2 -2
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/Placeholder/Placeholder.js +1 -1
- package/dist/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/components/Removable/Removable.js +8 -4
- package/dist/components/Removable/Removable.js.map +1 -1
- package/dist/components/RichCell/RichCell.js +0 -1
- package/dist/components/RichCell/RichCell.js.map +1 -1
- package/dist/components/Search/Search.js +45 -22
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.d.ts +17 -0
- package/dist/components/SegmentedControl/SegmentedControl.js +94 -0
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -0
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +4 -0
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +40 -0
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -0
- package/dist/components/SimpleCell/SimpleCell.js +21 -10
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/SliderSwitch/SliderSwitch.d.ts +6 -2
- package/dist/components/SliderSwitch/SliderSwitch.js +14 -3
- package/dist/components/SliderSwitch/SliderSwitch.js.map +1 -1
- package/dist/components/SliderSwitch/SliderSwitchButton.d.ts +4 -2
- package/dist/components/SliderSwitch/SliderSwitchButton.js +5 -5
- package/dist/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -3
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/Switch/Switch.d.ts +3 -2
- package/dist/components/Switch/Switch.js +3 -6
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/TextTooltip/TextTooltip.js +1 -2
- package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +1 -2
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Typography/Subhead/Subhead.d.ts +4 -1
- package/dist/components/Typography/Subhead/Subhead.js +13 -7
- package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/components/Typography/Title/Title.d.ts +4 -1
- package/dist/components/Typography/Title/Title.js +7 -16
- package/dist/components/Typography/Title/Title.js.map +1 -1
- package/dist/components/UsersStack/UsersStack.js +0 -1
- package/dist/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +12 -0
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js +23 -0
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -0
- package/dist/components.css +10 -5
- package/dist/components.css.map +1 -1
- package/dist/cssm/appearance/constants.d.ts +1 -0
- package/dist/cssm/components/ActionSheet/ActionSheet.d.ts +26 -0
- package/dist/cssm/components/ActionSheet/ActionSheetContext.d.ts +8 -0
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.d.ts +4 -0
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.d.ts +4 -0
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +5 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cssm/components/ActionSheet/types.d.ts +9 -0
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts +20 -0
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +14 -11
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.d.ts +46 -0
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.d.ts +10 -0
- package/dist/cssm/components/Alert/Alert.d.ts +24 -0
- package/dist/cssm/components/Alert/Alert.js +11 -12
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.d.ts +14 -0
- package/dist/cssm/components/AppRoot/AppRoot.js +0 -7
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootContext.d.ts +9 -0
- package/dist/cssm/components/AppRoot/AppRootPortal.d.ts +5 -0
- package/dist/cssm/components/AppRoot/AppRootPortal.js +7 -2
- package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cssm/components/AppRoot/ScrollContext.d.ts +23 -0
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.d.ts +7 -0
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js +29 -11
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/cssm/components/AppearanceProvider/AppearanceProviderContext.d.ts +3 -0
- package/dist/cssm/components/AppearanceProvider/AppearanceProviderContext.js +2 -1
- package/dist/cssm/components/AppearanceProvider/AppearanceProviderContext.js.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.d.ts +22 -0
- package/dist/cssm/components/Badge/Badge.d.ts +6 -0
- package/dist/cssm/components/Banner/Banner.d.ts +65 -0
- package/dist/cssm/components/Banner/Banner.js +2 -4
- package/dist/cssm/components/Banner/Banner.js.map +1 -1
- package/dist/cssm/components/Button/Button.d.ts +20 -0
- package/dist/cssm/components/Button/Button.js +12 -5
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/Card/Card.css +2 -2
- package/dist/cssm/components/Card/Card.d.ts +7 -0
- package/dist/cssm/components/Card/Card.js +3 -9
- package/dist/cssm/components/Card/Card.js.map +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.d.ts +8 -0
- package/dist/cssm/components/CardScroll/CardScroll.css +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.d.ts +12 -0
- package/dist/cssm/components/CardScroll/CardScroll.js +9 -14
- package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.d.ts +47 -0
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
- package/dist/cssm/components/Cell/CellDragger/CellDragger.d.ts +6 -0
- package/dist/cssm/components/Cell/useDraggable.d.ts +13 -0
- package/dist/cssm/components/CellButton/CellButton.d.ts +9 -0
- package/dist/cssm/components/Checkbox/Checkbox.d.ts +10 -0
- package/dist/cssm/components/Chip/Chip.d.ts +16 -0
- package/dist/cssm/components/Chip/Chip.js +2 -6
- package/dist/cssm/components/Chip/Chip.js.map +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.d.ts +30 -0
- package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cssm/components/ChipsInput/useChipsInput.d.ts +14 -0
- package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +41 -0
- package/dist/cssm/components/ChipsSelect/useChipsSelect.d.ts +22 -0
- package/dist/cssm/components/ClickPopper/ClickPopper.d.ts +21 -0
- package/dist/cssm/components/ConfigProvider/ConfigProvider.d.ts +12 -0
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js +31 -44
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.d.ts +36 -0
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +2 -3
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.d.ts +34 -0
- package/dist/cssm/components/ContentCard/ContentCard.js +3 -3
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.d.ts +11 -0
- package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts +10 -0
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +56 -0
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +12 -0
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.css +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.d.ts +15 -0
- package/dist/cssm/components/DatePicker/DatePicker.d.ts +24 -0
- package/dist/cssm/components/Div/Div.d.ts +7 -0
- package/dist/cssm/components/Dropdown/Dropdown.d.ts +8 -0
- package/dist/cssm/components/DropdownIcon/DropdownIcon.d.ts +3 -0
- package/dist/cssm/components/Epic/Epic.d.ts +10 -0
- package/dist/cssm/components/Epic/ScrollSaver.d.ts +6 -0
- package/dist/cssm/components/File/File.d.ts +9 -0
- package/dist/cssm/components/FixedLayout/FixedLayout.d.ts +19 -0
- package/dist/cssm/components/FocusTrap/FocusTrap.d.ts +8 -0
- package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
- package/dist/cssm/components/FocusVisible/FocusVisible.d.ts +8 -0
- package/dist/cssm/components/Footer/Footer.d.ts +5 -0
- package/dist/cssm/components/FormField/FormField.d.ts +14 -0
- package/dist/cssm/components/FormItem/FormItem.d.ts +14 -0
- package/dist/cssm/components/FormItem/FormItem.js +0 -1
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormLayout/FormLayout.d.ts +6 -0
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +13 -0
- package/dist/cssm/components/FormStatus/FormStatus.d.ts +7 -0
- package/dist/cssm/components/Gallery/Gallery.d.ts +39 -0
- package/dist/cssm/components/Gradient/Gradient.d.ts +7 -0
- package/dist/cssm/components/Gradient/Gradient.js +5 -11
- package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.d.ts +8 -0
- package/dist/cssm/components/Group/Group.d.ts +23 -0
- package/dist/cssm/components/Header/Header.d.ts +18 -0
- package/dist/cssm/components/Header/Header.js +3 -7
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.d.ts +10 -0
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js +1 -3
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts +19 -0
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +1 -4
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +6 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.d.ts +8 -0
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js +1 -4
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- package/dist/cssm/components/HoverPopper/HoverPopper.d.ts +29 -0
- package/dist/cssm/components/IconButton/IconButton.d.ts +11 -0
- package/dist/cssm/components/InfoRow/InfoRow.d.ts +7 -0
- package/dist/cssm/components/InfoRow/InfoRow.js +1 -2
- package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/cssm/components/InitialsAvatar/InitialsAvatar.d.ts +32 -0
- package/dist/cssm/components/Input/Input.d.ts +9 -0
- package/dist/cssm/components/Link/Link.d.ts +6 -0
- package/dist/cssm/components/List/List.d.ts +4 -0
- package/dist/cssm/components/List/ListContext.d.ts +4 -0
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.d.ts +39 -0
- package/dist/cssm/components/ModalCard/ModalCard.d.ts +10 -0
- package/dist/cssm/components/ModalCardBase/ModalCardBase.d.ts +32 -0
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +2 -2
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.d.ts +5 -0
- package/dist/cssm/components/ModalPage/ModalPage.d.ts +22 -0
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.d.ts +8 -0
- package/dist/cssm/components/ModalRoot/ModalRoot.d.ts +16 -0
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.d.ts +10 -0
- package/dist/cssm/components/ModalRoot/ModalRootContext.d.ts +20 -0
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts +16 -0
- package/dist/cssm/components/ModalRoot/constants.d.ts +3 -0
- package/dist/cssm/components/ModalRoot/types.d.ts +45 -0
- package/dist/cssm/components/ModalRoot/useModalManager.d.ts +37 -0
- package/dist/cssm/components/ModalRoot/withModalRootContext.d.ts +5 -0
- package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +15 -0
- package/dist/cssm/components/NavTransitionContext/NavTransitionContext.d.ts +7 -0
- package/dist/cssm/components/Panel/Panel.d.ts +9 -0
- package/dist/cssm/components/PanelHeader/PanelHeader.d.ts +21 -0
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.d.ts +9 -0
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.d.ts +8 -0
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.d.ts +4 -0
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.d.ts +9 -0
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.d.ts +7 -0
- package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +18 -0
- package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +4 -0
- package/dist/cssm/components/PanelSpinner/PanelSpinner.d.ts +7 -0
- package/dist/cssm/components/Placeholder/Placeholder.d.ts +23 -0
- package/dist/cssm/components/Placeholder/Placeholder.js +1 -1
- package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/cssm/components/PopoutRoot/PopoutRoot.d.ts +10 -0
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.d.ts +10 -0
- package/dist/cssm/components/Popper/Popper.d.ts +32 -0
- package/dist/cssm/components/Progress/Progress.d.ts +8 -0
- package/dist/cssm/components/PromoBanner/PromoBanner.d.ts +40 -0
- package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts +37 -0
- package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.d.ts +11 -0
- package/dist/cssm/components/Radio/Radio.d.ts +9 -0
- package/dist/cssm/components/RadioGroup/RadioGroup.d.ts +6 -0
- package/dist/cssm/components/RangeSlider/RangeSlider.d.ts +6 -0
- package/dist/cssm/components/RangeSlider/UniversalSlider.d.ts +16 -0
- package/dist/cssm/components/Removable/Removable.d.ts +21 -0
- package/dist/cssm/components/Removable/Removable.js +8 -4
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/RichCell/RichCell.d.ts +36 -0
- package/dist/cssm/components/RichCell/RichCell.js +0 -1
- package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
- package/dist/cssm/components/RichTooltip/RichTooltip.d.ts +5 -0
- package/dist/cssm/components/Root/Root.d.ts +31 -0
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.d.ts +6 -0
- package/dist/cssm/components/Search/Search.d.ts +17 -0
- package/dist/cssm/components/Search/Search.js +45 -22
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.css +1 -0
- package/dist/cssm/components/SegmentedControl/SegmentedControl.d.ts +17 -0
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js +95 -0
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -0
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -0
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +4 -0
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +41 -0
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -0
- package/dist/cssm/components/Select/Select.d.ts +7 -0
- package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +10 -0
- package/dist/cssm/components/Separator/Separator.d.ts +11 -0
- package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +39 -0
- package/dist/cssm/components/SimpleCell/SimpleCell.js +21 -10
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.d.ts +9 -0
- package/dist/cssm/components/Slider/Slider.d.ts +5 -0
- package/dist/cssm/components/SliderSwitch/SliderSwitch.d.ts +47 -0
- package/dist/cssm/components/SliderSwitch/SliderSwitch.js +14 -3
- package/dist/cssm/components/SliderSwitch/SliderSwitch.js.map +1 -1
- package/dist/cssm/components/SliderSwitch/SliderSwitchButton.d.ts +11 -0
- package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js +5 -5
- package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.d.ts +35 -0
- package/dist/cssm/components/Spacing/Spacing.d.ts +18 -0
- package/dist/cssm/components/Spinner/Spinner.d.ts +7 -0
- package/dist/cssm/components/SplitCol/SplitCol.d.ts +22 -0
- package/dist/cssm/components/SplitLayout/SplitLayout.d.ts +15 -0
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.d.ts +7 -0
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.d.ts +21 -0
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -3
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.css +1 -1
- package/dist/cssm/components/Switch/Switch.d.ts +7 -0
- package/dist/cssm/components/Switch/Switch.js +3 -6
- package/dist/cssm/components/Switch/Switch.js.map +1 -1
- package/dist/cssm/components/Tabbar/Tabbar.d.ts +11 -0
- package/dist/cssm/components/TabbarItem/TabbarItem.d.ts +21 -0
- package/dist/cssm/components/Tabs/Tabs.d.ts +10 -0
- package/dist/cssm/components/TabsItem/TabsItem.d.ts +8 -0
- package/dist/cssm/components/Tappable/Tappable.d.ts +40 -0
- package/dist/cssm/components/TextTooltip/TextTooltip.d.ts +14 -0
- package/dist/cssm/components/TextTooltip/TextTooltip.js +1 -2
- package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.d.ts +11 -0
- package/dist/cssm/components/Tooltip/Tooltip.d.ts +55 -0
- package/dist/cssm/components/Tooltip/Tooltip.js +1 -2
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/Tooltip/TooltipContainer.d.ts +5 -0
- package/dist/cssm/components/Touch/Touch.d.ts +49 -0
- package/dist/cssm/components/Touch/TouchContext.d.ts +7 -0
- package/dist/cssm/components/Typography/Caption/Caption.d.ts +10 -0
- package/dist/cssm/components/Typography/Headline/Headline.d.ts +8 -0
- package/dist/cssm/components/Typography/Subhead/Subhead.css +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.d.ts +11 -0
- package/dist/cssm/components/Typography/Subhead/Subhead.js +13 -7
- package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cssm/components/Typography/Text/Text.d.ts +8 -0
- package/dist/cssm/components/Typography/Title/Title.css +1 -1
- package/dist/cssm/components/Typography/Title/Title.d.ts +12 -0
- package/dist/cssm/components/Typography/Title/Title.js +7 -16
- package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.d.ts +23 -0
- package/dist/cssm/components/UsersStack/UsersStack.js +0 -1
- package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cssm/components/UsersStack/masks.d.ts +1 -0
- package/dist/cssm/components/View/View.d.ts +80 -0
- package/dist/cssm/components/View/ViewInfinite.d.ts +66 -0
- package/dist/cssm/components/View/utils.d.ts +2 -0
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.css +1 -0
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +12 -0
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +24 -0
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -0
- package/dist/cssm/components/WriteBar/WriteBar.d.ts +23 -0
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.d.ts +18 -0
- package/dist/cssm/helpers/avatar.d.ts +5 -0
- package/dist/cssm/helpers/getClassName.d.ts +2 -0
- package/dist/cssm/helpers/getScheme.d.ts +8 -0
- package/dist/cssm/helpers/math.d.ts +5 -0
- package/dist/cssm/helpers/scheme.d.ts +34 -0
- package/dist/cssm/hoc/withAdaptivity.d.ts +13 -0
- package/dist/cssm/hoc/withContext.d.ts +2 -0
- package/dist/cssm/hoc/withInsets.d.ts +3 -0
- package/dist/cssm/hoc/withPlatform.d.ts +3 -0
- package/dist/cssm/hooks/useAdaptivity.d.ts +3 -0
- package/dist/cssm/hooks/useAppearance.d.ts +1 -0
- package/dist/cssm/hooks/useAppearance.js +2 -2
- package/dist/cssm/hooks/useAppearance.js.map +1 -1
- package/dist/cssm/hooks/useBrowserInfo.d.ts +2 -0
- package/dist/cssm/hooks/useEffectDev.d.ts +2 -0
- package/dist/cssm/hooks/useEnsuredControl.d.ts +6 -0
- package/dist/cssm/hooks/useEventListener.d.ts +7 -0
- package/dist/cssm/hooks/useExternRef.d.ts +2 -0
- package/dist/cssm/hooks/useFocusVisible.d.ts +6 -0
- package/dist/cssm/hooks/useGlobalEventListener.d.ts +2 -0
- package/dist/cssm/hooks/useInsets.d.ts +8 -0
- package/dist/cssm/hooks/useKeyboard.d.ts +11 -0
- package/dist/cssm/hooks/useKeyboardInputTracker.d.ts +1 -0
- package/dist/cssm/hooks/useObjectMemo.d.ts +2 -0
- package/dist/cssm/hooks/usePatchChildrenRef.d.ts +6 -0
- package/dist/cssm/hooks/usePlatform.d.ts +2 -0
- package/dist/cssm/hooks/usePlatform.js.map +1 -1
- package/dist/cssm/hooks/useTimeout.d.ts +4 -0
- package/dist/cssm/hooks/useWaitTransitionFinish.d.ts +3 -0
- package/dist/cssm/index.d.ts +279 -0
- package/dist/cssm/index.js +6 -5
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/SSR.d.ts +14 -0
- package/dist/cssm/lib/accessibility.d.ts +10 -0
- package/dist/cssm/lib/animate.d.ts +15 -0
- package/dist/cssm/lib/browser.d.ts +11 -0
- package/dist/cssm/lib/callMultiple.d.ts +1 -0
- package/dist/cssm/lib/classNames.d.ts +6 -0
- package/dist/cssm/lib/classScopingMode.d.ts +8 -0
- package/dist/cssm/lib/dom.d.ts +21 -0
- package/dist/cssm/lib/fx.d.ts +5 -0
- package/dist/cssm/lib/getNavId.d.ts +6 -0
- package/dist/cssm/lib/is.d.ts +1 -0
- package/dist/cssm/lib/isRefObject.d.ts +2 -0
- package/dist/cssm/lib/jsxRuntime.d.ts +8 -0
- package/dist/cssm/lib/offset.d.ts +7 -0
- package/dist/cssm/lib/platform.d.ts +19 -0
- package/dist/cssm/lib/polyfills.d.ts +6 -0
- package/dist/cssm/lib/prefixClass.d.ts +1 -0
- package/dist/cssm/lib/removeObjectKeys.d.ts +1 -0
- package/dist/cssm/lib/select.d.ts +7 -0
- package/dist/cssm/lib/styles.d.ts +1 -0
- package/dist/cssm/lib/supportEvents.d.ts +9 -0
- package/dist/cssm/lib/taptic.d.ts +2 -0
- package/dist/cssm/lib/testing.d.ts +1 -0
- package/dist/cssm/lib/touch.d.ts +9 -0
- package/dist/cssm/lib/useIsomorphicLayoutEffect.d.ts +2 -0
- package/dist/cssm/lib/utils.d.ts +15 -0
- package/dist/cssm/lib/utils.js +3 -0
- package/dist/cssm/lib/utils.js.map +1 -1
- package/dist/cssm/lib/warnOnce.d.ts +1 -0
- package/dist/cssm/styles/components.css +10 -5
- package/dist/cssm/styles/themes.css +1 -1
- package/dist/cssm/tokenized/index.d.ts +14 -0
- package/dist/cssm/tokenized/index.js +6 -0
- package/dist/cssm/tokenized/index.js.map +1 -1
- package/dist/cssm/types.d.ts +34 -0
- package/dist/cssm/unstable/index.d.ts +17 -0
- package/dist/hooks/useAppearance.d.ts +1 -1
- package/dist/hooks/useAppearance.js +2 -2
- package/dist/hooks/useAppearance.js.map +1 -1
- package/dist/hooks/usePlatform.d.ts +1 -1
- package/dist/hooks/usePlatform.js.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.js +3 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/tokenized/index.d.ts +12 -0
- package/dist/tokenized/index.js +6 -0
- package/dist/tokenized/index.js.map +1 -1
- package/dist/vkui.css +11 -6
- package/dist/vkui.css.map +1 -1
- package/package.json +4 -3
- package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +4 -0
- package/src/components/ActionSheetItem/ActionSheetItem.tsx +27 -27
- package/src/components/Alert/Alert.tsx +5 -7
- package/src/components/AppRoot/AppRoot.tsx +0 -6
- package/src/components/AppRoot/AppRootPortal.tsx +9 -1
- package/src/components/AppearanceProvider/AppearanceProvider.tsx +30 -13
- package/src/components/AppearanceProvider/AppearanceProviderContext.tsx +4 -9
- package/src/components/Banner/Banner.tsx +2 -2
- package/src/components/Button/Button.tsx +9 -9
- package/src/components/Card/Card.css +41 -0
- package/src/components/Card/Card.tsx +2 -9
- package/src/components/CardScroll/CardScroll.css +2 -39
- package/src/components/CardScroll/CardScroll.tsx +7 -17
- package/src/components/CardScroll/Readme.md +3 -2
- package/src/components/Chip/Chip.tsx +1 -4
- package/src/components/ChipsInput/ChipsInput.tsx +1 -1
- package/src/components/ConfigProvider/ConfigProvider.tsx +31 -40
- package/src/components/ConfigProvider/ConfigProviderContext.tsx +14 -18
- package/src/components/ContentCard/ContentCard.tsx +2 -2
- package/src/components/CustomSelectOption/CustomSelectOption.css +1 -0
- package/src/components/FocusVisible/FocusVisible.css +4 -8
- package/src/components/FormItem/FormItem.tsx +1 -5
- package/src/components/FormItem/Readme.md +14 -2
- package/src/components/Gradient/Gradient.tsx +4 -12
- package/src/components/Gradient/Readme.md +1 -1
- package/src/components/Header/Header.tsx +3 -3
- package/src/components/HorizontalCell/HorizontalCell.tsx +1 -3
- package/src/components/HorizontalScroll/HorizontalScroll.tsx +1 -5
- package/src/components/HorizontalScroll/HorizontalScrollArrow.css +12 -5
- package/src/components/HorizontalScroll/HorizontalScrollArrow.tsx +1 -5
- package/src/components/InfoRow/InfoRow.tsx +1 -1
- package/src/components/ModalCardBase/ModalCardBase.tsx +2 -2
- package/src/components/ModalRoot/Readme.md +1 -1
- package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +1 -5
- package/src/components/Placeholder/Placeholder.tsx +1 -1
- package/src/components/Removable/Removable.tsx +9 -7
- package/src/components/RichCell/RichCell.tsx +1 -5
- package/src/components/Search/Search.tsx +38 -14
- package/src/components/SegmentedControl/Readme.md +94 -0
- package/src/components/SegmentedControl/SegmentedControl.css +42 -0
- package/src/components/SegmentedControl/SegmentedControl.tsx +105 -0
- package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +30 -0
- package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +42 -0
- package/src/components/SimpleCell/SimpleCell.tsx +11 -11
- package/src/components/SliderSwitch/Readme.md +4 -0
- package/src/components/SliderSwitch/SliderSwitch.tsx +17 -3
- package/src/components/SliderSwitch/SliderSwitchButton.tsx +4 -4
- package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -1
- package/src/components/Switch/Switch.css +0 -12
- package/src/components/Switch/Switch.tsx +8 -10
- package/src/components/TextTooltip/TextTooltip.tsx +2 -6
- package/src/components/Tooltip/Tooltip.tsx +2 -6
- package/src/components/Typography/Subhead/Readme.md +18 -24
- package/src/components/Typography/Subhead/Subhead.css +22 -7
- package/src/components/Typography/Subhead/Subhead.tsx +23 -7
- package/src/components/Typography/Title/Readme.md +28 -41
- package/src/components/Typography/Title/Title.css +22 -13
- package/src/components/Typography/Title/Title.tsx +27 -22
- package/src/components/UsersStack/Readme.md +1 -1
- package/src/components/UsersStack/UsersStack.tsx +1 -1
- package/src/components/VisuallyHiddenInput/VisuallyHiddenInput.css +9 -0
- package/src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx +25 -0
- package/src/hooks/useAppearance.ts +2 -3
- package/src/hooks/usePlatform.ts +1 -1
- package/src/index.ts +11 -5
- package/src/lib/utils.ts +6 -0
- package/src/styles/components.css +3 -0
- package/src/tokenized/index.ts +22 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/AppRoot/AppRoot.tsx"],"names":["React","useDOM","classNames","AppRootContext","withAdaptivity","SizeType","useIsomorphicLayoutEffect","classScopingMode","IconSettingsProvider","elementScrollController","globalScrollController","ScrollContext","noop","warnOnce","useKeyboardInputTracker","useInsets","AppearanceProviderContext","warn","AppRoot","children","_mode","mode","_embedded","embedded","sizeX","hasMouse","noLegacyClasses","scroll","props","isKeyboardInputActive","rootRef","useRef","useState","portalRoot","setPortalRoot","window","document","insets","appearanceContext","useContext","initialized","current","documentElement","classList","add","noConflict","process","env","NODE_ENV","portal","createElement","body","appendChild","parentElement","removeChild","parent","classes","concat","remove","key","hasOwnProperty","inset","style","setProperty","removeProperty","REGULAR","container","scrollController","useMemo","setAttribute","scheme","content","appRoot","keyboardInput"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { useDOM } from \"../../lib/dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { AppRootContext } from \"./AppRootContext\";\nimport {\n withAdaptivity,\n SizeType,\n AdaptivityProps,\n} from \"../../hoc/withAdaptivity\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { classScopingMode } from \"../../lib/classScopingMode\";\nimport { IconSettingsProvider } from \"@vkontakte/icons\";\nimport {\n elementScrollController,\n globalScrollController,\n ScrollContext,\n ScrollContextInterface,\n} from \"./ScrollContext\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { useKeyboardInputTracker } from \"../../hooks/useKeyboardInputTracker\";\nimport { useInsets } from \"../../hooks/useInsets\";\nimport { AppearanceProviderContext } from \"../AppearanceProvider/AppearanceProviderContext\";\nimport { Insets } from \"@vkontakte/vk-bridge\";\nimport \"./AppRoot.css\";\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<AdaptivityProps, \"sizeX\" | \"hasMouse\"> {\n /** @deprecated Use mode=\"embedded\" */\n embedded?: boolean;\n /** Режим встраивания */\n mode?: \"partial\" | \"embedded\" | \"full\";\n window?: Window;\n /** Убирает классы без префикса (.Button) */\n noLegacyClasses?: boolean;\n scroll?: \"global\" | \"contain\";\n}\n\nconst warn = warnOnce(\"AppRoot\");\nexport const AppRoot = withAdaptivity<AppRootProps>(\n ({\n children,\n mode: _mode,\n embedded: _embedded,\n sizeX,\n hasMouse,\n noLegacyClasses = false,\n scroll = \"global\",\n ...props\n }) => {\n // normalize mode\n const mode = _mode || (_embedded ? \"embedded\" : \"full\");\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const [portalRoot, setPortalRoot] = React.useState<HTMLDivElement | null>(\n null\n );\n const { window, document } = useDOM();\n const insets = useInsets();\n const appearanceContext = React.useContext(AppearanceProviderContext);\n\n const initialized = React.useRef(false);\n if (!initialized.current) {\n if (document && mode === \"full\") {\n document.documentElement.classList.add(\"vkui\");\n }\n classScopingMode.noConflict = noLegacyClasses;\n initialized.current = true;\n }\n\n if (process.env.NODE_ENV === \"development\") {\n if (scroll !== \"global\" && mode !== \"embedded\") {\n warn(\"Scroll modes only supported in embedded mode\");\n }\n if (_mode && _embedded) {\n warn(`mode=\"${mode}\" overrides embedded`);\n }\n }\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n const portal = document!.createElement(\"div\");\n portal.classList.add(\"vkui__portal-root\");\n document!.body.appendChild(portal);\n setPortalRoot(portal);\n return () => {\n portal.parentElement?.removeChild(portal);\n };\n }, []);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\") {\n return noop;\n }\n\n const parent = rootRef.current?.parentElement;\n const classes = [\"vkui__root\"].concat(\n mode === \"embedded\" ? \"vkui__root--embedded\" : []\n );\n parent?.classList.add(...classes);\n\n return () => {\n parent?.classList.remove(...classes);\n if (mode === \"full\") {\n document?.documentElement.classList.remove(\"vkui\");\n }\n };\n }, []);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || !rootRef.current?.parentElement) {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n for (const key in insets) {\n if (\n insets.hasOwnProperty(key) &&\n typeof insets[key as keyof Insets] === \"number\"\n ) {\n const inset = insets[key as keyof Insets];\n parent.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n portalRoot &&\n portalRoot.style.setProperty(\n `--safe-area-inset-${key}`,\n `${inset}px`\n );\n }\n }\n\n return () => {\n for (const key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(`--safe-area-inset-${key}`);\n portalRoot &&\n portalRoot.style.removeProperty(`--safe-area-inset-${key}`);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || sizeX !== SizeType.REGULAR) {\n return noop;\n }\n const container =\n mode === \"embedded\" ? rootRef.current?.parentElement : document!.body;\n container?.classList.add(\"vkui--sizeX-regular\");\n return () => container?.classList.remove(\"vkui--sizeX-regular\");\n }, [sizeX]);\n\n const scrollController = React.useMemo<ScrollContextInterface>(\n () =>\n scroll === \"contain\"\n ? elementScrollController(rootRef)\n : globalScrollController(window, document),\n [document, scroll, window]\n );\n\n useIsomorphicLayoutEffect(() => {\n portalRoot?.setAttribute(\"scheme\", appearanceContext?.scheme ?? \"\");\n }, [portalRoot, appearanceContext?.scheme]);\n\n const content = (\n <AppRootContext.Provider\n value={{\n appRoot: rootRef,\n portalRoot: portalRoot,\n embedded: mode === \"embedded\",\n keyboardInput: isKeyboardInputActive,\n mode,\n }}\n >\n <ScrollContext.Provider value={scrollController}>\n <IconSettingsProvider\n classPrefix=\"vkui\"\n globalClasses={!noLegacyClasses}\n >\n {children}\n </IconSettingsProvider>\n </ScrollContext.Provider>\n </AppRootContext.Provider>\n );\n\n return mode === \"partial\" ? (\n content\n ) : (\n <div\n ref={rootRef}\n vkuiClass={classNames(\"AppRoot\", {\n \"AppRoot--no-mouse\": !hasMouse,\n })}\n {...props}\n >\n {content}\n </div>\n );\n },\n {\n sizeX: true,\n hasMouse: true,\n }\n);\n"],"file":"AppRoot.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/AppRoot/AppRoot.tsx"],"names":["React","useDOM","classNames","AppRootContext","withAdaptivity","SizeType","useIsomorphicLayoutEffect","classScopingMode","IconSettingsProvider","elementScrollController","globalScrollController","ScrollContext","noop","warnOnce","useKeyboardInputTracker","useInsets","warn","AppRoot","children","_mode","mode","_embedded","embedded","sizeX","hasMouse","noLegacyClasses","scroll","props","isKeyboardInputActive","rootRef","useRef","useState","portalRoot","setPortalRoot","window","document","insets","initialized","current","documentElement","classList","add","noConflict","process","env","NODE_ENV","portal","createElement","body","appendChild","parentElement","removeChild","parent","classes","concat","remove","key","hasOwnProperty","inset","style","setProperty","removeProperty","REGULAR","container","scrollController","useMemo","content","appRoot","keyboardInput"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { useDOM } from \"../../lib/dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { AppRootContext } from \"./AppRootContext\";\nimport {\n withAdaptivity,\n SizeType,\n AdaptivityProps,\n} from \"../../hoc/withAdaptivity\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { classScopingMode } from \"../../lib/classScopingMode\";\nimport { IconSettingsProvider } from \"@vkontakte/icons\";\nimport {\n elementScrollController,\n globalScrollController,\n ScrollContext,\n ScrollContextInterface,\n} from \"./ScrollContext\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { useKeyboardInputTracker } from \"../../hooks/useKeyboardInputTracker\";\nimport { useInsets } from \"../../hooks/useInsets\";\nimport { Insets } from \"@vkontakte/vk-bridge\";\nimport \"./AppRoot.css\";\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<AdaptivityProps, \"sizeX\" | \"hasMouse\"> {\n /** @deprecated Use mode=\"embedded\" */\n embedded?: boolean;\n /** Режим встраивания */\n mode?: \"partial\" | \"embedded\" | \"full\";\n window?: Window;\n /** Убирает классы без префикса (.Button) */\n noLegacyClasses?: boolean;\n scroll?: \"global\" | \"contain\";\n}\n\nconst warn = warnOnce(\"AppRoot\");\nexport const AppRoot = withAdaptivity<AppRootProps>(\n ({\n children,\n mode: _mode,\n embedded: _embedded,\n sizeX,\n hasMouse,\n noLegacyClasses = false,\n scroll = \"global\",\n ...props\n }) => {\n // normalize mode\n const mode = _mode || (_embedded ? \"embedded\" : \"full\");\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const [portalRoot, setPortalRoot] = React.useState<HTMLDivElement | null>(\n null\n );\n const { window, document } = useDOM();\n const insets = useInsets();\n\n const initialized = React.useRef(false);\n if (!initialized.current) {\n if (document && mode === \"full\") {\n document.documentElement.classList.add(\"vkui\");\n }\n classScopingMode.noConflict = noLegacyClasses;\n initialized.current = true;\n }\n\n if (process.env.NODE_ENV === \"development\") {\n if (scroll !== \"global\" && mode !== \"embedded\") {\n warn(\"Scroll modes only supported in embedded mode\");\n }\n if (_mode && _embedded) {\n warn(`mode=\"${mode}\" overrides embedded`);\n }\n }\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n const portal = document!.createElement(\"div\");\n portal.classList.add(\"vkui__portal-root\");\n document!.body.appendChild(portal);\n setPortalRoot(portal);\n return () => {\n portal.parentElement?.removeChild(portal);\n };\n }, []);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\") {\n return noop;\n }\n\n const parent = rootRef.current?.parentElement;\n const classes = [\"vkui__root\"].concat(\n mode === \"embedded\" ? \"vkui__root--embedded\" : []\n );\n parent?.classList.add(...classes);\n\n return () => {\n parent?.classList.remove(...classes);\n if (mode === \"full\") {\n document?.documentElement.classList.remove(\"vkui\");\n }\n };\n }, []);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || !rootRef.current?.parentElement) {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n for (const key in insets) {\n if (\n insets.hasOwnProperty(key) &&\n typeof insets[key as keyof Insets] === \"number\"\n ) {\n const inset = insets[key as keyof Insets];\n parent.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n portalRoot &&\n portalRoot.style.setProperty(\n `--safe-area-inset-${key}`,\n `${inset}px`\n );\n }\n }\n\n return () => {\n for (const key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(`--safe-area-inset-${key}`);\n portalRoot &&\n portalRoot.style.removeProperty(`--safe-area-inset-${key}`);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || sizeX !== SizeType.REGULAR) {\n return noop;\n }\n const container =\n mode === \"embedded\" ? rootRef.current?.parentElement : document!.body;\n container?.classList.add(\"vkui--sizeX-regular\");\n return () => container?.classList.remove(\"vkui--sizeX-regular\");\n }, [sizeX]);\n\n const scrollController = React.useMemo<ScrollContextInterface>(\n () =>\n scroll === \"contain\"\n ? elementScrollController(rootRef)\n : globalScrollController(window, document),\n [document, scroll, window]\n );\n\n const content = (\n <AppRootContext.Provider\n value={{\n appRoot: rootRef,\n portalRoot: portalRoot,\n embedded: mode === \"embedded\",\n keyboardInput: isKeyboardInputActive,\n mode,\n }}\n >\n <ScrollContext.Provider value={scrollController}>\n <IconSettingsProvider\n classPrefix=\"vkui\"\n globalClasses={!noLegacyClasses}\n >\n {children}\n </IconSettingsProvider>\n </ScrollContext.Provider>\n </AppRootContext.Provider>\n );\n\n return mode === \"partial\" ? (\n content\n ) : (\n <div\n ref={rootRef}\n vkuiClass={classNames(\"AppRoot\", {\n \"AppRoot--no-mouse\": !hasMouse,\n })}\n {...props}\n >\n {content}\n </div>\n );\n },\n {\n sizeX: true,\n hasMouse: true,\n }\n);\n"],"file":"AppRoot.js"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface AppRootContextInterface {
|
|
3
|
+
appRoot?: React.RefObject<HTMLDivElement>;
|
|
4
|
+
portalRoot?: HTMLDivElement | null;
|
|
5
|
+
embedded?: boolean;
|
|
6
|
+
mode?: "partial" | "embedded" | "full";
|
|
7
|
+
keyboardInput?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const AppRootContext: React.Context<AppRootContextInterface>;
|
|
@@ -2,6 +2,8 @@ import { createScopedElement } from "../../lib/jsxRuntime";
|
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { createPortal } from "react-dom";
|
|
4
4
|
import { AppRootContext } from "./AppRootContext";
|
|
5
|
+
import { AppearanceProvider } from "../AppearanceProvider/AppearanceProvider";
|
|
6
|
+
import { useAppearance } from "../../hooks/useAppearance";
|
|
5
7
|
export var AppRootPortal = function AppRootPortal(_ref) {
|
|
6
8
|
var _forcePortal;
|
|
7
9
|
|
|
@@ -13,9 +15,12 @@ export var AppRootPortal = function AppRootPortal(_ref) {
|
|
|
13
15
|
portalRoot = _React$useContext.portalRoot,
|
|
14
16
|
mode = _React$useContext.mode;
|
|
15
17
|
|
|
18
|
+
var appearance = useAppearance();
|
|
16
19
|
forcePortal = (_forcePortal = forcePortal) !== null && _forcePortal !== void 0 ? _forcePortal : mode !== "full";
|
|
17
|
-
return portalRoot && forcePortal ? /*#__PURE__*/createPortal(createScopedElement(
|
|
20
|
+
return portalRoot && forcePortal ? /*#__PURE__*/createPortal(createScopedElement(AppearanceProvider, {
|
|
21
|
+
appearance: appearance
|
|
22
|
+
}, createScopedElement("div", {
|
|
18
23
|
className: className
|
|
19
|
-
}, children), portalRoot) : createScopedElement(React.Fragment, null, children);
|
|
24
|
+
}, children)), portalRoot) : createScopedElement(React.Fragment, null, children);
|
|
20
25
|
};
|
|
21
26
|
//# sourceMappingURL=AppRootPortal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/AppRoot/AppRootPortal.tsx"],"names":["React","createPortal","AppRootContext","AppRootPortal","children","className","forcePortal","useContext","portalRoot","mode"],"mappings":";AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT,QAA6B,WAA7B;AACA,SAASC,cAAT;AAEA,OAAO,IAAMC,aAEZ,GAAG,SAFSA,aAET,OAA0C;AAAA;;AAAA,MAAvCC,QAAuC,QAAvCA,QAAuC;AAAA,MAA7BC,SAA6B,QAA7BA,SAA6B;AAAA,MAAlBC,WAAkB,QAAlBA,WAAkB;;AAC5C,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/AppRoot/AppRootPortal.tsx"],"names":["React","createPortal","AppRootContext","AppearanceProvider","useAppearance","AppRootPortal","children","className","forcePortal","useContext","portalRoot","mode","appearance"],"mappings":";AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT,QAA6B,WAA7B;AACA,SAASC,cAAT;AACA,SAASC,kBAAT;AACA,SAASC,aAAT;AAEA,OAAO,IAAMC,aAEZ,GAAG,SAFSA,aAET,OAA0C;AAAA;;AAAA,MAAvCC,QAAuC,QAAvCA,QAAuC;AAAA,MAA7BC,SAA6B,QAA7BA,SAA6B;AAAA,MAAlBC,WAAkB,QAAlBA,WAAkB;;AAC5C,0BAA6BR,KAAK,CAACS,UAAN,CAAiBP,cAAjB,CAA7B;AAAA,MAAQQ,UAAR,qBAAQA,UAAR;AAAA,MAAoBC,IAApB,qBAAoBA,IAApB;;AACA,MAAMC,UAAU,GAAGR,aAAa,EAAhC;AAEAI,EAAAA,WAAW,mBAAGA,WAAH,uDAAkBG,IAAI,KAAK,MAAtC;AACA,SAAOD,UAAU,IAAIF,WAAd,gBACLP,YAAY,CACV,oBAAC,kBAAD;AAAoB,IAAA,UAAU,EAAEW;AAAhC,KACE;AAAK,IAAA,SAAS,EAAEL;AAAhB,KAA4BD,QAA5B,CADF,CADU,EAIVI,UAJU,CADP,GAQL,oBAAC,KAAD,CAAO,QAAP,QAAiBJ,QAAjB,CARF;AAUD,CAjBM","sourcesContent":["import * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { AppRootContext } from \"./AppRootContext\";\nimport { AppearanceProvider } from \"../AppearanceProvider/AppearanceProvider\";\nimport { useAppearance } from \"../../hooks/useAppearance\";\n\nexport const AppRootPortal: React.FC<\n React.PropsWithChildren<{ className?: string; forcePortal?: boolean }>\n> = ({ children, className, forcePortal }) => {\n const { portalRoot, mode } = React.useContext(AppRootContext);\n const appearance = useAppearance();\n\n forcePortal = forcePortal ?? mode !== \"full\";\n return portalRoot && forcePortal ? (\n createPortal(\n <AppearanceProvider appearance={appearance}>\n <div className={className}>{children}</div>\n </AppearanceProvider>,\n portalRoot\n )\n ) : (\n <React.Fragment>{children}</React.Fragment>\n );\n};\n"],"file":"AppRootPortal.js"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface ScrollContextInterface {
|
|
3
|
+
getScroll(): {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
};
|
|
7
|
+
scrollTo(x?: number, y?: number): void;
|
|
8
|
+
}
|
|
9
|
+
export declare const ScrollContext: React.Context<ScrollContextInterface>;
|
|
10
|
+
export declare const globalScrollController: (window: Window | undefined, document: HTMLDocument | undefined) => {
|
|
11
|
+
getScroll: () => {
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
};
|
|
15
|
+
scrollTo: (x?: number, y?: number) => void;
|
|
16
|
+
};
|
|
17
|
+
export declare const elementScrollController: (elRef: React.RefObject<HTMLElement>) => {
|
|
18
|
+
getScroll: () => {
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
};
|
|
22
|
+
scrollTo: (x?: number, y?: number) => void;
|
|
23
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { AppearanceType } from "@vkontakte/vk-bridge";
|
|
3
|
+
export interface AppearanceProviderProps {
|
|
4
|
+
appearance?: AppearanceType;
|
|
5
|
+
}
|
|
6
|
+
export declare const generateVKUITokensClassName: (platform: string, appearance: string) => string;
|
|
7
|
+
export declare const AppearanceProvider: React.FC<AppearanceProviderProps>;
|
|
@@ -4,26 +4,44 @@ import { AppearanceProviderContext } from "./AppearanceProviderContext";
|
|
|
4
4
|
import { getScheme } from "../../helpers/getScheme";
|
|
5
5
|
import { classNamesString } from "../../lib/classNames";
|
|
6
6
|
import { usePlatform } from "../../hooks/usePlatform";
|
|
7
|
+
import { Platform } from "../../lib/platform";
|
|
8
|
+
export var generateVKUITokensClassName = function generateVKUITokensClassName(platform, appearance) {
|
|
9
|
+
var tokensPlatform;
|
|
10
|
+
|
|
11
|
+
switch (platform) {
|
|
12
|
+
case Platform.ANDROID:
|
|
13
|
+
tokensPlatform = "vkBase";
|
|
14
|
+
break;
|
|
15
|
+
|
|
16
|
+
case Platform.IOS:
|
|
17
|
+
tokensPlatform = "vkIOS";
|
|
18
|
+
break;
|
|
19
|
+
|
|
20
|
+
case Platform.VKCOM:
|
|
21
|
+
tokensPlatform = "vkCom";
|
|
22
|
+
break;
|
|
23
|
+
|
|
24
|
+
default:
|
|
25
|
+
tokensPlatform = platform;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return "vkui--".concat(tokensPlatform, "--").concat(appearance);
|
|
29
|
+
};
|
|
7
30
|
export var AppearanceProvider = function AppearanceProvider(_ref) {
|
|
8
31
|
var children = _ref.children,
|
|
9
32
|
_ref$appearance = _ref.appearance,
|
|
10
33
|
appearance = _ref$appearance === void 0 ? "light" : _ref$appearance;
|
|
11
34
|
var platform = usePlatform();
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
appearance: appearance
|
|
17
|
-
}),
|
|
18
|
-
appearance: appearance
|
|
19
|
-
};
|
|
20
|
-
}, [appearance, platform]);
|
|
35
|
+
var scheme = getScheme({
|
|
36
|
+
platform: platform,
|
|
37
|
+
appearance: appearance
|
|
38
|
+
});
|
|
21
39
|
return createScopedElement(AppearanceProviderContext.Provider, {
|
|
22
|
-
value:
|
|
40
|
+
value: appearance
|
|
23
41
|
}, React.Children.map(children, function (child) {
|
|
24
42
|
if ( /*#__PURE__*/React.isValidElement(child)) {
|
|
25
43
|
return /*#__PURE__*/React.cloneElement(child, {
|
|
26
|
-
className: classNamesString(child.props.className, "vkui".concat(
|
|
44
|
+
className: classNamesString(child.props.className, "vkui".concat(scheme), generateVKUITokensClassName(platform, appearance))
|
|
27
45
|
});
|
|
28
46
|
}
|
|
29
47
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/AppearanceProvider/AppearanceProvider.tsx"],"names":["React","AppearanceProviderContext","getScheme","classNamesString","usePlatform","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/AppearanceProvider/AppearanceProvider.tsx"],"names":["React","AppearanceProviderContext","getScheme","classNamesString","usePlatform","Platform","generateVKUITokensClassName","platform","appearance","tokensPlatform","ANDROID","IOS","VKCOM","AppearanceProvider","children","scheme","Children","map","child","isValidElement","cloneElement","className","props"],"mappings":";AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,SAASC,yBAAT;AACA,SAASC,SAAT;AACA,SAASC,gBAAT;AACA,SAASC,WAAT;AACA,SAASC,QAAT;AAMA,OAAO,IAAMC,2BAA2B,GAAG,SAA9BA,2BAA8B,CACzCC,QADyC,EAEzCC,UAFyC,EAG9B;AACX,MAAIC,cAAJ;;AACA,UAAQF,QAAR;AACE,SAAKF,QAAQ,CAACK,OAAd;AACED,MAAAA,cAAc,GAAG,QAAjB;AACA;;AACF,SAAKJ,QAAQ,CAACM,GAAd;AACEF,MAAAA,cAAc,GAAG,OAAjB;AACA;;AACF,SAAKJ,QAAQ,CAACO,KAAd;AACEH,MAAAA,cAAc,GAAG,OAAjB;AACA;;AACF;AACEA,MAAAA,cAAc,GAAGF,QAAjB;AAXJ;;AAcA,yBAAgBE,cAAhB,eAAmCD,UAAnC;AACD,CApBM;AAsBP,OAAO,IAAMK,kBAAqD,GAAG,SAAxDA,kBAAwD,OAG/D;AAAA,MAFJC,QAEI,QAFJA,QAEI;AAAA,6BADJN,UACI;AAAA,MADJA,UACI,gCADS,OACT;AACJ,MAAMD,QAAQ,GAAGH,WAAW,EAA5B;AACA,MAAMW,MAAM,GAAGb,SAAS,CAAC;AACvBK,IAAAA,QAAQ,EAARA,QADuB;AAEvBC,IAAAA,UAAU,EAAVA;AAFuB,GAAD,CAAxB;AAKA,SACE,oBAAC,yBAAD,CAA2B,QAA3B;AAAoC,IAAA,KAAK,EAAEA;AAA3C,KACGR,KAAK,CAACgB,QAAN,CAAeC,GAAf,CAAmBH,QAAnB,EAA6B,UAACI,KAAD,EAAW;AACvC,sBAAIlB,KAAK,CAACmB,cAAN,CAAqBD,KAArB,CAAJ,EAAiC;AAC/B,0BAAOlB,KAAK,CAACoB,YAAN,CAAmBF,KAAnB,EAA0B;AAC/BG,QAAAA,SAAS,EAAElB,gBAAgB,CACzBe,KAAK,CAACI,KAAN,CAAYD,SADa,gBAElBN,MAFkB,GAGzBT,2BAA2B,CAACC,QAAD,EAAWC,UAAX,CAHF;AADI,OAA1B,CAAP;AAOD;;AACD,WAAOU,KAAP;AACD,GAXA,CADH,CADF;AAgBD,CA1BM","sourcesContent":["import * as React from \"react\";\nimport { AppearanceType } from \"@vkontakte/vk-bridge\";\nimport { AppearanceProviderContext } from \"./AppearanceProviderContext\";\nimport { getScheme } from \"../../helpers/getScheme\";\nimport { classNamesString } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { Platform } from \"../../lib/platform\";\n\nexport interface AppearanceProviderProps {\n appearance?: AppearanceType;\n}\n\nexport const generateVKUITokensClassName = (\n platform: string,\n appearance: string\n): string => {\n let tokensPlatform;\n switch (platform) {\n case Platform.ANDROID:\n tokensPlatform = \"vkBase\";\n break;\n case Platform.IOS:\n tokensPlatform = \"vkIOS\";\n break;\n case Platform.VKCOM:\n tokensPlatform = \"vkCom\";\n break;\n default:\n tokensPlatform = platform;\n }\n\n return `vkui--${tokensPlatform}--${appearance}`;\n};\n\nexport const AppearanceProvider: React.FC<AppearanceProviderProps> = ({\n children,\n appearance = \"light\",\n}) => {\n const platform = usePlatform();\n const scheme = getScheme({\n platform,\n appearance,\n });\n\n return (\n <AppearanceProviderContext.Provider value={appearance}>\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n className: classNamesString(\n child.props.className,\n `vkui${scheme}`,\n generateVKUITokensClassName(platform, appearance)\n ),\n });\n }\n return child;\n })}\n </AppearanceProviderContext.Provider>\n );\n};\n"],"file":"AppearanceProvider.js"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
|
|
2
|
+
import { Appearance } from "../../helpers/scheme";
|
|
3
|
+
export var AppearanceProviderContext = /*#__PURE__*/React.createContext(Appearance.LIGHT);
|
|
3
4
|
//# sourceMappingURL=AppearanceProviderContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/AppearanceProvider/AppearanceProviderContext.tsx"],"names":["React","AppearanceProviderContext","createContext","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/AppearanceProvider/AppearanceProviderContext.tsx"],"names":["React","Appearance","AppearanceProviderContext","createContext","LIGHT"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,SAASC,UAAT;AAEA,OAAO,IAAMC,yBAAyB,gBAAGF,KAAK,CAACG,aAAN,CACvCF,UAAU,CAACG,KAD4B,CAAlC","sourcesContent":["import * as React from \"react\";\nimport { AppearanceType } from \"@vkontakte/vk-bridge\";\nimport { Appearance } from \"../../helpers/scheme\";\n\nexport const AppearanceProviderContext = React.createContext<AppearanceType>(\n Appearance.LIGHT\n);\n"],"file":"AppearanceProviderContext.js"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { HasRef, HasRootRef } from "../../types";
|
|
3
|
+
import "./Avatar.css";
|
|
4
|
+
export interface AvatarProps extends React.ImgHTMLAttributes<HTMLElement>, HasRootRef<HTMLDivElement>, HasRef<HTMLImageElement> {
|
|
5
|
+
/**
|
|
6
|
+
* Рекомендуемый сет значений: 96 | 88 | 80 | 72 | 64 | 56 | 48 | 44 | 40 | 36 | 32 | 28 | 24
|
|
7
|
+
*/
|
|
8
|
+
size?: number;
|
|
9
|
+
mode?: "default" | "image" | "app";
|
|
10
|
+
shadow?: boolean;
|
|
11
|
+
badge?: "online" | "online-mobile" | JSX.Element;
|
|
12
|
+
overlayIcon?: JSX.Element;
|
|
13
|
+
overlayMode?: "dark" | "light";
|
|
14
|
+
/**
|
|
15
|
+
* Поведение показа overlay: "hover" - при наведении, "always" - всегда
|
|
16
|
+
*/
|
|
17
|
+
overlayAction?: "hover" | "always";
|
|
18
|
+
}
|
|
19
|
+
export declare const AVATAR_DEFAULT_SIZE = 48;
|
|
20
|
+
export declare const AVATAR_DEFAULT_SHADOW = true;
|
|
21
|
+
declare const Avatar: React.FC<AvatarProps>;
|
|
22
|
+
export default Avatar;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import "./Banner.css";
|
|
3
|
+
export interface BannerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/**
|
|
5
|
+
* Тип баннера.
|
|
6
|
+
*/
|
|
7
|
+
mode?: "tint" | "image";
|
|
8
|
+
size?: "s" | "m";
|
|
9
|
+
/**
|
|
10
|
+
* Тип действия в правой части баннера.
|
|
11
|
+
*
|
|
12
|
+
* - `dismiss` – отображается иконка крестика, при клике на неё сработает свойство `onDismiss`.
|
|
13
|
+
* - `expand` – отображается иконка шеврона, которая подразумевает, что при клике на баннер можно куда-то перейти.
|
|
14
|
+
*/
|
|
15
|
+
asideMode?: "dismiss" | "expand";
|
|
16
|
+
/**
|
|
17
|
+
* Срабатывает при клике на иконку крестика при `asideMode="dismiss"`.
|
|
18
|
+
*/
|
|
19
|
+
onDismiss?: React.MouseEventHandler<HTMLButtonElement>;
|
|
20
|
+
/**
|
|
21
|
+
* `aria-label` для кнопки при `asideMode="dismiss". Необходим, чтобы кнопка была доступной.
|
|
22
|
+
*/
|
|
23
|
+
dismissLabel?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Содержимое, отображаемое в левой части баннера.
|
|
26
|
+
*/
|
|
27
|
+
before?: React.ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Заголовок. <br />
|
|
30
|
+
* При использовании этого свойства рекомендуется не указывать `text`.
|
|
31
|
+
*/
|
|
32
|
+
header?: React.ReactNode;
|
|
33
|
+
/**
|
|
34
|
+
* Подзаголовок. <br />
|
|
35
|
+
* При использовании этого свойства рекомендуется не указывать `text`.
|
|
36
|
+
*/
|
|
37
|
+
subheader?: React.ReactNode;
|
|
38
|
+
/**
|
|
39
|
+
* Текст баннера. <br />
|
|
40
|
+
* Это свойство следует использовать без указания `header` и `subheader`.
|
|
41
|
+
*/
|
|
42
|
+
text?: React.ReactNode;
|
|
43
|
+
/**
|
|
44
|
+
* При использовании `mode="image"`.
|
|
45
|
+
*
|
|
46
|
+
* - `light` – в качестве фона используется светлое изображение, цвет текста в баннере будет тёмным.
|
|
47
|
+
* - `dark` – в качестве фона используется тёмное изображение, цвет текста будет светлым.
|
|
48
|
+
*/
|
|
49
|
+
imageTheme?: "light" | "dark";
|
|
50
|
+
/**
|
|
51
|
+
* При использовании `mode="image"`.
|
|
52
|
+
*
|
|
53
|
+
* Элемент, который нужно стилизовать цветом и/или фоном. Этот элемент будет растянут на 100% ширины и высоты баннера.
|
|
54
|
+
*/
|
|
55
|
+
background?: React.ReactNode;
|
|
56
|
+
/**
|
|
57
|
+
* Кнопки, отображаемые в баннере.
|
|
58
|
+
*
|
|
59
|
+
* - В режиме `tint` или в `image` со светлым фоном рекомендуется использовать только `<Button mode="primary" />` или `<Button mode="tertiary" hasHover={false} />`.
|
|
60
|
+
* - В режиме `image` с тёмным фоном – `<Button mode="overlay_primary" />`.
|
|
61
|
+
*/
|
|
62
|
+
actions?: React.ReactNode;
|
|
63
|
+
}
|
|
64
|
+
declare const Banner: React.FC<BannerProps>;
|
|
65
|
+
export default Banner;
|
|
@@ -25,7 +25,7 @@ var BannerHeader = function BannerHeader(_ref) {
|
|
|
25
25
|
|
|
26
26
|
return size === "m" ? createScopedElement(Title, _extends({
|
|
27
27
|
level: "2",
|
|
28
|
-
weight: "
|
|
28
|
+
weight: "2"
|
|
29
29
|
}, restProps)) : createScopedElement(Headline, _extends({
|
|
30
30
|
weight: "medium"
|
|
31
31
|
}, restProps));
|
|
@@ -37,9 +37,7 @@ var BannerSubheader = function BannerSubheader(_ref2) {
|
|
|
37
37
|
|
|
38
38
|
return size === "m" ? createScopedElement(Text, _extends({
|
|
39
39
|
weight: "regular"
|
|
40
|
-
}, restProps)) : createScopedElement(Subhead,
|
|
41
|
-
weight: "regular"
|
|
42
|
-
}, restProps));
|
|
40
|
+
}, restProps)) : createScopedElement(Subhead, restProps);
|
|
43
41
|
};
|
|
44
42
|
|
|
45
43
|
var Banner = function Banner(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Banner/Banner.tsx"],"names":["React","getClassName","classNames","usePlatform","ANDROID","IOS","VKCOM","hasReactNode","Icon24Chevron","Icon24DismissSubstract","Icon24DismissDark","Icon24Cancel","Tappable","IconButton","Headline","Subhead","Text","Title","BannerHeader","size","restProps","BannerSubheader","Banner","props","platform","mode","imageTheme","before","asideMode","header","subheader","text","children","background","actions","onDismiss","dismissLabel","undefined","Children","count","defaultProps"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { ANDROID, IOS, VKCOM } from \"../../lib/platform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport {\n Icon24Chevron,\n Icon24DismissSubstract,\n Icon24DismissDark,\n Icon24Cancel,\n} from \"@vkontakte/icons\";\nimport Tappable from \"../Tappable/Tappable\";\nimport IconButton from \"../IconButton/IconButton\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport Text from \"../Typography/Text/Text\";\nimport Title from \"../Typography/Title/Title\";\nimport \"./Banner.css\";\n\nexport interface BannerProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Тип баннера.\n */\n mode?: \"tint\" | \"image\";\n size?: \"s\" | \"m\";\n /**\n * Тип действия в правой части баннера.\n *\n * - `dismiss` – отображается иконка крестика, при клике на неё сработает свойство `onDismiss`.\n * - `expand` – отображается иконка шеврона, которая подразумевает, что при клике на баннер можно куда-то перейти.\n */\n asideMode?: \"dismiss\" | \"expand\";\n /**\n * Срабатывает при клике на иконку крестика при `asideMode=\"dismiss\"`.\n */\n onDismiss?: React.MouseEventHandler<HTMLButtonElement>;\n /**\n * `aria-label` для кнопки при `asideMode=\"dismiss\". Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n /**\n * Содержимое, отображаемое в левой части баннера.\n */\n before?: React.ReactNode;\n /**\n * Заголовок. <br />\n * При использовании этого свойства рекомендуется не указывать `text`.\n */\n header?: React.ReactNode;\n /**\n * Подзаголовок. <br />\n * При использовании этого свойства рекомендуется не указывать `text`.\n */\n subheader?: React.ReactNode;\n /**\n * Текст баннера. <br />\n * Это свойство следует использовать без указания `header` и `subheader`.\n */\n text?: React.ReactNode;\n /**\n * При использовании `mode=\"image\"`.\n *\n * - `light` – в качестве фона используется светлое изображение, цвет текста в баннере будет тёмным.\n * - `dark` – в качестве фона используется тёмное изображение, цвет текста будет светлым.\n */\n imageTheme?: \"light\" | \"dark\";\n /**\n * При использовании `mode=\"image\"`.\n *\n * Элемент, который нужно стилизовать цветом и/или фоном. Этот элемент будет растянут на 100% ширины и высоты баннера.\n */\n background?: React.ReactNode;\n /**\n * Кнопки, отображаемые в баннере.\n *\n * - В режиме `tint` или в `image` со светлым фоном рекомендуется использовать только `<Button mode=\"primary\" />` или `<Button mode=\"tertiary\" hasHover={false} />`.\n * - В режиме `image` с тёмным фоном – `<Button mode=\"overlay_primary\" />`.\n */\n actions?: React.ReactNode;\n}\n\ntype BannerTypographyProps = Pick<BannerProps, \"size\"> & HasComponent;\n\nconst BannerHeader: React.FC<BannerTypographyProps> = ({\n size,\n ...restProps\n}) => {\n return size === \"m\" ? (\n <Title level=\"2\" weight=\"medium\" {...restProps} />\n ) : (\n <Headline weight=\"medium\" {...restProps} />\n );\n};\n\nconst BannerSubheader: React.FC<BannerTypographyProps> = ({\n size,\n ...restProps\n}) => {\n return size === \"m\" ? (\n <Text weight=\"regular\" {...restProps} />\n ) : (\n <Subhead weight=\"regular\" {...restProps} />\n );\n};\n\nconst Banner: React.FC<BannerProps> = (props: BannerProps) => {\n const platform = usePlatform();\n const {\n mode,\n imageTheme,\n size,\n before,\n asideMode,\n header,\n subheader,\n text,\n children,\n background,\n actions,\n onDismiss,\n dismissLabel,\n ...restProps\n } = props;\n\n return (\n <section\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"Banner\", platform),\n `Banner--md-${mode}`,\n `Banner--sz-${size}`,\n {\n \"Banner--inverted\": mode === \"image\" && imageTheme === \"dark\",\n }\n )}\n >\n <Tappable\n vkuiClass=\"Banner__in\"\n activeMode={platform === IOS ? \"opacity\" : \"background\"}\n disabled={asideMode !== \"expand\"}\n role={asideMode === \"expand\" ? \"button\" : undefined}\n >\n {mode === \"image\" && background && (\n <div aria-hidden=\"true\" vkuiClass=\"Banner__bg\">\n {background}\n </div>\n )}\n\n {before && <div vkuiClass=\"Banner__before\">{before}</div>}\n\n <div vkuiClass=\"Banner__content\">\n {hasReactNode(header) && (\n <BannerHeader\n size={size}\n Component=\"span\"\n vkuiClass=\"Banner__header\"\n >\n {header}\n </BannerHeader>\n )}\n {hasReactNode(subheader) && (\n <BannerSubheader\n Component=\"span\"\n size={size}\n vkuiClass=\"Banner__subheader\"\n >\n {subheader}\n </BannerSubheader>\n )}\n {hasReactNode(text) && (\n <Text weight=\"regular\" vkuiClass=\"Banner__text\">\n {text}\n </Text>\n )}\n {hasReactNode(actions) && React.Children.count(actions) > 0 && (\n <div vkuiClass=\"Banner__actions\">{actions}</div>\n )}\n </div>\n\n {!!asideMode && (\n <div vkuiClass=\"Banner__aside\">\n {asideMode === \"expand\" && <Icon24Chevron />}\n\n {asideMode === \"dismiss\" && (\n <IconButton\n aria-label={dismissLabel}\n vkuiClass=\"Banner__dismiss\"\n onClick={onDismiss}\n hoverMode=\"opacity\"\n hasActive={false}\n >\n {(platform === ANDROID || platform === VKCOM) && (\n <Icon24Cancel />\n )}\n {platform === IOS &&\n (mode === \"image\" ? (\n <Icon24DismissDark />\n ) : (\n <Icon24DismissSubstract />\n ))}\n </IconButton>\n )}\n </div>\n )}\n </Tappable>\n </section>\n );\n};\n\nBanner.defaultProps = {\n dismissLabel: \"Скрыть\",\n mode: \"tint\",\n size: \"s\",\n imageTheme: \"dark\",\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Banner;\n"],"file":"Banner.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Banner/Banner.tsx"],"names":["React","getClassName","classNames","usePlatform","ANDROID","IOS","VKCOM","hasReactNode","Icon24Chevron","Icon24DismissSubstract","Icon24DismissDark","Icon24Cancel","Tappable","IconButton","Headline","Subhead","Text","Title","BannerHeader","size","restProps","BannerSubheader","Banner","props","platform","mode","imageTheme","before","asideMode","header","subheader","text","children","background","actions","onDismiss","dismissLabel","undefined","Children","count","defaultProps"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { ANDROID, IOS, VKCOM } from \"../../lib/platform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport {\n Icon24Chevron,\n Icon24DismissSubstract,\n Icon24DismissDark,\n Icon24Cancel,\n} from \"@vkontakte/icons\";\nimport Tappable from \"../Tappable/Tappable\";\nimport IconButton from \"../IconButton/IconButton\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport Text from \"../Typography/Text/Text\";\nimport Title from \"../Typography/Title/Title\";\nimport \"./Banner.css\";\n\nexport interface BannerProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Тип баннера.\n */\n mode?: \"tint\" | \"image\";\n size?: \"s\" | \"m\";\n /**\n * Тип действия в правой части баннера.\n *\n * - `dismiss` – отображается иконка крестика, при клике на неё сработает свойство `onDismiss`.\n * - `expand` – отображается иконка шеврона, которая подразумевает, что при клике на баннер можно куда-то перейти.\n */\n asideMode?: \"dismiss\" | \"expand\";\n /**\n * Срабатывает при клике на иконку крестика при `asideMode=\"dismiss\"`.\n */\n onDismiss?: React.MouseEventHandler<HTMLButtonElement>;\n /**\n * `aria-label` для кнопки при `asideMode=\"dismiss\". Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n /**\n * Содержимое, отображаемое в левой части баннера.\n */\n before?: React.ReactNode;\n /**\n * Заголовок. <br />\n * При использовании этого свойства рекомендуется не указывать `text`.\n */\n header?: React.ReactNode;\n /**\n * Подзаголовок. <br />\n * При использовании этого свойства рекомендуется не указывать `text`.\n */\n subheader?: React.ReactNode;\n /**\n * Текст баннера. <br />\n * Это свойство следует использовать без указания `header` и `subheader`.\n */\n text?: React.ReactNode;\n /**\n * При использовании `mode=\"image\"`.\n *\n * - `light` – в качестве фона используется светлое изображение, цвет текста в баннере будет тёмным.\n * - `dark` – в качестве фона используется тёмное изображение, цвет текста будет светлым.\n */\n imageTheme?: \"light\" | \"dark\";\n /**\n * При использовании `mode=\"image\"`.\n *\n * Элемент, который нужно стилизовать цветом и/или фоном. Этот элемент будет растянут на 100% ширины и высоты баннера.\n */\n background?: React.ReactNode;\n /**\n * Кнопки, отображаемые в баннере.\n *\n * - В режиме `tint` или в `image` со светлым фоном рекомендуется использовать только `<Button mode=\"primary\" />` или `<Button mode=\"tertiary\" hasHover={false} />`.\n * - В режиме `image` с тёмным фоном – `<Button mode=\"overlay_primary\" />`.\n */\n actions?: React.ReactNode;\n}\n\ntype BannerTypographyProps = Pick<BannerProps, \"size\"> & HasComponent;\n\nconst BannerHeader: React.FC<BannerTypographyProps> = ({\n size,\n ...restProps\n}) => {\n return size === \"m\" ? (\n <Title level=\"2\" weight=\"2\" {...restProps} />\n ) : (\n <Headline weight=\"medium\" {...restProps} />\n );\n};\n\nconst BannerSubheader: React.FC<BannerTypographyProps> = ({\n size,\n ...restProps\n}) => {\n return size === \"m\" ? (\n <Text weight=\"regular\" {...restProps} />\n ) : (\n <Subhead {...restProps} />\n );\n};\n\nconst Banner: React.FC<BannerProps> = (props: BannerProps) => {\n const platform = usePlatform();\n const {\n mode,\n imageTheme,\n size,\n before,\n asideMode,\n header,\n subheader,\n text,\n children,\n background,\n actions,\n onDismiss,\n dismissLabel,\n ...restProps\n } = props;\n\n return (\n <section\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"Banner\", platform),\n `Banner--md-${mode}`,\n `Banner--sz-${size}`,\n {\n \"Banner--inverted\": mode === \"image\" && imageTheme === \"dark\",\n }\n )}\n >\n <Tappable\n vkuiClass=\"Banner__in\"\n activeMode={platform === IOS ? \"opacity\" : \"background\"}\n disabled={asideMode !== \"expand\"}\n role={asideMode === \"expand\" ? \"button\" : undefined}\n >\n {mode === \"image\" && background && (\n <div aria-hidden=\"true\" vkuiClass=\"Banner__bg\">\n {background}\n </div>\n )}\n\n {before && <div vkuiClass=\"Banner__before\">{before}</div>}\n\n <div vkuiClass=\"Banner__content\">\n {hasReactNode(header) && (\n <BannerHeader\n size={size}\n Component=\"span\"\n vkuiClass=\"Banner__header\"\n >\n {header}\n </BannerHeader>\n )}\n {hasReactNode(subheader) && (\n <BannerSubheader\n Component=\"span\"\n size={size}\n vkuiClass=\"Banner__subheader\"\n >\n {subheader}\n </BannerSubheader>\n )}\n {hasReactNode(text) && (\n <Text weight=\"regular\" vkuiClass=\"Banner__text\">\n {text}\n </Text>\n )}\n {hasReactNode(actions) && React.Children.count(actions) > 0 && (\n <div vkuiClass=\"Banner__actions\">{actions}</div>\n )}\n </div>\n\n {!!asideMode && (\n <div vkuiClass=\"Banner__aside\">\n {asideMode === \"expand\" && <Icon24Chevron />}\n\n {asideMode === \"dismiss\" && (\n <IconButton\n aria-label={dismissLabel}\n vkuiClass=\"Banner__dismiss\"\n onClick={onDismiss}\n hoverMode=\"opacity\"\n hasActive={false}\n >\n {(platform === ANDROID || platform === VKCOM) && (\n <Icon24Cancel />\n )}\n {platform === IOS &&\n (mode === \"image\" ? (\n <Icon24DismissDark />\n ) : (\n <Icon24DismissSubstract />\n ))}\n </IconButton>\n )}\n </div>\n )}\n </Tappable>\n </section>\n );\n};\n\nBanner.defaultProps = {\n dismissLabel: \"Скрыть\",\n mode: \"tint\",\n size: \"s\",\n imageTheme: \"dark\",\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Banner;\n"],"file":"Banner.js"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { TappableProps } from "../Tappable/Tappable";
|
|
3
|
+
import { HasAlign } from "../../types";
|
|
4
|
+
import "./Button.css";
|
|
5
|
+
export interface VKUIButtonProps extends HasAlign {
|
|
6
|
+
/**
|
|
7
|
+
Значения `commerce`, `destructive`, `overlay_...` будут упразднены в 5.0.0
|
|
8
|
+
*/
|
|
9
|
+
mode?: "primary" | "secondary" | "tertiary" | "outline" | "commerce" | "destructive" | "overlay_primary" | "overlay_secondary" | "overlay_outline";
|
|
10
|
+
appearance?: "accent" | "positive" | "negative" | "neutral" | "overlay";
|
|
11
|
+
size?: "s" | "m" | "l";
|
|
12
|
+
stretched?: boolean;
|
|
13
|
+
before?: React.ReactNode;
|
|
14
|
+
after?: React.ReactNode;
|
|
15
|
+
loading?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface ButtonProps extends Omit<TappableProps, "size">, VKUIButtonProps {
|
|
18
|
+
}
|
|
19
|
+
declare const _default: React.FC<Pick<ButtonProps, "max" | "required" | "high" | "low" | "disabled" | "default" | "start" | "open" | "media" | "loading" | "hidden" | "cite" | "data" | "dir" | "form" | "label" | "slot" | "span" | "style" | "summary" | "title" | "pattern" | "async" | "defer" | "manifest" | "color" | "content" | "size" | "wrap" | "after" | "multiple" | "appearance" | "height" | "translate" | "width" | "prefix" | "src" | "children" | "className" | "id" | "lang" | "method" | "min" | "name" | "target" | "type" | "role" | "tabIndex" | "crossOrigin" | "href" | "mode" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDownCapture" | "onMouseEnter" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancelCapture" | "onTouchEndCapture" | "onTouchMoveCapture" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "list" | "classID" | "useMap" | "wmode" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "as" | "hrefLang" | "integrity" | "rel" | "sizes" | "charSet" | "kind" | "srcLang" | "value" | "download" | "alt" | "coords" | "shape" | "autoPlay" | "controls" | "loop" | "mediaGroup" | "muted" | "playsInline" | "preload" | "autoFocus" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "dateTime" | "acceptCharset" | "action" | "autoComplete" | "encType" | "noValidate" | "allowFullScreen" | "allowTransparency" | "frameBorder" | "marginHeight" | "marginWidth" | "sandbox" | "scrolling" | "seamless" | "srcDoc" | "srcSet" | "accept" | "capture" | "checked" | "maxLength" | "minLength" | "readOnly" | "step" | "htmlFor" | "httpEquiv" | "optimum" | "reversed" | "selected" | "nonce" | "scoped" | "cellPadding" | "cellSpacing" | "align" | "colSpan" | "headers" | "rowSpan" | "scope" | "cols" | "rows" | "poster" | "challenge" | "keyType" | "keyParams" | "onStart" | "onMove" | "onEnd" | "Component" | "getRootRef" | "stopPropagation" | "activeEffectDelay" | "hasHover" | "hoverMode" | "hasActive" | "activeMode" | "focusVisibleMode" | "before" | "stretched"> & import("../AdaptivityProvider/AdaptivityContext").SizeProps>;
|
|
20
|
+
export default _default;
|
|
@@ -14,8 +14,9 @@ import Subhead from "../Typography/Subhead/Subhead";
|
|
|
14
14
|
import Caption from "../Typography/Caption/Caption";
|
|
15
15
|
import { usePlatform } from "../../hooks/usePlatform";
|
|
16
16
|
import { SizeType, withAdaptivity } from "../../hoc/withAdaptivity";
|
|
17
|
-
import { IOS, VKCOM } from "../../lib/platform";
|
|
17
|
+
import { IOS, VKCOM, ANDROID } from "../../lib/platform";
|
|
18
18
|
import Spinner from "../Spinner/Spinner";
|
|
19
|
+
import Headline from "../Typography/Headline/Headline";
|
|
19
20
|
import "./Button.css";
|
|
20
21
|
|
|
21
22
|
var ButtonTypography = function ButtonTypography(props) {
|
|
@@ -34,15 +35,21 @@ var ButtonTypography = function ButtonTypography(props) {
|
|
|
34
35
|
}, restProps));
|
|
35
36
|
}
|
|
36
37
|
|
|
38
|
+
if (platform === ANDROID) {
|
|
39
|
+
return createScopedElement(Headline, _extends({
|
|
40
|
+
weight: "medium"
|
|
41
|
+
}, restProps));
|
|
42
|
+
}
|
|
43
|
+
|
|
37
44
|
return createScopedElement(Title, _extends({
|
|
38
45
|
level: "3",
|
|
39
|
-
weight: "
|
|
46
|
+
weight: "2"
|
|
40
47
|
}, restProps));
|
|
41
48
|
|
|
42
49
|
case "m":
|
|
43
50
|
if (isCompact) {
|
|
44
51
|
return createScopedElement(Subhead, _extends({
|
|
45
|
-
weight: platform === VKCOM ? "
|
|
52
|
+
weight: platform === VKCOM ? "3" : "2"
|
|
46
53
|
}, restProps));
|
|
47
54
|
}
|
|
48
55
|
|
|
@@ -54,7 +61,7 @@ var ButtonTypography = function ButtonTypography(props) {
|
|
|
54
61
|
default:
|
|
55
62
|
if (platform === IOS) {
|
|
56
63
|
return createScopedElement(Subhead, _extends({
|
|
57
|
-
weight: "
|
|
64
|
+
weight: "2"
|
|
58
65
|
}, restProps));
|
|
59
66
|
}
|
|
60
67
|
|
|
@@ -73,7 +80,7 @@ var ButtonTypography = function ButtonTypography(props) {
|
|
|
73
80
|
}
|
|
74
81
|
|
|
75
82
|
return createScopedElement(Subhead, _extends({
|
|
76
|
-
weight: "
|
|
83
|
+
weight: "2"
|
|
77
84
|
}, restProps));
|
|
78
85
|
}
|
|
79
86
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Button/Button.tsx"],"names":["React","classNames","ConfigProviderContext","Tappable","Title","Text","Subhead","Caption","usePlatform","SizeType","withAdaptivity","IOS","VKCOM","Spinner","ButtonTypography","props","size","sizeY","platform","restProps","isCompact","COMPACT","resolveButtonAppearance","appearance","mode","resolvedAppearance","resolvedMode","undefined","Button","stretched","align","children","before","after","getRootRef","Component","loading","onClick","hasIcons","Boolean","hasNewTokens","useContext","href","defaultProps","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport Title from \"../Typography/Title/Title\";\nimport Text from \"../Typography/Text/Text\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport { HasAlign, HasComponent } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n AdaptivityProps,\n SizeType,\n withAdaptivity,\n} from \"../../hoc/withAdaptivity\";\nimport { IOS, VKCOM, PlatformType } from \"../../lib/platform\";\nimport Spinner from \"../Spinner/Spinner\";\nimport \"./Button.css\";\n\nexport interface VKUIButtonProps extends HasAlign {\n /**\n Значения `commerce`, `destructive`, `overlay_...` будут упразднены в 5.0.0\n */\n mode?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"outline\"\n | \"commerce\"\n | \"destructive\"\n | \"overlay_primary\"\n | \"overlay_secondary\"\n | \"overlay_outline\";\n appearance?: \"accent\" | \"positive\" | \"negative\" | \"neutral\" | \"overlay\";\n size?: \"s\" | \"m\" | \"l\";\n stretched?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n loading?: boolean;\n}\n\nexport interface ButtonProps\n extends Omit<TappableProps, \"size\">,\n VKUIButtonProps {}\n\ninterface ButtonTypographyProps extends HasComponent {\n size: ButtonProps[\"size\"];\n platform: PlatformType | undefined;\n sizeY: AdaptivityProps[\"sizeY\"];\n children?: ButtonProps[\"children\"];\n}\n\nconst ButtonTypography: React.FC<ButtonTypographyProps> = (\n props: ButtonTypographyProps\n) => {\n const { size, sizeY, platform, ...restProps } = props;\n const isCompact = sizeY === SizeType.COMPACT;\n\n switch (size) {\n case \"l\":\n if (isCompact) {\n return <Text weight=\"medium\" {...restProps} />;\n }\n\n return <Title level=\"3\" weight=\"medium\" {...restProps} />;\n case \"m\":\n if (isCompact) {\n return (\n <Subhead\n weight={platform === VKCOM ? \"regular\" : \"medium\"}\n {...restProps}\n />\n );\n }\n\n return <Text weight=\"medium\" {...restProps} />;\n case \"s\":\n default:\n if (platform === IOS) {\n return <Subhead weight=\"medium\" {...restProps} />;\n }\n\n if (platform === VKCOM) {\n return <Caption level=\"1\" weight=\"regular\" {...restProps} />;\n }\n\n if (isCompact) {\n return <Caption level=\"1\" weight=\"medium\" {...restProps} />;\n }\n\n return <Subhead weight=\"medium\" {...restProps} />;\n }\n};\n\ninterface ResolvedButtonAppearance {\n resolvedAppearance: ButtonProps[\"appearance\"];\n resolvedMode: ButtonProps[\"mode\"];\n}\n\nfunction resolveButtonAppearance(\n appearance: ButtonProps[\"appearance\"],\n mode: ButtonProps[\"mode\"]\n): ResolvedButtonAppearance {\n let resolvedAppearance: ButtonProps[\"appearance\"] = appearance;\n let resolvedMode: ButtonProps[\"mode\"] = mode;\n\n if (appearance === undefined) {\n switch (mode) {\n case \"tertiary\":\n case \"secondary\":\n case \"primary\":\n case \"outline\":\n resolvedAppearance = \"accent\";\n break;\n case \"commerce\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"positive\";\n break;\n case \"destructive\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"negative\";\n break;\n case \"overlay_primary\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_secondary\":\n resolvedMode = \"secondary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_outline\":\n resolvedMode = \"outline\";\n resolvedAppearance = \"overlay\";\n break;\n }\n }\n\n return {\n resolvedAppearance,\n resolvedMode,\n };\n}\n\nconst Button: React.FC<ButtonProps> = (props: ButtonProps) => {\n const platform = usePlatform();\n const {\n size,\n mode,\n appearance,\n stretched,\n align,\n children,\n before,\n after,\n getRootRef,\n sizeY,\n Component = \"button\",\n loading,\n onClick,\n ...restProps\n } = props;\n const hasIcons = Boolean(before || after);\n const { resolvedMode, resolvedAppearance } = resolveButtonAppearance(\n appearance,\n mode\n );\n const hasNewTokens = React.useContext(ConfigProviderContext).hasNewTokens;\n\n return (\n <Tappable\n {...restProps}\n Component={restProps.href ? \"a\" : Component}\n onClick={loading ? undefined : onClick}\n focusVisibleMode=\"outside\"\n vkuiClass={classNames(\n \"Button\",\n `Button--sz-${size}`,\n `Button--lvl-${resolvedMode}`,\n `Button--clr-${resolvedAppearance}`,\n `Button--aln-${align}`,\n `Button--sizeY-${sizeY}`,\n {\n [\"Button--stretched\"]: stretched,\n [\"Button--with-icon\"]: hasIcons,\n [\"Button--singleIcon\"]: Boolean(\n (!children && !after && before) || (!children && after && !before)\n ),\n }\n )}\n getRootRef={getRootRef}\n hoverMode={hasNewTokens ? \"Button--hover\" : \"background\"}\n activeMode={hasNewTokens ? \"Button--active\" : \"opacity\"}\n >\n {loading && <Spinner size=\"small\" vkuiClass=\"Button__spinner\" />}\n <span vkuiClass=\"Button__in\">\n {before && <span vkuiClass=\"Button__before\">{before}</span>}\n {children && (\n <ButtonTypography\n size={size}\n sizeY={sizeY}\n platform={platform}\n vkuiClass=\"Button__content\"\n Component=\"span\"\n >\n {children}\n </ButtonTypography>\n )}\n {after && <span vkuiClass=\"Button__after\">{after}</span>}\n </span>\n </Tappable>\n );\n};\n\nButton.defaultProps = {\n mode: \"primary\",\n align: \"center\",\n size: \"s\",\n stretched: false,\n stopPropagation: true,\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(Button, {\n sizeY: true,\n});\n"],"file":"Button.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Button/Button.tsx"],"names":["React","classNames","ConfigProviderContext","Tappable","Title","Text","Subhead","Caption","usePlatform","SizeType","withAdaptivity","IOS","VKCOM","ANDROID","Spinner","Headline","ButtonTypography","props","size","sizeY","platform","restProps","isCompact","COMPACT","resolveButtonAppearance","appearance","mode","resolvedAppearance","resolvedMode","undefined","Button","stretched","align","children","before","after","getRootRef","Component","loading","onClick","hasIcons","Boolean","hasNewTokens","useContext","href","defaultProps","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport Title from \"../Typography/Title/Title\";\nimport Text from \"../Typography/Text/Text\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport { HasAlign, HasComponent } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n AdaptivityProps,\n SizeType,\n withAdaptivity,\n} from \"../../hoc/withAdaptivity\";\nimport { PlatformType, IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport Spinner from \"../Spinner/Spinner\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport \"./Button.css\";\n\nexport interface VKUIButtonProps extends HasAlign {\n /**\n Значения `commerce`, `destructive`, `overlay_...` будут упразднены в 5.0.0\n */\n mode?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"outline\"\n | \"commerce\"\n | \"destructive\"\n | \"overlay_primary\"\n | \"overlay_secondary\"\n | \"overlay_outline\";\n appearance?: \"accent\" | \"positive\" | \"negative\" | \"neutral\" | \"overlay\";\n size?: \"s\" | \"m\" | \"l\";\n stretched?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n loading?: boolean;\n}\n\nexport interface ButtonProps\n extends Omit<TappableProps, \"size\">,\n VKUIButtonProps {}\n\ninterface ButtonTypographyProps extends HasComponent {\n size: ButtonProps[\"size\"];\n platform: PlatformType | undefined;\n sizeY: AdaptivityProps[\"sizeY\"];\n children?: ButtonProps[\"children\"];\n}\n\nconst ButtonTypography: React.FC<ButtonTypographyProps> = (\n props: ButtonTypographyProps\n) => {\n const { size, sizeY, platform, ...restProps } = props;\n const isCompact = sizeY === SizeType.COMPACT;\n\n switch (size) {\n case \"l\":\n if (isCompact) {\n return <Text weight=\"medium\" {...restProps} />;\n }\n if (platform === ANDROID) {\n return <Headline weight=\"medium\" {...restProps} />;\n }\n return <Title level=\"3\" weight=\"2\" {...restProps} />;\n case \"m\":\n if (isCompact) {\n return (\n <Subhead weight={platform === VKCOM ? \"3\" : \"2\"} {...restProps} />\n );\n }\n\n return <Text weight=\"medium\" {...restProps} />;\n case \"s\":\n default:\n if (platform === IOS) {\n return <Subhead weight=\"2\" {...restProps} />;\n }\n\n if (platform === VKCOM) {\n return <Caption level=\"1\" weight=\"regular\" {...restProps} />;\n }\n\n if (isCompact) {\n return <Caption level=\"1\" weight=\"medium\" {...restProps} />;\n }\n\n return <Subhead weight=\"2\" {...restProps} />;\n }\n};\n\ninterface ResolvedButtonAppearance {\n resolvedAppearance: ButtonProps[\"appearance\"];\n resolvedMode: ButtonProps[\"mode\"];\n}\n\nfunction resolveButtonAppearance(\n appearance: ButtonProps[\"appearance\"],\n mode: ButtonProps[\"mode\"]\n): ResolvedButtonAppearance {\n let resolvedAppearance: ButtonProps[\"appearance\"] = appearance;\n let resolvedMode: ButtonProps[\"mode\"] = mode;\n\n if (appearance === undefined) {\n switch (mode) {\n case \"tertiary\":\n case \"secondary\":\n case \"primary\":\n case \"outline\":\n resolvedAppearance = \"accent\";\n break;\n case \"commerce\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"positive\";\n break;\n case \"destructive\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"negative\";\n break;\n case \"overlay_primary\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_secondary\":\n resolvedMode = \"secondary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_outline\":\n resolvedMode = \"outline\";\n resolvedAppearance = \"overlay\";\n break;\n }\n }\n\n return {\n resolvedAppearance,\n resolvedMode,\n };\n}\n\nconst Button: React.FC<ButtonProps> = (props: ButtonProps) => {\n const platform = usePlatform();\n const {\n size,\n mode,\n appearance,\n stretched,\n align,\n children,\n before,\n after,\n getRootRef,\n sizeY,\n Component = \"button\",\n loading,\n onClick,\n ...restProps\n } = props;\n const hasIcons = Boolean(before || after);\n const { resolvedMode, resolvedAppearance } = resolveButtonAppearance(\n appearance,\n mode\n );\n const hasNewTokens = React.useContext(ConfigProviderContext).hasNewTokens;\n\n return (\n <Tappable\n {...restProps}\n Component={restProps.href ? \"a\" : Component}\n onClick={loading ? undefined : onClick}\n focusVisibleMode=\"outside\"\n vkuiClass={classNames(\n \"Button\",\n `Button--sz-${size}`,\n `Button--lvl-${resolvedMode}`,\n `Button--clr-${resolvedAppearance}`,\n `Button--aln-${align}`,\n `Button--sizeY-${sizeY}`,\n {\n [\"Button--stretched\"]: stretched,\n [\"Button--with-icon\"]: hasIcons,\n [\"Button--singleIcon\"]: Boolean(\n (!children && !after && before) || (!children && after && !before)\n ),\n }\n )}\n getRootRef={getRootRef}\n hoverMode={hasNewTokens ? \"Button--hover\" : \"background\"}\n activeMode={hasNewTokens ? \"Button--active\" : \"opacity\"}\n >\n {loading && <Spinner size=\"small\" vkuiClass=\"Button__spinner\" />}\n <span vkuiClass=\"Button__in\">\n {before && <span vkuiClass=\"Button__before\">{before}</span>}\n {children && (\n <ButtonTypography\n size={size}\n sizeY={sizeY}\n platform={platform}\n vkuiClass=\"Button__content\"\n Component=\"span\"\n >\n {children}\n </ButtonTypography>\n )}\n {after && <span vkuiClass=\"Button__after\">{after}</span>}\n </span>\n </Tappable>\n );\n};\n\nButton.defaultProps = {\n mode: \"primary\",\n align: \"center\",\n size: \"s\",\n stretched: false,\n stopPropagation: true,\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(Button, {\n sizeY: true,\n});\n"],"file":"Button.js"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.vkuiCard{position:relative;background:#f5f5f5;background:var(--content_tint_background,
|
|
2
2
|
var(--vkui--color_background_secondary)
|
|
3
|
-
);border-radius:8px;border-radius:var(--vkui--size_card_border_radius--regular)}.vkuiCard__in{position:relative;z-index:2;border-radius:inherit}.vkuiCard--md-shadow{box-shadow:0 0
|
|
3
|
+
);border-radius:8px;border-radius:var(--vkui--size_card_border_radius--regular)}.vkuiCard__in{position:relative;z-index:2;border-radius:inherit}.vkuiCard--md-shadow{box-shadow:0 0 2px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.08);box-shadow:var(--vkui--elevation3,
|
|
4
4
|
0 2px 24px 0 rgba(0, 0, 0, 0.08),
|
|
5
5
|
0 0 2px 0 rgba(0, 0, 0, 0.08)
|
|
6
|
-
);background:#fff;background:var(--modal_card_background, var(--vkui--color_background_modal))}.vkuiCard--md-outline{background:#fff;background:var(--modal_card_background, var(--vkui--color_background_modal))}.vkuiCard--md-outline::before{position:absolute;left:0;top:0;width:100%;height:100%;content:"";display:block;border:1px solid #e1e3e6;border:var(--thin-border) solid var(--input_border, var(--vkui--color_image_border_alpha));z-index:1;box-sizing:border-box;border-radius:inherit}
|
|
6
|
+
);background:#fff;background:var(--modal_card_background, var(--vkui--color_background_modal))}.vkuiCard--md-outline{background:#fff;background:var(--modal_card_background, var(--vkui--color_background_modal))}.vkuiCard--md-outline::before{position:absolute;left:0;top:0;width:100%;height:100%;content:"";display:block;border:1px solid #e1e3e6;border:var(--thin-border) solid var(--input_border, var(--vkui--color_image_border_alpha));z-index:1;box-sizing:border-box;border-radius:inherit}.vkuiCardScroll .vkuiCard{margin-right:8px;margin-right:var(--vkui--size_cardgrid_padding--regular);flex-shrink:0}.vkuiCardScroll .vkuiCard:last-of-type{margin-right:0}.vkuiCardScroll--s .vkuiCard{width:40%}.vkuiCardScroll--m .vkuiCard{width:62%}.vkuiCardScroll--l .vkuiCard{width:100%}.vkuiGroup--card .vkuiCardScroll--l .vkuiCard,.vkuiSplitCol--spaced .vkuiCardScroll--l .vkuiCard{width:calc(100% - 32px);margin-right:16px}.vkuiGroup--card .vkuiCardScroll--l .vkuiCard:last-of-type,.vkuiSplitCol--spaced .vkuiCardScroll--l .vkuiCard:last-of-type{margin-right:0}
|