@vkontakte/vkui 7.1.3 → 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 +71 -46
- 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/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 +32 -24
- 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 +4 -2
- package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
- package/dist/components/ModalCard/types.d.ts +1 -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 +24 -32
- package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
- package/dist/components/ModalPage/types.d.ts +12 -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 +2 -2
- package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js +22 -8
- 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.map +1 -1
- package/dist/components/Pagination/Pagination.js +5 -2
- 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/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.map +1 -1
- package/dist/components/Removable/Removable.js +8 -4
- 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.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.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 +71 -44
- 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.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 +2 -2
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +28 -23
- 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 +11 -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 +21 -32
- 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 +20 -7
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.module.css +1 -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 +5 -2
- 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/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 +16 -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 +8 -4
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.module.css +19 -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 +44 -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 +18 -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 +10 -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.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.module.css +9 -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/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/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/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/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 +107 -44
- 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/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 +2 -2
- package/src/components/HorizontalScroll/HorizontalScroll.module.css +10 -4
- package/src/components/HorizontalScroll/HorizontalScroll.tsx +47 -19
- package/src/components/IconButton/IconButton.module.css +9 -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 +2 -0
- package/src/components/ModalCard/types.ts +2 -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 +23 -42
- package/src/components/ModalPage/types.ts +12 -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 +1 -1
- package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +21 -12
- 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 +5 -2
- package/src/components/Pagination/PaginationPage/PaginationPage.module.css +8 -8
- 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 +14 -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 +19 -6
- package/src/components/Removable/Removable.tsx +10 -3
- 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 +40 -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 +18 -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 +9 -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/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 +9 -9
- 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/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/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/cssm/components/ModalCardBase/ModalCardBaseCloseButton.js +0 -39
- package/dist/cssm/components/ModalCardBase/ModalCardBaseCloseButton.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/hooks/useDirection.ts +0 -63
- package/src/lib/tokens/index.ts +0 -11
|
@@ -18,6 +18,7 @@ import { InputLikeDivider } from "../InputLike/InputLikeDivider.js";
|
|
|
18
18
|
import { Popper } from "../Popper/Popper.js";
|
|
19
19
|
import { Text } from "../Typography/Text/Text.js";
|
|
20
20
|
import { VisuallyHidden } from "../VisuallyHidden/VisuallyHidden.js";
|
|
21
|
+
import { useDateInputValue } from "./hooks.js";
|
|
21
22
|
import "../InputLike/InputLike.module.css"; // Reorder css
|
|
22
23
|
import styles from "./DateInput.module.css";
|
|
23
24
|
const sizeYClassNames = {
|
|
@@ -72,19 +73,19 @@ const getInternalValue = (value)=>{
|
|
|
72
73
|
};
|
|
73
74
|
/**
|
|
74
75
|
* @see https://vkcom.github.io/VKUI/#/DateInput
|
|
75
|
-
*/ export const DateInput = ({ enableTime, shouldDisableDate, disableFuture, disablePast, minDateTime, maxDateTime, value: valueProp, onChange, calendarPlacement = 'bottom-start', style, className, doneButtonText, DoneButton, closeOnChange = true, disablePickers, getRootRef, name, autoFocus, disabled, onClick, onFocus, prevMonthLabel = 'Предыдущий месяц', nextMonthLabel = 'Следующий месяц', showNeighboringMonth, size, changeMonthLabel = 'Изменить месяц', changeYearLabel = 'Изменить год', changeDayLabel = 'Изменить день', changeHoursLabel = 'Изменить час', changeMinutesLabel = 'Изменить минуту', clearFieldLabel = 'Очистить поле', showCalendarLabel = 'Показать календарь', viewDate, onHeaderChange, onNextMonth, onPrevMonth, prevMonthIcon, nextMonthIcon, disableCalendar = false, renderDayContent, onCalendarOpenChanged, calendarTestsProps, dayFieldTestId, monthFieldTestId, yearFieldTestId, hourFieldTestId, minuteFieldTestId, id, onApply, ...props })=>{
|
|
76
|
+
*/ export const DateInput = ({ enableTime, shouldDisableDate, disableFuture, disablePast, minDateTime, maxDateTime, value: valueProp, defaultValue, onChange, calendarPlacement: calendarPlacementProp = 'bottom-start', style, className, doneButtonText, DoneButton, closeOnChange = true, disablePickers, getRootRef, name, autoFocus, disabled, onClick, onFocus, prevMonthLabel = 'Предыдущий месяц', nextMonthLabel = 'Следующий месяц', showNeighboringMonth, size, changeMonthLabel = 'Изменить месяц', changeYearLabel = 'Изменить год', changeDayLabel = 'Изменить день', changeHoursLabel = 'Изменить час', changeMinutesLabel = 'Изменить минуту', clearFieldLabel = 'Очистить поле', showCalendarLabel = 'Показать календарь', viewDate, onHeaderChange, onNextMonth, onPrevMonth, prevMonthIcon, nextMonthIcon, disableCalendar = false, renderDayContent, onCalendarOpenChanged, calendarTestsProps, dayFieldTestId, monthFieldTestId, yearFieldTestId, hourFieldTestId, minuteFieldTestId, id, onApply, renderCustomValue, timezone, ...props })=>{
|
|
76
77
|
const daysRef = React.useRef(null);
|
|
77
78
|
const monthsRef = React.useRef(null);
|
|
78
79
|
const yearsRef = React.useRef(null);
|
|
79
80
|
const hoursRef = React.useRef(null);
|
|
80
81
|
const minutesRef = React.useRef(null);
|
|
81
|
-
const
|
|
82
|
+
const { value, updateValue, setInternalValue, getLastUpdatedValue } = useDateInputValue({
|
|
83
|
+
value: valueProp,
|
|
84
|
+
defaultValue,
|
|
85
|
+
onChange,
|
|
86
|
+
timezone
|
|
87
|
+
});
|
|
82
88
|
const maxElement = enableTime ? 4 : 2;
|
|
83
|
-
useIsomorphicLayoutEffect(function updateLocalValue() {
|
|
84
|
-
setValue(valueProp);
|
|
85
|
-
}, [
|
|
86
|
-
valueProp
|
|
87
|
-
]);
|
|
88
89
|
const onInternalValueChange = React.useCallback((internalValue)=>{
|
|
89
90
|
for(let i = 0; i <= maxElement; i += 1){
|
|
90
91
|
if (internalValue[i].length < elementsConfig(i).length) {
|
|
@@ -99,12 +100,12 @@ const getInternalValue = (value)=>{
|
|
|
99
100
|
}
|
|
100
101
|
if (isMatch(formattedValue, mask)) {
|
|
101
102
|
const now = new Date();
|
|
102
|
-
|
|
103
|
+
updateValue(parse(formattedValue, mask, value ?? (enableTime ? startOfMinute(now) : startOfDay(now))));
|
|
103
104
|
}
|
|
104
105
|
}, [
|
|
105
106
|
enableTime,
|
|
106
107
|
maxElement,
|
|
107
|
-
|
|
108
|
+
updateValue,
|
|
108
109
|
value
|
|
109
110
|
]);
|
|
110
111
|
const refs = React.useMemo(()=>[
|
|
@@ -126,7 +127,7 @@ const getInternalValue = (value)=>{
|
|
|
126
127
|
autoFocus,
|
|
127
128
|
disabled,
|
|
128
129
|
elementsConfig,
|
|
129
|
-
onChange,
|
|
130
|
+
onChange: updateValue,
|
|
130
131
|
onInternalValueChange,
|
|
131
132
|
getInternalValue,
|
|
132
133
|
value,
|
|
@@ -136,37 +137,48 @@ const getInternalValue = (value)=>{
|
|
|
136
137
|
const handleRootRef = useExternRef(rootRef, getRootRef);
|
|
137
138
|
useIsomorphicLayoutEffect(function resetValueOnCloseCalendar() {
|
|
138
139
|
if (!open) {
|
|
139
|
-
|
|
140
|
+
setInternalValue(getLastUpdatedValue());
|
|
140
141
|
}
|
|
141
142
|
}, [
|
|
142
143
|
open,
|
|
143
|
-
|
|
144
|
+
getLastUpdatedValue
|
|
144
145
|
]);
|
|
145
146
|
const onCalendarChange = React.useCallback((value)=>{
|
|
146
147
|
if (enableTime) {
|
|
147
|
-
|
|
148
|
+
setInternalValue(value);
|
|
148
149
|
return;
|
|
149
150
|
}
|
|
150
|
-
|
|
151
|
+
updateValue(value);
|
|
151
152
|
if (closeOnChange) {
|
|
152
153
|
removeFocusFromField();
|
|
153
154
|
}
|
|
154
155
|
}, [
|
|
155
|
-
|
|
156
|
-
|
|
156
|
+
enableTime,
|
|
157
|
+
updateValue,
|
|
157
158
|
closeOnChange,
|
|
158
|
-
|
|
159
|
+
setInternalValue,
|
|
160
|
+
removeFocusFromField
|
|
159
161
|
]);
|
|
160
162
|
const onDoneButtonClick = React.useCallback(()=>{
|
|
161
|
-
|
|
162
|
-
|
|
163
|
+
const newValue = updateValue(value);
|
|
164
|
+
onApply?.(newValue);
|
|
163
165
|
removeFocusFromField();
|
|
164
166
|
}, [
|
|
165
167
|
onApply,
|
|
166
|
-
onChange,
|
|
167
168
|
removeFocusFromField,
|
|
169
|
+
updateValue,
|
|
170
|
+
value
|
|
171
|
+
]);
|
|
172
|
+
const customValue = React.useMemo(()=>!open && renderCustomValue?.(value), [
|
|
173
|
+
open,
|
|
174
|
+
renderCustomValue,
|
|
168
175
|
value
|
|
169
176
|
]);
|
|
177
|
+
// при переключении месяцев высота календаря может меняться,
|
|
178
|
+
// чтобы календарь не прыгал при переключении месяцев каждый раз на
|
|
179
|
+
// лучшую позицию мы запоминаем последнюю удачную, чтобы календарь оставался
|
|
180
|
+
// на ней, пока помещается.
|
|
181
|
+
const [calendarPlacement, setCalendarPlacement] = React.useState(calendarPlacementProp);
|
|
170
182
|
return /*#__PURE__*/ _jsxs(FormField, {
|
|
171
183
|
style: style,
|
|
172
184
|
className: classNames(sizeY !== 'regular' && sizeYClassNames[sizeY], className),
|
|
@@ -187,82 +199,92 @@ const getInternalValue = (value)=>{
|
|
|
187
199
|
onFocus: callMultiple(handleFieldEnter, onFocus),
|
|
188
200
|
...props,
|
|
189
201
|
children: [
|
|
190
|
-
/*#__PURE__*/
|
|
191
|
-
|
|
192
|
-
Component: "input",
|
|
193
|
-
name: name,
|
|
194
|
-
value: value ? format(value, enableTime ? "dd.MM.yyyy'T'HH:mm" : 'dd.MM.yyyy') : ''
|
|
195
|
-
}),
|
|
196
|
-
/*#__PURE__*/ _jsxs(Text, {
|
|
197
|
-
className: styles.input,
|
|
198
|
-
onKeyDown: handleKeyDown,
|
|
199
|
-
// Инцидент: в PR https://github.com/VKCOM/VKUI/pull/6649 стабильно ломается порядок стилей
|
|
200
|
-
// из-за чего `.Typography--normalize` перебивает стили.
|
|
201
|
-
normalize: false,
|
|
202
|
-
Component: "span" // для <span> нормализация не нужна
|
|
203
|
-
,
|
|
202
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
203
|
+
className: styles.wrapper,
|
|
204
204
|
children: [
|
|
205
|
-
/*#__PURE__*/ _jsx(
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
value: internalValue[0],
|
|
211
|
-
label: changeDayLabel,
|
|
212
|
-
"data-testid": dayFieldTestId
|
|
213
|
-
}),
|
|
214
|
-
/*#__PURE__*/ _jsx(InputLikeDivider, {
|
|
215
|
-
children: "."
|
|
216
|
-
}),
|
|
217
|
-
/*#__PURE__*/ _jsx(InputLike, {
|
|
218
|
-
length: 2,
|
|
219
|
-
getRootRef: monthsRef,
|
|
220
|
-
index: 1,
|
|
221
|
-
onElementSelect: setFocusedElement,
|
|
222
|
-
value: internalValue[1],
|
|
223
|
-
label: changeMonthLabel,
|
|
224
|
-
"data-testid": monthFieldTestId
|
|
205
|
+
/*#__PURE__*/ _jsx(VisuallyHidden, {
|
|
206
|
+
id: id,
|
|
207
|
+
Component: "input",
|
|
208
|
+
name: name,
|
|
209
|
+
value: value ? format(value, enableTime ? "dd.MM.yyyy'T'HH:mm" : 'dd.MM.yyyy') : ''
|
|
225
210
|
}),
|
|
226
|
-
/*#__PURE__*/
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
value: internalValue[2],
|
|
235
|
-
label: changeYearLabel,
|
|
236
|
-
"data-testid": yearFieldTestId
|
|
237
|
-
}),
|
|
238
|
-
enableTime && /*#__PURE__*/ _jsxs(React.Fragment, {
|
|
211
|
+
/*#__PURE__*/ _jsxs(Text, {
|
|
212
|
+
className: classNames(styles.input, customValue && styles.hidden),
|
|
213
|
+
onKeyDown: handleKeyDown,
|
|
214
|
+
// Инцидент: в PR https://github.com/VKCOM/VKUI/pull/6649 стабильно ломается порядок стилей
|
|
215
|
+
// из-за чего `.Typography--normalize` перебивает стили.
|
|
216
|
+
normalize: false,
|
|
217
|
+
Component: "span" // для <span> нормализация не нужна
|
|
218
|
+
,
|
|
239
219
|
children: [
|
|
220
|
+
/*#__PURE__*/ _jsx(InputLike, {
|
|
221
|
+
length: 2,
|
|
222
|
+
getRootRef: daysRef,
|
|
223
|
+
index: 0,
|
|
224
|
+
onElementSelect: setFocusedElement,
|
|
225
|
+
value: internalValue[0],
|
|
226
|
+
label: changeDayLabel,
|
|
227
|
+
"data-testid": dayFieldTestId
|
|
228
|
+
}),
|
|
240
229
|
/*#__PURE__*/ _jsx(InputLikeDivider, {
|
|
241
|
-
|
|
242
|
-
children: " "
|
|
230
|
+
children: "."
|
|
243
231
|
}),
|
|
244
232
|
/*#__PURE__*/ _jsx(InputLike, {
|
|
245
233
|
length: 2,
|
|
246
|
-
getRootRef:
|
|
247
|
-
index:
|
|
234
|
+
getRootRef: monthsRef,
|
|
235
|
+
index: 1,
|
|
248
236
|
onElementSelect: setFocusedElement,
|
|
249
|
-
value: internalValue[
|
|
250
|
-
label:
|
|
251
|
-
"data-testid":
|
|
237
|
+
value: internalValue[1],
|
|
238
|
+
label: changeMonthLabel,
|
|
239
|
+
"data-testid": monthFieldTestId
|
|
252
240
|
}),
|
|
253
241
|
/*#__PURE__*/ _jsx(InputLikeDivider, {
|
|
254
|
-
children: "
|
|
242
|
+
children: "."
|
|
255
243
|
}),
|
|
256
244
|
/*#__PURE__*/ _jsx(InputLike, {
|
|
257
|
-
length:
|
|
258
|
-
getRootRef:
|
|
259
|
-
index:
|
|
245
|
+
length: 4,
|
|
246
|
+
getRootRef: yearsRef,
|
|
247
|
+
index: 2,
|
|
260
248
|
onElementSelect: setFocusedElement,
|
|
261
|
-
value: internalValue[
|
|
262
|
-
label:
|
|
263
|
-
"data-testid":
|
|
249
|
+
value: internalValue[2],
|
|
250
|
+
label: changeYearLabel,
|
|
251
|
+
"data-testid": yearFieldTestId
|
|
252
|
+
}),
|
|
253
|
+
enableTime && /*#__PURE__*/ _jsxs(React.Fragment, {
|
|
254
|
+
children: [
|
|
255
|
+
/*#__PURE__*/ _jsx(InputLikeDivider, {
|
|
256
|
+
className: styles.inputTimeDivider,
|
|
257
|
+
children: " "
|
|
258
|
+
}),
|
|
259
|
+
/*#__PURE__*/ _jsx(InputLike, {
|
|
260
|
+
length: 2,
|
|
261
|
+
getRootRef: hoursRef,
|
|
262
|
+
index: 3,
|
|
263
|
+
onElementSelect: setFocusedElement,
|
|
264
|
+
value: internalValue[3],
|
|
265
|
+
label: changeHoursLabel,
|
|
266
|
+
"data-testid": hourFieldTestId
|
|
267
|
+
}),
|
|
268
|
+
/*#__PURE__*/ _jsx(InputLikeDivider, {
|
|
269
|
+
children: ":"
|
|
270
|
+
}),
|
|
271
|
+
/*#__PURE__*/ _jsx(InputLike, {
|
|
272
|
+
length: 2,
|
|
273
|
+
getRootRef: minutesRef,
|
|
274
|
+
index: 4,
|
|
275
|
+
onElementSelect: setFocusedElement,
|
|
276
|
+
value: internalValue[4],
|
|
277
|
+
label: changeMinutesLabel,
|
|
278
|
+
"data-testid": minuteFieldTestId
|
|
279
|
+
})
|
|
280
|
+
]
|
|
264
281
|
})
|
|
265
282
|
]
|
|
283
|
+
}),
|
|
284
|
+
customValue && /*#__PURE__*/ _jsx(Text, {
|
|
285
|
+
className: styles.customValue,
|
|
286
|
+
"aria-hidden": true,
|
|
287
|
+
children: customValue
|
|
266
288
|
})
|
|
267
289
|
]
|
|
268
290
|
}),
|
|
@@ -270,6 +292,7 @@ const getInternalValue = (value)=>{
|
|
|
270
292
|
targetRef: rootRef,
|
|
271
293
|
offsetByMainAxis: 8,
|
|
272
294
|
placement: calendarPlacement,
|
|
295
|
+
onPlacementChange: setCalendarPlacement,
|
|
273
296
|
autoUpdateOnTargetResize: true,
|
|
274
297
|
children: /*#__PURE__*/ _jsx(Calendar, {
|
|
275
298
|
value: value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/DateInput/DateInput.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon16Clear, Icon20CalendarOutline } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { startOfDay, startOfMinute } from 'date-fns';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useDateInput } from '../../hooks/useDateInput';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { format, isMatch, parse } from '../../lib/date';\nimport type { PlacementWithAuto } from '../../lib/floating';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { HasRootRef } from '../../types';\nimport { Calendar, type CalendarProps, type CalendarTestsProps } from '../Calendar/Calendar';\nimport { FormField, type FormFieldProps } from '../FormField/FormField';\nimport { IconButton } from '../IconButton/IconButton';\nimport { InputLike } from '../InputLike/InputLike';\nimport { InputLikeDivider } from '../InputLike/InputLikeDivider';\nimport { Popper } from '../Popper/Popper';\nimport { Text } from '../Typography/Text/Text';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport '../InputLike/InputLike.module.css'; // Reorder css\nimport styles from './DateInput.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport type DateInputPropsTestsProps = {\n /**\n * Передает атрибут `data-testid` для поля ввода дня\n */\n dayFieldTestId?: string;\n /**\n * Передает атрибут `data-testid` для поля ввода месяца\n */\n monthFieldTestId?: string;\n /**\n * Передает атрибут `data-testid` для поля ввода года\n */\n yearFieldTestId?: string;\n /**\n * Передает атрибут `data-testid` для поля ввода часа\n */\n hourFieldTestId?: string;\n /**\n * Передает атрибут `data-testid` для поля ввода минут\n */\n minuteFieldTestId?: string;\n};\n\nexport interface DateInputProps\n extends Omit<React.InputHTMLAttributes<HTMLDivElement>, 'value' | 'onChange' | 'size'>,\n Pick<\n CalendarProps,\n | 'disablePast'\n | 'disableFuture'\n | 'enableTime'\n | 'shouldDisableDate'\n | 'onChange'\n | 'value'\n | 'doneButtonText'\n | 'DoneButton'\n | 'weekStartsOn'\n | 'disablePickers'\n | 'changeHoursLabel'\n | 'changeMinutesLabel'\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'changeDayLabel'\n | 'showNeighboringMonth'\n | 'size'\n | 'viewDate'\n | 'onHeaderChange'\n | 'onNextMonth'\n | 'onPrevMonth'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n | 'minDateTime'\n | 'maxDateTime'\n | 'renderDayContent'\n >,\n HasRootRef<HTMLDivElement>,\n Omit<FormFieldProps, 'maxHeight'>,\n DateInputPropsTestsProps {\n /**\n * Передает атрибуты `data-testid` для интерактивных элементов в календаре\n */\n calendarTestsProps?: CalendarTestsProps;\n calendarPlacement?: PlacementWithAuto;\n closeOnChange?: boolean;\n clearFieldLabel?: string;\n showCalendarLabel?: string;\n disableCalendar?: boolean;\n onCalendarOpenChanged?: (opened: boolean) => void;\n /**\n * Колбэк срабатывающий при нажатии на кнопку \"Done\". Используется совместно с флагом `enableTime`.\n */\n onApply?: (value?: Date) => void;\n}\n\nconst elementsConfig = (index: number) => {\n let length = 2;\n let min = 1;\n let max = 0;\n\n switch (index) {\n case 0:\n max = 31;\n break;\n case 1:\n max = 12;\n break;\n case 2:\n max = 2100;\n min = 1900;\n length = 4;\n break;\n case 3:\n max = 23;\n break;\n case 4:\n max = 59;\n break;\n }\n\n return { length, min, max };\n};\n\nconst getInternalValue = (value: CalendarProps['value']) => {\n const newValue = ['', '', '', '', ''];\n if (value) {\n newValue[0] = String(value.getDate()).padStart(2, '0');\n newValue[1] = String(value.getMonth() + 1).padStart(2, '0');\n newValue[2] = String(value.getFullYear()).padStart(4, '0');\n newValue[3] = String(value.getHours()).padStart(2, '0');\n newValue[4] = String(value.getMinutes()).padStart(2, '0');\n }\n return newValue;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/DateInput\n */\nexport const DateInput = ({\n enableTime,\n shouldDisableDate,\n disableFuture,\n disablePast,\n minDateTime,\n maxDateTime,\n value: valueProp,\n onChange,\n calendarPlacement = 'bottom-start',\n style,\n className,\n doneButtonText,\n DoneButton,\n closeOnChange = true,\n disablePickers,\n getRootRef,\n name,\n autoFocus,\n disabled,\n onClick,\n onFocus,\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n showNeighboringMonth,\n size,\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n changeDayLabel = 'Изменить день',\n changeHoursLabel = 'Изменить час',\n changeMinutesLabel = 'Изменить минуту',\n clearFieldLabel = 'Очистить поле',\n showCalendarLabel = 'Показать календарь',\n viewDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n prevMonthIcon,\n nextMonthIcon,\n disableCalendar = false,\n renderDayContent,\n onCalendarOpenChanged,\n calendarTestsProps,\n dayFieldTestId,\n monthFieldTestId,\n yearFieldTestId,\n hourFieldTestId,\n minuteFieldTestId,\n id,\n onApply,\n ...props\n}: DateInputProps): React.ReactNode => {\n const daysRef = React.useRef<HTMLSpanElement>(null);\n const monthsRef = React.useRef<HTMLSpanElement>(null);\n const yearsRef = React.useRef<HTMLSpanElement>(null);\n const hoursRef = React.useRef<HTMLSpanElement>(null);\n const minutesRef = React.useRef<HTMLSpanElement>(null);\n const [value, setValue] = React.useState<Date | undefined>(valueProp);\n\n const maxElement = enableTime ? 4 : 2;\n\n useIsomorphicLayoutEffect(\n function updateLocalValue() {\n setValue(valueProp);\n },\n [valueProp],\n );\n\n const onInternalValueChange = React.useCallback(\n (internalValue: string[]) => {\n for (let i = 0; i <= maxElement; i += 1) {\n if (internalValue[i].length < elementsConfig(i).length) {\n return;\n }\n }\n\n let formattedValue = `${internalValue[0]}.${internalValue[1]}.${internalValue[2]}`;\n let mask = 'dd.MM.yyyy';\n if (enableTime) {\n formattedValue += ` ${internalValue[3]}:${internalValue[4]}`;\n mask += ' HH:mm';\n }\n\n if (isMatch(formattedValue, mask)) {\n const now = new Date();\n onChange?.(\n parse(formattedValue, mask, value ?? (enableTime ? startOfMinute(now) : startOfDay(now))),\n );\n }\n },\n [enableTime, maxElement, onChange, value],\n );\n\n const refs = React.useMemo(\n () => [daysRef, monthsRef, yearsRef, hoursRef, minutesRef],\n [daysRef, monthsRef, yearsRef, hoursRef, minutesRef],\n );\n\n const {\n rootRef,\n calendarRef,\n open,\n openCalendar,\n internalValue,\n handleKeyDown,\n setFocusedElement,\n handleFieldEnter,\n clear,\n removeFocusFromField,\n } = useDateInput({\n maxElement,\n refs,\n autoFocus,\n disabled,\n elementsConfig,\n onChange,\n onInternalValueChange,\n getInternalValue,\n value,\n onCalendarOpenChanged,\n });\n\n const { sizeY = 'none' } = useAdaptivity();\n\n const handleRootRef = useExternRef(rootRef, getRootRef);\n\n useIsomorphicLayoutEffect(\n function resetValueOnCloseCalendar() {\n if (!open) {\n setValue(valueProp);\n }\n },\n [open, valueProp],\n );\n\n const onCalendarChange = React.useCallback(\n (value?: Date | undefined) => {\n if (enableTime) {\n setValue(value);\n return;\n }\n onChange?.(value);\n if (closeOnChange) {\n removeFocusFromField();\n }\n },\n [onChange, removeFocusFromField, closeOnChange, enableTime],\n );\n\n const onDoneButtonClick = React.useCallback(() => {\n onApply?.(value);\n onChange?.(value);\n removeFocusFromField();\n }, [onApply, onChange, removeFocusFromField, value]);\n\n return (\n <FormField\n style={style}\n className={classNames(sizeY !== 'regular' && sizeYClassNames[sizeY], className)}\n getRootRef={handleRootRef}\n after={\n value ? (\n <IconButton hoverMode=\"opacity\" label={clearFieldLabel} onClick={clear}>\n <Icon16Clear />\n </IconButton>\n ) : (\n <IconButton hoverMode=\"opacity\" label={showCalendarLabel} onClick={openCalendar}>\n <Icon20CalendarOutline />\n </IconButton>\n )\n }\n disabled={disabled}\n onClick={callMultiple(handleFieldEnter, onClick)}\n onFocus={callMultiple(handleFieldEnter, onFocus)}\n {...props}\n >\n <VisuallyHidden\n id={id}\n Component=\"input\"\n name={name}\n value={value ? format(value, enableTime ? \"dd.MM.yyyy'T'HH:mm\" : 'dd.MM.yyyy') : ''}\n />\n <Text\n className={styles.input}\n onKeyDown={handleKeyDown}\n // Инцидент: в PR https://github.com/VKCOM/VKUI/pull/6649 стабильно ломается порядок стилей\n // из-за чего `.Typography--normalize` перебивает стили.\n normalize={false}\n Component=\"span\" // для <span> нормализация не нужна\n >\n <InputLike\n length={2}\n getRootRef={daysRef}\n index={0}\n onElementSelect={setFocusedElement}\n value={internalValue[0]}\n label={changeDayLabel}\n data-testid={dayFieldTestId}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={monthsRef}\n index={1}\n onElementSelect={setFocusedElement}\n value={internalValue[1]}\n label={changeMonthLabel}\n data-testid={monthFieldTestId}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={4}\n getRootRef={yearsRef}\n index={2}\n onElementSelect={setFocusedElement}\n value={internalValue[2]}\n label={changeYearLabel}\n data-testid={yearFieldTestId}\n />\n {enableTime && (\n <React.Fragment>\n <InputLikeDivider className={styles.inputTimeDivider}> </InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={hoursRef}\n index={3}\n onElementSelect={setFocusedElement}\n value={internalValue[3]}\n label={changeHoursLabel}\n data-testid={hourFieldTestId}\n />\n <InputLikeDivider>:</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={minutesRef}\n index={4}\n onElementSelect={setFocusedElement}\n value={internalValue[4]}\n label={changeMinutesLabel}\n data-testid={minuteFieldTestId}\n />\n </React.Fragment>\n )}\n </Text>\n {open && !disableCalendar && (\n <Popper\n targetRef={rootRef}\n offsetByMainAxis={8}\n placement={calendarPlacement}\n autoUpdateOnTargetResize\n >\n <Calendar\n value={value}\n onChange={onCalendarChange}\n enableTime={enableTime}\n disablePast={disablePast}\n disableFuture={disableFuture}\n shouldDisableDate={shouldDisableDate}\n onDoneButtonClick={onDoneButtonClick}\n getRootRef={calendarRef}\n doneButtonText={doneButtonText}\n DoneButton={DoneButton}\n disablePickers={disablePickers}\n changeHoursLabel={changeHoursLabel}\n changeMinutesLabel={changeMinutesLabel}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n changeDayLabel={changeDayLabel}\n showNeighboringMonth={showNeighboringMonth}\n renderDayContent={renderDayContent}\n size={size}\n viewDate={viewDate}\n onHeaderChange={onHeaderChange}\n onNextMonth={onNextMonth}\n onPrevMonth={onPrevMonth}\n prevMonthIcon={prevMonthIcon}\n nextMonthIcon={nextMonthIcon}\n minDateTime={minDateTime}\n maxDateTime={maxDateTime}\n {...calendarTestsProps}\n />\n </Popper>\n )}\n </FormField>\n );\n};\n"],"names":["React","Icon16Clear","Icon20CalendarOutline","classNames","startOfDay","startOfMinute","useAdaptivity","useDateInput","useExternRef","callMultiple","format","isMatch","parse","useIsomorphicLayoutEffect","Calendar","FormField","IconButton","InputLike","InputLikeDivider","Popper","Text","VisuallyHidden","styles","sizeYClassNames","none","sizeYNone","compact","sizeYCompact","elementsConfig","index","length","min","max","getInternalValue","value","newValue","String","getDate","padStart","getMonth","getFullYear","getHours","getMinutes","DateInput","enableTime","shouldDisableDate","disableFuture","disablePast","minDateTime","maxDateTime","valueProp","onChange","calendarPlacement","style","className","doneButtonText","DoneButton","closeOnChange","disablePickers","getRootRef","name","autoFocus","disabled","onClick","onFocus","prevMonthLabel","nextMonthLabel","showNeighboringMonth","size","changeMonthLabel","changeYearLabel","changeDayLabel","changeHoursLabel","changeMinutesLabel","clearFieldLabel","showCalendarLabel","viewDate","onHeaderChange","onNextMonth","onPrevMonth","prevMonthIcon","nextMonthIcon","disableCalendar","renderDayContent","onCalendarOpenChanged","calendarTestsProps","dayFieldTestId","monthFieldTestId","yearFieldTestId","hourFieldTestId","minuteFieldTestId","id","onApply","props","daysRef","useRef","monthsRef","yearsRef","hoursRef","minutesRef","setValue","useState","maxElement","updateLocalValue","onInternalValueChange","useCallback","internalValue","i","formattedValue","mask","now","Date","refs","useMemo","rootRef","calendarRef","open","openCalendar","handleKeyDown","setFocusedElement","handleFieldEnter","clear","removeFocusFromField","sizeY","handleRootRef","resetValueOnCloseCalendar","onCalendarChange","onDoneButtonClick","after","hoverMode","label","Component","input","onKeyDown","normalize","onElementSelect","data-testid","Fragment","inputTimeDivider","targetRef","offsetByMainAxis","placement","autoUpdateOnTargetResize"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,WAAW,EAAEC,qBAAqB,QAAQ,mBAAmB;AACtE,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,UAAU,EAAEC,aAAa,QAAQ,WAAW;AACrD,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,YAAY,QAAQ,4BAAyB;AACtD,SAASC,MAAM,EAAEC,OAAO,EAAEC,KAAK,QAAQ,oBAAiB;AAExD,SAASC,yBAAyB,QAAQ,yCAAsC;AAEhF,SAASC,QAAQ,QAAqD,0BAAuB;AAC7F,SAASC,SAAS,QAA6B,4BAAyB;AACxE,SAASC,UAAU,QAAQ,8BAA2B;AACtD,SAASC,SAAS,QAAQ,4BAAyB;AACnD,SAASC,gBAAgB,QAAQ,mCAAgC;AACjE,SAASC,MAAM,QAAQ,sBAAmB;AAC1C,SAASC,IAAI,QAAQ,6BAA0B;AAC/C,SAASC,cAAc,QAAQ,sCAAmC;AAClE,OAAO,oCAAoC,CAAC,cAAc;AAC1D,OAAOC,YAAY,yBAAyB;AAE5C,MAAMC,kBAAkB;IACtBC,MAAMF,OAAOG,SAAS;IACtBC,SAASJ,OAAOK,YAAY;AAC9B;AA6EA,MAAMC,iBAAiB,CAACC;IACtB,IAAIC,SAAS;IACb,IAAIC,MAAM;IACV,IAAIC,MAAM;IAEV,OAAQH;QACN,KAAK;YACHG,MAAM;YACN;QACF,KAAK;YACHA,MAAM;YACN;QACF,KAAK;YACHA,MAAM;YACND,MAAM;YACND,SAAS;YACT;QACF,KAAK;YACHE,MAAM;YACN;QACF,KAAK;YACHA,MAAM;YACN;IACJ;IAEA,OAAO;QAAEF;QAAQC;QAAKC;IAAI;AAC5B;AAEA,MAAMC,mBAAmB,CAACC;IACxB,MAAMC,WAAW;QAAC;QAAI;QAAI;QAAI;QAAI;KAAG;IACrC,IAAID,OAAO;QACTC,QAAQ,CAAC,EAAE,GAAGC,OAAOF,MAAMG,OAAO,IAAIC,QAAQ,CAAC,GAAG;QAClDH,QAAQ,CAAC,EAAE,GAAGC,OAAOF,MAAMK,QAAQ,KAAK,GAAGD,QAAQ,CAAC,GAAG;QACvDH,QAAQ,CAAC,EAAE,GAAGC,OAAOF,MAAMM,WAAW,IAAIF,QAAQ,CAAC,GAAG;QACtDH,QAAQ,CAAC,EAAE,GAAGC,OAAOF,MAAMO,QAAQ,IAAIH,QAAQ,CAAC,GAAG;QACnDH,QAAQ,CAAC,EAAE,GAAGC,OAAOF,MAAMQ,UAAU,IAAIJ,QAAQ,CAAC,GAAG;IACvD;IACA,OAAOH;AACT;AAEA;;CAEC,GACD,OAAO,MAAMQ,YAAY,CAAC,EACxBC,UAAU,EACVC,iBAAiB,EACjBC,aAAa,EACbC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXf,OAAOgB,SAAS,EAChBC,QAAQ,EACRC,oBAAoB,cAAc,EAClCC,KAAK,EACLC,SAAS,EACTC,cAAc,EACdC,UAAU,EACVC,gBAAgB,IAAI,EACpBC,cAAc,EACdC,UAAU,EACVC,IAAI,EACJC,SAAS,EACTC,QAAQ,EACRC,OAAO,EACPC,OAAO,EACPC,iBAAiB,kBAAkB,EACnCC,iBAAiB,iBAAiB,EAClCC,oBAAoB,EACpBC,IAAI,EACJC,mBAAmB,gBAAgB,EACnCC,kBAAkB,cAAc,EAChCC,iBAAiB,eAAe,EAChCC,mBAAmB,cAAc,EACjCC,qBAAqB,iBAAiB,EACtCC,kBAAkB,eAAe,EACjCC,oBAAoB,oBAAoB,EACxCC,QAAQ,EACRC,cAAc,EACdC,WAAW,EACXC,WAAW,EACXC,aAAa,EACbC,aAAa,EACbC,kBAAkB,KAAK,EACvBC,gBAAgB,EAChBC,qBAAqB,EACrBC,kBAAkB,EAClBC,cAAc,EACdC,gBAAgB,EAChBC,eAAe,EACfC,eAAe,EACfC,iBAAiB,EACjBC,EAAE,EACFC,OAAO,EACP,GAAGC,OACY;IACf,MAAMC,UAAU9F,MAAM+F,MAAM,CAAkB;IAC9C,MAAMC,YAAYhG,MAAM+F,MAAM,CAAkB;IAChD,MAAME,WAAWjG,MAAM+F,MAAM,CAAkB;IAC/C,MAAMG,WAAWlG,MAAM+F,MAAM,CAAkB;IAC/C,MAAMI,aAAanG,MAAM+F,MAAM,CAAkB;IACjD,MAAM,CAAC7D,OAAOkE,SAAS,GAAGpG,MAAMqG,QAAQ,CAAmBnD;IAE3D,MAAMoD,aAAa1D,aAAa,IAAI;IAEpC/B,0BACE,SAAS0F;QACPH,SAASlD;IACX,GACA;QAACA;KAAU;IAGb,MAAMsD,wBAAwBxG,MAAMyG,WAAW,CAC7C,CAACC;QACC,IAAK,IAAIC,IAAI,GAAGA,KAAKL,YAAYK,KAAK,EAAG;YACvC,IAAID,aAAa,CAACC,EAAE,CAAC7E,MAAM,GAAGF,eAAe+E,GAAG7E,MAAM,EAAE;gBACtD;YACF;QACF;QAEA,IAAI8E,iBAAiB,GAAGF,aAAa,CAAC,EAAE,CAAC,CAAC,EAAEA,aAAa,CAAC,EAAE,CAAC,CAAC,EAAEA,aAAa,CAAC,EAAE,EAAE;QAClF,IAAIG,OAAO;QACX,IAAIjE,YAAY;YACdgE,kBAAkB,CAAC,CAAC,EAAEF,aAAa,CAAC,EAAE,CAAC,CAAC,EAAEA,aAAa,CAAC,EAAE,EAAE;YAC5DG,QAAQ;QACV;QAEA,IAAIlG,QAAQiG,gBAAgBC,OAAO;YACjC,MAAMC,MAAM,IAAIC;YAChB5D,WACEvC,MAAMgG,gBAAgBC,MAAM3E,SAAUU,CAAAA,aAAavC,cAAcyG,OAAO1G,WAAW0G,IAAG;QAE1F;IACF,GACA;QAAClE;QAAY0D;QAAYnD;QAAUjB;KAAM;IAG3C,MAAM8E,OAAOhH,MAAMiH,OAAO,CACxB,IAAM;YAACnB;YAASE;YAAWC;YAAUC;YAAUC;SAAW,EAC1D;QAACL;QAASE;QAAWC;QAAUC;QAAUC;KAAW;IAGtD,MAAM,EACJe,OAAO,EACPC,WAAW,EACXC,IAAI,EACJC,YAAY,EACZX,aAAa,EACbY,aAAa,EACbC,iBAAiB,EACjBC,gBAAgB,EAChBC,KAAK,EACLC,oBAAoB,EACrB,GAAGnH,aAAa;QACf+F;QACAU;QACAnD;QACAC;QACAlC;QACAuB;QACAqD;QACAvE;QACAC;QACAkD;IACF;IAEA,MAAM,EAAEuC,QAAQ,MAAM,EAAE,GAAGrH;IAE3B,MAAMsH,gBAAgBpH,aAAa0G,SAASvD;IAE5C9C,0BACE,SAASgH;QACP,IAAI,CAACT,MAAM;YACThB,SAASlD;QACX;IACF,GACA;QAACkE;QAAMlE;KAAU;IAGnB,MAAM4E,mBAAmB9H,MAAMyG,WAAW,CACxC,CAACvE;QACC,IAAIU,YAAY;YACdwD,SAASlE;YACT;QACF;QACAiB,WAAWjB;QACX,IAAIuB,eAAe;YACjBiE;QACF;IACF,GACA;QAACvE;QAAUuE;QAAsBjE;QAAeb;KAAW;IAG7D,MAAMmF,oBAAoB/H,MAAMyG,WAAW,CAAC;QAC1Cb,UAAU1D;QACViB,WAAWjB;QACXwF;IACF,GAAG;QAAC9B;QAASzC;QAAUuE;QAAsBxF;KAAM;IAEnD,qBACE,MAACnB;QACCsC,OAAOA;QACPC,WAAWnD,WAAWwH,UAAU,aAAapG,eAAe,CAACoG,MAAM,EAAErE;QACrEK,YAAYiE;QACZI,OACE9F,sBACE,KAAClB;YAAWiH,WAAU;YAAUC,OAAOxD;YAAiBX,SAAS0D;sBAC/D,cAAA,KAACxH;2BAGH,KAACe;YAAWiH,WAAU;YAAUC,OAAOvD;YAAmBZ,SAASsD;sBACjE,cAAA,KAACnH;;QAIP4D,UAAUA;QACVC,SAAStD,aAAa+G,kBAAkBzD;QACxCC,SAASvD,aAAa+G,kBAAkBxD;QACvC,GAAG6B,KAAK;;0BAET,KAACxE;gBACCsE,IAAIA;gBACJwC,WAAU;gBACVvE,MAAMA;gBACN1B,OAAOA,QAAQxB,OAAOwB,OAAOU,aAAa,uBAAuB,gBAAgB;;0BAEnF,MAACxB;gBACCkC,WAAWhC,OAAO8G,KAAK;gBACvBC,WAAWf;gBACX,2FAA2F;gBAC3F,wDAAwD;gBACxDgB,WAAW;gBACXH,WAAU,OAAO,mCAAmC;;;kCAEpD,KAAClH;wBACCa,QAAQ;wBACR6B,YAAYmC;wBACZjE,OAAO;wBACP0G,iBAAiBhB;wBACjBrF,OAAOwE,aAAa,CAAC,EAAE;wBACvBwB,OAAO3D;wBACPiE,eAAalD;;kCAEf,KAACpE;kCAAiB;;kCAClB,KAACD;wBACCa,QAAQ;wBACR6B,YAAYqC;wBACZnE,OAAO;wBACP0G,iBAAiBhB;wBACjBrF,OAAOwE,aAAa,CAAC,EAAE;wBACvBwB,OAAO7D;wBACPmE,eAAajD;;kCAEf,KAACrE;kCAAiB;;kCAClB,KAACD;wBACCa,QAAQ;wBACR6B,YAAYsC;wBACZpE,OAAO;wBACP0G,iBAAiBhB;wBACjBrF,OAAOwE,aAAa,CAAC,EAAE;wBACvBwB,OAAO5D;wBACPkE,eAAahD;;oBAEd5C,4BACC,MAAC5C,MAAMyI,QAAQ;;0CACb,KAACvH;gCAAiBoC,WAAWhC,OAAOoH,gBAAgB;0CAAE;;0CACtD,KAACzH;gCACCa,QAAQ;gCACR6B,YAAYuC;gCACZrE,OAAO;gCACP0G,iBAAiBhB;gCACjBrF,OAAOwE,aAAa,CAAC,EAAE;gCACvBwB,OAAO1D;gCACPgE,eAAa/C;;0CAEf,KAACvE;0CAAiB;;0CAClB,KAACD;gCACCa,QAAQ;gCACR6B,YAAYwC;gCACZtE,OAAO;gCACP0G,iBAAiBhB;gCACjBrF,OAAOwE,aAAa,CAAC,EAAE;gCACvBwB,OAAOzD;gCACP+D,eAAa9C;;;;;;YAKpB0B,QAAQ,CAAClC,iCACR,KAAC/D;gBACCwH,WAAWzB;gBACX0B,kBAAkB;gBAClBC,WAAWzF;gBACX0F,wBAAwB;0BAExB,cAAA,KAAChI;oBACCoB,OAAOA;oBACPiB,UAAU2E;oBACVlF,YAAYA;oBACZG,aAAaA;oBACbD,eAAeA;oBACfD,mBAAmBA;oBACnBkF,mBAAmBA;oBACnBpE,YAAYwD;oBACZ5D,gBAAgBA;oBAChBC,YAAYA;oBACZE,gBAAgBA;oBAChBc,kBAAkBA;oBAClBC,oBAAoBA;oBACpBR,gBAAgBA;oBAChBC,gBAAgBA;oBAChBG,kBAAkBA;oBAClBC,iBAAiBA;oBACjBC,gBAAgBA;oBAChBJ,sBAAsBA;oBACtBgB,kBAAkBA;oBAClBf,MAAMA;oBACNQ,UAAUA;oBACVC,gBAAgBA;oBAChBC,aAAaA;oBACbC,aAAaA;oBACbC,eAAeA;oBACfC,eAAeA;oBACfjC,aAAaA;oBACbC,aAAaA;oBACZ,GAAGoC,kBAAkB;;;;;AAMlC,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/DateInput/DateInput.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon16Clear, Icon20CalendarOutline } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { startOfDay, startOfMinute } from 'date-fns';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useDateInput } from '../../hooks/useDateInput';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { format, isMatch, parse } from '../../lib/date';\nimport type { PlacementWithAuto } from '../../lib/floating';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { HasRootRef } from '../../types';\nimport { Calendar, type CalendarProps, type CalendarTestsProps } from '../Calendar/Calendar';\nimport { FormField, type FormFieldProps } from '../FormField/FormField';\nimport { IconButton } from '../IconButton/IconButton';\nimport { InputLike } from '../InputLike/InputLike';\nimport { InputLikeDivider } from '../InputLike/InputLikeDivider';\nimport { Popper } from '../Popper/Popper';\nimport { Text } from '../Typography/Text/Text';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport { useDateInputValue } from './hooks';\nimport '../InputLike/InputLike.module.css'; // Reorder css\nimport styles from './DateInput.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport type DateInputPropsTestsProps = {\n /**\n * Передает атрибут `data-testid` для поля ввода дня\n */\n dayFieldTestId?: string;\n /**\n * Передает атрибут `data-testid` для поля ввода месяца\n */\n monthFieldTestId?: string;\n /**\n * Передает атрибут `data-testid` для поля ввода года\n */\n yearFieldTestId?: string;\n /**\n * Передает атрибут `data-testid` для поля ввода часа\n */\n hourFieldTestId?: string;\n /**\n * Передает атрибут `data-testid` для поля ввода минут\n */\n minuteFieldTestId?: string;\n};\n\nexport interface DateInputProps\n extends Omit<\n React.InputHTMLAttributes<HTMLDivElement>,\n 'value' | 'defaultValue' | 'onChange' | 'size'\n >,\n Pick<\n CalendarProps,\n | 'disablePast'\n | 'disableFuture'\n | 'enableTime'\n | 'shouldDisableDate'\n | 'onChange'\n | 'value'\n | 'defaultValue'\n | 'doneButtonText'\n | 'DoneButton'\n | 'weekStartsOn'\n | 'disablePickers'\n | 'changeHoursLabel'\n | 'changeMinutesLabel'\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'changeDayLabel'\n | 'showNeighboringMonth'\n | 'size'\n | 'viewDate'\n | 'onHeaderChange'\n | 'onNextMonth'\n | 'onPrevMonth'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n | 'minDateTime'\n | 'maxDateTime'\n | 'renderDayContent'\n >,\n HasRootRef<HTMLDivElement>,\n Omit<FormFieldProps, 'maxHeight'>,\n DateInputPropsTestsProps {\n /**\n * Передает атрибуты `data-testid` для интерактивных элементов в календаре\n */\n calendarTestsProps?: CalendarTestsProps;\n calendarPlacement?: PlacementWithAuto;\n closeOnChange?: boolean;\n clearFieldLabel?: string;\n showCalendarLabel?: string;\n disableCalendar?: boolean;\n onCalendarOpenChanged?: (opened: boolean) => void;\n /**\n * Колбэк срабатывающий при нажатии на кнопку \"Done\". Используется совместно с флагом `enableTime`.\n */\n onApply?: (value?: Date) => void;\n /**\n * Функция для кастомного форматирования отображаемого значения даты.\n * Позволяет переопределить стандартное отображение даты и вернуть собственное представление.\n */\n renderCustomValue?: (date: Date | undefined) => React.ReactNode;\n /**\n * Свойство для отображения времени в нужной таймзоне\n */\n timezone?: string;\n}\n\nconst elementsConfig = (index: number) => {\n let length = 2;\n let min = 1;\n let max = 0;\n\n switch (index) {\n case 0:\n max = 31;\n break;\n case 1:\n max = 12;\n break;\n case 2:\n max = 2100;\n min = 1900;\n length = 4;\n break;\n case 3:\n max = 23;\n break;\n case 4:\n max = 59;\n break;\n }\n\n return { length, min, max };\n};\n\nconst getInternalValue = (value: CalendarProps['value']) => {\n const newValue = ['', '', '', '', ''];\n if (value) {\n newValue[0] = String(value.getDate()).padStart(2, '0');\n newValue[1] = String(value.getMonth() + 1).padStart(2, '0');\n newValue[2] = String(value.getFullYear()).padStart(4, '0');\n newValue[3] = String(value.getHours()).padStart(2, '0');\n newValue[4] = String(value.getMinutes()).padStart(2, '0');\n }\n return newValue;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/DateInput\n */\nexport const DateInput = ({\n enableTime,\n shouldDisableDate,\n disableFuture,\n disablePast,\n minDateTime,\n maxDateTime,\n value: valueProp,\n defaultValue,\n onChange,\n calendarPlacement: calendarPlacementProp = 'bottom-start',\n style,\n className,\n doneButtonText,\n DoneButton,\n closeOnChange = true,\n disablePickers,\n getRootRef,\n name,\n autoFocus,\n disabled,\n onClick,\n onFocus,\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n showNeighboringMonth,\n size,\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n changeDayLabel = 'Изменить день',\n changeHoursLabel = 'Изменить час',\n changeMinutesLabel = 'Изменить минуту',\n clearFieldLabel = 'Очистить поле',\n showCalendarLabel = 'Показать календарь',\n viewDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n prevMonthIcon,\n nextMonthIcon,\n disableCalendar = false,\n renderDayContent,\n onCalendarOpenChanged,\n calendarTestsProps,\n dayFieldTestId,\n monthFieldTestId,\n yearFieldTestId,\n hourFieldTestId,\n minuteFieldTestId,\n id,\n onApply,\n renderCustomValue,\n timezone,\n ...props\n}: DateInputProps): React.ReactNode => {\n const daysRef = React.useRef<HTMLSpanElement>(null);\n const monthsRef = React.useRef<HTMLSpanElement>(null);\n const yearsRef = React.useRef<HTMLSpanElement>(null);\n const hoursRef = React.useRef<HTMLSpanElement>(null);\n const minutesRef = React.useRef<HTMLSpanElement>(null);\n\n const { value, updateValue, setInternalValue, getLastUpdatedValue } = useDateInputValue({\n value: valueProp,\n defaultValue,\n onChange,\n timezone,\n });\n\n const maxElement = enableTime ? 4 : 2;\n\n const onInternalValueChange = React.useCallback(\n (internalValue: string[]) => {\n for (let i = 0; i <= maxElement; i += 1) {\n if (internalValue[i].length < elementsConfig(i).length) {\n return;\n }\n }\n\n let formattedValue = `${internalValue[0]}.${internalValue[1]}.${internalValue[2]}`;\n let mask = 'dd.MM.yyyy';\n if (enableTime) {\n formattedValue += ` ${internalValue[3]}:${internalValue[4]}`;\n mask += ' HH:mm';\n }\n\n if (isMatch(formattedValue, mask)) {\n const now = new Date();\n updateValue(\n parse(formattedValue, mask, value ?? (enableTime ? startOfMinute(now) : startOfDay(now))),\n );\n }\n },\n [enableTime, maxElement, updateValue, value],\n );\n\n const refs = React.useMemo(\n () => [daysRef, monthsRef, yearsRef, hoursRef, minutesRef],\n [daysRef, monthsRef, yearsRef, hoursRef, minutesRef],\n );\n\n const {\n rootRef,\n calendarRef,\n open,\n openCalendar,\n internalValue,\n handleKeyDown,\n setFocusedElement,\n handleFieldEnter,\n clear,\n removeFocusFromField,\n } = useDateInput({\n maxElement,\n refs,\n autoFocus,\n disabled,\n elementsConfig,\n onChange: updateValue,\n onInternalValueChange,\n getInternalValue,\n value,\n onCalendarOpenChanged,\n });\n\n const { sizeY = 'none' } = useAdaptivity();\n\n const handleRootRef = useExternRef(rootRef, getRootRef);\n\n useIsomorphicLayoutEffect(\n function resetValueOnCloseCalendar() {\n if (!open) {\n setInternalValue(getLastUpdatedValue());\n }\n },\n [open, getLastUpdatedValue],\n );\n\n const onCalendarChange = React.useCallback(\n (value?: Date | undefined) => {\n if (enableTime) {\n setInternalValue(value);\n return;\n }\n updateValue(value);\n if (closeOnChange) {\n removeFocusFromField();\n }\n },\n [enableTime, updateValue, closeOnChange, setInternalValue, removeFocusFromField],\n );\n\n const onDoneButtonClick = React.useCallback(() => {\n const newValue = updateValue(value);\n onApply?.(newValue);\n removeFocusFromField();\n }, [onApply, removeFocusFromField, updateValue, value]);\n\n const customValue = React.useMemo(\n () => !open && renderCustomValue?.(value),\n [open, renderCustomValue, value],\n );\n\n // при переключении месяцев высота календаря может меняться,\n // чтобы календарь не прыгал при переключении месяцев каждый раз на\n // лучшую позицию мы запоминаем последнюю удачную, чтобы календарь оставался\n // на ней, пока помещается.\n const [calendarPlacement, setCalendarPlacement] =\n React.useState<PlacementWithAuto>(calendarPlacementProp);\n\n return (\n <FormField\n style={style}\n className={classNames(sizeY !== 'regular' && sizeYClassNames[sizeY], className)}\n getRootRef={handleRootRef}\n after={\n value ? (\n <IconButton hoverMode=\"opacity\" label={clearFieldLabel} onClick={clear}>\n <Icon16Clear />\n </IconButton>\n ) : (\n <IconButton hoverMode=\"opacity\" label={showCalendarLabel} onClick={openCalendar}>\n <Icon20CalendarOutline />\n </IconButton>\n )\n }\n disabled={disabled}\n onClick={callMultiple(handleFieldEnter, onClick)}\n onFocus={callMultiple(handleFieldEnter, onFocus)}\n {...props}\n >\n <div className={styles.wrapper}>\n <VisuallyHidden\n id={id}\n Component=\"input\"\n name={name}\n value={value ? format(value, enableTime ? \"dd.MM.yyyy'T'HH:mm\" : 'dd.MM.yyyy') : ''}\n />\n <Text\n className={classNames(styles.input, customValue && styles.hidden)}\n onKeyDown={handleKeyDown}\n // Инцидент: в PR https://github.com/VKCOM/VKUI/pull/6649 стабильно ломается порядок стилей\n // из-за чего `.Typography--normalize` перебивает стили.\n normalize={false}\n Component=\"span\" // для <span> нормализация не нужна\n >\n <InputLike\n length={2}\n getRootRef={daysRef}\n index={0}\n onElementSelect={setFocusedElement}\n value={internalValue[0]}\n label={changeDayLabel}\n data-testid={dayFieldTestId}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={monthsRef}\n index={1}\n onElementSelect={setFocusedElement}\n value={internalValue[1]}\n label={changeMonthLabel}\n data-testid={monthFieldTestId}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={4}\n getRootRef={yearsRef}\n index={2}\n onElementSelect={setFocusedElement}\n value={internalValue[2]}\n label={changeYearLabel}\n data-testid={yearFieldTestId}\n />\n {enableTime && (\n <React.Fragment>\n <InputLikeDivider className={styles.inputTimeDivider}> </InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={hoursRef}\n index={3}\n onElementSelect={setFocusedElement}\n value={internalValue[3]}\n label={changeHoursLabel}\n data-testid={hourFieldTestId}\n />\n <InputLikeDivider>:</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={minutesRef}\n index={4}\n onElementSelect={setFocusedElement}\n value={internalValue[4]}\n label={changeMinutesLabel}\n data-testid={minuteFieldTestId}\n />\n </React.Fragment>\n )}\n </Text>\n {customValue && (\n <Text className={styles.customValue} aria-hidden>\n {customValue}\n </Text>\n )}\n </div>\n {open && !disableCalendar && (\n <Popper\n targetRef={rootRef}\n offsetByMainAxis={8}\n placement={calendarPlacement}\n onPlacementChange={setCalendarPlacement}\n autoUpdateOnTargetResize\n >\n <Calendar\n value={value}\n onChange={onCalendarChange}\n enableTime={enableTime}\n disablePast={disablePast}\n disableFuture={disableFuture}\n shouldDisableDate={shouldDisableDate}\n onDoneButtonClick={onDoneButtonClick}\n getRootRef={calendarRef}\n doneButtonText={doneButtonText}\n DoneButton={DoneButton}\n disablePickers={disablePickers}\n changeHoursLabel={changeHoursLabel}\n changeMinutesLabel={changeMinutesLabel}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n changeDayLabel={changeDayLabel}\n showNeighboringMonth={showNeighboringMonth}\n renderDayContent={renderDayContent}\n size={size}\n viewDate={viewDate}\n onHeaderChange={onHeaderChange}\n onNextMonth={onNextMonth}\n onPrevMonth={onPrevMonth}\n prevMonthIcon={prevMonthIcon}\n nextMonthIcon={nextMonthIcon}\n minDateTime={minDateTime}\n maxDateTime={maxDateTime}\n {...calendarTestsProps}\n />\n </Popper>\n )}\n </FormField>\n );\n};\n"],"names":["React","Icon16Clear","Icon20CalendarOutline","classNames","startOfDay","startOfMinute","useAdaptivity","useDateInput","useExternRef","callMultiple","format","isMatch","parse","useIsomorphicLayoutEffect","Calendar","FormField","IconButton","InputLike","InputLikeDivider","Popper","Text","VisuallyHidden","useDateInputValue","styles","sizeYClassNames","none","sizeYNone","compact","sizeYCompact","elementsConfig","index","length","min","max","getInternalValue","value","newValue","String","getDate","padStart","getMonth","getFullYear","getHours","getMinutes","DateInput","enableTime","shouldDisableDate","disableFuture","disablePast","minDateTime","maxDateTime","valueProp","defaultValue","onChange","calendarPlacement","calendarPlacementProp","style","className","doneButtonText","DoneButton","closeOnChange","disablePickers","getRootRef","name","autoFocus","disabled","onClick","onFocus","prevMonthLabel","nextMonthLabel","showNeighboringMonth","size","changeMonthLabel","changeYearLabel","changeDayLabel","changeHoursLabel","changeMinutesLabel","clearFieldLabel","showCalendarLabel","viewDate","onHeaderChange","onNextMonth","onPrevMonth","prevMonthIcon","nextMonthIcon","disableCalendar","renderDayContent","onCalendarOpenChanged","calendarTestsProps","dayFieldTestId","monthFieldTestId","yearFieldTestId","hourFieldTestId","minuteFieldTestId","id","onApply","renderCustomValue","timezone","props","daysRef","useRef","monthsRef","yearsRef","hoursRef","minutesRef","updateValue","setInternalValue","getLastUpdatedValue","maxElement","onInternalValueChange","useCallback","internalValue","i","formattedValue","mask","now","Date","refs","useMemo","rootRef","calendarRef","open","openCalendar","handleKeyDown","setFocusedElement","handleFieldEnter","clear","removeFocusFromField","sizeY","handleRootRef","resetValueOnCloseCalendar","onCalendarChange","onDoneButtonClick","customValue","setCalendarPlacement","useState","after","hoverMode","label","div","wrapper","Component","input","hidden","onKeyDown","normalize","onElementSelect","data-testid","Fragment","inputTimeDivider","aria-hidden","targetRef","offsetByMainAxis","placement","onPlacementChange","autoUpdateOnTargetResize"],"mappings":"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"}
|
|
@@ -1,15 +1,50 @@
|
|
|
1
|
+
.wrapper {
|
|
2
|
+
position: relative;
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-grow: 1;
|
|
5
|
+
min-inline-size: inherit;
|
|
6
|
+
min-block-size: inherit;
|
|
7
|
+
|
|
8
|
+
--vkui_internal--DateInput_input_margin_inline_start: 10px;
|
|
9
|
+
--vkui_internal--DateInput_input_margin_inline_end: 14px;
|
|
10
|
+
}
|
|
11
|
+
|
|
1
12
|
.input {
|
|
13
|
+
z-index: var(--vkui_internal--z_index_form_field_element);
|
|
2
14
|
display: block;
|
|
3
15
|
flex-grow: 1;
|
|
4
16
|
align-self: center;
|
|
5
|
-
margin-inline:
|
|
6
|
-
|
|
7
|
-
|
|
17
|
+
margin-inline: var(--vkui_internal--DateInput_input_margin_inline_start)
|
|
18
|
+
var(--vkui_internal--DateInput_input_margin_inline_end);
|
|
19
|
+
font-variant-numeric: tabular-nums;
|
|
8
20
|
white-space: nowrap;
|
|
21
|
+
cursor: text;
|
|
9
22
|
-webkit-user-select: text;
|
|
10
23
|
-moz-user-select: text;
|
|
11
24
|
user-select: text;
|
|
12
|
-
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.hidden {
|
|
28
|
+
opacity: 0;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.customValue {
|
|
32
|
+
position: absolute;
|
|
33
|
+
box-sizing: border-box;
|
|
34
|
+
align-self: center;
|
|
35
|
+
inline-size: calc(
|
|
36
|
+
100% - var(--vkui_internal--DateInput_input_margin_inline_start) -
|
|
37
|
+
var(--vkui_internal--DateInput_input_margin_inline_end)
|
|
38
|
+
);
|
|
39
|
+
margin-inline: var(--vkui_internal--DateInput_input_margin_inline_start)
|
|
40
|
+
var(--vkui_internal--DateInput_input_margin_inline_end);
|
|
41
|
+
overflow: hidden;
|
|
42
|
+
text-overflow: ellipsis;
|
|
43
|
+
white-space: nowrap;
|
|
44
|
+
pointer-events: none;
|
|
45
|
+
-webkit-user-select: none;
|
|
46
|
+
-moz-user-select: none;
|
|
47
|
+
user-select: none;
|
|
13
48
|
}
|
|
14
49
|
|
|
15
50
|
.inputTimeDivider {
|
|
@@ -24,7 +59,6 @@
|
|
|
24
59
|
|
|
25
60
|
@media (pointer: fine) and (min-width: 768px),(max-height: 414.9px) {
|
|
26
61
|
.sizeYNone .input {
|
|
27
|
-
|
|
28
|
-
margin-inline-end: 22px;
|
|
62
|
+
--vkui_internal--DateInput_input_margin_inline_end: 22px;
|
|
29
63
|
}
|
|
30
64
|
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { convertDateFromTimeZone, convertDateToTimeZone } from "../../lib/date.js";
|
|
3
|
+
const _convertDateToTimeZone = (date, timezone)=>{
|
|
4
|
+
return convertDateToTimeZone(date, timezone) || undefined;
|
|
5
|
+
};
|
|
6
|
+
const _convertDateFromTimeZone = (date, timezone)=>{
|
|
7
|
+
return convertDateFromTimeZone(date, timezone) || undefined;
|
|
8
|
+
};
|
|
9
|
+
const getStateValue = (defaultStateValue, value, defaultValue, timezone)=>{
|
|
10
|
+
if (value !== undefined) {
|
|
11
|
+
return _convertDateToTimeZone(value, timezone);
|
|
12
|
+
}
|
|
13
|
+
if (defaultValue !== undefined) {
|
|
14
|
+
return _convertDateToTimeZone(defaultValue, timezone);
|
|
15
|
+
}
|
|
16
|
+
return _convertDateToTimeZone(defaultStateValue, timezone);
|
|
17
|
+
};
|
|
18
|
+
export const useDateInputValue = ({ value, defaultValue, onChange, timezone })=>{
|
|
19
|
+
const isControlled = value !== undefined;
|
|
20
|
+
const [internalValue, setInternalValue] = React.useState(getStateValue(undefined, value, defaultValue, timezone));
|
|
21
|
+
const lastUpdatedValueRef = React.useRef(getStateValue(undefined, value, defaultValue, timezone));
|
|
22
|
+
React.useEffect(()=>{
|
|
23
|
+
if (isControlled) {
|
|
24
|
+
setInternalValue(_convertDateToTimeZone(value, timezone));
|
|
25
|
+
lastUpdatedValueRef.current = _convertDateToTimeZone(value, timezone);
|
|
26
|
+
}
|
|
27
|
+
}, [
|
|
28
|
+
isControlled,
|
|
29
|
+
timezone,
|
|
30
|
+
value
|
|
31
|
+
]);
|
|
32
|
+
const getLastUpdatedValue = React.useCallback(()=>lastUpdatedValueRef.current, []);
|
|
33
|
+
const updateValue = React.useCallback((newValue)=>{
|
|
34
|
+
if (!isControlled) {
|
|
35
|
+
setInternalValue(newValue);
|
|
36
|
+
lastUpdatedValueRef.current = newValue;
|
|
37
|
+
}
|
|
38
|
+
const originalTimezoneValue = _convertDateFromTimeZone(newValue, timezone);
|
|
39
|
+
onChange?.(originalTimezoneValue);
|
|
40
|
+
return originalTimezoneValue;
|
|
41
|
+
}, [
|
|
42
|
+
isControlled,
|
|
43
|
+
onChange,
|
|
44
|
+
timezone
|
|
45
|
+
]);
|
|
46
|
+
return {
|
|
47
|
+
value: internalValue,
|
|
48
|
+
updateValue,
|
|
49
|
+
setInternalValue,
|
|
50
|
+
getLastUpdatedValue
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/DateInput/hooks.ts"],"sourcesContent":["import * as React from 'react';\nimport { convertDateFromTimeZone, convertDateToTimeZone } from '../../lib/date';\n\ninterface UseDateInputValueOptions {\n value?: Date;\n defaultValue?: Date;\n onChange?: (value?: Date) => void;\n timezone?: string;\n}\n\nexport interface UseDateInputValueReturn {\n value?: Date;\n updateValue: (v?: Date) => Date | undefined;\n setInternalValue: (v?: Date) => void;\n getLastUpdatedValue: () => Date | undefined;\n}\n\nconst _convertDateToTimeZone = (date?: Date, timezone?: string): Date | undefined => {\n return convertDateToTimeZone(date, timezone) || undefined;\n};\n\nconst _convertDateFromTimeZone = (date?: Date, timezone?: string): Date | undefined => {\n return convertDateFromTimeZone(date, timezone) || undefined;\n};\n\nconst getStateValue = (\n defaultStateValue?: Date,\n value?: Date,\n defaultValue?: Date,\n timezone?: string,\n): Date | undefined => {\n if (value !== undefined) {\n return _convertDateToTimeZone(value, timezone);\n }\n if (defaultValue !== undefined) {\n return _convertDateToTimeZone(defaultValue, timezone);\n }\n return _convertDateToTimeZone(defaultStateValue, timezone);\n};\n\nexport const useDateInputValue = ({\n value,\n defaultValue,\n onChange,\n timezone,\n}: UseDateInputValueOptions): UseDateInputValueReturn => {\n const isControlled = value !== undefined;\n\n const [internalValue, setInternalValue] = React.useState<Date | undefined>(\n getStateValue(undefined, value, defaultValue, timezone),\n );\n const lastUpdatedValueRef = React.useRef<Date | undefined>(\n getStateValue(undefined, value, defaultValue, timezone),\n );\n\n React.useEffect(() => {\n if (isControlled) {\n setInternalValue(_convertDateToTimeZone(value, timezone));\n lastUpdatedValueRef.current = _convertDateToTimeZone(value, timezone);\n }\n }, [isControlled, timezone, value]);\n\n const getLastUpdatedValue = React.useCallback(() => lastUpdatedValueRef.current, []);\n\n const updateValue = React.useCallback(\n (newValue?: Date) => {\n if (!isControlled) {\n setInternalValue(newValue);\n lastUpdatedValueRef.current = newValue;\n }\n const originalTimezoneValue = _convertDateFromTimeZone(newValue, timezone);\n onChange?.(originalTimezoneValue);\n return originalTimezoneValue;\n },\n [isControlled, onChange, timezone],\n );\n\n return {\n value: internalValue,\n updateValue,\n setInternalValue,\n getLastUpdatedValue,\n };\n};\n"],"names":["React","convertDateFromTimeZone","convertDateToTimeZone","_convertDateToTimeZone","date","timezone","undefined","_convertDateFromTimeZone","getStateValue","defaultStateValue","value","defaultValue","useDateInputValue","onChange","isControlled","internalValue","setInternalValue","useState","lastUpdatedValueRef","useRef","useEffect","current","getLastUpdatedValue","useCallback","updateValue","newValue","originalTimezoneValue"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,uBAAuB,EAAEC,qBAAqB,QAAQ,oBAAiB;AAgBhF,MAAMC,yBAAyB,CAACC,MAAaC;IAC3C,OAAOH,sBAAsBE,MAAMC,aAAaC;AAClD;AAEA,MAAMC,2BAA2B,CAACH,MAAaC;IAC7C,OAAOJ,wBAAwBG,MAAMC,aAAaC;AACpD;AAEA,MAAME,gBAAgB,CACpBC,mBACAC,OACAC,cACAN;IAEA,IAAIK,UAAUJ,WAAW;QACvB,OAAOH,uBAAuBO,OAAOL;IACvC;IACA,IAAIM,iBAAiBL,WAAW;QAC9B,OAAOH,uBAAuBQ,cAAcN;IAC9C;IACA,OAAOF,uBAAuBM,mBAAmBJ;AACnD;AAEA,OAAO,MAAMO,oBAAoB,CAAC,EAChCF,KAAK,EACLC,YAAY,EACZE,QAAQ,EACRR,QAAQ,EACiB;IACzB,MAAMS,eAAeJ,UAAUJ;IAE/B,MAAM,CAACS,eAAeC,iBAAiB,GAAGhB,MAAMiB,QAAQ,CACtDT,cAAcF,WAAWI,OAAOC,cAAcN;IAEhD,MAAMa,sBAAsBlB,MAAMmB,MAAM,CACtCX,cAAcF,WAAWI,OAAOC,cAAcN;IAGhDL,MAAMoB,SAAS,CAAC;QACd,IAAIN,cAAc;YAChBE,iBAAiBb,uBAAuBO,OAAOL;YAC/Ca,oBAAoBG,OAAO,GAAGlB,uBAAuBO,OAAOL;QAC9D;IACF,GAAG;QAACS;QAAcT;QAAUK;KAAM;IAElC,MAAMY,sBAAsBtB,MAAMuB,WAAW,CAAC,IAAML,oBAAoBG,OAAO,EAAE,EAAE;IAEnF,MAAMG,cAAcxB,MAAMuB,WAAW,CACnC,CAACE;QACC,IAAI,CAACX,cAAc;YACjBE,iBAAiBS;YACjBP,oBAAoBG,OAAO,GAAGI;QAChC;QACA,MAAMC,wBAAwBnB,yBAAyBkB,UAAUpB;QACjEQ,WAAWa;QACX,OAAOA;IACT,GACA;QAACZ;QAAcD;QAAUR;KAAS;IAGpC,OAAO;QACLK,OAAOK;QACPS;QACAR;QACAM;IACF;AACF,EAAE"}
|