@vkontakte/vkui 7.0.0 → 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/ActionSheet.d.ts +2 -1
- package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- 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/ModalCard/ModalCard.d.ts.map +1 -1
- package/dist/components/ModalCard/ModalCard.js +3 -2
- package/dist/components/ModalCard/ModalCard.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/NativeSelect/NativeSelect.d.ts +4 -2
- package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.js +4 -3
- package/dist/components/NativeSelect/NativeSelect.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 +2 -2
- package/dist/components/Popper/Popper.d.ts.map +1 -1
- package/dist/components/Popper/Popper.js +9 -2
- 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 +3 -3
- 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/TooltipBase/TooltipBase.d.ts.map +1 -1
- package/dist/components/TooltipBase/TooltipBase.js +2 -0
- package/dist/components/TooltipBase/TooltipBase.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/ActionSheet.js.map +1 -1
- 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/ContentCard/ContentCard.module.css +1 -0
- 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 +11 -2
- 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/ModalCard/ModalCard.js +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.module.css +5 -4
- package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js +4 -3
- package/dist/cssm/components/NativeSelect/NativeSelect.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/PanelHeader/PanelHeader.module.css +5 -4
- 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 +6 -1
- 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/TooltipBase/TooltipBase.js +2 -0
- package/dist/cssm/components/TooltipBase/TooltipBase.js.map +1 -1
- package/dist/cssm/components/TooltipBase/TooltipBase.module.css +5 -0
- 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/ActionSheet.tsx +3 -4
- 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/ContentCard/ContentCard.module.css +1 -0
- 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 +11 -2
- 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/ModalCard/ModalCard.tsx +5 -1
- package/src/components/ModalCardBase/ModalCardBase.tsx +1 -1
- package/src/components/ModalPage/ModalPage.module.css +5 -4
- package/src/components/ModalRoot/ModalRootContext.tsx +3 -1
- package/src/components/NativeSelect/NativeSelect.tsx +4 -3
- package/src/components/Pagination/Pagination.tsx +23 -4
- package/src/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.tsx +4 -2
- package/src/components/PanelHeader/PanelHeader.module.css +5 -4
- package/src/components/Popover/Popover.tsx +6 -166
- package/src/components/Popover/usePopover.tsx +183 -0
- package/src/components/Popper/Popper.tsx +12 -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 +4 -1
- package/src/components/TooltipBase/TooltipBase.module.css +5 -0
- package/src/components/TooltipBase/TooltipBase.tsx +8 -2
- 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
|
@@ -6,7 +6,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import { classNames } from "@vkontakte/vkjs";
|
|
8
8
|
import { isSameDay, isSameMonth } from "date-fns";
|
|
9
|
+
import { CalendarDirectionContext } from "../../context/CalendarDirectionContext.js";
|
|
9
10
|
import { useCalendar } from "../../hooks/useCalendar.js";
|
|
11
|
+
import { useDirection } from "../../hooks/useDirection.js";
|
|
12
|
+
import { useExternRef } from "../../hooks/useExternRef.js";
|
|
10
13
|
import { clamp, isFirstDay, isLastDay, navigateDate, setTimeEqual } from "../../lib/calendar.js";
|
|
11
14
|
import { useIsomorphicLayoutEffect } from "../../lib/useIsomorphicLayoutEffect.js";
|
|
12
15
|
import { warnOnce } from "../../lib/warnOnce.js";
|
|
@@ -18,7 +21,8 @@ const warn = warnOnce('Calendar');
|
|
|
18
21
|
/**
|
|
19
22
|
* @see https://vkcom.github.io/VKUI/#/Calendar
|
|
20
23
|
*/ export const Calendar = (_param)=>{
|
|
21
|
-
var { value, onChange, disablePast, disableFuture, shouldDisableDate, onDoneButtonClick, enableTime = false, doneButtonText, doneButtonDisabled, doneButtonShow, weekStartsOn = 1, disablePickers, changeHoursLabel = 'Изменить час', changeMinutesLabel = 'Изменить минуту', prevMonthLabel = 'Предыдущий месяц', nextMonthLabel = 'Следующий месяц', changeMonthLabel = 'Изменить месяц', changeYearLabel = 'Изменить год', showNeighboringMonth, changeDayLabel = 'Изменить день', size = 'm', viewDate: externalViewDate, onHeaderChange, onNextMonth, onPrevMonth, prevMonthIcon, nextMonthIcon, prevMonthProps, nextMonthProps, dayProps, listenDayChangesForUpdate, renderDayContent, minDateTime, maxDateTime, minutesTestId, hoursTestId, doneButtonTestId, prevMonthButtonTestId, nextMonthButtonTestId, monthDropdownTestId, yearDropdownTestId, dayTestId } = _param, props = _object_without_properties(_param, [
|
|
24
|
+
var { getRootRef, value, onChange, disablePast, disableFuture, shouldDisableDate, onDoneButtonClick, enableTime = false, doneButtonText, doneButtonDisabled, doneButtonShow, DoneButton, weekStartsOn = 1, disablePickers, changeHoursLabel = 'Изменить час', changeMinutesLabel = 'Изменить минуту', prevMonthLabel = 'Предыдущий месяц', nextMonthLabel = 'Следующий месяц', changeMonthLabel = 'Изменить месяц', changeYearLabel = 'Изменить год', showNeighboringMonth, changeDayLabel = 'Изменить день', size = 'm', viewDate: externalViewDate, onHeaderChange, onNextMonth, onPrevMonth, prevMonthIcon, nextMonthIcon, prevMonthProps, nextMonthProps, dayProps, listenDayChangesForUpdate, renderDayContent, minDateTime, maxDateTime, minutesTestId, hoursTestId, doneButtonTestId, prevMonthButtonTestId, nextMonthButtonTestId, monthDropdownTestId, yearDropdownTestId, dayTestId } = _param, props = _object_without_properties(_param, [
|
|
25
|
+
"getRootRef",
|
|
22
26
|
"value",
|
|
23
27
|
"onChange",
|
|
24
28
|
"disablePast",
|
|
@@ -29,6 +33,7 @@ const warn = warnOnce('Calendar');
|
|
|
29
33
|
"doneButtonText",
|
|
30
34
|
"doneButtonDisabled",
|
|
31
35
|
"doneButtonShow",
|
|
36
|
+
"DoneButton",
|
|
32
37
|
"weekStartsOn",
|
|
33
38
|
"disablePickers",
|
|
34
39
|
"changeHoursLabel",
|
|
@@ -73,6 +78,8 @@ const warn = warnOnce('Calendar');
|
|
|
73
78
|
minDateTime,
|
|
74
79
|
maxDateTime
|
|
75
80
|
});
|
|
81
|
+
const [directionRef, textDirection = 'ltr'] = useDirection();
|
|
82
|
+
const rootRef = useExternRef(directionRef, getRootRef);
|
|
76
83
|
useIsomorphicLayoutEffect(()=>{
|
|
77
84
|
if (value) {
|
|
78
85
|
setViewDate(value);
|
|
@@ -125,71 +132,81 @@ const warn = warnOnce('Calendar');
|
|
|
125
132
|
const isDayActive = React.useCallback((day)=>Boolean(value && isSameDay(day, value)), [
|
|
126
133
|
value
|
|
127
134
|
]);
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
isDaySelectionStart: isFirstDay,
|
|
164
|
-
isDaySelectionEnd: isLastDay,
|
|
165
|
-
isDayDisabled: isDayDisabled,
|
|
166
|
-
onBlur: resetSelectedDay,
|
|
167
|
-
showNeighboringMonth: showNeighboringMonth,
|
|
168
|
-
size: size,
|
|
169
|
-
dayProps: dayProps,
|
|
170
|
-
listenDayChangesForUpdate: listenDayChangesForUpdate,
|
|
171
|
-
renderDayContent: renderDayContent,
|
|
172
|
-
dayTestId: dayTestId
|
|
173
|
-
}),
|
|
174
|
-
enableTime && value && size !== 's' && /*#__PURE__*/ _jsx("div", {
|
|
175
|
-
className: "vkuiCalendar__time",
|
|
176
|
-
children: /*#__PURE__*/ _jsx(CalendarTime, {
|
|
135
|
+
const directionContextValue = React.useMemo(()=>({
|
|
136
|
+
direction: textDirection
|
|
137
|
+
}), [
|
|
138
|
+
textDirection
|
|
139
|
+
]);
|
|
140
|
+
return /*#__PURE__*/ _jsx(CalendarDirectionContext.Provider, {
|
|
141
|
+
value: directionContextValue,
|
|
142
|
+
children: /*#__PURE__*/ _jsxs(RootComponent, _object_spread_props(_object_spread({}, props), {
|
|
143
|
+
baseClassName: classNames("vkuiCalendar__host", size === 's' && "vkuiCalendar__sizeS"),
|
|
144
|
+
getRootRef: rootRef,
|
|
145
|
+
children: [
|
|
146
|
+
/*#__PURE__*/ _jsx(CalendarHeader, {
|
|
147
|
+
viewDate: externalViewDate || viewDate,
|
|
148
|
+
onChange: setViewDate,
|
|
149
|
+
onNextMonth: setNextMonth,
|
|
150
|
+
onPrevMonth: setPrevMonth,
|
|
151
|
+
disablePickers: disablePickers || size === 's',
|
|
152
|
+
className: "vkuiCalendar__header",
|
|
153
|
+
prevMonthLabel: prevMonthLabel,
|
|
154
|
+
nextMonthLabel: nextMonthLabel,
|
|
155
|
+
changeMonthLabel: changeMonthLabel,
|
|
156
|
+
changeYearLabel: changeYearLabel,
|
|
157
|
+
prevMonthIcon: prevMonthIcon,
|
|
158
|
+
nextMonthIcon: nextMonthIcon,
|
|
159
|
+
prevMonthProps: prevMonthProps,
|
|
160
|
+
nextMonthProps: nextMonthProps,
|
|
161
|
+
isMonthDisabled: isMonthDisabled,
|
|
162
|
+
isYearDisabled: isYearDisabled,
|
|
163
|
+
nextMonthButtonTestId: nextMonthButtonTestId,
|
|
164
|
+
prevMonthButtonTestId: prevMonthButtonTestId,
|
|
165
|
+
monthDropdownTestId: monthDropdownTestId,
|
|
166
|
+
yearDropdownTestId: yearDropdownTestId
|
|
167
|
+
}),
|
|
168
|
+
/*#__PURE__*/ _jsx(CalendarDays, {
|
|
169
|
+
viewDate: externalViewDate || viewDate,
|
|
177
170
|
value: value,
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
171
|
+
weekStartsOn: weekStartsOn,
|
|
172
|
+
isDayFocused: isDayFocused,
|
|
173
|
+
tabIndex: 0,
|
|
174
|
+
"aria-label": changeDayLabel,
|
|
175
|
+
onKeyDown: handleKeyDown,
|
|
176
|
+
onDayChange: onDayChange,
|
|
177
|
+
isDayActive: isDayActive,
|
|
178
|
+
isDaySelectionStart: isFirstDay,
|
|
179
|
+
isDaySelectionEnd: isLastDay,
|
|
180
|
+
isDayDisabled: isDayDisabled,
|
|
181
|
+
onBlur: resetSelectedDay,
|
|
182
|
+
showNeighboringMonth: showNeighboringMonth,
|
|
183
|
+
size: size,
|
|
184
|
+
dayProps: dayProps,
|
|
185
|
+
listenDayChangesForUpdate: listenDayChangesForUpdate,
|
|
186
|
+
renderDayContent: renderDayContent,
|
|
187
|
+
dayTestId: dayTestId
|
|
188
|
+
}),
|
|
189
|
+
enableTime && value && size !== 's' && /*#__PURE__*/ _jsx("div", {
|
|
190
|
+
className: "vkuiCalendar__time",
|
|
191
|
+
children: /*#__PURE__*/ _jsx(CalendarTime, {
|
|
192
|
+
value: value,
|
|
193
|
+
onChange: onChange,
|
|
194
|
+
onDoneButtonClick: onDoneButtonClick,
|
|
195
|
+
doneButtonText: doneButtonText,
|
|
196
|
+
doneButtonDisabled: doneButtonDisabled,
|
|
197
|
+
doneButtonShow: doneButtonShow,
|
|
198
|
+
DoneButton: DoneButton,
|
|
199
|
+
changeHoursLabel: changeHoursLabel,
|
|
200
|
+
changeMinutesLabel: changeMinutesLabel,
|
|
201
|
+
isDayDisabled: minDateTime || maxDateTime ? isDayDisabled : undefined,
|
|
202
|
+
minutesTestId: minutesTestId,
|
|
203
|
+
hoursTestId: hoursTestId,
|
|
204
|
+
doneButtonTestId: doneButtonTestId
|
|
205
|
+
})
|
|
189
206
|
})
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
})
|
|
207
|
+
]
|
|
208
|
+
}))
|
|
209
|
+
});
|
|
193
210
|
};
|
|
194
211
|
|
|
195
212
|
//# sourceMappingURL=Calendar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Calendar/Calendar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { isSameDay, isSameMonth } from 'date-fns';\nimport { useCalendar } from '../../hooks/useCalendar';\nimport { clamp, isFirstDay, isLastDay, navigateDate, setTimeEqual } from '../../lib/calendar';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\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 {\n CalendarTime,\n type CalendarTimeProps,\n type CalendarTimeTestsProps,\n} from '../CalendarTime/CalendarTime';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Calendar.module.css';\n\nexport type CalendarTestsProps = CalendarDaysTestsProps &\n CalendarHeaderTestsProps &\n CalendarTimeTestsProps;\n\nexport interface CalendarProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n Pick<\n CalendarTimeProps,\n | 'changeHoursLabel'\n | 'changeMinutesLabel'\n | 'doneButtonText'\n | 'doneButtonDisabled'\n | 'doneButtonShow'\n >,\n Pick<\n CalendarHeaderProps,\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'onNextMonth'\n | 'onPrevMonth'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n | 'prevMonthProps'\n | 'nextMonthProps'\n >,\n Pick<CalendarDaysProps, 'dayProps' | 'listenDayChangesForUpdate' | 'renderDayContent'>,\n CalendarTestsProps {\n value?: Date;\n /**\n * Запрещает выбор даты в прошлом.\n * Применяется, если не заданы `shouldDisableDate` и `disableFuture`.\n */\n disablePast?: boolean;\n /**\n * Запрещает выбор даты в будущем.\n * Применяется, если не задано `shouldDisableDate`.\n */\n disableFuture?: boolean;\n enableTime?: boolean;\n disablePickers?: boolean;\n changeDayLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n showNeighboringMonth?: boolean;\n size?: 's' | 'm';\n onChange?: (value?: Date) => void;\n /**\n * Позволяет запретить выбор даты.\n */\n shouldDisableDate?: (value: Date) => boolean;\n onDoneButtonClick?: () => void;\n /**\n * Дата отображаемого месяца.\n * При использовании обновление даты должно происходить вне компонента.\n */\n viewDate?: Date;\n /**\n * Изменение даты в шапке календаря.\n */\n onHeaderChange?: (value: Date) => void;\n /**\n * Минимальные дата и время, которые можно выбрать\n * Применяется, если не заданы `shouldDisableDate` и `disablePast`/`disableFuture`.\n */\n minDateTime?: Date;\n /**\n * Максимальные дата и время, которые можно выбрать.\n * Применяется, если не заданы `shouldDisableDate` и `disablePast`/`disableFuture`.\n */\n maxDateTime?: Date;\n}\n\nconst warn = warnOnce('Calendar');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Calendar\n */\nexport const Calendar = ({\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onDoneButtonClick,\n enableTime = false,\n doneButtonText,\n doneButtonDisabled,\n doneButtonShow,\n weekStartsOn = 1,\n disablePickers,\n changeHoursLabel = 'Изменить час',\n changeMinutesLabel = 'Изменить минуту',\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n showNeighboringMonth,\n changeDayLabel = 'Изменить день',\n size = 'm',\n viewDate: externalViewDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n prevMonthIcon,\n nextMonthIcon,\n prevMonthProps,\n nextMonthProps,\n dayProps,\n listenDayChangesForUpdate,\n renderDayContent,\n minDateTime,\n maxDateTime,\n minutesTestId,\n hoursTestId,\n doneButtonTestId,\n prevMonthButtonTestId,\n nextMonthButtonTestId,\n monthDropdownTestId,\n yearDropdownTestId,\n dayTestId,\n ...props\n}: CalendarProps): 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({\n value,\n disableFuture,\n disablePast,\n shouldDisableDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n minDateTime,\n maxDateTime,\n });\n\n useIsomorphicLayoutEffect(() => {\n if (value) {\n setViewDate(value);\n }\n }, [value]);\n\n if (process.env.NODE_ENV === 'development' && !disablePickers && size === 's') {\n warn(\"Нельзя включить селекты выбора месяца/года, если размер календаря 's'\", 'error');\n }\n\n if (process.env.NODE_ENV === 'development' && enableTime && size === 's') {\n warn(\"Нельзя включить выбор времени, если размер календаря 's'\", 'error');\n }\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, event.key);\n\n if (newFocusedDay && !isSameMonth(newFocusedDay, viewDate)) {\n setViewDate(newFocusedDay);\n }\n setFocusedDay(newFocusedDay);\n },\n [focusedDay, setFocusedDay, setViewDate, value, viewDate],\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n let actualDate = setTimeEqual(date, value);\n if (minDateTime || maxDateTime) {\n actualDate = clamp(actualDate, { min: minDateTime, max: maxDateTime });\n }\n onChange?.(actualDate);\n },\n [value, onChange, maxDateTime, minDateTime],\n );\n\n const isDayActive = React.useCallback(\n (day: Date) => Boolean(value && isSameDay(day, value)),\n [value],\n );\n\n return (\n <RootComponent {...props} baseClassName={classNames(styles.host, size === 's' && styles.sizeS)}>\n <CalendarHeader\n viewDate={externalViewDate || viewDate}\n onChange={setViewDate}\n onNextMonth={setNextMonth}\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers || size === 's'}\n className={styles.header}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n prevMonthIcon={prevMonthIcon}\n nextMonthIcon={nextMonthIcon}\n prevMonthProps={prevMonthProps}\n nextMonthProps={nextMonthProps}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n nextMonthButtonTestId={nextMonthButtonTestId}\n prevMonthButtonTestId={prevMonthButtonTestId}\n monthDropdownTestId={monthDropdownTestId}\n yearDropdownTestId={yearDropdownTestId}\n />\n <CalendarDays\n viewDate={externalViewDate || viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n isDayFocused={isDayFocused}\n tabIndex={0}\n aria-label={changeDayLabel}\n onKeyDown={handleKeyDown}\n onDayChange={onDayChange}\n isDayActive={isDayActive}\n isDaySelectionStart={isFirstDay}\n isDaySelectionEnd={isLastDay}\n isDayDisabled={isDayDisabled}\n onBlur={resetSelectedDay}\n showNeighboringMonth={showNeighboringMonth}\n size={size}\n dayProps={dayProps}\n listenDayChangesForUpdate={listenDayChangesForUpdate}\n renderDayContent={renderDayContent}\n dayTestId={dayTestId}\n />\n {enableTime && value && size !== 's' && (\n <div className={styles.time}>\n <CalendarTime\n value={value}\n onChange={onChange}\n onDoneButtonClick={onDoneButtonClick}\n doneButtonText={doneButtonText}\n doneButtonDisabled={doneButtonDisabled}\n doneButtonShow={doneButtonShow}\n changeHoursLabel={changeHoursLabel}\n changeMinutesLabel={changeMinutesLabel}\n isDayDisabled={minDateTime || maxDateTime ? isDayDisabled : undefined}\n minutesTestId={minutesTestId}\n hoursTestId={hoursTestId}\n doneButtonTestId={doneButtonTestId}\n />\n </div>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","classNames","isSameDay","isSameMonth","useCalendar","clamp","isFirstDay","isLastDay","navigateDate","setTimeEqual","useIsomorphicLayoutEffect","warnOnce","CalendarDays","CalendarHeader","CalendarTime","RootComponent","warn","Calendar","value","onChange","disablePast","disableFuture","shouldDisableDate","onDoneButtonClick","enableTime","doneButtonText","doneButtonDisabled","doneButtonShow","weekStartsOn","disablePickers","changeHoursLabel","changeMinutesLabel","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","showNeighboringMonth","changeDayLabel","size","viewDate","externalViewDate","onHeaderChange","onNextMonth","onPrevMonth","prevMonthIcon","nextMonthIcon","prevMonthProps","nextMonthProps","dayProps","listenDayChangesForUpdate","renderDayContent","minDateTime","maxDateTime","minutesTestId","hoursTestId","doneButtonTestId","prevMonthButtonTestId","nextMonthButtonTestId","monthDropdownTestId","yearDropdownTestId","dayTestId","props","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","isMonthDisabled","isYearDisabled","process","env","NODE_ENV","handleKeyDown","useCallback","event","includes","key","preventDefault","newFocusedDay","onDayChange","date","actualDate","min","max","isDayActive","day","Boolean","baseClassName","className","tabIndex","aria-label","onKeyDown","isDaySelectionStart","isDaySelectionEnd","onBlur","div","undefined"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Calendar/Calendar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { isSameDay, isSameMonth } 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 { clamp, isFirstDay, isLastDay, navigateDate, setTimeEqual } from '../../lib/calendar';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\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 {\n type CalendarDoneButtonProps,\n CalendarTime,\n type CalendarTimeProps,\n type CalendarTimeTestsProps,\n} from '../CalendarTime/CalendarTime';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Calendar.module.css';\n\nexport type CalendarTestsProps = CalendarDaysTestsProps &\n CalendarHeaderTestsProps &\n CalendarTimeTestsProps;\n\nexport interface CalendarProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n Pick<CalendarTimeProps, 'changeHoursLabel' | 'changeMinutesLabel'>,\n Pick<\n CalendarHeaderProps,\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'onNextMonth'\n | 'onPrevMonth'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n | 'prevMonthProps'\n | 'nextMonthProps'\n >,\n Pick<CalendarDaysProps, 'dayProps' | 'listenDayChangesForUpdate' | 'renderDayContent'>,\n CalendarDoneButtonProps,\n CalendarTestsProps {\n value?: Date;\n /**\n * Запрещает выбор даты в прошлом.\n * Применяется, если не заданы `shouldDisableDate` и `disableFuture`.\n */\n disablePast?: boolean;\n /**\n * Запрещает выбор даты в будущем.\n * Применяется, если не задано `shouldDisableDate`.\n */\n disableFuture?: boolean;\n enableTime?: boolean;\n disablePickers?: boolean;\n changeDayLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n showNeighboringMonth?: boolean;\n size?: 's' | 'm';\n onChange?: (value?: Date) => void;\n /**\n * Позволяет запретить выбор даты.\n */\n shouldDisableDate?: (value: Date) => boolean;\n /**\n * Дата отображаемого месяца.\n * При использовании обновление даты должно происходить вне компонента.\n */\n viewDate?: Date;\n /**\n * Изменение даты в шапке календаря.\n */\n onHeaderChange?: (value: Date) => void;\n /**\n * Минимальные дата и время, которые можно выбрать\n * Применяется, если не заданы `shouldDisableDate` и `disablePast`/`disableFuture`.\n */\n minDateTime?: Date;\n /**\n * Максимальные дата и время, которые можно выбрать.\n * Применяется, если не заданы `shouldDisableDate` и `disablePast`/`disableFuture`.\n */\n maxDateTime?: Date;\n}\n\nconst warn = warnOnce('Calendar');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Calendar\n */\nexport const Calendar = ({\n getRootRef,\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onDoneButtonClick,\n enableTime = false,\n doneButtonText,\n doneButtonDisabled,\n doneButtonShow,\n DoneButton,\n weekStartsOn = 1,\n disablePickers,\n changeHoursLabel = 'Изменить час',\n changeMinutesLabel = 'Изменить минуту',\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n showNeighboringMonth,\n changeDayLabel = 'Изменить день',\n size = 'm',\n viewDate: externalViewDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n prevMonthIcon,\n nextMonthIcon,\n prevMonthProps,\n nextMonthProps,\n dayProps,\n listenDayChangesForUpdate,\n renderDayContent,\n minDateTime,\n maxDateTime,\n minutesTestId,\n hoursTestId,\n doneButtonTestId,\n prevMonthButtonTestId,\n nextMonthButtonTestId,\n monthDropdownTestId,\n yearDropdownTestId,\n dayTestId,\n ...props\n}: CalendarProps): 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({\n value,\n disableFuture,\n disablePast,\n shouldDisableDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n minDateTime,\n maxDateTime,\n });\n const [directionRef, textDirection = 'ltr'] = useDirection();\n const rootRef = useExternRef(directionRef, getRootRef);\n\n useIsomorphicLayoutEffect(() => {\n if (value) {\n setViewDate(value);\n }\n }, [value]);\n\n if (process.env.NODE_ENV === 'development' && !disablePickers && size === 's') {\n warn(\"Нельзя включить селекты выбора месяца/года, если размер календаря 's'\", 'error');\n }\n\n if (process.env.NODE_ENV === 'development' && enableTime && size === 's') {\n warn(\"Нельзя включить выбор времени, если размер календаря 's'\", 'error');\n }\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, event.key);\n\n if (newFocusedDay && !isSameMonth(newFocusedDay, viewDate)) {\n setViewDate(newFocusedDay);\n }\n setFocusedDay(newFocusedDay);\n },\n [focusedDay, setFocusedDay, setViewDate, value, viewDate],\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n let actualDate = setTimeEqual(date, value);\n if (minDateTime || maxDateTime) {\n actualDate = clamp(actualDate, { min: minDateTime, max: maxDateTime });\n }\n onChange?.(actualDate);\n },\n [value, onChange, maxDateTime, minDateTime],\n );\n\n const isDayActive = React.useCallback(\n (day: Date) => Boolean(value && isSameDay(day, value)),\n [value],\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\n {...props}\n baseClassName={classNames(styles.host, size === 's' && styles.sizeS)}\n getRootRef={rootRef}\n >\n <CalendarHeader\n viewDate={externalViewDate || viewDate}\n onChange={setViewDate}\n onNextMonth={setNextMonth}\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers || size === 's'}\n className={styles.header}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n prevMonthIcon={prevMonthIcon}\n nextMonthIcon={nextMonthIcon}\n prevMonthProps={prevMonthProps}\n nextMonthProps={nextMonthProps}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n nextMonthButtonTestId={nextMonthButtonTestId}\n prevMonthButtonTestId={prevMonthButtonTestId}\n monthDropdownTestId={monthDropdownTestId}\n yearDropdownTestId={yearDropdownTestId}\n />\n <CalendarDays\n viewDate={externalViewDate || viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n isDayFocused={isDayFocused}\n tabIndex={0}\n aria-label={changeDayLabel}\n onKeyDown={handleKeyDown}\n onDayChange={onDayChange}\n isDayActive={isDayActive}\n isDaySelectionStart={isFirstDay}\n isDaySelectionEnd={isLastDay}\n isDayDisabled={isDayDisabled}\n onBlur={resetSelectedDay}\n showNeighboringMonth={showNeighboringMonth}\n size={size}\n dayProps={dayProps}\n listenDayChangesForUpdate={listenDayChangesForUpdate}\n renderDayContent={renderDayContent}\n dayTestId={dayTestId}\n />\n {enableTime && value && size !== 's' && (\n <div className={styles.time}>\n <CalendarTime\n value={value}\n onChange={onChange}\n onDoneButtonClick={onDoneButtonClick}\n doneButtonText={doneButtonText}\n doneButtonDisabled={doneButtonDisabled}\n doneButtonShow={doneButtonShow}\n DoneButton={DoneButton}\n changeHoursLabel={changeHoursLabel}\n changeMinutesLabel={changeMinutesLabel}\n isDayDisabled={minDateTime || maxDateTime ? isDayDisabled : undefined}\n minutesTestId={minutesTestId}\n hoursTestId={hoursTestId}\n doneButtonTestId={doneButtonTestId}\n />\n </div>\n )}\n </RootComponent>\n </CalendarDirectionContext.Provider>\n );\n};\n"],"names":["React","classNames","isSameDay","isSameMonth","CalendarDirectionContext","useCalendar","useDirection","useExternRef","clamp","isFirstDay","isLastDay","navigateDate","setTimeEqual","useIsomorphicLayoutEffect","warnOnce","CalendarDays","CalendarHeader","CalendarTime","RootComponent","warn","Calendar","getRootRef","value","onChange","disablePast","disableFuture","shouldDisableDate","onDoneButtonClick","enableTime","doneButtonText","doneButtonDisabled","doneButtonShow","DoneButton","weekStartsOn","disablePickers","changeHoursLabel","changeMinutesLabel","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","showNeighboringMonth","changeDayLabel","size","viewDate","externalViewDate","onHeaderChange","onNextMonth","onPrevMonth","prevMonthIcon","nextMonthIcon","prevMonthProps","nextMonthProps","dayProps","listenDayChangesForUpdate","renderDayContent","minDateTime","maxDateTime","minutesTestId","hoursTestId","doneButtonTestId","prevMonthButtonTestId","nextMonthButtonTestId","monthDropdownTestId","yearDropdownTestId","dayTestId","props","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","isMonthDisabled","isYearDisabled","directionRef","textDirection","rootRef","process","env","NODE_ENV","handleKeyDown","useCallback","event","includes","key","preventDefault","newFocusedDay","onDayChange","date","actualDate","min","max","isDayActive","day","Boolean","directionContextValue","useMemo","direction","Provider","baseClassName","className","tabIndex","aria-label","onKeyDown","isDaySelectionStart","isDaySelectionEnd","onBlur","div","undefined"],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
export type CalendarDayElementProps = Omit<React.AllHTMLAttributes<HTMLElement>, 'onChange' | 'size' | 'disabled' | 'selected'>;
|
|
3
3
|
export type CalendarDayTestsProps = {
|
|
4
|
+
/**
|
|
5
|
+
* Передает атрибут `data-testid` для дня в календаре
|
|
6
|
+
*/
|
|
4
7
|
testId?: string | ((day: Date) => string);
|
|
5
8
|
};
|
|
6
9
|
export interface CalendarDayProps extends CalendarDayElementProps, CalendarDayTestsProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarDay.d.ts","sourceRoot":"","sources":["../../../src/components/CalendarDay/CalendarDay.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CalendarDay.d.ts","sourceRoot":"","sources":["../../../src/components/CalendarDay/CalendarDay.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,EACpC,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAC9C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,WAAW,gBAAiB,SAAQ,uBAAuB,EAAE,qBAAqB;IACtF,GAAG,EAAE,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;IAEhC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;CACnD;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA6GlD,CAAC"}
|
|
@@ -5,6 +5,7 @@ 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 { classNames } from "@vkontakte/vkjs";
|
|
8
|
+
import { useCalendarDirectionContext } from "../../context/CalendarDirectionContext.js";
|
|
8
9
|
import { ENABLE_KEYBOARD_INPUT_EVENT_NAME } from "../../hooks/useKeyboardInputTracker.js";
|
|
9
10
|
import { useConfigProvider } from "../ConfigProvider/ConfigProviderContext.js";
|
|
10
11
|
import { Tappable } from "../Tappable/Tappable.js";
|
|
@@ -34,6 +35,7 @@ export const CalendarDay = /*#__PURE__*/ React.memo((_param)=>{
|
|
|
34
35
|
]);
|
|
35
36
|
const { locale } = useConfigProvider();
|
|
36
37
|
const ref = React.useRef(null);
|
|
38
|
+
const { direction } = useCalendarDirectionContext();
|
|
37
39
|
const onClick = React.useCallback(()=>onChange(day), [
|
|
38
40
|
day,
|
|
39
41
|
onChange
|
|
@@ -90,7 +92,7 @@ export const CalendarDay = /*#__PURE__*/ React.memo((_param)=>{
|
|
|
90
92
|
});
|
|
91
93
|
}
|
|
92
94
|
return /*#__PURE__*/ _jsx(Tappable, _object_spread_props(_object_spread({
|
|
93
|
-
baseClassName: classNames("vkuiCalendarDay__host", size === 's' && "vkuiCalendarDay__sizeS"),
|
|
95
|
+
baseClassName: classNames("vkuiCalendarDay__host", size === 's' && "vkuiCalendarDay__sizeS", direction === 'rtl' && "vkuiCalendarDay__rtl"),
|
|
94
96
|
hoverMode: "vkuiCalendarDay__hostHovered",
|
|
95
97
|
activeMode: "vkuiCalendarDay__hostActivated",
|
|
96
98
|
hasActive: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/CalendarDay/CalendarDay.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { ENABLE_KEYBOARD_INPUT_EVENT_NAME } from '../../hooks/useKeyboardInputTracker';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { Tappable } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CalendarDay.module.css';\n\nexport type CalendarDayElementProps = Omit<\n React.AllHTMLAttributes<HTMLElement>,\n 'onChange' | 'size' | 'disabled' | 'selected'\n>;\n\nexport type CalendarDayTestsProps = {\n testId?: string | ((day: Date) => string);\n};\n\nexport interface CalendarDayProps extends CalendarDayElementProps, CalendarDayTestsProps {\n day: Date;\n today?: boolean;\n selected?: boolean;\n selectionStart?: boolean;\n selectionEnd?: boolean;\n hintedSelectionStart?: boolean;\n hintedSelectionEnd?: boolean;\n active?: boolean;\n hidden?: boolean;\n disabled?: boolean;\n focused?: boolean;\n hinted?: boolean;\n sameMonth?: boolean;\n size?: 's' | 'm';\n onChange: (value: Date) => void;\n onEnter?: (value: Date) => void;\n onLeave?: (value: Date) => void;\n // Функция отрисовки контента в ячейке дня\n renderDayContent?: (day: Date) => React.ReactNode;\n}\n\nexport const CalendarDay: React.FC<CalendarDayProps> = React.memo(\n ({\n day,\n today,\n selected,\n onChange,\n hidden,\n disabled,\n active,\n selectionStart,\n selectionEnd,\n focused,\n onEnter,\n onLeave,\n hinted,\n hintedSelectionStart,\n hintedSelectionEnd,\n sameMonth,\n size,\n children,\n renderDayContent,\n testId,\n ...restProps\n }: CalendarDayProps) => {\n const { locale } = useConfigProvider();\n const ref = React.useRef<HTMLElement>(null);\n const onClick = React.useCallback(() => onChange(day), [day, onChange]);\n const handleEnter = React.useCallback(() => onEnter?.(day), [day, onEnter]);\n const handleLeave = React.useCallback(() => onLeave?.(day), [day, onLeave]);\n\n const label = new Intl.DateTimeFormat(locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n }).format(day);\n\n React.useEffect(() => {\n if (focused && ref.current) {\n ref.current.dispatchEvent(new Event(ENABLE_KEYBOARD_INPUT_EVENT_NAME, { bubbles: true }));\n ref.current.focus();\n }\n }, [focused]);\n\n const content = React.useMemo(() => {\n if (renderDayContent) {\n return renderDayContent(day);\n }\n return (\n <div className={styles.dayNumber}>\n <VisuallyHidden>{children ?? label}</VisuallyHidden>\n <span aria-hidden>{day.getDate()}</span>\n </div>\n );\n }, [renderDayContent, day, children, label]);\n\n if (hidden) {\n return <div className={classNames(styles.hidden, size === 's' && styles.sizeS)} />;\n }\n\n return (\n <Tappable\n baseClassName={classNames(styles.host
|
|
1
|
+
{"version":3,"sources":["../../../src/components/CalendarDay/CalendarDay.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useCalendarDirectionContext } from '../../context/CalendarDirectionContext';\nimport { ENABLE_KEYBOARD_INPUT_EVENT_NAME } from '../../hooks/useKeyboardInputTracker';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { Tappable } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CalendarDay.module.css';\n\nexport type CalendarDayElementProps = Omit<\n React.AllHTMLAttributes<HTMLElement>,\n 'onChange' | 'size' | 'disabled' | 'selected'\n>;\n\nexport type CalendarDayTestsProps = {\n /**\n * Передает атрибут `data-testid` для дня в календаре\n */\n testId?: string | ((day: Date) => string);\n};\n\nexport interface CalendarDayProps extends CalendarDayElementProps, CalendarDayTestsProps {\n day: Date;\n today?: boolean;\n selected?: boolean;\n selectionStart?: boolean;\n selectionEnd?: boolean;\n hintedSelectionStart?: boolean;\n hintedSelectionEnd?: boolean;\n active?: boolean;\n hidden?: boolean;\n disabled?: boolean;\n focused?: boolean;\n hinted?: boolean;\n sameMonth?: boolean;\n size?: 's' | 'm';\n onChange: (value: Date) => void;\n onEnter?: (value: Date) => void;\n onLeave?: (value: Date) => void;\n // Функция отрисовки контента в ячейке дня\n renderDayContent?: (day: Date) => React.ReactNode;\n}\n\nexport const CalendarDay: React.FC<CalendarDayProps> = React.memo(\n ({\n day,\n today,\n selected,\n onChange,\n hidden,\n disabled,\n active,\n selectionStart,\n selectionEnd,\n focused,\n onEnter,\n onLeave,\n hinted,\n hintedSelectionStart,\n hintedSelectionEnd,\n sameMonth,\n size,\n children,\n renderDayContent,\n testId,\n ...restProps\n }: CalendarDayProps) => {\n const { locale } = useConfigProvider();\n const ref = React.useRef<HTMLElement>(null);\n const { direction } = useCalendarDirectionContext();\n const onClick = React.useCallback(() => onChange(day), [day, onChange]);\n const handleEnter = React.useCallback(() => onEnter?.(day), [day, onEnter]);\n const handleLeave = React.useCallback(() => onLeave?.(day), [day, onLeave]);\n\n const label = new Intl.DateTimeFormat(locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n }).format(day);\n\n React.useEffect(() => {\n if (focused && ref.current) {\n ref.current.dispatchEvent(new Event(ENABLE_KEYBOARD_INPUT_EVENT_NAME, { bubbles: true }));\n ref.current.focus();\n }\n }, [focused]);\n\n const content = React.useMemo(() => {\n if (renderDayContent) {\n return renderDayContent(day);\n }\n return (\n <div className={styles.dayNumber}>\n <VisuallyHidden>{children ?? label}</VisuallyHidden>\n <span aria-hidden>{day.getDate()}</span>\n </div>\n );\n }, [renderDayContent, day, children, label]);\n\n if (hidden) {\n return <div className={classNames(styles.hidden, size === 's' && styles.sizeS)} />;\n }\n\n return (\n <Tappable\n baseClassName={classNames(\n styles.host,\n size === 's' && styles.sizeS,\n direction === 'rtl' && styles.rtl,\n )}\n hoverMode={styles.hostHovered}\n activeMode={styles.hostActivated}\n hasActive={false}\n onClick={onClick}\n disabled={disabled}\n tabIndex={-1}\n getRootRef={ref}\n focusVisibleMode={active ? 'outside' : 'inside'}\n onPointerEnter={handleEnter}\n onPointerLeave={handleLeave}\n data-testid={typeof testId === 'string' ? testId : testId?.(day)}\n {...restProps}\n >\n <div\n className={classNames(\n styles.content,\n size === 's' && styles.sizeS,\n today && styles.today,\n selected && !disabled && styles.selected,\n selectionStart && styles.selectionStart,\n selectionEnd && styles.selectionEnd,\n disabled && styles.disabled,\n !sameMonth && styles.notSameMonth,\n )}\n >\n <div\n className={classNames(\n styles.hinted,\n hinted && styles.hintedActive,\n hintedSelectionStart && styles.hintedSelectionStart,\n hintedSelectionEnd && styles.hintedSelectionEnd,\n )}\n >\n <div className={classNames(styles.inner, active && !disabled && styles.innerActive)}>\n {content}\n </div>\n </div>\n </div>\n </Tappable>\n );\n },\n);\n\nCalendarDay.displayName = 'CalendarDay';\n"],"names":["React","classNames","useCalendarDirectionContext","ENABLE_KEYBOARD_INPUT_EVENT_NAME","useConfigProvider","Tappable","VisuallyHidden","CalendarDay","memo","day","today","selected","onChange","hidden","disabled","active","selectionStart","selectionEnd","focused","onEnter","onLeave","hinted","hintedSelectionStart","hintedSelectionEnd","sameMonth","size","children","renderDayContent","testId","restProps","locale","ref","useRef","direction","onClick","useCallback","handleEnter","handleLeave","label","Intl","DateTimeFormat","weekday","year","month","format","useEffect","current","dispatchEvent","Event","bubbles","focus","content","useMemo","div","className","span","aria-hidden","getDate","baseClassName","hoverMode","activeMode","hasActive","tabIndex","getRootRef","focusVisibleMode","onPointerEnter","onPointerLeave","data-testid","displayName"],"mappings":"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"}
|
|
@@ -2,6 +2,9 @@ import * as React from 'react';
|
|
|
2
2
|
import type { HTMLAttributesWithRootRef } from '../../types';
|
|
3
3
|
import { type CalendarDayElementProps, type CalendarDayProps, type CalendarDayTestsProps } from '../CalendarDay/CalendarDay';
|
|
4
4
|
export type CalendarDaysTestsProps = {
|
|
5
|
+
/**
|
|
6
|
+
* Передает атрибут `data-testid` для дня в календаре
|
|
7
|
+
*/
|
|
5
8
|
dayTestId?: CalendarDayTestsProps['testId'];
|
|
6
9
|
};
|
|
7
10
|
export interface CalendarDaysProps extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>, Pick<CalendarDayProps, 'renderDayContent'>, CalendarDaysTestsProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarDays.d.ts","sourceRoot":"","sources":["../../../src/components/CalendarDays/CalendarDays.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAMpC,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EACjE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EAC1C,sBAAsB;IACxB,KAAK,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAClC,QAAQ,EAAE,IAAI,CAAC;IACf,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACjB,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC;IACxC,mBAAmB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACjE,iBAAiB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/D,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACxE,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACtE,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC;IACtC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC;IACvC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC;IACzC,YAAY,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;CACpC;AAED,eAAO,MAAM,YAAY,iWAwBtB,iBAAiB,KAAG,KAAK,CAAC,SAkE5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"CalendarDays.d.ts","sourceRoot":"","sources":["../../../src/components/CalendarDays/CalendarDays.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAMpC,MAAM,MAAM,sBAAsB,GAAG;IACnC;;OAEG;IACH,SAAS,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EACjE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EAC1C,sBAAsB;IACxB,KAAK,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAClC,QAAQ,EAAE,IAAI,CAAC;IACf,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACjB,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC;IACxC,mBAAmB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACjE,iBAAiB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/D,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACxE,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACtE,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC;IACtC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC;IACvC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC;IACzC,YAAY,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;CACpC;AAED,eAAO,MAAM,YAAY,iWAwBtB,iBAAiB,KAAG,KAAK,CAAC,SAkE5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/CalendarDays/CalendarDays.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { isSameDay, isSameMonth } from 'date-fns';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useTodayDate } from '../../hooks/useTodayDate';\nimport { getDaysNames, getWeeks } from '../../lib/calendar';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport {\n CalendarDay,\n type CalendarDayElementProps,\n type CalendarDayProps,\n type CalendarDayTestsProps,\n} from '../CalendarDay/CalendarDay';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './CalendarDays.module.css';\n\nexport type CalendarDaysTestsProps = {\n dayTestId?: CalendarDayTestsProps['testId'];\n};\n\nexport interface CalendarDaysProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n Pick<CalendarDayProps, 'renderDayContent'>,\n CalendarDaysTestsProps {\n value?: Date | Array<Date | null>;\n viewDate: Date;\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n showNeighboringMonth?: boolean;\n size?: 's' | 'm';\n dayProps?: CalendarDayElementProps;\n listenDayChangesForUpdate?: boolean;\n onDayChange: (value: Date) => void;\n isDayDisabled: (value: Date) => boolean;\n isDaySelectionStart: (value: Date, dayOfWeek: number) => boolean;\n isDaySelectionEnd: (value: Date, dayOfWeek: number) => boolean;\n isHintedDaySelectionStart?: (value: Date, dayOfWeek: number) => boolean;\n isHintedDaySelectionEnd?: (value: Date, dayOfWeek: number) => boolean;\n isDayActive: (value: Date) => boolean;\n isDayHinted?: (value: Date) => boolean;\n isDaySelected?: (value: Date) => boolean;\n isDayFocused: (value: Date) => boolean;\n onDayEnter?: (value: Date) => void;\n onDayLeave?: (value: Date) => void;\n}\n\nexport const CalendarDays = ({\n viewDate,\n value,\n weekStartsOn,\n onDayChange,\n isDaySelected,\n isDayActive,\n isDaySelectionEnd,\n isDaySelectionStart,\n onDayEnter,\n onDayLeave,\n isDayHinted,\n isHintedDaySelectionStart,\n isHintedDaySelectionEnd,\n isDayFocused,\n isDayDisabled,\n size,\n showNeighboringMonth = false,\n dayProps,\n listenDayChangesForUpdate = false,\n getRootRef,\n renderDayContent,\n dayTestId,\n ...props\n}: CalendarDaysProps): React.ReactNode => {\n const { locale } = useConfigProvider();\n const ref = useExternRef(getRootRef);\n const now = useTodayDate(listenDayChangesForUpdate);\n\n const weeks = React.useMemo(() => getWeeks(viewDate, weekStartsOn), [weekStartsOn, viewDate]);\n\n const daysNames = React.useMemo(\n () => getDaysNames(now, weekStartsOn, locale),\n [locale, now, weekStartsOn],\n );\n\n const handleDayChange = React.useCallback(\n (date: Date) => {\n onDayChange(date);\n\n ref.current?.focus();\n },\n [onDayChange, ref],\n );\n\n return (\n <RootComponent {...props} baseClassName={styles.host} getRootRef={ref}>\n <div className={classNames(styles.row, size === 's' && styles.rowSizeS)}>\n {daysNames.map((dayName) => (\n <Footnote key={dayName} className={styles.weekday}>\n {dayName}\n </Footnote>\n ))}\n </div>\n\n {weeks.map((week, i) => (\n <div className={classNames(styles.row, size === 's' && styles.rowSizeS)} key={i}>\n {week.map((day, i) => {\n const sameMonth = isSameMonth(day, viewDate);\n return (\n <CalendarDay\n key={day.toISOString()}\n day={day}\n today={isSameDay(day, now)}\n active={isDayActive(day)}\n onChange={handleDayChange}\n hidden={!showNeighboringMonth && !sameMonth}\n disabled={isDayDisabled(day)}\n selectionStart={isDaySelectionStart(day, i)}\n selectionEnd={isDaySelectionEnd(day, i)}\n hintedSelectionStart={isHintedDaySelectionStart?.(day, i)}\n hintedSelectionEnd={isHintedDaySelectionEnd?.(day, i)}\n selected={isDaySelected?.(day)}\n focused={isDayFocused(day)}\n onEnter={onDayEnter}\n onLeave={onDayLeave}\n hinted={isDayHinted?.(day)}\n sameMonth={sameMonth}\n size={size}\n renderDayContent={renderDayContent}\n testId={dayTestId}\n {...dayProps}\n className={classNames(dayProps?.className, styles.rowDay)}\n />\n );\n })}\n </div>\n ))}\n </RootComponent>\n );\n};\n"],"names":["React","classNames","isSameDay","isSameMonth","useExternRef","useTodayDate","getDaysNames","getWeeks","CalendarDay","useConfigProvider","RootComponent","Footnote","CalendarDays","viewDate","value","weekStartsOn","onDayChange","isDaySelected","isDayActive","isDaySelectionEnd","isDaySelectionStart","onDayEnter","onDayLeave","isDayHinted","isHintedDaySelectionStart","isHintedDaySelectionEnd","isDayFocused","isDayDisabled","size","showNeighboringMonth","dayProps","listenDayChangesForUpdate","getRootRef","renderDayContent","dayTestId","props","locale","ref","now","weeks","useMemo","daysNames","handleDayChange","useCallback","date","current","focus","baseClassName","div","className","map","dayName","week","i","day","sameMonth","today","active","onChange","hidden","disabled","selectionStart","selectionEnd","hintedSelectionStart","hintedSelectionEnd","selected","focused","onEnter","onLeave","hinted","testId","toISOString"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,SAAS,EAAEC,WAAW,QAAQ,WAAW;AAClD,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,YAAY,EAAEC,QAAQ,QAAQ,wBAAqB;AAE5D,SACEC,WAAW,QAIN,gCAA6B;AACpC,SAASC,iBAAiB,QAAQ,6CAA0C;AAC5E,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,QAAQ,QAAQ,qCAAkC;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/CalendarDays/CalendarDays.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { isSameDay, isSameMonth } from 'date-fns';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useTodayDate } from '../../hooks/useTodayDate';\nimport { getDaysNames, getWeeks } from '../../lib/calendar';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport {\n CalendarDay,\n type CalendarDayElementProps,\n type CalendarDayProps,\n type CalendarDayTestsProps,\n} from '../CalendarDay/CalendarDay';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './CalendarDays.module.css';\n\nexport type CalendarDaysTestsProps = {\n /**\n * Передает атрибут `data-testid` для дня в календаре\n */\n dayTestId?: CalendarDayTestsProps['testId'];\n};\n\nexport interface CalendarDaysProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n Pick<CalendarDayProps, 'renderDayContent'>,\n CalendarDaysTestsProps {\n value?: Date | Array<Date | null>;\n viewDate: Date;\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n showNeighboringMonth?: boolean;\n size?: 's' | 'm';\n dayProps?: CalendarDayElementProps;\n listenDayChangesForUpdate?: boolean;\n onDayChange: (value: Date) => void;\n isDayDisabled: (value: Date) => boolean;\n isDaySelectionStart: (value: Date, dayOfWeek: number) => boolean;\n isDaySelectionEnd: (value: Date, dayOfWeek: number) => boolean;\n isHintedDaySelectionStart?: (value: Date, dayOfWeek: number) => boolean;\n isHintedDaySelectionEnd?: (value: Date, dayOfWeek: number) => boolean;\n isDayActive: (value: Date) => boolean;\n isDayHinted?: (value: Date) => boolean;\n isDaySelected?: (value: Date) => boolean;\n isDayFocused: (value: Date) => boolean;\n onDayEnter?: (value: Date) => void;\n onDayLeave?: (value: Date) => void;\n}\n\nexport const CalendarDays = ({\n viewDate,\n value,\n weekStartsOn,\n onDayChange,\n isDaySelected,\n isDayActive,\n isDaySelectionEnd,\n isDaySelectionStart,\n onDayEnter,\n onDayLeave,\n isDayHinted,\n isHintedDaySelectionStart,\n isHintedDaySelectionEnd,\n isDayFocused,\n isDayDisabled,\n size,\n showNeighboringMonth = false,\n dayProps,\n listenDayChangesForUpdate = false,\n getRootRef,\n renderDayContent,\n dayTestId,\n ...props\n}: CalendarDaysProps): React.ReactNode => {\n const { locale } = useConfigProvider();\n const ref = useExternRef(getRootRef);\n const now = useTodayDate(listenDayChangesForUpdate);\n\n const weeks = React.useMemo(() => getWeeks(viewDate, weekStartsOn), [weekStartsOn, viewDate]);\n\n const daysNames = React.useMemo(\n () => getDaysNames(now, weekStartsOn, locale),\n [locale, now, weekStartsOn],\n );\n\n const handleDayChange = React.useCallback(\n (date: Date) => {\n onDayChange(date);\n\n ref.current?.focus();\n },\n [onDayChange, ref],\n );\n\n return (\n <RootComponent {...props} baseClassName={styles.host} getRootRef={ref}>\n <div className={classNames(styles.row, size === 's' && styles.rowSizeS)}>\n {daysNames.map((dayName) => (\n <Footnote key={dayName} className={styles.weekday}>\n {dayName}\n </Footnote>\n ))}\n </div>\n\n {weeks.map((week, i) => (\n <div className={classNames(styles.row, size === 's' && styles.rowSizeS)} key={i}>\n {week.map((day, i) => {\n const sameMonth = isSameMonth(day, viewDate);\n return (\n <CalendarDay\n key={day.toISOString()}\n day={day}\n today={isSameDay(day, now)}\n active={isDayActive(day)}\n onChange={handleDayChange}\n hidden={!showNeighboringMonth && !sameMonth}\n disabled={isDayDisabled(day)}\n selectionStart={isDaySelectionStart(day, i)}\n selectionEnd={isDaySelectionEnd(day, i)}\n hintedSelectionStart={isHintedDaySelectionStart?.(day, i)}\n hintedSelectionEnd={isHintedDaySelectionEnd?.(day, i)}\n selected={isDaySelected?.(day)}\n focused={isDayFocused(day)}\n onEnter={onDayEnter}\n onLeave={onDayLeave}\n hinted={isDayHinted?.(day)}\n sameMonth={sameMonth}\n size={size}\n renderDayContent={renderDayContent}\n testId={dayTestId}\n {...dayProps}\n className={classNames(dayProps?.className, styles.rowDay)}\n />\n );\n })}\n </div>\n ))}\n </RootComponent>\n );\n};\n"],"names":["React","classNames","isSameDay","isSameMonth","useExternRef","useTodayDate","getDaysNames","getWeeks","CalendarDay","useConfigProvider","RootComponent","Footnote","CalendarDays","viewDate","value","weekStartsOn","onDayChange","isDaySelected","isDayActive","isDaySelectionEnd","isDaySelectionStart","onDayEnter","onDayLeave","isDayHinted","isHintedDaySelectionStart","isHintedDaySelectionEnd","isDayFocused","isDayDisabled","size","showNeighboringMonth","dayProps","listenDayChangesForUpdate","getRootRef","renderDayContent","dayTestId","props","locale","ref","now","weeks","useMemo","daysNames","handleDayChange","useCallback","date","current","focus","baseClassName","div","className","map","dayName","week","i","day","sameMonth","today","active","onChange","hidden","disabled","selectionStart","selectionEnd","hintedSelectionStart","hintedSelectionEnd","selected","focused","onEnter","onLeave","hinted","testId","toISOString"],"mappings":"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"}
|
|
@@ -2,9 +2,21 @@ import * as React from 'react';
|
|
|
2
2
|
import type { HTMLAttributesWithRootRef } from '../../types';
|
|
3
3
|
type ArrowMonthProps = Omit<React.AllHTMLAttributes<HTMLElement>, 'onClick' | 'aria-label'>;
|
|
4
4
|
export type CalendarHeaderTestsProps = {
|
|
5
|
+
/**
|
|
6
|
+
* Передает атрибут `data-testid` для дропдауна выбора месяца в заголовке календаря
|
|
7
|
+
*/
|
|
5
8
|
monthDropdownTestId?: string | ((monthIndex: number) => string);
|
|
9
|
+
/**
|
|
10
|
+
* Передает атрибут `data-testid` для дропдауна выбора года в заголовке календаря
|
|
11
|
+
*/
|
|
6
12
|
yearDropdownTestId?: string | ((year: number) => string);
|
|
13
|
+
/**
|
|
14
|
+
* Передает атрибут `data-testid` для кнопки перехода к следующему месяцу в заголовке календаря
|
|
15
|
+
*/
|
|
7
16
|
nextMonthButtonTestId?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Передает атрибут `data-testid` для кнопки перехода к предыдущему месяцу в заголовке календаря
|
|
19
|
+
*/
|
|
8
20
|
prevMonthButtonTestId?: string;
|
|
9
21
|
};
|
|
10
22
|
export interface CalendarHeaderProps extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>, CalendarHeaderTestsProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarHeader.d.ts","sourceRoot":"","sources":["../../../src/components/CalendarHeader/CalendarHeader.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CalendarHeader.d.ts","sourceRoot":"","sources":["../../../src/components/CalendarHeader/CalendarHeader.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAU7D,KAAK,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC,CAAC;AAE5F,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAChE;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACzD;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EACjE,wBAAwB;IAC1B,QAAQ,EAAE,IAAI,CAAC;IACf;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAClE,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,QAAQ,EAAE,CAAC,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,eAAO,MAAM,cAAc,wZA2BxB,mBAAmB,KAAG,KAAK,CAAC,SAoJ9B,CAAC"}
|
|
@@ -7,6 +7,7 @@ import * as React from "react";
|
|
|
7
7
|
import { Icon12Dropdown, Icon20ChevronLeftOutline, Icon20ChevronRightOutline } from "@vkontakte/icons";
|
|
8
8
|
import { classNames } from "@vkontakte/vkjs";
|
|
9
9
|
import { addMonths, setMonth, setYear, subMonths } from "date-fns";
|
|
10
|
+
import { useCalendarDirectionContext } from "../../context/CalendarDirectionContext.js";
|
|
10
11
|
import { DEFAULT_MAX_YEAR, DEFAULT_MIN_YEAR, getMonths, getYears } from "../../lib/calendar.js";
|
|
11
12
|
import { AdaptivityProvider } from "../AdaptivityProvider/AdaptivityProvider.js";
|
|
12
13
|
import { useConfigProvider } from "../ConfigProvider/ConfigProviderContext.js";
|
|
@@ -48,6 +49,7 @@ export const CalendarHeader = (_param)=>{
|
|
|
48
49
|
"nextMonthButtonTestId"
|
|
49
50
|
]);
|
|
50
51
|
const { locale } = useConfigProvider();
|
|
52
|
+
const { direction } = useCalendarDirectionContext();
|
|
51
53
|
const onMonthsChange = React.useCallback((_, newValue)=>onChange(setMonth(viewDate, Number(newValue))), [
|
|
52
54
|
onChange,
|
|
53
55
|
viewDate
|
|
@@ -112,7 +114,7 @@ export const CalendarHeader = (_param)=>{
|
|
|
112
114
|
formatter.format(subMonths(viewDate, 1))
|
|
113
115
|
]
|
|
114
116
|
}),
|
|
115
|
-
prevMonthIcon
|
|
117
|
+
direction === 'ltr' ? prevMonthIcon : nextMonthIcon
|
|
116
118
|
]
|
|
117
119
|
}))
|
|
118
120
|
}),
|
|
@@ -180,7 +182,7 @@ export const CalendarHeader = (_param)=>{
|
|
|
180
182
|
formatter.format(addMonths(viewDate, 1))
|
|
181
183
|
]
|
|
182
184
|
}),
|
|
183
|
-
nextMonthIcon
|
|
185
|
+
direction === 'ltr' ? nextMonthIcon : prevMonthIcon
|
|
184
186
|
]
|
|
185
187
|
}))
|
|
186
188
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/CalendarHeader/CalendarHeader.tsx"],"sourcesContent":["'use client';\n\nimport { type ChangeEvent } from 'react';\nimport * as React from 'react';\nimport {\n Icon12Dropdown,\n Icon20ChevronLeftOutline,\n Icon20ChevronRightOutline,\n} from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { addMonths, setMonth, setYear, subMonths } from 'date-fns';\nimport { DEFAULT_MAX_YEAR, DEFAULT_MIN_YEAR, getMonths, getYears } from '../../lib/calendar';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { CustomSelect, type SelectProps } from '../CustomSelect/CustomSelect';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Paragraph } from '../Typography/Paragraph/Paragraph';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CalendarHeader.module.css';\n\ntype ArrowMonthProps = Omit<React.AllHTMLAttributes<HTMLElement>, 'onClick' | 'aria-label'>;\n\nexport type CalendarHeaderTestsProps = {\n monthDropdownTestId?: string | ((monthIndex: number) => string);\n yearDropdownTestId?: string | ((year: number) => string);\n nextMonthButtonTestId?: string;\n prevMonthButtonTestId?: string;\n};\n\nexport interface CalendarHeaderProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n CalendarHeaderTestsProps {\n viewDate: Date;\n /**\n * Скрывает иконку для переключения на предыдущий месяц\n */\n prevMonthHidden?: boolean;\n /**\n * Скрывает иконку для переключения на следующий месяц\n */\n nextMonthHidden?: boolean;\n disablePickers?: boolean;\n prevMonthLabel?: string;\n nextMonthLabel?: string;\n changeMonthLabel?: string;\n changeYearLabel?: string;\n prevMonthIcon?: React.ReactNode;\n nextMonthIcon?: React.ReactNode;\n prevMonthProps?: ArrowMonthProps;\n nextMonthProps?: ArrowMonthProps;\n isMonthDisabled?: (monthNumber: number, year?: number) => boolean;\n isYearDisabled?: (yearNumber: number) => boolean;\n onChange: (viewDate: Date) => void;\n /**\n * Нажатие на кнопку переключения на следующий месяц.\n */\n onNextMonth?: () => void;\n /**\n * Нажатие на кнопку переключения на предыдущий месяц.\n */\n onPrevMonth?: () => void;\n}\n\nexport const CalendarHeader = ({\n viewDate,\n onChange,\n prevMonthHidden: prevMonthHiddenProp = false,\n nextMonthHidden: nextMonthHiddenProp = false,\n disablePickers = false,\n onNextMonth,\n onPrevMonth,\n prevMonthProps = {},\n nextMonthProps = {},\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n prevMonthIcon = (\n <Icon20ChevronLeftOutline className={styles.navIconAccent} width={30} height={30} />\n ),\n nextMonthIcon = (\n <Icon20ChevronRightOutline className={styles.navIconAccent} width={30} height={30} />\n ),\n isMonthDisabled,\n isYearDisabled,\n monthDropdownTestId,\n yearDropdownTestId,\n prevMonthButtonTestId,\n nextMonthButtonTestId,\n ...restProps\n}: CalendarHeaderProps): React.ReactNode => {\n const { locale } = useConfigProvider();\n const onMonthsChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange(setMonth(viewDate, Number(newValue))),\n [onChange, viewDate],\n );\n const onYearChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange(setYear(viewDate, Number(newValue))),\n [onChange, viewDate],\n );\n\n const currentYear = viewDate.getFullYear();\n const currentMonth = viewDate.getMonth();\n\n const months = React.useMemo(\n () =>\n getMonths(locale).map(({ value, label }) => ({\n value,\n label: <span className={styles.month}>{label}</span>,\n disabled: isMonthDisabled && isMonthDisabled(value),\n })),\n [locale, isMonthDisabled],\n );\n\n const years = React.useMemo(\n () =>\n getYears(currentYear, 100).map((year) => ({\n ...year,\n disabled: isYearDisabled && isYearDisabled(year.value),\n })),\n [currentYear, isYearDisabled],\n );\n\n const formatter = new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: 'long',\n });\n\n const { className: prevMonthClassName, ...restPrevMonthProps } = prevMonthProps;\n const { className: nextMonthClassName, ...restNextMonthProps } = nextMonthProps;\n\n let nextMonthHidden =\n nextMonthHiddenProp || (currentMonth === 11 && currentYear === DEFAULT_MAX_YEAR);\n if (isMonthDisabled && !nextMonthHidden) {\n nextMonthHidden = isMonthDisabled(\n currentMonth === 11 ? 0 : currentMonth + 1,\n currentMonth === 11 ? Math.min(currentYear + 1, DEFAULT_MAX_YEAR) : currentYear,\n );\n }\n\n let prevMonthHidden =\n prevMonthHiddenProp || (currentMonth === 0 && currentYear === DEFAULT_MIN_YEAR);\n if (isMonthDisabled && !prevMonthHidden) {\n prevMonthHidden = isMonthDisabled(\n currentMonth === 0 ? 11 : currentMonth - 1,\n currentMonth === 0 ? Math.max(currentYear - 1, DEFAULT_MIN_YEAR) : currentYear,\n );\n }\n\n return (\n <RootComponent baseClassName={styles.host} {...restProps}>\n {!prevMonthHidden && (\n <AdaptivityProvider sizeX=\"regular\">\n <Tappable\n baseClassName={classNames(styles.navIcon, styles.navIconPrev, prevMonthClassName)}\n onClick={onPrevMonth}\n data-testid={prevMonthButtonTestId}\n {...restPrevMonthProps}\n >\n <VisuallyHidden>\n {prevMonthLabel}, {formatter.format(subMonths(viewDate, 1))}\n </VisuallyHidden>\n {prevMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n {disablePickers ? (\n <Paragraph\n className={classNames(styles.pickers, 'vkuiInternalCalendarHeader__pickers')}\n weight=\"2\"\n >\n <span className={styles.month}>\n {new Intl.DateTimeFormat(locale, {\n month: 'long',\n }).format(viewDate)}\n </span>\n \n {new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n }).format(viewDate)}\n </Paragraph>\n ) : (\n <AdaptivityProvider sizeY=\"compact\">\n <div className={classNames(styles.pickers, 'vkuiInternalCalendarHeader__pickers')}>\n <CustomSelect\n className={classNames(styles.picker, 'vkuiInternalCalendarHeader__picker')}\n value={currentMonth}\n options={months}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onMonthsChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n aria-label={changeMonthLabel}\n data-testid={\n typeof monthDropdownTestId === 'string'\n ? monthDropdownTestId\n : monthDropdownTestId?.(currentMonth)\n }\n />\n <CustomSelect\n className={classNames(styles.picker, 'vkuiInternalCalendarHeader__picker')}\n value={currentYear}\n options={years}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onYearChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n aria-label={changeYearLabel}\n data-testid={yearDropdownTestId}\n />\n </div>\n </AdaptivityProvider>\n )}\n {!nextMonthHidden && (\n <AdaptivityProvider sizeX=\"regular\">\n <Tappable\n baseClassName={classNames(styles.navIcon, styles.navIconNext, nextMonthClassName)}\n onClick={onNextMonth}\n data-testid={nextMonthButtonTestId}\n {...restNextMonthProps}\n >\n <VisuallyHidden>\n {nextMonthLabel}, {formatter.format(addMonths(viewDate, 1))}\n </VisuallyHidden>\n {nextMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","Icon12Dropdown","Icon20ChevronLeftOutline","Icon20ChevronRightOutline","classNames","addMonths","setMonth","setYear","subMonths","DEFAULT_MAX_YEAR","DEFAULT_MIN_YEAR","getMonths","getYears","AdaptivityProvider","useConfigProvider","CustomSelect","RootComponent","Tappable","Paragraph","VisuallyHidden","CalendarHeader","viewDate","onChange","prevMonthHidden","prevMonthHiddenProp","nextMonthHidden","nextMonthHiddenProp","disablePickers","onNextMonth","onPrevMonth","prevMonthProps","nextMonthProps","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","prevMonthIcon","className","width","height","nextMonthIcon","isMonthDisabled","isYearDisabled","monthDropdownTestId","yearDropdownTestId","prevMonthButtonTestId","nextMonthButtonTestId","restProps","locale","onMonthsChange","useCallback","_","newValue","Number","onYearChange","currentYear","getFullYear","currentMonth","getMonth","months","useMemo","map","value","label","span","disabled","years","year","formatter","Intl","DateTimeFormat","month","prevMonthClassName","restPrevMonthProps","nextMonthClassName","restNextMonthProps","Math","min","max","baseClassName","sizeX","onClick","data-testid","format","weight","sizeY","div","options","dropdownOffsetDistance","dropdownAutoWidth","icon","forceDropdownPortal","selectType","aria-label"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/CalendarHeader/CalendarHeader.tsx"],"sourcesContent":["'use client';\n\nimport { type ChangeEvent } from 'react';\nimport * as React from 'react';\nimport {\n Icon12Dropdown,\n Icon20ChevronLeftOutline,\n Icon20ChevronRightOutline,\n} from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { addMonths, setMonth, setYear, subMonths } from 'date-fns';\nimport { useCalendarDirectionContext } from '../../context/CalendarDirectionContext';\nimport { DEFAULT_MAX_YEAR, DEFAULT_MIN_YEAR, getMonths, getYears } from '../../lib/calendar';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { CustomSelect, type SelectProps } from '../CustomSelect/CustomSelect';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Paragraph } from '../Typography/Paragraph/Paragraph';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CalendarHeader.module.css';\n\ntype ArrowMonthProps = Omit<React.AllHTMLAttributes<HTMLElement>, 'onClick' | 'aria-label'>;\n\nexport type CalendarHeaderTestsProps = {\n /**\n * Передает атрибут `data-testid` для дропдауна выбора месяца в заголовке календаря\n */\n monthDropdownTestId?: string | ((monthIndex: number) => string);\n /**\n * Передает атрибут `data-testid` для дропдауна выбора года в заголовке календаря\n */\n yearDropdownTestId?: string | ((year: number) => string);\n /**\n * Передает атрибут `data-testid` для кнопки перехода к следующему месяцу в заголовке календаря\n */\n nextMonthButtonTestId?: string;\n /**\n * Передает атрибут `data-testid` для кнопки перехода к предыдущему месяцу в заголовке календаря\n */\n prevMonthButtonTestId?: string;\n};\n\nexport interface CalendarHeaderProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n CalendarHeaderTestsProps {\n viewDate: Date;\n /**\n * Скрывает иконку для переключения на предыдущий месяц\n */\n prevMonthHidden?: boolean;\n /**\n * Скрывает иконку для переключения на следующий месяц\n */\n nextMonthHidden?: boolean;\n disablePickers?: boolean;\n prevMonthLabel?: string;\n nextMonthLabel?: string;\n changeMonthLabel?: string;\n changeYearLabel?: string;\n prevMonthIcon?: React.ReactNode;\n nextMonthIcon?: React.ReactNode;\n prevMonthProps?: ArrowMonthProps;\n nextMonthProps?: ArrowMonthProps;\n isMonthDisabled?: (monthNumber: number, year?: number) => boolean;\n isYearDisabled?: (yearNumber: number) => boolean;\n onChange: (viewDate: Date) => void;\n /**\n * Нажатие на кнопку переключения на следующий месяц.\n */\n onNextMonth?: () => void;\n /**\n * Нажатие на кнопку переключения на предыдущий месяц.\n */\n onPrevMonth?: () => void;\n}\n\nexport const CalendarHeader = ({\n viewDate,\n onChange,\n prevMonthHidden: prevMonthHiddenProp = false,\n nextMonthHidden: nextMonthHiddenProp = false,\n disablePickers = false,\n onNextMonth,\n onPrevMonth,\n prevMonthProps = {},\n nextMonthProps = {},\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n prevMonthIcon = (\n <Icon20ChevronLeftOutline className={styles.navIconAccent} width={30} height={30} />\n ),\n nextMonthIcon = (\n <Icon20ChevronRightOutline className={styles.navIconAccent} width={30} height={30} />\n ),\n isMonthDisabled,\n isYearDisabled,\n monthDropdownTestId,\n yearDropdownTestId,\n prevMonthButtonTestId,\n nextMonthButtonTestId,\n ...restProps\n}: CalendarHeaderProps): React.ReactNode => {\n const { locale } = useConfigProvider();\n const { direction } = useCalendarDirectionContext();\n\n const onMonthsChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange(setMonth(viewDate, Number(newValue))),\n [onChange, viewDate],\n );\n const onYearChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange(setYear(viewDate, Number(newValue))),\n [onChange, viewDate],\n );\n\n const currentYear = viewDate.getFullYear();\n const currentMonth = viewDate.getMonth();\n\n const months = React.useMemo(\n () =>\n getMonths(locale).map(({ value, label }) => ({\n value,\n label: <span className={styles.month}>{label}</span>,\n disabled: isMonthDisabled && isMonthDisabled(value),\n })),\n [locale, isMonthDisabled],\n );\n\n const years = React.useMemo(\n () =>\n getYears(currentYear, 100).map((year) => ({\n ...year,\n disabled: isYearDisabled && isYearDisabled(year.value),\n })),\n [currentYear, isYearDisabled],\n );\n\n const formatter = new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: 'long',\n });\n\n const { className: prevMonthClassName, ...restPrevMonthProps } = prevMonthProps;\n const { className: nextMonthClassName, ...restNextMonthProps } = nextMonthProps;\n\n let nextMonthHidden =\n nextMonthHiddenProp || (currentMonth === 11 && currentYear === DEFAULT_MAX_YEAR);\n if (isMonthDisabled && !nextMonthHidden) {\n nextMonthHidden = isMonthDisabled(\n currentMonth === 11 ? 0 : currentMonth + 1,\n currentMonth === 11 ? Math.min(currentYear + 1, DEFAULT_MAX_YEAR) : currentYear,\n );\n }\n\n let prevMonthHidden =\n prevMonthHiddenProp || (currentMonth === 0 && currentYear === DEFAULT_MIN_YEAR);\n if (isMonthDisabled && !prevMonthHidden) {\n prevMonthHidden = isMonthDisabled(\n currentMonth === 0 ? 11 : currentMonth - 1,\n currentMonth === 0 ? Math.max(currentYear - 1, DEFAULT_MIN_YEAR) : currentYear,\n );\n }\n\n return (\n <RootComponent baseClassName={styles.host} {...restProps}>\n {!prevMonthHidden && (\n <AdaptivityProvider sizeX=\"regular\">\n <Tappable\n baseClassName={classNames(styles.navIcon, styles.navIconPrev, prevMonthClassName)}\n onClick={onPrevMonth}\n data-testid={prevMonthButtonTestId}\n {...restPrevMonthProps}\n >\n <VisuallyHidden>\n {prevMonthLabel}, {formatter.format(subMonths(viewDate, 1))}\n </VisuallyHidden>\n {direction === 'ltr' ? prevMonthIcon : nextMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n {disablePickers ? (\n <Paragraph\n className={classNames(styles.pickers, 'vkuiInternalCalendarHeader__pickers')}\n weight=\"2\"\n >\n <span className={styles.month}>\n {new Intl.DateTimeFormat(locale, {\n month: 'long',\n }).format(viewDate)}\n </span>\n \n {new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n }).format(viewDate)}\n </Paragraph>\n ) : (\n <AdaptivityProvider sizeY=\"compact\">\n <div className={classNames(styles.pickers, 'vkuiInternalCalendarHeader__pickers')}>\n <CustomSelect\n className={classNames(styles.picker, 'vkuiInternalCalendarHeader__picker')}\n value={currentMonth}\n options={months}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onMonthsChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n aria-label={changeMonthLabel}\n data-testid={\n typeof monthDropdownTestId === 'string'\n ? monthDropdownTestId\n : monthDropdownTestId?.(currentMonth)\n }\n />\n <CustomSelect\n className={classNames(styles.picker, 'vkuiInternalCalendarHeader__picker')}\n value={currentYear}\n options={years}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onYearChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n aria-label={changeYearLabel}\n data-testid={yearDropdownTestId}\n />\n </div>\n </AdaptivityProvider>\n )}\n {!nextMonthHidden && (\n <AdaptivityProvider sizeX=\"regular\">\n <Tappable\n baseClassName={classNames(styles.navIcon, styles.navIconNext, nextMonthClassName)}\n onClick={onNextMonth}\n data-testid={nextMonthButtonTestId}\n {...restNextMonthProps}\n >\n <VisuallyHidden>\n {nextMonthLabel}, {formatter.format(addMonths(viewDate, 1))}\n </VisuallyHidden>\n {direction === 'ltr' ? nextMonthIcon : prevMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","Icon12Dropdown","Icon20ChevronLeftOutline","Icon20ChevronRightOutline","classNames","addMonths","setMonth","setYear","subMonths","useCalendarDirectionContext","DEFAULT_MAX_YEAR","DEFAULT_MIN_YEAR","getMonths","getYears","AdaptivityProvider","useConfigProvider","CustomSelect","RootComponent","Tappable","Paragraph","VisuallyHidden","CalendarHeader","viewDate","onChange","prevMonthHidden","prevMonthHiddenProp","nextMonthHidden","nextMonthHiddenProp","disablePickers","onNextMonth","onPrevMonth","prevMonthProps","nextMonthProps","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","prevMonthIcon","className","width","height","nextMonthIcon","isMonthDisabled","isYearDisabled","monthDropdownTestId","yearDropdownTestId","prevMonthButtonTestId","nextMonthButtonTestId","restProps","locale","direction","onMonthsChange","useCallback","_","newValue","Number","onYearChange","currentYear","getFullYear","currentMonth","getMonth","months","useMemo","map","value","label","span","disabled","years","year","formatter","Intl","DateTimeFormat","month","prevMonthClassName","restPrevMonthProps","nextMonthClassName","restNextMonthProps","Math","min","max","baseClassName","sizeX","onClick","data-testid","format","weight","sizeY","div","options","dropdownOffsetDistance","dropdownAutoWidth","icon","forceDropdownPortal","selectType","aria-label"],"mappings":"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"}
|
|
@@ -4,7 +4,13 @@ import { type CalendarDaysProps, type CalendarDaysTestsProps } from '../Calendar
|
|
|
4
4
|
import { type CalendarHeaderProps, type CalendarHeaderTestsProps } from '../CalendarHeader/CalendarHeader';
|
|
5
5
|
export type DateRangeType = [Date | null, Date | null];
|
|
6
6
|
export type CalendarRangeTestsProps = CalendarDaysTestsProps & {
|
|
7
|
+
/**
|
|
8
|
+
* Передает атрибуты `data-testid` для интерактивных элементов в заголовке календаря в левой части
|
|
9
|
+
*/
|
|
7
10
|
leftPartHeaderTestsData?: CalendarHeaderTestsProps;
|
|
11
|
+
/**
|
|
12
|
+
* Передает атрибуты `data-testid` для интерактивных элементов в заголовке календаря в правой части
|
|
13
|
+
*/
|
|
8
14
|
rightPartHeaderTestsData?: CalendarHeaderTestsProps;
|
|
9
15
|
};
|
|
10
16
|
export interface CalendarRangeProps extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>, Pick<CalendarHeaderProps, 'prevMonthLabel' | 'nextMonthLabel' | 'changeMonthLabel' | 'changeYearLabel' | 'prevMonthIcon' | 'nextMonthIcon'>, Pick<CalendarDaysProps, 'listenDayChangesForUpdate' | 'renderDayContent'>, CalendarRangeTestsProps {
|
|
@@ -21,5 +27,5 @@ export interface CalendarRangeProps extends Omit<HTMLAttributesWithRootRef<HTMLD
|
|
|
21
27
|
/**
|
|
22
28
|
* @see https://vkcom.github.io/VKUI/#/CalendarRange
|
|
23
29
|
*/
|
|
24
|
-
export declare const CalendarRange: ({ value, onChange, disablePast, disableFuture, shouldDisableDate, onClose, weekStartsOn, disablePickers, prevMonthLabel, nextMonthLabel, changeMonthLabel, changeYearLabel, changeDayLabel, prevMonthIcon, nextMonthIcon, listenDayChangesForUpdate, renderDayContent, dayTestId, leftPartHeaderTestsData, rightPartHeaderTestsData, ...props }: CalendarRangeProps) => React.ReactNode;
|
|
30
|
+
export declare const CalendarRange: ({ value, onChange, disablePast, disableFuture, shouldDisableDate, onClose, weekStartsOn, disablePickers, prevMonthLabel, nextMonthLabel, changeMonthLabel, changeYearLabel, changeDayLabel, prevMonthIcon, nextMonthIcon, listenDayChangesForUpdate, renderDayContent, dayTestId, leftPartHeaderTestsData, rightPartHeaderTestsData, getRootRef, ...props }: CalendarRangeProps) => React.ReactNode;
|
|
25
31
|
//# sourceMappingURL=CalendarRange.d.ts.map
|