@vkontakte/vkui 8.0.1 → 8.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Accordion/Accordion.d.ts +8 -6
- package/dist/components/Accordion/Accordion.d.ts.map +1 -1
- package/dist/components/Accordion/Accordion.js +3 -0
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/Accordion/AccordionIcon.d.ts +14 -0
- package/dist/components/Accordion/AccordionIcon.d.ts.map +1 -0
- package/dist/components/Accordion/AccordionIcon.js +16 -0
- package/dist/components/Accordion/AccordionIcon.js.map +1 -0
- package/dist/components/Accordion/AccordionSummary.d.ts +3 -3
- package/dist/components/Accordion/AccordionSummary.d.ts.map +1 -1
- package/dist/components/Accordion/AccordionSummary.js +4 -6
- package/dist/components/Accordion/AccordionSummary.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.d.ts +9 -9
- package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetContext.d.ts +3 -3
- package/dist/components/ActionSheet/ActionSheetContext.d.ts.map +1 -1
- package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
- package/dist/components/ActionSheet/types.d.ts +8 -8
- package/dist/components/ActionSheet/types.d.ts.map +1 -1
- package/dist/components/ActionSheet/types.js.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +15 -15
- package/dist/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.d.ts +1 -1
- package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.d.ts.map +1 -1
- package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts +7 -7
- package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/components/Alert/Alert.d.ts +18 -18
- package/dist/components/Alert/Alert.d.ts.map +1 -1
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/Alert/AlertBase.d.ts +2 -2
- package/dist/components/Alert/AlertBase.d.ts.map +1 -1
- package/dist/components/Alert/AlertBase.js.map +1 -1
- package/dist/components/Alert/AlertTypography.d.ts +1 -1
- package/dist/components/Alert/AlertTypography.d.ts.map +1 -1
- package/dist/components/Alert/AlertTypography.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.d.ts +9 -9
- package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppRoot/AppRootContext.d.ts +4 -4
- package/dist/components/AppRoot/AppRootContext.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.d.ts +2 -2
- package/dist/components/AppRoot/AppRootPortal.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/components/AppRoot/ScrollContext.d.ts +4 -4
- package/dist/components/AppRoot/ScrollContext.d.ts.map +1 -1
- package/dist/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/components/AppRoot/types.d.ts +4 -4
- package/dist/components/AppRoot/types.d.ts.map +1 -1
- package/dist/components/AppRoot/types.js.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.d.ts +2 -2
- package/dist/components/AspectRatio/AspectRatio.d.ts.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/components/Avatar/Avatar.d.ts +2 -2
- package/dist/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts +1 -1
- package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts.map +1 -1
- package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/components/Badge/Badge.d.ts +1 -1
- package/dist/components/Badge/Badge.d.ts.map +1 -1
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Banner/Banner.d.ts +12 -12
- package/dist/components/Banner/Banner.d.ts.map +1 -1
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/Box/Box.d.ts +1 -1
- package/dist/components/Box/Box.d.ts.map +1 -1
- package/dist/components/Box/Box.js.map +1 -1
- package/dist/components/Button/Button.d.ts +11 -11
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/components/Button/Button.js +1 -1
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.d.ts +4 -4
- package/dist/components/ButtonGroup/ButtonGroup.d.ts.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +17 -17
- package/dist/components/Calendar/Calendar.d.ts.map +1 -1
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.d.ts +18 -18
- package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.d.ts +14 -14
- package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.d.ts +19 -19
- package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts +12 -12
- package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/CalendarTime/CalendarTime.d.ts +14 -14
- package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
- package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/components/CalendarTime/CalendarTimePicker.d.ts +3 -3
- package/dist/components/CalendarTime/CalendarTimePicker.d.ts.map +1 -1
- package/dist/components/CalendarTime/CalendarTimePicker.js.map +1 -1
- package/dist/components/Card/Card.d.ts +1 -1
- package/dist/components/Card/Card.d.ts.map +1 -1
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/CardGrid/CardGrid.d.ts +2 -2
- package/dist/components/CardGrid/CardGrid.d.ts.map +1 -1
- package/dist/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/components/CardScroll/CardScroll.d.ts +3 -3
- package/dist/components/CardScroll/CardScroll.d.ts.map +1 -1
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/CarouselBase/Bullets.d.ts +1 -1
- package/dist/components/CarouselBase/Bullets.d.ts.map +1 -1
- package/dist/components/CarouselBase/Bullets.js.map +1 -1
- package/dist/components/CarouselBase/CarouselViewPort.d.ts +1 -1
- package/dist/components/CarouselBase/CarouselViewPort.d.ts.map +1 -1
- package/dist/components/CarouselBase/CarouselViewPort.js.map +1 -1
- package/dist/components/CarouselBase/ScrollArrows.d.ts +2 -2
- package/dist/components/CarouselBase/ScrollArrows.d.ts.map +1 -1
- package/dist/components/CarouselBase/ScrollArrows.js.map +1 -1
- package/dist/components/CarouselBase/helpers.d.ts +4 -4
- package/dist/components/CarouselBase/helpers.d.ts.map +1 -1
- package/dist/components/CarouselBase/helpers.js.map +1 -1
- package/dist/components/CarouselBase/types.d.ts +23 -23
- package/dist/components/CarouselBase/types.d.ts.map +1 -1
- package/dist/components/CarouselBase/types.js.map +1 -1
- package/dist/components/Cell/Cell.d.ts +8 -8
- package/dist/components/Cell/Cell.d.ts.map +1 -1
- package/dist/components/Cell/Cell.js.map +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts.map +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/components/Cell/CellDragger/CellDragger.d.ts +2 -2
- package/dist/components/Cell/CellDragger/CellDragger.d.ts.map +1 -1
- package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
- package/dist/components/CellButton/CellButton.d.ts +16 -16
- package/dist/components/CellButton/CellButton.d.ts.map +1 -1
- package/dist/components/CellButton/CellButton.js.map +1 -1
- package/dist/components/CellButtonGroup/CellButtonGroup.d.ts +2 -2
- package/dist/components/Checkbox/Checkbox.d.ts +6 -6
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Checkbox/CheckboxInput/CheckboxInput.d.ts +11 -11
- package/dist/components/Checkbox/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -1
- package/dist/components/ChipsInput/ChipsInput.d.ts +1 -1
- package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
- package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/components/ChipsInput/useChipsInput.d.ts +3 -3
- package/dist/components/ChipsInput/useChipsInput.d.ts.map +1 -1
- package/dist/components/ChipsInput/useChipsInput.js.map +1 -1
- package/dist/components/ChipsInputBase/Chip/Chip.d.ts +9 -9
- package/dist/components/ChipsInputBase/Chip/Chip.d.ts.map +1 -1
- package/dist/components/ChipsInputBase/Chip/Chip.js.map +1 -1
- package/dist/components/ChipsInputBase/types.d.ts +19 -19
- 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 +13 -13
- package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/ChipsSelect/useChipsSelect.d.ts +8 -8
- package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
- package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
- package/dist/components/Clickable/Clickable.d.ts +1 -1
- package/dist/components/Clickable/Clickable.d.ts.map +1 -1
- package/dist/components/Clickable/Clickable.js.map +1 -1
- package/dist/components/Clickable/useState.d.ts +13 -13
- package/dist/components/Clickable/useState.d.ts.map +1 -1
- package/dist/components/Clickable/useState.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.d.ts +2 -1
- package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/ContentBadge/ContentBadge.d.ts +4 -4
- package/dist/components/ContentBadge/ContentBadge.d.ts.map +1 -1
- package/dist/components/ContentBadge/ContentBadge.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.d.ts +8 -8
- package/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/Counter/Counter.d.ts +4 -4
- package/dist/components/Counter/Counter.d.ts.map +1 -1
- package/dist/components/Counter/Counter.js.map +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.d.ts +6 -6
- package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +36 -27
- package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +2 -2
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelectClearButton.d.ts +2 -2
- package/dist/components/CustomSelect/CustomSelectClearButton.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts +9 -9
- package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
- package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts +2 -2
- package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts.map +1 -1
- package/dist/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -1
- package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts +1 -1
- package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts.map +1 -1
- package/dist/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -1
- package/dist/components/CustomSelect/types.d.ts +1 -1
- package/dist/components/CustomSelect/types.d.ts.map +1 -1
- package/dist/components/CustomSelect/types.js.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +8 -8
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.d.ts +9 -9
- package/dist/components/CustomSelectOption/CustomSelectOption.d.ts.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts +23 -23
- package/dist/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/components/DateInput/DateInput.js +3 -12
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateInput/hooks.d.ts +4 -4
- package/dist/components/DateInput/hooks.d.ts.map +1 -1
- package/dist/components/DateInput/hooks.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +25 -25
- package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +2 -11
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/DropZone/DropZone.d.ts +2 -2
- package/dist/components/DropZone/DropZone.d.ts.map +1 -1
- package/dist/components/DropZone/DropZone.js +1 -1
- package/dist/components/DropZone/DropZone.js.map +1 -1
- package/dist/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.d.ts +1 -1
- package/dist/components/DropZone/DropZoneGrid/DropZoneGrid.d.ts.map +1 -0
- package/dist/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.js +3 -3
- package/dist/components/DropZone/DropZoneGrid/DropZoneGrid.js.map +1 -0
- package/dist/components/DropdownIcon/DropdownIcon.d.ts +1 -1
- package/dist/components/DropdownIcon/DropdownIcon.d.ts.map +1 -1
- package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/components/Epic/Epic.d.ts +1 -1
- package/dist/components/Epic/Epic.d.ts.map +1 -1
- package/dist/components/Epic/Epic.js.map +1 -1
- package/dist/components/Epic/ScrollSaver.d.ts +1 -1
- package/dist/components/Epic/ScrollSaver.d.ts.map +1 -1
- package/dist/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/components/File/File.d.ts +4 -4
- package/dist/components/File/File.d.ts.map +1 -1
- package/dist/components/File/File.js.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.d.ts +3 -3
- package/dist/components/FixedLayout/FixedLayout.d.ts.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/components/Flex/Flex.d.ts +8 -8
- package/dist/components/Flex/Flex.d.ts.map +1 -1
- package/dist/components/Flex/Flex.js.map +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.d.ts +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.js.map +1 -1
- package/dist/components/FloatingArrow/FloatingArrow.d.ts +9 -9
- package/dist/components/FloatingArrow/FloatingArrow.d.ts.map +1 -1
- package/dist/components/FloatingArrow/FloatingArrow.js.map +1 -1
- package/dist/components/FocusTrap/FocusTrap.d.ts +1 -1
- package/dist/components/FocusTrap/FocusTrap.d.ts.map +1 -1
- package/dist/components/FocusTrap/FocusTrap.js +2 -4
- package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/components/FormField/FormField.d.ts +8 -8
- package/dist/components/FormField/FormField.d.ts.map +1 -1
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/FormFieldClearButton/FormFieldClearButton.d.ts +2 -2
- package/dist/components/FormFieldClearButton/FormFieldClearButton.d.ts.map +1 -1
- package/dist/components/FormFieldClearButton/FormFieldClearButton.js.map +1 -1
- package/dist/components/FormItem/FormItem.d.ts +10 -10
- package/dist/components/FormItem/FormItem.d.ts.map +1 -1
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormItem/context.d.ts +2 -2
- package/dist/components/FormItem/context.d.ts.map +1 -1
- package/dist/components/FormItem/context.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +4 -4
- package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/FormStatus/FormStatus.d.ts +2 -2
- package/dist/components/FormStatus/FormStatus.d.ts.map +1 -1
- package/dist/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/components/Gallery/Gallery.d.ts +2 -2
- package/dist/components/Gallery/Gallery.d.ts.map +1 -1
- package/dist/components/Gallery/Gallery.js.map +1 -1
- package/dist/components/Gradient/Gradient.d.ts +2 -2
- package/dist/components/Gradient/Gradient.d.ts.map +1 -1
- package/dist/components/Gradient/Gradient.js.map +1 -1
- package/dist/components/GridAvatar/GridAvatar.d.ts +1 -1
- package/dist/components/GridAvatar/GridAvatar.d.ts.map +1 -1
- package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/components/Group/Group.d.ts +2 -2
- package/dist/components/Group/Group.d.ts.map +1 -1
- package/dist/components/Group/Group.js.map +1 -1
- package/dist/components/Group/GroupContainer.d.ts +3 -3
- package/dist/components/Group/GroupContainer.d.ts.map +1 -1
- package/dist/components/Group/GroupContainer.js.map +1 -1
- package/dist/components/Group/GroupExpandedContent.d.ts +1 -1
- package/dist/components/Group/GroupExpandedContent.d.ts.map +1 -1
- package/dist/components/Group/GroupExpandedContent.js.map +1 -1
- package/dist/components/Header/Header.d.ts +11 -11
- package/dist/components/Header/Header.d.ts.map +1 -1
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.d.ts +7 -7
- package/dist/components/HorizontalCell/HorizontalCell.d.ts.map +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +4 -4
- package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +30 -15
- package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js +20 -6
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/IconButton/IconButton.d.ts +1 -1
- package/dist/components/IconButton/IconButton.d.ts.map +1 -1
- package/dist/components/IconButton/IconButton.js.map +1 -1
- package/dist/components/Image/Image.d.ts +5 -5
- package/dist/components/Image/Image.d.ts.map +1 -1
- package/dist/components/Image/Image.js.map +1 -1
- package/dist/components/ImageBase/ImageBase.d.ts +17 -15
- package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBase.js +9 -5
- package/dist/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts +1 -1
- package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.d.ts +3 -3
- package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts +3 -3
- package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
- package/dist/components/ImageBase/types.d.ts +3 -3
- package/dist/components/ImageBase/types.d.ts.map +1 -1
- package/dist/components/ImageBase/types.js.map +1 -1
- package/dist/components/Input/Input.d.ts +4 -4
- package/dist/components/Input/Input.d.ts.map +1 -1
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/InputLike/InputLike.d.ts +3 -3
- package/dist/components/InputLike/InputLike.d.ts.map +1 -1
- package/dist/components/InputLike/InputLike.js.map +1 -1
- package/dist/components/Link/Link.d.ts +4 -4
- package/dist/components/Link/Link.d.ts.map +1 -1
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/List/List.d.ts +1 -1
- package/dist/components/List/List.d.ts.map +1 -1
- package/dist/components/List/List.js.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.d.ts +5 -5
- package/dist/components/MiniInfoCell/MiniInfoCell.d.ts.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/components/ModalCard/ModalCardInternal.d.ts +1 -1
- package/dist/components/ModalCard/ModalCardInternal.d.ts.map +1 -1
- package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
- package/dist/components/ModalCard/types.d.ts +13 -13
- package/dist/components/ModalCard/types.d.ts.map +1 -1
- package/dist/components/ModalCard/types.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.d.ts +14 -14
- package/dist/components/ModalCardBase/ModalCardBase.d.ts.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +1 -1
- package/dist/components/ModalDismissButton/ModalDismissButton.d.ts.map +1 -1
- package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/components/ModalOutlet/ModalOutlet.d.ts +3 -3
- package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -1
- package/dist/components/ModalOutlet/ModalOutlet.js.map +1 -1
- package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts +1 -1
- package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts.map +1 -1
- package/dist/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -1
- package/dist/components/ModalOverlay/ModalOverlay.d.ts +7 -7
- package/dist/components/ModalOverlay/ModalOverlay.d.ts.map +1 -1
- package/dist/components/ModalOverlay/ModalOverlay.js.map +1 -1
- package/dist/components/ModalPage/ModalPageBase.d.ts +2 -2
- package/dist/components/ModalPage/ModalPageBase.d.ts.map +1 -1
- package/dist/components/ModalPage/ModalPageBase.js.map +1 -1
- package/dist/components/ModalPage/ModalPageInternal.d.ts +2 -2
- package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
- package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
- package/dist/components/ModalPage/types.d.ts +27 -27
- package/dist/components/ModalPage/types.d.ts.map +1 -1
- package/dist/components/ModalPage/types.js.map +1 -1
- package/dist/components/ModalPageFooter/ModalPageFooter.d.ts +2 -2
- package/dist/components/ModalPageFooter/ModalPageFooter.d.ts.map +1 -1
- package/dist/components/ModalPageFooter/ModalPageFooter.js.map +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.d.ts +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/components/ModalRoot/types.d.ts +15 -15
- package/dist/components/ModalRoot/types.d.ts.map +1 -1
- package/dist/components/ModalRoot/types.js.map +1 -1
- package/dist/components/ModalRoot/useModalRootManager.d.ts +19 -19
- package/dist/components/ModalRoot/useModalRootManager.d.ts.map +1 -1
- package/dist/components/ModalRoot/useModalRootManager.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.d.ts +11 -11
- package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/NumberInputLike/NumberInputLike.d.ts +3 -3
- package/dist/components/NumberInputLike/NumberInputLike.d.ts.map +1 -1
- package/dist/components/NumberInputLike/NumberInputLike.js.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +6 -6
- package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js +12 -3
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
- package/dist/components/Pagination/Pagination.d.ts +19 -19
- package/dist/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/components/Pagination/Pagination.js +14 -6
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts +3 -3
- package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts.map +1 -1
- package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
- package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts +3 -3
- package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts.map +1 -1
- package/dist/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -1
- package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts +1 -1
- package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts.map +1 -1
- package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -1
- package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts +3 -3
- package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts.map +1 -1
- package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -1
- package/dist/components/Panel/Panel.d.ts +3 -3
- package/dist/components/Panel/Panel.d.ts.map +1 -1
- package/dist/components/Panel/Panel.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.d.ts +8 -8
- package/dist/components/PanelHeader/PanelHeader.d.ts.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +2 -2
- package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts.map +1 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts +2 -2
- package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts +3 -3
- package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts.map +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +3 -3
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts.map +1 -1
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/components/PanelSpinner/PanelSpinner.d.ts +1 -1
- package/dist/components/PanelSpinner/PanelSpinner.d.ts.map +1 -1
- package/dist/components/PanelSpinner/PanelSpinner.js.map +1 -1
- package/dist/components/Placeholder/Placeholder.d.ts +5 -5
- package/dist/components/Placeholder/Placeholder.d.ts.map +1 -1
- package/dist/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +6 -6
- package/dist/components/PopoutWrapper/PopoutWrapper.d.ts.map +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/components/Popover/Popover.d.ts +5 -5
- package/dist/components/Popover/Popover.d.ts.map +1 -1
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popper/Popper.d.ts +4 -4
- package/dist/components/Popper/Popper.d.ts.map +1 -1
- package/dist/components/Popper/Popper.js +13 -7
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/Progress/Progress.d.ts +4 -4
- package/dist/components/Progress/Progress.d.ts.map +1 -1
- package/dist/components/Progress/Progress.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.d.ts +2 -2
- package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts +4 -4
- package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts.map +1 -1
- package/dist/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
- package/dist/components/Radio/Radio.d.ts +7 -7
- package/dist/components/Radio/Radio.d.ts.map +1 -1
- package/dist/components/Radio/Radio.js +2 -2
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/Radio/RadioInput/RadioInput.d.ts +4 -4
- package/dist/components/Radio/RadioInput/RadioInput.d.ts.map +1 -1
- package/dist/components/Radio/RadioInput/RadioInput.js.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts +1 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/Removable/Removable.d.ts +9 -9
- package/dist/components/Removable/Removable.d.ts.map +1 -1
- package/dist/components/Removable/Removable.js.map +1 -1
- package/dist/components/Removable/RemovableIos.d.ts +3 -3
- package/dist/components/Removable/RemovableIos.d.ts.map +1 -1
- package/dist/components/Removable/RemovableIos.js.map +1 -1
- package/dist/components/RichCell/RichCell.d.ts +15 -15
- package/dist/components/RichCell/RichCell.d.ts.map +1 -1
- package/dist/components/RichCell/RichCell.js.map +1 -1
- package/dist/components/Root/Root.d.ts +4 -4
- package/dist/components/Root/Root.d.ts.map +1 -1
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/RootComponent/RootComponent.d.ts +2 -2
- package/dist/components/RootComponent/RootComponent.d.ts.map +1 -1
- package/dist/components/RootComponent/RootComponent.js.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinnerSwapIcon.d.ts +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinnerSwapIcon.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinnerSwapIcon.js.map +1 -1
- package/dist/components/ScreenSpinner/context.d.ts +2 -2
- package/dist/components/ScreenSpinner/context.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/context.js.map +1 -1
- package/dist/components/ScreenSpinner/types.d.ts +5 -5
- package/dist/components/ScreenSpinner/types.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/types.js.map +1 -1
- package/dist/components/ScrollArrow/ScrollArrow.d.ts +10 -4
- package/dist/components/ScrollArrow/ScrollArrow.d.ts.map +1 -1
- package/dist/components/ScrollArrow/ScrollArrow.js +14 -4
- package/dist/components/ScrollArrow/ScrollArrow.js.map +1 -1
- package/dist/components/Search/Search.d.ts +17 -17
- package/dist/components/Search/Search.d.ts.map +1 -1
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.d.ts +6 -6
- package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +3 -3
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.d.ts +3 -3
- package/dist/components/SelectMimicry/SelectMimicry.d.ts.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SelectTypography/SelectTypography.d.ts +1 -1
- package/dist/components/SelectTypography/SelectTypography.d.ts.map +1 -1
- package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/components/SelectionControl/SelectionControl.d.ts +1 -1
- package/dist/components/SelectionControl/SelectionControl.d.ts.map +1 -1
- package/dist/components/SelectionControl/SelectionControl.js.map +1 -1
- package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts +2 -2
- package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -1
- package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
- package/dist/components/Separator/Separator.d.ts +5 -5
- package/dist/components/Separator/Separator.d.ts.map +1 -1
- package/dist/components/Separator/Separator.js.map +1 -1
- package/dist/components/SimpleCell/Chevron/Chevron.d.ts +1 -1
- package/dist/components/SimpleCell/Chevron/Chevron.d.ts.map +1 -1
- package/dist/components/SimpleCell/Chevron/Chevron.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts +14 -14
- package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/SimpleGrid/SimpleGrid.d.ts +6 -6
- package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
- package/dist/components/SimpleGrid/SimpleGrid.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts +5 -5
- package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Slider/Slider.d.ts +17 -17
- package/dist/components/Slider/Slider.d.ts.map +1 -1
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/Slider/SliderThumb/SliderThumb.d.ts +5 -5
- package/dist/components/Slider/SliderThumb/SliderThumb.d.ts.map +1 -1
- package/dist/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
- package/dist/components/Snackbar/Snackbar.d.ts +10 -10
- package/dist/components/Snackbar/Snackbar.d.ts.map +1 -1
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/Snackbar/subcomponents/Basic/Basic.d.ts +6 -6
- package/dist/components/Snackbar/subcomponents/Basic/Basic.d.ts.map +1 -1
- package/dist/components/Snackbar/subcomponents/Basic/Basic.js.map +1 -1
- package/dist/components/Snackbar/utils.d.ts +1 -1
- package/dist/components/Snackbar/utils.d.ts.map +1 -1
- package/dist/components/Snackbar/utils.js.map +1 -1
- package/dist/components/Spacing/Spacing.d.ts +2 -2
- package/dist/components/Spacing/Spacing.d.ts.map +1 -1
- package/dist/components/Spacing/Spacing.js.map +1 -1
- package/dist/components/Spinner/Spinner.d.ts +4 -4
- package/dist/components/Spinner/Spinner.d.ts.map +1 -1
- package/dist/components/Spinner/Spinner.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.d.ts +7 -7
- package/dist/components/SplitCol/SplitCol.d.ts.map +1 -1
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.d.ts +8 -8
- package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +2 -2
- package/dist/components/SubnavigationBar/SubnavigationBar.d.ts.map +1 -1
- package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.d.ts +8 -8
- package/dist/components/SubnavigationButton/SubnavigationButton.d.ts.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/Switch/Switch.d.ts +4 -4
- package/dist/components/Switch/Switch.d.ts.map +1 -1
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Tabbar/Tabbar.d.ts +2 -2
- package/dist/components/Tabbar/Tabbar.d.ts.map +1 -1
- package/dist/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.d.ts +3 -3
- package/dist/components/TabbarItem/TabbarItem.d.ts.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts +7 -7
- package/dist/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/Tabs/TabsModeContext.d.ts +1 -1
- package/dist/components/Tabs/TabsModeContext.d.ts.map +1 -1
- package/dist/components/Tabs/TabsModeContext.js.map +1 -1
- package/dist/components/TabsItem/TabsItem.d.ts +5 -5
- package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
- package/dist/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/components/Tappable/Tappable.d.ts +3 -3
- package/dist/components/Tappable/Tappable.d.ts.map +1 -1
- package/dist/components/Tappable/Tappable.js.map +1 -1
- package/dist/components/Tappable/state.d.ts +2 -2
- package/dist/components/Tappable/state.d.ts.map +1 -1
- package/dist/components/Tappable/state.js.map +1 -1
- package/dist/components/Textarea/Textarea.d.ts +6 -6
- package/dist/components/Textarea/Textarea.d.ts.map +1 -1
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/ToolButton/ToolButton.d.ts +4 -4
- package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +6 -6
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/TooltipBase/TooltipBase.d.ts +10 -10
- package/dist/components/TooltipBase/TooltipBase.d.ts.map +1 -1
- package/dist/components/TooltipBase/TooltipBase.js.map +1 -1
- package/dist/components/Touch/Touch.d.ts +16 -16
- package/dist/components/Touch/Touch.d.ts.map +1 -1
- package/dist/components/Touch/Touch.js.map +1 -1
- package/dist/components/Typography/Caption/Caption.d.ts +1 -1
- package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
- package/dist/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts +1 -1
- package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
- package/dist/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
- package/dist/components/Typography/EllipsisText/EllipsisText.d.ts +3 -3
- package/dist/components/Typography/EllipsisText/EllipsisText.d.ts.map +1 -1
- package/dist/components/Typography/EllipsisText/EllipsisText.js.map +1 -1
- package/dist/components/Typography/Headline/Headline.d.ts +1 -1
- package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
- package/dist/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/components/Typography/Title/Title.d.ts +1 -1
- package/dist/components/Typography/Title/Title.d.ts.map +1 -1
- package/dist/components/Typography/Title/Title.js.map +1 -1
- package/dist/components/Typography/Typography.d.ts +6 -6
- package/dist/components/Typography/Typography.d.ts.map +1 -1
- package/dist/components/Typography/Typography.js.map +1 -1
- package/dist/components/UnstyledTextField/UnstyledTextField.d.ts +1 -1
- package/dist/components/UnstyledTextField/UnstyledTextField.d.ts.map +1 -1
- package/dist/components/UnstyledTextField/UnstyledTextField.js.map +1 -1
- package/dist/components/UsersStack/UsersStack.d.ts +6 -6
- package/dist/components/UsersStack/UsersStack.d.ts.map +1 -1
- package/dist/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/components/View/View.d.ts +4 -4
- package/dist/components/View/View.d.ts.map +1 -1
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.d.ts +12 -12
- package/dist/components/View/ViewInfinite.d.ts.map +1 -1
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components/WriteBar/WriteBar.d.ts +10 -10
- package/dist/components/WriteBar/WriteBar.d.ts.map +1 -1
- package/dist/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.d.ts +3 -3
- package/dist/components/WriteBarIcon/WriteBarIcon.d.ts.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/Accordion/Accordion.js +3 -0
- package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
- package/dist/cssm/components/Accordion/AccordionIcon.js +17 -0
- package/dist/cssm/components/Accordion/AccordionIcon.js.map +1 -0
- package/dist/cssm/components/Accordion/AccordionSummary.js +4 -7
- package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
- package/dist/cssm/components/ActionSheet/types.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +0 -1
- package/dist/cssm/components/ActionSheetItem/subcomponents/Radio/Radio.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/Alert/AlertBase.js.map +1 -1
- package/dist/cssm/components/Alert/AlertTypography.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cssm/components/AppRoot/types.js.map +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.module.css +0 -5
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/cssm/components/Badge/Badge.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.js.map +1 -1
- package/dist/cssm/components/Box/Box.js.map +1 -1
- package/dist/cssm/components/Button/Button.js +1 -1
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTimePicker.js.map +1 -1
- package/dist/cssm/components/Card/Card.js.map +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cssm/components/CarouselBase/Bullets.js.map +1 -1
- package/dist/cssm/components/CarouselBase/CarouselViewPort.js.map +1 -1
- package/dist/cssm/components/CarouselBase/ScrollArrows.js.map +1 -1
- package/dist/cssm/components/CarouselBase/helpers.js.map +1 -1
- package/dist/cssm/components/CarouselBase/types.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.js.map +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
- package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cssm/components/Checkbox/CheckboxInput/CheckboxInput.js.map +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cssm/components/ChipsInput/useChipsInput.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/Chip/Chip.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
- package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
- package/dist/cssm/components/Clickable/useState.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/ContentBadge/ContentBadge.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +2 -2
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.module.css +0 -6
- package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
- package/dist/cssm/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -1
- package/dist/cssm/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -1
- package/dist/cssm/components/CustomSelect/types.js.map +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.js +3 -12
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateInput/hooks.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +2 -11
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/DropZone/DropZone.js +1 -1
- package/dist/cssm/components/DropZone/DropZone.js.map +1 -1
- package/dist/cssm/components/DropZone/DropZoneGrid/DropZoneGrid.js.map +1 -0
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/cssm/components/Epic/Epic.js.map +1 -1
- package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/cssm/components/File/File.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cssm/components/Flex/Flex.js.map +1 -1
- package/dist/cssm/components/Flex/FlexItem/FlexItem.js.map +1 -1
- package/dist/cssm/components/FloatingArrow/FloatingArrow.js.map +1 -1
- package/dist/cssm/components/FocusTrap/FocusTrap.js +2 -4
- package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormFieldClearButton/FormFieldClearButton.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.module.css +1 -2
- package/dist/cssm/components/FormItem/context.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
- package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/cssm/components/Group/Group.js.map +1 -1
- package/dist/cssm/components/Group/GroupContainer.js.map +1 -1
- package/dist/cssm/components/Group/GroupExpandedContent.js.map +1 -1
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +20 -6
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
- package/dist/cssm/components/Image/Image.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.js +9 -5
- package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.module.css +11 -3
- package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
- package/dist/cssm/components/ImageBase/types.js.map +1 -1
- package/dist/cssm/components/Input/Input.js.map +1 -1
- package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
- package/dist/cssm/components/Link/Link.js.map +1 -1
- package/dist/cssm/components/List/List.js.map +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
- package/dist/cssm/components/ModalCard/types.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +0 -4
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/cssm/components/ModalOutlet/ModalOutlet.js.map +1 -1
- package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -1
- package/dist/cssm/components/ModalOverlay/ModalOverlay.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPageBase.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
- package/dist/cssm/components/ModalPage/types.js.map +1 -1
- package/dist/cssm/components/ModalPageFooter/ModalPageFooter.js.map +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cssm/components/ModalRoot/types.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalRootManager.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/NumberInputLike/NumberInputLike.js.map +1 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +12 -3
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.js +14 -6
- package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
- package/dist/cssm/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
- package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -1
- package/dist/cssm/components/Pagination/PaginationPage/PaginationPageEllipsis.js.map +1 -1
- package/dist/cssm/components/Pagination/PaginationPage/usePaginationPageClasses.js.map +1 -1
- package/dist/cssm/components/Panel/Panel.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.module.css +0 -5
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/cssm/components/PanelSpinner/PanelSpinner.js.map +1 -1
- package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cssm/components/Popover/Popover.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.js +13 -7
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/Progress/Progress.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
- package/dist/cssm/components/Radio/Radio.js +2 -2
- package/dist/cssm/components/Radio/Radio.js.map +1 -1
- package/dist/cssm/components/Radio/RadioInput/RadioInput.js.map +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.module.css +0 -4
- package/dist/cssm/components/Removable/RemovableIos.js.map +1 -1
- package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/RootComponent/RootComponent.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerSwapIcon.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/context.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/types.js.map +1 -1
- package/dist/cssm/components/ScrollArrow/ScrollArrow.js +14 -4
- package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cssm/components/SelectionControl/SelectionControl.js.map +1 -1
- package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
- package/dist/cssm/components/Separator/Separator.js.map +1 -1
- package/dist/cssm/components/SimpleCell/Chevron/Chevron.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SimpleGrid/SimpleGrid.js.map +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/cssm/components/Slider/Slider.js.map +1 -1
- package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.js.map +1 -1
- package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.module.css +2 -4
- package/dist/cssm/components/Snackbar/utils.js.map +1 -1
- package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
- package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.js.map +1 -1
- package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
- package/dist/cssm/components/Tabs/TabsModeContext.js.map +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
- package/dist/cssm/components/Tappable/state.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/TooltipBase/TooltipBase.js.map +1 -1
- package/dist/cssm/components/Touch/Touch.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
- package/dist/cssm/components/Typography/EllipsisText/EllipsisText.js.map +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
- package/dist/cssm/components/Typography/Typography.js.map +1 -1
- package/dist/cssm/components/UnstyledTextField/UnstyledTextField.js.map +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/View.module.css +1 -3
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cssm/helpers/math.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
- package/dist/cssm/hooks/useAutoDetectColorScheme.js +8 -27
- package/dist/cssm/hooks/useAutoDetectColorScheme.js.map +1 -1
- package/dist/cssm/hooks/useCalendar.js.map +1 -1
- package/dist/cssm/hooks/useDateInput.js.map +1 -1
- package/dist/cssm/hooks/useDraggableWithDomApi/types.js.map +1 -1
- package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
- package/dist/cssm/hooks/useFloatingElement.js.map +1 -1
- package/dist/cssm/hooks/useFocusTrap/FocusGuard.js.map +1 -1
- package/dist/cssm/hooks/useFocusTrap/useFocusTrap.js +10 -2
- package/dist/cssm/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
- package/dist/cssm/hooks/useFocusVisibleClassName.js.map +1 -1
- package/dist/cssm/hooks/useGlobalEscKeyDown.js.map +1 -1
- package/dist/cssm/hooks/useMediaQueryMatch.js +25 -0
- package/dist/cssm/hooks/useMediaQueryMatch.js.map +1 -0
- package/dist/cssm/hooks/useMergeProps.js.map +1 -1
- package/dist/cssm/hooks/useModalManager/types.js.map +1 -1
- package/dist/cssm/hooks/usePagination.js.map +1 -1
- package/dist/cssm/hooks/usePatchChildren.js.map +1 -1
- package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.js → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js} +2 -2
- package/dist/cssm/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js.map +1 -0
- package/dist/cssm/hooks/useSnackbarManager/components/SnackbarHolder.js +5 -2
- package/dist/cssm/hooks/useSnackbarManager/components/SnackbarHolder.js.map +1 -1
- package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarsContainer.js → SnackbarsContainer/SnackbarsContainer.js} +3 -3
- package/dist/cssm/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.js.map +1 -0
- package/dist/cssm/hooks/useSnackbarManager/types.js.map +1 -1
- package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
- package/dist/cssm/index.js +1 -1
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/SSR.js.map +1 -1
- package/dist/cssm/lib/accessibility.js.map +1 -1
- package/dist/cssm/lib/adaptivity/functions.js +6 -0
- package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
- package/dist/cssm/lib/animation/useCSSKeyframesAnimationController.js.map +1 -1
- package/dist/cssm/lib/animation/useCSSTransition.js +4 -2
- package/dist/cssm/lib/animation/useCSSTransition.js.map +1 -1
- package/dist/cssm/lib/animation/useReducedMotion.js +2 -20
- package/dist/cssm/lib/animation/useReducedMotion.js.map +1 -1
- package/dist/cssm/lib/calendar.js.map +1 -1
- package/dist/cssm/lib/date.js.map +1 -1
- package/dist/cssm/lib/dom.js.map +1 -1
- package/dist/cssm/lib/floating/functions.js.map +1 -1
- package/dist/cssm/lib/floating/types/component.js.map +1 -1
- package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +6 -4
- package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
- package/dist/cssm/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
- package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -2
- package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
- package/dist/cssm/lib/getNavId.js.map +1 -1
- package/dist/cssm/lib/layouts/resolveLayoutProps.js.map +1 -1
- package/dist/cssm/lib/layouts/types.js.map +1 -1
- package/dist/cssm/lib/select.js.map +1 -1
- package/dist/cssm/lib/sheet/useBottomSheet.js.map +1 -1
- package/dist/cssm/lib/tokens/TokensClassProvider.js.map +1 -1
- package/dist/cssm/lib/tokens/types.js.map +1 -1
- package/dist/cssm/lib/utils.js +3 -0
- package/dist/cssm/lib/utils.js.map +1 -1
- package/dist/cssm/types.js +4 -1
- package/dist/cssm/types.js.map +1 -1
- package/dist/helpers/math.d.ts +1 -1
- package/dist/helpers/math.d.ts.map +1 -1
- package/dist/helpers/math.js.map +1 -1
- package/dist/hooks/useAdaptivityWithJSMediaQueries.d.ts +5 -1
- package/dist/hooks/useAdaptivityWithJSMediaQueries.d.ts.map +1 -1
- package/dist/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
- package/dist/hooks/useAutoDetectColorScheme.d.ts.map +1 -1
- package/dist/hooks/useAutoDetectColorScheme.js +8 -27
- package/dist/hooks/useAutoDetectColorScheme.js.map +1 -1
- package/dist/hooks/useCalendar.d.ts +1 -1
- package/dist/hooks/useCalendar.d.ts.map +1 -1
- package/dist/hooks/useCalendar.js.map +1 -1
- package/dist/hooks/useDateInput.d.ts +5 -5
- package/dist/hooks/useDateInput.d.ts.map +1 -1
- package/dist/hooks/useDateInput.js.map +1 -1
- package/dist/hooks/useDraggableWithDomApi/types.d.ts +1 -1
- package/dist/hooks/useDraggableWithDomApi/types.d.ts.map +1 -1
- package/dist/hooks/useDraggableWithDomApi/types.js.map +1 -1
- package/dist/hooks/useEnsuredControl.d.ts +4 -4
- package/dist/hooks/useEnsuredControl.d.ts.map +1 -1
- package/dist/hooks/useEnsuredControl.js.map +1 -1
- package/dist/hooks/useFloatingElement.d.ts +4 -4
- package/dist/hooks/useFloatingElement.d.ts.map +1 -1
- package/dist/hooks/useFloatingElement.js.map +1 -1
- package/dist/hooks/useFocusTrap/FocusGuard.d.ts +1 -1
- package/dist/hooks/useFocusTrap/FocusGuard.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap/FocusGuard.js.map +1 -1
- package/dist/hooks/useFocusTrap/useFocusTrap.d.ts +6 -10
- package/dist/hooks/useFocusTrap/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap/useFocusTrap.js +10 -2
- package/dist/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
- package/dist/hooks/useFocusVisibleClassName.d.ts +3 -3
- package/dist/hooks/useFocusVisibleClassName.d.ts.map +1 -1
- package/dist/hooks/useFocusVisibleClassName.js.map +1 -1
- package/dist/hooks/useGlobalEscKeyDown.d.ts +1 -1
- package/dist/hooks/useGlobalEscKeyDown.d.ts.map +1 -1
- package/dist/hooks/useGlobalEscKeyDown.js.map +1 -1
- package/dist/hooks/useMediaQueryMatch.d.ts +6 -0
- package/dist/hooks/useMediaQueryMatch.d.ts.map +1 -0
- package/dist/hooks/useMediaQueryMatch.js +25 -0
- package/dist/hooks/useMediaQueryMatch.js.map +1 -0
- package/dist/hooks/useMergeProps.d.ts +1 -1
- package/dist/hooks/useMergeProps.d.ts.map +1 -1
- package/dist/hooks/useMergeProps.js.map +1 -1
- package/dist/hooks/useModalManager/types.d.ts +8 -8
- package/dist/hooks/useModalManager/types.d.ts.map +1 -1
- package/dist/hooks/useModalManager/types.js.map +1 -1
- package/dist/hooks/usePagination.d.ts +4 -4
- package/dist/hooks/usePagination.d.ts.map +1 -1
- package/dist/hooks/usePagination.js.map +1 -1
- package/dist/hooks/usePatchChildren.d.ts +1 -1
- package/dist/hooks/usePatchChildren.d.ts.map +1 -1
- package/dist/hooks/usePatchChildren.js.map +1 -1
- package/dist/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.d.ts → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.d.ts} +1 -1
- package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.d.ts.map +1 -0
- package/dist/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.js → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js} +10 -10
- package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.js.map +1 -0
- package/dist/hooks/useSnackbarManager/components/SnackbarHolder.d.ts.map +1 -1
- package/dist/hooks/useSnackbarManager/components/SnackbarHolder.js +5 -2
- package/dist/hooks/useSnackbarManager/components/SnackbarHolder.js.map +1 -1
- package/dist/hooks/useSnackbarManager/components/{SnackbarsContainer.d.ts → SnackbarsContainer/SnackbarsContainer.d.ts} +2 -2
- package/dist/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.d.ts.map +1 -0
- package/dist/hooks/useSnackbarManager/components/{SnackbarsContainer.js → SnackbarsContainer/SnackbarsContainer.js} +10 -10
- package/dist/hooks/useSnackbarManager/components/SnackbarsContainer/SnackbarsContainer.js.map +1 -0
- package/dist/hooks/useSnackbarManager/types.d.ts +11 -11
- package/dist/hooks/useSnackbarManager/types.d.ts.map +1 -1
- package/dist/hooks/useSnackbarManager/types.js.map +1 -1
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts +1 -1
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts.map +1 -1
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/SSR.d.ts +4 -4
- package/dist/lib/SSR.d.ts.map +1 -1
- package/dist/lib/SSR.js.map +1 -1
- package/dist/lib/accessibility.d.ts +1 -1
- package/dist/lib/accessibility.d.ts.map +1 -1
- package/dist/lib/accessibility.js.map +1 -1
- package/dist/lib/adaptivity/functions.d.ts.map +1 -1
- package/dist/lib/adaptivity/functions.js +6 -0
- package/dist/lib/adaptivity/functions.js.map +1 -1
- package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts +6 -6
- package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts.map +1 -1
- package/dist/lib/animation/useCSSKeyframesAnimationController.js.map +1 -1
- package/dist/lib/animation/useCSSTransition.d.ts +11 -11
- package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
- package/dist/lib/animation/useCSSTransition.js +4 -2
- package/dist/lib/animation/useCSSTransition.js.map +1 -1
- package/dist/lib/animation/useReducedMotion.d.ts.map +1 -1
- package/dist/lib/animation/useReducedMotion.js +2 -20
- package/dist/lib/animation/useReducedMotion.js.map +1 -1
- package/dist/lib/calendar.d.ts +5 -5
- package/dist/lib/calendar.d.ts.map +1 -1
- package/dist/lib/calendar.js.map +1 -1
- package/dist/lib/date.d.ts +10 -10
- package/dist/lib/date.d.ts.map +1 -1
- package/dist/lib/date.js.map +1 -1
- package/dist/lib/dom.d.ts +2 -2
- package/dist/lib/dom.d.ts.map +1 -1
- package/dist/lib/dom.js.map +1 -1
- package/dist/lib/floating/functions.d.ts +2 -2
- package/dist/lib/floating/functions.d.ts.map +1 -1
- package/dist/lib/floating/functions.js.map +1 -1
- package/dist/lib/floating/types/component.d.ts +9 -9
- package/dist/lib/floating/types/component.d.ts.map +1 -1
- package/dist/lib/floating/types/component.js.map +1 -1
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +14 -14
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +6 -4
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/types.d.ts +15 -15
- package/dist/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -2
- package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
- package/dist/lib/getNavId.d.ts +2 -2
- package/dist/lib/getNavId.d.ts.map +1 -1
- package/dist/lib/getNavId.js.map +1 -1
- package/dist/lib/layouts/resolveLayoutProps.d.ts +6 -6
- package/dist/lib/layouts/resolveLayoutProps.d.ts.map +1 -1
- package/dist/lib/layouts/resolveLayoutProps.js.map +1 -1
- package/dist/lib/layouts/types.d.ts +29 -29
- package/dist/lib/layouts/types.d.ts.map +1 -1
- package/dist/lib/layouts/types.js.map +1 -1
- package/dist/lib/select.d.ts +2 -2
- package/dist/lib/select.d.ts.map +1 -1
- package/dist/lib/select.js.map +1 -1
- package/dist/lib/sheet/useBottomSheet.d.ts +4 -4
- package/dist/lib/sheet/useBottomSheet.d.ts.map +1 -1
- package/dist/lib/sheet/useBottomSheet.js.map +1 -1
- package/dist/lib/tokens/TokensClassProvider.js.map +1 -1
- package/dist/lib/tokens/types.d.ts +2 -2
- package/dist/lib/tokens/types.d.ts.map +1 -1
- package/dist/lib/tokens/types.js.map +1 -1
- package/dist/lib/utils.d.ts +3 -3
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +3 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/types.d.ts +17 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -1
- package/dist/types.js.map +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +3 -3
- package/src/components/Accordion/Accordion.tsx +10 -6
- package/src/components/Accordion/AccordionIcon.tsx +31 -0
- package/src/components/Accordion/AccordionSummary.tsx +5 -9
- package/src/components/ActionSheet/ActionSheet.tsx +14 -10
- package/src/components/ActionSheet/ActionSheetContext.ts +3 -3
- package/src/components/ActionSheet/types.ts +8 -8
- package/src/components/ActionSheetItem/ActionSheetItem.module.css +0 -1
- package/src/components/ActionSheetItem/ActionSheetItem.module.css.d.ts.map +1 -1
- package/src/components/ActionSheetItem/ActionSheetItem.tsx +15 -15
- package/src/components/ActionSheetItem/subcomponents/Radio/Radio.tsx +1 -1
- package/src/components/AdaptivityProvider/AdaptivityContext.tsx +7 -7
- package/src/components/Alert/Alert.tsx +17 -17
- package/src/components/Alert/AlertBase.tsx +2 -2
- package/src/components/Alert/AlertTypography.tsx +1 -1
- package/src/components/AppRoot/AppRoot.tsx +9 -9
- package/src/components/AppRoot/AppRootContext.ts +4 -4
- package/src/components/AppRoot/AppRootPortal.tsx +2 -2
- package/src/components/AppRoot/ScrollContext.tsx +5 -5
- package/src/components/AppRoot/types.ts +4 -4
- package/src/components/AspectRatio/AspectRatio.tsx +2 -2
- package/src/components/Avatar/Avatar.module.css +0 -5
- package/src/components/Avatar/Avatar.module.css.d.ts.map +1 -1
- package/src/components/Avatar/Avatar.tsx +6 -2
- package/src/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.tsx +1 -1
- package/src/components/Badge/Badge.tsx +1 -1
- package/src/components/Banner/Banner.tsx +12 -12
- package/src/components/Box/Box.tsx +1 -1
- package/src/components/Button/Button.tsx +19 -12
- package/src/components/ButtonGroup/ButtonGroup.tsx +4 -4
- package/src/components/Calendar/Calendar.tsx +17 -17
- package/src/components/CalendarDay/CalendarDay.tsx +18 -18
- package/src/components/CalendarDays/CalendarDays.tsx +14 -14
- package/src/components/CalendarHeader/CalendarHeader.tsx +19 -19
- package/src/components/CalendarRange/CalendarRange.tsx +12 -12
- package/src/components/CalendarTime/CalendarTime.tsx +14 -14
- package/src/components/CalendarTime/CalendarTimePicker.tsx +3 -3
- package/src/components/Card/Card.tsx +1 -1
- package/src/components/CardGrid/CardGrid.tsx +2 -2
- package/src/components/CardScroll/CardScroll.tsx +3 -3
- package/src/components/CarouselBase/Bullets.tsx +1 -1
- package/src/components/CarouselBase/CarouselViewPort.tsx +1 -1
- package/src/components/CarouselBase/ScrollArrows.tsx +2 -2
- package/src/components/CarouselBase/helpers.ts +4 -4
- package/src/components/CarouselBase/types.ts +23 -23
- package/src/components/Cell/Cell.tsx +8 -8
- package/src/components/Cell/CellCheckbox/CellCheckbox.tsx +1 -1
- package/src/components/Cell/CellDragger/CellDragger.tsx +2 -2
- package/src/components/CellButton/CellButton.tsx +16 -16
- package/src/components/Checkbox/Checkbox.tsx +16 -9
- package/src/components/Checkbox/CheckboxInput/CheckboxInput.tsx +20 -14
- package/src/components/ChipsInput/ChipsInput.tsx +1 -1
- package/src/components/ChipsInput/useChipsInput.ts +3 -3
- package/src/components/ChipsInputBase/Chip/Chip.tsx +9 -9
- package/src/components/ChipsInputBase/types.ts +28 -22
- package/src/components/ChipsSelect/ChipsSelect.tsx +13 -13
- package/src/components/ChipsSelect/useChipsSelect.ts +22 -21
- package/src/components/Clickable/Clickable.tsx +1 -1
- package/src/components/Clickable/useState.tsx +13 -13
- package/src/components/ConfigProvider/ConfigProvider.tsx +2 -1
- package/src/components/ContentBadge/ContentBadge.tsx +4 -4
- package/src/components/ContentCard/ContentCard.tsx +8 -8
- package/src/components/Counter/Counter.tsx +4 -4
- package/src/components/CustomScrollView/CustomScrollView.tsx +6 -6
- package/src/components/CustomSelect/CustomSelect.module.css +0 -6
- package/src/components/CustomSelect/CustomSelect.module.css.d.ts.map +1 -1
- package/src/components/CustomSelect/CustomSelect.tsx +45 -31
- package/src/components/CustomSelect/CustomSelectClearButton.tsx +2 -2
- package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.tsx +20 -14
- package/src/components/CustomSelect/hooks/useDropdownOpenedController.ts +2 -2
- package/src/components/CustomSelect/hooks/useSelectedOptionController.ts +1 -1
- package/src/components/CustomSelect/types.ts +1 -1
- package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +8 -8
- package/src/components/CustomSelectOption/CustomSelectOption.tsx +9 -9
- package/src/components/DateInput/DateInput.tsx +27 -35
- package/src/components/DateInput/hooks.ts +7 -7
- package/src/components/DateRangeInput/DateRangeInput.tsx +28 -36
- package/src/components/DropZone/DropZone.tsx +5 -2
- package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.tsx +1 -1
- package/src/components/DropdownIcon/DropdownIcon.tsx +1 -1
- package/src/components/Epic/Epic.tsx +1 -1
- package/src/components/Epic/ScrollSaver.tsx +1 -1
- package/src/components/File/File.tsx +15 -9
- package/src/components/FixedLayout/FixedLayout.tsx +3 -3
- package/src/components/Flex/Flex.tsx +8 -8
- package/src/components/Flex/FlexItem/FlexItem.tsx +1 -1
- package/src/components/FloatingArrow/FloatingArrow.tsx +9 -9
- package/src/components/FocusTrap/FocusTrap.tsx +0 -3
- package/src/components/FormField/FormField.tsx +8 -8
- package/src/components/FormFieldClearButton/FormFieldClearButton.tsx +2 -2
- package/src/components/FormItem/FormItem.module.css +1 -2
- package/src/components/FormItem/FormItem.module.css.d.ts.map +1 -1
- package/src/components/FormItem/FormItem.tsx +10 -10
- package/src/components/FormItem/context.ts +2 -2
- package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +4 -4
- package/src/components/FormStatus/FormStatus.tsx +2 -2
- package/src/components/Gallery/Gallery.tsx +2 -2
- package/src/components/Gradient/Gradient.tsx +2 -2
- package/src/components/GridAvatar/GridAvatar.tsx +1 -1
- package/src/components/Group/Group.tsx +2 -2
- package/src/components/Group/GroupContainer.tsx +3 -3
- package/src/components/Group/GroupExpandedContent.tsx +1 -1
- package/src/components/Header/Header.tsx +11 -11
- package/src/components/HorizontalCell/HorizontalCell.tsx +7 -7
- package/src/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.tsx +4 -4
- package/src/components/HorizontalScroll/HorizontalScroll.tsx +63 -18
- package/src/components/IconButton/IconButton.tsx +1 -1
- package/src/components/Image/Image.tsx +5 -5
- package/src/components/ImageBase/ImageBase.module.css +11 -3
- package/src/components/ImageBase/ImageBase.module.css.d.ts.map +1 -1
- package/src/components/ImageBase/ImageBase.tsx +27 -17
- package/src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.tsx +1 -1
- package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.tsx +3 -3
- package/src/components/ImageBase/ImageBaseOverlay/types.ts +3 -3
- package/src/components/ImageBase/types.ts +3 -3
- package/src/components/Input/Input.tsx +13 -7
- package/src/components/InputLike/InputLike.tsx +3 -3
- package/src/components/Link/Link.tsx +4 -4
- package/src/components/List/List.tsx +1 -1
- package/src/components/MiniInfoCell/MiniInfoCell.tsx +5 -5
- package/src/components/ModalCard/ModalCardInternal.tsx +1 -1
- package/src/components/ModalCard/types.ts +13 -13
- package/src/components/ModalCardBase/ModalCardBase.module.css +0 -4
- package/src/components/ModalCardBase/ModalCardBase.module.css.d.ts.map +1 -1
- package/src/components/ModalCardBase/ModalCardBase.tsx +14 -14
- package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -1
- package/src/components/ModalOutlet/ModalOutlet.tsx +3 -3
- package/src/components/ModalOutsideButton/ModalOutsideButton.tsx +1 -1
- package/src/components/ModalOverlay/ModalOverlay.tsx +7 -7
- package/src/components/ModalPage/ModalPageBase.tsx +2 -2
- package/src/components/ModalPage/ModalPageInternal.tsx +2 -2
- package/src/components/ModalPage/types.ts +27 -27
- package/src/components/ModalPageFooter/ModalPageFooter.tsx +2 -2
- package/src/components/ModalPageHeader/ModalPageHeader.tsx +1 -1
- package/src/components/ModalRoot/types.ts +15 -15
- package/src/components/ModalRoot/useModalRootManager.tsx +19 -19
- package/src/components/NativeSelect/NativeSelect.tsx +20 -14
- package/src/components/NumberInputLike/NumberInputLike.tsx +3 -3
- package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +16 -8
- package/src/components/OnboardingTooltip/OnboardingTooltipContainer.tsx +1 -1
- package/src/components/Pagination/Pagination.tsx +27 -25
- package/src/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.tsx +5 -3
- package/src/components/Pagination/PaginationPage/PaginationPageButton.tsx +3 -3
- package/src/components/Pagination/PaginationPage/PaginationPageEllipsis.tsx +1 -1
- package/src/components/Pagination/PaginationPage/usePaginationPageClasses.ts +3 -3
- package/src/components/Panel/Panel.tsx +3 -3
- package/src/components/PanelHeader/PanelHeader.module.css +0 -5
- package/src/components/PanelHeader/PanelHeader.module.css.d.ts.map +1 -1
- package/src/components/PanelHeader/PanelHeader.tsx +14 -12
- package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +2 -2
- package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +3 -3
- package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +3 -3
- package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +3 -3
- package/src/components/PanelSpinner/PanelSpinner.tsx +1 -1
- package/src/components/Placeholder/Placeholder.tsx +5 -5
- package/src/components/PopoutWrapper/PopoutWrapper.tsx +6 -6
- package/src/components/Popover/Popover.tsx +5 -5
- package/src/components/Popper/Popper.tsx +17 -15
- package/src/components/Progress/Progress.tsx +4 -4
- package/src/components/PullToRefresh/PullToRefresh.tsx +2 -2
- package/src/components/PullToRefresh/PullToRefreshSpinner.tsx +4 -4
- package/src/components/Radio/Radio.tsx +18 -12
- package/src/components/Radio/RadioInput/RadioInput.tsx +15 -9
- package/src/components/RadioGroup/RadioGroup.tsx +1 -1
- package/src/components/Removable/Removable.module.css +0 -4
- package/src/components/Removable/Removable.module.css.d.ts.map +1 -1
- package/src/components/Removable/Removable.tsx +13 -10
- package/src/components/Removable/RemovableIos.tsx +6 -3
- package/src/components/RichCell/RichCell.tsx +15 -15
- package/src/components/Root/Root.tsx +3 -3
- package/src/components/RootComponent/RootComponent.tsx +2 -2
- package/src/components/ScreenSpinner/ScreenSpinnerSwapIcon.tsx +1 -1
- package/src/components/ScreenSpinner/context.ts +2 -2
- package/src/components/ScreenSpinner/types.tsx +5 -5
- package/src/components/ScrollArrow/ScrollArrow.tsx +27 -4
- package/src/components/Search/Search.tsx +28 -22
- package/src/components/SegmentedControl/SegmentedControl.tsx +6 -6
- package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +3 -3
- package/src/components/SelectMimicry/SelectMimicry.tsx +3 -3
- package/src/components/SelectTypography/SelectTypography.tsx +1 -1
- package/src/components/SelectionControl/SelectionControl.tsx +1 -1
- package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.tsx +2 -2
- package/src/components/Separator/Separator.tsx +5 -5
- package/src/components/SimpleCell/Chevron/Chevron.tsx +1 -1
- package/src/components/SimpleCell/SimpleCell.tsx +14 -14
- package/src/components/SimpleGrid/SimpleGrid.tsx +6 -6
- package/src/components/Skeleton/Skeleton.tsx +5 -5
- package/src/components/Slider/Slider.tsx +19 -17
- package/src/components/Slider/SliderThumb/SliderThumb.tsx +9 -7
- package/src/components/Snackbar/Snackbar.tsx +19 -13
- package/src/components/Snackbar/subcomponents/Basic/Basic.module.css +2 -4
- package/src/components/Snackbar/subcomponents/Basic/Basic.module.css.d.ts.map +1 -1
- package/src/components/Snackbar/subcomponents/Basic/Basic.tsx +6 -6
- package/src/components/Snackbar/utils.ts +1 -1
- package/src/components/Spacing/Spacing.tsx +2 -2
- package/src/components/Spinner/Spinner.tsx +4 -4
- package/src/components/SplitCol/SplitCol.tsx +7 -7
- package/src/components/SplitLayout/SplitLayout.tsx +15 -9
- package/src/components/SubnavigationBar/SubnavigationBar.tsx +2 -2
- package/src/components/SubnavigationButton/SubnavigationButton.tsx +8 -8
- package/src/components/Switch/Switch.tsx +15 -9
- package/src/components/Tabbar/Tabbar.tsx +2 -2
- package/src/components/TabbarItem/TabbarItem.tsx +3 -3
- package/src/components/Tabs/Tabs.tsx +7 -7
- package/src/components/Tabs/TabsModeContext.ts +1 -1
- package/src/components/TabsItem/TabsItem.tsx +5 -5
- package/src/components/Tappable/Tappable.tsx +3 -3
- package/src/components/Tappable/state.tsx +2 -2
- package/src/components/Textarea/Textarea.tsx +14 -10
- package/src/components/ToolButton/ToolButton.tsx +4 -4
- package/src/components/Tooltip/Tooltip.tsx +6 -6
- package/src/components/TooltipBase/TooltipBase.tsx +10 -10
- package/src/components/Touch/Touch.tsx +16 -16
- package/src/components/Typography/Caption/Caption.tsx +1 -1
- package/src/components/Typography/DisplayTitle/DisplayTitle.tsx +1 -1
- package/src/components/Typography/EllipsisText/EllipsisText.tsx +3 -3
- package/src/components/Typography/Headline/Headline.tsx +1 -1
- package/src/components/Typography/Title/Title.tsx +1 -1
- package/src/components/Typography/Typography.tsx +6 -6
- package/src/components/UnstyledTextField/UnstyledTextField.tsx +1 -1
- package/src/components/UsersStack/UsersStack.tsx +6 -6
- package/src/components/View/View.module.css +1 -3
- package/src/components/View/View.module.css.d.ts.map +1 -1
- package/src/components/View/View.tsx +4 -4
- package/src/components/View/ViewInfinite.tsx +11 -11
- package/src/components/WriteBar/WriteBar.tsx +21 -15
- package/src/components/WriteBarIcon/WriteBarIcon.tsx +3 -3
- package/src/helpers/math.ts +1 -1
- package/src/hooks/useAdaptivityWithJSMediaQueries.ts +3 -1
- package/src/hooks/useAutoDetectColorScheme.ts +8 -30
- package/src/hooks/useCalendar.ts +2 -2
- package/src/hooks/useDateInput.ts +5 -5
- package/src/hooks/useDraggableWithDomApi/types.ts +1 -1
- package/src/hooks/useEnsuredControl.ts +4 -4
- package/src/hooks/useFloatingElement.tsx +4 -4
- package/src/hooks/useFocusTrap/FocusGuard.tsx +1 -1
- package/src/hooks/useFocusTrap/useFocusTrap.tsx +17 -15
- package/src/hooks/useFocusVisibleClassName.ts +3 -3
- package/src/hooks/useGlobalEscKeyDown.ts +2 -2
- package/src/hooks/useMediaQueryMatch.ts +34 -0
- package/src/hooks/useMergeProps.ts +2 -2
- package/src/hooks/useModalManager/types.ts +8 -8
- package/src/hooks/usePagination.ts +4 -4
- package/src/hooks/usePatchChildren.ts +1 -1
- package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.tsx → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.tsx} +3 -3
- package/src/hooks/useSnackbarManager/components/SnackbarHolder.tsx +6 -2
- package/src/hooks/useSnackbarManager/components/{SnackbarsContainer.tsx → SnackbarsContainer/SnackbarsContainer.tsx} +6 -6
- package/src/hooks/useSnackbarManager/types.ts +11 -11
- package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +1 -1
- package/src/index.ts +6 -2
- package/src/lib/SSR.tsx +4 -4
- package/src/lib/accessibility.ts +1 -1
- package/src/lib/adaptivity/functions.ts +10 -1
- package/src/lib/animation/useCSSKeyframesAnimationController.ts +6 -6
- package/src/lib/animation/useCSSTransition.ts +15 -13
- package/src/lib/animation/useReducedMotion.ts +2 -25
- package/src/lib/calendar.ts +5 -2
- package/src/lib/date.ts +11 -11
- package/src/lib/dom.tsx +2 -2
- package/src/lib/floating/functions.ts +2 -2
- package/src/lib/floating/types/component.ts +9 -9
- package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +26 -19
- package/src/lib/floating/useFloatingWithInteractions/types.ts +15 -15
- package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +2 -2
- package/src/lib/getNavId.ts +2 -2
- package/src/lib/layouts/resolveLayoutProps.ts +3 -3
- package/src/lib/layouts/types.ts +29 -29
- package/src/lib/select.ts +2 -2
- package/src/lib/sheet/useBottomSheet.ts +4 -4
- package/src/lib/tokens/TokensClassProvider.tsx +1 -1
- package/src/lib/tokens/types.ts +2 -2
- package/src/lib/utils.ts +8 -3
- package/src/types.ts +18 -10
- package/dist/components/DropZone/components/DropZoneGrid.d.ts.map +0 -1
- package/dist/components/DropZone/components/DropZoneGrid.js.map +0 -1
- package/dist/cssm/components/DropZone/components/DropZoneGrid.js.map +0 -1
- package/dist/cssm/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.js.map +0 -1
- package/dist/cssm/hooks/useSnackbarManager/components/SnackbarsContainer.js.map +0 -1
- package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.d.ts.map +0 -1
- package/dist/hooks/useSnackbarManager/components/SnackbarAnimatedWrapper.js.map +0 -1
- package/dist/hooks/useSnackbarManager/components/SnackbarsContainer.d.ts.map +0 -1
- package/dist/hooks/useSnackbarManager/components/SnackbarsContainer.js.map +0 -1
- /package/dist/cssm/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.js +0 -0
- /package/dist/cssm/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css +0 -0
- /package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css} +0 -0
- /package/dist/cssm/hooks/useSnackbarManager/components/{SnackbarsContainer.module.css → SnackbarsContainer/SnackbarsContainer.module.css} +0 -0
- /package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css +0 -0
- /package/src/components/DropZone/{components → DropZoneGrid}/DropZoneGrid.module.css.d.ts.map +0 -0
- /package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css} +0 -0
- /package/src/hooks/useSnackbarManager/components/{SnackbarAnimatedWrapper.module.css.d.ts.map → SnackbarAnimatedWrapper/SnackbarAnimatedWrapper.module.css.d.ts.map} +0 -0
- /package/src/hooks/useSnackbarManager/components/{SnackbarsContainer.module.css → SnackbarsContainer/SnackbarsContainer.module.css} +0 -0
- /package/src/hooks/useSnackbarManager/components/{SnackbarsContainer.module.css.d.ts.map → SnackbarsContainer/SnackbarsContainer.module.css.d.ts.map} +0 -0
|
@@ -6,13 +6,16 @@ import { useConfigDirection } from "../../hooks/useConfigDirection.js";
|
|
|
6
6
|
import { useExternRef } from "../../hooks/useExternRef.js";
|
|
7
7
|
import { useFocusVisible } from "../../hooks/useFocusVisible.js";
|
|
8
8
|
import { useFocusVisibleClassName } from "../../hooks/useFocusVisibleClassName.js";
|
|
9
|
+
import { useMergeProps } from "../../hooks/useMergeProps.js";
|
|
9
10
|
import { easeInOutSine } from "../../lib/fx.js";
|
|
10
11
|
import { mergeCalls } from "../../lib/mergeCalls.js";
|
|
11
12
|
import { useIsomorphicLayoutEffect } from "../../lib/useIsomorphicLayoutEffect.js";
|
|
13
|
+
import { warnOnce } from "../../lib/warnOnce.js";
|
|
12
14
|
import { useHover } from "../Clickable/useState.js";
|
|
13
15
|
import { RootComponent } from "../RootComponent/RootComponent.js";
|
|
14
16
|
import { ScrollArrow } from "../ScrollArrow/ScrollArrow.js";
|
|
15
17
|
import styles from "./HorizontalScroll.module.css";
|
|
18
|
+
const warn = warnOnce('HorizontalScroll');
|
|
16
19
|
/**
|
|
17
20
|
* Timing method.
|
|
18
21
|
*/ function now() {
|
|
@@ -86,8 +89,11 @@ function doScroll({ scrollElement, getScrollPosition, animationQueue, onScrollTo
|
|
|
86
89
|
}
|
|
87
90
|
/**
|
|
88
91
|
* @see https://vkui.io/components/horizontal-scroll
|
|
89
|
-
*/ export const HorizontalScroll = ({ children, getScrollToLeft, getScrollToRight, showArrows = true, arrowSize = 'm', arrowOffsetY, scrollAnimationDuration = SCROLL_ONE_FRAME_TIME, getRef, scrollOnAnyWheel = false, prevButtonTestId, nextButtonTestId, // ContentWrapper
|
|
90
|
-
ContentWrapperComponent = 'div', contentWrapperRef, contentWrapperClassName, withPadding, onPointerEnter, onPointerLeave, onMouseEnter, ...restProps })=>{
|
|
92
|
+
*/ export const HorizontalScroll = ({ children, getScrollToLeft, getScrollToRight, showArrows = true, arrowSize = 'm', arrowOffsetY, arrowOffsetX, scrollAnimationDuration = SCROLL_ONE_FRAME_TIME, getRef, scrollOnAnyWheel = false, prevButtonTestId, nextButtonTestId, // ContentWrapper
|
|
93
|
+
ContentWrapperComponent = 'div', contentWrapperRef, contentWrapperClassName, withPadding, onPointerEnter, onPointerLeave, onMouseEnter, slotProps, ...restProps })=>{
|
|
94
|
+
/* istanbul ignore if: не проверяем в тестах */ if (process.env.NODE_ENV === 'development' && (prevButtonTestId || nextButtonTestId)) {
|
|
95
|
+
warn("Свойства `prevButtonTestId` и `nextButtonTestId` устаревшие, используйте `slotProps={ prevArrow: { 'data-testid': ... }, nextArrow: { 'data-testid': ... } }`");
|
|
96
|
+
}
|
|
91
97
|
const [canScrollStart, setCanScrollStart] = React.useState(false);
|
|
92
98
|
const [canScrollEnd, setCanScrollEnd] = React.useState(false);
|
|
93
99
|
const { focusVisible, ...focusEvents } = useFocusVisible();
|
|
@@ -192,6 +198,14 @@ ContentWrapperComponent = 'div', contentWrapperRef, contentWrapperClassName, wit
|
|
|
192
198
|
onPointerEnter,
|
|
193
199
|
onPointerLeave
|
|
194
200
|
});
|
|
201
|
+
const prevArrowProps = useMergeProps({
|
|
202
|
+
className: classNames(styles.arrow, styles.arrowLeft),
|
|
203
|
+
onClick: scrollToStart
|
|
204
|
+
}, slotProps?.prevArrow);
|
|
205
|
+
const nextArrowProps = useMergeProps({
|
|
206
|
+
className: classNames(styles.arrow, styles.arrowRight),
|
|
207
|
+
onClick: scrollToEnd
|
|
208
|
+
}, slotProps?.nextArrow);
|
|
195
209
|
return /*#__PURE__*/ _jsxs(RootComponent, {
|
|
196
210
|
...restProps,
|
|
197
211
|
...handlers,
|
|
@@ -203,21 +217,21 @@ ContentWrapperComponent = 'div', contentWrapperRef, contentWrapperClassName, wit
|
|
|
203
217
|
"data-testid": prevButtonTestId,
|
|
204
218
|
size: arrowSize,
|
|
205
219
|
offsetY: arrowOffsetY,
|
|
220
|
+
offsetX: arrowOffsetX,
|
|
206
221
|
direction: "left",
|
|
207
222
|
"aria-hidden": true,
|
|
208
223
|
tabIndex: -1,
|
|
209
|
-
|
|
210
|
-
onClick: scrollToStart
|
|
224
|
+
...prevArrowProps
|
|
211
225
|
}),
|
|
212
226
|
showArrows && canScrollEnd && /*#__PURE__*/ _jsx(ScrollArrow, {
|
|
213
227
|
"data-testid": nextButtonTestId,
|
|
214
228
|
size: arrowSize,
|
|
215
229
|
offsetY: arrowOffsetY,
|
|
230
|
+
offsetX: arrowOffsetX,
|
|
216
231
|
direction: "right",
|
|
217
232
|
"aria-hidden": true,
|
|
218
233
|
tabIndex: -1,
|
|
219
|
-
|
|
220
|
-
onClick: scrollToEnd
|
|
234
|
+
...nextArrowProps
|
|
221
235
|
}),
|
|
222
236
|
/*#__PURE__*/ _jsx("div", {
|
|
223
237
|
className: classNames(styles.in, focusVisibleClassNames),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/HorizontalScroll/HorizontalScroll.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useFocusVisible } from '../../hooks/useFocusVisible';\nimport { useFocusVisibleClassName } from '../../hooks/useFocusVisibleClassName';\nimport { easeInOutSine } from '../../lib/fx';\nimport { mergeCalls } from '../../lib/mergeCalls';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { HasRef, HTMLAttributesWithRootRef } from '../../types';\nimport { useHover } from '../Clickable/useState';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { ScrollArrow, type ScrollArrowProps } from '../ScrollArrow/ScrollArrow';\nimport styles from './HorizontalScroll.module.css';\n\n/* eslint-disable jsdoc/require-jsdoc */\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/* eslint-enable jsdoc/require-jsdoc */\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 /**\n * Размер стрелок.\n */\n arrowSize?: ScrollArrowProps['size'];\n /**\n * Смещает иконки кнопок навигации по вертикали.\n */\n arrowOffsetY?: number | string;\n /**\n * Показывать ли стрелки.\n */\n showArrows?: boolean | 'always';\n /**\n * Длительность анимации скролла.\n */\n scrollAnimationDuration?: number;\n /**\n * Добавляет возможность прокручивать контент на любое колесо мыши.\n * По умолчанию прокручивается как любой горизонтальный контент через shift.\n */\n scrollOnAnyWheel?: boolean;\n /**\n * Передает атрибут `data-testid` для кнопки прокрутки горизонтального скролла в направлении предыдущего элемента.\n */\n prevButtonTestId?: string;\n /**\n * Передает атрибут `data-testid` для кнопки прокрутки горизонтального скролла в направлении следующего элемента.\n */\n nextButtonTestId?: string;\n /**\n * Позволяет поменять тег используемый для обертки над контентом, прокинутым в `children`.\n */\n ContentWrapperComponent?: React.ElementType;\n /**\n * `ref` для обертки над контентом, прокинутым в `children`.\n */\n contentWrapperRef?: React.Ref<HTMLElement>;\n /**\n * Специфичный `className` для обертки над контентом, прокинутым в `children`.\n */\n contentWrapperClassName?: string;\n /**\n * Добавляет отступы для контента внутри.\n */\n withPadding?: 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 const startScrollLeft = roundUpElementScrollLeft(scrollElement);\n const remappedStartScrollLeft = startScrollLeft * (textDirection === 'rtl' ? -1 : 1);\n\n let endScrollLeft = getScrollPosition(remappedStartScrollLeft);\n\n const diff = endScrollLeft - remappedStartScrollLeft;\n if (textDirection === 'rtl') {\n endScrollLeft = startScrollLeft - diff;\n }\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://vkui.io/components/horizontal-scroll\n */\nexport const HorizontalScroll = ({\n children,\n getScrollToLeft,\n getScrollToRight,\n showArrows = true,\n arrowSize = 'm',\n arrowOffsetY,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n getRef,\n scrollOnAnyWheel = false,\n prevButtonTestId,\n nextButtonTestId,\n // ContentWrapper\n ContentWrapperComponent = 'div',\n contentWrapperRef,\n contentWrapperClassName,\n withPadding,\n onPointerEnter,\n onPointerLeave,\n onMouseEnter,\n ...restProps\n}: HorizontalScrollProps): React.ReactNode => {\n const [canScrollStart, setCanScrollStart] = React.useState(false);\n const [canScrollEnd, setCanScrollEnd] = React.useState(false);\n const { focusVisible, ...focusEvents } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({\n focusVisible,\n });\n\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\n\n const isCustomScrollingRef = React.useRef(false);\n\n const scrollerRef = useExternRef(getRef);\n\n const animationQueue = React.useRef<VoidFunction[]>([]);\n\n const { isHovered, ...hoverHandlers } = useHover();\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 scrollToStart = React.useCallback(() => {\n const getScrollPosition =\n getScrollToLeft ?? ((i: number) => i - scrollerRef.current!.offsetWidth);\n scrollTo(getScrollPosition);\n }, [getScrollToLeft, scrollTo, scrollerRef]);\n\n const scrollToEnd = 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 && scrollerRef.current && !isCustomScrollingRef.current) {\n const scrollElement = scrollerRef.current;\n const scrollLeft = scrollElement.scrollLeft;\n\n setCanScrollStart(isRtl ? scrollLeft < 0 : scrollLeft > 0);\n setCanScrollEnd(\n Math.abs(roundUpElementScrollLeft(scrollElement)) + scrollElement.offsetWidth <\n scrollElement.scrollWidth,\n );\n }\n }, [showArrows, scrollerRef, isRtl]);\n\n React.useEffect(calculateArrowsVisibility, [calculateArrowsVisibility, children]);\n\n useIsomorphicLayoutEffect(\n function addWheelEventHandler() {\n const scrollEl = scrollerRef.current;\n if (!scrollEl) {\n return noop;\n }\n /**\n * Прокрутка с помощью любого колеса мыши.\n */\n const onWheel = (e: WheelEvent) => {\n scrollerRef.current!.scrollBy({ left: e.deltaX + e.deltaY, behavior: 'auto' });\n e.preventDefault();\n };\n\n const listenerOptions = { passive: false };\n\n if (scrollOnAnyWheel) {\n scrollEl.addEventListener('wheel', onWheel, listenerOptions);\n }\n scrollEl.addEventListener('scroll', calculateArrowsVisibility, listenerOptions);\n\n return () => {\n if (scrollOnAnyWheel) {\n // @ts-expect-error: TS2769 В интерфейсе EventListenerOptions для wheel нет passive свойства\n scrollEl.removeEventListener('wheel', onWheel, listenerOptions);\n }\n // @ts-expect-error: TS2769 В интерфейсе EventListenerOptions для scroll нет passive свойства\n scrollEl.removeEventListener('scroll', calculateArrowsVisibility, listenerOptions);\n };\n },\n [scrollOnAnyWheel, calculateArrowsVisibility, scrollerRef],\n );\n\n const handlers = mergeCalls(hoverHandlers, { onPointerEnter, onPointerLeave });\n\n return (\n <RootComponent\n {...restProps}\n {...handlers}\n baseClassName={classNames(\n styles.host,\n 'vkuiInternalHorizontalScroll',\n (showArrows === 'always' || isHovered) && styles.showArrows,\n isRtl && styles.rtl,\n withPadding && styles.withPadding,\n )}\n // FIXME: onMouseEnter из restProps затирается, а при callMultiply орет линтер на рефы.\n onMouseEnter={calculateArrowsVisibility}\n >\n {showArrows && canScrollStart && (\n <ScrollArrow\n data-testid={prevButtonTestId}\n size={arrowSize}\n offsetY={arrowOffsetY}\n direction=\"left\"\n aria-hidden\n tabIndex={-1}\n className={classNames(styles.arrow, styles.arrowLeft)}\n onClick={scrollToStart}\n />\n )}\n {showArrows && canScrollEnd && (\n <ScrollArrow\n data-testid={nextButtonTestId}\n size={arrowSize}\n offsetY={arrowOffsetY}\n direction=\"right\"\n aria-hidden\n tabIndex={-1}\n className={classNames(styles.arrow, styles.arrowRight)}\n onClick={scrollToEnd}\n />\n )}\n <div\n className={classNames(styles.in, focusVisibleClassNames)}\n ref={scrollerRef}\n {...focusEvents}\n >\n <ContentWrapperComponent\n className={classNames(styles.inWrapper, contentWrapperClassName)}\n ref={contentWrapperRef}\n >\n {children}\n </ContentWrapperComponent>\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","noop","useConfigDirection","useExternRef","useFocusVisible","useFocusVisibleClassName","easeInOutSine","mergeCalls","useIsomorphicLayoutEffect","useHover","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","remappedStartScrollLeft","endScrollLeft","diff","abs","startTime","scroll","time","elapsed","min","currentScrollLeft","scrollEnd","max","requestAnimationFrame","shift","length","HorizontalScroll","children","getScrollToLeft","getScrollToRight","showArrows","arrowSize","arrowOffsetY","getRef","scrollOnAnyWheel","prevButtonTestId","nextButtonTestId","ContentWrapperComponent","contentWrapperRef","contentWrapperClassName","withPadding","onPointerEnter","onPointerLeave","onMouseEnter","restProps","canScrollStart","setCanScrollStart","useState","canScrollEnd","setCanScrollEnd","focusVisible","focusEvents","focusVisibleClassNames","direction","isRtl","isCustomScrollingRef","useRef","scrollerRef","isHovered","hoverHandlers","scrollTo","useCallback","current","push","firstElementChild","scrollWidth","scrollToStart","i","scrollToEnd","calculateArrowsVisibility","useEffect","addWheelEventHandler","scrollEl","onWheel","e","scrollBy","left","deltaX","deltaY","behavior","preventDefault","listenerOptions","passive","addEventListener","removeEventListener","handlers","baseClassName","host","rtl","data-testid","size","offsetY","aria-hidden","tabIndex","className","arrow","arrowLeft","onClick","arrowRight","div","in","ref","inWrapper"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,kBAAkB,QAAQ,oCAAiC;AACpE,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,eAAe,QAAQ,iCAA8B;AAC9D,SAASC,wBAAwB,QAAQ,0CAAuC;AAChF,SAASC,aAAa,QAAQ,kBAAe;AAC7C,SAASC,UAAU,QAAQ,0BAAuB;AAClD,SAASC,yBAAyB,QAAQ,yCAAsC;AAEhF,SAASC,QAAQ,QAAQ,2BAAwB;AACjD,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,WAAW,QAA+B,gCAA6B;AAChF,OAAOC,YAAY,gCAAgC;AAgFnD;;CAEC,GACD,SAASC;IACP,OAAOC,eAAeA,YAAYD,GAAG,GAAGC,YAAYD,GAAG,KAAKE,KAAKF,GAAG;AACtE;AAEA;;;;;;;;;;;CAWC,GACD,SAASG,qBAAqBC,KAAa;IACzC,OAAOA,QAAQ,IAAIC,KAAKC,IAAI,CAACF,SAASC,KAAKE,KAAK,CAACH;AACnD;AAEA;;;CAGC,GACD,MAAMI,2BAA2B,CAACC,KAAoBN,qBAAqBM,GAAGC,UAAU;AAExF;;;;CAIC,GACD,MAAMC,wBAAwB;AAE9B,SAASC,SAAS,EAChBC,aAAa,EACbC,iBAAiB,EACjBC,cAAc,EACdC,mBAAmB,EACnBC,WAAW,EACXC,aAAa,EACbC,kBAAkB,EAClBC,uBAAuB,EACvBC,aAAa,EACC;IACd,IAAI,CAACR,iBAAiB,CAACC,mBAAmB;QACxC;IACF;IAEA;;GAEC,GACD,MAAMQ,oBACJ,AAACD,CAAAA,kBAAkB,QAAQ,IAAI,CAAC,CAAA,IAAMF,CAAAA,qBAAqBN,cAAcU,WAAW,AAAD;IAErF,MAAMC,kBAAkBhB,yBAAyBK;IACjD,MAAMY,0BAA0BD,kBAAmBH,CAAAA,kBAAkB,QAAQ,CAAC,IAAI,CAAA;IAElF,IAAIK,gBAAgBZ,kBAAkBW;IAEtC,MAAME,OAAOD,gBAAgBD;IAC7B,IAAIJ,kBAAkB,OAAO;QAC3BK,gBAAgBF,kBAAkBG;IACpC;IAEAT;IAEA;;GAEC,GACD,IAAIM,kBAAkBE,gBAAgB,GAAG;QACvCA,gBAAgB;IAClB;IAEA,IAAIrB,KAAKuB,GAAG,CAACF,kBAAkBrB,KAAKuB,GAAG,CAACN,oBAAoB;QAC1DN;QACAU,gBAAgBJ;IAClB;IAEA,MAAMO,YAAY7B;IAEjB,CAAA,SAAS8B;QACR,MAAMC,OAAO/B;QACb,MAAMgC,UAAU3B,KAAK4B,GAAG,CAAC,AAACF,CAAAA,OAAOF,SAAQ,IAAKT,yBAAyB;QAEvE,MAAMhB,QAAQX,cAAcuC;QAE5B,MAAME,oBAAoBV,kBAAkB,AAACE,CAAAA,gBAAgBF,eAAc,IAAKpB;QAChFS,cAAcH,UAAU,GAAGP,qBAAqB+B;QAEhD,MAAMC,YACJd,kBAAkB,QAAQhB,KAAK+B,GAAG,CAAC,GAAGV,iBAAiBrB,KAAK4B,GAAG,CAAC,GAAGP;QACrE,IAAIlB,yBAAyBK,mBAAmBsB,aAAaH,YAAY,GAAG;YAC1EK,sBAAsBP;YACtB;QACF;QAEAb;QACAF,eAAeuB,KAAK;QACpB,IAAIvB,eAAewB,MAAM,GAAG,GAAG;YAC7BxB,cAAc,CAAC,EAAE;QACnB;IACF,CAAA;AACF;AAEA;;CAEC,GACD,OAAO,MAAMyB,mBAAmB,CAAC,EAC/BC,QAAQ,EACRC,eAAe,EACfC,gBAAgB,EAChBC,aAAa,IAAI,EACjBC,YAAY,GAAG,EACfC,YAAY,EACZ1B,0BAA0BT,qBAAqB,EAC/CoC,MAAM,EACNC,mBAAmB,KAAK,EACxBC,gBAAgB,EAChBC,gBAAgB,EAChB,iBAAiB;AACjBC,0BAA0B,KAAK,EAC/BC,iBAAiB,EACjBC,uBAAuB,EACvBC,WAAW,EACXC,cAAc,EACdC,cAAc,EACdC,YAAY,EACZ,GAAGC,WACmB;IACtB,MAAM,CAACC,gBAAgBC,kBAAkB,GAAG1E,MAAM2E,QAAQ,CAAC;IAC3D,MAAM,CAACC,cAAcC,gBAAgB,GAAG7E,MAAM2E,QAAQ,CAAC;IACvD,MAAM,EAAEG,YAAY,EAAE,GAAGC,aAAa,GAAG1E;IACzC,MAAM2E,yBAAyB1E,yBAAyB;QACtDwE;IACF;IAEA,MAAMG,YAAY9E;IAClB,MAAM+E,QAAQD,cAAc;IAE5B,MAAME,uBAAuBnF,MAAMoF,MAAM,CAAC;IAE1C,MAAMC,cAAcjF,aAAayD;IAEjC,MAAMhC,iBAAiB7B,MAAMoF,MAAM,CAAiB,EAAE;IAEtD,MAAM,EAAEE,SAAS,EAAE,GAAGC,eAAe,GAAG7E;IAExC,MAAM8E,WAAWxF,MAAMyF,WAAW,CAChC,CAAC7D;QACC,MAAMD,gBAAgB0D,YAAYK,OAAO;QAEzC7D,eAAe6D,OAAO,CAACC,IAAI,CAAC,IAC1BjE,SAAS;gBACPC;gBACAC;gBACAC,gBAAgBA,eAAe6D,OAAO;gBACtC5D,qBAAqB,IAAM+C,gBAAgB;gBAC3C9C,aAAa,IAAOoD,qBAAqBO,OAAO,GAAG;gBACnD1D,eAAe,IAAOmD,qBAAqBO,OAAO,GAAG;gBACrDzD,oBAAoBN,eAAeiE,mBAAmBC,eAAe;gBACrE3D;gBACAC,eAAe8C;YACjB;QAEF,IAAIpD,eAAe6D,OAAO,CAACrC,MAAM,KAAK,GAAG;YACvCxB,eAAe6D,OAAO,CAAC,EAAE;QAC3B;IACF,GACA;QAACL;QAAanD;QAAyB+C;QAAWJ;KAAgB;IAGpE,MAAMiB,gBAAgB9F,MAAMyF,WAAW,CAAC;QACtC,MAAM7D,oBACJ4B,mBAAoB,CAAA,CAACuC,IAAcA,IAAIV,YAAYK,OAAO,CAAErD,WAAW,AAAD;QACxEmD,SAAS5D;IACX,GAAG;QAAC4B;QAAiBgC;QAAUH;KAAY;IAE3C,MAAMW,cAAchG,MAAMyF,WAAW,CAAC;QACpC,MAAM7D,oBACJ6B,oBAAqB,CAAA,CAACsC,IAAcA,IAAIV,YAAYK,OAAO,CAAErD,WAAW,AAAD;QACzEmD,SAAS5D;IACX,GAAG;QAAC6B;QAAkB+B;QAAUH;KAAY;IAE5C,MAAMY,4BAA4BjG,MAAMyF,WAAW,CAAC;QAClD,IAAI/B,cAAc2B,YAAYK,OAAO,IAAI,CAACP,qBAAqBO,OAAO,EAAE;YACtE,MAAM/D,gBAAgB0D,YAAYK,OAAO;YACzC,MAAMlE,aAAaG,cAAcH,UAAU;YAE3CkD,kBAAkBQ,QAAQ1D,aAAa,IAAIA,aAAa;YACxDqD,gBACE1D,KAAKuB,GAAG,CAACpB,yBAAyBK,kBAAkBA,cAAcU,WAAW,GAC3EV,cAAckE,WAAW;QAE/B;IACF,GAAG;QAACnC;QAAY2B;QAAaH;KAAM;IAEnClF,MAAMkG,SAAS,CAACD,2BAA2B;QAACA;QAA2B1C;KAAS;IAEhF9C,0BACE,SAAS0F;QACP,MAAMC,WAAWf,YAAYK,OAAO;QACpC,IAAI,CAACU,UAAU;YACb,OAAOlG;QACT;QACA;;OAEC,GACD,MAAMmG,UAAU,CAACC;YACfjB,YAAYK,OAAO,CAAEa,QAAQ,CAAC;gBAAEC,MAAMF,EAAEG,MAAM,GAAGH,EAAEI,MAAM;gBAAEC,UAAU;YAAO;YAC5EL,EAAEM,cAAc;QAClB;QAEA,MAAMC,kBAAkB;YAAEC,SAAS;QAAM;QAEzC,IAAIhD,kBAAkB;YACpBsC,SAASW,gBAAgB,CAAC,SAASV,SAASQ;QAC9C;QACAT,SAASW,gBAAgB,CAAC,UAAUd,2BAA2BY;QAE/D,OAAO;YACL,IAAI/C,kBAAkB;gBACpB,4FAA4F;gBAC5FsC,SAASY,mBAAmB,CAAC,SAASX,SAASQ;YACjD;YACA,6FAA6F;YAC7FT,SAASY,mBAAmB,CAAC,UAAUf,2BAA2BY;QACpE;IACF,GACA;QAAC/C;QAAkBmC;QAA2BZ;KAAY;IAG5D,MAAM4B,WAAWzG,WAAW+E,eAAe;QAAElB;QAAgBC;IAAe;IAE5E,qBACE,MAAC3D;QACE,GAAG6D,SAAS;QACZ,GAAGyC,QAAQ;QACZC,eAAejH,WACbY,OAAOsG,IAAI,EACX,gCACA,AAACzD,CAAAA,eAAe,YAAY4B,SAAQ,KAAMzE,OAAO6C,UAAU,EAC3DwB,SAASrE,OAAOuG,GAAG,EACnBhD,eAAevD,OAAOuD,WAAW;QAEnC,uFAAuF;QACvFG,cAAc0B;;YAEbvC,cAAce,gCACb,KAAC7D;gBACCyG,eAAatD;gBACbuD,MAAM3D;gBACN4D,SAAS3D;gBACTqB,WAAU;gBACVuC,aAAW;gBACXC,UAAU,CAAC;gBACXC,WAAWzH,WAAWY,OAAO8G,KAAK,EAAE9G,OAAO+G,SAAS;gBACpDC,SAAS/B;;YAGZpC,cAAckB,8BACb,KAAChE;gBACCyG,eAAarD;gBACbsD,MAAM3D;gBACN4D,SAAS3D;gBACTqB,WAAU;gBACVuC,aAAW;gBACXC,UAAU,CAAC;gBACXC,WAAWzH,WAAWY,OAAO8G,KAAK,EAAE9G,OAAOiH,UAAU;gBACrDD,SAAS7B;;0BAGb,KAAC+B;gBACCL,WAAWzH,WAAWY,OAAOmH,EAAE,EAAEhD;gBACjCiD,KAAK5C;gBACJ,GAAGN,WAAW;0BAEf,cAAA,KAACd;oBACCyD,WAAWzH,WAAWY,OAAOqH,SAAS,EAAE/D;oBACxC8D,KAAK/D;8BAEJX;;;;;AAKX,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/HorizontalScroll/HorizontalScroll.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useFocusVisible } from '../../hooks/useFocusVisible';\nimport { useFocusVisibleClassName } from '../../hooks/useFocusVisibleClassName';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { easeInOutSine } from '../../lib/fx';\nimport { mergeCalls } from '../../lib/mergeCalls';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasDataAttribute, HasRef, HTMLAttributesWithRootRef } from '../../types';\nimport { useHover } from '../Clickable/useState';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { ScrollArrow, type ScrollArrowProps } from '../ScrollArrow/ScrollArrow';\nimport styles from './HorizontalScroll.module.css';\n\n/* eslint-disable jsdoc/require-jsdoc */\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/* eslint-enable jsdoc/require-jsdoc */\n\nexport type ScrollPositionHandler = (currentPosition: number) => number;\n\nconst warn = warnOnce('HorizontalScroll');\n\nexport interface HorizontalScrollProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * Функция для расчета величины прокрутки при нажатии на левую стрелку.\n */\n getScrollToLeft?: ScrollPositionHandler | undefined;\n /**\n * Функция для расчета величины прокрутки при нажатии на правую стрелку.\n */\n getScrollToRight?: ScrollPositionHandler | undefined;\n /**\n * Размер стрелок.\n */\n arrowSize?: ScrollArrowProps['size'] | undefined;\n /**\n * Смещает иконки кнопок навигации по вертикали.\n */\n arrowOffsetY?: number | string | undefined;\n /**\n * Смещает иконки кнопок навигации по горизонтали.\n */\n arrowOffsetX?: number | string;\n /**\n * Показывать ли стрелки.\n */\n showArrows?: boolean | 'always' | undefined;\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `prevArrow`: свойства для прокидывания в стрелку \"назад\";\n * - `nextArrow`: свойства для прокидывания в стрелку \"вперед\".\n */\n slotProps?: {\n prevArrow?: Partial<ScrollArrowProps> & HasDataAttribute;\n nextArrow?: Partial<ScrollArrowProps> & HasDataAttribute;\n };\n /**\n * Длительность анимации скролла.\n */\n scrollAnimationDuration?: number | undefined;\n /**\n * Добавляет возможность прокручивать контент на любое колесо мыши.\n * По умолчанию прокручивается как любой горизонтальный контент через shift.\n */\n scrollOnAnyWheel?: boolean | undefined;\n /**\n * @deprecated Since 8.0.0. Вместо этого используйте `slotProps={ prevArrow: { 'data-testid': ... } }`.\n * Передает атрибут `data-testid` для кнопки прокрутки горизонтального скролла в направлении предыдущего элемента.\n */\n prevButtonTestId?: string | undefined;\n /**\n * @deprecated Since 8.0.0. Вместо этого используйте `slotProps={ nextArrow: { 'data-testid': ... } }`.\n * Передает атрибут `data-testid` для кнопки прокрутки горизонтального скролла в направлении следующего элемента.\n */\n nextButtonTestId?: string | undefined;\n /**\n * Позволяет поменять тег используемый для обертки над контентом, прокинутым в `children`.\n */\n ContentWrapperComponent?: React.ElementType | undefined;\n /**\n * `ref` для обертки над контентом, прокинутым в `children`.\n */\n contentWrapperRef?: React.Ref<HTMLElement> | undefined;\n /**\n * Специфичный `className` для обертки над контентом, прокинутым в `children`.\n */\n contentWrapperClassName?: string | undefined;\n /**\n * Добавляет отступы для контента внутри.\n */\n withPadding?: boolean | undefined;\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 const startScrollLeft = roundUpElementScrollLeft(scrollElement);\n const remappedStartScrollLeft = startScrollLeft * (textDirection === 'rtl' ? -1 : 1);\n\n let endScrollLeft = getScrollPosition(remappedStartScrollLeft);\n\n const diff = endScrollLeft - remappedStartScrollLeft;\n if (textDirection === 'rtl') {\n endScrollLeft = startScrollLeft - diff;\n }\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://vkui.io/components/horizontal-scroll\n */\nexport const HorizontalScroll = ({\n children,\n getScrollToLeft,\n getScrollToRight,\n showArrows = true,\n arrowSize = 'm',\n arrowOffsetY,\n arrowOffsetX,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n getRef,\n scrollOnAnyWheel = false,\n prevButtonTestId,\n nextButtonTestId,\n // ContentWrapper\n ContentWrapperComponent = 'div',\n contentWrapperRef,\n contentWrapperClassName,\n withPadding,\n onPointerEnter,\n onPointerLeave,\n onMouseEnter,\n\n slotProps,\n ...restProps\n}: HorizontalScrollProps): React.ReactNode => {\n /* istanbul ignore if: не проверяем в тестах */\n if (process.env.NODE_ENV === 'development' && (prevButtonTestId || nextButtonTestId)) {\n warn(\n \"Свойства `prevButtonTestId` и `nextButtonTestId` устаревшие, используйте `slotProps={ prevArrow: { 'data-testid': ... }, nextArrow: { 'data-testid': ... } }`\",\n );\n }\n\n const [canScrollStart, setCanScrollStart] = React.useState(false);\n const [canScrollEnd, setCanScrollEnd] = React.useState(false);\n const { focusVisible, ...focusEvents } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({\n focusVisible,\n });\n\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\n\n const isCustomScrollingRef = React.useRef(false);\n\n const scrollerRef = useExternRef(getRef);\n\n const animationQueue = React.useRef<VoidFunction[]>([]);\n\n const { isHovered, ...hoverHandlers } = useHover();\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 scrollToStart = React.useCallback(() => {\n const getScrollPosition =\n getScrollToLeft ?? ((i: number) => i - scrollerRef.current!.offsetWidth);\n scrollTo(getScrollPosition);\n }, [getScrollToLeft, scrollTo, scrollerRef]);\n\n const scrollToEnd = 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 && scrollerRef.current && !isCustomScrollingRef.current) {\n const scrollElement = scrollerRef.current;\n const scrollLeft = scrollElement.scrollLeft;\n\n setCanScrollStart(isRtl ? scrollLeft < 0 : scrollLeft > 0);\n setCanScrollEnd(\n Math.abs(roundUpElementScrollLeft(scrollElement)) + scrollElement.offsetWidth <\n scrollElement.scrollWidth,\n );\n }\n }, [showArrows, scrollerRef, isRtl]);\n\n React.useEffect(calculateArrowsVisibility, [calculateArrowsVisibility, children]);\n\n useIsomorphicLayoutEffect(\n function addWheelEventHandler() {\n const scrollEl = scrollerRef.current;\n if (!scrollEl) {\n return noop;\n }\n /**\n * Прокрутка с помощью любого колеса мыши.\n */\n const onWheel = (e: WheelEvent) => {\n scrollerRef.current!.scrollBy({ left: e.deltaX + e.deltaY, behavior: 'auto' });\n e.preventDefault();\n };\n\n const listenerOptions = { passive: false };\n\n if (scrollOnAnyWheel) {\n scrollEl.addEventListener('wheel', onWheel, listenerOptions);\n }\n scrollEl.addEventListener('scroll', calculateArrowsVisibility, listenerOptions);\n\n return () => {\n if (scrollOnAnyWheel) {\n // @ts-expect-error: TS2769 В интерфейсе EventListenerOptions для wheel нет passive свойства\n scrollEl.removeEventListener('wheel', onWheel, listenerOptions);\n }\n // @ts-expect-error: TS2769 В интерфейсе EventListenerOptions для scroll нет passive свойства\n scrollEl.removeEventListener('scroll', calculateArrowsVisibility, listenerOptions);\n };\n },\n [scrollOnAnyWheel, calculateArrowsVisibility, scrollerRef],\n );\n\n const handlers = mergeCalls(hoverHandlers, { onPointerEnter, onPointerLeave });\n\n const prevArrowProps = useMergeProps(\n {\n className: classNames(styles.arrow, styles.arrowLeft),\n onClick: scrollToStart,\n },\n slotProps?.prevArrow,\n );\n\n const nextArrowProps = useMergeProps(\n {\n className: classNames(styles.arrow, styles.arrowRight),\n onClick: scrollToEnd,\n },\n slotProps?.nextArrow,\n );\n\n return (\n <RootComponent\n {...restProps}\n {...handlers}\n baseClassName={classNames(\n styles.host,\n 'vkuiInternalHorizontalScroll',\n (showArrows === 'always' || isHovered) && styles.showArrows,\n isRtl && styles.rtl,\n withPadding && styles.withPadding,\n )}\n // FIXME: onMouseEnter из restProps затирается, а при callMultiply орет линтер на рефы.\n onMouseEnter={calculateArrowsVisibility}\n >\n {showArrows && canScrollStart && (\n <ScrollArrow\n data-testid={prevButtonTestId}\n size={arrowSize}\n offsetY={arrowOffsetY}\n offsetX={arrowOffsetX}\n direction=\"left\"\n aria-hidden\n tabIndex={-1}\n {...prevArrowProps}\n />\n )}\n {showArrows && canScrollEnd && (\n <ScrollArrow\n data-testid={nextButtonTestId}\n size={arrowSize}\n offsetY={arrowOffsetY}\n offsetX={arrowOffsetX}\n direction=\"right\"\n aria-hidden\n tabIndex={-1}\n {...nextArrowProps}\n />\n )}\n <div\n className={classNames(styles.in, focusVisibleClassNames)}\n ref={scrollerRef}\n {...focusEvents}\n >\n <ContentWrapperComponent\n className={classNames(styles.inWrapper, contentWrapperClassName)}\n ref={contentWrapperRef}\n >\n {children}\n </ContentWrapperComponent>\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","noop","useConfigDirection","useExternRef","useFocusVisible","useFocusVisibleClassName","useMergeProps","easeInOutSine","mergeCalls","useIsomorphicLayoutEffect","warnOnce","useHover","RootComponent","ScrollArrow","styles","warn","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","remappedStartScrollLeft","endScrollLeft","diff","abs","startTime","scroll","time","elapsed","min","currentScrollLeft","scrollEnd","max","requestAnimationFrame","shift","length","HorizontalScroll","children","getScrollToLeft","getScrollToRight","showArrows","arrowSize","arrowOffsetY","arrowOffsetX","getRef","scrollOnAnyWheel","prevButtonTestId","nextButtonTestId","ContentWrapperComponent","contentWrapperRef","contentWrapperClassName","withPadding","onPointerEnter","onPointerLeave","onMouseEnter","slotProps","restProps","process","env","NODE_ENV","canScrollStart","setCanScrollStart","useState","canScrollEnd","setCanScrollEnd","focusVisible","focusEvents","focusVisibleClassNames","direction","isRtl","isCustomScrollingRef","useRef","scrollerRef","isHovered","hoverHandlers","scrollTo","useCallback","current","push","firstElementChild","scrollWidth","scrollToStart","i","scrollToEnd","calculateArrowsVisibility","useEffect","addWheelEventHandler","scrollEl","onWheel","e","scrollBy","left","deltaX","deltaY","behavior","preventDefault","listenerOptions","passive","addEventListener","removeEventListener","handlers","prevArrowProps","className","arrow","arrowLeft","onClick","prevArrow","nextArrowProps","arrowRight","nextArrow","baseClassName","host","rtl","data-testid","size","offsetY","offsetX","aria-hidden","tabIndex","div","in","ref","inWrapper"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { hasAccessibleName } from '../../lib/accessibility';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { Tappable, type TappableOmitProps } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './IconButton.module.css';\n\nconst densityClassNames = {\n none: styles.densityNone,\n compact: styles.densityCompact,\n} as const;\n\nexport interface IconButtonProps extends TappableOmitProps {\n /**\n * Текст кнопки-иконки. Делает ее доступной для ассистивных технологий.\n */\n label?: string;\n}\n\nconst warn = warnOnce('IconButton');\n\n/**\n * @see https://vkui.io/components/icon-button\n */\nexport const IconButton = ({ label, children, ...restProps }: IconButtonProps): React.ReactNode => {\n const platform = usePlatform();\n const { density = 'none' } = useAdaptivity();\n\n if (process.env.NODE_ENV === 'development') {\n /* istanbul ignore next: проверка в dev mode, тест на hasAccessibleName() есть в lib/accessibility.test.tsx */\n const isAccessible = hasAccessibleName({\n children: [children, label],\n ...restProps,\n });\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y[restProps.href ? 'link-name' : 'button-name'], 'error');\n }\n }\n\n return (\n <Tappable\n activeEffectDelay={200}\n activeMode=\"background\"\n Component={restProps.href ? 'a' : 'button'}\n {...restProps}\n baseClassName={classNames(\n styles.host,\n density !== 'regular' && densityClassNames[density],\n platform === 'ios' && styles.ios,\n )}\n >\n {label && <VisuallyHidden>{label}</VisuallyHidden>}\n {children}\n </Tappable>\n );\n};\n"],"names":["classNames","useAdaptivity","usePlatform","hasAccessibleName","COMMON_WARNINGS","warnOnce","Tappable","VisuallyHidden","styles","densityClassNames","none","densityNone","compact","densityCompact","warn","IconButton","label","children","restProps","platform","density","process","env","NODE_ENV","isAccessible","a11y","href","activeEffectDelay","activeMode","Component","baseClassName","host","ios"],"mappings":"AAAA;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,iBAAiB,QAAQ,6BAA0B;AAC5D,SAASC,eAAe,EAAEC,QAAQ,QAAQ,wBAAqB;AAC/D,SAASC,QAAQ,QAAgC,0BAAuB;AACxE,SAASC,cAAc,QAAQ,sCAAmC;AAClE,OAAOC,YAAY,0BAA0B;AAE7C,MAAMC,oBAAoB;IACxBC,MAAMF,OAAOG,WAAW;IACxBC,SAASJ,OAAOK,cAAc;AAChC;AASA,MAAMC,OAAOT,SAAS;AAEtB;;CAEC,GACD,OAAO,MAAMU,aAAa,CAAC,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGC,WAA4B;IAC3E,MAAMC,WAAWjB;IACjB,MAAM,EAAEkB,UAAU,MAAM,EAAE,GAAGnB;IAE7B,IAAIoB,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,4GAA4G,GAC5G,MAAMC,eAAerB,kBAAkB;YACrCc,UAAU;gBAACA;gBAAUD;aAAM;YAC3B,GAAGE,SAAS;QACd;QAEA,IAAI,CAACM,cAAc;YACjBV,KAAKV,gBAAgBqB,IAAI,CAACP,UAAUQ,IAAI,GAAG,cAAc,cAAc,EAAE;QAC3E;IACF;IAEA,qBACE,MAACpB;QACCqB,mBAAmB;QACnBC,YAAW;QACXC,WAAWX,UAAUQ,IAAI,GAAG,MAAM;QACjC,GAAGR,SAAS;QACbY,eAAe9B,WACbQ,OAAOuB,IAAI,EACXX,YAAY,aAAaX,iBAAiB,CAACW,QAAQ,EACnDD,aAAa,SAASX,OAAOwB,GAAG;;YAGjChB,uBAAS,KAACT;0BAAgBS;;YAC1BC;;;AAGP,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { hasAccessibleName } from '../../lib/accessibility';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { Tappable, type TappableOmitProps } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './IconButton.module.css';\n\nconst densityClassNames = {\n none: styles.densityNone,\n compact: styles.densityCompact,\n} as const;\n\nexport interface IconButtonProps extends TappableOmitProps {\n /**\n * Текст кнопки-иконки. Делает ее доступной для ассистивных технологий.\n */\n label?: string | undefined;\n}\n\nconst warn = warnOnce('IconButton');\n\n/**\n * @see https://vkui.io/components/icon-button\n */\nexport const IconButton = ({ label, children, ...restProps }: IconButtonProps): React.ReactNode => {\n const platform = usePlatform();\n const { density = 'none' } = useAdaptivity();\n\n if (process.env.NODE_ENV === 'development') {\n /* istanbul ignore next: проверка в dev mode, тест на hasAccessibleName() есть в lib/accessibility.test.tsx */\n const isAccessible = hasAccessibleName({\n children: [children, label],\n ...restProps,\n });\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y[restProps.href ? 'link-name' : 'button-name'], 'error');\n }\n }\n\n return (\n <Tappable\n activeEffectDelay={200}\n activeMode=\"background\"\n Component={restProps.href ? 'a' : 'button'}\n {...restProps}\n baseClassName={classNames(\n styles.host,\n density !== 'regular' && densityClassNames[density],\n platform === 'ios' && styles.ios,\n )}\n >\n {label && <VisuallyHidden>{label}</VisuallyHidden>}\n {children}\n </Tappable>\n );\n};\n"],"names":["classNames","useAdaptivity","usePlatform","hasAccessibleName","COMMON_WARNINGS","warnOnce","Tappable","VisuallyHidden","styles","densityClassNames","none","densityNone","compact","densityCompact","warn","IconButton","label","children","restProps","platform","density","process","env","NODE_ENV","isAccessible","a11y","href","activeEffectDelay","activeMode","Component","baseClassName","host","ios"],"mappings":"AAAA;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,iBAAiB,QAAQ,6BAA0B;AAC5D,SAASC,eAAe,EAAEC,QAAQ,QAAQ,wBAAqB;AAC/D,SAASC,QAAQ,QAAgC,0BAAuB;AACxE,SAASC,cAAc,QAAQ,sCAAmC;AAClE,OAAOC,YAAY,0BAA0B;AAE7C,MAAMC,oBAAoB;IACxBC,MAAMF,OAAOG,WAAW;IACxBC,SAASJ,OAAOK,cAAc;AAChC;AASA,MAAMC,OAAOT,SAAS;AAEtB;;CAEC,GACD,OAAO,MAAMU,aAAa,CAAC,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGC,WAA4B;IAC3E,MAAMC,WAAWjB;IACjB,MAAM,EAAEkB,UAAU,MAAM,EAAE,GAAGnB;IAE7B,IAAIoB,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,4GAA4G,GAC5G,MAAMC,eAAerB,kBAAkB;YACrCc,UAAU;gBAACA;gBAAUD;aAAM;YAC3B,GAAGE,SAAS;QACd;QAEA,IAAI,CAACM,cAAc;YACjBV,KAAKV,gBAAgBqB,IAAI,CAACP,UAAUQ,IAAI,GAAG,cAAc,cAAc,EAAE;QAC3E;IACF;IAEA,qBACE,MAACpB;QACCqB,mBAAmB;QACnBC,YAAW;QACXC,WAAWX,UAAUQ,IAAI,GAAG,MAAM;QACjC,GAAGR,SAAS;QACbY,eAAe9B,WACbQ,OAAOuB,IAAI,EACXX,YAAY,aAAaX,iBAAiB,CAACW,QAAQ,EACnDD,aAAa,SAASX,OAAOwB,GAAG;;YAGjChB,uBAAS,KAACT;0BAAgBS;;YAC1BC;;;AAGP,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Image/Image.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { defineComponentDisplayNames } from '../../lib/react/defineComponentDisplayNames';\nimport type { CSSCustomProperties } from '../../types';\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://vkui.io/components/image\n */\nexport const Image: React.FC<ImageProps> & {\n Badge: typeof ImageBadge;\n Overlay: typeof ImageBase.Overlay;\n FloatElement: typeof ImageBase.FloatElement;\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: CSSCustomProperties<string | undefined> = 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={mergeStyle(borderStyles, style)}\n className={classNames(\n className,\n styles.host,\n borderStartStartRadius && styles.borderStartStartRadius,\n borderStartEndRadius && styles.borderStartEndRadius,\n borderEndStartRadius && styles.borderEndStartRadius,\n borderEndEndRadius && styles.borderEndEndRadius,\n )}\n />\n );\n};\n\nImage.Badge = ImageBadge;\nImage.Overlay = ImageBase.Overlay;\nImage.FloatElement = ImageBase.FloatElement;\n\nif (process.env.NODE_ENV !== 'production') {\n defineComponentDisplayNames(Image.Badge, 'Image.Badge');\n defineComponentDisplayNames(Image.Overlay, 'Image.Overlay');\n defineComponentDisplayNames(Image.FloatElement, 'Image.FloatElement');\n}\n"],"names":["React","classNames","mergeStyle","defineComponentDisplayNames","ImageBase","ImageBadge","styles","IMAGE_DEFAULT_SIZE","getBorderRadiusBySize","size","borderRadius","getBorderRadiusBySizeInPx","undefined","Image","borderStartStartRadius","borderStartEndRadius","borderEndStartRadius","borderEndEndRadius","style","className","objectFit","restProps","borderStyles","useMemo","host","Badge","Overlay","FloatElement","process","env","NODE_ENV"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,UAAU,QAAQ,8BAA2B;AACtD,SAASC,2BAA2B,QAAQ,iDAA8C;AAE1F,SAASC,SAAS,QAAyD,4BAAyB;AACpG,SAASC,UAAU,QAA8B,6BAA0B;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,GAAGJ,sBAAsBC,MAAMC,cAAc,EAAE,CAAC;AACzD;AAEA;;CAEC,GACD,OAAO,MAAMG,QAIT,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,eAAwDtB,MAAMuB,OAAO,CACzE,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,OAAOhB,WAAWoB,cAAcJ;QAChCC,WAAWlB,WACTkB,WACAb,OAAOkB,IAAI,EACXV,0BAA0BR,OAAOQ,sBAAsB,EACvDC,wBAAwBT,OAAOS,oBAAoB,EACnDC,wBAAwBV,OAAOU,oBAAoB,EACnDC,sBAAsBX,OAAOW,kBAAkB;;AAIvD,EAAE;AAEFJ,MAAMY,KAAK,GAAGpB;AACdQ,MAAMa,OAAO,GAAGtB,UAAUsB,OAAO;AACjCb,MAAMc,YAAY,GAAGvB,UAAUuB,YAAY;AAE3C,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;IACzC3B,4BAA4BU,MAAMY,KAAK,EAAE;IACzCtB,4BAA4BU,MAAMa,OAAO,EAAE;IAC3CvB,4BAA4BU,MAAMc,YAAY,EAAE;AAClD"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Image/Image.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { defineComponentDisplayNames } from '../../lib/react/defineComponentDisplayNames';\nimport type { CSSCustomProperties } from '../../types';\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' | undefined;\n /**\n * Размер закругления угла между сторонами начала блока и строки.\n */\n borderStartStartRadius?: 's' | 'l' | 'm' | undefined;\n /**\n * Размер закругления угла между стороной начала блока и стороной конца строки.\n */\n borderStartEndRadius?: 's' | 'l' | 'm' | undefined;\n /**\n * Размер закругления угла между стороной конца блока и стороной начала строки.\n */\n borderEndStartRadius?: 's' | 'l' | 'm' | undefined;\n /**\n * Размер закругления угла между сторонами конца блока и строки.\n */\n borderEndEndRadius?: 's' | 'l' | 'm' | undefined;\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://vkui.io/components/image\n */\nexport const Image: React.FC<ImageProps> & {\n Badge: typeof ImageBadge;\n Overlay: typeof ImageBase.Overlay;\n FloatElement: typeof ImageBase.FloatElement;\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: CSSCustomProperties<string | undefined> = 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={mergeStyle(borderStyles, style)}\n className={classNames(\n className,\n styles.host,\n borderStartStartRadius && styles.borderStartStartRadius,\n borderStartEndRadius && styles.borderStartEndRadius,\n borderEndStartRadius && styles.borderEndStartRadius,\n borderEndEndRadius && styles.borderEndEndRadius,\n )}\n />\n );\n};\n\nImage.Badge = ImageBadge;\nImage.Overlay = ImageBase.Overlay;\nImage.FloatElement = ImageBase.FloatElement;\n\nif (process.env.NODE_ENV !== 'production') {\n defineComponentDisplayNames(Image.Badge, 'Image.Badge');\n defineComponentDisplayNames(Image.Overlay, 'Image.Overlay');\n defineComponentDisplayNames(Image.FloatElement, 'Image.FloatElement');\n}\n"],"names":["React","classNames","mergeStyle","defineComponentDisplayNames","ImageBase","ImageBadge","styles","IMAGE_DEFAULT_SIZE","getBorderRadiusBySize","size","borderRadius","getBorderRadiusBySizeInPx","undefined","Image","borderStartStartRadius","borderStartEndRadius","borderEndStartRadius","borderEndEndRadius","style","className","objectFit","restProps","borderStyles","useMemo","host","Badge","Overlay","FloatElement","process","env","NODE_ENV"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,UAAU,QAAQ,8BAA2B;AACtD,SAASC,2BAA2B,QAAQ,iDAA8C;AAE1F,SAASC,SAAS,QAAyD,4BAAyB;AACpG,SAASC,UAAU,QAA8B,6BAA0B;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,GAAGJ,sBAAsBC,MAAMC,cAAc,EAAE,CAAC;AACzD;AAEA;;CAEC,GACD,OAAO,MAAMG,QAIT,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,eAAwDtB,MAAMuB,OAAO,CACzE,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,OAAOhB,WAAWoB,cAAcJ;QAChCC,WAAWlB,WACTkB,WACAb,OAAOkB,IAAI,EACXV,0BAA0BR,OAAOQ,sBAAsB,EACvDC,wBAAwBT,OAAOS,oBAAoB,EACnDC,wBAAwBV,OAAOU,oBAAoB,EACnDC,sBAAsBX,OAAOW,kBAAkB;;AAIvD,EAAE;AAEFJ,MAAMY,KAAK,GAAGpB;AACdQ,MAAMa,OAAO,GAAGtB,UAAUsB,OAAO;AACjCb,MAAMc,YAAY,GAAGvB,UAAUuB,YAAY;AAE3C,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;IACzC3B,4BAA4BU,MAAMY,KAAK,EAAE;IACzCtB,4BAA4BU,MAAMa,OAAO,EAAE;IAC3CvB,4BAA4BU,MAAMc,YAAY,EAAE;AAClD"}
|
|
@@ -150,6 +150,11 @@ const sizeToNumber = (size)=>{
|
|
|
150
150
|
mouseOverHandlers,
|
|
151
151
|
size
|
|
152
152
|
]);
|
|
153
|
+
const imgSlot = hasSrc && /*#__PURE__*/ _jsx("img", {
|
|
154
|
+
ref: imgRef,
|
|
155
|
+
...imgRest,
|
|
156
|
+
...getFetchPriorityProp(fetchPriority)
|
|
157
|
+
});
|
|
153
158
|
return /*#__PURE__*/ _jsx(ImageBaseContext.Provider, {
|
|
154
159
|
value: contextValue,
|
|
155
160
|
children: /*#__PURE__*/ _jsxs(Clickable, {
|
|
@@ -163,11 +168,10 @@ const sizeToNumber = (size)=>{
|
|
|
163
168
|
onMouseOut: onMouseOut,
|
|
164
169
|
...restProps,
|
|
165
170
|
children: [
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}),
|
|
171
|
+
filter ? /*#__PURE__*/ _jsx("div", {
|
|
172
|
+
className: styles.imgWithFilterContainer,
|
|
173
|
+
children: imgSlot
|
|
174
|
+
}) : imgSlot,
|
|
171
175
|
fallbackIcon && /*#__PURE__*/ _jsx("div", {
|
|
172
176
|
className: styles.fallback,
|
|
173
177
|
children: fallbackIcon
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ImageBase/ImageBase.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { minOr } from '../../lib/comparing';\nimport { defineComponentDisplayNames } from '../../lib/react/defineComponentDisplayNames';\nimport { getFetchPriorityProp } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type {\n AnchorHTMLAttributesOnly,\n HasDataAttribute,\n HasRootRef,\n LiteralUnion,\n} from '../../types';\nimport { Clickable } from '../Clickable/Clickable';\nimport { ImageBaseBadge, type ImageBaseBadgeProps } from './ImageBaseBadge/ImageBaseBadge';\nimport {\n type FloatElementIndentation,\n type FloatElementPlacement,\n ImageBaseFloatElement,\n type ImageBaseFloatElementProps,\n} from './ImageBaseFloatElement/ImageBaseFloatElement';\nimport { ImageBaseOverlay, type ImageBaseOverlayProps } from './ImageBaseOverlay/ImageBaseOverlay';\nimport { ImageBaseContext } from './context';\nimport type { ImageBaseContextProps, ImageBaseExpectedIconProps, ImageBaseSize } from './types';\nimport { validateFallbackIcon, validateSize } from './validators';\nimport styles from './ImageBase.module.css';\n\nexport type {\n ImageBaseSize,\n ImageBaseExpectedIconProps,\n ImageBaseBadgeProps,\n ImageBaseOverlayProps,\n ImageBaseContextProps,\n ImageBaseFloatElementProps,\n FloatElementPlacement,\n FloatElementIndentation,\n};\n\nexport {\n getBadgeIconSizeByImageBaseSize,\n getFallbackIconSizeByImageBaseSize,\n getOverlayIconSizeByImageBaseSize,\n} from './helpers';\n\nexport { ImageBaseContext };\n\nconst warn = warnOnce('ImageBase');\n\n/**\n * Размер по умолчанию.\n */\nconst defaultSize = 24;\n\nexport interface ImageBaseProps\n extends React.ImgHTMLAttributes<HTMLElement>,\n AnchorHTMLAttributesOnly,\n HasRootRef<HTMLDivElement> {\n /**\n * Задаёт размер картинки.\n *\n * Используйте размеры заданные дизайн-системой `16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 56 | 64 | 72 | 80 | 88 | 96`.\n *\n * > ⚠️ Использование кастомного размера – это пограничный кейс.\n */\n size?: LiteralUnion<ImageBaseSize, number>;\n /**\n * Ширина изображения.\n */\n widthSize?: number | string;\n /**\n * Высота изображения.\n */\n heightSize?: number | string;\n /**\n * Отключает обводку.\n */\n noBorder?: boolean;\n /**\n * Фолбек на случай, если картинка не прогрузилась.\n *\n * > 📝 Нужный для `<ImageBase size={...} />` размер можно узнать из функции `getFallbackIconSizeByImageBaseSize()`.\n *\n * > Предпочтительней использовать иконки из `@vkontakte/icons`.\n *\n * > 📊️ Если вы хотите передать кастомную иконку, то следует именовать её по шаблону `Icon<size><name>`. Или же\n * > чтобы в неё был передан параметр `width`. Тогда мы сможем выводить в консоль подсказку правильного ли размера вы\n * > использовали иконку.\n *\n * > ⚠️ Может перекрывать `children`.\n */\n fallbackIcon?: React.ReactElement<ImageBaseExpectedIconProps>;\n /**\n * Отключает фон, заданный по умолчанию. Полезен для отображения картинок с прозрачностью.\n * @since 5.10.0\n */\n withTransparentBackground?: boolean;\n /**\n * Пользовательское значения стиля object-fit\n * Подробнее можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/CSS/object-fit).\n */\n objectFit?: React.CSSProperties['objectFit'];\n /**\n * Пользовательское значения стиля object-position\n * Подробнее можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/CSS/object-position).\n */\n objectPosition?: React.CSSProperties['objectPosition'];\n /**\n * Флаг для сохранения пропорций картинки.\n * Для корректной работы необходимо задать размеры хотя бы одной стороны картинки.\n */\n keepAspectRatio?: boolean;\n /**\n * Смотри https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/elementtiming.\n */\n elementTiming?: string;\n /**\n * Пользовательское значения стиля filter\n * Подробнее можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/CSS/filter).\n */\n filter?: React.CSSProperties['filter'];\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `img`: свойства для прокидывания в тег `<img>`;.\n */\n slotProps?: {\n img?: React.ComponentProps<'img'> & HasRootRef<HTMLImageElement> & HasDataAttribute;\n };\n /**\n * @deprecated Since 7.9.0. Будет удалено в v9. Используйте `slotProps={ img: { getRootRef: ... } }`.\n */\n getRef?: React.Ref<HTMLImageElement>; // TODO [>=9] Удалить свойство\n}\n\nconst getObjectFitClassName = (objectFit: React.CSSProperties['objectFit']) => {\n switch (objectFit) {\n case 'contain':\n return styles.imgObjectFitContain;\n case 'cover':\n return styles.imgObjectFitCover;\n case 'none':\n return styles.imgObjectFitNone;\n case 'scale-down':\n return styles.imgObjectFitScaleDown;\n }\n return undefined;\n};\n\nconst parsePx = (value: string): number | undefined => {\n if (value.endsWith('px')) {\n return parseInt(value);\n }\n return undefined;\n};\n\nconst sizeToNumber = (size: number | string | undefined): number | undefined => {\n if (typeof size === 'string') {\n return parsePx(size);\n }\n return size;\n};\n\n/**\n * @see https://vkui.io/components/image-base\n */\nexport const ImageBase: React.FC<ImageBaseProps> & {\n Badge: typeof ImageBaseBadge;\n Overlay: typeof ImageBaseOverlay;\n FloatElement: typeof ImageBaseFloatElement;\n} = ({\n alt,\n crossOrigin,\n decoding,\n loading,\n referrerPolicy,\n sizes,\n src,\n srcSet,\n useMap,\n fetchPriority: fetchPriorityProp,\n getRef,\n size: sizeProp,\n width: widthImg,\n height: heightImg,\n widthSize,\n heightSize,\n noBorder = false,\n fallbackIcon: fallbackIconProp,\n children,\n onLoad,\n onError,\n withTransparentBackground,\n objectFit = 'cover',\n objectPosition,\n filter,\n keepAspectRatio = false,\n getRootRef,\n elementTiming,\n slotProps,\n ...restProps\n}: ImageBaseProps) => {\n if (process.env.NODE_ENV === 'development') {\n /* istanbul ignore if: не проверяем в тестах */\n if (getRef) {\n warn(\n 'Свойство `getRef` устаревшее и будет удалено в VKUI v9. Используйте `slotProps={ img: { getRootRef: ... } }`',\n );\n }\n }\n\n const size = sizeProp ?? minOr([sizeToNumber(widthSize), sizeToNumber(heightSize)], defaultSize);\n const wrapperRef = useExternRef(getRootRef);\n\n const width = widthSize ?? (keepAspectRatio ? undefined : size);\n const height = heightSize ?? (keepAspectRatio ? undefined : size);\n\n const [loaded, setLoaded] = React.useState(false);\n const [failed, setFailed] = React.useState(false);\n\n const [mouseOverHandlers] = React.useState<VoidFunction[]>([]);\n const [mouseOutHandlers] = React.useState<VoidFunction[]>([]);\n\n const hasSrc = src || srcSet;\n const fallbackIcon = failed || !hasSrc ? fallbackIconProp : null;\n\n if (process.env.NODE_ENV === 'development') {\n validateSize(size);\n if (React.isValidElement(fallbackIcon)) {\n validateFallbackIcon(size, { name: 'fallbackIcon', value: fallbackIcon });\n }\n }\n\n const handleImageLoad = (event: React.SyntheticEvent<HTMLImageElement>) => {\n if (loaded) {\n return;\n }\n\n setLoaded(true);\n setFailed(false);\n onLoad?.(event);\n };\n\n const handleImageError = (event: React.SyntheticEvent<HTMLImageElement>) => {\n setLoaded(false);\n setFailed(true);\n onError?.(event);\n };\n\n const {\n getRootRef: getImgRef,\n fetchPriority,\n ...imgRest\n } = useMergeProps<React.ComponentProps<'img'> & HasRootRef<HTMLImageElement> & HasDataAttribute>(\n hasSrc\n ? {\n // safari и firefox нужно чтобы атрибут `loading` был до `src`\n //\n // https://mihaly4.ru/image-loading-lazy-bug\n loading,\n getRootRef: getRef,\n alt,\n className: classNames(\n styles.img,\n getObjectFitClassName(objectFit),\n objectPosition && styles.withObjectPosition,\n filter && styles.withFilter,\n keepAspectRatio && styles.imgKeepRatio,\n failed && styles.imgHiddenAlt,\n ),\n crossOrigin,\n decoding,\n referrerPolicy,\n style: mergeStyle(\n keepAspectRatio\n ? {\n width: widthImg || width,\n height: heightImg || height,\n }\n : undefined,\n objectPosition || filter\n ? {\n '--vkui_internal--ImageBase_object_position': objectPosition,\n '--vkui_internal--ImageBase_object_filter': filter,\n }\n : undefined,\n ),\n sizes,\n src,\n srcSet,\n useMap,\n width,\n height,\n onLoad: handleImageLoad,\n onError: handleImageError,\n fetchPriority: fetchPriorityProp,\n // @ts-expect-error: TS2322 отсутствует в @types/react\n elementtiming: elementTiming, // eslint-disable-line react/no-unknown-property\n }\n : {},\n hasSrc ? slotProps?.img : undefined,\n );\n\n const imgRef = useExternRef(getImgRef);\n const isOnLoadStatusCheckedRef = React.useRef(false);\n React.useEffect(\n function dispatchLoadEventForAlreadyLoadedResourceIfReactInitializedLater() {\n if (isOnLoadStatusCheckedRef.current) {\n return;\n }\n isOnLoadStatusCheckedRef.current = true;\n\n if (imgRef.current && imgRef.current.complete && !loaded) {\n const event = new Event('load');\n imgRef.current.dispatchEvent(event);\n }\n },\n [imgRef, loaded],\n );\n\n const onMouseOver = () => {\n mouseOverHandlers.forEach((fn) => fn());\n };\n\n const onMouseOut = () => {\n mouseOutHandlers.forEach((fn) => fn());\n };\n\n const contextValue = React.useMemo(\n () => ({\n size,\n onMouseOverHandlers: mouseOverHandlers,\n onMouseOutHandlers: mouseOutHandlers,\n }),\n [mouseOutHandlers, mouseOverHandlers, size],\n );\n\n return (\n <ImageBaseContext.Provider value={contextValue}>\n <Clickable\n baseStyle={{ width, height }}\n baseClassName={classNames(\n styles.host,\n hasSrc && loaded && styles.loaded,\n withTransparentBackground && styles.transparentBackground,\n )}\n getRootRef={wrapperRef}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n {...restProps}\n >\n {hasSrc && <img ref={imgRef} {...imgRest} {...getFetchPriorityProp(fetchPriority)} />}\n {fallbackIcon && <div className={styles.fallback}>{fallbackIcon}</div>}\n {children && <div className={styles.children}>{children}</div>}\n {!noBorder && <div aria-hidden className={styles.border} />}\n </Clickable>\n </ImageBaseContext.Provider>\n );\n};\nImageBase.Badge = ImageBaseBadge;\nImageBase.Overlay = ImageBaseOverlay;\nImageBase.FloatElement = ImageBaseFloatElement;\n\nif (process.env.NODE_ENV !== 'production') {\n defineComponentDisplayNames(ImageBase.Badge, 'ImageBase.Badge');\n defineComponentDisplayNames(ImageBase.Overlay, 'ImageBase.Overlay');\n defineComponentDisplayNames(ImageBase.FloatElement, 'ImageBase.FloatElement');\n}\n"],"names":["React","classNames","mergeStyle","useExternRef","useMergeProps","minOr","defineComponentDisplayNames","getFetchPriorityProp","warnOnce","Clickable","ImageBaseBadge","ImageBaseFloatElement","ImageBaseOverlay","ImageBaseContext","validateFallbackIcon","validateSize","styles","getBadgeIconSizeByImageBaseSize","getFallbackIconSizeByImageBaseSize","getOverlayIconSizeByImageBaseSize","warn","defaultSize","getObjectFitClassName","objectFit","imgObjectFitContain","imgObjectFitCover","imgObjectFitNone","imgObjectFitScaleDown","undefined","parsePx","value","endsWith","parseInt","sizeToNumber","size","ImageBase","alt","crossOrigin","decoding","loading","referrerPolicy","sizes","src","srcSet","useMap","fetchPriority","fetchPriorityProp","getRef","sizeProp","width","widthImg","height","heightImg","widthSize","heightSize","noBorder","fallbackIcon","fallbackIconProp","children","onLoad","onError","withTransparentBackground","objectPosition","filter","keepAspectRatio","getRootRef","elementTiming","slotProps","restProps","process","env","NODE_ENV","wrapperRef","loaded","setLoaded","useState","failed","setFailed","mouseOverHandlers","mouseOutHandlers","hasSrc","isValidElement","name","handleImageLoad","event","handleImageError","getImgRef","imgRest","className","img","withObjectPosition","withFilter","imgKeepRatio","imgHiddenAlt","style","elementtiming","imgRef","isOnLoadStatusCheckedRef","useRef","useEffect","dispatchLoadEventForAlreadyLoadedResourceIfReactInitializedLater","current","complete","Event","dispatchEvent","onMouseOver","forEach","fn","onMouseOut","contextValue","useMemo","onMouseOverHandlers","onMouseOutHandlers","Provider","baseStyle","baseClassName","host","transparentBackground","ref","div","fallback","aria-hidden","border","Badge","Overlay","FloatElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ImageBase/ImageBase.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { minOr } from '../../lib/comparing';\nimport { defineComponentDisplayNames } from '../../lib/react/defineComponentDisplayNames';\nimport { getFetchPriorityProp } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type {\n AnchorHTMLAttributesOnly,\n HasDataAttribute,\n HasRootRef,\n LiteralUnion,\n} from '../../types';\nimport { Clickable } from '../Clickable/Clickable';\nimport { ImageBaseBadge, type ImageBaseBadgeProps } from './ImageBaseBadge/ImageBaseBadge';\nimport {\n type FloatElementIndentation,\n type FloatElementPlacement,\n ImageBaseFloatElement,\n type ImageBaseFloatElementProps,\n} from './ImageBaseFloatElement/ImageBaseFloatElement';\nimport { ImageBaseOverlay, type ImageBaseOverlayProps } from './ImageBaseOverlay/ImageBaseOverlay';\nimport { ImageBaseContext } from './context';\nimport type { ImageBaseContextProps, ImageBaseExpectedIconProps, ImageBaseSize } from './types';\nimport { validateFallbackIcon, validateSize } from './validators';\nimport styles from './ImageBase.module.css';\n\nexport type {\n ImageBaseSize,\n ImageBaseExpectedIconProps,\n ImageBaseBadgeProps,\n ImageBaseOverlayProps,\n ImageBaseContextProps,\n ImageBaseFloatElementProps,\n FloatElementPlacement,\n FloatElementIndentation,\n};\n\nexport {\n getBadgeIconSizeByImageBaseSize,\n getFallbackIconSizeByImageBaseSize,\n getOverlayIconSizeByImageBaseSize,\n} from './helpers';\n\nexport { ImageBaseContext };\n\nconst warn = warnOnce('ImageBase');\n\n/**\n * Размер по умолчанию.\n */\nconst defaultSize = 24;\n\nexport interface ImageBaseProps\n extends React.ImgHTMLAttributes<HTMLElement>,\n AnchorHTMLAttributesOnly,\n HasRootRef<HTMLDivElement> {\n /**\n * Задаёт размер картинки.\n *\n * Используйте размеры заданные дизайн-системой `16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 56 | 64 | 72 | 80 | 88 | 96`.\n *\n * > ⚠️ Использование кастомного размера – это пограничный кейс.\n */\n size?: LiteralUnion<ImageBaseSize, number> | undefined;\n /**\n * Ширина изображения.\n */\n widthSize?: number | string | undefined;\n /**\n * Высота изображения.\n */\n heightSize?: number | string | undefined;\n /**\n * Отключает обводку.\n */\n noBorder?: boolean | undefined;\n /**\n * Фолбек на случай, если картинка не прогрузилась.\n *\n * > 📝 Нужный для `<ImageBase size={...} />` размер можно узнать из функции `getFallbackIconSizeByImageBaseSize()`.\n *\n * > Предпочтительней использовать иконки из `@vkontakte/icons`.\n *\n * > 📊️ Если вы хотите передать кастомную иконку, то следует именовать её по шаблону `Icon<size><name>`. Или же\n * > чтобы в неё был передан параметр `width`. Тогда мы сможем выводить в консоль подсказку правильного ли размера вы\n * > использовали иконку.\n *\n * > ⚠️ Может перекрывать `children`.\n */\n fallbackIcon?: React.ReactElement<ImageBaseExpectedIconProps> | undefined;\n /**\n * Отключает фон, заданный по умолчанию. Полезен для отображения картинок с прозрачностью.\n * @since 5.10.0\n */\n withTransparentBackground?: boolean | undefined;\n /**\n * Пользовательское значения стиля object-fit\n * Подробнее можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/CSS/object-fit).\n */\n objectFit?: React.CSSProperties['objectFit'] | undefined;\n /**\n * Пользовательское значения стиля object-position\n * Подробнее можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/CSS/object-position).\n */\n objectPosition?: React.CSSProperties['objectPosition'] | undefined;\n /**\n * Флаг для сохранения пропорций картинки.\n * Для корректной работы необходимо задать размеры хотя бы одной стороны картинки.\n */\n keepAspectRatio?: boolean | undefined;\n /**\n * Смотри https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/elementtiming.\n */\n elementTiming?: string | undefined;\n /**\n * Пользовательское значения стиля filter.\n * Подробнее можно почитать в [документации](https://developer.mozilla.org/ru/docs/Web/CSS/filter).\n *\n * При передаче этого свойства `<img />` будет обёрнут в дополнительный контейнер.\n */\n filter?: React.CSSProperties['filter'] | undefined;\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `img`: свойства для прокидывания в тег `<img>`;.\n */\n slotProps?:\n | {\n img?:\n | (React.ComponentProps<'img'> & HasRootRef<HTMLImageElement> & HasDataAttribute)\n | undefined;\n }\n | undefined;\n /**\n * @deprecated Since 7.9.0. Будет удалено в v9. Используйте `slotProps={ img: { getRootRef: ... } }`.\n */\n getRef?: React.Ref<HTMLImageElement> | undefined; // TODO [>=9] Удалить свойство\n}\n\nconst getObjectFitClassName = (objectFit: React.CSSProperties['objectFit']) => {\n switch (objectFit) {\n case 'contain':\n return styles.imgObjectFitContain;\n case 'cover':\n return styles.imgObjectFitCover;\n case 'none':\n return styles.imgObjectFitNone;\n case 'scale-down':\n return styles.imgObjectFitScaleDown;\n }\n return undefined;\n};\n\nconst parsePx = (value: string): number | undefined => {\n if (value.endsWith('px')) {\n return parseInt(value);\n }\n return undefined;\n};\n\nconst sizeToNumber = (size: number | string | undefined): number | undefined => {\n if (typeof size === 'string') {\n return parsePx(size);\n }\n return size;\n};\n\n/**\n * @see https://vkui.io/components/image-base\n */\nexport const ImageBase: React.FC<ImageBaseProps> & {\n Badge: typeof ImageBaseBadge;\n Overlay: typeof ImageBaseOverlay;\n FloatElement: typeof ImageBaseFloatElement;\n} = ({\n alt,\n crossOrigin,\n decoding,\n loading,\n referrerPolicy,\n sizes,\n src,\n srcSet,\n useMap,\n fetchPriority: fetchPriorityProp,\n getRef,\n size: sizeProp,\n width: widthImg,\n height: heightImg,\n widthSize,\n heightSize,\n noBorder = false,\n fallbackIcon: fallbackIconProp,\n children,\n onLoad,\n onError,\n withTransparentBackground,\n objectFit = 'cover',\n objectPosition,\n filter,\n keepAspectRatio = false,\n getRootRef,\n elementTiming,\n slotProps,\n ...restProps\n}: ImageBaseProps) => {\n if (process.env.NODE_ENV === 'development') {\n /* istanbul ignore if: не проверяем в тестах */\n if (getRef) {\n warn(\n 'Свойство `getRef` устаревшее и будет удалено в VKUI v9. Используйте `slotProps={ img: { getRootRef: ... } }`',\n );\n }\n }\n\n const size = sizeProp ?? minOr([sizeToNumber(widthSize), sizeToNumber(heightSize)], defaultSize);\n const wrapperRef = useExternRef(getRootRef);\n\n const width = widthSize ?? (keepAspectRatio ? undefined : size);\n const height = heightSize ?? (keepAspectRatio ? undefined : size);\n\n const [loaded, setLoaded] = React.useState(false);\n const [failed, setFailed] = React.useState(false);\n\n const [mouseOverHandlers] = React.useState<VoidFunction[]>([]);\n const [mouseOutHandlers] = React.useState<VoidFunction[]>([]);\n\n const hasSrc = src || srcSet;\n const fallbackIcon = failed || !hasSrc ? fallbackIconProp : null;\n\n if (process.env.NODE_ENV === 'development') {\n validateSize(size);\n if (React.isValidElement(fallbackIcon)) {\n validateFallbackIcon(size, { name: 'fallbackIcon', value: fallbackIcon });\n }\n }\n\n const handleImageLoad = (event: React.SyntheticEvent<HTMLImageElement>) => {\n if (loaded) {\n return;\n }\n\n setLoaded(true);\n setFailed(false);\n onLoad?.(event);\n };\n\n const handleImageError = (event: React.SyntheticEvent<HTMLImageElement>) => {\n setLoaded(false);\n setFailed(true);\n onError?.(event);\n };\n\n const {\n getRootRef: getImgRef,\n fetchPriority,\n ...imgRest\n } = useMergeProps<React.ComponentProps<'img'> & HasRootRef<HTMLImageElement> & HasDataAttribute>(\n hasSrc\n ? {\n // safari и firefox нужно чтобы атрибут `loading` был до `src`\n //\n // https://mihaly4.ru/image-loading-lazy-bug\n loading,\n getRootRef: getRef,\n alt,\n className: classNames(\n styles.img,\n getObjectFitClassName(objectFit),\n objectPosition && styles.withObjectPosition,\n filter && styles.withFilter,\n keepAspectRatio && styles.imgKeepRatio,\n failed && styles.imgHiddenAlt,\n ),\n crossOrigin,\n decoding,\n referrerPolicy,\n style: mergeStyle(\n keepAspectRatio\n ? {\n width: widthImg || width,\n height: heightImg || height,\n }\n : undefined,\n objectPosition || filter\n ? {\n '--vkui_internal--ImageBase_object_position': objectPosition,\n '--vkui_internal--ImageBase_object_filter': filter,\n }\n : undefined,\n ),\n sizes,\n src,\n srcSet,\n useMap,\n width,\n height,\n onLoad: handleImageLoad,\n onError: handleImageError,\n fetchPriority: fetchPriorityProp,\n // @ts-expect-error: TS2322 отсутствует в @types/react\n elementtiming: elementTiming, // eslint-disable-line react/no-unknown-property\n }\n : {},\n hasSrc ? slotProps?.img : undefined,\n );\n\n const imgRef = useExternRef(getImgRef);\n const isOnLoadStatusCheckedRef = React.useRef(false);\n React.useEffect(\n function dispatchLoadEventForAlreadyLoadedResourceIfReactInitializedLater() {\n if (isOnLoadStatusCheckedRef.current) {\n return;\n }\n isOnLoadStatusCheckedRef.current = true;\n\n if (imgRef.current && imgRef.current.complete && !loaded) {\n const event = new Event('load');\n imgRef.current.dispatchEvent(event);\n }\n },\n [imgRef, loaded],\n );\n\n const onMouseOver = () => {\n mouseOverHandlers.forEach((fn) => fn());\n };\n\n const onMouseOut = () => {\n mouseOutHandlers.forEach((fn) => fn());\n };\n\n const contextValue = React.useMemo(\n () => ({\n size,\n onMouseOverHandlers: mouseOverHandlers,\n onMouseOutHandlers: mouseOutHandlers,\n }),\n [mouseOutHandlers, mouseOverHandlers, size],\n );\n\n const imgSlot = hasSrc && (\n <img ref={imgRef} {...imgRest} {...getFetchPriorityProp(fetchPriority)} />\n );\n\n return (\n <ImageBaseContext.Provider value={contextValue}>\n <Clickable\n baseStyle={{ width, height }}\n baseClassName={classNames(\n styles.host,\n hasSrc && loaded && styles.loaded,\n withTransparentBackground && styles.transparentBackground,\n )}\n getRootRef={wrapperRef}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n {...restProps}\n >\n {filter ? <div className={styles.imgWithFilterContainer}>{imgSlot}</div> : imgSlot}\n {fallbackIcon && <div className={styles.fallback}>{fallbackIcon}</div>}\n {children && <div className={styles.children}>{children}</div>}\n {!noBorder && <div aria-hidden className={styles.border} />}\n </Clickable>\n </ImageBaseContext.Provider>\n );\n};\nImageBase.Badge = ImageBaseBadge;\nImageBase.Overlay = ImageBaseOverlay;\nImageBase.FloatElement = ImageBaseFloatElement;\n\nif (process.env.NODE_ENV !== 'production') {\n defineComponentDisplayNames(ImageBase.Badge, 'ImageBase.Badge');\n defineComponentDisplayNames(ImageBase.Overlay, 'ImageBase.Overlay');\n defineComponentDisplayNames(ImageBase.FloatElement, 'ImageBase.FloatElement');\n}\n"],"names":["React","classNames","mergeStyle","useExternRef","useMergeProps","minOr","defineComponentDisplayNames","getFetchPriorityProp","warnOnce","Clickable","ImageBaseBadge","ImageBaseFloatElement","ImageBaseOverlay","ImageBaseContext","validateFallbackIcon","validateSize","styles","getBadgeIconSizeByImageBaseSize","getFallbackIconSizeByImageBaseSize","getOverlayIconSizeByImageBaseSize","warn","defaultSize","getObjectFitClassName","objectFit","imgObjectFitContain","imgObjectFitCover","imgObjectFitNone","imgObjectFitScaleDown","undefined","parsePx","value","endsWith","parseInt","sizeToNumber","size","ImageBase","alt","crossOrigin","decoding","loading","referrerPolicy","sizes","src","srcSet","useMap","fetchPriority","fetchPriorityProp","getRef","sizeProp","width","widthImg","height","heightImg","widthSize","heightSize","noBorder","fallbackIcon","fallbackIconProp","children","onLoad","onError","withTransparentBackground","objectPosition","filter","keepAspectRatio","getRootRef","elementTiming","slotProps","restProps","process","env","NODE_ENV","wrapperRef","loaded","setLoaded","useState","failed","setFailed","mouseOverHandlers","mouseOutHandlers","hasSrc","isValidElement","name","handleImageLoad","event","handleImageError","getImgRef","imgRest","className","img","withObjectPosition","withFilter","imgKeepRatio","imgHiddenAlt","style","elementtiming","imgRef","isOnLoadStatusCheckedRef","useRef","useEffect","dispatchLoadEventForAlreadyLoadedResourceIfReactInitializedLater","current","complete","Event","dispatchEvent","onMouseOver","forEach","fn","onMouseOut","contextValue","useMemo","onMouseOverHandlers","onMouseOutHandlers","imgSlot","ref","Provider","baseStyle","baseClassName","host","transparentBackground","div","imgWithFilterContainer","fallback","aria-hidden","border","Badge","Overlay","FloatElement"],"mappings":"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"}
|
|
@@ -41,10 +41,19 @@
|
|
|
41
41
|
transform-origin: left top;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
.
|
|
45
|
-
|
|
44
|
+
.imgWithFilterContainer {
|
|
45
|
+
overflow: hidden; /* Обрезает сайд-эффекты свойства `filter`. */
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.img,
|
|
49
|
+
.imgWithFilterContainer {
|
|
46
50
|
inline-size: 100%;
|
|
47
51
|
block-size: 100%;
|
|
52
|
+
border-radius: inherit;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.img {
|
|
56
|
+
display: block;
|
|
48
57
|
/* Скрывает текст из атрибута alt. */
|
|
49
58
|
color: transparent;
|
|
50
59
|
/*
|
|
@@ -53,7 +62,6 @@
|
|
|
53
62
|
*/
|
|
54
63
|
text-indent: 10000px;
|
|
55
64
|
border: 0;
|
|
56
|
-
border-radius: inherit;
|
|
57
65
|
}
|
|
58
66
|
|
|
59
67
|
.imgKeepRatio {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HTMLAttributesWithRootRef } from '../../../types';\nimport { RootComponent } from '../../RootComponent/RootComponent';\nimport { ImageBaseContext } from '../context';\nimport type { ImageBaseExpectedIconProps } from '../types';\nimport { validateBadgeIcon } from '../validators';\nimport styles from './ImageBaseBadge.module.css';\n\nfunction DevelopmentCheck({ children }: Pick<ImageBaseBadgeProps, 'children'>) {\n const { size } = React.useContext(ImageBaseContext);\n\n if (children) {\n validateBadgeIcon(size, { name: 'children', value: children });\n }\n\n return null;\n}\n\nconst backgroundStyles = {\n stroke: styles.backgroundStroke,\n shadow: styles.backgroundShadow,\n};\n\nexport interface ImageBaseBadgeProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Вид подложки под иконку.\n *\n * - `\"stroke\"` – имитирует вырез (⚠️ если фон под компонентом динамический, то ожидайте баг).\n * - `\"shadow\"` – добавляет небольшую тень (⚠️ если фон под компонентом динамический, то ожидайте баг).\n */\n background?: 'stroke' | 'shadow';\n /**\n * Принимает иконку.\n *\n * > 📝 Нужный для `<ImageBase size={...} />` размер можно узнать из функции `getBadgeIconSizeByImageBaseSize()`.\n *\n * > Предпочтительней использовать иконки из `@vkontakte/icons`.\n *\n * > 📊️ Если вы хотите передать кастомную иконку, то следует именовать её по шаблону `Icon<size><name>`. Или же\n * > чтобы в неё был передан параметр `width`. Тогда мы сможем выводить в консоль подсказку правильного ли размера вы\n * > использовали иконку.\n */\n children: React.ReactElement<ImageBaseExpectedIconProps>;\n}\n\n/**\n * Бейдж в правом нижнем углу компонента.\n *\n * > Не используйте при `size < 24`.\n */\nexport const ImageBaseBadge = ({ background = 'shadow', ...restProps }: ImageBaseBadgeProps) => {\n return (\n <>\n <RootComponent\n {...restProps}\n baseClassName={classNames(styles.host, backgroundStyles[background])}\n />\n {process.env.NODE_ENV === 'development' && (\n <DevelopmentCheck>{restProps.children}</DevelopmentCheck>\n )}\n </>\n );\n};\n"],"names":["React","classNames","RootComponent","ImageBaseContext","validateBadgeIcon","styles","DevelopmentCheck","children","size","useContext","name","value","backgroundStyles","stroke","backgroundStroke","shadow","backgroundShadow","ImageBaseBadge","background","restProps","baseClassName","host","process","env","NODE_ENV"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,uCAAoC;AAClE,SAASC,gBAAgB,QAAQ,gBAAa;AAE9C,SAASC,iBAAiB,QAAQ,mBAAgB;AAClD,OAAOC,YAAY,8BAA8B;AAEjD,SAASC,iBAAiB,EAAEC,QAAQ,EAAyC;IAC3E,MAAM,EAAEC,IAAI,EAAE,GAAGR,MAAMS,UAAU,CAACN;IAElC,IAAII,UAAU;QACZH,kBAAkBI,MAAM;YAAEE,MAAM;YAAYC,OAAOJ;QAAS;IAC9D;IAEA,OAAO;AACT;AAEA,MAAMK,mBAAmB;IACvBC,QAAQR,OAAOS,gBAAgB;IAC/BC,QAAQV,OAAOW,gBAAgB;AACjC;AAwBA;;;;CAIC,GACD,OAAO,MAAMC,iBAAiB,CAAC,EAAEC,aAAa,QAAQ,EAAE,GAAGC,WAAgC;IACzF,qBACE;;0BACE,KAACjB;gBACE,GAAGiB,SAAS;gBACbC,eAAenB,WAAWI,OAAOgB,IAAI,EAAET,gBAAgB,CAACM,WAAW;;YAEpEI,QAAQC,GAAG,CAACC,QAAQ,KAAK,+BACxB,KAAClB;0BAAkBa,UAAUZ,QAAQ;;;;AAI7C,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HTMLAttributesWithRootRef } from '../../../types';\nimport { RootComponent } from '../../RootComponent/RootComponent';\nimport { ImageBaseContext } from '../context';\nimport type { ImageBaseExpectedIconProps } from '../types';\nimport { validateBadgeIcon } from '../validators';\nimport styles from './ImageBaseBadge.module.css';\n\nfunction DevelopmentCheck({ children }: Pick<ImageBaseBadgeProps, 'children'>) {\n const { size } = React.useContext(ImageBaseContext);\n\n if (children) {\n validateBadgeIcon(size, { name: 'children', value: children });\n }\n\n return null;\n}\n\nconst backgroundStyles = {\n stroke: styles.backgroundStroke,\n shadow: styles.backgroundShadow,\n};\n\nexport interface ImageBaseBadgeProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Вид подложки под иконку.\n *\n * - `\"stroke\"` – имитирует вырез (⚠️ если фон под компонентом динамический, то ожидайте баг).\n * - `\"shadow\"` – добавляет небольшую тень (⚠️ если фон под компонентом динамический, то ожидайте баг).\n */\n background?: 'stroke' | 'shadow' | undefined;\n /**\n * Принимает иконку.\n *\n * > 📝 Нужный для `<ImageBase size={...} />` размер можно узнать из функции `getBadgeIconSizeByImageBaseSize()`.\n *\n * > Предпочтительней использовать иконки из `@vkontakte/icons`.\n *\n * > 📊️ Если вы хотите передать кастомную иконку, то следует именовать её по шаблону `Icon<size><name>`. Или же\n * > чтобы в неё был передан параметр `width`. Тогда мы сможем выводить в консоль подсказку правильного ли размера вы\n * > использовали иконку.\n */\n children: React.ReactElement<ImageBaseExpectedIconProps>;\n}\n\n/**\n * Бейдж в правом нижнем углу компонента.\n *\n * > Не используйте при `size < 24`.\n */\nexport const ImageBaseBadge = ({ background = 'shadow', ...restProps }: ImageBaseBadgeProps) => {\n return (\n <>\n <RootComponent\n {...restProps}\n baseClassName={classNames(styles.host, backgroundStyles[background])}\n />\n {process.env.NODE_ENV === 'development' && (\n <DevelopmentCheck>{restProps.children}</DevelopmentCheck>\n )}\n </>\n );\n};\n"],"names":["React","classNames","RootComponent","ImageBaseContext","validateBadgeIcon","styles","DevelopmentCheck","children","size","useContext","name","value","backgroundStyles","stroke","backgroundStroke","shadow","backgroundShadow","ImageBaseBadge","background","restProps","baseClassName","host","process","env","NODE_ENV"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,uCAAoC;AAClE,SAASC,gBAAgB,QAAQ,gBAAa;AAE9C,SAASC,iBAAiB,QAAQ,mBAAgB;AAClD,OAAOC,YAAY,8BAA8B;AAEjD,SAASC,iBAAiB,EAAEC,QAAQ,EAAyC;IAC3E,MAAM,EAAEC,IAAI,EAAE,GAAGR,MAAMS,UAAU,CAACN;IAElC,IAAII,UAAU;QACZH,kBAAkBI,MAAM;YAAEE,MAAM;YAAYC,OAAOJ;QAAS;IAC9D;IAEA,OAAO;AACT;AAEA,MAAMK,mBAAmB;IACvBC,QAAQR,OAAOS,gBAAgB;IAC/BC,QAAQV,OAAOW,gBAAgB;AACjC;AAwBA;;;;CAIC,GACD,OAAO,MAAMC,iBAAiB,CAAC,EAAEC,aAAa,QAAQ,EAAE,GAAGC,WAAgC;IACzF,qBACE;;0BACE,KAACjB;gBACE,GAAGiB,SAAS;gBACbC,eAAenB,WAAWI,OAAOgB,IAAI,EAAET,gBAAgB,CAACM,WAAW;;YAEpEI,QAAQC,GAAG,CAACC,QAAQ,KAAK,+BACxB,KAAClB;0BAAkBa,UAAUZ,QAAQ;;;;AAI7C,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useIsomorphicLayoutEffect } from '../../../lib/useIsomorphicLayoutEffect';\nimport type { HTMLAttributesWithRootRef } from '../../../types';\nimport { RootComponent } from '../../RootComponent/RootComponent';\nimport { ImageBaseContext } from '../context';\nimport { mutableRemoveElement, resolveIndent } from './helpers';\nimport styles from './ImageBaseFloatElement.module.css';\n\nexport type FloatElementPlacement =\n | 'top-start'\n | 'top'\n | 'top-end'\n | 'bottom-start'\n | 'bottom'\n | 'bottom-end'\n | 'middle-start'\n | 'middle'\n | 'middle-end';\n\nexport type FloatElementIndentation =\n | '2xs'\n | 'xs'\n | 's'\n | 'm'\n | 'l'\n | 'xl'\n | '2xl'\n | '3xl'\n | '4xl'\n | number\n | string;\n\nconst positionPlacementClassNames = {\n 'top-start': styles.placementTopStart,\n 'top': styles.placementTop,\n 'top-end': styles.placementTopEnd,\n 'bottom-start': styles.placementBottomStart,\n 'bottom': styles.placementBottom,\n 'bottom-end': styles.placementBottomEnd,\n 'middle-start': styles.placementMiddleStart,\n 'middle': styles.placementMiddle,\n 'middle-end': styles.placementMiddleEnd,\n};\n\nconst inlineIndentClassNames = {\n '2xs': styles.inlineIndent2xs,\n 'xs': styles.inlineIndentXs,\n 's': styles.inlineIndentS,\n 'm': styles.inlineIndentM,\n 'l': styles.inlineIndentL,\n 'xl': styles.inlineIndentXl,\n '2xl': styles.inlineIndent2xl,\n '3xl': styles.inlineIndent3xl,\n '4xl': styles.inlineIndent4xl,\n};\n\nconst blockIndentClassNames = {\n '2xs': styles.blockIndent2xs,\n 'xs': styles.blockIndentXs,\n 's': styles.blockIndentS,\n 'm': styles.blockIndentM,\n 'l': styles.blockIndentL,\n 'xl': styles.blockIndentXl,\n '2xl': styles.blockIndent2xl,\n '3xl': styles.blockIndent3xl,\n '4xl': styles.blockIndent4xl,\n};\n\nexport interface ImageBaseFloatElementProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Позиция компонента относительно родителя.\n */\n placement: FloatElementPlacement;\n /**\n * Отступ компонента от края контейнера по горизонтали.\n */\n inlineIndent?: FloatElementIndentation;\n /**\n * Отступ компонента от края контейнера по вертикали.\n */\n blockIndent?: FloatElementIndentation;\n /**\n * Режим отображения компонента:\n *\n * - `\"always\"`: Всегда\n * - `\"on-hover\"`: При наведении на картинку.\n */\n visibility?: 'always' | 'on-hover';\n}\n\nexport const ImageBaseFloatElement = ({\n placement,\n visibility = 'always',\n style,\n className,\n inlineIndent,\n blockIndent,\n ...restProps\n}: ImageBaseFloatElementProps) => {\n const [hidden, setHidden] = React.useState(visibility !== 'always');\n const { onMouseOverHandlers, onMouseOutHandlers } = React.useContext(ImageBaseContext);\n\n useIsomorphicLayoutEffect(\n function resetHidden() {\n setHidden(visibility === 'on-hover');\n },\n [visibility],\n );\n\n useIsomorphicLayoutEffect(\n function addMouseHandlers() {\n if (visibility === 'on-hover') {\n const onMouseOver = () => setHidden(false);\n const onMouseOut = () => setHidden(true);\n\n onMouseOverHandlers.push(onMouseOver);\n onMouseOutHandlers.push(onMouseOut);\n\n return () => {\n mutableRemoveElement(onMouseOverHandlers, onMouseOver);\n mutableRemoveElement(onMouseOutHandlers, onMouseOut);\n };\n }\n return;\n },\n [visibility],\n );\n\n const [inlineIndentStyle, blockIndentStyle, inlineIndentClassName, blockIndentClassName] =\n React.useMemo(() => {\n const [inlineIndentStyle, inlineIndentClassName] = resolveIndent(\n inlineIndent,\n '--vkui_internal--FloatElement_horizontal_indent',\n inlineIndentClassNames,\n );\n const [blockIndentStyle, blockIndentClassName] = resolveIndent(\n blockIndent,\n '--vkui_internal--FloatElement_vertical_indent',\n blockIndentClassNames,\n );\n\n return [inlineIndentStyle, blockIndentStyle, inlineIndentClassName, blockIndentClassName];\n }, [inlineIndent, blockIndent]);\n\n return (\n <RootComponent\n {...restProps}\n style={{\n ...style,\n ...inlineIndentStyle,\n ...blockIndentStyle,\n }}\n className={classNames(\n styles.host,\n hidden && styles.hidden,\n positionPlacementClassNames[placement],\n inlineIndentClassName,\n blockIndentClassName,\n className,\n )}\n />\n );\n};\n"],"names":["React","classNames","useIsomorphicLayoutEffect","RootComponent","ImageBaseContext","mutableRemoveElement","resolveIndent","styles","positionPlacementClassNames","placementTopStart","placementTop","placementTopEnd","placementBottomStart","placementBottom","placementBottomEnd","placementMiddleStart","placementMiddle","placementMiddleEnd","inlineIndentClassNames","inlineIndent2xs","inlineIndentXs","inlineIndentS","inlineIndentM","inlineIndentL","inlineIndentXl","inlineIndent2xl","inlineIndent3xl","inlineIndent4xl","blockIndentClassNames","blockIndent2xs","blockIndentXs","blockIndentS","blockIndentM","blockIndentL","blockIndentXl","blockIndent2xl","blockIndent3xl","blockIndent4xl","ImageBaseFloatElement","placement","visibility","style","className","inlineIndent","blockIndent","restProps","hidden","setHidden","useState","onMouseOverHandlers","onMouseOutHandlers","useContext","resetHidden","addMouseHandlers","onMouseOver","onMouseOut","push","inlineIndentStyle","blockIndentStyle","inlineIndentClassName","blockIndentClassName","useMemo","host"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,yBAAyB,QAAQ,4CAAyC;AAEnF,SAASC,aAAa,QAAQ,uCAAoC;AAClE,SAASC,gBAAgB,QAAQ,gBAAa;AAC9C,SAASC,oBAAoB,EAAEC,aAAa,QAAQ,eAAY;AAChE,OAAOC,YAAY,qCAAqC;AA0BxD,MAAMC,8BAA8B;IAClC,aAAaD,OAAOE,iBAAiB;IACrC,OAAOF,OAAOG,YAAY;IAC1B,WAAWH,OAAOI,eAAe;IACjC,gBAAgBJ,OAAOK,oBAAoB;IAC3C,UAAUL,OAAOM,eAAe;IAChC,cAAcN,OAAOO,kBAAkB;IACvC,gBAAgBP,OAAOQ,oBAAoB;IAC3C,UAAUR,OAAOS,eAAe;IAChC,cAAcT,OAAOU,kBAAkB;AACzC;AAEA,MAAMC,yBAAyB;IAC7B,OAAOX,OAAOY,eAAe;IAC7B,MAAMZ,OAAOa,cAAc;IAC3B,KAAKb,OAAOc,aAAa;IACzB,KAAKd,OAAOe,aAAa;IACzB,KAAKf,OAAOgB,aAAa;IACzB,MAAMhB,OAAOiB,cAAc;IAC3B,OAAOjB,OAAOkB,eAAe;IAC7B,OAAOlB,OAAOmB,eAAe;IAC7B,OAAOnB,OAAOoB,eAAe;AAC/B;AAEA,MAAMC,wBAAwB;IAC5B,OAAOrB,OAAOsB,cAAc;IAC5B,MAAMtB,OAAOuB,aAAa;IAC1B,KAAKvB,OAAOwB,YAAY;IACxB,KAAKxB,OAAOyB,YAAY;IACxB,KAAKzB,OAAO0B,YAAY;IACxB,MAAM1B,OAAO2B,aAAa;IAC1B,OAAO3B,OAAO4B,cAAc;IAC5B,OAAO5B,OAAO6B,cAAc;IAC5B,OAAO7B,OAAO8B,cAAc;AAC9B;AAwBA,OAAO,MAAMC,wBAAwB,CAAC,EACpCC,SAAS,EACTC,aAAa,QAAQ,EACrBC,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,WAAW,EACX,GAAGC,WACwB;IAC3B,MAAM,CAACC,QAAQC,UAAU,GAAG/C,MAAMgD,QAAQ,CAACR,eAAe;IAC1D,MAAM,EAAES,mBAAmB,EAAEC,kBAAkB,EAAE,GAAGlD,MAAMmD,UAAU,CAAC/C;IAErEF,0BACE,SAASkD;QACPL,UAAUP,eAAe;IAC3B,GACA;QAACA;KAAW;IAGdtC,0BACE,SAASmD;QACP,IAAIb,eAAe,YAAY;YAC7B,MAAMc,cAAc,IAAMP,UAAU;YACpC,MAAMQ,aAAa,IAAMR,UAAU;YAEnCE,oBAAoBO,IAAI,CAACF;YACzBJ,mBAAmBM,IAAI,CAACD;YAExB,OAAO;gBACLlD,qBAAqB4C,qBAAqBK;gBAC1CjD,qBAAqB6C,oBAAoBK;YAC3C;QACF;QACA;IACF,GACA;QAACf;KAAW;IAGd,MAAM,CAACiB,mBAAmBC,kBAAkBC,uBAAuBC,qBAAqB,GACtF5D,MAAM6D,OAAO,CAAC;QACZ,MAAM,CAACJ,mBAAmBE,sBAAsB,GAAGrD,cACjDqC,cACA,mDACAzB;QAEF,MAAM,CAACwC,kBAAkBE,qBAAqB,GAAGtD,cAC/CsC,aACA,iDACAhB;QAGF,OAAO;YAAC6B;YAAmBC;YAAkBC;YAAuBC;SAAqB;IAC3F,GAAG;QAACjB;QAAcC;KAAY;IAEhC,qBACE,KAACzC;QACE,GAAG0C,SAAS;QACbJ,OAAO;YACL,GAAGA,KAAK;YACR,GAAGgB,iBAAiB;YACpB,GAAGC,gBAAgB;QACrB;QACAhB,WAAWzC,WACTM,OAAOuD,IAAI,EACXhB,UAAUvC,OAAOuC,MAAM,EACvBtC,2BAA2B,CAAC+B,UAAU,EACtCoB,uBACAC,sBACAlB;;AAIR,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useIsomorphicLayoutEffect } from '../../../lib/useIsomorphicLayoutEffect';\nimport type { HTMLAttributesWithRootRef } from '../../../types';\nimport { RootComponent } from '../../RootComponent/RootComponent';\nimport { ImageBaseContext } from '../context';\nimport { mutableRemoveElement, resolveIndent } from './helpers';\nimport styles from './ImageBaseFloatElement.module.css';\n\nexport type FloatElementPlacement =\n | 'top-start'\n | 'top'\n | 'top-end'\n | 'bottom-start'\n | 'bottom'\n | 'bottom-end'\n | 'middle-start'\n | 'middle'\n | 'middle-end';\n\nexport type FloatElementIndentation =\n | '2xs'\n | 'xs'\n | 's'\n | 'm'\n | 'l'\n | 'xl'\n | '2xl'\n | '3xl'\n | '4xl'\n | number\n | string;\n\nconst positionPlacementClassNames = {\n 'top-start': styles.placementTopStart,\n 'top': styles.placementTop,\n 'top-end': styles.placementTopEnd,\n 'bottom-start': styles.placementBottomStart,\n 'bottom': styles.placementBottom,\n 'bottom-end': styles.placementBottomEnd,\n 'middle-start': styles.placementMiddleStart,\n 'middle': styles.placementMiddle,\n 'middle-end': styles.placementMiddleEnd,\n};\n\nconst inlineIndentClassNames = {\n '2xs': styles.inlineIndent2xs,\n 'xs': styles.inlineIndentXs,\n 's': styles.inlineIndentS,\n 'm': styles.inlineIndentM,\n 'l': styles.inlineIndentL,\n 'xl': styles.inlineIndentXl,\n '2xl': styles.inlineIndent2xl,\n '3xl': styles.inlineIndent3xl,\n '4xl': styles.inlineIndent4xl,\n};\n\nconst blockIndentClassNames = {\n '2xs': styles.blockIndent2xs,\n 'xs': styles.blockIndentXs,\n 's': styles.blockIndentS,\n 'm': styles.blockIndentM,\n 'l': styles.blockIndentL,\n 'xl': styles.blockIndentXl,\n '2xl': styles.blockIndent2xl,\n '3xl': styles.blockIndent3xl,\n '4xl': styles.blockIndent4xl,\n};\n\nexport interface ImageBaseFloatElementProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Позиция компонента относительно родителя.\n */\n placement: FloatElementPlacement;\n /**\n * Отступ компонента от края контейнера по горизонтали.\n */\n inlineIndent?: FloatElementIndentation | undefined;\n /**\n * Отступ компонента от края контейнера по вертикали.\n */\n blockIndent?: FloatElementIndentation | undefined;\n /**\n * Режим отображения компонента:\n *\n * - `\"always\"`: Всегда\n * - `\"on-hover\"`: При наведении на картинку.\n */\n visibility?: 'always' | 'on-hover' | undefined;\n}\n\nexport const ImageBaseFloatElement = ({\n placement,\n visibility = 'always',\n style,\n className,\n inlineIndent,\n blockIndent,\n ...restProps\n}: ImageBaseFloatElementProps) => {\n const [hidden, setHidden] = React.useState(visibility !== 'always');\n const { onMouseOverHandlers, onMouseOutHandlers } = React.useContext(ImageBaseContext);\n\n useIsomorphicLayoutEffect(\n function resetHidden() {\n setHidden(visibility === 'on-hover');\n },\n [visibility],\n );\n\n useIsomorphicLayoutEffect(\n function addMouseHandlers() {\n if (visibility === 'on-hover') {\n const onMouseOver = () => setHidden(false);\n const onMouseOut = () => setHidden(true);\n\n onMouseOverHandlers.push(onMouseOver);\n onMouseOutHandlers.push(onMouseOut);\n\n return () => {\n mutableRemoveElement(onMouseOverHandlers, onMouseOver);\n mutableRemoveElement(onMouseOutHandlers, onMouseOut);\n };\n }\n return;\n },\n [visibility],\n );\n\n const [inlineIndentStyle, blockIndentStyle, inlineIndentClassName, blockIndentClassName] =\n React.useMemo(() => {\n const [inlineIndentStyle, inlineIndentClassName] = resolveIndent(\n inlineIndent,\n '--vkui_internal--FloatElement_horizontal_indent',\n inlineIndentClassNames,\n );\n const [blockIndentStyle, blockIndentClassName] = resolveIndent(\n blockIndent,\n '--vkui_internal--FloatElement_vertical_indent',\n blockIndentClassNames,\n );\n\n return [inlineIndentStyle, blockIndentStyle, inlineIndentClassName, blockIndentClassName];\n }, [inlineIndent, blockIndent]);\n\n return (\n <RootComponent\n {...restProps}\n style={{\n ...style,\n ...inlineIndentStyle,\n ...blockIndentStyle,\n }}\n className={classNames(\n styles.host,\n hidden && styles.hidden,\n positionPlacementClassNames[placement],\n inlineIndentClassName,\n blockIndentClassName,\n className,\n )}\n />\n );\n};\n"],"names":["React","classNames","useIsomorphicLayoutEffect","RootComponent","ImageBaseContext","mutableRemoveElement","resolveIndent","styles","positionPlacementClassNames","placementTopStart","placementTop","placementTopEnd","placementBottomStart","placementBottom","placementBottomEnd","placementMiddleStart","placementMiddle","placementMiddleEnd","inlineIndentClassNames","inlineIndent2xs","inlineIndentXs","inlineIndentS","inlineIndentM","inlineIndentL","inlineIndentXl","inlineIndent2xl","inlineIndent3xl","inlineIndent4xl","blockIndentClassNames","blockIndent2xs","blockIndentXs","blockIndentS","blockIndentM","blockIndentL","blockIndentXl","blockIndent2xl","blockIndent3xl","blockIndent4xl","ImageBaseFloatElement","placement","visibility","style","className","inlineIndent","blockIndent","restProps","hidden","setHidden","useState","onMouseOverHandlers","onMouseOutHandlers","useContext","resetHidden","addMouseHandlers","onMouseOver","onMouseOut","push","inlineIndentStyle","blockIndentStyle","inlineIndentClassName","blockIndentClassName","useMemo","host"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,yBAAyB,QAAQ,4CAAyC;AAEnF,SAASC,aAAa,QAAQ,uCAAoC;AAClE,SAASC,gBAAgB,QAAQ,gBAAa;AAC9C,SAASC,oBAAoB,EAAEC,aAAa,QAAQ,eAAY;AAChE,OAAOC,YAAY,qCAAqC;AA0BxD,MAAMC,8BAA8B;IAClC,aAAaD,OAAOE,iBAAiB;IACrC,OAAOF,OAAOG,YAAY;IAC1B,WAAWH,OAAOI,eAAe;IACjC,gBAAgBJ,OAAOK,oBAAoB;IAC3C,UAAUL,OAAOM,eAAe;IAChC,cAAcN,OAAOO,kBAAkB;IACvC,gBAAgBP,OAAOQ,oBAAoB;IAC3C,UAAUR,OAAOS,eAAe;IAChC,cAAcT,OAAOU,kBAAkB;AACzC;AAEA,MAAMC,yBAAyB;IAC7B,OAAOX,OAAOY,eAAe;IAC7B,MAAMZ,OAAOa,cAAc;IAC3B,KAAKb,OAAOc,aAAa;IACzB,KAAKd,OAAOe,aAAa;IACzB,KAAKf,OAAOgB,aAAa;IACzB,MAAMhB,OAAOiB,cAAc;IAC3B,OAAOjB,OAAOkB,eAAe;IAC7B,OAAOlB,OAAOmB,eAAe;IAC7B,OAAOnB,OAAOoB,eAAe;AAC/B;AAEA,MAAMC,wBAAwB;IAC5B,OAAOrB,OAAOsB,cAAc;IAC5B,MAAMtB,OAAOuB,aAAa;IAC1B,KAAKvB,OAAOwB,YAAY;IACxB,KAAKxB,OAAOyB,YAAY;IACxB,KAAKzB,OAAO0B,YAAY;IACxB,MAAM1B,OAAO2B,aAAa;IAC1B,OAAO3B,OAAO4B,cAAc;IAC5B,OAAO5B,OAAO6B,cAAc;IAC5B,OAAO7B,OAAO8B,cAAc;AAC9B;AAwBA,OAAO,MAAMC,wBAAwB,CAAC,EACpCC,SAAS,EACTC,aAAa,QAAQ,EACrBC,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,WAAW,EACX,GAAGC,WACwB;IAC3B,MAAM,CAACC,QAAQC,UAAU,GAAG/C,MAAMgD,QAAQ,CAACR,eAAe;IAC1D,MAAM,EAAES,mBAAmB,EAAEC,kBAAkB,EAAE,GAAGlD,MAAMmD,UAAU,CAAC/C;IAErEF,0BACE,SAASkD;QACPL,UAAUP,eAAe;IAC3B,GACA;QAACA;KAAW;IAGdtC,0BACE,SAASmD;QACP,IAAIb,eAAe,YAAY;YAC7B,MAAMc,cAAc,IAAMP,UAAU;YACpC,MAAMQ,aAAa,IAAMR,UAAU;YAEnCE,oBAAoBO,IAAI,CAACF;YACzBJ,mBAAmBM,IAAI,CAACD;YAExB,OAAO;gBACLlD,qBAAqB4C,qBAAqBK;gBAC1CjD,qBAAqB6C,oBAAoBK;YAC3C;QACF;QACA;IACF,GACA;QAACf;KAAW;IAGd,MAAM,CAACiB,mBAAmBC,kBAAkBC,uBAAuBC,qBAAqB,GACtF5D,MAAM6D,OAAO,CAAC;QACZ,MAAM,CAACJ,mBAAmBE,sBAAsB,GAAGrD,cACjDqC,cACA,mDACAzB;QAEF,MAAM,CAACwC,kBAAkBE,qBAAqB,GAAGtD,cAC/CsC,aACA,iDACAhB;QAGF,OAAO;YAAC6B;YAAmBC;YAAkBC;YAAuBC;SAAqB;IAC3F,GAAG;QAACjB;QAAcC;KAAY;IAEhC,qBACE,KAACzC;QACE,GAAG0C,SAAS;QACbJ,OAAO;YACL,GAAGA,KAAK;YACR,GAAGgB,iBAAiB;YACpB,GAAGC,gBAAgB;QACrB;QACAhB,WAAWzC,WACTM,OAAOuD,IAAI,EACXhB,UAAUvC,OAAOuC,MAAM,EACvBtC,2BAA2B,CAAC+B,UAAU,EACtCoB,uBACAC,sBACAlB;;AAIR,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ImageBase/ImageBaseOverlay/types.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { HasRootRef } from '../../../types';\nimport type { ImageBaseExpectedIconProps } from '../types';\n\nexport interface ImageBaseOverlayCommonProps\n extends React.AriaAttributes,\n HasRootRef<HTMLDivElement> {\n /**\n * Задаёт тему оформления.\n *\n * > По умолчанию берётся из параметра `appearance` в `ConfigProvider`.\n */\n theme?: 'dark' | 'light';\n /**\n * Определяет каким образом должен показываться оверлей.\n *\n * - `\"on-hover\"` – на наведение указателя мыши.\n * - `\"always\"` – всегда показывать.\n *\n * > По умолчанию определяется в зависимости от того, есть ли у пользователя мышь или нет.\n * > Определение просиходит с помощью двойного рендера, так что на устройствах без мыши\n * > оверлей покажется не раньше второго рендера.\n * > Если это критично (например при SSR), то старайтесь явно указывать значение `visibility`, либо используйте\n * > [AdaptivityProvider](#/AdaptivityProvider) для того, чтобы явно определить `hasPointer`.\n */\n visibility?: 'on-hover' | 'always';\n /**\n * `className` для компонента.\n */\n className?: string;\n}\n\nexport interface ImageBaseOverlayInteractiveProps extends ImageBaseOverlayCommonProps {\n /**\n * Обработчик взаимодействия с элементом.\n */\n onClick: React.MouseEventHandler<HTMLElement>;\n /**\n * Принимает иконку.\n *\n *\n * > 📝 Нужный для `<ImageBase size={...} />` размер можно узнать из функции `getOverlayIconSizeByImageBaseSize()`.\n *\n * > Предпочтительней использовать иконки из `@vkontakte/icons`.\n *\n * > 📊️ Если вы хотите передать кастомную иконку, то следует именовать её по шаблону `Icon<size><name>`. Или же\n * > чтобы в неё был передан параметр `width`. Тогда мы сможем выводить в консоль подсказку правильного ли размера вы\n * > использовали иконку.\n */\n children: React.ReactElement<ImageBaseExpectedIconProps>;\n}\n\nexport interface ImageBaseOverlayNonInteractiveProps extends ImageBaseOverlayCommonProps {\n /**\n * По умолчанию сам компонент является интерактивным элементом. Передав значение равное `'undefined'` или не передав этот параметр вовсе, можно отключить\n * такое поведение, что дает возможность передавать отдельные интерактивные элементы в `children`.\n */\n onClick?: undefined;\n /**\n * Содержимое.\n */\n children: React.ReactNode;\n}\n"],"names":[],"mappings":"AAoDA,WAUC"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ImageBase/ImageBaseOverlay/types.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { HasRootRef } from '../../../types';\nimport type { ImageBaseExpectedIconProps } from '../types';\n\nexport interface ImageBaseOverlayCommonProps\n extends React.AriaAttributes,\n HasRootRef<HTMLDivElement> {\n /**\n * Задаёт тему оформления.\n *\n * > По умолчанию берётся из параметра `appearance` в `ConfigProvider`.\n */\n theme?: 'dark' | 'light' | undefined;\n /**\n * Определяет каким образом должен показываться оверлей.\n *\n * - `\"on-hover\"` – на наведение указателя мыши.\n * - `\"always\"` – всегда показывать.\n *\n * > По умолчанию определяется в зависимости от того, есть ли у пользователя мышь или нет.\n * > Определение просиходит с помощью двойного рендера, так что на устройствах без мыши\n * > оверлей покажется не раньше второго рендера.\n * > Если это критично (например при SSR), то старайтесь явно указывать значение `visibility`, либо используйте\n * > [AdaptivityProvider](#/AdaptivityProvider) для того, чтобы явно определить `hasPointer`.\n */\n visibility?: 'on-hover' | 'always' | undefined;\n /**\n * `className` для компонента.\n */\n className?: string | undefined;\n}\n\nexport interface ImageBaseOverlayInteractiveProps extends ImageBaseOverlayCommonProps {\n /**\n * Обработчик взаимодействия с элементом.\n */\n onClick: React.MouseEventHandler<HTMLElement>;\n /**\n * Принимает иконку.\n *\n *\n * > 📝 Нужный для `<ImageBase size={...} />` размер можно узнать из функции `getOverlayIconSizeByImageBaseSize()`.\n *\n * > Предпочтительней использовать иконки из `@vkontakte/icons`.\n *\n * > 📊️ Если вы хотите передать кастомную иконку, то следует именовать её по шаблону `Icon<size><name>`. Или же\n * > чтобы в неё был передан параметр `width`. Тогда мы сможем выводить в консоль подсказку правильного ли размера вы\n * > использовали иконку.\n */\n children: React.ReactElement<ImageBaseExpectedIconProps>;\n}\n\nexport interface ImageBaseOverlayNonInteractiveProps extends ImageBaseOverlayCommonProps {\n /**\n * По умолчанию сам компонент является интерактивным элементом. Передав значение равное `'undefined'` или не передав этот параметр вовсе, можно отключить\n * такое поведение, что дает возможность передавать отдельные интерактивные элементы в `children`.\n */\n onClick?: undefined;\n /**\n * Содержимое.\n */\n children: React.ReactNode;\n}\n"],"names":[],"mappings":"AAoDA,WAUC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ImageBase/types.ts"],"sourcesContent":["export const imageBaseSizes = [16, 20, 24, 28, 32, 36, 40, 44, 48, 56, 64, 72, 80, 88, 96] as const;\n\nexport type ImageBaseSize = (typeof imageBaseSizes)[number];\n\nexport type ImageBaseExpectedIconProps = {\n /**\n * Ширина иконки.\n */\n width?: number;\n /**\n * Высота иконки.\n */\n height?: number;\n /**\n * ClassName для иконки.\n */\n className?: string;\n};\n\nexport interface ImageBaseContextProps {\n /**\n * Размер картинки.\n */\n size: ImageBaseSize | number;\n /**\n * Обработчики события `mouseOver`.\n */\n onMouseOverHandlers: VoidFunction[];\n /**\n * Обработчики события `mouseOut`.\n */\n onMouseOutHandlers: VoidFunction[];\n}\n"],"names":["imageBaseSizes"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB;IAAC;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;CAAG,CAAU"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ImageBase/types.ts"],"sourcesContent":["export const imageBaseSizes = [16, 20, 24, 28, 32, 36, 40, 44, 48, 56, 64, 72, 80, 88, 96] as const;\n\nexport type ImageBaseSize = (typeof imageBaseSizes)[number];\n\nexport type ImageBaseExpectedIconProps = {\n /**\n * Ширина иконки.\n */\n width?: number | undefined;\n /**\n * Высота иконки.\n */\n height?: number | undefined;\n /**\n * ClassName для иконки.\n */\n className?: string | undefined;\n};\n\nexport interface ImageBaseContextProps {\n /**\n * Размер картинки.\n */\n size: ImageBaseSize | number;\n /**\n * Обработчики события `mouseOver`.\n */\n onMouseOverHandlers: VoidFunction[];\n /**\n * Обработчики события `mouseOut`.\n */\n onMouseOutHandlers: VoidFunction[];\n}\n"],"names":["imageBaseSizes"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB;IAAC;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;IAAI;CAAG,CAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Input/Input.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasAlign, HasDataAttribute, HasRootRef } from '../../types';\nimport { FormField, type FormFieldProps } from '../FormField/FormField';\nimport { UnstyledTextField } from '../UnstyledTextField/UnstyledTextField';\nimport styles from './Input.module.css';\n\nconst warn = warnOnce('Input');\n\nconst densityClassNames = {\n none: styles.densityNone,\n compact: styles.densityCompact,\n};\n\nexport interface InputProps\n extends Pick<\n React.InputHTMLAttributes<HTMLInputElement>,\n | 'autoComplete'\n | 'autoCapitalize'\n | 'autoCorrect'\n | 'disabled'\n | 'list'\n | 'max'\n | 'maxLength'\n | 'min'\n | 'minLength'\n | 'multiple'\n | 'name'\n | 'pattern'\n | 'enterKeyHint'\n | 'placeholder'\n | 'readOnly'\n | 'required'\n | 'step'\n | 'type'\n | 'value'\n | 'form'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n >,\n Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onFocus' | 'onBlur'>,\n HasRootRef<HTMLDivElement>,\n HasAlign,\n Omit<FormFieldProps, 'maxHeight'> {\n /**\n * @deprecated Since 7.9.0. Вместо этого используйте `slotProps={ input: { getRootRef: ... } }`.\n */\n getRef?: React.Ref<HTMLInputElement
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Input/Input.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasAlign, HasDataAttribute, HasRootRef } from '../../types';\nimport { FormField, type FormFieldProps } from '../FormField/FormField';\nimport { UnstyledTextField } from '../UnstyledTextField/UnstyledTextField';\nimport styles from './Input.module.css';\n\nconst warn = warnOnce('Input');\n\nconst densityClassNames = {\n none: styles.densityNone,\n compact: styles.densityCompact,\n};\n\nexport interface InputProps\n extends Pick<\n React.InputHTMLAttributes<HTMLInputElement>,\n | 'autoComplete'\n | 'autoCapitalize'\n | 'autoCorrect'\n | 'disabled'\n | 'list'\n | 'max'\n | 'maxLength'\n | 'min'\n | 'minLength'\n | 'multiple'\n | 'name'\n | 'pattern'\n | 'enterKeyHint'\n | 'placeholder'\n | 'readOnly'\n | 'required'\n | 'step'\n | 'type'\n | 'value'\n | 'form'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n >,\n Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onFocus' | 'onBlur'>,\n HasRootRef<HTMLDivElement>,\n HasAlign,\n Omit<FormFieldProps, 'maxHeight'> {\n /**\n * @deprecated Since 7.9.0. Вместо этого используйте `slotProps={ input: { getRootRef: ... } }`.\n */\n getRef?: React.Ref<HTMLInputElement> | undefined;\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `root`: свойства для прокидывания в корень компонента;\n * - `input`: свойства для прокидывания в поле ввода.\n */\n slotProps?:\n | {\n root?:\n | (React.HTMLAttributes<HTMLDivElement> & HasRootRef<HTMLDivElement> & HasDataAttribute)\n | undefined;\n input?:\n | (React.InputHTMLAttributes<HTMLInputElement> &\n HasRootRef<HTMLInputElement> &\n HasDataAttribute)\n | undefined;\n }\n | undefined;\n}\n\n/**\n * @see https://vkui.io/components/input\n */\nexport const Input = ({\n // InputProps\n align = 'left',\n getRef,\n\n // FormFieldProps\n before,\n after,\n status,\n mode,\n\n // input props\n autoComplete,\n autoCapitalize,\n autoCorrect,\n disabled,\n list,\n max,\n maxLength,\n min,\n minLength,\n multiple,\n name,\n pattern,\n enterKeyHint,\n placeholder,\n readOnly,\n required,\n step,\n type = 'text',\n value,\n onChange,\n onFocus,\n onBlur,\n form,\n id,\n inputMode,\n defaultValue,\n autoFocus,\n tabIndex,\n spellCheck,\n\n slotProps,\n ...restProps\n}: InputProps): React.ReactNode => {\n /* istanbul ignore if: не проверяем в тестах */\n if (process.env.NODE_ENV === 'development' && getRef) {\n warn('Свойство `getRef` устаревшее, используйте `slotProps={ input: { getRootRef: ... } }`');\n }\n\n const { density = 'none' } = useAdaptivity();\n\n const { className, ...rootProps } = useMergeProps(restProps, slotProps?.root);\n\n const inputRest = useMergeProps(\n {\n className: styles.el,\n getRootRef: getRef,\n autoComplete,\n autoCapitalize,\n autoCorrect,\n disabled,\n list,\n max,\n maxLength,\n min,\n minLength,\n multiple,\n name,\n pattern,\n enterKeyHint,\n placeholder,\n readOnly,\n required,\n step,\n type,\n value,\n onChange,\n onFocus,\n onBlur,\n form,\n id,\n inputMode,\n defaultValue,\n autoFocus,\n tabIndex,\n spellCheck,\n },\n slotProps?.input,\n );\n\n return (\n <FormField\n className={classNames(\n styles.host,\n align === 'right' && styles.alignRight,\n align === 'center' && styles.alignCenter,\n density !== 'regular' && densityClassNames[density],\n before && styles.hasBefore,\n after && styles.hasAfter,\n className,\n )}\n before={before}\n after={after}\n disabled={inputRest.disabled}\n mode={mode}\n status={status}\n {...rootProps}\n >\n <UnstyledTextField as=\"input\" {...inputRest} />\n </FormField>\n );\n};\n"],"names":["classNames","useAdaptivity","useMergeProps","warnOnce","FormField","UnstyledTextField","styles","warn","densityClassNames","none","densityNone","compact","densityCompact","Input","align","getRef","before","after","status","mode","autoComplete","autoCapitalize","autoCorrect","disabled","list","max","maxLength","min","minLength","multiple","name","pattern","enterKeyHint","placeholder","readOnly","required","step","type","value","onChange","onFocus","onBlur","form","id","inputMode","defaultValue","autoFocus","tabIndex","spellCheck","slotProps","restProps","process","env","NODE_ENV","density","className","rootProps","root","inputRest","el","getRootRef","input","host","alignRight","alignCenter","hasBefore","hasAfter","as"],"mappings":"AAAA;;AAGA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,QAAQ,QAAQ,wBAAqB;AAE9C,SAASC,SAAS,QAA6B,4BAAyB;AACxE,SAASC,iBAAiB,QAAQ,4CAAyC;AAC3E,OAAOC,YAAY,qBAAqB;AAExC,MAAMC,OAAOJ,SAAS;AAEtB,MAAMK,oBAAoB;IACxBC,MAAMH,OAAOI,WAAW;IACxBC,SAASL,OAAOM,cAAc;AAChC;AAwDA;;CAEC,GACD,OAAO,MAAMC,QAAQ,CAAC,EACpB,aAAa;AACbC,QAAQ,MAAM,EACdC,MAAM,EAEN,iBAAiB;AACjBC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,IAAI,EAEJ,cAAc;AACdC,YAAY,EACZC,cAAc,EACdC,WAAW,EACXC,QAAQ,EACRC,IAAI,EACJC,GAAG,EACHC,SAAS,EACTC,GAAG,EACHC,SAAS,EACTC,QAAQ,EACRC,IAAI,EACJC,OAAO,EACPC,YAAY,EACZC,WAAW,EACXC,QAAQ,EACRC,QAAQ,EACRC,IAAI,EACJC,OAAO,MAAM,EACbC,KAAK,EACLC,QAAQ,EACRC,OAAO,EACPC,MAAM,EACNC,IAAI,EACJC,EAAE,EACFC,SAAS,EACTC,YAAY,EACZC,SAAS,EACTC,QAAQ,EACRC,UAAU,EAEVC,SAAS,EACT,GAAGC,WACQ;IACX,6CAA6C,GAC7C,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,iBAAiBtC,QAAQ;QACpDR,KAAK;IACP;IAEA,MAAM,EAAE+C,UAAU,MAAM,EAAE,GAAGrD;IAE7B,MAAM,EAAEsD,SAAS,EAAE,GAAGC,WAAW,GAAGtD,cAAcgD,WAAWD,WAAWQ;IAExE,MAAMC,YAAYxD,cAChB;QACEqD,WAAWjD,OAAOqD,EAAE;QACpBC,YAAY7C;QACZK;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;IACF,GACAC,WAAWY;IAGb,qBACE,KAACzD;QACCmD,WAAWvD,WACTM,OAAOwD,IAAI,EACXhD,UAAU,WAAWR,OAAOyD,UAAU,EACtCjD,UAAU,YAAYR,OAAO0D,WAAW,EACxCV,YAAY,aAAa9C,iBAAiB,CAAC8C,QAAQ,EACnDtC,UAAUV,OAAO2D,SAAS,EAC1BhD,SAASX,OAAO4D,QAAQ,EACxBX;QAEFvC,QAAQA;QACRC,OAAOA;QACPM,UAAUmC,UAAUnC,QAAQ;QAC5BJ,MAAMA;QACND,QAAQA;QACP,GAAGsC,SAAS;kBAEb,cAAA,KAACnD;YAAkB8D,IAAG;YAAS,GAAGT,SAAS;;;AAGjD,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/InputLike/InputLike.tsx"],"sourcesContent":["'use client';\n/* eslint-disable jsdoc/require-jsdoc */\n\nimport * as React from 'react';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { stopPropagation } from '../../lib/utils';\nimport { RootComponent, type RootComponentProps } from '../RootComponent/RootComponent';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './InputLike.module.css';\n\nexport interface InputLikeProps extends RootComponentProps<HTMLSpanElement> {\n length: number;\n index: number;\n value?: string;\n label?: string;\n onElementSelect?: (index: number) => void;\n}\n\nconst MASK_SYMBOL = String.fromCharCode(0x2007);\n\nfunction getMaskElements(length: number) {\n const result = [];\n for (let index = 0; index < length; index += 1) {\n result.push(\n <span key={index} className={styles.mask}>\n {MASK_SYMBOL}\n </span>,\n );\n }\n return result;\n}\n\nexport const InputLike = ({\n value,\n length,\n index,\n onElementSelect,\n onFocus,\n label,\n readOnly,\n onKeyDown,\n ...restProps\n}: InputLikeProps) => {\n const handleElementSelect = React.useCallback(\n (event: React.MouseEvent<HTMLSpanElement>) => {\n stopPropagation(event);\n onElementSelect?.(index);\n },\n [index, onElementSelect],\n );\n\n return (\n <RootComponent\n Component=\"span\"\n baseClassName={value?.length === length ? styles.host : undefined}\n tabIndex={readOnly ? -1 : 0}\n onFocus={callMultiple(onFocus, handleElementSelect)}\n onKeyDown={readOnly ? undefined : onKeyDown}\n {...restProps}\n >\n {label && <VisuallyHidden>{label}</VisuallyHidden>}\n {value?.slice(0, length - 1)}\n {value?.slice(length - 1) && (\n <span key={index} className={styles.lastCharacter}>\n {value.slice(length - 1)}\n </span>\n )}\n {getMaskElements(length - (value?.length ?? 0))}\n </RootComponent>\n );\n};\n"],"names":["React","callMultiple","stopPropagation","RootComponent","VisuallyHidden","styles","MASK_SYMBOL","String","fromCharCode","getMaskElements","length","result","index","push","span","className","mask","InputLike","value","onElementSelect","onFocus","label","readOnly","onKeyDown","restProps","handleElementSelect","useCallback","event","Component","baseClassName","host","undefined","tabIndex","slice","lastCharacter"],"mappings":"AAAA;;AACA,sCAAsC,GAEtC,YAAYA,WAAW,QAAQ;AAC/B,SAASC,YAAY,QAAQ,4BAAyB;AACtD,SAASC,eAAe,QAAQ,qBAAkB;AAClD,SAASC,aAAa,QAAiC,oCAAiC;AACxF,SAASC,cAAc,QAAQ,sCAAmC;AAClE,OAAOC,YAAY,yBAAyB;AAU5C,MAAMC,cAAcC,OAAOC,YAAY,CAAC;AAExC,SAASC,gBAAgBC,MAAc;IACrC,MAAMC,SAAS,EAAE;IACjB,IAAK,IAAIC,QAAQ,GAAGA,QAAQF,QAAQE,SAAS,EAAG;QAC9CD,OAAOE,IAAI,eACT,KAACC;YAAiBC,WAAWV,OAAOW,IAAI;sBACrCV;WADQM;IAIf;IACA,OAAOD;AACT;AAEA,OAAO,MAAMM,YAAY,CAAC,EACxBC,KAAK,EACLR,MAAM,EACNE,KAAK,EACLO,eAAe,EACfC,OAAO,EACPC,KAAK,EACLC,QAAQ,EACRC,SAAS,EACT,GAAGC,WACY;IACf,MAAMC,sBAAsBzB,MAAM0B,WAAW,CAC3C,CAACC;QACCzB,gBAAgByB;QAChBR,kBAAkBP;IACpB,GACA;QAACA;QAAOO;KAAgB;IAG1B,qBACE,MAAChB;QACCyB,WAAU;QACVC,eAAeX,OAAOR,WAAWA,SAASL,OAAOyB,IAAI,GAAGC;QACxDC,UAAUV,WAAW,CAAC,IAAI;QAC1BF,SAASnB,aAAamB,SAASK;QAC/BF,WAAWD,WAAWS,YAAYR;QACjC,GAAGC,SAAS;;YAEZH,uBAAS,KAACjB;0BAAgBiB;;YAC1BH,OAAOe,MAAM,GAAGvB,SAAS;YACzBQ,OAAOe,MAAMvB,SAAS,oBACrB,KAACI;gBAAiBC,WAAWV,OAAO6B,aAAa;0BAC9ChB,MAAMe,KAAK,CAACvB,SAAS;eADbE;YAIZH,gBAAgBC,SAAUQ,CAAAA,OAAOR,UAAU,CAAA;;;AAGlD,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/InputLike/InputLike.tsx"],"sourcesContent":["'use client';\n/* eslint-disable jsdoc/require-jsdoc */\n\nimport * as React from 'react';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { stopPropagation } from '../../lib/utils';\nimport { RootComponent, type RootComponentProps } from '../RootComponent/RootComponent';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './InputLike.module.css';\n\nexport interface InputLikeProps extends RootComponentProps<HTMLSpanElement> {\n length: number;\n index: number;\n value?: string | undefined;\n label?: string | undefined;\n onElementSelect?: ((index: number) => void) | undefined;\n}\n\nconst MASK_SYMBOL = String.fromCharCode(0x2007);\n\nfunction getMaskElements(length: number) {\n const result = [];\n for (let index = 0; index < length; index += 1) {\n result.push(\n <span key={index} className={styles.mask}>\n {MASK_SYMBOL}\n </span>,\n );\n }\n return result;\n}\n\nexport const InputLike = ({\n value,\n length,\n index,\n onElementSelect,\n onFocus,\n label,\n readOnly,\n onKeyDown,\n ...restProps\n}: InputLikeProps) => {\n const handleElementSelect = React.useCallback(\n (event: React.MouseEvent<HTMLSpanElement>) => {\n stopPropagation(event);\n onElementSelect?.(index);\n },\n [index, onElementSelect],\n );\n\n return (\n <RootComponent\n Component=\"span\"\n baseClassName={value?.length === length ? styles.host : undefined}\n tabIndex={readOnly ? -1 : 0}\n onFocus={callMultiple(onFocus, handleElementSelect)}\n onKeyDown={readOnly ? undefined : onKeyDown}\n {...restProps}\n >\n {label && <VisuallyHidden>{label}</VisuallyHidden>}\n {value?.slice(0, length - 1)}\n {value?.slice(length - 1) && (\n <span key={index} className={styles.lastCharacter}>\n {value.slice(length - 1)}\n </span>\n )}\n {getMaskElements(length - (value?.length ?? 0))}\n </RootComponent>\n );\n};\n"],"names":["React","callMultiple","stopPropagation","RootComponent","VisuallyHidden","styles","MASK_SYMBOL","String","fromCharCode","getMaskElements","length","result","index","push","span","className","mask","InputLike","value","onElementSelect","onFocus","label","readOnly","onKeyDown","restProps","handleElementSelect","useCallback","event","Component","baseClassName","host","undefined","tabIndex","slice","lastCharacter"],"mappings":"AAAA;;AACA,sCAAsC,GAEtC,YAAYA,WAAW,QAAQ;AAC/B,SAASC,YAAY,QAAQ,4BAAyB;AACtD,SAASC,eAAe,QAAQ,qBAAkB;AAClD,SAASC,aAAa,QAAiC,oCAAiC;AACxF,SAASC,cAAc,QAAQ,sCAAmC;AAClE,OAAOC,YAAY,yBAAyB;AAU5C,MAAMC,cAAcC,OAAOC,YAAY,CAAC;AAExC,SAASC,gBAAgBC,MAAc;IACrC,MAAMC,SAAS,EAAE;IACjB,IAAK,IAAIC,QAAQ,GAAGA,QAAQF,QAAQE,SAAS,EAAG;QAC9CD,OAAOE,IAAI,eACT,KAACC;YAAiBC,WAAWV,OAAOW,IAAI;sBACrCV;WADQM;IAIf;IACA,OAAOD;AACT;AAEA,OAAO,MAAMM,YAAY,CAAC,EACxBC,KAAK,EACLR,MAAM,EACNE,KAAK,EACLO,eAAe,EACfC,OAAO,EACPC,KAAK,EACLC,QAAQ,EACRC,SAAS,EACT,GAAGC,WACY;IACf,MAAMC,sBAAsBzB,MAAM0B,WAAW,CAC3C,CAACC;QACCzB,gBAAgByB;QAChBR,kBAAkBP;IACpB,GACA;QAACA;QAAOO;KAAgB;IAG1B,qBACE,MAAChB;QACCyB,WAAU;QACVC,eAAeX,OAAOR,WAAWA,SAASL,OAAOyB,IAAI,GAAGC;QACxDC,UAAUV,WAAW,CAAC,IAAI;QAC1BF,SAASnB,aAAamB,SAASK;QAC/BF,WAAWD,WAAWS,YAAYR;QACjC,GAAGC,SAAS;;YAEZH,uBAAS,KAACjB;0BAAgBiB;;YAC1BH,OAAOe,MAAM,GAAGvB,SAAS;YACzBQ,OAAOe,MAAMvB,SAAS,oBACrB,KAACI;gBAAiBC,WAAWV,OAAO6B,aAAa;0BAC9ChB,MAAMe,KAAK,CAACvB,SAAS;eADbE;YAIZH,gBAAgBC,SAAUQ,CAAAA,OAAOR,UAAU,CAAA;;;AAGlD,EAAE"}
|