@vkontakte/vkui 8.0.2 → 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 +69 -6
- package/dist/components/CellButton/CellButton.d.ts.map +1 -1
- package/dist/components/CellButton/CellButton.js +115 -6
- 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.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 -12
- package/dist/components/Flex/Flex.d.ts.map +1 -1
- package/dist/components/Flex/Flex.js +2 -9
- package/dist/components/Flex/Flex.js.map +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.d.ts +5 -12
- package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.js +5 -14
- 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 +14 -14
- package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
- 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 +115 -7
- package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
- package/dist/cssm/components/CellButton/CellButton.module.css +165 -7
- 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.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 +2 -10
- package/dist/cssm/components/Flex/Flex.js.map +1 -1
- package/dist/cssm/components/Flex/FlexItem/FlexItem.js +5 -14
- package/dist/cssm/components/Flex/FlexItem/FlexItem.js.map +1 -1
- package/dist/cssm/components/Flex/FlexItem/FlexItem.module.css +0 -22
- 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.map +1 -1
- 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/SimpleCell/SimpleCell.module.css +3 -5
- 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/layoutProps.js +17 -0
- package/dist/cssm/lib/layouts/layoutProps.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/styles/layout.css +36 -0
- 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/layoutProps.d.ts +2 -0
- package/dist/lib/layouts/layoutProps.d.ts.map +1 -1
- package/dist/lib/layouts/layoutProps.js +17 -0
- package/dist/lib/layouts/layoutProps.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 +39 -27
- 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.module.css +159 -7
- package/src/components/CellButton/CellButton.module.css.d.ts.map +1 -1
- package/src/components/CellButton/CellButton.tsx +154 -11
- 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 +42 -29
- 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 -23
- package/src/components/Flex/FlexItem/FlexItem.module.css +0 -22
- package/src/components/Flex/FlexItem/FlexItem.module.css.d.ts.map +1 -1
- package/src/components/Flex/FlexItem/FlexItem.tsx +17 -44
- 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.tsx +19 -15
- 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.module.css +3 -5
- package/src/components/SimpleCell/SimpleCell.module.css.d.ts.map +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/layoutProps.ts +5 -0
- package/src/lib/layouts/resolveLayoutProps.ts +3 -3
- package/src/lib/layouts/types.ts +40 -27
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/calendar.ts"],"sourcesContent":["import { isSameDate } from '@vkontakte/vkjs';\nimport { clamp as clampNumber } from '../helpers/math';\nimport { Keys, type KeysValues } from './accessibility';\nimport {\n addDays,\n addMonths,\n addWeeks,\n eachDayOfInterval,\n endOfMonth,\n endOfWeek,\n isLastDayOfMonth,\n MONDAY,\n startOfMonth,\n startOfWeek,\n subDays,\n subMonths,\n subWeeks,\n} from './date';\nimport { cacheDateTimeFormat } from './intlCache';\n\nexport const DEFAULT_MAX_YEAR = 9999;\n// 100 - из-за ограничений dayjs https://github.com/iamkun/dayjs/issues/2591\nexport const DEFAULT_MIN_YEAR = 100;\n\nexport const getYears = (\n currentYear: number,\n range: number,\n): Array<{\n value: number;\n label: string;\n}> => {\n const years: Array<{\n value: number;\n label: string;\n }> = [];\n\n const minYear = clampNumber(currentYear - range, DEFAULT_MIN_YEAR, DEFAULT_MAX_YEAR);\n const maxYear = clampNumber(currentYear + range, DEFAULT_MIN_YEAR, DEFAULT_MAX_YEAR);\n\n for (let i = minYear; i <= maxYear; i++) {\n years.push({ label: String(i).padStart(4, '0'), value: i });\n }\n\n return years;\n};\n\nconst monthLongFormatterOptions = {\n month: 'long',\n} as const;\n\nconst monthLongDateTimeFormat = /*#__PURE__*/ cacheDateTimeFormat();\n\nexport const getMonths = (\n locale?: string,\n): Array<{\n value: number;\n label: string;\n}> => {\n const months: Array<{\n value: number;\n label: string;\n }> = [];\n const formatter = monthLongDateTimeFormat(locale, monthLongFormatterOptions);\n\n for (let i = 0; i < 12; i++) {\n months.push({\n label: formatter.format(new Date(2023, i, 15)),\n value: i,\n });\n }\n\n return months;\n};\n\nconst dayShortFormatterOptions = {\n weekday: 'short',\n} as const;\n\nconst dayShortDateTimeFormat = /*#__PURE__*/ cacheDateTimeFormat();\n\nconst dayLongFormatterOptions = {\n weekday: 'long',\n} as const;\n\nconst dayLongDateTimeFormat = /*#__PURE__*/ cacheDateTimeFormat();\n\nexport const getDaysNames = (\n now: Date,\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6,\n locale?: string,\n): Array<{ short: string; long: string }> => {\n const shortFormatter = dayShortDateTimeFormat(locale, dayShortFormatterOptions);\n const longFormatter = dayLongDateTimeFormat(locale, dayLongFormatterOptions);\n return eachDayOfInterval(\n startOfWeek(now, { weekStartsOn }),\n endOfWeek(now, { weekStartsOn }),\n ).map((day) => ({ short: shortFormatter.format(day), long: longFormatter.format(day) }));\n};\n\nexport const NAVIGATION_KEYS: KeysValues[] = [\n Keys.ARROW_UP,\n Keys.ARROW_DOWN,\n Keys.ARROW_LEFT,\n Keys.ARROW_RIGHT,\n Keys.HOME,\n Keys.END,\n Keys.PAGE_UP,\n Keys.PAGE_DOWN,\n];\n\nexport const navigateDate = (date?: Date | null, key?: (typeof NAVIGATION_KEYS)[number]): Date => {\n let newDate = date ?? new Date();\n\n switch (key) {\n case Keys.ARROW_RIGHT:\n newDate = addDays(newDate, 1);\n break;\n case Keys.ARROW_LEFT:\n newDate = subDays(newDate, 1);\n break;\n case Keys.ARROW_UP:\n newDate = subWeeks(newDate, 1);\n break;\n case Keys.ARROW_DOWN:\n newDate = addWeeks(newDate, 1);\n break;\n case Keys.HOME:\n newDate = startOfWeek(newDate, { weekStartsOn: MONDAY });\n break;\n case Keys.END:\n newDate = endOfWeek(newDate, { weekStartsOn: MONDAY });\n break;\n case Keys.PAGE_UP:\n newDate = subMonths(newDate, 1);\n break;\n case Keys.PAGE_DOWN:\n newDate = addMonths(newDate, 1);\n break;\n }\n\n return newDate;\n};\n\nexport const getWeeks = (viewDate: Date, weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6): Date[][] => {\n const start = startOfWeek(startOfMonth(viewDate), { weekStartsOn });\n const end = endOfWeek(endOfMonth(viewDate), { weekStartsOn });\n\n let count = 0;\n let current = start;\n const nestedWeeks: Date[][] = [];\n let lastDay = null;\n while (current < end) {\n const weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n const day = current.getDay();\n if (lastDay !== day) {\n lastDay = day;\n nestedWeeks[weekNumber].push(current);\n count += 1;\n }\n current = addDays(current, 1);\n }\n return nestedWeeks;\n};\n\nexport const setTimeEqual = (to: Date, from?: Date | null): Date => {\n if (from) {\n to.setHours(from.getHours());\n to.setMinutes(from.getMinutes());\n to.setSeconds(from.getSeconds());\n to.setMilliseconds(from.getMilliseconds());\n }\n\n return to;\n};\n\nexport const isFirstDay = (day: Date, dayOfWeek: number): boolean =>\n dayOfWeek === 0 || day.getDate() === 1;\n\nexport const isLastDay = (day: Date, dayOfWeek: number): boolean =>\n dayOfWeek === 6 || isLastDayOfMonth(day);\n\n/**\n * Возвращает дату, ограниченную `min` и/или `max` значениями\n */\nexport function clamp(day: Date, options: { min?: Date; max?: Date } = {}): Date {\n const { min, max } = options;\n if (min && day < min) {\n return min;\n }\n if (max && day > max) {\n return max;\n }\n return day;\n}\n\n/**\n * Позволяет определить удовлетворяет ли исходная дата заданным ограничения `min` и/или `max`\n */\nexport function isDayMinMaxRestricted(\n day: Date,\n options: { min?: Date; max?: Date; withTime?: boolean } = {},\n): boolean {\n const { min, max, withTime = false } = options;\n if (!withTime && ((min && isSameDate(day, min)) || (max && isSameDate(day, max)))) {\n return false;\n }\n return Boolean((min && day < min) || (max && day > max));\n}\n"],"names":["isSameDate","clamp","clampNumber","Keys","addDays","addMonths","addWeeks","eachDayOfInterval","endOfMonth","endOfWeek","isLastDayOfMonth","MONDAY","startOfMonth","startOfWeek","subDays","subMonths","subWeeks","cacheDateTimeFormat","DEFAULT_MAX_YEAR","DEFAULT_MIN_YEAR","getYears","currentYear","range","years","minYear","maxYear","i","push","label","String","padStart","value","monthLongFormatterOptions","month","monthLongDateTimeFormat","getMonths","locale","months","formatter","format","Date","dayShortFormatterOptions","weekday","dayShortDateTimeFormat","dayLongFormatterOptions","dayLongDateTimeFormat","getDaysNames","now","weekStartsOn","shortFormatter","longFormatter","map","day","short","long","NAVIGATION_KEYS","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","HOME","END","PAGE_UP","PAGE_DOWN","navigateDate","date","key","newDate","getWeeks","viewDate","start","end","count","current","nestedWeeks","lastDay","weekNumber","Math","floor","getDay","setTimeEqual","to","from","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","setMilliseconds","getMilliseconds","isFirstDay","dayOfWeek","getDate","isLastDay","options","min","max","isDayMinMaxRestricted","withTime","Boolean"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/calendar.ts"],"sourcesContent":["import { isSameDate } from '@vkontakte/vkjs';\nimport { clamp as clampNumber } from '../helpers/math';\nimport { Keys, type KeysValues } from './accessibility';\nimport {\n addDays,\n addMonths,\n addWeeks,\n eachDayOfInterval,\n endOfMonth,\n endOfWeek,\n isLastDayOfMonth,\n MONDAY,\n startOfMonth,\n startOfWeek,\n subDays,\n subMonths,\n subWeeks,\n} from './date';\nimport { cacheDateTimeFormat } from './intlCache';\n\nexport const DEFAULT_MAX_YEAR = 9999;\n// 100 - из-за ограничений dayjs https://github.com/iamkun/dayjs/issues/2591\nexport const DEFAULT_MIN_YEAR = 100;\n\nexport const getYears = (\n currentYear: number,\n range: number,\n): Array<{\n value: number;\n label: string;\n}> => {\n const years: Array<{\n value: number;\n label: string;\n }> = [];\n\n const minYear = clampNumber(currentYear - range, DEFAULT_MIN_YEAR, DEFAULT_MAX_YEAR);\n const maxYear = clampNumber(currentYear + range, DEFAULT_MIN_YEAR, DEFAULT_MAX_YEAR);\n\n for (let i = minYear; i <= maxYear; i++) {\n years.push({ label: String(i).padStart(4, '0'), value: i });\n }\n\n return years;\n};\n\nconst monthLongFormatterOptions = {\n month: 'long',\n} as const;\n\nconst monthLongDateTimeFormat = /*#__PURE__*/ cacheDateTimeFormat();\n\nexport const getMonths = (\n locale?: string,\n): Array<{\n value: number;\n label: string;\n}> => {\n const months: Array<{\n value: number;\n label: string;\n }> = [];\n const formatter = monthLongDateTimeFormat(locale, monthLongFormatterOptions);\n\n for (let i = 0; i < 12; i++) {\n months.push({\n label: formatter.format(new Date(2023, i, 15)),\n value: i,\n });\n }\n\n return months;\n};\n\nconst dayShortFormatterOptions = {\n weekday: 'short',\n} as const;\n\nconst dayShortDateTimeFormat = /*#__PURE__*/ cacheDateTimeFormat();\n\nconst dayLongFormatterOptions = {\n weekday: 'long',\n} as const;\n\nconst dayLongDateTimeFormat = /*#__PURE__*/ cacheDateTimeFormat();\n\nexport const getDaysNames = (\n now: Date,\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6,\n locale?: string,\n): Array<{ short: string; long: string }> => {\n const shortFormatter = dayShortDateTimeFormat(locale, dayShortFormatterOptions);\n const longFormatter = dayLongDateTimeFormat(locale, dayLongFormatterOptions);\n return eachDayOfInterval(\n startOfWeek(now, { weekStartsOn }),\n endOfWeek(now, { weekStartsOn }),\n ).map((day) => ({ short: shortFormatter.format(day), long: longFormatter.format(day) }));\n};\n\nexport const NAVIGATION_KEYS: KeysValues[] = [\n Keys.ARROW_UP,\n Keys.ARROW_DOWN,\n Keys.ARROW_LEFT,\n Keys.ARROW_RIGHT,\n Keys.HOME,\n Keys.END,\n Keys.PAGE_UP,\n Keys.PAGE_DOWN,\n];\n\nexport const navigateDate = (date?: Date | null, key?: (typeof NAVIGATION_KEYS)[number]): Date => {\n let newDate = date ?? new Date();\n\n switch (key) {\n case Keys.ARROW_RIGHT:\n newDate = addDays(newDate, 1);\n break;\n case Keys.ARROW_LEFT:\n newDate = subDays(newDate, 1);\n break;\n case Keys.ARROW_UP:\n newDate = subWeeks(newDate, 1);\n break;\n case Keys.ARROW_DOWN:\n newDate = addWeeks(newDate, 1);\n break;\n case Keys.HOME:\n newDate = startOfWeek(newDate, { weekStartsOn: MONDAY });\n break;\n case Keys.END:\n newDate = endOfWeek(newDate, { weekStartsOn: MONDAY });\n break;\n case Keys.PAGE_UP:\n newDate = subMonths(newDate, 1);\n break;\n case Keys.PAGE_DOWN:\n newDate = addMonths(newDate, 1);\n break;\n }\n\n return newDate;\n};\n\nexport const getWeeks = (viewDate: Date, weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6): Date[][] => {\n const start = startOfWeek(startOfMonth(viewDate), { weekStartsOn });\n const end = endOfWeek(endOfMonth(viewDate), { weekStartsOn });\n\n let count = 0;\n let current = start;\n const nestedWeeks: Date[][] = [];\n let lastDay = null;\n while (current < end) {\n const weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n const day = current.getDay();\n if (lastDay !== day) {\n lastDay = day;\n nestedWeeks[weekNumber].push(current);\n count += 1;\n }\n current = addDays(current, 1);\n }\n return nestedWeeks;\n};\n\nexport const setTimeEqual = (to: Date, from?: Date | null): Date => {\n if (from) {\n to.setHours(from.getHours());\n to.setMinutes(from.getMinutes());\n to.setSeconds(from.getSeconds());\n to.setMilliseconds(from.getMilliseconds());\n }\n\n return to;\n};\n\nexport const isFirstDay = (day: Date, dayOfWeek: number): boolean =>\n dayOfWeek === 0 || day.getDate() === 1;\n\nexport const isLastDay = (day: Date, dayOfWeek: number): boolean =>\n dayOfWeek === 6 || isLastDayOfMonth(day);\n\n/**\n * Возвращает дату, ограниченную `min` и/или `max` значениями\n */\nexport function clamp(\n day: Date,\n options: { min?: Date | undefined; max?: Date | undefined } = {},\n): Date {\n const { min, max } = options;\n if (min && day < min) {\n return min;\n }\n if (max && day > max) {\n return max;\n }\n return day;\n}\n\n/**\n * Позволяет определить удовлетворяет ли исходная дата заданным ограничения `min` и/или `max`\n */\nexport function isDayMinMaxRestricted(\n day: Date,\n options: { min?: Date | undefined; max?: Date | undefined; withTime?: boolean | undefined } = {},\n): boolean {\n const { min, max, withTime = false } = options;\n if (!withTime && ((min && isSameDate(day, min)) || (max && isSameDate(day, max)))) {\n return false;\n }\n return Boolean((min && day < min) || (max && day > max));\n}\n"],"names":["isSameDate","clamp","clampNumber","Keys","addDays","addMonths","addWeeks","eachDayOfInterval","endOfMonth","endOfWeek","isLastDayOfMonth","MONDAY","startOfMonth","startOfWeek","subDays","subMonths","subWeeks","cacheDateTimeFormat","DEFAULT_MAX_YEAR","DEFAULT_MIN_YEAR","getYears","currentYear","range","years","minYear","maxYear","i","push","label","String","padStart","value","monthLongFormatterOptions","month","monthLongDateTimeFormat","getMonths","locale","months","formatter","format","Date","dayShortFormatterOptions","weekday","dayShortDateTimeFormat","dayLongFormatterOptions","dayLongDateTimeFormat","getDaysNames","now","weekStartsOn","shortFormatter","longFormatter","map","day","short","long","NAVIGATION_KEYS","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","HOME","END","PAGE_UP","PAGE_DOWN","navigateDate","date","key","newDate","getWeeks","viewDate","start","end","count","current","nestedWeeks","lastDay","weekNumber","Math","floor","getDay","setTimeEqual","to","from","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","setMilliseconds","getMilliseconds","isFirstDay","dayOfWeek","getDate","isLastDay","options","min","max","isDayMinMaxRestricted","withTime","Boolean"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/date.ts"],"sourcesContent":["import { isSameDate } from '@vkontakte/vkjs';\nimport { TZDateMini } from '@vkontakte/vkui-date-fns-tz';\n\nexport function parse(input: string, format: string, referenceDate: Date = new Date()): Date {\n const match2 = /^\\d\\d/; // 00 - 99\n const match4 = /^\\d{4}/; // 0000 - 9999\n\n const entries: Array<[string, RegExp, (val: string) => [string, number, boolean]]> = [\n ['yyyy', match4, (val) => ['Y', +val, true]],\n [\n 'MM',\n match2,\n (val) => {\n const numVal = +val;\n const okay = numVal > 0 && numVal <= 12;\n\n return ['M', numVal - 1, okay];\n },\n ],\n ['dd', match2, (val) => ['D', +val, true]],\n [\n 'HH',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 24;\n\n return ['h', numVal, okay];\n },\n ],\n [\n 'mm',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 60;\n\n return ['m', numVal, okay];\n },\n ],\n ];\n\n const superRegExp = new RegExp(entries.map((item) => item[0]).join('|'), 'g');\n\n const store: {\n [key: string]: number;\n } = {\n y: referenceDate.getFullYear(),\n M: referenceDate.getMonth(),\n d: referenceDate.getDate(),\n h: referenceDate.getHours(),\n m: referenceDate.getMinutes(),\n s: referenceDate.getSeconds(),\n ms: referenceDate.getMilliseconds(),\n };\n\n let prevInputIndex = 0;\n let lastNonFormatting = '';\n let lastFormatIndex = 0;\n let found = false;\n\n while (true) {\n const match = superRegExp.exec(format);\n\n if (!match) {\n break;\n }\n\n const length = match[0].length;\n const atIndex = superRegExp.lastIndex - length;\n\n const item = entries.find((item) => item[0] === match[0])!;\n\n lastNonFormatting = format.slice(lastFormatIndex, atIndex);\n lastFormatIndex = superRegExp.lastIndex;\n\n if (\n input.slice(prevInputIndex, prevInputIndex + lastNonFormatting.length) !== lastNonFormatting\n ) {\n return new Date('');\n }\n\n const value = input.slice(prevInputIndex + lastNonFormatting.length).match(item[1]);\n\n if (!value) {\n return new Date('');\n }\n\n prevInputIndex = prevInputIndex + lastNonFormatting.length + value[0].length;\n\n const [key, newValue, okay] = item[2](value[0]);\n\n if (!okay) {\n return new Date('');\n }\n\n store[key] = newValue;\n found = true;\n }\n\n if (!found) {\n return new Date('');\n }\n\n const date = new Date(store.Y, store.M, store.D, store.h, store.m, store.s, store.ms);\n\n // Since days of months are dynamic, they can't be validated in entries,\n // so we check it here, in the finalized date\n if (date.getMonth() !== store.M || date.getDate() !== store.D) {\n return new Date('');\n }\n\n return date;\n}\n\nexport const convertDateToTimeZone = (\n date?: Date | null,\n timezone?: string,\n): Date | undefined | null => {\n if (!timezone) {\n return date;\n }\n if (date === null) {\n return null;\n }\n return date ? TZDateMini.tz(timezone, date) : undefined;\n};\n\nconst formatter = /*#__PURE__*/ new Intl.DateTimeFormat();\n\nexport const convertDateFromTimeZone = (date: Date | null, timezone?: string): Date | null => {\n if (!timezone) {\n return date;\n }\n if (date === null) {\n return null;\n }\n // eslint-disable-next-line new-cap\n const systemTimezone = formatter.resolvedOptions().timeZone;\n return TZDateMini.tz(systemTimezone, date);\n};\n\nexport type CreateDateInTimeZoneOverrides = {\n year?: number;\n month?: number;\n date?: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n milliseconds?: number;\n};\n\nexport function createDateInTimeZone(\n baseDate: Date,\n timezone?: string,\n overrides?: CreateDateInTimeZoneOverrides,\n): Date {\n const year = overrides?.year ?? baseDate.getFullYear();\n const month = overrides?.month ?? baseDate.getMonth();\n const date = overrides?.date ?? baseDate.getDate();\n const hours = overrides?.hours ?? baseDate.getHours();\n const minutes = overrides?.minutes ?? baseDate.getMinutes();\n const seconds = overrides?.seconds ?? baseDate.getSeconds();\n const milliseconds = overrides?.milliseconds ?? baseDate.getMilliseconds();\n\n if (!timezone) {\n return new Date(year, month, date, hours, minutes, seconds, milliseconds);\n }\n return TZDateMini.tz(timezone, year, month, date, hours, minutes, seconds, milliseconds);\n}\n\nconst dateOptions: Intl.DateTimeFormatOptions = {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n};\n\n// dd.MM.yyyy\nexport const dateFormatter = /*#__PURE__*/ new Intl.DateTimeFormat('ru-RU', dateOptions);\n\nclass DateTimeFormat extends Intl.DateTimeFormat {\n constructor() {\n super('ru-RU', {\n ...dateOptions,\n hour: '2-digit',\n minute: '2-digit',\n });\n }\n\n format(date?: Date | number): string {\n return super.format(date).replace(',', '');\n }\n}\n\n// dd.MM.yyyy HH:mm\nexport const dateTimeFormatter = /*#__PURE__*/ new DateTimeFormat();\n\n/**\n * Возвращает дату начала месяца\n */\nexport function startOfMonth(date: Date): Date {\n const result = new Date(date);\n result.setDate(1);\n result.setHours(0, 0, 0, 0);\n return result;\n}\n\n/**\n * Возвращает дату конца месяца\n */\nexport function endOfMonth(date: Date): Date {\n const result = new Date(date);\n const month = result.getMonth();\n result.setFullYear(result.getFullYear(), month + 1, 0);\n result.setHours(23, 59, 59, 999);\n return result;\n}\n\ntype WeekOptions = { weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 };\n\nexport const MONDAY = 1;\n\n/**\n * Возвращает дату начала недели\n */\nexport function startOfWeek(date: Date, { weekStartsOn = MONDAY }: WeekOptions = {}): Date {\n const result = new Date(date);\n const day = result.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n result.setDate(result.getDate() - diff);\n result.setHours(0, 0, 0, 0);\n return result;\n}\n\n/**\n * Возвращает дату конца недели\n */\nexport function endOfWeek(date: Date, { weekStartsOn = MONDAY }: WeekOptions = {}): Date {\n const result = new Date(date);\n const day = result.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n result.setDate(result.getDate() + diff);\n result.setHours(23, 59, 59, 999);\n return result;\n}\n\n/**\n * Возвращает дату начала дня\n */\nexport function startOfDay(date: Date): Date {\n const result = new Date(date);\n result.setHours(0, 0, 0, 0);\n return result;\n}\n\n/**\n * Возвращает дату конца дня\n */\nexport function endOfDay(date: Date): Date {\n const result = new Date(date);\n result.setHours(23, 59, 59, 999);\n return result;\n}\n\nexport function startOfTomorrow() {\n const date = new Date();\n const day = date.getDate();\n\n date.setDate(day + 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\n/**\n * Возвращает дату начала минуты\n */\nexport function startOfMinute(date: Date): Date {\n const result = new Date(date);\n result.setSeconds(0, 0);\n return result;\n}\n\nexport function eachDayOfInterval(\n startDate: Date,\n endDate: Date,\n { step = 1 }: { step?: number } = {},\n): Date[] {\n let reversed = +startDate > +endDate;\n const endTime = reversed ? +startDate : +endDate;\n const date = new Date(reversed ? endDate : startDate);\n date.setHours(0, 0, 0, 0);\n\n if (!step) {\n return [];\n }\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+date <= endTime) {\n dates.push(new Date(date));\n date.setDate(date.getDate() + 1);\n date.setHours(0, 0, 0, 0);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n/**\n * Проверяет, что переданные даты относятся к одному и тому же месяцу\n *\n * @example\n * ```ts\n * import assert from 'node:assert';\n * import { isSameMonth } from './date.ts';\n *\n * const d1 = new Date();\n * const d2 = new Date();\n * assert.ok(isSameMonth(d1, d2));\n * ```\n */\nexport function isSameMonth(d1: Date, d2: Date): boolean {\n return d1.getMonth() === d2.getMonth() && d1.getFullYear() === d2.getFullYear();\n}\n\nexport function isLastDayOfMonth(date: Date) {\n return +endOfDay(date) === +endOfMonth(date);\n}\n\nexport function isWithinInterval(date: Date, interval: [Date, Date]) {\n const [startTime, endTime] = interval.sort((a, b) => +a - +b);\n\n return date >= startTime && date <= endTime;\n}\n\nexport function isToday(date: Date) {\n return isSameDate(date, new Date());\n}\n\nexport function isYesterday(date: Date) {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n\n return isSameDate(date, yesterday);\n}\n\nexport function isMatch(input: string, format: string): boolean {\n return !isNaN(+parse(input, format));\n}\n\nexport const millisecondsInSecond = 1000;\n\nexport function addDays(date: Date, amount: number): Date {\n const result = new Date(date);\n\n if (!amount) {\n return result;\n }\n\n result.setDate(result.getDate() + amount);\n return result;\n}\n\nexport function subDays(date: Date, amount: number): Date {\n return addDays(date, -amount);\n}\n\nexport function addWeeks(date: Date, amount: number): Date {\n return addDays(date, amount * 7);\n}\n\nexport function subWeeks(date: Date, amount: number): Date {\n return addWeeks(date, -amount);\n}\n\nexport function addMonths(date: Date, amount: number): Date {\n const result = new Date(date);\n\n if (!amount) {\n return result;\n }\n\n const dayOfMonth = result.getDate();\n\n const endOfDesiredMonth = new Date(date);\n endOfDesiredMonth.setMonth(result.getMonth() + amount + 1, 0); // Конец месяца\n const daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // Если мы уже находимся в конце месяца, то это нужная дата\n return endOfDesiredMonth;\n }\n\n result.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return result;\n}\n\nexport function subMonths(date: Date, amount: number): Date {\n return addMonths(date, -amount);\n}\n\nexport function setYear(date: Date, year: number): Date {\n const result = new Date(date);\n result.setFullYear(year);\n return result;\n}\n\nfunction getDaysInMonth(date: Date): number {\n const result = new Date(date);\n const lastDayOfMonth = new Date(result);\n lastDayOfMonth.setFullYear(result.getFullYear(), result.getMonth() + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\nexport function setMonth(date: Date, month: number): Date {\n const result = new Date(date);\n const year = result.getFullYear();\n const day = result.getDate();\n\n const midMonth = new Date(date);\n midMonth.setFullYear(year, month, 15);\n midMonth.setHours(0, 0, 0, 0);\n const daysInMonth = getDaysInMonth(midMonth);\n\n result.setMonth(month, Math.min(day, daysInMonth));\n return result;\n}\n\nexport function setHours(date: Date, hours: number): Date {\n const result = new Date(date);\n result.setHours(hours);\n return result;\n}\n\nexport function setMinutes(date: Date, minutes: number): Date {\n const result = new Date(date);\n result.setMinutes(minutes);\n return result;\n}\n"],"names":["isSameDate","TZDateMini","parse","input","format","referenceDate","Date","match2","match4","entries","val","numVal","okay","parseInt","superRegExp","RegExp","map","item","join","store","y","getFullYear","M","getMonth","d","getDate","h","getHours","m","getMinutes","s","getSeconds","ms","getMilliseconds","prevInputIndex","lastNonFormatting","lastFormatIndex","found","match","exec","length","atIndex","lastIndex","find","slice","value","key","newValue","date","Y","D","convertDateToTimeZone","timezone","tz","undefined","formatter","Intl","DateTimeFormat","convertDateFromTimeZone","systemTimezone","resolvedOptions","timeZone","createDateInTimeZone","baseDate","overrides","year","month","hours","minutes","seconds","milliseconds","dateOptions","day","dateFormatter","hour","minute","replace","dateTimeFormatter","startOfMonth","result","setDate","setHours","endOfMonth","setFullYear","MONDAY","startOfWeek","weekStartsOn","getDay","diff","endOfWeek","startOfDay","endOfDay","startOfTomorrow","startOfMinute","setSeconds","eachDayOfInterval","startDate","endDate","step","reversed","endTime","dates","push","reverse","isSameMonth","d1","d2","isLastDayOfMonth","isWithinInterval","interval","startTime","sort","a","b","isToday","isYesterday","yesterday","isMatch","isNaN","millisecondsInSecond","addDays","amount","subDays","addWeeks","subWeeks","addMonths","dayOfMonth","endOfDesiredMonth","setMonth","daysInMonth","subMonths","setYear","getDaysInMonth","lastDayOfMonth","midMonth","Math","min","setMinutes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/date.ts"],"sourcesContent":["import { isSameDate } from '@vkontakte/vkjs';\nimport { TZDateMini } from '@vkontakte/vkui-date-fns-tz';\n\nexport function parse(input: string, format: string, referenceDate: Date = new Date()): Date {\n const match2 = /^\\d\\d/; // 00 - 99\n const match4 = /^\\d{4}/; // 0000 - 9999\n\n const entries: Array<[string, RegExp, (val: string) => [string, number, boolean]]> = [\n ['yyyy', match4, (val) => ['Y', +val, true]],\n [\n 'MM',\n match2,\n (val) => {\n const numVal = +val;\n const okay = numVal > 0 && numVal <= 12;\n\n return ['M', numVal - 1, okay];\n },\n ],\n ['dd', match2, (val) => ['D', +val, true]],\n [\n 'HH',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 24;\n\n return ['h', numVal, okay];\n },\n ],\n [\n 'mm',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 60;\n\n return ['m', numVal, okay];\n },\n ],\n ];\n\n const superRegExp = new RegExp(entries.map((item) => item[0]).join('|'), 'g');\n\n const store: {\n [key: string]: number;\n } = {\n y: referenceDate.getFullYear(),\n M: referenceDate.getMonth(),\n d: referenceDate.getDate(),\n h: referenceDate.getHours(),\n m: referenceDate.getMinutes(),\n s: referenceDate.getSeconds(),\n ms: referenceDate.getMilliseconds(),\n };\n\n let prevInputIndex = 0;\n let lastNonFormatting = '';\n let lastFormatIndex = 0;\n let found = false;\n\n while (true) {\n const match = superRegExp.exec(format);\n\n if (!match) {\n break;\n }\n\n const length = match[0].length;\n const atIndex = superRegExp.lastIndex - length;\n\n const item = entries.find((item) => item[0] === match[0])!;\n\n lastNonFormatting = format.slice(lastFormatIndex, atIndex);\n lastFormatIndex = superRegExp.lastIndex;\n\n if (\n input.slice(prevInputIndex, prevInputIndex + lastNonFormatting.length) !== lastNonFormatting\n ) {\n return new Date('');\n }\n\n const value = input.slice(prevInputIndex + lastNonFormatting.length).match(item[1]);\n\n if (!value) {\n return new Date('');\n }\n\n prevInputIndex = prevInputIndex + lastNonFormatting.length + value[0].length;\n\n const [key, newValue, okay] = item[2](value[0]);\n\n if (!okay) {\n return new Date('');\n }\n\n store[key] = newValue;\n found = true;\n }\n\n if (!found) {\n return new Date('');\n }\n\n const date = new Date(store.Y, store.M, store.D, store.h, store.m, store.s, store.ms);\n\n // Since days of months are dynamic, they can't be validated in entries,\n // so we check it here, in the finalized date\n if (date.getMonth() !== store.M || date.getDate() !== store.D) {\n return new Date('');\n }\n\n return date;\n}\n\nexport const convertDateToTimeZone = (\n date?: Date | null | undefined,\n timezone?: string | undefined,\n): Date | undefined | null => {\n if (!timezone) {\n return date;\n }\n if (date === null) {\n return null;\n }\n return date ? TZDateMini.tz(timezone, date) : undefined;\n};\n\nconst formatter = /*#__PURE__*/ new Intl.DateTimeFormat();\n\nexport const convertDateFromTimeZone = (date: Date | null, timezone?: string): Date | null => {\n if (!timezone) {\n return date;\n }\n if (date === null) {\n return null;\n }\n // eslint-disable-next-line new-cap\n const systemTimezone = formatter.resolvedOptions().timeZone;\n return TZDateMini.tz(systemTimezone, date);\n};\n\nexport type CreateDateInTimeZoneOverrides = {\n year?: number | undefined;\n month?: number | undefined;\n date?: number | undefined;\n hours?: number | undefined;\n minutes?: number | undefined;\n seconds?: number | undefined;\n milliseconds?: number | undefined;\n};\n\nexport function createDateInTimeZone(\n baseDate: Date,\n timezone?: string,\n overrides?: CreateDateInTimeZoneOverrides,\n): Date {\n const year = overrides?.year ?? baseDate.getFullYear();\n const month = overrides?.month ?? baseDate.getMonth();\n const date = overrides?.date ?? baseDate.getDate();\n const hours = overrides?.hours ?? baseDate.getHours();\n const minutes = overrides?.minutes ?? baseDate.getMinutes();\n const seconds = overrides?.seconds ?? baseDate.getSeconds();\n const milliseconds = overrides?.milliseconds ?? baseDate.getMilliseconds();\n\n if (!timezone) {\n return new Date(year, month, date, hours, minutes, seconds, milliseconds);\n }\n return TZDateMini.tz(timezone, year, month, date, hours, minutes, seconds, milliseconds);\n}\n\nconst dateOptions: Intl.DateTimeFormatOptions = {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n};\n\n// dd.MM.yyyy\nexport const dateFormatter = /*#__PURE__*/ new Intl.DateTimeFormat('ru-RU', dateOptions);\n\nclass DateTimeFormat extends Intl.DateTimeFormat {\n constructor() {\n super('ru-RU', {\n ...dateOptions,\n hour: '2-digit',\n minute: '2-digit',\n });\n }\n\n format(date?: Date | number): string {\n return super.format(date).replace(',', '');\n }\n}\n\n// dd.MM.yyyy HH:mm\nexport const dateTimeFormatter = /*#__PURE__*/ new DateTimeFormat();\n\n/**\n * Возвращает дату начала месяца\n */\nexport function startOfMonth(date: Date): Date {\n const result = new Date(date);\n result.setDate(1);\n result.setHours(0, 0, 0, 0);\n return result;\n}\n\n/**\n * Возвращает дату конца месяца\n */\nexport function endOfMonth(date: Date): Date {\n const result = new Date(date);\n const month = result.getMonth();\n result.setFullYear(result.getFullYear(), month + 1, 0);\n result.setHours(23, 59, 59, 999);\n return result;\n}\n\ntype WeekOptions = { weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined };\n\nexport const MONDAY = 1;\n\n/**\n * Возвращает дату начала недели\n */\nexport function startOfWeek(date: Date, { weekStartsOn = MONDAY }: WeekOptions = {}): Date {\n const result = new Date(date);\n const day = result.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n result.setDate(result.getDate() - diff);\n result.setHours(0, 0, 0, 0);\n return result;\n}\n\n/**\n * Возвращает дату конца недели\n */\nexport function endOfWeek(date: Date, { weekStartsOn = MONDAY }: WeekOptions = {}): Date {\n const result = new Date(date);\n const day = result.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n result.setDate(result.getDate() + diff);\n result.setHours(23, 59, 59, 999);\n return result;\n}\n\n/**\n * Возвращает дату начала дня\n */\nexport function startOfDay(date: Date): Date {\n const result = new Date(date);\n result.setHours(0, 0, 0, 0);\n return result;\n}\n\n/**\n * Возвращает дату конца дня\n */\nexport function endOfDay(date: Date): Date {\n const result = new Date(date);\n result.setHours(23, 59, 59, 999);\n return result;\n}\n\nexport function startOfTomorrow() {\n const date = new Date();\n const day = date.getDate();\n\n date.setDate(day + 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\n/**\n * Возвращает дату начала минуты\n */\nexport function startOfMinute(date: Date): Date {\n const result = new Date(date);\n result.setSeconds(0, 0);\n return result;\n}\n\nexport function eachDayOfInterval(\n startDate: Date,\n endDate: Date,\n { step = 1 }: { step?: number | undefined } = {},\n): Date[] {\n let reversed = +startDate > +endDate;\n const endTime = reversed ? +startDate : +endDate;\n const date = new Date(reversed ? endDate : startDate);\n date.setHours(0, 0, 0, 0);\n\n if (!step) {\n return [];\n }\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+date <= endTime) {\n dates.push(new Date(date));\n date.setDate(date.getDate() + 1);\n date.setHours(0, 0, 0, 0);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n/**\n * Проверяет, что переданные даты относятся к одному и тому же месяцу\n *\n * @example\n * ```ts\n * import assert from 'node:assert';\n * import { isSameMonth } from './date.ts';\n *\n * const d1 = new Date();\n * const d2 = new Date();\n * assert.ok(isSameMonth(d1, d2));\n * ```\n */\nexport function isSameMonth(d1: Date, d2: Date): boolean {\n return d1.getMonth() === d2.getMonth() && d1.getFullYear() === d2.getFullYear();\n}\n\nexport function isLastDayOfMonth(date: Date) {\n return +endOfDay(date) === +endOfMonth(date);\n}\n\nexport function isWithinInterval(date: Date, interval: [Date, Date]) {\n const [startTime, endTime] = interval.sort((a, b) => +a - +b);\n\n return date >= startTime && date <= endTime;\n}\n\nexport function isToday(date: Date) {\n return isSameDate(date, new Date());\n}\n\nexport function isYesterday(date: Date) {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n\n return isSameDate(date, yesterday);\n}\n\nexport function isMatch(input: string, format: string): boolean {\n return !isNaN(+parse(input, format));\n}\n\nexport const millisecondsInSecond = 1000;\n\nexport function addDays(date: Date, amount: number): Date {\n const result = new Date(date);\n\n if (!amount) {\n return result;\n }\n\n result.setDate(result.getDate() + amount);\n return result;\n}\n\nexport function subDays(date: Date, amount: number): Date {\n return addDays(date, -amount);\n}\n\nexport function addWeeks(date: Date, amount: number): Date {\n return addDays(date, amount * 7);\n}\n\nexport function subWeeks(date: Date, amount: number): Date {\n return addWeeks(date, -amount);\n}\n\nexport function addMonths(date: Date, amount: number): Date {\n const result = new Date(date);\n\n if (!amount) {\n return result;\n }\n\n const dayOfMonth = result.getDate();\n\n const endOfDesiredMonth = new Date(date);\n endOfDesiredMonth.setMonth(result.getMonth() + amount + 1, 0); // Конец месяца\n const daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // Если мы уже находимся в конце месяца, то это нужная дата\n return endOfDesiredMonth;\n }\n\n result.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return result;\n}\n\nexport function subMonths(date: Date, amount: number): Date {\n return addMonths(date, -amount);\n}\n\nexport function setYear(date: Date, year: number): Date {\n const result = new Date(date);\n result.setFullYear(year);\n return result;\n}\n\nfunction getDaysInMonth(date: Date): number {\n const result = new Date(date);\n const lastDayOfMonth = new Date(result);\n lastDayOfMonth.setFullYear(result.getFullYear(), result.getMonth() + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\nexport function setMonth(date: Date, month: number): Date {\n const result = new Date(date);\n const year = result.getFullYear();\n const day = result.getDate();\n\n const midMonth = new Date(date);\n midMonth.setFullYear(year, month, 15);\n midMonth.setHours(0, 0, 0, 0);\n const daysInMonth = getDaysInMonth(midMonth);\n\n result.setMonth(month, Math.min(day, daysInMonth));\n return result;\n}\n\nexport function setHours(date: Date, hours: number): Date {\n const result = new Date(date);\n result.setHours(hours);\n return result;\n}\n\nexport function setMinutes(date: Date, minutes: number): Date {\n const result = new Date(date);\n result.setMinutes(minutes);\n return result;\n}\n"],"names":["isSameDate","TZDateMini","parse","input","format","referenceDate","Date","match2","match4","entries","val","numVal","okay","parseInt","superRegExp","RegExp","map","item","join","store","y","getFullYear","M","getMonth","d","getDate","h","getHours","m","getMinutes","s","getSeconds","ms","getMilliseconds","prevInputIndex","lastNonFormatting","lastFormatIndex","found","match","exec","length","atIndex","lastIndex","find","slice","value","key","newValue","date","Y","D","convertDateToTimeZone","timezone","tz","undefined","formatter","Intl","DateTimeFormat","convertDateFromTimeZone","systemTimezone","resolvedOptions","timeZone","createDateInTimeZone","baseDate","overrides","year","month","hours","minutes","seconds","milliseconds","dateOptions","day","dateFormatter","hour","minute","replace","dateTimeFormatter","startOfMonth","result","setDate","setHours","endOfMonth","setFullYear","MONDAY","startOfWeek","weekStartsOn","getDay","diff","endOfWeek","startOfDay","endOfDay","startOfTomorrow","startOfMinute","setSeconds","eachDayOfInterval","startDate","endDate","step","reversed","endTime","dates","push","reverse","isSameMonth","d1","d2","isLastDayOfMonth","isWithinInterval","interval","startTime","sort","a","b","isToday","isYesterday","yesterday","isMatch","isNaN","millisecondsInSecond","addDays","amount","subDays","addWeeks","subWeeks","addMonths","dayOfMonth","endOfDesiredMonth","setMonth","daysInMonth","subMonths","setYear","getDaysInMonth","lastDayOfMonth","midMonth","Math","min","setMinutes"],"mappings":"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"}
|
package/dist/cssm/lib/dom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/dom.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { canUseDOM } from '@vkontakte/vkjs';\nimport { rectToClientRect } from '@vkontakte/vkui-floating-ui/core';\nimport {\n getParentNode,\n getWindow,\n isElement,\n isHTMLElement,\n isLastTraversableNode,\n isOverflowElement,\n} from '@vkontakte/vkui-floating-ui/utils/dom';\n\nexport {\n getWindow,\n getNodeScroll,\n isHTMLElement,\n isElement,\n getParentNode,\n} from '@vkontakte/vkui-floating-ui/utils/dom';\n\nexport { canUseDOM, canUseEventListeners, onDOMLoaded } from '@vkontakte/vkjs';\nexport interface DOMContextInterface {\n /**\n * @ignore\n */\n window?: Window;\n /**\n * @ignore\n */\n document?: Document;\n}\n\nexport type DOMProps = DOMContextInterface;\n\n/* eslint-disable no-restricted-globals */\nconst getDOM = (): DOMContextInterface => ({\n window: canUseDOM ? window : undefined,\n document: canUseDOM ? document : undefined,\n});\n/* eslint-enable no-restricted-globals */\n\nexport const DOMContext: React.Context<DOMContextInterface> =\n React.createContext<DOMContextInterface>(getDOM());\n\nexport const useDOM = (): DOMContextInterface => {\n return React.useContext(DOMContext);\n};\n\n/**\n * В случае, если используется DOMContext, при проверке 'node instanceOf Window' – Window может быть\n * другим объектом.\n */\nexport const isWindow = (\n node: Element | Window | VisualViewport | undefined | null,\n): node is Window => {\n return node !== null && node !== undefined && 'navigator' in node;\n};\n\nexport const isBody = (\n node: Element | Window | VisualViewport | undefined | null,\n): node is HTMLBodyElement => {\n return node !== null && node !== undefined && 'tagName' in node && node.tagName === 'BODY';\n};\n\nexport const isDocumentElement = (\n node: Element | Window | VisualViewport | undefined | null,\n): node is HTMLHtmlElement => {\n return node !== null && node !== undefined && 'tagName' in node && node.tagName === 'HTML';\n};\n\nexport function withDOM<Props>(\n Component: React.ComponentType<Props & DOMProps>,\n): React.ComponentType<Props> {\n const WithDOM = (props: Props) => {\n const dom = useDOM();\n return <Component {...props} {...dom} />;\n };\n return WithDOM;\n}\n\nexport function blurActiveElement(document: Document | undefined): void {\n if (document && document.activeElement) {\n (document.activeElement as HTMLElement).blur();\n }\n}\n\nexport const TRANSFORM_DEFAULT_VALUES: string[] = ['none', 'initial', 'inherit', 'unset'];\nexport const WILL_CHANGE_DEFAULT_VALUES: string[] = ['auto', 'initial', 'inherit', 'unset'];\nexport function getTransformedParentCoords(element: Element): {\n x: number;\n y: number;\n} {\n let parentNode = element.parentNode;\n while (parentNode !== null) {\n if (isHTMLElement(parentNode)) {\n let { transform, willChange } = getComputedStyle(parentNode);\n if (transform === '') {\n transform = 'unset';\n }\n if (willChange === '') {\n willChange = 'unset';\n }\n if (\n !TRANSFORM_DEFAULT_VALUES.includes(transform) ||\n !WILL_CHANGE_DEFAULT_VALUES.includes(willChange)\n ) {\n const { x, y } = parentNode.getBoundingClientRect();\n return { x, y };\n }\n }\n parentNode = parentNode.parentNode;\n }\n return { x: 0, y: 0 };\n}\n\nexport const getBoundingClientRect = (node: Element | Window, isFixedStrategy = false) => {\n const element = isWindow(node) ? node.document.documentElement : node;\n const clientRect = element.getBoundingClientRect();\n\n if (isDocumentElement(element)) {\n /**\n * Если на странице не используется `html, body { height: 100% }` (или `height: 100vh`), то\n * `height`, полученный из `document.documentElement.getBoundingClientRect()`, будет возвращать\n * `scrollHeight`, а не `clientHeight`. Поэтому перебиваем `height` на `clientHeight`.\n */\n clientRect.height = element.clientHeight;\n }\n\n let offsetX = 0;\n let offsetY = 0;\n if (isFixedStrategy) {\n const { x, y } = getTransformedParentCoords(element);\n offsetX = x;\n offsetY = y;\n }\n\n return rectToClientRect({\n x: clientRect.left - offsetX,\n y: clientRect.top - offsetY,\n width: clientRect.width,\n height: clientRect.height,\n }) as DOMRect;\n};\n\nexport const getRelativeBoundingClientRect = (parent: Element, child: Element) => {\n const parentRect = getBoundingClientRect(parent);\n const childRect = getBoundingClientRect(child);\n return rectToClientRect({\n x: childRect.left - parentRect.left,\n y: childRect.top - parentRect.top,\n width: childRect.width,\n height: childRect.height,\n }) as DOMRect;\n};\n\n/**\n * Переписанный `getNearestOverflowAncestor` из @floating-ui/utils/dom.\n *\n * [1] добавляем ноду, на которой нужно остановить рекурсию\n * [2] document.body подменяем на window, т.к. на document.body нельзя применить скролл.\n *\n * @link https://github.com/floating-ui/floating-ui/blob/%40floating-ui/dom%401.6.3/packages/utils/src/dom.ts#L143\n */\nexport function getNearestOverflowAncestor(node: Node): HTMLElement | Window | null;\nexport function getNearestOverflowAncestor(node: Node, terminalNode: Node): HTMLElement | null;\nexport function getNearestOverflowAncestor(node: Node, terminalNode?: any): any {\n const parentNode = getParentNode(node);\n\n if (terminalNode === parentNode) {\n return null; /* [1] */\n }\n\n if (isLastTraversableNode(parentNode)) {\n return getWindow(parentNode); /* [2] */\n }\n\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n\n return getNearestOverflowAncestor(parentNode, terminalNode);\n}\n\nexport const getScrollHeight = (node: Element | Window): number => {\n return isWindow(node) ? node.document.documentElement.scrollHeight : node.scrollHeight;\n};\n\nexport const getScrollRect = (\n node: Element | Window,\n): {\n relative: DOMRect;\n edges: {\n y: [number, number];\n };\n} => {\n const window = isElement(node) ? getWindow(node) : node;\n const scrollElRect = getBoundingClientRect(node);\n\n const edgeTop = window.scrollY + scrollElRect.top;\n const edgeBottom = edgeTop + scrollElRect.height;\n const y: [number, number] = [edgeTop, edgeBottom];\n\n return {\n relative: scrollElRect,\n edges: { y },\n };\n};\n\nexport const getDocumentBody = (node?: any): HTMLElement => getWindow(node).document.body;\n\nexport const getActiveElementByAnotherElement = (el: Element | null): Element | null =>\n el ? el.ownerDocument.activeElement : null;\n\nexport const contains = (parent?: Element | null, child?: Element | null): boolean => {\n return parent && child ? parent.contains(child) : false;\n};\n\nexport const getFirstTouchEventData = (\n event: UIEvent | React.UIEvent<HTMLElement>,\n): {\n screenX: number;\n screenY: number;\n clientX: number;\n clientY: number;\n pageX: number;\n pageY: number;\n} => {\n let dataRaw = (function resolveData() {\n switch (event.type) {\n case 'touchend':\n return (event as TouchEvent).changedTouches[0];\n case 'touchstart':\n case 'touchmove':\n case 'touchcancel':\n return (event as TouchEvent).touches[0];\n case 'mousedown':\n case 'mousemove':\n case 'mouseup':\n case 'mouseleave':\n return event as MouseEvent;\n default:\n return { screenX: 0, screenY: 0, clientX: 0, clientY: 0, pageX: 0, pageY: 0 };\n }\n })();\n /* istanbul ignore if */\n if (process.env.NODE_ENV === 'test') {\n dataRaw = dataRaw\n ? dataRaw\n : { screenX: 0, screenY: 0, clientX: 0, clientY: 0, pageX: 0, pageY: 0 };\n }\n return {\n screenX: dataRaw.screenX || 0,\n screenY: dataRaw.screenY || 0,\n clientX: dataRaw.clientX || 0,\n clientY: dataRaw.clientY || 0,\n pageX: dataRaw.pageX || 0,\n pageY: dataRaw.pageY || 0,\n };\n};\n\n/**\n * ⚠️ В частности, необходимо для iOS 15. Начиная с этой версии в Safari добавили\n * pull-to-refresh. CSS св-во `overflow-behavior` появился только с iOS 16.\n *\n * Во вторую очередь, полезна блокированием скролла, чтобы пользователь дождался обновления\n * данных.\n */\nexport const initializeBrowserGesturePreventionEffect = (window: Window): VoidFunction => {\n const options: AddEventListenerOptions & EventListenerOptions = { passive: false };\n const handleWindowTouchMove = (event: TouchEvent) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n window.document.documentElement.classList.add('vkui--disable-overscroll-behavior'); // eslint-disable-line no-restricted-properties\n window.addEventListener('touchmove', handleWindowTouchMove, options);\n\n return function dispose() {\n window.document.documentElement.classList.remove('vkui--disable-overscroll-behavior'); // eslint-disable-line no-restricted-properties\n window.removeEventListener('touchmove', handleWindowTouchMove, options);\n };\n};\n\nconst nonTextInputTypes = {\n button: true,\n submit: true,\n reset: true,\n color: true,\n file: true,\n image: true,\n checkbox: true,\n radio: true,\n};\n\nexport const isHTMLContentEditableElement = (\n el: Element | null,\n): el is HTMLInputElement | HTMLTextAreaElement | HTMLElement => {\n if (el === null) {\n return false;\n }\n\n if (el.tagName === 'INPUT') {\n // @ts-expect-error: TS2339 за счёт `tagName` удовлетворяемся, что это `HTMLInputElement`\n return !nonTextInputTypes[el.type];\n }\n\n return (\n el.tagName === 'TEXTAREA' ||\n // eslint-disable-next-line no-restricted-properties\n el.closest('[contenteditable=true]') !== null\n );\n};\n\nexport type VisualViewport = {\n offsetTop: number;\n offsetLeft: number;\n width: number;\n height: number;\n};\n\n/**\n * Фоллбек `visualViewport` для **Safari 12**.\n */\nexport function getVisualViewport(win: Window): VisualViewport {\n const result: VisualViewport = { offsetTop: 0, offsetLeft: 0, width: 0, height: 0 };\n if (win.visualViewport) {\n const { offsetTop, offsetLeft, width, height } = win.visualViewport;\n result.offsetTop = Math.round(offsetTop);\n result.offsetLeft = offsetLeft;\n result.width = width;\n result.height = Math.round(height);\n\n return result;\n }\n\n // TODO[Safari@>=13] Удалить фоллбек\n result.offsetTop = win.pageYOffset;\n result.offsetLeft = win.pageXOffset;\n result.width = win.innerWidth; // note: вызывает reflow в отличии от visualViewport\n result.height = win.innerHeight; // note: вызывает reflow в отличии от visualViewport\n return result;\n}\n\nexport const hasSelectionWithRangeType = (node: unknown) => {\n const selection = getWindow(node).getSelection();\n return selection ? selection.type === 'Range' : false;\n};\n\nexport function isSVGElement(value: unknown): value is SVGElement {\n if (!canUseDOM) {\n return false;\n }\n\n return value instanceof SVGElement || value instanceof getWindow(value).SVGElement;\n}\n"],"names":["React","canUseDOM","rectToClientRect","getParentNode","getWindow","isElement","isHTMLElement","isLastTraversableNode","isOverflowElement","getNodeScroll","canUseEventListeners","onDOMLoaded","getDOM","window","undefined","document","DOMContext","createContext","useDOM","useContext","isWindow","node","isBody","tagName","isDocumentElement","withDOM","Component","WithDOM","props","dom","blurActiveElement","activeElement","blur","TRANSFORM_DEFAULT_VALUES","WILL_CHANGE_DEFAULT_VALUES","getTransformedParentCoords","element","parentNode","transform","willChange","getComputedStyle","includes","x","y","getBoundingClientRect","isFixedStrategy","documentElement","clientRect","height","clientHeight","offsetX","offsetY","left","top","width","getRelativeBoundingClientRect","parent","child","parentRect","childRect","getNearestOverflowAncestor","terminalNode","getScrollHeight","scrollHeight","getScrollRect","scrollElRect","edgeTop","scrollY","edgeBottom","relative","edges","getDocumentBody","body","getActiveElementByAnotherElement","el","ownerDocument","contains","getFirstTouchEventData","event","dataRaw","resolveData","type","changedTouches","touches","screenX","screenY","clientX","clientY","pageX","pageY","process","env","NODE_ENV","initializeBrowserGesturePreventionEffect","options","passive","handleWindowTouchMove","preventDefault","stopPropagation","classList","add","addEventListener","dispose","remove","removeEventListener","nonTextInputTypes","button","submit","reset","color","file","image","checkbox","radio","isHTMLContentEditableElement","closest","getVisualViewport","win","result","offsetTop","offsetLeft","visualViewport","Math","round","pageYOffset","pageXOffset","innerWidth","innerHeight","hasSelectionWithRangeType","selection","getSelection","isSVGElement","value","SVGElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/dom.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { canUseDOM } from '@vkontakte/vkjs';\nimport { rectToClientRect } from '@vkontakte/vkui-floating-ui/core';\nimport {\n getParentNode,\n getWindow,\n isElement,\n isHTMLElement,\n isLastTraversableNode,\n isOverflowElement,\n} from '@vkontakte/vkui-floating-ui/utils/dom';\n\nexport {\n getWindow,\n getNodeScroll,\n isHTMLElement,\n isElement,\n getParentNode,\n} from '@vkontakte/vkui-floating-ui/utils/dom';\n\nexport { canUseDOM, canUseEventListeners, onDOMLoaded } from '@vkontakte/vkjs';\nexport interface DOMContextInterface {\n /**\n * @ignore\n */\n window?: Window | undefined;\n /**\n * @ignore\n */\n document?: Document | undefined;\n}\n\nexport type DOMProps = DOMContextInterface;\n\n/* eslint-disable no-restricted-globals */\nconst getDOM = (): DOMContextInterface => ({\n window: canUseDOM ? window : undefined,\n document: canUseDOM ? document : undefined,\n});\n/* eslint-enable no-restricted-globals */\n\nexport const DOMContext: React.Context<DOMContextInterface> =\n React.createContext<DOMContextInterface>(getDOM());\n\nexport const useDOM = (): DOMContextInterface => {\n return React.useContext(DOMContext);\n};\n\n/**\n * В случае, если используется DOMContext, при проверке 'node instanceOf Window' – Window может быть\n * другим объектом.\n */\nexport const isWindow = (\n node: Element | Window | VisualViewport | undefined | null,\n): node is Window => {\n return node !== null && node !== undefined && 'navigator' in node;\n};\n\nexport const isBody = (\n node: Element | Window | VisualViewport | undefined | null,\n): node is HTMLBodyElement => {\n return node !== null && node !== undefined && 'tagName' in node && node.tagName === 'BODY';\n};\n\nexport const isDocumentElement = (\n node: Element | Window | VisualViewport | undefined | null,\n): node is HTMLHtmlElement => {\n return node !== null && node !== undefined && 'tagName' in node && node.tagName === 'HTML';\n};\n\nexport function withDOM<Props>(\n Component: React.ComponentType<Props & DOMProps>,\n): React.ComponentType<Props> {\n const WithDOM = (props: Props) => {\n const dom = useDOM();\n return <Component {...props} {...dom} />;\n };\n return WithDOM;\n}\n\nexport function blurActiveElement(document: Document | undefined): void {\n if (document && document.activeElement) {\n (document.activeElement as HTMLElement).blur();\n }\n}\n\nexport const TRANSFORM_DEFAULT_VALUES: string[] = ['none', 'initial', 'inherit', 'unset'];\nexport const WILL_CHANGE_DEFAULT_VALUES: string[] = ['auto', 'initial', 'inherit', 'unset'];\nexport function getTransformedParentCoords(element: Element): {\n x: number;\n y: number;\n} {\n let parentNode = element.parentNode;\n while (parentNode !== null) {\n if (isHTMLElement(parentNode)) {\n let { transform, willChange } = getComputedStyle(parentNode);\n if (transform === '') {\n transform = 'unset';\n }\n if (willChange === '') {\n willChange = 'unset';\n }\n if (\n !TRANSFORM_DEFAULT_VALUES.includes(transform) ||\n !WILL_CHANGE_DEFAULT_VALUES.includes(willChange)\n ) {\n const { x, y } = parentNode.getBoundingClientRect();\n return { x, y };\n }\n }\n parentNode = parentNode.parentNode;\n }\n return { x: 0, y: 0 };\n}\n\nexport const getBoundingClientRect = (node: Element | Window, isFixedStrategy = false) => {\n const element = isWindow(node) ? node.document.documentElement : node;\n const clientRect = element.getBoundingClientRect();\n\n if (isDocumentElement(element)) {\n /**\n * Если на странице не используется `html, body { height: 100% }` (или `height: 100vh`), то\n * `height`, полученный из `document.documentElement.getBoundingClientRect()`, будет возвращать\n * `scrollHeight`, а не `clientHeight`. Поэтому перебиваем `height` на `clientHeight`.\n */\n clientRect.height = element.clientHeight;\n }\n\n let offsetX = 0;\n let offsetY = 0;\n if (isFixedStrategy) {\n const { x, y } = getTransformedParentCoords(element);\n offsetX = x;\n offsetY = y;\n }\n\n return rectToClientRect({\n x: clientRect.left - offsetX,\n y: clientRect.top - offsetY,\n width: clientRect.width,\n height: clientRect.height,\n }) as DOMRect;\n};\n\nexport const getRelativeBoundingClientRect = (parent: Element, child: Element) => {\n const parentRect = getBoundingClientRect(parent);\n const childRect = getBoundingClientRect(child);\n return rectToClientRect({\n x: childRect.left - parentRect.left,\n y: childRect.top - parentRect.top,\n width: childRect.width,\n height: childRect.height,\n }) as DOMRect;\n};\n\n/**\n * Переписанный `getNearestOverflowAncestor` из @floating-ui/utils/dom.\n *\n * [1] добавляем ноду, на которой нужно остановить рекурсию\n * [2] document.body подменяем на window, т.к. на document.body нельзя применить скролл.\n *\n * @link https://github.com/floating-ui/floating-ui/blob/%40floating-ui/dom%401.6.3/packages/utils/src/dom.ts#L143\n */\nexport function getNearestOverflowAncestor(node: Node): HTMLElement | Window | null;\nexport function getNearestOverflowAncestor(node: Node, terminalNode: Node): HTMLElement | null;\nexport function getNearestOverflowAncestor(node: Node, terminalNode?: any): any {\n const parentNode = getParentNode(node);\n\n if (terminalNode === parentNode) {\n return null; /* [1] */\n }\n\n if (isLastTraversableNode(parentNode)) {\n return getWindow(parentNode); /* [2] */\n }\n\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n\n return getNearestOverflowAncestor(parentNode, terminalNode);\n}\n\nexport const getScrollHeight = (node: Element | Window): number => {\n return isWindow(node) ? node.document.documentElement.scrollHeight : node.scrollHeight;\n};\n\nexport const getScrollRect = (\n node: Element | Window,\n): {\n relative: DOMRect;\n edges: {\n y: [number, number];\n };\n} => {\n const window = isElement(node) ? getWindow(node) : node;\n const scrollElRect = getBoundingClientRect(node);\n\n const edgeTop = window.scrollY + scrollElRect.top;\n const edgeBottom = edgeTop + scrollElRect.height;\n const y: [number, number] = [edgeTop, edgeBottom];\n\n return {\n relative: scrollElRect,\n edges: { y },\n };\n};\n\nexport const getDocumentBody = (node?: any): HTMLElement => getWindow(node).document.body;\n\nexport const getActiveElementByAnotherElement = (el: Element | null): Element | null =>\n el ? el.ownerDocument.activeElement : null;\n\nexport const contains = (parent?: Element | null, child?: Element | null): boolean => {\n return parent && child ? parent.contains(child) : false;\n};\n\nexport const getFirstTouchEventData = (\n event: UIEvent | React.UIEvent<HTMLElement>,\n): {\n screenX: number;\n screenY: number;\n clientX: number;\n clientY: number;\n pageX: number;\n pageY: number;\n} => {\n let dataRaw = (function resolveData() {\n switch (event.type) {\n case 'touchend':\n return (event as TouchEvent).changedTouches[0];\n case 'touchstart':\n case 'touchmove':\n case 'touchcancel':\n return (event as TouchEvent).touches[0];\n case 'mousedown':\n case 'mousemove':\n case 'mouseup':\n case 'mouseleave':\n return event as MouseEvent;\n default:\n return { screenX: 0, screenY: 0, clientX: 0, clientY: 0, pageX: 0, pageY: 0 };\n }\n })();\n /* istanbul ignore if */\n if (process.env.NODE_ENV === 'test') {\n dataRaw = dataRaw\n ? dataRaw\n : { screenX: 0, screenY: 0, clientX: 0, clientY: 0, pageX: 0, pageY: 0 };\n }\n return {\n screenX: dataRaw.screenX || 0,\n screenY: dataRaw.screenY || 0,\n clientX: dataRaw.clientX || 0,\n clientY: dataRaw.clientY || 0,\n pageX: dataRaw.pageX || 0,\n pageY: dataRaw.pageY || 0,\n };\n};\n\n/**\n * ⚠️ В частности, необходимо для iOS 15. Начиная с этой версии в Safari добавили\n * pull-to-refresh. CSS св-во `overflow-behavior` появился только с iOS 16.\n *\n * Во вторую очередь, полезна блокированием скролла, чтобы пользователь дождался обновления\n * данных.\n */\nexport const initializeBrowserGesturePreventionEffect = (window: Window): VoidFunction => {\n const options: AddEventListenerOptions & EventListenerOptions = { passive: false };\n const handleWindowTouchMove = (event: TouchEvent) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n window.document.documentElement.classList.add('vkui--disable-overscroll-behavior'); // eslint-disable-line no-restricted-properties\n window.addEventListener('touchmove', handleWindowTouchMove, options);\n\n return function dispose() {\n window.document.documentElement.classList.remove('vkui--disable-overscroll-behavior'); // eslint-disable-line no-restricted-properties\n window.removeEventListener('touchmove', handleWindowTouchMove, options);\n };\n};\n\nconst nonTextInputTypes = {\n button: true,\n submit: true,\n reset: true,\n color: true,\n file: true,\n image: true,\n checkbox: true,\n radio: true,\n};\n\nexport const isHTMLContentEditableElement = (\n el: Element | null,\n): el is HTMLInputElement | HTMLTextAreaElement | HTMLElement => {\n if (el === null) {\n return false;\n }\n\n if (el.tagName === 'INPUT') {\n // @ts-expect-error: TS2339 за счёт `tagName` удовлетворяемся, что это `HTMLInputElement`\n return !nonTextInputTypes[el.type];\n }\n\n return (\n el.tagName === 'TEXTAREA' ||\n // eslint-disable-next-line no-restricted-properties\n el.closest('[contenteditable=true]') !== null\n );\n};\n\nexport type VisualViewport = {\n offsetTop: number;\n offsetLeft: number;\n width: number;\n height: number;\n};\n\n/**\n * Фоллбек `visualViewport` для **Safari 12**.\n */\nexport function getVisualViewport(win: Window): VisualViewport {\n const result: VisualViewport = { offsetTop: 0, offsetLeft: 0, width: 0, height: 0 };\n if (win.visualViewport) {\n const { offsetTop, offsetLeft, width, height } = win.visualViewport;\n result.offsetTop = Math.round(offsetTop);\n result.offsetLeft = offsetLeft;\n result.width = width;\n result.height = Math.round(height);\n\n return result;\n }\n\n // TODO[Safari@>=13] Удалить фоллбек\n result.offsetTop = win.pageYOffset;\n result.offsetLeft = win.pageXOffset;\n result.width = win.innerWidth; // note: вызывает reflow в отличии от visualViewport\n result.height = win.innerHeight; // note: вызывает reflow в отличии от visualViewport\n return result;\n}\n\nexport const hasSelectionWithRangeType = (node: unknown) => {\n const selection = getWindow(node).getSelection();\n return selection ? selection.type === 'Range' : false;\n};\n\nexport function isSVGElement(value: unknown): value is SVGElement {\n if (!canUseDOM) {\n return false;\n }\n\n return value instanceof SVGElement || value instanceof getWindow(value).SVGElement;\n}\n"],"names":["React","canUseDOM","rectToClientRect","getParentNode","getWindow","isElement","isHTMLElement","isLastTraversableNode","isOverflowElement","getNodeScroll","canUseEventListeners","onDOMLoaded","getDOM","window","undefined","document","DOMContext","createContext","useDOM","useContext","isWindow","node","isBody","tagName","isDocumentElement","withDOM","Component","WithDOM","props","dom","blurActiveElement","activeElement","blur","TRANSFORM_DEFAULT_VALUES","WILL_CHANGE_DEFAULT_VALUES","getTransformedParentCoords","element","parentNode","transform","willChange","getComputedStyle","includes","x","y","getBoundingClientRect","isFixedStrategy","documentElement","clientRect","height","clientHeight","offsetX","offsetY","left","top","width","getRelativeBoundingClientRect","parent","child","parentRect","childRect","getNearestOverflowAncestor","terminalNode","getScrollHeight","scrollHeight","getScrollRect","scrollElRect","edgeTop","scrollY","edgeBottom","relative","edges","getDocumentBody","body","getActiveElementByAnotherElement","el","ownerDocument","contains","getFirstTouchEventData","event","dataRaw","resolveData","type","changedTouches","touches","screenX","screenY","clientX","clientY","pageX","pageY","process","env","NODE_ENV","initializeBrowserGesturePreventionEffect","options","passive","handleWindowTouchMove","preventDefault","stopPropagation","classList","add","addEventListener","dispose","remove","removeEventListener","nonTextInputTypes","button","submit","reset","color","file","image","checkbox","radio","isHTMLContentEditableElement","closest","getVisualViewport","win","result","offsetTop","offsetLeft","visualViewport","Math","round","pageYOffset","pageXOffset","innerWidth","innerHeight","hasSelectionWithRangeType","selection","getSelection","isSVGElement","value","SVGElement"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/floating/functions.ts"],"sourcesContent":["import type * as React from 'react';\nimport type {\n AutoPlacementType,\n FloatingPositionStrategy,\n Placement,\n PlacementWithAuto,\n UseFloatingData,\n} from './types/common';\n\nexport function checkIsNotAutoPlacement(placement: PlacementWithAuto): placement is Placement {\n return !placement.startsWith('auto');\n}\n\nexport function getAutoPlacementAlign(placement: AutoPlacementType): 'start' | 'end' | null {\n const align = placement.replace(/auto-|auto/, '');\n return align === 'start' || align === 'end' ? align : null;\n}\n\nexport type ConvertFloatingDataArgs = {\n strategy: FloatingPositionStrategy;\n x: UseFloatingData['x'];\n y: UseFloatingData['y'];\n initialWidth?: React.CSSProperties['width'] | null;\n middlewareData?: UseFloatingData['middlewareData'];\n};\n\n/**\n * Note: не используем `translate3d`, чтобы в лишний раз не выносить в отдельный слой и не занимать память в GPU.\n *\n * см. https://floating-ui.com/docs/react#positioning\n */\nexport function convertFloatingDataToReactCSSProperties({\n strategy,\n x,\n y,\n initialWidth = 'max-content',\n middlewareData,\n}: ConvertFloatingDataArgs): React.CSSProperties {\n const styles: React.CSSProperties = {\n position: strategy,\n top: y,\n right: 'auto',\n bottom: 'auto',\n left: x,\n };\n if (initialWidth !== null) {\n styles.width = initialWidth;\n }\n if (middlewareData) {\n const hide = middlewareData.hide;\n if (hide && hide.referenceHidden) {\n styles.visibility = 'hidden';\n }\n }\n return styles;\n}\n\nexport const getArrowCoordsByMiddlewareData = (\n middlewareData: UseFloatingData['middlewareData'],\n): {\n x: number;\n y: number;\n} => {\n const coords = { x: 0, y: 0 };\n if (middlewareData.arrow) {\n const { x = 0, y = 0 } = middlewareData.arrow;\n coords.x = x;\n coords.y = y;\n }\n return coords;\n};\n"],"names":["checkIsNotAutoPlacement","placement","startsWith","getAutoPlacementAlign","align","replace","convertFloatingDataToReactCSSProperties","strategy","x","y","initialWidth","middlewareData","styles","position","top","right","bottom","left","width","hide","referenceHidden","visibility","getArrowCoordsByMiddlewareData","coords","arrow"],"mappings":"AASA,OAAO,SAASA,wBAAwBC,SAA4B;IAClE,OAAO,CAACA,UAAUC,UAAU,CAAC;AAC/B;AAEA,OAAO,SAASC,sBAAsBF,SAA4B;IAChE,MAAMG,QAAQH,UAAUI,OAAO,CAAC,cAAc;IAC9C,OAAOD,UAAU,WAAWA,UAAU,QAAQA,QAAQ;AACxD;AAUA;;;;CAIC,GACD,OAAO,SAASE,wCAAwC,EACtDC,QAAQ,EACRC,CAAC,EACDC,CAAC,EACDC,eAAe,aAAa,EAC5BC,cAAc,EACU;IACxB,MAAMC,SAA8B;QAClCC,UAAUN;QACVO,KAAKL;QACLM,OAAO;QACPC,QAAQ;QACRC,MAAMT;IACR;IACA,IAAIE,iBAAiB,MAAM;QACzBE,OAAOM,KAAK,GAAGR;IACjB;IACA,IAAIC,gBAAgB;QAClB,MAAMQ,OAAOR,eAAeQ,IAAI;QAChC,IAAIA,QAAQA,KAAKC,eAAe,EAAE;YAChCR,OAAOS,UAAU,GAAG;QACtB;IACF;IACA,OAAOT;AACT;AAEA,OAAO,MAAMU,iCAAiC,CAC5CX;IAKA,MAAMY,SAAS;QAAEf,GAAG;QAAGC,GAAG;IAAE;IAC5B,IAAIE,eAAea,KAAK,EAAE;QACxB,MAAM,EAAEhB,IAAI,CAAC,EAAEC,IAAI,CAAC,EAAE,GAAGE,eAAea,KAAK;QAC7CD,OAAOf,CAAC,GAAGA;QACXe,OAAOd,CAAC,GAAGA;IACb;IACA,OAAOc;AACT,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/floating/functions.ts"],"sourcesContent":["import type * as React from 'react';\nimport type {\n AutoPlacementType,\n FloatingPositionStrategy,\n Placement,\n PlacementWithAuto,\n UseFloatingData,\n} from './types/common';\n\nexport function checkIsNotAutoPlacement(placement: PlacementWithAuto): placement is Placement {\n return !placement.startsWith('auto');\n}\n\nexport function getAutoPlacementAlign(placement: AutoPlacementType): 'start' | 'end' | null {\n const align = placement.replace(/auto-|auto/, '');\n return align === 'start' || align === 'end' ? align : null;\n}\n\nexport type ConvertFloatingDataArgs = {\n strategy: FloatingPositionStrategy;\n x: UseFloatingData['x'];\n y: UseFloatingData['y'];\n initialWidth?: React.CSSProperties['width'] | null | undefined;\n middlewareData?: UseFloatingData['middlewareData'] | undefined;\n};\n\n/**\n * Note: не используем `translate3d`, чтобы в лишний раз не выносить в отдельный слой и не занимать память в GPU.\n *\n * см. https://floating-ui.com/docs/react#positioning\n */\nexport function convertFloatingDataToReactCSSProperties({\n strategy,\n x,\n y,\n initialWidth = 'max-content',\n middlewareData,\n}: ConvertFloatingDataArgs): React.CSSProperties {\n const styles: React.CSSProperties = {\n position: strategy,\n top: y,\n right: 'auto',\n bottom: 'auto',\n left: x,\n };\n if (initialWidth !== null) {\n styles.width = initialWidth;\n }\n if (middlewareData) {\n const hide = middlewareData.hide;\n if (hide && hide.referenceHidden) {\n styles.visibility = 'hidden';\n }\n }\n return styles;\n}\n\nexport const getArrowCoordsByMiddlewareData = (\n middlewareData: UseFloatingData['middlewareData'],\n): {\n x: number;\n y: number;\n} => {\n const coords = { x: 0, y: 0 };\n if (middlewareData.arrow) {\n const { x = 0, y = 0 } = middlewareData.arrow;\n coords.x = x;\n coords.y = y;\n }\n return coords;\n};\n"],"names":["checkIsNotAutoPlacement","placement","startsWith","getAutoPlacementAlign","align","replace","convertFloatingDataToReactCSSProperties","strategy","x","y","initialWidth","middlewareData","styles","position","top","right","bottom","left","width","hide","referenceHidden","visibility","getArrowCoordsByMiddlewareData","coords","arrow"],"mappings":"AASA,OAAO,SAASA,wBAAwBC,SAA4B;IAClE,OAAO,CAACA,UAAUC,UAAU,CAAC;AAC/B;AAEA,OAAO,SAASC,sBAAsBF,SAA4B;IAChE,MAAMG,QAAQH,UAAUI,OAAO,CAAC,cAAc;IAC9C,OAAOD,UAAU,WAAWA,UAAU,QAAQA,QAAQ;AACxD;AAUA;;;;CAIC,GACD,OAAO,SAASE,wCAAwC,EACtDC,QAAQ,EACRC,CAAC,EACDC,CAAC,EACDC,eAAe,aAAa,EAC5BC,cAAc,EACU;IACxB,MAAMC,SAA8B;QAClCC,UAAUN;QACVO,KAAKL;QACLM,OAAO;QACPC,QAAQ;QACRC,MAAMT;IACR;IACA,IAAIE,iBAAiB,MAAM;QACzBE,OAAOM,KAAK,GAAGR;IACjB;IACA,IAAIC,gBAAgB;QAClB,MAAMQ,OAAOR,eAAeQ,IAAI;QAChC,IAAIA,QAAQA,KAAKC,eAAe,EAAE;YAChCR,OAAOS,UAAU,GAAG;QACtB;IACF;IACA,OAAOT;AACT;AAEA,OAAO,MAAMU,iCAAiC,CAC5CX;IAKA,MAAMY,SAAS;QAAEf,GAAG;QAAGC,GAAG;IAAE;IAC5B,IAAIE,eAAea,KAAK,EAAE;QACxB,MAAM,EAAEhB,IAAI,CAAC,EAAEC,IAAI,CAAC,EAAE,GAAGE,eAAea,KAAK;QAC7CD,OAAOf,CAAC,GAAGA;QACXe,OAAOd,CAAC,GAAGA;IACb;IACA,OAAOc;AACT,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/lib/floating/types/component.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { UseFloatingMiddlewaresBootstrapOptions } from '../useFloatingMiddlewaresBootstrap';\nimport type {\n RestoreFocusType,\n UseFloatingWithInteractionsProps,\n UseFloatingWithInteractionsReturn,\n} from '../useFloatingWithInteractions';\nimport type { OnPlacementChange } from './common';\n\n/**\n * @private используйте алиасы, если для какого-то компонента нужно экспортировать тип\n */\nexport type FloatingContentRenderProp = (\n props: Pick<UseFloatingWithInteractionsReturn, 'onClose'>,\n) => React.ReactNode;\n\n/**\n * Общий API для всплывающих элементов.\n *\n * @private\n */\nexport interface FloatingComponentProps\n extends UseFloatingMiddlewaresBootstrapOptions,\n Omit<UseFloatingWithInteractionsProps, 'placement' | 'middlewares'> {\n /**\n * Содержимое всплывающего окна.\n *\n * При передаче контента в виде [render prop](https://react.dev/reference/react/cloneElement#passing-data-with-a-render-prop),\n * в аргументе функции можно получить метод `onClose`, с помощью которого можно программно закрывать\n * всплывающее окно.\n */\n content?: React.ReactNode | FloatingContentRenderProp;\n /**\n * Целевой элемент. Всплывающее окно появится возле него.\n *\n * > ⚠️ Если это пользовательский компонент, то он должен:\n * > 1. предоставлять параметры либо `getRootRef`, либо `ref` (cм. `React.forwardRef()`) для получения ссылки на DOM-узел;\n * > 2. принимать DOM атрибуты и события.\n */\n children?: React.ReactElement;\n /**\n * Нужно ли при навигации с клавиатуры авто-фокусироваться на всплывающий элемент.\n */\n autoFocus?: boolean;\n /**\n * Нужно ли после закрытия всплывающего элемента возвращать фокус на предыдущий активный элемент.\n */\n restoreFocus?: RestoreFocusType;\n /**\n * Перебивает zIndex заданный по умолчанию.\n */\n zIndex?: number | string;\n /**\n * По умолчанию используется document.body.\n */\n usePortal?: boolean | HTMLElement | React.RefObject<HTMLElement
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/floating/types/component.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { UseFloatingMiddlewaresBootstrapOptions } from '../useFloatingMiddlewaresBootstrap';\nimport type {\n RestoreFocusType,\n UseFloatingWithInteractionsProps,\n UseFloatingWithInteractionsReturn,\n} from '../useFloatingWithInteractions';\nimport type { OnPlacementChange } from './common';\n\n/**\n * @private используйте алиасы, если для какого-то компонента нужно экспортировать тип\n */\nexport type FloatingContentRenderProp = (\n props: Pick<UseFloatingWithInteractionsReturn, 'onClose'>,\n) => React.ReactNode;\n\n/**\n * Общий API для всплывающих элементов.\n *\n * @private\n */\nexport interface FloatingComponentProps\n extends UseFloatingMiddlewaresBootstrapOptions,\n Omit<UseFloatingWithInteractionsProps, 'placement' | 'middlewares'> {\n /**\n * Содержимое всплывающего окна.\n *\n * При передаче контента в виде [render prop](https://react.dev/reference/react/cloneElement#passing-data-with-a-render-prop),\n * в аргументе функции можно получить метод `onClose`, с помощью которого можно программно закрывать\n * всплывающее окно.\n */\n content?: React.ReactNode | FloatingContentRenderProp | undefined;\n /**\n * Целевой элемент. Всплывающее окно появится возле него.\n *\n * > ⚠️ Если это пользовательский компонент, то он должен:\n * > 1. предоставлять параметры либо `getRootRef`, либо `ref` (cм. `React.forwardRef()`) для получения ссылки на DOM-узел;\n * > 2. принимать DOM атрибуты и события.\n */\n children?: React.ReactElement | undefined;\n /**\n * Нужно ли при навигации с клавиатуры авто-фокусироваться на всплывающий элемент.\n */\n autoFocus?: boolean | undefined;\n /**\n * Нужно ли после закрытия всплывающего элемента возвращать фокус на предыдущий активный элемент.\n */\n restoreFocus?: RestoreFocusType | undefined;\n /**\n * Перебивает zIndex заданный по умолчанию.\n */\n zIndex?: number | string | undefined;\n /**\n * По умолчанию используется document.body.\n */\n usePortal?: boolean | HTMLElement | React.RefObject<HTMLElement> | undefined;\n /**\n * В зависимости от области видимости, позиция может смениться на более оптимальную,\n * чтобы всплывающий элемент вместился в эту область видимости.\n */\n onPlacementChange?: OnPlacementChange | undefined;\n /**\n * Событие скрытия / раскрытия компонента при использовании свойства `hideWhenReferenceHidden`.\n *\n * > Стоит иметь ввиду, что событие также будет вызвано и при новом рендере компонента\n */\n onReferenceHiddenChange?: ((hidden: boolean) => void) | undefined;\n /**\n * Позволяет отключить захват фокуса.\n */\n disableFocusTrap?: boolean | undefined;\n}\n"],"names":[],"mappings":"AAgBA;;;;CAIC,GACD,WAkDC"}
|
|
@@ -10,9 +10,9 @@ export const useFloatingMiddlewaresBootstrap = ({ placement = 'bottom-start', ar
|
|
|
10
10
|
mainAxis: arrow && arrowHeight ? offsetByMainAxis + arrowHeight : offsetByMainAxis
|
|
11
11
|
})
|
|
12
12
|
];
|
|
13
|
-
const shift = disableShiftMiddleware ? null : shiftMiddleware({
|
|
13
|
+
const shift = disableShiftMiddleware ? null : overflowPadding !== undefined ? shiftMiddleware({
|
|
14
14
|
padding: overflowPadding
|
|
15
|
-
});
|
|
15
|
+
}) : shiftMiddleware();
|
|
16
16
|
// см. https://github.com/floating-ui/floating-ui/blob/%40floating-ui/core%401.7.1/website/pages/docs/flip.mdx#conflict-with-autoplacementjs
|
|
17
17
|
if (isAutoPlacement) {
|
|
18
18
|
middlewares.push(autoPlacementMiddleware({
|
|
@@ -55,9 +55,11 @@ export const useFloatingMiddlewaresBootstrap = ({ placement = 'bottom-start', ar
|
|
|
55
55
|
}
|
|
56
56
|
// см. https://github.com/floating-ui/floating-ui/blob/%40floating-ui/core%401.7.1/website/pages/docs/arrow.mdx#order
|
|
57
57
|
if (arrow) {
|
|
58
|
-
middlewares.push(arrowMiddleware({
|
|
59
|
-
element: arrowRef,
|
|
58
|
+
middlewares.push(arrowMiddleware(arrowPadding !== undefined ? {
|
|
59
|
+
element: arrowRef ?? null,
|
|
60
60
|
padding: arrowPadding
|
|
61
|
+
} : {
|
|
62
|
+
element: arrowRef ?? null
|
|
61
63
|
}));
|
|
62
64
|
}
|
|
63
65
|
if (hideWhenReferenceHidden) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n arrowMiddleware,\n autoPlacementMiddleware,\n flipMiddleware,\n type FlipMiddlewareOptions,\n hideMiddleware,\n offsetMiddleware,\n shiftMiddleware,\n type ShiftMiddlewareOptions,\n sizeMiddleware,\n} from '../adapters';\nimport { checkIsNotAutoPlacement, getAutoPlacementAlign } from '../functions';\nimport type {\n ArrowOptions,\n Placement,\n PlacementWithAuto,\n UseFloatingMiddleware,\n} from '../types/common';\n\nexport interface UseFloatingMiddlewaresBootstrapOptions {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам, но приоритетное можно задать с помощью этого свойства.\n */\n placement?: PlacementWithAuto;\n /**\n * Указанное значение `placement` форсируется, даже если для выпадающего элемента недостаточно места.\n * Не оказывает влияния при `placement` значениях - `'auto' | 'auto-start' | 'auto-end'`\n */\n disableFlipMiddleware?: boolean;\n /**\n * Позволяет отключить смещение по главной оси,\n * которое не даёт всплывающему элементу выходить за границы видимой области.\n */\n disableShiftMiddleware?: boolean;\n /**\n * Задаёт резервный вариант размещения по перпендикулярной оси.\n */\n flipMiddlewareFallbackAxisSideDirection
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n arrowMiddleware,\n autoPlacementMiddleware,\n flipMiddleware,\n type FlipMiddlewareOptions,\n hideMiddleware,\n offsetMiddleware,\n shiftMiddleware,\n type ShiftMiddlewareOptions,\n sizeMiddleware,\n} from '../adapters';\nimport { checkIsNotAutoPlacement, getAutoPlacementAlign } from '../functions';\nimport type {\n ArrowOptions,\n Placement,\n PlacementWithAuto,\n UseFloatingMiddleware,\n} from '../types/common';\n\nexport interface UseFloatingMiddlewaresBootstrapOptions {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам, но приоритетное можно задать с помощью этого свойства.\n */\n placement?: PlacementWithAuto | undefined;\n /**\n * Указанное значение `placement` форсируется, даже если для выпадающего элемента недостаточно места.\n * Не оказывает влияния при `placement` значениях - `'auto' | 'auto-start' | 'auto-end'`\n */\n disableFlipMiddleware?: boolean | undefined;\n /**\n * Позволяет отключить смещение по главной оси,\n * которое не даёт всплывающему элементу выходить за границы видимой области.\n */\n disableShiftMiddleware?: boolean | undefined;\n /**\n * Задаёт резервный вариант размещения по перпендикулярной оси.\n */\n flipMiddlewareFallbackAxisSideDirection?:\n | FlipMiddlewareOptions['fallbackAxisSideDirection']\n | undefined;\n /**\n * Отступ по главной оси.\n */\n offsetByMainAxis?: number | undefined;\n /**\n * Отступ по вспомогательной оси.\n */\n offsetByCrossAxis?: number | undefined;\n /**\n * Отступ для смещения.\n */\n overflowPadding?: ShiftMiddlewareOptions['padding'] | undefined;\n arrowRef?: ArrowOptions['element'] | undefined;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент.\n */\n arrow?: boolean | undefined;\n /**\n * Высота стрелки. Складывается с `mainAxis`, чтобы стрелка не залезала на якорный элемент.\n */\n arrowHeight?: number | undefined;\n /**\n * Безопасная зона вокруг стрелки, чтобы та не выходила за края контента.\n */\n arrowPadding?: number | undefined;\n /**\n * Выставлять ширину равной target элементу.\n */\n sameWidth?: boolean | undefined;\n /**\n * Позволяет задать или переопределить модификаторы библиотеки **Floating UI** (подробнее в документации про [middleware](https://floating-ui.com/docs/middleware)).\n */\n customMiddlewares?: UseFloatingMiddleware[] | undefined;\n /**\n * Принудительно скрывает компонент если целевой элемент вышел за область видимости.\n */\n hideWhenReferenceHidden?: boolean | undefined;\n}\n\nexport const useFloatingMiddlewaresBootstrap = ({\n placement = 'bottom-start',\n arrowRef = null,\n arrow,\n arrowHeight,\n arrowPadding,\n sameWidth,\n offsetByMainAxis = 0,\n offsetByCrossAxis = 0,\n customMiddlewares,\n hideWhenReferenceHidden,\n disableFlipMiddleware = false,\n disableShiftMiddleware = false,\n flipMiddlewareFallbackAxisSideDirection = 'end',\n overflowPadding,\n}: UseFloatingMiddlewaresBootstrapOptions): {\n middlewares: UseFloatingMiddleware[];\n strictPlacement: Placement | undefined;\n} => {\n return React.useMemo(() => {\n const isAutoPlacement = !checkIsNotAutoPlacement(placement);\n const middlewares: UseFloatingMiddleware[] = [\n offsetMiddleware({\n crossAxis: offsetByCrossAxis,\n mainAxis: arrow && arrowHeight ? offsetByMainAxis + arrowHeight : offsetByMainAxis,\n }),\n ];\n\n const shift = disableShiftMiddleware\n ? null\n : overflowPadding !== undefined\n ? shiftMiddleware({ padding: overflowPadding })\n : shiftMiddleware();\n\n // см. https://github.com/floating-ui/floating-ui/blob/%40floating-ui/core%401.7.1/website/pages/docs/flip.mdx#conflict-with-autoplacementjs\n if (isAutoPlacement) {\n middlewares.push(autoPlacementMiddleware({ alignment: getAutoPlacementAlign(placement) }));\n if (shift) {\n middlewares.push(shift);\n }\n } else if (!disableFlipMiddleware) {\n const flip = flipMiddleware({\n crossAxis: 'alignment',\n fallbackAxisSideDirection: flipMiddlewareFallbackAxisSideDirection,\n });\n\n // см. https://github.com/floating-ui/floating-ui/blob/%40floating-ui/core%401.7.1/website/pages/docs/flip.mdx#combining-with-shiftjs\n if (placement.includes('-')) {\n middlewares.push(flip);\n if (shift) {\n middlewares.push(shift);\n }\n } else {\n if (shift) {\n middlewares.push(shift);\n }\n middlewares.push(flip);\n }\n } else if (shift) {\n middlewares.push(shift);\n }\n\n if (sameWidth) {\n middlewares.push(\n sizeMiddleware({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n });\n },\n }),\n );\n }\n\n if (customMiddlewares) {\n middlewares.push(...customMiddlewares);\n }\n\n // см. https://github.com/floating-ui/floating-ui/blob/%40floating-ui/core%401.7.1/website/pages/docs/arrow.mdx#order\n if (arrow) {\n middlewares.push(\n arrowMiddleware(\n arrowPadding !== undefined\n ? { element: arrowRef ?? null, padding: arrowPadding }\n : { element: arrowRef ?? null },\n ),\n );\n }\n\n if (hideWhenReferenceHidden) {\n middlewares.push(hideMiddleware());\n }\n\n return { middlewares, strictPlacement: isAutoPlacement ? undefined : placement };\n }, [\n placement,\n offsetByCrossAxis,\n arrow,\n arrowHeight,\n offsetByMainAxis,\n disableFlipMiddleware,\n disableShiftMiddleware,\n flipMiddlewareFallbackAxisSideDirection,\n sameWidth,\n customMiddlewares,\n hideWhenReferenceHidden,\n arrowRef,\n arrowPadding,\n overflowPadding,\n ]);\n};\n"],"names":["React","arrowMiddleware","autoPlacementMiddleware","flipMiddleware","hideMiddleware","offsetMiddleware","shiftMiddleware","sizeMiddleware","checkIsNotAutoPlacement","getAutoPlacementAlign","useFloatingMiddlewaresBootstrap","placement","arrowRef","arrow","arrowHeight","arrowPadding","sameWidth","offsetByMainAxis","offsetByCrossAxis","customMiddlewares","hideWhenReferenceHidden","disableFlipMiddleware","disableShiftMiddleware","flipMiddlewareFallbackAxisSideDirection","overflowPadding","useMemo","isAutoPlacement","middlewares","crossAxis","mainAxis","shift","undefined","padding","push","alignment","flip","fallbackAxisSideDirection","includes","apply","rects","elements","Object","assign","floating","style","width","reference","element","strictPlacement"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SACEC,eAAe,EACfC,uBAAuB,EACvBC,cAAc,EAEdC,cAAc,EACdC,gBAAgB,EAChBC,eAAe,EAEfC,cAAc,QACT,iBAAc;AACrB,SAASC,uBAAuB,EAAEC,qBAAqB,QAAQ,kBAAe;AAoE9E,OAAO,MAAMC,kCAAkC,CAAC,EAC9CC,YAAY,cAAc,EAC1BC,WAAW,IAAI,EACfC,KAAK,EACLC,WAAW,EACXC,YAAY,EACZC,SAAS,EACTC,mBAAmB,CAAC,EACpBC,oBAAoB,CAAC,EACrBC,iBAAiB,EACjBC,uBAAuB,EACvBC,wBAAwB,KAAK,EAC7BC,yBAAyB,KAAK,EAC9BC,0CAA0C,KAAK,EAC/CC,eAAe,EACwB;IAIvC,OAAOxB,MAAMyB,OAAO,CAAC;QACnB,MAAMC,kBAAkB,CAAClB,wBAAwBG;QACjD,MAAMgB,cAAuC;YAC3CtB,iBAAiB;gBACfuB,WAAWV;gBACXW,UAAUhB,SAASC,cAAcG,mBAAmBH,cAAcG;YACpE;SACD;QAED,MAAMa,QAAQR,yBACV,OACAE,oBAAoBO,YAClBzB,gBAAgB;YAAE0B,SAASR;QAAgB,KAC3ClB;QAEN,4IAA4I;QAC5I,IAAIoB,iBAAiB;YACnBC,YAAYM,IAAI,CAAC/B,wBAAwB;gBAAEgC,WAAWzB,sBAAsBE;YAAW;YACvF,IAAImB,OAAO;gBACTH,YAAYM,IAAI,CAACH;YACnB;QACF,OAAO,IAAI,CAACT,uBAAuB;YACjC,MAAMc,OAAOhC,eAAe;gBAC1ByB,WAAW;gBACXQ,2BAA2Bb;YAC7B;YAEA,qIAAqI;YACrI,IAAIZ,UAAU0B,QAAQ,CAAC,MAAM;gBAC3BV,YAAYM,IAAI,CAACE;gBACjB,IAAIL,OAAO;oBACTH,YAAYM,IAAI,CAACH;gBACnB;YACF,OAAO;gBACL,IAAIA,OAAO;oBACTH,YAAYM,IAAI,CAACH;gBACnB;gBACAH,YAAYM,IAAI,CAACE;YACnB;QACF,OAAO,IAAIL,OAAO;YAChBH,YAAYM,IAAI,CAACH;QACnB;QAEA,IAAId,WAAW;YACbW,YAAYM,IAAI,CACd1B,eAAe;gBACb+B,OAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAE;oBACvBC,OAAOC,MAAM,CAACF,SAASG,QAAQ,CAACC,KAAK,EAAE;wBACrCC,OAAO,GAAGN,MAAMO,SAAS,CAACD,KAAK,CAAC,EAAE,CAAC;oBACrC;gBACF;YACF;QAEJ;QAEA,IAAI1B,mBAAmB;YACrBQ,YAAYM,IAAI,IAAId;QACtB;QAEA,qHAAqH;QACrH,IAAIN,OAAO;YACTc,YAAYM,IAAI,CACdhC,gBACEc,iBAAiBgB,YACb;gBAAEgB,SAASnC,YAAY;gBAAMoB,SAASjB;YAAa,IACnD;gBAAEgC,SAASnC,YAAY;YAAK;QAGtC;QAEA,IAAIQ,yBAAyB;YAC3BO,YAAYM,IAAI,CAAC7B;QACnB;QAEA,OAAO;YAAEuB;YAAaqB,iBAAiBtB,kBAAkBK,YAAYpB;QAAU;IACjF,GAAG;QACDA;QACAO;QACAL;QACAC;QACAG;QACAI;QACAC;QACAC;QACAP;QACAG;QACAC;QACAR;QACAG;QACAS;KACD;AACH,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/lib/floating/useFloatingWithInteractions/types.ts"],"sourcesContent":["import type {\n FloatingPositionStrategy,\n Placement,\n UseFloatingData,\n UseFloatingMiddleware,\n UseFloatingRefs,\n} from '../types/common';\n\nexport type InteractiveTriggerType = 'click' | 'hover' | 'focus';\n\nexport type ManualTriggerType = 'manual';\n\nexport type TriggerType = ManualTriggerType | InteractiveTriggerType | InteractiveTriggerType[];\n\nexport type RestoreFocusType = boolean | 'anchor-element' | HTMLElement;\n\nexport type ShownChangeReason =\n | 'click-outside'\n | 'escape-key'\n | 'click'\n | 'hover'\n | 'focus'\n | 'callback';\n\nexport type OnShownChange = (shown: boolean, reason?: ShownChangeReason) => void;\n\nexport interface UseFloatingWithInteractionsProps {\n placement?: Placement;\n /**\n * Стратегия позиционирования всплывающего элемента.\n *\n * - `\"fixed\"` - позиционируется, используя `position: fixed`. Является значением по умолчанию\n * - `\"absolute\"` - позиционируется, используя `position: absolute`, относительно ближайшего элемента с `position: relative`\n *\n * > `strategy=\"absolute\"` Рекомендуется использовать с `usePortal={false}`. И нужно не забыть обернуть в элемент с `position: relative`\n */\n strategy?: FloatingPositionStrategy;\n middlewares?: UseFloatingMiddleware[];\n /**\n * Механика вызова всплывающего элемента.\n *\n * - `\"click\"` – показывается/скрывается только при нажатии.\n * - `\"hover\"` – будет показываться/скрывается при наведении/отведении мыши.\n * - `\"focus\"` – будет показываться/скрывается при фокусе/потере фокуса мыши.\n * - `\"manual\"` – будет показываться/скрывается только через свойство `shown`. `onShownChange`\n * будет вызываться при нажатии за пределы целевого и всплывающего элементов, а также по кнопке\n * ESC.\n *\n * > ⚠️`\"hover\"` на тач-устройствах будет работать как `\"click\"`, с одним лишь нюансом, что\n * > не будет закрываться при повторном нажатии на целевой элемент. Для закрытия необходимо нажать\n * > на область вне целевого элемента и выпадающего окна.\n *\n * **Избегайте использования `trigger=\"hover\"` как единственного механизма активации, так как пользователи клавиатуры или скринридеров не смогут использовать компонент**\n */\n trigger?: TriggerType;\n /**\n * Количество миллисекунд, после которых произойдёт показ/скрытие всплывающего элемента\n * при наведении.\n *\n * > Чтобы задать разное время на показ и скрытие, передайте массив типа `[<показ>, <скрытие>]`.\n *\n * > Используется только для `trigger=\"hover\"`.\n */\n hoverDelay?: number | [number, number];\n /**\n * При `trigger=\"hover\"` закрывает всплывающий элемент при нажатии на целевой элемент.\n */\n closeAfterClick?: boolean;\n /**\n * Блокирует изменение состояния.\n */\n disabled?: boolean;\n /**\n * Отключает взаимодействие со всплывающим элементом.\n */\n disableInteractive?: boolean;\n /**\n * Отключает закрытие нажатием на область вне целевого и всплывающего элемента.\n */\n disableCloseOnClickOutside?: boolean;\n /**\n * Отключает закрытие нажатием на кнопку ESC.\n */\n disableCloseOnEscKey?: boolean;\n /**\n * Начальное состояние всплывающего элемента.\n */\n defaultShown?: boolean;\n /**\n * Если передан, то всплывающий элемент будет показано/скрыто в зависимости от значения свойства.\n */\n shown?: boolean;\n /**\n * Вызывается при каждом изменении видимости всплывающего элемента.\n */\n onShownChange?: OnShownChange;\n /**\n * Вызывается при каждом изменении видимости всплывающего элемента, но после завершении анимации.\n */\n onShownChanged?: OnShownChange;\n}\n\nexport type ReferenceProps<T = HTMLElement> = Omit<\n React.HTMLAttributes<T>,\n keyof React.DOMAttributes<T>\n> &\n Pick<React.DOMAttributes<T>, 'onMouseOver' | 'onMouseLeave' | 'onClick' | 'onFocus' | 'onBlur'>;\n\nexport type FloatingProps<T = HTMLElement> = Omit<\n React.HTMLAttributes<T>,\n keyof React.DOMAttributes<T> | 'style'\n> & { style: React.CSSProperties } & Pick<\n React.DOMAttributes<T>,\n 'onMouseOver' | 'onMouseLeave' | 'onClick' | 'onAnimationStart' | 'onAnimationEnd'\n >;\n\nexport interface UseFloatingWithInteractionsReturn<T extends HTMLElement = HTMLElement> {\n placement: Placement;\n shown: boolean;\n willBeHide: boolean;\n refs: UseFloatingRefs<T>;\n referenceProps: ReferenceProps<T>;\n floatingProps: FloatingProps<T>;\n middlewareData: UseFloatingData['middlewareData'];\n onClose: (this: void) => void;\n onEscapeKeyDown?: (this: void) => void;\n onRestoreFocus: (restoreFocus?: RestoreFocusType) => boolean | HTMLElement;\n}\n"],"names":[],"mappings":"AAoHA,WAWC"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/floating/useFloatingWithInteractions/types.ts"],"sourcesContent":["import type {\n FloatingPositionStrategy,\n Placement,\n UseFloatingData,\n UseFloatingMiddleware,\n UseFloatingRefs,\n} from '../types/common';\n\nexport type InteractiveTriggerType = 'click' | 'hover' | 'focus';\n\nexport type ManualTriggerType = 'manual';\n\nexport type TriggerType = ManualTriggerType | InteractiveTriggerType | InteractiveTriggerType[];\n\nexport type RestoreFocusType = boolean | 'anchor-element' | HTMLElement;\n\nexport type ShownChangeReason =\n | 'click-outside'\n | 'escape-key'\n | 'click'\n | 'hover'\n | 'focus'\n | 'callback';\n\nexport type OnShownChange = (shown: boolean, reason?: ShownChangeReason) => void;\n\nexport interface UseFloatingWithInteractionsProps {\n placement?: Placement | undefined;\n /**\n * Стратегия позиционирования всплывающего элемента.\n *\n * - `\"fixed\"` - позиционируется, используя `position: fixed`. Является значением по умолчанию\n * - `\"absolute\"` - позиционируется, используя `position: absolute`, относительно ближайшего элемента с `position: relative`\n *\n * > `strategy=\"absolute\"` Рекомендуется использовать с `usePortal={false}`. И нужно не забыть обернуть в элемент с `position: relative`\n */\n strategy?: FloatingPositionStrategy | undefined;\n middlewares?: UseFloatingMiddleware[] | undefined;\n /**\n * Механика вызова всплывающего элемента.\n *\n * - `\"click\"` – показывается/скрывается только при нажатии.\n * - `\"hover\"` – будет показываться/скрывается при наведении/отведении мыши.\n * - `\"focus\"` – будет показываться/скрывается при фокусе/потере фокуса мыши.\n * - `\"manual\"` – будет показываться/скрывается только через свойство `shown`. `onShownChange`\n * будет вызываться при нажатии за пределы целевого и всплывающего элементов, а также по кнопке\n * ESC.\n *\n * > ⚠️`\"hover\"` на тач-устройствах будет работать как `\"click\"`, с одним лишь нюансом, что\n * > не будет закрываться при повторном нажатии на целевой элемент. Для закрытия необходимо нажать\n * > на область вне целевого элемента и выпадающего окна.\n *\n * **Избегайте использования `trigger=\"hover\"` как единственного механизма активации, так как пользователи клавиатуры или скринридеров не смогут использовать компонент**\n */\n trigger?: TriggerType | undefined;\n /**\n * Количество миллисекунд, после которых произойдёт показ/скрытие всплывающего элемента\n * при наведении.\n *\n * > Чтобы задать разное время на показ и скрытие, передайте массив типа `[<показ>, <скрытие>]`.\n *\n * > Используется только для `trigger=\"hover\"`.\n */\n hoverDelay?: number | [number, number] | undefined;\n /**\n * При `trigger=\"hover\"` закрывает всплывающий элемент при нажатии на целевой элемент.\n */\n closeAfterClick?: boolean | undefined;\n /**\n * Блокирует изменение состояния.\n */\n disabled?: boolean | undefined;\n /**\n * Отключает взаимодействие со всплывающим элементом.\n */\n disableInteractive?: boolean | undefined;\n /**\n * Отключает закрытие нажатием на область вне целевого и всплывающего элемента.\n */\n disableCloseOnClickOutside?: boolean | undefined;\n /**\n * Отключает закрытие нажатием на кнопку ESC.\n */\n disableCloseOnEscKey?: boolean | undefined;\n /**\n * Начальное состояние всплывающего элемента.\n */\n defaultShown?: boolean | undefined;\n /**\n * Если передан, то всплывающий элемент будет показано/скрыто в зависимости от значения свойства.\n */\n shown?: boolean | undefined;\n /**\n * Вызывается при каждом изменении видимости всплывающего элемента.\n */\n onShownChange?: OnShownChange | undefined;\n /**\n * Вызывается при каждом изменении видимости всплывающего элемента, но после завершении анимации.\n */\n onShownChanged?: OnShownChange | undefined;\n}\n\nexport type ReferenceProps<T = HTMLElement> = Omit<\n React.HTMLAttributes<T>,\n keyof React.DOMAttributes<T>\n> &\n Pick<React.DOMAttributes<T>, 'onMouseOver' | 'onMouseLeave' | 'onClick' | 'onFocus' | 'onBlur'>;\n\nexport type FloatingProps<T = HTMLElement> = Omit<\n React.HTMLAttributes<T>,\n keyof React.DOMAttributes<T> | 'style'\n> & { style: React.CSSProperties } & Pick<\n React.DOMAttributes<T>,\n 'onMouseOver' | 'onMouseLeave' | 'onClick' | 'onAnimationStart' | 'onAnimationEnd'\n >;\n\nexport interface UseFloatingWithInteractionsReturn<T extends HTMLElement = HTMLElement> {\n placement: Placement;\n shown: boolean;\n willBeHide: boolean;\n refs: UseFloatingRefs<T>;\n referenceProps: ReferenceProps<T>;\n floatingProps: FloatingProps<T>;\n middlewareData: UseFloatingData['middlewareData'];\n onClose: (this: void) => void;\n onEscapeKeyDown?: ((this: void) => void) | undefined;\n onRestoreFocus: (restoreFocus?: RestoreFocusType) => boolean | HTMLElement;\n}\n"],"names":[],"mappings":"AAoHA,WAWC"}
|
|
@@ -53,8 +53,12 @@ shown: shownProp, onShownChange: onShownChangeProp, onShownChanged: onShownChang
|
|
|
53
53
|
const { placement, x, y, strategy, refs, middlewareData } = useFloating({
|
|
54
54
|
strategy: strategyProp,
|
|
55
55
|
placement: placementProp,
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
...middlewares !== undefined ? {
|
|
57
|
+
middleware: middlewares
|
|
58
|
+
} : {},
|
|
59
|
+
...!isLock && {
|
|
60
|
+
whileElementsMounted
|
|
61
|
+
}
|
|
58
62
|
});
|
|
59
63
|
const commitShownLocalState = React.useCallback((nextShown, reason)=>{
|
|
60
64
|
setShownLocalState((prevState)=>{
|
package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts"],"sourcesContent":["import * as React from 'react';\nimport { debounce, noop } from '@vkontakte/vkjs';\nimport { getWindow, isHTMLElement } from '@vkontakte/vkui-floating-ui/utils/dom';\nimport { useCustomEnsuredControl } from '../../../hooks/useEnsuredControl';\nimport { useGlobalOnClickOutside } from '../../../hooks/useGlobalOnClickOutside';\nimport { useStableCallback } from '../../../hooks/useStableCallback';\nimport { contains, getActiveElementByAnotherElement } from '../../dom';\nimport { useIsomorphicLayoutEffect } from '../../useIsomorphicLayoutEffect';\nimport { LockFloatingPositionContext } from '../LockFloatingPosition/LockFloatingPosition';\nimport { autoUpdateFloatingElement, useFloating } from '../adapters';\nimport { convertFloatingDataToReactCSSProperties } from '../functions';\nimport type { UseFloatingOptions } from '../types/common';\nimport { DEFAULT_TRIGGER } from './constants';\nimport type {\n FloatingProps,\n ReferenceProps,\n ShownChangeReason,\n UseFloatingWithInteractionsProps,\n UseFloatingWithInteractionsReturn,\n} from './types';\nimport { useResolveTriggerType } from './useResolveTriggerType';\n\ntype LocalState = { shown: boolean; reason?: ShownChangeReason };\n\nconst whileElementsMounted: UseFloatingOptions['whileElementsMounted'] = (...args) =>\n /* istanbul ignore next: не знаю как проверить */\n autoUpdateFloatingElement(...args, { elementResize: true });\n\n/**\n * @private\n */\nexport const useFloatingWithInteractions = <T extends HTMLElement = HTMLElement>({\n trigger = DEFAULT_TRIGGER,\n\n // UseFloating\n placement: placementProp = 'bottom',\n strategy: strategyProp = 'fixed',\n middlewares,\n hoverDelay = 0,\n closeAfterClick = false,\n\n // disables\n disabled = false,\n disableInteractive = false,\n disableCloseOnClickOutside = false,\n disableCloseOnEscKey = false,\n\n // uncontrolled\n defaultShown = false,\n\n // controlled\n shown: shownProp,\n onShownChange: onShownChangeProp,\n onShownChanged: onShownChangedProp,\n}: UseFloatingWithInteractionsProps): UseFloatingWithInteractionsReturn<T> => {\n const memoizedValue = React.useMemo<LocalState | undefined>(\n () => (shownProp !== undefined ? { shown: shownProp } : undefined),\n [shownProp],\n );\n const [shownLocalState, setShownLocalState] = useCustomEnsuredControl<LocalState>({\n value: memoizedValue,\n disabled,\n defaultValue: { shown: defaultShown },\n onChange: useStableCallback(({ shown, reason }) => {\n if (onShownChangeProp) {\n onShownChangeProp(shown, reason);\n }\n }),\n });\n const onShownChanged = useStableCallback(onShownChangedProp ? onShownChangedProp : noop);\n const [shownFinalState, setShownFinalState] = React.useState(() => shownLocalState.shown);\n const [willBeHide, setWillBeHide] = React.useState(false);\n\n const hasCSSAnimation = React.useRef(false);\n\n const blockMouseEnterRef = React.useRef(false);\n const blockFocusRef = React.useRef(false);\n const blurTimeoutRef = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n const handleCloseOnReferenceClickOutsideDisabled =\n disabled || disableCloseOnClickOutside || willBeHide || !shownLocalState.shown;\n const handleCloseOnFloatingClickOutsideDisabled =\n disableInteractive || handleCloseOnReferenceClickOutsideDisabled;\n\n const { triggerOnFocus, triggerOnClick, triggerOnHover } = useResolveTriggerType(trigger);\n\n const isLock = React.useContext(LockFloatingPositionContext);\n\n // Библиотека `floating-ui`\n const { placement, x, y, strategy, refs, middlewareData } = useFloating<T>({\n strategy: strategyProp,\n placement: placementProp,\n middleware: middlewares,\n whileElementsMounted: isLock ? undefined : whileElementsMounted,\n });\n\n const commitShownLocalState = React.useCallback(\n (nextShown: boolean, reason: ShownChangeReason) => {\n setShownLocalState((prevState) => {\n if (prevState.shown !== nextShown || prevState.reason !== reason) {\n return {\n shown: nextShown,\n reason,\n };\n }\n /* istanbul ignore next: страховка, если вдруг на момент вызова обновления состояния, оно уже будет актуальным */\n return prevState;\n });\n },\n [setShownLocalState],\n );\n\n const [mouseEnterDelay, mouseLeaveDelay] =\n typeof hoverDelay === 'number' ? [hoverDelay, hoverDelay] : hoverDelay;\n\n const showWithDelay = React.useMemo(\n () => debounce(() => commitShownLocalState(true, 'hover'), mouseEnterDelay),\n [mouseEnterDelay, commitShownLocalState],\n );\n\n const hideWithDelay = React.useMemo(\n () => debounce(() => commitShownLocalState(false, 'hover'), mouseLeaveDelay),\n [mouseLeaveDelay, commitShownLocalState],\n );\n\n const handleFocusOnReference = useStableCallback(() => {\n // Повторный вызов события фокуса - следствие клика на reference-элемент\n if (shownLocalState.shown) {\n if (!closeAfterClick && shownLocalState.reason === 'hover') {\n return;\n }\n commitShownLocalState(false, 'focus');\n return;\n }\n if (blockFocusRef.current) {\n /* istanbul ignore next: в Vitest не воспроизводится баг на вебе (cм. onRestoreFocus) */\n blockFocusRef.current = false;\n return;\n }\n\n commitShownLocalState(true, 'focus');\n });\n\n const handleBlurOnReference = useStableCallback((event: React.FocusEvent) => {\n blockFocusRef.current = false;\n blockMouseEnterRef.current = false;\n\n if (!shownLocalState.shown) {\n clearTimeout(blurTimeoutRef.current);\n return;\n }\n\n const relatedTarget = event.relatedTarget;\n blurTimeoutRef.current = setTimeout(function waitWindowBlurFire() {\n const reference = refs.reference.current;\n // Если пользователь покинул текущее окно в открытом состоянии, то\n // не закрываем всплывающий элемент.\n /* istanbul ignore if: не умеем симулировать уход из текущего окна */\n if (!relatedTarget && getActiveElementByAnotherElement(reference) === reference) {\n /* istanbul ignore next */\n return;\n }\n\n // Если пользователь нажал на всплывающий элемент, то не закрываем всплывающий элемент.\n // Note: для этого элемент должен быть фокусируемый (например, за счёт `tabindex=\"-1\"`).\n if (contains(refs.floating.current, relatedTarget) || contains(reference, relatedTarget)) {\n return;\n }\n\n commitShownLocalState(false, 'focus');\n });\n });\n\n const handleClickOnReference = useStableCallback(() => {\n // Предыдущий триггер (фокус) уже вызвал открытие/закрытие всплывающего окна, игнорируем вызов\n if (shownLocalState.reason === 'focus') {\n commitShownLocalState(shownLocalState.shown, 'click');\n return;\n }\n commitShownLocalState(!shownLocalState.shown, 'click');\n });\n\n const handleClickOnReferenceForOnlyClose = useStableCallback(() => {\n blockMouseEnterRef.current = true;\n commitShownLocalState(false, 'click');\n });\n\n const handleMouseEnterOnBoth = useStableCallback((event: React.MouseEvent<HTMLElement>) => {\n if (willBeHide && event.currentTarget === refs.floating.current) {\n return;\n }\n\n showWithDelay.cancel();\n hideWithDelay.cancel();\n\n if (!blockMouseEnterRef.current && !shownLocalState.shown) {\n showWithDelay();\n }\n });\n\n const handleMouseLeaveOnBothForHoverAndFocusStates = useStableCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (willBeHide && event.currentTarget === refs.floating.current) {\n return;\n }\n\n blockFocusRef.current = false;\n blockMouseEnterRef.current = false;\n\n if (triggerOnHover) {\n showWithDelay.cancel();\n hideWithDelay.cancel();\n\n hideWithDelay();\n }\n },\n );\n\n const handleFloatingAnimationStart = () => {\n hasCSSAnimation.current = true;\n };\n\n const handleFloatingAnimationEnd = () => {\n if (willBeHide) {\n setShownFinalState(false);\n setWillBeHide(false);\n onShownChanged(false, shownLocalState.reason);\n }\n };\n\n const handleOnClose = React.useCallback(() => {\n blockFocusRef.current = true;\n commitShownLocalState(false, 'callback');\n }, [commitShownLocalState]);\n\n const handleRestoreFocus: UseFloatingWithInteractionsReturn['onRestoreFocus'] = React.useCallback(\n (restoreFocus = true) => {\n if (!restoreFocus) {\n return false;\n }\n if (restoreFocus === true) {\n return triggerOnFocus ? blockFocusRef.current : true;\n } else if (restoreFocus === 'anchor-element') {\n return refs.reference.current as HTMLElement;\n } else if (restoreFocus instanceof HTMLElement) {\n return restoreFocus;\n }\n return false;\n },\n [refs.reference, triggerOnFocus],\n );\n\n const handleEscapeKeyDown = React.useCallback(() => {\n blockFocusRef.current = true;\n commitShownLocalState(false, 'escape-key');\n }, [commitShownLocalState]);\n\n const handleClickOutside = React.useCallback(() => {\n blockFocusRef.current = true;\n commitShownLocalState(false, 'click-outside');\n }, [commitShownLocalState]);\n\n useGlobalOnClickOutside(\n handleClickOutside,\n handleCloseOnReferenceClickOutsideDisabled ? null : refs.reference,\n handleCloseOnFloatingClickOutsideDisabled ? null : refs.floating,\n );\n\n useIsomorphicLayoutEffect(\n /**\n * Если пользователь покинул активное окно и:\n * 1. целевой элемент был в состоянии фокуса;\n * 2. всплывающий элемент был закрытом состоянии;\n * то фокус должен быть заблокирован, когда пользователь вернётся обратно. Иначе покажется\n * всплывающий элемент.\n */\n function setGlobalBlurForTriggerOnFocus() {\n if (!triggerOnFocus || !refs.reference.current) {\n return;\n }\n\n const handleGlobalBlur = () => {\n /* istanbul ignore next */\n const reference = refs.reference.current;\n /* istanbul ignore if: не умеем симулировать уход из текущего окна */\n if (\n !shownLocalState.shown &&\n isHTMLElement(reference) &&\n reference === getActiveElementByAnotherElement(reference)\n ) {\n /* istanbul ignore next */\n blockFocusRef.current = true;\n }\n };\n\n const win = getWindow(refs.reference.current);\n win.addEventListener('blur', handleGlobalBlur);\n return () => {\n win.removeEventListener('blur', handleGlobalBlur);\n };\n },\n [triggerOnFocus, refs.reference, shownLocalState],\n );\n\n useIsomorphicLayoutEffect(\n function resolveShownStates() {\n if (willBeHide || shownLocalState.shown === shownFinalState) {\n return;\n }\n\n if (shownLocalState.shown) {\n setShownFinalState(true);\n onShownChanged(true, shownLocalState.reason);\n } else if (hasCSSAnimation.current && !willBeHide) {\n setWillBeHide(true);\n } else {\n setShownFinalState(false);\n }\n\n return () => {\n clearTimeout(blurTimeoutRef.current);\n };\n },\n [shownLocalState, shownFinalState, willBeHide, onShownChanged],\n );\n\n const referenceProps: ReferenceProps = {};\n const floatingProps: FloatingProps = { style: {} };\n\n if (shownFinalState) {\n floatingProps.style = convertFloatingDataToReactCSSProperties({\n strategy,\n x,\n y,\n middlewareData,\n });\n\n if (disableInteractive) {\n floatingProps.style.pointerEvents = 'none';\n }\n }\n\n if (triggerOnFocus) {\n referenceProps.onFocus = handleFocusOnReference;\n referenceProps.onBlur = handleBlurOnReference;\n }\n\n if (triggerOnClick) {\n referenceProps.onClick = handleClickOnReference;\n }\n\n if (triggerOnHover) {\n referenceProps.onMouseOver = handleMouseEnterOnBoth;\n\n if (closeAfterClick && !triggerOnClick) {\n referenceProps.onClick = handleClickOnReferenceForOnlyClose;\n }\n\n if (!disableInteractive) {\n floatingProps.onMouseOver = handleMouseEnterOnBoth;\n }\n }\n\n if (triggerOnHover || triggerOnFocus) {\n referenceProps.onMouseLeave = handleMouseLeaveOnBothForHoverAndFocusStates;\n\n if (!disableInteractive) {\n floatingProps.onMouseLeave = handleMouseLeaveOnBothForHoverAndFocusStates;\n }\n }\n\n if (shownFinalState) {\n floatingProps.onAnimationStart = handleFloatingAnimationStart;\n floatingProps.onAnimationEnd = handleFloatingAnimationEnd;\n }\n\n return {\n placement,\n shown: shownFinalState,\n willBeHide,\n refs,\n referenceProps,\n floatingProps,\n middlewareData,\n onClose: handleOnClose,\n // FocusTrap уже определяет нажатие на ESC, поэтому название события содержит конкретный код\n // кнопки вместо просто onKeyDown.\n onEscapeKeyDown: !shownFinalState || disableCloseOnEscKey ? undefined : handleEscapeKeyDown,\n // [Обход баги с FocusTrap]\n //\n // Если сфокусироваться на целевой элемент через нажатие, а потом нажать в область за пределами\n // целевого и всплывающего элемента, то появляется моргание из-за того, что FocusTrap\n // восстанавливает фокус, из-за чего всплывающий элемент снова показывается за счёт\n // `handleFocusOnReference`, а потом скрывается за счёт `handleBlurOnReference`.\n onRestoreFocus: handleRestoreFocus,\n };\n};\n"],"names":["React","debounce","noop","getWindow","isHTMLElement","useCustomEnsuredControl","useGlobalOnClickOutside","useStableCallback","contains","getActiveElementByAnotherElement","useIsomorphicLayoutEffect","LockFloatingPositionContext","autoUpdateFloatingElement","useFloating","convertFloatingDataToReactCSSProperties","DEFAULT_TRIGGER","useResolveTriggerType","whileElementsMounted","args","elementResize","useFloatingWithInteractions","trigger","placement","placementProp","strategy","strategyProp","middlewares","hoverDelay","closeAfterClick","disabled","disableInteractive","disableCloseOnClickOutside","disableCloseOnEscKey","defaultShown","shown","shownProp","onShownChange","onShownChangeProp","onShownChanged","onShownChangedProp","memoizedValue","useMemo","undefined","shownLocalState","setShownLocalState","value","defaultValue","onChange","reason","shownFinalState","setShownFinalState","useState","willBeHide","setWillBeHide","hasCSSAnimation","useRef","blockMouseEnterRef","blockFocusRef","blurTimeoutRef","handleCloseOnReferenceClickOutsideDisabled","handleCloseOnFloatingClickOutsideDisabled","triggerOnFocus","triggerOnClick","triggerOnHover","isLock","useContext","x","y","refs","middlewareData","middleware","commitShownLocalState","useCallback","nextShown","prevState","mouseEnterDelay","mouseLeaveDelay","showWithDelay","hideWithDelay","handleFocusOnReference","current","handleBlurOnReference","event","clearTimeout","relatedTarget","setTimeout","waitWindowBlurFire","reference","floating","handleClickOnReference","handleClickOnReferenceForOnlyClose","handleMouseEnterOnBoth","currentTarget","cancel","handleMouseLeaveOnBothForHoverAndFocusStates","handleFloatingAnimationStart","handleFloatingAnimationEnd","handleOnClose","handleRestoreFocus","restoreFocus","HTMLElement","handleEscapeKeyDown","handleClickOutside","setGlobalBlurForTriggerOnFocus","handleGlobalBlur","win","addEventListener","removeEventListener","resolveShownStates","referenceProps","floatingProps","style","pointerEvents","onFocus","onBlur","onClick","onMouseOver","onMouseLeave","onAnimationStart","onAnimationEnd","onClose","onEscapeKeyDown","onRestoreFocus"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts"],"sourcesContent":["import * as React from 'react';\nimport { debounce, noop } from '@vkontakte/vkjs';\nimport { getWindow, isHTMLElement } from '@vkontakte/vkui-floating-ui/utils/dom';\nimport { useCustomEnsuredControl } from '../../../hooks/useEnsuredControl';\nimport { useGlobalOnClickOutside } from '../../../hooks/useGlobalOnClickOutside';\nimport { useStableCallback } from '../../../hooks/useStableCallback';\nimport { contains, getActiveElementByAnotherElement } from '../../dom';\nimport { useIsomorphicLayoutEffect } from '../../useIsomorphicLayoutEffect';\nimport { LockFloatingPositionContext } from '../LockFloatingPosition/LockFloatingPosition';\nimport { autoUpdateFloatingElement, useFloating } from '../adapters';\nimport { convertFloatingDataToReactCSSProperties } from '../functions';\nimport type { UseFloatingOptions } from '../types/common';\nimport { DEFAULT_TRIGGER } from './constants';\nimport type {\n FloatingProps,\n ReferenceProps,\n ShownChangeReason,\n UseFloatingWithInteractionsProps,\n UseFloatingWithInteractionsReturn,\n} from './types';\nimport { useResolveTriggerType } from './useResolveTriggerType';\n\ntype LocalState = { shown: boolean; reason?: ShownChangeReason };\n\nconst whileElementsMounted: UseFloatingOptions['whileElementsMounted'] = (...args) =>\n /* istanbul ignore next: не знаю как проверить */\n autoUpdateFloatingElement(...args, { elementResize: true });\n\n/**\n * @private\n */\nexport const useFloatingWithInteractions = <T extends HTMLElement = HTMLElement>({\n trigger = DEFAULT_TRIGGER,\n\n // UseFloating\n placement: placementProp = 'bottom',\n strategy: strategyProp = 'fixed',\n middlewares,\n hoverDelay = 0,\n closeAfterClick = false,\n\n // disables\n disabled = false,\n disableInteractive = false,\n disableCloseOnClickOutside = false,\n disableCloseOnEscKey = false,\n\n // uncontrolled\n defaultShown = false,\n\n // controlled\n shown: shownProp,\n onShownChange: onShownChangeProp,\n onShownChanged: onShownChangedProp,\n}: UseFloatingWithInteractionsProps): UseFloatingWithInteractionsReturn<T> => {\n const memoizedValue = React.useMemo<LocalState | undefined>(\n () => (shownProp !== undefined ? { shown: shownProp } : undefined),\n [shownProp],\n );\n const [shownLocalState, setShownLocalState] = useCustomEnsuredControl<LocalState>({\n value: memoizedValue,\n disabled,\n defaultValue: { shown: defaultShown },\n onChange: useStableCallback(({ shown, reason }) => {\n if (onShownChangeProp) {\n onShownChangeProp(shown, reason);\n }\n }),\n });\n const onShownChanged = useStableCallback(onShownChangedProp ? onShownChangedProp : noop);\n const [shownFinalState, setShownFinalState] = React.useState(() => shownLocalState.shown);\n const [willBeHide, setWillBeHide] = React.useState(false);\n\n const hasCSSAnimation = React.useRef(false);\n\n const blockMouseEnterRef = React.useRef(false);\n const blockFocusRef = React.useRef(false);\n const blurTimeoutRef = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n const handleCloseOnReferenceClickOutsideDisabled =\n disabled || disableCloseOnClickOutside || willBeHide || !shownLocalState.shown;\n const handleCloseOnFloatingClickOutsideDisabled =\n disableInteractive || handleCloseOnReferenceClickOutsideDisabled;\n\n const { triggerOnFocus, triggerOnClick, triggerOnHover } = useResolveTriggerType(trigger);\n\n const isLock = React.useContext(LockFloatingPositionContext);\n\n // Библиотека `floating-ui`\n const { placement, x, y, strategy, refs, middlewareData } = useFloating<T>({\n strategy: strategyProp,\n placement: placementProp,\n ...(middlewares !== undefined ? { middleware: middlewares } : {}),\n ...(!isLock && { whileElementsMounted }),\n });\n\n const commitShownLocalState = React.useCallback(\n (nextShown: boolean, reason: ShownChangeReason) => {\n setShownLocalState((prevState) => {\n if (prevState.shown !== nextShown || prevState.reason !== reason) {\n return {\n shown: nextShown,\n reason,\n };\n }\n /* istanbul ignore next: страховка, если вдруг на момент вызова обновления состояния, оно уже будет актуальным */\n return prevState;\n });\n },\n [setShownLocalState],\n );\n\n const [mouseEnterDelay, mouseLeaveDelay] =\n typeof hoverDelay === 'number' ? [hoverDelay, hoverDelay] : hoverDelay;\n\n const showWithDelay = React.useMemo(\n () => debounce(() => commitShownLocalState(true, 'hover'), mouseEnterDelay),\n [mouseEnterDelay, commitShownLocalState],\n );\n\n const hideWithDelay = React.useMemo(\n () => debounce(() => commitShownLocalState(false, 'hover'), mouseLeaveDelay),\n [mouseLeaveDelay, commitShownLocalState],\n );\n\n const handleFocusOnReference = useStableCallback(() => {\n // Повторный вызов события фокуса - следствие клика на reference-элемент\n if (shownLocalState.shown) {\n if (!closeAfterClick && shownLocalState.reason === 'hover') {\n return;\n }\n commitShownLocalState(false, 'focus');\n return;\n }\n if (blockFocusRef.current) {\n /* istanbul ignore next: в Vitest не воспроизводится баг на вебе (cм. onRestoreFocus) */\n blockFocusRef.current = false;\n return;\n }\n\n commitShownLocalState(true, 'focus');\n });\n\n const handleBlurOnReference = useStableCallback((event: React.FocusEvent) => {\n blockFocusRef.current = false;\n blockMouseEnterRef.current = false;\n\n if (!shownLocalState.shown) {\n clearTimeout(blurTimeoutRef.current);\n return;\n }\n\n const relatedTarget = event.relatedTarget;\n blurTimeoutRef.current = setTimeout(function waitWindowBlurFire() {\n const reference = refs.reference.current;\n // Если пользователь покинул текущее окно в открытом состоянии, то\n // не закрываем всплывающий элемент.\n /* istanbul ignore if: не умеем симулировать уход из текущего окна */\n if (!relatedTarget && getActiveElementByAnotherElement(reference) === reference) {\n /* istanbul ignore next */\n return;\n }\n\n // Если пользователь нажал на всплывающий элемент, то не закрываем всплывающий элемент.\n // Note: для этого элемент должен быть фокусируемый (например, за счёт `tabindex=\"-1\"`).\n if (contains(refs.floating.current, relatedTarget) || contains(reference, relatedTarget)) {\n return;\n }\n\n commitShownLocalState(false, 'focus');\n });\n });\n\n const handleClickOnReference = useStableCallback(() => {\n // Предыдущий триггер (фокус) уже вызвал открытие/закрытие всплывающего окна, игнорируем вызов\n if (shownLocalState.reason === 'focus') {\n commitShownLocalState(shownLocalState.shown, 'click');\n return;\n }\n commitShownLocalState(!shownLocalState.shown, 'click');\n });\n\n const handleClickOnReferenceForOnlyClose = useStableCallback(() => {\n blockMouseEnterRef.current = true;\n commitShownLocalState(false, 'click');\n });\n\n const handleMouseEnterOnBoth = useStableCallback((event: React.MouseEvent<HTMLElement>) => {\n if (willBeHide && event.currentTarget === refs.floating.current) {\n return;\n }\n\n showWithDelay.cancel();\n hideWithDelay.cancel();\n\n if (!blockMouseEnterRef.current && !shownLocalState.shown) {\n showWithDelay();\n }\n });\n\n const handleMouseLeaveOnBothForHoverAndFocusStates = useStableCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (willBeHide && event.currentTarget === refs.floating.current) {\n return;\n }\n\n blockFocusRef.current = false;\n blockMouseEnterRef.current = false;\n\n if (triggerOnHover) {\n showWithDelay.cancel();\n hideWithDelay.cancel();\n\n hideWithDelay();\n }\n },\n );\n\n const handleFloatingAnimationStart = () => {\n hasCSSAnimation.current = true;\n };\n\n const handleFloatingAnimationEnd = () => {\n if (willBeHide) {\n setShownFinalState(false);\n setWillBeHide(false);\n onShownChanged(false, shownLocalState.reason);\n }\n };\n\n const handleOnClose = React.useCallback(() => {\n blockFocusRef.current = true;\n commitShownLocalState(false, 'callback');\n }, [commitShownLocalState]);\n\n const handleRestoreFocus: UseFloatingWithInteractionsReturn['onRestoreFocus'] = React.useCallback(\n (restoreFocus = true) => {\n if (!restoreFocus) {\n return false;\n }\n if (restoreFocus === true) {\n return triggerOnFocus ? blockFocusRef.current : true;\n } else if (restoreFocus === 'anchor-element') {\n return refs.reference.current as HTMLElement;\n } else if (restoreFocus instanceof HTMLElement) {\n return restoreFocus;\n }\n return false;\n },\n [refs.reference, triggerOnFocus],\n );\n\n const handleEscapeKeyDown = React.useCallback(() => {\n blockFocusRef.current = true;\n commitShownLocalState(false, 'escape-key');\n }, [commitShownLocalState]);\n\n const handleClickOutside = React.useCallback(() => {\n blockFocusRef.current = true;\n commitShownLocalState(false, 'click-outside');\n }, [commitShownLocalState]);\n\n useGlobalOnClickOutside(\n handleClickOutside,\n handleCloseOnReferenceClickOutsideDisabled ? null : refs.reference,\n handleCloseOnFloatingClickOutsideDisabled ? null : refs.floating,\n );\n\n useIsomorphicLayoutEffect(\n /**\n * Если пользователь покинул активное окно и:\n * 1. целевой элемент был в состоянии фокуса;\n * 2. всплывающий элемент был закрытом состоянии;\n * то фокус должен быть заблокирован, когда пользователь вернётся обратно. Иначе покажется\n * всплывающий элемент.\n */\n function setGlobalBlurForTriggerOnFocus() {\n if (!triggerOnFocus || !refs.reference.current) {\n return;\n }\n\n const handleGlobalBlur = () => {\n /* istanbul ignore next */\n const reference = refs.reference.current;\n /* istanbul ignore if: не умеем симулировать уход из текущего окна */\n if (\n !shownLocalState.shown &&\n isHTMLElement(reference) &&\n reference === getActiveElementByAnotherElement(reference)\n ) {\n /* istanbul ignore next */\n blockFocusRef.current = true;\n }\n };\n\n const win = getWindow(refs.reference.current);\n win.addEventListener('blur', handleGlobalBlur);\n return () => {\n win.removeEventListener('blur', handleGlobalBlur);\n };\n },\n [triggerOnFocus, refs.reference, shownLocalState],\n );\n\n useIsomorphicLayoutEffect(\n function resolveShownStates() {\n if (willBeHide || shownLocalState.shown === shownFinalState) {\n return;\n }\n\n if (shownLocalState.shown) {\n setShownFinalState(true);\n onShownChanged(true, shownLocalState.reason);\n } else if (hasCSSAnimation.current && !willBeHide) {\n setWillBeHide(true);\n } else {\n setShownFinalState(false);\n }\n\n return () => {\n clearTimeout(blurTimeoutRef.current);\n };\n },\n [shownLocalState, shownFinalState, willBeHide, onShownChanged],\n );\n\n const referenceProps: ReferenceProps = {};\n const floatingProps: FloatingProps = { style: {} };\n\n if (shownFinalState) {\n floatingProps.style = convertFloatingDataToReactCSSProperties({\n strategy,\n x,\n y,\n middlewareData,\n });\n\n if (disableInteractive) {\n floatingProps.style.pointerEvents = 'none';\n }\n }\n\n if (triggerOnFocus) {\n referenceProps.onFocus = handleFocusOnReference;\n referenceProps.onBlur = handleBlurOnReference;\n }\n\n if (triggerOnClick) {\n referenceProps.onClick = handleClickOnReference;\n }\n\n if (triggerOnHover) {\n referenceProps.onMouseOver = handleMouseEnterOnBoth;\n\n if (closeAfterClick && !triggerOnClick) {\n referenceProps.onClick = handleClickOnReferenceForOnlyClose;\n }\n\n if (!disableInteractive) {\n floatingProps.onMouseOver = handleMouseEnterOnBoth;\n }\n }\n\n if (triggerOnHover || triggerOnFocus) {\n referenceProps.onMouseLeave = handleMouseLeaveOnBothForHoverAndFocusStates;\n\n if (!disableInteractive) {\n floatingProps.onMouseLeave = handleMouseLeaveOnBothForHoverAndFocusStates;\n }\n }\n\n if (shownFinalState) {\n floatingProps.onAnimationStart = handleFloatingAnimationStart;\n floatingProps.onAnimationEnd = handleFloatingAnimationEnd;\n }\n\n return {\n placement,\n shown: shownFinalState,\n willBeHide,\n refs,\n referenceProps,\n floatingProps,\n middlewareData,\n onClose: handleOnClose,\n // FocusTrap уже определяет нажатие на ESC, поэтому название события содержит конкретный код\n // кнопки вместо просто onKeyDown.\n onEscapeKeyDown: !shownFinalState || disableCloseOnEscKey ? undefined : handleEscapeKeyDown,\n // [Обход баги с FocusTrap]\n //\n // Если сфокусироваться на целевой элемент через нажатие, а потом нажать в область за пределами\n // целевого и всплывающего элемента, то появляется моргание из-за того, что FocusTrap\n // восстанавливает фокус, из-за чего всплывающий элемент снова показывается за счёт\n // `handleFocusOnReference`, а потом скрывается за счёт `handleBlurOnReference`.\n onRestoreFocus: handleRestoreFocus,\n };\n};\n"],"names":["React","debounce","noop","getWindow","isHTMLElement","useCustomEnsuredControl","useGlobalOnClickOutside","useStableCallback","contains","getActiveElementByAnotherElement","useIsomorphicLayoutEffect","LockFloatingPositionContext","autoUpdateFloatingElement","useFloating","convertFloatingDataToReactCSSProperties","DEFAULT_TRIGGER","useResolveTriggerType","whileElementsMounted","args","elementResize","useFloatingWithInteractions","trigger","placement","placementProp","strategy","strategyProp","middlewares","hoverDelay","closeAfterClick","disabled","disableInteractive","disableCloseOnClickOutside","disableCloseOnEscKey","defaultShown","shown","shownProp","onShownChange","onShownChangeProp","onShownChanged","onShownChangedProp","memoizedValue","useMemo","undefined","shownLocalState","setShownLocalState","value","defaultValue","onChange","reason","shownFinalState","setShownFinalState","useState","willBeHide","setWillBeHide","hasCSSAnimation","useRef","blockMouseEnterRef","blockFocusRef","blurTimeoutRef","handleCloseOnReferenceClickOutsideDisabled","handleCloseOnFloatingClickOutsideDisabled","triggerOnFocus","triggerOnClick","triggerOnHover","isLock","useContext","x","y","refs","middlewareData","middleware","commitShownLocalState","useCallback","nextShown","prevState","mouseEnterDelay","mouseLeaveDelay","showWithDelay","hideWithDelay","handleFocusOnReference","current","handleBlurOnReference","event","clearTimeout","relatedTarget","setTimeout","waitWindowBlurFire","reference","floating","handleClickOnReference","handleClickOnReferenceForOnlyClose","handleMouseEnterOnBoth","currentTarget","cancel","handleMouseLeaveOnBothForHoverAndFocusStates","handleFloatingAnimationStart","handleFloatingAnimationEnd","handleOnClose","handleRestoreFocus","restoreFocus","HTMLElement","handleEscapeKeyDown","handleClickOutside","setGlobalBlurForTriggerOnFocus","handleGlobalBlur","win","addEventListener","removeEventListener","resolveShownStates","referenceProps","floatingProps","style","pointerEvents","onFocus","onBlur","onClick","onMouseOver","onMouseLeave","onAnimationStart","onAnimationEnd","onClose","onEscapeKeyDown","onRestoreFocus"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/getNavId.ts"],"sourcesContent":["import type { WarnOnceHandler } from './warnOnce';\n\nexport interface NavIdProps {\n /** Уникальный идентификатор навигационного элемента (вместо id) */\n nav?: string;\n id?: string;\n}\n\nexport function getNavId(props: NavIdProps, warn?: WarnOnceHandler): string | undefined {\n const id = props.nav || props.id;\n if (process.env.NODE_ENV === 'development' && !id && warn) {\n warn('Навигационный элемент должен иметь свойство \"nav\" или \"id\"', 'error');\n }\n return id;\n}\n"],"names":["getNavId","props","warn","id","nav","process","env","NODE_ENV"],"mappings":"AAQA,OAAO,SAASA,SAASC,KAAiB,EAAEC,IAAsB;IAChE,MAAMC,KAAKF,MAAMG,GAAG,IAAIH,MAAME,EAAE;IAChC,IAAIE,QAAQC,GAAG,CAACC,QAAQ,KAAK,iBAAiB,CAACJ,MAAMD,MAAM;QACzDA,KAAK,8DAA8D;IACrE;IACA,OAAOC;AACT"}
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/getNavId.ts"],"sourcesContent":["import type { WarnOnceHandler } from './warnOnce';\n\nexport interface NavIdProps {\n /** Уникальный идентификатор навигационного элемента (вместо id) */\n nav?: string | undefined;\n id?: string | undefined;\n}\n\nexport function getNavId(props: NavIdProps, warn?: WarnOnceHandler): string | undefined {\n const id = props.nav || props.id;\n if (process.env.NODE_ENV === 'development' && !id && warn) {\n warn('Навигационный элемент должен иметь свойство \"nav\" или \"id\"', 'error');\n }\n return id;\n}\n"],"names":["getNavId","props","warn","id","nav","process","env","NODE_ENV"],"mappings":"AAQA,OAAO,SAASA,SAASC,KAAiB,EAAEC,IAAsB;IAChE,MAAMC,KAAKF,MAAMG,GAAG,IAAIH,MAAME,EAAE;IAChC,IAAIE,QAAQC,GAAG,CAACC,QAAQ,KAAK,iBAAiB,CAACJ,MAAMD,MAAM;QACzDA,KAAK,8DAA8D;IACrE;IACA,OAAOC;AACT"}
|