@vkontakte/vkui 4.34.2 → 4.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.browserslistrc +5 -0
- package/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +237 -211
- package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
- package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +1 -1
- package/.cache/ts/src/components/Dropdown/Dropdown.d.ts +46 -5
- package/.cache/ts/src/components/FocusTrap/FocusTrap.d.ts +1 -1
- package/.cache/ts/src/components/ModalRoot/ModalRoot.d.ts +1 -1
- package/.cache/ts/src/components/ModalRoot/ModalRootDesktop.d.ts +1 -1
- package/.cache/ts/src/components/Popper/Popper.d.ts +18 -1
- package/.cache/ts/src/components/PopperArrow/PopperArrow.d.ts +8 -0
- package/.cache/ts/src/components/RichTooltip/RichTooltip.d.ts +7 -2
- package/.cache/ts/src/components/Snackbar/Snackbar.d.ts +5 -1
- package/.cache/ts/src/components/SplitCol/SplitCol.d.ts +1 -0
- package/.cache/ts/src/components/Tabbar/Tabbar.d.ts +8 -1
- package/.cache/ts/src/components/Tabs/Tabs.d.ts +13 -2
- package/.cache/ts/src/components/TabsItem/TabsItem.d.ts +22 -1
- package/.cache/ts/src/components/TextTooltip/TextTooltip.d.ts +5 -1
- package/.cache/ts/src/components/Tooltip/Tooltip.d.ts +18 -1
- package/.cache/ts/src/components/Typography/Headline/Headline.d.ts +3 -3
- package/.cache/ts/src/components/View/View.d.ts +2 -18
- package/.cache/ts/src/components/View/ViewInfinite.d.ts +1 -1
- package/.cache/ts/src/components/WriteBar/WriteBar.d.ts +5 -1
- package/.cache/ts/src/tokenized/index.d.ts +26 -0
- package/.eslintrc.json +14 -4
- package/dist/cjs/components/CardScroll/CardScroll.js +3 -1
- package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js +7 -1
- package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +477 -554
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/Dropdown/Dropdown.js +147 -26
- package/dist/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/cjs/components/Epic/Epic.js +1 -6
- package/dist/cjs/components/Epic/Epic.js.map +1 -1
- package/dist/cjs/components/FocusTrap/FocusTrap.js +9 -10
- package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/cjs/components/HorizontalCell/HorizontalCell.js +4 -7
- package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js +2 -2
- package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cjs/components/Popper/Popper.js +11 -19
- package/dist/cjs/components/Popper/Popper.js.map +1 -1
- package/dist/cjs/components/PopperArrow/PopperArrow.js +40 -0
- package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -0
- package/dist/cjs/components/RichTooltip/RichTooltip.js +6 -15
- package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.js +20 -31
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/Snackbar/Snackbar.js +7 -11
- package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitCol.js +7 -1
- package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cjs/components/SplitLayout/SplitLayout.js +5 -8
- package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cjs/components/Tabbar/Tabbar.js +15 -14
- package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js +8 -10
- package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.js +23 -5
- package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
- package/dist/cjs/components/TabsItem/TabsItem.js +39 -22
- package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cjs/components/TextTooltip/TextTooltip.js +6 -9
- package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js +94 -71
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.js +11 -2
- package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cjs/components/View/View.js +388 -453
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/components/WriteBar/WriteBar.js +12 -5
- package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +3 -8
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cjs/hooks/useOrientationChange.js +2 -1
- package/dist/cjs/hooks/useOrientationChange.js.map +1 -1
- package/dist/cjs/tokenized/index.js +104 -0
- package/dist/cjs/tokenized/index.js.map +1 -1
- package/dist/components/CardScroll/CardScroll.js +3 -1
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
- package/dist/components/ConfigProvider/ConfigProviderContext.js +3 -0
- package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +473 -580
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/Dropdown/Dropdown.d.ts +46 -5
- package/dist/components/Dropdown/Dropdown.js +137 -27
- package/dist/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/components/Epic/Epic.js +1 -4
- package/dist/components/Epic/Epic.js.map +1 -1
- package/dist/components/FocusTrap/FocusTrap.d.ts +1 -1
- package/dist/components/FocusTrap/FocusTrap.js +9 -9
- package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.js +3 -5
- package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.js +2 -2
- package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts +1 -1
- package/dist/components/ModalRoot/ModalRootDesktop.d.ts +1 -1
- package/dist/components/Popper/Popper.d.ts +18 -1
- package/dist/components/Popper/Popper.js +10 -19
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/PopperArrow/PopperArrow.d.ts +8 -0
- package/dist/components/PopperArrow/PopperArrow.js +27 -0
- package/dist/components/PopperArrow/PopperArrow.js.map +1 -0
- package/dist/components/RichTooltip/RichTooltip.d.ts +7 -2
- package/dist/components/RichTooltip/RichTooltip.js +5 -10
- package/dist/components/RichTooltip/RichTooltip.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.js +18 -28
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/Snackbar/Snackbar.d.ts +5 -1
- package/dist/components/Snackbar/Snackbar.js +8 -11
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.d.ts +1 -0
- package/dist/components/SplitCol/SplitCol.js +3 -0
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.js +4 -7
- package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/components/Tabbar/Tabbar.d.ts +8 -1
- package/dist/components/Tabbar/Tabbar.js +15 -14
- package/dist/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.js +7 -9
- package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts +13 -2
- package/dist/components/Tabs/Tabs.js +23 -5
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/TabsItem/TabsItem.d.ts +22 -1
- package/dist/components/TabsItem/TabsItem.js +40 -21
- package/dist/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/components/TextTooltip/TextTooltip.d.ts +5 -1
- package/dist/components/TextTooltip/TextTooltip.js +5 -7
- package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +18 -1
- package/dist/components/Tooltip/Tooltip.js +89 -68
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Typography/Headline/Headline.d.ts +3 -3
- package/dist/components/Typography/Headline/Headline.js +10 -2
- package/dist/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/components/View/View.d.ts +2 -18
- package/dist/components/View/View.js +384 -462
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.d.ts +1 -1
- package/dist/components/WriteBar/WriteBar.d.ts +5 -1
- package/dist/components/WriteBar/WriteBar.js +10 -5
- package/dist/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.js +3 -6
- package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/components.css +143 -127
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.css +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.css +1 -1
- package/dist/cssm/components/Alert/Alert.css +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.css +1 -1
- package/dist/cssm/components/Avatar/Avatar.css +3 -5
- package/dist/cssm/components/Badge/Badge.css +3 -3
- package/dist/cssm/components/Banner/Banner.css +5 -5
- package/dist/cssm/components/BaseGallery/BaseGallery.css +1 -1
- package/dist/cssm/components/Button/Button.css +53 -35
- package/dist/cssm/components/Calendar/Calendar.css +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.css +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.css +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.css +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.css +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.css +1 -1
- package/dist/cssm/components/Card/Card.css +5 -6
- package/dist/cssm/components/CardGrid/CardGrid.css +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.css +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.js +3 -1
- package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.css +3 -3
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -1
- package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -1
- package/dist/cssm/components/CellButton/CellButton.css +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.css +1 -1
- package/dist/cssm/components/Chip/Chip.css +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.css +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +3 -0
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.css +1 -1
- package/dist/cssm/components/Counter/Counter.css +31 -31
- package/dist/cssm/components/CustomScrollView/CustomScrollView.css +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.css +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +473 -580
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.css +3 -3
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.css +3 -3
- package/dist/cssm/components/DateInput/DateInput.css +1 -1
- package/dist/cssm/components/DatePicker/DatePicker.css +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.css +1 -1
- package/dist/cssm/components/Dropdown/Dropdown.css +1 -1
- package/dist/cssm/components/Dropdown/Dropdown.d.ts +46 -5
- package/dist/cssm/components/Dropdown/Dropdown.js +137 -27
- package/dist/cssm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/cssm/components/Epic/Epic.css +1 -1
- package/dist/cssm/components/Epic/Epic.js +1 -4
- package/dist/cssm/components/Epic/Epic.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.css +1 -1
- package/dist/cssm/components/FocusTrap/FocusTrap.d.ts +1 -1
- package/dist/cssm/components/FocusTrap/FocusTrap.js +9 -9
- package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
- package/dist/cssm/components/Footer/Footer.css +1 -1
- package/dist/cssm/components/FormField/FormField.css +9 -9
- package/dist/cssm/components/FormItem/FormItem.css +1 -1
- package/dist/cssm/components/FormLayout/FormLayout.css +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
- package/dist/cssm/components/FormStatus/FormStatus.css +1 -1
- package/dist/cssm/components/Gradient/Gradient.css +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.css +1 -1
- package/dist/cssm/components/Group/Group.css +1 -1
- package/dist/cssm/components/Header/Header.css +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.css +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js +3 -5
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.css +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +3 -3
- package/dist/cssm/components/IconButton/IconButton.css +1 -1
- package/dist/cssm/components/InfoRow/InfoRow.css +1 -1
- package/dist/cssm/components/InitialsAvatar/InitialsAvatar.css +1 -1
- package/dist/cssm/components/Input/Input.css +1 -1
- package/dist/cssm/components/InputLike/InputLike.css +1 -1
- package/dist/cssm/components/InputLike/InputLikeDivider.css +1 -1
- package/dist/cssm/components/Link/Link.css +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.css +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +2 -2
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.css +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.css +3 -3
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.css +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.css +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.css +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.css +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.d.ts +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts +1 -1
- package/dist/cssm/components/Pagination/Pagination.css +1 -1
- package/dist/cssm/components/Panel/Panel.css +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.css +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.css +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +1 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.css +1 -1
- package/dist/cssm/components/Placeholder/Placeholder.css +3 -3
- package/dist/cssm/components/PopoutRoot/PopoutRoot.css +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.css +1 -1
- package/dist/cssm/components/Popper/Popper.css +1 -1
- package/dist/cssm/components/Popper/Popper.d.ts +18 -1
- package/dist/cssm/components/Popper/Popper.js +10 -19
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/PopperArrow/PopperArrow.css +1 -0
- package/dist/cssm/components/PopperArrow/PopperArrow.d.ts +8 -0
- package/dist/cssm/components/PopperArrow/PopperArrow.js +28 -0
- package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -0
- package/dist/cssm/components/Progress/Progress.css +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.css +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.css +3 -3
- package/dist/cssm/components/Radio/Radio.css +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.css +1 -1
- package/dist/cssm/components/Removable/Removable.css +1 -1
- package/dist/cssm/components/RichCell/RichCell.css +3 -3
- package/dist/cssm/components/RichTooltip/RichTooltip.css +3 -1
- package/dist/cssm/components/RichTooltip/RichTooltip.d.ts +7 -2
- package/dist/cssm/components/RichTooltip/RichTooltip.js +5 -10
- package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
- package/dist/cssm/components/Root/Root.css +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.css +1 -1
- package/dist/cssm/components/Search/Search.css +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.css +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -1
- package/dist/cssm/components/Select/Select.css +1 -1
- package/dist/cssm/components/Separator/Separator.css +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js +18 -28
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.css +1 -1
- package/dist/cssm/components/Slider/Slider.css +3 -3
- package/dist/cssm/components/SliderSwitch/SliderSwitch.css +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.css +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.d.ts +5 -1
- package/dist/cssm/components/Snackbar/Snackbar.js +8 -11
- package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cssm/components/Spacing/Spacing.css +1 -1
- package/dist/cssm/components/Spinner/Spinner.css +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.css +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.d.ts +1 -0
- package/dist/cssm/components/SplitCol/SplitCol.js +3 -0
- package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.css +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.js +4 -7
- package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.css +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.css +1 -1
- package/dist/cssm/components/Switch/Switch.css +3 -3
- package/dist/cssm/components/Tabbar/Tabbar.css +5 -3
- package/dist/cssm/components/Tabbar/Tabbar.d.ts +8 -1
- package/dist/cssm/components/Tabbar/Tabbar.js +15 -14
- package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.css +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js +7 -9
- package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cssm/components/Tabs/Tabs.css +1 -1
- package/dist/cssm/components/Tabs/Tabs.d.ts +13 -2
- package/dist/cssm/components/Tabs/Tabs.js +23 -5
- package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.css +5 -1
- package/dist/cssm/components/TabsItem/TabsItem.d.ts +22 -1
- package/dist/cssm/components/TabsItem/TabsItem.js +40 -21
- package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.css +5 -5
- package/dist/cssm/components/TextTooltip/TextTooltip.css +1 -1
- package/dist/cssm/components/TextTooltip/TextTooltip.d.ts +5 -1
- package/dist/cssm/components/TextTooltip/TextTooltip.js +5 -7
- package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.css +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.css +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.d.ts +18 -1
- package/dist/cssm/components/Tooltip/Tooltip.js +89 -68
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.css +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.css +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.css +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.d.ts +3 -3
- package/dist/cssm/components/Typography/Headline/Headline.js +10 -2
- package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.css +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.css +1 -1
- package/dist/cssm/components/Typography/Text/Text.css +1 -1
- package/dist/cssm/components/Typography/Title/Title.css +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.css +5 -5
- package/dist/cssm/components/View/View.css +1 -1
- package/dist/cssm/components/View/View.d.ts +2 -18
- package/dist/cssm/components/View/View.js +384 -462
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/ViewIOS.css +1 -1
- package/dist/cssm/components/View/ViewInfinite.d.ts +1 -1
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.css +1 -1
- package/dist/cssm/components/WriteBar/WriteBar.css +3 -1
- package/dist/cssm/components/WriteBar/WriteBar.d.ts +5 -1
- package/dist/cssm/components/WriteBar/WriteBar.js +10 -5
- package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.css +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +3 -6
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cssm/fonts/fonts.css +1 -1
- package/dist/cssm/hooks/useOrientationChange.js +2 -1
- package/dist/cssm/hooks/useOrientationChange.js.map +1 -1
- package/dist/cssm/lib/calendar.d.ts +2 -2
- package/dist/cssm/styles/animations.css +1 -1
- package/dist/cssm/styles/bright_light.css +1 -1
- package/dist/cssm/styles/common.css +1 -1
- package/dist/cssm/styles/components.css +143 -127
- package/dist/cssm/styles/constants.css +3 -10
- package/dist/cssm/styles/space_gray.css +1 -1
- package/dist/cssm/styles/themes.css +1 -16
- package/dist/cssm/styles/unstable.css +3 -1
- package/dist/cssm/styles/vkcom_dark.css +1 -6
- package/dist/cssm/styles/vkcom_light.css +1 -11
- package/dist/cssm/tokenized/index.d.ts +26 -0
- package/dist/cssm/tokenized/index.js +13 -0
- package/dist/cssm/tokenized/index.js.map +1 -1
- package/dist/default_scheme.css +1 -1
- package/dist/default_scheme.css.map +1 -1
- package/dist/fonts.css +1 -1
- package/dist/fonts.css.map +1 -1
- package/dist/hooks/useOrientationChange.js +2 -1
- package/dist/hooks/useOrientationChange.js.map +1 -1
- package/dist/lib/calendar.d.ts +2 -2
- package/dist/tokenized/index.d.ts +26 -0
- package/dist/tokenized/index.js +13 -0
- package/dist/tokenized/index.js.map +1 -1
- package/dist/unstable.css +3 -1
- package/dist/unstable.css.map +1 -1
- package/dist/vkui.css +144 -143
- package/dist/vkui.css.map +1 -1
- package/package.json +6 -5
- package/src/components/Badge/Badge.css +0 -5
- package/src/components/CardScroll/CardScroll.tsx +1 -1
- package/src/components/Cell/Cell.css +3 -2
- package/src/components/ChipsInput/ChipsInput.css +2 -0
- package/src/components/ConfigProvider/ConfigProviderContext.tsx +2 -0
- package/src/components/Counter/Counter.css +30 -0
- package/src/components/CustomScrollView/CustomScrollView.css +10 -5
- package/src/components/CustomSelect/CustomSelect.tsx +543 -574
- package/src/components/Dropdown/Dropdown.css +12 -0
- package/src/components/Dropdown/Dropdown.tsx +174 -20
- package/src/components/Dropdown/Readme.md +1 -0
- package/src/components/Epic/Epic.tsx +1 -4
- package/src/components/FixedLayout/Readme.md +103 -109
- package/src/components/FocusTrap/FocusTrap.tsx +10 -10
- package/src/components/Group/Group.css +1 -1
- package/src/components/HorizontalCell/HorizontalCell.css +25 -43
- package/src/components/HorizontalCell/HorizontalCell.tsx +3 -9
- package/src/components/HorizontalScroll/HorizontalScroll.css +23 -0
- package/src/components/Input/Input.css +2 -0
- package/src/components/MiniInfoCell/MiniInfoCell.css +13 -3
- package/src/components/MiniInfoCell/MiniInfoCell.tsx +3 -3
- package/src/components/Popper/Popper.css +0 -35
- package/src/components/Popper/Popper.tsx +29 -23
- package/src/components/PopperArrow/PopperArrow.css +34 -0
- package/src/components/PopperArrow/PopperArrow.tsx +40 -0
- package/src/components/RichTooltip/RichTooltip.css +44 -4
- package/src/components/RichTooltip/RichTooltip.tsx +9 -11
- package/src/components/SimpleCell/Readme.md +115 -129
- package/src/components/SimpleCell/SimpleCell.css +30 -68
- package/src/components/SimpleCell/SimpleCell.tsx +21 -25
- package/src/components/Snackbar/Readme.md +95 -123
- package/src/components/Snackbar/Snackbar.css +18 -27
- package/src/components/Snackbar/Snackbar.tsx +17 -11
- package/src/components/SplitCol/SplitCol.tsx +2 -0
- package/src/components/SplitLayout/SplitLayout.css +3 -7
- package/src/components/SplitLayout/SplitLayout.tsx +9 -6
- package/src/components/Tabbar/Tabbar.css +4 -1
- package/src/components/Tabbar/Tabbar.tsx +23 -12
- package/src/components/TabbarItem/TabbarItem.css +7 -5
- package/src/components/TabbarItem/TabbarItem.tsx +13 -7
- package/src/components/Tabs/Readme.md +191 -251
- package/src/components/Tabs/Tabs.css +27 -80
- package/src/components/Tabs/Tabs.tsx +45 -7
- package/src/components/TabsItem/Readme.md +1 -0
- package/src/components/TabsItem/TabsItem.css +191 -106
- package/src/components/TabsItem/TabsItem.tsx +72 -20
- package/src/components/TextTooltip/TextTooltip.css +41 -11
- package/src/components/TextTooltip/TextTooltip.tsx +9 -13
- package/src/components/Textarea/Textarea.css +2 -0
- package/src/components/Tooltip/Readme.md +128 -101
- package/src/components/Tooltip/Tooltip.css +29 -40
- package/src/components/Tooltip/Tooltip.tsx +98 -66
- package/src/components/Typography/Headline/Headline.tsx +15 -1
- package/src/components/View/Readme.md +2 -0
- package/src/components/View/View.tsx +451 -514
- package/src/components/WriteBar/WriteBar.css +27 -33
- package/src/components/WriteBar/WriteBar.tsx +16 -5
- package/src/components/WriteBarIcon/WriteBarIcon.css +6 -19
- package/src/components/WriteBarIcon/WriteBarIcon.tsx +6 -6
- package/src/hooks/useOrientationChange.ts +1 -0
- package/src/styles/components.css +1 -0
- package/src/styles/constants.css +8 -0
- package/src/tokenized/index.ts +39 -0
- package/tsconfig.json +1 -1
- package/.cache/ts/src/components/ClickPopper/ClickPopper.d.ts +0 -21
- package/dist/cjs/components/ClickPopper/ClickPopper.js +0 -96
- package/dist/cjs/components/ClickPopper/ClickPopper.js.map +0 -1
- package/dist/components/ClickPopper/ClickPopper.d.ts +0 -21
- package/dist/components/ClickPopper/ClickPopper.js +0 -71
- package/dist/components/ClickPopper/ClickPopper.js.map +0 -1
- package/dist/cssm/components/ClickPopper/ClickPopper.d.ts +0 -21
- package/dist/cssm/components/ClickPopper/ClickPopper.js +0 -71
- package/dist/cssm/components/ClickPopper/ClickPopper.js.map +0 -1
- package/src/components/ClickPopper/ClickPopper.tsx +0 -86
|
@@ -31,109 +31,100 @@ import { Tooltip, Button } from "@vkontakte/vkui";
|
|
|
31
31
|
О возможностях тултипа можно прочитать в описании свойств и методов.
|
|
32
32
|
|
|
33
33
|
```jsx
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
<
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
34
|
+
const Example = () => {
|
|
35
|
+
const [tooltip, setTooltip] = React.useState(true);
|
|
36
|
+
const [tooltip2, setTooltip2] = React.useState(true);
|
|
37
|
+
const [tooltip3, setTooltip3] = React.useState(false);
|
|
38
|
+
const [activePanel, setActivePanel] = React.useState("tooltip");
|
|
39
|
+
|
|
40
|
+
return (
|
|
41
|
+
<View activePanel={activePanel}>
|
|
42
|
+
<Panel id="tooltip">
|
|
43
|
+
<PanelHeader>Tooltip</PanelHeader>
|
|
44
|
+
<Group>
|
|
45
|
+
<List>
|
|
46
|
+
<SimpleCell>Музыка</SimpleCell>
|
|
47
|
+
<SimpleCell>Видео</SimpleCell>
|
|
48
|
+
<SimpleCell>Игры</SimpleCell>
|
|
49
|
+
<SimpleCell>Закладки</SimpleCell>
|
|
50
|
+
<SimpleCell>Документы</SimpleCell>
|
|
51
|
+
<SimpleCell>Денежные переводы</SimpleCell>
|
|
52
|
+
</List>
|
|
53
|
+
</Group>
|
|
54
|
+
<Group>
|
|
55
|
+
<Tooltip
|
|
56
|
+
mode="light"
|
|
57
|
+
text="У нас тут brand new функционал подвезли. Зацените!"
|
|
58
|
+
isShown={tooltip}
|
|
59
|
+
onClose={() => setTooltip(false)}
|
|
60
|
+
offsetX={10}
|
|
61
|
+
>
|
|
62
|
+
<SimpleCell onClick={() => setActivePanel("tooltip2")}>
|
|
63
|
+
VK Pay
|
|
64
|
+
</SimpleCell>
|
|
65
|
+
</Tooltip>
|
|
66
|
+
</Group>
|
|
67
|
+
</Panel>
|
|
68
|
+
|
|
69
|
+
<Panel id="tooltip2">
|
|
70
|
+
<PanelHeader
|
|
71
|
+
before={
|
|
60
72
|
<Tooltip
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
73
|
+
isShown={tooltip2}
|
|
74
|
+
onClose={() => {
|
|
75
|
+
setTooltip2(false);
|
|
76
|
+
setTooltip3(true);
|
|
77
|
+
}}
|
|
78
|
+
text="Нажмите на кнопку, если хотите вернуться"
|
|
79
|
+
header="Назад"
|
|
66
80
|
>
|
|
67
|
-
<
|
|
68
|
-
onClick={() => this.setState({ activePanel: "tooltip2" })}
|
|
69
|
-
>
|
|
70
|
-
VK Pay
|
|
71
|
-
</SimpleCell>
|
|
81
|
+
<PanelHeaderBack onClick={() => setActivePanel("tooltip")} />
|
|
72
82
|
</Tooltip>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
<SimpleCell before={<Avatar />} description="Издательский дом">
|
|
119
|
-
ПостНаука
|
|
120
|
-
</SimpleCell>
|
|
121
|
-
<SimpleCell before={<Avatar />} description="Издательский дом">
|
|
122
|
-
ПостНаука
|
|
123
|
-
</SimpleCell>
|
|
124
|
-
<SimpleCell before={<Avatar />} description="Издательский дом">
|
|
125
|
-
ПостНаука
|
|
126
|
-
</SimpleCell>
|
|
127
|
-
<SimpleCell before={<Avatar />} description="Издательский дом">
|
|
128
|
-
ПостНаука
|
|
129
|
-
</SimpleCell>
|
|
130
|
-
</List>
|
|
131
|
-
</Group>
|
|
132
|
-
</Panel>
|
|
133
|
-
</View>
|
|
134
|
-
);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
83
|
+
}
|
|
84
|
+
>
|
|
85
|
+
Tooltip
|
|
86
|
+
</PanelHeader>
|
|
87
|
+
<Group>
|
|
88
|
+
<List>
|
|
89
|
+
<SimpleCell
|
|
90
|
+
before={
|
|
91
|
+
<Tooltip
|
|
92
|
+
text="Теперь у нас появились аватарки в списках. Правда круто?"
|
|
93
|
+
isShown={tooltip3}
|
|
94
|
+
onClose={() => setTooltip3(false)}
|
|
95
|
+
cornerOffset={-6}
|
|
96
|
+
>
|
|
97
|
+
<Avatar />
|
|
98
|
+
</Tooltip>
|
|
99
|
+
}
|
|
100
|
+
description="Веб-сайт"
|
|
101
|
+
>
|
|
102
|
+
Команда ВКонтакте
|
|
103
|
+
</SimpleCell>
|
|
104
|
+
<SimpleCell before={<Avatar />} description="Музыкант">
|
|
105
|
+
Robbie Williams
|
|
106
|
+
</SimpleCell>
|
|
107
|
+
<SimpleCell before={<Avatar />} description="Издательский дом">
|
|
108
|
+
ПостНаука
|
|
109
|
+
</SimpleCell>
|
|
110
|
+
<SimpleCell before={<Avatar />} description="Издательский дом">
|
|
111
|
+
ПостНаука
|
|
112
|
+
</SimpleCell>
|
|
113
|
+
<SimpleCell before={<Avatar />} description="Издательский дом">
|
|
114
|
+
ПостНаука
|
|
115
|
+
</SimpleCell>
|
|
116
|
+
<SimpleCell before={<Avatar />} description="Издательский дом">
|
|
117
|
+
ПостНаука
|
|
118
|
+
</SimpleCell>
|
|
119
|
+
<SimpleCell before={<Avatar />} description="Издательский дом">
|
|
120
|
+
ПостНаука
|
|
121
|
+
</SimpleCell>
|
|
122
|
+
</List>
|
|
123
|
+
</Group>
|
|
124
|
+
</Panel>
|
|
125
|
+
</View>
|
|
126
|
+
);
|
|
127
|
+
};
|
|
137
128
|
|
|
138
129
|
const ExampleWithPlatform = withPlatform(Example);
|
|
139
130
|
|
|
@@ -147,7 +138,7 @@ const ExampleWithPlatform = withPlatform(Example);
|
|
|
147
138
|
- в скроллящемся контейнере — замените какой-нибудь элемент, внутри которого нет скролла, на `<TooltipContainer>` и добавьте ему `position: relative` (или другую не-static).
|
|
148
139
|
- внутри `position: fixed` — `<TooltipContainer fixed>`
|
|
149
140
|
|
|
150
|
-
```jsx { "props": { "layout": false
|
|
141
|
+
```jsx { "props": { "layout": false } }
|
|
151
142
|
<>
|
|
152
143
|
<TooltipContainer style={{ minHeight: "120vh" }}>
|
|
153
144
|
<Tooltip text="Я скроллюсь">
|
|
@@ -249,3 +240,39 @@ const ExampleWithPlatform = withPlatform(Example);
|
|
|
249
240
|
</TooltipContainer>
|
|
250
241
|
</>
|
|
251
242
|
```
|
|
243
|
+
|
|
244
|
+
## Цветовые варианты
|
|
245
|
+
|
|
246
|
+
```jsx { "props": { "layout": false } }
|
|
247
|
+
<TooltipContainer>
|
|
248
|
+
<Tooltip placement="right" text={`appearance="accent"`} appearance="accent">
|
|
249
|
+
<div style={{ width: 50, margin: 10 }}>
|
|
250
|
+
<Avatar />
|
|
251
|
+
</div>
|
|
252
|
+
</Tooltip>
|
|
253
|
+
<Tooltip placement="right" text={`appearance="neutral"`} appearance="neutral">
|
|
254
|
+
<div style={{ width: 50, margin: 10 }}>
|
|
255
|
+
<Avatar />
|
|
256
|
+
</div>
|
|
257
|
+
</Tooltip>
|
|
258
|
+
<Tooltip placement="right" text={`appearance="white`} appearance="white">
|
|
259
|
+
<div style={{ width: 50, margin: 10 }}>
|
|
260
|
+
<Avatar />
|
|
261
|
+
</div>
|
|
262
|
+
</Tooltip>
|
|
263
|
+
<Tooltip placement="right" text={`appearance="black"`} appearance="black">
|
|
264
|
+
<div style={{ width: 50, margin: 10 }}>
|
|
265
|
+
<Avatar />
|
|
266
|
+
</div>
|
|
267
|
+
</Tooltip>
|
|
268
|
+
<Tooltip
|
|
269
|
+
placement="right"
|
|
270
|
+
text={`appearance="inversion"`}
|
|
271
|
+
appearance="inversion"
|
|
272
|
+
>
|
|
273
|
+
<div style={{ width: 50, margin: 10 }}>
|
|
274
|
+
<Avatar />
|
|
275
|
+
</div>
|
|
276
|
+
</Tooltip>
|
|
277
|
+
</TooltipContainer>
|
|
278
|
+
```
|
|
@@ -12,62 +12,51 @@
|
|
|
12
12
|
position: absolute;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
.Tooltip__container[data-popper-placement^="top"] .Tooltip__corner::before {
|
|
24
|
-
transform: rotate(180deg);
|
|
15
|
+
.Tooltip__content {
|
|
16
|
+
background-color: var(--vkui--color_background_modal);
|
|
17
|
+
box-shadow: var(--vkui--elevation3);
|
|
18
|
+
padding: 9px 12px 10px;
|
|
19
|
+
border-radius: var(--vkui--size_border_radius--regular);
|
|
20
|
+
color: var(--vkui--color_text_primary);
|
|
21
|
+
max-width: 220px;
|
|
25
22
|
}
|
|
26
23
|
|
|
27
|
-
.
|
|
28
|
-
|
|
24
|
+
.Tooltip__arrow {
|
|
25
|
+
color: var(--vkui--color_background_modal);
|
|
29
26
|
}
|
|
30
27
|
|
|
31
|
-
.
|
|
32
|
-
|
|
28
|
+
.Tooltip--accent .Tooltip__content {
|
|
29
|
+
background-color: var(--vkui--color_background_accent_tint);
|
|
30
|
+
color: var(--vkui--color_text_contrast);
|
|
33
31
|
}
|
|
34
32
|
|
|
35
|
-
.
|
|
36
|
-
|
|
33
|
+
.Tooltip--accent .Tooltip__arrow {
|
|
34
|
+
color: var(--vkui--color_background_accent_tint);
|
|
37
35
|
}
|
|
38
36
|
|
|
39
|
-
.
|
|
40
|
-
|
|
37
|
+
.Tooltip--white .Tooltip__content {
|
|
38
|
+
background-color: var(--vkui--color_background_contrast);
|
|
39
|
+
color: var(--vkui--color_text_primary_invariably);
|
|
41
40
|
}
|
|
42
41
|
|
|
43
|
-
.
|
|
44
|
-
|
|
45
|
-
height: 8px;
|
|
46
|
-
position: absolute;
|
|
42
|
+
.Tooltip--white .Tooltip__arrow {
|
|
43
|
+
color: var(--vkui--color_background_contrast);
|
|
47
44
|
}
|
|
48
45
|
|
|
49
|
-
.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyMHB4IiBoZWlnaHQ9IjhweCIgdmlld0JveD0iMCAwIDIwIDgiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+ICAgICAgICA8dGl0bGU+dG9vbHRpcF90aXA8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iTWFzdGVyLUtpdCIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+ICAgICAgICA8cGF0aCBkPSJNMTAsMCBDMTMuNSwwIDE1LjUsOCAyMCw4IEwwLDggQzQuNSw4IDYuNSwwIDEwLDAgWiIgaWQ9InRvb2x0aXBfdGlwIiBmaWxsPSIjNDdhM2ZmIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4gICAgPC9nPjwvc3ZnPg==");
|
|
53
|
-
width: 20px;
|
|
54
|
-
height: 8px;
|
|
46
|
+
.Tooltip--black .Tooltip__content {
|
|
47
|
+
background-color: var(--vkui--color_background_contrast_inverse);
|
|
48
|
+
color: var(--vkui--color_text_contrast);
|
|
55
49
|
}
|
|
56
50
|
|
|
57
|
-
.Tooltip--
|
|
58
|
-
|
|
51
|
+
.Tooltip--black .Tooltip__arrow {
|
|
52
|
+
color: var(--vkui--color_background_contrast_inverse);
|
|
59
53
|
}
|
|
60
54
|
|
|
61
|
-
.Tooltip__content {
|
|
62
|
-
background-color:
|
|
63
|
-
|
|
64
|
-
padding: 8px 12px 10px;
|
|
65
|
-
border-radius: 10px;
|
|
66
|
-
color: #fff;
|
|
67
|
-
max-width: 220px;
|
|
55
|
+
.Tooltip--inversion .Tooltip__content {
|
|
56
|
+
background-color: var(--vkui--color_background_modal_inverse);
|
|
57
|
+
color: var(--vkui--color_text_contrast_themed);
|
|
68
58
|
}
|
|
69
59
|
|
|
70
|
-
.Tooltip--
|
|
71
|
-
|
|
72
|
-
color: #2c2d2e;
|
|
60
|
+
.Tooltip--inversion .Tooltip__arrow {
|
|
61
|
+
color: var(--vkui--color_background_modal_inverse);
|
|
73
62
|
}
|
|
@@ -4,6 +4,7 @@ import { classNames } from "../../lib/classNames";
|
|
|
4
4
|
import { getClassName } from "../../helpers/getClassName";
|
|
5
5
|
import { Subhead } from "../Typography/Subhead/Subhead";
|
|
6
6
|
import { useNavTransition } from "../NavTransitionContext/NavTransitionContext";
|
|
7
|
+
import { PopperArrow } from "../PopperArrow/PopperArrow";
|
|
7
8
|
import { Modifier, usePopper } from "react-popper";
|
|
8
9
|
import { Placement } from "@popperjs/core";
|
|
9
10
|
import { tooltipContainerAttr } from "./TooltipContainer";
|
|
@@ -11,13 +12,13 @@ import { useExternRef } from "../../hooks/useExternRef";
|
|
|
11
12
|
import { useDOM } from "../../lib/dom";
|
|
12
13
|
import { warnOnce } from "../../lib/warnOnce";
|
|
13
14
|
import { hasReactNode } from "../../lib/utils";
|
|
15
|
+
import { prefixClass } from "../../lib/prefixClass";
|
|
14
16
|
import { useGlobalEventListener } from "../../hooks/useGlobalEventListener";
|
|
15
17
|
import { HasRootRef } from "../../types";
|
|
16
18
|
import "./Tooltip.css";
|
|
17
19
|
|
|
18
20
|
interface SimpleTooltipProps extends Partial<TooltipProps> {
|
|
19
21
|
target?: HTMLDivElement;
|
|
20
|
-
arrowRef?: React.Ref<HTMLDivElement>;
|
|
21
22
|
style?: {
|
|
22
23
|
arrow: React.CSSProperties;
|
|
23
24
|
container: React.CSSProperties;
|
|
@@ -40,26 +41,27 @@ const IS_DEV = process.env.NODE_ENV === "development";
|
|
|
40
41
|
|
|
41
42
|
const SimpleTooltip = React.forwardRef<HTMLDivElement, SimpleTooltipProps>(
|
|
42
43
|
function SimpleTooltip(
|
|
43
|
-
{
|
|
44
|
+
{ appearance = "accent", header, text, arrow, style = {}, attributes },
|
|
44
45
|
ref
|
|
45
46
|
) {
|
|
46
47
|
return (
|
|
47
|
-
<div vkuiClass={classNames(baseClassName, `Tooltip--${
|
|
48
|
+
<div vkuiClass={classNames(baseClassName, `Tooltip--${appearance}`)}>
|
|
48
49
|
<div
|
|
49
50
|
vkuiClass="Tooltip__container"
|
|
50
51
|
ref={ref}
|
|
51
52
|
style={style.container}
|
|
52
53
|
{...attributes?.container}
|
|
53
54
|
>
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
55
|
+
{arrow && (
|
|
56
|
+
<PopperArrow
|
|
57
|
+
style={style.arrow}
|
|
58
|
+
attributes={attributes?.arrow}
|
|
59
|
+
arrowClassName={prefixClass("Tooltip__arrow")}
|
|
60
|
+
/>
|
|
61
|
+
)}
|
|
60
62
|
<div vkuiClass="Tooltip__content">
|
|
61
63
|
{header && (
|
|
62
|
-
<Subhead weight="
|
|
64
|
+
<Subhead weight="2" vkuiClass="Tooltip__title">
|
|
63
65
|
{header}
|
|
64
66
|
</Subhead>
|
|
65
67
|
)}
|
|
@@ -80,7 +82,15 @@ export interface TooltipProps {
|
|
|
80
82
|
children:
|
|
81
83
|
| React.ReactElement<HasRootRef<any>>
|
|
82
84
|
| React.ReactElement<React.PropsWithRef<any>>;
|
|
85
|
+
/**
|
|
86
|
+
* @deprecated будет удалено в 5.0.0, устанавливать стиль следует через appearance
|
|
87
|
+
* Стиль отображения подсказки
|
|
88
|
+
*/
|
|
83
89
|
mode?: "accent" | "light";
|
|
90
|
+
/**
|
|
91
|
+
* Стиль отображения подсказки
|
|
92
|
+
*/
|
|
93
|
+
appearance?: "accent" | "neutral" | "white" | "black" | "inversion";
|
|
84
94
|
/**
|
|
85
95
|
* Если передан `false`, то рисуется просто `children`.
|
|
86
96
|
*/
|
|
@@ -111,6 +121,10 @@ export interface TooltipProps {
|
|
|
111
121
|
* Сдвиг по вертикали (относительно портала, в котором рисуется тултип).
|
|
112
122
|
*/
|
|
113
123
|
offsetY?: number;
|
|
124
|
+
/**
|
|
125
|
+
* Отображать ли стрелку, указывающую на якорный элемент
|
|
126
|
+
*/
|
|
127
|
+
arrow?: boolean;
|
|
114
128
|
/**
|
|
115
129
|
* Сдвиг стрелочки относительно центра дочернего элемента.
|
|
116
130
|
*/
|
|
@@ -123,16 +137,12 @@ export interface TooltipProps {
|
|
|
123
137
|
* Callback, который вызывается при клике по любому месту в пределах экрана.
|
|
124
138
|
*/
|
|
125
139
|
onClose?: () => void;
|
|
140
|
+
/**
|
|
141
|
+
* По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства
|
|
142
|
+
*/
|
|
143
|
+
placement?: Placement;
|
|
126
144
|
}
|
|
127
145
|
|
|
128
|
-
declare type ArrowOffsetModifierOptions = {
|
|
129
|
-
offset: number;
|
|
130
|
-
};
|
|
131
|
-
declare type ArrowOffsetModifier = Modifier<
|
|
132
|
-
"arrowOffset",
|
|
133
|
-
ArrowOffsetModifierOptions
|
|
134
|
-
>;
|
|
135
|
-
|
|
136
146
|
function mapAlignX(x: TooltipProps["alignX"]) {
|
|
137
147
|
switch (x) {
|
|
138
148
|
case "left":
|
|
@@ -155,6 +165,21 @@ function isVerticalPlacement(placement: Placement) {
|
|
|
155
165
|
return placement.startsWith("top") || placement.startsWith("bottom");
|
|
156
166
|
}
|
|
157
167
|
|
|
168
|
+
/**
|
|
169
|
+
* Вычисляем стиль подсказки: параметр appearance имеет приоритет, иначе мапим mode на подходящее значение из appearance
|
|
170
|
+
* TODO: v5 избавиться от пропа mode и этого метода, для appearance по умолчанию сделать "accent"
|
|
171
|
+
*/
|
|
172
|
+
function calculateAppearance(
|
|
173
|
+
mode: TooltipProps["mode"],
|
|
174
|
+
appearance: TooltipProps["appearance"]
|
|
175
|
+
): TooltipProps["appearance"] {
|
|
176
|
+
if (appearance) {
|
|
177
|
+
return appearance;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
return mode === "light" ? "white" : "accent";
|
|
181
|
+
}
|
|
182
|
+
|
|
158
183
|
/**
|
|
159
184
|
* @see https://vkcom.github.io/VKUI/#/Tooltip
|
|
160
185
|
*/
|
|
@@ -169,13 +194,14 @@ export const Tooltip = ({
|
|
|
169
194
|
cornerOffset = 0,
|
|
170
195
|
cornerAbsoluteOffset,
|
|
171
196
|
mode = "accent",
|
|
197
|
+
appearance,
|
|
198
|
+
arrow = true,
|
|
199
|
+
placement,
|
|
172
200
|
...restProps
|
|
173
201
|
}: TooltipProps) => {
|
|
174
202
|
const { entering } = useNavTransition();
|
|
175
203
|
const isShown = _isShown && !entering;
|
|
176
204
|
const [tooltipRef, setTooltipRef] = React.useState<HTMLElement | null>(null);
|
|
177
|
-
const [tooltipArrowRef, setTooltipArrowRef] =
|
|
178
|
-
React.useState<HTMLElement | null>(null);
|
|
179
205
|
const [target, setTarget] = React.useState<HTMLElement>();
|
|
180
206
|
|
|
181
207
|
if (IS_DEV) {
|
|
@@ -215,62 +241,66 @@ export const Tooltip = ({
|
|
|
215
241
|
);
|
|
216
242
|
}
|
|
217
243
|
|
|
218
|
-
const
|
|
219
|
-
|
|
220
|
-
name: "arrowOffset",
|
|
221
|
-
enabled: true,
|
|
222
|
-
phase: "main",
|
|
223
|
-
fn({ state }) {
|
|
224
|
-
if (!state.modifiersData.arrow) {
|
|
225
|
-
return;
|
|
226
|
-
}
|
|
227
|
-
if (isVerticalPlacement(state.placement)) {
|
|
228
|
-
if (cornerAbsoluteOffset !== undefined) {
|
|
229
|
-
state.modifiersData.arrow.x = cornerAbsoluteOffset;
|
|
230
|
-
} else {
|
|
231
|
-
if (state.modifiersData.arrow?.x !== undefined) {
|
|
232
|
-
state.modifiersData.arrow.x += cornerOffset;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
} else {
|
|
236
|
-
if (cornerAbsoluteOffset !== undefined) {
|
|
237
|
-
state.modifiersData.arrow.y = cornerAbsoluteOffset;
|
|
238
|
-
} else {
|
|
239
|
-
if (state.modifiersData.arrow?.y !== undefined) {
|
|
240
|
-
state.modifiersData.arrow.y += cornerOffset;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
},
|
|
245
|
-
};
|
|
246
|
-
}, [cornerOffset, cornerAbsoluteOffset]);
|
|
247
|
-
|
|
248
|
-
const placement = getPlacement(alignX, alignY);
|
|
249
|
-
const { styles, attributes } = usePopper(target, tooltipRef, {
|
|
250
|
-
strategy,
|
|
251
|
-
placement,
|
|
252
|
-
modifiers: [
|
|
244
|
+
const modifiers = React.useMemo(() => {
|
|
245
|
+
const modifiers: Array<Modifier<string>> = [
|
|
253
246
|
{
|
|
254
247
|
name: "offset",
|
|
255
248
|
options: {
|
|
256
249
|
offset: [offsetX, offsetY],
|
|
257
250
|
},
|
|
258
251
|
},
|
|
259
|
-
{
|
|
260
|
-
name: "arrow",
|
|
261
|
-
options: {
|
|
262
|
-
element: tooltipArrowRef,
|
|
263
|
-
padding: 14,
|
|
264
|
-
},
|
|
265
|
-
},
|
|
266
252
|
{
|
|
267
253
|
name: "preventOverflow",
|
|
268
254
|
},
|
|
269
255
|
{
|
|
270
256
|
name: "flip",
|
|
271
257
|
},
|
|
272
|
-
|
|
273
|
-
|
|
258
|
+
];
|
|
259
|
+
|
|
260
|
+
if (arrow) {
|
|
261
|
+
modifiers.push({
|
|
262
|
+
name: "arrow",
|
|
263
|
+
options: {
|
|
264
|
+
padding: 14,
|
|
265
|
+
},
|
|
266
|
+
});
|
|
267
|
+
modifiers.push({
|
|
268
|
+
name: "arrowOffset",
|
|
269
|
+
enabled: true,
|
|
270
|
+
phase: "main",
|
|
271
|
+
fn({ state }) {
|
|
272
|
+
if (!state.modifiersData.arrow) {
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
if (isVerticalPlacement(state.placement)) {
|
|
276
|
+
if (cornerAbsoluteOffset !== undefined) {
|
|
277
|
+
state.modifiersData.arrow.x = cornerAbsoluteOffset;
|
|
278
|
+
} else {
|
|
279
|
+
if (state.modifiersData.arrow?.x !== undefined) {
|
|
280
|
+
state.modifiersData.arrow.x += cornerOffset;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
} else {
|
|
284
|
+
if (cornerAbsoluteOffset !== undefined) {
|
|
285
|
+
state.modifiersData.arrow.y = cornerAbsoluteOffset;
|
|
286
|
+
} else {
|
|
287
|
+
if (state.modifiersData.arrow?.y !== undefined) {
|
|
288
|
+
state.modifiersData.arrow.y += cornerOffset;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
return modifiers;
|
|
297
|
+
}, [arrow, cornerAbsoluteOffset, cornerOffset, offsetX, offsetY]);
|
|
298
|
+
|
|
299
|
+
const _placement = placement ?? getPlacement(alignX, alignY);
|
|
300
|
+
const { styles, attributes } = usePopper(target, tooltipRef, {
|
|
301
|
+
strategy,
|
|
302
|
+
placement: _placement,
|
|
303
|
+
modifiers,
|
|
274
304
|
});
|
|
275
305
|
|
|
276
306
|
const { document } = useDOM();
|
|
@@ -289,6 +319,8 @@ export const Tooltip = ({
|
|
|
289
319
|
})
|
|
290
320
|
: children;
|
|
291
321
|
|
|
322
|
+
const _appearance = calculateAppearance(mode, appearance);
|
|
323
|
+
|
|
292
324
|
return (
|
|
293
325
|
<React.Fragment>
|
|
294
326
|
{child}
|
|
@@ -297,9 +329,9 @@ export const Tooltip = ({
|
|
|
297
329
|
ReactDOM.createPortal(
|
|
298
330
|
<SimpleTooltip
|
|
299
331
|
{...restProps}
|
|
300
|
-
|
|
332
|
+
appearance={_appearance}
|
|
333
|
+
arrow={arrow}
|
|
301
334
|
ref={(el) => setTooltipRef(el)}
|
|
302
|
-
arrowRef={(el) => setTooltipArrowRef(el)}
|
|
303
335
|
style={{ arrow: styles.arrow, container: styles.popper }}
|
|
304
336
|
attributes={{
|
|
305
337
|
arrow: attributes.arrow ?? null,
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { HasComponent } from "../../../types";
|
|
2
|
+
import { HasComponent, HasRootRef } from "../../../types";
|
|
3
3
|
import { usePlatform } from "../../../hooks/usePlatform";
|
|
4
4
|
import { useAdaptivity } from "../../../hooks/useAdaptivity";
|
|
5
5
|
import { classNames } from "../../../lib/classNames";
|
|
6
|
+
import { warnOnce } from "../../../lib/warnOnce";
|
|
6
7
|
import { getClassName } from "../../../helpers/getClassName";
|
|
7
8
|
import "./Headline.css";
|
|
8
9
|
|
|
9
10
|
export interface HeadlineProps
|
|
10
11
|
extends React.AllHTMLAttributes<HTMLElement>,
|
|
12
|
+
HasRootRef<HTMLElement>,
|
|
11
13
|
HasComponent {
|
|
12
14
|
/**
|
|
13
15
|
* Задаёт начертание шрифта отличное от стандартного.
|
|
@@ -18,6 +20,8 @@ export interface HeadlineProps
|
|
|
18
20
|
level?: "1" | "2";
|
|
19
21
|
}
|
|
20
22
|
|
|
23
|
+
const warn = warnOnce("Headline");
|
|
24
|
+
|
|
21
25
|
/**
|
|
22
26
|
* @see https://vkcom.github.io/VKUI/#/Headline
|
|
23
27
|
*/
|
|
@@ -26,14 +30,24 @@ export const Headline = ({
|
|
|
26
30
|
weight = "3",
|
|
27
31
|
level = "1",
|
|
28
32
|
Component = "h3", // TODO: v5 h4
|
|
33
|
+
getRootRef,
|
|
29
34
|
...restProps
|
|
30
35
|
}: HeadlineProps) => {
|
|
31
36
|
const platform = usePlatform();
|
|
32
37
|
const { sizeY } = useAdaptivity();
|
|
33
38
|
|
|
39
|
+
if (
|
|
40
|
+
process.env.NODE_ENV === "development" &&
|
|
41
|
+
typeof Component !== "string" &&
|
|
42
|
+
getRootRef
|
|
43
|
+
) {
|
|
44
|
+
warn("getRootRef может использоваться только с элементами DOM", "error");
|
|
45
|
+
}
|
|
46
|
+
|
|
34
47
|
return (
|
|
35
48
|
<Component
|
|
36
49
|
{...restProps}
|
|
50
|
+
ref={getRootRef}
|
|
37
51
|
vkuiClass={classNames(
|
|
38
52
|
getClassName("Headline", platform), // TODO: v5 remove
|
|
39
53
|
`Headline--sizeY-${sizeY}`, // TODO: новая адаптивность
|