@vkontakte/vkui 6.4.0 → 6.5.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/cjs/components/ActionSheet/ActionSheet.js +2 -1
- package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetContext.d.ts +1 -0
- package/dist/cjs/components/ActionSheet/ActionSheetContext.d.ts.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +38 -12
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cjs/components/ActionSheetItem/helpers.d.ts +10 -0
- package/dist/cjs/components/ActionSheetItem/helpers.d.ts.map +1 -0
- package/dist/cjs/components/ActionSheetItem/helpers.js +22 -0
- package/dist/cjs/components/ActionSheetItem/helpers.js.map +1 -0
- package/dist/cjs/components/Alert/Alert.js +1 -1
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/Avatar/Avatar.d.ts +0 -1
- package/dist/cjs/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/cjs/components/Avatar/Avatar.js +3 -11
- package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/Avatar/AvatarBadge/icons.d.ts +8 -3
- package/dist/cjs/components/Avatar/AvatarBadge/icons.d.ts.map +1 -1
- package/dist/cjs/components/Avatar/AvatarBadge/icons.js +2 -2
- package/dist/cjs/components/Avatar/AvatarBadge/icons.js.map +1 -1
- package/dist/cjs/components/BaseGallery/BaseGallery.d.ts.map +1 -1
- package/dist/cjs/components/BaseGallery/BaseGallery.js +0 -2
- package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/cjs/components/Calendar/Calendar.js +3 -3
- package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
- package/dist/cjs/components/CalendarDays/CalendarDays.js +3 -3
- package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cjs/components/CalendarHeader/CalendarHeader.js +5 -5
- package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.d.ts.map +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.js +17 -15
- package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cjs/components/CalendarTime/CalendarTime.js +5 -5
- package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/cjs/components/Cell/Cell.d.ts.map +1 -1
- package/dist/cjs/components/Cell/Cell.js +2 -2
- package/dist/cjs/components/Cell/Cell.js.map +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.d.ts +7 -5
- package/dist/cjs/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.js +21 -143
- package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cjs/components/Checkbox/CheckboxInput/CheckboxInput.d.ts +8 -0
- package/dist/cjs/components/Checkbox/CheckboxInput/CheckboxInput.d.ts.map +1 -0
- package/dist/cjs/components/Checkbox/CheckboxInput/CheckboxInput.js +134 -0
- package/dist/cjs/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -0
- package/dist/cjs/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts +3 -0
- package/dist/cjs/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts.map +1 -0
- package/dist/cjs/components/Checkbox/CheckboxSimple/CheckboxSimple.js +52 -0
- package/dist/cjs/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -0
- package/dist/cjs/components/ChipsInput/ChipsInput.d.ts.map +1 -1
- package/dist/cjs/components/ChipsInput/ChipsInput.js +1 -2
- package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +1 -1
- package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/cjs/components/ChipsInputBase/helpers.d.ts.map +1 -1
- package/dist/cjs/components/ChipsInputBase/helpers.js +0 -3
- package/dist/cjs/components/ChipsInputBase/helpers.js.map +1 -1
- package/dist/cjs/components/ChipsInputBase/types.d.ts +1 -1
- package/dist/cjs/components/ChipsInputBase/types.d.ts.map +1 -1
- package/dist/cjs/components/ChipsInputBase/types.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +1 -7
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/Clickable/useState.d.ts +0 -5
- package/dist/cjs/components/Clickable/useState.d.ts.map +1 -1
- package/dist/cjs/components/Clickable/useState.js +3 -7
- package/dist/cjs/components/Clickable/useState.js.map +1 -1
- package/dist/cjs/components/CustomScrollView/CustomScrollView.d.ts +10 -1
- package/dist/cjs/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
- package/dist/cjs/components/CustomScrollView/CustomScrollView.js +41 -132
- package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cjs/components/CustomScrollView/ScrollX.d.ts +3 -0
- package/dist/cjs/components/CustomScrollView/ScrollX.d.ts.map +1 -0
- package/dist/cjs/components/CustomScrollView/ScrollX.js +42 -0
- package/dist/cjs/components/CustomScrollView/ScrollX.js.map +1 -0
- package/dist/cjs/components/CustomScrollView/ScrollY.d.ts +3 -0
- package/dist/cjs/components/CustomScrollView/ScrollY.d.ts.map +1 -0
- package/dist/cjs/components/CustomScrollView/ScrollY.js +42 -0
- package/dist/cjs/components/CustomScrollView/ScrollY.js.map +1 -0
- package/dist/cjs/components/CustomScrollView/types.d.ts +21 -0
- package/dist/cjs/components/CustomScrollView/types.d.ts.map +1 -0
- package/dist/cjs/components/CustomScrollView/types.js +8 -0
- package/dist/cjs/components/CustomScrollView/types.js.map +1 -0
- package/dist/cjs/components/CustomScrollView/useCustomScrollViewResize.d.ts +8 -0
- package/dist/cjs/components/CustomScrollView/useCustomScrollViewResize.d.ts.map +1 -0
- package/dist/cjs/components/CustomScrollView/useCustomScrollViewResize.js +32 -0
- package/dist/cjs/components/CustomScrollView/useCustomScrollViewResize.js.map +1 -0
- package/dist/cjs/components/CustomScrollView/useDetectScrollDirection.d.ts +6 -0
- package/dist/cjs/components/CustomScrollView/useDetectScrollDirection.d.ts.map +1 -0
- package/dist/cjs/components/CustomScrollView/useDetectScrollDirection.js +29 -0
- package/dist/cjs/components/CustomScrollView/useDetectScrollDirection.js.map +1 -0
- package/dist/cjs/components/CustomScrollView/useDragAndDrop.d.ts +5 -0
- package/dist/cjs/components/CustomScrollView/useDragAndDrop.d.ts.map +1 -0
- package/dist/cjs/components/CustomScrollView/useDragAndDrop.js +57 -0
- package/dist/cjs/components/CustomScrollView/useDragAndDrop.js.map +1 -0
- package/dist/cjs/components/CustomScrollView/useHorizontalScrollController.d.ts +4 -0
- package/dist/cjs/components/CustomScrollView/useHorizontalScrollController.d.ts.map +1 -0
- package/dist/cjs/components/CustomScrollView/useHorizontalScrollController.js +102 -0
- package/dist/cjs/components/CustomScrollView/useHorizontalScrollController.js.map +1 -0
- package/dist/cjs/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
- package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js +5 -0
- package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
- package/dist/cjs/components/CustomScrollView/useVerticalScrollController.d.ts +4 -0
- package/dist/cjs/components/CustomScrollView/useVerticalScrollController.d.ts.map +1 -0
- package/dist/cjs/components/CustomScrollView/useVerticalScrollController.js +102 -0
- package/dist/cjs/components/CustomScrollView/useVerticalScrollController.js.map +1 -0
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +3 -4
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.js +2 -2
- package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js +4 -3
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.d.ts +2 -2
- package/dist/cjs/components/FixedLayout/FixedLayout.d.ts.map +1 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.js +1 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cjs/components/Flex/FlexItem/FlexItem.d.ts +3 -3
- package/dist/cjs/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
- package/dist/cjs/components/Flex/FlexItem/FlexItem.js.map +1 -1
- package/dist/cjs/components/FocusTrap/FocusTrap.js +1 -1
- package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/cjs/components/GridAvatar/GridAvatar.d.ts +0 -1
- package/dist/cjs/components/GridAvatar/GridAvatar.d.ts.map +1 -1
- package/dist/cjs/components/GridAvatar/GridAvatar.js +0 -3
- package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/cjs/components/Group/Group.d.ts +1 -1
- package/dist/cjs/components/Group/Group.d.ts.map +1 -1
- package/dist/cjs/components/Group/Group.js +17 -12
- package/dist/cjs/components/Group/Group.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +7 -10
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cjs/components/Image/Image.d.ts +0 -1
- package/dist/cjs/components/Image/Image.d.ts.map +1 -1
- package/dist/cjs/components/Image/Image.js +3 -11
- package/dist/cjs/components/Image/Image.js.map +1 -1
- package/dist/cjs/components/ImageBase/validators.js +1 -1
- package/dist/cjs/components/ImageBase/validators.js.map +1 -1
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +17 -15
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.d.ts.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js +4 -28
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts +2 -2
- package/dist/cjs/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
- package/dist/cjs/components/OnboardingTooltip/OnboardingTooltipContainer.js +4 -3
- package/dist/cjs/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js +1 -3
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cjs/components/Radio/Radio.d.ts +5 -1
- package/dist/cjs/components/Radio/Radio.d.ts.map +1 -1
- package/dist/cjs/components/Radio/Radio.js +12 -75
- package/dist/cjs/components/Radio/Radio.js.map +1 -1
- package/dist/cjs/components/Radio/RadioInput/RadioInput.d.ts +6 -0
- package/dist/cjs/components/Radio/RadioInput/RadioInput.d.ts.map +1 -0
- package/dist/cjs/components/Radio/RadioInput/RadioInput.js +104 -0
- package/dist/cjs/components/Radio/RadioInput/RadioInput.js.map +1 -0
- package/dist/cjs/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js +1 -2
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cjs/components/SelectionControl/SelectionControl.d.ts +14 -0
- package/dist/cjs/components/SelectionControl/SelectionControl.d.ts.map +1 -0
- package/dist/cjs/components/SelectionControl/SelectionControl.js +36 -0
- package/dist/cjs/components/SelectionControl/SelectionControl.js.map +1 -0
- package/dist/cjs/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts +7 -0
- package/dist/cjs/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -0
- package/dist/cjs/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +56 -0
- package/dist/cjs/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -0
- package/dist/cjs/components/Textarea/Textarea.d.ts +1 -1
- package/dist/cjs/components/Textarea/Textarea.d.ts.map +1 -1
- package/dist/cjs/components/Textarea/Textarea.js +13 -3
- package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
- package/dist/cjs/components/Textarea/useResizeTextarea.d.ts +1 -1
- package/dist/cjs/components/Textarea/useResizeTextarea.d.ts.map +1 -1
- package/dist/cjs/components/Textarea/useResizeTextarea.js +2 -2
- package/dist/cjs/components/Textarea/useResizeTextarea.js.map +1 -1
- package/dist/cjs/components/View/View.d.ts.map +1 -1
- package/dist/cjs/components/View/View.js +2 -4
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/components/View/ViewInfinite.d.ts.map +1 -1
- package/dist/cjs/components/View/ViewInfinite.js +1 -3
- package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
- package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
- package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
- package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js +4 -3
- package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/cjs/hooks/useCalendar.d.ts.map +1 -1
- package/dist/cjs/hooks/useCalendar.js +6 -6
- package/dist/cjs/hooks/useCalendar.js.map +1 -1
- package/dist/cjs/hooks/useTodayDate.js +3 -3
- package/dist/cjs/hooks/useTodayDate.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/calendar.d.ts.map +1 -1
- package/dist/cjs/lib/calendar.js +27 -16
- package/dist/cjs/lib/calendar.js.map +1 -1
- package/dist/cjs/lib/date.d.ts +1 -28
- package/dist/cjs/lib/date.d.ts.map +1 -1
- package/dist/cjs/lib/date.js +8 -180
- package/dist/cjs/lib/date.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js +2 -1
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetContext.d.ts +1 -0
- package/dist/components/ActionSheet/ActionSheetContext.d.ts.map +1 -1
- package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.js +38 -12
- package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/components/ActionSheetItem/helpers.d.ts +10 -0
- package/dist/components/ActionSheetItem/helpers.d.ts.map +1 -0
- package/dist/components/ActionSheetItem/helpers.js +12 -0
- package/dist/components/ActionSheetItem/helpers.js.map +1 -0
- package/dist/components/Alert/Alert.js +1 -1
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/Avatar/Avatar.d.ts +0 -1
- package/dist/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/components/Avatar/Avatar.js +1 -1
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Avatar/AvatarBadge/icons.d.ts +8 -3
- package/dist/components/Avatar/AvatarBadge/icons.d.ts.map +1 -1
- package/dist/components/Avatar/AvatarBadge/icons.js +2 -2
- package/dist/components/Avatar/AvatarBadge/icons.js.map +1 -1
- package/dist/components/BaseGallery/BaseGallery.d.ts.map +1 -1
- package/dist/components/BaseGallery/BaseGallery.js +0 -2
- package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/components/Calendar/Calendar.js +1 -1
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.js +1 -1
- package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.js +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +6 -4
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/CalendarTime/CalendarTime.js +1 -1
- package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/components/Cell/Cell.d.ts.map +1 -1
- package/dist/components/Cell/Cell.js +2 -2
- package/dist/components/Cell/Cell.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +7 -5
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.js +24 -146
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Checkbox/CheckboxInput/CheckboxInput.d.ts +8 -0
- package/dist/components/Checkbox/CheckboxInput/CheckboxInput.d.ts.map +1 -0
- package/dist/components/Checkbox/CheckboxInput/CheckboxInput.js +123 -0
- package/dist/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -0
- package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts +3 -0
- package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts.map +1 -0
- package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.js +42 -0
- package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -0
- package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
- package/dist/components/ChipsInput/ChipsInput.js +1 -2
- package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/components/ChipsInputBase/ChipsInputBase.js +1 -1
- package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/components/ChipsInputBase/helpers.d.ts.map +1 -1
- package/dist/components/ChipsInputBase/helpers.js +0 -3
- package/dist/components/ChipsInputBase/helpers.js.map +1 -1
- package/dist/components/ChipsInputBase/types.d.ts +1 -1
- package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
- package/dist/components/ChipsInputBase/types.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js +1 -7
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/Clickable/useState.d.ts +0 -5
- package/dist/components/Clickable/useState.d.ts.map +1 -1
- package/dist/components/Clickable/useState.js +2 -2
- package/dist/components/Clickable/useState.js.map +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.d.ts +10 -1
- package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.js +44 -133
- package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/components/CustomScrollView/ScrollX.d.ts +3 -0
- package/dist/components/CustomScrollView/ScrollX.d.ts.map +1 -0
- package/dist/components/CustomScrollView/ScrollX.js +31 -0
- package/dist/components/CustomScrollView/ScrollX.js.map +1 -0
- package/dist/components/CustomScrollView/ScrollY.d.ts +3 -0
- package/dist/components/CustomScrollView/ScrollY.d.ts.map +1 -0
- package/dist/components/CustomScrollView/ScrollY.js +31 -0
- package/dist/components/CustomScrollView/ScrollY.js.map +1 -0
- package/dist/components/CustomScrollView/types.d.ts +21 -0
- package/dist/components/CustomScrollView/types.d.ts.map +1 -0
- package/dist/components/CustomScrollView/types.js +3 -0
- package/dist/components/CustomScrollView/types.js.map +1 -0
- package/dist/components/CustomScrollView/useCustomScrollViewResize.d.ts +8 -0
- package/dist/components/CustomScrollView/useCustomScrollViewResize.d.ts.map +1 -0
- package/dist/components/CustomScrollView/useCustomScrollViewResize.js +22 -0
- package/dist/components/CustomScrollView/useCustomScrollViewResize.js.map +1 -0
- package/dist/components/CustomScrollView/useDetectScrollDirection.d.ts +6 -0
- package/dist/components/CustomScrollView/useDetectScrollDirection.d.ts.map +1 -0
- package/dist/components/CustomScrollView/useDetectScrollDirection.js +20 -0
- package/dist/components/CustomScrollView/useDetectScrollDirection.js.map +1 -0
- package/dist/components/CustomScrollView/useDragAndDrop.d.ts +5 -0
- package/dist/components/CustomScrollView/useDragAndDrop.d.ts.map +1 -0
- package/dist/components/CustomScrollView/useDragAndDrop.js +46 -0
- package/dist/components/CustomScrollView/useDragAndDrop.js.map +1 -0
- package/dist/components/CustomScrollView/useHorizontalScrollController.d.ts +4 -0
- package/dist/components/CustomScrollView/useHorizontalScrollController.d.ts.map +1 -0
- package/dist/components/CustomScrollView/useHorizontalScrollController.js +91 -0
- package/dist/components/CustomScrollView/useHorizontalScrollController.js.map +1 -0
- package/dist/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
- package/dist/components/CustomScrollView/useTrackerVisibility.js +5 -0
- package/dist/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
- package/dist/components/CustomScrollView/useVerticalScrollController.d.ts +4 -0
- package/dist/components/CustomScrollView/useVerticalScrollController.d.ts.map +1 -0
- package/dist/components/CustomScrollView/useVerticalScrollController.js +91 -0
- package/dist/components/CustomScrollView/useVerticalScrollController.js.map +1 -0
- package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +3 -4
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/DateInput/DateInput.js +2 -2
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +4 -3
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.d.ts +2 -2
- package/dist/components/FixedLayout/FixedLayout.d.ts.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.js +1 -1
- package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.d.ts +3 -3
- package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.js.map +1 -1
- package/dist/components/FocusTrap/FocusTrap.js +1 -1
- package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/components/GridAvatar/GridAvatar.d.ts +0 -1
- package/dist/components/GridAvatar/GridAvatar.d.ts.map +1 -1
- package/dist/components/GridAvatar/GridAvatar.js +1 -1
- package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/components/Group/Group.d.ts +1 -1
- package/dist/components/Group/Group.d.ts.map +1 -1
- package/dist/components/Group/Group.js +17 -12
- package/dist/components/Group/Group.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js +7 -10
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/Image/Image.d.ts +0 -1
- package/dist/components/Image/Image.d.ts.map +1 -1
- package/dist/components/Image/Image.js +1 -1
- package/dist/components/Image/Image.js.map +1 -1
- package/dist/components/ImageBase/validators.js +1 -1
- package/dist/components/ImageBase/validators.js.map +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.js +18 -16
- package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +4 -28
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts +2 -2
- package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js +4 -3
- package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.js +1 -3
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/Radio/Radio.d.ts +5 -1
- package/dist/components/Radio/Radio.d.ts.map +1 -1
- package/dist/components/Radio/Radio.js +13 -76
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/Radio/RadioInput/RadioInput.d.ts +6 -0
- package/dist/components/Radio/RadioInput/RadioInput.d.ts.map +1 -0
- package/dist/components/Radio/RadioInput/RadioInput.js +93 -0
- package/dist/components/Radio/RadioInput/RadioInput.js.map +1 -0
- package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js +1 -2
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/components/SelectionControl/SelectionControl.d.ts +14 -0
- package/dist/components/SelectionControl/SelectionControl.d.ts.map +1 -0
- package/dist/components/SelectionControl/SelectionControl.js +27 -0
- package/dist/components/SelectionControl/SelectionControl.js.map +1 -0
- package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts +7 -0
- package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -0
- package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +46 -0
- package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -0
- package/dist/components/Textarea/Textarea.d.ts +1 -1
- package/dist/components/Textarea/Textarea.d.ts.map +1 -1
- package/dist/components/Textarea/Textarea.js +13 -3
- 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 +2 -2
- package/dist/components/Textarea/useResizeTextarea.js.map +1 -1
- package/dist/components/View/View.d.ts.map +1 -1
- package/dist/components/View/View.js +2 -4
- 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 +1 -3
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.js +4 -3
- package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/components.css +2 -2
- package/dist/components.css.map +1 -1
- package/dist/components.js.tmp +1584 -1013
- package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetContext.d.ts +1 -0
- package/dist/cssm/components/ActionSheet/ActionSheetContext.d.ts.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +38 -13
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/helpers.d.ts +10 -0
- package/dist/cssm/components/ActionSheetItem/helpers.d.ts.map +1 -0
- package/dist/cssm/components/ActionSheetItem/helpers.js +12 -0
- package/dist/cssm/components/ActionSheetItem/helpers.js.map +1 -0
- package/dist/cssm/components/Alert/Alert.js +1 -1
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.d.ts +0 -1
- package/dist/cssm/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.js +1 -1
- package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/icons.d.ts +8 -3
- package/dist/cssm/components/Avatar/AvatarBadge/icons.d.ts.map +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/icons.js +2 -2
- package/dist/cssm/components/Avatar/AvatarBadge/icons.js.map +1 -1
- package/dist/cssm/components/BaseGallery/BaseGallery.d.ts.map +1 -1
- package/dist/cssm/components/BaseGallery/BaseGallery.js +0 -2
- package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/cssm/components/Calendar/Calendar.js +1 -1
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.d.ts.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js +6 -4
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.js +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.d.ts.map +1 -1
- package/dist/cssm/components/Cell/Cell.js +2 -2
- package/dist/cssm/components/Cell/Cell.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.module.css +12 -0
- package/dist/cssm/components/CellButton/CellButton.module.css +2 -2
- package/dist/cssm/components/Checkbox/Checkbox.d.ts +7 -5
- package/dist/cssm/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.js +28 -141
- package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.d.ts +8 -0
- package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.d.ts.map +1 -0
- package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.js +113 -0
- package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -0
- package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.module.css +30 -0
- package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts +3 -0
- package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts.map +1 -0
- package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.js +30 -0
- package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -0
- package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +28 -0
- package/dist/cssm/components/ChipsInput/ChipsInput.d.ts.map +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -2
- package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +1 -1
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/helpers.d.ts.map +1 -1
- package/dist/cssm/components/ChipsInputBase/helpers.js +0 -3
- package/dist/cssm/components/ChipsInputBase/helpers.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/types.d.ts +1 -1
- package/dist/cssm/components/ChipsInputBase/types.d.ts.map +1 -1
- package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +1 -7
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/Clickable/useState.d.ts +0 -5
- package/dist/cssm/components/Clickable/useState.d.ts.map +1 -1
- package/dist/cssm/components/Clickable/useState.js +2 -2
- package/dist/cssm/components/Clickable/useState.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts +10 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js +39 -131
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +52 -13
- package/dist/cssm/components/CustomScrollView/ScrollX.d.ts +3 -0
- package/dist/cssm/components/CustomScrollView/ScrollX.d.ts.map +1 -0
- package/dist/cssm/components/CustomScrollView/ScrollX.js +32 -0
- package/dist/cssm/components/CustomScrollView/ScrollX.js.map +1 -0
- package/dist/cssm/components/CustomScrollView/ScrollY.d.ts +3 -0
- package/dist/cssm/components/CustomScrollView/ScrollY.d.ts.map +1 -0
- package/dist/cssm/components/CustomScrollView/ScrollY.js +32 -0
- package/dist/cssm/components/CustomScrollView/ScrollY.js.map +1 -0
- package/dist/cssm/components/CustomScrollView/types.d.ts +21 -0
- package/dist/cssm/components/CustomScrollView/types.d.ts.map +1 -0
- package/dist/cssm/components/CustomScrollView/types.js +3 -0
- package/dist/cssm/components/CustomScrollView/types.js.map +1 -0
- package/dist/cssm/components/CustomScrollView/useCustomScrollViewResize.d.ts +8 -0
- package/dist/cssm/components/CustomScrollView/useCustomScrollViewResize.d.ts.map +1 -0
- package/dist/cssm/components/CustomScrollView/useCustomScrollViewResize.js +22 -0
- package/dist/cssm/components/CustomScrollView/useCustomScrollViewResize.js.map +1 -0
- package/dist/cssm/components/CustomScrollView/useDetectScrollDirection.d.ts +6 -0
- package/dist/cssm/components/CustomScrollView/useDetectScrollDirection.d.ts.map +1 -0
- package/dist/cssm/components/CustomScrollView/useDetectScrollDirection.js +20 -0
- package/dist/cssm/components/CustomScrollView/useDetectScrollDirection.js.map +1 -0
- package/dist/cssm/components/CustomScrollView/useDragAndDrop.d.ts +5 -0
- package/dist/cssm/components/CustomScrollView/useDragAndDrop.d.ts.map +1 -0
- package/dist/cssm/components/CustomScrollView/useDragAndDrop.js +46 -0
- package/dist/cssm/components/CustomScrollView/useDragAndDrop.js.map +1 -0
- package/dist/cssm/components/CustomScrollView/useHorizontalScrollController.d.ts +4 -0
- package/dist/cssm/components/CustomScrollView/useHorizontalScrollController.d.ts.map +1 -0
- package/dist/cssm/components/CustomScrollView/useHorizontalScrollController.js +91 -0
- package/dist/cssm/components/CustomScrollView/useHorizontalScrollController.js.map +1 -0
- package/dist/cssm/components/CustomScrollView/useTrackerVisibility.d.ts.map +1 -1
- package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js +5 -0
- package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/useVerticalScrollController.d.ts +4 -0
- package/dist/cssm/components/CustomScrollView/useVerticalScrollController.d.ts.map +1 -0
- package/dist/cssm/components/CustomScrollView/useVerticalScrollController.js +91 -0
- package/dist/cssm/components/CustomScrollView/useVerticalScrollController.js.map +1 -0
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +3 -4
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.js +2 -2
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts.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/FixedLayout/FixedLayout.d.ts +2 -2
- package/dist/cssm/components/FixedLayout/FixedLayout.d.ts.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cssm/components/Flex/FlexItem/FlexItem.d.ts +3 -3
- package/dist/cssm/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
- package/dist/cssm/components/Flex/FlexItem/FlexItem.js.map +1 -1
- package/dist/cssm/components/FocusTrap/FocusTrap.js +1 -1
- package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.module.css +0 -3
- package/dist/cssm/components/GridAvatar/GridAvatar.d.ts +0 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.d.ts.map +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.js +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/cssm/components/Group/Group.d.ts +1 -1
- package/dist/cssm/components/Group/Group.d.ts.map +1 -1
- package/dist/cssm/components/Group/Group.js +17 -12
- package/dist/cssm/components/Group/Group.js.map +1 -1
- package/dist/cssm/components/Group/Group.module.css +166 -139
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +7 -10
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/Image/Image.d.ts +0 -1
- package/dist/cssm/components/Image/Image.d.ts.map +1 -1
- package/dist/cssm/components/Image/Image.js +1 -1
- package/dist/cssm/components/Image/Image.js.map +1 -1
- package/dist/cssm/components/ImageBase/validators.js +1 -1
- package/dist/cssm/components/ImageBase/validators.js.map +1 -1
- package/dist/cssm/components/List/List.module.css +1 -0
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +18 -16
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.d.ts.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js +4 -28
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts +2 -2
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js +2 -2
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js +1 -3
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/Radio/Radio.d.ts +5 -1
- package/dist/cssm/components/Radio/Radio.d.ts.map +1 -1
- package/dist/cssm/components/Radio/Radio.js +13 -76
- package/dist/cssm/components/Radio/Radio.js.map +1 -1
- package/dist/cssm/components/Radio/Radio.module.css +0 -145
- package/dist/cssm/components/Radio/RadioInput/RadioInput.d.ts +6 -0
- package/dist/cssm/components/Radio/RadioInput/RadioInput.d.ts.map +1 -0
- package/dist/cssm/components/Radio/RadioInput/RadioInput.js +86 -0
- package/dist/cssm/components/Radio/RadioInput/RadioInput.js.map +1 -0
- package/dist/cssm/components/Radio/RadioInput/RadioInput.module.css +20 -0
- package/dist/cssm/components/Search/Search.module.css +3 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js +1 -2
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cssm/components/SelectionControl/SelectionControl.d.ts +14 -0
- package/dist/cssm/components/SelectionControl/SelectionControl.d.ts.map +1 -0
- package/dist/cssm/components/SelectionControl/SelectionControl.js +28 -0
- package/dist/cssm/components/SelectionControl/SelectionControl.js.map +1 -0
- package/dist/cssm/components/SelectionControl/SelectionControl.module.css +35 -0
- package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts +7 -0
- package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -0
- package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +39 -0
- package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -0
- package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +48 -0
- package/dist/cssm/components/Textarea/Textarea.d.ts +1 -1
- package/dist/cssm/components/Textarea/Textarea.d.ts.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.js +11 -2
- package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.module.css +3 -3
- package/dist/cssm/components/Textarea/useResizeTextarea.d.ts +1 -1
- package/dist/cssm/components/Textarea/useResizeTextarea.d.ts.map +1 -1
- package/dist/cssm/components/Textarea/useResizeTextarea.js +2 -2
- package/dist/cssm/components/Textarea/useResizeTextarea.js.map +1 -1
- package/dist/cssm/components/View/View.d.ts.map +1 -1
- package/dist/cssm/components/View/View.js +2 -4
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/ViewInfinite.d.ts.map +1 -1
- package/dist/cssm/components/View/ViewInfinite.js +1 -3
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +2 -2
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/cssm/components/WriteBar/WriteBar.module.css +2 -0
- package/dist/cssm/hooks/useCalendar.d.ts.map +1 -1
- package/dist/cssm/hooks/useCalendar.js +1 -1
- package/dist/cssm/hooks/useCalendar.js.map +1 -1
- package/dist/cssm/hooks/useTodayDate.js +2 -2
- package/dist/cssm/hooks/useTodayDate.js.map +1 -1
- package/dist/cssm/index.d.ts +3 -0
- package/dist/cssm/index.d.ts.map +1 -1
- package/dist/cssm/index.js +2 -0
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/calendar.d.ts.map +1 -1
- package/dist/cssm/lib/calendar.js +15 -4
- package/dist/cssm/lib/calendar.js.map +1 -1
- package/dist/cssm/lib/date.d.ts +1 -28
- package/dist/cssm/lib/date.d.ts.map +1 -1
- package/dist/cssm/lib/date.js +8 -105
- package/dist/cssm/lib/date.js.map +1 -1
- package/dist/cssm/styles/themes.css +63 -19
- package/dist/hooks/useCalendar.d.ts.map +1 -1
- package/dist/hooks/useCalendar.js +1 -1
- package/dist/hooks/useCalendar.js.map +1 -1
- package/dist/hooks/useTodayDate.js +2 -2
- package/dist/hooks/useTodayDate.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/calendar.d.ts.map +1 -1
- package/dist/lib/calendar.js +15 -4
- package/dist/lib/calendar.js.map +1 -1
- package/dist/lib/date.d.ts +1 -28
- package/dist/lib/date.d.ts.map +1 -1
- package/dist/lib/date.js +8 -105
- package/dist/lib/date.js.map +1 -1
- package/dist/vkui.css +3 -3
- package/dist/vkui.css.map +1 -1
- package/dist/vkui.js.tmp +1586 -1012
- package/package.json +3 -4
- package/src/components/ActionSheet/ActionSheet.tsx +1 -1
- package/src/components/ActionSheet/ActionSheetContext.ts +1 -0
- package/src/components/ActionSheetItem/ActionSheetItem.tsx +43 -18
- package/src/components/ActionSheetItem/helpers.ts +11 -0
- package/src/components/Alert/Alert.tsx +1 -1
- package/src/components/Avatar/Avatar.tsx +1 -1
- package/src/components/Avatar/AvatarBadge/icons.tsx +9 -8
- package/src/components/BaseGallery/BaseGallery.tsx +0 -4
- package/src/components/Calendar/Calendar.tsx +1 -1
- package/src/components/CalendarDays/CalendarDays.tsx +1 -1
- package/src/components/CalendarHeader/CalendarHeader.tsx +1 -1
- package/src/components/CalendarRange/CalendarRange.tsx +5 -6
- package/src/components/CalendarTime/CalendarTime.tsx +1 -1
- package/src/components/Cell/Cell.module.css +10 -0
- package/src/components/Cell/Cell.tsx +13 -2
- package/src/components/CellButton/CellButton.module.css +2 -2
- package/src/components/Checkbox/Checkbox.tsx +30 -166
- package/src/components/Checkbox/CheckboxInput/CheckboxInput.module.css +30 -0
- package/src/components/Checkbox/CheckboxInput/CheckboxInput.tsx +174 -0
- package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +28 -0
- package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.tsx +49 -0
- package/src/components/ChipsInput/ChipsInput.tsx +3 -8
- package/src/components/ChipsInputBase/ChipsInputBase.tsx +1 -1
- package/src/components/ChipsInputBase/helpers.ts +0 -3
- package/src/components/ChipsInputBase/types.ts +1 -1
- package/src/components/ChipsSelect/ChipsSelect.tsx +1 -9
- package/src/components/Clickable/useState.tsx +2 -2
- package/src/components/CustomScrollView/CustomScrollView.module.css +49 -11
- package/src/components/CustomScrollView/CustomScrollView.tsx +56 -164
- package/src/components/CustomScrollView/ScrollX.tsx +57 -0
- package/src/components/CustomScrollView/ScrollY.tsx +57 -0
- package/src/components/CustomScrollView/types.ts +23 -0
- package/src/components/CustomScrollView/useCustomScrollViewResize.ts +32 -0
- package/src/components/CustomScrollView/useDetectScrollDirection.ts +21 -0
- package/src/components/CustomScrollView/useDragAndDrop.tsx +55 -0
- package/src/components/CustomScrollView/useHorizontalScrollController.tsx +120 -0
- package/src/components/CustomScrollView/useTrackerVisibility.ts +4 -0
- package/src/components/CustomScrollView/useVerticalScrollController.tsx +122 -0
- package/src/components/CustomSelect/CustomSelect.tsx +3 -5
- package/src/components/DateInput/DateInput.tsx +2 -2
- package/src/components/DateRangeInput/DateRangeInput.tsx +5 -4
- package/src/components/FixedLayout/FixedLayout.tsx +4 -4
- package/src/components/Flex/FlexItem/FlexItem.tsx +3 -3
- package/src/components/FocusTrap/FocusTrap.tsx +1 -1
- package/src/components/FormField/FormField.module.css +0 -3
- package/src/components/GridAvatar/GridAvatar.tsx +1 -1
- package/src/components/Group/Group.module.css +155 -132
- package/src/components/Group/Group.tsx +25 -19
- package/src/components/HorizontalScroll/HorizontalScroll.tsx +7 -12
- package/src/components/Image/Image.tsx +1 -1
- package/src/components/ImageBase/validators.ts +1 -1
- package/src/components/List/List.module.css +1 -0
- package/src/components/ModalPageHeader/ModalPageHeader.tsx +24 -22
- package/src/components/ModalRoot/ModalRoot.tsx +4 -32
- package/src/components/OnboardingTooltip/OnboardingTooltipContainer.tsx +4 -3
- package/src/components/PullToRefresh/PullToRefresh.tsx +0 -2
- package/src/components/Radio/Radio.module.css +0 -131
- package/src/components/Radio/Radio.tsx +14 -53
- package/src/components/Radio/RadioInput/RadioInput.module.css +20 -0
- package/src/components/Radio/RadioInput/RadioInput.tsx +58 -0
- package/src/components/Search/Search.module.css +1 -1
- package/src/components/SegmentedControl/SegmentedControl.tsx +0 -1
- package/src/components/SelectionControl/SelectionControl.module.css +33 -0
- package/src/components/SelectionControl/SelectionControl.tsx +44 -0
- package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +44 -0
- package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.tsx +43 -0
- package/src/components/Textarea/Textarea.module.css +3 -3
- package/src/components/Textarea/Textarea.tsx +9 -1
- package/src/components/Textarea/useResizeTextarea.ts +2 -1
- package/src/components/View/View.tsx +0 -2
- package/src/components/View/ViewInfinite.tsx +0 -2
- package/src/components/VisuallyHidden/VisuallyHidden.tsx +2 -0
- package/src/components/WriteBar/WriteBar.module.css +1 -1
- package/src/hooks/useCalendar.ts +1 -9
- package/src/hooks/useTodayDate.ts +2 -2
- package/src/index.ts +3 -0
- package/src/lib/calendar.ts +8 -7
- package/src/lib/date.ts +9 -140
- package/dist/cjs/lib/styles.d.ts +0 -2
- package/dist/cjs/lib/styles.d.ts.map +0 -1
- package/dist/cjs/lib/styles.js +0 -20
- package/dist/cjs/lib/styles.js.map +0 -1
- package/dist/cssm/components/Checkbox/Checkbox.module.css +0 -183
- package/dist/cssm/lib/styles.d.ts +0 -2
- package/dist/cssm/lib/styles.d.ts.map +0 -1
- package/dist/cssm/lib/styles.js +0 -10
- package/dist/cssm/lib/styles.js.map +0 -1
- package/dist/lib/styles.d.ts +0 -2
- package/dist/lib/styles.d.ts.map +0 -1
- package/dist/lib/styles.js +0 -10
- package/dist/lib/styles.js.map +0 -1
- package/src/components/Checkbox/Checkbox.module.css +0 -170
- package/src/lib/styles.ts +0 -12
|
@@ -1,159 +1,58 @@
|
|
|
1
|
-
|
|
2
|
-
color: var(--vkui--color_text_primary);
|
|
3
|
-
padding-block: 8px;
|
|
4
|
-
}
|
|
1
|
+
/* stylelint-disable selector-max-universal */
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
/*
|
|
4
|
+
* Автоопределение mode:
|
|
5
|
+
*
|
|
6
|
+
* - sizeX="compact" (mobile) -> mode="plain"
|
|
7
|
+
* - sizeX="regular" (desktop) -> mode="card"
|
|
8
|
+
*/
|
|
9
9
|
|
|
10
|
-
.Group
|
|
11
|
-
|
|
12
|
-
margin-block-start: -8px;
|
|
13
|
-
}
|
|
10
|
+
.Group {
|
|
11
|
+
--vkui_internal--Group_padding_size: 0;
|
|
14
12
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
-webkit-margin-before: -8px;
|
|
18
|
-
margin-block-start: -8px;
|
|
19
|
-
}
|
|
13
|
+
color: var(--vkui--color_text_primary);
|
|
14
|
+
padding-block: var(--vkui--spacing_size_m);
|
|
20
15
|
}
|
|
21
16
|
|
|
22
|
-
.Group--
|
|
23
|
-
|
|
24
|
-
margin-block-start: -4px;
|
|
17
|
+
.Group--padding-s {
|
|
18
|
+
--vkui_internal--Group_padding_size: var(--vkui--spacing_size_xs);
|
|
25
19
|
}
|
|
26
20
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
-webkit-margin-before: -4px;
|
|
30
|
-
margin-block-start: -4px;
|
|
31
|
-
}
|
|
21
|
+
.Group--padding-m {
|
|
22
|
+
--vkui_internal--Group_padding_size: var(--vkui--spacing_size_m);
|
|
32
23
|
}
|
|
33
24
|
|
|
34
|
-
|
|
35
|
-
.Group__separator--separator {
|
|
36
|
-
display: none;
|
|
37
|
-
}
|
|
25
|
+
/* разделитель при mode="card" */
|
|
38
26
|
|
|
39
|
-
.
|
|
27
|
+
.Group--mode-card,
|
|
28
|
+
.Group--sizeX-regular.Group--mode-none {
|
|
29
|
+
padding: var(--vkui_internal--Group_padding_size);
|
|
40
30
|
position: relative;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
/* stylelint-disable-next-line selector-max-universal */
|
|
45
|
-
|
|
46
|
-
.Group--mode-plain + * + .Group__separator--separator {
|
|
47
|
-
display: block;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
@media (max-width: 767.9px) {
|
|
51
|
-
/* stylelint-disable-next-line selector-max-universal */
|
|
52
|
-
.Group--sizeX-none.Group--mode-none + * + .Group__separator--separator {
|
|
53
|
-
display: block;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.Group--mode-card + .Group__separator--spacing {
|
|
58
|
-
display: block;
|
|
59
|
-
block-size: 16px;
|
|
60
|
-
padding-block: 8px;
|
|
61
|
-
padding-inline: 0;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
.Group--sizeX-compact.Group--mode-card + .Group__separator--spacing {
|
|
65
|
-
display: block;
|
|
66
|
-
block-size: 8px;
|
|
67
|
-
padding-block: 4px;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
@media (min-width: 768px) {
|
|
71
|
-
.Group--sizeX-none.Group--mode-none + .Group__separator--spacing {
|
|
72
|
-
display: block;
|
|
73
|
-
block-size: 16px;
|
|
74
|
-
padding-block: 8px;
|
|
75
|
-
padding-inline: 0;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
@media (max-width: 767.9px) {
|
|
80
|
-
.Group--sizeX-none.Group--mode-card + .Group__separator--spacing {
|
|
81
|
-
block-size: 8px;
|
|
82
|
-
padding-block: 4px;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.Group:last-of-type ~ .Group__separator {
|
|
87
|
-
display: none;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.Group:last-of-type ~ .Group__separator--force,
|
|
91
|
-
.Group--mode-card:last-of-type + .Group__separator--spacing {
|
|
92
|
-
display: block;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
@media (min-width: 768px) {
|
|
96
|
-
.Group--sizeX-none.Group--mode-none:last-of-type + .Group__separator--spacing {
|
|
97
|
-
display: block;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.Group--mode-card.Group--padding-s {
|
|
102
|
-
padding: 4px;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.Group--mode-card.Group--padding-m {
|
|
106
|
-
padding: 8px;
|
|
31
|
+
background: var(--vkui--color_background_content);
|
|
32
|
+
border-radius: var(--vkui--size_border_radius_paper--regular);
|
|
107
33
|
}
|
|
108
34
|
|
|
109
35
|
@media (min-width: 768px) {
|
|
110
|
-
.Group--sizeX-none.Group--
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
.Group--sizeX-none.Group--inside-modal.Group--padding-m,
|
|
116
|
-
.Group--sizeX-none.Group--mode-none.Group--padding-m {
|
|
117
|
-
padding: 8px;
|
|
36
|
+
.Group--sizeX-none.Group--mode-none {
|
|
37
|
+
padding: var(--vkui_internal--Group_padding_size);
|
|
38
|
+
position: relative;
|
|
39
|
+
background: var(--vkui--color_background_content);
|
|
40
|
+
border-radius: var(--vkui--size_border_radius_paper--regular);
|
|
118
41
|
}
|
|
119
42
|
}
|
|
120
43
|
|
|
121
|
-
.Group--sizeX-compact,
|
|
122
44
|
.Group--sizeX-compact.Group--mode-card {
|
|
123
45
|
padding-inline: 0;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
@media (max-width: 767.9px) {
|
|
127
|
-
.Group--sizeX-none,
|
|
128
|
-
.Group--sizeX-none.Group--mode-card {
|
|
129
|
-
padding-inline: 0;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
.Group--mode-card {
|
|
134
|
-
background: var(--vkui--color_background_content);
|
|
135
|
-
border-radius: var(--vkui--size_border_radius_paper--regular);
|
|
136
|
-
position: relative;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
.Group--sizeX-compact.Group--mode-card {
|
|
140
46
|
border-radius: var(--vkui--size_border_radius_promo--regular);
|
|
141
47
|
}
|
|
142
48
|
|
|
143
49
|
@media (max-width: 767.9px) {
|
|
144
50
|
.Group--sizeX-none.Group--mode-card {
|
|
51
|
+
padding-inline: 0;
|
|
145
52
|
border-radius: var(--vkui--size_border_radius_promo--regular);
|
|
146
53
|
}
|
|
147
54
|
}
|
|
148
55
|
|
|
149
|
-
@media (min-width: 768px) {
|
|
150
|
-
.Group--sizeX-none.Group--mode-none {
|
|
151
|
-
background: var(--vkui--color_background_content);
|
|
152
|
-
border-radius: var(--vkui--size_border_radius_paper--regular);
|
|
153
|
-
position: relative;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
56
|
.Group--sizeX-compact.Group--mode-card:first-of-type {
|
|
158
57
|
border-start-start-radius: 0;
|
|
159
58
|
border-start-end-radius: 0;
|
|
@@ -170,7 +69,7 @@
|
|
|
170
69
|
}
|
|
171
70
|
}
|
|
172
71
|
|
|
173
|
-
|
|
72
|
+
/*
|
|
174
73
|
* Изменено с ::after на ::before
|
|
175
74
|
* потому что при ::after абсолютно позиционированный элемент накладывается
|
|
176
75
|
* поверх любого другого абсолютно позиционированного элемента внутри Group,
|
|
@@ -178,7 +77,8 @@
|
|
|
178
77
|
* См. пример: Slider c пропом withTooltip
|
|
179
78
|
*/
|
|
180
79
|
|
|
181
|
-
.Group--mode-card::before
|
|
80
|
+
.Group--mode-card::before,
|
|
81
|
+
.Group--sizeX-regular.Group--mode-none::before {
|
|
182
82
|
content: '';
|
|
183
83
|
inset-inline-start: 0;
|
|
184
84
|
inset-block-start: 0;
|
|
@@ -214,27 +114,158 @@
|
|
|
214
114
|
}
|
|
215
115
|
}
|
|
216
116
|
|
|
217
|
-
|
|
218
|
-
|
|
117
|
+
/*
|
|
118
|
+
* Header
|
|
119
|
+
*/
|
|
120
|
+
|
|
121
|
+
.Group__header:empty {
|
|
122
|
+
display: none;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.Group--mode-plain:not(:first-of-type) > .Group__header,
|
|
126
|
+
.Group--sizeX-compact.Group--mode-none:not(:first-of-type) > .Group__header {
|
|
127
|
+
-webkit-margin-before: calc(-1 * var(--vkui--spacing_size_m));
|
|
128
|
+
margin-block-start: calc(-1 * var(--vkui--spacing_size_m));
|
|
219
129
|
}
|
|
220
130
|
|
|
221
131
|
@media (max-width: 767.9px) {
|
|
222
|
-
.Group--sizeX-none.Group--mode-none
|
|
223
|
-
|
|
132
|
+
.Group--sizeX-none.Group--mode-none:not(:first-of-type) > .Group__header {
|
|
133
|
+
-webkit-margin-before: calc(-1 * var(--vkui--spacing_size_m));
|
|
134
|
+
margin-block-start: calc(-1 * var(--vkui--spacing_size_m));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.Group--mode-card > .Group__header,
|
|
139
|
+
.Group--sizeX-regular.Group--mode-none > .Group__header {
|
|
140
|
+
-webkit-margin-before: calc(-1 * var(--vkui--spacing_size_xs));
|
|
141
|
+
margin-block-start: calc(-1 * var(--vkui--spacing_size_xs));
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
@media (min-width: 768px) {
|
|
145
|
+
.Group--sizeX-none.Group--mode-none > .Group__header {
|
|
146
|
+
-webkit-margin-before: calc(-1 * var(--vkui--spacing_size_xs));
|
|
147
|
+
margin-block-start: calc(-1 * var(--vkui--spacing_size_xs));
|
|
224
148
|
}
|
|
225
149
|
}
|
|
226
150
|
|
|
151
|
+
/*
|
|
152
|
+
* Description
|
|
153
|
+
*/
|
|
154
|
+
|
|
227
155
|
.Group__description {
|
|
228
156
|
display: block;
|
|
229
|
-
padding-block:
|
|
157
|
+
padding-block: var(--vkui--spacing_size_xs) var(--vkui--spacing_size_2xl);
|
|
230
158
|
padding-inline: var(--vkui--size_base_padding_horizontal--regular);
|
|
231
159
|
color: var(--vkui--color_text_secondary);
|
|
232
160
|
}
|
|
233
161
|
|
|
162
|
+
/*
|
|
163
|
+
* Separator (sibling)
|
|
164
|
+
*
|
|
165
|
+
* ⚠️ Находится за пределами Group
|
|
166
|
+
*/
|
|
167
|
+
|
|
168
|
+
.Group__separator-sibling {
|
|
169
|
+
--vkui_internal--Group__separator_hr: none;
|
|
170
|
+
|
|
171
|
+
position: relative;
|
|
172
|
+
box-sizing: border-box;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.Group__separator-sibling::before {
|
|
176
|
+
display: var(--vkui_internal--Group__separator_hr);
|
|
177
|
+
content: '';
|
|
178
|
+
block-size: var(--vkui--size_border--regular);
|
|
179
|
+
background: var(--vkui--color_separator_primary);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/* разделитель при mode="plain" */
|
|
183
|
+
|
|
184
|
+
.Group--mode-plain + .Group__separator-sibling,
|
|
185
|
+
.Group--sizeX-compact.Group--mode-none + .Group__separator-sibling {
|
|
186
|
+
--vkui_internal--Group__separator_hr: block;
|
|
187
|
+
|
|
188
|
+
padding-inline: var(--vkui--size_base_padding_horizontal--regular);
|
|
189
|
+
padding-block: var(--vkui--spacing_size_m);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
@media (max-width: 767.9px) {
|
|
193
|
+
.Group--sizeX-none.Group--mode-none + .Group__separator-sibling {
|
|
194
|
+
--vkui_internal--Group__separator_hr: block;
|
|
195
|
+
|
|
196
|
+
padding-inline: var(--vkui--size_base_padding_horizontal--regular);
|
|
197
|
+
padding-block: var(--vkui--spacing_size_m);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.Group--mode-plain:last-of-type + .Group__separator-sibling:not(.Group__separator-sibling--forced) {
|
|
202
|
+
display: none;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
@media (max-width: 767.9px) {
|
|
206
|
+
.Group--sizeX-none.Group--mode-none:last-of-type
|
|
207
|
+
+ .Group__separator-sibling:not(.Group__separator-sibling--forced) {
|
|
208
|
+
display: none;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/* разделитель при mode="card" */
|
|
213
|
+
|
|
214
|
+
.Group--mode-card + .Group__separator-sibling,
|
|
215
|
+
.Group--sizeX-regular.Group--mode-none + .Group__separator-sibling {
|
|
216
|
+
block-size: var(--vkui--spacing_size_2xl);
|
|
217
|
+
padding-block: calc(var(--vkui--spacing_size_2xl) / 2);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
@media (min-width: 768px) {
|
|
221
|
+
.Group--sizeX-none.Group--mode-none + .Group__separator-sibling {
|
|
222
|
+
block-size: var(--vkui--spacing_size_2xl);
|
|
223
|
+
padding-block: calc(var(--vkui--spacing_size_2xl) / 2);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.Group--sizeX-compact.Group--mode-card + .Group__separator-sibling {
|
|
228
|
+
block-size: var(--vkui--spacing_size_m);
|
|
229
|
+
padding-block: calc(var(--vkui--spacing_size_m) / 2);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
@media (max-width: 767.9px) {
|
|
233
|
+
.Group--sizeX-none.Group--mode-card + .Group__separator-sibling {
|
|
234
|
+
block-size: var(--vkui--spacing_size_m);
|
|
235
|
+
padding-block: calc(var(--vkui--spacing_size_m) / 2);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/*
|
|
240
|
+
* Group вложенный в ModalPage
|
|
241
|
+
*
|
|
242
|
+
* note: ModalPage форсирует mode="plain" для Group
|
|
243
|
+
*/
|
|
244
|
+
|
|
245
|
+
@media (min-width: 768px) {
|
|
246
|
+
.Group--mode-plain-inside-modal {
|
|
247
|
+
padding: var(--vkui--spacing_size_m);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.Group--mode-plain-inside-modal + .Group__separator-sibling {
|
|
251
|
+
padding-inline: calc(
|
|
252
|
+
var(--vkui--size_base_padding_horizontal--regular) + var(--vkui--spacing_size_m)
|
|
253
|
+
);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/*
|
|
258
|
+
* Group вложенный в Group
|
|
259
|
+
*/
|
|
260
|
+
|
|
234
261
|
.Group .Group {
|
|
235
262
|
padding-inline: 0;
|
|
236
263
|
}
|
|
237
264
|
|
|
265
|
+
.Group .Group + .Group__separator-sibling {
|
|
266
|
+
padding-inline: var(--vkui--size_base_padding_horizontal--regular);
|
|
267
|
+
}
|
|
268
|
+
|
|
238
269
|
.Group .Group:first-of-type {
|
|
239
270
|
-webkit-padding-before: 0;
|
|
240
271
|
padding-block-start: 0;
|
|
@@ -250,8 +281,6 @@
|
|
|
250
281
|
* PanelHeader
|
|
251
282
|
*/
|
|
252
283
|
|
|
253
|
-
/* stylelint-disable selector-max-universal */
|
|
254
|
-
|
|
255
284
|
/* stylelint-disable-next-line selector-pseudo-class-disallowed-list */
|
|
256
285
|
|
|
257
286
|
:global(.vkuiInternalPanelHeader--vkcom) ~ .Group:first-of-type,
|
|
@@ -261,5 +290,3 @@
|
|
|
261
290
|
border-start-end-radius: 0;
|
|
262
291
|
border-start-start-radius: 0;
|
|
263
292
|
}
|
|
264
|
-
|
|
265
|
-
/* stylelint-enable selector-max-universal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HorizontalScroll.d.ts","sourceRoot":"","sources":["../../../../src/components/HorizontalScroll/HorizontalScroll.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAqBhE,MAAM,MAAM,qBAAqB,GAAG,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM,CAAC;AAExE,MAAM,WAAW,qBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,MAAM,CAAC,cAAc,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC;;OAEG;IACH,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"HorizontalScroll.d.ts","sourceRoot":"","sources":["../../../../src/components/HorizontalScroll/HorizontalScroll.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAqBhE,MAAM,MAAM,qBAAqB,GAAG,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM,CAAC;AAExE,MAAM,WAAW,qBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,MAAM,CAAC,cAAc,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC;;OAEG;IACH,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAsGD;;GAEG;AACH,eAAO,MAAM,gBAAgB,kKAY1B,qBAAqB,KAAG,KAAK,CAAC,SAsJhC,CAAC"}
|
|
@@ -37,7 +37,7 @@ import styles from './HorizontalScroll.module.css';
|
|
|
37
37
|
* Константа взята из полифила (468), на дизайн-ревью уточнили до 250
|
|
38
38
|
* @var {number} SCROLL_ONE_FRAME_TIME время анимации скролла
|
|
39
39
|
*/ const SCROLL_ONE_FRAME_TIME = 250;
|
|
40
|
-
function doScroll({ scrollElement, getScrollPosition, animationQueue, onScrollToEndBorder, onScrollEnd, onScrollStart, initialScrollWidth, scrollAnimationDuration
|
|
40
|
+
function doScroll({ scrollElement, getScrollPosition, animationQueue, onScrollToEndBorder, onScrollEnd, onScrollStart, initialScrollWidth, scrollAnimationDuration, textDirection }) {
|
|
41
41
|
if (!scrollElement || !getScrollPosition) {
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
@@ -58,10 +58,6 @@ function doScroll({ scrollElement, getScrollPosition, animationQueue, onScrollTo
|
|
|
58
58
|
}
|
|
59
59
|
const startTime = now();
|
|
60
60
|
(function scroll() {
|
|
61
|
-
if (!scrollElement) {
|
|
62
|
-
onScrollEnd();
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
61
|
const time = now();
|
|
66
62
|
const elapsed = Math.min((time - startTime) / scrollAnimationDuration, 1);
|
|
67
63
|
const value = easeInOutSine(elapsed);
|
|
@@ -84,9 +80,10 @@ function doScroll({ scrollElement, getScrollPosition, animationQueue, onScrollTo
|
|
|
84
80
|
*/ export const HorizontalScroll = ({ children, getScrollToLeft, getScrollToRight, showArrows = true, arrowSize = 'l', arrowOffsetY, scrollAnimationDuration = SCROLL_ONE_FRAME_TIME, getRef, scrollOnAnyWheel = false, inline = false, ...restProps })=>{
|
|
85
81
|
const [canScrollLeft, setCanScrollLeft] = React.useState(false);
|
|
86
82
|
const [canScrollRight, setCanScrollRight] = React.useState(false);
|
|
87
|
-
const [directionRef, textDirection
|
|
88
|
-
const
|
|
89
|
-
const
|
|
83
|
+
const [directionRef, textDirection] = useDirection();
|
|
84
|
+
const direction = textDirection || 'ltr';
|
|
85
|
+
const setCanScrollStart = direction === 'ltr' ? setCanScrollLeft : setCanScrollRight;
|
|
86
|
+
const setCanScrollEnd = direction === 'ltr' ? setCanScrollRight : setCanScrollLeft;
|
|
90
87
|
const isCustomScrollingRef = React.useRef(false);
|
|
91
88
|
const scrollerRef = useExternRef(getRef, directionRef);
|
|
92
89
|
const animationQueue = React.useRef([]);
|
|
@@ -102,7 +99,7 @@ function doScroll({ scrollElement, getScrollPosition, animationQueue, onScrollTo
|
|
|
102
99
|
onScrollStart: ()=>isCustomScrollingRef.current = true,
|
|
103
100
|
initialScrollWidth: scrollElement?.firstElementChild?.scrollWidth || 0,
|
|
104
101
|
scrollAnimationDuration,
|
|
105
|
-
textDirection
|
|
102
|
+
textDirection: direction
|
|
106
103
|
}));
|
|
107
104
|
if (animationQueue.current.length === 1) {
|
|
108
105
|
animationQueue.current[0]();
|
|
@@ -110,7 +107,7 @@ function doScroll({ scrollElement, getScrollPosition, animationQueue, onScrollTo
|
|
|
110
107
|
}, [
|
|
111
108
|
scrollerRef,
|
|
112
109
|
scrollAnimationDuration,
|
|
113
|
-
|
|
110
|
+
direction,
|
|
114
111
|
setCanScrollEnd
|
|
115
112
|
]);
|
|
116
113
|
const scrollToLeft = React.useCallback(()=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/HorizontalScroll/HorizontalScroll.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivityHasPointer } from '../../hooks/useAdaptivityHasPointer';\nimport { useDirection } from '../../hooks/useDirection';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { easeInOutSine } from '../../lib/fx';\nimport { HasRef, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { ScrollArrow } from '../ScrollArrow/ScrollArrow';\nimport styles from './HorizontalScroll.module.css';\n\ninterface ScrollContext {\n scrollElement: HTMLElement | null;\n scrollAnimationDuration: number;\n animationQueue: VoidFunction[];\n getScrollPosition: (currentPosition: number) => number;\n onScrollToEndBorder: VoidFunction;\n onScrollEnd: VoidFunction;\n onScrollStart: VoidFunction;\n /**\n * Начальная ширина прокрутки.\n * В некоторых случаях может отличаться от текущей ширины прокрутки из-за transforms: translate\n */\n initialScrollWidth: number;\n textDirection: 'ltr' | 'rtl';\n}\n\nexport type ScrollPositionHandler = (currentPosition: number) => number;\n\nexport interface HorizontalScrollProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * Функция для расчета величины прокрутки при клике на левую стрелку.\n */\n getScrollToLeft?: ScrollPositionHandler;\n /**\n * Функция для расчета величины прокрутки при клике на правую стрелку.\n */\n getScrollToRight?: ScrollPositionHandler;\n arrowSize?: 'm' | 'l';\n /**\n * Смещает иконки кнопок навигации по вертикали.\n */\n arrowOffsetY?: number | string;\n showArrows?: boolean | 'always';\n scrollAnimationDuration?: number;\n /**\n * Добавляет возможность прокручивать контент на любое колесо мыши.\n * По умолчанию прокручивается как любой горизонтальный контент через shift.\n */\n scrollOnAnyWheel?: boolean;\n /**\n * Задает потомкам инлайновое положение (горизонально)\n *\n * TODO [>=7]: Сделать по умолчанию `true` (или удалить, применяя стили всегда)\n */\n inline?: boolean;\n}\n\n/**\n * timing method\n */\nfunction now() {\n return performance && performance.now ? performance.now() : Date.now();\n}\n\n/**\n * Округление к большему по модулю\n *\n * ## Пример\n *\n * ```ts\n * import { strict as assert } from 'node:assert';\n *\n * assert.equal(roundingAwayFromZero(5.1), 6)\n * assert.equal(roundingAwayFromZero(-5.1), -6)\n * ```\n */\nfunction roundingAwayFromZero(value: number): number {\n return value > 0 ? Math.ceil(value) : Math.floor(value);\n}\n\n/**\n * Округляем el.scrollLeft\n * https://github.com/VKCOM/VKUI/pull/2445\n */\nconst roundUpElementScrollLeft = (el: HTMLElement) => roundingAwayFromZero(el.scrollLeft);\n\n/**\n * Код анимации скрола, на основе полифила: https://github.com/iamdustan/smoothscroll\n * Константа взята из полифила (468), на дизайн-ревью уточнили до 250\n * @var {number} SCROLL_ONE_FRAME_TIME время анимации скролла\n */\nconst SCROLL_ONE_FRAME_TIME = 250;\n\nfunction doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue,\n onScrollToEndBorder,\n onScrollEnd,\n onScrollStart,\n initialScrollWidth,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n textDirection,\n}: ScrollContext) {\n if (!scrollElement || !getScrollPosition) {\n return;\n }\n\n /**\n * крайнее значение сдвига\n */\n const extremeScrollLeft =\n (textDirection === 'ltr' ? 1 : -1) * (initialScrollWidth - scrollElement.offsetWidth);\n\n let startScrollLeft = roundUpElementScrollLeft(scrollElement);\n let endScrollLeft = getScrollPosition(startScrollLeft);\n\n onScrollStart();\n\n /**\n * Если окончание прокрутки вышло за ноль\n */\n if (startScrollLeft * endScrollLeft < 0) {\n endScrollLeft = 0;\n }\n\n if (Math.abs(endScrollLeft) >= Math.abs(extremeScrollLeft)) {\n onScrollToEndBorder();\n endScrollLeft = extremeScrollLeft;\n }\n\n const startTime = now();\n\n (function scroll() {\n if (!scrollElement) {\n onScrollEnd();\n return;\n }\n\n const time = now();\n const elapsed = Math.min((time - startTime) / scrollAnimationDuration, 1);\n\n const value = easeInOutSine(elapsed);\n\n const currentScrollLeft = startScrollLeft + (endScrollLeft - startScrollLeft) * value;\n scrollElement.scrollLeft = roundingAwayFromZero(currentScrollLeft);\n\n const scrollEnd =\n textDirection === 'ltr' ? Math.max(0, endScrollLeft) : Math.min(0, endScrollLeft);\n if (roundUpElementScrollLeft(scrollElement) !== scrollEnd && elapsed !== 1) {\n requestAnimationFrame(scroll);\n return;\n }\n\n onScrollEnd();\n animationQueue.shift();\n if (animationQueue.length > 0) {\n animationQueue[0]();\n }\n })();\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/HorizontalScroll\n */\nexport const HorizontalScroll = ({\n children,\n getScrollToLeft,\n getScrollToRight,\n showArrows = true,\n arrowSize = 'l',\n arrowOffsetY,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n getRef,\n scrollOnAnyWheel = false,\n inline = false,\n ...restProps\n}: HorizontalScrollProps): React.ReactNode => {\n const [canScrollLeft, setCanScrollLeft] = React.useState(false);\n const [canScrollRight, setCanScrollRight] = React.useState(false);\n const [directionRef, textDirection = 'ltr'] = useDirection<HTMLDivElement>();\n\n const setCanScrollStart = textDirection === 'ltr' ? setCanScrollLeft : setCanScrollRight;\n const setCanScrollEnd = textDirection === 'ltr' ? setCanScrollRight : setCanScrollLeft;\n\n const isCustomScrollingRef = React.useRef(false);\n\n const scrollerRef = useExternRef(getRef, directionRef);\n\n const animationQueue = React.useRef<VoidFunction[]>([]);\n\n const hasPointer = useAdaptivityHasPointer();\n\n const scrollTo = React.useCallback(\n (getScrollPosition: ScrollPositionHandler) => {\n const scrollElement = scrollerRef.current;\n\n animationQueue.current.push(() =>\n doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue: animationQueue.current,\n onScrollToEndBorder: () => setCanScrollEnd(false),\n onScrollEnd: () => (isCustomScrollingRef.current = false),\n onScrollStart: () => (isCustomScrollingRef.current = true),\n initialScrollWidth: scrollElement?.firstElementChild?.scrollWidth || 0,\n scrollAnimationDuration,\n textDirection,\n }),\n );\n if (animationQueue.current.length === 1) {\n animationQueue.current[0]();\n }\n },\n [scrollerRef, scrollAnimationDuration, textDirection, setCanScrollEnd],\n );\n\n const scrollToLeft = React.useCallback(() => {\n const getScrollPosition =\n getScrollToLeft ?? ((i: number) => i - scrollerRef.current!.offsetWidth);\n scrollTo(getScrollPosition);\n }, [getScrollToLeft, scrollTo, scrollerRef]);\n\n const scrollToRight = React.useCallback(() => {\n const getScrollPosition =\n getScrollToRight ?? ((i: number) => i + scrollerRef.current!.offsetWidth);\n scrollTo(getScrollPosition);\n }, [getScrollToRight, scrollTo, scrollerRef]);\n\n const calculateArrowsVisibility = React.useCallback(() => {\n if (showArrows && hasPointer && scrollerRef.current && !isCustomScrollingRef.current) {\n const scrollElement = scrollerRef.current;\n\n setCanScrollStart(scrollElement.scrollLeft !== 0);\n setCanScrollEnd(\n Math.abs(roundUpElementScrollLeft(scrollElement)) + scrollElement.offsetWidth <\n scrollElement.scrollWidth,\n );\n }\n }, [showArrows, hasPointer, scrollerRef, setCanScrollStart, setCanScrollEnd]);\n\n const scrollEvent = useEventListener('scroll', calculateArrowsVisibility);\n React.useEffect(\n function addScrollerRefToScrollEvent() {\n if (!scrollerRef.current) {\n return noop;\n }\n\n scrollEvent.add(scrollerRef.current);\n return scrollEvent.remove;\n },\n [scrollEvent, scrollerRef],\n );\n\n React.useEffect(calculateArrowsVisibility, [calculateArrowsVisibility, children]);\n\n /**\n * Прокрутка с помощью любого колеса мыши\n */\n const onwheel = React.useCallback(\n (e: WheelEvent) => {\n scrollerRef.current!.scrollBy({ left: e.deltaX + e.deltaY, behavior: 'auto' });\n e.preventDefault();\n },\n [scrollerRef],\n );\n\n const wheelEvent = useEventListener('wheel', onwheel);\n React.useEffect(\n function addScrollerRefToWheelEvent() {\n if (!scrollerRef.current || !scrollOnAnyWheel) {\n return noop;\n }\n\n wheelEvent.add(scrollerRef.current);\n\n return wheelEvent.remove;\n },\n [wheelEvent, scrollerRef, scrollOnAnyWheel],\n );\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles['HorizontalScroll'],\n 'vkuiInternalHorizontalScroll',\n showArrows === 'always' && styles['HorizontalScroll--withConstArrows'],\n inline && styles['HorizontalScroll--inline'],\n )}\n onMouseEnter={calculateArrowsVisibility}\n >\n {showArrows && (hasPointer || hasPointer === undefined) && canScrollLeft && (\n <ScrollArrow\n data-testid={process.env.NODE_ENV === 'test' ? 'ScrollArrow' : undefined}\n size={arrowSize}\n offsetY={arrowOffsetY}\n direction=\"left\"\n aria-hidden\n tabIndex={-1}\n className={classNames(\n styles['HorizontalScroll__arrow'],\n styles['HorizontalScroll__arrowLeft'],\n )}\n onClick={scrollToLeft}\n />\n )}\n {showArrows && (hasPointer || hasPointer === undefined) && canScrollRight && (\n <ScrollArrow\n data-testid={process.env.NODE_ENV === 'test' ? 'ScrollArrow' : undefined}\n size={arrowSize}\n offsetY={arrowOffsetY}\n direction=\"right\"\n aria-hidden\n tabIndex={-1}\n className={classNames(\n styles['HorizontalScroll__arrow'],\n styles['HorizontalScroll__arrowRight'],\n )}\n onClick={scrollToRight}\n />\n )}\n <div className={styles['HorizontalScroll__in']} ref={scrollerRef}>\n <div className={styles['HorizontalScroll__in-wrapper']}>{children}</div>\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","noop","useAdaptivityHasPointer","useDirection","useEventListener","useExternRef","easeInOutSine","RootComponent","ScrollArrow","styles","now","performance","Date","roundingAwayFromZero","value","Math","ceil","floor","roundUpElementScrollLeft","el","scrollLeft","SCROLL_ONE_FRAME_TIME","doScroll","scrollElement","getScrollPosition","animationQueue","onScrollToEndBorder","onScrollEnd","onScrollStart","initialScrollWidth","scrollAnimationDuration","textDirection","extremeScrollLeft","offsetWidth","startScrollLeft","endScrollLeft","abs","startTime","scroll","time","elapsed","min","currentScrollLeft","scrollEnd","max","requestAnimationFrame","shift","length","HorizontalScroll","children","getScrollToLeft","getScrollToRight","showArrows","arrowSize","arrowOffsetY","getRef","scrollOnAnyWheel","inline","restProps","canScrollLeft","setCanScrollLeft","useState","canScrollRight","setCanScrollRight","directionRef","setCanScrollStart","setCanScrollEnd","isCustomScrollingRef","useRef","scrollerRef","hasPointer","scrollTo","useCallback","current","push","firstElementChild","scrollWidth","scrollToLeft","i","scrollToRight","calculateArrowsVisibility","scrollEvent","useEffect","addScrollerRefToScrollEvent","add","remove","onwheel","e","scrollBy","left","deltaX","deltaY","behavior","preventDefault","wheelEvent","addScrollerRefToWheelEvent","baseClassName","onMouseEnter","undefined","data-testid","process","env","NODE_ENV","size","offsetY","direction","aria-hidden","tabIndex","className","onClick","div","ref"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/HorizontalScroll/HorizontalScroll.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivityHasPointer } from '../../hooks/useAdaptivityHasPointer';\nimport { useDirection } from '../../hooks/useDirection';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { easeInOutSine } from '../../lib/fx';\nimport { HasRef, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { ScrollArrow } from '../ScrollArrow/ScrollArrow';\nimport styles from './HorizontalScroll.module.css';\n\ninterface ScrollContext {\n scrollElement: HTMLElement | null;\n scrollAnimationDuration: number;\n animationQueue: VoidFunction[];\n getScrollPosition: (currentPosition: number) => number;\n onScrollToEndBorder: VoidFunction;\n onScrollEnd: VoidFunction;\n onScrollStart: VoidFunction;\n /**\n * Начальная ширина прокрутки.\n * В некоторых случаях может отличаться от текущей ширины прокрутки из-за transforms: translate\n */\n initialScrollWidth: number;\n textDirection: 'ltr' | 'rtl';\n}\n\nexport type ScrollPositionHandler = (currentPosition: number) => number;\n\nexport interface HorizontalScrollProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * Функция для расчета величины прокрутки при клике на левую стрелку.\n */\n getScrollToLeft?: ScrollPositionHandler;\n /**\n * Функция для расчета величины прокрутки при клике на правую стрелку.\n */\n getScrollToRight?: ScrollPositionHandler;\n arrowSize?: 'm' | 'l';\n /**\n * Смещает иконки кнопок навигации по вертикали.\n */\n arrowOffsetY?: number | string;\n showArrows?: boolean | 'always';\n scrollAnimationDuration?: number;\n /**\n * Добавляет возможность прокручивать контент на любое колесо мыши.\n * По умолчанию прокручивается как любой горизонтальный контент через shift.\n */\n scrollOnAnyWheel?: boolean;\n /**\n * Задает потомкам инлайновое положение (горизонально)\n *\n * TODO [>=7]: Сделать по умолчанию `true` (или удалить, применяя стили всегда)\n */\n inline?: boolean;\n}\n\n/**\n * timing method\n */\nfunction now() {\n return performance && performance.now ? performance.now() : Date.now();\n}\n\n/**\n * Округление к большему по модулю\n *\n * ## Пример\n *\n * ```ts\n * import { strict as assert } from 'node:assert';\n *\n * assert.equal(roundingAwayFromZero(5.1), 6)\n * assert.equal(roundingAwayFromZero(-5.1), -6)\n * ```\n */\nfunction roundingAwayFromZero(value: number): number {\n return value > 0 ? Math.ceil(value) : Math.floor(value);\n}\n\n/**\n * Округляем el.scrollLeft\n * https://github.com/VKCOM/VKUI/pull/2445\n */\nconst roundUpElementScrollLeft = (el: HTMLElement) => roundingAwayFromZero(el.scrollLeft);\n\n/**\n * Код анимации скрола, на основе полифила: https://github.com/iamdustan/smoothscroll\n * Константа взята из полифила (468), на дизайн-ревью уточнили до 250\n * @var {number} SCROLL_ONE_FRAME_TIME время анимации скролла\n */\nconst SCROLL_ONE_FRAME_TIME = 250;\n\nfunction doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue,\n onScrollToEndBorder,\n onScrollEnd,\n onScrollStart,\n initialScrollWidth,\n scrollAnimationDuration,\n textDirection,\n}: ScrollContext) {\n if (!scrollElement || !getScrollPosition) {\n return;\n }\n\n /**\n * крайнее значение сдвига\n */\n const extremeScrollLeft =\n (textDirection === 'ltr' ? 1 : -1) * (initialScrollWidth - scrollElement.offsetWidth);\n\n let startScrollLeft = roundUpElementScrollLeft(scrollElement);\n let endScrollLeft = getScrollPosition(startScrollLeft);\n\n onScrollStart();\n\n /**\n * Если окончание прокрутки вышло за ноль\n */\n if (startScrollLeft * endScrollLeft < 0) {\n endScrollLeft = 0;\n }\n\n if (Math.abs(endScrollLeft) >= Math.abs(extremeScrollLeft)) {\n onScrollToEndBorder();\n endScrollLeft = extremeScrollLeft;\n }\n\n const startTime = now();\n\n (function scroll() {\n const time = now();\n const elapsed = Math.min((time - startTime) / scrollAnimationDuration, 1);\n\n const value = easeInOutSine(elapsed);\n\n const currentScrollLeft = startScrollLeft + (endScrollLeft - startScrollLeft) * value;\n scrollElement.scrollLeft = roundingAwayFromZero(currentScrollLeft);\n\n const scrollEnd =\n textDirection === 'ltr' ? Math.max(0, endScrollLeft) : Math.min(0, endScrollLeft);\n if (roundUpElementScrollLeft(scrollElement) !== scrollEnd && elapsed !== 1) {\n requestAnimationFrame(scroll);\n return;\n }\n\n onScrollEnd();\n animationQueue.shift();\n if (animationQueue.length > 0) {\n animationQueue[0]();\n }\n })();\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/HorizontalScroll\n */\nexport const HorizontalScroll = ({\n children,\n getScrollToLeft,\n getScrollToRight,\n showArrows = true,\n arrowSize = 'l',\n arrowOffsetY,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n getRef,\n scrollOnAnyWheel = false,\n inline = false,\n ...restProps\n}: HorizontalScrollProps): React.ReactNode => {\n const [canScrollLeft, setCanScrollLeft] = React.useState(false);\n const [canScrollRight, setCanScrollRight] = React.useState(false);\n const [directionRef, textDirection] = useDirection<HTMLDivElement>();\n const direction = textDirection || 'ltr';\n const setCanScrollStart = direction === 'ltr' ? setCanScrollLeft : setCanScrollRight;\n const setCanScrollEnd = direction === 'ltr' ? setCanScrollRight : setCanScrollLeft;\n\n const isCustomScrollingRef = React.useRef(false);\n\n const scrollerRef = useExternRef(getRef, directionRef);\n\n const animationQueue = React.useRef<VoidFunction[]>([]);\n\n const hasPointer = useAdaptivityHasPointer();\n\n const scrollTo = React.useCallback(\n (getScrollPosition: ScrollPositionHandler) => {\n const scrollElement = scrollerRef.current;\n\n animationQueue.current.push(() =>\n doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue: animationQueue.current,\n onScrollToEndBorder: () => setCanScrollEnd(false),\n onScrollEnd: () => (isCustomScrollingRef.current = false),\n onScrollStart: () => (isCustomScrollingRef.current = true),\n initialScrollWidth: scrollElement?.firstElementChild?.scrollWidth || 0,\n scrollAnimationDuration,\n textDirection: direction,\n }),\n );\n if (animationQueue.current.length === 1) {\n animationQueue.current[0]();\n }\n },\n [scrollerRef, scrollAnimationDuration, direction, setCanScrollEnd],\n );\n\n const scrollToLeft = React.useCallback(() => {\n const getScrollPosition =\n getScrollToLeft ?? ((i: number) => i - scrollerRef.current!.offsetWidth);\n scrollTo(getScrollPosition);\n }, [getScrollToLeft, scrollTo, scrollerRef]);\n\n const scrollToRight = React.useCallback(() => {\n const getScrollPosition =\n getScrollToRight ?? ((i: number) => i + scrollerRef.current!.offsetWidth);\n scrollTo(getScrollPosition);\n }, [getScrollToRight, scrollTo, scrollerRef]);\n\n const calculateArrowsVisibility = React.useCallback(() => {\n if (showArrows && hasPointer && scrollerRef.current && !isCustomScrollingRef.current) {\n const scrollElement = scrollerRef.current;\n\n setCanScrollStart(scrollElement.scrollLeft !== 0);\n setCanScrollEnd(\n Math.abs(roundUpElementScrollLeft(scrollElement)) + scrollElement.offsetWidth <\n scrollElement.scrollWidth,\n );\n }\n }, [showArrows, hasPointer, scrollerRef, setCanScrollStart, setCanScrollEnd]);\n\n const scrollEvent = useEventListener('scroll', calculateArrowsVisibility);\n React.useEffect(\n function addScrollerRefToScrollEvent() {\n if (!scrollerRef.current) {\n return noop;\n }\n\n scrollEvent.add(scrollerRef.current);\n return scrollEvent.remove;\n },\n [scrollEvent, scrollerRef],\n );\n\n React.useEffect(calculateArrowsVisibility, [calculateArrowsVisibility, children]);\n\n /**\n * Прокрутка с помощью любого колеса мыши\n */\n const onwheel = React.useCallback(\n (e: WheelEvent) => {\n scrollerRef.current!.scrollBy({ left: e.deltaX + e.deltaY, behavior: 'auto' });\n e.preventDefault();\n },\n [scrollerRef],\n );\n\n const wheelEvent = useEventListener('wheel', onwheel);\n React.useEffect(\n function addScrollerRefToWheelEvent() {\n if (!scrollerRef.current || !scrollOnAnyWheel) {\n return noop;\n }\n\n wheelEvent.add(scrollerRef.current);\n\n return wheelEvent.remove;\n },\n [wheelEvent, scrollerRef, scrollOnAnyWheel],\n );\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles['HorizontalScroll'],\n 'vkuiInternalHorizontalScroll',\n showArrows === 'always' && styles['HorizontalScroll--withConstArrows'],\n inline && styles['HorizontalScroll--inline'],\n )}\n onMouseEnter={calculateArrowsVisibility}\n >\n {showArrows && (hasPointer || hasPointer === undefined) && canScrollLeft && (\n <ScrollArrow\n data-testid={process.env.NODE_ENV === 'test' ? 'ScrollArrow' : undefined}\n size={arrowSize}\n offsetY={arrowOffsetY}\n direction=\"left\"\n aria-hidden\n tabIndex={-1}\n className={classNames(\n styles['HorizontalScroll__arrow'],\n styles['HorizontalScroll__arrowLeft'],\n )}\n onClick={scrollToLeft}\n />\n )}\n {showArrows && (hasPointer || hasPointer === undefined) && canScrollRight && (\n <ScrollArrow\n data-testid={process.env.NODE_ENV === 'test' ? 'ScrollArrow' : undefined}\n size={arrowSize}\n offsetY={arrowOffsetY}\n direction=\"right\"\n aria-hidden\n tabIndex={-1}\n className={classNames(\n styles['HorizontalScroll__arrow'],\n styles['HorizontalScroll__arrowRight'],\n )}\n onClick={scrollToRight}\n />\n )}\n <div className={styles['HorizontalScroll__in']} ref={scrollerRef}>\n <div className={styles['HorizontalScroll__in-wrapper']}>{children}</div>\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","noop","useAdaptivityHasPointer","useDirection","useEventListener","useExternRef","easeInOutSine","RootComponent","ScrollArrow","styles","now","performance","Date","roundingAwayFromZero","value","Math","ceil","floor","roundUpElementScrollLeft","el","scrollLeft","SCROLL_ONE_FRAME_TIME","doScroll","scrollElement","getScrollPosition","animationQueue","onScrollToEndBorder","onScrollEnd","onScrollStart","initialScrollWidth","scrollAnimationDuration","textDirection","extremeScrollLeft","offsetWidth","startScrollLeft","endScrollLeft","abs","startTime","scroll","time","elapsed","min","currentScrollLeft","scrollEnd","max","requestAnimationFrame","shift","length","HorizontalScroll","children","getScrollToLeft","getScrollToRight","showArrows","arrowSize","arrowOffsetY","getRef","scrollOnAnyWheel","inline","restProps","canScrollLeft","setCanScrollLeft","useState","canScrollRight","setCanScrollRight","directionRef","direction","setCanScrollStart","setCanScrollEnd","isCustomScrollingRef","useRef","scrollerRef","hasPointer","scrollTo","useCallback","current","push","firstElementChild","scrollWidth","scrollToLeft","i","scrollToRight","calculateArrowsVisibility","scrollEvent","useEffect","addScrollerRefToScrollEvent","add","remove","onwheel","e","scrollBy","left","deltaX","deltaY","behavior","preventDefault","wheelEvent","addScrollerRefToWheelEvent","baseClassName","onMouseEnter","undefined","data-testid","process","env","NODE_ENV","size","offsetY","aria-hidden","tabIndex","className","onClick","div","ref"],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@ import * as React from 'react';
|
|
|
2
2
|
import { ImageBase, type ImageBaseOverlayProps, type ImageBaseProps } from '../ImageBase/ImageBase';
|
|
3
3
|
import { ImageBadge, type ImageBadgeProps } from './ImageBadge/ImageBadge';
|
|
4
4
|
export type { ImageBadgeProps, ImageBaseOverlayProps as ImageOverlayProps };
|
|
5
|
-
export declare const IMAGE_DEFAULT_SIZE = 48;
|
|
6
5
|
export interface ImageProps extends Omit<ImageBaseProps, 'badge'> {
|
|
7
6
|
/**
|
|
8
7
|
* Размер закругления.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../../src/components/Image/Image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,KAAK,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG3E,YAAY,EAAE,eAAe,EAAE,qBAAqB,IAAI,iBAAiB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../../src/components/Image/Image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,KAAK,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG3E,YAAY,EAAE,eAAe,EAAE,qBAAqB,IAAI,iBAAiB,EAAE,CAAC;AAI5E,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC/D;;OAEG;IACH,YAAY,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC/B;;OAEG;IACH,sBAAsB,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACzC;;OAEG;IACH,oBAAoB,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvC;;OAEG;IACH,oBAAoB,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvC;;OAEG;IACH,kBAAkB,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CACtC;AAqED;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG;IACzC,KAAK,EAAE,OAAO,UAAU,CAAC;IACzB,OAAO,EAAE,OAAO,SAAS,CAAC,OAAO,CAAC;CA2DnC,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { classNames } from '@vkontakte/vkjs';
|
|
|
4
4
|
import { ImageBase } from '../ImageBase/ImageBase';
|
|
5
5
|
import { ImageBadge } from './ImageBadge/ImageBadge';
|
|
6
6
|
import styles from './Image.module.css';
|
|
7
|
-
|
|
7
|
+
const IMAGE_DEFAULT_SIZE = 48;
|
|
8
8
|
const getBorderRadiusBySize = (size, borderRadius)=>{
|
|
9
9
|
switch(borderRadius){
|
|
10
10
|
case 's':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Image/Image.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { ImageBase, type ImageBaseOverlayProps, type ImageBaseProps } from '../ImageBase/ImageBase';\nimport { ImageBadge, type ImageBadgeProps } from './ImageBadge/ImageBadge';\nimport styles from './Image.module.css';\n\nexport type { ImageBadgeProps, ImageBaseOverlayProps as ImageOverlayProps };\n\
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Image/Image.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { ImageBase, type ImageBaseOverlayProps, type ImageBaseProps } from '../ImageBase/ImageBase';\nimport { ImageBadge, type ImageBadgeProps } from './ImageBadge/ImageBadge';\nimport styles from './Image.module.css';\n\nexport type { ImageBadgeProps, ImageBaseOverlayProps as ImageOverlayProps };\n\nconst IMAGE_DEFAULT_SIZE = 48;\n\nexport interface ImageProps extends Omit<ImageBaseProps, 'badge'> {\n /**\n * Размер закругления.\n */\n borderRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между сторонами начала блока и строки\n */\n borderStartStartRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между стороной начала блока и стороной конца строки\n */\n borderStartEndRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между стороной конца блока и стороной начала строки\n */\n borderEndStartRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между сторонами конца блока и строки\n */\n borderEndEndRadius?: 's' | 'l' | 'm';\n}\n\nconst getBorderRadiusBySize = (\n size: Exclude<ImageBaseProps['size'], undefined>,\n borderRadius: Exclude<ImageProps['borderRadius'], undefined>,\n) => {\n switch (borderRadius) {\n case 's': {\n if (size <= 32) {\n return 2;\n }\n if (size <= 56) {\n return 3;\n }\n return 4;\n }\n case 'm': {\n if (size <= 32) {\n return 3;\n }\n if (size <= 48) {\n return 4;\n }\n if (size <= 72) {\n return 6;\n }\n if (size <= 80) {\n return 8;\n }\n return 10;\n }\n case 'l': {\n if (size <= 16) {\n return 4;\n }\n if (size <= 20) {\n return 5;\n }\n if (size <= 32) {\n return 6;\n }\n if (size <= 40) {\n return 8;\n }\n if (size <= 48) {\n return 10;\n }\n if (size <= 56) {\n return 12;\n }\n if (size <= 64) {\n return 14;\n }\n return 16;\n }\n }\n};\n\nconst getBorderRadiusBySizeInPx = (\n size: Exclude<ImageBaseProps['size'], undefined>,\n borderRadius: ImageProps['borderRadius'],\n) => {\n if (!borderRadius) {\n return undefined;\n }\n\n return `${getBorderRadiusBySize(size, borderRadius)}px`;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Image\n */\nexport const Image: React.FC<ImageProps> & {\n Badge: typeof ImageBadge;\n Overlay: typeof ImageBase.Overlay;\n} = ({\n size = IMAGE_DEFAULT_SIZE,\n borderRadius = 'm',\n borderStartStartRadius,\n borderStartEndRadius,\n borderEndStartRadius,\n borderEndEndRadius,\n style,\n className,\n objectFit = 'cover',\n ...restProps\n}: ImageProps) => {\n const borderStyles = React.useMemo(\n () => ({\n '--vkui_internal--Image_border_radius': getBorderRadiusBySizeInPx(size, borderRadius),\n '--vkui_internal--Image_border_start_start_radius': getBorderRadiusBySizeInPx(\n size,\n borderStartStartRadius,\n ),\n '--vkui_internal--Image_border_start_end_radius': getBorderRadiusBySizeInPx(\n size,\n borderStartEndRadius,\n ),\n '--vkui_internal--Image_border_end_start_radius': getBorderRadiusBySizeInPx(\n size,\n borderEndStartRadius,\n ),\n '--vkui_internal--Image_border_end_end_radius': getBorderRadiusBySizeInPx(\n size,\n borderEndEndRadius,\n ),\n }),\n [\n borderRadius,\n borderStartStartRadius,\n borderStartEndRadius,\n borderEndStartRadius,\n borderEndEndRadius,\n size,\n ],\n );\n\n return (\n <ImageBase\n {...restProps}\n objectFit={objectFit}\n size={size}\n style={{ ...borderStyles, ...style }}\n className={classNames(\n className,\n styles['Image'],\n borderStartStartRadius && styles['Image--borderStartStartRadius'],\n borderStartEndRadius && styles['Image--borderStartEndRadius'],\n borderEndStartRadius && styles['Image--borderEndStartRadius'],\n borderEndEndRadius && styles['Image--borderEndEndRadius'],\n )}\n />\n );\n};\n\nImage.displayName = 'Image';\n\nImage.Badge = ImageBadge;\nImage.Badge.displayName = 'Image.Badge';\n\nImage.Overlay = ImageBase.Overlay;\nImage.Overlay.displayName = 'Image.Overlay';\n"],"names":["React","classNames","ImageBase","ImageBadge","styles","IMAGE_DEFAULT_SIZE","getBorderRadiusBySize","size","borderRadius","getBorderRadiusBySizeInPx","undefined","Image","borderStartStartRadius","borderStartEndRadius","borderEndStartRadius","borderEndEndRadius","style","className","objectFit","restProps","borderStyles","useMemo","displayName","Badge","Overlay"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,SAAS,QAAyD,yBAAyB;AACpG,SAASC,UAAU,QAA8B,0BAA0B;AAC3E,OAAOC,YAAY,qBAAqB;AAIxC,MAAMC,qBAAqB;AAyB3B,MAAMC,wBAAwB,CAC5BC,MACAC;IAEA,OAAQA;QACN,KAAK;YAAK;gBACR,IAAID,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,OAAO;YACT;QACA,KAAK;YAAK;gBACR,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,OAAO;YACT;QACA,KAAK;YAAK;gBACR,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,OAAO;YACT;IACF;AACF;AAEA,MAAME,4BAA4B,CAChCF,MACAC;IAEA,IAAI,CAACA,cAAc;QACjB,OAAOE;IACT;IAEA,OAAO,CAAC,EAAEJ,sBAAsBC,MAAMC,cAAc,EAAE,CAAC;AACzD;AAEA;;CAEC,GACD,OAAO,MAAMG,QAGT,CAAC,EACHJ,OAAOF,kBAAkB,EACzBG,eAAe,GAAG,EAClBI,sBAAsB,EACtBC,oBAAoB,EACpBC,oBAAoB,EACpBC,kBAAkB,EAClBC,KAAK,EACLC,SAAS,EACTC,YAAY,OAAO,EACnB,GAAGC,WACQ;IACX,MAAMC,eAAepB,MAAMqB,OAAO,CAChC,IAAO,CAAA;YACL,wCAAwCZ,0BAA0BF,MAAMC;YACxE,oDAAoDC,0BAClDF,MACAK;YAEF,kDAAkDH,0BAChDF,MACAM;YAEF,kDAAkDJ,0BAChDF,MACAO;YAEF,gDAAgDL,0BAC9CF,MACAQ;QAEJ,CAAA,GACA;QACEP;QACAI;QACAC;QACAC;QACAC;QACAR;KACD;IAGH,qBACE,KAACL;QACE,GAAGiB,SAAS;QACbD,WAAWA;QACXX,MAAMA;QACNS,OAAO;YAAE,GAAGI,YAAY;YAAE,GAAGJ,KAAK;QAAC;QACnCC,WAAWhB,WACTgB,WACAb,MAAM,CAAC,QAAQ,EACfQ,0BAA0BR,MAAM,CAAC,gCAAgC,EACjES,wBAAwBT,MAAM,CAAC,8BAA8B,EAC7DU,wBAAwBV,MAAM,CAAC,8BAA8B,EAC7DW,sBAAsBX,MAAM,CAAC,4BAA4B;;AAIjE,EAAE;AAEFO,MAAMW,WAAW,GAAG;AAEpBX,MAAMY,KAAK,GAAGpB;AACdQ,MAAMY,KAAK,CAACD,WAAW,GAAG;AAE1BX,MAAMa,OAAO,GAAGtB,UAAUsB,OAAO;AACjCb,MAAMa,OAAO,CAACF,WAAW,GAAG"}
|
|
@@ -51,7 +51,7 @@ export function validateFallbackIcon(imageSize, iconProp) {
|
|
|
51
51
|
return validateIconComponentSizeByImageSize(imageSize, iconProp, getFallbackIconSizeByImageBaseSize, warnImageBase);
|
|
52
52
|
}
|
|
53
53
|
const mapOfExpectedSize = new Set(imageBaseSizes);
|
|
54
|
-
const arrayOfSizes =
|
|
54
|
+
const arrayOfSizes = Array.from(mapOfExpectedSize).map((str)=>Number(str));
|
|
55
55
|
const maxSize = arrayOfSizes.reduce((maxSize, size)=>size > maxSize ? size : maxSize, 0);
|
|
56
56
|
export function validateSize(imageSize) {
|
|
57
57
|
if (imageSize > maxSize || mapOfExpectedSize.has(imageSize)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ImageBase/validators.ts"],"sourcesContent":["import { warnOnce } from '../../lib/warnOnce';\nimport {\n getBadgeIconSizeByImageBaseSize,\n getFallbackIconSizeByImageBaseSize,\n getOverlayIconSizeByImageBaseSize,\n} from './helpers';\nimport { imageBaseSizes } from './types';\n\n/**\n * Пример,\n *\n * Icon28User -> 28\n * Icon12Circle1 -> 12\n * Icon12Circle2 -> 12\n * Icon20TextHeading1Outline -> 20\n */\nfunction parseIconSizeByDisplayName(displayName: unknown): number | null {\n if (typeof displayName !== 'string') {\n return null;\n }\n\n const match = /Icon(\\d+)/.exec(displayName);\n\n return match ? Number(match[1]) : null;\n}\n\nfunction parseIconSizeByWidthProp(width: unknown): number | null {\n if (typeof width !== 'string' && typeof width !== 'number') {\n return null;\n }\n const size = Number(width);\n return size > 0 ? size : null;\n}\n\nfunction getElementDisplayName(element: JSX.Element): string | null {\n return element.type.displayName ?? null;\n}\n\nfunction getElementWidthProp(element: JSX.Element): number | string | null {\n return element.props.width ?? null;\n}\n\nfunction getIconSizeByElement(element: JSX.Element): number | null {\n const sizeByDisplayName = parseIconSizeByDisplayName(getElementDisplayName(element));\n const sizeByWidth = parseIconSizeByWidthProp(getElementWidthProp(element));\n return sizeByWidth ? sizeByWidth : sizeByDisplayName;\n}\n\ninterface IconProp {\n name: string;\n value: JSX.Element;\n}\n\ninterface SelectorFn {\n (imageSize: number): number;\n MAX_SIZE: number;\n}\n\nfunction validateIconComponentSizeByImageSize(\n imageSize: number,\n iconProp: IconProp,\n selectorFn: SelectorFn,\n logger: ReturnType<typeof warnOnce>,\n) {\n const iconSize = getIconSizeByElement(iconProp.value);\n\n if (iconSize === null) {\n return;\n }\n\n const result = selectorFn(imageSize);\n\n if (result === iconSize || (result === selectorFn.MAX_SIZE && iconSize >= result)) {\n return;\n }\n\n const iconName = getElementDisplayName(iconProp.value);\n const propMessage = iconName ? `${iconProp.name}={<${iconName} />}` : iconProp.name;\n\n logger(\n `Размер \\`${propMessage}\\` не соответствует дизайн-системе. Для \\`size={${imageSize}}\\` размер иконки для \\`${iconProp.name}\\` должен соответствовать <Icon${result}<name> />. Если такого размера нет, то используйте <${iconName} width={${result}} height={${result}} />`,\n 'log',\n );\n}\n\nconst warnImageBase = warnOnce('ImageBase');\n\nexport function validateFallbackIcon(imageSize: number, iconProp: IconProp): void {\n return validateIconComponentSizeByImageSize(\n imageSize,\n iconProp,\n getFallbackIconSizeByImageBaseSize,\n warnImageBase,\n );\n}\n\nconst mapOfExpectedSize = new Set<number>(imageBaseSizes);\n\nconst arrayOfSizes =
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ImageBase/validators.ts"],"sourcesContent":["import { warnOnce } from '../../lib/warnOnce';\nimport {\n getBadgeIconSizeByImageBaseSize,\n getFallbackIconSizeByImageBaseSize,\n getOverlayIconSizeByImageBaseSize,\n} from './helpers';\nimport { imageBaseSizes } from './types';\n\n/**\n * Пример,\n *\n * Icon28User -> 28\n * Icon12Circle1 -> 12\n * Icon12Circle2 -> 12\n * Icon20TextHeading1Outline -> 20\n */\nfunction parseIconSizeByDisplayName(displayName: unknown): number | null {\n if (typeof displayName !== 'string') {\n return null;\n }\n\n const match = /Icon(\\d+)/.exec(displayName);\n\n return match ? Number(match[1]) : null;\n}\n\nfunction parseIconSizeByWidthProp(width: unknown): number | null {\n if (typeof width !== 'string' && typeof width !== 'number') {\n return null;\n }\n const size = Number(width);\n return size > 0 ? size : null;\n}\n\nfunction getElementDisplayName(element: JSX.Element): string | null {\n return element.type.displayName ?? null;\n}\n\nfunction getElementWidthProp(element: JSX.Element): number | string | null {\n return element.props.width ?? null;\n}\n\nfunction getIconSizeByElement(element: JSX.Element): number | null {\n const sizeByDisplayName = parseIconSizeByDisplayName(getElementDisplayName(element));\n const sizeByWidth = parseIconSizeByWidthProp(getElementWidthProp(element));\n return sizeByWidth ? sizeByWidth : sizeByDisplayName;\n}\n\ninterface IconProp {\n name: string;\n value: JSX.Element;\n}\n\ninterface SelectorFn {\n (imageSize: number): number;\n MAX_SIZE: number;\n}\n\nfunction validateIconComponentSizeByImageSize(\n imageSize: number,\n iconProp: IconProp,\n selectorFn: SelectorFn,\n logger: ReturnType<typeof warnOnce>,\n) {\n const iconSize = getIconSizeByElement(iconProp.value);\n\n if (iconSize === null) {\n return;\n }\n\n const result = selectorFn(imageSize);\n\n if (result === iconSize || (result === selectorFn.MAX_SIZE && iconSize >= result)) {\n return;\n }\n\n const iconName = getElementDisplayName(iconProp.value);\n const propMessage = iconName ? `${iconProp.name}={<${iconName} />}` : iconProp.name;\n\n logger(\n `Размер \\`${propMessage}\\` не соответствует дизайн-системе. Для \\`size={${imageSize}}\\` размер иконки для \\`${iconProp.name}\\` должен соответствовать <Icon${result}<name> />. Если такого размера нет, то используйте <${iconName} width={${result}} height={${result}} />`,\n 'log',\n );\n}\n\nconst warnImageBase = warnOnce('ImageBase');\n\nexport function validateFallbackIcon(imageSize: number, iconProp: IconProp): void {\n return validateIconComponentSizeByImageSize(\n imageSize,\n iconProp,\n getFallbackIconSizeByImageBaseSize,\n warnImageBase,\n );\n}\n\nconst mapOfExpectedSize = new Set<number>(imageBaseSizes);\n\nconst arrayOfSizes = Array.from(mapOfExpectedSize).map((str) => Number(str));\nconst maxSize = arrayOfSizes.reduce((maxSize, size) => (size > maxSize ? size : maxSize), 0);\n\nexport function validateSize(imageSize: number): void {\n if (imageSize > maxSize || mapOfExpectedSize.has(imageSize)) {\n return;\n }\n warnImageBase(\n `\\`size={${imageSize}}\\` не соответствует дизайн-системе. Пожалуйста, используйте один из следующих вариантов: ${arrayOfSizes.join(\n ' | ',\n )}`,\n 'log',\n );\n}\n\nconst warnImageBaseBadge = warnOnce('ImageBase.Badge');\n\nexport function validateBadgeIcon(imageSize: number, iconProp: IconProp): void {\n if (imageSize < 24 && iconProp) {\n return warnImageBaseBadge('Не используйте бейдж при `size < 24`.', 'log');\n }\n validateIconComponentSizeByImageSize(\n imageSize,\n iconProp,\n getBadgeIconSizeByImageBaseSize,\n warnImageBaseBadge,\n );\n}\n\nconst warnImageBaseOverlay = warnOnce('ImageBase.Overlay');\n\nexport function validateOverlayIcon(imageSize: number, iconProp: IconProp): void {\n validateIconComponentSizeByImageSize(\n imageSize,\n iconProp,\n getOverlayIconSizeByImageBaseSize,\n warnImageBaseOverlay,\n );\n}\n"],"names":["warnOnce","getBadgeIconSizeByImageBaseSize","getFallbackIconSizeByImageBaseSize","getOverlayIconSizeByImageBaseSize","imageBaseSizes","parseIconSizeByDisplayName","displayName","match","exec","Number","parseIconSizeByWidthProp","width","size","getElementDisplayName","element","type","getElementWidthProp","props","getIconSizeByElement","sizeByDisplayName","sizeByWidth","validateIconComponentSizeByImageSize","imageSize","iconProp","selectorFn","logger","iconSize","value","result","MAX_SIZE","iconName","propMessage","name","warnImageBase","validateFallbackIcon","mapOfExpectedSize","Set","arrayOfSizes","Array","from","map","str","maxSize","reduce","validateSize","has","join","warnImageBaseBadge","validateBadgeIcon","warnImageBaseOverlay","validateOverlayIcon"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,qBAAqB;AAC9C,SACEC,+BAA+B,EAC/BC,kCAAkC,EAClCC,iCAAiC,QAC5B,YAAY;AACnB,SAASC,cAAc,QAAQ,UAAU;AAEzC;;;;;;;CAOC,GACD,SAASC,2BAA2BC,WAAoB;IACtD,IAAI,OAAOA,gBAAgB,UAAU;QACnC,OAAO;IACT;IAEA,MAAMC,QAAQ,YAAYC,IAAI,CAACF;IAE/B,OAAOC,QAAQE,OAAOF,KAAK,CAAC,EAAE,IAAI;AACpC;AAEA,SAASG,yBAAyBC,KAAc;IAC9C,IAAI,OAAOA,UAAU,YAAY,OAAOA,UAAU,UAAU;QAC1D,OAAO;IACT;IACA,MAAMC,OAAOH,OAAOE;IACpB,OAAOC,OAAO,IAAIA,OAAO;AAC3B;AAEA,SAASC,sBAAsBC,OAAoB;IACjD,OAAOA,QAAQC,IAAI,CAACT,WAAW,IAAI;AACrC;AAEA,SAASU,oBAAoBF,OAAoB;IAC/C,OAAOA,QAAQG,KAAK,CAACN,KAAK,IAAI;AAChC;AAEA,SAASO,qBAAqBJ,OAAoB;IAChD,MAAMK,oBAAoBd,2BAA2BQ,sBAAsBC;IAC3E,MAAMM,cAAcV,yBAAyBM,oBAAoBF;IACjE,OAAOM,cAAcA,cAAcD;AACrC;AAYA,SAASE,qCACPC,SAAiB,EACjBC,QAAkB,EAClBC,UAAsB,EACtBC,MAAmC;IAEnC,MAAMC,WAAWR,qBAAqBK,SAASI,KAAK;IAEpD,IAAID,aAAa,MAAM;QACrB;IACF;IAEA,MAAME,SAASJ,WAAWF;IAE1B,IAAIM,WAAWF,YAAaE,WAAWJ,WAAWK,QAAQ,IAAIH,YAAYE,QAAS;QACjF;IACF;IAEA,MAAME,WAAWjB,sBAAsBU,SAASI,KAAK;IACrD,MAAMI,cAAcD,WAAW,CAAC,EAAEP,SAASS,IAAI,CAAC,GAAG,EAAEF,SAAS,IAAI,CAAC,GAAGP,SAASS,IAAI;IAEnFP,OACE,CAAC,SAAS,EAAEM,YAAY,gDAAgD,EAAET,UAAU,wBAAwB,EAAEC,SAASS,IAAI,CAAC,+BAA+B,EAAEJ,OAAO,oDAAoD,EAAEE,SAAS,QAAQ,EAAEF,OAAO,UAAU,EAAEA,OAAO,IAAI,CAAC,EAC5Q;AAEJ;AAEA,MAAMK,gBAAgBjC,SAAS;AAE/B,OAAO,SAASkC,qBAAqBZ,SAAiB,EAAEC,QAAkB;IACxE,OAAOF,qCACLC,WACAC,UACArB,oCACA+B;AAEJ;AAEA,MAAME,oBAAoB,IAAIC,IAAYhC;AAE1C,MAAMiC,eAAeC,MAAMC,IAAI,CAACJ,mBAAmBK,GAAG,CAAC,CAACC,MAAQhC,OAAOgC;AACvE,MAAMC,UAAUL,aAAaM,MAAM,CAAC,CAACD,SAAS9B,OAAUA,OAAO8B,UAAU9B,OAAO8B,SAAU;AAE1F,OAAO,SAASE,aAAatB,SAAiB;IAC5C,IAAIA,YAAYoB,WAAWP,kBAAkBU,GAAG,CAACvB,YAAY;QAC3D;IACF;IACAW,cACE,CAAC,QAAQ,EAAEX,UAAU,0FAA0F,EAAEe,aAAaS,IAAI,CAChI,OACA,CAAC,EACH;AAEJ;AAEA,MAAMC,qBAAqB/C,SAAS;AAEpC,OAAO,SAASgD,kBAAkB1B,SAAiB,EAAEC,QAAkB;IACrE,IAAID,YAAY,MAAMC,UAAU;QAC9B,OAAOwB,mBAAmB,yCAAyC;IACrE;IACA1B,qCACEC,WACAC,UACAtB,iCACA8C;AAEJ;AAEA,MAAME,uBAAuBjD,SAAS;AAEtC,OAAO,SAASkD,oBAAoB5B,SAAiB,EAAEC,QAAkB;IACvEF,qCACEC,WACAC,UACApB,mCACA8C;AAEJ"}
|