@vkontakte/vkui 7.0.1 → 7.1.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/dist/components/ActionSheet/types.d.ts +1 -1
- package/dist/components/ActionSheet/types.d.ts.map +1 -1
- package/dist/components/ActionSheet/types.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 +1 -1
- package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppRoot/AppRootContext.d.ts +2 -2
- package/dist/components/AppRoot/AppRootContext.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.d.ts +1 -1
- package/dist/components/AppRoot/AppRootPortal.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/components/AppRoot/ScrollContext.d.ts +1 -1
- package/dist/components/AppRoot/ScrollContext.d.ts.map +1 -1
- package/dist/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.d.ts +7 -3
- package/dist/components/AspectRatio/AspectRatio.d.ts.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.js +1 -1
- package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +3 -4
- package/dist/components/Calendar/Calendar.d.ts.map +1 -1
- package/dist/components/Calendar/Calendar.js +81 -64
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.d.ts +3 -0
- package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.js +3 -1
- package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.d.ts +3 -0
- package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.d.ts +12 -0
- package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.js +4 -2
- package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts +7 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +108 -93
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/CalendarTime/CalendarTime.d.ts +20 -4
- package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
- package/dist/components/CalendarTime/CalendarTime.js +68 -9
- package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/components/CardScroll/CardScroll.d.ts +2 -3
- package/dist/components/CardScroll/CardScroll.d.ts.map +1 -1
- package/dist/components/CardScroll/CardScroll.js +6 -2
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/CarouselBase/Bullets.d.ts +16 -0
- package/dist/components/CarouselBase/Bullets.d.ts.map +1 -0
- package/dist/components/CarouselBase/Bullets.js +21 -0
- package/dist/components/CarouselBase/Bullets.js.map +1 -0
- package/dist/components/CarouselBase/CarouselBase.d.ts +4 -0
- package/dist/components/CarouselBase/CarouselBase.d.ts.map +1 -0
- package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/CarouselBase.js +175 -98
- package/dist/components/CarouselBase/CarouselBase.js.map +1 -0
- package/dist/components/CarouselBase/CarouselViewPort.d.ts +14 -0
- package/dist/components/CarouselBase/CarouselViewPort.d.ts.map +1 -0
- package/dist/components/CarouselBase/CarouselViewPort.js +29 -0
- package/dist/components/CarouselBase/CarouselViewPort.js.map +1 -0
- package/dist/components/CarouselBase/ScrollArrows.d.ts +23 -0
- package/dist/components/CarouselBase/ScrollArrows.d.ts.map +1 -0
- package/dist/components/CarouselBase/ScrollArrows.js +34 -0
- package/dist/components/CarouselBase/ScrollArrows.js.map +1 -0
- package/dist/components/CarouselBase/constants.d.ts.map +1 -0
- package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/constants.js +5 -1
- package/dist/components/CarouselBase/constants.js.map +1 -0
- package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/helpers.d.ts +13 -4
- package/dist/components/CarouselBase/helpers.d.ts.map +1 -0
- package/dist/{cssm/components/BaseGallery → components}/CarouselBase/helpers.js +41 -5
- package/dist/components/CarouselBase/helpers.js.map +1 -0
- package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/hooks.d.ts +1 -1
- package/dist/components/CarouselBase/hooks.d.ts.map +1 -0
- package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/hooks.js +2 -2
- package/dist/components/CarouselBase/hooks.js.map +1 -0
- package/dist/components/CarouselBase/types.d.ts +125 -0
- package/dist/components/CarouselBase/types.d.ts.map +1 -0
- package/dist/components/CarouselBase/types.js.map +1 -0
- package/dist/components/ChipsInput/ChipsInput.d.ts +1 -1
- package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
- package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/components/ChipsInput/useChipsInput.d.ts +1 -1
- package/dist/components/ChipsInput/useChipsInput.d.ts.map +1 -1
- package/dist/components/ChipsInput/useChipsInput.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/ChipsSelect/useChipsSelect.d.ts +1 -1
- package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
- package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
- package/dist/components/Clickable/useState.js.map +1 -1
- package/dist/components/Clickable/useStateWithDelay.js +1 -1
- package/dist/components/Clickable/useStateWithDelay.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js +8 -23
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
- package/dist/components/ConfigProvider/ConfigProviderContext.d.ts.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderContext.js +22 -0
- package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderOverride.d.ts.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderOverride.js +2 -3
- package/dist/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.d.ts +5 -1
- package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.js +9 -4
- package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +6 -2
- package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +8 -4
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts +24 -2
- package/dist/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/components/DateInput/DateInput.js +41 -6
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +19 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +6 -4
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/Epic/Epic.d.ts.map +1 -1
- package/dist/components/Epic/Epic.js.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.d.ts.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.js +1 -2
- package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/components/Gallery/Gallery.d.ts +2 -3
- package/dist/components/Gallery/Gallery.d.ts.map +1 -1
- package/dist/components/Gallery/Gallery.js +3 -6
- package/dist/components/Gallery/Gallery.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +9 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js +6 -4
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/Image/Image.d.ts +1 -0
- package/dist/components/Image/Image.d.ts.map +1 -1
- package/dist/components/Image/Image.js +2 -0
- package/dist/components/Image/Image.js.map +1 -1
- package/dist/components/ImageBase/ImageBase.d.ts +8 -1
- package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBase.js +39 -11
- package/dist/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.d.ts +29 -0
- package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.d.ts.map +1 -0
- package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js +96 -0
- package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -0
- package/dist/components/ImageBase/ImageBaseFloatElement/helpers.d.ts +4 -0
- package/dist/components/ImageBase/ImageBaseFloatElement/helpers.d.ts.map +1 -0
- package/dist/components/ImageBase/ImageBaseFloatElement/helpers.js +35 -0
- package/dist/components/ImageBase/ImageBaseFloatElement/helpers.js.map +1 -0
- package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts +1 -1
- package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
- package/dist/components/ImageBase/context.d.ts.map +1 -1
- package/dist/components/ImageBase/context.js +3 -1
- package/dist/components/ImageBase/context.js.map +1 -1
- package/dist/components/ImageBase/types.d.ts +2 -0
- package/dist/components/ImageBase/types.d.ts.map +1 -1
- package/dist/components/ImageBase/types.js.map +1 -1
- package/dist/components/ImageBase/validators.d.ts +2 -1
- package/dist/components/ImageBase/validators.d.ts.map +1 -1
- package/dist/components/ImageBase/validators.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.d.ts +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootContext.d.ts +1 -1
- package/dist/components/ModalRoot/ModalRootContext.d.ts.map +1 -1
- package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/components/Pagination/Pagination.d.ts +14 -1
- package/dist/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/components/Pagination/Pagination.js +13 -4
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts +2 -0
- package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts.map +1 -1
- package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js +2 -1
- package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
- package/dist/components/Popover/Popover.d.ts +2 -2
- package/dist/components/Popover/Popover.d.ts.map +1 -1
- package/dist/components/Popover/Popover.js +6 -126
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popover/usePopover.d.ts +14 -0
- package/dist/components/Popover/usePopover.d.ts.map +1 -0
- package/dist/components/Popover/usePopover.js +138 -0
- package/dist/components/Popover/usePopover.js.map +1 -0
- package/dist/components/Popper/Popper.d.ts +1 -1
- package/dist/components/Popper/Popper.d.ts.map +1 -1
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.js +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/Removable/Removable.d.ts +2 -2
- package/dist/components/Removable/Removable.js.map +1 -1
- package/dist/components/RichCell/RichCell.d.ts +11 -1
- package/dist/components/RichCell/RichCell.d.ts.map +1 -1
- package/dist/components/RichCell/RichCell.js +15 -8
- package/dist/components/RichCell/RichCell.js.map +1 -1
- package/dist/components/Root/Root.d.ts.map +1 -1
- package/dist/components/Root/Root.js +3 -1
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.d.ts +2 -2
- package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js +30 -10
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +6 -17
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/Select.js +3 -2
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.js +2 -2
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Slider/Slider.d.ts +9 -1
- package/dist/components/Slider/Slider.d.ts.map +1 -1
- package/dist/components/Slider/Slider.js +5 -1
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/Snackbar/Snackbar.js +1 -1
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/SplitCol/SplitColContext.d.ts +1 -1
- package/dist/components/SplitCol/SplitColContext.d.ts.map +1 -1
- package/dist/components/SplitCol/SplitColContext.js.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.js +2 -82
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/Textarea/Textarea.js +2 -2
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Textarea/useResizeTextarea.d.ts +1 -1
- package/dist/components/Textarea/useResizeTextarea.d.ts.map +1 -1
- package/dist/components/Textarea/useResizeTextarea.js +1 -1
- package/dist/components/Textarea/useResizeTextarea.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +2 -2
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +4 -2
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/UsersStack/UsersStack.d.ts +1 -1
- package/dist/components/UsersStack/UsersStack.d.ts.map +1 -1
- package/dist/components/UsersStack/UsersStack.js +16 -5
- package/dist/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/components/View/View.d.ts.map +1 -1
- package/dist/components/View/View.js +3 -1
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.d.ts.map +1 -1
- package/dist/components/View/ViewInfinite.js +3 -1
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/context/CalendarDirectionContext.d.ts +7 -0
- package/dist/context/CalendarDirectionContext.d.ts.map +1 -0
- package/dist/context/CalendarDirectionContext.js +7 -0
- package/dist/context/CalendarDirectionContext.js.map +1 -0
- package/dist/cssm/components/ActionSheet/types.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.js +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/cssm/components/Calendar/Calendar.js +79 -64
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.js +3 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.module.css +4 -0
- package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js +4 -2
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js +108 -94
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.js +67 -9
- package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.js +3 -1
- package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cssm/components/CarouselBase/Bullets.js +22 -0
- package/dist/cssm/components/CarouselBase/Bullets.js.map +1 -0
- package/dist/cssm/components/{BaseGallery/CarouselBase → CarouselBase}/CarouselBase.js +164 -97
- package/dist/cssm/components/CarouselBase/CarouselBase.js.map +1 -0
- package/dist/cssm/components/{BaseGallery/BaseGallery.module.css → CarouselBase/CarouselBase.module.css} +21 -1
- package/dist/cssm/components/CarouselBase/CarouselViewPort.js +30 -0
- package/dist/cssm/components/CarouselBase/CarouselViewPort.js.map +1 -0
- package/dist/cssm/components/CarouselBase/ScrollArrows.js +35 -0
- package/dist/cssm/components/CarouselBase/ScrollArrows.js.map +1 -0
- package/dist/cssm/components/{BaseGallery/CarouselBase → CarouselBase}/constants.js +5 -1
- package/dist/cssm/components/CarouselBase/constants.js.map +1 -0
- package/dist/{components/BaseGallery → cssm/components}/CarouselBase/helpers.js +39 -5
- package/dist/cssm/components/CarouselBase/helpers.js.map +1 -0
- package/dist/cssm/components/{BaseGallery/CarouselBase → CarouselBase}/hooks.js +2 -2
- package/dist/cssm/components/CarouselBase/hooks.js.map +1 -0
- package/dist/cssm/components/CarouselBase/types.js.map +1 -0
- package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cssm/components/ChipsInput/useChipsInput.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
- package/dist/cssm/components/Clickable/useState.js.map +1 -1
- package/dist/cssm/components/Clickable/useStateWithDelay.js +1 -1
- package/dist/cssm/components/Clickable/useStateWithDelay.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js +8 -23
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +22 -0
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js +2 -3
- package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js +8 -4
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +6 -2
- package/dist/cssm/components/CustomSelect/CustomSelect.js +6 -3
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.js +37 -5
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -3
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/Epic/Epic.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js +1 -2
- package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.module.css +11 -11
- package/dist/cssm/components/Gallery/Gallery.js +3 -5
- package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +3 -3
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/Image/Image.js +2 -0
- package/dist/cssm/components/Image/Image.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.js +35 -9
- package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.module.css +9 -0
- package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js +91 -0
- package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -0
- package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +134 -0
- package/dist/cssm/components/ImageBase/ImageBaseFloatElement/helpers.js +35 -0
- package/dist/cssm/components/ImageBase/ImageBaseFloatElement/helpers.js.map +1 -0
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
- package/dist/cssm/components/ImageBase/context.js +3 -1
- package/dist/cssm/components/ImageBase/context.js.map +1 -1
- package/dist/cssm/components/ImageBase/types.js.map +1 -1
- package/dist/cssm/components/ImageBase/validators.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.js +10 -4
- package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
- package/dist/cssm/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js +2 -1
- package/dist/cssm/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
- package/dist/cssm/components/Popover/Popover.js +5 -93
- package/dist/cssm/components/Popover/Popover.js.map +1 -1
- package/dist/cssm/components/Popover/usePopover.js +102 -0
- package/dist/cssm/components/Popover/usePopover.js.map +1 -0
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/RichCell/RichCell.js +13 -8
- package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
- package/dist/cssm/components/RichCell/RichCell.module.css +17 -3
- package/dist/cssm/components/Root/Root.js +3 -1
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js +27 -7
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +5 -5
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cssm/components/Select/Select.js +1 -1
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.js +2 -2
- package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/cssm/components/Slider/Slider.js +3 -1
- package/dist/cssm/components/Slider/Slider.js.map +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.js +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.module.css +12 -6
- package/dist/cssm/components/SplitCol/SplitColContext.js.map +1 -1
- package/dist/cssm/components/Tabs/Tabs.js +2 -82
- package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.js +2 -2
- package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
- package/dist/cssm/components/Textarea/useResizeTextarea.js +1 -1
- package/dist/cssm/components/Textarea/useResizeTextarea.js.map +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.js +3 -2
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.js +15 -4
- package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.module.css +27 -17
- package/dist/cssm/components/View/View.js +3 -1
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/ViewInfinite.js +3 -1
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/context/CalendarDirectionContext.js +7 -0
- package/dist/cssm/context/CalendarDirectionContext.js.map +1 -0
- package/dist/cssm/helpers/getMergedSameEventsByProps.js.map +1 -1
- package/dist/cssm/hooks/useDateInput.js.map +1 -1
- package/dist/cssm/hooks/useDirection.js.map +1 -1
- package/dist/cssm/hooks/useDraggableWithDomApi/types.js.map +1 -1
- package/dist/cssm/hooks/useEnsuredControl.js +1 -1
- package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
- package/dist/cssm/hooks/useExternRef.js.map +1 -1
- package/dist/cssm/hooks/useFocusTrap.js.map +1 -1
- package/dist/cssm/hooks/useGlobalOnClickOutside.js.map +1 -1
- package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/cssm/hooks/useMutationObserver.js.map +1 -1
- package/dist/cssm/hooks/useNativeFormResetListener.js.map +1 -1
- package/dist/cssm/hooks/usePatchChildren.js.map +1 -1
- package/dist/cssm/hooks/usePrevious.js +1 -1
- package/dist/cssm/hooks/usePrevious.js.map +1 -1
- package/dist/cssm/hooks/useResizeObserver.js +20 -4
- package/dist/cssm/hooks/useResizeObserver.js.map +1 -1
- package/dist/cssm/hooks/useStateWithPrev.js.map +1 -1
- package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
- package/dist/cssm/hooks/useSyncHTMLWithTokens.js.map +1 -1
- package/dist/cssm/hooks/useTabsNavigation.js +90 -0
- package/dist/cssm/hooks/useTabsNavigation.js.map +1 -0
- package/dist/cssm/index.js +4 -0
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/animation/useCSSTransition.js.map +1 -1
- package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -4
- package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
- package/dist/cssm/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
- package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +10 -3
- package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
- package/dist/cssm/lib/utils.js.map +1 -1
- package/dist/cssm/styles/constants.css +1 -0
- package/dist/helpers/getMergedSameEventsByProps.d.ts +1 -1
- package/dist/helpers/getMergedSameEventsByProps.d.ts.map +1 -1
- package/dist/helpers/getMergedSameEventsByProps.js.map +1 -1
- package/dist/hooks/useDateInput.d.ts +3 -3
- package/dist/hooks/useDateInput.d.ts.map +1 -1
- package/dist/hooks/useDateInput.js.map +1 -1
- package/dist/hooks/useDirection.d.ts +2 -2
- package/dist/hooks/useDirection.d.ts.map +1 -1
- package/dist/hooks/useDirection.js.map +1 -1
- package/dist/hooks/useDraggableWithDomApi/types.d.ts +1 -1
- package/dist/hooks/useDraggableWithDomApi/types.d.ts.map +1 -1
- package/dist/hooks/useDraggableWithDomApi/types.js.map +1 -1
- package/dist/hooks/useEnsuredControl.js +1 -1
- package/dist/hooks/useEnsuredControl.js.map +1 -1
- package/dist/hooks/useExternRef.d.ts +1 -1
- package/dist/hooks/useExternRef.d.ts.map +1 -1
- package/dist/hooks/useExternRef.js.map +1 -1
- package/dist/hooks/useFocusTrap.d.ts +1 -1
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.js.map +1 -1
- package/dist/hooks/useGlobalOnClickOutside.d.ts +1 -1
- package/dist/hooks/useGlobalOnClickOutside.d.ts.map +1 -1
- package/dist/hooks/useGlobalOnClickOutside.js.map +1 -1
- package/dist/hooks/useKeyboardInputTracker.d.ts +1 -1
- package/dist/hooks/useKeyboardInputTracker.d.ts.map +1 -1
- package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/hooks/useMutationObserver.d.ts +1 -1
- package/dist/hooks/useMutationObserver.d.ts.map +1 -1
- package/dist/hooks/useMutationObserver.js.map +1 -1
- package/dist/hooks/useNativeFormResetListener.d.ts +1 -1
- package/dist/hooks/useNativeFormResetListener.d.ts.map +1 -1
- package/dist/hooks/useNativeFormResetListener.js.map +1 -1
- package/dist/hooks/usePatchChildren.d.ts +2 -2
- package/dist/hooks/usePatchChildren.d.ts.map +1 -1
- package/dist/hooks/usePatchChildren.js.map +1 -1
- package/dist/hooks/usePrevious.js +1 -1
- package/dist/hooks/usePrevious.js.map +1 -1
- package/dist/hooks/useResizeObserver.d.ts +1 -1
- package/dist/hooks/useResizeObserver.d.ts.map +1 -1
- package/dist/hooks/useResizeObserver.js +20 -4
- package/dist/hooks/useResizeObserver.js.map +1 -1
- package/dist/hooks/useStateWithPrev.d.ts.map +1 -1
- package/dist/hooks/useStateWithPrev.js.map +1 -1
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts +1 -1
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts.map +1 -1
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
- package/dist/hooks/useSyncHTMLWithTokens.d.ts +1 -1
- package/dist/hooks/useSyncHTMLWithTokens.d.ts.map +1 -1
- package/dist/hooks/useSyncHTMLWithTokens.js.map +1 -1
- package/dist/hooks/useTabsNavigation.d.ts +5 -0
- package/dist/hooks/useTabsNavigation.d.ts.map +1 -0
- package/dist/hooks/useTabsNavigation.js +90 -0
- package/dist/hooks/useTabsNavigation.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/animation/useCSSTransition.d.ts +1 -1
- package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
- package/dist/lib/animation/useCSSTransition.js.map +1 -1
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +1 -1
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -4
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/types.d.ts +10 -1
- package/dist/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.d.ts +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.d.ts.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +10 -3
- package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
- package/dist/lib/utils.d.ts +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +6 -6
- package/src/components/ActionSheet/types.ts +1 -1
- package/src/components/Alert/Alert.tsx +1 -1
- package/src/components/AppRoot/AppRoot.tsx +1 -1
- package/src/components/AppRoot/AppRootContext.ts +2 -2
- package/src/components/AppRoot/AppRootPortal.tsx +1 -1
- package/src/components/AppRoot/ScrollContext.tsx +1 -1
- package/src/components/AspectRatio/AspectRatio.tsx +11 -4
- package/src/components/Calendar/Calendar.tsx +90 -72
- package/src/components/CalendarDay/CalendarDay.module.css +4 -0
- package/src/components/CalendarDay/CalendarDay.tsx +10 -1
- package/src/components/CalendarDays/CalendarDays.tsx +3 -0
- package/src/components/CalendarHeader/CalendarHeader.tsx +17 -2
- package/src/components/CalendarRange/CalendarRange.tsx +110 -84
- package/src/components/CalendarTime/CalendarTime.tsx +104 -16
- package/src/components/CardScroll/CardScroll.tsx +8 -2
- package/src/components/CarouselBase/Bullets.tsx +36 -0
- package/src/components/{BaseGallery/BaseGallery.module.css → CarouselBase/CarouselBase.module.css} +19 -1
- package/src/components/CarouselBase/CarouselBase.tsx +502 -0
- package/src/components/CarouselBase/CarouselViewPort.tsx +54 -0
- package/src/components/CarouselBase/ScrollArrows.tsx +80 -0
- package/src/components/{BaseGallery/CarouselBase → CarouselBase}/constants.ts +4 -0
- package/src/components/{BaseGallery/CarouselBase → CarouselBase}/helpers.ts +67 -7
- package/src/components/{BaseGallery/CarouselBase → CarouselBase}/hooks.ts +2 -2
- package/src/components/CarouselBase/types.ts +135 -0
- package/src/components/ChipsInput/ChipsInput.tsx +1 -1
- package/src/components/ChipsInput/useChipsInput.ts +2 -2
- package/src/components/ChipsSelect/ChipsSelect.tsx +1 -1
- package/src/components/ChipsSelect/useChipsSelect.ts +1 -1
- package/src/components/Clickable/useState.tsx +2 -2
- package/src/components/Clickable/useStateWithDelay.tsx +1 -1
- package/src/components/ConfigProvider/ConfigProvider.tsx +8 -35
- package/src/components/ConfigProvider/ConfigProviderContext.tsx +36 -0
- package/src/components/ConfigProvider/ConfigProviderOverride.tsx +2 -5
- package/src/components/CustomScrollView/CustomScrollView.module.css +6 -2
- package/src/components/CustomScrollView/CustomScrollView.tsx +13 -2
- package/src/components/CustomSelect/CustomSelect.tsx +12 -4
- package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +1 -1
- package/src/components/DateInput/DateInput.tsx +62 -5
- package/src/components/DateRangeInput/DateRangeInput.tsx +22 -2
- package/src/components/Epic/Epic.tsx +5 -3
- package/src/components/FixedLayout/FixedLayout.tsx +1 -2
- package/src/components/FormField/FormField.module.css +11 -11
- package/src/components/Gallery/Gallery.tsx +4 -10
- package/src/components/HorizontalScroll/HorizontalScroll.tsx +12 -2
- package/src/components/Image/Image.tsx +4 -0
- package/src/components/ImageBase/ImageBase.module.css +9 -0
- package/src/components/ImageBase/ImageBase.tsx +69 -10
- package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +134 -0
- package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.tsx +168 -0
- package/src/components/ImageBase/ImageBaseFloatElement/helpers.ts +44 -0
- package/src/components/ImageBase/ImageBaseOverlay/hooks.ts +1 -1
- package/src/components/ImageBase/context.ts +2 -0
- package/src/components/ImageBase/types.ts +2 -0
- package/src/components/ImageBase/validators.ts +5 -4
- package/src/components/ModalCardBase/ModalCardBase.tsx +1 -1
- package/src/components/ModalRoot/ModalRootContext.tsx +3 -1
- package/src/components/Pagination/Pagination.tsx +23 -4
- package/src/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.tsx +4 -2
- package/src/components/Popover/Popover.tsx +6 -166
- package/src/components/Popover/usePopover.tsx +183 -0
- package/src/components/Popper/Popper.tsx +1 -1
- package/src/components/PullToRefresh/PullToRefresh.tsx +1 -1
- package/src/components/Removable/Removable.tsx +2 -2
- package/src/components/RichCell/RichCell.module.css +17 -3
- package/src/components/RichCell/RichCell.tsx +28 -8
- package/src/components/Root/Root.tsx +4 -2
- package/src/components/SegmentedControl/SegmentedControl.tsx +46 -14
- package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +14 -10
- package/src/components/Select/Select.tsx +1 -0
- package/src/components/Skeleton/Skeleton.tsx +3 -3
- package/src/components/Slider/Slider.tsx +12 -0
- package/src/components/Snackbar/Snackbar.tsx +1 -1
- package/src/components/Snackbar/subcomponents/Basic/Basic.module.css +12 -6
- package/src/components/SplitCol/SplitColContext.tsx +1 -1
- package/src/components/Tabs/Tabs.tsx +2 -99
- package/src/components/Textarea/Textarea.tsx +2 -2
- package/src/components/Textarea/useResizeTextarea.ts +3 -3
- package/src/components/Tooltip/Tooltip.tsx +3 -0
- package/src/components/UsersStack/UsersStack.module.css +27 -17
- package/src/components/UsersStack/UsersStack.tsx +24 -3
- package/src/components/View/View.tsx +9 -5
- package/src/components/View/ViewInfinite.tsx +5 -3
- package/src/context/CalendarDirectionContext.ts +12 -0
- package/src/helpers/getMergedSameEventsByProps.ts +1 -1
- package/src/hooks/useDateInput.ts +5 -5
- package/src/hooks/useDirection.ts +3 -3
- package/src/hooks/useDraggableWithDomApi/types.ts +1 -1
- package/src/hooks/useEnsuredControl.ts +1 -1
- package/src/hooks/useExternRef.ts +2 -2
- package/src/hooks/useFocusTrap.ts +1 -1
- package/src/hooks/useGlobalOnClickOutside.ts +1 -1
- package/src/hooks/useKeyboardInputTracker.ts +1 -1
- package/src/hooks/useMutationObserver.ts +1 -1
- package/src/hooks/useNativeFormResetListener.ts +1 -1
- package/src/hooks/usePatchChildren.ts +2 -9
- package/src/hooks/usePrevious.ts +1 -1
- package/src/hooks/useResizeObserver.ts +30 -6
- package/src/hooks/useStateWithPrev.ts +1 -5
- package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +1 -1
- package/src/hooks/useSyncHTMLWithTokens.ts +1 -1
- package/src/hooks/useTabsNavigation.ts +104 -0
- package/src/index.ts +7 -0
- package/src/lib/animation/useCSSTransition.ts +1 -1
- package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +9 -9
- package/src/lib/floating/useFloatingWithInteractions/types.ts +15 -5
- package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +7 -2
- package/src/lib/utils.ts +2 -2
- package/src/styles/constants.css +1 -0
- package/dist/components/BaseGallery/BaseGallery.d.ts +0 -4
- package/dist/components/BaseGallery/BaseGallery.d.ts.map +0 -1
- package/dist/components/BaseGallery/BaseGallery.js +0 -321
- package/dist/components/BaseGallery/BaseGallery.js.map +0 -1
- package/dist/components/BaseGallery/CarouselBase/CarouselBase.d.ts +0 -4
- package/dist/components/BaseGallery/CarouselBase/CarouselBase.d.ts.map +0 -1
- package/dist/components/BaseGallery/CarouselBase/CarouselBase.js.map +0 -1
- package/dist/components/BaseGallery/CarouselBase/constants.d.ts.map +0 -1
- package/dist/components/BaseGallery/CarouselBase/constants.js.map +0 -1
- package/dist/components/BaseGallery/CarouselBase/helpers.d.ts.map +0 -1
- package/dist/components/BaseGallery/CarouselBase/helpers.js.map +0 -1
- package/dist/components/BaseGallery/CarouselBase/hooks.d.ts.map +0 -1
- package/dist/components/BaseGallery/CarouselBase/hooks.js.map +0 -1
- package/dist/components/BaseGallery/CarouselBase/types.d.ts +0 -54
- package/dist/components/BaseGallery/CarouselBase/types.d.ts.map +0 -1
- package/dist/components/BaseGallery/CarouselBase/types.js.map +0 -1
- package/dist/components/BaseGallery/helpers.d.ts +0 -13
- package/dist/components/BaseGallery/helpers.d.ts.map +0 -1
- package/dist/components/BaseGallery/helpers.js +0 -24
- package/dist/components/BaseGallery/helpers.js.map +0 -1
- package/dist/components/BaseGallery/types.d.ts +0 -55
- package/dist/components/BaseGallery/types.d.ts.map +0 -1
- package/dist/components/BaseGallery/types.js.map +0 -1
- package/dist/cssm/components/BaseGallery/BaseGallery.js +0 -293
- package/dist/cssm/components/BaseGallery/BaseGallery.js.map +0 -1
- package/dist/cssm/components/BaseGallery/CarouselBase/CarouselBase.js.map +0 -1
- package/dist/cssm/components/BaseGallery/CarouselBase/constants.js.map +0 -1
- package/dist/cssm/components/BaseGallery/CarouselBase/helpers.js.map +0 -1
- package/dist/cssm/components/BaseGallery/CarouselBase/hooks.js.map +0 -1
- package/dist/cssm/components/BaseGallery/CarouselBase/types.js +0 -3
- package/dist/cssm/components/BaseGallery/CarouselBase/types.js.map +0 -1
- package/dist/cssm/components/BaseGallery/helpers.js +0 -24
- package/dist/cssm/components/BaseGallery/helpers.js.map +0 -1
- package/dist/cssm/components/BaseGallery/types.js +0 -3
- package/dist/cssm/components/BaseGallery/types.js.map +0 -1
- package/dist/cssm/hooks/useObjectMemo.js +0 -15
- package/dist/cssm/hooks/useObjectMemo.js.map +0 -1
- package/dist/hooks/useObjectMemo.d.ts +0 -5
- package/dist/hooks/useObjectMemo.d.ts.map +0 -1
- package/dist/hooks/useObjectMemo.js +0 -15
- package/dist/hooks/useObjectMemo.js.map +0 -1
- package/src/components/BaseGallery/BaseGallery.tsx +0 -380
- package/src/components/BaseGallery/CarouselBase/CarouselBase.tsx +0 -399
- package/src/components/BaseGallery/CarouselBase/types.ts +0 -56
- package/src/components/BaseGallery/helpers.ts +0 -46
- package/src/components/BaseGallery/types.ts +0 -61
- package/src/hooks/useObjectMemo.ts +0 -16
- /package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/constants.d.ts +0 -0
- /package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/types.js +0 -0
- /package/dist/{components/BaseGallery → cssm/components/CarouselBase}/types.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarRange.d.ts","sourceRoot":"","sources":["../../../src/components/CalendarRange/CalendarRange.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CalendarRange.d.ts","sourceRoot":"","sources":["../../../src/components/CalendarRange/CalendarRange.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC9B,MAAM,kCAAkC,CAAC;AAI1C,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AAEvD,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,GAAG;IAC7D;;OAEG;IACH,uBAAuB,CAAC,EAAE,wBAAwB,CAAC;IACnD;;OAEG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;CACrD,CAAC;AAEF,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EACjE,IAAI,CACF,mBAAmB,EACjB,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,eAAe,GACf,eAAe,CAClB,EACD,IAAI,CAAC,iBAAiB,EAAE,2BAA2B,GAAG,kBAAkB,CAAC,EACzE,uBAAuB;IACzB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,KAAK,IAAI,CAAC;IACtD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAUD;;GAEG;AACH,eAAO,MAAM,aAAa,gWAuBvB,kBAAkB,KAAG,KAAK,CAAC,SAsN7B,CAAC"}
|
|
@@ -5,7 +5,10 @@ import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_
|
|
|
5
5
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import { addMonths, endOfDay, isAfter, isBefore, isSameDay, isSameMonth, isWithinInterval, startOfDay, subMonths } from "date-fns";
|
|
8
|
+
import { CalendarDirectionContext } from "../../context/CalendarDirectionContext.js";
|
|
8
9
|
import { useCalendar } from "../../hooks/useCalendar.js";
|
|
10
|
+
import { useDirection } from "../../hooks/useDirection.js";
|
|
11
|
+
import { useExternRef } from "../../hooks/useExternRef.js";
|
|
9
12
|
import { isFirstDay, isLastDay, navigateDate } from "../../lib/calendar.js";
|
|
10
13
|
import { CalendarDays } from "../CalendarDays/CalendarDays.js";
|
|
11
14
|
import { CalendarHeader } from "../CalendarHeader/CalendarHeader.js";
|
|
@@ -22,7 +25,7 @@ const getIsDaySelected = (day, value)=>{
|
|
|
22
25
|
/**
|
|
23
26
|
* @see https://vkcom.github.io/VKUI/#/CalendarRange
|
|
24
27
|
*/ export const CalendarRange = (_param)=>{
|
|
25
|
-
var { value, onChange, disablePast, disableFuture, shouldDisableDate, onClose, weekStartsOn = 1, disablePickers, prevMonthLabel = 'Предыдущий месяц', nextMonthLabel = 'Следующий месяц', changeMonthLabel = 'Изменить месяц', changeYearLabel = 'Изменить год', changeDayLabel = 'Изменить день', prevMonthIcon, nextMonthIcon, listenDayChangesForUpdate, renderDayContent, dayTestId, leftPartHeaderTestsData, rightPartHeaderTestsData } = _param, props = _object_without_properties(_param, [
|
|
28
|
+
var { value, onChange, disablePast, disableFuture, shouldDisableDate, onClose, weekStartsOn = 1, disablePickers, prevMonthLabel = 'Предыдущий месяц', nextMonthLabel = 'Следующий месяц', changeMonthLabel = 'Изменить месяц', changeYearLabel = 'Изменить год', changeDayLabel = 'Изменить день', prevMonthIcon, nextMonthIcon, listenDayChangesForUpdate, renderDayContent, dayTestId, leftPartHeaderTestsData, rightPartHeaderTestsData, getRootRef } = _param, props = _object_without_properties(_param, [
|
|
26
29
|
"value",
|
|
27
30
|
"onChange",
|
|
28
31
|
"disablePast",
|
|
@@ -42,7 +45,8 @@ const getIsDaySelected = (day, value)=>{
|
|
|
42
45
|
"renderDayContent",
|
|
43
46
|
"dayTestId",
|
|
44
47
|
"leftPartHeaderTestsData",
|
|
45
|
-
"rightPartHeaderTestsData"
|
|
48
|
+
"rightPartHeaderTestsData",
|
|
49
|
+
"getRootRef"
|
|
46
50
|
]);
|
|
47
51
|
const { viewDate, setViewDate, setPrevMonth, setNextMonth, focusedDay, setFocusedDay, isDayFocused, isDayDisabled, resetSelectedDay, isMonthDisabled, isYearDisabled } = useCalendar({
|
|
48
52
|
value,
|
|
@@ -50,6 +54,8 @@ const getIsDaySelected = (day, value)=>{
|
|
|
50
54
|
disablePast,
|
|
51
55
|
shouldDisableDate
|
|
52
56
|
});
|
|
57
|
+
const [directionRef, textDirection = 'ltr'] = useDirection();
|
|
58
|
+
const rootRef = useExternRef(directionRef, getRootRef);
|
|
53
59
|
const [hintedDate, setHintedDate] = React.useState();
|
|
54
60
|
const secondViewDate = addMonths(viewDate, 1);
|
|
55
61
|
const handleKeyDown = React.useCallback((event)=>{
|
|
@@ -141,97 +147,106 @@ const getIsDaySelected = (day, value)=>{
|
|
|
141
147
|
const onRightPartViewDateChange = React.useCallback((newDate)=>setViewDate(subMonths(newDate, 1)), [
|
|
142
148
|
setViewDate
|
|
143
149
|
]);
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
150
|
+
const directionContextValue = React.useMemo(()=>({
|
|
151
|
+
direction: textDirection
|
|
152
|
+
}), [
|
|
153
|
+
textDirection
|
|
154
|
+
]);
|
|
155
|
+
return /*#__PURE__*/ _jsx(CalendarDirectionContext.Provider, {
|
|
156
|
+
value: directionContextValue,
|
|
157
|
+
children: /*#__PURE__*/ _jsxs(RootComponent, _object_spread_props(_object_spread({}, props), {
|
|
158
|
+
baseClassName: "vkuiCalendarRange__host",
|
|
159
|
+
getRootRef: rootRef,
|
|
160
|
+
children: [
|
|
161
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
162
|
+
className: "vkuiCalendarRange__inner",
|
|
163
|
+
children: [
|
|
164
|
+
/*#__PURE__*/ _jsx(CalendarHeader, _object_spread({
|
|
165
|
+
viewDate: viewDate,
|
|
166
|
+
onChange: setViewDate,
|
|
167
|
+
nextMonthHidden: true,
|
|
168
|
+
onPrevMonth: setPrevMonth,
|
|
169
|
+
disablePickers: disablePickers,
|
|
170
|
+
className: "vkuiCalendarRange__header",
|
|
171
|
+
prevMonthLabel: prevMonthLabel,
|
|
172
|
+
nextMonthLabel: nextMonthLabel,
|
|
173
|
+
changeMonthLabel: changeMonthLabel,
|
|
174
|
+
changeYearLabel: changeYearLabel,
|
|
175
|
+
prevMonthIcon: prevMonthIcon,
|
|
176
|
+
isMonthDisabled: isMonthDisabled,
|
|
177
|
+
isYearDisabled: isYearDisabled
|
|
178
|
+
}, leftPartHeaderTestsData)),
|
|
179
|
+
/*#__PURE__*/ _jsx(CalendarDays, {
|
|
180
|
+
viewDate: viewDate,
|
|
181
|
+
value: value,
|
|
182
|
+
weekStartsOn: weekStartsOn,
|
|
183
|
+
onKeyDown: handleKeyDown,
|
|
184
|
+
isDayFocused: isDayFocused,
|
|
185
|
+
onDayChange: onDayChange,
|
|
186
|
+
isDaySelected: isDaySelected,
|
|
187
|
+
isDayActive: isDayActive,
|
|
188
|
+
isDaySelectionEnd: isDaySelectionEnd,
|
|
189
|
+
isDaySelectionStart: isDaySelectionStart,
|
|
190
|
+
isDayHinted: isDayHinted,
|
|
191
|
+
onDayEnter: onDayEnter,
|
|
192
|
+
onDayLeave: onDayLeave,
|
|
193
|
+
isHintedDaySelectionEnd: isHintedDaySelectionEnd,
|
|
194
|
+
isHintedDaySelectionStart: isHintedDaySelectionStart,
|
|
195
|
+
isDayDisabled: isDayDisabled,
|
|
196
|
+
listenDayChangesForUpdate: listenDayChangesForUpdate,
|
|
197
|
+
renderDayContent: renderDayContent,
|
|
198
|
+
"aria-label": changeDayLabel,
|
|
199
|
+
dayTestId: dayTestId
|
|
200
|
+
})
|
|
201
|
+
]
|
|
202
|
+
}),
|
|
203
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
204
|
+
className: "vkuiCalendarRange__inner",
|
|
205
|
+
children: [
|
|
206
|
+
/*#__PURE__*/ _jsx(CalendarHeader, _object_spread({
|
|
207
|
+
viewDate: secondViewDate,
|
|
208
|
+
onChange: onRightPartViewDateChange,
|
|
209
|
+
prevMonthHidden: true,
|
|
210
|
+
onNextMonth: setNextMonth,
|
|
211
|
+
disablePickers: disablePickers,
|
|
212
|
+
className: "vkuiCalendarRange__header",
|
|
213
|
+
prevMonthLabel: prevMonthLabel,
|
|
214
|
+
nextMonthLabel: nextMonthLabel,
|
|
215
|
+
changeMonthLabel: changeMonthLabel,
|
|
216
|
+
changeYearLabel: changeYearLabel,
|
|
217
|
+
nextMonthIcon: nextMonthIcon,
|
|
218
|
+
isMonthDisabled: isMonthDisabled,
|
|
219
|
+
isYearDisabled: isYearDisabled
|
|
220
|
+
}, rightPartHeaderTestsData)),
|
|
221
|
+
/*#__PURE__*/ _jsx(CalendarDays, {
|
|
222
|
+
viewDate: secondViewDate,
|
|
223
|
+
value: value,
|
|
224
|
+
weekStartsOn: weekStartsOn,
|
|
225
|
+
"aria-label": changeDayLabel,
|
|
226
|
+
onKeyDown: handleKeyDown,
|
|
227
|
+
isDayFocused: isDayFocused,
|
|
228
|
+
onDayChange: onDayChange,
|
|
229
|
+
isDaySelected: isDaySelected,
|
|
230
|
+
isDayActive: isDayActive,
|
|
231
|
+
isDaySelectionEnd: isDaySelectionEnd,
|
|
232
|
+
isDaySelectionStart: isDaySelectionStart,
|
|
233
|
+
isDayHinted: isDayHinted,
|
|
234
|
+
onDayEnter: onDayEnter,
|
|
235
|
+
onDayLeave: onDayLeave,
|
|
236
|
+
isHintedDaySelectionEnd: isHintedDaySelectionEnd,
|
|
237
|
+
isHintedDaySelectionStart: isHintedDaySelectionStart,
|
|
238
|
+
isDayDisabled: isDayDisabled,
|
|
239
|
+
listenDayChangesForUpdate: listenDayChangesForUpdate,
|
|
240
|
+
renderDayContent: renderDayContent,
|
|
241
|
+
tabIndex: 0,
|
|
242
|
+
onBlur: resetSelectedDay,
|
|
243
|
+
dayTestId: dayTestId
|
|
244
|
+
})
|
|
245
|
+
]
|
|
246
|
+
})
|
|
247
|
+
]
|
|
248
|
+
}))
|
|
249
|
+
});
|
|
235
250
|
};
|
|
236
251
|
|
|
237
252
|
//# sourceMappingURL=CalendarRange.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/CalendarRange/CalendarRange.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport {\n addMonths,\n endOfDay,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfDay,\n subMonths,\n} from 'date-fns';\nimport { useCalendar } from '../../hooks/useCalendar';\nimport { isFirstDay, isLastDay, navigateDate } from '../../lib/calendar';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport {\n CalendarDays,\n type CalendarDaysProps,\n type CalendarDaysTestsProps,\n} from '../CalendarDays/CalendarDays';\nimport {\n CalendarHeader,\n type CalendarHeaderProps,\n type CalendarHeaderTestsProps,\n} from '../CalendarHeader/CalendarHeader';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './CalendarRange.module.css';\n\nexport type DateRangeType = [Date | null, Date | null];\n\nexport type CalendarRangeTestsProps = CalendarDaysTestsProps & {\n leftPartHeaderTestsData?: CalendarHeaderTestsProps;\n rightPartHeaderTestsData?: CalendarHeaderTestsProps;\n};\n\nexport interface CalendarRangeProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n Pick<\n CalendarHeaderProps,\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n >,\n Pick<CalendarDaysProps, 'listenDayChangesForUpdate' | 'renderDayContent'>,\n CalendarRangeTestsProps {\n value?: DateRangeType;\n disablePast?: boolean;\n disableFuture?: boolean;\n disablePickers?: boolean;\n changeDayLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n onChange?: (value: DateRangeType | undefined) => void;\n shouldDisableDate?: (value: Date) => boolean;\n onClose?: () => void;\n}\n\nconst getIsDaySelected = (day: Date, value?: DateRangeType) => {\n if (!value?.[0] || !value[1]) {\n return false;\n }\n\n return isWithinInterval(day, { start: startOfDay(value[0]), end: endOfDay(value[1]) });\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CalendarRange\n */\nexport const CalendarRange = ({\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onClose,\n weekStartsOn = 1,\n disablePickers,\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n changeDayLabel = 'Изменить день',\n prevMonthIcon,\n nextMonthIcon,\n listenDayChangesForUpdate,\n renderDayContent,\n dayTestId,\n leftPartHeaderTestsData,\n rightPartHeaderTestsData,\n ...props\n}: CalendarRangeProps): React.ReactNode => {\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n isMonthDisabled,\n isYearDisabled,\n } = useCalendar({ value, disableFuture, disablePast, shouldDisableDate });\n const [hintedDate, setHintedDate] = React.useState<DateRangeType>();\n const secondViewDate = addMonths(viewDate, 1);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key)) {\n event.preventDefault();\n }\n\n const newFocusedDay = navigateDate(focusedDay ?? value?.[1], event.key);\n\n if (\n newFocusedDay &&\n !isSameMonth(newFocusedDay, viewDate) &&\n !isSameMonth(newFocusedDay, addMonths(viewDate, 1))\n ) {\n setViewDate(newFocusedDay);\n }\n setFocusedDay(newFocusedDay);\n },\n [focusedDay, setFocusedDay, setViewDate, value, viewDate],\n );\n\n const getNewValue = React.useCallback(\n (date: Date): DateRangeType => {\n const isValueEmpty = !value || (value[0] === null && value[1] === null);\n const isRangeSelected = value && !!value[0] && !!value[1];\n if (isValueEmpty || isRangeSelected) {\n return [date, null];\n }\n\n const [start] = value;\n if (start && isSameDay(date, start)) {\n return [startOfDay(start), endOfDay(start)];\n } else if (start && isBefore(date, start)) {\n return [startOfDay(date), endOfDay(start)];\n } else if (start && isAfter(date, start)) {\n return [start, endOfDay(date)];\n }\n return value;\n },\n [value],\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n onChange?.(getNewValue(date));\n setHintedDate(undefined);\n },\n [onChange, getNewValue],\n );\n\n const isDaySelected = React.useCallback((day: Date) => getIsDaySelected(day, value), [value]);\n\n const isDayActive = React.useCallback(\n (day: Date) =>\n Boolean((value?.[0] && isSameDay(day, value[0])) || (value?.[1] && isSameDay(day, value[1]))),\n [value],\n );\n\n const isDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (value?.[1] && isSameDay(day, value[1]))),\n [value],\n );\n\n const isHintedDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (hintedDate?.[1] && isSameDay(day, hintedDate[1]))),\n [hintedDate],\n );\n\n const isDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (value?.[0] && isSameDay(day, value[0]))),\n [value],\n );\n\n const isHintedDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (hintedDate?.[0] && isSameDay(day, hintedDate[0]))),\n [hintedDate],\n );\n\n const onDayEnter = React.useCallback(\n (date: Date) => setHintedDate(getNewValue(date)),\n [setHintedDate, getNewValue],\n );\n\n const onDayLeave = React.useCallback(() => setHintedDate(undefined), [setHintedDate]);\n\n const isDayHinted = React.useCallback(\n (day: Date) => getIsDaySelected(day, hintedDate),\n [hintedDate],\n );\n\n const onRightPartViewDateChange = React.useCallback(\n (newDate: Date) => setViewDate(subMonths(newDate, 1)),\n [setViewDate],\n );\n\n return (\n <RootComponent {...props} baseClassName={styles.host}>\n <div className={styles.inner}>\n <CalendarHeader\n viewDate={viewDate}\n onChange={setViewDate}\n nextMonthHidden\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers}\n className={styles.header}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n prevMonthIcon={prevMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n {...leftPartHeaderTestsData}\n />\n <CalendarDays\n viewDate={viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n onKeyDown={handleKeyDown}\n isDayFocused={isDayFocused}\n onDayChange={onDayChange}\n isDaySelected={isDaySelected}\n isDayActive={isDayActive}\n isDaySelectionEnd={isDaySelectionEnd}\n isDaySelectionStart={isDaySelectionStart}\n isDayHinted={isDayHinted}\n onDayEnter={onDayEnter}\n onDayLeave={onDayLeave}\n isHintedDaySelectionEnd={isHintedDaySelectionEnd}\n isHintedDaySelectionStart={isHintedDaySelectionStart}\n isDayDisabled={isDayDisabled}\n listenDayChangesForUpdate={listenDayChangesForUpdate}\n renderDayContent={renderDayContent}\n aria-label={changeDayLabel}\n dayTestId={dayTestId}\n />\n </div>\n <div className={styles.inner}>\n <CalendarHeader\n viewDate={secondViewDate}\n onChange={onRightPartViewDateChange}\n prevMonthHidden\n onNextMonth={setNextMonth}\n disablePickers={disablePickers}\n className={styles.header}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n nextMonthIcon={nextMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n {...rightPartHeaderTestsData}\n />\n <CalendarDays\n viewDate={secondViewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n aria-label={changeDayLabel}\n onKeyDown={handleKeyDown}\n isDayFocused={isDayFocused}\n onDayChange={onDayChange}\n isDaySelected={isDaySelected}\n isDayActive={isDayActive}\n isDaySelectionEnd={isDaySelectionEnd}\n isDaySelectionStart={isDaySelectionStart}\n isDayHinted={isDayHinted}\n onDayEnter={onDayEnter}\n onDayLeave={onDayLeave}\n isHintedDaySelectionEnd={isHintedDaySelectionEnd}\n isHintedDaySelectionStart={isHintedDaySelectionStart}\n isDayDisabled={isDayDisabled}\n listenDayChangesForUpdate={listenDayChangesForUpdate}\n renderDayContent={renderDayContent}\n tabIndex={0}\n onBlur={resetSelectedDay}\n dayTestId={dayTestId}\n />\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","addMonths","endOfDay","isAfter","isBefore","isSameDay","isSameMonth","isWithinInterval","startOfDay","subMonths","useCalendar","isFirstDay","isLastDay","navigateDate","CalendarDays","CalendarHeader","RootComponent","getIsDaySelected","day","value","start","end","CalendarRange","onChange","disablePast","disableFuture","shouldDisableDate","onClose","weekStartsOn","disablePickers","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","changeDayLabel","prevMonthIcon","nextMonthIcon","listenDayChangesForUpdate","renderDayContent","dayTestId","leftPartHeaderTestsData","rightPartHeaderTestsData","props","viewDate","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","isMonthDisabled","isYearDisabled","hintedDate","setHintedDate","useState","secondViewDate","handleKeyDown","useCallback","event","includes","key","preventDefault","newFocusedDay","getNewValue","date","isValueEmpty","isRangeSelected","onDayChange","undefined","isDaySelected","isDayActive","Boolean","isDaySelectionEnd","dayOfWeek","isHintedDaySelectionEnd","isDaySelectionStart","isHintedDaySelectionStart","onDayEnter","onDayLeave","isDayHinted","onRightPartViewDateChange","newDate","baseClassName","div","className","nextMonthHidden","onPrevMonth","onKeyDown","aria-label","prevMonthHidden","onNextMonth","tabIndex","onBlur"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/CalendarRange/CalendarRange.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport {\n addMonths,\n endOfDay,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfDay,\n subMonths,\n} from 'date-fns';\nimport {\n CalendarDirectionContext,\n type CalendarDirectionContextProps,\n} from '../../context/CalendarDirectionContext';\nimport { useCalendar } from '../../hooks/useCalendar';\nimport { useDirection } from '../../hooks/useDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { isFirstDay, isLastDay, navigateDate } from '../../lib/calendar';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport {\n CalendarDays,\n type CalendarDaysProps,\n type CalendarDaysTestsProps,\n} from '../CalendarDays/CalendarDays';\nimport {\n CalendarHeader,\n type CalendarHeaderProps,\n type CalendarHeaderTestsProps,\n} from '../CalendarHeader/CalendarHeader';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './CalendarRange.module.css';\n\nexport type DateRangeType = [Date | null, Date | null];\n\nexport type CalendarRangeTestsProps = CalendarDaysTestsProps & {\n /**\n * Передает атрибуты `data-testid` для интерактивных элементов в заголовке календаря в левой части\n */\n leftPartHeaderTestsData?: CalendarHeaderTestsProps;\n /**\n * Передает атрибуты `data-testid` для интерактивных элементов в заголовке календаря в правой части\n */\n rightPartHeaderTestsData?: CalendarHeaderTestsProps;\n};\n\nexport interface CalendarRangeProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n Pick<\n CalendarHeaderProps,\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n >,\n Pick<CalendarDaysProps, 'listenDayChangesForUpdate' | 'renderDayContent'>,\n CalendarRangeTestsProps {\n value?: DateRangeType;\n disablePast?: boolean;\n disableFuture?: boolean;\n disablePickers?: boolean;\n changeDayLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n onChange?: (value: DateRangeType | undefined) => void;\n shouldDisableDate?: (value: Date) => boolean;\n onClose?: () => void;\n}\n\nconst getIsDaySelected = (day: Date, value?: DateRangeType) => {\n if (!value?.[0] || !value[1]) {\n return false;\n }\n\n return isWithinInterval(day, { start: startOfDay(value[0]), end: endOfDay(value[1]) });\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CalendarRange\n */\nexport const CalendarRange = ({\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onClose,\n weekStartsOn = 1,\n disablePickers,\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n changeDayLabel = 'Изменить день',\n prevMonthIcon,\n nextMonthIcon,\n listenDayChangesForUpdate,\n renderDayContent,\n dayTestId,\n leftPartHeaderTestsData,\n rightPartHeaderTestsData,\n getRootRef,\n ...props\n}: CalendarRangeProps): React.ReactNode => {\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n isMonthDisabled,\n isYearDisabled,\n } = useCalendar({ value, disableFuture, disablePast, shouldDisableDate });\n\n const [directionRef, textDirection = 'ltr'] = useDirection();\n const rootRef = useExternRef(directionRef, getRootRef);\n\n const [hintedDate, setHintedDate] = React.useState<DateRangeType>();\n const secondViewDate = addMonths(viewDate, 1);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key)) {\n event.preventDefault();\n }\n\n const newFocusedDay = navigateDate(focusedDay ?? value?.[1], event.key);\n\n if (\n newFocusedDay &&\n !isSameMonth(newFocusedDay, viewDate) &&\n !isSameMonth(newFocusedDay, addMonths(viewDate, 1))\n ) {\n setViewDate(newFocusedDay);\n }\n setFocusedDay(newFocusedDay);\n },\n [focusedDay, setFocusedDay, setViewDate, value, viewDate],\n );\n\n const getNewValue = React.useCallback(\n (date: Date): DateRangeType => {\n const isValueEmpty = !value || (value[0] === null && value[1] === null);\n const isRangeSelected = value && !!value[0] && !!value[1];\n if (isValueEmpty || isRangeSelected) {\n return [date, null];\n }\n\n const [start] = value;\n if (start && isSameDay(date, start)) {\n return [startOfDay(start), endOfDay(start)];\n } else if (start && isBefore(date, start)) {\n return [startOfDay(date), endOfDay(start)];\n } else if (start && isAfter(date, start)) {\n return [start, endOfDay(date)];\n }\n return value;\n },\n [value],\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n onChange?.(getNewValue(date));\n setHintedDate(undefined);\n },\n [onChange, getNewValue],\n );\n\n const isDaySelected = React.useCallback((day: Date) => getIsDaySelected(day, value), [value]);\n\n const isDayActive = React.useCallback(\n (day: Date) =>\n Boolean((value?.[0] && isSameDay(day, value[0])) || (value?.[1] && isSameDay(day, value[1]))),\n [value],\n );\n\n const isDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (value?.[1] && isSameDay(day, value[1]))),\n [value],\n );\n\n const isHintedDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (hintedDate?.[1] && isSameDay(day, hintedDate[1]))),\n [hintedDate],\n );\n\n const isDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (value?.[0] && isSameDay(day, value[0]))),\n [value],\n );\n\n const isHintedDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (hintedDate?.[0] && isSameDay(day, hintedDate[0]))),\n [hintedDate],\n );\n\n const onDayEnter = React.useCallback(\n (date: Date) => setHintedDate(getNewValue(date)),\n [setHintedDate, getNewValue],\n );\n\n const onDayLeave = React.useCallback(() => setHintedDate(undefined), [setHintedDate]);\n\n const isDayHinted = React.useCallback(\n (day: Date) => getIsDaySelected(day, hintedDate),\n [hintedDate],\n );\n\n const onRightPartViewDateChange = React.useCallback(\n (newDate: Date) => setViewDate(subMonths(newDate, 1)),\n [setViewDate],\n );\n\n const directionContextValue = React.useMemo<CalendarDirectionContextProps>(\n () => ({\n direction: textDirection,\n }),\n [textDirection],\n );\n\n return (\n <CalendarDirectionContext.Provider value={directionContextValue}>\n <RootComponent {...props} baseClassName={styles.host} getRootRef={rootRef}>\n <div className={styles.inner}>\n <CalendarHeader\n viewDate={viewDate}\n onChange={setViewDate}\n nextMonthHidden\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers}\n className={styles.header}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n prevMonthIcon={prevMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n {...leftPartHeaderTestsData}\n />\n <CalendarDays\n viewDate={viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n onKeyDown={handleKeyDown}\n isDayFocused={isDayFocused}\n onDayChange={onDayChange}\n isDaySelected={isDaySelected}\n isDayActive={isDayActive}\n isDaySelectionEnd={isDaySelectionEnd}\n isDaySelectionStart={isDaySelectionStart}\n isDayHinted={isDayHinted}\n onDayEnter={onDayEnter}\n onDayLeave={onDayLeave}\n isHintedDaySelectionEnd={isHintedDaySelectionEnd}\n isHintedDaySelectionStart={isHintedDaySelectionStart}\n isDayDisabled={isDayDisabled}\n listenDayChangesForUpdate={listenDayChangesForUpdate}\n renderDayContent={renderDayContent}\n aria-label={changeDayLabel}\n dayTestId={dayTestId}\n />\n </div>\n <div className={styles.inner}>\n <CalendarHeader\n viewDate={secondViewDate}\n onChange={onRightPartViewDateChange}\n prevMonthHidden\n onNextMonth={setNextMonth}\n disablePickers={disablePickers}\n className={styles.header}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n nextMonthIcon={nextMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n {...rightPartHeaderTestsData}\n />\n <CalendarDays\n viewDate={secondViewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n aria-label={changeDayLabel}\n onKeyDown={handleKeyDown}\n isDayFocused={isDayFocused}\n onDayChange={onDayChange}\n isDaySelected={isDaySelected}\n isDayActive={isDayActive}\n isDaySelectionEnd={isDaySelectionEnd}\n isDaySelectionStart={isDaySelectionStart}\n isDayHinted={isDayHinted}\n onDayEnter={onDayEnter}\n onDayLeave={onDayLeave}\n isHintedDaySelectionEnd={isHintedDaySelectionEnd}\n isHintedDaySelectionStart={isHintedDaySelectionStart}\n isDayDisabled={isDayDisabled}\n listenDayChangesForUpdate={listenDayChangesForUpdate}\n renderDayContent={renderDayContent}\n tabIndex={0}\n onBlur={resetSelectedDay}\n dayTestId={dayTestId}\n />\n </div>\n </RootComponent>\n </CalendarDirectionContext.Provider>\n );\n};\n"],"names":["React","addMonths","endOfDay","isAfter","isBefore","isSameDay","isSameMonth","isWithinInterval","startOfDay","subMonths","CalendarDirectionContext","useCalendar","useDirection","useExternRef","isFirstDay","isLastDay","navigateDate","CalendarDays","CalendarHeader","RootComponent","getIsDaySelected","day","value","start","end","CalendarRange","onChange","disablePast","disableFuture","shouldDisableDate","onClose","weekStartsOn","disablePickers","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","changeDayLabel","prevMonthIcon","nextMonthIcon","listenDayChangesForUpdate","renderDayContent","dayTestId","leftPartHeaderTestsData","rightPartHeaderTestsData","getRootRef","props","viewDate","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","isMonthDisabled","isYearDisabled","directionRef","textDirection","rootRef","hintedDate","setHintedDate","useState","secondViewDate","handleKeyDown","useCallback","event","includes","key","preventDefault","newFocusedDay","getNewValue","date","isValueEmpty","isRangeSelected","onDayChange","undefined","isDaySelected","isDayActive","Boolean","isDaySelectionEnd","dayOfWeek","isHintedDaySelectionEnd","isDaySelectionStart","isHintedDaySelectionStart","onDayEnter","onDayLeave","isDayHinted","onRightPartViewDateChange","newDate","directionContextValue","useMemo","direction","Provider","baseClassName","div","className","nextMonthHidden","onPrevMonth","onKeyDown","aria-label","prevMonthHidden","onNextMonth","tabIndex","onBlur"],"mappings":"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"}
|
|
@@ -1,19 +1,35 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { type ButtonProps } from '../Button/Button';
|
|
2
3
|
export type CalendarTimeTestsProps = {
|
|
4
|
+
/**
|
|
5
|
+
* Передает атрибут `data-testid` для дропдауна выбора часа в календаре
|
|
6
|
+
*/
|
|
3
7
|
hoursTestId?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Передает атрибут `data-testid` для дропдауна выбора минут в календаре
|
|
10
|
+
*/
|
|
4
11
|
minutesTestId?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Передает атрибут `data-testid` для кнопки "Готово" в календаре
|
|
14
|
+
*/
|
|
5
15
|
doneButtonTestId?: string;
|
|
6
16
|
};
|
|
7
|
-
export
|
|
8
|
-
|
|
17
|
+
export type CalendarDoneButtonProps = {
|
|
18
|
+
/**
|
|
19
|
+
* Кастомное отображение кнопки Done.
|
|
20
|
+
*/
|
|
21
|
+
DoneButton?: React.ComponentType<ButtonProps>;
|
|
9
22
|
doneButtonText?: string;
|
|
10
23
|
doneButtonShow?: boolean;
|
|
11
24
|
doneButtonDisabled?: boolean;
|
|
25
|
+
onDoneButtonClick?: () => void;
|
|
26
|
+
};
|
|
27
|
+
export interface CalendarTimeProps extends CalendarTimeTestsProps, CalendarDoneButtonProps {
|
|
28
|
+
value: Date;
|
|
12
29
|
changeHoursLabel?: string;
|
|
13
30
|
changeMinutesLabel?: string;
|
|
14
31
|
onChange?: (value: Date) => void;
|
|
15
|
-
onDoneButtonClick?: () => void;
|
|
16
32
|
isDayDisabled?: (day: Date, withTime?: boolean) => boolean;
|
|
17
33
|
}
|
|
18
|
-
export declare const CalendarTime: ({ value, onChange, onDoneButtonClick, changeHoursLabel, changeMinutesLabel, isDayDisabled, doneButtonText, doneButtonDisabled, doneButtonShow, minutesTestId, hoursTestId, doneButtonTestId, }: CalendarTimeProps) => React.ReactNode;
|
|
34
|
+
export declare const CalendarTime: ({ value, onChange, onDoneButtonClick, changeHoursLabel, changeMinutesLabel, isDayDisabled, doneButtonText, doneButtonDisabled, doneButtonShow, minutesTestId, hoursTestId, doneButtonTestId, DoneButton, }: CalendarTimeProps) => React.ReactNode;
|
|
19
35
|
//# sourceMappingURL=CalendarTime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarTime.d.ts","sourceRoot":"","sources":["../../../src/components/CalendarTime/CalendarTime.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CalendarTime.d.ts","sourceRoot":"","sources":["../../../src/components/CalendarTime/CalendarTime.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAM5D,MAAM,MAAM,sBAAsB,GAAG;IACnC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,WAAW,iBAAkB,SAAQ,sBAAsB,EAAE,uBAAuB;IACxF,KAAK,EAAE,IAAI,CAAC;IACZ,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;CAC5D;AA6BD,eAAO,MAAM,YAAY,+MActB,iBAAiB,KAAG,KAAK,CAAC,SA6H5B,CAAC"}
|
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
3
3
|
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { useRef } from "react";
|
|
5
6
|
import * as React from "react";
|
|
6
7
|
import { classNames } from "@vkontakte/vkjs";
|
|
7
8
|
import { setHours, setMinutes } from "date-fns";
|
|
9
|
+
import { Keys, pressedKey } from "../../lib/accessibility.js";
|
|
8
10
|
import { AdaptivityProvider } from "../AdaptivityProvider/AdaptivityProvider.js";
|
|
9
11
|
import { Button } from "../Button/Button.js";
|
|
10
12
|
import { CustomSelect } from "../CustomSelect/CustomSelect.js";
|
|
13
|
+
const selectFilterFn = ()=>true;
|
|
11
14
|
const hours = [];
|
|
12
15
|
for(let i = 0; i < 24; i += 1){
|
|
13
16
|
hours.push({
|
|
@@ -22,7 +25,14 @@ for(let i = 0; i < 60; i += 1){
|
|
|
22
25
|
label: String(i).padStart(2, '0')
|
|
23
26
|
});
|
|
24
27
|
}
|
|
25
|
-
|
|
28
|
+
const validateValue = (value, validValues)=>{
|
|
29
|
+
const numValue = Number(value);
|
|
30
|
+
return !isNaN(numValue) && validValues.some((v)=>v.value === numValue);
|
|
31
|
+
};
|
|
32
|
+
export const CalendarTime = ({ value, onChange, onDoneButtonClick, changeHoursLabel, changeMinutesLabel, isDayDisabled, doneButtonText = 'Готово', doneButtonDisabled = false, doneButtonShow = true, minutesTestId, hoursTestId, doneButtonTestId, DoneButton })=>{
|
|
33
|
+
const hoursInputRef = useRef(null);
|
|
34
|
+
const minutesInputRef = useRef(null);
|
|
35
|
+
const doneButtonRef = useRef(null);
|
|
26
36
|
const localHours = isDayDisabled ? hours.map((hour)=>{
|
|
27
37
|
return _object_spread_props(_object_spread({}, hour), {
|
|
28
38
|
disabled: isDayDisabled(setHours(value, hour.value), true)
|
|
@@ -33,6 +43,19 @@ export const CalendarTime = ({ value, onChange, onDoneButtonClick, changeHoursLa
|
|
|
33
43
|
disabled: isDayDisabled(setMinutes(value, minute.value), true)
|
|
34
44
|
});
|
|
35
45
|
}) : minutes;
|
|
46
|
+
const onPickerValueChange = (e, validate, setter)=>{
|
|
47
|
+
const numericValue = e.target.value.replace(/\D/g, '');
|
|
48
|
+
e.target.value = numericValue;
|
|
49
|
+
if (validate(numericValue)) {
|
|
50
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(setter(value, Number(numericValue)));
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const onHoursInputChange = (e)=>{
|
|
54
|
+
onPickerValueChange(e, (numValue)=>validateValue(numValue, localHours), setHours);
|
|
55
|
+
};
|
|
56
|
+
const onMinutesInputChange = (e)=>{
|
|
57
|
+
onPickerValueChange(e, (numValue)=>validateValue(numValue, localMinutes), setMinutes);
|
|
58
|
+
};
|
|
36
59
|
const onHoursChange = React.useCallback((_, newValue)=>onChange === null || onChange === void 0 ? void 0 : onChange(setHours(value, Number(newValue))), [
|
|
37
60
|
onChange,
|
|
38
61
|
value
|
|
@@ -41,6 +64,39 @@ export const CalendarTime = ({ value, onChange, onDoneButtonClick, changeHoursLa
|
|
|
41
64
|
onChange,
|
|
42
65
|
value
|
|
43
66
|
]);
|
|
67
|
+
const onPickerKeyDown = (e)=>{
|
|
68
|
+
const key = pressedKey(e);
|
|
69
|
+
if (key === Keys.ENTER || key === Keys.TAB) {
|
|
70
|
+
var _nextStep_current;
|
|
71
|
+
const steps = [
|
|
72
|
+
hoursInputRef,
|
|
73
|
+
minutesInputRef,
|
|
74
|
+
doneButtonRef
|
|
75
|
+
];
|
|
76
|
+
const currentStepIndex = steps.findIndex((step)=>step.current === e.target);
|
|
77
|
+
const diff = e.key === 'Tab' && e.shiftKey ? -1 : 1;
|
|
78
|
+
const nextStepIndex = currentStepIndex + diff;
|
|
79
|
+
if (nextStepIndex < 0 || nextStepIndex >= steps.length) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
e.preventDefault();
|
|
83
|
+
const nextStep = steps[nextStepIndex];
|
|
84
|
+
(_nextStep_current = nextStep.current) === null || _nextStep_current === void 0 ? void 0 : _nextStep_current.focus();
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
const renderDoneButton = ()=>{
|
|
88
|
+
const ButtonComponent = DoneButton !== null && DoneButton !== void 0 ? DoneButton : Button;
|
|
89
|
+
return /*#__PURE__*/ _jsx(ButtonComponent, {
|
|
90
|
+
mode: "secondary",
|
|
91
|
+
onClick: onDoneButtonClick,
|
|
92
|
+
size: "l",
|
|
93
|
+
getRootRef: doneButtonRef,
|
|
94
|
+
onKeyDown: onPickerKeyDown,
|
|
95
|
+
disabled: doneButtonDisabled,
|
|
96
|
+
"data-testid": doneButtonTestId,
|
|
97
|
+
children: doneButtonText
|
|
98
|
+
});
|
|
99
|
+
};
|
|
44
100
|
return /*#__PURE__*/ _jsxs("div", {
|
|
45
101
|
className: classNames("vkuiCalendarTime__host", !doneButtonShow && "vkuiCalendarTime__host__withoutDone"),
|
|
46
102
|
children: [
|
|
@@ -53,6 +109,11 @@ export const CalendarTime = ({ value, onChange, onDoneButtonClick, changeHoursLa
|
|
|
53
109
|
options: localHours,
|
|
54
110
|
onChange: onHoursChange,
|
|
55
111
|
forceDropdownPortal: false,
|
|
112
|
+
searchable: true,
|
|
113
|
+
filterFn: selectFilterFn,
|
|
114
|
+
onInputChange: onHoursInputChange,
|
|
115
|
+
onInputKeyDown: onPickerKeyDown,
|
|
116
|
+
getSelectInputRef: hoursInputRef,
|
|
56
117
|
"aria-label": changeHoursLabel,
|
|
57
118
|
"data-testid": hoursTestId
|
|
58
119
|
})
|
|
@@ -71,6 +132,11 @@ export const CalendarTime = ({ value, onChange, onDoneButtonClick, changeHoursLa
|
|
|
71
132
|
options: localMinutes,
|
|
72
133
|
onChange: onMinutesChange,
|
|
73
134
|
forceDropdownPortal: false,
|
|
135
|
+
searchable: true,
|
|
136
|
+
filterFn: selectFilterFn,
|
|
137
|
+
onInputChange: onMinutesInputChange,
|
|
138
|
+
getSelectInputRef: minutesInputRef,
|
|
139
|
+
onInputKeyDown: onPickerKeyDown,
|
|
74
140
|
"aria-label": changeMinutesLabel,
|
|
75
141
|
"data-testid": minutesTestId
|
|
76
142
|
})
|
|
@@ -80,14 +146,7 @@ export const CalendarTime = ({ value, onChange, onDoneButtonClick, changeHoursLa
|
|
|
80
146
|
className: "vkuiCalendarTime__button",
|
|
81
147
|
children: /*#__PURE__*/ _jsx(AdaptivityProvider, {
|
|
82
148
|
sizeY: "compact",
|
|
83
|
-
children:
|
|
84
|
-
mode: "secondary",
|
|
85
|
-
onClick: onDoneButtonClick,
|
|
86
|
-
size: "l",
|
|
87
|
-
disabled: doneButtonDisabled,
|
|
88
|
-
"data-testid": doneButtonTestId,
|
|
89
|
-
children: doneButtonText
|
|
90
|
-
})
|
|
149
|
+
children: renderDoneButton()
|
|
91
150
|
})
|
|
92
151
|
})
|
|
93
152
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/CalendarTime/CalendarTime.tsx"],"sourcesContent":["'use client';\n\nimport { type ChangeEvent } from 'react';\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { setHours, setMinutes } from 'date-fns';\nimport { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';\nimport { Button } from '../Button/Button';\nimport { CustomSelect, type SelectProps } from '../CustomSelect/CustomSelect';\nimport styles from './CalendarTime.module.css';\n\nexport type CalendarTimeTestsProps = {\n hoursTestId?: string;\n minutesTestId?: string;\n doneButtonTestId?: string;\n};\n\nexport interface CalendarTimeProps extends CalendarTimeTestsProps {\n value: Date;\n doneButtonText?: string;\n doneButtonShow?: boolean;\n doneButtonDisabled?: boolean;\n changeHoursLabel?: string;\n changeMinutesLabel?: string;\n onChange?: (value: Date) => void;\n onDoneButtonClick?: () => void;\n isDayDisabled?: (day: Date, withTime?: boolean) => boolean;\n}\n\nconst hours: Array<{\n value: number;\n label: string;\n}> = [];\nfor (let i = 0; i < 24; i += 1) {\n hours.push({ value: i, label: String(i).padStart(2, '0') });\n}\n\nconst minutes: Array<{\n value: number;\n label: string;\n}> = [];\nfor (let i = 0; i < 60; i += 1) {\n minutes.push({ value: i, label: String(i).padStart(2, '0') });\n}\n\nexport const CalendarTime = ({\n value,\n onChange,\n onDoneButtonClick,\n changeHoursLabel,\n changeMinutesLabel,\n isDayDisabled,\n doneButtonText = 'Готово',\n doneButtonDisabled = false,\n doneButtonShow = true,\n minutesTestId,\n hoursTestId,\n doneButtonTestId,\n}: CalendarTimeProps): React.ReactNode => {\n const localHours = isDayDisabled\n ? hours.map((hour) => {\n return { ...hour, disabled: isDayDisabled(setHours(value, hour.value), true) };\n })\n : hours;\n\n const localMinutes = isDayDisabled\n ? minutes.map((minute) => {\n return { ...minute, disabled: isDayDisabled(setMinutes(value, minute.value), true) };\n })\n : minutes;\n\n const onHoursChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange?.(setHours(value, Number(newValue))),\n [onChange, value],\n );\n const onMinutesChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange?.(setMinutes(value, Number(newValue))),\n [onChange, value],\n );\n\n return (\n <div className={classNames(styles.host, !doneButtonShow && styles.host__withoutDone)}>\n <div className={styles.picker}>\n <AdaptivityProvider sizeY=\"compact\">\n <CustomSelect\n value={value.getHours()}\n options={localHours}\n onChange={onHoursChange}\n forceDropdownPortal={false}\n aria-label={changeHoursLabel}\n data-testid={hoursTestId}\n />\n </AdaptivityProvider>\n </div>\n <div className={styles.divider}>:</div>\n <div className={styles.picker}>\n <AdaptivityProvider sizeY=\"compact\">\n <CustomSelect\n value={value.getMinutes()}\n options={localMinutes}\n onChange={onMinutesChange}\n forceDropdownPortal={false}\n aria-label={changeMinutesLabel}\n data-testid={minutesTestId}\n />\n </AdaptivityProvider>\n </div>\n {doneButtonShow && (\n <div className={styles.button}>\n <AdaptivityProvider sizeY=\"compact\">\n <Button\n mode=\"secondary\"\n onClick={onDoneButtonClick}\n size=\"l\"\n disabled={doneButtonDisabled}\n data-testid={doneButtonTestId}\n >\n {doneButtonText}\n </Button>\n </AdaptivityProvider>\n </div>\n )}\n </div>\n );\n};\n"],"names":["React","classNames","setHours","setMinutes","AdaptivityProvider","Button","CustomSelect","hours","i","push","value","label","String","padStart","minutes","CalendarTime","onChange","onDoneButtonClick","changeHoursLabel","changeMinutesLabel","isDayDisabled","doneButtonText","doneButtonDisabled","doneButtonShow","minutesTestId","hoursTestId","doneButtonTestId","localHours","map","hour","disabled","localMinutes","minute","onHoursChange","useCallback","_","newValue","Number","onMinutesChange","div","className","sizeY","getHours","options","forceDropdownPortal","aria-label","data-testid","getMinutes","mode","onClick","size"],"mappings":"AAAA;;;;AAGA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,EAAEC,UAAU,QAAQ,WAAW;AAChD,SAASC,kBAAkB,QAAQ,8CAA2C;AAC9E,SAASC,MAAM,QAAQ,sBAAmB;AAC1C,SAASC,YAAY,QAA0B,kCAA+B;AAqB9E,MAAMC,QAGD,EAAE;AACP,IAAK,IAAIC,IAAI,GAAGA,IAAI,IAAIA,KAAK,EAAG;IAC9BD,MAAME,IAAI,CAAC;QAAEC,OAAOF;QAAGG,OAAOC,OAAOJ,GAAGK,QAAQ,CAAC,GAAG;IAAK;AAC3D;AAEA,MAAMC,UAGD,EAAE;AACP,IAAK,IAAIN,IAAI,GAAGA,IAAI,IAAIA,KAAK,EAAG;IAC9BM,QAAQL,IAAI,CAAC;QAAEC,OAAOF;QAAGG,OAAOC,OAAOJ,GAAGK,QAAQ,CAAC,GAAG;IAAK;AAC7D;AAEA,OAAO,MAAME,eAAe,CAAC,EAC3BL,KAAK,EACLM,QAAQ,EACRC,iBAAiB,EACjBC,gBAAgB,EAChBC,kBAAkB,EAClBC,aAAa,EACbC,iBAAiB,QAAQ,EACzBC,qBAAqB,KAAK,EAC1BC,iBAAiB,IAAI,EACrBC,aAAa,EACbC,WAAW,EACXC,gBAAgB,EACE;IAClB,MAAMC,aAAaP,gBACfb,MAAMqB,GAAG,CAAC,CAACC;QACT,OAAO,wCAAKA;YAAMC,UAAUV,cAAclB,SAASQ,OAAOmB,KAAKnB,KAAK,GAAG;;IACzE,KACAH;IAEJ,MAAMwB,eAAeX,gBACjBN,QAAQc,GAAG,CAAC,CAACI;QACX,OAAO,wCAAKA;YAAQF,UAAUV,cAAcjB,WAAWO,OAAOsB,OAAOtB,KAAK,GAAG;;IAC/E,KACAI;IAEJ,MAAMmB,gBAAgBjC,MAAMkC,WAAW,CACrC,CAACC,GAAmCC,WAClCpB,qBAAAA,+BAAAA,SAAWd,SAASQ,OAAO2B,OAAOD,aACpC;QAACpB;QAAUN;KAAM;IAEnB,MAAM4B,kBAAkBtC,MAAMkC,WAAW,CACvC,CAACC,GAAmCC,WAClCpB,qBAAAA,+BAAAA,SAAWb,WAAWO,OAAO2B,OAAOD,aACtC;QAACpB;QAAUN;KAAM;IAGnB,qBACE,MAAC6B;QAAIC,WAAWvC,qCAAwB,CAACsB;;0BACvC,KAACgB;gBAAIC,SAAS;0BACZ,cAAA,KAACpC;oBAAmBqC,OAAM;8BACxB,cAAA,KAACnC;wBACCI,OAAOA,MAAMgC,QAAQ;wBACrBC,SAAShB;wBACTX,UAAUiB;wBACVW,qBAAqB;wBACrBC,cAAY3B;wBACZ4B,eAAarB;;;;0BAInB,KAACc;gBAAIC,SAAS;0BAAkB;;0BAChC,KAACD;gBAAIC,SAAS;0BACZ,cAAA,KAACpC;oBAAmBqC,OAAM;8BACxB,cAAA,KAACnC;wBACCI,OAAOA,MAAMqC,UAAU;wBACvBJ,SAASZ;wBACTf,UAAUsB;wBACVM,qBAAqB;wBACrBC,cAAY1B;wBACZ2B,eAAatB;;;;YAIlBD,gCACC,KAACgB;gBAAIC,SAAS;0BACZ,cAAA,KAACpC;oBAAmBqC,OAAM;8BACxB,cAAA,KAACpC;wBACC2C,MAAK;wBACLC,SAAShC;wBACTiC,MAAK;wBACLpB,UAAUR;wBACVwB,eAAapB;kCAEZL;;;;;;AAOf,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/CalendarTime/CalendarTime.tsx"],"sourcesContent":["'use client';\n\nimport { type ChangeEvent, useRef } from 'react';\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { setHours, setMinutes } from 'date-fns';\nimport { Keys, pressedKey } from '../../lib/accessibility';\nimport { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';\nimport { Button, type ButtonProps } from '../Button/Button';\nimport { CustomSelect, type SelectProps } from '../CustomSelect/CustomSelect';\nimport styles from './CalendarTime.module.css';\n\nconst selectFilterFn = () => true;\n\nexport type CalendarTimeTestsProps = {\n /**\n * Передает атрибут `data-testid` для дропдауна выбора часа в календаре\n */\n hoursTestId?: string;\n /**\n * Передает атрибут `data-testid` для дропдауна выбора минут в календаре\n */\n minutesTestId?: string;\n /**\n * Передает атрибут `data-testid` для кнопки \"Готово\" в календаре\n */\n doneButtonTestId?: string;\n};\n\nexport type CalendarDoneButtonProps = {\n /**\n * Кастомное отображение кнопки Done.\n */\n DoneButton?: React.ComponentType<ButtonProps>;\n doneButtonText?: string;\n doneButtonShow?: boolean;\n doneButtonDisabled?: boolean;\n onDoneButtonClick?: () => void;\n};\n\nexport interface CalendarTimeProps extends CalendarTimeTestsProps, CalendarDoneButtonProps {\n value: Date;\n changeHoursLabel?: string;\n changeMinutesLabel?: string;\n onChange?: (value: Date) => void;\n isDayDisabled?: (day: Date, withTime?: boolean) => boolean;\n}\n\nconst hours: Array<{\n value: number;\n label: string;\n}> = [];\nfor (let i = 0; i < 24; i += 1) {\n hours.push({ value: i, label: String(i).padStart(2, '0') });\n}\n\nconst minutes: Array<{\n value: number;\n label: string;\n}> = [];\nfor (let i = 0; i < 60; i += 1) {\n minutes.push({ value: i, label: String(i).padStart(2, '0') });\n}\n\nconst validateValue = (\n value: string,\n validValues: Array<{\n value: number;\n label: string;\n }>,\n): boolean => {\n const numValue = Number(value);\n return !isNaN(numValue) && validValues.some((v) => v.value === numValue);\n};\n\nexport const CalendarTime = ({\n value,\n onChange,\n onDoneButtonClick,\n changeHoursLabel,\n changeMinutesLabel,\n isDayDisabled,\n doneButtonText = 'Готово',\n doneButtonDisabled = false,\n doneButtonShow = true,\n minutesTestId,\n hoursTestId,\n doneButtonTestId,\n DoneButton,\n}: CalendarTimeProps): React.ReactNode => {\n const hoursInputRef = useRef<HTMLInputElement | null>(null);\n const minutesInputRef = useRef<HTMLInputElement | null>(null);\n const doneButtonRef = useRef<HTMLButtonElement | null>(null);\n\n const localHours = isDayDisabled\n ? hours.map((hour) => {\n return { ...hour, disabled: isDayDisabled(setHours(value, hour.value), true) };\n })\n : hours;\n\n const localMinutes = isDayDisabled\n ? minutes.map((minute) => {\n return { ...minute, disabled: isDayDisabled(setMinutes(value, minute.value), true) };\n })\n : minutes;\n\n const onPickerValueChange = (\n e: ChangeEvent<HTMLInputElement>,\n validate: (numericValue: string) => boolean,\n setter: (value: Date, numericValue: number) => Date,\n ) => {\n const numericValue = e.target.value.replace(/\\D/g, '');\n e.target.value = numericValue;\n if (validate(numericValue)) {\n onChange?.(setter(value, Number(numericValue)));\n }\n };\n\n const onHoursInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n onPickerValueChange(e, (numValue) => validateValue(numValue, localHours), setHours);\n };\n\n const onMinutesInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n onPickerValueChange(e, (numValue) => validateValue(numValue, localMinutes), setMinutes);\n };\n\n const onHoursChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange?.(setHours(value, Number(newValue))),\n [onChange, value],\n );\n const onMinutesChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange?.(setMinutes(value, Number(newValue))),\n [onChange, value],\n );\n\n const onPickerKeyDown = (e: React.KeyboardEvent) => {\n const key = pressedKey(e);\n if (key === Keys.ENTER || key === Keys.TAB) {\n const steps = [hoursInputRef, minutesInputRef, doneButtonRef];\n const currentStepIndex = steps.findIndex((step) => step.current === e.target);\n const diff = e.key === 'Tab' && e.shiftKey ? -1 : 1;\n const nextStepIndex = currentStepIndex + diff;\n if (nextStepIndex < 0 || nextStepIndex >= steps.length) {\n return;\n }\n e.preventDefault();\n const nextStep = steps[nextStepIndex];\n nextStep.current?.focus();\n }\n };\n\n const renderDoneButton = () => {\n const ButtonComponent = DoneButton ?? Button;\n return (\n <ButtonComponent\n mode=\"secondary\"\n onClick={onDoneButtonClick}\n size=\"l\"\n getRootRef={doneButtonRef}\n onKeyDown={onPickerKeyDown}\n disabled={doneButtonDisabled}\n data-testid={doneButtonTestId}\n >\n {doneButtonText}\n </ButtonComponent>\n );\n };\n\n return (\n <div className={classNames(styles.host, !doneButtonShow && styles.host__withoutDone)}>\n <div className={styles.picker}>\n <AdaptivityProvider sizeY=\"compact\">\n <CustomSelect\n value={value.getHours()}\n options={localHours}\n onChange={onHoursChange}\n forceDropdownPortal={false}\n searchable\n filterFn={selectFilterFn}\n onInputChange={onHoursInputChange}\n onInputKeyDown={onPickerKeyDown}\n getSelectInputRef={hoursInputRef}\n aria-label={changeHoursLabel}\n data-testid={hoursTestId}\n />\n </AdaptivityProvider>\n </div>\n <div className={styles.divider}>:</div>\n <div className={styles.picker}>\n <AdaptivityProvider sizeY=\"compact\">\n <CustomSelect\n value={value.getMinutes()}\n options={localMinutes}\n onChange={onMinutesChange}\n forceDropdownPortal={false}\n searchable\n filterFn={selectFilterFn}\n onInputChange={onMinutesInputChange}\n getSelectInputRef={minutesInputRef}\n onInputKeyDown={onPickerKeyDown}\n aria-label={changeMinutesLabel}\n data-testid={minutesTestId}\n />\n </AdaptivityProvider>\n </div>\n {doneButtonShow && (\n <div className={styles.button}>\n <AdaptivityProvider sizeY=\"compact\">{renderDoneButton()}</AdaptivityProvider>\n </div>\n )}\n </div>\n );\n};\n"],"names":["useRef","React","classNames","setHours","setMinutes","Keys","pressedKey","AdaptivityProvider","Button","CustomSelect","selectFilterFn","hours","i","push","value","label","String","padStart","minutes","validateValue","validValues","numValue","Number","isNaN","some","v","CalendarTime","onChange","onDoneButtonClick","changeHoursLabel","changeMinutesLabel","isDayDisabled","doneButtonText","doneButtonDisabled","doneButtonShow","minutesTestId","hoursTestId","doneButtonTestId","DoneButton","hoursInputRef","minutesInputRef","doneButtonRef","localHours","map","hour","disabled","localMinutes","minute","onPickerValueChange","e","validate","setter","numericValue","target","replace","onHoursInputChange","onMinutesInputChange","onHoursChange","useCallback","_","newValue","onMinutesChange","onPickerKeyDown","key","ENTER","TAB","nextStep","steps","currentStepIndex","findIndex","step","current","diff","shiftKey","nextStepIndex","length","preventDefault","focus","renderDoneButton","ButtonComponent","mode","onClick","size","getRootRef","onKeyDown","data-testid","div","className","sizeY","getHours","options","forceDropdownPortal","searchable","filterFn","onInputChange","onInputKeyDown","getSelectInputRef","aria-label","getMinutes"],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { HasComponent, HTMLAttributesWithRootRef } from '../../types';
|
|
3
3
|
import { type HorizontalScrollProps } from '../HorizontalScroll/HorizontalScroll';
|
|
4
|
-
export interface CardScrollProps extends HTMLAttributesWithRootRef<HTMLDivElement>, HasComponent {
|
|
4
|
+
export interface CardScrollProps extends HTMLAttributesWithRootRef<HTMLDivElement>, HasComponent, Pick<HorizontalScrollProps, 'showArrows' | 'prevButtonTestId' | 'nextButtonTestId'> {
|
|
5
5
|
/**
|
|
6
6
|
* При `size=false` ширина `Card` будет регулироваться контентом внутри. В остальных случаях — будет явно задана в процентах.
|
|
7
7
|
*/
|
|
8
8
|
size?: 's' | 'm' | 'l' | false;
|
|
9
|
-
showArrows?: HorizontalScrollProps['showArrows'];
|
|
10
9
|
/**
|
|
11
10
|
* Добавляет отступы по краям слева и справа
|
|
12
11
|
*/
|
|
@@ -15,5 +14,5 @@ export interface CardScrollProps extends HTMLAttributesWithRootRef<HTMLDivElemen
|
|
|
15
14
|
/**
|
|
16
15
|
* @see https://vkcom.github.io/VKUI/#/CardScroll
|
|
17
16
|
*/
|
|
18
|
-
export declare const CardScroll: ({ children, size, showArrows, padding, Component, ...restProps }: CardScrollProps) => React.ReactNode;
|
|
17
|
+
export declare const CardScroll: ({ children, size, showArrows, padding, Component, prevButtonTestId, nextButtonTestId, ...restProps }: CardScrollProps) => React.ReactNode;
|
|
19
18
|
//# sourceMappingURL=CardScroll.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardScroll.d.ts","sourceRoot":"","sources":["../../../src/components/CardScroll/CardScroll.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAUpG,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"CardScroll.d.ts","sourceRoot":"","sources":["../../../src/components/CardScroll/CardScroll.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAUpG,MAAM,WAAW,eACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,YAAY,EACZ,IAAI,CAAC,qBAAqB,EAAE,YAAY,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;IACrF;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,yGASpB,eAAe,KAAG,KAAK,CAAC,SAoF1B,CAAC"}
|
|
@@ -16,12 +16,14 @@ const stylesSize = {
|
|
|
16
16
|
/**
|
|
17
17
|
* @see https://vkcom.github.io/VKUI/#/CardScroll
|
|
18
18
|
*/ export const CardScroll = (_param)=>{
|
|
19
|
-
var { children, size = 's', showArrows = true, padding = false, Component = 'ul' } = _param, restProps = _object_without_properties(_param, [
|
|
19
|
+
var { children, size = 's', showArrows = true, padding = false, Component = 'ul', prevButtonTestId, nextButtonTestId } = _param, restProps = _object_without_properties(_param, [
|
|
20
20
|
"children",
|
|
21
21
|
"size",
|
|
22
22
|
"showArrows",
|
|
23
23
|
"padding",
|
|
24
|
-
"Component"
|
|
24
|
+
"Component",
|
|
25
|
+
"prevButtonTestId",
|
|
26
|
+
"nextButtonTestId"
|
|
25
27
|
]);
|
|
26
28
|
const refContainer = React.useRef(null);
|
|
27
29
|
const gapRef = React.useRef(null);
|
|
@@ -65,6 +67,8 @@ const stylesSize = {
|
|
|
65
67
|
getScrollToLeft: getScrollToLeft,
|
|
66
68
|
getScrollToRight: getScrollToRight,
|
|
67
69
|
showArrows: showArrows,
|
|
70
|
+
prevButtonTestId: prevButtonTestId,
|
|
71
|
+
nextButtonTestId: nextButtonTestId,
|
|
68
72
|
children: /*#__PURE__*/ _jsxs("div", {
|
|
69
73
|
className: "vkuiCardScroll__in",
|
|
70
74
|
ref: refContainer,
|