@vkontakte/vkui 4.34.1 → 4.35.1
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 +256 -229
- 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/Textarea/Textarea.d.ts +3 -0
- 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/AppRoot/AppRoot.js +1 -0
- package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cjs/components/Button/Button.js +6 -4
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/CardScroll/CardScroll.js +3 -1
- package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +1 -0
- package/dist/cjs/components/ChipsSelect/ChipsSelect.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/HorizontalScroll/HorizontalScroll.js +1 -0
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- package/dist/cjs/components/Input/Input.js +1 -0
- package/dist/cjs/components/Input/Input.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/ModalCardBase/ModalCardBase.js +1 -0
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.js +1 -0
- package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cjs/components/Panel/Panel.js +1 -0
- package/dist/cjs/components/Panel/Panel.js.map +1 -1
- package/dist/cjs/components/PanelHeader/PanelHeader.js +1 -0
- package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cjs/components/Popper/Popper.js +16 -22
- 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/Radio/Radio.js +1 -0
- package/dist/cjs/components/Radio/Radio.js.map +1 -1
- package/dist/cjs/components/RangeSlider/UniversalSlider.js +1 -0
- package/dist/cjs/components/RangeSlider/UniversalSlider.js.map +1 -1
- package/dist/cjs/components/RichTooltip/RichTooltip.js +6 -15
- package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
- package/dist/cjs/components/Select/Select.js +1 -0
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js +1 -0
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.js +21 -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/Textarea/Textarea.js +5 -4
- package/dist/cjs/components/Textarea/Textarea.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/AppRoot/AppRoot.js +1 -0
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/Button/Button.js +6 -4
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/CardScroll/CardScroll.js +3 -1
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js +1 -0
- package/dist/components/ChipsSelect/ChipsSelect.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/HorizontalScroll/HorizontalScroll.js +1 -0
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScrollArrow.js +2 -2
- package/dist/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- package/dist/components/Input/Input.js +1 -0
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.js +2 -2
- package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +1 -0
- package/dist/components/ModalCardBase/ModalCardBase.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/NativeSelect/NativeSelect.js +1 -0
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/Panel/Panel.js +1 -0
- package/dist/components/Panel/Panel.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.js +1 -0
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/Popper/Popper.d.ts +18 -1
- package/dist/components/Popper/Popper.js +15 -22
- 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/Radio/Radio.js +1 -0
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/RangeSlider/UniversalSlider.js +1 -0
- package/dist/components/RangeSlider/UniversalSlider.js.map +1 -1
- 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/Select/Select.js +1 -0
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js +1 -0
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.js +19 -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/Textarea/Textarea.d.ts +3 -0
- package/dist/components/Textarea/Textarea.js +5 -4
- package/dist/components/Textarea/Textarea.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/AppRoot/AppRoot.js +1 -0
- package/dist/cssm/components/AppRoot/AppRoot.js.map +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/Button/Button.js +6 -4
- package/dist/cssm/components/Button/Button.js.map +1 -1
- 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/ChipsSelect/ChipsSelect.js +1 -0
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +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/HorizontalScroll.js +1 -0
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +3 -3
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js +2 -2
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- 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/Input/Input.js +1 -0
- package/dist/cssm/components/Input/Input.js.map +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/ModalCardBase/ModalCardBase.js +1 -0
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- 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/NativeSelect/NativeSelect.js +1 -0
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.css +1 -1
- package/dist/cssm/components/Panel/Panel.css +1 -1
- package/dist/cssm/components/Panel/Panel.js +1 -0
- package/dist/cssm/components/Panel/Panel.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.css +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js +1 -0
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +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 +15 -22
- 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/Radio/Radio.js +1 -0
- package/dist/cssm/components/Radio/Radio.js.map +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.css +1 -1
- package/dist/cssm/components/RangeSlider/UniversalSlider.js +1 -0
- package/dist/cssm/components/RangeSlider/UniversalSlider.js.map +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/Select/Select.js +1 -0
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -0
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +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 +19 -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/Textarea/Textarea.d.ts +3 -0
- package/dist/cssm/components/Textarea/Textarea.js +5 -4
- package/dist/cssm/components/Textarea/Textarea.js.map +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/AppRoot/AppRoot.tsx +2 -0
- package/src/components/Badge/Badge.css +0 -5
- package/src/components/Button/Button.css +0 -4
- package/src/components/Button/Button.tsx +4 -2
- package/src/components/Button/Readme.md +30 -59
- 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/ChipsSelect/ChipsSelect.tsx +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/Group/Readme.md +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/HorizontalScroll/HorizontalScroll.tsx +2 -0
- package/src/components/HorizontalScroll/HorizontalScrollArrow.tsx +2 -2
- package/src/components/Input/Input.css +2 -0
- package/src/components/Input/Input.tsx +2 -0
- package/src/components/MiniInfoCell/MiniInfoCell.css +13 -3
- package/src/components/MiniInfoCell/MiniInfoCell.tsx +3 -3
- package/src/components/ModalCardBase/ModalCardBase.tsx +2 -0
- package/src/components/NativeSelect/NativeSelect.tsx +2 -0
- package/src/components/Panel/Panel.tsx +2 -0
- package/src/components/PanelHeader/PanelHeader.tsx +2 -0
- package/src/components/Popper/Popper.css +0 -35
- package/src/components/Popper/Popper.tsx +33 -25
- package/src/components/PopperArrow/PopperArrow.css +34 -0
- package/src/components/PopperArrow/PopperArrow.tsx +40 -0
- package/src/components/Radio/Radio.tsx +2 -0
- package/src/components/RangeSlider/UniversalSlider.tsx +2 -0
- package/src/components/RichTooltip/RichTooltip.css +44 -4
- package/src/components/RichTooltip/RichTooltip.tsx +9 -11
- package/src/components/Select/Select.tsx +2 -0
- package/src/components/SelectMimicry/SelectMimicry.tsx +2 -0
- package/src/components/SimpleCell/Readme.md +115 -129
- package/src/components/SimpleCell/SimpleCell.css +30 -68
- package/src/components/SimpleCell/SimpleCell.tsx +23 -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/Switch/Switch.css +6 -2
- 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/Textarea/Textarea.tsx +5 -4
- 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
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
.Dropdown {
|
|
2
|
+
position: relative;
|
|
2
3
|
animation: vkui-popper-fadein 0.2s ease;
|
|
3
4
|
background: var(--modal_card_background, var(--vkui--color_background_modal));
|
|
4
5
|
border-radius: var(--vkui--size_border_radius--regular);
|
|
5
6
|
box-shadow: var(--vkui--elevation3);
|
|
6
7
|
}
|
|
8
|
+
|
|
9
|
+
/* Создаём "Safe Zone" */
|
|
10
|
+
.Dropdown::before {
|
|
11
|
+
content: "";
|
|
12
|
+
position: absolute;
|
|
13
|
+
z-index: -1;
|
|
14
|
+
top: calc(-1 * var(--popover-safe-zone-padding));
|
|
15
|
+
right: calc(-1 * var(--popover-safe-zone-padding));
|
|
16
|
+
bottom: calc(-1 * var(--popover-safe-zone-padding));
|
|
17
|
+
left: calc(-1 * var(--popover-safe-zone-padding));
|
|
18
|
+
}
|
|
@@ -1,36 +1,190 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { useDOM } from "../../lib/dom";
|
|
3
|
+
import { PopperCommonProps, Popper } from "../Popper/Popper";
|
|
4
|
+
import { FocusTrap } from "../FocusTrap/FocusTrap";
|
|
5
|
+
import { useTimeout } from "../../hooks/useTimeout";
|
|
6
|
+
import { useExternRef } from "../../hooks/useExternRef";
|
|
7
|
+
import { useEventListener } from "../../hooks/useEventListener";
|
|
8
|
+
import { useGlobalEventListener } from "../../hooks/useGlobalEventListener";
|
|
9
|
+
import { usePatchChildrenRef } from "../../hooks/usePatchChildrenRef";
|
|
3
10
|
import "./Dropdown.css";
|
|
4
11
|
|
|
5
12
|
export interface DropdownProps
|
|
6
|
-
extends Omit<
|
|
7
|
-
|
|
13
|
+
extends Omit<PopperCommonProps, "arrow" | "arrowClassName"> {
|
|
14
|
+
/**
|
|
15
|
+
* Механика вызова всплывающего окна.
|
|
16
|
+
*
|
|
17
|
+
* - `"click"` – показывается/скрывается только при нажатии.
|
|
18
|
+
* - `"hover"` – помимо нажатия, будет показываться/скрывается при наведении/отведении мыши.
|
|
19
|
+
*
|
|
20
|
+
* > ⚠️`"hover"` на тач-устройствах будет работать как `"click"`, с одним лишь нюансом, что не будет закрываться
|
|
21
|
+
* > при повторном нажатии на целевой элемент. Для закрытия необходимо нажать на область вне целевого элемента
|
|
22
|
+
* > и выпадающего окна.
|
|
23
|
+
*/
|
|
8
24
|
action?: "click" | "hover";
|
|
25
|
+
/**
|
|
26
|
+
* Если передан, то всплывающее окно будет показан/скрыт в зависимости от значения свойства.
|
|
27
|
+
*/
|
|
28
|
+
shown?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Количество миллисекунд, после которых произойдёт показ всплывающего окна.
|
|
31
|
+
*
|
|
32
|
+
* > Используется только для `action="hover"` при наведении/отведении мыши.
|
|
33
|
+
*/
|
|
34
|
+
showDelay?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Количество миллисекунд, после которых произойдёт скрытие всплывающего окна.
|
|
37
|
+
*
|
|
38
|
+
* > Используется только для `action="hover"` при наведении/отведении мыши.
|
|
39
|
+
*/
|
|
40
|
+
hideDelay?: number;
|
|
41
|
+
/**
|
|
42
|
+
* Содержимое всплывающего окна.
|
|
43
|
+
*/
|
|
44
|
+
content?: React.ReactNode;
|
|
45
|
+
/**
|
|
46
|
+
* Целевой элемент. Всплывающее окно появится возле него.
|
|
47
|
+
*
|
|
48
|
+
* > ⚠️ Если это пользовательский компонент, то он должен предоставлять параметры либо `getRootRef`, либо `ref` для получения ссылки на DOM-узел.
|
|
49
|
+
*/
|
|
50
|
+
children?: React.ReactElement;
|
|
51
|
+
/**
|
|
52
|
+
* Вызывается при каждом изменении видимости всплывающего окна.
|
|
53
|
+
*/
|
|
54
|
+
onShownChange?(shown: boolean): void;
|
|
9
55
|
}
|
|
10
56
|
|
|
11
57
|
/**
|
|
12
58
|
* @see https://vkcom.github.io/VKUI/#/Dropdown
|
|
59
|
+
*
|
|
60
|
+
* TODO v5.0.0 Переименовать в `Popover` (см. https://github.com/VKCOM/VKUI/issues/2523)
|
|
13
61
|
*/
|
|
14
62
|
export const Dropdown = ({
|
|
15
63
|
action = "click",
|
|
16
|
-
|
|
17
|
-
showDelay,
|
|
18
|
-
|
|
64
|
+
shown: shownProp,
|
|
65
|
+
showDelay = 150,
|
|
66
|
+
hideDelay = 150,
|
|
67
|
+
offsetDistance = 8,
|
|
68
|
+
content,
|
|
69
|
+
children,
|
|
70
|
+
style,
|
|
71
|
+
getRef,
|
|
72
|
+
onShownChange,
|
|
73
|
+
...restProps
|
|
19
74
|
}: DropdownProps) => {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
75
|
+
const { document } = useDOM();
|
|
76
|
+
|
|
77
|
+
const hoverable = action === "hover";
|
|
78
|
+
const hovered = React.useRef(false);
|
|
79
|
+
const [computedShown, setComputedShown] = React.useState(shownProp || false);
|
|
80
|
+
const [dropdownNode, setPopperNode] = React.useState<HTMLElement | null>(
|
|
81
|
+
null
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
// Reason: Typescript ругается на CSS Custom Properties в объекте
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
86
|
+
const styles = {
|
|
87
|
+
...style,
|
|
88
|
+
"--popover-safe-zone-padding": `${offsetDistance}px`,
|
|
89
|
+
} as React.CSSProperties;
|
|
90
|
+
|
|
91
|
+
const shown = typeof shownProp === "boolean" ? shownProp : computedShown;
|
|
92
|
+
|
|
93
|
+
const patchedPopperRef = useExternRef<HTMLDivElement>(setPopperNode, getRef);
|
|
94
|
+
|
|
95
|
+
const [childRef, child] = usePatchChildrenRef(children);
|
|
96
|
+
|
|
97
|
+
const setShown = (value: boolean) => {
|
|
98
|
+
if (typeof shownProp !== "boolean") {
|
|
99
|
+
setComputedShown(value);
|
|
100
|
+
}
|
|
101
|
+
typeof onShownChange === "function" && onShownChange(value);
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
const showTimeout = useTimeout(() => setShown(true), showDelay);
|
|
105
|
+
|
|
106
|
+
const hideTimeout = useTimeout(() => setShown(false), hideDelay);
|
|
107
|
+
|
|
108
|
+
const handleTargetEnter = () => {
|
|
109
|
+
hovered.current = true;
|
|
110
|
+
hideTimeout.clear();
|
|
111
|
+
showTimeout.set();
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
const handleTargetClick = () => {
|
|
115
|
+
if (hovered.current && shown) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
setShown(!shown);
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
const handleTargetLeave = () => {
|
|
122
|
+
hovered.current = false;
|
|
123
|
+
showTimeout.clear();
|
|
124
|
+
hideTimeout.set();
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
const handleContentKeyDownEscape = () => {
|
|
128
|
+
setShown(false);
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
const handleOutsideClick = (e: MouseEvent) => {
|
|
132
|
+
if (
|
|
133
|
+
dropdownNode &&
|
|
134
|
+
!childRef.current?.contains(e.target as Node) &&
|
|
135
|
+
!dropdownNode.contains(e.target as Node)
|
|
136
|
+
) {
|
|
137
|
+
setShown(false);
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
useGlobalEventListener(document, "click", handleOutsideClick);
|
|
142
|
+
const targetEnterListener = useEventListener("mouseenter", handleTargetEnter);
|
|
143
|
+
const targetClickEvent = useEventListener("click", handleTargetClick);
|
|
144
|
+
const targetLeaveListener = useEventListener("mouseleave", handleTargetLeave);
|
|
145
|
+
|
|
146
|
+
React.useEffect(() => {
|
|
147
|
+
if (!childRef.current) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
targetClickEvent.add(childRef.current);
|
|
152
|
+
|
|
153
|
+
if (hoverable) {
|
|
154
|
+
targetEnterListener.add(childRef.current);
|
|
155
|
+
targetLeaveListener.add(childRef.current);
|
|
156
|
+
}
|
|
157
|
+
}, [
|
|
158
|
+
childRef,
|
|
159
|
+
hoverable,
|
|
160
|
+
targetClickEvent,
|
|
161
|
+
targetEnterListener,
|
|
162
|
+
targetLeaveListener,
|
|
163
|
+
]);
|
|
32
164
|
|
|
33
165
|
return (
|
|
34
|
-
<
|
|
166
|
+
<React.Fragment>
|
|
167
|
+
{child}
|
|
168
|
+
{shown && (
|
|
169
|
+
<Popper
|
|
170
|
+
{...restProps}
|
|
171
|
+
vkuiClass="Dropdown"
|
|
172
|
+
targetRef={childRef}
|
|
173
|
+
getRef={patchedPopperRef}
|
|
174
|
+
offsetDistance={offsetDistance}
|
|
175
|
+
style={styles}
|
|
176
|
+
renderContent={({ className }) => (
|
|
177
|
+
<FocusTrap
|
|
178
|
+
vkuiClass={className}
|
|
179
|
+
onClose={handleContentKeyDownEscape}
|
|
180
|
+
>
|
|
181
|
+
{content}
|
|
182
|
+
</FocusTrap>
|
|
183
|
+
)}
|
|
184
|
+
onMouseOver={hoverable ? hideTimeout.clear : undefined}
|
|
185
|
+
onMouseOut={hoverable ? handleTargetLeave : undefined}
|
|
186
|
+
/>
|
|
187
|
+
)}
|
|
188
|
+
</React.Fragment>
|
|
35
189
|
);
|
|
36
190
|
};
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { getClassName } from "../../helpers/getClassName";
|
|
3
|
-
import { usePlatform } from "../../hooks/usePlatform";
|
|
4
2
|
import { withAdaptivity, ViewWidth } from "../../hoc/withAdaptivity";
|
|
5
3
|
import { ScrollSaver } from "./ScrollSaver";
|
|
6
4
|
import { getNavId } from "../../lib/getNavId";
|
|
@@ -28,7 +26,6 @@ const EpicComponent = ({
|
|
|
28
26
|
viewWidth,
|
|
29
27
|
...restProps
|
|
30
28
|
}: EpicProps & AdaptivityContextInterface) => {
|
|
31
|
-
const platform = usePlatform();
|
|
32
29
|
const scroll = React.useRef<{ [key: string]: number }>({}).current;
|
|
33
30
|
|
|
34
31
|
if (
|
|
@@ -48,7 +45,7 @@ const EpicComponent = ({
|
|
|
48
45
|
) as React.ReactElement | undefined) ?? null;
|
|
49
46
|
|
|
50
47
|
return (
|
|
51
|
-
<div {...restProps} vkuiClass=
|
|
48
|
+
<div {...restProps} vkuiClass="Epic">
|
|
52
49
|
<ScrollSaver
|
|
53
50
|
key={activeStory}
|
|
54
51
|
initialScroll={scroll[activeStory] || 0}
|
|
@@ -1,117 +1,111 @@
|
|
|
1
|
-
|
|
2
|
-
блоков внутри панели, необходимо использовать `FixedLayout` в качестве обертки.
|
|
1
|
+
Компонент закрепляет переданный элемент сверху или снизу области видимости. Учитывает высоту шапки и прочие системные отступы.
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
контентом есть паддинги. Они там не случайны.
|
|
3
|
+
> ⚠️ Использует `position: fixed` вместо `position: sticky`, т.к. библиотека поддерживает версии браузеров,
|
|
4
|
+
> где значение `sticky` отсутствует. По этой причине `FixedLayout` находится вне основного потока. В примере ниже можно
|
|
5
|
+
> увидеть, что у блока с основным контентом есть отступы сверху и снизу (см. `contentStyles`). Без них контент
|
|
6
|
+
> залезал бы под `FixedLayout`.
|
|
9
7
|
|
|
10
8
|
```jsx
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
const contentStyles = {
|
|
10
|
+
paddingTop: 60,
|
|
11
|
+
paddingBottom: 60,
|
|
12
|
+
};
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
};
|
|
18
|
-
}
|
|
14
|
+
const Example = () => {
|
|
15
|
+
const [activeTab, setActiveTab] = React.useState("groups");
|
|
19
16
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
<
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
}
|
|
17
|
+
return (
|
|
18
|
+
<View activePanel="fixedLayout">
|
|
19
|
+
<Panel id="fixedLayout">
|
|
20
|
+
<PanelHeader>Fixed layout</PanelHeader>
|
|
21
|
+
<FixedLayout vertical="top">
|
|
22
|
+
<Search />
|
|
23
|
+
<Separator wide />
|
|
24
|
+
</FixedLayout>
|
|
25
|
+
<Group>
|
|
26
|
+
<Div style={contentStyles}>
|
|
27
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed a
|
|
28
|
+
sollicitudin lectus, a commodo sapien. Vivamus a urna leo. Integer
|
|
29
|
+
iaculis dignissim urna, sit amet vestibulum diam bibendum a. Donec
|
|
30
|
+
eu arcu ut augue porttitor faucibus. Vestibulum nec pretium tortor,
|
|
31
|
+
sit amet congue nunc. Aenean ullamcorper ex sem, sed interdum quam
|
|
32
|
+
consequat et. Vestibulum a ex non diam fringilla feugiat. Nunc eu
|
|
33
|
+
tellus sed leo elementum cursus. Mauris blandit porta egestas.
|
|
34
|
+
Curabitur eget justo elementum, malesuada lacus ut, congue mauris.
|
|
35
|
+
Integer orci nisi, convallis vitae dapibus sit amet, molestie a
|
|
36
|
+
risus. Aenean ultricies lacus eros, sit amet condimentum urna
|
|
37
|
+
malesuada et. Sed quis dolor tempus orci fringilla volutpat in sed
|
|
38
|
+
velit. Aenean aliquet bibendum pretium.
|
|
39
|
+
<br />
|
|
40
|
+
<br />
|
|
41
|
+
Cras pulvinar lobortis purus. Donec placerat suscipit leo vitae sodales.
|
|
42
|
+
Phasellus convallis lorem vitae arcu finibus pellentesque. In imperdiet
|
|
43
|
+
vel leo a euismod. Nam sed odio a neque venenatis suscipit a placerat
|
|
44
|
+
magna. Mauris magna nisl, consequat nec augue vitae, ultricies scelerisque
|
|
45
|
+
ante. Phasellus pharetra risus eget imperdiet sodales. Integer dignissim
|
|
46
|
+
auctor semper. Nulla odio odio, euismod ut interdum in, bibendum sed
|
|
47
|
+
massa. Proin rutrum molestie massa in ultrices. Donec eu euismod turpis,
|
|
48
|
+
eget lobortis lorem. Nulla facilisi. Nam lacinia posuere turpis, sed
|
|
49
|
+
laoreet turpis auctor nec.
|
|
50
|
+
<br />
|
|
51
|
+
<br />
|
|
52
|
+
Curabitur eu fermentum mauris. Phasellus malesuada consectetur
|
|
53
|
+
mollis. Pellentesque pulvinar mauris turpis. Integer neque dolor,
|
|
54
|
+
semper quis neque et, gravida commodo eros. Duis efficitur ex a
|
|
55
|
+
turpis blandit tincidunt. Mauris sem mi, imperdiet quis ligula sit
|
|
56
|
+
amet, fermentum vulputate felis. Phasellus eu ullamcorper dolor,
|
|
57
|
+
porttitor pulvinar diam. Aliquam euismod, mauris nec varius lacinia,
|
|
58
|
+
ligula libero vulputate leo, ut tristique massa nisi vitae tortor.
|
|
59
|
+
Phasellus purus elit, gravida sit amet neque id, aliquam rutrum dui.
|
|
60
|
+
Maecenas luctus sem vitae molestie porttitor. Cras viverra mauris
|
|
61
|
+
risus, at sollicitudin ipsum interdum eu. Sed sit amet tempor enim.
|
|
62
|
+
<br />
|
|
63
|
+
<br />
|
|
64
|
+
In hac habitasse platea dictumst. Etiam luctus erat metus, quis efficitur
|
|
65
|
+
quam vulputate quis. Duis ultricies non mauris condimentum molestie.
|
|
66
|
+
Maecenas sollicitudin ex sem, quis ultrices libero blandit eu. Vivamus
|
|
67
|
+
in turpis pulvinar, malesuada enim at, hendrerit magna. Proin eu nulla
|
|
68
|
+
eget arcu pretium pharetra. Sed ullamcorper pulvinar est eu dapibus.
|
|
69
|
+
Cras at varius justo. In ex odio, condimentum id pellentesque a, sodales
|
|
70
|
+
ut diam.
|
|
71
|
+
<br />
|
|
72
|
+
<br />
|
|
73
|
+
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices
|
|
74
|
+
posuere cubilia Curae; Nam aliquet tempor laoreet. Maecenas eu
|
|
75
|
+
pulvinar diam. Pellentesque habitant morbi tristique senectus et
|
|
76
|
+
netus et malesuada fames ac turpis egestas. Maecenas et elit eros.
|
|
77
|
+
Quisque ullamcorper sodales nisi, eleifend aliquet metus venenatis
|
|
78
|
+
in. Aliquam ornare a lacus in tincidunt. Cras vel tristique metus.
|
|
79
|
+
Sed vitae nisl at nisl imperdiet sollicitudin. Sed sit amet enim in
|
|
80
|
+
lectus imperdiet interdum condimentum et diam. Proin venenatis sit
|
|
81
|
+
amet diam ac vulputate. Donec mauris orci, semper volutpat nunc ut,
|
|
82
|
+
efficitur condimentum dolor. Vivamus in quam eget quam lacinia
|
|
83
|
+
pharetra. Phasellus ipsum magna, aliquet id elit eget, cursus
|
|
84
|
+
tincidunt ex. In rhoncus turpis turpis, et viverra ex malesuada vel.
|
|
85
|
+
Donec nisi tellus, mollis et posuere vel, dictum eget neque.
|
|
86
|
+
</Div>
|
|
87
|
+
</Group>
|
|
88
|
+
<FixedLayout filled vertical="bottom">
|
|
89
|
+
<Separator wide />
|
|
90
|
+
<Tabs>
|
|
91
|
+
<TabsItem
|
|
92
|
+
selected={activeTab === "groups"}
|
|
93
|
+
onClick={() => setActiveTab("groups")}
|
|
94
|
+
>
|
|
95
|
+
176 сообществ
|
|
96
|
+
</TabsItem>
|
|
97
|
+
<TabsItem
|
|
98
|
+
selected={activeTab === "events"}
|
|
99
|
+
onClick={() => setActiveTab("events")}
|
|
100
|
+
>
|
|
101
|
+
9 событий
|
|
102
|
+
</TabsItem>
|
|
103
|
+
</Tabs>
|
|
104
|
+
</FixedLayout>
|
|
105
|
+
</Panel>
|
|
106
|
+
</View>
|
|
107
|
+
);
|
|
108
|
+
};
|
|
115
109
|
|
|
116
110
|
<Example />;
|
|
117
111
|
```
|
|
@@ -9,7 +9,6 @@ import {
|
|
|
9
9
|
} from "../../lib/accessibility";
|
|
10
10
|
import { useDOM } from "../../lib/dom";
|
|
11
11
|
import { useIsomorphicLayoutEffect } from "../../lib/useIsomorphicLayoutEffect";
|
|
12
|
-
import { noop } from "../../lib/utils";
|
|
13
12
|
import { HasComponent, HasRootRef } from "../../types";
|
|
14
13
|
import { AppRootContext } from "../AppRoot/AppRootContext";
|
|
15
14
|
|
|
@@ -19,9 +18,9 @@ export interface FocusTrapProps
|
|
|
19
18
|
extends React.AllHTMLAttributes<HTMLElement>,
|
|
20
19
|
HasRootRef<HTMLElement>,
|
|
21
20
|
HasComponent {
|
|
22
|
-
onClose?: (props?: any) => void;
|
|
23
21
|
restoreFocus?: boolean;
|
|
24
22
|
timeout?: number;
|
|
23
|
+
onClose?(): void;
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
/**
|
|
@@ -29,7 +28,7 @@ export interface FocusTrapProps
|
|
|
29
28
|
*/
|
|
30
29
|
export const FocusTrap = ({
|
|
31
30
|
Component = "div",
|
|
32
|
-
onClose
|
|
31
|
+
onClose,
|
|
33
32
|
restoreFocus = true,
|
|
34
33
|
timeout = 0,
|
|
35
34
|
getRootRef,
|
|
@@ -66,7 +65,7 @@ export const FocusTrap = ({
|
|
|
66
65
|
|
|
67
66
|
useIsomorphicLayoutEffect(() => {
|
|
68
67
|
if (!ref.current) {
|
|
69
|
-
return
|
|
68
|
+
return;
|
|
70
69
|
}
|
|
71
70
|
|
|
72
71
|
const nodes: HTMLElement[] = [];
|
|
@@ -82,11 +81,12 @@ export const FocusTrap = ({
|
|
|
82
81
|
}
|
|
83
82
|
);
|
|
84
83
|
|
|
85
|
-
if (nodes
|
|
86
|
-
|
|
84
|
+
if (nodes.length === 0) {
|
|
85
|
+
// Чтобы фокус был хотя бы на родителе
|
|
86
|
+
nodes.push(ref.current);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
setFocusableNodes(nodes);
|
|
90
90
|
}, [children]);
|
|
91
91
|
|
|
92
92
|
// HANDLE TRAP UNMOUNT
|
|
@@ -105,7 +105,7 @@ export const FocusTrap = ({
|
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
return
|
|
108
|
+
return;
|
|
109
109
|
}, [restoreFocus]);
|
|
110
110
|
|
|
111
111
|
const onDocumentKeydown = (e: KeyboardEvent) => {
|
|
@@ -129,7 +129,7 @@ export const FocusTrap = ({
|
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
if (pressedKey(e) === Keys.ESCAPE) {
|
|
132
|
+
if (onClose && pressedKey(e) === Keys.ESCAPE) {
|
|
133
133
|
onClose();
|
|
134
134
|
}
|
|
135
135
|
|
|
@@ -140,7 +140,7 @@ export const FocusTrap = ({
|
|
|
140
140
|
});
|
|
141
141
|
|
|
142
142
|
return (
|
|
143
|
-
<Component ref={ref} {...restProps}>
|
|
143
|
+
<Component tabIndex={-1} ref={ref} {...restProps}>
|
|
144
144
|
{children}
|
|
145
145
|
</Component>
|
|
146
146
|
);
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
.Group--card > .Group__inner {
|
|
16
16
|
background: var(--background_content, var(--vkui--color_background_content));
|
|
17
|
-
border-radius: var(--vkui--
|
|
17
|
+
border-radius: var(--vkui--size_border_radius_paper--regular);
|
|
18
18
|
position: relative;
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -138,7 +138,7 @@ const SharedContent = () => {
|
|
|
138
138
|
|
|
139
139
|
<Group
|
|
140
140
|
header={<Header>Адреса</Header>}
|
|
141
|
-
description="Для использования в мини-приложениях, Delivery
|
|
141
|
+
description="Для использования в мини-приложениях, Delivery Club, VK Taxi и других сервисах ВКонтакте. Эти адреса видны только Вам."
|
|
142
142
|
>
|
|
143
143
|
<CellButton>Добавить домашний адрес</CellButton>
|
|
144
144
|
<CellButton>Добавить рабочий адрес</CellButton>
|