@vkontakte/vkui 7.1.2 → 7.2.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 +2 -2
- package/dist/components/Accordion/Accordion.d.ts.map +1 -1
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.d.ts +1 -1
- package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js +1 -1
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownMenu.d.ts +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownMenu.d.ts.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownMenu.js +10 -4
- package/dist/components/ActionSheet/ActionSheetDropdownMenu.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownSheet.d.ts +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownSheet.d.ts.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownSheet.js +10 -4
- package/dist/components/ActionSheet/ActionSheetDropdownSheet.js.map +1 -1
- package/dist/components/ActionSheet/types.d.ts +4 -0
- 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.map +1 -1
- package/dist/components/ActionSheetItem/helpers.d.ts.map +1 -1
- package/dist/components/ActionSheetItem/subcomponents/Radio/Radio.d.ts.map +1 -1
- package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts.map +1 -1
- package/dist/components/Alert/Alert.d.ts +14 -2
- package/dist/components/Alert/Alert.d.ts.map +1 -1
- package/dist/components/Alert/Alert.js +15 -104
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/Alert/AlertAction.d.ts.map +1 -1
- package/dist/components/Alert/AlertActions.d.ts.map +1 -1
- package/dist/components/Alert/AlertBase.d.ts +7 -0
- package/dist/components/Alert/AlertBase.d.ts.map +1 -0
- package/dist/components/Alert/AlertBase.js +131 -0
- package/dist/components/Alert/AlertBase.js.map +1 -0
- package/dist/components/Alert/AlertTypography.d.ts +2 -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.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js +1 -1
- package/dist/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js.map +1 -1
- package/dist/components/AppRoot/ScrollContext.d.ts +1 -0
- package/dist/components/AppRoot/ScrollContext.d.ts.map +1 -1
- package/dist/components/AppRoot/ScrollContext.js +127 -39
- package/dist/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/components/AppRoot/helpers.d.ts.map +1 -1
- package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts.map +1 -1
- package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +4 -1
- package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/components/Avatar/AvatarBadge/icons.d.ts.map +1 -1
- package/dist/components/Badge/Badge.d.ts.map +1 -1
- package/dist/components/Banner/Banner.d.ts.map +1 -1
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.d.ts +4 -1
- package/dist/components/ButtonGroup/ButtonGroup.d.ts.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.js +1 -0
- package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +7 -2
- package/dist/components/Calendar/Calendar.d.ts.map +1 -1
- package/dist/components/Calendar/Calendar.js +98 -92
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.js +1 -3
- package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.js +1 -3
- package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts +3 -2
- package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +102 -108
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
- package/dist/components/Card/Card.d.ts.map +1 -1
- package/dist/components/CardGrid/CardGrid.d.ts.map +1 -1
- package/dist/components/CardScroll/CardScroll.d.ts +5 -1
- package/dist/components/CardScroll/CardScroll.d.ts.map +1 -1
- package/dist/components/CardScroll/CardScroll.js +32 -29
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/CarouselBase/CarouselBase.d.ts.map +1 -1
- package/dist/components/CarouselBase/CarouselBase.js +72 -50
- package/dist/components/CarouselBase/CarouselBase.js.map +1 -1
- package/dist/components/CarouselBase/ScrollArrows.d.ts.map +1 -1
- package/dist/components/CarouselBase/helpers.d.ts +20 -5
- package/dist/components/CarouselBase/helpers.d.ts.map +1 -1
- package/dist/components/CarouselBase/helpers.js +70 -44
- package/dist/components/CarouselBase/helpers.js.map +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts.map +1 -1
- package/dist/components/Cell/CellDragger/CellDragger.d.ts.map +1 -1
- package/dist/components/CellButton/CellButton.d.ts.map +1 -1
- package/dist/components/CellButtonGroup/CellButtonGroup.d.ts +300 -0
- package/dist/components/CellButtonGroup/CellButtonGroup.d.ts.map +1 -0
- package/dist/components/CellButtonGroup/CellButtonGroup.js +20 -0
- package/dist/components/CellButtonGroup/CellButtonGroup.js.map +1 -0
- package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.d.ts +8 -0
- package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.d.ts.map +1 -0
- package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js +20 -0
- package/dist/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js.map +1 -0
- package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
- package/dist/components/ChipsInput/useChipsInput.d.ts.map +1 -1
- package/dist/components/ChipsInputBase/Chip/Chip.d.ts.map +1 -1
- package/dist/components/ChipsInputBase/ChipsInputBase.d.ts.map +1 -1
- package/dist/components/ChipsInputBase/helpers.d.ts.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js +3 -1
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/ChipsSelect/constants.d.ts.map +1 -1
- package/dist/components/ChipsSelect/useChipsSelect.d.ts +3 -2
- package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
- package/dist/components/ChipsSelect/useChipsSelect.js +9 -3
- 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 +28 -28
- package/dist/components/Clickable/Clickable.js.map +1 -1
- package/dist/components/Clickable/RealClickable.d.ts.map +1 -1
- package/dist/components/ColorSchemeProvider/ColorSchemeProvider.d.ts.map +1 -1
- package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js +1 -1
- package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js +5 -2
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +11 -1
- package/dist/components/ConfigProvider/ConfigProviderContext.d.ts.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderContext.js +12 -7
- package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.d.ts +6 -1
- package/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
- package/dist/components/ContentCard/ContentCard.js +6 -4
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/Counter/Counter.d.ts.map +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +105 -69
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelectClearButton.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.d.ts.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts +11 -2
- package/dist/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/components/DateInput/DateInput.js +108 -82
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateInput/hooks.d.ts +15 -0
- package/dist/components/DateInput/hooks.d.ts.map +1 -0
- package/dist/components/DateInput/hooks.js +54 -0
- package/dist/components/DateInput/hooks.js.map +1 -0
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +2 -2
- package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +100 -82
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/DirectionProvider/DirectionProvider.d.ts +13 -0
- package/dist/components/DirectionProvider/DirectionProvider.d.ts.map +1 -0
- package/dist/components/DirectionProvider/DirectionProvider.js +15 -0
- package/dist/components/DirectionProvider/DirectionProvider.js.map +1 -0
- package/dist/components/Div/Div.d.ts.map +1 -1
- package/dist/components/DropdownIcon/DropdownIcon.d.ts.map +1 -1
- package/dist/components/Epic/Epic.d.ts.map +1 -1
- package/dist/components/Epic/ScrollSaver.d.ts.map +1 -1
- package/dist/components/File/File.d.ts.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.d.ts.map +1 -1
- package/dist/components/Flex/Flex.d.ts.map +1 -1
- package/dist/components/Flex/Flex.js +3 -5
- package/dist/components/Flex/Flex.js.map +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
- package/dist/components/FloatingArrow/DefaultIcon.d.ts.map +1 -1
- package/dist/components/FloatingArrow/FloatingArrow.d.ts.map +1 -1
- package/dist/components/FocusTrap/FocusTrap.d.ts.map +1 -1
- package/dist/components/Footer/Footer.d.ts.map +1 -1
- package/dist/components/FormField/FormField.d.ts.map +1 -1
- package/dist/components/FormFieldClearButton/FormFieldClearButton.d.ts.map +1 -1
- package/dist/components/FormItem/FormItem.d.ts.map +1 -1
- package/dist/components/FormItem/FormItem.js +1 -0
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
- package/dist/components/FormStatus/FormStatus.d.ts.map +1 -1
- package/dist/components/Gallery/Gallery.d.ts.map +1 -1
- package/dist/components/Gradient/Gradient.d.ts.map +1 -1
- package/dist/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.d.ts.map +1 -1
- package/dist/components/Header/Header.d.ts.map +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.d.ts.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +13 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js +46 -39
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/IconButton/IconButton.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBase.d.ts +5 -0
- package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBase.js +6 -4
- package/dist/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseFloatElement/helpers.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +3 -4
- package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts +1 -0
- package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBaseOverlay/hooks.js +25 -0
- package/dist/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts +4 -0
- package/dist/components/ImageBase/ImageBaseOverlay/types.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
- package/dist/components/InfoRow/InfoRow.d.ts.map +1 -1
- package/dist/components/Input/Input.d.ts.map +1 -1
- package/dist/components/InputLike/InputLikeDivider.d.ts.map +1 -1
- package/dist/components/Link/Link.d.ts.map +1 -1
- package/dist/components/List/List.d.ts.map +1 -1
- package/dist/components/Mark/Mark.d.ts.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.d.ts.map +1 -1
- package/dist/components/ModalCard/ModalCard.d.ts.map +1 -1
- package/dist/components/ModalCard/ModalCard.js +2 -1
- package/dist/components/ModalCard/ModalCard.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 +6 -3
- package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
- package/dist/components/ModalCard/types.d.ts +8 -1
- 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 +9 -1
- package/dist/components/ModalCardBase/ModalCardBase.d.ts.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +33 -8
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +5 -3
- package/dist/components/ModalDismissButton/ModalDismissButton.d.ts.map +1 -1
- package/dist/components/ModalDismissButton/ModalDismissButton.js +7 -7
- package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -1
- package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts +17 -0
- package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts.map +1 -0
- package/dist/components/ModalOutsideButton/ModalOutsideButton.js +30 -0
- package/dist/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -0
- package/dist/components/ModalOutsideButtons/ModalOutsideButtons.d.ts +6 -0
- package/dist/components/ModalOutsideButtons/ModalOutsideButtons.d.ts.map +1 -0
- package/dist/components/ModalOutsideButtons/ModalOutsideButtons.js +22 -0
- package/dist/components/ModalOutsideButtons/ModalOutsideButtons.js.map +1 -0
- package/dist/components/ModalOverlay/ModalOverlay.d.ts.map +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts.map +1 -1
- package/dist/components/ModalPage/ModalPageBase.d.ts +8 -0
- package/dist/components/ModalPage/ModalPageBase.d.ts.map +1 -0
- package/dist/components/ModalPage/ModalPageBase.js +66 -0
- package/dist/components/ModalPage/ModalPageBase.js.map +1 -0
- package/dist/components/ModalPage/ModalPageInternal.d.ts +1 -1
- package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
- package/dist/components/ModalPage/ModalPageInternal.js +27 -34
- package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
- package/dist/components/ModalPage/types.d.ts +19 -1
- package/dist/components/ModalPage/types.d.ts.map +1 -1
- package/dist/components/ModalPage/types.js.map +1 -1
- package/dist/components/ModalPageContent/ModalPageContent.d.ts.map +1 -1
- package/dist/components/ModalPageFooter/ModalPageFooter.d.ts.map +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
- package/dist/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.d.ts.map +1 -1
- package/dist/components/ModalRoot/useModalManager.d.ts.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
- package/dist/components/NavTransitionContext/NavTransitionContext.d.ts.map +1 -1
- package/dist/components/NavTransitionDirectionContext/NavTransitionDirectionContext.d.ts.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +8 -3
- package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js +52 -19
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.d.ts.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js +12 -3
- package/dist/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltipContext.d.ts +7 -0
- package/dist/components/OnboardingTooltip/OnboardingTooltipContext.d.ts.map +1 -0
- package/dist/components/OnboardingTooltip/OnboardingTooltipContext.js +9 -0
- package/dist/components/OnboardingTooltip/OnboardingTooltipContext.js.map +1 -0
- package/dist/components/Pagination/Pagination.d.ts +6 -0
- package/dist/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/components/Pagination/Pagination.js +10 -5
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts.map +1 -1
- package/dist/components/Pagination/PaginationPage/PaginationPageButton.d.ts.map +1 -1
- package/dist/components/Pagination/PaginationPage/PaginationPageButton.js +4 -4
- package/dist/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -1
- package/dist/components/Pagination/PaginationPage/PaginationPageEllipsis.d.ts.map +1 -1
- package/dist/components/Pagination/PaginationPage/usePaginationPageClasses.d.ts.map +1 -1
- package/dist/components/Panel/Panel.d.ts.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.d.ts.map +1 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts.map +1 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.js +3 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
- package/dist/components/PanelHeaderClose/PanelHeaderClose.d.ts.map +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts.map +1 -1
- package/dist/components/PanelHeaderContext/PanelHeaderContext.d.ts.map +1 -1
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts.map +1 -1
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts.map +1 -1
- package/dist/components/Placeholder/Placeholder.d.ts.map +1 -1
- package/dist/components/PlatformProvider/PlatformProvider.js +1 -1
- package/dist/components/PlatformProvider/PlatformProvider.js.map +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +15 -2
- package/dist/components/PopoutWrapper/PopoutWrapper.d.ts.map +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.js +10 -2
- package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/components/Popover/Popover.d.ts +1 -1
- package/dist/components/Popover/Popover.d.ts.map +1 -1
- package/dist/components/Popover/Popover.js +4 -4
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popover/usePopover.d.ts +1 -1
- package/dist/components/Popover/usePopover.d.ts.map +1 -1
- package/dist/components/Popover/usePopover.js +69 -44
- package/dist/components/Popover/usePopover.js.map +1 -1
- package/dist/components/Popper/Popper.d.ts +2 -2
- package/dist/components/Popper/Popper.d.ts.map +1 -1
- package/dist/components/Popper/Popper.js +18 -5
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/Progress/Progress.d.ts +7 -3
- package/dist/components/Progress/Progress.d.ts.map +1 -1
- package/dist/components/Progress/Progress.js +30 -11
- package/dist/components/Progress/Progress.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
- package/dist/components/PullToRefresh/PullToRefreshSpinner.d.ts.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
- package/dist/components/Removable/Removable.d.ts +5 -1
- package/dist/components/Removable/Removable.d.ts.map +1 -1
- package/dist/components/Removable/Removable.js +12 -7
- package/dist/components/Removable/Removable.js.map +1 -1
- package/dist/components/RichCell/RichCellIcon/RichCellIcon.d.ts.map +1 -1
- package/dist/components/Root/Root.d.ts.map +1 -1
- package/dist/components/RootComponent/RootComponent.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/Icon48CancelCircle.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/Icon48DoneOutline.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinner.js +1 -0
- package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/components/ScrollArrow/ScrollArrow.d.ts.map +1 -1
- package/dist/components/ScrollArrow/ScrollArrow.js +4 -1
- package/dist/components/ScrollArrow/ScrollArrow.js.map +1 -1
- package/dist/components/Search/Search.d.ts +9 -1
- package/dist/components/Search/Search.d.ts.map +1 -1
- package/dist/components/Search/Search.js +9 -2
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js +10 -7
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.d.ts.map +1 -1
- package/dist/components/SelectTypography/SelectTypography.d.ts.map +1 -1
- package/dist/components/Separator/Separator.d.ts.map +1 -1
- package/dist/components/SimpleCell/Chevron/Chevron.d.ts.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
- package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/components/Slider/Slider.d.ts +1 -1
- package/dist/components/Slider/Slider.d.ts.map +1 -1
- package/dist/components/Slider/Slider.js +22 -18
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/Slider/SliderThumb/SliderThumb.d.ts.map +1 -1
- package/dist/components/Slider/SliderThumb/SliderThumb.js +5 -1
- package/dist/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
- package/dist/components/Slider/helpers.d.ts.map +1 -1
- package/dist/components/Snackbar/Snackbar.d.ts.map +1 -1
- package/dist/components/Snackbar/Snackbar.js +6 -3
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/Snackbar/utils.d.ts +3 -2
- package/dist/components/Snackbar/utils.d.ts.map +1 -1
- package/dist/components/Snackbar/utils.js +11 -8
- package/dist/components/Snackbar/utils.js.map +1 -1
- package/dist/components/Spacing/Spacing.d.ts.map +1 -1
- package/dist/components/SplitCol/SplitCol.d.ts.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
- package/dist/components/SubnavigationBar/SubnavigationBar.d.ts.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.d.ts.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/Switch/Switch.d.ts.map +1 -1
- package/dist/components/Switch/Switch.js +4 -1
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Tabbar/Tabbar.d.ts.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.d.ts +1 -1
- package/dist/components/TabbarItem/TabbarItem.d.ts.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.js +16 -4
- package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.js +3 -1
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
- package/dist/components/Tappable/Ripple.d.ts.map +1 -1
- package/dist/components/Tappable/Tappable.d.ts.map +1 -1
- package/dist/components/Textarea/Textarea.d.ts.map +1 -1
- package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +2 -2
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +8 -101
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Tooltip/useTooltip.d.ts +14 -0
- package/dist/components/Tooltip/useTooltip.d.ts.map +1 -0
- package/dist/components/Tooltip/useTooltip.js +126 -0
- package/dist/components/Tooltip/useTooltip.js.map +1 -0
- package/dist/components/TooltipBase/TooltipBase.d.ts +6 -1
- package/dist/components/TooltipBase/TooltipBase.d.ts.map +1 -1
- package/dist/components/TooltipBase/TooltipBase.js +3 -1
- package/dist/components/TooltipBase/TooltipBase.js.map +1 -1
- package/dist/components/Touch/Touch.d.ts.map +1 -1
- package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
- package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
- package/dist/components/Typography/EllipsisText/EllipsisText.d.ts.map +1 -1
- package/dist/components/Typography/Footnote/Footnote.d.ts.map +1 -1
- package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
- package/dist/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
- package/dist/components/Typography/Subhead/Subhead.d.ts.map +1 -1
- package/dist/components/Typography/Text/Text.d.ts.map +1 -1
- package/dist/components/Typography/Title/Title.d.ts.map +1 -1
- package/dist/components/Typography/Typography.d.ts.map +1 -1
- package/dist/components/UnstyledTextField/UnstyledTextField.d.ts.map +1 -1
- package/dist/components/UsersStack/UsersStack.d.ts +1 -1
- package/dist/components/UsersStack/UsersStack.d.ts.map +1 -1
- package/dist/components/UsersStack/UsersStack.js +5 -9
- package/dist/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/components/View/View.d.ts.map +1 -1
- package/dist/components/View/utils.d.ts.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
- package/dist/components/WriteBar/WriteBar.d.ts.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.d.ts.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/context/CalendarDirectionContext.d.ts +1 -1
- package/dist/context/CalendarDirectionContext.d.ts.map +1 -1
- package/dist/context/CalendarDirectionContext.js.map +1 -1
- package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
- package/dist/cssm/components/Accordion/Accordion.module.css +6 -6
- package/dist/cssm/components/ActionSheet/ActionSheet.js +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.module.css +9 -9
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownMenu.js +7 -3
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownMenu.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownSheet.js +7 -3
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheet/types.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +18 -18
- package/dist/cssm/components/Alert/Alert.js +12 -92
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.module.css +27 -29
- package/dist/cssm/components/Alert/AlertBase.js +111 -0
- package/dist/cssm/components/Alert/AlertBase.js.map +1 -0
- package/dist/cssm/components/Alert/AlertTypography.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.module.css +2 -2
- package/dist/cssm/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js +1 -1
- package/dist/cssm/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js.map +1 -1
- package/dist/cssm/components/AppRoot/ScrollContext.js +129 -37
- package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.module.css +2 -2
- package/dist/cssm/components/Avatar/Avatar.module.css +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.module.css +8 -3
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +4 -1
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.module.css +19 -19
- package/dist/cssm/components/Button/Button.module.css +11 -11
- package/dist/cssm/components/ButtonGroup/ButtonGroup.js +1 -0
- package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/cssm/components/Calendar/Calendar.js +96 -92
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/Calendar/Calendar.module.css +8 -8
- package/dist/cssm/components/CalendarDay/CalendarDay.js +1 -3
- package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.module.css +11 -11
- package/dist/cssm/components/CalendarDays/CalendarDays.module.css +7 -7
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js +1 -3
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.module.css +4 -4
- package/dist/cssm/components/CalendarRange/CalendarRange.js +103 -110
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.module.css +5 -5
- package/dist/cssm/components/CalendarTime/CalendarTime.module.css +1 -1
- package/dist/cssm/components/Card/Card.module.css +7 -7
- package/dist/cssm/components/CardGrid/CardGrid.module.css +3 -3
- package/dist/cssm/components/CardScroll/CardScroll.js +30 -28
- package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.module.css +16 -16
- package/dist/cssm/components/CarouselBase/CarouselBase.js +72 -48
- package/dist/cssm/components/CarouselBase/CarouselBase.js.map +1 -1
- package/dist/cssm/components/CarouselBase/CarouselBase.module.css +11 -11
- package/dist/cssm/components/CarouselBase/helpers.js +70 -44
- package/dist/cssm/components/CarouselBase/helpers.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.module.css +18 -2
- package/dist/cssm/components/Cell/CellDragger/CellDragger.module.css +2 -2
- package/dist/cssm/components/CellButton/CellButton.module.css +8 -8
- package/dist/cssm/components/CellButtonGroup/CellButtonGroup.js +20 -0
- package/dist/cssm/components/CellButtonGroup/CellButtonGroup.js.map +1 -0
- package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js +15 -0
- package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.js.map +1 -0
- package/dist/cssm/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.module.css +5 -0
- package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +2 -2
- package/dist/cssm/components/ChipsInputBase/Chip/Chip.module.css +16 -16
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +12 -12
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.module.css +1 -1
- package/dist/cssm/components/ChipsSelect/useChipsSelect.js +9 -3
- package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
- package/dist/cssm/components/Clickable/Clickable.js +29 -22
- package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
- package/dist/cssm/components/Clickable/Clickable.module.css +1 -1
- package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js +1 -1
- package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js +5 -2
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +12 -7
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cssm/components/ContentBadge/ContentBadge.module.css +7 -7
- package/dist/cssm/components/ContentCard/ContentCard.js +5 -4
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.module.css +6 -6
- package/dist/cssm/components/Counter/Counter.module.css +4 -4
- package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +2 -2
- package/dist/cssm/components/CustomSelect/CustomSelect.js +105 -69
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.module.css +2 -2
- package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +13 -13
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -0
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.module.css +2 -2
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +9 -9
- package/dist/cssm/components/DateInput/DateInput.js +104 -81
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.module.css +40 -6
- package/dist/cssm/components/DateInput/hooks.js +54 -0
- package/dist/cssm/components/DateInput/hooks.js.map +1 -0
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +99 -82
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.module.css +3 -3
- package/dist/cssm/components/DirectionProvider/DirectionProvider.js +15 -0
- package/dist/cssm/components/DirectionProvider/DirectionProvider.js.map +1 -0
- package/dist/cssm/components/DropZone/DropZone.module.css +2 -2
- package/dist/cssm/components/FixedLayout/FixedLayout.module.css +3 -3
- package/dist/cssm/components/Flex/Flex.js +3 -5
- package/dist/cssm/components/Flex/Flex.js.map +1 -1
- package/dist/cssm/components/Flex/Flex.module.css +40 -23
- package/dist/cssm/components/FloatingArrow/FloatingArrow.module.css +1 -1
- package/dist/cssm/components/Footer/Footer.module.css +1 -1
- package/dist/cssm/components/FormField/FormField.module.css +24 -24
- package/dist/cssm/components/FormItem/FormItem.js +1 -0
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.module.css +10 -10
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +5 -5
- package/dist/cssm/components/GridAvatar/GridAvatar.module.css +2 -2
- package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +2 -2
- package/dist/cssm/components/Group/Group.module.css +16 -16
- package/dist/cssm/components/Header/Header.module.css +6 -6
- package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +3 -3
- package/dist/cssm/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.module.css +3 -2
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +45 -36
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.module.css +10 -4
- package/dist/cssm/components/IconButton/IconButton.module.css +17 -11
- package/dist/cssm/components/ImageBase/ImageBase.js +5 -4
- package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.module.css +15 -6
- package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +5 -5
- package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +8 -8
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +3 -4
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +2 -2
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/hooks.js +25 -0
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/types.js.map +1 -1
- package/dist/cssm/components/InfoRow/InfoRow.module.css +3 -3
- package/dist/cssm/components/Input/Input.module.css +5 -5
- package/dist/cssm/components/InputLike/InputLike.module.css +3 -3
- package/dist/cssm/components/Link/Link.module.css +6 -6
- package/dist/cssm/components/Mark/Mark.module.css +2 -2
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +5 -5
- package/dist/cssm/components/ModalCard/ModalCard.js +1 -0
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.module.css +4 -4
- package/dist/cssm/components/ModalCard/ModalCardInternal.js +3 -2
- 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 +30 -7
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +7 -7
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +5 -6
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.module.css +0 -29
- package/dist/cssm/components/ModalOutlet/ModalOutlet.module.css +1 -1
- package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js +24 -0
- package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -0
- package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.module.css +31 -0
- package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.js +16 -0
- package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.js.map +1 -0
- package/dist/cssm/components/ModalOutsideButtons/ModalOutsideButtons.module.css +6 -0
- package/dist/cssm/components/ModalOverlay/ModalOverlay.module.css +2 -2
- package/dist/cssm/components/ModalPage/ModalPage.module.css +15 -16
- package/dist/cssm/components/ModalPage/ModalPageBase.js +49 -0
- package/dist/cssm/components/ModalPage/ModalPageBase.js.map +1 -0
- package/dist/cssm/components/ModalPage/ModalPageInternal.js +22 -33
- 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.module.css +4 -4
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +2 -3
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +40 -13
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.module.css +16 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js +13 -4
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContainer.js.map +1 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContext.js +9 -0
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltipContext.js.map +1 -0
- package/dist/cssm/components/Pagination/Pagination.js +9 -4
- package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.module.css +1 -1
- package/dist/cssm/components/Pagination/PaginationPage/PaginationPage.module.css +9 -9
- package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.js +4 -4
- package/dist/cssm/components/Pagination/PaginationPage/PaginationPageButton.js.map +1 -1
- package/dist/cssm/components/Panel/Panel.module.css +3 -3
- package/dist/cssm/components/PanelHeader/PanelHeader.module.css +30 -30
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +3 -1
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +22 -8
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +10 -10
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.module.css +7 -7
- package/dist/cssm/components/Placeholder/Placeholder.module.css +3 -3
- package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
- package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +9 -2
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.module.css +14 -9
- package/dist/cssm/components/Popover/Popover.js +4 -4
- package/dist/cssm/components/Popover/Popover.js.map +1 -1
- package/dist/cssm/components/Popover/Popover.module.css +1 -1
- package/dist/cssm/components/Popover/usePopover.js +62 -44
- package/dist/cssm/components/Popover/usePopover.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.js +15 -5
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/Progress/Progress.js +29 -9
- package/dist/cssm/components/Progress/Progress.js.map +1 -1
- package/dist/cssm/components/Progress/Progress.module.css +20 -9
- package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +14 -14
- package/dist/cssm/components/Radio/Radio.module.css +1 -1
- package/dist/cssm/components/Radio/RadioInput/RadioInput.module.css +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.module.css +1 -1
- package/dist/cssm/components/Removable/Removable.js +10 -6
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.module.css +22 -6
- package/dist/cssm/components/RichCell/RichCell.module.css +10 -10
- package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.module.css +4 -4
- package/dist/cssm/components/Root/Root.module.css +10 -10
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +1 -0
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +12 -12
- package/dist/cssm/components/ScrollArrow/ScrollArrow.js +4 -1
- package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
- package/dist/cssm/components/ScrollArrow/ScrollArrow.module.css +15 -14
- package/dist/cssm/components/Search/Search.js +7 -2
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/Search/Search.module.css +45 -32
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js +10 -7
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.module.css +16 -7
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +14 -14
- package/dist/cssm/components/Select/Select.module.css +15 -15
- package/dist/cssm/components/SelectionControl/SelectionControl.module.css +2 -2
- package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +5 -5
- package/dist/cssm/components/Separator/Separator.module.css +3 -3
- package/dist/cssm/components/SimpleCell/SimpleCell.module.css +20 -16
- package/dist/cssm/components/SimpleGrid/SimpleGrid.module.css +2 -2
- package/dist/cssm/components/Skeleton/Skeleton.module.css +8 -8
- package/dist/cssm/components/Slider/Slider.js +20 -17
- package/dist/cssm/components/Slider/Slider.js.map +1 -1
- package/dist/cssm/components/Slider/Slider.module.css +25 -4
- package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js +5 -1
- package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
- package/dist/cssm/components/Slider/SliderThumb/SliderThumb.module.css +8 -8
- package/dist/cssm/components/Snackbar/Snackbar.js +6 -3
- package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.module.css +23 -6
- package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.module.css +9 -8
- package/dist/cssm/components/Snackbar/utils.js +11 -8
- package/dist/cssm/components/Snackbar/utils.js.map +1 -1
- package/dist/cssm/components/Spacing/Spacing.module.css +1 -1
- package/dist/cssm/components/Spinner/Spinner.module.css +2 -2
- package/dist/cssm/components/SplitCol/SplitCol.module.css +9 -9
- package/dist/cssm/components/SplitLayout/SplitLayout.module.css +2 -2
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.module.css +4 -4
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.module.css +11 -6
- package/dist/cssm/components/Switch/Switch.js +4 -1
- package/dist/cssm/components/Switch/Switch.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.module.css +25 -17
- package/dist/cssm/components/Tabbar/Tabbar.module.css +5 -5
- package/dist/cssm/components/TabbarItem/TabbarItem.js +13 -3
- package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.module.css +16 -16
- package/dist/cssm/components/Tabs/Tabs.js +3 -1
- package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
- package/dist/cssm/components/Tabs/Tabs.module.css +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.module.css +21 -20
- package/dist/cssm/components/Tappable/Tappable.module.css +6 -6
- package/dist/cssm/components/Textarea/Textarea.module.css +7 -3
- package/dist/cssm/components/ToolButton/ToolButton.module.css +7 -7
- package/dist/cssm/components/Tooltip/Tooltip.js +7 -80
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/Tooltip/useTooltip.js +97 -0
- package/dist/cssm/components/Tooltip/useTooltip.js.map +1 -0
- package/dist/cssm/components/TooltipBase/TooltipBase.js +2 -1
- package/dist/cssm/components/TooltipBase/TooltipBase.js.map +1 -1
- package/dist/cssm/components/TooltipBase/TooltipBase.module.css +10 -9
- package/dist/cssm/components/Typography/Caption/Caption.module.css +96 -96
- package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.module.css +64 -64
- package/dist/cssm/components/Typography/EllipsisText/EllipsisText.module.css +3 -3
- package/dist/cssm/components/Typography/Footnote/Footnote.module.css +32 -32
- package/dist/cssm/components/Typography/Headline/Headline.module.css +20 -20
- package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +16 -16
- package/dist/cssm/components/Typography/Subhead/Subhead.module.css +16 -16
- package/dist/cssm/components/Typography/Text/Text.module.css +16 -16
- package/dist/cssm/components/Typography/Title/Title.module.css +48 -48
- package/dist/cssm/components/Typography/Typography.module.css +1 -1
- package/dist/cssm/components/UnstyledTextField/UnstyledTextField.module.css +5 -5
- package/dist/cssm/components/UsersStack/UsersStack.js +4 -7
- package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.module.css +4 -4
- package/dist/cssm/components/View/View.module.css +8 -8
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +10 -10
- package/dist/cssm/components/WriteBar/WriteBar.module.css +10 -11
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.module.css +9 -9
- package/dist/cssm/context/CalendarDirectionContext.js.map +1 -1
- package/dist/cssm/helpers/getValueByKey.js +17 -0
- package/dist/cssm/helpers/getValueByKey.js.map +1 -0
- package/dist/cssm/hooks/useAutoDetectDirection.js +21 -0
- package/dist/cssm/hooks/useAutoDetectDirection.js.map +1 -0
- package/dist/cssm/hooks/useConfigDirection.js +7 -0
- package/dist/cssm/hooks/useConfigDirection.js.map +1 -0
- package/dist/cssm/hooks/useFloatingElement.js +70 -0
- package/dist/cssm/hooks/useFloatingElement.js.map +1 -0
- package/dist/cssm/hooks/useFocusTrap.js +1 -1
- package/dist/cssm/hooks/useFocusTrap.js.map +1 -1
- package/dist/cssm/hooks/useFocusVisible.js +10 -1
- package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
- package/dist/cssm/hooks/useReferenceElement.js +13 -0
- package/dist/cssm/hooks/useReferenceElement.js.map +1 -0
- package/dist/cssm/hooks/useTabsNavigation.js +3 -3
- package/dist/cssm/hooks/useTabsNavigation.js.map +1 -1
- package/dist/cssm/hooks/useTodayDate.js +4 -4
- package/dist/cssm/hooks/useTodayDate.js.map +1 -1
- package/dist/cssm/index.js +6 -1
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/SSR.js +2 -1
- package/dist/cssm/lib/SSR.js.map +1 -1
- package/dist/cssm/lib/date.js +15 -0
- package/dist/cssm/lib/date.js.map +1 -1
- package/dist/cssm/lib/direction/index.js +3 -0
- package/dist/cssm/lib/direction/index.js.map +1 -0
- package/dist/cssm/lib/floating/adapters.js.map +1 -1
- package/dist/cssm/lib/floating/customResizeObserver.js +2 -5
- package/dist/cssm/lib/floating/customResizeObserver.js.map +1 -1
- package/dist/cssm/lib/floating/functions.js +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 +4 -2
- package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
- package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -1
- package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
- package/dist/cssm/lib/floating/useReferenceHiddenChangeCallback.js +21 -0
- package/dist/cssm/lib/floating/useReferenceHiddenChangeCallback.js.map +1 -0
- package/dist/cssm/lib/object.js +9 -0
- package/dist/cssm/lib/object.js.map +1 -0
- package/dist/cssm/lib/select.js.map +1 -1
- package/dist/cssm/lib/sheet/controllers/BottomSheetController.js +13 -23
- package/dist/cssm/lib/sheet/controllers/BottomSheetController.js.map +1 -1
- package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js +4 -5
- package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js.map +1 -1
- package/dist/cssm/lib/tokens/TokensClassProvider.module.css +1 -1
- package/dist/cssm/styles/common.css +2 -2
- package/dist/cssm/styles/themes.css +22 -5
- package/dist/cssm/types.js.map +1 -1
- package/dist/helpers/getMergedSameEventsByProps.d.ts.map +1 -1
- package/dist/helpers/getValueByKey.d.ts +5 -0
- package/dist/helpers/getValueByKey.d.ts.map +1 -0
- package/dist/helpers/getValueByKey.js +17 -0
- package/dist/helpers/getValueByKey.js.map +1 -0
- package/dist/helpers/math.d.ts.map +1 -1
- package/dist/hooks/useAdaptivityConditionalRender/helpers.d.ts.map +1 -1
- package/dist/hooks/useAutoDetectColorScheme.d.ts.map +1 -1
- package/dist/hooks/useAutoDetectDirection.d.ts +3 -0
- package/dist/hooks/useAutoDetectDirection.d.ts.map +1 -0
- package/dist/hooks/useAutoDetectDirection.js +21 -0
- package/dist/hooks/useAutoDetectDirection.js.map +1 -0
- package/dist/hooks/useBooleanState.d.ts.map +1 -1
- package/dist/hooks/useConfigDirection.d.ts +3 -0
- package/dist/hooks/useConfigDirection.d.ts.map +1 -0
- package/dist/hooks/useConfigDirection.js +7 -0
- package/dist/hooks/useConfigDirection.js.map +1 -0
- package/dist/hooks/useDraggableWithDomApi/autoScroll.d.ts.map +1 -1
- package/dist/hooks/useDraggableWithDomApi/useDraggableWithDomApi.d.ts.map +1 -1
- package/dist/hooks/useDraggableWithDomApi/utils.d.ts.map +1 -1
- package/dist/hooks/useFloatingElement.d.ts +26 -0
- package/dist/hooks/useFloatingElement.d.ts.map +1 -0
- package/dist/hooks/useFloatingElement.js +71 -0
- package/dist/hooks/useFloatingElement.js.map +1 -0
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.js +1 -1
- package/dist/hooks/useFocusTrap.js.map +1 -1
- package/dist/hooks/useFocusVisible.d.ts +9 -1
- package/dist/hooks/useFocusVisible.d.ts.map +1 -1
- package/dist/hooks/useFocusVisible.js +10 -1
- package/dist/hooks/useFocusVisible.js.map +1 -1
- package/dist/hooks/useGlobalEscKeyDown.d.ts.map +1 -1
- package/dist/hooks/useGlobalOnClickOutside.d.ts.map +1 -1
- package/dist/hooks/useMutationObserver.d.ts.map +1 -1
- package/dist/hooks/useNativeFormResetListener.d.ts.map +1 -1
- package/dist/hooks/usePagination.d.ts.map +1 -1
- package/dist/hooks/usePatchChildren.d.ts.map +1 -1
- package/dist/hooks/useReferenceElement.d.ts +3 -0
- package/dist/hooks/useReferenceElement.d.ts.map +1 -0
- package/dist/hooks/useReferenceElement.js +13 -0
- package/dist/hooks/useReferenceElement.js.map +1 -0
- package/dist/hooks/useTabsNavigation.d.ts +1 -1
- package/dist/hooks/useTabsNavigation.d.ts.map +1 -1
- package/dist/hooks/useTabsNavigation.js +3 -3
- package/dist/hooks/useTabsNavigation.js.map +1 -1
- package/dist/hooks/useTodayDate.d.ts.map +1 -1
- package/dist/hooks/useTodayDate.js +4 -4
- package/dist/hooks/useTodayDate.js.map +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/SSR.d.ts +2 -0
- package/dist/lib/SSR.d.ts.map +1 -1
- package/dist/lib/SSR.js +2 -1
- package/dist/lib/SSR.js.map +1 -1
- package/dist/lib/accessibility.d.ts.map +1 -1
- package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts.map +1 -1
- package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
- package/dist/lib/calendar.d.ts.map +1 -1
- package/dist/lib/callMultiple.d.ts.map +1 -1
- package/dist/lib/children.d.ts.map +1 -1
- package/dist/lib/createPortal.d.ts.map +1 -1
- package/dist/lib/date.d.ts +2 -0
- package/dist/lib/date.d.ts.map +1 -1
- package/dist/lib/date.js +15 -0
- package/dist/lib/date.js.map +1 -1
- package/dist/lib/direction/index.d.ts +2 -0
- package/dist/lib/direction/index.d.ts.map +1 -0
- package/dist/lib/direction/index.js +3 -0
- package/dist/lib/direction/index.js.map +1 -0
- package/dist/lib/dom.d.ts.map +1 -1
- package/dist/lib/floating/adapters.d.ts +1 -0
- package/dist/lib/floating/adapters.d.ts.map +1 -1
- package/dist/lib/floating/adapters.js.map +1 -1
- package/dist/lib/floating/customResizeObserver.d.ts +1 -1
- package/dist/lib/floating/customResizeObserver.d.ts.map +1 -1
- package/dist/lib/floating/customResizeObserver.js +2 -5
- package/dist/lib/floating/customResizeObserver.js.map +1 -1
- package/dist/lib/floating/functions.d.ts +8 -1
- package/dist/lib/floating/functions.d.ts.map +1 -1
- package/dist/lib/floating/functions.js +1 -1
- package/dist/lib/floating/functions.js.map +1 -1
- package/dist/lib/floating/types/component.d.ts +10 -0
- 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 +3 -1
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -2
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.d.ts.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +6 -1
- package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/useResolveTriggerType.d.ts.map +1 -1
- package/dist/lib/floating/useReferenceHiddenChangeCallback.d.ts +4 -0
- package/dist/lib/floating/useReferenceHiddenChangeCallback.d.ts.map +1 -0
- package/dist/lib/floating/useReferenceHiddenChangeCallback.js +21 -0
- package/dist/lib/floating/useReferenceHiddenChangeCallback.js.map +1 -0
- package/dist/lib/fx.d.ts.map +1 -1
- package/dist/lib/isRefObject.d.ts.map +1 -1
- package/dist/lib/object.d.ts +2 -0
- package/dist/lib/object.d.ts.map +1 -0
- package/dist/lib/object.js +9 -0
- package/dist/lib/object.js.map +1 -0
- package/dist/lib/rafSchd.d.ts.map +1 -1
- package/dist/lib/react/simulateReactInput.d.ts.map +1 -1
- package/dist/lib/select.d.ts +1 -0
- package/dist/lib/select.d.ts.map +1 -1
- package/dist/lib/select.js.map +1 -1
- package/dist/lib/sheet/controllers/BottomSheetController.d.ts.map +1 -1
- package/dist/lib/sheet/controllers/BottomSheetController.js +13 -23
- package/dist/lib/sheet/controllers/BottomSheetController.js.map +1 -1
- package/dist/lib/sheet/controllers/CSSTransitionController.d.ts.map +1 -1
- package/dist/lib/sheet/controllers/CSSTransitionController.js +4 -5
- package/dist/lib/sheet/controllers/CSSTransitionController.js.map +1 -1
- package/dist/lib/sheet/useBottomSheet.d.ts.map +1 -1
- package/dist/lib/touch/functions.d.ts.map +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +5 -4
- package/src/components/Accordion/Accordion.module.css +6 -6
- package/src/components/Accordion/Accordion.tsx +2 -2
- package/src/components/ActionSheet/ActionSheet.module.css +9 -9
- package/src/components/ActionSheet/ActionSheet.tsx +5 -2
- package/src/components/ActionSheet/ActionSheetDropdownMenu.tsx +11 -3
- package/src/components/ActionSheet/ActionSheetDropdownSheet.tsx +11 -3
- package/src/components/ActionSheet/types.ts +4 -0
- package/src/components/ActionSheetItem/ActionSheetItem.module.css +17 -17
- package/src/components/Alert/Alert.module.css +25 -25
- package/src/components/Alert/Alert.tsx +33 -118
- package/src/components/Alert/AlertBase.tsx +156 -0
- package/src/components/Alert/AlertTypography.tsx +2 -1
- package/src/components/AppRoot/AppRoot.module.css +2 -2
- package/src/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.tsx +1 -1
- package/src/components/AppRoot/ScrollContext.tsx +162 -50
- package/src/components/AspectRatio/AspectRatio.module.css +2 -2
- package/src/components/Avatar/Avatar.module.css +1 -1
- package/src/components/Avatar/AvatarBadge/AvatarBadge.module.css +8 -3
- package/src/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.tsx +4 -1
- package/src/components/Banner/Banner.module.css +17 -17
- package/src/components/Button/Button.module.css +11 -11
- package/src/components/ButtonGroup/ButtonGroup.tsx +2 -0
- package/src/components/Calendar/Calendar.module.css +7 -7
- package/src/components/Calendar/Calendar.tsx +108 -98
- package/src/components/CalendarDay/CalendarDay.module.css +11 -11
- package/src/components/CalendarDay/CalendarDay.tsx +1 -3
- package/src/components/CalendarDays/CalendarDays.module.css +7 -7
- package/src/components/CalendarHeader/CalendarHeader.module.css +4 -4
- package/src/components/CalendarHeader/CalendarHeader.tsx +1 -3
- package/src/components/CalendarRange/CalendarRange.module.css +5 -5
- package/src/components/CalendarRange/CalendarRange.tsx +97 -106
- package/src/components/CalendarTime/CalendarTime.module.css +1 -1
- package/src/components/Card/Card.module.css +7 -7
- package/src/components/CardGrid/CardGrid.module.css +3 -3
- package/src/components/CardScroll/CardScroll.module.css +16 -16
- package/src/components/CardScroll/CardScroll.tsx +49 -29
- package/src/components/CarouselBase/CarouselBase.module.css +11 -11
- package/src/components/CarouselBase/CarouselBase.tsx +108 -50
- package/src/components/CarouselBase/helpers.ts +108 -46
- package/src/components/Cell/Cell.module.css +16 -2
- package/src/components/Cell/CellDragger/CellDragger.module.css +2 -2
- package/src/components/CellButton/CellButton.module.css +7 -7
- package/src/components/CellButtonGroup/CellButtonGroup.tsx +20 -0
- package/src/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.module.css +5 -0
- package/src/components/CellButtonGroup/CellButtonGroupSeparator/CellButtonGroupSeparator.tsx +21 -0
- package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +2 -2
- package/src/components/ChipsInputBase/Chip/Chip.module.css +16 -16
- package/src/components/ChipsInputBase/ChipsInputBase.module.css +10 -10
- package/src/components/ChipsSelect/ChipsSelect.module.css +1 -1
- package/src/components/ChipsSelect/ChipsSelect.tsx +2 -0
- package/src/components/ChipsSelect/useChipsSelect.ts +12 -1
- package/src/components/Clickable/Clickable.module.css +1 -1
- package/src/components/Clickable/Clickable.tsx +37 -25
- package/src/components/ColorSchemeProvider/ColorSchemeProvider.tsx +1 -1
- package/src/components/ConfigProvider/ConfigProvider.tsx +4 -1
- package/src/components/ConfigProvider/ConfigProviderContext.tsx +29 -15
- package/src/components/ContentBadge/ContentBadge.module.css +7 -7
- package/src/components/ContentCard/ContentCard.module.css +6 -6
- package/src/components/ContentCard/ContentCard.tsx +9 -3
- package/src/components/Counter/Counter.module.css +4 -4
- package/src/components/CustomScrollView/CustomScrollView.module.css +2 -2
- package/src/components/CustomSelect/CustomSelect.module.css +2 -2
- package/src/components/CustomSelect/CustomSelect.tsx +151 -93
- package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +12 -12
- package/src/components/CustomSelectDropdown/CustomSelectDropdown.module.css +2 -2
- package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +1 -0
- package/src/components/CustomSelectOption/CustomSelectOption.module.css +8 -8
- package/src/components/DateInput/DateInput.module.css +38 -5
- package/src/components/DateInput/DateInput.tsx +123 -87
- package/src/components/DateInput/hooks.ts +84 -0
- package/src/components/DateRangeInput/DateRangeInput.module.css +3 -3
- package/src/components/DateRangeInput/DateRangeInput.tsx +104 -81
- package/src/components/DirectionProvider/DirectionProvider.tsx +17 -0
- package/src/components/DropZone/DropZone.module.css +2 -2
- package/src/components/FixedLayout/FixedLayout.module.css +3 -3
- package/src/components/Flex/Flex.module.css +26 -14
- package/src/components/Flex/Flex.tsx +3 -6
- package/src/components/FloatingArrow/FloatingArrow.module.css +1 -1
- package/src/components/Footer/Footer.module.css +1 -1
- package/src/components/FormField/FormField.module.css +24 -24
- package/src/components/FormItem/FormItem.module.css +10 -10
- package/src/components/FormItem/FormItem.tsx +1 -0
- package/src/components/FormLayoutGroup/FormLayoutGroup.module.css +5 -5
- package/src/components/GridAvatar/GridAvatar.module.css +2 -2
- package/src/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +2 -2
- package/src/components/Group/Group.module.css +16 -16
- package/src/components/Header/Header.module.css +5 -5
- package/src/components/HorizontalCell/HorizontalCell.module.css +3 -3
- package/src/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.module.css +3 -2
- package/src/components/HorizontalScroll/HorizontalScroll.module.css +10 -4
- package/src/components/HorizontalScroll/HorizontalScroll.tsx +68 -34
- package/src/components/IconButton/IconButton.module.css +14 -9
- package/src/components/ImageBase/ImageBase.module.css +15 -6
- package/src/components/ImageBase/ImageBase.tsx +16 -5
- package/src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +5 -5
- package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +8 -8
- package/src/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +2 -2
- package/src/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.tsx +5 -4
- package/src/components/ImageBase/ImageBaseOverlay/hooks.ts +31 -0
- package/src/components/ImageBase/ImageBaseOverlay/types.ts +4 -0
- package/src/components/InfoRow/InfoRow.module.css +3 -3
- package/src/components/Input/Input.module.css +5 -5
- package/src/components/InputLike/InputLike.module.css +3 -3
- package/src/components/Link/Link.module.css +6 -6
- package/src/components/Mark/Mark.module.css +2 -2
- package/src/components/MiniInfoCell/MiniInfoCell.module.css +5 -5
- package/src/components/ModalCard/ModalCard.module.css +4 -4
- package/src/components/ModalCard/ModalCard.tsx +1 -0
- package/src/components/ModalCard/ModalCardInternal.tsx +7 -1
- package/src/components/ModalCard/types.ts +9 -1
- package/src/components/ModalCardBase/ModalCardBase.module.css +7 -7
- package/src/components/ModalCardBase/ModalCardBase.tsx +50 -10
- package/src/components/ModalDismissButton/ModalDismissButton.module.css +0 -28
- package/src/components/ModalDismissButton/ModalDismissButton.tsx +11 -9
- package/src/components/ModalOutlet/ModalOutlet.module.css +1 -1
- package/src/components/ModalOutsideButton/ModalOutsideButton.module.css +30 -0
- package/src/components/ModalOutsideButton/ModalOutsideButton.tsx +38 -0
- package/src/components/ModalOutsideButtons/ModalOutsideButtons.module.css +6 -0
- package/src/components/ModalOutsideButtons/ModalOutsideButtons.tsx +14 -0
- package/src/components/ModalOverlay/ModalOverlay.module.css +2 -2
- package/src/components/ModalPage/ModalPage.module.css +15 -16
- package/src/components/ModalPage/ModalPageBase.tsx +92 -0
- package/src/components/ModalPage/ModalPageInternal.tsx +25 -43
- package/src/components/ModalPage/types.ts +19 -0
- package/src/components/ModalPageFooter/ModalPageFooter.module.css +4 -4
- package/src/components/ModalPageHeader/ModalPageHeader.module.css +2 -3
- package/src/components/OnboardingTooltip/OnboardingTooltip.module.css +14 -1
- package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +57 -20
- package/src/components/OnboardingTooltip/OnboardingTooltipContainer.tsx +10 -1
- package/src/components/OnboardingTooltip/OnboardingTooltipContext.tsx +11 -0
- package/src/components/Pagination/Pagination.module.css +1 -1
- package/src/components/Pagination/Pagination.tsx +24 -7
- package/src/components/Pagination/PaginationPage/PaginationPage.module.css +8 -8
- package/src/components/Pagination/PaginationPage/PaginationPageButton.tsx +3 -3
- package/src/components/Panel/Panel.module.css +3 -3
- package/src/components/PanelHeader/PanelHeader.module.css +27 -27
- package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +3 -0
- package/src/components/PanelHeaderButton/PanelHeaderButton.module.css +19 -8
- package/src/components/PanelHeaderContent/PanelHeaderContent.module.css +10 -10
- package/src/components/PanelHeaderContext/PanelHeaderContext.module.css +7 -7
- package/src/components/Placeholder/Placeholder.module.css +3 -3
- package/src/components/PlatformProvider/PlatformProvider.tsx +1 -1
- package/src/components/PopoutWrapper/PopoutWrapper.module.css +14 -9
- package/src/components/PopoutWrapper/PopoutWrapper.tsx +25 -2
- package/src/components/Popover/Popover.module.css +1 -1
- package/src/components/Popover/Popover.tsx +6 -4
- package/src/components/Popover/usePopover.tsx +106 -85
- package/src/components/Popper/Popper.tsx +17 -6
- package/src/components/Progress/Progress.module.css +20 -9
- package/src/components/Progress/Progress.tsx +38 -9
- package/src/components/PullToRefresh/PullToRefresh.module.css +14 -14
- package/src/components/Radio/Radio.module.css +1 -1
- package/src/components/Radio/RadioInput/RadioInput.module.css +1 -1
- package/src/components/RadioGroup/RadioGroup.module.css +1 -1
- package/src/components/Removable/Removable.module.css +22 -6
- package/src/components/Removable/Removable.tsx +22 -4
- package/src/components/RichCell/RichCell.module.css +10 -10
- package/src/components/RichCell/RichCellIcon/RichCellIcon.module.css +4 -4
- package/src/components/Root/Root.module.css +10 -10
- package/src/components/ScreenSpinner/ScreenSpinner.module.css +11 -11
- package/src/components/ScreenSpinner/ScreenSpinner.tsx +1 -1
- package/src/components/ScrollArrow/ScrollArrow.module.css +15 -14
- package/src/components/ScrollArrow/ScrollArrow.tsx +10 -1
- package/src/components/Search/Search.module.css +41 -28
- package/src/components/Search/Search.tsx +16 -0
- package/src/components/SegmentedControl/SegmentedControl.module.css +16 -7
- package/src/components/SegmentedControl/SegmentedControl.tsx +11 -13
- package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +11 -11
- package/src/components/Select/Select.module.css +14 -14
- package/src/components/SelectionControl/SelectionControl.module.css +2 -2
- package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +5 -5
- package/src/components/Separator/Separator.module.css +3 -3
- package/src/components/SimpleCell/SimpleCell.module.css +20 -16
- package/src/components/SimpleGrid/SimpleGrid.module.css +2 -2
- package/src/components/Skeleton/Skeleton.module.css +8 -8
- package/src/components/Slider/Slider.module.css +25 -4
- package/src/components/Slider/Slider.tsx +23 -15
- package/src/components/Slider/SliderThumb/SliderThumb.module.css +7 -7
- package/src/components/Slider/SliderThumb/SliderThumb.tsx +5 -5
- package/src/components/Snackbar/Snackbar.module.css +23 -6
- package/src/components/Snackbar/Snackbar.tsx +7 -0
- package/src/components/Snackbar/subcomponents/Basic/Basic.module.css +9 -8
- package/src/components/Snackbar/utils.ts +24 -6
- package/src/components/Spacing/Spacing.module.css +1 -1
- package/src/components/Spinner/Spinner.module.css +2 -2
- package/src/components/SplitCol/SplitCol.module.css +9 -9
- package/src/components/SplitLayout/SplitLayout.module.css +2 -2
- package/src/components/SubnavigationBar/SubnavigationBar.module.css +4 -4
- package/src/components/SubnavigationButton/SubnavigationButton.module.css +10 -5
- package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -0
- package/src/components/Switch/Switch.module.css +25 -17
- package/src/components/Switch/Switch.tsx +4 -0
- package/src/components/Tabbar/Tabbar.module.css +5 -5
- package/src/components/TabbarItem/TabbarItem.module.css +16 -16
- package/src/components/TabbarItem/TabbarItem.tsx +18 -1
- package/src/components/Tabs/Tabs.module.css +1 -1
- package/src/components/Tabs/Tabs.tsx +3 -1
- package/src/components/TabsItem/TabsItem.module.css +21 -20
- package/src/components/Tappable/Tappable.module.css +6 -6
- package/src/components/Textarea/Textarea.module.css +7 -3
- package/src/components/ToolButton/ToolButton.module.css +7 -7
- package/src/components/Tooltip/Tooltip.tsx +9 -142
- package/src/components/Tooltip/useTooltip.tsx +168 -0
- package/src/components/TooltipBase/TooltipBase.module.css +10 -9
- package/src/components/TooltipBase/TooltipBase.tsx +7 -1
- package/src/components/Typography/Caption/Caption.module.css +96 -96
- package/src/components/Typography/DisplayTitle/DisplayTitle.module.css +64 -64
- package/src/components/Typography/EllipsisText/EllipsisText.module.css +3 -3
- package/src/components/Typography/Footnote/Footnote.module.css +32 -32
- package/src/components/Typography/Headline/Headline.module.css +20 -20
- package/src/components/Typography/Paragraph/Paragraph.module.css +16 -16
- package/src/components/Typography/Subhead/Subhead.module.css +16 -16
- package/src/components/Typography/Text/Text.module.css +16 -16
- package/src/components/Typography/Title/Title.module.css +48 -48
- package/src/components/Typography/Typography.module.css +1 -1
- package/src/components/UnstyledTextField/UnstyledTextField.module.css +4 -4
- package/src/components/UsersStack/UsersStack.module.css +4 -4
- package/src/components/UsersStack/UsersStack.tsx +3 -7
- package/src/components/View/View.module.css +8 -8
- package/src/components/VisuallyHidden/VisuallyHidden.module.css +8 -8
- package/src/components/WriteBar/WriteBar.module.css +10 -10
- package/src/components/WriteBarIcon/WriteBarIcon.module.css +9 -9
- package/src/context/CalendarDirectionContext.ts +1 -1
- package/src/helpers/getValueByKey.ts +25 -0
- package/src/hooks/useAutoDetectDirection.ts +18 -0
- package/src/hooks/useConfigDirection.ts +8 -0
- package/src/hooks/useFloatingElement.tsx +172 -0
- package/src/hooks/useFocusTrap.ts +1 -1
- package/src/hooks/useFocusVisible.ts +12 -1
- package/src/hooks/useReferenceElement.tsx +13 -0
- package/src/hooks/useTabsNavigation.ts +5 -3
- package/src/hooks/useTodayDate.ts +34 -31
- package/src/index.ts +9 -2
- package/src/lib/SSR.tsx +11 -2
- package/src/lib/date.ts +23 -0
- package/src/lib/direction/index.ts +1 -0
- package/src/lib/floating/adapters.ts +2 -0
- package/src/lib/floating/customResizeObserver.ts +2 -1
- package/src/lib/floating/functions.ts +15 -7
- package/src/lib/floating/types/component.ts +10 -0
- package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +6 -1
- package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +2 -3
- package/src/lib/floating/useReferenceHiddenChangeCallback.ts +26 -0
- package/src/lib/object.ts +14 -0
- package/src/lib/select.ts +2 -0
- package/src/lib/sheet/controllers/BottomSheetController.ts +4 -1
- package/src/lib/sheet/controllers/CSSTransitionController.ts +7 -4
- package/src/lib/tokens/TokensClassProvider.module.css +1 -1
- package/src/styles/common.css +2 -2
- package/src/types.ts +2 -1
- package/dist/components/ModalCardBase/ModalCardBaseCloseButton.d.ts +0 -10
- package/dist/components/ModalCardBase/ModalCardBaseCloseButton.d.ts.map +0 -1
- package/dist/components/ModalCardBase/ModalCardBaseCloseButton.js +0 -38
- package/dist/components/ModalCardBase/ModalCardBaseCloseButton.js.map +0 -1
- package/dist/components/Pagination/utils.d.ts +0 -2
- package/dist/components/Pagination/utils.d.ts.map +0 -1
- package/dist/components/Pagination/utils.js +0 -5
- package/dist/components/Pagination/utils.js.map +0 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBaseCloseButton.js +0 -39
- package/dist/cssm/components/ModalCardBase/ModalCardBaseCloseButton.js.map +0 -1
- package/dist/cssm/components/Pagination/utils.js +0 -5
- package/dist/cssm/components/Pagination/utils.js.map +0 -1
- package/dist/cssm/hooks/useDirection.js +0 -55
- package/dist/cssm/hooks/useDirection.js.map +0 -1
- package/dist/cssm/lib/tokens/index.js +0 -5
- package/dist/cssm/lib/tokens/index.js.map +0 -1
- package/dist/hooks/useDirection.d.ts +0 -39
- package/dist/hooks/useDirection.d.ts.map +0 -1
- package/dist/hooks/useDirection.js +0 -55
- package/dist/hooks/useDirection.js.map +0 -1
- package/dist/lib/tokens/index.d.ts +0 -5
- package/dist/lib/tokens/index.d.ts.map +0 -1
- package/dist/lib/tokens/index.js +0 -5
- package/dist/lib/tokens/index.js.map +0 -1
- package/src/components/ModalCardBase/ModalCardBaseCloseButton.tsx +0 -51
- package/src/components/Pagination/utils.ts +0 -3
- package/src/hooks/useDirection.ts +0 -63
- package/src/lib/tokens/index.ts +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { type CustomTouchEvent, type CustomTouchEventHandler, Touch } from '../Touch/Touch';\nimport { SliderThumb } from './SliderThumb/SliderThumb';\nimport {\n extractSliderAriaAttributesFromRestProps,\n getDraggingTypeByTargetDataset,\n isMultipleValues,\n offsetToValue,\n snapDirection,\n toPercent,\n updateInternalStateValue,\n updateInternalStateValueByNativeChange,\n} from './helpers';\nimport type { InternalDraggingType, InternalGestureRef, InternalValueState } from './types';\nimport styles from './Slider.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nconst sizeClassNames = {\n l: styles.sizeL,\n m: styles.sizeM,\n s: styles.sizeS,\n};\n\nexport interface SliderBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n /**\n * Тоже самое, что и `aria-label`, но на вход можно получать индекс текущего ползунка и в зависимости от этого выдавать разный текст.\n *\n * > Перебивает `aria-label`.\n */\n getAriaLabel?: (index: number) => string;\n /**\n * В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.\n *\n * Полезно при использовании компонента как неконтролируемого.\n *\n * > Перебивает `aria-valuetext`.\n */\n getAriaValueText?: (value: number, index: number) => string;\n withTooltip?: boolean;\n /**\n * Размер ползунка.\n */\n size?: 's' | 'm' | 'l';\n /**\n * Передает атрибут `data-testid` для первого ползунка\n */\n startThumbTestId?: string;\n /**\n * Передает атрибут `data-testid` для второго ползунка когда `multiple=true`\n */\n endThumbTestId?: string;\n}\n\nexport interface SliderProps extends SliderBaseProps {\n multiple?: false;\n value?: number;\n defaultValue?: number;\n onChange?: (value: number, event: CustomTouchEvent | React.ChangeEvent) => void;\n}\n\nexport interface SliderMultipleProps extends SliderBaseProps {\n multiple: true;\n value?: [number, number];\n defaultValue?: [number, number];\n onChange?: (value: [number, number], event: CustomTouchEvent | React.ChangeEvent) => void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Slider\n */\nexport const Slider = ({\n step = 1,\n min = 0,\n max = 100,\n value: valueProp,\n multiple: multipleProp,\n defaultValue = multipleProp ? [min, max] : min,\n disabled,\n className,\n getRootRef,\n getAriaLabel,\n getAriaValueText,\n startThumbTestId,\n endThumbTestId,\n onChange,\n withTooltip,\n size = 'l',\n ...restProps\n}: SliderProps | SliderMultipleProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n\n const isControlled = valueProp !== undefined;\n const [localValue, setValue] = React.useState(defaultValue);\n\n const value = React.useMemo<InternalValueState>(() => {\n const resolvedValue = isControlled ? valueProp : localValue;\n return Array.isArray(resolvedValue)\n ? [clamp(resolvedValue[0], min, max), clamp(resolvedValue[1], min, max)]\n : [clamp(resolvedValue, min, max), null];\n }, [isControlled, valueProp, localValue, min, max]);\n\n const [startValue, endValue] = value;\n const multiple = multipleProp && endValue !== null;\n const startValueInPercent = toPercent(startValue, min, max);\n const endReversedValueInPercent = multiple ? toPercent(endValue, min, max) : 0;\n const [activeThumb, setActiveThumb] = React.useState<InternalDraggingType | null>(null);\n\n const gesture = React.useRef<InternalGestureRef>({\n dragging: null,\n startX: 0,\n containerWidth: 0,\n }).current;\n const thumbsContainerRef = useExternRef(getRootRef);\n const thumbStartInputRef = React.useRef<HTMLInputElement>(null);\n const thumbEndInputRef = React.useRef<HTMLInputElement>(null);\n\n const { ariaLabel, ariaValueText, ariaLabelledBy, ...restPropsWithoutAriaAttributes } =\n extractSliderAriaAttributesFromRestProps(restProps);\n\n const changeValue = (\n nextValue: InternalValueState,\n event: CustomTouchEvent | React.ChangeEvent,\n ) => {\n if (disabled || (value[0] === nextValue[0] && value[1] === nextValue[1])) {\n return;\n }\n\n if (multipleProp) {\n if (isMultipleValues(nextValue)) {\n !isControlled && setValue(nextValue);\n onChange && onChange(nextValue, event);\n }\n } else {\n !isControlled && setValue(nextValue[0]);\n onChange && onChange(nextValue[0], event);\n }\n };\n\n const handlePointerStart: CustomTouchEventHandler = (event: CustomTouchEvent) => {\n if (!thumbsContainerRef.current) {\n return;\n }\n\n const { left: nextContainerX, width: nextContainerWidth } =\n thumbsContainerRef.current.getBoundingClientRect();\n\n // @ts-expect-error: TS2345 в VKUITouchEvent плохо описаны типы. `target` это просто `EventTarget`.\n const foundDraggingType = getDraggingTypeByTargetDataset(event.originalEvent.target);\n\n const nextStartX = event.startX - nextContainerX;\n const nextValue = offsetToValue(nextStartX, nextContainerWidth, min, max, step);\n const nextDragging = snapDirection(value, nextValue, foundDraggingType);\n\n gesture.dragging = nextDragging;\n gesture.containerWidth = nextContainerWidth;\n gesture.startX = nextStartX;\n\n const updatedInternalStateValue = updateInternalStateValue(\n value,\n nextValue,\n min,\n max,\n nextDragging,\n );\n\n const [nextStartValue, nextEndValue] = updatedInternalStateValue;\n if (\n thumbStartInputRef.current &&\n (foundDraggingType === 'start' ||\n (nextStartValue !== startValue && nextEndValue === endValue))\n ) {\n thumbStartInputRef.current.focus();\n event.originalEvent.preventDefault();\n } else if (\n thumbEndInputRef.current &&\n (foundDraggingType === 'end' || (nextEndValue !== endValue && nextStartValue === startValue))\n ) {\n thumbEndInputRef.current.focus();\n event.originalEvent.preventDefault();\n }\n\n changeValue(updatedInternalStateValue, event);\n\n event.originalEvent.stopPropagation();\n setActiveThumb(gesture.dragging);\n };\n\n const handlePointerMove: CustomTouchEventHandler = (event: CustomTouchEvent) => {\n const { startX, containerWidth, dragging } = gesture;\n\n const { shiftX = 0 } = event;\n const nextStartX = startX + shiftX;\n const nextValue = offsetToValue(nextStartX, containerWidth, min, max, step);\n\n changeValue(updateInternalStateValue(value, nextValue, min, max, dragging), event);\n\n event.originalEvent.stopPropagation();\n event.originalEvent.preventDefault();\n };\n\n const handlePointerEnd: CustomTouchEventHandler = (event) => {\n gesture.dragging = null;\n event.originalEvent.stopPropagation();\n setActiveThumb(null);\n };\n\n const handleChangeByNativeInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n changeValue(\n updateInternalStateValueByNativeChange(\n value,\n Number(event.target.value),\n getDraggingTypeByTargetDataset(event.target),\n ),\n event,\n );\n };\n\n return (\n <Touch\n data-value={multiple ? `${startValue},${endValue}` : startValue}\n {...restPropsWithoutAriaAttributes}\n className={classNames(\n styles.host,\n disabled && styles.disabled,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n sizeClassNames[size],\n className,\n )}\n onStart={disabled ? undefined : handlePointerStart}\n onMove={disabled ? undefined : handlePointerMove}\n onEnd={disabled ? undefined : handlePointerEnd}\n >\n <div className={styles.track} />\n <div\n className={styles.trackFill}\n style={\n multiple\n ? { left: `${startValueInPercent}%`, right: `${100 - endReversedValueInPercent}%` }\n : { width: `${startValueInPercent}%` }\n }\n />\n <div ref={thumbsContainerRef} className={styles.thumbs}>\n <SliderThumb\n data-type=\"start\"\n className={styles.thumb}\n style={{\n left: `${startValueInPercent}%`,\n // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.\n zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined,\n }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'start',\n 'data-testid': startThumbTestId,\n 'ref': thumbStartInputRef,\n 'step': step,\n 'min': min,\n 'value': startValue,\n 'max': multiple ? endValue : max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(0) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(startValue, 0) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n isActive={activeThumb === 'start'}\n />\n {multiple && (\n <SliderThumb\n data-type=\"end\"\n className={styles.thumb}\n style={{ left: `${endReversedValueInPercent}%` }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'end',\n 'data-testid': endThumbTestId,\n 'ref': thumbEndInputRef,\n 'step': step,\n 'min': startValue,\n 'value': endValue,\n 'max': max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(1) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(endValue, 1) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n isActive={activeThumb === 'end'}\n />\n )}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","clamp","useAdaptivity","useExternRef","Touch","SliderThumb","extractSliderAriaAttributesFromRestProps","getDraggingTypeByTargetDataset","isMultipleValues","offsetToValue","snapDirection","toPercent","updateInternalStateValue","updateInternalStateValueByNativeChange","sizeYClassNames","none","compact","sizeClassNames","l","m","s","Slider","step","min","max","value","valueProp","multiple","multipleProp","defaultValue","disabled","className","getRootRef","getAriaLabel","getAriaValueText","startThumbTestId","endThumbTestId","onChange","withTooltip","size","restProps","sizeY","isControlled","undefined","localValue","setValue","useState","useMemo","resolvedValue","Array","isArray","startValue","endValue","startValueInPercent","endReversedValueInPercent","activeThumb","setActiveThumb","gesture","useRef","dragging","startX","containerWidth","current","thumbsContainerRef","thumbStartInputRef","thumbEndInputRef","ariaLabel","ariaValueText","ariaLabelledBy","restPropsWithoutAriaAttributes","changeValue","nextValue","event","handlePointerStart","left","nextContainerX","width","nextContainerWidth","getBoundingClientRect","foundDraggingType","originalEvent","target","nextStartX","nextDragging","updatedInternalStateValue","nextStartValue","nextEndValue","focus","preventDefault","stopPropagation","handlePointerMove","shiftX","handlePointerEnd","handleChangeByNativeInput","Number","data-value","onStart","onMove","onEnd","div","style","right","ref","data-type","zIndex","inputProps","isActive"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { type CustomTouchEvent, type CustomTouchEventHandler, Touch } from '../Touch/Touch';\nimport { SliderThumb } from './SliderThumb/SliderThumb';\nimport {\n extractSliderAriaAttributesFromRestProps,\n getDraggingTypeByTargetDataset,\n isMultipleValues,\n offsetToValue,\n snapDirection,\n toPercent,\n updateInternalStateValue,\n updateInternalStateValueByNativeChange,\n} from './helpers';\nimport type { InternalDraggingType, InternalGestureRef, InternalValueState } from './types';\nimport styles from './Slider.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nconst sizeClassNames = {\n l: styles.sizeL,\n m: styles.sizeM,\n s: styles.sizeS,\n};\n\nexport interface SliderBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n /**\n * Тоже самое, что и `aria-label`, но на вход можно получать индекс текущего ползунка и в зависимости от этого выдавать разный текст.\n *\n * > Перебивает `aria-label`.\n */\n getAriaLabel?: (index: number) => string;\n /**\n * В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.\n *\n * Полезно при использовании компонента как неконтролируемого.\n *\n * > Перебивает `aria-valuetext`.\n */\n getAriaValueText?: (value: number, index: number) => string;\n withTooltip?: boolean;\n /**\n * Размер ползунка.\n */\n size?: 's' | 'm' | 'l';\n /**\n * Передает атрибут `data-testid` для первого ползунка\n */\n startThumbTestId?: string;\n /**\n * Передает атрибут `data-testid` для второго ползунка когда `multiple=true`\n */\n endThumbTestId?: string;\n}\n\nexport interface SliderProps extends SliderBaseProps {\n multiple?: false;\n value?: number;\n defaultValue?: number;\n onChange?: (value: number, event: CustomTouchEvent | React.ChangeEvent) => void;\n}\n\nexport interface SliderMultipleProps extends SliderBaseProps {\n multiple: true;\n value?: [number, number];\n defaultValue?: [number, number];\n onChange?: (value: [number, number], event: CustomTouchEvent | React.ChangeEvent) => void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Slider\n */\nexport const Slider = ({\n step = 1,\n min = 0,\n max = 100,\n value: valueProp,\n multiple: multipleProp,\n defaultValue = multipleProp ? [min, max] : min,\n disabled,\n className,\n getRootRef,\n getAriaLabel,\n getAriaValueText,\n startThumbTestId,\n endThumbTestId,\n onChange,\n withTooltip,\n size = 'l',\n style: styleProp,\n ...restProps\n}: SliderProps | SliderMultipleProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\n\n const isControlled = valueProp !== undefined;\n const [localValue, setValue] = React.useState(defaultValue);\n\n const value = React.useMemo<InternalValueState>(() => {\n const resolvedValue = isControlled ? valueProp : localValue;\n return Array.isArray(resolvedValue)\n ? [clamp(resolvedValue[0], min, max), clamp(resolvedValue[1], min, max)]\n : [clamp(resolvedValue, min, max), null];\n }, [isControlled, valueProp, localValue, min, max]);\n\n const [startValue, endValue] = value;\n const multiple = multipleProp && endValue !== null;\n const startValueInPercent = toPercent(startValue, min, max);\n const endReversedValueInPercent = multiple ? toPercent(endValue, min, max) : 0;\n const [activeThumb, setActiveThumb] = React.useState<InternalDraggingType | null>(null);\n\n const gesture = React.useRef<InternalGestureRef>({\n dragging: null,\n startX: 0,\n containerWidth: 0,\n }).current;\n const thumbsContainerRef = useExternRef(getRootRef);\n const thumbStartInputRef = React.useRef<HTMLInputElement>(null);\n const thumbEndInputRef = React.useRef<HTMLInputElement>(null);\n\n const { ariaLabel, ariaValueText, ariaLabelledBy, ...restPropsWithoutAriaAttributes } =\n extractSliderAriaAttributesFromRestProps(restProps);\n\n const changeValue = (\n nextValue: InternalValueState,\n event: CustomTouchEvent | React.ChangeEvent,\n ) => {\n if (disabled || (value[0] === nextValue[0] && value[1] === nextValue[1])) {\n return;\n }\n\n if (multipleProp) {\n if (isMultipleValues(nextValue)) {\n !isControlled && setValue(nextValue);\n onChange && onChange(nextValue, event);\n }\n } else {\n !isControlled && setValue(nextValue[0]);\n onChange && onChange(nextValue[0], event);\n }\n };\n\n const handlePointerStart: CustomTouchEventHandler = (event: CustomTouchEvent) => {\n if (!thumbsContainerRef.current) {\n return;\n }\n\n const { left: nextContainerX, width: nextContainerWidth } =\n thumbsContainerRef.current.getBoundingClientRect();\n\n // @ts-expect-error: TS2345 в VKUITouchEvent плохо описаны типы. `target` это просто `EventTarget`.\n const foundDraggingType = getDraggingTypeByTargetDataset(event.originalEvent.target);\n\n let nextStartX = event.startX - nextContainerX;\n if (isRtl) {\n nextStartX = nextContainerWidth - nextStartX;\n }\n const nextValue = offsetToValue(nextStartX, nextContainerWidth, min, max, step);\n const nextDragging = snapDirection(value, nextValue, foundDraggingType);\n\n gesture.dragging = nextDragging;\n gesture.containerWidth = nextContainerWidth;\n gesture.startX = nextStartX;\n\n const updatedInternalStateValue = updateInternalStateValue(\n value,\n nextValue,\n min,\n max,\n nextDragging,\n );\n\n const [nextStartValue, nextEndValue] = updatedInternalStateValue;\n if (\n thumbStartInputRef.current &&\n (foundDraggingType === 'start' ||\n (nextStartValue !== startValue && nextEndValue === endValue))\n ) {\n thumbStartInputRef.current.focus();\n event.originalEvent.preventDefault();\n } else if (\n thumbEndInputRef.current &&\n (foundDraggingType === 'end' || (nextEndValue !== endValue && nextStartValue === startValue))\n ) {\n thumbEndInputRef.current.focus();\n event.originalEvent.preventDefault();\n }\n\n changeValue(updatedInternalStateValue, event);\n\n event.originalEvent.stopPropagation();\n setActiveThumb(gesture.dragging);\n };\n\n const handlePointerMove: CustomTouchEventHandler = (event: CustomTouchEvent) => {\n const { startX, containerWidth, dragging } = gesture;\n\n const { shiftX = 0 } = event;\n const nextStartX = startX + (isRtl ? -shiftX : shiftX);\n const nextValue = offsetToValue(nextStartX, containerWidth, min, max, step);\n\n changeValue(updateInternalStateValue(value, nextValue, min, max, dragging), event);\n\n event.originalEvent.stopPropagation();\n event.originalEvent.preventDefault();\n };\n\n const handlePointerEnd: CustomTouchEventHandler = (event) => {\n gesture.dragging = null;\n event.originalEvent.stopPropagation();\n setActiveThumb(null);\n };\n\n const handleChangeByNativeInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n changeValue(\n updateInternalStateValueByNativeChange(\n value,\n Number(event.target.value),\n getDraggingTypeByTargetDataset(event.target),\n ),\n event,\n );\n };\n\n const style: CSSCustomProperties = {\n '--vkui_internal--Slider_start_value': String(startValueInPercent),\n '--vkui_internal--Slider_end_value': String(endReversedValueInPercent),\n };\n\n return (\n <Touch\n data-value={multiple ? `${startValue},${endValue}` : startValue}\n {...restPropsWithoutAriaAttributes}\n className={classNames(\n styles.host,\n disabled && styles.disabled,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n sizeClassNames[size],\n multiple && styles.multiple,\n isRtl && styles.rtl,\n className,\n )}\n style={mergeStyle(styleProp, style)}\n getRootRef={getRootRef}\n onStart={disabled ? undefined : handlePointerStart}\n onMove={disabled ? undefined : handlePointerMove}\n onEnd={disabled ? undefined : handlePointerEnd}\n >\n <div className={styles.track} />\n <div className={styles.trackFill} />\n <div ref={thumbsContainerRef} className={styles.thumbs}>\n <SliderThumb\n data-type=\"start\"\n className={classNames(styles.thumb, styles.thumbStart)}\n style={{\n // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.\n zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined,\n }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'start',\n 'data-testid': startThumbTestId,\n 'ref': thumbStartInputRef,\n 'step': step,\n 'min': min,\n 'value': startValue,\n 'max': multiple ? endValue : max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(0) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(startValue, 0) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n isActive={activeThumb === 'start'}\n />\n {multiple && (\n <SliderThumb\n data-type=\"end\"\n className={classNames(styles.thumb, styles.thumbEnd)}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'end',\n 'data-testid': endThumbTestId,\n 'ref': thumbEndInputRef,\n 'step': step,\n 'min': startValue,\n 'value': endValue,\n 'max': max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(1) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(endValue, 1) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n isActive={activeThumb === 'end'}\n />\n )}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","clamp","mergeStyle","useAdaptivity","useConfigDirection","useExternRef","Touch","SliderThumb","extractSliderAriaAttributesFromRestProps","getDraggingTypeByTargetDataset","isMultipleValues","offsetToValue","snapDirection","toPercent","updateInternalStateValue","updateInternalStateValueByNativeChange","sizeYClassNames","none","compact","sizeClassNames","l","m","s","Slider","step","min","max","value","valueProp","multiple","multipleProp","defaultValue","disabled","className","getRootRef","getAriaLabel","getAriaValueText","startThumbTestId","endThumbTestId","onChange","withTooltip","size","style","styleProp","restProps","sizeY","direction","isRtl","isControlled","undefined","localValue","setValue","useState","useMemo","resolvedValue","Array","isArray","startValue","endValue","startValueInPercent","endReversedValueInPercent","activeThumb","setActiveThumb","gesture","useRef","dragging","startX","containerWidth","current","thumbsContainerRef","thumbStartInputRef","thumbEndInputRef","ariaLabel","ariaValueText","ariaLabelledBy","restPropsWithoutAriaAttributes","changeValue","nextValue","event","handlePointerStart","left","nextContainerX","width","nextContainerWidth","getBoundingClientRect","foundDraggingType","originalEvent","target","nextStartX","nextDragging","updatedInternalStateValue","nextStartValue","nextEndValue","focus","preventDefault","stopPropagation","handlePointerMove","shiftX","handlePointerEnd","handleChangeByNativeInput","Number","String","data-value","onStart","onMove","onEnd","div","ref","data-type","zIndex","inputProps","isActive"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SliderThumb.d.ts","sourceRoot":"","sources":["../../../../src/components/Slider/SliderThumb/SliderThumb.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAInE,UAAU,gBAAiB,SAAQ,UAAU,CAAC,eAAe,CAAC,EAAE,gBAAgB;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GACtD,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,GACrC,gBAAgB,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"SliderThumb.d.ts","sourceRoot":"","sources":["../../../../src/components/Slider/SliderThumb/SliderThumb.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAInE,UAAU,gBAAiB,SAAQ,UAAU,CAAC,eAAe,CAAC,EAAE,gBAAgB;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GACtD,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,GACrC,gBAAgB,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,GAAI,4EAOzB,gBAAgB,KAAG,KAAK,CAAC,SAkG3B,CAAC"}
|
|
@@ -77,7 +77,11 @@ export const SliderThumb = (_param)=>{
|
|
|
77
77
|
shouldShowTooltip && /*#__PURE__*/ _jsx(TooltipBase, {
|
|
78
78
|
appearance: "neutral",
|
|
79
79
|
getRootRef: refs.setFloating,
|
|
80
|
-
style: convertFloatingDataToReactCSSProperties(
|
|
80
|
+
style: convertFloatingDataToReactCSSProperties({
|
|
81
|
+
strategy: floatingPositionStrategy,
|
|
82
|
+
x: floatingDataX,
|
|
83
|
+
y: floatingDataY
|
|
84
|
+
}),
|
|
81
85
|
arrowProps: {
|
|
82
86
|
coords: arrowCoords,
|
|
83
87
|
placement: resolvedPlacement,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Slider/SliderThumb/SliderThumb.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useBooleanState } from '../../../hooks/useBooleanState';\nimport { useExternRef } from '../../../hooks/useExternRef';\nimport { useFocusVisible } from '../../../hooks/useFocusVisible';\nimport { useFocusVisibleClassName } from '../../../hooks/useFocusVisibleClassName';\nimport {\n arrowMiddleware,\n convertFloatingDataToReactCSSProperties,\n flipMiddleware,\n offsetMiddleware,\n shiftMiddleware,\n useFloating,\n} from '../../../lib/floating';\nimport type { HasDataAttribute, HasRootRef } from '../../../types';\nimport { TooltipBase } from '../../TooltipBase/TooltipBase';\nimport styles from './SliderThumb.module.css';\n\ninterface SliderThumbProps extends HasRootRef<HTMLSpanElement>, HasDataAttribute {\n className?: string;\n style?: React.CSSProperties;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement> &\n React.RefAttributes<HTMLInputElement> &\n HasDataAttribute;\n withTooltip?: boolean;\n isActive?: boolean;\n}\n\nexport const SliderThumb = ({\n className,\n getRootRef,\n inputProps,\n withTooltip,\n isActive,\n ...restProps\n}: SliderThumbProps): React.ReactNode => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({\n focusVisible,\n mode: styles.focusVisible,\n });\n const [arrowRef, setArrowRef] = React.useState<HTMLDivElement | null>(null);\n\n const memoizedMiddlewares = React.useMemo(() => {\n return [\n offsetMiddleware({\n crossAxis: 0,\n mainAxis: 15,\n }),\n flipMiddleware(),\n shiftMiddleware({ padding: 8 }),\n arrowMiddleware({\n element: arrowRef,\n }),\n ];\n }, [arrowRef]);\n\n const {\n x: floatingDataX,\n y: floatingDataY,\n placement: resolvedPlacement,\n refs,\n strategy: floatingPositionStrategy,\n middlewareData: { arrow: arrowCoords },\n update: updateTooltipPosition,\n } = useFloating({\n placement: 'top',\n middleware: memoizedMiddlewares,\n });\n\n const {\n value: isHovered,\n setTrue: setHoveredTrue,\n setFalse: setHoveredFalse,\n } = useBooleanState(false);\n\n const handleRootRef = useExternRef<HTMLSpanElement>(getRootRef, refs.setReference);\n\n const shouldShowTooltip = withTooltip && (focusVisible || isHovered || isActive);\n\n const inputValue = inputProps && inputProps.value;\n React.useEffect(\n function udpateTooltipPositionOnValueChange() {\n if (shouldShowTooltip && inputValue !== 'undefined') {\n updateTooltipPosition();\n }\n },\n [inputValue, updateTooltipPosition, shouldShowTooltip],\n );\n\n return (\n <React.Fragment>\n <span\n {...restProps}\n ref={handleRootRef}\n onMouseEnter={setHoveredTrue}\n onMouseLeave={setHoveredFalse}\n className={classNames(\n styles.host,\n focusVisibleClassNames,\n isActive && styles.active,\n isHovered && styles.hover,\n className,\n )}\n >\n <input\n {...inputProps}\n type=\"range\"\n className={styles.nativeInput}\n aria-orientation=\"horizontal\"\n onBlur={onBlur}\n onFocus={onFocus}\n />\n </span>\n {shouldShowTooltip && (\n <TooltipBase\n appearance=\"neutral\"\n getRootRef={refs.setFloating}\n style={convertFloatingDataToReactCSSProperties(\n floatingPositionStrategy,\n floatingDataX,\n floatingDataY,\n )}\n arrowProps={{\n coords: arrowCoords,\n placement: resolvedPlacement,\n getRootRef: setArrowRef,\n }}\n description={inputValue}\n />\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","classNames","useBooleanState","useExternRef","useFocusVisible","useFocusVisibleClassName","arrowMiddleware","convertFloatingDataToReactCSSProperties","flipMiddleware","offsetMiddleware","shiftMiddleware","useFloating","TooltipBase","SliderThumb","className","getRootRef","inputProps","withTooltip","isActive","restProps","focusVisible","onBlur","onFocus","focusVisibleClassNames","mode","arrowRef","setArrowRef","useState","memoizedMiddlewares","useMemo","crossAxis","mainAxis","padding","element","x","floatingDataX","y","floatingDataY","placement","resolvedPlacement","refs","strategy","floatingPositionStrategy","middlewareData","arrow","arrowCoords","update","updateTooltipPosition","middleware","value","isHovered","setTrue","setHoveredTrue","setFalse","setHoveredFalse","handleRootRef","setReference","shouldShowTooltip","inputValue","useEffect","udpateTooltipPositionOnValueChange","Fragment","span","ref","onMouseEnter","onMouseLeave","input","type","aria-orientation","appearance","setFloating","style","arrowProps","coords","description"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,eAAe,QAAQ,oCAAiC;AACjE,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,eAAe,QAAQ,oCAAiC;AACjE,SAASC,wBAAwB,QAAQ,6CAA0C;AACnF,SACEC,eAAe,EACfC,uCAAuC,EACvCC,cAAc,EACdC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,QACN,iCAAwB;AAE/B,SAASC,WAAW,QAAQ,mCAAgC;AAa5D,OAAO,MAAMC,cAAc;QAAC,EAC1BC,SAAS,EACTC,UAAU,EACVC,UAAU,EACVC,WAAW,EACXC,QAAQ,EAES,WADdC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEE,YAAY,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGlB;IAC1C,MAAMmB,yBAAyBlB,yBAAyB;QACtDe;QACAI,IAAI;IACN;IACA,MAAM,CAACC,UAAUC,YAAY,GAAG1B,MAAM2B,QAAQ,CAAwB;IAEtE,MAAMC,sBAAsB5B,MAAM6B,OAAO,CAAC;QACxC,OAAO;YACLpB,iBAAiB;gBACfqB,WAAW;gBACXC,UAAU;YACZ;YACAvB;YACAE,gBAAgB;gBAAEsB,SAAS;YAAE;YAC7B1B,gBAAgB;gBACd2B,SAASR;YACX;SACD;IACH,GAAG;QAACA;KAAS;IAEb,MAAM,EACJS,GAAGC,aAAa,EAChBC,GAAGC,aAAa,EAChBC,WAAWC,iBAAiB,EAC5BC,IAAI,EACJC,UAAUC,wBAAwB,EAClCC,gBAAgB,EAAEC,OAAOC,WAAW,EAAE,EACtCC,QAAQC,qBAAqB,EAC9B,GAAGpC,YAAY;QACd2B,WAAW;QACXU,YAAYpB;IACd;IAEA,MAAM,EACJqB,OAAOC,SAAS,EAChBC,SAASC,cAAc,EACvBC,UAAUC,eAAe,EAC1B,GAAGpD,gBAAgB;IAEpB,MAAMqD,gBAAgBpD,aAA8BY,YAAYyB,KAAKgB,YAAY;IAEjF,MAAMC,oBAAoBxC,eAAgBG,CAAAA,gBAAgB8B,aAAahC,QAAO;IAE9E,MAAMwC,aAAa1C,cAAcA,WAAWiC,KAAK;IACjDjD,MAAM2D,SAAS,CACb,SAASC;QACP,IAAIH,qBAAqBC,eAAe,aAAa;YACnDX;QACF;IACF,GACA;QAACW;QAAYX;QAAuBU;KAAkB;IAGxD,qBACE,MAACzD,MAAM6D,QAAQ;;0BACb,KAACC,gDACK3C;gBACJ4C,KAAKR;gBACLS,cAAcZ;gBACda,cAAcX;gBACdxC,WAAWb,oCAETsB,wBACAL,uCACAgC,uCACApC;0BAGF,cAAA,KAACoD,iDACKlD;oBACJmD,MAAK;oBACLrD,SAAS;oBACTsD,oBAAiB;oBACjB/C,QAAQA;oBACRC,SAASA;;;YAGZmC,mCACC,KAAC7C;gBACCyD,YAAW;gBACXtD,YAAYyB,KAAK8B,WAAW;gBAC5BC,OAAOhE,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Slider/SliderThumb/SliderThumb.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useBooleanState } from '../../../hooks/useBooleanState';\nimport { useExternRef } from '../../../hooks/useExternRef';\nimport { useFocusVisible } from '../../../hooks/useFocusVisible';\nimport { useFocusVisibleClassName } from '../../../hooks/useFocusVisibleClassName';\nimport {\n arrowMiddleware,\n convertFloatingDataToReactCSSProperties,\n flipMiddleware,\n offsetMiddleware,\n shiftMiddleware,\n useFloating,\n} from '../../../lib/floating';\nimport type { HasDataAttribute, HasRootRef } from '../../../types';\nimport { TooltipBase } from '../../TooltipBase/TooltipBase';\nimport styles from './SliderThumb.module.css';\n\ninterface SliderThumbProps extends HasRootRef<HTMLSpanElement>, HasDataAttribute {\n className?: string;\n style?: React.CSSProperties;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement> &\n React.RefAttributes<HTMLInputElement> &\n HasDataAttribute;\n withTooltip?: boolean;\n isActive?: boolean;\n}\n\nexport const SliderThumb = ({\n className,\n getRootRef,\n inputProps,\n withTooltip,\n isActive,\n ...restProps\n}: SliderThumbProps): React.ReactNode => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({\n focusVisible,\n mode: styles.focusVisible,\n });\n const [arrowRef, setArrowRef] = React.useState<HTMLDivElement | null>(null);\n\n const memoizedMiddlewares = React.useMemo(() => {\n return [\n offsetMiddleware({\n crossAxis: 0,\n mainAxis: 15,\n }),\n flipMiddleware(),\n shiftMiddleware({ padding: 8 }),\n arrowMiddleware({\n element: arrowRef,\n }),\n ];\n }, [arrowRef]);\n\n const {\n x: floatingDataX,\n y: floatingDataY,\n placement: resolvedPlacement,\n refs,\n strategy: floatingPositionStrategy,\n middlewareData: { arrow: arrowCoords },\n update: updateTooltipPosition,\n } = useFloating({\n placement: 'top',\n middleware: memoizedMiddlewares,\n });\n\n const {\n value: isHovered,\n setTrue: setHoveredTrue,\n setFalse: setHoveredFalse,\n } = useBooleanState(false);\n\n const handleRootRef = useExternRef<HTMLSpanElement>(getRootRef, refs.setReference);\n\n const shouldShowTooltip = withTooltip && (focusVisible || isHovered || isActive);\n\n const inputValue = inputProps && inputProps.value;\n React.useEffect(\n function udpateTooltipPositionOnValueChange() {\n if (shouldShowTooltip && inputValue !== 'undefined') {\n updateTooltipPosition();\n }\n },\n [inputValue, updateTooltipPosition, shouldShowTooltip],\n );\n\n return (\n <React.Fragment>\n <span\n {...restProps}\n ref={handleRootRef}\n onMouseEnter={setHoveredTrue}\n onMouseLeave={setHoveredFalse}\n className={classNames(\n styles.host,\n focusVisibleClassNames,\n isActive && styles.active,\n isHovered && styles.hover,\n className,\n )}\n >\n <input\n {...inputProps}\n type=\"range\"\n className={styles.nativeInput}\n aria-orientation=\"horizontal\"\n onBlur={onBlur}\n onFocus={onFocus}\n />\n </span>\n {shouldShowTooltip && (\n <TooltipBase\n appearance=\"neutral\"\n getRootRef={refs.setFloating}\n style={convertFloatingDataToReactCSSProperties({\n strategy: floatingPositionStrategy,\n x: floatingDataX,\n y: floatingDataY,\n })}\n arrowProps={{\n coords: arrowCoords,\n placement: resolvedPlacement,\n getRootRef: setArrowRef,\n }}\n description={inputValue}\n />\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","classNames","useBooleanState","useExternRef","useFocusVisible","useFocusVisibleClassName","arrowMiddleware","convertFloatingDataToReactCSSProperties","flipMiddleware","offsetMiddleware","shiftMiddleware","useFloating","TooltipBase","SliderThumb","className","getRootRef","inputProps","withTooltip","isActive","restProps","focusVisible","onBlur","onFocus","focusVisibleClassNames","mode","arrowRef","setArrowRef","useState","memoizedMiddlewares","useMemo","crossAxis","mainAxis","padding","element","x","floatingDataX","y","floatingDataY","placement","resolvedPlacement","refs","strategy","floatingPositionStrategy","middlewareData","arrow","arrowCoords","update","updateTooltipPosition","middleware","value","isHovered","setTrue","setHoveredTrue","setFalse","setHoveredFalse","handleRootRef","setReference","shouldShowTooltip","inputValue","useEffect","udpateTooltipPositionOnValueChange","Fragment","span","ref","onMouseEnter","onMouseLeave","input","type","aria-orientation","appearance","setFloating","style","arrowProps","coords","description"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,eAAe,QAAQ,oCAAiC;AACjE,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,eAAe,QAAQ,oCAAiC;AACjE,SAASC,wBAAwB,QAAQ,6CAA0C;AACnF,SACEC,eAAe,EACfC,uCAAuC,EACvCC,cAAc,EACdC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,QACN,iCAAwB;AAE/B,SAASC,WAAW,QAAQ,mCAAgC;AAa5D,OAAO,MAAMC,cAAc;QAAC,EAC1BC,SAAS,EACTC,UAAU,EACVC,UAAU,EACVC,WAAW,EACXC,QAAQ,EAES,WADdC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEE,YAAY,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGlB;IAC1C,MAAMmB,yBAAyBlB,yBAAyB;QACtDe;QACAI,IAAI;IACN;IACA,MAAM,CAACC,UAAUC,YAAY,GAAG1B,MAAM2B,QAAQ,CAAwB;IAEtE,MAAMC,sBAAsB5B,MAAM6B,OAAO,CAAC;QACxC,OAAO;YACLpB,iBAAiB;gBACfqB,WAAW;gBACXC,UAAU;YACZ;YACAvB;YACAE,gBAAgB;gBAAEsB,SAAS;YAAE;YAC7B1B,gBAAgB;gBACd2B,SAASR;YACX;SACD;IACH,GAAG;QAACA;KAAS;IAEb,MAAM,EACJS,GAAGC,aAAa,EAChBC,GAAGC,aAAa,EAChBC,WAAWC,iBAAiB,EAC5BC,IAAI,EACJC,UAAUC,wBAAwB,EAClCC,gBAAgB,EAAEC,OAAOC,WAAW,EAAE,EACtCC,QAAQC,qBAAqB,EAC9B,GAAGpC,YAAY;QACd2B,WAAW;QACXU,YAAYpB;IACd;IAEA,MAAM,EACJqB,OAAOC,SAAS,EAChBC,SAASC,cAAc,EACvBC,UAAUC,eAAe,EAC1B,GAAGpD,gBAAgB;IAEpB,MAAMqD,gBAAgBpD,aAA8BY,YAAYyB,KAAKgB,YAAY;IAEjF,MAAMC,oBAAoBxC,eAAgBG,CAAAA,gBAAgB8B,aAAahC,QAAO;IAE9E,MAAMwC,aAAa1C,cAAcA,WAAWiC,KAAK;IACjDjD,MAAM2D,SAAS,CACb,SAASC;QACP,IAAIH,qBAAqBC,eAAe,aAAa;YACnDX;QACF;IACF,GACA;QAACW;QAAYX;QAAuBU;KAAkB;IAGxD,qBACE,MAACzD,MAAM6D,QAAQ;;0BACb,KAACC,gDACK3C;gBACJ4C,KAAKR;gBACLS,cAAcZ;gBACda,cAAcX;gBACdxC,WAAWb,oCAETsB,wBACAL,uCACAgC,uCACApC;0BAGF,cAAA,KAACoD,iDACKlD;oBACJmD,MAAK;oBACLrD,SAAS;oBACTsD,oBAAiB;oBACjB/C,QAAQA;oBACRC,SAASA;;;YAGZmC,mCACC,KAAC7C;gBACCyD,YAAW;gBACXtD,YAAYyB,KAAK8B,WAAW;gBAC5BC,OAAOhE,wCAAwC;oBAC7CkC,UAAUC;oBACVR,GAAGC;oBACHC,GAAGC;gBACL;gBACAmC,YAAY;oBACVC,QAAQ5B;oBACRP,WAAWC;oBACXxB,YAAYW;gBACd;gBACAgD,aAAahB;;;;AAKvB,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/components/Slider/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAExE,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/components/Slider/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAExE,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAC/B,CAAC;AAElC,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,KAAK,MAAM,EACX,KAAK,MAAM,EACX,OAAO,MAAM,KACZ,MAEF,CAAC;AAYF,eAAO,MAAM,wBAAwB,GACnC,WAAW,kBAAkB,EAC7B,WAAW,MAAM,EACjB,KAAK,MAAM,EACX,KAAK,MAAM,EACX,UAAU,oBAAoB,GAAG,IAAI,KACpC,kBAoBF,CAAC;AAEF,eAAO,MAAM,sCAAsC,GACjD,WAAW,kBAAkB,EAC7B,WAAW,MAAM,EACjB,UAAU,oBAAoB,GAAG,IAAI,KACpC,kBAWF,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAErF;AAED,eAAO,MAAM,aAAa,GACxB,WAAW,kBAAkB,EAC7B,WAAW,MAAM,EACjB,MAAM,oBAAoB,GAAG,IAAI,KAChC,OAAO,GAAG,KAcZ,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,IAAI,EACzF,QAAQ,CAAC,KACR,OAAO,GAAG,KAAK,GAAG,IAUpB,CAAC;AAQF,eAAO,MAAM,wCAAwC,GAAI,CAAC,SAAS,KAAK,CAAC,cAAc,EACrF,WAAW,CAAC,KACX,CAAC,GAAG;IACL,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CAMpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Snackbar.d.ts","sourceRoot":"","sources":["../../../src/components/Snackbar/Snackbar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Snackbar.d.ts","sourceRoot":"","sources":["../../../src/components/Snackbar/Snackbar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAG7D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAa,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA2B5D,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,EAC7D,UAAU;IACZ;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAClD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,KAAK,CAAA;CAqOrE,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_
|
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import { classNames } from "@vkontakte/vkjs";
|
|
8
|
+
import { useConfigDirection } from "../../hooks/useConfigDirection.js";
|
|
8
9
|
import { useExternRef } from "../../hooks/useExternRef.js";
|
|
9
10
|
import { useFocusWithin } from "../../hooks/useFocusWithin.js";
|
|
10
11
|
import { useGlobalEscKeyDown } from "../../hooks/useGlobalEscKeyDown.js";
|
|
@@ -55,6 +56,8 @@ const animationStateClassNames = {
|
|
|
55
56
|
const platform = usePlatform();
|
|
56
57
|
const [open, setOpen] = React.useState(true);
|
|
57
58
|
const [touched, setTouched] = React.useState(false);
|
|
59
|
+
const direction = useConfigDirection();
|
|
60
|
+
const isRtl = direction === 'rtl';
|
|
58
61
|
const rootRef = useExternRef(getRootRef);
|
|
59
62
|
const focused = useFocusWithin(rootRef);
|
|
60
63
|
const inRef = React.useRef(null);
|
|
@@ -102,14 +105,14 @@ const animationStateClassNames = {
|
|
|
102
105
|
if (shiftDataRef.current && panGestureRecognizer.current) {
|
|
103
106
|
panGestureRecognizer.current.setInitialTimeOnce();
|
|
104
107
|
panGestureRecognizer.current.setEndCoords(event.nativeEvent);
|
|
105
|
-
shiftDataRef.current = getMovedShiftData(placement, shiftDataRef.current, panGestureRecognizer.current.delta());
|
|
108
|
+
shiftDataRef.current = getMovedShiftData(placement, shiftDataRef.current, panGestureRecognizer.current.delta(), isRtl);
|
|
106
109
|
if (shiftDataRef.current.shifted) {
|
|
107
110
|
updateShiftAxisCSSProperties(shiftDataRef.current.x, shiftDataRef.current.y, shiftDataRef.current.direction);
|
|
108
111
|
}
|
|
109
112
|
}
|
|
110
113
|
};
|
|
111
114
|
const handleTouchEnd = ()=>{
|
|
112
|
-
if (touched && shiftDataRef.current && panGestureRecognizer.current && shouldBeClosedByShiftData(placement, shiftDataRef.current, getRelativeBoundingClientRect(rootRef.current, inRef.current), panGestureRecognizer.current.velocity())) {
|
|
115
|
+
if (touched && shiftDataRef.current && panGestureRecognizer.current && shouldBeClosedByShiftData(placement, shiftDataRef.current, getRelativeBoundingClientRect(rootRef.current, inRef.current), panGestureRecognizer.current.velocity(), isRtl)) {
|
|
113
116
|
close();
|
|
114
117
|
}
|
|
115
118
|
setTouched(false);
|
|
@@ -154,7 +157,7 @@ const animationStateClassNames = {
|
|
|
154
157
|
}
|
|
155
158
|
return /*#__PURE__*/ _jsx(RootComponent, _object_spread_props(_object_spread({}, restProps), {
|
|
156
159
|
role: "presentation",
|
|
157
|
-
baseClassName: classNames("vkuiSnackbar__host", platform === 'ios' && "vkuiSnackbar__ios", touched && "vkuiSnackbar__touched", placementClassNames[placement], animationStateClassNames[animationState]),
|
|
160
|
+
baseClassName: classNames("vkuiSnackbar__host", platform === 'ios' && "vkuiSnackbar__ios", touched && "vkuiSnackbar__touched", placementClassNames[placement], animationStateClassNames[animationState], isRtl && "vkuiSnackbar__rtl"),
|
|
158
161
|
baseStyle: resolveOffsetYCssStyle(placement, offsetY),
|
|
159
162
|
getRootRef: rootRef,
|
|
160
163
|
children: /*#__PURE__*/ _jsx("div", _object_spread_props(_object_spread({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Snackbar/Snackbar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useFocusWithin } from '../../hooks/useFocusWithin';\nimport { useGlobalEscKeyDown } from '../../hooks/useGlobalEscKeyDown';\nimport { useMediaQueries } from '../../hooks/useMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useCSSKeyframesAnimationController } from '../../lib/animation';\nimport { getRelativeBoundingClientRect } from '../../lib/dom';\nimport { UIPanGestureRecognizer } from '../../lib/touch';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Basic, type BasicProps } from './subcomponents/Basic/Basic';\nimport type { ShiftData, SnackbarPlacement } from './types';\nimport {\n getInitialShiftData,\n getMovedShiftData,\n resolveOffsetYCssStyle,\n shouldBeClosedByShiftData,\n} from './utils';\nimport styles from './Snackbar.module.css';\n\nconst placementClassNames = {\n 'top-start': styles.placementTopStart,\n 'top': styles.placementTop,\n 'top-end': styles.placementTopEnd,\n 'bottom-start': styles.placementBottomStart,\n 'bottom': styles.placementBottom,\n 'bottom-end': styles.placementBottomEnd,\n};\n\nconst animationStateClassNames = {\n enter: styles.stateEnter,\n entering: styles.stateEntering,\n entered: styles.stateEntered,\n exit: styles.stateExit,\n exiting: styles.stateExiting,\n exited: undefined,\n};\n\nexport interface SnackbarProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'role'>,\n BasicProps {\n /**\n * Задаёт расположение компонента.\n *\n * > Note: в мобильном режиме:\n * > - `\"top-start\"`/`\"top-end\"` перебивается на `\"top\"`, чтобы поведение было схожим с нативными\n * > уведомлениями;\n * > - `\"bottom\"` перебивается на `\"bottom-start\"`, чтобы избежать вызова системных\n * > функций, таких как **Pull To Refresh** и **Режим управления одной рукой**.\n * > - `\"bottom-start\"`/`\"bottom-end\"` закрываются смахиванием в любое из направлений\n * > по горизонтальной оси.\n */\n placement?: SnackbarPlacement;\n /**\n * Название кнопки действия в уведомлении\n * Не может использоваться одновременно с `subtitle`\n */\n action?: React.ReactNode;\n /**\n * Будет вызвано при клике на кнопку действия\n */\n onActionClick?: (event: React.MouseEvent) => void;\n /**\n * Время в миллисекундах, через которое плашка скроется\n */\n duration?: number;\n /**\n * Обработчик закрытия уведомления\n */\n onClose: () => void;\n /**\n * Величина отступа снизу. Используется для позиционирования элемента в случае, когда нежелательно, чтобы Snackbar при появлении перекрывал важные элементы интерфейса.\n */\n offsetY?: React.CSSProperties['bottom'];\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Snackbar\n */\nexport const Snackbar: React.FC<SnackbarProps> & { Basic: typeof Basic } = ({\n placement = 'bottom-start',\n children,\n layout,\n action,\n before,\n after,\n duration = 4000,\n onActionClick,\n onClose,\n mode = 'default',\n subtitle,\n offsetY,\n getRootRef,\n ...restProps\n}: SnackbarProps) => {\n const platform = usePlatform();\n\n const [open, setOpen] = React.useState(true);\n const [touched, setTouched] = React.useState(false);\n\n const rootRef = useExternRef(getRootRef);\n const focused = useFocusWithin(rootRef);\n const inRef = React.useRef<HTMLDivElement>(null);\n const panGestureRecognizer = React.useRef<UIPanGestureRecognizer | null>(null);\n\n const shiftDataRef = React.useRef<ShiftData | null>(null);\n\n const rafRef = React.useRef<ReturnType<typeof requestAnimationFrame> | null>(null);\n const closeTimeoutIdRef = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const mediaQueries = useMediaQueries();\n const [animationState, animationHandlers] = useCSSKeyframesAnimationController(\n open ? 'enter' : 'exit',\n {\n onExited: onClose,\n },\n );\n\n const clearRAF = React.useCallback(() => {\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n }, []);\n\n const updateShiftAxisCSSProperties = React.useCallback(\n (x: number | null, y: number | null, direction: number | null) => {\n rafRef.current = requestAnimationFrame(() => {\n if (rootRef.current) {\n x === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_x')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_x', `${x}px`);\n y === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_y')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_y', `${y}px`);\n direction === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_direction')\n : /* istanbul ignore next: TODO чтобы протестировать кейс, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n rootRef.current.style.setProperty(\n '--vkui_internal--snackbar_direction',\n `${direction}`,\n );\n }\n });\n },\n [rootRef],\n );\n\n const close = React.useCallback(() => {\n setOpen(false);\n }, []);\n\n const handleActionClick = (event: React.MouseEvent) => {\n close();\n if (action) {\n onActionClick?.(event);\n }\n };\n\n const handleTouchStart = (event: React.UIEvent<HTMLDivElement>) => {\n panGestureRecognizer.current = new UIPanGestureRecognizer();\n panGestureRecognizer.current.setStartCoords(event.nativeEvent);\n shiftDataRef.current = getInitialShiftData(\n rootRef.current!.offsetWidth,\n rootRef.current!.offsetHeight,\n mediaQueries,\n );\n setTouched(true);\n };\n\n const handleTouchMove = (event: React.UIEvent<HTMLDivElement>) => {\n if (shiftDataRef.current && panGestureRecognizer.current) {\n panGestureRecognizer.current.setInitialTimeOnce();\n panGestureRecognizer.current.setEndCoords(event.nativeEvent);\n shiftDataRef.current = getMovedShiftData(\n placement,\n shiftDataRef.current,\n panGestureRecognizer.current.delta(),\n );\n\n if (shiftDataRef.current.shifted) {\n updateShiftAxisCSSProperties(\n shiftDataRef.current.x,\n shiftDataRef.current.y,\n shiftDataRef.current.direction,\n );\n }\n }\n };\n\n const handleTouchEnd = () => {\n if (\n touched &&\n shiftDataRef.current &&\n panGestureRecognizer.current &&\n shouldBeClosedByShiftData(\n placement,\n shiftDataRef.current,\n getRelativeBoundingClientRect(rootRef.current!, inRef.current!),\n panGestureRecognizer.current.velocity(),\n )\n ) {\n close();\n }\n\n setTouched(false);\n };\n\n useIsomorphicLayoutEffect(\n function closeAfterDelay() {\n if (!open || focused || touched || animationState !== 'entered') {\n return;\n }\n closeTimeoutIdRef.current = setTimeout(close, duration);\n return function preventCloseAfterDelayOnUnmount() {\n clearTimeout(closeTimeoutIdRef.current);\n };\n },\n [open, focused, touched, animationState, close, duration],\n );\n\n useIsomorphicLayoutEffect(\n function clearUserInteractionDataAfterTouchEnd() {\n if (!touched) {\n clearRAF();\n shiftDataRef.current = null;\n panGestureRecognizer.current = null;\n\n if (open) {\n updateShiftAxisCSSProperties(null, null, null);\n }\n }\n },\n [touched, open, updateShiftAxisCSSProperties, clearRAF],\n );\n\n React.useEffect(() => clearRAF, [clearRAF]);\n\n useGlobalEscKeyDown(open, close);\n\n if (animationState === 'exited') {\n return null;\n }\n\n return (\n <RootComponent\n {...restProps}\n role=\"presentation\"\n baseClassName={classNames(\n styles.host,\n platform === 'ios' && styles.ios,\n touched && styles.touched,\n placementClassNames[placement],\n animationStateClassNames[animationState],\n )}\n baseStyle={resolveOffsetYCssStyle(placement, offsetY)}\n getRootRef={rootRef}\n >\n <div\n role=\"alert\"\n className={styles.in}\n ref={inRef}\n // mobile\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n // desktop\n onMouseDown={handleTouchStart}\n onMouseMove={handleTouchMove}\n onMouseUp={handleTouchEnd}\n onMouseLeave={handleTouchEnd}\n {...animationHandlers}\n >\n <Basic\n mode={mode}\n layout={layout}\n before={before}\n after={after}\n subtitle={subtitle}\n action={\n action && (\n <Button\n align=\"left\"\n mode=\"link\"\n appearance={\n mode === 'dark'\n ? /* istanbul ignore next: проверяется в e2e */\n 'overlay'\n : 'accent'\n }\n size=\"s\"\n onClick={handleActionClick}\n >\n {action}\n </Button>\n )\n }\n >\n {children}\n </Basic>\n </div>\n </RootComponent>\n );\n};\n\nSnackbar.Basic = Basic;\n"],"names":["React","classNames","useExternRef","useFocusWithin","useGlobalEscKeyDown","useMediaQueries","usePlatform","useCSSKeyframesAnimationController","getRelativeBoundingClientRect","UIPanGestureRecognizer","useIsomorphicLayoutEffect","Button","RootComponent","Basic","getInitialShiftData","getMovedShiftData","resolveOffsetYCssStyle","shouldBeClosedByShiftData","placementClassNames","animationStateClassNames","enter","entering","entered","exit","exiting","exited","undefined","Snackbar","placement","children","layout","action","before","after","duration","onActionClick","onClose","mode","subtitle","offsetY","getRootRef","restProps","platform","open","setOpen","useState","touched","setTouched","rootRef","focused","inRef","useRef","panGestureRecognizer","shiftDataRef","rafRef","closeTimeoutIdRef","mediaQueries","animationState","animationHandlers","onExited","clearRAF","useCallback","current","cancelAnimationFrame","updateShiftAxisCSSProperties","x","y","direction","requestAnimationFrame","style","removeProperty","setProperty","close","handleActionClick","event","handleTouchStart","setStartCoords","nativeEvent","offsetWidth","offsetHeight","handleTouchMove","setInitialTimeOnce","setEndCoords","delta","shifted","handleTouchEnd","velocity","closeAfterDelay","setTimeout","preventCloseAfterDelayOnUnmount","clearTimeout","clearUserInteractionDataAfterTouchEnd","useEffect","role","baseClassName","baseStyle","div","className","ref","onTouchStart","onTouchMove","onTouchEnd","onMouseDown","onMouseMove","onMouseUp","onMouseLeave","align","appearance","size","onClick"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Snackbar/Snackbar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useFocusWithin } from '../../hooks/useFocusWithin';\nimport { useGlobalEscKeyDown } from '../../hooks/useGlobalEscKeyDown';\nimport { useMediaQueries } from '../../hooks/useMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useCSSKeyframesAnimationController } from '../../lib/animation';\nimport { getRelativeBoundingClientRect } from '../../lib/dom';\nimport { UIPanGestureRecognizer } from '../../lib/touch';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Basic, type BasicProps } from './subcomponents/Basic/Basic';\nimport type { ShiftData, SnackbarPlacement } from './types';\nimport {\n getInitialShiftData,\n getMovedShiftData,\n resolveOffsetYCssStyle,\n shouldBeClosedByShiftData,\n} from './utils';\nimport styles from './Snackbar.module.css';\n\nconst placementClassNames = {\n 'top-start': styles.placementTopStart,\n 'top': styles.placementTop,\n 'top-end': styles.placementTopEnd,\n 'bottom-start': styles.placementBottomStart,\n 'bottom': styles.placementBottom,\n 'bottom-end': styles.placementBottomEnd,\n};\n\nconst animationStateClassNames = {\n enter: styles.stateEnter,\n entering: styles.stateEntering,\n entered: styles.stateEntered,\n exit: styles.stateExit,\n exiting: styles.stateExiting,\n exited: undefined,\n};\n\nexport interface SnackbarProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'role'>,\n BasicProps {\n /**\n * Задаёт расположение компонента.\n *\n * > Note: в мобильном режиме:\n * > - `\"top-start\"`/`\"top-end\"` перебивается на `\"top\"`, чтобы поведение было схожим с нативными\n * > уведомлениями;\n * > - `\"bottom\"` перебивается на `\"bottom-start\"`, чтобы избежать вызова системных\n * > функций, таких как **Pull To Refresh** и **Режим управления одной рукой**.\n * > - `\"bottom-start\"`/`\"bottom-end\"` закрываются смахиванием в любое из направлений\n * > по горизонтальной оси.\n */\n placement?: SnackbarPlacement;\n /**\n * Название кнопки действия в уведомлении\n * Не может использоваться одновременно с `subtitle`\n */\n action?: React.ReactNode;\n /**\n * Будет вызвано при клике на кнопку действия\n */\n onActionClick?: (event: React.MouseEvent) => void;\n /**\n * Время в миллисекундах, через которое плашка скроется\n */\n duration?: number;\n /**\n * Обработчик закрытия уведомления\n */\n onClose: () => void;\n /**\n * Величина отступа снизу. Используется для позиционирования элемента в случае, когда нежелательно, чтобы Snackbar при появлении перекрывал важные элементы интерфейса.\n */\n offsetY?: React.CSSProperties['bottom'];\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Snackbar\n */\nexport const Snackbar: React.FC<SnackbarProps> & { Basic: typeof Basic } = ({\n placement = 'bottom-start',\n children,\n layout,\n action,\n before,\n after,\n duration = 4000,\n onActionClick,\n onClose,\n mode = 'default',\n subtitle,\n offsetY,\n getRootRef,\n ...restProps\n}: SnackbarProps) => {\n const platform = usePlatform();\n\n const [open, setOpen] = React.useState(true);\n const [touched, setTouched] = React.useState(false);\n\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\n\n const rootRef = useExternRef(getRootRef);\n const focused = useFocusWithin(rootRef);\n const inRef = React.useRef<HTMLDivElement>(null);\n const panGestureRecognizer = React.useRef<UIPanGestureRecognizer | null>(null);\n\n const shiftDataRef = React.useRef<ShiftData | null>(null);\n\n const rafRef = React.useRef<ReturnType<typeof requestAnimationFrame> | null>(null);\n const closeTimeoutIdRef = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const mediaQueries = useMediaQueries();\n const [animationState, animationHandlers] = useCSSKeyframesAnimationController(\n open ? 'enter' : 'exit',\n {\n onExited: onClose,\n },\n );\n\n const clearRAF = React.useCallback(() => {\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n }, []);\n\n const updateShiftAxisCSSProperties = React.useCallback(\n (x: number | null, y: number | null, direction: number | null) => {\n rafRef.current = requestAnimationFrame(() => {\n if (rootRef.current) {\n x === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_x')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_x', `${x}px`);\n y === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_y')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_y', `${y}px`);\n direction === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_direction')\n : /* istanbul ignore next: TODO чтобы протестировать кейс, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n rootRef.current.style.setProperty(\n '--vkui_internal--snackbar_direction',\n `${direction}`,\n );\n }\n });\n },\n [rootRef],\n );\n\n const close = React.useCallback(() => {\n setOpen(false);\n }, []);\n\n const handleActionClick = (event: React.MouseEvent) => {\n close();\n if (action) {\n onActionClick?.(event);\n }\n };\n\n const handleTouchStart = (event: React.UIEvent<HTMLDivElement>) => {\n panGestureRecognizer.current = new UIPanGestureRecognizer();\n panGestureRecognizer.current.setStartCoords(event.nativeEvent);\n shiftDataRef.current = getInitialShiftData(\n rootRef.current!.offsetWidth,\n rootRef.current!.offsetHeight,\n mediaQueries,\n );\n setTouched(true);\n };\n\n const handleTouchMove = (event: React.UIEvent<HTMLDivElement>) => {\n if (shiftDataRef.current && panGestureRecognizer.current) {\n panGestureRecognizer.current.setInitialTimeOnce();\n panGestureRecognizer.current.setEndCoords(event.nativeEvent);\n shiftDataRef.current = getMovedShiftData(\n placement,\n shiftDataRef.current,\n panGestureRecognizer.current.delta(),\n isRtl,\n );\n\n if (shiftDataRef.current.shifted) {\n updateShiftAxisCSSProperties(\n shiftDataRef.current.x,\n shiftDataRef.current.y,\n shiftDataRef.current.direction,\n );\n }\n }\n };\n\n const handleTouchEnd = () => {\n if (\n touched &&\n shiftDataRef.current &&\n panGestureRecognizer.current &&\n shouldBeClosedByShiftData(\n placement,\n shiftDataRef.current,\n getRelativeBoundingClientRect(rootRef.current!, inRef.current!),\n panGestureRecognizer.current.velocity(),\n isRtl,\n )\n ) {\n close();\n }\n\n setTouched(false);\n };\n\n useIsomorphicLayoutEffect(\n function closeAfterDelay() {\n if (!open || focused || touched || animationState !== 'entered') {\n return;\n }\n closeTimeoutIdRef.current = setTimeout(close, duration);\n return function preventCloseAfterDelayOnUnmount() {\n clearTimeout(closeTimeoutIdRef.current);\n };\n },\n [open, focused, touched, animationState, close, duration],\n );\n\n useIsomorphicLayoutEffect(\n function clearUserInteractionDataAfterTouchEnd() {\n if (!touched) {\n clearRAF();\n shiftDataRef.current = null;\n panGestureRecognizer.current = null;\n\n if (open) {\n updateShiftAxisCSSProperties(null, null, null);\n }\n }\n },\n [touched, open, updateShiftAxisCSSProperties, clearRAF],\n );\n\n React.useEffect(() => clearRAF, [clearRAF]);\n\n useGlobalEscKeyDown(open, close);\n\n if (animationState === 'exited') {\n return null;\n }\n\n return (\n <RootComponent\n {...restProps}\n role=\"presentation\"\n baseClassName={classNames(\n styles.host,\n platform === 'ios' && styles.ios,\n touched && styles.touched,\n placementClassNames[placement],\n animationStateClassNames[animationState],\n isRtl && styles.rtl,\n )}\n baseStyle={resolveOffsetYCssStyle(placement, offsetY)}\n getRootRef={rootRef}\n >\n <div\n role=\"alert\"\n className={styles.in}\n ref={inRef}\n // mobile\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n // desktop\n onMouseDown={handleTouchStart}\n onMouseMove={handleTouchMove}\n onMouseUp={handleTouchEnd}\n onMouseLeave={handleTouchEnd}\n {...animationHandlers}\n >\n <Basic\n mode={mode}\n layout={layout}\n before={before}\n after={after}\n subtitle={subtitle}\n action={\n action && (\n <Button\n align=\"left\"\n mode=\"link\"\n appearance={\n mode === 'dark'\n ? /* istanbul ignore next: проверяется в e2e */\n 'overlay'\n : 'accent'\n }\n size=\"s\"\n onClick={handleActionClick}\n >\n {action}\n </Button>\n )\n }\n >\n {children}\n </Basic>\n </div>\n </RootComponent>\n );\n};\n\nSnackbar.Basic = Basic;\n"],"names":["React","classNames","useConfigDirection","useExternRef","useFocusWithin","useGlobalEscKeyDown","useMediaQueries","usePlatform","useCSSKeyframesAnimationController","getRelativeBoundingClientRect","UIPanGestureRecognizer","useIsomorphicLayoutEffect","Button","RootComponent","Basic","getInitialShiftData","getMovedShiftData","resolveOffsetYCssStyle","shouldBeClosedByShiftData","placementClassNames","animationStateClassNames","enter","entering","entered","exit","exiting","exited","undefined","Snackbar","placement","children","layout","action","before","after","duration","onActionClick","onClose","mode","subtitle","offsetY","getRootRef","restProps","platform","open","setOpen","useState","touched","setTouched","direction","isRtl","rootRef","focused","inRef","useRef","panGestureRecognizer","shiftDataRef","rafRef","closeTimeoutIdRef","mediaQueries","animationState","animationHandlers","onExited","clearRAF","useCallback","current","cancelAnimationFrame","updateShiftAxisCSSProperties","x","y","requestAnimationFrame","style","removeProperty","setProperty","close","handleActionClick","event","handleTouchStart","setStartCoords","nativeEvent","offsetWidth","offsetHeight","handleTouchMove","setInitialTimeOnce","setEndCoords","delta","shifted","handleTouchEnd","velocity","closeAfterDelay","setTimeout","preventCloseAfterDelayOnUnmount","clearTimeout","clearUserInteractionDataAfterTouchEnd","useEffect","role","baseClassName","baseStyle","div","className","ref","onTouchStart","onTouchMove","onTouchEnd","onMouseDown","onMouseMove","onMouseUp","onMouseLeave","align","appearance","size","onClick"],"mappings":"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"}
|
|
@@ -2,13 +2,14 @@ import type * as React from 'react';
|
|
|
2
2
|
import type { MediaQueries } from '../../lib/adaptivity';
|
|
3
3
|
import type { ShiftData, SnackbarPlacement } from './types';
|
|
4
4
|
export declare function resolveOffsetYCssStyle(placement: SnackbarPlacement, offsetY?: React.CSSProperties['inset']): React.CSSProperties | undefined;
|
|
5
|
+
export declare function revertRtlValue(value: number, isRtl: boolean): number;
|
|
5
6
|
export declare function getInitialShiftData(width: number, height: number, mediaQueries: MediaQueries): ShiftData;
|
|
6
7
|
export declare function getMovedShiftData(placement: SnackbarPlacement, shiftData: ShiftData, nextShift: {
|
|
7
8
|
x: number;
|
|
8
9
|
y: number;
|
|
9
|
-
}): ShiftData;
|
|
10
|
+
}, isRtl?: boolean): ShiftData;
|
|
10
11
|
export declare function shouldBeClosedByShiftData(placement: SnackbarPlacement, shiftData: ShiftData, relativeClientRect: DOMRect, velocity: {
|
|
11
12
|
x: number;
|
|
12
13
|
y: number;
|
|
13
|
-
}): boolean;
|
|
14
|
+
}, isRtl?: boolean): boolean;
|
|
14
15
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Snackbar/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5D,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,iBAAiB,EAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GACrC,KAAK,CAAC,aAAa,GAAG,SAAS,CAcjC;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,GACzB,SAAS,CAUX;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Snackbar/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5D,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,iBAAiB,EAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GACrC,KAAK,CAAC,aAAa,GAAG,SAAS,CAcjC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,UAE3D;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,GACzB,SAAS,CAUX;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACnC,KAAK,UAAQ,GACZ,SAAS,CA+BX;AAID,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,OAAO,EAC3B,QAAQ,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAClC,KAAK,UAAQ,GACZ,OAAO,CAuDT"}
|
|
@@ -18,6 +18,9 @@ export function resolveOffsetYCssStyle(placement, offsetY) {
|
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
+
export function revertRtlValue(value, isRtl) {
|
|
22
|
+
return isRtl ? -1 * value : value;
|
|
23
|
+
}
|
|
21
24
|
export function getInitialShiftData(width, height, mediaQueries) {
|
|
22
25
|
return {
|
|
23
26
|
shifted: false,
|
|
@@ -29,12 +32,12 @@ export function getInitialShiftData(width, height, mediaQueries) {
|
|
|
29
32
|
height
|
|
30
33
|
};
|
|
31
34
|
}
|
|
32
|
-
export function getMovedShiftData(placement, shiftData, nextShift) {
|
|
35
|
+
export function getMovedShiftData(placement, shiftData, nextShift, isRtl = false) {
|
|
33
36
|
/* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */ if (shiftData.isDesktop) {
|
|
34
37
|
if (placement.endsWith('start')) {
|
|
35
|
-
shiftData.x = rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0);
|
|
38
|
+
shiftData.x = isRtl ? rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width) : rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0);
|
|
36
39
|
} else if (placement.endsWith('end')) {
|
|
37
|
-
shiftData.x = rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width);
|
|
40
|
+
shiftData.x = isRtl ? rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0) : rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width);
|
|
38
41
|
}
|
|
39
42
|
if (placement.startsWith('bottom')) {
|
|
40
43
|
shiftData.y = rubberbandIfOutOfBounds(nextShift.y, 0, shiftData.height);
|
|
@@ -52,7 +55,7 @@ export function getMovedShiftData(placement, shiftData, nextShift) {
|
|
|
52
55
|
return shiftData;
|
|
53
56
|
}
|
|
54
57
|
const MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE = 200;
|
|
55
|
-
export function shouldBeClosedByShiftData(placement, shiftData, relativeClientRect, velocity) {
|
|
58
|
+
export function shouldBeClosedByShiftData(placement, shiftData, relativeClientRect, velocity, isRtl = false) {
|
|
56
59
|
if (!shiftData.shifted) {
|
|
57
60
|
return false;
|
|
58
61
|
}
|
|
@@ -66,11 +69,11 @@ export function shouldBeClosedByShiftData(placement, shiftData, relativeClientRe
|
|
|
66
69
|
};
|
|
67
70
|
/* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */ if (shiftData.isDesktop) {
|
|
68
71
|
if (placement.endsWith('start')) {
|
|
69
|
-
shouldBeClosedThreshold.x = relativeClientRect.x < -relativeClientRect.width / 2;
|
|
70
|
-
shouldBeClosedByVelocity.x = relativeClientRect.x < 0 ? velocity.x < -MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;
|
|
72
|
+
shouldBeClosedThreshold.x = revertRtlValue(relativeClientRect.x, isRtl) < -relativeClientRect.width / 2;
|
|
73
|
+
shouldBeClosedByVelocity.x = revertRtlValue(relativeClientRect.x, isRtl) < 0 ? revertRtlValue(velocity.x, isRtl) < revertRtlValue(-MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE, isRtl) : false;
|
|
71
74
|
} else if (placement.endsWith('end')) {
|
|
72
|
-
shouldBeClosedThreshold.x = relativeClientRect.x > relativeClientRect.width / 2;
|
|
73
|
-
shouldBeClosedByVelocity.x = relativeClientRect.x > 0 ? velocity.x > MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;
|
|
75
|
+
shouldBeClosedThreshold.x = revertRtlValue(relativeClientRect.x, isRtl) > relativeClientRect.width / 2;
|
|
76
|
+
shouldBeClosedByVelocity.x = revertRtlValue(relativeClientRect.x, isRtl) > 0 ? revertRtlValue(velocity.x, isRtl) > revertRtlValue(MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE, isRtl) : false;
|
|
74
77
|
}
|
|
75
78
|
if (placement.startsWith('bottom')) {
|
|
76
79
|
shouldBeClosedThreshold.y = relativeClientRect.y > relativeClientRect.height / 2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Snackbar/utils.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { MediaQueries } from '../../lib/adaptivity';\nimport { rubberbandIfOutOfBounds } from '../../lib/animation';\nimport type { ShiftData, SnackbarPlacement } from './types';\n\nexport function resolveOffsetYCssStyle(\n placement: SnackbarPlacement,\n offsetY?: React.CSSProperties['inset'],\n): React.CSSProperties | undefined {\n if (offsetY === undefined) {\n return undefined;\n }\n switch (placement) {\n case 'top-start':\n case 'top':\n case 'top-end':\n return { top: offsetY };\n case 'bottom-start':\n case 'bottom':\n case 'bottom-end':\n return { bottom: offsetY };\n }\n}\n\nexport function getInitialShiftData(\n width: number,\n height: number,\n mediaQueries: MediaQueries,\n): ShiftData {\n return {\n shifted: false,\n direction: null,\n isDesktop: mediaQueries.smallTabletPlus.matches, // eslint-disable-line no-restricted-properties,\n x: 0,\n y: 0,\n width,\n height,\n };\n}\n\nexport function getMovedShiftData(\n placement: SnackbarPlacement,\n shiftData: ShiftData,\n nextShift: { x: number; y: number },\n): ShiftData {\n /* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n if (shiftData.isDesktop) {\n if (placement.endsWith('start')) {\n shiftData.x = rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0);\n } else if (placement.endsWith('end')) {\n shiftData.x = rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width);\n }\n\n if (placement.startsWith('bottom')) {\n shiftData.y = rubberbandIfOutOfBounds(nextShift.y, 0, shiftData.height);\n }\n } else if (placement.startsWith('bottom')) {\n shiftData.x = nextShift.x;\n\n const movingToLeft = nextShift.x < 0 ? -1 : null;\n const movingToRight = nextShift.x > 0 ? 1 : null;\n shiftData.direction = movingToLeft || movingToRight;\n }\n\n if (placement.startsWith('top')) {\n shiftData.y = rubberbandIfOutOfBounds(nextShift.y, -shiftData.height, 0);\n }\n\n shiftData.shifted = true;\n\n return shiftData;\n}\n\nconst MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE = 200;\n\nexport function shouldBeClosedByShiftData(\n placement: SnackbarPlacement,\n shiftData: ShiftData,\n relativeClientRect: DOMRect,\n velocity: { x: number; y: number },\n): boolean {\n if (!shiftData.shifted) {\n return false;\n }\n\n const shouldBeClosedThreshold = { x: false, y: false };\n const shouldBeClosedByVelocity = { x: false, y: false };\n\n /* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n if (shiftData.isDesktop) {\n if (placement.endsWith('start')) {\n shouldBeClosedThreshold.x
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Snackbar/utils.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { MediaQueries } from '../../lib/adaptivity';\nimport { rubberbandIfOutOfBounds } from '../../lib/animation';\nimport type { ShiftData, SnackbarPlacement } from './types';\n\nexport function resolveOffsetYCssStyle(\n placement: SnackbarPlacement,\n offsetY?: React.CSSProperties['inset'],\n): React.CSSProperties | undefined {\n if (offsetY === undefined) {\n return undefined;\n }\n switch (placement) {\n case 'top-start':\n case 'top':\n case 'top-end':\n return { top: offsetY };\n case 'bottom-start':\n case 'bottom':\n case 'bottom-end':\n return { bottom: offsetY };\n }\n}\n\nexport function revertRtlValue(value: number, isRtl: boolean) {\n return isRtl ? -1 * value : value;\n}\n\nexport function getInitialShiftData(\n width: number,\n height: number,\n mediaQueries: MediaQueries,\n): ShiftData {\n return {\n shifted: false,\n direction: null,\n isDesktop: mediaQueries.smallTabletPlus.matches, // eslint-disable-line no-restricted-properties,\n x: 0,\n y: 0,\n width,\n height,\n };\n}\n\nexport function getMovedShiftData(\n placement: SnackbarPlacement,\n shiftData: ShiftData,\n nextShift: { x: number; y: number },\n isRtl = false,\n): ShiftData {\n /* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n if (shiftData.isDesktop) {\n if (placement.endsWith('start')) {\n shiftData.x = isRtl\n ? rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width)\n : rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0);\n } else if (placement.endsWith('end')) {\n shiftData.x = isRtl\n ? rubberbandIfOutOfBounds(nextShift.x, -shiftData.width, 0)\n : rubberbandIfOutOfBounds(nextShift.x, 0, shiftData.width);\n }\n\n if (placement.startsWith('bottom')) {\n shiftData.y = rubberbandIfOutOfBounds(nextShift.y, 0, shiftData.height);\n }\n } else if (placement.startsWith('bottom')) {\n shiftData.x = nextShift.x;\n\n const movingToLeft = nextShift.x < 0 ? -1 : null;\n const movingToRight = nextShift.x > 0 ? 1 : null;\n shiftData.direction = movingToLeft || movingToRight;\n }\n\n if (placement.startsWith('top')) {\n shiftData.y = rubberbandIfOutOfBounds(nextShift.y, -shiftData.height, 0);\n }\n\n shiftData.shifted = true;\n\n return shiftData;\n}\n\nconst MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE = 200;\n\nexport function shouldBeClosedByShiftData(\n placement: SnackbarPlacement,\n shiftData: ShiftData,\n relativeClientRect: DOMRect,\n velocity: { x: number; y: number },\n isRtl = false,\n): boolean {\n if (!shiftData.shifted) {\n return false;\n }\n\n const shouldBeClosedThreshold = { x: false, y: false };\n const shouldBeClosedByVelocity = { x: false, y: false };\n\n /* istanbul ignore else: TODO чтобы протестировать кейс в блоке else, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n if (shiftData.isDesktop) {\n if (placement.endsWith('start')) {\n shouldBeClosedThreshold.x =\n revertRtlValue(relativeClientRect.x, isRtl) < -relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n revertRtlValue(relativeClientRect.x, isRtl) < 0\n ? revertRtlValue(velocity.x, isRtl) <\n revertRtlValue(-MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE, isRtl)\n : false;\n } else if (placement.endsWith('end')) {\n shouldBeClosedThreshold.x =\n revertRtlValue(relativeClientRect.x, isRtl) > relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n revertRtlValue(relativeClientRect.x, isRtl) > 0\n ? revertRtlValue(velocity.x, isRtl) >\n revertRtlValue(MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE, isRtl)\n : false;\n }\n\n if (placement.startsWith('bottom')) {\n shouldBeClosedThreshold.y = relativeClientRect.y > relativeClientRect.height / 2;\n shouldBeClosedByVelocity.y =\n relativeClientRect.y > 0 ? velocity.y > MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;\n }\n } else if (placement.startsWith('bottom')) {\n shouldBeClosedThreshold.x =\n relativeClientRect.x < -relativeClientRect.width / 2 ||\n relativeClientRect.x > relativeClientRect.width / 2;\n shouldBeClosedByVelocity.x =\n (relativeClientRect.x < 0 && velocity.x < -MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE) ||\n (relativeClientRect.x > 0 && velocity.x > MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE);\n }\n\n if (placement.startsWith('top')) {\n shouldBeClosedThreshold.y = relativeClientRect.y < -relativeClientRect.height / 2;\n shouldBeClosedByVelocity.y =\n relativeClientRect.y < 0 ? velocity.y < -MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE : false;\n }\n\n return (\n shouldBeClosedThreshold.x ||\n shouldBeClosedByVelocity.x ||\n shouldBeClosedThreshold.y ||\n /* istanbul ignore next: подсвечивает жёлтым и пишет \"branch not covered\" */\n shouldBeClosedByVelocity.y\n );\n}\n"],"names":["rubberbandIfOutOfBounds","resolveOffsetYCssStyle","placement","offsetY","undefined","top","bottom","revertRtlValue","value","isRtl","getInitialShiftData","width","height","mediaQueries","shifted","direction","isDesktop","smallTabletPlus","matches","x","y","getMovedShiftData","shiftData","nextShift","endsWith","startsWith","movingToLeft","movingToRight","MINIMUM_PAN_GESTURE_FOR_TRIGGER_CLOSE","shouldBeClosedByShiftData","relativeClientRect","velocity","shouldBeClosedThreshold","shouldBeClosedByVelocity"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spacing.d.ts","sourceRoot":"","sources":["../../../src/components/Spacing/Spacing.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAI7D,eAAO,MAAM,6BAA6B,kCAAkC,CAAC;AAE7E,MAAM,WAAW,YAAa,SAAQ,yBAAyB,CAAC,cAAc,CAAC;IAC7E;;;;OAIG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AACD;;GAEG;AACH,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"Spacing.d.ts","sourceRoot":"","sources":["../../../src/components/Spacing/Spacing.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAI7D,eAAO,MAAM,6BAA6B,kCAAkC,CAAC;AAE7E,MAAM,WAAW,YAAa,SAAQ,yBAAyB,CAAC,cAAc,CAAC;IAC7E;;;;OAIG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AACD;;GAEG;AACH,eAAO,MAAM,OAAO,GAAI,wBAA8B,YAAY,KAAG,KAAK,CAAC,SAY1E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitCol.d.ts","sourceRoot":"","sources":["../../../src/components/SplitCol/SplitCol.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAyC7D,MAAM,WAAW,aAAc,SAAQ,yBAAyB,CAAC,cAAc,CAAC;IAC9E,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"SplitCol.d.ts","sourceRoot":"","sources":["../../../src/components/SplitCol/SplitCol.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAyC7D,MAAM,WAAW,aAAc,SAAQ,yBAAyB,CAAC,cAAc,CAAC;IAC9E,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,KAAG,KAAK,CAAC,SA+CrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitLayout.d.ts","sourceRoot":"","sources":["../../../src/components/SplitLayout/SplitLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAGrE,MAAM,WAAW,gBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,MAAM,CAAC,cAAc,CAAC;IACxB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"SplitLayout.d.ts","sourceRoot":"","sources":["../../../src/components/SplitLayout/SplitLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAGrE,MAAM,WAAW,gBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,MAAM,CAAC,cAAc,CAAC;IACxB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,0FAUzB,gBAAgB,KAAG,KAAK,CAAC,SAsB3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubnavigationBar.d.ts","sourceRoot":"","sources":["../../../src/components/SubnavigationBar/SubnavigationBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,sCAAsC,CAAC;AAI9C,MAAM,WAAW,qBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,IAAI,CACF,qBAAqB,EACrB,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,yBAAyB,CAClF;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD;;GAEG;AACH,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"SubnavigationBar.d.ts","sourceRoot":"","sources":["../../../src/components/SubnavigationBar/SubnavigationBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,sCAAsC,CAAC;AAI9C,MAAM,WAAW,qBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,IAAI,CACF,qBAAqB,EACrB,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,yBAAyB,CAClF;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,2GAQ9B,qBAAqB,KAAG,KAAK,CAAC,SA+BhC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubnavigationButton.d.ts","sourceRoot":"","sources":["../../../src/components/SubnavigationButton/SubnavigationButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA2BpE,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IAC3E,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC1C,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoBD;;GAEG;AACH,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"SubnavigationButton.d.ts","sourceRoot":"","sources":["../../../src/components/SubnavigationButton/SubnavigationButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA2BpE,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IAC3E,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC1C,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoBD;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,iGAWjC,wBAAwB,KAAG,KAAK,CAAC,SAgCnC,CAAC"}
|
|
@@ -57,7 +57,7 @@ const SubnavigationButtonTypography = (_param)=>{
|
|
|
57
57
|
return /*#__PURE__*/ _jsx(Tappable, _object_spread_props(_object_spread({}, restProps), {
|
|
58
58
|
hasActive: false,
|
|
59
59
|
focusVisibleMode: "outside",
|
|
60
|
-
baseClassName: classNames("vkuiSubnavigationButton__host", sizeStyles[size], modeStyles[mode], appearanceStyles[appearance], selected && "vkuiSubnavigationButton__selected", sizeY !== 'regular' && sizeYClassNames[sizeY]),
|
|
60
|
+
baseClassName: classNames("vkuiSubnavigationButton__host", sizeStyles[size], modeStyles[mode], appearanceStyles[appearance], selected && "vkuiSubnavigationButton__selected", sizeY !== 'regular' && sizeYClassNames[sizeY], restProps.disabled && "vkuiSubnavigationButton__disabled"),
|
|
61
61
|
children: /*#__PURE__*/ _jsxs("span", {
|
|
62
62
|
className: "vkuiSubnavigationButton__in",
|
|
63
63
|
children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/SubnavigationButton/SubnavigationButton.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon16Dropdown } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport type { HasChildren, HasComponent } from '../../types';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport styles from './SubnavigationButton.module.css';\n\nconst appearanceStyles = {\n accent: styles.appearanceAccent,\n neutral: styles.appearanceNeutral,\n};\n\nconst modeStyles = {\n primary: styles.modePrimary,\n outline: styles.modeOutline,\n tertiary: styles.modeTertiary,\n};\n\nconst sizeStyles = {\n s: styles.sizeS,\n m: styles.sizeM,\n l: styles.sizeL,\n};\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport interface SubnavigationButtonProps extends Omit<TappableProps, 'size'> {\n mode?: 'primary' | 'outline' | 'tertiary';\n appearance?: 'accent' | 'neutral';\n size?: 's' | 'm' | 'l';\n selected?: boolean;\n /**\n * Размер шрифта. Этим свойством рекомендуется пользоваться, чтобы отрегулировать размер шрифта у кнопок в `<SubnavigationBar fixed />`\n */\n textLevel?: '1' | '2' | '3';\n /**\n * Рекомендуется использовать только иконки с размером 24\n */\n before?: React.ReactNode;\n /**\n * Рекомендуется использовать только `<Counter size=\"s\" />` или `<Badge />`\n */\n after?: React.ReactNode;\n chevron?: boolean;\n}\n\ntype SubnavigationButtonTypographyProps = Pick<\n SubnavigationButtonProps,\n 'textLevel' | 'className'\n> &\n HasComponent &\n HasChildren;\n\nconst SubnavigationButtonTypography = ({\n textLevel,\n ...restProps\n}: SubnavigationButtonTypographyProps) => {\n if (textLevel === '1') {\n return <Subhead {...restProps} />;\n }\n\n return <Caption level={textLevel === '2' ? '1' : '2'} {...restProps} />;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SubnavigationButton\n */\nexport const SubnavigationButton = ({\n mode = 'primary',\n appearance = 'accent',\n size = 'm',\n selected,\n textLevel = '1',\n before,\n after,\n chevron,\n children,\n ...restProps\n}: SubnavigationButtonProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Tappable\n {...restProps}\n hasActive={false}\n focusVisibleMode=\"outside\"\n baseClassName={classNames(\n styles.host,\n sizeStyles[size],\n modeStyles[mode],\n appearanceStyles[appearance],\n selected && styles.selected,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n )}\n >\n <span className={styles.in}>\n {before && <span className={styles.before}>{before}</span>}\n <SubnavigationButtonTypography\n textLevel={textLevel}\n className={styles.label}\n Component=\"span\"\n >\n {children}\n </SubnavigationButtonTypography>\n {after && <span className={styles.after}>{after}</span>}\n {chevron && <Icon16Dropdown className={styles.chevronIcon} />}\n </span>\n </Tappable>\n );\n};\n"],"names":["React","Icon16Dropdown","classNames","useAdaptivity","Tappable","Caption","Subhead","appearanceStyles","accent","neutral","modeStyles","primary","outline","tertiary","sizeStyles","s","m","l","sizeYClassNames","none","compact","SubnavigationButtonTypography","textLevel","restProps","level","SubnavigationButton","mode","appearance","size","selected","before","after","chevron","children","sizeY","hasActive","focusVisibleMode","baseClassName","span","className","Component"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAE1D,SAASC,QAAQ,QAA4B,0BAAuB;AACpE,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,OAAO,QAAQ,mCAAgC;AAGxD,MAAMC,mBAAmB;IACvBC,MAAM;IACNC,OAAO;AACT;AAEA,MAAMC,aAAa;IACjBC,OAAO;IACPC,OAAO;IACPC,QAAQ;AACV;AAEA,MAAMC,aAAa;IACjBC,CAAC;IACDC,CAAC;IACDC,CAAC;AACH;AAEA,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AA6BA,MAAMC,gCAAgC;QAAC,EACrCC,SAAS,EAE0B,WADhCC;QADHD;;IAGA,IAAIA,cAAc,KAAK;QACrB,qBAAO,KAAChB,4BAAYiB;IACtB;IAEA,qBAAO,KAAClB;QAAQmB,OAAOF,cAAc,MAAM,MAAM;OAASC;AAC5D;AAEA;;CAEC,GACD,OAAO,MAAME,sBAAsB;QAAC,EAClCC,OAAO,SAAS,EAChBC,aAAa,QAAQ,EACrBC,OAAO,GAAG,EACVC,QAAQ,EACRP,YAAY,GAAG,EACfQ,MAAM,EACNC,KAAK,EACLC,OAAO,EACPC,QAAQ,EAEiB,WADtBV;QATHG;QACAC;QACAC;QACAC;QACAP;QACAQ;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEC,QAAQ,MAAM,EAAE,GAAG/B;IAE3B,qBACE,KAACC,kDACKmB;QACJY,WAAW;QACXC,kBAAiB;QACjBC,eAAenC,4CAEbY,UAAU,CAACc,KAAK,EAChBlB,UAAU,CAACgB,KAAK,EAChBnB,gBAAgB,CAACoB,WAAW,EAC5BE,iDACAK,UAAU,aAAahB,eAAe,CAACgB,MAAM;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SubnavigationButton/SubnavigationButton.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon16Dropdown } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport type { HasChildren, HasComponent } from '../../types';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport styles from './SubnavigationButton.module.css';\n\nconst appearanceStyles = {\n accent: styles.appearanceAccent,\n neutral: styles.appearanceNeutral,\n};\n\nconst modeStyles = {\n primary: styles.modePrimary,\n outline: styles.modeOutline,\n tertiary: styles.modeTertiary,\n};\n\nconst sizeStyles = {\n s: styles.sizeS,\n m: styles.sizeM,\n l: styles.sizeL,\n};\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport interface SubnavigationButtonProps extends Omit<TappableProps, 'size'> {\n mode?: 'primary' | 'outline' | 'tertiary';\n appearance?: 'accent' | 'neutral';\n size?: 's' | 'm' | 'l';\n selected?: boolean;\n /**\n * Размер шрифта. Этим свойством рекомендуется пользоваться, чтобы отрегулировать размер шрифта у кнопок в `<SubnavigationBar fixed />`\n */\n textLevel?: '1' | '2' | '3';\n /**\n * Рекомендуется использовать только иконки с размером 24\n */\n before?: React.ReactNode;\n /**\n * Рекомендуется использовать только `<Counter size=\"s\" />` или `<Badge />`\n */\n after?: React.ReactNode;\n chevron?: boolean;\n}\n\ntype SubnavigationButtonTypographyProps = Pick<\n SubnavigationButtonProps,\n 'textLevel' | 'className'\n> &\n HasComponent &\n HasChildren;\n\nconst SubnavigationButtonTypography = ({\n textLevel,\n ...restProps\n}: SubnavigationButtonTypographyProps) => {\n if (textLevel === '1') {\n return <Subhead {...restProps} />;\n }\n\n return <Caption level={textLevel === '2' ? '1' : '2'} {...restProps} />;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SubnavigationButton\n */\nexport const SubnavigationButton = ({\n mode = 'primary',\n appearance = 'accent',\n size = 'm',\n selected,\n textLevel = '1',\n before,\n after,\n chevron,\n children,\n ...restProps\n}: SubnavigationButtonProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Tappable\n {...restProps}\n hasActive={false}\n focusVisibleMode=\"outside\"\n baseClassName={classNames(\n styles.host,\n sizeStyles[size],\n modeStyles[mode],\n appearanceStyles[appearance],\n selected && styles.selected,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n restProps.disabled && styles.disabled,\n )}\n >\n <span className={styles.in}>\n {before && <span className={styles.before}>{before}</span>}\n <SubnavigationButtonTypography\n textLevel={textLevel}\n className={styles.label}\n Component=\"span\"\n >\n {children}\n </SubnavigationButtonTypography>\n {after && <span className={styles.after}>{after}</span>}\n {chevron && <Icon16Dropdown className={styles.chevronIcon} />}\n </span>\n </Tappable>\n );\n};\n"],"names":["React","Icon16Dropdown","classNames","useAdaptivity","Tappable","Caption","Subhead","appearanceStyles","accent","neutral","modeStyles","primary","outline","tertiary","sizeStyles","s","m","l","sizeYClassNames","none","compact","SubnavigationButtonTypography","textLevel","restProps","level","SubnavigationButton","mode","appearance","size","selected","before","after","chevron","children","sizeY","hasActive","focusVisibleMode","baseClassName","disabled","span","className","Component"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAE1D,SAASC,QAAQ,QAA4B,0BAAuB;AACpE,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,OAAO,QAAQ,mCAAgC;AAGxD,MAAMC,mBAAmB;IACvBC,MAAM;IACNC,OAAO;AACT;AAEA,MAAMC,aAAa;IACjBC,OAAO;IACPC,OAAO;IACPC,QAAQ;AACV;AAEA,MAAMC,aAAa;IACjBC,CAAC;IACDC,CAAC;IACDC,CAAC;AACH;AAEA,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AA6BA,MAAMC,gCAAgC;QAAC,EACrCC,SAAS,EAE0B,WADhCC;QADHD;;IAGA,IAAIA,cAAc,KAAK;QACrB,qBAAO,KAAChB,4BAAYiB;IACtB;IAEA,qBAAO,KAAClB;QAAQmB,OAAOF,cAAc,MAAM,MAAM;OAASC;AAC5D;AAEA;;CAEC,GACD,OAAO,MAAME,sBAAsB;QAAC,EAClCC,OAAO,SAAS,EAChBC,aAAa,QAAQ,EACrBC,OAAO,GAAG,EACVC,QAAQ,EACRP,YAAY,GAAG,EACfQ,MAAM,EACNC,KAAK,EACLC,OAAO,EACPC,QAAQ,EAEiB,WADtBV;QATHG;QACAC;QACAC;QACAC;QACAP;QACAQ;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEC,QAAQ,MAAM,EAAE,GAAG/B;IAE3B,qBACE,KAACC,kDACKmB;QACJY,WAAW;QACXC,kBAAiB;QACjBC,eAAenC,4CAEbY,UAAU,CAACc,KAAK,EAChBlB,UAAU,CAACgB,KAAK,EAChBnB,gBAAgB,CAACoB,WAAW,EAC5BE,iDACAK,UAAU,aAAahB,eAAe,CAACgB,MAAM,EAC7CX,UAAUe,QAAQ;kBAGpB,cAAA,MAACC;YAAKC,SAAS;;gBACZV,wBAAU,KAACS;oBAAKC,SAAS;8BAAkBV;;8BAC5C,KAACT;oBACCC,WAAWA;oBACXkB,SAAS;oBACTC,WAAU;8BAETR;;gBAEFF,uBAAS,KAACQ;oBAAKC,SAAS;8BAAiBT;;gBACzCC,yBAAW,KAAC/B;oBAAeuC,SAAS;;;;;AAI7C,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/components/Switch/Switch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/components/Switch/Switch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAStD,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,UAAU,CAAC,gBAAgB,CAAC,EAC5B,MAAM,CAAC,gBAAgB,CAAC;CAAG;AAE/B;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,2IAWpB,WAAW,KAAG,KAAK,CAAC,SA8EtB,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import { classNames } from "@vkontakte/vkjs";
|
|
8
8
|
import { useAdaptivity } from "../../hooks/useAdaptivity.js";
|
|
9
|
+
import { useConfigDirection } from "../../hooks/useConfigDirection.js";
|
|
9
10
|
import { useFocusVisible } from "../../hooks/useFocusVisible.js";
|
|
10
11
|
import { useFocusVisibleClassName } from "../../hooks/useFocusVisibleClassName.js";
|
|
11
12
|
import { usePlatform } from "../../hooks/usePlatform.js";
|
|
@@ -29,6 +30,8 @@ const sizeYClassNames = {
|
|
|
29
30
|
"onFocus",
|
|
30
31
|
"onClick"
|
|
31
32
|
]);
|
|
33
|
+
const direction = useConfigDirection();
|
|
34
|
+
const isRtl = direction === 'rtl';
|
|
32
35
|
const platform = usePlatform();
|
|
33
36
|
const { sizeY = 'none' } = useAdaptivity();
|
|
34
37
|
const { focusVisible, onBlur, onFocus } = useFocusVisible();
|
|
@@ -66,7 +69,7 @@ const sizeYClassNames = {
|
|
|
66
69
|
inputProps['aria-checked'] = localUncontrolledChecked ? 'true' : 'false';
|
|
67
70
|
}
|
|
68
71
|
return /*#__PURE__*/ _jsxs("label", {
|
|
69
|
-
className: classNames("vkuiSwitch__host", sizeY !== 'regular' && sizeYClassNames[sizeY], platform === 'ios' ? "vkuiSwitch__ios" : "vkuiSwitch__default", disabled && "vkuiSwitch__disabled", focusVisibleClassNames, className),
|
|
72
|
+
className: classNames("vkuiSwitch__host", sizeY !== 'regular' && sizeYClassNames[sizeY], platform === 'ios' ? "vkuiSwitch__ios" : "vkuiSwitch__default", disabled && "vkuiSwitch__disabled", isRtl && "vkuiSwitch__rtl", focusVisibleClassNames, className),
|
|
70
73
|
style: style,
|
|
71
74
|
ref: getRootRef,
|
|
72
75
|
children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Switch/Switch.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useFocusVisible } from '../../hooks/useFocusVisible';\nimport { useFocusVisibleClassName } from '../../hooks/useFocusVisibleClassName';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { callMultiple } from '../../lib/callMultiple';\nimport type { HasRef, HasRootRef } from '../../types';\nimport { VisuallyHidden, type VisuallyHiddenProps } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Switch.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport interface SwitchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLLabelElement>,\n HasRef<HTMLInputElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Switch\n */\nexport const Switch = ({\n style,\n className,\n getRootRef,\n getRef,\n checked: checkedProp,\n disabled,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onClick,\n ...restProps\n}: SwitchProps): React.ReactNode => {\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({ focusVisible, mode: 'outside' });\n const handleBlur = callMultiple(onBlur, onBlurProp);\n const handleFocus = callMultiple(onFocus, onFocusProp);\n\n const [localUncontrolledChecked, setLocalUncontrolledChecked] = React.useState(\n Boolean(restProps.defaultChecked),\n );\n const isControlled = checkedProp !== undefined;\n\n const syncUncontrolledCheckedStateOnClick = React.useCallback(\n (e: React.MouseEvent<HTMLInputElement>) => {\n if (isControlled) {\n return;\n }\n\n const switchTarget = e.target as HTMLInputElement;\n setLocalUncontrolledChecked(switchTarget.checked);\n },\n [isControlled],\n );\n\n const inputProps: VisuallyHiddenProps<HTMLInputElement> = {\n ...restProps,\n Component: 'input',\n getRootRef: getRef,\n type: 'checkbox',\n role: 'switch',\n disabled: disabled,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onClick: callMultiple(syncUncontrolledCheckedStateOnClick, onClick),\n };\n\n if (isControlled) {\n inputProps.checked = checkedProp;\n inputProps['aria-checked'] = checkedProp ? 'true' : 'false';\n } else {\n inputProps['aria-checked'] = localUncontrolledChecked ? 'true' : 'false';\n }\n\n return (\n <label\n className={classNames(\n styles.host,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n platform === 'ios' ? styles.ios : styles.default,\n disabled && styles.disabled,\n focusVisibleClassNames,\n className,\n )}\n style={style}\n ref={getRootRef}\n >\n <VisuallyHidden\n {...inputProps}\n className={styles.inputNative}\n onBlur={handleBlur}\n onFocus={handleFocus}\n />\n <span aria-hidden className={styles.inputFake}>\n <span className={styles.track} />\n <span\n aria-hidden\n className={classNames(\n styles.handle,\n platform !== 'ios' && !disabled && styles.handleWithRipple,\n )}\n />\n </span>\n </label>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useFocusVisible","useFocusVisibleClassName","usePlatform","callMultiple","VisuallyHidden","sizeYClassNames","none","compact","Switch","style","className","getRootRef","getRef","checked","checkedProp","disabled","onBlur","onBlurProp","onFocus","onFocusProp","onClick","restProps","platform","sizeY","focusVisible","focusVisibleClassNames","mode","handleBlur","handleFocus","localUncontrolledChecked","setLocalUncontrolledChecked","useState","Boolean","defaultChecked","isControlled","undefined","syncUncontrolledCheckedStateOnClick","useCallback","e","switchTarget","target","inputProps","Component","type","role","label","ref","span","aria-hidden"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,eAAe,QAAQ,iCAA8B;AAC9D,SAASC,wBAAwB,QAAQ,0CAAuC;AAChF,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,YAAY,QAAQ,4BAAyB;AAEtD,SAASC,cAAc,QAAkC,sCAAmC;AAG5F,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AAOA;;CAEC,GACD,OAAO,MAAMC,SAAS;QAAC,EACrBC,KAAK,EACLC,SAAS,EACTC,UAAU,EACVC,MAAM,EACNC,SAASC,WAAW,EACpBC,QAAQ,EACRC,QAAQC,UAAU,EAClBC,SAASC,WAAW,EACpBC,OAAO,EAEK,WADTC;QATHZ;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;QACAE;QACAE;;IAGA,MAAME,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Switch/Switch.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useFocusVisible } from '../../hooks/useFocusVisible';\nimport { useFocusVisibleClassName } from '../../hooks/useFocusVisibleClassName';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { callMultiple } from '../../lib/callMultiple';\nimport type { HasRef, HasRootRef } from '../../types';\nimport { VisuallyHidden, type VisuallyHiddenProps } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Switch.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport interface SwitchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLLabelElement>,\n HasRef<HTMLInputElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Switch\n */\nexport const Switch = ({\n style,\n className,\n getRootRef,\n getRef,\n checked: checkedProp,\n disabled,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onClick,\n ...restProps\n}: SwitchProps): React.ReactNode => {\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({ focusVisible, mode: 'outside' });\n const handleBlur = callMultiple(onBlur, onBlurProp);\n const handleFocus = callMultiple(onFocus, onFocusProp);\n\n const [localUncontrolledChecked, setLocalUncontrolledChecked] = React.useState(\n Boolean(restProps.defaultChecked),\n );\n const isControlled = checkedProp !== undefined;\n\n const syncUncontrolledCheckedStateOnClick = React.useCallback(\n (e: React.MouseEvent<HTMLInputElement>) => {\n if (isControlled) {\n return;\n }\n\n const switchTarget = e.target as HTMLInputElement;\n setLocalUncontrolledChecked(switchTarget.checked);\n },\n [isControlled],\n );\n\n const inputProps: VisuallyHiddenProps<HTMLInputElement> = {\n ...restProps,\n Component: 'input',\n getRootRef: getRef,\n type: 'checkbox',\n role: 'switch',\n disabled: disabled,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onClick: callMultiple(syncUncontrolledCheckedStateOnClick, onClick),\n };\n\n if (isControlled) {\n inputProps.checked = checkedProp;\n inputProps['aria-checked'] = checkedProp ? 'true' : 'false';\n } else {\n inputProps['aria-checked'] = localUncontrolledChecked ? 'true' : 'false';\n }\n\n return (\n <label\n className={classNames(\n styles.host,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n platform === 'ios' ? styles.ios : styles.default,\n disabled && styles.disabled,\n isRtl && styles.rtl,\n focusVisibleClassNames,\n className,\n )}\n style={style}\n ref={getRootRef}\n >\n <VisuallyHidden\n {...inputProps}\n className={styles.inputNative}\n onBlur={handleBlur}\n onFocus={handleFocus}\n />\n <span aria-hidden className={styles.inputFake}>\n <span className={styles.track} />\n <span\n aria-hidden\n className={classNames(\n styles.handle,\n platform !== 'ios' && !disabled && styles.handleWithRipple,\n )}\n />\n </span>\n </label>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useConfigDirection","useFocusVisible","useFocusVisibleClassName","usePlatform","callMultiple","VisuallyHidden","sizeYClassNames","none","compact","Switch","style","className","getRootRef","getRef","checked","checkedProp","disabled","onBlur","onBlurProp","onFocus","onFocusProp","onClick","restProps","direction","isRtl","platform","sizeY","focusVisible","focusVisibleClassNames","mode","handleBlur","handleFocus","localUncontrolledChecked","setLocalUncontrolledChecked","useState","Boolean","defaultChecked","isControlled","undefined","syncUncontrolledCheckedStateOnClick","useCallback","e","switchTarget","target","inputProps","Component","type","role","label","ref","span","aria-hidden"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,kBAAkB,QAAQ,oCAAiC;AACpE,SAASC,eAAe,QAAQ,iCAA8B;AAC9D,SAASC,wBAAwB,QAAQ,0CAAuC;AAChF,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,YAAY,QAAQ,4BAAyB;AAEtD,SAASC,cAAc,QAAkC,sCAAmC;AAG5F,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AAOA;;CAEC,GACD,OAAO,MAAMC,SAAS;QAAC,EACrBC,KAAK,EACLC,SAAS,EACTC,UAAU,EACVC,MAAM,EACNC,SAASC,WAAW,EACpBC,QAAQ,EACRC,QAAQC,UAAU,EAClBC,SAASC,WAAW,EACpBC,OAAO,EAEK,WADTC;QATHZ;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;QACAE;QACAE;;IAGA,MAAME,YAAYvB;IAClB,MAAMwB,QAAQD,cAAc;IAC5B,MAAME,WAAWtB;IACjB,MAAM,EAAEuB,QAAQ,MAAM,EAAE,GAAG3B;IAC3B,MAAM,EAAE4B,YAAY,EAAEV,MAAM,EAAEE,OAAO,EAAE,GAAGlB;IAC1C,MAAM2B,yBAAyB1B,yBAAyB;QAAEyB;QAAcE,MAAM;IAAU;IACxF,MAAMC,aAAa1B,aAAaa,QAAQC;IACxC,MAAMa,cAAc3B,aAAae,SAASC;IAE1C,MAAM,CAACY,0BAA0BC,4BAA4B,GAAGpC,MAAMqC,QAAQ,CAC5EC,QAAQb,UAAUc,cAAc;IAElC,MAAMC,eAAetB,gBAAgBuB;IAErC,MAAMC,sCAAsC1C,MAAM2C,WAAW,CAC3D,CAACC;QACC,IAAIJ,cAAc;YAChB;QACF;QAEA,MAAMK,eAAeD,EAAEE,MAAM;QAC7BV,4BAA4BS,aAAa5B,OAAO;IAClD,GACA;QAACuB;KAAa;IAGhB,MAAMO,aAAoD,wCACrDtB;QACHuB,WAAW;QACXjC,YAAYC;QACZiC,MAAM;QACNC,MAAM;QACN/B,UAAUA;QACVC,QAAQC;QACRC,SAASC;QACTC,SAASjB,aAAamC,qCAAqClB;;IAG7D,IAAIgB,cAAc;QAChBO,WAAW9B,OAAO,GAAGC;QACrB6B,UAAU,CAAC,eAAe,GAAG7B,cAAc,SAAS;IACtD,OAAO;QACL6B,UAAU,CAAC,eAAe,GAAGZ,2BAA2B,SAAS;IACnE;IAEA,qBACE,MAACgB;QACCrC,WAAWb,+BAET4B,UAAU,aAAapB,eAAe,CAACoB,MAAM,EAC7CD,aAAa,mDACbT,oCACAQ,4BACAI,wBACAjB;QAEFD,OAAOA;QACPuC,KAAKrC;;0BAEL,KAACP,wDACKuC;gBACJjC,SAAS;gBACTM,QAAQa;gBACRX,SAASY;;0BAEX,MAACmB;gBAAKC,aAAW;gBAACxC,SAAS;;kCACzB,KAACuC;wBAAKvC,SAAS;;kCACf,KAACuC;wBACCC,aAAW;wBACXxC,WAAWb,iCAET2B,aAAa,SAAS,CAACT;;;;;;AAMnC,EAAE"}
|