@vkontakte/vkui 4.33.2 → 4.34.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/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +573 -501
- package/.cache/ts/src/components/ActionSheet/ActionSheet.d.ts +1 -1
- package/.cache/ts/src/components/ActionSheet/ActionSheetDropdown.d.ts +2 -2
- package/.cache/ts/src/components/ActionSheet/ActionSheetDropdownDesktop.d.ts +2 -2
- package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +1 -1
- package/.cache/ts/src/components/AdaptivityProvider/AdaptivityProvider.d.ts +3 -1
- package/.cache/ts/src/components/Alert/Alert.d.ts +1 -1
- package/.cache/ts/src/components/AppRoot/AppRoot.d.ts +7 -1
- package/.cache/ts/src/components/AppRoot/AppRootContext.d.ts +1 -0
- package/.cache/ts/src/components/AppRoot/AppRootPortal.d.ts +4 -2
- package/.cache/ts/src/components/AppRoot/ScrollContext.d.ts +7 -6
- package/.cache/ts/src/components/AppearanceProvider/AppearanceProvider.d.ts +2 -1
- package/.cache/ts/src/components/Avatar/Avatar.d.ts +1 -1
- package/.cache/ts/src/components/Badge/Badge.d.ts +1 -1
- package/.cache/ts/src/components/BaseGallery/helpers.d.ts +2 -2
- package/.cache/ts/src/components/BaseGallery/types.d.ts +1 -1
- package/.cache/ts/src/components/Button/Button.d.ts +1 -1
- package/.cache/ts/src/components/ButtonGroup/ButtonGroup.d.ts +3 -3
- package/.cache/ts/src/components/Calendar/Calendar.d.ts +1 -1
- package/.cache/ts/src/components/CalendarDay/CalendarDay.d.ts +1 -1
- package/.cache/ts/src/components/CalendarDays/CalendarDays.d.ts +1 -1
- package/.cache/ts/src/components/CalendarHeader/CalendarHeader.d.ts +1 -1
- package/.cache/ts/src/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/.cache/ts/src/components/CalendarTime/CalendarTime.d.ts +2 -2
- package/.cache/ts/src/components/Card/Card.d.ts +1 -1
- package/.cache/ts/src/components/CardGrid/CardGrid.d.ts +8 -2
- package/.cache/ts/src/components/CardScroll/CardScroll.d.ts +1 -1
- package/.cache/ts/src/components/Cell/Cell.d.ts +2 -2
- package/.cache/ts/src/components/Cell/CellCheckbox/CellCheckbox.d.ts +1 -1
- package/.cache/ts/src/components/Cell/CellDragger/CellDragger.d.ts +1 -1
- package/.cache/ts/src/components/CellButton/CellButton.d.ts +2 -2
- package/.cache/ts/src/components/Checkbox/Checkbox.d.ts +2 -2
- package/.cache/ts/src/components/Chip/Chip.d.ts +1 -1
- package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +1 -1
- package/.cache/ts/src/components/ClickPopper/ClickPopper.d.ts +1 -1
- package/.cache/ts/src/components/ConfigProvider/ConfigProvider.d.ts +2 -1
- package/.cache/ts/src/components/CustomScrollView/CustomScrollView.d.ts +4 -3
- package/.cache/ts/src/components/CustomScrollView/useTrackerVisibility.d.ts +43 -0
- package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +4 -3
- package/.cache/ts/src/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +4 -3
- package/.cache/ts/src/components/CustomSelectOption/CustomSelectOption.d.ts +1 -1
- package/.cache/ts/src/components/DateInput/DateInput.d.ts +1 -1
- package/.cache/ts/src/components/DatePicker/DatePicker.d.ts +1 -1
- package/.cache/ts/src/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/.cache/ts/src/components/Div/Div.d.ts +1 -1
- package/.cache/ts/src/components/Dropdown/Dropdown.d.ts +2 -2
- package/.cache/ts/src/components/DropdownIcon/DropdownIcon.d.ts +1 -1
- package/.cache/ts/src/components/Epic/Epic.d.ts +1 -1
- package/.cache/ts/src/components/Epic/ScrollSaver.d.ts +2 -1
- package/.cache/ts/src/components/File/File.d.ts +1 -1
- package/.cache/ts/src/components/FixedLayout/FixedLayout.d.ts +1 -1
- package/.cache/ts/src/components/FocusTrap/FocusTrap.d.ts +1 -1
- package/.cache/ts/src/components/Footer/Footer.d.ts +1 -1
- package/.cache/ts/src/components/FormField/FormField.d.ts +3 -3
- package/.cache/ts/src/components/FormItem/FormItem.d.ts +1 -1
- package/.cache/ts/src/components/FormLayout/FormLayout.d.ts +1 -1
- package/.cache/ts/src/components/FormLayoutGroup/FormLayoutGroup.d.ts +1 -1
- package/.cache/ts/src/components/FormStatus/FormStatus.d.ts +1 -1
- package/.cache/ts/src/components/Gradient/Gradient.d.ts +7 -1
- package/.cache/ts/src/components/Group/Group.d.ts +2 -1
- package/.cache/ts/src/components/Header/Header.d.ts +1 -1
- package/.cache/ts/src/components/HorizontalCell/HorizontalCell.d.ts +1 -1
- package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +2 -1
- package/.cache/ts/src/components/HorizontalScroll/HorizontalScrollArrow.d.ts +4 -4
- package/.cache/ts/src/components/HoverPopper/HoverPopper.d.ts +1 -1
- package/.cache/ts/src/components/IconButton/IconButton.d.ts +1 -1
- package/.cache/ts/src/components/InfoRow/InfoRow.d.ts +1 -1
- package/.cache/ts/src/components/Input/Input.d.ts +1 -1
- package/.cache/ts/src/components/InputLike/InputLike.d.ts +4 -1
- package/.cache/ts/src/components/InputLike/InputLikeDivider.d.ts +1 -1
- package/.cache/ts/src/components/Link/Link.d.ts +8 -3
- package/.cache/ts/src/components/List/List.d.ts +1 -1
- package/.cache/ts/src/components/MiniInfoCell/MiniInfoCell.d.ts +1 -1
- package/.cache/ts/src/components/ModalCard/ModalCard.d.ts +1 -1
- package/.cache/ts/src/components/ModalCardBase/ModalCardBase.d.ts +1 -1
- package/.cache/ts/src/components/ModalDismissButton/ModalDismissButton.d.ts +1 -1
- package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +1 -1
- package/.cache/ts/src/components/ModalRoot/ModalRoot.d.ts +2 -1
- package/.cache/ts/src/components/ModalRoot/ModalRootAdaptive.d.ts +2 -1
- package/.cache/ts/src/components/ModalRoot/ModalRootDesktop.d.ts +2 -1
- package/.cache/ts/src/components/ModalRoot/useModalManager.d.ts +2 -1
- package/.cache/ts/src/components/NativeSelect/NativeSelect.d.ts +1 -1
- package/.cache/ts/src/components/NavTransitionContext/NavTransitionContext.d.ts +1 -1
- package/.cache/ts/src/components/Pagination/Pagination.d.ts +1 -1
- package/.cache/ts/src/components/Panel/Panel.d.ts +1 -1
- package/.cache/ts/src/components/PanelHeader/PanelHeader.d.ts +1 -1
- package/.cache/ts/src/components/PanelHeaderBack/PanelHeaderBack.d.ts +2 -2
- package/.cache/ts/src/components/PanelHeaderButton/PanelHeaderButton.d.ts +1 -1
- package/.cache/ts/src/components/PanelHeaderClose/PanelHeaderClose.d.ts +2 -2
- package/.cache/ts/src/components/PanelHeaderContent/PanelHeaderContent.d.ts +1 -1
- package/.cache/ts/src/components/PanelHeaderContext/PanelHeaderContext.d.ts +1 -1
- package/.cache/ts/src/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +2 -2
- package/.cache/ts/src/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +2 -2
- package/.cache/ts/src/components/Placeholder/Placeholder.d.ts +1 -1
- package/.cache/ts/src/components/PopoutRoot/PopoutRoot.d.ts +5 -2
- package/.cache/ts/src/components/PopoutWrapper/PopoutWrapper.d.ts +1 -1
- package/.cache/ts/src/components/Popper/Popper.d.ts +6 -1
- package/.cache/ts/src/components/Progress/Progress.d.ts +1 -1
- package/.cache/ts/src/components/PromoBanner/PromoBanner.d.ts +1 -1
- package/.cache/ts/src/components/Radio/Radio.d.ts +1 -1
- package/.cache/ts/src/components/RadioGroup/RadioGroup.d.ts +1 -1
- package/.cache/ts/src/components/RangeSlider/RangeSlider.d.ts +2 -2
- package/.cache/ts/src/components/RangeSlider/UniversalSlider.d.ts +1 -1
- package/.cache/ts/src/components/Removable/Removable.d.ts +1 -1
- package/.cache/ts/src/components/RichCell/RichCell.d.ts +18 -9
- package/.cache/ts/src/components/RichTooltip/RichTooltip.d.ts +2 -2
- package/.cache/ts/src/components/Root/Root.d.ts +1 -1
- package/.cache/ts/src/components/ScreenSpinner/Icon48CancelCircle.d.ts +3 -0
- package/.cache/ts/src/components/ScreenSpinner/Icon48DoneOutline.d.ts +3 -0
- package/.cache/ts/src/components/ScreenSpinner/ScreenSpinner.d.ts +5 -3
- package/.cache/ts/src/components/Search/Search.d.ts +1 -1
- package/.cache/ts/src/components/SegmentedControl/SegmentedControl.d.ts +1 -1
- package/.cache/ts/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +2 -2
- package/.cache/ts/src/components/Select/Select.d.ts +2 -2
- package/.cache/ts/src/components/SelectMimicry/SelectMimicry.d.ts +1 -1
- package/.cache/ts/src/components/Separator/Separator.d.ts +2 -2
- package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +1 -1
- package/.cache/ts/src/components/SimpleCheckbox/SimpleCheckbox.d.ts +2 -2
- package/.cache/ts/src/components/SliderSwitch/SliderSwitch.d.ts +1 -1
- package/.cache/ts/src/components/SliderSwitch/SliderSwitchButton.d.ts +1 -1
- package/.cache/ts/src/components/Snackbar/Snackbar.d.ts +2 -2
- package/.cache/ts/src/components/Spacing/Spacing.d.ts +1 -1
- package/.cache/ts/src/components/SplitCol/SplitCol.d.ts +1 -1
- package/.cache/ts/src/components/SplitLayout/SplitLayout.d.ts +1 -1
- package/.cache/ts/src/components/SubnavigationBar/SubnavigationBar.d.ts +1 -1
- package/.cache/ts/src/components/SubnavigationButton/SubnavigationButton.d.ts +1 -1
- package/.cache/ts/src/components/Switch/Switch.d.ts +2 -2
- package/.cache/ts/src/components/Tabbar/Tabbar.d.ts +1 -1
- package/.cache/ts/src/components/TabbarItem/TabbarItem.d.ts +1 -1
- package/.cache/ts/src/components/Tabs/Tabs.d.ts +1 -1
- package/.cache/ts/src/components/TabsItem/TabsItem.d.ts +1 -1
- package/.cache/ts/src/components/Tappable/Tappable.d.ts +1 -1
- package/.cache/ts/src/components/TextTooltip/TextTooltip.d.ts +1 -1
- package/.cache/ts/src/components/Textarea/Textarea.d.ts +1 -1
- package/.cache/ts/src/components/Tooltip/Tooltip.d.ts +3 -2
- package/.cache/ts/src/components/Touch/Touch.d.ts +1 -1
- package/.cache/ts/src/components/Typography/Caption/Caption.d.ts +1 -1
- package/.cache/ts/src/components/Typography/Headline/Headline.d.ts +1 -1
- package/.cache/ts/src/components/Typography/Paragraph/Paragraph.d.ts +1 -1
- package/.cache/ts/src/components/Typography/Subhead/Subhead.d.ts +1 -1
- package/.cache/ts/src/components/Typography/Text/Text.d.ts +1 -1
- package/.cache/ts/src/components/Typography/Title/Title.d.ts +1 -1
- package/.cache/ts/src/components/View/View.d.ts +1 -1
- package/.cache/ts/src/components/View/ViewInfinite.d.ts +1 -1
- package/.cache/ts/src/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +1 -1
- package/.cache/ts/src/components/WriteBar/WriteBar.d.ts +1 -1
- package/.cache/ts/src/components/WriteBarIcon/WriteBarIcon.d.ts +1 -1
- package/.cache/ts/src/helpers/getScheme.d.ts +1 -1
- package/.cache/ts/src/hoc/withAdaptivity.d.ts +1 -1
- package/.cache/ts/src/hoc/withContext.d.ts +1 -1
- package/.cache/ts/src/hoc/withInsets.d.ts +1 -1
- package/.cache/ts/src/hoc/withPlatform.d.ts +1 -1
- package/.cache/ts/src/hooks/useEnsuredControl.d.ts +2 -1
- package/.cache/ts/src/index.d.ts +1 -1
- package/.cache/ts/src/lib/SSR.d.ts +2 -1
- package/.cache/ts/src/testing/utils.d.ts +3 -2
- package/.cache/ts/src/tokenized/index.d.ts +28 -0
- package/.cache/ts/src/types.d.ts +3 -0
- package/.eslintignore +1 -0
- package/.eslintrc.json +4 -1
- package/.prettierignore +1 -1
- package/README.md +3 -4
- package/dist/cjs/components/ActionSheet/ActionSheet.js +4 -4
- package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRoot.js +27 -8
- package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRootPortal.js +3 -2
- package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/Badge/Badge.js.map +1 -1
- package/dist/cjs/components/Banner/Banner.js.map +1 -1
- package/dist/cjs/components/BaseGallery/BaseGallery.js +9 -9
- package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/cjs/components/BaseGallery/helpers.js +8 -8
- package/dist/cjs/components/BaseGallery/helpers.js.map +1 -1
- package/dist/cjs/components/Button/Button.js +27 -27
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/ButtonGroup/ButtonGroup.js +4 -2
- package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
- package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/cjs/components/Card/Card.js.map +1 -1
- package/dist/cjs/components/CardGrid/CardGrid.js +15 -19
- package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cjs/components/Cell/Cell.js +3 -11
- package/dist/cjs/components/Cell/Cell.js.map +1 -1
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
- package/dist/cjs/components/CellButton/CellButton.js.map +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cjs/components/Chip/Chip.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/ClickPopper/ClickPopper.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js +24 -22
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cjs/components/CustomScrollView/CustomScrollView.js +36 -5
- package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js +90 -0
- package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js.map +1 -0
- package/dist/cjs/components/CustomSelect/CustomSelect.js +7 -3
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +31 -5
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cjs/components/Div/Div.js.map +1 -1
- package/dist/cjs/components/Dropdown/Dropdown.js +1 -6
- package/dist/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/cjs/components/Epic/Epic.js +12 -10
- package/dist/cjs/components/Epic/Epic.js.map +1 -1
- package/dist/cjs/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/cjs/components/File/File.js +5 -1
- package/dist/cjs/components/File/File.js.map +1 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/cjs/components/Footer/Footer.js.map +1 -1
- package/dist/cjs/components/FormField/FormField.js.map +1 -1
- package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
- package/dist/cjs/components/FormLayout/FormLayout.js +8 -8
- package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/cjs/components/Gallery/Gallery.js.map +1 -1
- package/dist/cjs/components/Gradient/Gradient.js.map +1 -1
- package/dist/cjs/components/Group/Group.js +28 -19
- package/dist/cjs/components/Group/Group.js.map +1 -1
- package/dist/cjs/components/Header/Header.js.map +1 -1
- package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +12 -9
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js +33 -11
- package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/cjs/components/Input/Input.js.map +1 -1
- package/dist/cjs/components/InputLike/InputLike.js.map +1 -1
- package/dist/cjs/components/InputLike/InputLikeDivider.js.map +1 -1
- package/dist/cjs/components/Link/Link.js +8 -10
- package/dist/cjs/components/Link/Link.js.map +1 -1
- package/dist/cjs/components/List/List.js +1 -9
- package/dist/cjs/components/List/List.js.map +1 -1
- package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js +14 -26
- package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cjs/components/ModalCard/ModalCard.js +2 -5
- package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js +4 -13
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cjs/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
- package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
- package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/cjs/components/Placeholder/Placeholder.js +10 -13
- package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/cjs/components/PopoutRoot/PopoutRoot.js +9 -9
- package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cjs/components/Popper/Popper.js +7 -2
- package/dist/cjs/components/Popper/Popper.js.map +1 -1
- package/dist/cjs/components/Progress/Progress.js.map +1 -1
- package/dist/cjs/components/PromoBanner/PromoBanner.js +9 -8
- package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cjs/components/Radio/Radio.js +8 -8
- package/dist/cjs/components/Radio/Radio.js.map +1 -1
- package/dist/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/cjs/components/RangeSlider/UniversalSlider.js.map +1 -1
- package/dist/cjs/components/Removable/Removable.js +2 -4
- package/dist/cjs/components/Removable/Removable.js.map +1 -1
- package/dist/cjs/components/RichCell/RichCell.js +25 -25
- package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
- package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
- package/dist/cjs/components/Root/Root.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/Icon48CancelCircle.js +31 -0
- package/dist/cjs/components/ScreenSpinner/Icon48CancelCircle.js.map +1 -0
- package/dist/cjs/components/ScreenSpinner/Icon48DoneOutline.js +32 -0
- package/dist/cjs/components/ScreenSpinner/Icon48DoneOutline.js.map +1 -0
- package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js +28 -8
- package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cjs/components/Separator/Separator.js +2 -1
- package/dist/cjs/components/Separator/Separator.js.map +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js +10 -10
- package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
- package/dist/cjs/components/Slider/Slider.js.map +1 -1
- package/dist/cjs/components/SliderSwitch/SliderSwitch.js +1 -1
- package/dist/cjs/components/SliderSwitch/SliderSwitch.js.map +1 -1
- package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js +6 -6
- package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
- package/dist/cjs/components/Snackbar/Snackbar.js +13 -16
- package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitCol.js +11 -11
- package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +11 -13
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cjs/components/Switch/Switch.js.map +1 -1
- package/dist/cjs/components/Tabbar/Tabbar.js +3 -6
- package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
- package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/components/Touch/Touch.js.map +1 -1
- package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/cjs/components/WriteBar/WriteBar.js +12 -12
- package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cjs/helpers/getScheme.js +1 -1
- package/dist/cjs/helpers/getScheme.js.map +1 -1
- package/dist/cjs/helpers/scheme.js +5 -5
- package/dist/cjs/helpers/scheme.js.map +1 -1
- package/dist/cjs/hoc/withAdaptivity.js.map +1 -1
- package/dist/cjs/hoc/withContext.js.map +1 -1
- package/dist/cjs/hoc/withInsets.js.map +1 -1
- package/dist/cjs/hoc/withPlatform.js.map +1 -1
- package/dist/cjs/hooks/useEnsuredControl.js.map +1 -1
- package/dist/cjs/hooks/useEventListener.js.map +1 -1
- package/dist/cjs/index.js +2 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/SSR.js +4 -4
- package/dist/cjs/lib/SSR.js.map +1 -1
- package/dist/cjs/lib/classScopingMode.js +1 -0
- package/dist/cjs/lib/classScopingMode.js.map +1 -1
- package/dist/cjs/lib/dom.js.map +1 -1
- package/dist/cjs/tokenized/index.js +112 -0
- package/dist/cjs/tokenized/index.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.d.ts +1 -1
- package/dist/components/ActionSheet/ActionSheet.js +4 -4
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdown.d.ts +2 -2
- package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.d.ts +2 -2
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +3 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/components/Alert/Alert.d.ts +1 -1
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.d.ts +7 -1
- package/dist/components/AppRoot/AppRoot.js +26 -8
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppRoot/AppRootContext.d.ts +1 -0
- package/dist/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.d.ts +4 -2
- package/dist/components/AppRoot/AppRootPortal.js +3 -2
- package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/components/AppRoot/ScrollContext.d.ts +7 -6
- package/dist/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/components/AppearanceProvider/AppearanceProvider.d.ts +2 -1
- package/dist/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/components/Avatar/Avatar.d.ts +1 -1
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Badge/Badge.d.ts +1 -1
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/BaseGallery/BaseGallery.js +7 -7
- package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/components/BaseGallery/helpers.d.ts +2 -2
- package/dist/components/BaseGallery/helpers.js +8 -8
- package/dist/components/BaseGallery/helpers.js.map +1 -1
- package/dist/components/BaseGallery/types.d.ts +1 -1
- package/dist/components/Button/Button.d.ts +1 -1
- package/dist/components/Button/Button.js +27 -27
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.d.ts +3 -3
- package/dist/components/ButtonGroup/ButtonGroup.js +4 -2
- package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +1 -1
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.d.ts +1 -1
- package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.d.ts +1 -1
- package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.d.ts +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/CalendarTime/CalendarTime.d.ts +2 -2
- package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/components/Card/Card.d.ts +1 -1
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/CardGrid/CardGrid.d.ts +8 -2
- package/dist/components/CardGrid/CardGrid.js +13 -14
- package/dist/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/components/CardScroll/CardScroll.d.ts +1 -1
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/Cell/Cell.d.ts +2 -2
- package/dist/components/Cell/Cell.js +4 -11
- package/dist/components/Cell/Cell.js.map +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/components/Cell/CellDragger/CellDragger.d.ts +1 -1
- package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
- package/dist/components/CellButton/CellButton.d.ts +2 -2
- package/dist/components/CellButton/CellButton.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +2 -2
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Chip/Chip.d.ts +1 -1
- package/dist/components/Chip/Chip.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/ClickPopper/ClickPopper.d.ts +1 -1
- package/dist/components/ClickPopper/ClickPopper.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.d.ts +2 -1
- package/dist/components/ConfigProvider/ConfigProvider.js +25 -21
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.d.ts +4 -3
- package/dist/components/CustomScrollView/CustomScrollView.js +33 -4
- package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/components/CustomScrollView/useTrackerVisibility.d.ts +43 -0
- package/dist/components/CustomScrollView/useTrackerVisibility.js +75 -0
- package/dist/components/CustomScrollView/useTrackerVisibility.js.map +1 -0
- package/dist/components/CustomSelect/CustomSelect.d.ts +4 -3
- package/dist/components/CustomSelect/CustomSelect.js +7 -3
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +4 -3
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +31 -5
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.d.ts +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts +1 -1
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DatePicker/DatePicker.d.ts +1 -1
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/Div/Div.d.ts +1 -1
- package/dist/components/Div/Div.js.map +1 -1
- package/dist/components/Dropdown/Dropdown.d.ts +2 -2
- package/dist/components/Dropdown/Dropdown.js +1 -4
- package/dist/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/components/DropdownIcon/DropdownIcon.d.ts +1 -1
- package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/components/Epic/Epic.d.ts +1 -1
- package/dist/components/Epic/Epic.js +12 -11
- package/dist/components/Epic/Epic.js.map +1 -1
- package/dist/components/Epic/ScrollSaver.d.ts +2 -1
- package/dist/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/components/File/File.d.ts +1 -1
- package/dist/components/File/File.js +5 -1
- package/dist/components/File/File.js.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.d.ts +1 -1
- package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/components/FocusTrap/FocusTrap.d.ts +1 -1
- package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/components/Footer/Footer.d.ts +1 -1
- package/dist/components/Footer/Footer.js.map +1 -1
- package/dist/components/FormField/FormField.d.ts +3 -3
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/FormItem/FormItem.d.ts +1 -1
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormLayout/FormLayout.d.ts +1 -1
- package/dist/components/FormLayout/FormLayout.js +8 -8
- package/dist/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/FormStatus/FormStatus.d.ts +1 -1
- package/dist/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/components/Gallery/Gallery.js.map +1 -1
- package/dist/components/Gradient/Gradient.d.ts +7 -1
- package/dist/components/Gradient/Gradient.js.map +1 -1
- package/dist/components/Group/Group.d.ts +2 -1
- package/dist/components/Group/Group.js +27 -19
- package/dist/components/Group/Group.js.map +1 -1
- package/dist/components/Header/Header.d.ts +1 -1
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.d.ts +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +2 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js +9 -5
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScrollArrow.d.ts +4 -4
- package/dist/components/HorizontalScroll/HorizontalScrollArrow.js +26 -12
- package/dist/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- package/dist/components/HoverPopper/HoverPopper.d.ts +1 -1
- package/dist/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/components/IconButton/IconButton.d.ts +1 -1
- package/dist/components/InfoRow/InfoRow.d.ts +1 -1
- package/dist/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/components/Input/Input.d.ts +1 -1
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/InputLike/InputLike.d.ts +4 -1
- package/dist/components/InputLike/InputLike.js.map +1 -1
- package/dist/components/InputLike/InputLikeDivider.d.ts +1 -1
- package/dist/components/InputLike/InputLikeDivider.js.map +1 -1
- package/dist/components/Link/Link.d.ts +8 -3
- package/dist/components/Link/Link.js +8 -9
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/List/List.d.ts +1 -1
- package/dist/components/List/List.js +1 -8
- package/dist/components/List/List.js.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.d.ts +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.js +13 -23
- package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/components/ModalCard/ModalCard.d.ts +1 -1
- package/dist/components/ModalCard/ModalCard.js +2 -5
- package/dist/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.d.ts +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +5 -14
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +1 -1
- package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts +1 -1
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts +2 -1
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootAdaptive.d.ts +2 -1
- package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootDesktop.d.ts +2 -1
- package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/components/ModalRoot/useModalManager.d.ts +2 -1
- package/dist/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.d.ts +1 -1
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/NavTransitionContext/NavTransitionContext.d.ts +1 -1
- package/dist/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
- package/dist/components/Pagination/Pagination.d.ts +1 -1
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Panel/Panel.d.ts +1 -1
- package/dist/components/PanelHeader/PanelHeader.d.ts +1 -1
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +2 -2
- package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/PanelHeaderClose/PanelHeaderClose.d.ts +2 -2
- package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/components/PanelHeaderContext/PanelHeaderContext.d.ts +1 -1
- package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +2 -2
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +2 -2
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/components/Placeholder/Placeholder.d.ts +1 -1
- package/dist/components/Placeholder/Placeholder.js +10 -13
- package/dist/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/components/PopoutRoot/PopoutRoot.d.ts +5 -2
- package/dist/components/PopoutRoot/PopoutRoot.js +9 -9
- package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/components/Popper/Popper.d.ts +6 -1
- package/dist/components/Popper/Popper.js +6 -2
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/Progress/Progress.d.ts +1 -1
- package/dist/components/Progress/Progress.js.map +1 -1
- package/dist/components/PromoBanner/PromoBanner.d.ts +1 -1
- package/dist/components/PromoBanner/PromoBanner.js +10 -10
- package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/components/Radio/Radio.d.ts +1 -1
- package/dist/components/Radio/Radio.js +8 -8
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts +1 -1
- package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/RangeSlider/RangeSlider.d.ts +2 -2
- package/dist/components/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/RangeSlider/UniversalSlider.d.ts +1 -1
- package/dist/components/RangeSlider/UniversalSlider.js.map +1 -1
- package/dist/components/Removable/Removable.d.ts +1 -1
- package/dist/components/Removable/Removable.js +3 -4
- package/dist/components/Removable/Removable.js.map +1 -1
- package/dist/components/RichCell/RichCell.d.ts +18 -9
- package/dist/components/RichCell/RichCell.js +25 -21
- package/dist/components/RichCell/RichCell.js.map +1 -1
- package/dist/components/RichTooltip/RichTooltip.d.ts +2 -2
- package/dist/components/RichTooltip/RichTooltip.js.map +1 -1
- package/dist/components/Root/Root.d.ts +1 -1
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/ScreenSpinner/Icon48CancelCircle.d.ts +3 -0
- package/dist/components/ScreenSpinner/Icon48CancelCircle.js +18 -0
- package/dist/components/ScreenSpinner/Icon48CancelCircle.js.map +1 -0
- package/dist/components/ScreenSpinner/Icon48DoneOutline.d.ts +3 -0
- package/dist/components/ScreenSpinner/Icon48DoneOutline.js +19 -0
- package/dist/components/ScreenSpinner/Icon48DoneOutline.js.map +1 -0
- package/dist/components/ScreenSpinner/ScreenSpinner.d.ts +5 -3
- package/dist/components/ScreenSpinner/ScreenSpinner.js +25 -7
- package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/components/Search/Search.d.ts +1 -1
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.d.ts +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +2 -2
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/components/Select/Select.d.ts +2 -2
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.d.ts +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/Separator/Separator.d.ts +2 -2
- package/dist/components/Separator/Separator.js +2 -1
- package/dist/components/Separator/Separator.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/SimpleCheckbox/SimpleCheckbox.d.ts +2 -2
- package/dist/components/SimpleCheckbox/SimpleCheckbox.js +10 -10
- package/dist/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/SliderSwitch/SliderSwitch.d.ts +1 -1
- package/dist/components/SliderSwitch/SliderSwitch.js +1 -1
- package/dist/components/SliderSwitch/SliderSwitch.js.map +1 -1
- package/dist/components/SliderSwitch/SliderSwitchButton.d.ts +1 -1
- package/dist/components/SliderSwitch/SliderSwitchButton.js +6 -6
- package/dist/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
- package/dist/components/Snackbar/Snackbar.d.ts +2 -2
- package/dist/components/Snackbar/Snackbar.js +13 -16
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/Spacing/Spacing.d.ts +1 -1
- package/dist/components/Spacing/Spacing.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.d.ts +1 -1
- package/dist/components/SplitCol/SplitCol.js +11 -11
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.d.ts +1 -1
- package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +1 -1
- package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.d.ts +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js +12 -15
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/Switch/Switch.d.ts +2 -2
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Tabbar/Tabbar.d.ts +1 -1
- package/dist/components/Tabbar/Tabbar.js +2 -5
- package/dist/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.d.ts +1 -1
- package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts +1 -1
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/TabsItem/TabsItem.d.ts +1 -1
- package/dist/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/components/Tappable/Tappable.d.ts +1 -1
- package/dist/components/TextTooltip/TextTooltip.d.ts +1 -1
- package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/components/Textarea/Textarea.d.ts +1 -1
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +3 -2
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Touch/Touch.d.ts +1 -1
- package/dist/components/Touch/Touch.js.map +1 -1
- package/dist/components/Typography/Caption/Caption.d.ts +1 -1
- package/dist/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/components/Typography/Headline/Headline.d.ts +1 -1
- package/dist/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/components/Typography/Paragraph/Paragraph.d.ts +1 -1
- package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/components/Typography/Subhead/Subhead.d.ts +1 -1
- package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/components/Typography/Text/Text.d.ts +1 -1
- package/dist/components/Typography/Text/Text.js.map +1 -1
- package/dist/components/Typography/Title/Title.d.ts +1 -1
- package/dist/components/Typography/Title/Title.js.map +1 -1
- package/dist/components/View/View.d.ts +1 -1
- package/dist/components/View/ViewInfinite.d.ts +1 -1
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +1 -1
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/components/WriteBar/WriteBar.d.ts +1 -1
- package/dist/components/WriteBar/WriteBar.js +13 -14
- package/dist/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.d.ts +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/components.css +39 -14
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.d.ts +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +4 -4
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.d.ts +2 -2
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.d.ts +2 -2
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.d.ts +3 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.d.ts +1 -1
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.d.ts +7 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +26 -8
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootContext.d.ts +1 -0
- package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootPortal.d.ts +4 -2
- package/dist/cssm/components/AppRoot/AppRootPortal.js +3 -2
- package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cssm/components/AppRoot/ScrollContext.d.ts +7 -6
- package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.d.ts +2 -1
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.css +2 -2
- package/dist/cssm/components/Avatar/Avatar.d.ts +1 -1
- package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
- package/dist/cssm/components/Badge/Badge.d.ts +1 -1
- package/dist/cssm/components/Badge/Badge.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.js.map +1 -1
- package/dist/cssm/components/BaseGallery/BaseGallery.js +7 -7
- package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/cssm/components/BaseGallery/helpers.d.ts +2 -2
- package/dist/cssm/components/BaseGallery/helpers.js +8 -8
- package/dist/cssm/components/BaseGallery/helpers.js.map +1 -1
- package/dist/cssm/components/BaseGallery/types.d.ts +1 -1
- package/dist/cssm/components/Button/Button.css +21 -3
- package/dist/cssm/components/Button/Button.d.ts +1 -1
- package/dist/cssm/components/Button/Button.js +27 -27
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/ButtonGroup/ButtonGroup.css +1 -1
- package/dist/cssm/components/ButtonGroup/ButtonGroup.d.ts +3 -3
- package/dist/cssm/components/ButtonGroup/ButtonGroup.js +4 -2
- package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/cssm/components/Calendar/Calendar.css +1 -1
- package/dist/cssm/components/Calendar/Calendar.d.ts +1 -1
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.d.ts +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.d.ts +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.d.ts +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.d.ts +2 -2
- package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/cssm/components/Card/Card.d.ts +1 -1
- package/dist/cssm/components/Card/Card.js.map +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.css +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.d.ts +8 -2
- package/dist/cssm/components/CardGrid/CardGrid.js +13 -14
- package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.d.ts +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.css +3 -1
- package/dist/cssm/components/Cell/Cell.d.ts +2 -2
- package/dist/cssm/components/Cell/Cell.js +4 -11
- package/dist/cssm/components/Cell/Cell.js.map +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.d.ts +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cssm/components/Cell/CellDragger/CellDragger.d.ts +1 -1
- package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
- package/dist/cssm/components/CellButton/CellButton.d.ts +2 -2
- package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.d.ts +2 -2
- package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cssm/components/Chip/Chip.d.ts +1 -1
- package/dist/cssm/components/Chip/Chip.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ClickPopper/ClickPopper.d.ts +1 -1
- package/dist/cssm/components/ClickPopper/ClickPopper.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.d.ts +2 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js +25 -21
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.css +1 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts +4 -3
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js +33 -4
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/useTrackerVisibility.d.ts +43 -0
- package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js +75 -0
- package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js.map +1 -0
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +4 -3
- package/dist/cssm/components/CustomSelect/CustomSelect.js +7 -3
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +4 -3
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +31 -5
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.d.ts +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.d.ts +1 -1
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DatePicker/DatePicker.d.ts +1 -1
- package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/Div/Div.d.ts +1 -1
- package/dist/cssm/components/Div/Div.js.map +1 -1
- package/dist/cssm/components/Dropdown/Dropdown.css +1 -1
- package/dist/cssm/components/Dropdown/Dropdown.d.ts +2 -2
- package/dist/cssm/components/Dropdown/Dropdown.js +1 -4
- package/dist/cssm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/cssm/components/DropdownIcon/DropdownIcon.d.ts +1 -1
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/cssm/components/Epic/Epic.d.ts +1 -1
- package/dist/cssm/components/Epic/Epic.js +12 -11
- package/dist/cssm/components/Epic/Epic.js.map +1 -1
- package/dist/cssm/components/Epic/ScrollSaver.d.ts +2 -1
- package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/cssm/components/File/File.d.ts +1 -1
- package/dist/cssm/components/File/File.js +5 -1
- package/dist/cssm/components/File/File.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.css +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.d.ts +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cssm/components/FocusTrap/FocusTrap.d.ts +1 -1
- package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/cssm/components/Footer/Footer.d.ts +1 -1
- package/dist/cssm/components/Footer/Footer.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.d.ts +3 -3
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.d.ts +1 -1
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormLayout/FormLayout.d.ts +1 -1
- package/dist/cssm/components/FormLayout/FormLayout.js +8 -8
- package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cssm/components/FormStatus/FormStatus.d.ts +1 -1
- package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
- package/dist/cssm/components/Gradient/Gradient.css +1 -1
- package/dist/cssm/components/Gradient/Gradient.d.ts +7 -1
- package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
- package/dist/cssm/components/Group/Group.css +1 -1
- package/dist/cssm/components/Group/Group.d.ts +2 -1
- package/dist/cssm/components/Group/Group.js +27 -19
- package/dist/cssm/components/Group/Group.js.map +1 -1
- package/dist/cssm/components/Header/Header.d.ts +1 -1
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.css +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.d.ts +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.css +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts +2 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +9 -5
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +2 -5
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.d.ts +4 -4
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js +26 -12
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- package/dist/cssm/components/HoverPopper/HoverPopper.d.ts +1 -1
- package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/cssm/components/IconButton/IconButton.d.ts +1 -1
- package/dist/cssm/components/InfoRow/InfoRow.d.ts +1 -1
- package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/cssm/components/Input/Input.d.ts +1 -1
- package/dist/cssm/components/Input/Input.js.map +1 -1
- package/dist/cssm/components/InputLike/InputLike.d.ts +4 -1
- package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
- package/dist/cssm/components/InputLike/InputLikeDivider.d.ts +1 -1
- package/dist/cssm/components/InputLike/InputLikeDivider.js.map +1 -1
- package/dist/cssm/components/Link/Link.css +1 -1
- package/dist/cssm/components/Link/Link.d.ts +8 -3
- package/dist/cssm/components/Link/Link.js +8 -9
- package/dist/cssm/components/Link/Link.js.map +1 -1
- package/dist/cssm/components/List/List.d.ts +1 -1
- package/dist/cssm/components/List/List.js +1 -8
- package/dist/cssm/components/List/List.js.map +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.css +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.d.ts +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +13 -23
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.d.ts +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.js +2 -5
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.css +3 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.d.ts +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +5 -14
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.d.ts +1 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.d.ts +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.d.ts +2 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.d.ts +2 -1
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts +2 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalManager.d.ts +2 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/NavTransitionContext/NavTransitionContext.d.ts +1 -1
- package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.d.ts +1 -1
- package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
- package/dist/cssm/components/Panel/Panel.d.ts +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.d.ts +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.d.ts +2 -2
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.d.ts +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.d.ts +2 -2
- package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.d.ts +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.d.ts +1 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +2 -2
- package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +2 -2
- package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/cssm/components/Placeholder/Placeholder.css +3 -1
- package/dist/cssm/components/Placeholder/Placeholder.d.ts +1 -1
- package/dist/cssm/components/Placeholder/Placeholder.js +10 -13
- package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/cssm/components/PopoutRoot/PopoutRoot.d.ts +5 -2
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js +9 -9
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.d.ts +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.d.ts +6 -1
- package/dist/cssm/components/Popper/Popper.js +6 -2
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/Progress/Progress.d.ts +1 -1
- package/dist/cssm/components/Progress/Progress.js.map +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.d.ts +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.js +10 -10
- package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cssm/components/Radio/Radio.d.ts +1 -1
- package/dist/cssm/components/Radio/Radio.js +8 -8
- package/dist/cssm/components/Radio/Radio.js.map +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.d.ts +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/cssm/components/RangeSlider/RangeSlider.d.ts +2 -2
- package/dist/cssm/components/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/cssm/components/RangeSlider/UniversalSlider.d.ts +1 -1
- package/dist/cssm/components/RangeSlider/UniversalSlider.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.css +1 -1
- package/dist/cssm/components/Removable/Removable.d.ts +1 -1
- package/dist/cssm/components/Removable/Removable.js +3 -4
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/RichCell/RichCell.css +3 -1
- package/dist/cssm/components/RichCell/RichCell.d.ts +18 -9
- package/dist/cssm/components/RichCell/RichCell.js +25 -21
- package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
- package/dist/cssm/components/RichTooltip/RichTooltip.d.ts +2 -2
- package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
- package/dist/cssm/components/Root/Root.d.ts +1 -1
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/Icon48CancelCircle.d.ts +3 -0
- package/dist/cssm/components/ScreenSpinner/Icon48CancelCircle.js +18 -0
- package/dist/cssm/components/ScreenSpinner/Icon48CancelCircle.js.map +1 -0
- package/dist/cssm/components/ScreenSpinner/Icon48DoneOutline.d.ts +3 -0
- package/dist/cssm/components/ScreenSpinner/Icon48DoneOutline.js +19 -0
- package/dist/cssm/components/ScreenSpinner/Icon48DoneOutline.js.map +1 -0
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.css +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.d.ts +5 -3
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +25 -7
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cssm/components/Search/Search.css +1 -1
- package/dist/cssm/components/Search/Search.d.ts +1 -1
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.css +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.d.ts +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +2 -2
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cssm/components/Select/Select.d.ts +2 -2
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/Separator/Separator.css +1 -1
- package/dist/cssm/components/Separator/Separator.d.ts +2 -2
- package/dist/cssm/components/Separator/Separator.js +2 -1
- package/dist/cssm/components/Separator/Separator.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.d.ts +2 -2
- package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js +10 -10
- package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
- package/dist/cssm/components/Slider/Slider.js.map +1 -1
- package/dist/cssm/components/SliderSwitch/SliderSwitch.d.ts +1 -1
- package/dist/cssm/components/SliderSwitch/SliderSwitch.js +1 -1
- package/dist/cssm/components/SliderSwitch/SliderSwitch.js.map +1 -1
- package/dist/cssm/components/SliderSwitch/SliderSwitchButton.d.ts +1 -1
- package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js +6 -6
- package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.d.ts +2 -2
- package/dist/cssm/components/Snackbar/Snackbar.js +13 -16
- package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cssm/components/Spacing/Spacing.d.ts +1 -1
- package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.d.ts +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.js +11 -11
- package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.d.ts +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.d.ts +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.d.ts +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +12 -15
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.css +1 -1
- package/dist/cssm/components/Switch/Switch.d.ts +2 -2
- package/dist/cssm/components/Switch/Switch.js.map +1 -1
- package/dist/cssm/components/Tabbar/Tabbar.css +3 -1
- package/dist/cssm/components/Tabbar/Tabbar.d.ts +1 -1
- package/dist/cssm/components/Tabbar/Tabbar.js +2 -5
- package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.d.ts +1 -1
- 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 +1 -1
- package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.d.ts +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.d.ts +1 -1
- package/dist/cssm/components/TextTooltip/TextTooltip.d.ts +1 -1
- package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.d.ts +1 -1
- package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.d.ts +3 -2
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/Touch/Touch.d.ts +1 -1
- package/dist/cssm/components/Touch/Touch.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.d.ts +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.d.ts +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.d.ts +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.d.ts +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cssm/components/Typography/Text/Text.d.ts +1 -1
- package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.d.ts +1 -1
- package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.css +1 -1
- package/dist/cssm/components/View/View.d.ts +1 -1
- package/dist/cssm/components/View/ViewInfinite.d.ts +1 -1
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +1 -1
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/cssm/components/WriteBar/WriteBar.d.ts +1 -1
- package/dist/cssm/components/WriteBar/WriteBar.js +13 -14
- package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.d.ts +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cssm/helpers/getScheme.d.ts +1 -1
- package/dist/cssm/helpers/getScheme.js +1 -1
- package/dist/cssm/helpers/getScheme.js.map +1 -1
- package/dist/cssm/helpers/scheme.js +5 -5
- package/dist/cssm/helpers/scheme.js.map +1 -1
- package/dist/cssm/hoc/withAdaptivity.d.ts +1 -1
- package/dist/cssm/hoc/withAdaptivity.js.map +1 -1
- package/dist/cssm/hoc/withContext.d.ts +1 -1
- package/dist/cssm/hoc/withContext.js.map +1 -1
- package/dist/cssm/hoc/withInsets.d.ts +1 -1
- package/dist/cssm/hoc/withInsets.js.map +1 -1
- package/dist/cssm/hoc/withPlatform.d.ts +1 -1
- package/dist/cssm/hoc/withPlatform.js.map +1 -1
- package/dist/cssm/hooks/useEnsuredControl.d.ts +2 -1
- package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
- package/dist/cssm/hooks/useEventListener.js.map +1 -1
- package/dist/cssm/index.d.ts +1 -1
- package/dist/cssm/index.js +1 -1
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/SSR.d.ts +2 -1
- package/dist/cssm/lib/SSR.js +4 -4
- package/dist/cssm/lib/SSR.js.map +1 -1
- package/dist/cssm/lib/classScopingMode.js +1 -0
- package/dist/cssm/lib/classScopingMode.js.map +1 -1
- package/dist/cssm/lib/dom.js.map +1 -1
- package/dist/cssm/styles/components.css +39 -14
- package/dist/cssm/styles/themes.css +1 -1
- package/dist/cssm/styles/unstable.css +1 -1
- package/dist/cssm/tokenized/index.d.ts +28 -0
- package/dist/cssm/tokenized/index.js +14 -0
- package/dist/cssm/tokenized/index.js.map +1 -1
- package/dist/cssm/types.d.ts +3 -0
- package/dist/helpers/getScheme.d.ts +1 -1
- package/dist/helpers/getScheme.js +1 -1
- package/dist/helpers/getScheme.js.map +1 -1
- package/dist/helpers/scheme.js +5 -5
- package/dist/helpers/scheme.js.map +1 -1
- package/dist/hoc/withAdaptivity.d.ts +1 -1
- package/dist/hoc/withAdaptivity.js.map +1 -1
- package/dist/hoc/withContext.d.ts +1 -1
- package/dist/hoc/withContext.js.map +1 -1
- package/dist/hoc/withInsets.d.ts +1 -1
- package/dist/hoc/withInsets.js.map +1 -1
- package/dist/hoc/withPlatform.d.ts +1 -1
- package/dist/hoc/withPlatform.js.map +1 -1
- package/dist/hooks/useEnsuredControl.d.ts +2 -1
- package/dist/hooks/useEnsuredControl.js.map +1 -1
- package/dist/hooks/useEventListener.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/SSR.d.ts +2 -1
- package/dist/lib/SSR.js +4 -4
- package/dist/lib/SSR.js.map +1 -1
- package/dist/lib/classScopingMode.js +1 -0
- package/dist/lib/classScopingMode.js.map +1 -1
- package/dist/lib/dom.js.map +1 -1
- package/dist/tokenized/index.d.ts +28 -0
- package/dist/tokenized/index.js +14 -0
- package/dist/tokenized/index.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/unstable.css +1 -1
- package/dist/unstable.css.map +1 -1
- package/dist/vkui.css +40 -15
- package/dist/vkui.css.map +1 -1
- package/package.json +16 -15
- package/src/components/ActionSheet/ActionSheet.tsx +4 -6
- package/src/components/ActionSheet/ActionSheetDropdown.tsx +2 -2
- package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +6 -3
- package/src/components/ActionSheet/Readme.md +1 -1
- package/src/components/ActionSheetItem/ActionSheetItem.tsx +1 -1
- package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +3 -1
- package/src/components/Alert/Alert.tsx +7 -6
- package/src/components/Alert/Readme.md +1 -1
- package/src/components/AppRoot/AppRoot.tsx +27 -6
- package/src/components/AppRoot/AppRootContext.ts +1 -0
- package/src/components/AppRoot/AppRootPortal.tsx +13 -5
- package/src/components/AppRoot/Readme.md +1 -1
- package/src/components/AppRoot/ScrollContext.tsx +8 -9
- package/src/components/AppearanceProvider/AppearanceProvider.tsx +3 -2
- package/src/components/Avatar/Avatar.css +1 -14
- package/src/components/Avatar/Avatar.tsx +1 -1
- package/src/components/Badge/Badge.tsx +1 -1
- package/src/components/Banner/Banner.tsx +5 -6
- package/src/components/BaseGallery/BaseGallery.tsx +7 -7
- package/src/components/BaseGallery/helpers.ts +7 -7
- package/src/components/BaseGallery/types.ts +1 -1
- package/src/components/Button/Button.css +0 -8
- package/src/components/Button/Button.tsx +8 -6
- package/src/components/ButtonGroup/ButtonGroup.css +12 -1
- package/src/components/ButtonGroup/ButtonGroup.tsx +8 -5
- package/src/components/ButtonGroup/Readme.md +15 -1
- package/src/components/Calendar/Calendar.css +2 -2
- package/src/components/Calendar/Calendar.tsx +2 -2
- package/src/components/CalendarDay/CalendarDay.tsx +2 -2
- package/src/components/CalendarDays/CalendarDays.tsx +2 -2
- package/src/components/CalendarHeader/CalendarHeader.tsx +2 -2
- package/src/components/CalendarRange/CalendarRange.tsx +2 -2
- package/src/components/CalendarTime/CalendarTime.tsx +2 -2
- package/src/components/Card/Card.tsx +1 -1
- package/src/components/CardGrid/CardGrid.css +12 -20
- package/src/components/CardGrid/CardGrid.tsx +15 -16
- package/src/components/CardGrid/Readme.md +5 -0
- package/src/components/CardScroll/CardScroll.tsx +1 -1
- package/src/components/Cell/Cell.css +10 -3
- package/src/components/Cell/Cell.tsx +11 -11
- package/src/components/Cell/CellCheckbox/CellCheckbox.tsx +2 -2
- package/src/components/Cell/CellDragger/CellDragger.tsx +2 -2
- package/src/components/CellButton/CellButton.tsx +1 -2
- package/src/components/Checkbox/Checkbox.tsx +2 -2
- package/src/components/Chip/Chip.tsx +1 -1
- package/src/components/ChipsSelect/ChipsSelect.tsx +4 -4
- package/src/components/ChipsSelect/Readme.md +1 -1
- package/src/components/ClickPopper/ClickPopper.tsx +1 -1
- package/src/components/ConfigProvider/ConfigProvider.tsx +22 -15
- package/src/components/ConfigProvider/Readme.md +1 -1
- package/src/components/CustomScrollView/CustomScrollView.css +5 -0
- package/src/components/CustomScrollView/CustomScrollView.tsx +38 -4
- package/src/components/CustomScrollView/useTrackerVisibility.ts +109 -0
- package/src/components/CustomSelect/CustomSelect.tsx +9 -3
- package/src/components/CustomSelect/Readme.md +228 -170
- package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +38 -4
- package/src/components/CustomSelectOption/CustomSelectOption.tsx +1 -1
- package/src/components/DateInput/DateInput.tsx +2 -2
- package/src/components/DatePicker/DatePicker.tsx +6 -10
- package/src/components/DateRangeInput/DateRangeInput.tsx +2 -2
- package/src/components/Div/Div.tsx +1 -5
- package/src/components/Dropdown/Dropdown.css +3 -16
- package/src/components/Dropdown/Dropdown.tsx +2 -11
- package/src/components/Dropdown/Readme.md +1 -1
- package/src/components/DropdownIcon/DropdownIcon.tsx +1 -3
- package/src/components/Epic/Epic.tsx +9 -5
- package/src/components/Epic/ScrollSaver.tsx +3 -2
- package/src/components/File/File.tsx +6 -2
- package/src/components/FixedLayout/FixedLayout.css +10 -0
- package/src/components/FixedLayout/FixedLayout.tsx +1 -1
- package/src/components/FocusTrap/FocusTrap.tsx +2 -2
- package/src/components/Footer/Footer.tsx +1 -4
- package/src/components/FormField/FormField.tsx +3 -3
- package/src/components/FormField/Readme.md +1 -1
- package/src/components/FormItem/FormItem.tsx +1 -1
- package/src/components/FormLayout/FormLayout.tsx +7 -11
- package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +1 -1
- package/src/components/FormStatus/FormStatus.tsx +1 -1
- package/src/components/Gallery/Gallery.tsx +1 -1
- package/src/components/Gradient/Gradient.css +14 -76
- package/src/components/Gradient/Gradient.tsx +8 -2
- package/src/components/Gradient/Readme.md +53 -15
- package/src/components/Group/Group.css +10 -14
- package/src/components/Group/Group.tsx +32 -23
- package/src/components/Header/Header.tsx +3 -3
- package/src/components/HorizontalCell/HorizontalCell.css +2 -2
- package/src/components/HorizontalCell/HorizontalCell.tsx +2 -2
- package/src/components/HorizontalScroll/HorizontalScroll.css +14 -5
- package/src/components/HorizontalScroll/HorizontalScroll.tsx +21 -9
- package/src/components/HorizontalScroll/HorizontalScrollArrow.css +28 -24
- package/src/components/HorizontalScroll/HorizontalScrollArrow.tsx +28 -9
- package/src/components/HorizontalScroll/Readme.md +1 -0
- package/src/components/HoverPopper/HoverPopper.tsx +1 -1
- package/src/components/InfoRow/InfoRow.tsx +1 -5
- package/src/components/InitialsAvatar/Readme.md +1 -1
- package/src/components/Input/Input.tsx +1 -1
- package/src/components/InputLike/InputLike.tsx +2 -2
- package/src/components/InputLike/InputLikeDivider.tsx +4 -3
- package/src/components/Link/Link.css +21 -1
- package/src/components/Link/Link.tsx +12 -14
- package/src/components/Link/Readme.md +36 -4
- package/src/components/List/List.tsx +5 -10
- package/src/components/MiniInfoCell/MiniInfoCell.css +6 -14
- package/src/components/MiniInfoCell/MiniInfoCell.tsx +13 -22
- package/src/components/ModalCard/ModalCard.tsx +6 -8
- package/src/components/ModalCardBase/ModalCardBase.css +13 -9
- package/src/components/ModalCardBase/ModalCardBase.tsx +15 -19
- package/src/components/ModalCardBase/Readme.md +1 -1
- package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -1
- package/src/components/ModalPage/ModalPage.tsx +2 -4
- package/src/components/ModalRoot/ModalRoot.tsx +1 -0
- package/src/components/ModalRoot/ModalRootAdaptive.tsx +4 -3
- package/src/components/ModalRoot/ModalRootDesktop.tsx +1 -0
- package/src/components/ModalRoot/Readme.md +1 -1
- package/src/components/ModalRoot/useModalManager.tsx +5 -2
- package/src/components/NativeSelect/NativeSelect.tsx +2 -4
- package/src/components/NavTransitionContext/NavTransitionContext.tsx +2 -2
- package/src/components/Pagination/Pagination.tsx +2 -2
- package/src/components/PanelHeader/PanelHeader.tsx +2 -2
- package/src/components/PanelHeader/Readme.md +1 -1
- package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +1 -3
- package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +2 -5
- package/src/components/PanelHeaderButton/Readme.md +1 -1
- package/src/components/PanelHeaderClose/PanelHeaderClose.tsx +4 -4
- package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +4 -5
- package/src/components/PanelHeaderContext/PanelHeaderContext.tsx +2 -2
- package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +1 -2
- package/src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx +4 -4
- package/src/components/Placeholder/Placeholder.css +7 -8
- package/src/components/Placeholder/Placeholder.tsx +31 -40
- package/src/components/Placeholder/Readme.md +77 -90
- package/src/components/PopoutRoot/PopoutRoot.tsx +10 -13
- package/src/components/PopoutWrapper/PopoutWrapper.tsx +1 -1
- package/src/components/PopoutWrapper/Readme.md +1 -1
- package/src/components/Popper/Popper.tsx +8 -1
- package/src/components/Popper/Readme.md +2 -2
- package/src/components/Progress/Progress.tsx +1 -1
- package/src/components/PromoBanner/PromoBanner.tsx +8 -4
- package/src/components/Radio/Radio.tsx +9 -10
- package/src/components/RadioGroup/RadioGroup.tsx +2 -2
- package/src/components/RangeSlider/RangeSlider.tsx +3 -2
- package/src/components/RangeSlider/UniversalSlider.tsx +2 -2
- package/src/components/Removable/Removable.css +2 -2
- package/src/components/Removable/Removable.tsx +8 -7
- package/src/components/RichCell/Readme.md +78 -19
- package/src/components/RichCell/RichCell.css +76 -59
- package/src/components/RichCell/RichCell.tsx +49 -43
- package/src/components/RichTooltip/Readme.md +2 -2
- package/src/components/RichTooltip/RichTooltip.tsx +1 -2
- package/src/components/Root/Root.tsx +1 -1
- package/src/components/ScreenSpinner/Icon48CancelCircle.tsx +18 -0
- package/src/components/ScreenSpinner/Icon48DoneOutline.tsx +19 -0
- package/src/components/ScreenSpinner/Readme.md +57 -36
- package/src/components/ScreenSpinner/ScreenSpinner.css +44 -9
- package/src/components/ScreenSpinner/ScreenSpinner.tsx +27 -9
- package/src/components/Search/Search.css +6 -2
- package/src/components/Search/Search.tsx +7 -5
- package/src/components/SegmentedControl/SegmentedControl.css +1 -1
- package/src/components/SegmentedControl/SegmentedControl.tsx +2 -2
- package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -1
- package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +2 -3
- package/src/components/Select/Select.tsx +7 -5
- package/src/components/SelectMimicry/SelectMimicry.tsx +2 -2
- package/src/components/Separator/Separator.css +11 -11
- package/src/components/Separator/Separator.tsx +3 -6
- package/src/components/SimpleCell/SimpleCell.tsx +2 -4
- package/src/components/SimpleCheckbox/Readme.md +2 -2
- package/src/components/SimpleCheckbox/SimpleCheckbox.tsx +12 -15
- package/src/components/Slider/Slider.tsx +2 -1
- package/src/components/SliderSwitch/Readme.md +1 -1
- package/src/components/SliderSwitch/SliderSwitch.tsx +1 -1
- package/src/components/SliderSwitch/SliderSwitchButton.tsx +7 -4
- package/src/components/Snackbar/Snackbar.tsx +13 -22
- package/src/components/Spacing/Spacing.tsx +1 -1
- package/src/components/SplitCol/SplitCol.tsx +11 -12
- package/src/components/SplitLayout/SplitLayout.tsx +1 -1
- package/src/components/SubnavigationBar/SubnavigationBar.tsx +1 -1
- package/src/components/SubnavigationButton/Readme.md +1 -1
- package/src/components/SubnavigationButton/SubnavigationButton.tsx +14 -21
- package/src/components/Switch/Switch.css +3 -3
- package/src/components/Switch/Switch.tsx +1 -2
- package/src/components/Tabbar/Tabbar.css +12 -10
- package/src/components/Tabbar/Tabbar.tsx +5 -7
- package/src/components/TabbarItem/TabbarItem.tsx +1 -1
- package/src/components/Tabs/Tabs.css +12 -0
- package/src/components/Tabs/Tabs.tsx +1 -1
- package/src/components/TabsItem/TabsItem.tsx +1 -1
- package/src/components/Tappable/Readme.md +1 -1
- package/src/components/TextTooltip/Readme.md +1 -1
- package/src/components/TextTooltip/TextTooltip.tsx +1 -1
- package/src/components/Textarea/Textarea.tsx +1 -1
- package/src/components/Tooltip/Readme.md +1 -1
- package/src/components/Tooltip/Tooltip.css +2 -2
- package/src/components/Tooltip/Tooltip.tsx +6 -3
- package/src/components/Touch/Touch.tsx +1 -1
- package/src/components/Typography/Caption/Caption.tsx +1 -1
- package/src/components/Typography/Headline/Headline.tsx +1 -1
- package/src/components/Typography/Paragraph/Paragraph.tsx +2 -2
- package/src/components/Typography/Subhead/Subhead.tsx +2 -2
- package/src/components/Typography/Text/Text.tsx +1 -1
- package/src/components/Typography/Title/Title.tsx +2 -2
- package/src/components/UsersStack/UsersStack.css +0 -8
- package/src/components/View/Readme.md +1 -1
- package/src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx +2 -2
- package/src/components/WriteBar/WriteBar.css +1 -0
- package/src/components/WriteBar/WriteBar.tsx +13 -17
- package/src/components/WriteBarIcon/WriteBarIcon.tsx +1 -1
- package/src/helpers/getScheme.ts +2 -2
- package/src/helpers/scheme.ts +5 -4
- package/src/hoc/withAdaptivity.tsx +1 -1
- package/src/hoc/withContext.tsx +1 -1
- package/src/hoc/withInsets.tsx +1 -1
- package/src/hoc/withPlatform.tsx +1 -1
- package/src/hooks/useEnsuredControl.ts +2 -2
- package/src/hooks/useEventListener.ts +4 -1
- package/src/index.ts +1 -1
- package/src/lib/SSR.tsx +6 -3
- package/src/lib/classScopingMode.ts +1 -0
- package/src/lib/dom.tsx +1 -1
- package/src/lib/jsxRuntime.d.ts +2 -2
- package/src/testing/setup.ts +3 -0
- package/src/testing/utils.tsx +3 -5
- package/src/tokenized/index.ts +42 -0
- package/src/types.ts +4 -0
- package/stylelint.config.js +22 -1
- package/tasks/{styleint-atomic.js → stylelint-atomic.js} +1 -1
- package/tasks/stylelint-bad-multiplication.js +69 -0
- package/CONTRIBUTING.md +0 -66
- package/CSS_GUIDE.md +0 -145
- package/TESTING.md +0 -58
- package/VKUI_TOKENS_MIGRATION_GUIDE.md +0 -76
- package/dist/cjs/appearance/constants.d.ts +0 -1
- package/dist/cjs/components/ActionSheet/ActionSheet.d.ts +0 -29
- package/dist/cjs/components/ActionSheet/ActionSheetContext.d.ts +0 -8
- package/dist/cjs/components/ActionSheet/ActionSheetDropdown.d.ts +0 -4
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.d.ts +0 -4
- package/dist/cjs/components/ActionSheet/types.d.ts +0 -9
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts +0 -23
- package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.d.ts +0 -46
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.d.ts +0 -13
- package/dist/cjs/components/Alert/Alert.d.ts +0 -25
- package/dist/cjs/components/AppRoot/AppRoot.d.ts +0 -17
- package/dist/cjs/components/AppRoot/AppRootContext.d.ts +0 -9
- package/dist/cjs/components/AppRoot/AppRootPortal.d.ts +0 -5
- package/dist/cjs/components/AppRoot/ScrollContext.d.ts +0 -26
- package/dist/cjs/components/AppearanceProvider/AppearanceProvider.d.ts +0 -10
- package/dist/cjs/components/AppearanceProvider/AppearanceProviderContext.d.ts +0 -3
- package/dist/cjs/components/Avatar/Avatar.d.ts +0 -24
- package/dist/cjs/components/Badge/Badge.d.ts +0 -9
- package/dist/cjs/components/Banner/Banner.d.ts +0 -67
- package/dist/cjs/components/BaseGallery/BaseGallery.d.ts +0 -4
- package/dist/cjs/components/BaseGallery/helpers.d.ts +0 -12
- package/dist/cjs/components/BaseGallery/types.d.ts +0 -43
- package/dist/cjs/components/Button/Button.d.ts +0 -22
- package/dist/cjs/components/ButtonGroup/ButtonGroup.d.ts +0 -23
- package/dist/cjs/components/Calendar/Calendar.d.ts +0 -33
- package/dist/cjs/components/CalendarDay/CalendarDay.d.ts +0 -22
- package/dist/cjs/components/CalendarDays/CalendarDays.d.ts +0 -22
- package/dist/cjs/components/CalendarHeader/CalendarHeader.d.ts +0 -24
- package/dist/cjs/components/CalendarRange/CalendarRange.d.ts +0 -19
- package/dist/cjs/components/CalendarTime/CalendarTime.d.ts +0 -11
- package/dist/cjs/components/Card/Card.d.ts +0 -10
- package/dist/cjs/components/CardGrid/CardGrid.d.ts +0 -8
- package/dist/cjs/components/CardScroll/CardScroll.d.ts +0 -15
- package/dist/cjs/components/Cell/Cell.d.ts +0 -50
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.d.ts +0 -5
- package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts +0 -6
- package/dist/cjs/components/Cell/useDraggable.d.ts +0 -15
- package/dist/cjs/components/CellButton/CellButton.d.ts +0 -11
- package/dist/cjs/components/Checkbox/Checkbox.d.ts +0 -15
- package/dist/cjs/components/Chip/Chip.d.ts +0 -19
- package/dist/cjs/components/ChipsInput/ChipsInput.d.ts +0 -32
- package/dist/cjs/components/ChipsInput/useChipsInput.d.ts +0 -14
- package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +0 -43
- package/dist/cjs/components/ChipsSelect/useChipsSelect.d.ts +0 -22
- package/dist/cjs/components/ClickPopper/ClickPopper.d.ts +0 -21
- package/dist/cjs/components/ConfigProvider/ConfigProvider.d.ts +0 -18
- package/dist/cjs/components/ConfigProvider/ConfigProviderContext.d.ts +0 -36
- package/dist/cjs/components/ContentCard/ContentCard.d.ts +0 -36
- package/dist/cjs/components/Counter/Counter.d.ts +0 -13
- package/dist/cjs/components/CustomScrollView/CustomScrollView.d.ts +0 -10
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +0 -61
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +0 -15
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.d.ts +0 -47
- package/dist/cjs/components/DateInput/DateInput.d.ts +0 -15
- package/dist/cjs/components/DatePicker/DatePicker.d.ts +0 -23
- package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts +0 -21
- package/dist/cjs/components/Div/Div.d.ts +0 -9
- package/dist/cjs/components/Dropdown/Dropdown.d.ts +0 -11
- package/dist/cjs/components/DropdownIcon/DropdownIcon.d.ts +0 -3
- package/dist/cjs/components/Epic/Epic.d.ts +0 -11
- package/dist/cjs/components/Epic/ScrollSaver.d.ts +0 -9
- package/dist/cjs/components/File/File.d.ts +0 -13
- package/dist/cjs/components/FixedLayout/FixedLayout.d.ts +0 -21
- package/dist/cjs/components/FocusTrap/FocusTrap.d.ts +0 -11
- package/dist/cjs/components/FocusVisible/FocusVisible.d.ts +0 -10
- package/dist/cjs/components/Footer/Footer.d.ts +0 -8
- package/dist/cjs/components/FormField/FormField.d.ts +0 -36
- package/dist/cjs/components/FormItem/FormItem.d.ts +0 -17
- package/dist/cjs/components/FormLayout/FormLayout.d.ts +0 -8
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.d.ts +0 -15
- package/dist/cjs/components/FormStatus/FormStatus.d.ts +0 -10
- package/dist/cjs/components/Gallery/Gallery.d.ts +0 -10
- package/dist/cjs/components/Gradient/Gradient.d.ts +0 -10
- package/dist/cjs/components/GridAvatar/GridAvatar.d.ts +0 -15
- package/dist/cjs/components/Group/Group.d.ts +0 -25
- package/dist/cjs/components/Header/Header.d.ts +0 -20
- package/dist/cjs/components/HorizontalCell/HorizontalCell.d.ts +0 -13
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +0 -21
- package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.d.ts +0 -8
- package/dist/cjs/components/HoverPopper/HoverPopper.d.ts +0 -29
- package/dist/cjs/components/IconButton/IconButton.d.ts +0 -14
- package/dist/cjs/components/InfoRow/InfoRow.d.ts +0 -9
- package/dist/cjs/components/InitialsAvatar/InitialsAvatar.d.ts +0 -35
- package/dist/cjs/components/Input/Input.d.ts +0 -11
- package/dist/cjs/components/InputLike/InputLike.d.ts +0 -10
- package/dist/cjs/components/InputLike/InputLikeDivider.d.ts +0 -3
- package/dist/cjs/components/Link/Link.d.ts +0 -8
- package/dist/cjs/components/List/List.d.ts +0 -6
- package/dist/cjs/components/List/ListContext.d.ts +0 -4
- package/dist/cjs/components/LocaleProviderContext/LocaleProviderContext.d.ts +0 -2
- package/dist/cjs/components/MiniInfoCell/MiniInfoCell.d.ts +0 -42
- package/dist/cjs/components/ModalCard/ModalCard.d.ts +0 -12
- package/dist/cjs/components/ModalCardBase/ModalCardBase.d.ts +0 -39
- package/dist/cjs/components/ModalDismissButton/ModalDismissButton.d.ts +0 -7
- package/dist/cjs/components/ModalPage/ModalPage.d.ts +0 -39
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.d.ts +0 -10
- package/dist/cjs/components/ModalRoot/ModalRoot.d.ts +0 -28
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.d.ts +0 -25
- package/dist/cjs/components/ModalRoot/ModalRootContext.d.ts +0 -20
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.d.ts +0 -28
- package/dist/cjs/components/ModalRoot/constants.d.ts +0 -3
- package/dist/cjs/components/ModalRoot/types.d.ts +0 -60
- package/dist/cjs/components/ModalRoot/useModalManager.d.ts +0 -38
- package/dist/cjs/components/ModalRoot/withModalRootContext.d.ts +0 -5
- package/dist/cjs/components/NativeSelect/NativeSelect.d.ts +0 -19
- package/dist/cjs/components/NavTransitionContext/NavTransitionContext.d.ts +0 -6
- package/dist/cjs/components/Pagination/Pagination.d.ts +0 -45
- package/dist/cjs/components/Panel/Panel.d.ts +0 -12
- package/dist/cjs/components/PanelHeader/PanelHeader.d.ts +0 -31
- package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.d.ts +0 -12
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.d.ts +0 -11
- package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.d.ts +0 -6
- package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.d.ts +0 -11
- package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.d.ts +0 -10
- package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +0 -20
- package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +0 -6
- package/dist/cjs/components/PanelSpinner/PanelSpinner.d.ts +0 -9
- package/dist/cjs/components/Placeholder/Placeholder.d.ts +0 -25
- package/dist/cjs/components/PopoutRoot/PopoutRoot.d.ts +0 -10
- package/dist/cjs/components/PopoutWrapper/PopoutWrapper.d.ts +0 -13
- package/dist/cjs/components/Popper/Popper.d.ts +0 -35
- package/dist/cjs/components/Progress/Progress.d.ts +0 -10
- package/dist/cjs/components/PromoBanner/PromoBanner.d.ts +0 -43
- package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts +0 -22
- package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.d.ts +0 -10
- package/dist/cjs/components/Radio/Radio.d.ts +0 -11
- package/dist/cjs/components/RadioGroup/RadioGroup.d.ts +0 -9
- package/dist/cjs/components/RangeSlider/RangeSlider.d.ts +0 -8
- package/dist/cjs/components/RangeSlider/UniversalSlider.d.ts +0 -16
- package/dist/cjs/components/Removable/Removable.d.ts +0 -24
- package/dist/cjs/components/RichCell/RichCell.d.ts +0 -47
- package/dist/cjs/components/RichTooltip/RichTooltip.d.ts +0 -8
- package/dist/cjs/components/Root/Root.d.ts +0 -33
- package/dist/cjs/components/ScreenSpinner/ScreenSpinner.d.ts +0 -8
- package/dist/cjs/components/Search/Search.d.ts +0 -16
- package/dist/cjs/components/SegmentedControl/SegmentedControl.d.ts +0 -20
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +0 -7
- package/dist/cjs/components/Select/Select.d.ts +0 -18
- package/dist/cjs/components/SelectMimicry/SelectMimicry.d.ts +0 -15
- package/dist/cjs/components/Separator/Separator.d.ts +0 -16
- package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +0 -41
- package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.d.ts +0 -12
- package/dist/cjs/components/Slider/Slider.d.ts +0 -7
- package/dist/cjs/components/SliderSwitch/SliderSwitch.d.ts +0 -48
- package/dist/cjs/components/SliderSwitch/SliderSwitchButton.d.ts +0 -11
- package/dist/cjs/components/Snackbar/Snackbar.d.ts +0 -38
- package/dist/cjs/components/Spacing/Spacing.d.ts +0 -23
- package/dist/cjs/components/Spinner/Spinner.d.ts +0 -9
- package/dist/cjs/components/SplitCol/SplitCol.d.ts +0 -25
- package/dist/cjs/components/SplitLayout/SplitLayout.d.ts +0 -18
- package/dist/cjs/components/SubnavigationBar/SubnavigationBar.d.ts +0 -10
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.d.ts +0 -24
- package/dist/cjs/components/Switch/Switch.d.ts +0 -10
- package/dist/cjs/components/Tabbar/Tabbar.d.ts +0 -13
- package/dist/cjs/components/TabbarItem/TabbarItem.d.ts +0 -23
- package/dist/cjs/components/Tabs/Tabs.d.ts +0 -12
- package/dist/cjs/components/TabsItem/TabsItem.d.ts +0 -10
- package/dist/cjs/components/Tappable/Tappable.d.ts +0 -45
- package/dist/cjs/components/TextTooltip/TextTooltip.d.ts +0 -17
- package/dist/cjs/components/Textarea/Textarea.d.ts +0 -10
- package/dist/cjs/components/Tooltip/Tooltip.d.ts +0 -57
- package/dist/cjs/components/Tooltip/TooltipContainer.d.ts +0 -5
- package/dist/cjs/components/Touch/Touch.d.ts +0 -52
- package/dist/cjs/components/Touch/TouchContext.d.ts +0 -7
- package/dist/cjs/components/Typography/Caption/Caption.d.ts +0 -17
- package/dist/cjs/components/Typography/Footnote/Footnote.d.ts +0 -14
- package/dist/cjs/components/Typography/Headline/Headline.d.ts +0 -16
- package/dist/cjs/components/Typography/Paragraph/Paragraph.d.ts +0 -13
- package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +0 -15
- package/dist/cjs/components/Typography/Text/Text.d.ts +0 -15
- package/dist/cjs/components/Typography/Title/Title.d.ts +0 -16
- package/dist/cjs/components/UsersStack/UsersStack.d.ts +0 -25
- package/dist/cjs/components/UsersStack/masks.d.ts +0 -1
- package/dist/cjs/components/View/View.d.ts +0 -83
- package/dist/cjs/components/View/ViewInfinite.d.ts +0 -66
- package/dist/cjs/components/View/utils.d.ts +0 -2
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +0 -12
- package/dist/cjs/components/WriteBar/WriteBar.d.ts +0 -26
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.d.ts +0 -21
- package/dist/cjs/helpers/avatar.d.ts +0 -5
- package/dist/cjs/helpers/getClassName.d.ts +0 -2
- package/dist/cjs/helpers/getScheme.d.ts +0 -8
- package/dist/cjs/helpers/math.d.ts +0 -5
- package/dist/cjs/helpers/scheme.d.ts +0 -34
- package/dist/cjs/hoc/withAdaptivity.d.ts +0 -13
- package/dist/cjs/hoc/withContext.d.ts +0 -2
- package/dist/cjs/hoc/withInsets.d.ts +0 -3
- package/dist/cjs/hoc/withPlatform.d.ts +0 -3
- package/dist/cjs/hooks/useAdaptivity.d.ts +0 -4
- package/dist/cjs/hooks/useAppearance.d.ts +0 -1
- package/dist/cjs/hooks/useBooleanState.d.ts +0 -6
- package/dist/cjs/hooks/useBridgeAdaptivity.d.ts +0 -6
- package/dist/cjs/hooks/useBrowserInfo.d.ts +0 -2
- package/dist/cjs/hooks/useCalendar.d.ts +0 -19
- package/dist/cjs/hooks/useDateInput.d.ts +0 -30
- package/dist/cjs/hooks/useEffectDev.d.ts +0 -2
- package/dist/cjs/hooks/useEnsuredControl.d.ts +0 -6
- package/dist/cjs/hooks/useEventListener.d.ts +0 -7
- package/dist/cjs/hooks/useExternRef.d.ts +0 -2
- package/dist/cjs/hooks/useFocusVisible.d.ts +0 -6
- package/dist/cjs/hooks/useGlobalEventListener.d.ts +0 -2
- package/dist/cjs/hooks/useInsets.d.ts +0 -8
- package/dist/cjs/hooks/useKeyboard.d.ts +0 -10
- package/dist/cjs/hooks/useKeyboardInputTracker.d.ts +0 -3
- package/dist/cjs/hooks/useObjectMemo.d.ts +0 -2
- package/dist/cjs/hooks/useOrientationChange.d.ts +0 -7
- package/dist/cjs/hooks/usePagination.d.ts +0 -34
- package/dist/cjs/hooks/usePatchChildrenRef.d.ts +0 -6
- package/dist/cjs/hooks/usePlatform.d.ts +0 -2
- package/dist/cjs/hooks/usePrevious.d.ts +0 -1
- package/dist/cjs/hooks/useTimeout.d.ts +0 -4
- package/dist/cjs/hooks/useWaitTransitionFinish.d.ts +0 -3
- package/dist/cjs/index.d.ts +0 -305
- package/dist/cjs/lib/SSR.d.ts +0 -17
- package/dist/cjs/lib/accessibility.d.ts +0 -10
- package/dist/cjs/lib/animate.d.ts +0 -15
- package/dist/cjs/lib/browser.d.ts +0 -11
- package/dist/cjs/lib/calendar.d.ts +0 -14
- package/dist/cjs/lib/callMultiple.d.ts +0 -1
- package/dist/cjs/lib/classNames.d.ts +0 -6
- package/dist/cjs/lib/classScopingMode.d.ts +0 -8
- package/dist/cjs/lib/date.d.ts +0 -29
- package/dist/cjs/lib/dom.d.ts +0 -21
- package/dist/cjs/lib/fx.d.ts +0 -5
- package/dist/cjs/lib/getNavId.d.ts +0 -7
- package/dist/cjs/lib/is.d.ts +0 -1
- package/dist/cjs/lib/isRefObject.d.ts +0 -2
- package/dist/cjs/lib/jsxRuntime.d.ts +0 -8
- package/dist/cjs/lib/offset.d.ts +0 -7
- package/dist/cjs/lib/platform.d.ts +0 -19
- package/dist/cjs/lib/polyfills.d.ts +0 -6
- package/dist/cjs/lib/prefixClass.d.ts +0 -1
- package/dist/cjs/lib/removeObjectKeys.d.ts +0 -1
- package/dist/cjs/lib/select.d.ts +0 -9
- package/dist/cjs/lib/styles.d.ts +0 -1
- package/dist/cjs/lib/supportEvents.d.ts +0 -9
- package/dist/cjs/lib/taptic.d.ts +0 -2
- package/dist/cjs/lib/testing.d.ts +0 -1
- package/dist/cjs/lib/touch.d.ts +0 -9
- package/dist/cjs/lib/useIsomorphicLayoutEffect.d.ts +0 -2
- package/dist/cjs/lib/utils.d.ts +0 -16
- package/dist/cjs/lib/warnOnce.d.ts +0 -2
- package/dist/cjs/tokenized/index.d.ts +0 -126
- package/dist/cjs/types.d.ts +0 -34
- package/dist/cjs/unstable/index.d.ts +0 -17
|
@@ -9,21 +9,28 @@ exports.CustomScrollView = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _jsxRuntime = require("../../lib/jsxRuntime");
|
|
11
11
|
|
|
12
|
-
var _dom = require("../../lib/dom");
|
|
13
|
-
|
|
14
12
|
var React = _interopRequireWildcard(require("react"));
|
|
15
13
|
|
|
16
|
-
var
|
|
14
|
+
var _dom = require("../../lib/dom");
|
|
15
|
+
|
|
16
|
+
var _classNames = require("../../lib/classNames");
|
|
17
17
|
|
|
18
18
|
var _useIsomorphicLayoutEffect = require("../../lib/useIsomorphicLayoutEffect");
|
|
19
19
|
|
|
20
|
+
var _useExternRef = require("../../hooks/useExternRef");
|
|
21
|
+
|
|
20
22
|
var _useEventListener = require("../../hooks/useEventListener");
|
|
21
23
|
|
|
24
|
+
var _useTrackerVisibility2 = require("./useTrackerVisibility");
|
|
25
|
+
|
|
22
26
|
var CustomScrollView = function CustomScrollView(_ref) {
|
|
23
27
|
var className = _ref.className,
|
|
24
28
|
children = _ref.children,
|
|
25
29
|
externalBoxRef = _ref.boxRef,
|
|
26
|
-
windowResize = _ref.windowResize
|
|
30
|
+
windowResize = _ref.windowResize,
|
|
31
|
+
_ref$autoHideScrollba = _ref.autoHideScrollbar,
|
|
32
|
+
autoHideScrollbar = _ref$autoHideScrollba === void 0 ? false : _ref$autoHideScrollba,
|
|
33
|
+
autoHideScrollbarDelay = _ref.autoHideScrollbarDelay;
|
|
27
34
|
|
|
28
35
|
var _useDOM = (0, _dom.useDOM)(),
|
|
29
36
|
document = _useDOM.document,
|
|
@@ -116,8 +123,21 @@ var CustomScrollView = function CustomScrollView(_ref) {
|
|
|
116
123
|
setScrollPositionFromTracker(position);
|
|
117
124
|
};
|
|
118
125
|
|
|
126
|
+
var _useTrackerVisibility = (0, _useTrackerVisibility2.useTrackerVisibility)(autoHideScrollbar, autoHideScrollbarDelay),
|
|
127
|
+
trackerVisible = _useTrackerVisibility.trackerVisible,
|
|
128
|
+
onTargetScroll = _useTrackerVisibility.onTargetScroll,
|
|
129
|
+
onTrackerDragStart = _useTrackerVisibility.onTrackerDragStart,
|
|
130
|
+
onTrackerDragStop = _useTrackerVisibility.onTrackerDragStop,
|
|
131
|
+
onTrackerMouseEnter = _useTrackerVisibility.onTrackerMouseEnter,
|
|
132
|
+
onTrackerMouseLeave = _useTrackerVisibility.onTrackerMouseLeave;
|
|
133
|
+
|
|
119
134
|
var onUp = function onUp(e) {
|
|
120
135
|
e.preventDefault();
|
|
136
|
+
|
|
137
|
+
if (autoHideScrollbar) {
|
|
138
|
+
onTrackerDragStop();
|
|
139
|
+
}
|
|
140
|
+
|
|
121
141
|
unsubscribe();
|
|
122
142
|
};
|
|
123
143
|
|
|
@@ -126,6 +146,10 @@ var CustomScrollView = function CustomScrollView(_ref) {
|
|
|
126
146
|
return;
|
|
127
147
|
}
|
|
128
148
|
|
|
149
|
+
if (autoHideScrollbar) {
|
|
150
|
+
onTargetScroll();
|
|
151
|
+
}
|
|
152
|
+
|
|
129
153
|
setTrackerPositionFromScroll(boxRef.current.scrollTop);
|
|
130
154
|
};
|
|
131
155
|
|
|
@@ -149,6 +173,11 @@ var CustomScrollView = function CustomScrollView(_ref) {
|
|
|
149
173
|
e.preventDefault();
|
|
150
174
|
startY.current = e.clientY;
|
|
151
175
|
trackerTop.current = lastTrackerTop.current;
|
|
176
|
+
|
|
177
|
+
if (autoHideScrollbar) {
|
|
178
|
+
onTrackerDragStart();
|
|
179
|
+
}
|
|
180
|
+
|
|
152
181
|
subscribe(document);
|
|
153
182
|
};
|
|
154
183
|
|
|
@@ -159,7 +188,9 @@ var CustomScrollView = function CustomScrollView(_ref) {
|
|
|
159
188
|
vkuiClass: "CustomScrollView__barY",
|
|
160
189
|
ref: barY
|
|
161
190
|
}, (0, _jsxRuntime.createScopedElement)("div", {
|
|
162
|
-
vkuiClass: "CustomScrollView__trackerY",
|
|
191
|
+
vkuiClass: (0, _classNames.classNames)("CustomScrollView__trackerY", !trackerVisible && "CustomScrollView__trackerY--hidden"),
|
|
192
|
+
onMouseEnter: autoHideScrollbar ? onTrackerMouseEnter : undefined,
|
|
193
|
+
onMouseLeave: autoHideScrollbar ? onTrackerMouseLeave : undefined,
|
|
163
194
|
ref: trackerY,
|
|
164
195
|
onMouseDown: onDragStart
|
|
165
196
|
})), (0, _jsxRuntime.createScopedElement)("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/CustomScrollView/CustomScrollView.tsx"],"names":["CustomScrollView","className","children","externalBoxRef","boxRef","windowResize","document","window","ratio","React","useRef","NaN","lastTrackerTop","clientHeight","trackerHeight","scrollHeight","transformProp","startY","trackerTop","barY","trackerY","setTrackerPosition","scrollTop","current","style","setTrackerPositionFromScroll","progress","resize","localClientHeight","localScrollHeight","localRatio","localTrackerHeight","Math","max","display","height","resizeHandler","add","prop","undefined","setScrollPositionFromTracker","onMove","e","preventDefault","diff","clientY","position","min","onUp","unsubscribe","scroll","listeners","subscribe","el","forEach","l","remove","onDragStart"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAUO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,OAKH;AAAA,MAJ3BC,SAI2B,QAJ3BA,SAI2B;AAAA,MAH3BC,QAG2B,QAH3BA,QAG2B;AAAA,MAFnBC,cAEmB,QAF3BC,MAE2B;AAAA,MAD3BC,YAC2B,QAD3BA,YAC2B;;AAC3B,gBAA6B,kBAA7B;AAAA,MAAQC,QAAR,WAAQA,QAAR;AAAA,MAAkBC,MAAlB,WAAkBA,MAAlB;;AAEA,MAAMC,KAAK,GAAGC,KAAK,CAACC,MAAN,CAAaC,GAAb,CAAd;AACA,MAAMC,cAAc,GAAGH,KAAK,CAACC,MAAN,CAAa,CAAb,CAAvB;AACA,MAAMG,YAAY,GAAGJ,KAAK,CAACC,MAAN,CAAa,CAAb,CAArB;AACA,MAAMI,aAAa,GAAGL,KAAK,CAACC,MAAN,CAAa,CAAb,CAAtB;AACA,MAAMK,YAAY,GAAGN,KAAK,CAACC,MAAN,CAAa,CAAb,CAArB;AACA,MAAMM,aAAa,GAAGP,KAAK,CAACC,MAAN,CAAa,EAAb,CAAtB;AACA,MAAMO,MAAM,GAAGR,KAAK,CAACC,MAAN,CAAa,CAAb,CAAf;AACA,MAAMQ,UAAU,GAAGT,KAAK,CAACC,MAAN,CAAa,CAAb,CAAnB;AAEA,MAAMN,MAAM,GAAG,gCAAaD,cAAb,CAAf;AAEA,MAAMgB,IAAI,GAAGV,KAAK,CAACC,MAAN,CAA6B,IAA7B,CAAb;AACA,MAAMU,QAAQ,GAAGX,KAAK,CAACC,MAAN,CAA6B,IAA7B,CAAjB;;AAEA,MAAMW,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,SAAD,EAAuB;AAChDV,IAAAA,cAAc,CAACW,OAAf,GAAyBD,SAAzB;;AACA,QAAIF,QAAQ,CAACG,OAAT,KAAqB,IAAzB,EAA+B;AAC5BH,MAAAA,QAAQ,CAACG,OAAT,CAAiBC,KAAlB,CACER,aAAa,CAACO,OADhB,2BAEoBD,SAFpB;AAGD;AACF,GAPD;;AASA,MAAMG,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACH,SAAD,EAAuB;AAC1D,QAAMI,QAAQ,GAAGJ,SAAS,IAAIP,YAAY,CAACQ,OAAb,GAAuBV,YAAY,CAACU,OAAxC,CAA1B;AACAF,IAAAA,kBAAkB,CAChB,CAACR,YAAY,CAACU,OAAb,GAAuBT,aAAa,CAACS,OAAtC,IAAiDG,QADjC,CAAlB;AAGD,GALD;;AAOA,MAAMC,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB,QAAI,CAACvB,MAAM,CAACmB,OAAR,IAAmB,CAACJ,IAAI,CAACI,OAAzB,IAAoC,CAACH,QAAQ,CAACG,OAAlD,EAA2D;AACzD;AACD;;AACD,QAAMK,iBAAiB,GAAGxB,MAAM,CAACmB,OAAP,CAAeV,YAAzC;AACA,QAAMgB,iBAAiB,GAAGzB,MAAM,CAACmB,OAAP,CAAeR,YAAzC;AACA,QAAMe,UAAU,GAAGF,iBAAiB,GAAGC,iBAAvC;AACA,QAAME,kBAAkB,GAAGC,IAAI,CAACC,GAAL,CAASL,iBAAiB,GAAGE,UAA7B,EAAyC,EAAzC,CAA3B;AAEAtB,IAAAA,KAAK,CAACe,OAAN,GAAgBO,UAAhB;AACAjB,IAAAA,YAAY,CAACU,OAAb,GAAuBK,iBAAvB;AACAb,IAAAA,YAAY,CAACQ,OAAb,GAAuBM,iBAAvB;AACAf,IAAAA,aAAa,CAACS,OAAd,GAAwBQ,kBAAxB;;AAEA,QAAID,UAAU,IAAI,CAAlB,EAAqB;AACnBX,MAAAA,IAAI,CAACI,OAAL,CAAaC,KAAb,CAAmBU,OAAnB,GAA6B,MAA7B;AACD,KAFD,MAEO;AACLf,MAAAA,IAAI,CAACI,OAAL,CAAaC,KAAb,CAAmBU,OAAnB,GAA6B,EAA7B;AACAd,MAAAA,QAAQ,CAACG,OAAT,CAAiBC,KAAjB,CAAuBW,MAAvB,aAAmCJ,kBAAnC;AACAN,MAAAA,4BAA4B,CAACrB,MAAM,CAACmB,OAAP,CAAeD,SAAhB,CAA5B;AACD;AACF,GArBD;;AAuBA,MAAMc,aAAa,GAAG,wCAAiB,QAAjB,EAA2BT,MAA3B,CAAtB;AAEA,4DAA0B,YAAM;AAC9B,QAAItB,YAAY,IAAIE,MAApB,EAA4B;AAC1B6B,MAAAA,aAAa,CAACC,GAAd,CAAkB9B,MAAlB;AACD;AACF,GAJD,EAIG,CAACF,YAAD,EAAeE,MAAf,CAJH;AAMA,4DAA0B,YAAM;AAAA;;AAC9B,QAAIiB,KAAK,wBAAGJ,QAAQ,CAACG,OAAZ,sDAAG,kBAAkBC,KAA9B;AACA,QAAIc,IAAI,GAAG,EAAX;;AACA,QAAId,KAAK,KAAKe,SAAd,EAAyB;AACvB,UAAI,eAAef,KAAnB,EAA0B;AACxBc,QAAAA,IAAI,GAAG,WAAP;AACD,OAFD,MAEO,IAAI,qBAAqBd,KAAzB,EAAgC;AACrCc,QAAAA,IAAI,GAAG,iBAAP;AACD;AACF;;AACDtB,IAAAA,aAAa,CAACO,OAAd,GAAwBe,IAAxB;AACD,GAXD,EAWG,EAXH;AAaA,4DAA0BX,MAA1B;;AAEA,MAAMa,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACtB,UAAD,EAAwB;AAC3D,QAAMQ,QAAQ,GACZR,UAAU,IAAIL,YAAY,CAACU,OAAb,GAAuBT,aAAa,CAACS,OAAzC,CADZ;;AAEA,QAAInB,MAAM,CAACmB,OAAP,KAAmB,IAAvB,EAA6B;AAC3BnB,MAAAA,MAAM,CAACmB,OAAP,CAAeD,SAAf,GACE,CAACP,YAAY,CAACQ,OAAb,GAAuBV,YAAY,CAACU,OAArC,IAAgDG,QADlD;AAED;AACF,GAPD;;AASA,MAAMe,MAAM,GAAG,SAATA,MAAS,CAACC,CAAD,EAAmB;AAChCA,IAAAA,CAAC,CAACC,cAAF;AACA,QAAMC,IAAI,GAAGF,CAAC,CAACG,OAAF,GAAY5B,MAAM,CAACM,OAAhC;AACA,QAAMuB,QAAQ,GAAGd,IAAI,CAACe,GAAL,CACff,IAAI,CAACC,GAAL,CAASf,UAAU,CAACK,OAAX,GAAqBqB,IAA9B,EAAoC,CAApC,CADe,EAEf/B,YAAY,CAACU,OAAb,GAAuBT,aAAa,CAACS,OAFtB,CAAjB;AAKAiB,IAAAA,4BAA4B,CAACM,QAAD,CAA5B;AACD,GATD;;AAWA,MAAME,IAAI,GAAG,SAAPA,IAAO,CAACN,CAAD,EAAmB;AAC9BA,IAAAA,CAAC,CAACC,cAAF;AACAM,IAAAA,WAAW;AACZ,GAHD;;AAKA,MAAMC,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB,QAAI1C,KAAK,CAACe,OAAN,IAAiB,CAAjB,IAAsB,CAACnB,MAAM,CAACmB,OAAlC,EAA2C;AACzC;AACD;;AAEDE,IAAAA,4BAA4B,CAACrB,MAAM,CAACmB,OAAP,CAAeD,SAAhB,CAA5B;AACD,GAND;;AAQA,MAAM6B,SAAS,GAAG,CAChB,wCAAiB,WAAjB,EAA8BV,MAA9B,CADgB,EAEhB,wCAAiB,SAAjB,EAA4BO,IAA5B,CAFgB,CAAlB;;AAKA,WAASI,SAAT,CAAmBC,EAAnB,EAA6C;AAC3C,QAAIA,EAAJ,EAAQ;AACNF,MAAAA,SAAS,CAACG,OAAV,CAAkB,UAACC,CAAD;AAAA,eAAOA,CAAC,CAAClB,GAAF,CAAMgB,EAAN,CAAP;AAAA,OAAlB;AACD;AACF;;AAED,WAASJ,WAAT,GAAuB;AACrBE,IAAAA,SAAS,CAACG,OAAV,CAAkB,UAACC,CAAD;AAAA,aAAOA,CAAC,CAACC,MAAF,EAAP;AAAA,KAAlB;AACD;;AAED,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAACf,CAAD,EAAyB;AAC3CA,IAAAA,CAAC,CAACC,cAAF;AACA1B,IAAAA,MAAM,CAACM,OAAP,GAAiBmB,CAAC,CAACG,OAAnB;AACA3B,IAAAA,UAAU,CAACK,OAAX,GAAqBX,cAAc,CAACW,OAApC;AAEA6B,IAAAA,SAAS,CAAC9C,QAAD,CAAT;AACD,GAND;;AAQA,SACE;AAAK,IAAA,SAAS,EAAC,kBAAf;AAAkC,IAAA,SAAS,EAAEL;AAA7C,KACE;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAwC,IAAA,GAAG,EAAEkB;AAA7C,KACE;AACE,IAAA,SAAS,EAAC,4BADZ;AAEE,IAAA,GAAG,EAAEC,QAFP;AAGE,IAAA,WAAW,EAAEqC;AAHf,IADF,CADF,EASE;AACE,IAAA,SAAS,EAAC,uBADZ;AAEE,IAAA,QAAQ,EAAE,CAAC,CAFb;AAGE,IAAA,GAAG,EAAErD,MAHP;AAIE,IAAA,QAAQ,EAAE8C;AAJZ,KAMGhD,QANH,CATF,CADF;AAoBD,CAhKM","sourcesContent":["import { DOMProps, useDOM } from \"../../lib/dom\";\nimport * as React from \"react\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useEventListener } from \"../../hooks/useEventListener\";\nimport \"./CustomScrollView.css\";\n\nexport interface CustomScrollViewProps extends DOMProps {\n windowResize?: boolean;\n boxRef?: React.Ref<HTMLDivElement>;\n className?: HTMLDivElement[\"className\"];\n children: React.ReactNode;\n}\n\nexport const CustomScrollView = ({\n className,\n children,\n boxRef: externalBoxRef,\n windowResize,\n}: CustomScrollViewProps) => {\n const { document, window } = useDOM();\n\n const ratio = React.useRef(NaN);\n const lastTrackerTop = React.useRef(0);\n const clientHeight = React.useRef(0);\n const trackerHeight = React.useRef(0);\n const scrollHeight = React.useRef(0);\n const transformProp = React.useRef(\"\");\n const startY = React.useRef(0);\n const trackerTop = React.useRef(0);\n\n const boxRef = useExternRef(externalBoxRef);\n\n const barY = React.useRef<HTMLDivElement>(null);\n const trackerY = React.useRef<HTMLDivElement>(null);\n\n const setTrackerPosition = (scrollTop: number) => {\n lastTrackerTop.current = scrollTop;\n if (trackerY.current !== null) {\n (trackerY.current.style as any)[\n transformProp.current\n ] = `translate(0, ${scrollTop}px)`;\n }\n };\n\n const setTrackerPositionFromScroll = (scrollTop: number) => {\n const progress = scrollTop / (scrollHeight.current - clientHeight.current);\n setTrackerPosition(\n (clientHeight.current - trackerHeight.current) * progress\n );\n };\n\n const resize = () => {\n if (!boxRef.current || !barY.current || !trackerY.current) {\n return;\n }\n const localClientHeight = boxRef.current.clientHeight;\n const localScrollHeight = boxRef.current.scrollHeight;\n const localRatio = localClientHeight / localScrollHeight;\n const localTrackerHeight = Math.max(localClientHeight * localRatio, 40);\n\n ratio.current = localRatio;\n clientHeight.current = localClientHeight;\n scrollHeight.current = localScrollHeight;\n trackerHeight.current = localTrackerHeight;\n\n if (localRatio >= 1) {\n barY.current.style.display = \"none\";\n } else {\n barY.current.style.display = \"\";\n trackerY.current.style.height = `${localTrackerHeight}px`;\n setTrackerPositionFromScroll(boxRef.current.scrollTop);\n }\n };\n\n const resizeHandler = useEventListener(\"resize\", resize);\n\n useIsomorphicLayoutEffect(() => {\n if (windowResize && window) {\n resizeHandler.add(window);\n }\n }, [windowResize, window]);\n\n useIsomorphicLayoutEffect(() => {\n let style = trackerY.current?.style;\n let prop = \"\";\n if (style !== undefined) {\n if (\"transform\" in style) {\n prop = \"transform\";\n } else if (\"webkitTransform\" in style) {\n prop = \"webkitTransform\";\n }\n }\n transformProp.current = prop;\n }, []);\n\n useIsomorphicLayoutEffect(resize);\n\n const setScrollPositionFromTracker = (trackerTop: number) => {\n const progress =\n trackerTop / (clientHeight.current - trackerHeight.current);\n if (boxRef.current !== null) {\n boxRef.current.scrollTop =\n (scrollHeight.current - clientHeight.current) * progress;\n }\n };\n\n const onMove = (e: MouseEvent) => {\n e.preventDefault();\n const diff = e.clientY - startY.current;\n const position = Math.min(\n Math.max(trackerTop.current + diff, 0),\n clientHeight.current - trackerHeight.current\n );\n\n setScrollPositionFromTracker(position);\n };\n\n const onUp = (e: MouseEvent) => {\n e.preventDefault();\n unsubscribe();\n };\n\n const scroll = () => {\n if (ratio.current >= 1 || !boxRef.current) {\n return;\n }\n\n setTrackerPositionFromScroll(boxRef.current.scrollTop);\n };\n\n const listeners = [\n useEventListener(\"mousemove\", onMove),\n useEventListener(\"mouseup\", onUp),\n ];\n\n function subscribe(el: Document | undefined) {\n if (el) {\n listeners.forEach((l) => l.add(el));\n }\n }\n\n function unsubscribe() {\n listeners.forEach((l) => l.remove());\n }\n\n const onDragStart = (e: React.MouseEvent) => {\n e.preventDefault();\n startY.current = e.clientY;\n trackerTop.current = lastTrackerTop.current;\n\n subscribe(document);\n };\n\n return (\n <div vkuiClass=\"CustomScrollView\" className={className}>\n <div vkuiClass=\"CustomScrollView__barY\" ref={barY}>\n <div\n vkuiClass=\"CustomScrollView__trackerY\"\n ref={trackerY}\n onMouseDown={onDragStart}\n />\n </div>\n\n <div\n vkuiClass=\"CustomScrollView__box\"\n tabIndex={-1}\n ref={boxRef}\n onScroll={scroll}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"file":"CustomScrollView.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CustomScrollView/CustomScrollView.tsx"],"names":["CustomScrollView","className","children","externalBoxRef","boxRef","windowResize","autoHideScrollbar","autoHideScrollbarDelay","document","window","ratio","React","useRef","NaN","lastTrackerTop","clientHeight","trackerHeight","scrollHeight","transformProp","startY","trackerTop","barY","trackerY","setTrackerPosition","scrollTop","current","style","setTrackerPositionFromScroll","progress","resize","localClientHeight","localScrollHeight","localRatio","localTrackerHeight","Math","max","display","height","resizeHandler","add","prop","undefined","setScrollPositionFromTracker","onMove","e","preventDefault","diff","clientY","position","min","trackerVisible","onTargetScroll","onTrackerDragStart","onTrackerDragStop","onTrackerMouseEnter","onTrackerMouseLeave","onUp","unsubscribe","scroll","listeners","subscribe","el","forEach","l","remove","onDragStart"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { DOMProps, useDOM } from \"../../lib/dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useEventListener } from \"../../hooks/useEventListener\";\nimport {\n TrackerOptionsProps,\n useTrackerVisibility,\n} from \"./useTrackerVisibility\";\nimport \"./CustomScrollView.css\";\n\nexport interface CustomScrollViewProps extends DOMProps, TrackerOptionsProps {\n windowResize?: boolean;\n boxRef?: React.Ref<HTMLDivElement>;\n className?: HTMLDivElement[\"className\"];\n children: React.ReactNode;\n}\n\nexport const CustomScrollView = ({\n className,\n children,\n boxRef: externalBoxRef,\n windowResize,\n autoHideScrollbar = false,\n autoHideScrollbarDelay,\n}: CustomScrollViewProps) => {\n const { document, window } = useDOM();\n\n const ratio = React.useRef(NaN);\n const lastTrackerTop = React.useRef(0);\n const clientHeight = React.useRef(0);\n const trackerHeight = React.useRef(0);\n const scrollHeight = React.useRef(0);\n const transformProp = React.useRef(\"\");\n const startY = React.useRef(0);\n const trackerTop = React.useRef(0);\n\n const boxRef = useExternRef(externalBoxRef);\n\n const barY = React.useRef<HTMLDivElement>(null);\n const trackerY = React.useRef<HTMLDivElement>(null);\n\n const setTrackerPosition = (scrollTop: number) => {\n lastTrackerTop.current = scrollTop;\n if (trackerY.current !== null) {\n (trackerY.current.style as any)[\n transformProp.current\n ] = `translate(0, ${scrollTop}px)`;\n }\n };\n\n const setTrackerPositionFromScroll = (scrollTop: number) => {\n const progress = scrollTop / (scrollHeight.current - clientHeight.current);\n setTrackerPosition(\n (clientHeight.current - trackerHeight.current) * progress\n );\n };\n\n const resize = () => {\n if (!boxRef.current || !barY.current || !trackerY.current) {\n return;\n }\n const localClientHeight = boxRef.current.clientHeight;\n const localScrollHeight = boxRef.current.scrollHeight;\n const localRatio = localClientHeight / localScrollHeight;\n const localTrackerHeight = Math.max(localClientHeight * localRatio, 40);\n\n ratio.current = localRatio;\n clientHeight.current = localClientHeight;\n scrollHeight.current = localScrollHeight;\n trackerHeight.current = localTrackerHeight;\n\n if (localRatio >= 1) {\n barY.current.style.display = \"none\";\n } else {\n barY.current.style.display = \"\";\n trackerY.current.style.height = `${localTrackerHeight}px`;\n setTrackerPositionFromScroll(boxRef.current.scrollTop);\n }\n };\n\n const resizeHandler = useEventListener(\"resize\", resize);\n\n useIsomorphicLayoutEffect(() => {\n if (windowResize && window) {\n resizeHandler.add(window);\n }\n }, [windowResize, window]);\n\n useIsomorphicLayoutEffect(() => {\n let style = trackerY.current?.style;\n let prop = \"\";\n if (style !== undefined) {\n if (\"transform\" in style) {\n prop = \"transform\";\n } else if (\"webkitTransform\" in style) {\n prop = \"webkitTransform\";\n }\n }\n transformProp.current = prop;\n }, []);\n\n useIsomorphicLayoutEffect(resize);\n\n const setScrollPositionFromTracker = (trackerTop: number) => {\n const progress =\n trackerTop / (clientHeight.current - trackerHeight.current);\n if (boxRef.current !== null) {\n boxRef.current.scrollTop =\n (scrollHeight.current - clientHeight.current) * progress;\n }\n };\n\n const onMove = (e: MouseEvent) => {\n e.preventDefault();\n const diff = e.clientY - startY.current;\n const position = Math.min(\n Math.max(trackerTop.current + diff, 0),\n clientHeight.current - trackerHeight.current\n );\n\n setScrollPositionFromTracker(position);\n };\n\n const {\n trackerVisible,\n onTargetScroll,\n onTrackerDragStart,\n onTrackerDragStop,\n onTrackerMouseEnter,\n onTrackerMouseLeave,\n } = useTrackerVisibility(autoHideScrollbar, autoHideScrollbarDelay);\n\n const onUp = (e: MouseEvent) => {\n e.preventDefault();\n\n if (autoHideScrollbar) {\n onTrackerDragStop();\n }\n\n unsubscribe();\n };\n\n const scroll = () => {\n if (ratio.current >= 1 || !boxRef.current) {\n return;\n }\n\n if (autoHideScrollbar) {\n onTargetScroll();\n }\n\n setTrackerPositionFromScroll(boxRef.current.scrollTop);\n };\n\n const listeners = [\n useEventListener(\"mousemove\", onMove),\n useEventListener(\"mouseup\", onUp),\n ];\n\n function subscribe(el: Document | undefined) {\n if (el) {\n listeners.forEach((l) => l.add(el));\n }\n }\n\n function unsubscribe() {\n listeners.forEach((l) => l.remove());\n }\n\n const onDragStart = (e: React.MouseEvent) => {\n e.preventDefault();\n startY.current = e.clientY;\n trackerTop.current = lastTrackerTop.current;\n\n if (autoHideScrollbar) {\n onTrackerDragStart();\n }\n\n subscribe(document);\n };\n\n return (\n <div vkuiClass=\"CustomScrollView\" className={className}>\n <div vkuiClass=\"CustomScrollView__barY\" ref={barY}>\n <div\n vkuiClass={classNames(\n \"CustomScrollView__trackerY\",\n !trackerVisible && `CustomScrollView__trackerY--hidden`\n )}\n onMouseEnter={autoHideScrollbar ? onTrackerMouseEnter : undefined}\n onMouseLeave={autoHideScrollbar ? onTrackerMouseLeave : undefined}\n ref={trackerY}\n onMouseDown={onDragStart}\n />\n </div>\n\n <div\n vkuiClass=\"CustomScrollView__box\"\n tabIndex={-1}\n ref={boxRef}\n onScroll={scroll}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"file":"CustomScrollView.js"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.useTrackerVisibility = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var React = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _useTimeout2 = require("../../hooks/useTimeout");
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Хук, который позволяет управлять видимостью ползунка скроллбара.
|
|
20
|
+
* @param autoHideScrollbar - скрывать ли ползунок скроллбара
|
|
21
|
+
* @param autoHideScrollbarDelay - через какое кол-во миллисекунд ползунок скроллбара скрывается
|
|
22
|
+
* @returns Объект, содержащий параметры, которые позволяют управлять видимостью ползунка
|
|
23
|
+
*/
|
|
24
|
+
var useTrackerVisibility = function useTrackerVisibility() {
|
|
25
|
+
var autoHideScrollbar = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
26
|
+
var autoHideScrollbarDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
|
|
27
|
+
|
|
28
|
+
var _React$useState = React.useState(!autoHideScrollbar),
|
|
29
|
+
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
30
|
+
trackerVisible = _React$useState2[0],
|
|
31
|
+
setTrackerVisible = _React$useState2[1];
|
|
32
|
+
|
|
33
|
+
var isMouseOver = React.useRef(false);
|
|
34
|
+
var isTrackerDragging = React.useRef(false);
|
|
35
|
+
|
|
36
|
+
var _useTimeout = (0, _useTimeout2.useTimeout)(function () {
|
|
37
|
+
return setTrackerVisible(false);
|
|
38
|
+
}, autoHideScrollbarDelay),
|
|
39
|
+
setVisibilityTimeout = _useTimeout.set,
|
|
40
|
+
clearVisibilityTimeout = _useTimeout.clear;
|
|
41
|
+
|
|
42
|
+
var onTrackerDragStart = React.useCallback(function () {
|
|
43
|
+
clearVisibilityTimeout();
|
|
44
|
+
setTrackerVisible(true);
|
|
45
|
+
isTrackerDragging.current = true;
|
|
46
|
+
}, [clearVisibilityTimeout]);
|
|
47
|
+
var onTrackerDragStop = React.useCallback(function () {
|
|
48
|
+
isTrackerDragging.current = false;
|
|
49
|
+
|
|
50
|
+
if (!isMouseOver.current) {
|
|
51
|
+
setVisibilityTimeout();
|
|
52
|
+
}
|
|
53
|
+
}, [setVisibilityTimeout, isMouseOver]);
|
|
54
|
+
/**
|
|
55
|
+
* Позволяет "запланировать" скрытие ползунка через delay миллисекунд. Если тайм-аут не успевает сработать, то каждый
|
|
56
|
+
* последующий вызов функции откладывает скрытие ползунка на delay миллисекунд
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
var queueTrackerVisibility = React.useCallback(function () {
|
|
60
|
+
if (isTrackerDragging.current) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
setTrackerVisible(true);
|
|
65
|
+
setVisibilityTimeout();
|
|
66
|
+
}, [setVisibilityTimeout]);
|
|
67
|
+
var onTrackerMouseEnter = React.useCallback(function () {
|
|
68
|
+
clearVisibilityTimeout();
|
|
69
|
+
isMouseOver.current = true;
|
|
70
|
+
setTrackerVisible(true);
|
|
71
|
+
}, [clearVisibilityTimeout]);
|
|
72
|
+
var onTrackerMouseLeave = React.useCallback(function () {
|
|
73
|
+
queueTrackerVisibility();
|
|
74
|
+
isMouseOver.current = false;
|
|
75
|
+
}, [queueTrackerVisibility]);
|
|
76
|
+
var onTargetScroll = React.useCallback(function () {
|
|
77
|
+
queueTrackerVisibility();
|
|
78
|
+
}, [queueTrackerVisibility]);
|
|
79
|
+
return {
|
|
80
|
+
trackerVisible: trackerVisible,
|
|
81
|
+
onTrackerDragStart: onTrackerDragStart,
|
|
82
|
+
onTrackerDragStop: onTrackerDragStop,
|
|
83
|
+
onTrackerMouseEnter: onTrackerMouseEnter,
|
|
84
|
+
onTrackerMouseLeave: onTrackerMouseLeave,
|
|
85
|
+
onTargetScroll: onTargetScroll
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
exports.useTrackerVisibility = useTrackerVisibility;
|
|
90
|
+
//# sourceMappingURL=useTrackerVisibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CustomScrollView/useTrackerVisibility.ts"],"names":["useTrackerVisibility","autoHideScrollbar","autoHideScrollbarDelay","React","useState","trackerVisible","setTrackerVisible","isMouseOver","useRef","isTrackerDragging","setVisibilityTimeout","set","clearVisibilityTimeout","clear","onTrackerDragStart","useCallback","current","onTrackerDragStop","queueTrackerVisibility","onTrackerMouseEnter","onTrackerMouseLeave","onTargetScroll"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,GAGP;AAAA,MAF3BC,iBAE2B,uEAFP,KAEO;AAAA,MAD3BC,sBAC2B,uEADF,GACE;;AAC3B,wBAA4CC,KAAK,CAACC,QAAN,CAC1C,CAACH,iBADyC,CAA5C;AAAA;AAAA,MAAOI,cAAP;AAAA,MAAuBC,iBAAvB;;AAGA,MAAMC,WAAW,GAAGJ,KAAK,CAACK,MAAN,CAAa,KAAb,CAApB;AACA,MAAMC,iBAAiB,GAAGN,KAAK,CAACK,MAAN,CAAa,KAAb,CAA1B;;AAEA,oBACE,6BAAW;AAAA,WAAMF,iBAAiB,CAAC,KAAD,CAAvB;AAAA,GAAX,EAA2CJ,sBAA3C,CADF;AAAA,MAAaQ,oBAAb,eAAQC,GAAR;AAAA,MAA0CC,sBAA1C,eAAmCC,KAAnC;;AAGA,MAAMC,kBAAkB,GAAGX,KAAK,CAACY,WAAN,CAAkB,YAAM;AACjDH,IAAAA,sBAAsB;AACtBN,IAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACAG,IAAAA,iBAAiB,CAACO,OAAlB,GAA4B,IAA5B;AACD,GAJ0B,EAIxB,CAACJ,sBAAD,CAJwB,CAA3B;AAMA,MAAMK,iBAAiB,GAAGd,KAAK,CAACY,WAAN,CAAkB,YAAM;AAChDN,IAAAA,iBAAiB,CAACO,OAAlB,GAA4B,KAA5B;;AACA,QAAI,CAACT,WAAW,CAACS,OAAjB,EAA0B;AACxBN,MAAAA,oBAAoB;AACrB;AACF,GALyB,EAKvB,CAACA,oBAAD,EAAuBH,WAAvB,CALuB,CAA1B;AAOA;AACF;AACA;AACA;;AACE,MAAMW,sBAAsB,GAAGf,KAAK,CAACY,WAAN,CAAkB,YAAM;AACrD,QAAIN,iBAAiB,CAACO,OAAtB,EAA+B;AAC7B;AACD;;AACDV,IAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACAI,IAAAA,oBAAoB;AACrB,GAN8B,EAM5B,CAACA,oBAAD,CAN4B,CAA/B;AAQA,MAAMS,mBAAmB,GAAGhB,KAAK,CAACY,WAAN,CAAkB,YAAM;AAClDH,IAAAA,sBAAsB;AACtBL,IAAAA,WAAW,CAACS,OAAZ,GAAsB,IAAtB;AACAV,IAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD,GAJ2B,EAIzB,CAACM,sBAAD,CAJyB,CAA5B;AAMA,MAAMQ,mBAAmB,GAAGjB,KAAK,CAACY,WAAN,CAAkB,YAAM;AAClDG,IAAAA,sBAAsB;AACtBX,IAAAA,WAAW,CAACS,OAAZ,GAAsB,KAAtB;AACD,GAH2B,EAGzB,CAACE,sBAAD,CAHyB,CAA5B;AAKA,MAAMG,cAAc,GAAGlB,KAAK,CAACY,WAAN,CAAkB,YAAM;AAC7CG,IAAAA,sBAAsB;AACvB,GAFsB,EAEpB,CAACA,sBAAD,CAFoB,CAAvB;AAIA,SAAO;AACLb,IAAAA,cAAc,EAAdA,cADK;AAELS,IAAAA,kBAAkB,EAAlBA,kBAFK;AAGLG,IAAAA,iBAAiB,EAAjBA,iBAHK;AAILE,IAAAA,mBAAmB,EAAnBA,mBAJK;AAKLC,IAAAA,mBAAmB,EAAnBA,mBALK;AAMLC,IAAAA,cAAc,EAAdA;AANK,GAAP;AAQD,CA7DM","sourcesContent":["import * as React from \"react\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\n\n/**\n * Хук, который позволяет управлять видимостью ползунка скроллбара.\n * @param autoHideScrollbar - скрывать ли ползунок скроллбара\n * @param autoHideScrollbarDelay - через какое кол-во миллисекунд ползунок скроллбара скрывается\n * @returns Объект, содержащий параметры, которые позволяют управлять видимостью ползунка\n */\nexport const useTrackerVisibility = (\n autoHideScrollbar = false,\n autoHideScrollbarDelay = 500\n): TrackerVisibilityProps => {\n const [trackerVisible, setTrackerVisible] = React.useState(\n !autoHideScrollbar\n );\n const isMouseOver = React.useRef(false);\n const isTrackerDragging = React.useRef(false);\n\n const { set: setVisibilityTimeout, clear: clearVisibilityTimeout } =\n useTimeout(() => setTrackerVisible(false), autoHideScrollbarDelay);\n\n const onTrackerDragStart = React.useCallback(() => {\n clearVisibilityTimeout();\n setTrackerVisible(true);\n isTrackerDragging.current = true;\n }, [clearVisibilityTimeout]);\n\n const onTrackerDragStop = React.useCallback(() => {\n isTrackerDragging.current = false;\n if (!isMouseOver.current) {\n setVisibilityTimeout();\n }\n }, [setVisibilityTimeout, isMouseOver]);\n\n /**\n * Позволяет \"запланировать\" скрытие ползунка через delay миллисекунд. Если тайм-аут не успевает сработать, то каждый\n * последующий вызов функции откладывает скрытие ползунка на delay миллисекунд\n */\n const queueTrackerVisibility = React.useCallback(() => {\n if (isTrackerDragging.current) {\n return;\n }\n setTrackerVisible(true);\n setVisibilityTimeout();\n }, [setVisibilityTimeout]);\n\n const onTrackerMouseEnter = React.useCallback(() => {\n clearVisibilityTimeout();\n isMouseOver.current = true;\n setTrackerVisible(true);\n }, [clearVisibilityTimeout]);\n\n const onTrackerMouseLeave = React.useCallback(() => {\n queueTrackerVisibility();\n isMouseOver.current = false;\n }, [queueTrackerVisibility]);\n\n const onTargetScroll = React.useCallback(() => {\n queueTrackerVisibility();\n }, [queueTrackerVisibility]);\n\n return {\n trackerVisible,\n onTrackerDragStart,\n onTrackerDragStop,\n onTrackerMouseEnter,\n onTrackerMouseLeave,\n onTargetScroll,\n };\n};\n\nexport interface TrackerOptionsProps {\n /**\n * Скрывать ли ползунок скроллбара\n */\n autoHideScrollbar?: boolean;\n /**\n * Через какое кол-во миллисекунд ползунок скроллбара скрывается\n */\n autoHideScrollbarDelay?: number;\n}\n\nexport interface TrackerVisibilityProps {\n /**\n * Отвечает за видимость ползунка\n */\n trackerVisible: boolean;\n /**\n * Функция для обработки события у блока со скроллом\n */\n onTargetScroll(this: void): void;\n /**\n * Функция для обработки начала drag event ползунка\n */\n onTrackerDragStart(this: void): void;\n /**\n * Функция для обработки окончания drag event ползунка\n */\n onTrackerDragStop(this: void): void;\n /**\n * Функция для обработки mouseLeave event ползунка\n */\n onTrackerMouseEnter(this: void): void;\n /**\n * Функция для обработки mouseEnter event ползунка\n */\n onTrackerMouseLeave(this: void): void;\n}\n"],"file":"useTrackerVisibility.js"}
|
|
@@ -61,7 +61,7 @@ var _CustomSelectDropdown = require("../CustomSelectDropdown/CustomSelectDropdow
|
|
|
61
61
|
|
|
62
62
|
var _Select = require("../Select/Select");
|
|
63
63
|
|
|
64
|
-
var _excluded = ["before", "searchable", "name", "className", "getRef", "getRootRef", "popupDirection", "options", "sizeY", "platform", "style", "onChange", "onBlur", "onFocus", "onClick", "renderOption", "children", "emptyText", "onInputChange", "filterFn", "renderDropdown", "onOpen", "onClose", "fetching", "icon", "dropdownOffsetDistance", "fixDropdownWidth", "forceDropdownPortal", "selectType"],
|
|
64
|
+
var _excluded = ["before", "searchable", "name", "className", "getRef", "getRootRef", "popupDirection", "options", "sizeY", "platform", "style", "onChange", "onBlur", "onFocus", "onClick", "renderOption", "children", "emptyText", "onInputChange", "filterFn", "renderDropdown", "onOpen", "onClose", "fetching", "icon", "dropdownOffsetDistance", "fixDropdownWidth", "forceDropdownPortal", "selectType", "autoHideScrollbar", "autoHideScrollbarDelay"],
|
|
65
65
|
_excluded2 = ["option"];
|
|
66
66
|
|
|
67
67
|
var findIndexAfter = function findIndexAfter() {
|
|
@@ -82,7 +82,7 @@ var findIndexBefore = function findIndexBefore() {
|
|
|
82
82
|
var endIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : options.length;
|
|
83
83
|
var result = -1;
|
|
84
84
|
|
|
85
|
-
if (
|
|
85
|
+
if (endIndex <= 0) {
|
|
86
86
|
return result;
|
|
87
87
|
}
|
|
88
88
|
|
|
@@ -591,6 +591,8 @@ var CustomSelectComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
591
591
|
forceDropdownPortal = _this$props2.forceDropdownPortal,
|
|
592
592
|
_this$props2$selectTy = _this$props2.selectType,
|
|
593
593
|
selectType = _this$props2$selectTy === void 0 ? _Select.SelectType.default : _this$props2$selectTy,
|
|
594
|
+
autoHideScrollbar = _this$props2.autoHideScrollbar,
|
|
595
|
+
autoHideScrollbarDelay = _this$props2.autoHideScrollbarDelay,
|
|
594
596
|
restProps = (0, _objectWithoutProperties2.default)(_this$props2, _excluded);
|
|
595
597
|
var selected = this.getSelectedItem();
|
|
596
598
|
var label = selected ? selected.label : undefined;
|
|
@@ -663,7 +665,9 @@ var CustomSelectComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
663
665
|
fetching: fetching,
|
|
664
666
|
offsetDistance: dropdownOffsetDistance,
|
|
665
667
|
sameWidth: fixDropdownWidth,
|
|
666
|
-
forcePortal: forceDropdownPortal
|
|
668
|
+
forcePortal: forceDropdownPortal,
|
|
669
|
+
autoHideScrollbar: autoHideScrollbar,
|
|
670
|
+
autoHideScrollbarDelay: autoHideScrollbarDelay
|
|
667
671
|
}, resolvedContent));
|
|
668
672
|
}
|
|
669
673
|
}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/CustomSelect/CustomSelect.tsx"],"names":["findIndexAfter","options","startIndex","length","findIndex","option","i","disabled","findIndexBefore","endIndex","result","undefined","warn","checkOptionsValueType","Set","map","item","value","size","CustomSelectComponent","props","React","createRef","keyboardInput","state","selectedOptionIndex","inputValue","filterFn","filter","setState","opened","focusedOptionIndex","isValidIndex","scrollToElement","onOpen","resetKeyboardInput","onClose","select","index","nativeSelectValue","event","Event","bubbles","selectEl","dispatchEvent","close","open","scrollTo","prevState","type","nextIndex","beforeIndex","focusOptionByIndex","e","Array","prototype","indexOf","call","currentTarget","parentNode","children","preventDefault","selectFocused","key","fullInput","optionIndex","label","toLowerCase","includes","scrollBoxRef","current","contains","target","newSelectedOptionIndex","findSelectedIndex","isControlledOutside","onChange","onInputChange","process","env","NODE_ENV","areOptionsShown","focusOption","onKeyboardInput","renderOption","hovered","selected","onClick","handleOptionClick","onMouseDown","handleOptionDown","onMouseOver","handleOptionHover","element","getRef","placement","popperPlacement","defaultValue","initialValue","Number","center","dropdown","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","prevProps","searchable","stateOptions","before","name","className","getRootRef","popupDirection","sizeY","platform","style","onBlur","onFocus","emptyText","renderDropdown","fetching","icon","dropdownOffsetDistance","fixDropdownWidth","forceDropdownPortal","selectType","SelectType","default","restProps","getSelectedItem","defaultDropdownContent","resolvedContent","openedClassNames","containerRef","onLabelClick","onInputKeyDown","placeholder","handleKeyDownSelect","handleKeyUp","selectRef","onNativeSelectChange","onPlacementChange","resetFocusedOption","Component","defaultFilterFn","CustomSelect"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { SelectMimicry } from \"../SelectMimicry/SelectMimicry\";\nimport {\n debounce,\n setRef,\n multiRef,\n getTitleFromChildren,\n} from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport { NativeSelectProps } from \"../NativeSelect/NativeSelect\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from \"../CustomSelectOption/CustomSelectOption\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { FormFieldProps } from \"../FormField/FormField\";\nimport { HasPlatform } from \"../../types\";\nimport { Input } from \"../Input/Input\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport {\n defaultFilterFn,\n getFormFieldModeFromSelectType,\n} from \"../../lib/select\";\nimport { is } from \"../../lib/is\";\nimport { Placement } from \"../Popper/Popper\";\nimport { CustomSelectDropdown } from \"../CustomSelectDropdown/CustomSelectDropdown\";\nimport { SelectType } from \"../Select/Select\";\nimport \"./CustomSelect.css\";\n\nconst findIndexAfter = (\n options: CustomSelectOptionInterface[] = [],\n startIndex = -1\n) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex((option, i) => i > startIndex && !option.disabled);\n};\n\nconst findIndexBefore = (\n options: CustomSelectOptionInterface[] = [],\n endIndex: number = options.length\n) => {\n let result = -1;\n if (options === undefined || endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nconst warn = warnOnce(\"CustomSelect\");\n\nconst checkOptionsValueType = (options: CustomSelectOptionInterface[]) => {\n if (new Set(options.map((item) => typeof item.value)).size > 1) {\n warn(\n \"Некоторые значения ваших опций имеют разные типы. onChange всегда возвращает строковый тип.\",\n \"error\"\n );\n }\n};\n\ntype SelectValue = React.SelectHTMLAttributes<HTMLSelectElement>[\"value\"];\n\nexport interface CustomSelectOptionInterface {\n value: SelectValue;\n label: React.ReactElement | string;\n disabled?: boolean;\n [index: string]: any;\n}\n\ninterface CustomSelectState {\n inputValue?: string;\n opened?: boolean;\n focusedOptionIndex?: number;\n selectedOptionIndex?: number;\n nativeSelectValue?: SelectValue;\n options?: CustomSelectOptionInterface[];\n popperPlacement?: Placement;\n}\n\nexport interface CustomSelectProps\n extends NativeSelectProps,\n HasPlatform,\n FormFieldProps {\n /**\n * Если `true`, то при клике на селект в нём появится текстовое поле для поиска по `options`. По умолчанию поиск\n * производится по `option.label`.\n */\n searchable?: boolean;\n /**\n * Текст, который будет отображен, если приходит пустой `options`.\n */\n emptyText?: string;\n onInputChange?: (\n e: React.ChangeEvent,\n options: CustomSelectOptionInterface[]\n ) => void | CustomSelectOptionInterface[];\n options: CustomSelectOptionInterface[];\n /**\n * Функция для кастомной фильтрации. По умолчанию поиск производится по `option.label`.\n */\n filterFn?:\n | false\n | ((\n value: string,\n option: CustomSelectOptionInterface,\n getOptionLabel?: (\n option: Partial<CustomSelectOptionInterface>\n ) => string\n ) => boolean);\n popupDirection?: \"top\" | \"bottom\";\n /**\n * Рендер-проп для кастомного рендера опции.\n * В объекте аргумента приходят [свойства опции](#/CustomSelectOption?id=props)\n */\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В `defaultDropdownContent` содержится список опций в виде скроллящегося блока.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Если `true`, то в дропдауне вместо списка опций рисуется спиннер. При переданных `renderDropdown` и `fetching: true`\n * \"победит\" `renderDropdown`.\n */\n fetching?: boolean;\n onClose?: VoidFunction;\n onOpen?: VoidFunction;\n icon?: React.ReactNode;\n dropdownOffsetDistance?: number;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n selectType?: keyof typeof SelectType;\n}\n\ntype MouseEventHandler = (event: React.MouseEvent<HTMLElement>) => void;\n\nclass CustomSelectComponent extends React.Component<\n CustomSelectProps,\n CustomSelectState\n> {\n static defaultProps: Partial<CustomSelectProps> = {\n searchable: false,\n renderOption({ option, ...props }): React.ReactNode {\n return <CustomSelectOption {...props} />;\n },\n options: [],\n emptyText: \"Ничего не найдено\",\n filterFn: defaultFilterFn,\n icon: <DropdownIcon />,\n dropdownOffsetDistance: 0,\n fixDropdownWidth: true,\n };\n\n public constructor(props: CustomSelectProps) {\n super(props);\n\n const { value, defaultValue } = props;\n\n const initialValue = value !== undefined ? value : defaultValue;\n\n this.keyboardInput = \"\";\n\n if (process.env.NODE_ENV === \"development\") {\n checkOptionsValueType(props.options);\n }\n\n this.state = {\n opened: false,\n focusedOptionIndex: -1,\n selectedOptionIndex: this.findSelectedIndex(props.options, initialValue),\n nativeSelectValue: initialValue,\n options: props.options,\n inputValue: \"\",\n };\n\n if (props.value !== undefined) {\n this.isControlledOutside = true;\n }\n }\n\n private keyboardInput: string;\n private isControlledOutside = false;\n private selectEl: HTMLSelectElement | null = null;\n private readonly scrollBoxRef = React.createRef<HTMLDivElement>();\n private readonly containerRef = React.createRef<HTMLLabelElement>();\n\n private readonly resetKeyboardInput = () => {\n this.keyboardInput = \"\";\n };\n\n private readonly getSelectedItem = () => {\n const { selectedOptionIndex, options } = this.state;\n\n if (!options?.length) {\n return null;\n }\n\n return selectedOptionIndex !== undefined\n ? options[selectedOptionIndex]\n : undefined;\n };\n\n get areOptionsShown() {\n return this.scrollBoxRef.current !== null;\n }\n\n filter = (\n options: CustomSelectProps[\"options\"],\n inputValue: string,\n filterFn: CustomSelectProps[\"filterFn\"]\n ) => {\n return typeof filterFn === \"function\"\n ? options.filter((option) => filterFn(inputValue, option))\n : options;\n };\n\n findSelectedIndex(\n options: CustomSelectOptionInterface[] | undefined,\n value: SelectValue\n ) {\n return (\n options?.findIndex((item) => {\n value = typeof item.value === \"number\" ? Number(value) : value;\n return item.value === value;\n }) ?? -1\n );\n }\n\n open = () => {\n this.setState(\n ({ selectedOptionIndex }) => ({\n opened: true,\n focusedOptionIndex: selectedOptionIndex,\n }),\n () => {\n const { selectedOptionIndex } = this.state;\n\n if (\n selectedOptionIndex !== undefined &&\n this.isValidIndex(selectedOptionIndex)\n ) {\n this.scrollToElement(selectedOptionIndex, true);\n }\n }\n );\n typeof this.props.onOpen === \"function\" && this.props.onOpen();\n };\n\n close = () => {\n this.resetKeyboardInput();\n\n this.setState(() => ({\n inputValue: \"\",\n opened: false,\n focusedOptionIndex: -1,\n options: this.props.options,\n }));\n typeof this.props.onClose === \"function\" && this.props.onClose();\n };\n\n private isValidIndex(index: number) {\n return index >= 0 && index < (this.state.options?.length ?? 0);\n }\n\n selectFocused = () => {\n const { focusedOptionIndex } = this.state;\n\n if (focusedOptionIndex !== undefined) {\n this.select(focusedOptionIndex);\n }\n };\n\n select = (index: number) => {\n if (!this.isValidIndex(index)) {\n return;\n }\n\n const item = this.state.options?.[index];\n\n this.setState(\n {\n nativeSelectValue: item?.value,\n },\n () => {\n const event = new Event(\"change\", { bubbles: true });\n this.selectEl?.dispatchEvent(event);\n }\n );\n this.close();\n };\n\n onClick = () => {\n this.state.opened ? this.close() : this.open();\n };\n\n onFocus = () => {\n const event = new Event(\"focus\");\n this.selectEl?.dispatchEvent(event);\n };\n\n onBlur = () => {\n this.close();\n const event = new Event(\"blur\");\n this.selectEl?.dispatchEvent(event);\n };\n\n private scrollToElement(index: number, center = false) {\n const dropdown = this.scrollBoxRef.current;\n const item = dropdown ? (dropdown.children[index] as HTMLElement) : null;\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n }\n\n focusOptionByIndex = (index: number | undefined, scrollTo = true) => {\n if (\n index === undefined ||\n index < 0 ||\n index > (this.state.options?.length ?? 0) - 1\n ) {\n return;\n }\n\n const option = this.state.options?.[index];\n\n if (option?.disabled) {\n return;\n }\n\n scrollTo && this.scrollToElement(index);\n\n this.setState((prevState) =>\n // Это оптимизация, прежде всего, под `onMouseOver`\n prevState.focusedOptionIndex !== index\n ? {\n focusedOptionIndex: index,\n }\n : null\n );\n };\n\n focusOption = (type: \"next\" | \"prev\") => {\n const { focusedOptionIndex } = this.state;\n let index = focusedOptionIndex;\n\n if (type === \"next\") {\n const nextIndex = findIndexAfter(this.state.options, index);\n index = nextIndex === -1 ? findIndexAfter(this.state.options) : nextIndex; // Следующий за index или первый валидный до index\n } else if (type === \"prev\") {\n const beforeIndex = findIndexBefore(this.state.options, index);\n index =\n beforeIndex === -1 ? findIndexBefore(this.state.options) : beforeIndex; // Предшествующий index или последний валидный после index\n }\n\n this.focusOptionByIndex(index);\n };\n\n handleOptionHover: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n this.focusOptionByIndex(\n Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n ),\n false\n );\n };\n\n handleOptionDown: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n };\n\n handleOptionClick: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n const index = Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n );\n const option = this.state.options?.[index];\n\n if (option && !option.disabled) {\n this.selectFocused();\n }\n };\n\n resetFocusedOption = () => {\n this.setState({ focusedOptionIndex: -1 });\n };\n\n onKeyboardInput = (key: string) => {\n const fullInput = this.keyboardInput + key;\n\n const optionIndex = this.state.options?.findIndex((option) => {\n return getTitleFromChildren(option.label)\n .toLowerCase()\n .includes(fullInput);\n });\n\n if (optionIndex !== undefined && optionIndex > -1) {\n this.focusOptionByIndex(optionIndex);\n }\n\n this.keyboardInput = fullInput;\n };\n\n /**\n * Нужен для правильного поведения обработчика onClick на select. Фильтрует клики, которые были сделаны по\n * выпадающему списку.\n */\n onLabelClick = (e: React.MouseEvent<HTMLLabelElement>) => {\n if (this.scrollBoxRef.current?.contains(e.target as Node)) {\n e.preventDefault();\n }\n };\n\n onNativeSelectChange: React.ChangeEventHandler<HTMLSelectElement> = (e) => {\n const newSelectedOptionIndex = this.findSelectedIndex(\n this.state.options,\n e.currentTarget.value\n );\n\n if (this.state.selectedOptionIndex !== newSelectedOptionIndex) {\n if (!this.isControlledOutside) {\n this.setState({\n selectedOptionIndex: newSelectedOptionIndex,\n });\n }\n this.props.onChange?.(e);\n }\n };\n\n onInputChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n if (this.props.onInputChange) {\n const options = this.props.onInputChange(e, this.props.options);\n if (options) {\n if (process.env.NODE_ENV === \"development\") {\n warn(\n \"Этот метод фильтрации устарел. Возвращаемое значение onInputChange будет \" +\n \"проигнорировано в v5.0.0. Для фильтрации обновляйте props.options самостоятельно или используйте свойство filterFn.\"\n );\n }\n this.setState({\n options,\n selectedOptionIndex: this.findSelectedIndex(\n options,\n this.state.nativeSelectValue\n ),\n inputValue: e.target.value,\n });\n } else {\n this.setState({ inputValue: e.target.value });\n }\n } else {\n const options = this.filter(\n this.props.options,\n e.target.value,\n this.props.filterFn\n );\n this.setState({\n options,\n selectedOptionIndex: this.findSelectedIndex(\n options,\n this.state.nativeSelectValue\n ),\n inputValue: e.target.value,\n });\n }\n };\n\n onInputKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n this.areOptionsShown &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n this.areOptionsShown && this.focusOption(\"prev\");\n break;\n case \"ArrowDown\":\n this.areOptionsShown && this.focusOption(\"next\");\n break;\n case \"Escape\":\n this.close();\n break;\n case \"Enter\":\n this.areOptionsShown && this.selectFocused();\n break;\n }\n };\n\n handleKeyDownSelect = (event: React.KeyboardEvent) => {\n const { opened } = this.state;\n\n if (event.key.length === 1 && event.key !== \" \") {\n this.onKeyboardInput(event.key);\n return;\n }\n\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n this.areOptionsShown &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n if (opened) {\n this.areOptionsShown && this.focusOption(\"prev\");\n } else {\n this.open();\n }\n break;\n case \"ArrowDown\":\n if (opened) {\n this.areOptionsShown && this.focusOption(\"next\");\n } else {\n this.open();\n }\n break;\n case \"Escape\":\n this.close();\n break;\n case \"Enter\":\n case \"Spacebar\":\n case \" \":\n if (opened) {\n this.areOptionsShown && this.selectFocused();\n } else {\n this.open();\n }\n break;\n }\n };\n\n handleKeyUp = debounce(this.resetKeyboardInput, 1000);\n\n componentDidUpdate(prevProps: CustomSelectProps) {\n // Внутри useEffect и так is, можно убрать\n if (\n !is(prevProps.value, this.props.value) ||\n prevProps.options !== this.props.options\n ) {\n if (process.env.NODE_ENV === \"development\") {\n checkOptionsValueType(this.props.options);\n }\n\n this.isControlledOutside = this.props.value !== undefined;\n const value =\n this.props.value === undefined\n ? this.state.nativeSelectValue\n : this.props.value;\n const options =\n this.props.searchable && this.state.inputValue !== undefined\n ? this.filter(\n this.props.options,\n this.state.inputValue,\n this.props.filterFn\n )\n : this.props.options;\n this.setState({\n nativeSelectValue: value,\n selectedOptionIndex: this.findSelectedIndex(options, value),\n options,\n });\n }\n }\n\n renderOption = (option: CustomSelectOptionInterface, index: number) => {\n const { focusedOptionIndex, selectedOptionIndex } = this.state;\n const { renderOption } = this.props;\n const hovered = index === focusedOptionIndex;\n const selected = index === selectedOptionIndex;\n\n return (\n <React.Fragment key={`${option.value}`}>\n {renderOption!({\n option,\n hovered,\n children: option.label,\n selected,\n disabled: option.disabled,\n onClick: this.handleOptionClick,\n onMouseDown: this.handleOptionDown,\n // Используем `onMouseOver` вместо `onMouseEnter`.\n // При параметре `searchable`, обновляется \"ребёнок\", из-за чего `onMouseEnter` не срабатывает в следующих кейсах:\n // 1. До загрузки выпадающего списка, курсор мышки находится над произвольным элементом этого списка.\n // > Лечение: только увод курсора мыши и возвращении его обратно вызывает событие `onMouseEnter` на этот элемент.\n // 2. Если это тач-устройство.\n // > Лечение: нужно нажать на какой-нибудь произвольный элемент списка, после чего `onMouseEnter` будет работать на соседние элементы,\n // но не на тот, на который нажали в первый раз.\n // Более подробно по ссылке https://github.com/facebook/react/issues/13956#issuecomment-1082055744\n onMouseOver: this.handleOptionHover,\n })}\n </React.Fragment>\n );\n };\n\n selectRef = (element: HTMLSelectElement) => {\n this.selectEl = element;\n if (this.props.getRef) {\n setRef(element, this.props.getRef);\n }\n };\n\n onPlacementChange = (placement?: Placement) => {\n this.setState(() => ({\n popperPlacement: placement,\n }));\n };\n\n render() {\n const { opened, nativeSelectValue, options: stateOptions } = this.state;\n const {\n before,\n searchable,\n name,\n className,\n getRef,\n getRootRef,\n popupDirection,\n options,\n sizeY,\n platform,\n style,\n onChange,\n onBlur,\n onFocus,\n onClick,\n renderOption,\n children,\n emptyText,\n onInputChange,\n filterFn,\n renderDropdown,\n onOpen,\n onClose,\n fetching,\n icon,\n dropdownOffsetDistance,\n fixDropdownWidth,\n forceDropdownPortal,\n selectType = SelectType.default,\n ...restProps\n } = this.props;\n const selected = this.getSelectedItem();\n const label = selected ? selected.label : undefined;\n\n const defaultDropdownContent =\n stateOptions !== undefined && stateOptions.length > 0 ? (\n stateOptions.map(this.renderOption)\n ) : (\n <Caption vkuiClass=\"CustomSelect__empty\">\n {this.props.emptyText}\n </Caption>\n );\n\n let resolvedContent;\n\n if (typeof renderDropdown === \"function\") {\n resolvedContent = renderDropdown({ defaultDropdownContent });\n } else {\n resolvedContent = defaultDropdownContent;\n }\n\n const openedClassNames = classNames(\n opened && \"Select--open\",\n opened &&\n (dropdownOffsetDistance as number) === 0 &&\n (this.state.popperPlacement?.includes(\"top\")\n ? \"Select--pop-up\"\n : \"Select--pop-down\")\n );\n\n return (\n <label\n vkuiClass={getClassName(\"CustomSelect\", platform)}\n className={className}\n style={style}\n ref={multiRef(this.containerRef, getRootRef)}\n onClick={this.onLabelClick}\n >\n {opened && searchable ? (\n <Input\n {...restProps}\n autoFocus\n onBlur={this.onBlur}\n vkuiClass={openedClassNames}\n value={this.state.inputValue}\n onKeyDown={this.onInputKeyDown}\n onChange={this.onInputChange}\n // TODO Ожидается, что клик поймает нативный select, но его перехватывает Input. К сожалению, это приводит к конфликтам типизации.\n // TODO Нужно перестать пытаться превратить CustomSelect в select. Тогда эта проблема уйдёт.\n // @ts-ignore\n onClick={onClick}\n before={before}\n after={icon}\n placeholder={restProps.placeholder}\n mode={getFormFieldModeFromSelectType(selectType)}\n />\n ) : (\n <SelectMimicry\n {...restProps}\n aria-hidden={true}\n onClick={this.onClick}\n onKeyDown={this.handleKeyDownSelect}\n onKeyUp={this.handleKeyUp}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n vkuiClass={openedClassNames}\n after={icon}\n selectType={selectType}\n >\n {label}\n </SelectMimicry>\n )}\n <select\n ref={this.selectRef}\n name={name}\n onChange={this.onNativeSelectChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onClick={onClick}\n value={nativeSelectValue}\n aria-hidden={true}\n vkuiClass=\"CustomSelect__control\"\n >\n {options.map((item) => (\n <option key={`${item.value}`} value={item.value} />\n ))}\n </select>\n {opened && (\n <CustomSelectDropdown\n targetRef={this.containerRef}\n placement={popupDirection}\n scrollBoxRef={this.scrollBoxRef}\n onPlacementChange={this.onPlacementChange}\n onMouseLeave={this.resetFocusedOption}\n fetching={fetching}\n offsetDistance={dropdownOffsetDistance}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n >\n {resolvedContent}\n </CustomSelectDropdown>\n )}\n </label>\n );\n }\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CustomSelect\n */\nexport const CustomSelect = withPlatform(\n withAdaptivity(CustomSelectComponent, {\n sizeY: true,\n })\n);\n"],"file":"CustomSelect.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CustomSelect/CustomSelect.tsx"],"names":["findIndexAfter","options","startIndex","length","findIndex","option","i","disabled","findIndexBefore","endIndex","result","warn","checkOptionsValueType","Set","map","item","value","size","CustomSelectComponent","props","React","createRef","keyboardInput","state","selectedOptionIndex","undefined","inputValue","filterFn","filter","setState","opened","focusedOptionIndex","isValidIndex","scrollToElement","onOpen","resetKeyboardInput","onClose","select","index","nativeSelectValue","event","Event","bubbles","selectEl","dispatchEvent","close","open","scrollTo","prevState","type","nextIndex","beforeIndex","focusOptionByIndex","e","Array","prototype","indexOf","call","currentTarget","parentNode","children","preventDefault","selectFocused","key","fullInput","optionIndex","label","toLowerCase","includes","scrollBoxRef","current","contains","target","newSelectedOptionIndex","findSelectedIndex","isControlledOutside","onChange","onInputChange","process","env","NODE_ENV","areOptionsShown","focusOption","onKeyboardInput","renderOption","hovered","selected","onClick","handleOptionClick","onMouseDown","handleOptionDown","onMouseOver","handleOptionHover","element","getRef","placement","popperPlacement","defaultValue","initialValue","Number","center","dropdown","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","prevProps","searchable","stateOptions","before","name","className","getRootRef","popupDirection","sizeY","platform","style","onBlur","onFocus","emptyText","renderDropdown","fetching","icon","dropdownOffsetDistance","fixDropdownWidth","forceDropdownPortal","selectType","SelectType","default","autoHideScrollbar","autoHideScrollbarDelay","restProps","getSelectedItem","defaultDropdownContent","resolvedContent","openedClassNames","containerRef","onLabelClick","onInputKeyDown","placeholder","handleKeyDownSelect","handleKeyUp","selectRef","onNativeSelectChange","onPlacementChange","resetFocusedOption","Component","defaultFilterFn","CustomSelect"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { SelectMimicry } from \"../SelectMimicry/SelectMimicry\";\nimport {\n debounce,\n setRef,\n multiRef,\n getTitleFromChildren,\n} from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport { NativeSelectProps } from \"../NativeSelect/NativeSelect\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from \"../CustomSelectOption/CustomSelectOption\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { FormFieldProps } from \"../FormField/FormField\";\nimport { HasPlatform } from \"../../types\";\nimport { Input } from \"../Input/Input\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport {\n defaultFilterFn,\n getFormFieldModeFromSelectType,\n} from \"../../lib/select\";\nimport { is } from \"../../lib/is\";\nimport { Placement } from \"../Popper/Popper\";\nimport { CustomSelectDropdown } from \"../CustomSelectDropdown/CustomSelectDropdown\";\nimport { TrackerOptionsProps } from \"../CustomScrollView/useTrackerVisibility\";\nimport { SelectType } from \"../Select/Select\";\nimport \"./CustomSelect.css\";\n\nconst findIndexAfter = (\n options: CustomSelectOptionInterface[] = [],\n startIndex = -1\n) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex((option, i) => i > startIndex && !option.disabled);\n};\n\nconst findIndexBefore = (\n options: CustomSelectOptionInterface[] = [],\n endIndex: number = options.length\n) => {\n let result = -1;\n if (endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nconst warn = warnOnce(\"CustomSelect\");\n\nconst checkOptionsValueType = (options: CustomSelectOptionInterface[]) => {\n if (new Set(options.map((item) => typeof item.value)).size > 1) {\n warn(\n \"Некоторые значения ваших опций имеют разные типы. onChange всегда возвращает строковый тип.\",\n \"error\"\n );\n }\n};\n\ntype SelectValue = React.SelectHTMLAttributes<HTMLSelectElement>[\"value\"];\n\nexport interface CustomSelectOptionInterface {\n value: SelectValue;\n label: React.ReactElement | string;\n disabled?: boolean;\n [index: string]: any;\n}\n\ninterface CustomSelectState {\n inputValue?: string;\n opened?: boolean;\n focusedOptionIndex?: number;\n selectedOptionIndex?: number;\n nativeSelectValue?: SelectValue;\n options?: CustomSelectOptionInterface[];\n popperPlacement?: Placement;\n}\n\nexport interface CustomSelectProps\n extends NativeSelectProps,\n HasPlatform,\n FormFieldProps,\n TrackerOptionsProps {\n /**\n * Если `true`, то при клике на селект в нём появится текстовое поле для поиска по `options`. По умолчанию поиск\n * производится по `option.label`.\n */\n searchable?: boolean;\n /**\n * Текст, который будет отображен, если приходит пустой `options`.\n */\n emptyText?: string;\n onInputChange?: (\n e: React.ChangeEvent,\n options: CustomSelectOptionInterface[]\n ) => void | CustomSelectOptionInterface[];\n options: CustomSelectOptionInterface[];\n /**\n * Функция для кастомной фильтрации. По умолчанию поиск производится по `option.label`.\n */\n filterFn?:\n | false\n | ((\n value: string,\n option: CustomSelectOptionInterface,\n getOptionLabel?: (\n option: Partial<CustomSelectOptionInterface>\n ) => string\n ) => boolean);\n popupDirection?: \"top\" | \"bottom\";\n /**\n * Рендер-проп для кастомного рендера опции.\n * В объекте аргумента приходят [свойства опции](https://vkcom.github.io/VKUI/#/CustomSelectOption?id=props)\n */\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В `defaultDropdownContent` содержится список опций в виде скроллящегося блока.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Если `true`, то в дропдауне вместо списка опций рисуется спиннер. При переданных `renderDropdown` и `fetching: true`\n * \"победит\" `renderDropdown`.\n */\n fetching?: boolean;\n onClose?: VoidFunction;\n onOpen?: VoidFunction;\n icon?: React.ReactNode;\n dropdownOffsetDistance?: number;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n selectType?: keyof typeof SelectType;\n}\n\ntype MouseEventHandler = (event: React.MouseEvent<HTMLElement>) => void;\n\nclass CustomSelectComponent extends React.Component<\n CustomSelectProps,\n CustomSelectState\n> {\n static defaultProps: Partial<CustomSelectProps> = {\n searchable: false,\n renderOption({ option, ...props }): React.ReactNode {\n return <CustomSelectOption {...props} />;\n },\n options: [],\n emptyText: \"Ничего не найдено\",\n filterFn: defaultFilterFn,\n icon: <DropdownIcon />,\n dropdownOffsetDistance: 0,\n fixDropdownWidth: true,\n };\n\n public constructor(props: CustomSelectProps) {\n super(props);\n\n const { value, defaultValue } = props;\n\n const initialValue = value !== undefined ? value : defaultValue;\n\n this.keyboardInput = \"\";\n\n if (process.env.NODE_ENV === \"development\") {\n checkOptionsValueType(props.options);\n }\n\n this.state = {\n opened: false,\n focusedOptionIndex: -1,\n selectedOptionIndex: this.findSelectedIndex(props.options, initialValue),\n nativeSelectValue: initialValue,\n options: props.options,\n inputValue: \"\",\n };\n\n if (props.value !== undefined) {\n this.isControlledOutside = true;\n }\n }\n\n private keyboardInput: string;\n private isControlledOutside = false;\n private selectEl: HTMLSelectElement | null = null;\n private readonly scrollBoxRef = React.createRef<HTMLDivElement>();\n private readonly containerRef = React.createRef<HTMLLabelElement>();\n\n private readonly resetKeyboardInput = () => {\n this.keyboardInput = \"\";\n };\n\n private readonly getSelectedItem = () => {\n const { selectedOptionIndex, options } = this.state;\n\n if (!options?.length) {\n return null;\n }\n\n return selectedOptionIndex !== undefined\n ? options[selectedOptionIndex]\n : undefined;\n };\n\n get areOptionsShown() {\n return this.scrollBoxRef.current !== null;\n }\n\n filter = (\n options: CustomSelectProps[\"options\"],\n inputValue: string,\n filterFn: CustomSelectProps[\"filterFn\"]\n ) => {\n return typeof filterFn === \"function\"\n ? options.filter((option) => filterFn(inputValue, option))\n : options;\n };\n\n findSelectedIndex(\n options: CustomSelectOptionInterface[] | undefined,\n value: SelectValue\n ) {\n return (\n options?.findIndex((item) => {\n value = typeof item.value === \"number\" ? Number(value) : value;\n return item.value === value;\n }) ?? -1\n );\n }\n\n open = () => {\n this.setState(\n ({ selectedOptionIndex }) => ({\n opened: true,\n focusedOptionIndex: selectedOptionIndex,\n }),\n () => {\n const { selectedOptionIndex } = this.state;\n\n if (\n selectedOptionIndex !== undefined &&\n this.isValidIndex(selectedOptionIndex)\n ) {\n this.scrollToElement(selectedOptionIndex, true);\n }\n }\n );\n typeof this.props.onOpen === \"function\" && this.props.onOpen();\n };\n\n close = () => {\n this.resetKeyboardInput();\n\n this.setState(() => ({\n inputValue: \"\",\n opened: false,\n focusedOptionIndex: -1,\n options: this.props.options,\n }));\n typeof this.props.onClose === \"function\" && this.props.onClose();\n };\n\n private isValidIndex(index: number) {\n return index >= 0 && index < (this.state.options?.length ?? 0);\n }\n\n selectFocused = () => {\n const { focusedOptionIndex } = this.state;\n\n if (focusedOptionIndex !== undefined) {\n this.select(focusedOptionIndex);\n }\n };\n\n select = (index: number) => {\n if (!this.isValidIndex(index)) {\n return;\n }\n\n const item = this.state.options?.[index];\n\n this.setState(\n {\n nativeSelectValue: item?.value,\n },\n () => {\n const event = new Event(\"change\", { bubbles: true });\n this.selectEl?.dispatchEvent(event);\n }\n );\n this.close();\n };\n\n onClick = () => {\n this.state.opened ? this.close() : this.open();\n };\n\n onFocus = () => {\n const event = new Event(\"focus\");\n this.selectEl?.dispatchEvent(event);\n };\n\n onBlur = () => {\n this.close();\n const event = new Event(\"blur\");\n this.selectEl?.dispatchEvent(event);\n };\n\n private scrollToElement(index: number, center = false) {\n const dropdown = this.scrollBoxRef.current;\n const item = dropdown ? (dropdown.children[index] as HTMLElement) : null;\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n }\n\n focusOptionByIndex = (index: number | undefined, scrollTo = true) => {\n if (\n index === undefined ||\n index < 0 ||\n index > (this.state.options?.length ?? 0) - 1\n ) {\n return;\n }\n\n const option = this.state.options?.[index];\n\n if (option?.disabled) {\n return;\n }\n\n scrollTo && this.scrollToElement(index);\n\n this.setState((prevState) =>\n // Это оптимизация, прежде всего, под `onMouseOver`\n prevState.focusedOptionIndex !== index\n ? {\n focusedOptionIndex: index,\n }\n : null\n );\n };\n\n focusOption = (type: \"next\" | \"prev\") => {\n const { focusedOptionIndex } = this.state;\n let index = focusedOptionIndex;\n\n if (type === \"next\") {\n const nextIndex = findIndexAfter(this.state.options, index);\n index = nextIndex === -1 ? findIndexAfter(this.state.options) : nextIndex; // Следующий за index или первый валидный до index\n } else if (type === \"prev\") {\n const beforeIndex = findIndexBefore(this.state.options, index);\n index =\n beforeIndex === -1 ? findIndexBefore(this.state.options) : beforeIndex; // Предшествующий index или последний валидный после index\n }\n\n this.focusOptionByIndex(index);\n };\n\n handleOptionHover: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n this.focusOptionByIndex(\n Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n ),\n false\n );\n };\n\n handleOptionDown: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n };\n\n handleOptionClick: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n const index = Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n );\n const option = this.state.options?.[index];\n\n if (option && !option.disabled) {\n this.selectFocused();\n }\n };\n\n resetFocusedOption = () => {\n this.setState({ focusedOptionIndex: -1 });\n };\n\n onKeyboardInput = (key: string) => {\n const fullInput = this.keyboardInput + key;\n\n const optionIndex = this.state.options?.findIndex((option) => {\n return getTitleFromChildren(option.label)\n .toLowerCase()\n .includes(fullInput);\n });\n\n if (optionIndex !== undefined && optionIndex > -1) {\n this.focusOptionByIndex(optionIndex);\n }\n\n this.keyboardInput = fullInput;\n };\n\n /**\n * Нужен для правильного поведения обработчика onClick на select. Фильтрует клики, которые были сделаны по\n * выпадающему списку.\n */\n onLabelClick = (e: React.MouseEvent<HTMLLabelElement>) => {\n if (this.scrollBoxRef.current?.contains(e.target as Node)) {\n e.preventDefault();\n }\n };\n\n onNativeSelectChange: React.ChangeEventHandler<HTMLSelectElement> = (e) => {\n const newSelectedOptionIndex = this.findSelectedIndex(\n this.state.options,\n e.currentTarget.value\n );\n\n if (this.state.selectedOptionIndex !== newSelectedOptionIndex) {\n if (!this.isControlledOutside) {\n this.setState({\n selectedOptionIndex: newSelectedOptionIndex,\n });\n }\n this.props.onChange?.(e);\n }\n };\n\n onInputChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n if (this.props.onInputChange) {\n const options = this.props.onInputChange(e, this.props.options);\n if (options) {\n if (process.env.NODE_ENV === \"development\") {\n warn(\n \"Этот метод фильтрации устарел. Возвращаемое значение onInputChange будет \" +\n \"проигнорировано в v5.0.0. Для фильтрации обновляйте props.options самостоятельно или используйте свойство filterFn.\"\n );\n }\n this.setState({\n options,\n selectedOptionIndex: this.findSelectedIndex(\n options,\n this.state.nativeSelectValue\n ),\n inputValue: e.target.value,\n });\n } else {\n this.setState({ inputValue: e.target.value });\n }\n } else {\n const options = this.filter(\n this.props.options,\n e.target.value,\n this.props.filterFn\n );\n this.setState({\n options,\n selectedOptionIndex: this.findSelectedIndex(\n options,\n this.state.nativeSelectValue\n ),\n inputValue: e.target.value,\n });\n }\n };\n\n onInputKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n this.areOptionsShown &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n this.areOptionsShown && this.focusOption(\"prev\");\n break;\n case \"ArrowDown\":\n this.areOptionsShown && this.focusOption(\"next\");\n break;\n case \"Escape\":\n this.close();\n break;\n case \"Enter\":\n this.areOptionsShown && this.selectFocused();\n break;\n }\n };\n\n handleKeyDownSelect = (event: React.KeyboardEvent) => {\n const { opened } = this.state;\n\n if (event.key.length === 1 && event.key !== \" \") {\n this.onKeyboardInput(event.key);\n return;\n }\n\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n this.areOptionsShown &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n if (opened) {\n this.areOptionsShown && this.focusOption(\"prev\");\n } else {\n this.open();\n }\n break;\n case \"ArrowDown\":\n if (opened) {\n this.areOptionsShown && this.focusOption(\"next\");\n } else {\n this.open();\n }\n break;\n case \"Escape\":\n this.close();\n break;\n case \"Enter\":\n case \"Spacebar\":\n case \" \":\n if (opened) {\n this.areOptionsShown && this.selectFocused();\n } else {\n this.open();\n }\n break;\n }\n };\n\n handleKeyUp = debounce(this.resetKeyboardInput, 1000);\n\n componentDidUpdate(prevProps: CustomSelectProps) {\n // Внутри useEffect и так is, можно убрать\n if (\n !is(prevProps.value, this.props.value) ||\n prevProps.options !== this.props.options\n ) {\n if (process.env.NODE_ENV === \"development\") {\n checkOptionsValueType(this.props.options);\n }\n\n this.isControlledOutside = this.props.value !== undefined;\n const value =\n this.props.value === undefined\n ? this.state.nativeSelectValue\n : this.props.value;\n const options =\n this.props.searchable && this.state.inputValue !== undefined\n ? this.filter(\n this.props.options,\n this.state.inputValue,\n this.props.filterFn\n )\n : this.props.options;\n this.setState({\n nativeSelectValue: value,\n selectedOptionIndex: this.findSelectedIndex(options, value),\n options,\n });\n }\n }\n\n renderOption = (option: CustomSelectOptionInterface, index: number) => {\n const { focusedOptionIndex, selectedOptionIndex } = this.state;\n const { renderOption } = this.props;\n const hovered = index === focusedOptionIndex;\n const selected = index === selectedOptionIndex;\n\n return (\n <React.Fragment key={`${option.value}`}>\n {renderOption!({\n option,\n hovered,\n children: option.label,\n selected,\n disabled: option.disabled,\n onClick: this.handleOptionClick,\n onMouseDown: this.handleOptionDown,\n // Используем `onMouseOver` вместо `onMouseEnter`.\n // При параметре `searchable`, обновляется \"ребёнок\", из-за чего `onMouseEnter` не срабатывает в следующих кейсах:\n // 1. До загрузки выпадающего списка, курсор мышки находится над произвольным элементом этого списка.\n // > Лечение: только увод курсора мыши и возвращении его обратно вызывает событие `onMouseEnter` на этот элемент.\n // 2. Если это тач-устройство.\n // > Лечение: нужно нажать на какой-нибудь произвольный элемент списка, после чего `onMouseEnter` будет работать на соседние элементы,\n // но не на тот, на который нажали в первый раз.\n // Более подробно по ссылке https://github.com/facebook/react/issues/13956#issuecomment-1082055744\n onMouseOver: this.handleOptionHover,\n })}\n </React.Fragment>\n );\n };\n\n selectRef = (element: HTMLSelectElement) => {\n this.selectEl = element;\n if (this.props.getRef) {\n setRef(element, this.props.getRef);\n }\n };\n\n onPlacementChange = (placement?: Placement) => {\n this.setState(() => ({\n popperPlacement: placement,\n }));\n };\n\n render() {\n const { opened, nativeSelectValue, options: stateOptions } = this.state;\n const {\n before,\n searchable,\n name,\n className,\n getRef,\n getRootRef,\n popupDirection,\n options,\n sizeY,\n platform,\n style,\n onChange,\n onBlur,\n onFocus,\n onClick,\n renderOption,\n children,\n emptyText,\n onInputChange,\n filterFn,\n renderDropdown,\n onOpen,\n onClose,\n fetching,\n icon,\n dropdownOffsetDistance,\n fixDropdownWidth,\n forceDropdownPortal,\n selectType = SelectType.default,\n autoHideScrollbar,\n autoHideScrollbarDelay,\n ...restProps\n } = this.props;\n const selected = this.getSelectedItem();\n const label = selected ? selected.label : undefined;\n\n const defaultDropdownContent =\n stateOptions !== undefined && stateOptions.length > 0 ? (\n stateOptions.map(this.renderOption)\n ) : (\n <Caption vkuiClass=\"CustomSelect__empty\">\n {this.props.emptyText}\n </Caption>\n );\n\n let resolvedContent;\n\n if (typeof renderDropdown === \"function\") {\n resolvedContent = renderDropdown({ defaultDropdownContent });\n } else {\n resolvedContent = defaultDropdownContent;\n }\n\n const openedClassNames = classNames(\n opened && \"Select--open\",\n opened &&\n (dropdownOffsetDistance as number) === 0 &&\n (this.state.popperPlacement?.includes(\"top\")\n ? \"Select--pop-up\"\n : \"Select--pop-down\")\n );\n\n return (\n <label\n vkuiClass={getClassName(\"CustomSelect\", platform)}\n className={className}\n style={style}\n ref={multiRef(this.containerRef, getRootRef)}\n onClick={this.onLabelClick}\n >\n {opened && searchable ? (\n <Input\n {...restProps}\n autoFocus\n onBlur={this.onBlur}\n vkuiClass={openedClassNames}\n value={this.state.inputValue}\n onKeyDown={this.onInputKeyDown}\n onChange={this.onInputChange}\n // TODO Ожидается, что клик поймает нативный select, но его перехватывает Input. К сожалению, это приводит к конфликтам типизации.\n // TODO Нужно перестать пытаться превратить CustomSelect в select. Тогда эта проблема уйдёт.\n // @ts-ignore\n onClick={onClick}\n before={before}\n after={icon}\n placeholder={restProps.placeholder}\n mode={getFormFieldModeFromSelectType(selectType)}\n />\n ) : (\n <SelectMimicry\n {...restProps}\n aria-hidden={true}\n onClick={this.onClick}\n onKeyDown={this.handleKeyDownSelect}\n onKeyUp={this.handleKeyUp}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n vkuiClass={openedClassNames}\n after={icon}\n selectType={selectType}\n >\n {label}\n </SelectMimicry>\n )}\n <select\n ref={this.selectRef}\n name={name}\n onChange={this.onNativeSelectChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onClick={onClick}\n value={nativeSelectValue}\n aria-hidden={true}\n vkuiClass=\"CustomSelect__control\"\n >\n {options.map((item) => (\n <option key={`${item.value}`} value={item.value} />\n ))}\n </select>\n {opened && (\n <CustomSelectDropdown\n targetRef={this.containerRef}\n placement={popupDirection}\n scrollBoxRef={this.scrollBoxRef}\n onPlacementChange={this.onPlacementChange}\n onMouseLeave={this.resetFocusedOption}\n fetching={fetching}\n offsetDistance={dropdownOffsetDistance}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n autoHideScrollbar={autoHideScrollbar}\n autoHideScrollbarDelay={autoHideScrollbarDelay}\n >\n {resolvedContent}\n </CustomSelectDropdown>\n )}\n </label>\n );\n }\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CustomSelect\n */\nexport const CustomSelect = withPlatform(\n withAdaptivity(CustomSelectComponent, {\n sizeY: true,\n })\n);\n"],"file":"CustomSelect.js"}
|
|
@@ -27,7 +27,7 @@ var _Popper = require("../Popper/Popper");
|
|
|
27
27
|
|
|
28
28
|
var _Spinner = require("../Spinner/Spinner");
|
|
29
29
|
|
|
30
|
-
var _excluded = ["children", "targetRef", "scrollBoxRef", "placement", "fetching", "onPlacementChange", "offsetDistance", "sameWidth", "forcePortal"];
|
|
30
|
+
var _excluded = ["children", "targetRef", "scrollBoxRef", "placement", "fetching", "onPlacementChange", "offsetDistance", "sameWidth", "forcePortal", "autoHideScrollbar", "autoHideScrollbarDelay"];
|
|
31
31
|
|
|
32
32
|
var calcIsTop = function calcIsTop(placement) {
|
|
33
33
|
return placement === null || placement === void 0 ? void 0 : placement.includes("top");
|
|
@@ -46,6 +46,8 @@ var CustomSelectDropdown = function CustomSelectDropdown(_ref) {
|
|
|
46
46
|
sameWidth = _ref$sameWidth === void 0 ? true : _ref$sameWidth,
|
|
47
47
|
_ref$forcePortal = _ref.forcePortal,
|
|
48
48
|
forcePortal = _ref$forcePortal === void 0 ? true : _ref$forcePortal,
|
|
49
|
+
autoHideScrollbar = _ref.autoHideScrollbar,
|
|
50
|
+
autoHideScrollbarDelay = _ref.autoHideScrollbarDelay,
|
|
49
51
|
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
50
52
|
|
|
51
53
|
var _React$useState = React.useState(function () {
|
|
@@ -55,8 +57,29 @@ var CustomSelectDropdown = function CustomSelectDropdown(_ref) {
|
|
|
55
57
|
isTop = _React$useState2[0],
|
|
56
58
|
setIsTop = _React$useState2[1];
|
|
57
59
|
|
|
58
|
-
var
|
|
59
|
-
|
|
60
|
+
var customModifiers = React.useMemo(function () {
|
|
61
|
+
if (!(scrollBoxRef !== null && scrollBoxRef !== void 0 && scrollBoxRef.current)) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return [{
|
|
66
|
+
name: "customSelectChildrenChange",
|
|
67
|
+
enabled: true,
|
|
68
|
+
phase: "main",
|
|
69
|
+
effect: function effect(_ref2) {
|
|
70
|
+
var instance = _ref2.instance;
|
|
71
|
+
var observer = new MutationObserver(instance.forceUpdate);
|
|
72
|
+
observer.observe(scrollBoxRef.current, {
|
|
73
|
+
childList: true
|
|
74
|
+
});
|
|
75
|
+
return function () {
|
|
76
|
+
observer.disconnect();
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}]; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
80
|
+
}, [scrollBoxRef === null || scrollBoxRef === void 0 ? void 0 : scrollBoxRef.current]);
|
|
81
|
+
var onPlacementChange = React.useCallback(function (_ref3) {
|
|
82
|
+
var placement = _ref3.placement;
|
|
60
83
|
setIsTop(calcIsTop(placement));
|
|
61
84
|
parentOnPlacementChange === null || parentOnPlacementChange === void 0 ? void 0 : parentOnPlacementChange(placement);
|
|
62
85
|
}, [parentOnPlacementChange, setIsTop]);
|
|
@@ -67,10 +90,13 @@ var CustomSelectDropdown = function CustomSelectDropdown(_ref) {
|
|
|
67
90
|
onPlacementChange: onPlacementChange,
|
|
68
91
|
placement: placement,
|
|
69
92
|
vkuiClass: (0, _classNames.classNames)("CustomSelectDropdown", offsetDistance === 0 && (isTop ? "CustomSelectDropdown--top" : "CustomSelectDropdown--bottom"), sameWidth && "CustomSelectDropdown--wide"),
|
|
70
|
-
forcePortal: forcePortal
|
|
93
|
+
forcePortal: forcePortal,
|
|
94
|
+
customModifiers: customModifiers
|
|
71
95
|
}, restProps), (0, _jsxRuntime.createScopedElement)(_CustomScrollView.CustomScrollView, {
|
|
72
96
|
boxRef: scrollBoxRef,
|
|
73
|
-
vkuiClass: "CustomSelectDropdown__in"
|
|
97
|
+
vkuiClass: "CustomSelectDropdown__in",
|
|
98
|
+
autoHideScrollbar: autoHideScrollbar,
|
|
99
|
+
autoHideScrollbarDelay: autoHideScrollbarDelay
|
|
74
100
|
}, fetching ? (0, _jsxRuntime.createScopedElement)("div", {
|
|
75
101
|
vkuiClass: "CustomSelectDropdown__fetching"
|
|
76
102
|
}, (0, _jsxRuntime.createScopedElement)(_Spinner.Spinner, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/CustomSelectDropdown/CustomSelectDropdown.tsx"],"names":["calcIsTop","placement","includes","CustomSelectDropdown","children","targetRef","scrollBoxRef","fetching","parentOnPlacementChange","onPlacementChange","offsetDistance","sameWidth","forcePortal","restProps","React","useState","isTop","setIsTop","useCallback"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CustomSelectDropdown/CustomSelectDropdown.tsx"],"names":["calcIsTop","placement","includes","CustomSelectDropdown","children","targetRef","scrollBoxRef","fetching","parentOnPlacementChange","onPlacementChange","offsetDistance","sameWidth","forcePortal","autoHideScrollbar","autoHideScrollbarDelay","restProps","React","useState","isTop","setIsTop","customModifiers","useMemo","current","name","enabled","phase","effect","instance","observer","MutationObserver","forceUpdate","observe","childList","disconnect","useCallback"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Modifier } from \"react-popper\";\nimport { CustomScrollView } from \"../CustomScrollView/CustomScrollView\";\nimport { TrackerOptionsProps } from \"../CustomScrollView/useTrackerVisibility\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Popper, Placement } from \"../Popper/Popper\";\nimport { Spinner } from \"../Spinner/Spinner\";\nimport { HasRef } from \"../../types\";\nimport \"./CustomSelectDropdown.css\";\n\nexport interface CustomSelectDropdownProps\n extends React.HTMLAttributes<HTMLElement>,\n HasRef<HTMLDivElement>,\n TrackerOptionsProps {\n targetRef: React.RefObject<HTMLElement>;\n placement?: Placement;\n scrollBoxRef?: React.RefObject<HTMLDivElement>;\n fetching?: boolean;\n offsetDistance?: number;\n sameWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (placement?: Placement) => void;\n}\n\nconst calcIsTop = (placement?: Placement) => placement?.includes(\"top\");\n\nexport const CustomSelectDropdown = ({\n children,\n targetRef,\n scrollBoxRef,\n placement,\n fetching,\n onPlacementChange: parentOnPlacementChange,\n offsetDistance = 0,\n sameWidth = true,\n forcePortal = true,\n autoHideScrollbar,\n autoHideScrollbarDelay,\n ...restProps\n}: CustomSelectDropdownProps) => {\n const [isTop, setIsTop] = React.useState(() => calcIsTop(placement));\n\n const customModifiers = React.useMemo<Array<Modifier<string>>>(() => {\n if (!scrollBoxRef?.current) {\n return [];\n }\n\n return [\n {\n name: \"customSelectChildrenChange\",\n enabled: true,\n phase: \"main\",\n effect: ({ instance }) => {\n const observer = new MutationObserver(instance.forceUpdate);\n\n observer.observe(scrollBoxRef.current as Element, {\n childList: true,\n });\n\n return () => {\n observer.disconnect();\n };\n },\n },\n ];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [scrollBoxRef?.current]);\n\n const onPlacementChange = React.useCallback(\n ({ placement }: { placement?: Placement }) => {\n setIsTop(calcIsTop(placement));\n parentOnPlacementChange?.(placement);\n },\n [parentOnPlacementChange, setIsTop]\n );\n\n return (\n <Popper\n targetRef={targetRef}\n offsetDistance={offsetDistance}\n sameWidth={sameWidth}\n onPlacementChange={onPlacementChange}\n placement={placement}\n vkuiClass={classNames(\n \"CustomSelectDropdown\",\n offsetDistance === 0 &&\n (isTop\n ? \"CustomSelectDropdown--top\"\n : \"CustomSelectDropdown--bottom\"),\n sameWidth && \"CustomSelectDropdown--wide\"\n )}\n forcePortal={forcePortal}\n customModifiers={customModifiers}\n {...restProps}\n >\n <CustomScrollView\n boxRef={scrollBoxRef}\n vkuiClass=\"CustomSelectDropdown__in\"\n autoHideScrollbar={autoHideScrollbar}\n autoHideScrollbarDelay={autoHideScrollbarDelay}\n >\n {fetching ? (\n <div vkuiClass=\"CustomSelectDropdown__fetching\">\n <Spinner size=\"small\" />\n </div>\n ) : (\n children\n )}\n </CustomScrollView>\n </Popper>\n );\n};\n"],"file":"CustomSelectDropdown.js"}
|