@vkontakte/vkui 5.5.4 → 5.6.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/README.md +2 -2
- package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
- package/dist/cjs/components/Accordion/AccordionSummary.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -2
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
- package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRoot.js +6 -5
- package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cjs/components/AppRoot/ScrollContext.js +5 -3
- package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/cjs/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
- package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/cjs/components/Avatar/AvatarBadge/icons.js.map +1 -1
- package/dist/cjs/components/Avatar/helpers.js.map +1 -1
- package/dist/cjs/components/Badge/Badge.js.map +1 -1
- package/dist/cjs/components/Banner/Banner.d.ts +5 -1
- package/dist/cjs/components/Banner/Banner.js +4 -3
- package/dist/cjs/components/Banner/Banner.js.map +1 -1
- package/dist/cjs/components/BaseGallery/BaseGallery.js +15 -9
- package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/cjs/components/BaseGallery/helpers.js.map +1 -1
- package/dist/cjs/components/Button/Button.d.ts +2 -1
- package/dist/cjs/components/Button/Button.js +5 -3
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/cjs/components/Calendar/Calendar.js +2 -1
- package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
- package/dist/cjs/components/CalendarDay/CalendarDay.js +4 -2
- package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cjs/components/CalendarDays/CalendarDays.js +6 -5
- package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.js +16 -8
- package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cjs/components/CalendarTime/CalendarTime.js +4 -2
- package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/cjs/components/Card/Card.js.map +1 -1
- package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cjs/components/Cell/Cell.js.map +1 -1
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
- package/dist/cjs/components/Cell/useDraggable.js.map +1 -1
- package/dist/cjs/components/CellButton/CellButton.js.map +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cjs/components/Chip/Chip.js.map +1 -1
- package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cjs/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
- package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +10 -4
- package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +20 -9
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
- package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cjs/components/Counter/Counter.js.map +1 -1
- package/dist/cjs/components/CustomScrollView/CustomScrollView.js +2 -1
- package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +15 -8
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +4 -2
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.js +4 -2
- package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.js +8 -5
- package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js +11 -7
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cjs/components/Div/Div.js.map +1 -1
- package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/cjs/components/Epic/Epic.d.ts +1 -0
- package/dist/cjs/components/Epic/Epic.js.map +1 -1
- package/dist/cjs/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/cjs/components/File/File.js.map +1 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.js +2 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cjs/components/FocusTrap/FocusTrap.js +4 -3
- package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
- package/dist/cjs/components/Footer/Footer.js.map +1 -1
- package/dist/cjs/components/FormField/FormField.js.map +1 -1
- package/dist/cjs/components/FormItem/FormItem.js +2 -1
- package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
- package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/cjs/components/Gallery/Gallery.js.map +1 -1
- package/dist/cjs/components/Gradient/Gradient.js.map +1 -1
- package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/cjs/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
- package/dist/cjs/components/Group/Group.d.ts +8 -8
- package/dist/cjs/components/Group/Group.js +1 -1
- package/dist/cjs/components/Group/Group.js.map +1 -1
- package/dist/cjs/components/Header/Header.js.map +1 -1
- package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
- package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.js +56 -0
- package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +2 -2
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
- package/dist/cjs/components/Image/Image.js.map +1 -1
- package/dist/cjs/components/Image/ImageBadge/ImageBadge.js.map +1 -1
- package/dist/cjs/components/ImageBase/ImageBase.js +4 -2
- package/dist/cjs/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/cjs/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
- package/dist/cjs/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
- package/dist/cjs/components/ImageBase/context.js.map +1 -1
- package/dist/cjs/components/ImageBase/helpers.js.map +1 -1
- package/dist/cjs/components/ImageBase/validators.js +3 -4
- package/dist/cjs/components/ImageBase/validators.js.map +1 -1
- package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/cjs/components/Input/Input.js.map +1 -1
- package/dist/cjs/components/InputLike/InputLike.js +6 -4
- package/dist/cjs/components/InputLike/InputLike.js.map +1 -1
- package/dist/cjs/components/InputLike/InputLikeDivider.js.map +1 -1
- package/dist/cjs/components/Link/Link.js.map +1 -1
- package/dist/cjs/components/List/List.js.map +1 -1
- package/dist/cjs/components/List/ListContext.js.map +1 -1
- package/dist/cjs/components/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js +9 -8
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPageContext.js.map +1 -1
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js +21 -15
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +12 -6
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cjs/components/ModalRoot/types.d.ts +4 -2
- package/dist/cjs/components/ModalRoot/types.js.map +1 -1
- package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cjs/components/ModalRoot/useModalRootContext.js.map +1 -1
- package/dist/cjs/components/ModalRoot/withModalRootContext.js.map +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cjs/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
- package/dist/cjs/components/Pagination/Pagination.js +2 -1
- package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
- package/dist/cjs/components/Panel/Panel.js.map +1 -1
- package/dist/cjs/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
- package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/cjs/components/PanelSpinner/PanelSpinner.js.map +1 -1
- package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/cjs/components/PlatformProvider/PlatformProvider.js.map +1 -1
- package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cjs/components/Popover/Popover.js.map +1 -1
- package/dist/cjs/components/Popper/Popper.js.map +1 -1
- package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/cjs/components/Progress/Progress.js.map +1 -1
- package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js +2 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
- package/dist/cjs/components/Radio/Radio.js.map +1 -1
- package/dist/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/cjs/components/Removable/Removable.js +2 -2
- package/dist/cjs/components/Removable/Removable.js.map +1 -1
- package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
- package/dist/cjs/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
- package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
- package/dist/cjs/components/Root/Root.d.ts +1 -0
- package/dist/cjs/components/Root/Root.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cjs/components/ScrollArrow/ScrollArrow.js.map +1 -1
- package/dist/cjs/components/Search/Search.js +2 -2
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cjs/components/Separator/Separator.js.map +1 -1
- package/dist/cjs/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
- package/dist/cjs/components/SimpleCell/Chevron/Chevron.js +27 -0
- package/dist/cjs/components/SimpleCell/Chevron/Chevron.js.map +1 -0
- package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +6 -2
- package/dist/cjs/components/SimpleCell/SimpleCell.js +16 -5
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/Slider/Slider.js.map +1 -1
- package/dist/cjs/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
- package/dist/cjs/components/Slider/helpers.js.map +1 -1
- package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
- package/dist/cjs/components/Spinner/Spinner.d.ts +2 -1
- package/dist/cjs/components/Spinner/Spinner.js +19 -4
- package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitColContext.js.map +1 -1
- package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cjs/components/Switch/Switch.js.map +1 -1
- package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
- package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
- package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/cjs/components/Textarea/Textarea.js +2 -1
- package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js +4 -2
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/components/Tooltip/TooltipContainer.js.map +1 -1
- package/dist/cjs/components/Touch/Touch.js +1 -1
- package/dist/cjs/components/Touch/Touch.js.map +1 -1
- package/dist/cjs/components/Touch/TouchContext.js.map +1 -1
- package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
- package/dist/cjs/components/Typography/Typography.js.map +1 -1
- package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cjs/components/View/View.d.ts +1 -0
- package/dist/cjs/components/View/View.js +16 -8
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
- package/dist/cjs/components/View/utils.js +2 -2
- package/dist/cjs/components/View/utils.js.map +1 -1
- package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cjs/helpers/appearance.js.map +1 -1
- package/dist/cjs/helpers/generateVKUITokensClassName.js.map +1 -1
- package/dist/cjs/helpers/getPlatformClassName.js.map +1 -1
- package/dist/cjs/helpers/math.js.map +1 -1
- package/dist/cjs/helpers/range.js.map +1 -1
- package/dist/cjs/hoc/withContext.js.map +1 -1
- package/dist/cjs/hoc/withInsets.js.map +1 -1
- package/dist/cjs/hoc/withPlatform.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivity.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityConditionalRender/index.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityHasHover.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityHasPointer.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
- package/dist/cjs/hooks/useAppearance.js.map +1 -1
- package/dist/cjs/hooks/useAutoDetectAppearance.js +2 -1
- package/dist/cjs/hooks/useAutoDetectAppearance.js.map +1 -1
- package/dist/cjs/hooks/useBooleanState.js.map +1 -1
- package/dist/cjs/hooks/useBridgeAdaptivity.js.map +1 -1
- package/dist/cjs/hooks/useCalendar.js +6 -3
- package/dist/cjs/hooks/useCalendar.js.map +1 -1
- package/dist/cjs/hooks/useChipsInput.js +2 -1
- package/dist/cjs/hooks/useChipsInput.js.map +1 -1
- package/dist/cjs/hooks/useChipsSelect.js.map +1 -1
- package/dist/cjs/hooks/useDateInput.js +5 -3
- package/dist/cjs/hooks/useDateInput.js.map +1 -1
- package/dist/cjs/hooks/useEffectDev.js.map +1 -1
- package/dist/cjs/hooks/useEnsuredControl.js.map +1 -1
- package/dist/cjs/hooks/useEventListener.js.map +1 -1
- package/dist/cjs/hooks/useExternRef.js.map +1 -1
- package/dist/cjs/hooks/useFocusVisible.js.map +1 -1
- package/dist/cjs/hooks/useFocusWithin.js.map +1 -1
- package/dist/cjs/hooks/useGlobalEventListener.js.map +1 -1
- package/dist/cjs/hooks/useId.js.map +1 -1
- package/dist/cjs/hooks/useInsets.js.map +1 -1
- package/dist/cjs/hooks/useIsClient.js.map +1 -1
- package/dist/cjs/hooks/useKeyboard.js +4 -4
- package/dist/cjs/hooks/useKeyboard.js.map +1 -1
- package/dist/cjs/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/cjs/hooks/useMediaQueries.js.map +1 -1
- package/dist/cjs/hooks/useObjectMemo.js.map +1 -1
- package/dist/cjs/hooks/useOrientationChange.js +1 -1
- package/dist/cjs/hooks/useOrientationChange.js.map +1 -1
- package/dist/cjs/hooks/usePagination.js.map +1 -1
- package/dist/cjs/hooks/usePatchChildrenRef.js +2 -1
- package/dist/cjs/hooks/usePatchChildrenRef.js.map +1 -1
- package/dist/cjs/hooks/usePlatform.js.map +1 -1
- package/dist/cjs/hooks/usePrevious.js.map +1 -1
- package/dist/cjs/hooks/useTimeout.js +2 -1
- package/dist/cjs/hooks/useTimeout.js.map +1 -1
- package/dist/cjs/hooks/useTodayDate.js.map +1 -1
- package/dist/cjs/hooks/useWaitTransitionFinish.js +4 -2
- package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +4 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/SSR.js.map +1 -1
- package/dist/cjs/lib/accessibility.js.map +1 -1
- package/dist/cjs/lib/adaptivity/constants.js.map +1 -1
- package/dist/cjs/lib/adaptivity/functions.js.map +1 -1
- package/dist/cjs/lib/animate.js.map +1 -1
- package/dist/cjs/lib/browser.js.map +1 -1
- package/dist/cjs/lib/calendar.js.map +1 -1
- package/dist/cjs/lib/callMultiple.js.map +1 -1
- package/dist/cjs/lib/date.js.map +1 -1
- package/dist/cjs/lib/dom.js.map +1 -1
- package/dist/cjs/lib/floating/adapters.js.map +1 -1
- package/dist/cjs/lib/floating/functions.js.map +1 -1
- package/dist/cjs/lib/floating/index.js.map +1 -1
- package/dist/cjs/lib/fx.js.map +1 -1
- package/dist/cjs/lib/getNavId.js.map +1 -1
- package/dist/cjs/lib/isRefObject.js.map +1 -1
- package/dist/cjs/lib/matchMedia.js.map +1 -1
- package/dist/cjs/lib/offset.js +6 -5
- package/dist/cjs/lib/offset.js.map +1 -1
- package/dist/cjs/lib/platform.js.map +1 -1
- package/dist/cjs/lib/polyfills.js.map +1 -1
- package/dist/cjs/lib/removeObjectKeys.js.map +1 -1
- package/dist/cjs/lib/select.js +2 -2
- package/dist/cjs/lib/select.js.map +1 -1
- package/dist/cjs/lib/styles.js.map +1 -1
- package/dist/cjs/lib/supportEvents.js.map +1 -1
- package/dist/cjs/lib/taptic.js.map +1 -1
- package/dist/cjs/lib/testing.js.map +1 -1
- package/dist/cjs/lib/tokensClassProvider.js.map +1 -1
- package/dist/cjs/lib/touch.js.map +1 -1
- package/dist/cjs/lib/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/cjs/lib/utils.js.map +1 -1
- package/dist/cjs/lib/warnOnce.js.map +1 -1
- package/dist/cjs/shared/breakpoints.js.map +1 -1
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -2
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.js +6 -5
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/components/AppRoot/ScrollContext.js +5 -3
- package/dist/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
- package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/components/Avatar/helpers.js.map +1 -1
- package/dist/components/Banner/Banner.d.ts +5 -1
- package/dist/components/Banner/Banner.js +4 -3
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/BaseGallery/BaseGallery.js +15 -9
- package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/components/BaseGallery/helpers.js.map +1 -1
- package/dist/components/Button/Button.d.ts +2 -1
- package/dist/components/Button/Button.js +5 -3
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Calendar/Calendar.js +2 -1
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.js +4 -2
- package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.js +6 -5
- package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +16 -8
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/CalendarTime/CalendarTime.js +4 -2
- package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/Cell/Cell.js.map +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
- package/dist/components/Cell/useDraggable.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Chip/Chip.js.map +1 -1
- package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
- package/dist/components/ChipsInputBase/ChipsInputBase.js +10 -4
- package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/components/ChipsSelect/ChipsSelect.js +20 -9
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/Counter/Counter.js.map +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.js +2 -1
- package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +15 -8
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +4 -2
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/components/DateInput/DateInput.js +4 -2
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DatePicker/DatePicker.js +8 -5
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +11 -7
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/components/Epic/Epic.d.ts +1 -0
- package/dist/components/Epic/Epic.js.map +1 -1
- package/dist/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/components/File/File.js.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.js +2 -1
- package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/components/FocusTrap/FocusTrap.js +4 -3
- package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/FormItem/FormItem.js +2 -1
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/Gallery/Gallery.js.map +1 -1
- package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
- package/dist/components/Group/Group.d.ts +8 -8
- package/dist/components/Group/Group.js +1 -1
- package/dist/components/Group/Group.js.map +1 -1
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
- package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.js +45 -0
- package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
- package/dist/components/HorizontalScroll/HorizontalScroll.js +2 -2
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/components/IconButton/IconButton.js.map +1 -1
- package/dist/components/Image/Image.js.map +1 -1
- package/dist/components/Image/ImageBadge/ImageBadge.js.map +1 -1
- package/dist/components/ImageBase/ImageBase.js +4 -2
- package/dist/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
- package/dist/components/ImageBase/context.js.map +1 -1
- package/dist/components/ImageBase/helpers.js.map +1 -1
- package/dist/components/ImageBase/validators.js +3 -4
- package/dist/components/ImageBase/validators.js.map +1 -1
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/InputLike/InputLike.js +6 -4
- package/dist/components/InputLike/InputLike.js.map +1 -1
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/List/List.js.map +1 -1
- package/dist/components/List/ListContext.js.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +9 -8
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalPage/ModalPageContext.js.map +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +21 -15
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootDesktop.js +12 -6
- package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/components/ModalRoot/types.d.ts +4 -2
- package/dist/components/ModalRoot/types.js.map +1 -1
- package/dist/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/components/ModalRoot/useModalRootContext.js.map +1 -1
- package/dist/components/ModalRoot/withModalRootContext.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
- package/dist/components/Pagination/Pagination.js +2 -1
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Panel/Panel.js.map +1 -1
- package/dist/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/components/PanelSpinner/PanelSpinner.js.map +1 -1
- package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.js +2 -1
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/Removable/Removable.js +2 -2
- package/dist/components/Removable/Removable.js.map +1 -1
- package/dist/components/RichCell/RichCell.js.map +1 -1
- package/dist/components/Root/Root.d.ts +1 -0
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/Search/Search.js +2 -2
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
- package/dist/components/SimpleCell/Chevron/Chevron.js +16 -0
- package/dist/components/SimpleCell/Chevron/Chevron.js.map +1 -0
- package/dist/components/SimpleCell/SimpleCell.d.ts +6 -2
- package/dist/components/SimpleCell/SimpleCell.js +16 -5
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/Slider/helpers.js.map +1 -1
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/Spinner/Spinner.d.ts +2 -1
- package/dist/components/Spinner/Spinner.js +19 -4
- package/dist/components/Spinner/Spinner.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SplitCol/SplitColContext.js.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.js +1 -1
- package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/components/Tappable/Tappable.js.map +1 -1
- package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/components/Textarea/Textarea.js +2 -1
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +4 -2
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Tooltip/TooltipContainer.js.map +1 -1
- package/dist/components/Touch/Touch.js +1 -1
- package/dist/components/Touch/Touch.js.map +1 -1
- package/dist/components/Touch/TouchContext.js.map +1 -1
- package/dist/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/components/Typography/Text/Text.js.map +1 -1
- package/dist/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/components/View/View.d.ts +1 -0
- package/dist/components/View/View.js +16 -8
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components/View/utils.js +2 -2
- package/dist/components/View/utils.js.map +1 -1
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/components.css +10 -9
- package/dist/components.css.map +1 -1
- package/dist/components.js.tmp +3108 -2238
- package/dist/cssm/components/Accordion/Accordion.js +1 -1
- package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
- package/dist/cssm/components/Accordion/AccordionSummary.js +1 -1
- package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -2
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +3 -3
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -3
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +3 -3
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js +2 -2
- package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +3 -3
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js +6 -6
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +3 -3
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootPortal.js +2 -2
- package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cssm/components/AppRoot/ScrollContext.js +5 -5
- package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js +1 -1
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.js +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.js +1 -1
- package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.js +2 -2
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +2 -2
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/icons.js +2 -2
- package/dist/cssm/components/Avatar/AvatarBadge/icons.js.map +1 -1
- package/dist/cssm/components/Avatar/helpers.js.map +1 -1
- package/dist/cssm/components/Badge/Badge.js +1 -1
- package/dist/cssm/components/Badge/Badge.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.d.ts +5 -1
- package/dist/cssm/components/Banner/Banner.js +2 -2
- package/dist/cssm/components/Banner/Banner.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.module.css +6 -1
- package/dist/cssm/components/BaseGallery/BaseGallery.js +3 -3
- package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/cssm/components/BaseGallery/helpers.js +4 -4
- package/dist/cssm/components/BaseGallery/helpers.js.map +1 -1
- package/dist/cssm/components/Button/Button.d.ts +2 -1
- package/dist/cssm/components/Button/Button.js +4 -3
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/cssm/components/Calendar/Calendar.js +2 -2
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.js +2 -2
- package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js +2 -2
- package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js +7 -7
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js +2 -2
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.js +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/cssm/components/Card/Card.js +1 -1
- package/dist/cssm/components/Card/Card.js.map +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.js +2 -2
- package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.js +2 -2
- package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.js +3 -3
- package/dist/cssm/components/Cell/Cell.js.map +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cssm/components/Cell/CellDragger/CellDragger.js +1 -1
- package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
- package/dist/cssm/components/Cell/useDraggable.js +1 -1
- package/dist/cssm/components/Cell/useDraggable.js.map +1 -1
- package/dist/cssm/components/CellButton/CellButton.js +1 -1
- package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.js +3 -3
- package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cssm/components/Chip/Chip.js +2 -2
- package/dist/cssm/components/Chip/Chip.js.map +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +9 -5
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +13 -5
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js +2 -2
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.js +3 -3
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.js +1 -1
- package/dist/cssm/components/Counter/Counter.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js +3 -3
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js +1 -1
- package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +4 -4
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -2
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +2 -2
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.js +3 -3
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DatePicker/DatePicker.js +8 -8
- package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +3 -3
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/Div/Div.js +1 -1
- package/dist/cssm/components/Div/Div.js.map +1 -1
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js +2 -2
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/cssm/components/Epic/Epic.d.ts +1 -0
- package/dist/cssm/components/Epic/Epic.js +1 -1
- package/dist/cssm/components/Epic/Epic.js.map +1 -1
- package/dist/cssm/components/Epic/ScrollSaver.js +2 -2
- package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/cssm/components/File/File.js +1 -1
- package/dist/cssm/components/File/File.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js +3 -3
- package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cssm/components/FocusTrap/FocusTrap.js +4 -4
- package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/cssm/components/FocusVisible/FocusVisible.js +1 -1
- package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
- package/dist/cssm/components/Footer/Footer.js +1 -1
- package/dist/cssm/components/Footer/Footer.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.js +2 -2
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.js +2 -2
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormLayout/FormLayout.js +1 -1
- package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +2 -2
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cssm/components/FormStatus/FormStatus.js +1 -1
- package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/cssm/components/Gallery/Gallery.js +1 -1
- package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
- package/dist/cssm/components/Gradient/Gradient.js +1 -1
- package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.js +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js +2 -2
- package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
- package/dist/cssm/components/Group/Group.d.ts +8 -8
- package/dist/cssm/components/Group/Group.js +4 -4
- package/dist/cssm/components/Group/Group.js.map +1 -1
- package/dist/cssm/components/Group/Group.module.css +2 -0
- package/dist/cssm/components/Header/Header.js +2 -2
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js +3 -3
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +0 -5
- package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
- package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.js +35 -0
- package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
- package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.module.css +47 -0
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +2 -2
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/HoverPopper/HoverPopper.js +1 -1
- package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/cssm/components/IconButton/IconButton.js +2 -2
- package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
- package/dist/cssm/components/Image/Image.js +1 -1
- package/dist/cssm/components/Image/Image.js.map +1 -1
- package/dist/cssm/components/Image/ImageBadge/ImageBadge.js +2 -2
- package/dist/cssm/components/Image/ImageBadge/ImageBadge.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.js +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js +2 -2
- package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +2 -2
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
- package/dist/cssm/components/ImageBase/context.js.map +1 -1
- package/dist/cssm/components/ImageBase/helpers.js.map +1 -1
- package/dist/cssm/components/ImageBase/validators.js +3 -4
- package/dist/cssm/components/ImageBase/validators.js.map +1 -1
- package/dist/cssm/components/InfoRow/InfoRow.js +1 -1
- package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/cssm/components/Input/Input.js +2 -2
- package/dist/cssm/components/Input/Input.js.map +1 -1
- package/dist/cssm/components/InputLike/InputLike.js +1 -1
- package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
- package/dist/cssm/components/InputLike/InputLikeDivider.js +1 -1
- package/dist/cssm/components/InputLike/InputLikeDivider.js.map +1 -1
- package/dist/cssm/components/Link/Link.js +1 -1
- package/dist/cssm/components/Link/Link.js.map +1 -1
- package/dist/cssm/components/List/List.js +1 -1
- package/dist/cssm/components/List/List.js.map +1 -1
- package/dist/cssm/components/List/ListContext.js.map +1 -1
- package/dist/cssm/components/LocaleProvider/LocaleProvider.js +1 -1
- package/dist/cssm/components/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.js +3 -3
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +11 -10
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +4 -5
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js +4 -4
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.module.css +5 -1
- package/dist/cssm/components/ModalPage/ModalPageContext.js.map +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +3 -3
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js +12 -12
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +7 -7
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cssm/components/ModalRoot/types.d.ts +4 -2
- package/dist/cssm/components/ModalRoot/types.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalRootContext.js.map +1 -1
- package/dist/cssm/components/ModalRoot/withModalRootContext.js +1 -1
- package/dist/cssm/components/ModalRoot/withModalRootContext.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js +2 -2
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js +1 -1
- package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.js +2 -2
- package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
- package/dist/cssm/components/Panel/Panel.js +2 -2
- package/dist/cssm/components/Panel/Panel.js.map +1 -1
- package/dist/cssm/components/PanelHeader/LegacyPanelHeaderContent.js +1 -1
- package/dist/cssm/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js +9 -9
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +2 -2
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +2 -2
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
- package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +2 -2
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
- package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
- package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/cssm/components/PanelSpinner/PanelSpinner.js +1 -1
- package/dist/cssm/components/PanelSpinner/PanelSpinner.js.map +1 -1
- package/dist/cssm/components/Placeholder/Placeholder.js +1 -1
- package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
- package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js +5 -5
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +2 -2
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cssm/components/Popover/Popover.js +3 -3
- package/dist/cssm/components/Popover/Popover.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.js +3 -3
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/PopperArrow/PopperArrow.js +1 -1
- package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/cssm/components/Progress/Progress.js +1 -1
- package/dist/cssm/components/Progress/Progress.js.map +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js +6 -6
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
- package/dist/cssm/components/Radio/Radio.js +2 -2
- package/dist/cssm/components/Radio/Radio.js.map +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.js +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/cssm/components/RangeSlider/RangeSlider.js +2 -2
- package/dist/cssm/components/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.js +4 -4
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/RichCell/RichCell.js +2 -2
- package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
- package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js +1 -1
- package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
- package/dist/cssm/components/RichTooltip/RichTooltip.js +1 -1
- package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
- package/dist/cssm/components/Root/Root.d.ts +1 -0
- package/dist/cssm/components/Root/Root.js +5 -5
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cssm/components/ScrollArrow/ScrollArrow.js +3 -3
- package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
- package/dist/cssm/components/Search/Search.js +3 -3
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js +3 -3
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +3 -3
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cssm/components/Select/Select.js +3 -3
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +2 -2
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SelectTypography/SelectTypography.js +2 -2
- package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cssm/components/Separator/Separator.js +1 -1
- package/dist/cssm/components/Separator/Separator.js.map +1 -1
- package/dist/cssm/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
- package/dist/cssm/components/SimpleCell/Chevron/Chevron.js +12 -0
- package/dist/cssm/components/SimpleCell/Chevron/Chevron.js.map +1 -0
- package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +6 -2
- package/dist/cssm/components/SimpleCell/SimpleCell.js +15 -5
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.module.css +5 -6
- package/dist/cssm/components/Slider/Slider.js +7 -7
- package/dist/cssm/components/Slider/Slider.js.map +1 -1
- package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js +2 -2
- package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
- package/dist/cssm/components/Slider/helpers.js.map +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.js +4 -4
- package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cssm/components/Spacing/Spacing.js +1 -1
- package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
- package/dist/cssm/components/Spinner/Spinner.d.ts +2 -1
- package/dist/cssm/components/Spinner/Spinner.js +19 -5
- package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
- package/dist/cssm/components/Spinner/Spinner.module.css +0 -19
- package/dist/cssm/components/SplitCol/SplitCol.js +3 -3
- package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cssm/components/SplitCol/SplitColContext.js.map +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.js +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +3 -3
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.js +3 -3
- package/dist/cssm/components/Switch/Switch.js.map +1 -1
- package/dist/cssm/components/Tabbar/Tabbar.js +1 -1
- package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js +2 -2
- package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cssm/components/Tabs/Tabs.js +2 -2
- package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js +3 -3
- package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.js +10 -10
- package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.module.css +2 -0
- package/dist/cssm/components/TextTooltip/TextTooltip.js +1 -1
- package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.js +2 -2
- package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.js +5 -5
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/Tooltip/TooltipContainer.js +1 -1
- package/dist/cssm/components/Tooltip/TooltipContainer.js.map +1 -1
- package/dist/cssm/components/Touch/Touch.js +4 -4
- package/dist/cssm/components/Touch/Touch.js.map +1 -1
- package/dist/cssm/components/Touch/TouchContext.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.js +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.js +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.js +2 -2
- package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.js +2 -2
- package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cssm/components/Typography/Text/Text.js +2 -2
- package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.js +1 -1
- package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
- package/dist/cssm/components/Typography/Typography.js +1 -1
- package/dist/cssm/components/Typography/Typography.js.map +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.js +2 -2
- package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cssm/components/View/View.d.ts +1 -0
- package/dist/cssm/components/View/View.js +3 -3
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/ViewInfinite.js +2 -2
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/components/View/utils.js.map +1 -1
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +1 -1
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +1 -1
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/cssm/components/WriteBar/WriteBar.js +1 -1
- package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cssm/helpers/appearance.js +1 -1
- package/dist/cssm/helpers/appearance.js.map +1 -1
- package/dist/cssm/helpers/generateVKUITokensClassName.js.map +1 -1
- package/dist/cssm/helpers/math.js.map +1 -1
- package/dist/cssm/helpers/range.js.map +1 -1
- package/dist/cssm/hoc/withContext.js.map +1 -1
- package/dist/cssm/hoc/withPlatform.js +1 -1
- package/dist/cssm/hoc/withPlatform.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivity.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityHasHover.js +1 -1
- package/dist/cssm/hooks/useAdaptivityHasHover.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityHasPointer.js +1 -1
- package/dist/cssm/hooks/useAdaptivityHasPointer.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js +1 -1
- package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
- package/dist/cssm/hooks/useAppearance.js +1 -1
- package/dist/cssm/hooks/useAppearance.js.map +1 -1
- package/dist/cssm/hooks/useAutoDetectAppearance.js +2 -2
- package/dist/cssm/hooks/useAutoDetectAppearance.js.map +1 -1
- package/dist/cssm/hooks/useBooleanState.js.map +1 -1
- package/dist/cssm/hooks/useBridgeAdaptivity.js +2 -2
- package/dist/cssm/hooks/useBridgeAdaptivity.js.map +1 -1
- package/dist/cssm/hooks/useCalendar.js +1 -1
- package/dist/cssm/hooks/useCalendar.js.map +1 -1
- package/dist/cssm/hooks/useChipsInput.js +1 -1
- package/dist/cssm/hooks/useChipsInput.js.map +1 -1
- package/dist/cssm/hooks/useChipsSelect.js +2 -2
- package/dist/cssm/hooks/useChipsSelect.js.map +1 -1
- package/dist/cssm/hooks/useDateInput.js +4 -4
- package/dist/cssm/hooks/useDateInput.js.map +1 -1
- package/dist/cssm/hooks/useEffectDev.js.map +1 -1
- package/dist/cssm/hooks/useEnsuredControl.js +2 -2
- package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
- package/dist/cssm/hooks/useEventListener.js.map +1 -1
- package/dist/cssm/hooks/useExternRef.js.map +1 -1
- package/dist/cssm/hooks/useFocusVisible.js +1 -1
- package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
- package/dist/cssm/hooks/useFocusWithin.js +1 -1
- package/dist/cssm/hooks/useFocusWithin.js.map +1 -1
- package/dist/cssm/hooks/useGlobalEventListener.js.map +1 -1
- package/dist/cssm/hooks/useId.js.map +1 -1
- package/dist/cssm/hooks/useInsets.js +2 -2
- package/dist/cssm/hooks/useInsets.js.map +1 -1
- package/dist/cssm/hooks/useIsClient.js.map +1 -1
- package/dist/cssm/hooks/useKeyboard.js +2 -2
- package/dist/cssm/hooks/useKeyboard.js.map +1 -1
- package/dist/cssm/hooks/useKeyboardInputTracker.js +1 -1
- package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/cssm/hooks/useMediaQueries.js +1 -1
- package/dist/cssm/hooks/useMediaQueries.js.map +1 -1
- package/dist/cssm/hooks/useObjectMemo.js.map +1 -1
- package/dist/cssm/hooks/useOrientationChange.js +1 -1
- package/dist/cssm/hooks/useOrientationChange.js.map +1 -1
- package/dist/cssm/hooks/usePagination.js +1 -1
- package/dist/cssm/hooks/usePagination.js.map +1 -1
- package/dist/cssm/hooks/usePatchChildrenRef.js.map +1 -1
- package/dist/cssm/hooks/usePlatform.js +1 -1
- package/dist/cssm/hooks/usePlatform.js.map +1 -1
- package/dist/cssm/hooks/usePrevious.js.map +1 -1
- package/dist/cssm/hooks/useTimeout.js +1 -1
- package/dist/cssm/hooks/useTimeout.js.map +1 -1
- package/dist/cssm/hooks/useTodayDate.js +1 -1
- package/dist/cssm/hooks/useTodayDate.js.map +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.js +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/cssm/index.d.ts +3 -1
- package/dist/cssm/index.js +1 -0
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/SSR.js +1 -1
- package/dist/cssm/lib/SSR.js.map +1 -1
- package/dist/cssm/lib/accessibility.js +2 -2
- package/dist/cssm/lib/accessibility.js.map +1 -1
- package/dist/cssm/lib/adaptivity/constants.js.map +1 -1
- package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
- package/dist/cssm/lib/animate.js +1 -1
- package/dist/cssm/lib/animate.js.map +1 -1
- package/dist/cssm/lib/browser.js +1 -1
- package/dist/cssm/lib/browser.js.map +1 -1
- package/dist/cssm/lib/calendar.js.map +1 -1
- package/dist/cssm/lib/callMultiple.js.map +1 -1
- package/dist/cssm/lib/date.js.map +1 -1
- package/dist/cssm/lib/dom.js.map +1 -1
- package/dist/cssm/lib/floating/adapters.js +1 -1
- package/dist/cssm/lib/floating/adapters.js.map +1 -1
- package/dist/cssm/lib/floating/functions.js.map +1 -1
- package/dist/cssm/lib/fx.js.map +1 -1
- package/dist/cssm/lib/getNavId.js.map +1 -1
- package/dist/cssm/lib/isRefObject.js.map +1 -1
- package/dist/cssm/lib/matchMedia.js.map +1 -1
- package/dist/cssm/lib/platform.js.map +1 -1
- package/dist/cssm/lib/removeObjectKeys.js.map +1 -1
- package/dist/cssm/lib/select.js.map +1 -1
- package/dist/cssm/lib/styles.js.map +1 -1
- package/dist/cssm/lib/supportEvents.js.map +1 -1
- package/dist/cssm/lib/taptic.js.map +1 -1
- package/dist/cssm/lib/testing.js.map +1 -1
- package/dist/cssm/lib/tokensClassProvider.js +1 -1
- package/dist/cssm/lib/tokensClassProvider.js.map +1 -1
- package/dist/cssm/lib/touch.js.map +1 -1
- package/dist/cssm/lib/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/cssm/lib/utils.js.map +1 -1
- package/dist/cssm/lib/warnOnce.js.map +1 -1
- package/dist/cssm/shared/breakpoints.js.map +1 -1
- package/dist/cssm/styles/constants.css +3 -0
- package/dist/cssm/styles/customMedias.generated.css +23 -0
- package/dist/cssm/styles/themes.css +3 -3
- package/dist/helpers/appearance.js.map +1 -1
- package/dist/helpers/generateVKUITokensClassName.js.map +1 -1
- package/dist/helpers/math.js.map +1 -1
- package/dist/helpers/range.js.map +1 -1
- package/dist/hoc/withContext.js.map +1 -1
- package/dist/hooks/useAdaptivity.js.map +1 -1
- package/dist/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
- package/dist/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
- package/dist/hooks/useAdaptivityHasHover.js.map +1 -1
- package/dist/hooks/useAdaptivityHasPointer.js.map +1 -1
- package/dist/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
- package/dist/hooks/useAutoDetectAppearance.js +2 -1
- package/dist/hooks/useAutoDetectAppearance.js.map +1 -1
- package/dist/hooks/useBooleanState.js.map +1 -1
- package/dist/hooks/useBridgeAdaptivity.js.map +1 -1
- package/dist/hooks/useCalendar.js +6 -3
- package/dist/hooks/useCalendar.js.map +1 -1
- package/dist/hooks/useChipsInput.js +2 -1
- package/dist/hooks/useChipsInput.js.map +1 -1
- package/dist/hooks/useChipsSelect.js.map +1 -1
- package/dist/hooks/useDateInput.js +5 -3
- package/dist/hooks/useDateInput.js.map +1 -1
- package/dist/hooks/useEffectDev.js.map +1 -1
- package/dist/hooks/useEnsuredControl.js.map +1 -1
- package/dist/hooks/useEventListener.js.map +1 -1
- package/dist/hooks/useExternRef.js.map +1 -1
- package/dist/hooks/useFocusVisible.js.map +1 -1
- package/dist/hooks/useFocusWithin.js.map +1 -1
- package/dist/hooks/useGlobalEventListener.js.map +1 -1
- package/dist/hooks/useId.js.map +1 -1
- package/dist/hooks/useInsets.js.map +1 -1
- package/dist/hooks/useIsClient.js.map +1 -1
- package/dist/hooks/useKeyboard.js +4 -4
- package/dist/hooks/useKeyboard.js.map +1 -1
- package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/hooks/useMediaQueries.js.map +1 -1
- package/dist/hooks/useObjectMemo.js.map +1 -1
- package/dist/hooks/useOrientationChange.js +1 -1
- package/dist/hooks/useOrientationChange.js.map +1 -1
- package/dist/hooks/usePagination.js.map +1 -1
- package/dist/hooks/usePatchChildrenRef.js +2 -1
- package/dist/hooks/usePatchChildrenRef.js.map +1 -1
- package/dist/hooks/usePrevious.js.map +1 -1
- package/dist/hooks/useTimeout.js +2 -1
- package/dist/hooks/useTimeout.js.map +1 -1
- package/dist/hooks/useTodayDate.js.map +1 -1
- package/dist/hooks/useWaitTransitionFinish.js +4 -2
- package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/SSR.js.map +1 -1
- package/dist/lib/accessibility.js.map +1 -1
- package/dist/lib/adaptivity/constants.js.map +1 -1
- package/dist/lib/adaptivity/functions.js.map +1 -1
- package/dist/lib/animate.js.map +1 -1
- package/dist/lib/browser.js.map +1 -1
- package/dist/lib/calendar.js.map +1 -1
- package/dist/lib/callMultiple.js.map +1 -1
- package/dist/lib/date.js.map +1 -1
- package/dist/lib/dom.js.map +1 -1
- package/dist/lib/floating/adapters.js.map +1 -1
- package/dist/lib/floating/functions.js.map +1 -1
- package/dist/lib/fx.js.map +1 -1
- package/dist/lib/getNavId.js.map +1 -1
- package/dist/lib/isRefObject.js.map +1 -1
- package/dist/lib/matchMedia.js.map +1 -1
- package/dist/lib/offset.js +6 -5
- package/dist/lib/offset.js.map +1 -1
- package/dist/lib/platform.js.map +1 -1
- package/dist/lib/polyfills.js.map +1 -1
- package/dist/lib/removeObjectKeys.js.map +1 -1
- package/dist/lib/select.js +2 -2
- package/dist/lib/select.js.map +1 -1
- package/dist/lib/styles.js.map +1 -1
- package/dist/lib/supportEvents.js.map +1 -1
- package/dist/lib/taptic.js.map +1 -1
- package/dist/lib/testing.js.map +1 -1
- package/dist/lib/tokensClassProvider.js.map +1 -1
- package/dist/lib/touch.js.map +1 -1
- package/dist/lib/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/warnOnce.js.map +1 -1
- package/dist/shared/breakpoints.js.map +1 -1
- package/dist/vkui.css +11 -10
- package/dist/vkui.css.map +1 -1
- package/dist/vkui.js.tmp +3108 -2238
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useAdaptivityWithJSMediaQueries.ts"],"sourcesContent":["import * as React from 'react';\nimport { canUseDOM, hasHover as hasHoverLib, hasMouse as hasPointerLib } from '@vkontakte/vkjs';\nimport {\n AdaptivityContext,\n type AdaptivityProps as BaseAdaptivityProps,\n} from '../components/AdaptivityProvider/AdaptivityContext';\nimport { getOrDefault } from '../helpers/getOrDefault';\nimport {\n getSizeX,\n getSizeY,\n getViewHeightByMediaQueries,\n getViewWidthByMediaQueries,\n tryToCheckIsDesktop,\n} from '../lib/adaptivity';\nimport { matchMediaListAddListener, matchMediaListRemoveListener } from '../lib/matchMedia';\nimport { useMediaQueries } from './useMediaQueries';\nimport { usePlatform } from './usePlatform';\n\nexport interface UseAdaptivityWithJSMediaQueries extends Required<BaseAdaptivityProps> {\n isDesktop: boolean;\n}\n\n/**\n * Высчитывает и возвращает параметры адаптивности при изменении вьюпорта.\n *\n * Берёт в приоритет значения из `AdaptivityContext`.\n *\n * > ⚠ SSR\n * >\n * > Во избежания ошибок при гидратации, не используйте данный хук, если есть вероятность, что компонент будет отрендерен\n * > на стороне сервера.\n * >\n * > Лучше всего использовать для всплывающих окон, т.к. они вызываются только после загрузки\n * > страницы либо пользователем, либо программно.\n */\nexport const useAdaptivityWithJSMediaQueries = (): UseAdaptivityWithJSMediaQueries => {\n if (!canUseDOM) {\n console.error(`[useAdaptivityWithJSMediaQueries] Похоже, вы пытаетесь использовать хук вне браузера.\n\nПостарайтесь этого избегать, чтобы не было ошибок при гидратации: при SSR нет информации о размерах экрана.\n\nИспользуйте CSS Media Query или библиотеку по типу https://github.com/artsy/fresnel.`);\n }\n\n const {\n viewWidth: viewWidthContext,\n viewHeight: viewHeightContext,\n sizeX: sizeXContext,\n sizeY: sizeYContext,\n hasPointer: hasPointerContext,\n hasHover: hasHoverContext,\n } = React.useContext(AdaptivityContext);\n\n const platform = usePlatform();\n const mediaQueries = useMediaQueries();\n\n const [[viewWidthLocal, viewHeightLocal], setViewSizeLocal] = React.useState(() => [\n getOrDefault(viewWidthContext, getViewWidthByMediaQueries(mediaQueries)),\n getOrDefault(viewHeightContext, getViewHeightByMediaQueries(mediaQueries)),\n ]);\n\n const adaptivityProps = React.useMemo(() => {\n const hasPointer = getOrDefault(hasPointerContext, hasPointerLib);\n const hasHover = getOrDefault(hasHoverContext, hasHoverLib);\n const viewWidth = getOrDefault(viewWidthContext, viewWidthLocal);\n const viewHeight = getOrDefault(viewHeightContext, viewHeightLocal);\n const sizeX = getOrDefault(sizeXContext, getSizeX(viewWidth));\n const sizeY = getOrDefault(sizeYContext, getSizeY(viewWidth, viewHeight, hasPointer));\n const isDesktop = tryToCheckIsDesktop(viewWidth, viewHeight, hasPointer, platform);\n\n return {\n viewWidth,\n viewHeight,\n sizeX,\n sizeY,\n hasPointer,\n hasHover,\n isDesktop,\n };\n }, [\n viewWidthLocal,\n viewHeightLocal,\n viewWidthContext,\n viewHeightContext,\n sizeXContext,\n sizeYContext,\n hasPointerContext,\n hasHoverContext,\n platform,\n ]);\n\n React.useEffect(() => {\n const handleMediaQuery = () => {\n setViewSizeLocal((prevSizeLocal) => {\n const newViewWidthLocal = getOrDefault(\n viewWidthContext,\n getViewWidthByMediaQueries(mediaQueries),\n );\n const newViewHeightLocal = getOrDefault(\n viewHeightContext,\n getViewHeightByMediaQueries(mediaQueries),\n );\n\n const [prevViewWidthLocal, prevViewHeightLocal] = prevSizeLocal;\n\n if (\n prevViewWidthLocal !== newViewWidthLocal ||\n prevViewHeightLocal !== newViewHeightLocal\n ) {\n return [newViewWidthLocal, newViewHeightLocal];\n }\n\n return prevSizeLocal;\n });\n };\n\n if (!viewWidthContext) {\n [\n mediaQueries.desktopPlus,\n mediaQueries.tablet,\n mediaQueries.smallTablet,\n mediaQueries.mobile,\n ].forEach((matchMediaListener) =>\n matchMediaListAddListener(matchMediaListener, handleMediaQuery),\n );\n }\n\n if (!viewHeightContext) {\n [mediaQueries.mediumHeight, mediaQueries.mobileLandscapeHeight].forEach(\n (matchMediaListener) => matchMediaListAddListener(matchMediaListener, handleMediaQuery),\n );\n }\n\n return () => {\n [\n mediaQueries.desktopPlus,\n mediaQueries.tablet,\n mediaQueries.smallTablet,\n mediaQueries.mobile,\n mediaQueries.mediumHeight,\n mediaQueries.mobileLandscapeHeight,\n ].forEach((matchMediaListener) =>\n matchMediaListRemoveListener(matchMediaListener, handleMediaQuery),\n );\n };\n }, [mediaQueries, viewWidthContext, viewHeightContext]);\n\n return adaptivityProps;\n};\n"],"names":["React","canUseDOM","hasHover","hasHoverLib","hasMouse","hasPointerLib","AdaptivityContext","getOrDefault","getSizeX","getSizeY","getViewHeightByMediaQueries","getViewWidthByMediaQueries","tryToCheckIsDesktop","matchMediaListAddListener","matchMediaListRemoveListener","useMediaQueries","usePlatform","useAdaptivityWithJSMediaQueries","console","error","viewWidth","viewWidthContext","viewHeight","viewHeightContext","sizeX","sizeXContext","sizeY","sizeYContext","hasPointer","hasPointerContext","hasHoverContext","useContext","platform","mediaQueries","viewWidthLocal","viewHeightLocal","setViewSizeLocal","useState","adaptivityProps","useMemo","isDesktop","useEffect","handleMediaQuery","prevSizeLocal","newViewWidthLocal","newViewHeightLocal","prevViewWidthLocal","prevViewHeightLocal","desktopPlus","tablet","smallTablet","mobile","forEach","matchMediaListener","mediumHeight","mobileLandscapeHeight"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,SAAS,EAAEC,YAAYC,WAAW,EAAEC,YAAYC,aAAa,QAAQ,kBAAkB;AAChG,SACEC,iBAAiB,QAEZ,qDAAqD;AAC5D,SAASC,YAAY,QAAQ,0BAA0B;AACvD,SACEC,QAAQ,EACRC,QAAQ,EACRC,2BAA2B,EAC3BC,0BAA0B,EAC1BC,mBAAmB,QACd,oBAAoB;AAC3B,SAASC,yBAAyB,EAAEC,4BAA4B,QAAQ,oBAAoB;AAC5F,SAASC,eAAe,QAAQ,oBAAoB;AACpD,SAASC,WAAW,QAAQ,gBAAgB;AAM5C;;;;;;;;;;;;CAYC,GACD,OAAO,MAAMC,kCAAkC;IAC7C,IAAI,CAAChB,WAAW;QACdiB,QAAQC,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useAdaptivityWithJSMediaQueries.ts"],"sourcesContent":["import * as React from 'react';\nimport { canUseDOM, hasHover as hasHoverLib, hasMouse as hasPointerLib } from '@vkontakte/vkjs';\nimport {\n AdaptivityContext,\n type AdaptivityProps as BaseAdaptivityProps,\n} from '../components/AdaptivityProvider/AdaptivityContext';\nimport { getOrDefault } from '../helpers/getOrDefault';\nimport {\n getSizeX,\n getSizeY,\n getViewHeightByMediaQueries,\n getViewWidthByMediaQueries,\n tryToCheckIsDesktop,\n} from '../lib/adaptivity';\nimport { matchMediaListAddListener, matchMediaListRemoveListener } from '../lib/matchMedia';\nimport { useMediaQueries } from './useMediaQueries';\nimport { usePlatform } from './usePlatform';\n\nexport interface UseAdaptivityWithJSMediaQueries extends Required<BaseAdaptivityProps> {\n isDesktop: boolean;\n}\n\n/**\n * Высчитывает и возвращает параметры адаптивности при изменении вьюпорта.\n *\n * Берёт в приоритет значения из `AdaptivityContext`.\n *\n * > ⚠ SSR\n * >\n * > Во избежания ошибок при гидратации, не используйте данный хук, если есть вероятность, что компонент будет отрендерен\n * > на стороне сервера.\n * >\n * > Лучше всего использовать для всплывающих окон, т.к. они вызываются только после загрузки\n * > страницы либо пользователем, либо программно.\n */\nexport const useAdaptivityWithJSMediaQueries = (): UseAdaptivityWithJSMediaQueries => {\n if (!canUseDOM) {\n console.error(`[useAdaptivityWithJSMediaQueries] Похоже, вы пытаетесь использовать хук вне браузера.\n\nПостарайтесь этого избегать, чтобы не было ошибок при гидратации: при SSR нет информации о размерах экрана.\n\nИспользуйте CSS Media Query или библиотеку по типу https://github.com/artsy/fresnel.`);\n }\n\n const {\n viewWidth: viewWidthContext,\n viewHeight: viewHeightContext,\n sizeX: sizeXContext,\n sizeY: sizeYContext,\n hasPointer: hasPointerContext,\n hasHover: hasHoverContext,\n } = React.useContext(AdaptivityContext);\n\n const platform = usePlatform();\n const mediaQueries = useMediaQueries();\n\n const [[viewWidthLocal, viewHeightLocal], setViewSizeLocal] = React.useState(() => [\n getOrDefault(viewWidthContext, getViewWidthByMediaQueries(mediaQueries)),\n getOrDefault(viewHeightContext, getViewHeightByMediaQueries(mediaQueries)),\n ]);\n\n const adaptivityProps = React.useMemo(() => {\n const hasPointer = getOrDefault(hasPointerContext, hasPointerLib);\n const hasHover = getOrDefault(hasHoverContext, hasHoverLib);\n const viewWidth = getOrDefault(viewWidthContext, viewWidthLocal);\n const viewHeight = getOrDefault(viewHeightContext, viewHeightLocal);\n const sizeX = getOrDefault(sizeXContext, getSizeX(viewWidth));\n const sizeY = getOrDefault(sizeYContext, getSizeY(viewWidth, viewHeight, hasPointer));\n const isDesktop = tryToCheckIsDesktop(viewWidth, viewHeight, hasPointer, platform);\n\n return {\n viewWidth,\n viewHeight,\n sizeX,\n sizeY,\n hasPointer,\n hasHover,\n isDesktop,\n };\n }, [\n viewWidthLocal,\n viewHeightLocal,\n viewWidthContext,\n viewHeightContext,\n sizeXContext,\n sizeYContext,\n hasPointerContext,\n hasHoverContext,\n platform,\n ]);\n\n React.useEffect(() => {\n const handleMediaQuery = () => {\n setViewSizeLocal((prevSizeLocal) => {\n const newViewWidthLocal = getOrDefault(\n viewWidthContext,\n getViewWidthByMediaQueries(mediaQueries),\n );\n const newViewHeightLocal = getOrDefault(\n viewHeightContext,\n getViewHeightByMediaQueries(mediaQueries),\n );\n\n const [prevViewWidthLocal, prevViewHeightLocal] = prevSizeLocal;\n\n if (\n prevViewWidthLocal !== newViewWidthLocal ||\n prevViewHeightLocal !== newViewHeightLocal\n ) {\n return [newViewWidthLocal, newViewHeightLocal];\n }\n\n return prevSizeLocal;\n });\n };\n\n if (!viewWidthContext) {\n [\n mediaQueries.desktopPlus,\n mediaQueries.tablet,\n mediaQueries.smallTablet,\n mediaQueries.mobile,\n ].forEach((matchMediaListener) =>\n matchMediaListAddListener(matchMediaListener, handleMediaQuery),\n );\n }\n\n if (!viewHeightContext) {\n [mediaQueries.mediumHeight, mediaQueries.mobileLandscapeHeight].forEach(\n (matchMediaListener) => matchMediaListAddListener(matchMediaListener, handleMediaQuery),\n );\n }\n\n return () => {\n [\n mediaQueries.desktopPlus,\n mediaQueries.tablet,\n mediaQueries.smallTablet,\n mediaQueries.mobile,\n mediaQueries.mediumHeight,\n mediaQueries.mobileLandscapeHeight,\n ].forEach((matchMediaListener) =>\n matchMediaListRemoveListener(matchMediaListener, handleMediaQuery),\n );\n };\n }, [mediaQueries, viewWidthContext, viewHeightContext]);\n\n return adaptivityProps;\n};\n"],"names":["React","canUseDOM","hasHover","hasHoverLib","hasMouse","hasPointerLib","AdaptivityContext","getOrDefault","getSizeX","getSizeY","getViewHeightByMediaQueries","getViewWidthByMediaQueries","tryToCheckIsDesktop","matchMediaListAddListener","matchMediaListRemoveListener","useMediaQueries","usePlatform","useAdaptivityWithJSMediaQueries","console","error","viewWidth","viewWidthContext","viewHeight","viewHeightContext","sizeX","sizeXContext","sizeY","sizeYContext","hasPointer","hasPointerContext","hasHoverContext","useContext","platform","mediaQueries","viewWidthLocal","viewHeightLocal","setViewSizeLocal","useState","adaptivityProps","useMemo","isDesktop","useEffect","handleMediaQuery","prevSizeLocal","newViewWidthLocal","newViewHeightLocal","prevViewWidthLocal","prevViewHeightLocal","desktopPlus","tablet","smallTablet","mobile","forEach","matchMediaListener","mediumHeight","mobileLandscapeHeight"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useAppearance.ts"],"sourcesContent":["import { useConfigProvider } from '../components/ConfigProvider/ConfigProviderContext';\n\nexport function useAppearance() {\n const { appearance } = useConfigProvider();\n\n return appearance ?? 'light';\n}\n"],"names":["useConfigProvider","useAppearance","appearance"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qDAAqD;AAEvF,OAAO,SAASC;IACd,MAAM,EAAEC,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useAppearance.ts"],"sourcesContent":["import { useConfigProvider } from '../components/ConfigProvider/ConfigProviderContext';\n\nexport function useAppearance() {\n const { appearance } = useConfigProvider();\n\n return appearance ?? 'light';\n}\n"],"names":["useConfigProvider","useAppearance","appearance"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qDAAqD;AAEvF,OAAO,SAASC;IACd,MAAM,EAAEC,UAAU,EAAE,GAAGF;IAEvB,OAAOE,cAAc;AACvB"}
|
|
@@ -13,7 +13,7 @@ function autoDetectAppearanceByBridge(setAppearance, onDetectAppearanceByBridge)
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
function bridgeListener(e) {
|
|
16
|
-
const { type
|
|
16
|
+
const { type, data } = e.detail;
|
|
17
17
|
if (type !== 'VKWebAppUpdateConfig') {
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
@@ -37,7 +37,7 @@ function autoDetectAppearance(window, setAppearance) {
|
|
|
37
37
|
return ()=>matchMediaListRemoveListener(mediaQuery, check);
|
|
38
38
|
}
|
|
39
39
|
export const useAutoDetectAppearance = (appearanceProp, onDetectAppearanceByBridge)=>{
|
|
40
|
-
const { window
|
|
40
|
+
const { window } = useDOM();
|
|
41
41
|
const onceDetectAppearanceByBridge = React.useRef(()=>{
|
|
42
42
|
onDetectAppearanceByBridge && onDetectAppearanceByBridge();
|
|
43
43
|
onceDetectAppearanceByBridge.current = noop;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useAutoDetectAppearance.tsx"],"sourcesContent":["import * as React from 'react';\nimport vkBridge, {\n AnyReceiveMethodName,\n AppearanceType,\n VKBridgeEvent,\n} from '@vkontakte/vk-bridge';\nimport { noop } from '@vkontakte/vkjs';\nimport { resolveAppearance, VKBridgeConfigData } from '../helpers/appearance';\nimport { useDOM } from '../lib/dom';\nimport { matchMediaListAddListener, matchMediaListRemoveListener } from '../lib/matchMedia';\n\nfunction autoDetectAppearanceByBridge(\n setAppearance: (value: AppearanceType) => void,\n onDetectAppearanceByBridge: () => void,\n) {\n function updateAppearance(data: VKBridgeConfigData) {\n const initialAppearance = resolveAppearance(data);\n\n if (initialAppearance) {\n onDetectAppearanceByBridge();\n setAppearance(initialAppearance);\n }\n }\n\n function bridgeListener(e: VKBridgeEvent<AnyReceiveMethodName>) {\n const { type, data } = e.detail;\n\n if (type !== 'VKWebAppUpdateConfig') {\n return;\n }\n\n updateAppearance(data as VKBridgeConfigData);\n }\n\n vkBridge.subscribe(bridgeListener);\n vkBridge.send('VKWebAppGetConfig').then(updateAppearance).catch(console.error);\n\n return () => vkBridge.unsubscribe(bridgeListener);\n}\n\nfunction autoDetectAppearance(\n window: Window | undefined,\n setAppearance: (value: AppearanceType) => void,\n): () => void {\n const mediaQuery =\n window && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)');\n\n if (mediaQuery === undefined) {\n return noop;\n }\n\n const check = (event: MediaQueryList | MediaQueryListEvent) => {\n // eslint-disable-next-line no-restricted-properties\n setAppearance(event.matches ? 'dark' : 'light');\n };\n\n check(mediaQuery);\n matchMediaListAddListener(mediaQuery, check);\n\n return () => matchMediaListRemoveListener(mediaQuery, check);\n}\n\nexport const useAutoDetectAppearance = (\n appearanceProp?: AppearanceType,\n onDetectAppearanceByBridge?: () => void,\n): AppearanceType => {\n const { window } = useDOM();\n const onceDetectAppearanceByBridge = React.useRef(() => {\n onDetectAppearanceByBridge && onDetectAppearanceByBridge();\n onceDetectAppearanceByBridge.current = noop;\n });\n\n const [appearance, setAppearance] = React.useState<AppearanceType>(() => {\n if (appearanceProp) {\n return appearanceProp;\n }\n\n const mediaQuery =\n window && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)');\n\n // eslint-disable-next-line no-restricted-properties\n return mediaQuery?.matches ? 'dark' : 'light';\n });\n\n React.useEffect(() => {\n if (appearanceProp) {\n setAppearance(appearanceProp);\n return noop;\n }\n\n if (vkBridge.isEmbedded()) {\n return autoDetectAppearanceByBridge(setAppearance, onceDetectAppearanceByBridge.current);\n }\n\n return autoDetectAppearance(window, setAppearance);\n }, [window, appearanceProp]);\n\n return appearance;\n};\n"],"names":["React","vkBridge","noop","resolveAppearance","useDOM","matchMediaListAddListener","matchMediaListRemoveListener","autoDetectAppearanceByBridge","setAppearance","onDetectAppearanceByBridge","updateAppearance","data","initialAppearance","bridgeListener","e","type","detail","subscribe","send","then","catch","console","error","unsubscribe","autoDetectAppearance","window","mediaQuery","matchMedia","undefined","check","event","matches","useAutoDetectAppearance","appearanceProp","onceDetectAppearanceByBridge","useRef","current","appearance","useState","useEffect","isEmbedded"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,OAAOC,cAIA,uBAAuB;AAC9B,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,iBAAiB,QAA4B,wBAAwB;AAC9E,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,yBAAyB,EAAEC,4BAA4B,QAAQ,oBAAoB;AAE5F,SAASC,6BACPC,aAA8C,EAC9CC,0BAAsC;IAEtC,SAASC,iBAAiBC,IAAwB;QAChD,MAAMC,oBAAoBT,kBAAkBQ;QAE5C,IAAIC,mBAAmB;YACrBH;YACAD,cAAcI;QAChB;IACF;IAEA,SAASC,eAAeC,CAAsC;QAC5D,MAAM,EAAEC,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useAutoDetectAppearance.tsx"],"sourcesContent":["import * as React from 'react';\nimport vkBridge, {\n AnyReceiveMethodName,\n AppearanceType,\n VKBridgeEvent,\n} from '@vkontakte/vk-bridge';\nimport { noop } from '@vkontakte/vkjs';\nimport { resolveAppearance, VKBridgeConfigData } from '../helpers/appearance';\nimport { useDOM } from '../lib/dom';\nimport { matchMediaListAddListener, matchMediaListRemoveListener } from '../lib/matchMedia';\n\nfunction autoDetectAppearanceByBridge(\n setAppearance: (value: AppearanceType) => void,\n onDetectAppearanceByBridge: () => void,\n) {\n function updateAppearance(data: VKBridgeConfigData) {\n const initialAppearance = resolveAppearance(data);\n\n if (initialAppearance) {\n onDetectAppearanceByBridge();\n setAppearance(initialAppearance);\n }\n }\n\n function bridgeListener(e: VKBridgeEvent<AnyReceiveMethodName>) {\n const { type, data } = e.detail;\n\n if (type !== 'VKWebAppUpdateConfig') {\n return;\n }\n\n updateAppearance(data as VKBridgeConfigData);\n }\n\n vkBridge.subscribe(bridgeListener);\n vkBridge.send('VKWebAppGetConfig').then(updateAppearance).catch(console.error);\n\n return () => vkBridge.unsubscribe(bridgeListener);\n}\n\nfunction autoDetectAppearance(\n window: Window | undefined,\n setAppearance: (value: AppearanceType) => void,\n): () => void {\n const mediaQuery =\n window && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)');\n\n if (mediaQuery === undefined) {\n return noop;\n }\n\n const check = (event: MediaQueryList | MediaQueryListEvent) => {\n // eslint-disable-next-line no-restricted-properties\n setAppearance(event.matches ? 'dark' : 'light');\n };\n\n check(mediaQuery);\n matchMediaListAddListener(mediaQuery, check);\n\n return () => matchMediaListRemoveListener(mediaQuery, check);\n}\n\nexport const useAutoDetectAppearance = (\n appearanceProp?: AppearanceType,\n onDetectAppearanceByBridge?: () => void,\n): AppearanceType => {\n const { window } = useDOM();\n const onceDetectAppearanceByBridge = React.useRef(() => {\n onDetectAppearanceByBridge && onDetectAppearanceByBridge();\n onceDetectAppearanceByBridge.current = noop;\n });\n\n const [appearance, setAppearance] = React.useState<AppearanceType>(() => {\n if (appearanceProp) {\n return appearanceProp;\n }\n\n const mediaQuery =\n window && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)');\n\n // eslint-disable-next-line no-restricted-properties\n return mediaQuery?.matches ? 'dark' : 'light';\n });\n\n React.useEffect(() => {\n if (appearanceProp) {\n setAppearance(appearanceProp);\n return noop;\n }\n\n if (vkBridge.isEmbedded()) {\n return autoDetectAppearanceByBridge(setAppearance, onceDetectAppearanceByBridge.current);\n }\n\n return autoDetectAppearance(window, setAppearance);\n }, [window, appearanceProp]);\n\n return appearance;\n};\n"],"names":["React","vkBridge","noop","resolveAppearance","useDOM","matchMediaListAddListener","matchMediaListRemoveListener","autoDetectAppearanceByBridge","setAppearance","onDetectAppearanceByBridge","updateAppearance","data","initialAppearance","bridgeListener","e","type","detail","subscribe","send","then","catch","console","error","unsubscribe","autoDetectAppearance","window","mediaQuery","matchMedia","undefined","check","event","matches","useAutoDetectAppearance","appearanceProp","onceDetectAppearanceByBridge","useRef","current","appearance","useState","useEffect","isEmbedded"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,OAAOC,cAIA,uBAAuB;AAC9B,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,iBAAiB,QAA4B,wBAAwB;AAC9E,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,yBAAyB,EAAEC,4BAA4B,QAAQ,oBAAoB;AAE5F,SAASC,6BACPC,aAA8C,EAC9CC,0BAAsC;IAEtC,SAASC,iBAAiBC,IAAwB;QAChD,MAAMC,oBAAoBT,kBAAkBQ;QAE5C,IAAIC,mBAAmB;YACrBH;YACAD,cAAcI;QAChB;IACF;IAEA,SAASC,eAAeC,CAAsC;QAC5D,MAAM,EAAEC,IAAI,EAAEJ,IAAI,EAAE,GAAGG,EAAEE,MAAM;QAE/B,IAAID,SAAS,wBAAwB;YACnC;QACF;QAEAL,iBAAiBC;IACnB;IAEAV,SAASgB,SAAS,CAACJ;IACnBZ,SAASiB,IAAI,CAAC,qBAAqBC,IAAI,CAACT,kBAAkBU,KAAK,CAACC,QAAQC,KAAK;IAE7E,OAAO,IAAMrB,SAASsB,WAAW,CAACV;AACpC;AAEA,SAASW,qBACPC,MAA0B,EAC1BjB,aAA8C;IAE9C,MAAMkB,aACJD,UAAUA,OAAOE,UAAU,IAAIF,OAAOE,UAAU,CAAC;IAEnD,IAAID,eAAeE,WAAW;QAC5B,OAAO1B;IACT;IAEA,MAAM2B,QAAQ,CAACC;QACb,oDAAoD;QACpDtB,cAAcsB,MAAMC,OAAO,GAAG,SAAS;IACzC;IAEAF,MAAMH;IACNrB,0BAA0BqB,YAAYG;IAEtC,OAAO,IAAMvB,6BAA6BoB,YAAYG;AACxD;AAEA,OAAO,MAAMG,0BAA0B,CACrCC,gBACAxB;IAEA,MAAM,EAAEgB,MAAM,EAAE,GAAGrB;IACnB,MAAM8B,+BAA+BlC,MAAMmC,MAAM,CAAC;QAChD1B,8BAA8BA;QAC9ByB,6BAA6BE,OAAO,GAAGlC;IACzC;IAEA,MAAM,CAACmC,YAAY7B,cAAc,GAAGR,MAAMsC,QAAQ,CAAiB;QACjE,IAAIL,gBAAgB;YAClB,OAAOA;QACT;QAEA,MAAMP,aACJD,UAAUA,OAAOE,UAAU,IAAIF,OAAOE,UAAU,CAAC;QAEnD,oDAAoD;QACpD,OAAOD,YAAYK,UAAU,SAAS;IACxC;IAEA/B,MAAMuC,SAAS,CAAC;QACd,IAAIN,gBAAgB;YAClBzB,cAAcyB;YACd,OAAO/B;QACT;QAEA,IAAID,SAASuC,UAAU,IAAI;YACzB,OAAOjC,6BAA6BC,eAAe0B,6BAA6BE,OAAO;QACzF;QAEA,OAAOZ,qBAAqBC,QAAQjB;IACtC,GAAG;QAACiB;QAAQQ;KAAe;IAE3B,OAAOI;AACT,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useBooleanState.ts"],"sourcesContent":["import * as React from 'react';\n\nexport const useBooleanState = (defaultValue = false) => {\n const [value, setValue] = React.useState(defaultValue);\n\n const setTrue = React.useCallback(() => {\n setValue(true);\n }, []);\n\n const setFalse = React.useCallback(() => {\n setValue(false);\n }, []);\n\n const toggle = React.useCallback(() => {\n setValue(!value);\n }, [value]);\n\n return { value, setTrue, setFalse, toggle };\n};\n"],"names":["React","useBooleanState","defaultValue","value","setValue","useState","setTrue","useCallback","setFalse","toggle"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,OAAO,MAAMC,kBAAkB,CAACC,eAAe,KAAK;IAClD,MAAM,CAACC,OAAOC,SAAS,GAAGJ,MAAMK,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useBooleanState.ts"],"sourcesContent":["import * as React from 'react';\n\nexport const useBooleanState = (defaultValue = false) => {\n const [value, setValue] = React.useState(defaultValue);\n\n const setTrue = React.useCallback(() => {\n setValue(true);\n }, []);\n\n const setFalse = React.useCallback(() => {\n setValue(false);\n }, []);\n\n const toggle = React.useCallback(() => {\n setValue(!value);\n }, [value]);\n\n return { value, setTrue, setFalse, toggle };\n};\n"],"names":["React","useBooleanState","defaultValue","value","setValue","useState","setTrue","useCallback","setFalse","toggle"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,OAAO,MAAMC,kBAAkB,CAACC,eAAe,KAAK;IAClD,MAAM,CAACC,OAAOC,SAAS,GAAGJ,MAAMK,QAAQ,CAACH;IAEzC,MAAMI,UAAUN,MAAMO,WAAW,CAAC;QAChCH,SAAS;IACX,GAAG,EAAE;IAEL,MAAMI,WAAWR,MAAMO,WAAW,CAAC;QACjCH,SAAS;IACX,GAAG,EAAE;IAEL,MAAMK,SAAST,MAAMO,WAAW,CAAC;QAC/BH,SAAS,CAACD;IACZ,GAAG;QAACA;KAAM;IAEV,OAAO;QAAEA;QAAOG;QAASE;QAAUC;IAAO;AAC5C,EAAE"}
|
|
@@ -7,11 +7,11 @@ let initialState = {
|
|
|
7
7
|
viewportHeight: 0
|
|
8
8
|
};
|
|
9
9
|
function resolveAdaptivity(e) {
|
|
10
|
-
const { type
|
|
10
|
+
const { type, data } = e.detail;
|
|
11
11
|
if (type !== 'VKWebAppUpdateConfig' || !data) {
|
|
12
12
|
return null;
|
|
13
13
|
}
|
|
14
|
-
const { adaptivity
|
|
14
|
+
const { adaptivity, viewport_width: viewportWidth, viewport_height: viewportHeight } = data;
|
|
15
15
|
const bridgeAdaptivity = {
|
|
16
16
|
type: '',
|
|
17
17
|
viewportWidth: isFinite(viewportWidth) ? +viewportWidth : 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useBridgeAdaptivity.ts"],"sourcesContent":["import * as React from 'react';\nimport vkBridge from '@vkontakte/vk-bridge';\nimport { useIsomorphicLayoutEffect } from '../lib/useIsomorphicLayoutEffect';\n\nexport interface BridgeAdaptivity {\n type: '' | 'force_mobile' | 'force_mobile_compact' | 'adaptive';\n viewportWidth: number;\n viewportHeight: number;\n}\n\ninterface BridgeEvent {\n detail: {\n type: string;\n data: {\n [index: string]: any;\n };\n };\n}\n\nlet initialState: BridgeAdaptivity = {\n type: '',\n viewportWidth: 0,\n viewportHeight: 0,\n};\n\nfunction resolveAdaptivity(e: BridgeEvent): BridgeAdaptivity | null {\n const { type, data } = e.detail;\n\n if (type !== 'VKWebAppUpdateConfig' || !data) {\n return null;\n }\n\n const { adaptivity, viewport_width: viewportWidth, viewport_height: viewportHeight } = data;\n\n const bridgeAdaptivity: BridgeAdaptivity = {\n type: '',\n viewportWidth: isFinite(viewportWidth) ? +viewportWidth : 0,\n viewportHeight: isFinite(viewportHeight) ? +viewportHeight : 0,\n };\n\n switch (adaptivity) {\n case 'force_mobile':\n case 'force_mobile_compact':\n case 'adaptive':\n bridgeAdaptivity.type = adaptivity;\n }\n\n return bridgeAdaptivity;\n}\n\nvkBridge.subscribe((e: BridgeEvent) => {\n const bridgeAdaptivity = resolveAdaptivity(e);\n\n if (bridgeAdaptivity) {\n initialState = bridgeAdaptivity;\n }\n});\n\nexport function useBridgeAdaptivity(): BridgeAdaptivity {\n const [bridgeAdaptivity, setBridgeAdaptivity] = React.useState<BridgeAdaptivity>(initialState);\n\n useIsomorphicLayoutEffect(() => {\n function bridgeListener(e: BridgeEvent) {\n const newBridgeAdaptivity = resolveAdaptivity(e);\n\n if (newBridgeAdaptivity) {\n setBridgeAdaptivity(newBridgeAdaptivity);\n }\n }\n\n vkBridge.subscribe(bridgeListener);\n return () => {\n vkBridge.unsubscribe(bridgeListener);\n };\n }, []);\n\n return bridgeAdaptivity;\n}\n"],"names":["React","vkBridge","useIsomorphicLayoutEffect","initialState","type","viewportWidth","viewportHeight","resolveAdaptivity","e","data","detail","adaptivity","viewport_width","viewport_height","bridgeAdaptivity","isFinite","subscribe","useBridgeAdaptivity","setBridgeAdaptivity","useState","bridgeListener","newBridgeAdaptivity","unsubscribe"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,OAAOC,cAAc,uBAAuB;AAC5C,SAASC,yBAAyB,QAAQ,mCAAmC;AAiB7E,IAAIC,eAAiC;IACnCC,MAAM;IACNC,eAAe;IACfC,gBAAgB;AAClB;AAEA,SAASC,kBAAkBC,CAAc;IACvC,MAAM,EAAEJ,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useBridgeAdaptivity.ts"],"sourcesContent":["import * as React from 'react';\nimport vkBridge from '@vkontakte/vk-bridge';\nimport { useIsomorphicLayoutEffect } from '../lib/useIsomorphicLayoutEffect';\n\nexport interface BridgeAdaptivity {\n type: '' | 'force_mobile' | 'force_mobile_compact' | 'adaptive';\n viewportWidth: number;\n viewportHeight: number;\n}\n\ninterface BridgeEvent {\n detail: {\n type: string;\n data: {\n [index: string]: any;\n };\n };\n}\n\nlet initialState: BridgeAdaptivity = {\n type: '',\n viewportWidth: 0,\n viewportHeight: 0,\n};\n\nfunction resolveAdaptivity(e: BridgeEvent): BridgeAdaptivity | null {\n const { type, data } = e.detail;\n\n if (type !== 'VKWebAppUpdateConfig' || !data) {\n return null;\n }\n\n const { adaptivity, viewport_width: viewportWidth, viewport_height: viewportHeight } = data;\n\n const bridgeAdaptivity: BridgeAdaptivity = {\n type: '',\n viewportWidth: isFinite(viewportWidth) ? +viewportWidth : 0,\n viewportHeight: isFinite(viewportHeight) ? +viewportHeight : 0,\n };\n\n switch (adaptivity) {\n case 'force_mobile':\n case 'force_mobile_compact':\n case 'adaptive':\n bridgeAdaptivity.type = adaptivity;\n }\n\n return bridgeAdaptivity;\n}\n\nvkBridge.subscribe((e: BridgeEvent) => {\n const bridgeAdaptivity = resolveAdaptivity(e);\n\n if (bridgeAdaptivity) {\n initialState = bridgeAdaptivity;\n }\n});\n\nexport function useBridgeAdaptivity(): BridgeAdaptivity {\n const [bridgeAdaptivity, setBridgeAdaptivity] = React.useState<BridgeAdaptivity>(initialState);\n\n useIsomorphicLayoutEffect(() => {\n function bridgeListener(e: BridgeEvent) {\n const newBridgeAdaptivity = resolveAdaptivity(e);\n\n if (newBridgeAdaptivity) {\n setBridgeAdaptivity(newBridgeAdaptivity);\n }\n }\n\n vkBridge.subscribe(bridgeListener);\n return () => {\n vkBridge.unsubscribe(bridgeListener);\n };\n }, []);\n\n return bridgeAdaptivity;\n}\n"],"names":["React","vkBridge","useIsomorphicLayoutEffect","initialState","type","viewportWidth","viewportHeight","resolveAdaptivity","e","data","detail","adaptivity","viewport_width","viewport_height","bridgeAdaptivity","isFinite","subscribe","useBridgeAdaptivity","setBridgeAdaptivity","useState","bridgeListener","newBridgeAdaptivity","unsubscribe"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,OAAOC,cAAc,uBAAuB;AAC5C,SAASC,yBAAyB,QAAQ,mCAAmC;AAiB7E,IAAIC,eAAiC;IACnCC,MAAM;IACNC,eAAe;IACfC,gBAAgB;AAClB;AAEA,SAASC,kBAAkBC,CAAc;IACvC,MAAM,EAAEJ,IAAI,EAAEK,IAAI,EAAE,GAAGD,EAAEE,MAAM;IAE/B,IAAIN,SAAS,0BAA0B,CAACK,MAAM;QAC5C,OAAO;IACT;IAEA,MAAM,EAAEE,UAAU,EAAEC,gBAAgBP,aAAa,EAAEQ,iBAAiBP,cAAc,EAAE,GAAGG;IAEvF,MAAMK,mBAAqC;QACzCV,MAAM;QACNC,eAAeU,SAASV,iBAAiB,CAACA,gBAAgB;QAC1DC,gBAAgBS,SAAST,kBAAkB,CAACA,iBAAiB;IAC/D;IAEA,OAAQK;QACN,KAAK;QACL,KAAK;QACL,KAAK;YACHG,iBAAiBV,IAAI,GAAGO;IAC5B;IAEA,OAAOG;AACT;AAEAb,SAASe,SAAS,CAAC,CAACR;IAClB,MAAMM,mBAAmBP,kBAAkBC;IAE3C,IAAIM,kBAAkB;QACpBX,eAAeW;IACjB;AACF;AAEA,OAAO,SAASG;IACd,MAAM,CAACH,kBAAkBI,oBAAoB,GAAGlB,MAAMmB,QAAQ,CAAmBhB;IAEjFD,0BAA0B;QACxB,SAASkB,eAAeZ,CAAc;YACpC,MAAMa,sBAAsBd,kBAAkBC;YAE9C,IAAIa,qBAAqB;gBACvBH,oBAAoBG;YACtB;QACF;QAEApB,SAASe,SAAS,CAACI;QACnB,OAAO;YACLnB,SAASqB,WAAW,CAACF;QACvB;IACF,GAAG,EAAE;IAEL,OAAON;AACT"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { addMonths, endOfDay, isAfter, isBefore, isSameDay, startOfDay, subMonths } from '../lib/date';
|
|
3
|
-
export function useCalendar({ value
|
|
3
|
+
export function useCalendar({ value, disablePast, disableFuture, shouldDisableDate, onHeaderChange, onNextMonth, onPrevMonth }) {
|
|
4
4
|
const [viewDate, setViewDate] = React.useState((Array.isArray(value) ? value[0] : value) ?? new Date());
|
|
5
5
|
const [focusedDay, setFocusedDay] = React.useState();
|
|
6
6
|
const setPrevMonth = React.useCallback(()=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useCalendar.ts"],"sourcesContent":["import * as React from 'react';\nimport { CalendarProps } from '../components/Calendar/Calendar';\nimport {\n addMonths,\n endOfDay,\n isAfter,\n isBefore,\n isSameDay,\n startOfDay,\n subMonths,\n} from '../lib/date';\n\nexport interface UseCalendarDependencies\n extends Pick<CalendarProps, 'onHeaderChange' | 'onNextMonth' | 'onPrevMonth'> {\n value?: Array<Date | null> | Date;\n disablePast?: boolean;\n disableFuture?: boolean;\n shouldDisableDate?(value: Date): boolean;\n}\n\nexport function useCalendar({\n value,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n}: UseCalendarDependencies) {\n const [viewDate, setViewDate] = React.useState(\n (Array.isArray(value) ? value[0] : value) ?? new Date(),\n );\n const [focusedDay, setFocusedDay] = React.useState<Date>();\n\n const setPrevMonth = React.useCallback(() => {\n onPrevMonth?.();\n setViewDate(subMonths(viewDate, 1));\n }, [viewDate, onPrevMonth]);\n const setNextMonth = React.useCallback(() => {\n onNextMonth?.();\n setViewDate(addMonths(viewDate, 1));\n }, [viewDate, onNextMonth]);\n\n const handleSetViewDate = React.useCallback(\n (value: Date) => {\n onHeaderChange?.(value);\n setViewDate(value);\n },\n [onHeaderChange],\n );\n\n const isDayFocused = React.useCallback(\n (day: Date) => Boolean(focusedDay && isSameDay(day, focusedDay)),\n [focusedDay],\n );\n\n const isDayDisabled = React.useCallback(\n (day: Date) => {\n const now = new Date();\n let disabled = false;\n if (disablePast) {\n disabled = isBefore(endOfDay(day), now);\n }\n if (disableFuture) {\n disabled = isAfter(startOfDay(day), now);\n }\n if (shouldDisableDate) {\n disabled = shouldDisableDate(day);\n }\n\n return disabled;\n },\n [disableFuture, disablePast, shouldDisableDate],\n );\n\n const resetSelectedDay = React.useCallback(() => {\n setFocusedDay(undefined);\n }, [setFocusedDay]);\n\n return {\n viewDate,\n setViewDate: handleSetViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n };\n}\n"],"names":["React","addMonths","endOfDay","isAfter","isBefore","isSameDay","startOfDay","subMonths","useCalendar","value","disablePast","disableFuture","shouldDisableDate","onHeaderChange","onNextMonth","onPrevMonth","viewDate","setViewDate","useState","Array","isArray","Date","focusedDay","setFocusedDay","setPrevMonth","useCallback","setNextMonth","handleSetViewDate","isDayFocused","day","Boolean","isDayDisabled","now","disabled","resetSelectedDay","undefined"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,SACEC,SAAS,EACTC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,SAAS,QACJ,cAAc;AAUrB,OAAO,SAASC,YAAY,EAC1BC,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useCalendar.ts"],"sourcesContent":["import * as React from 'react';\nimport { CalendarProps } from '../components/Calendar/Calendar';\nimport {\n addMonths,\n endOfDay,\n isAfter,\n isBefore,\n isSameDay,\n startOfDay,\n subMonths,\n} from '../lib/date';\n\nexport interface UseCalendarDependencies\n extends Pick<CalendarProps, 'onHeaderChange' | 'onNextMonth' | 'onPrevMonth'> {\n value?: Array<Date | null> | Date;\n disablePast?: boolean;\n disableFuture?: boolean;\n shouldDisableDate?(value: Date): boolean;\n}\n\nexport function useCalendar({\n value,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n}: UseCalendarDependencies) {\n const [viewDate, setViewDate] = React.useState(\n (Array.isArray(value) ? value[0] : value) ?? new Date(),\n );\n const [focusedDay, setFocusedDay] = React.useState<Date>();\n\n const setPrevMonth = React.useCallback(() => {\n onPrevMonth?.();\n setViewDate(subMonths(viewDate, 1));\n }, [viewDate, onPrevMonth]);\n const setNextMonth = React.useCallback(() => {\n onNextMonth?.();\n setViewDate(addMonths(viewDate, 1));\n }, [viewDate, onNextMonth]);\n\n const handleSetViewDate = React.useCallback(\n (value: Date) => {\n onHeaderChange?.(value);\n setViewDate(value);\n },\n [onHeaderChange],\n );\n\n const isDayFocused = React.useCallback(\n (day: Date) => Boolean(focusedDay && isSameDay(day, focusedDay)),\n [focusedDay],\n );\n\n const isDayDisabled = React.useCallback(\n (day: Date) => {\n const now = new Date();\n let disabled = false;\n if (disablePast) {\n disabled = isBefore(endOfDay(day), now);\n }\n if (disableFuture) {\n disabled = isAfter(startOfDay(day), now);\n }\n if (shouldDisableDate) {\n disabled = shouldDisableDate(day);\n }\n\n return disabled;\n },\n [disableFuture, disablePast, shouldDisableDate],\n );\n\n const resetSelectedDay = React.useCallback(() => {\n setFocusedDay(undefined);\n }, [setFocusedDay]);\n\n return {\n viewDate,\n setViewDate: handleSetViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n };\n}\n"],"names":["React","addMonths","endOfDay","isAfter","isBefore","isSameDay","startOfDay","subMonths","useCalendar","value","disablePast","disableFuture","shouldDisableDate","onHeaderChange","onNextMonth","onPrevMonth","viewDate","setViewDate","useState","Array","isArray","Date","focusedDay","setFocusedDay","setPrevMonth","useCallback","setNextMonth","handleSetViewDate","isDayFocused","day","Boolean","isDayDisabled","now","disabled","resetSelectedDay","undefined"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,SACEC,SAAS,EACTC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,SAAS,QACJ,cAAc;AAUrB,OAAO,SAASC,YAAY,EAC1BC,KAAK,EACLC,WAAW,EACXC,aAAa,EACbC,iBAAiB,EACjBC,cAAc,EACdC,WAAW,EACXC,WAAW,EACa;IACxB,MAAM,CAACC,UAAUC,YAAY,GAAGjB,MAAMkB,QAAQ,CAC5C,AAACC,CAAAA,MAAMC,OAAO,CAACX,SAASA,KAAK,CAAC,EAAE,GAAGA,KAAI,KAAM,IAAIY;IAEnD,MAAM,CAACC,YAAYC,cAAc,GAAGvB,MAAMkB,QAAQ;IAElD,MAAMM,eAAexB,MAAMyB,WAAW,CAAC;QACrCV;QACAE,YAAYV,UAAUS,UAAU;IAClC,GAAG;QAACA;QAAUD;KAAY;IAC1B,MAAMW,eAAe1B,MAAMyB,WAAW,CAAC;QACrCX;QACAG,YAAYhB,UAAUe,UAAU;IAClC,GAAG;QAACA;QAAUF;KAAY;IAE1B,MAAMa,oBAAoB3B,MAAMyB,WAAW,CACzC,CAAChB;QACCI,iBAAiBJ;QACjBQ,YAAYR;IACd,GACA;QAACI;KAAe;IAGlB,MAAMe,eAAe5B,MAAMyB,WAAW,CACpC,CAACI,MAAcC,QAAQR,cAAcjB,UAAUwB,KAAKP,cACpD;QAACA;KAAW;IAGd,MAAMS,gBAAgB/B,MAAMyB,WAAW,CACrC,CAACI;QACC,MAAMG,MAAM,IAAIX;QAChB,IAAIY,WAAW;QACf,IAAIvB,aAAa;YACfuB,WAAW7B,SAASF,SAAS2B,MAAMG;QACrC;QACA,IAAIrB,eAAe;YACjBsB,WAAW9B,QAAQG,WAAWuB,MAAMG;QACtC;QACA,IAAIpB,mBAAmB;YACrBqB,WAAWrB,kBAAkBiB;QAC/B;QAEA,OAAOI;IACT,GACA;QAACtB;QAAeD;QAAaE;KAAkB;IAGjD,MAAMsB,mBAAmBlC,MAAMyB,WAAW,CAAC;QACzCF,cAAcY;IAChB,GAAG;QAACZ;KAAc;IAElB,OAAO;QACLP;QACAC,aAAaU;QACbH;QACAE;QACAJ;QACAC;QACAK;QACAG;QACAG;IACF;AACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
export const useChipsInput = (props)=>{
|
|
3
|
-
const { value
|
|
3
|
+
const { value, getOptionValue, onChange, onInputChange, getNewOptionData } = props;
|
|
4
4
|
const [fieldValue, setFieldValue] = React.useState(props.inputValue);
|
|
5
5
|
const [selectedOptions, setSelectedOptions] = React.useState(value ?? []);
|
|
6
6
|
const clearInput = React.useCallback(()=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useChipsInput.ts"],"sourcesContent":["import * as React from 'react';\nimport { ChipOption } from '../components/Chip/Chip';\nimport { ChipsInputBaseProps } from '../components/ChipsInputBase/ChipsInputBase';\n\nexport const useChipsInput = <Option extends ChipOption>(\n props: Partial<ChipsInputBaseProps<Option>>,\n) => {\n const { value, getOptionValue, onChange, onInputChange, getNewOptionData } = props;\n\n const [fieldValue, setFieldValue] = React.useState(props.inputValue);\n const [selectedOptions, setSelectedOptions] = React.useState(value ?? []);\n\n const clearInput = React.useCallback(() => {\n setFieldValue('');\n onInputChange!({ target: { value: '' } } as any);\n }, [onInputChange]);\n\n const handleInputChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setFieldValue(e.target.value);\n onInputChange!(e);\n },\n [onInputChange],\n );\n\n const toggleOption = React.useCallback(\n (newOption: Option, value?: boolean) => {\n const newSelectedOptions = selectedOptions.filter(\n (option: Option) => getOptionValue!(newOption) !== getOptionValue!(option),\n );\n\n if (value === true) {\n newSelectedOptions.push(newOption);\n }\n\n setSelectedOptions(newSelectedOptions);\n onChange!(newSelectedOptions);\n },\n [selectedOptions, getOptionValue, onChange],\n );\n\n const addOption = React.useCallback(\n (newOption: Option) => toggleOption(newOption, true),\n [toggleOption],\n );\n const addOptionFromInput = React.useCallback(() => {\n const trimmedValue = fieldValue?.trim();\n\n if (trimmedValue) {\n addOption(getNewOptionData!(undefined, trimmedValue));\n clearInput();\n }\n }, [addOption, clearInput, getNewOptionData, fieldValue]);\n const removeOption = React.useCallback(\n (value) => {\n toggleOption(getNewOptionData!(undefined, value as string), false);\n },\n [toggleOption, getNewOptionData],\n );\n\n React.useEffect(() => {\n setSelectedOptions(value as Option[]);\n\n return () => setSelectedOptions([]);\n }, [props.value, value]);\n\n React.useEffect(() => {\n setFieldValue(props.inputValue);\n\n return () => setFieldValue('');\n }, [props.inputValue]);\n\n return {\n fieldValue,\n setFieldValue,\n selectedOptions,\n setSelectedOptions,\n clearInput,\n toggleOption,\n addOption,\n addOptionFromInput,\n removeOption,\n handleInputChange,\n };\n};\n"],"names":["React","useChipsInput","props","value","getOptionValue","onChange","onInputChange","getNewOptionData","fieldValue","setFieldValue","useState","inputValue","selectedOptions","setSelectedOptions","clearInput","useCallback","target","handleInputChange","e","toggleOption","newOption","newSelectedOptions","filter","option","push","addOption","addOptionFromInput","trimmedValue","trim","undefined","removeOption","useEffect"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAI/B,OAAO,MAAMC,gBAAgB,CAC3BC;IAEA,MAAM,EAAEC,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useChipsInput.ts"],"sourcesContent":["import * as React from 'react';\nimport { ChipOption } from '../components/Chip/Chip';\nimport { ChipsInputBaseProps } from '../components/ChipsInputBase/ChipsInputBase';\n\nexport const useChipsInput = <Option extends ChipOption>(\n props: Partial<ChipsInputBaseProps<Option>>,\n) => {\n const { value, getOptionValue, onChange, onInputChange, getNewOptionData } = props;\n\n const [fieldValue, setFieldValue] = React.useState(props.inputValue);\n const [selectedOptions, setSelectedOptions] = React.useState(value ?? []);\n\n const clearInput = React.useCallback(() => {\n setFieldValue('');\n onInputChange!({ target: { value: '' } } as any);\n }, [onInputChange]);\n\n const handleInputChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setFieldValue(e.target.value);\n onInputChange!(e);\n },\n [onInputChange],\n );\n\n const toggleOption = React.useCallback(\n (newOption: Option, value?: boolean) => {\n const newSelectedOptions = selectedOptions.filter(\n (option: Option) => getOptionValue!(newOption) !== getOptionValue!(option),\n );\n\n if (value === true) {\n newSelectedOptions.push(newOption);\n }\n\n setSelectedOptions(newSelectedOptions);\n onChange!(newSelectedOptions);\n },\n [selectedOptions, getOptionValue, onChange],\n );\n\n const addOption = React.useCallback(\n (newOption: Option) => toggleOption(newOption, true),\n [toggleOption],\n );\n const addOptionFromInput = React.useCallback(() => {\n const trimmedValue = fieldValue?.trim();\n\n if (trimmedValue) {\n addOption(getNewOptionData!(undefined, trimmedValue));\n clearInput();\n }\n }, [addOption, clearInput, getNewOptionData, fieldValue]);\n const removeOption = React.useCallback(\n (value) => {\n toggleOption(getNewOptionData!(undefined, value as string), false);\n },\n [toggleOption, getNewOptionData],\n );\n\n React.useEffect(() => {\n setSelectedOptions(value as Option[]);\n\n return () => setSelectedOptions([]);\n }, [props.value, value]);\n\n React.useEffect(() => {\n setFieldValue(props.inputValue);\n\n return () => setFieldValue('');\n }, [props.inputValue]);\n\n return {\n fieldValue,\n setFieldValue,\n selectedOptions,\n setSelectedOptions,\n clearInput,\n toggleOption,\n addOption,\n addOptionFromInput,\n removeOption,\n handleInputChange,\n };\n};\n"],"names":["React","useChipsInput","props","value","getOptionValue","onChange","onInputChange","getNewOptionData","fieldValue","setFieldValue","useState","inputValue","selectedOptions","setSelectedOptions","clearInput","useCallback","target","handleInputChange","e","toggleOption","newOption","newSelectedOptions","filter","option","push","addOption","addOptionFromInput","trimmedValue","trim","undefined","removeOption","useEffect"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAI/B,OAAO,MAAMC,gBAAgB,CAC3BC;IAEA,MAAM,EAAEC,KAAK,EAAEC,cAAc,EAAEC,QAAQ,EAAEC,aAAa,EAAEC,gBAAgB,EAAE,GAAGL;IAE7E,MAAM,CAACM,YAAYC,cAAc,GAAGT,MAAMU,QAAQ,CAACR,MAAMS,UAAU;IACnE,MAAM,CAACC,iBAAiBC,mBAAmB,GAAGb,MAAMU,QAAQ,CAACP,SAAS,EAAE;IAExE,MAAMW,aAAad,MAAMe,WAAW,CAAC;QACnCN,cAAc;QACdH,cAAe;YAAEU,QAAQ;gBAAEb,OAAO;YAAG;QAAE;IACzC,GAAG;QAACG;KAAc;IAElB,MAAMW,oBAAoBjB,MAAMe,WAAW,CACzC,CAACG;QACCT,cAAcS,EAAEF,MAAM,CAACb,KAAK;QAC5BG,cAAeY;IACjB,GACA;QAACZ;KAAc;IAGjB,MAAMa,eAAenB,MAAMe,WAAW,CACpC,CAACK,WAAmBjB;QAClB,MAAMkB,qBAAqBT,gBAAgBU,MAAM,CAC/C,CAACC,SAAmBnB,eAAgBgB,eAAehB,eAAgBmB;QAGrE,IAAIpB,UAAU,MAAM;YAClBkB,mBAAmBG,IAAI,CAACJ;QAC1B;QAEAP,mBAAmBQ;QACnBhB,SAAUgB;IACZ,GACA;QAACT;QAAiBR;QAAgBC;KAAS;IAG7C,MAAMoB,YAAYzB,MAAMe,WAAW,CACjC,CAACK,YAAsBD,aAAaC,WAAW,OAC/C;QAACD;KAAa;IAEhB,MAAMO,qBAAqB1B,MAAMe,WAAW,CAAC;QAC3C,MAAMY,eAAenB,YAAYoB;QAEjC,IAAID,cAAc;YAChBF,UAAUlB,iBAAkBsB,WAAWF;YACvCb;QACF;IACF,GAAG;QAACW;QAAWX;QAAYP;QAAkBC;KAAW;IACxD,MAAMsB,eAAe9B,MAAMe,WAAW,CACpC,CAACZ;QACCgB,aAAaZ,iBAAkBsB,WAAW1B,QAAkB;IAC9D,GACA;QAACgB;QAAcZ;KAAiB;IAGlCP,MAAM+B,SAAS,CAAC;QACdlB,mBAAmBV;QAEnB,OAAO,IAAMU,mBAAmB,EAAE;IACpC,GAAG;QAACX,MAAMC,KAAK;QAAEA;KAAM;IAEvBH,MAAM+B,SAAS,CAAC;QACdtB,cAAcP,MAAMS,UAAU;QAE9B,OAAO,IAAMF,cAAc;IAC7B,GAAG;QAACP,MAAMS,UAAU;KAAC;IAErB,OAAO;QACLH;QACAC;QACAG;QACAC;QACAC;QACAK;QACAM;QACAC;QACAI;QACAb;IACF;AACF,EAAE"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { useChipsInput } from './useChipsInput';
|
|
3
3
|
export const useChipsSelect = (props)=>{
|
|
4
|
-
const { options
|
|
4
|
+
const { options, filterFn, getOptionLabel, getOptionValue } = props;
|
|
5
5
|
const [opened, setOpened] = React.useState(false);
|
|
6
6
|
const [focusedOptionIndex, setFocusedOptionIndex] = React.useState(0);
|
|
7
7
|
const [focusedOption, setFocusedOption] = React.useState(null);
|
|
8
|
-
const { fieldValue
|
|
8
|
+
const { fieldValue, selectedOptions, ...chipsInputState } = useChipsInput(props);
|
|
9
9
|
const handleInputChange = (e)=>{
|
|
10
10
|
if (!e) {
|
|
11
11
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useChipsSelect.ts"],"sourcesContent":["import * as React from 'react';\nimport { ChipOption } from '../components/Chip/Chip';\nimport { ChipsSelectProps } from '../components/ChipsSelect/ChipsSelect';\nimport { useChipsInput } from './useChipsInput';\n\nexport const useChipsSelect = <Option extends ChipOption>(\n props: Partial<ChipsSelectProps<Option>>,\n) => {\n const { options, filterFn, getOptionLabel, getOptionValue } = props;\n\n const [opened, setOpened] = React.useState(false);\n const [focusedOptionIndex, setFocusedOptionIndex] = React.useState<number | null>(0);\n const [focusedOption, setFocusedOption] = React.useState<Option | null>(null);\n\n const { fieldValue, selectedOptions, ...chipsInputState } = useChipsInput(props);\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement> | undefined) => {\n if (!e) {\n return;\n }\n chipsInputState.handleInputChange(e);\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n }\n };\n\n let filteredOptions = React.useMemo(() => {\n return filterFn\n ? options!.filter((option) => filterFn(fieldValue, option, getOptionLabel))\n : (options as Option[]);\n }, [options, filterFn, fieldValue, getOptionLabel]);\n\n filteredOptions = React.useMemo(() => {\n if (!filteredOptions.length) {\n return filteredOptions;\n }\n\n const filteredSet = new Set(filteredOptions);\n const selected = selectedOptions.map((item) => getOptionValue!(item));\n\n for (const item of filteredSet) {\n if (selected.includes(getOptionValue!(item))) {\n filteredSet.delete(item);\n }\n }\n\n return [...filteredSet];\n }, [filteredOptions, selectedOptions, getOptionValue]);\n\n return {\n ...chipsInputState,\n fieldValue,\n handleInputChange,\n opened,\n setOpened,\n filteredOptions,\n focusedOptionIndex,\n setFocusedOptionIndex,\n focusedOption,\n setFocusedOption,\n selectedOptions,\n };\n};\n"],"names":["React","useChipsInput","useChipsSelect","props","options","filterFn","getOptionLabel","getOptionValue","opened","setOpened","useState","focusedOptionIndex","setFocusedOptionIndex","focusedOption","setFocusedOption","fieldValue","selectedOptions","chipsInputState","handleInputChange","e","filteredOptions","useMemo","filter","option","length","filteredSet","Set","selected","map","item","includes","delete"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAG/B,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,OAAO,MAAMC,iBAAiB,CAC5BC;IAEA,MAAM,EAAEC,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useChipsSelect.ts"],"sourcesContent":["import * as React from 'react';\nimport { ChipOption } from '../components/Chip/Chip';\nimport { ChipsSelectProps } from '../components/ChipsSelect/ChipsSelect';\nimport { useChipsInput } from './useChipsInput';\n\nexport const useChipsSelect = <Option extends ChipOption>(\n props: Partial<ChipsSelectProps<Option>>,\n) => {\n const { options, filterFn, getOptionLabel, getOptionValue } = props;\n\n const [opened, setOpened] = React.useState(false);\n const [focusedOptionIndex, setFocusedOptionIndex] = React.useState<number | null>(0);\n const [focusedOption, setFocusedOption] = React.useState<Option | null>(null);\n\n const { fieldValue, selectedOptions, ...chipsInputState } = useChipsInput(props);\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement> | undefined) => {\n if (!e) {\n return;\n }\n chipsInputState.handleInputChange(e);\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n }\n };\n\n let filteredOptions = React.useMemo(() => {\n return filterFn\n ? options!.filter((option) => filterFn(fieldValue, option, getOptionLabel))\n : (options as Option[]);\n }, [options, filterFn, fieldValue, getOptionLabel]);\n\n filteredOptions = React.useMemo(() => {\n if (!filteredOptions.length) {\n return filteredOptions;\n }\n\n const filteredSet = new Set(filteredOptions);\n const selected = selectedOptions.map((item) => getOptionValue!(item));\n\n for (const item of filteredSet) {\n if (selected.includes(getOptionValue!(item))) {\n filteredSet.delete(item);\n }\n }\n\n return [...filteredSet];\n }, [filteredOptions, selectedOptions, getOptionValue]);\n\n return {\n ...chipsInputState,\n fieldValue,\n handleInputChange,\n opened,\n setOpened,\n filteredOptions,\n focusedOptionIndex,\n setFocusedOptionIndex,\n focusedOption,\n setFocusedOption,\n selectedOptions,\n };\n};\n"],"names":["React","useChipsInput","useChipsSelect","props","options","filterFn","getOptionLabel","getOptionValue","opened","setOpened","useState","focusedOptionIndex","setFocusedOptionIndex","focusedOption","setFocusedOption","fieldValue","selectedOptions","chipsInputState","handleInputChange","e","filteredOptions","useMemo","filter","option","length","filteredSet","Set","selected","map","item","includes","delete"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAG/B,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,OAAO,MAAMC,iBAAiB,CAC5BC;IAEA,MAAM,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,cAAc,EAAEC,cAAc,EAAE,GAAGJ;IAE9D,MAAM,CAACK,QAAQC,UAAU,GAAGT,MAAMU,QAAQ,CAAC;IAC3C,MAAM,CAACC,oBAAoBC,sBAAsB,GAAGZ,MAAMU,QAAQ,CAAgB;IAClF,MAAM,CAACG,eAAeC,iBAAiB,GAAGd,MAAMU,QAAQ,CAAgB;IAExE,MAAM,EAAEK,UAAU,EAAEC,eAAe,EAAE,GAAGC,iBAAiB,GAAGhB,cAAcE;IAE1E,MAAMe,oBAAoB,CAACC;QACzB,IAAI,CAACA,GAAG;YACN;QACF;QACAF,gBAAgBC,iBAAiB,CAACC;QAElC,IAAI,CAACX,QAAQ;YACXC,UAAU;YACVG,sBAAsB;QACxB;IACF;IAEA,IAAIQ,kBAAkBpB,MAAMqB,OAAO,CAAC;QAClC,OAAOhB,WACHD,QAASkB,MAAM,CAAC,CAACC,SAAWlB,SAASU,YAAYQ,QAAQjB,mBACxDF;IACP,GAAG;QAACA;QAASC;QAAUU;QAAYT;KAAe;IAElDc,kBAAkBpB,MAAMqB,OAAO,CAAC;QAC9B,IAAI,CAACD,gBAAgBI,MAAM,EAAE;YAC3B,OAAOJ;QACT;QAEA,MAAMK,cAAc,IAAIC,IAAIN;QAC5B,MAAMO,WAAWX,gBAAgBY,GAAG,CAAC,CAACC,OAAStB,eAAgBsB;QAE/D,KAAK,MAAMA,QAAQJ,YAAa;YAC9B,IAAIE,SAASG,QAAQ,CAACvB,eAAgBsB,QAAQ;gBAC5CJ,YAAYM,MAAM,CAACF;YACrB;QACF;QAEA,OAAO;eAAIJ;SAAY;IACzB,GAAG;QAACL;QAAiBJ;QAAiBT;KAAe;IAErD,OAAO;QACL,GAAGU,eAAe;QAClBF;QACAG;QACAV;QACAC;QACAW;QACAT;QACAC;QACAC;QACAC;QACAE;IACF;AACF,EAAE"}
|
|
@@ -2,14 +2,14 @@ import * as React from 'react';
|
|
|
2
2
|
import { useDOM } from '../lib/dom';
|
|
3
3
|
import { useBooleanState } from './useBooleanState';
|
|
4
4
|
import { useGlobalEventListener } from './useGlobalEventListener';
|
|
5
|
-
export function useDateInput({ maxElement
|
|
6
|
-
const { document
|
|
7
|
-
const { value: open
|
|
5
|
+
export function useDateInput({ maxElement, refs, autoFocus, disabled, elementsConfig, onChange, onInternalValueChange, getInternalValue, value }) {
|
|
6
|
+
const { document } = useDOM();
|
|
7
|
+
const { value: open, setTrue: openCalendar, setFalse: closeCalendar } = useBooleanState(false);
|
|
8
8
|
const rootRef = React.useRef(null);
|
|
9
9
|
const calendarRef = React.useRef(null);
|
|
10
10
|
const [internalValue, setInternalValue] = React.useState([]);
|
|
11
11
|
const [focusedElement, setFocusedElement] = React.useState(null);
|
|
12
|
-
const { window
|
|
12
|
+
const { window } = useDOM();
|
|
13
13
|
const removeFocusFromField = React.useCallback(()=>{
|
|
14
14
|
if (open) {
|
|
15
15
|
setFocusedElement(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useDateInput.ts"],"sourcesContent":["import * as React from 'react';\nimport { useDOM } from '../lib/dom';\nimport { useBooleanState } from './useBooleanState';\nimport { useGlobalEventListener } from './useGlobalEventListener';\n\nexport interface UseDateInputDependencies<T, D> {\n maxElement: number;\n refs: Array<React.RefObject<T>>;\n autoFocus?: boolean;\n disabled?: boolean;\n value?: D;\n elementsConfig(index: number): {\n length: number;\n min: number;\n max: number;\n };\n onInternalValueChange(value: string[]): void;\n getInternalValue(value?: D | undefined): string[];\n onChange?(value?: D | undefined): void;\n}\n\nexport function useDateInput<T extends HTMLElement, D>({\n maxElement,\n refs,\n autoFocus,\n disabled,\n elementsConfig,\n onChange,\n onInternalValueChange,\n getInternalValue,\n value,\n}: UseDateInputDependencies<T, D>) {\n const { document } = useDOM();\n const { value: open, setTrue: openCalendar, setFalse: closeCalendar } = useBooleanState(false);\n const rootRef = React.useRef<HTMLDivElement>(null);\n const calendarRef = React.useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = React.useState<string[]>([]);\n const [focusedElement, setFocusedElement] = React.useState<number | null>(null);\n const { window } = useDOM();\n\n const removeFocusFromField = React.useCallback(() => {\n if (open) {\n setFocusedElement(null);\n closeCalendar();\n window!.getSelection()?.removeAllRanges();\n setInternalValue(getInternalValue(value));\n }\n }, [closeCalendar, getInternalValue, open, value, window]);\n\n const handleClickOutside = React.useCallback(\n (e: MouseEvent) => {\n if (\n !rootRef.current?.contains(e.target as Node | null) &&\n !calendarRef.current?.contains(e.target as Node | null)\n ) {\n removeFocusFromField();\n }\n },\n [removeFocusFromField],\n );\n\n const selectFirst = React.useCallback(() => {\n setFocusedElement(0);\n }, []);\n\n useGlobalEventListener(document, 'click', handleClickOutside, {\n capture: true,\n });\n\n React.useEffect(() => {\n setInternalValue(getInternalValue(value));\n }, [getInternalValue, value]);\n\n React.useEffect(() => {\n if (autoFocus) {\n selectFirst();\n }\n }, [autoFocus, selectFirst]);\n\n React.useEffect(() => {\n if (disabled || focusedElement === null) {\n return;\n }\n\n const range = window!.document.createRange();\n\n let element = refs[focusedElement].current;\n\n if (element) {\n element.focus();\n openCalendar();\n range.selectNodeContents(element as Node);\n\n const selection = window!.getSelection();\n selection?.removeAllRanges();\n selection?.addRange(range);\n }\n }, [disabled, focusedElement, openCalendar, refs, window]);\n\n const clear = React.useCallback(() => {\n onChange?.(undefined);\n selectFirst();\n }, [onChange, selectFirst]);\n\n const handleFieldEnter = React.useCallback(() => {\n if (!open) {\n selectFirst();\n }\n }, [open, selectFirst]);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLSpanElement>) => {\n if (focusedElement === null) {\n return;\n }\n\n const _value = [...internalValue];\n const config = elementsConfig(focusedElement);\n\n if (/^\\d+$/.test(e.key)) {\n if (_value[focusedElement].length >= config.length) {\n _value[focusedElement] = e.key;\n } else {\n _value[focusedElement] += e.key;\n if (_value[focusedElement].length >= config.length && focusedElement < maxElement) {\n setFocusedElement(focusedElement + 1);\n }\n }\n } else if (e.key === 'Backspace') {\n if (!_value[focusedElement]) {\n setFocusedElement(focusedElement <= 0 ? maxElement : focusedElement - 1);\n } else {\n _value[focusedElement] = _value[focusedElement].slice(0, -1);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n let currentValue = Number(_value[focusedElement]);\n _value[focusedElement] = String(\n currentValue <= config.min ? config.max : currentValue - 1,\n ).padStart(config.length, '0');\n } else if (e.key === 'ArrowUp' || e.key === 'Up') {\n let currentValue = Number(_value[focusedElement]);\n _value[focusedElement] = String(\n currentValue >= config.max ? config.min : currentValue + 1,\n ).padStart(config.length, '0');\n } else if (\n e.key === 'Enter' ||\n (e.key === 'Tab' && focusedElement === maxElement) ||\n (e.key === 'Tab' && e.shiftKey && focusedElement === 0)\n ) {\n removeFocusFromField();\n return;\n } else if (e.key === 'ArrowLeft' || e.key === 'Left' || (e.key === 'Tab' && e.shiftKey)) {\n setFocusedElement(focusedElement <= 0 ? maxElement : focusedElement - 1);\n } else if (e.key === 'ArrowRight' || e.key === 'Right' || e.key === 'Tab') {\n setFocusedElement(focusedElement >= maxElement ? 0 : focusedElement + 1);\n } else if (e.key === 'Delete' || e.key === 'Del') {\n _value[focusedElement] = '';\n } else {\n return;\n }\n\n e.preventDefault();\n setInternalValue(_value);\n onInternalValueChange(_value);\n },\n [\n elementsConfig,\n focusedElement,\n internalValue,\n maxElement,\n onInternalValueChange,\n removeFocusFromField,\n ],\n );\n\n return {\n rootRef,\n calendarRef,\n open,\n openCalendar,\n closeCalendar,\n internalValue,\n focusedElement,\n setFocusedElement,\n handleKeyDown,\n clear,\n handleFieldEnter,\n removeFocusFromField,\n };\n}\n"],"names":["React","useDOM","useBooleanState","useGlobalEventListener","useDateInput","maxElement","refs","autoFocus","disabled","elementsConfig","onChange","onInternalValueChange","getInternalValue","value","document","open","setTrue","openCalendar","setFalse","closeCalendar","rootRef","useRef","calendarRef","internalValue","setInternalValue","useState","focusedElement","setFocusedElement","window","removeFocusFromField","useCallback","getSelection","removeAllRanges","handleClickOutside","e","current","contains","target","selectFirst","capture","useEffect","range","createRange","element","focus","selectNodeContents","selection","addRange","clear","undefined","handleFieldEnter","handleKeyDown","_value","config","test","key","length","slice","currentValue","Number","String","min","max","padStart","shiftKey","preventDefault"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useDateInput.ts"],"sourcesContent":["import * as React from 'react';\nimport { useDOM } from '../lib/dom';\nimport { useBooleanState } from './useBooleanState';\nimport { useGlobalEventListener } from './useGlobalEventListener';\n\nexport interface UseDateInputDependencies<T, D> {\n maxElement: number;\n refs: Array<React.RefObject<T>>;\n autoFocus?: boolean;\n disabled?: boolean;\n value?: D;\n elementsConfig(index: number): {\n length: number;\n min: number;\n max: number;\n };\n onInternalValueChange(value: string[]): void;\n getInternalValue(value?: D | undefined): string[];\n onChange?(value?: D | undefined): void;\n}\n\nexport function useDateInput<T extends HTMLElement, D>({\n maxElement,\n refs,\n autoFocus,\n disabled,\n elementsConfig,\n onChange,\n onInternalValueChange,\n getInternalValue,\n value,\n}: UseDateInputDependencies<T, D>) {\n const { document } = useDOM();\n const { value: open, setTrue: openCalendar, setFalse: closeCalendar } = useBooleanState(false);\n const rootRef = React.useRef<HTMLDivElement>(null);\n const calendarRef = React.useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = React.useState<string[]>([]);\n const [focusedElement, setFocusedElement] = React.useState<number | null>(null);\n const { window } = useDOM();\n\n const removeFocusFromField = React.useCallback(() => {\n if (open) {\n setFocusedElement(null);\n closeCalendar();\n window!.getSelection()?.removeAllRanges();\n setInternalValue(getInternalValue(value));\n }\n }, [closeCalendar, getInternalValue, open, value, window]);\n\n const handleClickOutside = React.useCallback(\n (e: MouseEvent) => {\n if (\n !rootRef.current?.contains(e.target as Node | null) &&\n !calendarRef.current?.contains(e.target as Node | null)\n ) {\n removeFocusFromField();\n }\n },\n [removeFocusFromField],\n );\n\n const selectFirst = React.useCallback(() => {\n setFocusedElement(0);\n }, []);\n\n useGlobalEventListener(document, 'click', handleClickOutside, {\n capture: true,\n });\n\n React.useEffect(() => {\n setInternalValue(getInternalValue(value));\n }, [getInternalValue, value]);\n\n React.useEffect(() => {\n if (autoFocus) {\n selectFirst();\n }\n }, [autoFocus, selectFirst]);\n\n React.useEffect(() => {\n if (disabled || focusedElement === null) {\n return;\n }\n\n const range = window!.document.createRange();\n\n let element = refs[focusedElement].current;\n\n if (element) {\n element.focus();\n openCalendar();\n range.selectNodeContents(element as Node);\n\n const selection = window!.getSelection();\n selection?.removeAllRanges();\n selection?.addRange(range);\n }\n }, [disabled, focusedElement, openCalendar, refs, window]);\n\n const clear = React.useCallback(() => {\n onChange?.(undefined);\n selectFirst();\n }, [onChange, selectFirst]);\n\n const handleFieldEnter = React.useCallback(() => {\n if (!open) {\n selectFirst();\n }\n }, [open, selectFirst]);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLSpanElement>) => {\n if (focusedElement === null) {\n return;\n }\n\n const _value = [...internalValue];\n const config = elementsConfig(focusedElement);\n\n if (/^\\d+$/.test(e.key)) {\n if (_value[focusedElement].length >= config.length) {\n _value[focusedElement] = e.key;\n } else {\n _value[focusedElement] += e.key;\n if (_value[focusedElement].length >= config.length && focusedElement < maxElement) {\n setFocusedElement(focusedElement + 1);\n }\n }\n } else if (e.key === 'Backspace') {\n if (!_value[focusedElement]) {\n setFocusedElement(focusedElement <= 0 ? maxElement : focusedElement - 1);\n } else {\n _value[focusedElement] = _value[focusedElement].slice(0, -1);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n let currentValue = Number(_value[focusedElement]);\n _value[focusedElement] = String(\n currentValue <= config.min ? config.max : currentValue - 1,\n ).padStart(config.length, '0');\n } else if (e.key === 'ArrowUp' || e.key === 'Up') {\n let currentValue = Number(_value[focusedElement]);\n _value[focusedElement] = String(\n currentValue >= config.max ? config.min : currentValue + 1,\n ).padStart(config.length, '0');\n } else if (\n e.key === 'Enter' ||\n (e.key === 'Tab' && focusedElement === maxElement) ||\n (e.key === 'Tab' && e.shiftKey && focusedElement === 0)\n ) {\n removeFocusFromField();\n return;\n } else if (e.key === 'ArrowLeft' || e.key === 'Left' || (e.key === 'Tab' && e.shiftKey)) {\n setFocusedElement(focusedElement <= 0 ? maxElement : focusedElement - 1);\n } else if (e.key === 'ArrowRight' || e.key === 'Right' || e.key === 'Tab') {\n setFocusedElement(focusedElement >= maxElement ? 0 : focusedElement + 1);\n } else if (e.key === 'Delete' || e.key === 'Del') {\n _value[focusedElement] = '';\n } else {\n return;\n }\n\n e.preventDefault();\n setInternalValue(_value);\n onInternalValueChange(_value);\n },\n [\n elementsConfig,\n focusedElement,\n internalValue,\n maxElement,\n onInternalValueChange,\n removeFocusFromField,\n ],\n );\n\n return {\n rootRef,\n calendarRef,\n open,\n openCalendar,\n closeCalendar,\n internalValue,\n focusedElement,\n setFocusedElement,\n handleKeyDown,\n clear,\n handleFieldEnter,\n removeFocusFromField,\n };\n}\n"],"names":["React","useDOM","useBooleanState","useGlobalEventListener","useDateInput","maxElement","refs","autoFocus","disabled","elementsConfig","onChange","onInternalValueChange","getInternalValue","value","document","open","setTrue","openCalendar","setFalse","closeCalendar","rootRef","useRef","calendarRef","internalValue","setInternalValue","useState","focusedElement","setFocusedElement","window","removeFocusFromField","useCallback","getSelection","removeAllRanges","handleClickOutside","e","current","contains","target","selectFirst","capture","useEffect","range","createRange","element","focus","selectNodeContents","selection","addRange","clear","undefined","handleFieldEnter","handleKeyDown","_value","config","test","key","length","slice","currentValue","Number","String","min","max","padStart","shiftKey","preventDefault"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useEffectDev.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { noop } from '@vkontakte/vkjs';\n\nexport const useEffectDev = process.env.NODE_ENV === 'development' ? useEffect : noop;\n"],"names":["useEffect","noop","useEffectDev","process","env","NODE_ENV"],"mappings":"AAAA,SAASA,SAAS,QAAQ,QAAQ;AAClC,SAASC,IAAI,QAAQ,kBAAkB;AAEvC,OAAO,MAAMC,eAAeC,QAAQC,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useEffectDev.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { noop } from '@vkontakte/vkjs';\n\nexport const useEffectDev = process.env.NODE_ENV === 'development' ? useEffect : noop;\n"],"names":["useEffect","noop","useEffectDev","process","env","NODE_ENV"],"mappings":"AAAA,SAASA,SAAS,QAAQ,QAAQ;AAClC,SAASC,IAAI,QAAQ,kBAAkB;AAEvC,OAAO,MAAMC,eAAeC,QAAQC,GAAG,CAACC,QAAQ,KAAK,gBAAgBL,YAAYC,KAAK"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
export function useEnsuredControl({ onChange: onChangeProp
|
|
2
|
+
export function useEnsuredControl({ onChange: onChangeProp, disabled, ...props }) {
|
|
3
3
|
const [value, onChangeValue] = useCustomEnsuredControl(props);
|
|
4
4
|
const onChange = React.useCallback((e)=>{
|
|
5
5
|
if (disabled) {
|
|
@@ -17,7 +17,7 @@ export function useEnsuredControl({ onChange: onChangeProp , disabled , ...props
|
|
|
17
17
|
onChange
|
|
18
18
|
];
|
|
19
19
|
}
|
|
20
|
-
export function useCustomEnsuredControl({ disabled
|
|
20
|
+
export function useCustomEnsuredControl({ disabled, onChange: onChangeProp, defaultValue, value }) {
|
|
21
21
|
const isControlled = value !== undefined;
|
|
22
22
|
const [localValue, setLocalValue] = React.useState(defaultValue);
|
|
23
23
|
const onChange = React.useCallback((v)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useEnsuredControl.ts"],"sourcesContent":["import * as React from 'react';\n\ninterface UseEnsuredControlProps<V, E extends React.ChangeEvent<any>> {\n value?: V;\n onChange?: (e: E) => any;\n defaultValue: V;\n disabled?: boolean | undefined;\n}\n\nexport function useEnsuredControl<V, E extends React.ChangeEvent<any>>({\n onChange: onChangeProp,\n disabled,\n ...props\n}: UseEnsuredControlProps<V, E>): [V | undefined, (e: E) => any] {\n const [value, onChangeValue] = useCustomEnsuredControl(props);\n\n const onChange = React.useCallback(\n (e: E) => {\n if (disabled) {\n return;\n }\n\n onChangeValue(e.target.value);\n onChangeProp && onChangeProp(e);\n },\n [onChangeValue, onChangeProp, disabled],\n );\n\n return [value, onChange];\n}\n\ninterface UseCustomEnsuredControlProps<V> {\n value?: V;\n onChange?: (v: V) => any;\n defaultValue: V;\n disabled?: boolean | undefined;\n}\n\nexport function useCustomEnsuredControl<V>({\n disabled,\n onChange: onChangeProp,\n defaultValue,\n value,\n}: UseCustomEnsuredControlProps<V>): [V | undefined, (e: V) => any] {\n const isControlled = value !== undefined;\n const [localValue, setLocalValue] = React.useState(defaultValue);\n\n const onChange = React.useCallback(\n (v: V) => {\n if (disabled) {\n return;\n }\n\n !isControlled && setLocalValue(v);\n onChangeProp && onChangeProp(v);\n },\n [disabled, isControlled, onChangeProp],\n );\n\n return [isControlled ? value : localValue, onChange];\n}\n"],"names":["React","useEnsuredControl","onChange","onChangeProp","disabled","props","value","onChangeValue","useCustomEnsuredControl","useCallback","e","target","defaultValue","isControlled","undefined","localValue","setLocalValue","useState","v"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAS/B,OAAO,SAASC,kBAAuD,EACrEC,UAAUC,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useEnsuredControl.ts"],"sourcesContent":["import * as React from 'react';\n\ninterface UseEnsuredControlProps<V, E extends React.ChangeEvent<any>> {\n value?: V;\n onChange?: (e: E) => any;\n defaultValue: V;\n disabled?: boolean | undefined;\n}\n\nexport function useEnsuredControl<V, E extends React.ChangeEvent<any>>({\n onChange: onChangeProp,\n disabled,\n ...props\n}: UseEnsuredControlProps<V, E>): [V | undefined, (e: E) => any] {\n const [value, onChangeValue] = useCustomEnsuredControl(props);\n\n const onChange = React.useCallback(\n (e: E) => {\n if (disabled) {\n return;\n }\n\n onChangeValue(e.target.value);\n onChangeProp && onChangeProp(e);\n },\n [onChangeValue, onChangeProp, disabled],\n );\n\n return [value, onChange];\n}\n\ninterface UseCustomEnsuredControlProps<V> {\n value?: V;\n onChange?: (v: V) => any;\n defaultValue: V;\n disabled?: boolean | undefined;\n}\n\nexport function useCustomEnsuredControl<V>({\n disabled,\n onChange: onChangeProp,\n defaultValue,\n value,\n}: UseCustomEnsuredControlProps<V>): [V | undefined, (e: V) => any] {\n const isControlled = value !== undefined;\n const [localValue, setLocalValue] = React.useState(defaultValue);\n\n const onChange = React.useCallback(\n (v: V) => {\n if (disabled) {\n return;\n }\n\n !isControlled && setLocalValue(v);\n onChangeProp && onChangeProp(v);\n },\n [disabled, isControlled, onChangeProp],\n );\n\n return [isControlled ? value : localValue, onChange];\n}\n"],"names":["React","useEnsuredControl","onChange","onChangeProp","disabled","props","value","onChangeValue","useCustomEnsuredControl","useCallback","e","target","defaultValue","isControlled","undefined","localValue","setLocalValue","useState","v"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAS/B,OAAO,SAASC,kBAAuD,EACrEC,UAAUC,YAAY,EACtBC,QAAQ,EACR,GAAGC,OAC0B;IAC7B,MAAM,CAACC,OAAOC,cAAc,GAAGC,wBAAwBH;IAEvD,MAAMH,WAAWF,MAAMS,WAAW,CAChC,CAACC;QACC,IAAIN,UAAU;YACZ;QACF;QAEAG,cAAcG,EAAEC,MAAM,CAACL,KAAK;QAC5BH,gBAAgBA,aAAaO;IAC/B,GACA;QAACH;QAAeJ;QAAcC;KAAS;IAGzC,OAAO;QAACE;QAAOJ;KAAS;AAC1B;AASA,OAAO,SAASM,wBAA2B,EACzCJ,QAAQ,EACRF,UAAUC,YAAY,EACtBS,YAAY,EACZN,KAAK,EAC2B;IAChC,MAAMO,eAAeP,UAAUQ;IAC/B,MAAM,CAACC,YAAYC,cAAc,GAAGhB,MAAMiB,QAAQ,CAACL;IAEnD,MAAMV,WAAWF,MAAMS,WAAW,CAChC,CAACS;QACC,IAAId,UAAU;YACZ;QACF;QAEA,CAACS,gBAAgBG,cAAcE;QAC/Bf,gBAAgBA,aAAae;IAC/B,GACA;QAACd;QAAUS;QAAcV;KAAa;IAGxC,OAAO;QAACU,eAAeP,QAAQS;QAAYb;KAAS;AACtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useEventListener.ts"],"sourcesContent":["import * as React from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { canUseDOM } from '../lib/dom';\nimport { useIsomorphicLayoutEffect } from '../lib/useIsomorphicLayoutEffect';\n\ninterface EventListenerHandle {\n add: (el: HTMLElement | Document | Window) => void;\n remove: () => void;\n}\n\nexport function useEventListener<K extends keyof GlobalEventHandlersEventMap>(\n event: K,\n _cb: false | null | undefined | ((ev: GlobalEventHandlersEventMap[K]) => void),\n _options?: AddEventListenerOptions,\n): EventListenerHandle;\nexport function useEventListener<E extends Event>(\n event: string,\n _cb: false | null | undefined | ((ev: E) => void),\n _options?: AddEventListenerOptions,\n): EventListenerHandle;\nexport function useEventListener<E extends Event, K extends keyof GlobalEventHandlersEventMap>(\n event: string | K,\n _cb: false | null | undefined | ((ev: E) => void),\n _options?: AddEventListenerOptions,\n): EventListenerHandle {\n const cbRef = React.useRef(_cb);\n useIsomorphicLayoutEffect(() => {\n cbRef.current = _cb;\n }, [_cb]);\n const cb = React.useCallback((e: any) => cbRef.current && cbRef.current(e), []);\n\n const detach = React.useRef(noop);\n const remove = React.useCallback(() => {\n detach.current();\n detach.current = noop;\n }, []);\n const add = React.useCallback(\n (el: HTMLElement | Document | Window) => {\n if (!canUseDOM) {\n return;\n }\n remove();\n if (!el) {\n return;\n }\n const options = { ..._options };\n el.addEventListener(event, cb, options);\n detach.current = () => el.removeEventListener(event, cb, options);\n },\n [_options, cb, event, remove],\n );\n React.useEffect(() => remove, [remove]);\n\n return React.useMemo(() => ({ add, remove }), [add, remove]);\n}\n"],"names":["React","noop","canUseDOM","useIsomorphicLayoutEffect","useEventListener","event","_cb","_options","cbRef","useRef","current","cb","useCallback","e","detach","remove","add","el","options","addEventListener","removeEventListener","useEffect","useMemo"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,yBAAyB,QAAQ,mCAAmC;AAiB7E,OAAO,SAASC,iBACdC,KAAiB,EACjBC,GAAiD,EACjDC,QAAkC;IAElC,MAAMC,QAAQR,MAAMS,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useEventListener.ts"],"sourcesContent":["import * as React from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { canUseDOM } from '../lib/dom';\nimport { useIsomorphicLayoutEffect } from '../lib/useIsomorphicLayoutEffect';\n\ninterface EventListenerHandle {\n add: (el: HTMLElement | Document | Window) => void;\n remove: () => void;\n}\n\nexport function useEventListener<K extends keyof GlobalEventHandlersEventMap>(\n event: K,\n _cb: false | null | undefined | ((ev: GlobalEventHandlersEventMap[K]) => void),\n _options?: AddEventListenerOptions,\n): EventListenerHandle;\nexport function useEventListener<E extends Event>(\n event: string,\n _cb: false | null | undefined | ((ev: E) => void),\n _options?: AddEventListenerOptions,\n): EventListenerHandle;\nexport function useEventListener<E extends Event, K extends keyof GlobalEventHandlersEventMap>(\n event: string | K,\n _cb: false | null | undefined | ((ev: E) => void),\n _options?: AddEventListenerOptions,\n): EventListenerHandle {\n const cbRef = React.useRef(_cb);\n useIsomorphicLayoutEffect(() => {\n cbRef.current = _cb;\n }, [_cb]);\n const cb = React.useCallback((e: any) => cbRef.current && cbRef.current(e), []);\n\n const detach = React.useRef(noop);\n const remove = React.useCallback(() => {\n detach.current();\n detach.current = noop;\n }, []);\n const add = React.useCallback(\n (el: HTMLElement | Document | Window) => {\n if (!canUseDOM) {\n return;\n }\n remove();\n if (!el) {\n return;\n }\n const options = { ..._options };\n el.addEventListener(event, cb, options);\n detach.current = () => el.removeEventListener(event, cb, options);\n },\n [_options, cb, event, remove],\n );\n React.useEffect(() => remove, [remove]);\n\n return React.useMemo(() => ({ add, remove }), [add, remove]);\n}\n"],"names":["React","noop","canUseDOM","useIsomorphicLayoutEffect","useEventListener","event","_cb","_options","cbRef","useRef","current","cb","useCallback","e","detach","remove","add","el","options","addEventListener","removeEventListener","useEffect","useMemo"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,yBAAyB,QAAQ,mCAAmC;AAiB7E,OAAO,SAASC,iBACdC,KAAiB,EACjBC,GAAiD,EACjDC,QAAkC;IAElC,MAAMC,QAAQR,MAAMS,MAAM,CAACH;IAC3BH,0BAA0B;QACxBK,MAAME,OAAO,GAAGJ;IAClB,GAAG;QAACA;KAAI;IACR,MAAMK,KAAKX,MAAMY,WAAW,CAAC,CAACC,IAAWL,MAAME,OAAO,IAAIF,MAAME,OAAO,CAACG,IAAI,EAAE;IAE9E,MAAMC,SAASd,MAAMS,MAAM,CAACR;IAC5B,MAAMc,SAASf,MAAMY,WAAW,CAAC;QAC/BE,OAAOJ,OAAO;QACdI,OAAOJ,OAAO,GAAGT;IACnB,GAAG,EAAE;IACL,MAAMe,MAAMhB,MAAMY,WAAW,CAC3B,CAACK;QACC,IAAI,CAACf,WAAW;YACd;QACF;QACAa;QACA,IAAI,CAACE,IAAI;YACP;QACF;QACA,MAAMC,UAAU;YAAE,GAAGX,QAAQ;QAAC;QAC9BU,GAAGE,gBAAgB,CAACd,OAAOM,IAAIO;QAC/BJ,OAAOJ,OAAO,GAAG,IAAMO,GAAGG,mBAAmB,CAACf,OAAOM,IAAIO;IAC3D,GACA;QAACX;QAAUI;QAAIN;QAAOU;KAAO;IAE/Bf,MAAMqB,SAAS,CAAC,IAAMN,QAAQ;QAACA;KAAO;IAEtC,OAAOf,MAAMsB,OAAO,CAAC,IAAO,CAAA;YAAEN;YAAKD;QAAO,CAAA,GAAI;QAACC;QAAKD;KAAO;AAC7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useExternRef.ts"],"sourcesContent":["import * as React from 'react';\nimport { setRef } from '../lib/utils';\n\nexport function useExternRef<T>(\n ...externRefs: Array<React.Ref<T> | undefined | false>\n): React.MutableRefObject<T | null> {\n const stableRef = React.useRef<T | null>(null);\n\n return React.useMemo(\n () => ({\n get current() {\n return stableRef.current;\n },\n set current(el) {\n stableRef.current = el;\n externRefs.forEach((ref) => {\n if (ref) {\n setRef(el, ref);\n }\n });\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n externRefs,\n );\n}\n"],"names":["React","setRef","useExternRef","externRefs","stableRef","useRef","useMemo","current","el","forEach","ref"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,MAAM,QAAQ,eAAe;AAEtC,OAAO,SAASC,aACd,GAAGC,UAAmD;IAEtD,MAAMC,YAAYJ,MAAMK,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useExternRef.ts"],"sourcesContent":["import * as React from 'react';\nimport { setRef } from '../lib/utils';\n\nexport function useExternRef<T>(\n ...externRefs: Array<React.Ref<T> | undefined | false>\n): React.MutableRefObject<T | null> {\n const stableRef = React.useRef<T | null>(null);\n\n return React.useMemo(\n () => ({\n get current() {\n return stableRef.current;\n },\n set current(el) {\n stableRef.current = el;\n externRefs.forEach((ref) => {\n if (ref) {\n setRef(el, ref);\n }\n });\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n externRefs,\n );\n}\n"],"names":["React","setRef","useExternRef","externRefs","stableRef","useRef","useMemo","current","el","forEach","ref"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,MAAM,QAAQ,eAAe;AAEtC,OAAO,SAASC,aACd,GAAGC,UAAmD;IAEtD,MAAMC,YAAYJ,MAAMK,MAAM,CAAW;IAEzC,OAAOL,MAAMM,OAAO,CAClB,IAAO,CAAA;YACL,IAAIC,WAAU;gBACZ,OAAOH,UAAUG,OAAO;YAC1B;YACA,IAAIA,SAAQC,GAAI;gBACdJ,UAAUG,OAAO,GAAGC;gBACpBL,WAAWM,OAAO,CAAC,CAACC;oBAClB,IAAIA,KAAK;wBACPT,OAAOO,IAAIE;oBACb;gBACF;YACF;QACF,CAAA,GACA,uDAAuD;IACvDP;AAEJ"}
|
|
@@ -2,7 +2,7 @@ import { useCallback, useContext, useState } from 'react';
|
|
|
2
2
|
import { AppRootContext } from '../components/AppRoot/AppRootContext';
|
|
3
3
|
export function useFocusVisible(withKeyboardInputCheck = true) {
|
|
4
4
|
const [isFocused, setIsFocused] = useState(false);
|
|
5
|
-
const { keyboardInput
|
|
5
|
+
const { keyboardInput } = useContext(AppRootContext);
|
|
6
6
|
const onFocus = useCallback((event)=>{
|
|
7
7
|
event.stopPropagation();
|
|
8
8
|
setIsFocused(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useFocusVisible.ts"],"sourcesContent":["import { FocusEvent, useCallback, useContext, useState } from 'react';\nimport { AppRootContext } from '../components/AppRoot/AppRootContext';\n\nexport function useFocusVisible(withKeyboardInputCheck = true) {\n const [isFocused, setIsFocused] = useState(false);\n const { keyboardInput } = useContext(AppRootContext);\n\n const onFocus = useCallback(\n (event: FocusEvent<HTMLElement>) => {\n event.stopPropagation();\n setIsFocused(true);\n },\n [setIsFocused],\n );\n\n const onBlur = useCallback(\n (event: FocusEvent<HTMLElement>) => {\n event.stopPropagation();\n setIsFocused(false);\n },\n [setIsFocused],\n );\n\n const focusVisible = withKeyboardInputCheck ? keyboardInput && isFocused : isFocused;\n\n return {\n focusVisible,\n onFocus,\n onBlur,\n };\n}\n"],"names":["useCallback","useContext","useState","AppRootContext","useFocusVisible","withKeyboardInputCheck","isFocused","setIsFocused","keyboardInput","onFocus","event","stopPropagation","onBlur","focusVisible"],"mappings":"AAAA,SAAqBA,WAAW,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,QAAQ;AACtE,SAASC,cAAc,QAAQ,uCAAuC;AAEtE,OAAO,SAASC,gBAAgBC,yBAAyB,IAAI;IAC3D,MAAM,CAACC,WAAWC,aAAa,GAAGL,SAAS;IAC3C,MAAM,EAAEM,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useFocusVisible.ts"],"sourcesContent":["import { FocusEvent, useCallback, useContext, useState } from 'react';\nimport { AppRootContext } from '../components/AppRoot/AppRootContext';\n\nexport function useFocusVisible(withKeyboardInputCheck = true) {\n const [isFocused, setIsFocused] = useState(false);\n const { keyboardInput } = useContext(AppRootContext);\n\n const onFocus = useCallback(\n (event: FocusEvent<HTMLElement>) => {\n event.stopPropagation();\n setIsFocused(true);\n },\n [setIsFocused],\n );\n\n const onBlur = useCallback(\n (event: FocusEvent<HTMLElement>) => {\n event.stopPropagation();\n setIsFocused(false);\n },\n [setIsFocused],\n );\n\n const focusVisible = withKeyboardInputCheck ? keyboardInput && isFocused : isFocused;\n\n return {\n focusVisible,\n onFocus,\n onBlur,\n };\n}\n"],"names":["useCallback","useContext","useState","AppRootContext","useFocusVisible","withKeyboardInputCheck","isFocused","setIsFocused","keyboardInput","onFocus","event","stopPropagation","onBlur","focusVisible"],"mappings":"AAAA,SAAqBA,WAAW,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,QAAQ;AACtE,SAASC,cAAc,QAAQ,uCAAuC;AAEtE,OAAO,SAASC,gBAAgBC,yBAAyB,IAAI;IAC3D,MAAM,CAACC,WAAWC,aAAa,GAAGL,SAAS;IAC3C,MAAM,EAAEM,aAAa,EAAE,GAAGP,WAAWE;IAErC,MAAMM,UAAUT,YACd,CAACU;QACCA,MAAMC,eAAe;QACrBJ,aAAa;IACf,GACA;QAACA;KAAa;IAGhB,MAAMK,SAASZ,YACb,CAACU;QACCA,MAAMC,eAAe;QACrBJ,aAAa;IACf,GACA;QAACA;KAAa;IAGhB,MAAMM,eAAeR,yBAAyBG,iBAAiBF,YAAYA;IAE3E,OAAO;QACLO;QACAJ;QACAG;IACF;AACF"}
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { useDOM } from '../lib/dom';
|
|
3
3
|
import { useGlobalEventListener } from './useGlobalEventListener';
|
|
4
4
|
export function useFocusWithin(ref) {
|
|
5
|
-
const { document
|
|
5
|
+
const { document } = useDOM();
|
|
6
6
|
const isFocusWithin = ()=>{
|
|
7
7
|
if (!ref.current || !document) {
|
|
8
8
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useFocusWithin.ts"],"sourcesContent":["import React from 'react';\nimport { useDOM } from '../lib/dom';\nimport { useGlobalEventListener } from './useGlobalEventListener';\n\nexport function useFocusWithin(ref: React.RefObject<HTMLElement | null>): boolean {\n const { document } = useDOM();\n const isFocusWithin = () => {\n if (!ref.current || !document) {\n return false;\n }\n\n return ref.current.contains(document.activeElement);\n };\n\n const [focusWithin, setFocusWithin] = React.useState<boolean>(isFocusWithin);\n\n const listener = () => {\n const focus = isFocusWithin();\n focus !== focusWithin && setFocusWithin(focus);\n };\n\n useGlobalEventListener(document, 'focus', listener, { capture: true });\n useGlobalEventListener(document, 'blur', listener, { capture: true });\n\n return focusWithin;\n}\n"],"names":["React","useDOM","useGlobalEventListener","useFocusWithin","ref","document","isFocusWithin","current","contains","activeElement","focusWithin","setFocusWithin","useState","listener","focus","capture"],"mappings":"AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,sBAAsB,QAAQ,2BAA2B;AAElE,OAAO,SAASC,eAAeC,GAAwC;IACrE,MAAM,EAAEC,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useFocusWithin.ts"],"sourcesContent":["import React from 'react';\nimport { useDOM } from '../lib/dom';\nimport { useGlobalEventListener } from './useGlobalEventListener';\n\nexport function useFocusWithin(ref: React.RefObject<HTMLElement | null>): boolean {\n const { document } = useDOM();\n const isFocusWithin = () => {\n if (!ref.current || !document) {\n return false;\n }\n\n return ref.current.contains(document.activeElement);\n };\n\n const [focusWithin, setFocusWithin] = React.useState<boolean>(isFocusWithin);\n\n const listener = () => {\n const focus = isFocusWithin();\n focus !== focusWithin && setFocusWithin(focus);\n };\n\n useGlobalEventListener(document, 'focus', listener, { capture: true });\n useGlobalEventListener(document, 'blur', listener, { capture: true });\n\n return focusWithin;\n}\n"],"names":["React","useDOM","useGlobalEventListener","useFocusWithin","ref","document","isFocusWithin","current","contains","activeElement","focusWithin","setFocusWithin","useState","listener","focus","capture"],"mappings":"AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,sBAAsB,QAAQ,2BAA2B;AAElE,OAAO,SAASC,eAAeC,GAAwC;IACrE,MAAM,EAAEC,QAAQ,EAAE,GAAGJ;IACrB,MAAMK,gBAAgB;QACpB,IAAI,CAACF,IAAIG,OAAO,IAAI,CAACF,UAAU;YAC7B,OAAO;QACT;QAEA,OAAOD,IAAIG,OAAO,CAACC,QAAQ,CAACH,SAASI,aAAa;IACpD;IAEA,MAAM,CAACC,aAAaC,eAAe,GAAGX,MAAMY,QAAQ,CAAUN;IAE9D,MAAMO,WAAW;QACf,MAAMC,QAAQR;QACdQ,UAAUJ,eAAeC,eAAeG;IAC1C;IAEAZ,uBAAuBG,UAAU,SAASQ,UAAU;QAAEE,SAAS;IAAK;IACpEb,uBAAuBG,UAAU,QAAQQ,UAAU;QAAEE,SAAS;IAAK;IAEnE,OAAOL;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useGlobalEventListener.ts"],"sourcesContent":["import { useIsomorphicLayoutEffect } from '../lib/useIsomorphicLayoutEffect';\nimport { useEventListener } from './useEventListener';\n\nexport function useGlobalEventListener<K extends keyof GlobalEventHandlersEventMap>(\n element: Document | HTMLElement | Window | null | undefined,\n event: K,\n cb: ((ev: GlobalEventHandlersEventMap[K]) => void) | null | false | undefined,\n options?: AddEventListenerOptions,\n): void;\nexport function useGlobalEventListener<E extends Event>(\n element: Document | HTMLElement | Window | null | undefined,\n event: string,\n cb: ((ev: E) => void) | null | false | undefined,\n options?: AddEventListenerOptions,\n): void;\nexport function useGlobalEventListener<\n K extends keyof GlobalEventHandlersEventMap,\n E extends Event,\n>(\n element: Document | HTMLElement | Window | null | undefined,\n event: K | string,\n cb: ((ev: E) => void) | null | false | undefined,\n options?: AddEventListenerOptions,\n) {\n const listener = useEventListener(event, cb, options);\n useIsomorphicLayoutEffect(() => {\n if (cb && element) {\n listener.add(element);\n } else {\n listener.remove();\n }\n }, [Boolean(cb), Boolean(element)]);\n}\n"],"names":["useIsomorphicLayoutEffect","useEventListener","useGlobalEventListener","element","event","cb","options","listener","add","remove","Boolean"],"mappings":"AAAA,SAASA,yBAAyB,QAAQ,mCAAmC;AAC7E,SAASC,gBAAgB,QAAQ,qBAAqB;AActD,OAAO,SAASC,uBAIdC,OAA2D,EAC3DC,KAAiB,EACjBC,EAAgD,EAChDC,OAAiC;IAEjC,MAAMC,WAAWN,iBAAiBG,OAAOC,IAAIC;IAC7CN,0BAA0B;QACxB,IAAIK,MAAMF,SAAS;YACjBI,SAASC,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useGlobalEventListener.ts"],"sourcesContent":["import { useIsomorphicLayoutEffect } from '../lib/useIsomorphicLayoutEffect';\nimport { useEventListener } from './useEventListener';\n\nexport function useGlobalEventListener<K extends keyof GlobalEventHandlersEventMap>(\n element: Document | HTMLElement | Window | null | undefined,\n event: K,\n cb: ((ev: GlobalEventHandlersEventMap[K]) => void) | null | false | undefined,\n options?: AddEventListenerOptions,\n): void;\nexport function useGlobalEventListener<E extends Event>(\n element: Document | HTMLElement | Window | null | undefined,\n event: string,\n cb: ((ev: E) => void) | null | false | undefined,\n options?: AddEventListenerOptions,\n): void;\nexport function useGlobalEventListener<\n K extends keyof GlobalEventHandlersEventMap,\n E extends Event,\n>(\n element: Document | HTMLElement | Window | null | undefined,\n event: K | string,\n cb: ((ev: E) => void) | null | false | undefined,\n options?: AddEventListenerOptions,\n) {\n const listener = useEventListener(event, cb, options);\n useIsomorphicLayoutEffect(() => {\n if (cb && element) {\n listener.add(element);\n } else {\n listener.remove();\n }\n }, [Boolean(cb), Boolean(element)]);\n}\n"],"names":["useIsomorphicLayoutEffect","useEventListener","useGlobalEventListener","element","event","cb","options","listener","add","remove","Boolean"],"mappings":"AAAA,SAASA,yBAAyB,QAAQ,mCAAmC;AAC7E,SAASC,gBAAgB,QAAQ,qBAAqB;AActD,OAAO,SAASC,uBAIdC,OAA2D,EAC3DC,KAAiB,EACjBC,EAAgD,EAChDC,OAAiC;IAEjC,MAAMC,WAAWN,iBAAiBG,OAAOC,IAAIC;IAC7CN,0BAA0B;QACxB,IAAIK,MAAMF,SAAS;YACjBI,SAASC,GAAG,CAACL;QACf,OAAO;YACLI,SAASE,MAAM;QACjB;IACF,GAAG;QAACC,QAAQL;QAAKK,QAAQP;KAAS;AACpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useId.ts"],"sourcesContent":["import * as React from 'react';\n\n// Workaround for https://github.com/webpack/webpack/issues/14814\n// https://github.com/eps1lon/material-ui/blob/8d5f135b4d7a58253a99ab56dce4ac8de61f5dc1/packages/mui-utils/src/useId.ts#L21\nconst maybeReactUseId: undefined | (() => string) = (React as any)['useId'.toString()];\n\nlet id = 0;\n\n// TODO [react@>=18]: Remove after React 18\nfunction useIncrementingCounterID(): string {\n const [state] = React.useState(() => id++);\n\n return `:r${state}:`;\n}\n\nexport const useId: () => string = maybeReactUseId ?? useIncrementingCounterID;\n"],"names":["React","maybeReactUseId","toString","id","useIncrementingCounterID","state","useState","useId"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,iEAAiE;AACjE,2HAA2H;AAC3H,MAAMC,kBAA8C,AAACD,KAAa,CAAC,QAAQE,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useId.ts"],"sourcesContent":["import * as React from 'react';\n\n// Workaround for https://github.com/webpack/webpack/issues/14814\n// https://github.com/eps1lon/material-ui/blob/8d5f135b4d7a58253a99ab56dce4ac8de61f5dc1/packages/mui-utils/src/useId.ts#L21\nconst maybeReactUseId: undefined | (() => string) = (React as any)['useId'.toString()];\n\nlet id = 0;\n\n// TODO [react@>=18]: Remove after React 18\nfunction useIncrementingCounterID(): string {\n const [state] = React.useState(() => id++);\n\n return `:r${state}:`;\n}\n\nexport const useId: () => string = maybeReactUseId ?? useIncrementingCounterID;\n"],"names":["React","maybeReactUseId","toString","id","useIncrementingCounterID","state","useState","useId"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,iEAAiE;AACjE,2HAA2H;AAC3H,MAAMC,kBAA8C,AAACD,KAAa,CAAC,QAAQE,QAAQ,GAAG;AAEtF,IAAIC,KAAK;AAET,2CAA2C;AAC3C,SAASC;IACP,MAAM,CAACC,MAAM,GAAGL,MAAMM,QAAQ,CAAC,IAAMH;IAErC,OAAO,CAAC,EAAE,EAAEE,MAAM,CAAC,CAAC;AACtB;AAEA,OAAO,MAAME,QAAsBN,mBAAmBG,yBAAyB"}
|
|
@@ -8,11 +8,11 @@ let initialState = {
|
|
|
8
8
|
right: null
|
|
9
9
|
};
|
|
10
10
|
function resolveInsets(e) {
|
|
11
|
-
const { type
|
|
11
|
+
const { type, data } = e.detail;
|
|
12
12
|
switch(type){
|
|
13
13
|
case 'VKWebAppUpdateConfig':
|
|
14
14
|
case 'VKWebAppUpdateInsets':
|
|
15
|
-
const { insets
|
|
15
|
+
const { insets } = data;
|
|
16
16
|
if (insets) {
|
|
17
17
|
return {
|
|
18
18
|
...insets,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useInsets.ts"],"sourcesContent":["import * as React from 'react';\nimport vkBridge, { Insets as BridgeInsets } from '@vkontakte/vk-bridge';\nimport { useIsomorphicLayoutEffect } from '../lib/useIsomorphicLayoutEffect';\n\nexport interface Insets {\n bottom: BridgeInsets['bottom'] | null;\n top: BridgeInsets['top'] | null;\n left: BridgeInsets['left'] | null;\n right: BridgeInsets['right'] | null;\n}\n\nlet initialState: Insets = {\n bottom: null,\n top: null,\n left: null,\n right: null,\n};\n\ninterface BridgeEvent {\n detail: {\n type: string;\n data: {\n [index: string]: any;\n };\n };\n}\n\nfunction resolveInsets(e: BridgeEvent): Insets | null {\n const { type, data } = e.detail;\n switch (type) {\n case 'VKWebAppUpdateConfig':\n case 'VKWebAppUpdateInsets': // Устаревшее событие vk-bridge\n const { insets } = data;\n if (insets) {\n return {\n ...insets,\n bottom: insets.bottom > 150 ? 0 : insets.bottom, // если больше 150 – значит открылась клава и она сама работает как инсет, то есть наш нужно занулить\n };\n }\n }\n return null;\n}\n\nvkBridge.subscribe((e: BridgeEvent) => {\n const insets = resolveInsets(e);\n if (insets) {\n initialState = insets;\n }\n});\n\nexport function useInsets(): Insets {\n const [insets, setInsets] = React.useState<Insets>(initialState);\n\n useIsomorphicLayoutEffect(() => {\n function connectListener(e: BridgeEvent) {\n const insets = resolveInsets(e);\n if (insets) {\n setInsets(insets);\n }\n }\n\n vkBridge.subscribe(connectListener);\n return () => {\n vkBridge.unsubscribe(connectListener);\n };\n }, []);\n\n return insets;\n}\n"],"names":["React","vkBridge","useIsomorphicLayoutEffect","initialState","bottom","top","left","right","resolveInsets","e","type","data","detail","insets","subscribe","useInsets","setInsets","useState","connectListener","unsubscribe"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,OAAOC,cAA0C,uBAAuB;AACxE,SAASC,yBAAyB,QAAQ,mCAAmC;AAS7E,IAAIC,eAAuB;IACzBC,QAAQ;IACRC,KAAK;IACLC,MAAM;IACNC,OAAO;AACT;AAWA,SAASC,cAAcC,CAAc;IACnC,MAAM,EAAEC,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useInsets.ts"],"sourcesContent":["import * as React from 'react';\nimport vkBridge, { Insets as BridgeInsets } from '@vkontakte/vk-bridge';\nimport { useIsomorphicLayoutEffect } from '../lib/useIsomorphicLayoutEffect';\n\nexport interface Insets {\n bottom: BridgeInsets['bottom'] | null;\n top: BridgeInsets['top'] | null;\n left: BridgeInsets['left'] | null;\n right: BridgeInsets['right'] | null;\n}\n\nlet initialState: Insets = {\n bottom: null,\n top: null,\n left: null,\n right: null,\n};\n\ninterface BridgeEvent {\n detail: {\n type: string;\n data: {\n [index: string]: any;\n };\n };\n}\n\nfunction resolveInsets(e: BridgeEvent): Insets | null {\n const { type, data } = e.detail;\n switch (type) {\n case 'VKWebAppUpdateConfig':\n case 'VKWebAppUpdateInsets': // Устаревшее событие vk-bridge\n const { insets } = data;\n if (insets) {\n return {\n ...insets,\n bottom: insets.bottom > 150 ? 0 : insets.bottom, // если больше 150 – значит открылась клава и она сама работает как инсет, то есть наш нужно занулить\n };\n }\n }\n return null;\n}\n\nvkBridge.subscribe((e: BridgeEvent) => {\n const insets = resolveInsets(e);\n if (insets) {\n initialState = insets;\n }\n});\n\nexport function useInsets(): Insets {\n const [insets, setInsets] = React.useState<Insets>(initialState);\n\n useIsomorphicLayoutEffect(() => {\n function connectListener(e: BridgeEvent) {\n const insets = resolveInsets(e);\n if (insets) {\n setInsets(insets);\n }\n }\n\n vkBridge.subscribe(connectListener);\n return () => {\n vkBridge.unsubscribe(connectListener);\n };\n }, []);\n\n return insets;\n}\n"],"names":["React","vkBridge","useIsomorphicLayoutEffect","initialState","bottom","top","left","right","resolveInsets","e","type","data","detail","insets","subscribe","useInsets","setInsets","useState","connectListener","unsubscribe"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,OAAOC,cAA0C,uBAAuB;AACxE,SAASC,yBAAyB,QAAQ,mCAAmC;AAS7E,IAAIC,eAAuB;IACzBC,QAAQ;IACRC,KAAK;IACLC,MAAM;IACNC,OAAO;AACT;AAWA,SAASC,cAAcC,CAAc;IACnC,MAAM,EAAEC,IAAI,EAAEC,IAAI,EAAE,GAAGF,EAAEG,MAAM;IAC/B,OAAQF;QACN,KAAK;QACL,KAAK;YACH,MAAM,EAAEG,MAAM,EAAE,GAAGF;YACnB,IAAIE,QAAQ;gBACV,OAAO;oBACL,GAAGA,MAAM;oBACTT,QAAQS,OAAOT,MAAM,GAAG,MAAM,IAAIS,OAAOT,MAAM;gBACjD;YACF;IACJ;IACA,OAAO;AACT;AAEAH,SAASa,SAAS,CAAC,CAACL;IAClB,MAAMI,SAASL,cAAcC;IAC7B,IAAII,QAAQ;QACVV,eAAeU;IACjB;AACF;AAEA,OAAO,SAASE;IACd,MAAM,CAACF,QAAQG,UAAU,GAAGhB,MAAMiB,QAAQ,CAASd;IAEnDD,0BAA0B;QACxB,SAASgB,gBAAgBT,CAAc;YACrC,MAAMI,SAASL,cAAcC;YAC7B,IAAII,QAAQ;gBACVG,UAAUH;YACZ;QACF;QAEAZ,SAASa,SAAS,CAACI;QACnB,OAAO;YACLjB,SAASkB,WAAW,CAACD;QACvB;IACF,GAAG,EAAE;IAEL,OAAOL;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useIsClient.ts"],"sourcesContent":["import * as React from 'react';\n\n/**\n * Хук для two-pass рендеринга.\n *\n * ВНИМАНИЕ: Этот подход сделает ваши компоненты медленнее, потому что они\n * должны рендериться дважды, поэтому используйте хук с осторожностью.\n *\n * @see {@link https://beta.reactjs.org/apis/react-dom/hydrate#handling-different-client-and-server-content React Docs}\n */\nexport function useIsClient(initial = false) {\n const [isClient, setIsClient] = React.useState(initial);\n\n React.useEffect(() => {\n setIsClient(true);\n }, []);\n\n return isClient;\n}\n"],"names":["React","useIsClient","initial","isClient","setIsClient","useState","useEffect"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B;;;;;;;CAOC,GACD,OAAO,SAASC,YAAYC,UAAU,KAAK;IACzC,MAAM,CAACC,UAAUC,YAAY,GAAGJ,MAAMK,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useIsClient.ts"],"sourcesContent":["import * as React from 'react';\n\n/**\n * Хук для two-pass рендеринга.\n *\n * ВНИМАНИЕ: Этот подход сделает ваши компоненты медленнее, потому что они\n * должны рендериться дважды, поэтому используйте хук с осторожностью.\n *\n * @see {@link https://beta.reactjs.org/apis/react-dom/hydrate#handling-different-client-and-server-content React Docs}\n */\nexport function useIsClient(initial = false) {\n const [isClient, setIsClient] = React.useState(initial);\n\n React.useEffect(() => {\n setIsClient(true);\n }, []);\n\n return isClient;\n}\n"],"names":["React","useIsClient","initial","isClient","setIsClient","useState","useEffect"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B;;;;;;;CAOC,GACD,OAAO,SAASC,YAAYC,UAAU,KAAK;IACzC,MAAM,CAACC,UAAUC,YAAY,GAAGJ,MAAMK,QAAQ,CAACH;IAE/CF,MAAMM,SAAS,CAAC;QACdF,YAAY;IACd,GAAG,EAAE;IAEL,OAAOD;AACT"}
|
|
@@ -5,7 +5,7 @@ import { useGlobalEventListener } from './useGlobalEventListener';
|
|
|
5
5
|
Проверяет, закрыла ли клавиатура часть экрана, 24% подошло к большинству устройств
|
|
6
6
|
Работает на iOS и Android, где софт-клавиатура ресайзит viewport в браузерах
|
|
7
7
|
*/ export function getPreciseKeyboardState(window) {
|
|
8
|
-
const { innerHeight
|
|
8
|
+
const { innerHeight, screen: { availHeight } } = window;
|
|
9
9
|
const coveredViewportPercentage = Math.round((1 - innerHeight / availHeight) * 100);
|
|
10
10
|
return coveredViewportPercentage > 24;
|
|
11
11
|
}
|
|
@@ -14,7 +14,7 @@ const eventOptions = {
|
|
|
14
14
|
capture: false
|
|
15
15
|
};
|
|
16
16
|
export function useKeyboard() {
|
|
17
|
-
const { document
|
|
17
|
+
const { document } = useDOM();
|
|
18
18
|
const [isOpened, setIsOpened] = React.useState(false);
|
|
19
19
|
const onFocus = React.useCallback((event)=>{
|
|
20
20
|
const isOpened = (event === true || event.type === 'focusin') && (document?.activeElement?.tagName === 'INPUT' || document?.activeElement?.tagName === 'TEXTAREA');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useKeyboard.ts"],"sourcesContent":["import * as React from 'react';\nimport { useDOM } from '../lib/dom';\nimport { useGlobalEventListener } from './useGlobalEventListener';\n\ninterface SoftwareKeyboardState {\n isOpened: boolean;\n}\n\n/**\n Проверяет, закрыла ли клавиатура часть экрана, 24% подошло к большинству устройств\n Работает на iOS и Android, где софт-клавиатура ресайзит viewport в браузерах\n */\nexport function getPreciseKeyboardState(window: any): boolean {\n const {\n innerHeight,\n screen: { availHeight },\n } = window;\n\n const coveredViewportPercentage = Math.round((1 - innerHeight / availHeight) * 100);\n return coveredViewportPercentage > 24;\n}\n\nconst eventOptions = {\n passive: true,\n capture: false,\n};\n\nexport function useKeyboard(): SoftwareKeyboardState {\n const { document } = useDOM();\n\n const [isOpened, setIsOpened] = React.useState(false);\n\n const onFocus = React.useCallback(\n (event: FocusEvent | true) => {\n const isOpened =\n (event === true || event.type === 'focusin') &&\n (document?.activeElement?.tagName === 'INPUT' ||\n document?.activeElement?.tagName === 'TEXTAREA');\n setIsOpened(isOpened);\n },\n [document?.activeElement?.tagName],\n );\n\n /**\n У полей с autoFocus не отлавливаются события focus, для этого вызываем вручную,\n чтобы иметь хоть какое-то понимание происходящего.\n */\n React.useEffect(() => {\n onFocus(true);\n }, [onFocus]);\n\n useGlobalEventListener(document, 'focusout', onFocus, eventOptions);\n useGlobalEventListener(document, 'focusin', onFocus, eventOptions);\n\n return { isOpened };\n}\n"],"names":["React","useDOM","useGlobalEventListener","getPreciseKeyboardState","window","innerHeight","screen","availHeight","coveredViewportPercentage","Math","round","eventOptions","passive","capture","useKeyboard","document","isOpened","setIsOpened","useState","onFocus","useCallback","event","type","activeElement","tagName","useEffect"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,sBAAsB,QAAQ,2BAA2B;AAMlE;;;CAGC,GACD,OAAO,SAASC,wBAAwBC,MAAW;IACjD,MAAM,EACJC,
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useKeyboard.ts"],"sourcesContent":["import * as React from 'react';\nimport { useDOM } from '../lib/dom';\nimport { useGlobalEventListener } from './useGlobalEventListener';\n\ninterface SoftwareKeyboardState {\n isOpened: boolean;\n}\n\n/**\n Проверяет, закрыла ли клавиатура часть экрана, 24% подошло к большинству устройств\n Работает на iOS и Android, где софт-клавиатура ресайзит viewport в браузерах\n */\nexport function getPreciseKeyboardState(window: any): boolean {\n const {\n innerHeight,\n screen: { availHeight },\n } = window;\n\n const coveredViewportPercentage = Math.round((1 - innerHeight / availHeight) * 100);\n return coveredViewportPercentage > 24;\n}\n\nconst eventOptions = {\n passive: true,\n capture: false,\n};\n\nexport function useKeyboard(): SoftwareKeyboardState {\n const { document } = useDOM();\n\n const [isOpened, setIsOpened] = React.useState(false);\n\n const onFocus = React.useCallback(\n (event: FocusEvent | true) => {\n const isOpened =\n (event === true || event.type === 'focusin') &&\n (document?.activeElement?.tagName === 'INPUT' ||\n document?.activeElement?.tagName === 'TEXTAREA');\n setIsOpened(isOpened);\n },\n [document?.activeElement?.tagName],\n );\n\n /**\n У полей с autoFocus не отлавливаются события focus, для этого вызываем вручную,\n чтобы иметь хоть какое-то понимание происходящего.\n */\n React.useEffect(() => {\n onFocus(true);\n }, [onFocus]);\n\n useGlobalEventListener(document, 'focusout', onFocus, eventOptions);\n useGlobalEventListener(document, 'focusin', onFocus, eventOptions);\n\n return { isOpened };\n}\n"],"names":["React","useDOM","useGlobalEventListener","getPreciseKeyboardState","window","innerHeight","screen","availHeight","coveredViewportPercentage","Math","round","eventOptions","passive","capture","useKeyboard","document","isOpened","setIsOpened","useState","onFocus","useCallback","event","type","activeElement","tagName","useEffect"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,sBAAsB,QAAQ,2BAA2B;AAMlE;;;CAGC,GACD,OAAO,SAASC,wBAAwBC,MAAW;IACjD,MAAM,EACJC,WAAW,EACXC,QAAQ,EAAEC,WAAW,EAAE,EACxB,GAAGH;IAEJ,MAAMI,4BAA4BC,KAAKC,KAAK,CAAC,AAAC,CAAA,IAAIL,cAAcE,WAAU,IAAK;IAC/E,OAAOC,4BAA4B;AACrC;AAEA,MAAMG,eAAe;IACnBC,SAAS;IACTC,SAAS;AACX;AAEA,OAAO,SAASC;IACd,MAAM,EAAEC,QAAQ,EAAE,GAAGd;IAErB,MAAM,CAACe,UAAUC,YAAY,GAAGjB,MAAMkB,QAAQ,CAAC;IAE/C,MAAMC,UAAUnB,MAAMoB,WAAW,CAC/B,CAACC;QACC,MAAML,WACJ,AAACK,CAAAA,UAAU,QAAQA,MAAMC,IAAI,KAAK,SAAQ,KACzCP,CAAAA,UAAUQ,eAAeC,YAAY,WACpCT,UAAUQ,eAAeC,YAAY,UAAS;QAClDP,YAAYD;IACd,GACA;QAACD,UAAUQ,eAAeC;KAAQ;IAGpC;;;GAGC,GACDxB,MAAMyB,SAAS,CAAC;QACdN,QAAQ;IACV,GAAG;QAACA;KAAQ;IAEZjB,uBAAuBa,UAAU,YAAYI,SAASR;IACtDT,uBAAuBa,UAAU,WAAWI,SAASR;IAErD,OAAO;QAAEK;IAAS;AACpB"}
|
|
@@ -5,7 +5,7 @@ import { useGlobalEventListener } from './useGlobalEventListener';
|
|
|
5
5
|
export const ENABLE_KEYBOARD_INPUT_EVENT_NAME = 'enableKeyboardInput';
|
|
6
6
|
export const DISABLE_KEYBOARD_INPUT_EVENT_NAME = 'disableKeyboardInput';
|
|
7
7
|
export function useKeyboardInputTracker() {
|
|
8
|
-
const { document
|
|
8
|
+
const { document } = useDOM();
|
|
9
9
|
const [isKeyboardInputActive, toggleKeyboardInput] = React.useState(false);
|
|
10
10
|
const enableKeyboardInput = React.useCallback(()=>{
|
|
11
11
|
toggleKeyboardInput(true);
|