@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
|
@@ -15,10 +15,6 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
|
|
|
15
15
|
|
|
16
16
|
var _classNames = require("../../lib/classNames");
|
|
17
17
|
|
|
18
|
-
var _getClassName = require("../../helpers/getClassName");
|
|
19
|
-
|
|
20
|
-
var _usePlatform = require("../../hooks/usePlatform");
|
|
21
|
-
|
|
22
18
|
var _utils = require("../../lib/utils");
|
|
23
19
|
|
|
24
20
|
var _Caption = require("../Typography/Caption/Caption");
|
|
@@ -27,6 +23,8 @@ var _Tappable = require("../Tappable/Tappable");
|
|
|
27
23
|
|
|
28
24
|
var _Subhead = require("../Typography/Subhead/Subhead");
|
|
29
25
|
|
|
26
|
+
var _Footnote = require("../Typography/Footnote/Footnote");
|
|
27
|
+
|
|
30
28
|
var _Avatar = require("../Avatar/Avatar");
|
|
31
29
|
|
|
32
30
|
var _excluded = ["size", "children"],
|
|
@@ -58,9 +56,8 @@ var HorizontalCell = function HorizontalCell(_ref2) {
|
|
|
58
56
|
getRootRef = _ref2.getRootRef,
|
|
59
57
|
getRef = _ref2.getRef,
|
|
60
58
|
restProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
|
|
61
|
-
var platform = (0, _usePlatform.usePlatform)();
|
|
62
59
|
return (0, _jsxRuntime.createScopedElement)("div", {
|
|
63
|
-
vkuiClass: (0, _classNames.classNames)(
|
|
60
|
+
vkuiClass: (0, _classNames.classNames)("HorizontalCell", "HorizontalCell--".concat(size)),
|
|
64
61
|
ref: getRootRef,
|
|
65
62
|
style: style,
|
|
66
63
|
className: className
|
|
@@ -74,7 +71,7 @@ var HorizontalCell = function HorizontalCell(_ref2) {
|
|
|
74
71
|
}, (0, _utils.hasReactNode)(header) && (0, _jsxRuntime.createScopedElement)(CellTypography, {
|
|
75
72
|
size: size,
|
|
76
73
|
vkuiClass: "HorizontalCell__title"
|
|
77
|
-
}, header), (0, _utils.hasReactNode)(subtitle) && (0, _jsxRuntime.createScopedElement)(
|
|
74
|
+
}, header), (0, _utils.hasReactNode)(subtitle) && (0, _jsxRuntime.createScopedElement)(_Footnote.Footnote, {
|
|
78
75
|
vkuiClass: "HorizontalCell__subtitle"
|
|
79
76
|
}, subtitle))));
|
|
80
77
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/HorizontalCell/HorizontalCell.tsx"],"names":["CellTypography","size","children","restProps","HorizontalCell","className","header","style","subtitle","getRootRef","getRef"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/HorizontalCell/HorizontalCell.tsx"],"names":["CellTypography","size","children","restProps","HorizontalCell","className","header","style","subtitle","getRootRef","getRef"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;AAQA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAII;AAAA,MAHzBC,IAGyB,QAHzBA,IAGyB;AAAA,MAFzBC,QAEyB,QAFzBA,QAEyB;AAAA,MADtBC,SACsB;AACzB,SAAOF,IAAI,KAAK,GAAT,GACL,qCAAC,gBAAD;AAAS,IAAA,KAAK,EAAC;AAAf,KAAuBE,SAAvB,GACGD,QADH,CADK,GAKL,qCAAC,gBAAD,EAAaC,SAAb,EAAyBD,QAAzB,CALF;AAOD,CAZD;;AAyBA;AACA;AACA;AACO,IAAME,cAAc,GAAG,SAAjBA,cAAiB,QAUH;AAAA,MATzBC,SASyB,SATzBA,SASyB;AAAA,MARzBC,MAQyB,SARzBA,MAQyB;AAAA,MAPzBC,KAOyB,SAPzBA,KAOyB;AAAA,MANzBC,QAMyB,SANzBA,QAMyB;AAAA,yBALzBP,IAKyB;AAAA,MALzBA,IAKyB,2BALlB,GAKkB;AAAA,6BAJzBC,QAIyB;AAAA,MAJzBA,QAIyB,+BAJd,qCAAC,cAAD;AAAQ,IAAA,IAAI,EAAE;AAAd,IAIc;AAAA,MAHzBO,UAGyB,SAHzBA,UAGyB;AAAA,MAFzBC,MAEyB,SAFzBA,MAEyB;AAAA,MADtBP,SACsB;AACzB,SACE;AACE,IAAA,SAAS,EAAE,4BAAW,gBAAX,4BAAgDF,IAAhD,EADb;AAEE,IAAA,GAAG,EAAEQ,UAFP;AAGE,IAAA,KAAK,EAAEF,KAHT;AAIE,IAAA,SAAS,EAAEF;AAJb,KAME,qCAAC,kBAAD;AACE,IAAA,SAAS,EAAC,sBADZ;AAEE,IAAA,UAAU,EAAEK;AAFd,KAGMP,SAHN,GAKG,yBAAaD,QAAb,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAwCA,QAAxC,CANJ,EAQE;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,yBAAaI,MAAb,KACC,qCAAC,cAAD;AAAgB,IAAA,IAAI,EAAEL,IAAtB;AAA4B,IAAA,SAAS,EAAC;AAAtC,KACGK,MADH,CAFJ,EAMG,yBAAaE,QAAb,KACC,qCAAC,kBAAD;AAAU,IAAA,SAAS,EAAC;AAApB,KAAgDA,QAAhD,CAPJ,CARF,CANF,CADF;AA4BD,CAvCM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { Footnote } from \"../Typography/Footnote/Footnote\";\nimport { Avatar } from \"../Avatar/Avatar\";\nimport { HasComponent, HasRef, HasRootRef } from \"../../types\";\nimport \"./HorizontalCell.css\";\n\ninterface CellTypographyProps extends React.HTMLAttributes<HTMLDivElement> {\n size: HorizontalCellProps[\"size\"];\n}\n\nconst CellTypography = ({\n size,\n children,\n ...restProps\n}: CellTypographyProps) => {\n return size === \"s\" ? (\n <Caption level=\"2\" {...restProps}>\n {children}\n </Caption>\n ) : (\n <Subhead {...restProps}>{children}</Subhead>\n );\n};\n\nexport interface HorizontalCellProps\n extends React.AnchorHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement>,\n HasComponent {\n size?: \"s\" | \"m\" | \"l\";\n header?: React.ReactNode;\n subtitle?: React.ReactNode;\n disabled?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/HorizontalCell\n */\nexport const HorizontalCell = ({\n className,\n header,\n style,\n subtitle,\n size = \"s\",\n children = <Avatar size={56} />,\n getRootRef,\n getRef,\n ...restProps\n}: HorizontalCellProps) => {\n return (\n <div\n vkuiClass={classNames(\"HorizontalCell\", `HorizontalCell--${size}`)}\n ref={getRootRef}\n style={style}\n className={className}\n >\n <Tappable\n vkuiClass=\"HorizontalCell__body\"\n getRootRef={getRef}\n {...restProps}\n >\n {hasReactNode(children) && (\n <div vkuiClass=\"HorizontalCell__image\">{children}</div>\n )}\n <div vkuiClass=\"HorizontalCell__content\">\n {hasReactNode(header) && (\n <CellTypography size={size} vkuiClass=\"HorizontalCell__title\">\n {header}\n </CellTypography>\n )}\n {hasReactNode(subtitle) && (\n <Footnote vkuiClass=\"HorizontalCell__subtitle\">{subtitle}</Footnote>\n )}\n </div>\n </Tappable>\n </div>\n );\n};\n"],"file":"HorizontalCell.js"}
|
|
@@ -15,7 +15,7 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
|
|
|
15
15
|
|
|
16
16
|
var _classNames = require("../../lib/classNames");
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _Paragraph = require("../Typography/Paragraph/Paragraph");
|
|
19
19
|
|
|
20
20
|
var _Tappable = require("../Tappable/Tappable");
|
|
21
21
|
|
|
@@ -46,7 +46,7 @@ var MiniInfoCell = function MiniInfoCell(_ref) {
|
|
|
46
46
|
vkuiClass: (0, _classNames.classNames)("MiniInfoCell", mode !== "base" && "MiniInfoCell--md-".concat(mode), textWrap !== "nowrap" && "MiniInfoCell--wr-".concat(textWrap), "MiniInfoCell--lvl-".concat(textLevel))
|
|
47
47
|
}), (0, _jsxRuntime.createScopedElement)("span", {
|
|
48
48
|
vkuiClass: "MiniInfoCell__icon"
|
|
49
|
-
}, before), (0, _jsxRuntime.createScopedElement)(
|
|
49
|
+
}, before), (0, _jsxRuntime.createScopedElement)(_Paragraph.Paragraph, {
|
|
50
50
|
vkuiClass: "MiniInfoCell__content",
|
|
51
51
|
weight: mode === "more" ? "2" : undefined
|
|
52
52
|
}, children), (0, _utils.hasReactNode)(after) && (0, _jsxRuntime.createScopedElement)("span", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/MiniInfoCell/MiniInfoCell.tsx"],"names":["MiniInfoCell","before","after","mode","textWrap","textLevel","children","restProps","isClickable","onClick","undefined"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;;;AA6CA;AACA;AACA;AACO,IAAMA,YAAY,GAAG,SAAfA,YAAe,OAQH;AAAA,MAPvBC,MAOuB,QAPvBA,MAOuB;AAAA,MANvBC,KAMuB,QANvBA,KAMuB;AAAA,uBALvBC,IAKuB;AAAA,MALvBA,IAKuB,0BALhB,MAKgB;AAAA,2BAJvBC,QAIuB;AAAA,MAJvBA,QAIuB,8BAJZ,QAIY;AAAA,4BAHvBC,SAGuB;AAAA,MAHvBA,SAGuB,+BAHX,WAGW;AAAA,MAFvBC,QAEuB,QAFvBA,QAEuB;AAAA,MADpBC,SACoB;AACvB,MAAMC,WAAW,GAAG,CAAC,CAACD,SAAS,CAACE,OAAhC;AAEA,SACE,qCAAC,kBAAD;AACE,IAAA,SAAS,EAAC,KADZ;AAEE,IAAA,QAAQ,EAAE,CAACD,WAFb;AAGE,IAAA,IAAI,EAAEA,WAAW,GAAG,QAAH,GAAcE;AAHjC,KAIMH,SAJN;AAKE,IAAA,SAAS,EAAE,4BACT,cADS,EAETJ,IAAI,KAAK,MAAT,+BAAuCA,IAAvC,CAFS,EAGTC,QAAQ,KAAK,QAAb,+BAA6CA,QAA7C,CAHS,8BAIYC,SAJZ;AALb,MAYE;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAsCJ,MAAtC,CAZF,EAaE,qCAAC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/MiniInfoCell/MiniInfoCell.tsx"],"names":["MiniInfoCell","before","after","mode","textWrap","textLevel","children","restProps","isClickable","onClick","undefined"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;;;AA6CA;AACA;AACA;AACO,IAAMA,YAAY,GAAG,SAAfA,YAAe,OAQH;AAAA,MAPvBC,MAOuB,QAPvBA,MAOuB;AAAA,MANvBC,KAMuB,QANvBA,KAMuB;AAAA,uBALvBC,IAKuB;AAAA,MALvBA,IAKuB,0BALhB,MAKgB;AAAA,2BAJvBC,QAIuB;AAAA,MAJvBA,QAIuB,8BAJZ,QAIY;AAAA,4BAHvBC,SAGuB;AAAA,MAHvBA,SAGuB,+BAHX,WAGW;AAAA,MAFvBC,QAEuB,QAFvBA,QAEuB;AAAA,MADpBC,SACoB;AACvB,MAAMC,WAAW,GAAG,CAAC,CAACD,SAAS,CAACE,OAAhC;AAEA,SACE,qCAAC,kBAAD;AACE,IAAA,SAAS,EAAC,KADZ;AAEE,IAAA,QAAQ,EAAE,CAACD,WAFb;AAGE,IAAA,IAAI,EAAEA,WAAW,GAAG,QAAH,GAAcE;AAHjC,KAIMH,SAJN;AAKE,IAAA,SAAS,EAAE,4BACT,cADS,EAETJ,IAAI,KAAK,MAAT,+BAAuCA,IAAvC,CAFS,EAGTC,QAAQ,KAAK,QAAb,+BAA6CA,QAA7C,CAHS,8BAIYC,SAJZ;AALb,MAYE;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAsCJ,MAAtC,CAZF,EAaE,qCAAC,oBAAD;AACE,IAAA,SAAS,EAAC,uBADZ;AAEE,IAAA,MAAM,EAAEE,IAAI,KAAK,MAAT,GAAkB,GAAlB,GAAwBO;AAFlC,KAIGJ,QAJH,CAbF,EAmBG,yBAAaJ,KAAb,KACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAuCA,KAAvC,CApBJ,CADF;AAyBD,CApCM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Paragraph } from \"../Typography/Paragraph/Paragraph\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport \"./MiniInfoCell.css\";\n\nexport interface MiniInfoCellProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Иконка слева.<br />\n * Рекомендуется использовать иконки размера 20.\n */\n before: React.ReactNode;\n\n /**\n * Содержимое справа.<br />\n * `<UsersStack size=\"s\" />` или `<Avatar size={24} />`\n */\n after?: React.ReactNode;\n\n /**\n * Тип ячейки:\n *\n * - `base` – базовая ячейка с серой иконкой и серым текстом.<br />\n * В компонент можно передать `Link`, чтобы визуально сделать часть текста ссылкой.\n * - `add` – тип ячейки, который показывает, что взаимодействие с ней должно вызывать действие добавления чего-то.\n * - `more` – взаимодействие с такой ячейкой должно открывать какую-то подробную информацию.\n */\n mode?: \"base\" | \"add\" | \"more\";\n\n /**\n * Тип отображения текста:\n *\n * - `nowrap` – в одну строку, текст не переносится и обрезается.\n * - `short` – максимально отображается 3 строки, остальное обрезается.\n * - `full` – текст отображается полностью.\n */\n textWrap?: \"nowrap\" | \"short\" | \"full\";\n\n /**\n * Стиль текста:\n *\n * - `primary` – используйте этот стиль, если хотите выделить информацию в общем списке.<br />Пример использования: подробная информация на странице сообщества\n * - `secondary` – стиль по-умолчанию.\n */\n textLevel?: \"primary\" | \"secondary\";\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/MiniInfoCell\n */\nexport const MiniInfoCell = ({\n before,\n after,\n mode = \"base\",\n textWrap = \"nowrap\",\n textLevel = \"secondary\",\n children,\n ...restProps\n}: MiniInfoCellProps) => {\n const isClickable = !!restProps.onClick;\n\n return (\n <Tappable\n Component=\"div\"\n disabled={!isClickable}\n role={isClickable ? \"button\" : undefined}\n {...restProps}\n vkuiClass={classNames(\n \"MiniInfoCell\",\n mode !== \"base\" && `MiniInfoCell--md-${mode}`,\n textWrap !== \"nowrap\" && `MiniInfoCell--wr-${textWrap}`,\n `MiniInfoCell--lvl-${textLevel}`\n )}\n >\n <span vkuiClass=\"MiniInfoCell__icon\">{before}</span>\n <Paragraph\n vkuiClass=\"MiniInfoCell__content\"\n weight={mode === \"more\" ? \"2\" : undefined}\n >\n {children}\n </Paragraph>\n {hasReactNode(after) && (\n <span vkuiClass=\"MiniInfoCell__after\">{after}</span>\n )}\n </Tappable>\n );\n};\n"],"file":"MiniInfoCell.js"}
|
|
@@ -27,6 +27,8 @@ var _reactPopper = require("react-popper");
|
|
|
27
27
|
|
|
28
28
|
var _AppRootPortal = require("../AppRoot/AppRootPortal");
|
|
29
29
|
|
|
30
|
+
var _PopperArrow = require("../PopperArrow/PopperArrow");
|
|
31
|
+
|
|
30
32
|
var _usePlatform = require("../../hooks/usePlatform");
|
|
31
33
|
|
|
32
34
|
var _getClassName = require("../../helpers/getClassName");
|
|
@@ -35,7 +37,7 @@ var _useExternRef = require("../../hooks/useExternRef");
|
|
|
35
37
|
|
|
36
38
|
var _useIsomorphicLayoutEffect = require("../../lib/useIsomorphicLayoutEffect");
|
|
37
39
|
|
|
38
|
-
var _excluded = ["targetRef", "children", "getRef", "placement", "onPlacementChange", "arrow", "arrowClassName", "sameWidth", "offsetDistance", "offsetSkidding", "forcePortal", "style", "customModifiers"];
|
|
40
|
+
var _excluded = ["targetRef", "children", "getRef", "placement", "onPlacementChange", "arrow", "arrowClassName", "sameWidth", "offsetDistance", "offsetSkidding", "forcePortal", "style", "customModifiers", "renderContent"];
|
|
39
41
|
var ARROW_PADDING = 8;
|
|
40
42
|
var ARROW_WIDTH = 20;
|
|
41
43
|
var ARROW_HEIGHT = 8;
|
|
@@ -63,6 +65,7 @@ var Popper = function Popper(_ref) {
|
|
|
63
65
|
forcePortal = _ref$forcePortal === void 0 ? true : _ref$forcePortal,
|
|
64
66
|
compStyles = _ref.style,
|
|
65
67
|
customModifiers = _ref.customModifiers,
|
|
68
|
+
renderContent = _ref.renderContent,
|
|
66
69
|
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
67
70
|
|
|
68
71
|
var _React$useState = React.useState(null),
|
|
@@ -167,24 +170,13 @@ var Popper = function Popper(_ref) {
|
|
|
167
170
|
style: (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, compStyles), styles.popper), {}, {
|
|
168
171
|
minWidth: sameWidth ? (_targetRef$current3 = targetRef.current) === null || _targetRef$current3 === void 0 ? void 0 : _targetRef$current3.scrollWidth : undefined
|
|
169
172
|
})
|
|
170
|
-
}), arrow && (0, _jsxRuntime.createScopedElement)(
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
}),
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
width: "20",
|
|
178
|
-
height: "8",
|
|
179
|
-
viewBox: "0 0 20 8",
|
|
180
|
-
fill: "none",
|
|
181
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
182
|
-
}, (0, _jsxRuntime.createScopedElement)("path", {
|
|
183
|
-
fillRule: "evenodd",
|
|
184
|
-
clipRule: "evenodd",
|
|
185
|
-
d: "M10 0C13 0 15.9999 8 20 8H0C3.9749 8 7 0 10 0Z",
|
|
186
|
-
fill: "currentColor"
|
|
187
|
-
}))), (0, _jsxRuntime.createScopedElement)("div", {
|
|
173
|
+
}), arrow && (0, _jsxRuntime.createScopedElement)(_PopperArrow.PopperArrow, {
|
|
174
|
+
attributes: attributes.arrow,
|
|
175
|
+
style: styles.arrow,
|
|
176
|
+
arrowClassName: arrowClassName
|
|
177
|
+
}), renderContent ? renderContent({
|
|
178
|
+
className: "Popper__content"
|
|
179
|
+
}) : (0, _jsxRuntime.createScopedElement)("div", {
|
|
188
180
|
vkuiClass: "Popper__content"
|
|
189
181
|
}, children));
|
|
190
182
|
return (0, _jsxRuntime.createScopedElement)(_AppRootPortal.AppRootPortal, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Popper/Popper.tsx"],"names":["ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","compStyles","style","customModifiers","restProps","React","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","setExternalRef","modifiers","useMemo","name","options","mainAxis","offset","push","padding","enabled","phase","requires","fn","state","styles","popper","width","rects","reference","effect","elements","offsetWidth","current","attributes","resolvedPlacement","isEdgePlacement","includes","placementDirection","startsWith","arrowSize","targetSize","offsetHeight","useEffect","dropdown","minWidth","scrollWidth","undefined"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePopper, Modifier } from \"react-popper\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { HasRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./Popper.css\";\n\nexport type Placement =\n | \"auto\"\n | \"auto-start\"\n | \"auto-end\"\n | \"top-start\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom-end\"\n | \"right-start\"\n | \"right-end\"\n | \"left-start\"\n | \"left-end\"\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\";\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n arrow?: boolean;\n arrowClassName?: string;\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customModifiers?: Array<Modifier<string>>;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\nconst ARROW_PADDING = 8;\nconst ARROW_WIDTH = 20;\nconst ARROW_HEIGHT = 8;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement = \"bottom-start\",\n onPlacementChange,\n arrow,\n arrowClassName,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n style: compStyles,\n customModifiers,\n ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState<HTMLDivElement | null>(\n null\n );\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] =\n React.useState(0);\n const platform = usePlatform();\n\n const setExternalRef = useExternRef<HTMLDivElement>(getRef, setPopperNode);\n\n const modifiers = React.useMemo(() => {\n const modifiers: Array<Modifier<string>> = [\n {\n name: \"preventOverflow\",\n options: {\n mainAxis: false,\n },\n },\n {\n name: \"offset\",\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n },\n {\n name: \"flip\",\n },\n ];\n\n if (arrow) {\n modifiers.push({\n name: \"arrow\",\n options: {\n padding: ARROW_PADDING,\n },\n });\n }\n\n if (sameWidth) {\n const sameWidth: Modifier<string> = {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n };\n\n modifiers.push(sameWidth);\n }\n\n if (customModifiers) {\n modifiers.push(...customModifiers);\n }\n return modifiers;\n }, [\n arrow,\n sameWidth,\n smallTargetOffsetSkidding,\n offsetSkidding,\n offsetDistance,\n customModifiers,\n ]);\n\n const { styles, state, attributes } = usePopper(\n targetRef.current,\n popperNode,\n {\n placement,\n modifiers,\n }\n );\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement =\n !!resolvedPlacement && resolvedPlacement.includes(\"-\"); // true, если поппер отрисован с краю\n\n // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection =\n resolvedPlacement?.startsWith(\"bottom\") ||\n resolvedPlacement?.startsWith(\"top\")\n ? \"vertical\"\n : \"horizontal\";\n\n const arrowSize =\n placementDirection === \"vertical\" ? ARROW_WIDTH : ARROW_HEIGHT;\n const targetSize =\n (placementDirection === \"vertical\"\n ? targetRef.current?.offsetWidth\n : targetRef.current?.offsetHeight) ?? 0;\n\n if (targetSize < arrowSize + 2 * ARROW_PADDING) {\n setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);\n }\n } else {\n setSmallTargetOffsetSkidding(0);\n }\n }, [arrow, isEdgePlacement]);\n\n React.useEffect(() => {\n if (resolvedPlacement) {\n onPlacementChange && onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n {...attributes.popper}\n vkuiClass={getClassName(\"Popper\", platform)}\n ref={setExternalRef}\n style={{\n ...compStyles,\n ...styles.popper,\n minWidth: sameWidth ? targetRef.current?.scrollWidth : undefined,\n }}\n >\n {arrow && (\n <div\n {...attributes.arrow}\n vkuiClass=\"Popper__arrow\"\n data-popper-arrow={true}\n style={styles.arrow}\n >\n <svg\n vkuiClass=\"Popper__arrow-in\"\n className={arrowClassName}\n width=\"20\"\n height=\"8\"\n viewBox=\"0 0 20 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 0C13 0 15.9999 8 20 8H0C3.9749 8 7 0 10 0Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n )}\n <div vkuiClass=\"Popper__content\">{children}</div>\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} vkuiClass=\"PopperPortal\">\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"file":"Popper.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Popper/Popper.tsx"],"names":["ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","compStyles","style","customModifiers","renderContent","restProps","React","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","setExternalRef","modifiers","useMemo","name","options","mainAxis","offset","push","padding","enabled","phase","requires","fn","state","styles","popper","width","rects","reference","effect","elements","offsetWidth","current","attributes","resolvedPlacement","isEdgePlacement","includes","placementDirection","startsWith","arrowSize","targetSize","offsetHeight","useEffect","dropdown","minWidth","scrollWidth","undefined","className"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePopper, Modifier } from \"react-popper\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { PopperArrow } from \"../PopperArrow/PopperArrow\";\nimport { HasRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./Popper.css\";\n\nexport type Placement =\n | \"auto\"\n | \"auto-start\"\n | \"auto-end\"\n | \"top-start\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom-end\"\n | \"right-start\"\n | \"right-end\"\n | \"left-start\"\n | \"left-end\"\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\";\n\nexport interface PopperRenderContentProps {\n className: string;\n}\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Стиль стрелки\n */\n arrowClassName?: string;\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customModifiers?: Array<Modifier<string>>;\n /**\n * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.\n *\n * Если хочется управлять этим контейнером, то используйте данную функцию.\n *\n * > ⚠️ Параметр `children` будет проигнорирован.\n */\n renderContent?(props: PopperRenderContentProps): React.ReactNode;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\nconst ARROW_PADDING = 8;\nconst ARROW_WIDTH = 20;\nconst ARROW_HEIGHT = 8;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement = \"bottom-start\",\n onPlacementChange,\n arrow,\n arrowClassName,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n style: compStyles,\n customModifiers,\n renderContent,\n ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState<HTMLDivElement | null>(\n null\n );\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] =\n React.useState(0);\n const platform = usePlatform();\n\n const setExternalRef = useExternRef<HTMLDivElement>(getRef, setPopperNode);\n\n const modifiers = React.useMemo(() => {\n const modifiers: Array<Modifier<string>> = [\n {\n name: \"preventOverflow\",\n options: {\n mainAxis: false,\n },\n },\n {\n name: \"offset\",\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n },\n {\n name: \"flip\",\n },\n ];\n\n if (arrow) {\n modifiers.push({\n name: \"arrow\",\n options: {\n padding: ARROW_PADDING,\n },\n });\n }\n\n if (sameWidth) {\n const sameWidth: Modifier<string> = {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n };\n\n modifiers.push(sameWidth);\n }\n\n if (customModifiers) {\n modifiers.push(...customModifiers);\n }\n return modifiers;\n }, [\n arrow,\n sameWidth,\n smallTargetOffsetSkidding,\n offsetSkidding,\n offsetDistance,\n customModifiers,\n ]);\n\n const { styles, state, attributes } = usePopper(\n targetRef.current,\n popperNode,\n {\n placement,\n modifiers,\n }\n );\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement =\n !!resolvedPlacement && resolvedPlacement.includes(\"-\"); // true, если поппер отрисован с краю\n\n // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection =\n resolvedPlacement?.startsWith(\"bottom\") ||\n resolvedPlacement?.startsWith(\"top\")\n ? \"vertical\"\n : \"horizontal\";\n\n const arrowSize =\n placementDirection === \"vertical\" ? ARROW_WIDTH : ARROW_HEIGHT;\n const targetSize =\n (placementDirection === \"vertical\"\n ? targetRef.current?.offsetWidth\n : targetRef.current?.offsetHeight) ?? 0;\n\n if (targetSize < arrowSize + 2 * ARROW_PADDING) {\n setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);\n }\n } else {\n setSmallTargetOffsetSkidding(0);\n }\n }, [arrow, isEdgePlacement]);\n\n React.useEffect(() => {\n if (resolvedPlacement) {\n onPlacementChange && onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n {...attributes.popper}\n vkuiClass={getClassName(\"Popper\", platform)}\n ref={setExternalRef}\n style={{\n ...compStyles,\n ...styles.popper,\n minWidth: sameWidth ? targetRef.current?.scrollWidth : undefined,\n }}\n >\n {arrow && (\n <PopperArrow\n attributes={attributes.arrow}\n style={styles.arrow}\n arrowClassName={arrowClassName}\n />\n )}\n {renderContent ? (\n renderContent({ className: \"Popper__content\" })\n ) : (\n <div vkuiClass=\"Popper__content\">{children}</div>\n )}\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} vkuiClass=\"PopperPortal\">\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"file":"Popper.js"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.PopperArrow = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _jsxRuntime = require("../../lib/jsxRuntime");
|
|
13
|
+
|
|
14
|
+
var PopperArrow = function PopperArrow(_ref) {
|
|
15
|
+
var style = _ref.style,
|
|
16
|
+
attributes = _ref.attributes,
|
|
17
|
+
arrowClassName = _ref.arrowClassName;
|
|
18
|
+
return (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({
|
|
19
|
+
style: style
|
|
20
|
+
}, attributes, {
|
|
21
|
+
vkuiClass: "PopperArrow",
|
|
22
|
+
"data-popper-arrow": true
|
|
23
|
+
}), (0, _jsxRuntime.createScopedElement)("svg", {
|
|
24
|
+
vkuiClass: "PopperArrow__in",
|
|
25
|
+
className: arrowClassName,
|
|
26
|
+
width: "20",
|
|
27
|
+
height: "8",
|
|
28
|
+
viewBox: "0 0 20 8",
|
|
29
|
+
fill: "none",
|
|
30
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
31
|
+
}, (0, _jsxRuntime.createScopedElement)("path", {
|
|
32
|
+
fillRule: "evenodd",
|
|
33
|
+
clipRule: "evenodd",
|
|
34
|
+
d: "M10 0C13 0 15.9999 8 20 8H0C3.9749 8 7 0 10 0Z",
|
|
35
|
+
fill: "currentColor"
|
|
36
|
+
})));
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
exports.PopperArrow = PopperArrow;
|
|
40
|
+
//# sourceMappingURL=PopperArrow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/PopperArrow/PopperArrow.tsx"],"names":["PopperArrow","style","attributes","arrowClassName"],"mappings":";;;;;;;;;;;;;AASO,IAAMA,WAAW,GAAG,SAAdA,WAAc,OAIH;AAAA,MAHtBC,KAGsB,QAHtBA,KAGsB;AAAA,MAFtBC,UAEsB,QAFtBA,UAEsB;AAAA,MADtBC,cACsB,QADtBA,cACsB;AACtB,SACE;AACE,IAAA,KAAK,EAAEF;AADT,KAEMC,UAFN;AAGE,IAAA,SAAS,EAAC,aAHZ;AAIE,yBAAmB;AAJrB,MAME;AACE,IAAA,SAAS,EAAC,iBADZ;AAEE,IAAA,SAAS,EAAEC,cAFb;AAGE,IAAA,KAAK,EAAC,IAHR;AAIE,IAAA,MAAM,EAAC,GAJT;AAKE,IAAA,OAAO,EAAC,UALV;AAME,IAAA,IAAI,EAAC,MANP;AAOE,IAAA,KAAK,EAAC;AAPR,KASE;AACE,IAAA,QAAQ,EAAC,SADX;AAEE,IAAA,QAAQ,EAAC,SAFX;AAGE,IAAA,CAAC,EAAC,gDAHJ;AAIE,IAAA,IAAI,EAAC;AAJP,IATF,CANF,CADF;AAyBD,CA9BM","sourcesContent":["import * as React from \"react\";\nimport \"./PopperArrow.css\";\n\nexport interface PopperArrowProps {\n style?: React.CSSProperties;\n attributes?: React.HTMLAttributes<HTMLDivElement> | null;\n arrowClassName?: string;\n}\n\nexport const PopperArrow = ({\n style,\n attributes,\n arrowClassName,\n}: PopperArrowProps) => {\n return (\n <div\n style={style}\n {...attributes}\n vkuiClass=\"PopperArrow\"\n data-popper-arrow={true}\n >\n <svg\n vkuiClass=\"PopperArrow__in\"\n className={arrowClassName}\n width=\"20\"\n height=\"8\"\n viewBox=\"0 0 20 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 0C13 0 15.9999 8 20 8H0C3.9749 8 7 0 10 0Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n );\n};\n"],"file":"PopperArrow.js"}
|
|
@@ -11,23 +11,15 @@ var _jsxRuntime = require("../../lib/jsxRuntime");
|
|
|
11
11
|
|
|
12
12
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
13
|
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
|
|
16
14
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
17
15
|
|
|
18
16
|
var _HoverPopper = require("../HoverPopper/HoverPopper");
|
|
19
17
|
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
var _usePlatform = require("../../hooks/usePlatform");
|
|
23
|
-
|
|
24
|
-
var _useAppearance = require("../../hooks/useAppearance");
|
|
25
|
-
|
|
26
|
-
var _classNames2 = require("../../lib/classNames");
|
|
18
|
+
var _classNames = require("../../lib/classNames");
|
|
27
19
|
|
|
28
20
|
var _prefixClass = require("../../lib/prefixClass");
|
|
29
21
|
|
|
30
|
-
var _excluded = ["children", "arrow"];
|
|
22
|
+
var _excluded = ["children", "arrow", "appearance"];
|
|
31
23
|
|
|
32
24
|
/**
|
|
33
25
|
* @see https://vkcom.github.io/VKUI/#/RichTooltip
|
|
@@ -36,12 +28,11 @@ var RichTooltip = function RichTooltip(_ref) {
|
|
|
36
28
|
var children = _ref.children,
|
|
37
29
|
_ref$arrow = _ref.arrow,
|
|
38
30
|
arrow = _ref$arrow === void 0 ? true : _ref$arrow,
|
|
31
|
+
_ref$appearance = _ref.appearance,
|
|
32
|
+
appearance = _ref$appearance === void 0 ? "neutral" : _ref$appearance,
|
|
39
33
|
popperProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return (0, _jsxRuntime.createScopedElement)(_HoverPopper.HoverPopper // eslint-disable-next-line vkui/no-object-expression-in-arguments
|
|
43
|
-
, (0, _extends2.default)({
|
|
44
|
-
vkuiClass: (0, _classNames2.classNames)((0, _getClassName.getClassName)("RichTooltip", platform), (0, _defineProperty2.default)({}, "RichTooltip--".concat(appearance), !!appearance)),
|
|
34
|
+
return (0, _jsxRuntime.createScopedElement)(_HoverPopper.HoverPopper, (0, _extends2.default)({
|
|
35
|
+
vkuiClass: (0, _classNames.classNames)("RichTooltip", "RichTooltip--".concat(appearance)),
|
|
45
36
|
arrow: arrow,
|
|
46
37
|
arrowClassName: (0, _prefixClass.prefixClass)("RichTooltip__arrow")
|
|
47
38
|
}, popperProps), children);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/RichTooltip/RichTooltip.tsx"],"names":["RichTooltip","children","arrow","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/RichTooltip/RichTooltip.tsx"],"names":["RichTooltip","children","arrow","appearance","popperProps"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;AAWA;AACA;AACA;AACO,IAAMA,WAAW,GAAG,SAAdA,WAAc,OAKH;AAAA,MAJtBC,QAIsB,QAJtBA,QAIsB;AAAA,wBAHtBC,KAGsB;AAAA,MAHtBA,KAGsB,2BAHd,IAGc;AAAA,6BAFtBC,UAEsB;AAAA,MAFtBA,UAEsB,gCAFT,SAES;AAAA,MADnBC,WACmB;AACtB,SACE,qCAAC,wBAAD;AACE,IAAA,SAAS,EAAE,4BAAW,aAAX,yBAA0CD,UAA1C,EADb;AAEE,IAAA,KAAK,EAAED,KAFT;AAGE,IAAA,cAAc,EAAE,8BAAY,oBAAZ;AAHlB,KAIME,WAJN,GAMGH,QANH,CADF;AAUD,CAhBM","sourcesContent":["import { HoverPopper, HoverPopperProps } from \"../HoverPopper/HoverPopper\";\nimport { classNames } from \"../../lib/classNames\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport \"./RichTooltip.css\";\n\nexport interface RichTooltipProps\n extends Omit<HoverPopperProps, \"arrowClassName\"> {\n /**\n * Стиль отображения подсказки\n */\n appearance?: \"accent\" | \"neutral\" | \"white\" | \"black\" | \"inversion\";\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/RichTooltip\n */\nexport const RichTooltip = ({\n children,\n arrow = true,\n appearance = \"neutral\",\n ...popperProps\n}: RichTooltipProps) => {\n return (\n <HoverPopper\n vkuiClass={classNames(\"RichTooltip\", `RichTooltip--${appearance}`)}\n arrow={arrow}\n arrowClassName={prefixClass(\"RichTooltip__arrow\")}\n {...popperProps}\n >\n {children}\n </HoverPopper>\n );\n};\n"],"file":"RichTooltip.js"}
|
|
@@ -9,10 +9,10 @@ exports.SimpleCell = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
11
|
|
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
-
|
|
14
12
|
var _jsxRuntime = require("../../lib/jsxRuntime");
|
|
15
13
|
|
|
14
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
|
+
|
|
16
16
|
var _classNames = require("../../lib/classNames");
|
|
17
17
|
|
|
18
18
|
var _getClassName = require("../../helpers/getClassName");
|
|
@@ -31,13 +31,11 @@ var _useAdaptivity2 = require("../../hooks/useAdaptivity");
|
|
|
31
31
|
|
|
32
32
|
var _withAdaptivity = require("../../hoc/withAdaptivity");
|
|
33
33
|
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
var _Text = require("../Typography/Text/Text");
|
|
34
|
+
var _Headline = require("../Typography/Headline/Headline");
|
|
37
35
|
|
|
38
|
-
var
|
|
36
|
+
var _Footnote = require("../Typography/Footnote/Footnote");
|
|
39
37
|
|
|
40
|
-
var
|
|
38
|
+
var _Caption = require("../Typography/Caption/Caption");
|
|
41
39
|
|
|
42
40
|
var _excluded = ["badge", "before", "indicator", "children", "after", "description", "expandable", "multiline", "sizeY"];
|
|
43
41
|
|
|
@@ -45,22 +43,13 @@ var SimpleCellTypography = function SimpleCellTypography(props) {
|
|
|
45
43
|
var _useAdaptivity = (0, _useAdaptivity2.useAdaptivity)(),
|
|
46
44
|
sizeY = _useAdaptivity.sizeY;
|
|
47
45
|
|
|
48
|
-
var platform = (0, _usePlatform.usePlatform)();
|
|
49
|
-
|
|
50
46
|
if (sizeY === _withAdaptivity.SizeType.COMPACT) {
|
|
51
|
-
return (0, _jsxRuntime.createScopedElement)(
|
|
52
|
-
|
|
53
|
-
return (0, _jsxRuntime.createScopedElement)(_Headline.Headline, (0, _extends2.default)({
|
|
54
|
-
Component: "span",
|
|
55
|
-
weight: "3"
|
|
56
|
-
}, props));
|
|
57
|
-
} else {
|
|
58
|
-
return (0, _jsxRuntime.createScopedElement)(_Title.Title, (0, _extends2.default)({
|
|
59
|
-
Component: "span",
|
|
60
|
-
level: "3",
|
|
61
|
-
weight: "3"
|
|
47
|
+
return (0, _jsxRuntime.createScopedElement)(_Caption.Caption, (0, _extends2.default)({
|
|
48
|
+
level: "2"
|
|
62
49
|
}, props));
|
|
63
50
|
}
|
|
51
|
+
|
|
52
|
+
return (0, _jsxRuntime.createScopedElement)(_Footnote.Footnote, props);
|
|
64
53
|
};
|
|
65
54
|
|
|
66
55
|
var SimpleCellComponent = function SimpleCellComponent(_ref) {
|
|
@@ -79,24 +68,24 @@ var SimpleCellComponent = function SimpleCellComponent(_ref) {
|
|
|
79
68
|
var hasAfter = (0, _utils.hasReactNode)(after) || expandable && platform === _platform.IOS;
|
|
80
69
|
|
|
81
70
|
return (0, _jsxRuntime.createScopedElement)(_Tappable.Tappable, (0, _extends2.default)({}, restProps, {
|
|
82
|
-
|
|
83
|
-
vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)("SimpleCell", platform), {
|
|
84
|
-
"SimpleCell--exp": expandable,
|
|
85
|
-
"SimpleCell--mult": multiline
|
|
86
|
-
}, "SimpleCell--sizeY-".concat(sizeY))
|
|
71
|
+
vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)("SimpleCell", platform), expandable && "SimpleCell--exp", multiline && "SimpleCell--mult", "SimpleCell--sizeY-".concat(sizeY))
|
|
87
72
|
}), before, (0, _jsxRuntime.createScopedElement)("div", {
|
|
88
73
|
vkuiClass: "SimpleCell__main"
|
|
89
74
|
}, (0, _jsxRuntime.createScopedElement)("div", {
|
|
90
75
|
vkuiClass: "SimpleCell__content"
|
|
91
|
-
}, (0, _jsxRuntime.createScopedElement)(
|
|
92
|
-
|
|
76
|
+
}, (0, _jsxRuntime.createScopedElement)(_Headline.Headline, {
|
|
77
|
+
Component: "span",
|
|
78
|
+
vkuiClass: "SimpleCell__children",
|
|
79
|
+
weight: "3"
|
|
93
80
|
}, children), (0, _utils.hasReactNode)(badge) && (0, _jsxRuntime.createScopedElement)("span", {
|
|
94
81
|
vkuiClass: "SimpleCell__badge"
|
|
95
|
-
}, badge)), description && (0, _jsxRuntime.createScopedElement)(
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
82
|
+
}, badge)), description && (0, _jsxRuntime.createScopedElement)("div", {
|
|
83
|
+
vkuiClass: "SimpleCell__content"
|
|
84
|
+
}, (0, _jsxRuntime.createScopedElement)(SimpleCellTypography, {
|
|
85
|
+
vkuiClass: "SimpleCell__text SimpleCell__subtitle"
|
|
86
|
+
}, description))), (0, _utils.hasReactNode)(indicator) && (0, _jsxRuntime.createScopedElement)(_Headline.Headline, {
|
|
99
87
|
Component: "span",
|
|
88
|
+
weight: "3",
|
|
100
89
|
vkuiClass: "SimpleCell__indicator"
|
|
101
90
|
}, indicator), hasAfter && (0, _jsxRuntime.createScopedElement)("div", {
|
|
102
91
|
vkuiClass: "SimpleCell__after"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/SimpleCell/SimpleCell.tsx"],"names":["SimpleCellTypography","props","sizeY","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SimpleCell/SimpleCell.tsx"],"names":["SimpleCellTypography","props","sizeY","SizeType","COMPACT","SimpleCellComponent","badge","before","indicator","children","after","description","expandable","multiline","restProps","platform","hasAfter","IOS","SimpleCell","displayName"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAwCA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,KAAD,EAAsC;AACjE,uBAAkB,oCAAlB;AAAA,MAAQC,KAAR,kBAAQA,KAAR;;AAEA,MAAIA,KAAK,KAAKC,yBAASC,OAAvB,EAAgC;AAC9B,WAAO,qCAAC,gBAAD;AAAS,MAAA,KAAK,EAAC;AAAf,OAAuBH,KAAvB,EAAP;AACD;;AAED,SAAO,qCAAC,kBAAD,EAAcA,KAAd,CAAP;AACD,CARD;;AAUA,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAsB,OAWL;AAAA,MAVrBC,KAUqB,QAVrBA,KAUqB;AAAA,MATrBC,MASqB,QATrBA,MASqB;AAAA,MARrBC,SAQqB,QARrBA,SAQqB;AAAA,MAPrBC,QAOqB,QAPrBA,QAOqB;AAAA,MANrBC,KAMqB,QANrBA,KAMqB;AAAA,MALrBC,WAKqB,QALrBA,WAKqB;AAAA,MAJrBC,UAIqB,QAJrBA,UAIqB;AAAA,MAHrBC,SAGqB,QAHrBA,SAGqB;AAAA,MAFrBX,KAEqB,QAFrBA,KAEqB;AAAA,MADlBY,SACkB;AACrB,MAAMC,QAAQ,GAAG,+BAAjB;;AACA,MAAMC,QAAQ,GAAG,yBAAaN,KAAb,KAAwBE,UAAU,IAAIG,QAAQ,KAAKE,aAApE;;AAEA,SACE,qCAAC,kBAAD,6BACMH,SADN;AAEE,IAAA,SAAS,EAAE,4BACT,gCAAa,YAAb,EAA2BC,QAA3B,CADS,EAETH,UAAU,IAAI,iBAFL,EAGTC,SAAS,IAAI,kBAHJ,8BAIYX,KAJZ;AAFb,MASGK,MATH,EAUE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,qCAAC,kBAAD;AACE,IAAA,SAAS,EAAC,MADZ;AAEE,IAAA,SAAS,EAAC,sBAFZ;AAGE,IAAA,MAAM,EAAC;AAHT,KAKGE,QALH,CADF,EAQG,yBAAaH,KAAb,KACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAqCA,KAArC,CATJ,CADF,EAaGK,WAAW,IACV;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,qCAAC,oBAAD;AAAsB,IAAA,SAAS,EAAC;AAAhC,KACGA,WADH,CADF,CAdJ,CAVF,EA+BG,yBAAaH,SAAb,KACC,qCAAC,kBAAD;AAAU,IAAA,SAAS,EAAC,MAApB;AAA2B,IAAA,MAAM,EAAC,GAAlC;AAAsC,IAAA,SAAS,EAAC;AAAhD,KACGA,SADH,CAhCJ,EAoCGQ,QAAQ,IACP;AAAK,IAAA,SAAS,EAAC;AAAf,KACGN,KADH,EAEGE,UAAU,IAAIG,QAAQ,KAAKE,aAA3B,IAAkC,qCAAC,oBAAD,OAFrC,CArCJ,CADF;AA6CD,CA5DD;AA8DA;AACA;AACA;;;AACO,IAAMC,UAAU,GAAG,oCAAeb,mBAAf,EAAoC;AAAEH,EAAAA,KAAK,EAAE;AAAT,CAApC,CAAnB;;AAEPgB,UAAU,CAACC,WAAX,GAAyB,YAAzB","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { TappableProps, Tappable } from \"../Tappable/Tappable\";\nimport { Icon24Chevron } from \"@vkontakte/icons\";\nimport { IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { withAdaptivity, SizeType } from \"../../hoc/withAdaptivity\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { Footnote } from \"../Typography/Footnote/Footnote\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport \"./SimpleCell.css\";\n\nexport interface SimpleCellOwnProps extends HasComponent {\n /**\n * Иконка 28 или `<Avatar size={28|32|40|48|72} />`\n */\n before?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится справа от текста `children`.\n */\n badge?: React.ReactNode;\n /**\n * Контейнер для текста справа от `children`.\n */\n indicator?: React.ReactNode;\n /**\n * Иконка 24|28 или `<Switch />`. Располагается справа от `indicator`.\n */\n after?: React.ReactNode;\n /**\n * Контейнер для текста под `children`.\n */\n description?: React.ReactNode;\n /**\n * Убирает анимацию нажатия\n */\n disabled?: boolean;\n /**\n * В iOS добавляет chevron справа. Передавать `true`, если предполагается переход при клике по ячейке.\n */\n expandable?: boolean;\n multiline?: boolean;\n}\n\nexport interface SimpleCellProps extends SimpleCellOwnProps, TappableProps {}\n\ntype SimpleCellTypographyProps = React.HTMLAttributes<HTMLDivElement> &\n HasComponent;\n\nconst SimpleCellTypography = (props: SimpleCellTypographyProps) => {\n const { sizeY } = useAdaptivity();\n\n if (sizeY === SizeType.COMPACT) {\n return <Caption level=\"2\" {...props} />;\n }\n\n return <Footnote {...props} />;\n};\n\nconst SimpleCellComponent = ({\n badge,\n before,\n indicator,\n children,\n after,\n description,\n expandable,\n multiline,\n sizeY,\n ...restProps\n}: SimpleCellProps) => {\n const platform = usePlatform();\n const hasAfter = hasReactNode(after) || (expandable && platform === IOS);\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"SimpleCell\", platform),\n expandable && \"SimpleCell--exp\",\n multiline && \"SimpleCell--mult\",\n `SimpleCell--sizeY-${sizeY}`\n )}\n >\n {before}\n <div vkuiClass=\"SimpleCell__main\">\n <div vkuiClass=\"SimpleCell__content\">\n <Headline\n Component=\"span\"\n vkuiClass=\"SimpleCell__children\"\n weight=\"3\"\n >\n {children}\n </Headline>\n {hasReactNode(badge) && (\n <span vkuiClass=\"SimpleCell__badge\">{badge}</span>\n )}\n </div>\n {description && (\n <div vkuiClass=\"SimpleCell__content\">\n <SimpleCellTypography vkuiClass=\"SimpleCell__text SimpleCell__subtitle\">\n {description}\n </SimpleCellTypography>\n </div>\n )}\n </div>\n {hasReactNode(indicator) && (\n <Headline Component=\"span\" weight=\"3\" vkuiClass=\"SimpleCell__indicator\">\n {indicator}\n </Headline>\n )}\n {hasAfter && (\n <div vkuiClass=\"SimpleCell__after\">\n {after}\n {expandable && platform === IOS && <Icon24Chevron />}\n </div>\n )}\n </Tappable>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SimpleCell\n */\nexport const SimpleCell = withAdaptivity(SimpleCellComponent, { sizeY: true });\n\nSimpleCell.displayName = \"SimpleCell\";\n"],"file":"SimpleCell.js"}
|
|
@@ -23,15 +23,13 @@ var _Touch = require("../Touch/Touch");
|
|
|
23
23
|
|
|
24
24
|
var _classNames = require("../../lib/classNames");
|
|
25
25
|
|
|
26
|
-
var _getClassName = require("../../helpers/getClassName");
|
|
27
|
-
|
|
28
26
|
var _platform = require("../../lib/platform");
|
|
29
27
|
|
|
30
28
|
var _touch = require("../../lib/touch");
|
|
31
29
|
|
|
32
30
|
var _withAdaptivity = require("../../hoc/withAdaptivity");
|
|
33
31
|
|
|
34
|
-
var
|
|
32
|
+
var _Paragraph = require("../Typography/Paragraph/Paragraph");
|
|
35
33
|
|
|
36
34
|
var _Button = require("../Button/Button");
|
|
37
35
|
|
|
@@ -43,7 +41,7 @@ var _usePlatform = require("../../hooks/usePlatform");
|
|
|
43
41
|
|
|
44
42
|
var _useTimeout = require("../../hooks/useTimeout");
|
|
45
43
|
|
|
46
|
-
var _excluded = ["children", "layout", "action", "before", "after", "viewWidth", "duration", "onActionClick", "onClose"];
|
|
44
|
+
var _excluded = ["children", "layout", "action", "before", "after", "viewWidth", "duration", "onActionClick", "onClose", "mode"];
|
|
47
45
|
|
|
48
46
|
var SnackbarComponent = function SnackbarComponent(_ref) {
|
|
49
47
|
var children = _ref.children,
|
|
@@ -57,6 +55,8 @@ var SnackbarComponent = function SnackbarComponent(_ref) {
|
|
|
57
55
|
duration = _ref$duration === void 0 ? 4000 : _ref$duration,
|
|
58
56
|
onActionClick = _ref.onActionClick,
|
|
59
57
|
onClose = _ref.onClose,
|
|
58
|
+
_ref$mode = _ref.mode,
|
|
59
|
+
mode = _ref$mode === void 0 ? "default" : _ref$mode,
|
|
60
60
|
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
61
61
|
var platform = (0, _usePlatform.usePlatform)();
|
|
62
62
|
|
|
@@ -167,12 +167,7 @@ var SnackbarComponent = function SnackbarComponent(_ref) {
|
|
|
167
167
|
}, [closeTimeout]);
|
|
168
168
|
var resolvedLayout = after || isDesktop ? "vertical" : layout;
|
|
169
169
|
return (0, _jsxRuntime.createScopedElement)(_AppRootPortal.AppRootPortal, null, (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({}, restProps, {
|
|
170
|
-
|
|
171
|
-
vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)("Snackbar", platform), "Snackbar--l-".concat(resolvedLayout), {
|
|
172
|
-
"Snackbar--closing": closing,
|
|
173
|
-
"Snackbar--touched": touched,
|
|
174
|
-
"Snackbar--desktop": isDesktop
|
|
175
|
-
})
|
|
170
|
+
vkuiClass: (0, _classNames.classNames)("Snackbar", platform === _platform.IOS && "Snackbar--ios", "Snackbar--l-".concat(resolvedLayout), "Snackbar--".concat(mode), closing && "Snackbar--closing", touched && "Snackbar--touched", isDesktop && "Snackbar--desktop")
|
|
176
171
|
}), (0, _jsxRuntime.createScopedElement)(_Touch.Touch, {
|
|
177
172
|
vkuiClass: "Snackbar__in",
|
|
178
173
|
getRootRef: innerElRef,
|
|
@@ -186,12 +181,13 @@ var SnackbarComponent = function SnackbarComponent(_ref) {
|
|
|
186
181
|
vkuiClass: "Snackbar__before"
|
|
187
182
|
}, before), (0, _jsxRuntime.createScopedElement)("div", {
|
|
188
183
|
vkuiClass: "Snackbar__content"
|
|
189
|
-
}, (0, _jsxRuntime.createScopedElement)(
|
|
184
|
+
}, (0, _jsxRuntime.createScopedElement)(_Paragraph.Paragraph, {
|
|
190
185
|
vkuiClass: "Snackbar__content-text"
|
|
191
186
|
}, children), action && (0, _jsxRuntime.createScopedElement)(_Button.Button, {
|
|
192
187
|
align: "left",
|
|
193
188
|
hasHover: false,
|
|
194
189
|
mode: "tertiary",
|
|
190
|
+
appearance: mode === "dark" ? "overlay" : "accent",
|
|
195
191
|
size: "s",
|
|
196
192
|
vkuiClass: "Snackbar__action",
|
|
197
193
|
onClick: handleActionClick
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Snackbar/Snackbar.tsx"],"names":["SnackbarComponent","children","layout","action","before","after","viewWidth","duration","onActionClick","onClose","restProps","platform","waitTransitionFinish","React","useState","closing","setClosing","touched","setTouched","shiftXPercentRef","useRef","shiftXCurrentRef","bodyElRef","innerElRef","animationFrameRef","isDesktop","ViewWidth","SMALL_TABLET","transitionFinishDurationFallback","ANDROID","VKCOM","close","current","handleActionClick","e","closeTimeout","setBodyTransform","percent","cancelAnimationFrame","requestAnimationFrame","style","transform","onTouchStart","clear","onTouchMoveX","event","shiftX","originalEvent","preventDefault","offsetWidth","onTouchEnd","callback","shiftXCurrent","expectTranslateY","set","useEffect","resolvedLayout","displayName","Snackbar"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasPlatform } from \"../../types\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { ANDROID, VKCOM } from \"../../lib/platform\";\nimport { rubber } from \"../../lib/touch\";\nimport { withAdaptivity, ViewWidth } from \"../../hoc/withAdaptivity\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Button } from \"../Button/Button\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"./Snackbar.css\";\n\nexport interface SnackbarProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n AdaptivityProps {\n /**\n * Название кнопки действия в уведомлении\n */\n action?: React.ReactNode;\n\n /**\n * Будет вызвано при клике на кнопку действия\n */\n onActionClick?: (e: React.MouseEvent) => void;\n\n /**\n * Цветная иконка 24x24 пикселя\n */\n before?: React.ReactNode;\n /**\n * Контент в правой части, может быть `<Avatar size={32} />`\n */\n after?: React.ReactNode;\n /**\n * Варианты расположения кнопки\n */\n layout?: \"vertical\" | \"horizontal\";\n /**\n * Время в миллисекундах, через которое плашка скроется\n */\n duration?: number;\n /**\n * Обработчик закрытия уведомления\n */\n onClose: () => void;\n}\n\nconst SnackbarComponent = ({\n children,\n layout = \"horizontal\",\n action,\n before,\n after,\n viewWidth,\n duration = 4000,\n onActionClick,\n onClose,\n ...restProps\n}: SnackbarProps & AdaptivityContextInterface) => {\n const platform = usePlatform();\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n\n const [closing, setClosing] = React.useState(false);\n const [touched, setTouched] = React.useState(false);\n\n const shiftXPercentRef = React.useRef<number>(0);\n const shiftXCurrentRef = React.useRef<number>(0);\n\n const bodyElRef = React.useRef<HTMLDivElement | null>(null);\n const innerElRef = React.useRef<HTMLDivElement | null>(null);\n\n const animationFrameRef = React.useRef<ReturnType<\n typeof requestAnimationFrame\n > | null>(null);\n\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET;\n const transitionFinishDurationFallback =\n platform === ANDROID || platform === VKCOM ? 400 : 320;\n\n const close = () => {\n setClosing(true);\n waitTransitionFinish(\n innerElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n };\n\n const handleActionClick: React.MouseEventHandler<HTMLElement> = (e) => {\n close();\n\n if (action && typeof onActionClick === \"function\") {\n onActionClick(e);\n }\n };\n\n const closeTimeout = useTimeout(close, duration);\n\n const setBodyTransform = (percent: number) => {\n if (animationFrameRef.current !== null) {\n cancelAnimationFrame(animationFrameRef.current);\n }\n animationFrameRef.current = requestAnimationFrame(() => {\n if (bodyElRef.current) {\n bodyElRef.current.style.transform = `translate3d(${percent}%, 0, 0)`;\n }\n });\n };\n\n const onTouchStart = closeTimeout.clear;\n\n const onTouchMoveX = (event: TouchEvent) => {\n const { shiftX, originalEvent } = event;\n originalEvent.preventDefault();\n\n if (!touched) {\n setTouched(true);\n }\n\n shiftXPercentRef.current =\n (shiftX / (bodyElRef.current?.offsetWidth ?? 0)) * 100;\n shiftXCurrentRef.current = rubber(\n shiftXPercentRef.current,\n 72,\n 1.2,\n platform === ANDROID || platform === VKCOM\n );\n\n setBodyTransform(shiftXCurrentRef.current);\n };\n\n const onTouchEnd = (e: TouchEvent) => {\n let callback: VoidFunction | undefined;\n\n if (touched) {\n let shiftXCurrent = shiftXCurrentRef.current;\n const expectTranslateY = (shiftXCurrent / e.duration) * 240 * 0.6;\n shiftXCurrent = shiftXCurrent + expectTranslateY;\n\n if (isDesktop && shiftXCurrent <= -50) {\n closeTimeout.clear();\n waitTransitionFinish(\n bodyElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n setBodyTransform(-120);\n } else if (!isDesktop && shiftXCurrent >= 50) {\n closeTimeout.clear();\n waitTransitionFinish(\n bodyElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n setBodyTransform(120);\n } else {\n callback = () => {\n closeTimeout.set();\n setBodyTransform(0);\n };\n }\n } else {\n closeTimeout.set();\n }\n\n setTouched(false);\n callback && requestAnimationFrame(callback);\n };\n\n React.useEffect(() => closeTimeout.set(), [closeTimeout]);\n\n const resolvedLayout = after || isDesktop ? \"vertical\" : layout;\n\n return (\n <AppRootPortal>\n <div\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"Snackbar\", platform),\n `Snackbar--l-${resolvedLayout}`,\n {\n \"Snackbar--closing\": closing,\n \"Snackbar--touched\": touched,\n \"Snackbar--desktop\": isDesktop,\n }\n )}\n >\n <Touch\n vkuiClass=\"Snackbar__in\"\n getRootRef={innerElRef}\n onStart={onTouchStart}\n onMoveX={onTouchMoveX}\n onEnd={onTouchEnd}\n >\n <div vkuiClass=\"Snackbar__body\" ref={bodyElRef}>\n {before && <div vkuiClass=\"Snackbar__before\">{before}</div>}\n\n <div vkuiClass=\"Snackbar__content\">\n <Text vkuiClass=\"Snackbar__content-text\">{children}</Text>\n\n {action && (\n <Button\n align=\"left\"\n hasHover={false}\n mode=\"tertiary\"\n size=\"s\"\n vkuiClass=\"Snackbar__action\"\n onClick={handleActionClick}\n >\n {action}\n </Button>\n )}\n </div>\n\n {after && <div vkuiClass=\"Snackbar__after\">{after}</div>}\n </div>\n </Touch>\n </div>\n </AppRootPortal>\n );\n};\n\nSnackbarComponent.displayName = \"Snackbar\";\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Snackbar\n */\nexport const Snackbar = withAdaptivity(SnackbarComponent, {\n viewWidth: true,\n});\n"],"file":"Snackbar.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Snackbar/Snackbar.tsx"],"names":["SnackbarComponent","children","layout","action","before","after","viewWidth","duration","onActionClick","onClose","mode","restProps","platform","waitTransitionFinish","React","useState","closing","setClosing","touched","setTouched","shiftXPercentRef","useRef","shiftXCurrentRef","bodyElRef","innerElRef","animationFrameRef","isDesktop","ViewWidth","SMALL_TABLET","transitionFinishDurationFallback","ANDROID","VKCOM","close","current","handleActionClick","e","closeTimeout","setBodyTransform","percent","cancelAnimationFrame","requestAnimationFrame","style","transform","onTouchStart","clear","onTouchMoveX","event","shiftX","originalEvent","preventDefault","offsetWidth","onTouchEnd","callback","shiftXCurrent","expectTranslateY","set","useEffect","resolvedLayout","IOS","displayName","Snackbar"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AA+CA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,OAYwB;AAAA,MAXhDC,QAWgD,QAXhDA,QAWgD;AAAA,yBAVhDC,MAUgD;AAAA,MAVhDA,MAUgD,4BAVvC,YAUuC;AAAA,MAThDC,MASgD,QAThDA,MASgD;AAAA,MARhDC,MAQgD,QARhDA,MAQgD;AAAA,MAPhDC,KAOgD,QAPhDA,KAOgD;AAAA,MANhDC,SAMgD,QANhDA,SAMgD;AAAA,2BALhDC,QAKgD;AAAA,MALhDA,QAKgD,8BALrC,IAKqC;AAAA,MAJhDC,aAIgD,QAJhDA,aAIgD;AAAA,MAHhDC,OAGgD,QAHhDA,OAGgD;AAAA,uBAFhDC,IAEgD;AAAA,MAFhDA,IAEgD,0BAFzC,SAEyC;AAAA,MAD7CC,SAC6C;AAChD,MAAMC,QAAQ,GAAG,+BAAjB;;AAEA,8BAAiC,uDAAjC;AAAA,MAAQC,oBAAR,yBAAQA,oBAAR;;AAEA,wBAA8BC,KAAK,CAACC,QAAN,CAAe,KAAf,CAA9B;AAAA;AAAA,MAAOC,OAAP;AAAA,MAAgBC,UAAhB;;AACA,yBAA8BH,KAAK,CAACC,QAAN,CAAe,KAAf,CAA9B;AAAA;AAAA,MAAOG,OAAP;AAAA,MAAgBC,UAAhB;;AAEA,MAAMC,gBAAgB,GAAGN,KAAK,CAACO,MAAN,CAAqB,CAArB,CAAzB;AACA,MAAMC,gBAAgB,GAAGR,KAAK,CAACO,MAAN,CAAqB,CAArB,CAAzB;AAEA,MAAME,SAAS,GAAGT,KAAK,CAACO,MAAN,CAAoC,IAApC,CAAlB;AACA,MAAMG,UAAU,GAAGV,KAAK,CAACO,MAAN,CAAoC,IAApC,CAAnB;AAEA,MAAMI,iBAAiB,GAAGX,KAAK,CAACO,MAAN,CAEhB,IAFgB,CAA1B;AAIA,MAAMK,SAAS,GAAGpB,SAAS,IAAIqB,0BAAUC,YAAzC;AACA,MAAMC,gCAAgC,GACpCjB,QAAQ,KAAKkB,iBAAb,IAAwBlB,QAAQ,KAAKmB,eAArC,GAA6C,GAA7C,GAAmD,GADrD;;AAGA,MAAMC,KAAK,GAAG,SAARA,KAAQ,GAAM;AAClBf,IAAAA,UAAU,CAAC,IAAD,CAAV;AACAJ,IAAAA,oBAAoB,CAClBW,UAAU,CAACS,OADO,EAElB,YAAM;AACJxB,MAAAA,OAAO;AACR,KAJiB,EAKlBoB,gCALkB,CAApB;AAOD,GATD;;AAWA,MAAMK,iBAAuD,GAAG,SAA1DA,iBAA0D,CAACC,CAAD,EAAO;AACrEH,IAAAA,KAAK;;AAEL,QAAI7B,MAAM,IAAI,OAAOK,aAAP,KAAyB,UAAvC,EAAmD;AACjDA,MAAAA,aAAa,CAAC2B,CAAD,CAAb;AACD;AACF,GAND;;AAQA,MAAMC,YAAY,GAAG,4BAAWJ,KAAX,EAAkBzB,QAAlB,CAArB;;AAEA,MAAM8B,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,OAAD,EAAqB;AAC5C,QAAIb,iBAAiB,CAACQ,OAAlB,KAA8B,IAAlC,EAAwC;AACtCM,MAAAA,oBAAoB,CAACd,iBAAiB,CAACQ,OAAnB,CAApB;AACD;;AACDR,IAAAA,iBAAiB,CAACQ,OAAlB,GAA4BO,qBAAqB,CAAC,YAAM;AACtD,UAAIjB,SAAS,CAACU,OAAd,EAAuB;AACrBV,QAAAA,SAAS,CAACU,OAAV,CAAkBQ,KAAlB,CAAwBC,SAAxB,yBAAmDJ,OAAnD;AACD;AACF,KAJgD,CAAjD;AAKD,GATD;;AAWA,MAAMK,YAAY,GAAGP,YAAY,CAACQ,KAAlC;;AAEA,MAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAAuB;AAAA;;AAC1C,QAAQC,MAAR,GAAkCD,KAAlC,CAAQC,MAAR;AAAA,QAAgBC,aAAhB,GAAkCF,KAAlC,CAAgBE,aAAhB;AACAA,IAAAA,aAAa,CAACC,cAAd;;AAEA,QAAI,CAAC/B,OAAL,EAAc;AACZC,MAAAA,UAAU,CAAC,IAAD,CAAV;AACD;;AAEDC,IAAAA,gBAAgB,CAACa,OAAjB,GACGc,MAAM,mDAAIxB,SAAS,CAACU,OAAd,uDAAI,mBAAmBiB,WAAvB,yEAAsC,CAAtC,CAAP,GAAmD,GADrD;AAEA5B,IAAAA,gBAAgB,CAACW,OAAjB,GAA2B,mBACzBb,gBAAgB,CAACa,OADQ,EAEzB,EAFyB,EAGzB,GAHyB,EAIzBrB,QAAQ,KAAKkB,iBAAb,IAAwBlB,QAAQ,KAAKmB,eAJZ,CAA3B;AAOAM,IAAAA,gBAAgB,CAACf,gBAAgB,CAACW,OAAlB,CAAhB;AACD,GAlBD;;AAoBA,MAAMkB,UAAU,GAAG,SAAbA,UAAa,CAAChB,CAAD,EAAmB;AACpC,QAAIiB,QAAJ;;AAEA,QAAIlC,OAAJ,EAAa;AACX,UAAImC,aAAa,GAAG/B,gBAAgB,CAACW,OAArC;AACA,UAAMqB,gBAAgB,GAAID,aAAa,GAAGlB,CAAC,CAAC5B,QAAnB,GAA+B,GAA/B,GAAqC,GAA9D;AACA8C,MAAAA,aAAa,GAAGA,aAAa,GAAGC,gBAAhC;;AAEA,UAAI5B,SAAS,IAAI2B,aAAa,IAAI,CAAC,EAAnC,EAAuC;AACrCjB,QAAAA,YAAY,CAACQ,KAAb;AACA/B,QAAAA,oBAAoB,CAClBU,SAAS,CAACU,OADQ,EAElB,YAAM;AACJxB,UAAAA,OAAO;AACR,SAJiB,EAKlBoB,gCALkB,CAApB;AAOAQ,QAAAA,gBAAgB,CAAC,CAAC,GAAF,CAAhB;AACD,OAVD,MAUO,IAAI,CAACX,SAAD,IAAc2B,aAAa,IAAI,EAAnC,EAAuC;AAC5CjB,QAAAA,YAAY,CAACQ,KAAb;AACA/B,QAAAA,oBAAoB,CAClBU,SAAS,CAACU,OADQ,EAElB,YAAM;AACJxB,UAAAA,OAAO;AACR,SAJiB,EAKlBoB,gCALkB,CAApB;AAOAQ,QAAAA,gBAAgB,CAAC,GAAD,CAAhB;AACD,OAVM,MAUA;AACLe,QAAAA,QAAQ,GAAG,oBAAM;AACfhB,UAAAA,YAAY,CAACmB,GAAb;AACAlB,UAAAA,gBAAgB,CAAC,CAAD,CAAhB;AACD,SAHD;AAID;AACF,KA/BD,MA+BO;AACLD,MAAAA,YAAY,CAACmB,GAAb;AACD;;AAEDpC,IAAAA,UAAU,CAAC,KAAD,CAAV;AACAiC,IAAAA,QAAQ,IAAIZ,qBAAqB,CAACY,QAAD,CAAjC;AACD,GAxCD;;AA0CAtC,EAAAA,KAAK,CAAC0C,SAAN,CAAgB;AAAA,WAAMpB,YAAY,CAACmB,GAAb,EAAN;AAAA,GAAhB,EAA0C,CAACnB,YAAD,CAA1C;AAEA,MAAMqB,cAAc,GAAGpD,KAAK,IAAIqB,SAAT,GAAqB,UAArB,GAAkCxB,MAAzD;AAEA,SACE,qCAAC,4BAAD,QACE,uEACMS,SADN;AAEE,IAAA,SAAS,EAAE,4BACT,UADS,EAETC,QAAQ,KAAK8C,aAAb,IAAoB,eAFX,wBAGMD,cAHN,uBAII/C,IAJJ,GAKTM,OAAO,IAAI,mBALF,EAMTE,OAAO,IAAI,mBANF,EAOTQ,SAAS,IAAI,mBAPJ;AAFb,MAYE,qCAAC,YAAD;AACE,IAAA,SAAS,EAAC,cADZ;AAEE,IAAA,UAAU,EAAEF,UAFd;AAGE,IAAA,OAAO,EAAEmB,YAHX;AAIE,IAAA,OAAO,EAAEE,YAJX;AAKE,IAAA,KAAK,EAAEM;AALT,KAOE;AAAK,IAAA,SAAS,EAAC,gBAAf;AAAgC,IAAA,GAAG,EAAE5B;AAArC,KACGnB,MAAM,IAAI;AAAK,IAAA,SAAS,EAAC;AAAf,KAAmCA,MAAnC,CADb,EAGE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,qCAAC,oBAAD;AAAW,IAAA,SAAS,EAAC;AAArB,KACGH,QADH,CADF,EAKGE,MAAM,IACL,qCAAC,cAAD;AACE,IAAA,KAAK,EAAC,MADR;AAEE,IAAA,QAAQ,EAAE,KAFZ;AAGE,IAAA,IAAI,EAAC,UAHP;AAIE,IAAA,UAAU,EAAEO,IAAI,KAAK,MAAT,GAAkB,SAAlB,GAA8B,QAJ5C;AAKE,IAAA,IAAI,EAAC,GALP;AAME,IAAA,SAAS,EAAC,kBANZ;AAOE,IAAA,OAAO,EAAEwB;AAPX,KASG/B,MATH,CANJ,CAHF,EAuBGE,KAAK,IAAI;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCA,KAAlC,CAvBZ,CAPF,CAZF,CADF,CADF;AAkDD,CAxLD;;AA0LAL,iBAAiB,CAAC2D,WAAlB,GAAgC,UAAhC;AAEA;AACA;AACA;;AACO,IAAMC,QAAQ,GAAG,oCAAe5D,iBAAf,EAAkC;AACxDM,EAAAA,SAAS,EAAE;AAD6C,CAAlC,CAAjB","sourcesContent":["import * as React from \"react\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasPlatform } from \"../../types\";\nimport { ANDROID, IOS, VKCOM } from \"../../lib/platform\";\nimport { rubber } from \"../../lib/touch\";\nimport { withAdaptivity, ViewWidth } from \"../../hoc/withAdaptivity\";\nimport { Paragraph } from \"../Typography/Paragraph/Paragraph\";\nimport { Button } from \"../Button/Button\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"./Snackbar.css\";\n\nexport interface SnackbarProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n AdaptivityProps {\n /**\n * Название кнопки действия в уведомлении\n */\n action?: React.ReactNode;\n\n /**\n * Будет вызвано при клике на кнопку действия\n */\n onActionClick?: (e: React.MouseEvent) => void;\n\n /**\n * Цветная иконка 24x24 пикселя\n */\n before?: React.ReactNode;\n /**\n * Контент в правой части, может быть `<Avatar size={32} />`\n */\n after?: React.ReactNode;\n /**\n * Варианты расположения кнопки\n */\n layout?: \"vertical\" | \"horizontal\";\n /**\n * Время в миллисекундах, через которое плашка скроется\n */\n duration?: number;\n /**\n * Обработчик закрытия уведомления\n */\n onClose: () => void;\n /**\n * Задает стиль снекбара\n */\n mode?: \"default\" | \"dark\";\n}\n\nconst SnackbarComponent = ({\n children,\n layout = \"horizontal\",\n action,\n before,\n after,\n viewWidth,\n duration = 4000,\n onActionClick,\n onClose,\n mode = \"default\",\n ...restProps\n}: SnackbarProps & AdaptivityContextInterface) => {\n const platform = usePlatform();\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n\n const [closing, setClosing] = React.useState(false);\n const [touched, setTouched] = React.useState(false);\n\n const shiftXPercentRef = React.useRef<number>(0);\n const shiftXCurrentRef = React.useRef<number>(0);\n\n const bodyElRef = React.useRef<HTMLDivElement | null>(null);\n const innerElRef = React.useRef<HTMLDivElement | null>(null);\n\n const animationFrameRef = React.useRef<ReturnType<\n typeof requestAnimationFrame\n > | null>(null);\n\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET;\n const transitionFinishDurationFallback =\n platform === ANDROID || platform === VKCOM ? 400 : 320;\n\n const close = () => {\n setClosing(true);\n waitTransitionFinish(\n innerElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n };\n\n const handleActionClick: React.MouseEventHandler<HTMLElement> = (e) => {\n close();\n\n if (action && typeof onActionClick === \"function\") {\n onActionClick(e);\n }\n };\n\n const closeTimeout = useTimeout(close, duration);\n\n const setBodyTransform = (percent: number) => {\n if (animationFrameRef.current !== null) {\n cancelAnimationFrame(animationFrameRef.current);\n }\n animationFrameRef.current = requestAnimationFrame(() => {\n if (bodyElRef.current) {\n bodyElRef.current.style.transform = `translate3d(${percent}%, 0, 0)`;\n }\n });\n };\n\n const onTouchStart = closeTimeout.clear;\n\n const onTouchMoveX = (event: TouchEvent) => {\n const { shiftX, originalEvent } = event;\n originalEvent.preventDefault();\n\n if (!touched) {\n setTouched(true);\n }\n\n shiftXPercentRef.current =\n (shiftX / (bodyElRef.current?.offsetWidth ?? 0)) * 100;\n shiftXCurrentRef.current = rubber(\n shiftXPercentRef.current,\n 72,\n 1.2,\n platform === ANDROID || platform === VKCOM\n );\n\n setBodyTransform(shiftXCurrentRef.current);\n };\n\n const onTouchEnd = (e: TouchEvent) => {\n let callback: VoidFunction | undefined;\n\n if (touched) {\n let shiftXCurrent = shiftXCurrentRef.current;\n const expectTranslateY = (shiftXCurrent / e.duration) * 240 * 0.6;\n shiftXCurrent = shiftXCurrent + expectTranslateY;\n\n if (isDesktop && shiftXCurrent <= -50) {\n closeTimeout.clear();\n waitTransitionFinish(\n bodyElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n setBodyTransform(-120);\n } else if (!isDesktop && shiftXCurrent >= 50) {\n closeTimeout.clear();\n waitTransitionFinish(\n bodyElRef.current,\n () => {\n onClose();\n },\n transitionFinishDurationFallback\n );\n setBodyTransform(120);\n } else {\n callback = () => {\n closeTimeout.set();\n setBodyTransform(0);\n };\n }\n } else {\n closeTimeout.set();\n }\n\n setTouched(false);\n callback && requestAnimationFrame(callback);\n };\n\n React.useEffect(() => closeTimeout.set(), [closeTimeout]);\n\n const resolvedLayout = after || isDesktop ? \"vertical\" : layout;\n\n return (\n <AppRootPortal>\n <div\n {...restProps}\n vkuiClass={classNames(\n \"Snackbar\",\n platform === IOS && \"Snackbar--ios\",\n `Snackbar--l-${resolvedLayout}`,\n `Snackbar--${mode}`,\n closing && \"Snackbar--closing\",\n touched && \"Snackbar--touched\",\n isDesktop && \"Snackbar--desktop\"\n )}\n >\n <Touch\n vkuiClass=\"Snackbar__in\"\n getRootRef={innerElRef}\n onStart={onTouchStart}\n onMoveX={onTouchMoveX}\n onEnd={onTouchEnd}\n >\n <div vkuiClass=\"Snackbar__body\" ref={bodyElRef}>\n {before && <div vkuiClass=\"Snackbar__before\">{before}</div>}\n\n <div vkuiClass=\"Snackbar__content\">\n <Paragraph vkuiClass=\"Snackbar__content-text\">\n {children}\n </Paragraph>\n\n {action && (\n <Button\n align=\"left\"\n hasHover={false}\n mode=\"tertiary\"\n appearance={mode === \"dark\" ? \"overlay\" : \"accent\"}\n size=\"s\"\n vkuiClass=\"Snackbar__action\"\n onClick={handleActionClick}\n >\n {action}\n </Button>\n )}\n </div>\n\n {after && <div vkuiClass=\"Snackbar__after\">{after}</div>}\n </div>\n </Touch>\n </div>\n </AppRootPortal>\n );\n};\n\nSnackbarComponent.displayName = \"Snackbar\";\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Snackbar\n */\nexport const Snackbar = withAdaptivity(SnackbarComponent, {\n viewWidth: true,\n});\n"],"file":"Snackbar.js"}
|