@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
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<a href="https://npmjs.com/package/@vkontakte/vkui"><img src="https://img.shields.io/npm/v/@vkontakte/vkui/latest.svg?maxAge=3600" alt="open latest version"></a>
|
|
12
12
|
</p>
|
|
13
13
|
<p align="center">
|
|
14
|
-
VKUI — это библиотека адаптивных React-компонентов, <br> для создания веб-приложений и <a href="https://vk.com/
|
|
14
|
+
VKUI — это библиотека адаптивных React-компонентов, <br> для создания веб-приложений и <a href="https://dev.vk.com/mini-apps/overview">VK Mini Apps</a> в экосистеме ВКонтакте.<br>
|
|
15
15
|
Библиотека основана на <a href="https://www.figma.com/@vk">дизайн-системе ВКонтакте</a> и реализует её интерфейсы для различных платформ.<br>
|
|
16
16
|
Релизы: <a href="https://github.com/VKCOM/VKUI/releases">https://github.com/VKCOM/VKUI/releases</a>.<br>
|
|
17
17
|
Гайд по миграции <a href="https://vkcom.github.io/VKUI/#/Migration">на версию 5</a>.
|
|
@@ -104,7 +104,7 @@ ReactDOM.render(
|
|
|
104
104
|
|
|
105
105
|
## Тестирование
|
|
106
106
|
|
|
107
|
-
Мы работаем над качеством библиотеки и подвозим тесты. `yarn test` запускает юниты,
|
|
107
|
+
Мы работаем над качеством библиотеки и подвозим тесты. `yarn test` запускает юниты, типы и линтит. Также мы поддерживаем скриншотные тесты (e2e) и проверяем базовую доступность (a11y) компонентов — смотрите наш [гайд по тестированию](https://github.com/VKCOM/VKUI/blob/master/docs/TESTING.md).
|
|
108
108
|
|
|
109
109
|
## Документация
|
|
110
110
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Accordion/Accordion.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasRootRef } from '../../types';\nimport { AccordionSummary } from './AccordionSummary';\nimport styles from './Accordion.module.css';\n\nexport type AccordionProps = React.DetailsHTMLAttributes<HTMLDetailsElement> &\n HasRootRef<HTMLDetailsElement>;\n\n/**\n * Компонент, позволяет отображать несколько разделов контента в ограниченном\n * пространстве и сворачивать или разворачивать их пользователем.\n *\n * Обертка над details.\n *\n * @since 5.3.0\n * @see https://vkcom.github.io/VKUI/#/Accordion\n */\nexport const Accordion = ({ getRootRef, className, ...restProps }: AccordionProps) => (\n <details className={classNames(styles['Accordion'], className)} ref={getRootRef} {...restProps} />\n);\n\nAccordion.Summary = AccordionSummary;\n"],"names":["Accordion","getRootRef","className","restProps","details","classNames","ref","Summary","AccordionSummary"],"mappings":";;;;+BAkBaA;;;eAAAA;;;;;;+DAlBU;oBACI;gCAEM;AAe1B,IAAMA,YAAY;QAAGC,oBAAAA,YAAYC,mBAAAA,WAAcC;QAA1BF;QAAYC;;WACtC,qBAACE;QAAQF,WAAWG,IAAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Accordion/Accordion.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasRootRef } from '../../types';\nimport { AccordionSummary } from './AccordionSummary';\nimport styles from './Accordion.module.css';\n\nexport type AccordionProps = React.DetailsHTMLAttributes<HTMLDetailsElement> &\n HasRootRef<HTMLDetailsElement>;\n\n/**\n * Компонент, позволяет отображать несколько разделов контента в ограниченном\n * пространстве и сворачивать или разворачивать их пользователем.\n *\n * Обертка над details.\n *\n * @since 5.3.0\n * @see https://vkcom.github.io/VKUI/#/Accordion\n */\nexport const Accordion = ({ getRootRef, className, ...restProps }: AccordionProps) => (\n <details className={classNames(styles['Accordion'], className)} ref={getRootRef} {...restProps} />\n);\n\nAccordion.Summary = AccordionSummary;\n"],"names":["Accordion","getRootRef","className","restProps","details","classNames","ref","Summary","AccordionSummary"],"mappings":";;;;+BAkBaA;;;eAAAA;;;;;;+DAlBU;oBACI;gCAEM;AAe1B,IAAMA,YAAY;QAAGC,oBAAAA,YAAYC,mBAAAA,WAAcC;QAA1BF;QAAYC;;WACtC,qBAACE;QAAQF,WAAWG,IAAAA,gBAAU,mBAAsBH;QAAYI,KAAKL;OAAgBE;AAAY;AAGnGH,UAAUO,OAAO,GAAGC,kCAAgB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Accordion/AccordionSummary.tsx"],"sourcesContent":["import React from 'react';\nimport { Icon24ChevronDown, Icon24ChevronUp } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { SimpleCell, SimpleCellProps } from '../SimpleCell/SimpleCell';\nimport styles from './Accordion.module.css';\n\nexport interface AccordionSummaryProps extends Omit<SimpleCellProps, 'expandable'> {\n /**\n * Иконка для раскрытия контента.\n */\n ExpandIcon?: React.ElementType;\n /**\n * Иконка для сворачивания контента.\n */\n CollapseIcon?: React.ElementType;\n /**\n * Позиция иконки.\n */\n iconPosition?: 'before' | 'after';\n}\n\n/**\n * Обертка над summary.\n *\n * @since 5.3.0\n * @see https://vkcom.github.io/VKUI/#/Accordion\n */\nexport const AccordionSummary = ({\n className,\n after,\n before,\n ExpandIcon = Icon24ChevronDown,\n CollapseIcon = Icon24ChevronUp,\n iconPosition = 'after',\n children,\n ...restProps\n}: AccordionSummaryProps) => {\n const accordionIcon = (\n // Обертка нужна для правильной работы с отступами в SimpleCell\n // Без обертки на AccordionSummary__icon--collapse не будет действовать правило `last-child`\n <span className=\"vkuiIcon\">\n <ExpandIcon\n className={classNames(\n styles['AccordionSummary__icon'],\n styles['AccordionSummary__icon--expand'],\n )}\n />\n <CollapseIcon\n className={classNames(\n styles['AccordionSummary__icon'],\n styles['AccordionSummary__icon--collapse'],\n )}\n />\n </span>\n );\n\n return (\n <SimpleCell\n className={classNames(styles['AccordionSummary'], className)}\n Component=\"summary\"\n before={\n <>\n {iconPosition === 'before' && accordionIcon}\n {before}\n </>\n }\n after={\n <>\n {after}\n {iconPosition === 'after' && accordionIcon}\n </>\n }\n {...restProps}\n >\n {children}\n </SimpleCell>\n );\n};\n"],"names":["AccordionSummary","className","after","before","ExpandIcon","Icon24ChevronDown","CollapseIcon","Icon24ChevronUp","iconPosition","children","restProps","accordionIcon","span","classNames","SimpleCell","Component"],"mappings":";;;;+BA2BaA;;;eAAAA;;;;;;8DA3BK;qBACiC;oBACxB;0BACiB;AAwBrC,IAAMA,mBAAmB;QAC9BC,mBAAAA,WACAC,eAAAA,OACAC,gBAAAA,mCACAC,YAAAA,4CAAaC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Accordion/AccordionSummary.tsx"],"sourcesContent":["import React from 'react';\nimport { Icon24ChevronDown, Icon24ChevronUp } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { SimpleCell, SimpleCellProps } from '../SimpleCell/SimpleCell';\nimport styles from './Accordion.module.css';\n\nexport interface AccordionSummaryProps extends Omit<SimpleCellProps, 'expandable'> {\n /**\n * Иконка для раскрытия контента.\n */\n ExpandIcon?: React.ElementType;\n /**\n * Иконка для сворачивания контента.\n */\n CollapseIcon?: React.ElementType;\n /**\n * Позиция иконки.\n */\n iconPosition?: 'before' | 'after';\n}\n\n/**\n * Обертка над summary.\n *\n * @since 5.3.0\n * @see https://vkcom.github.io/VKUI/#/Accordion\n */\nexport const AccordionSummary = ({\n className,\n after,\n before,\n ExpandIcon = Icon24ChevronDown,\n CollapseIcon = Icon24ChevronUp,\n iconPosition = 'after',\n children,\n ...restProps\n}: AccordionSummaryProps) => {\n const accordionIcon = (\n // Обертка нужна для правильной работы с отступами в SimpleCell\n // Без обертки на AccordionSummary__icon--collapse не будет действовать правило `last-child`\n <span className=\"vkuiIcon\">\n <ExpandIcon\n className={classNames(\n styles['AccordionSummary__icon'],\n styles['AccordionSummary__icon--expand'],\n )}\n />\n <CollapseIcon\n className={classNames(\n styles['AccordionSummary__icon'],\n styles['AccordionSummary__icon--collapse'],\n )}\n />\n </span>\n );\n\n return (\n <SimpleCell\n className={classNames(styles['AccordionSummary'], className)}\n Component=\"summary\"\n before={\n <>\n {iconPosition === 'before' && accordionIcon}\n {before}\n </>\n }\n after={\n <>\n {after}\n {iconPosition === 'after' && accordionIcon}\n </>\n }\n {...restProps}\n >\n {children}\n </SimpleCell>\n );\n};\n"],"names":["AccordionSummary","className","after","before","ExpandIcon","Icon24ChevronDown","CollapseIcon","Icon24ChevronUp","iconPosition","children","restProps","accordionIcon","span","classNames","SimpleCell","Component"],"mappings":";;;;+BA2BaA;;;eAAAA;;;;;;8DA3BK;qBACiC;oBACxB;0BACiB;AAwBrC,IAAMA,mBAAmB;QAC9BC,mBAAAA,WACAC,eAAAA,OACAC,gBAAAA,mCACAC,YAAAA,4CAAaC,wBAAiB,mDAC9BC,cAAAA,gDAAeC,sBAAe,qDAC9BC,cAAAA,gDAAe,+BACfC,kBAAAA,UACGC;QAPHT;QACAC;QACAC;QACAC;QACAE;QACAE;QACAC;;IAGA,IAAME,gBACJ,+DAA+D;IAC/D,4FAA4F;kBAC5F,6BAACC;QAAKX,WAAU;qBACd,6BAACG;QACCH,WAAWY,IAAAA,gBAAU;sBAKvB,6BAACP;QACCL,WAAWY,IAAAA,gBAAU;;IAQ3B,qBACE,6BAACC,sBAAU;QACTb,WAAWY,IAAAA,gBAAU,0BAA6BZ;QAClDc,WAAU;QACVZ,sBACE,4DACGK,iBAAiB,YAAYG,eAC7BR;QAGLD,qBACE,4DACGA,OACAM,iBAAiB,WAAWG;OAG7BD,YAEHD;AAGP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheet.tsx"],"sourcesContent":["import * as React from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { Platform } from '../../lib/platform';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport { ActionSheetDropdown } from './ActionSheetDropdown';\nimport { ActionSheetDropdownDesktop } from './ActionSheetDropdownDesktop';\nimport { SharedDropdownProps } from './types';\nimport styles from './ActionSheet.module.css';\n\nexport interface ActionSheetProps\n extends Pick<SharedDropdownProps, 'toggleRef' | 'popupDirection' | 'popupOffsetDistance'>,\n React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи.\n */\n onClose: VoidFunction;\n /**\n * Только iOS.\n */\n iosCloseItem: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheet\n */\nexport const ActionSheet = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n popupDirection = 'bottom',\n popupOffsetDistance,\n ...restProps\n}: ActionSheetProps) => {\n const platform = usePlatform();\n const [closing, setClosing] = React.useState(false);\n const onClose = () => setClosing(true);\n const _action = React.useRef(noop);\n\n const afterClose = () => {\n restProps.onClose();\n _action.current();\n _action.current = noop;\n };\n\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n useScrollLock(!isDesktop);\n\n let timeout = platform === Platform.IOS ? 300 : 200;\n\n if (isDesktop) {\n timeout = 0;\n }\n\n const fallbackTransitionFinish = useTimeout(afterClose, timeout);\n React.useEffect(() => {\n if (closing) {\n fallbackTransitionFinish.set();\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closing, fallbackTransitionFinish]);\n\n const onItemClick = React.useCallback<ItemClickHandler>(\n (action, immediateAction, autoClose) => (event) => {\n event.persist();\n immediateAction && immediateAction(event);\n if (autoClose) {\n _action.current = () => action && action(event);\n setClosing(true);\n } else {\n action && action(event);\n }\n },\n [],\n );\n const contextValue = useObjectMemo({ onItemClick, isDesktop });\n\n const DropdownComponent = isDesktop ? ActionSheetDropdownDesktop : ActionSheetDropdown;\n\n const dropdownProps = isDesktop\n ? Object.assign(restProps, { popupOffsetDistance, popupDirection })\n : restProps;\n\n const actionSheet = (\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={closing}\n timeout={timeout}\n {...dropdownProps}\n onClose={onClose}\n className={isDesktop ? className : undefined}\n style={isDesktop ? style : undefined}\n >\n {(header || text) && (\n <header className={styles['ActionSheet__header']}>\n {header && (\n <Footnote weight=\"2\" className={styles['ActionSheet__title']}>\n {header}\n </Footnote>\n )}\n {text && <Footnote className={styles['ActionSheet__text']}>{text}</Footnote>}\n </header>\n )}\n {children}\n {platform === Platform.IOS && !isDesktop && iosCloseItem}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n );\n\n if (isDesktop) {\n return actionSheet;\n }\n\n return (\n <PopoutWrapper\n closing={closing}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={onClose}\n hasMask\n fixed\n >\n {actionSheet}\n </PopoutWrapper>\n );\n};\n"],"names":["ActionSheet","children","className","header","text","style","iosCloseItem","popupDirection","popupOffsetDistance","restProps","platform","usePlatform","React","useState","closing","setClosing","onClose","_action","useRef","noop","afterClose","current","isDesktop","useAdaptivityWithJSMediaQueries","useScrollLock","timeout","Platform","IOS","fallbackTransitionFinish","useTimeout","useEffect","set","clear","onItemClick","useCallback","action","immediateAction","autoClose","event","persist","contextValue","useObjectMemo","DropdownComponent","ActionSheetDropdownDesktop","ActionSheetDropdown","dropdownProps","Object","assign","actionSheet","ActionSheetContext","Provider","value","undefined","Footnote","weight","PopoutWrapper","alignY","onClick","hasMask","fixed"],"mappings":";;;;+BAkCaA;;;eAAAA;;;;;;;;+DAlCU;oBACF;+CAC2B;6BAClB;2BACF;0BACD;wBACF;6BACK;6BACA;wBACL;kCAC4B;mCACjB;0CACO;AAsBpC,IAAMA,cAAc;QACzBC,kBAAAA,UACAC,mBAAAA,WACAC,gBAAAA,QACAC,cAAAA,MACAC,eAAAA,OACAC,sBAAAA,6CACAC,gBAAAA,oDAAiB,kCACjBC,6BAAAA,qBACGC;QARHR;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWC,IAAAA;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheet.tsx"],"sourcesContent":["import * as React from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { Platform } from '../../lib/platform';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport { ActionSheetDropdown } from './ActionSheetDropdown';\nimport { ActionSheetDropdownDesktop } from './ActionSheetDropdownDesktop';\nimport { SharedDropdownProps } from './types';\nimport styles from './ActionSheet.module.css';\n\nexport interface ActionSheetProps\n extends Pick<SharedDropdownProps, 'toggleRef' | 'popupDirection' | 'popupOffsetDistance'>,\n React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи.\n */\n onClose: VoidFunction;\n /**\n * Только iOS.\n */\n iosCloseItem: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheet\n */\nexport const ActionSheet = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n popupDirection = 'bottom',\n popupOffsetDistance,\n ...restProps\n}: ActionSheetProps) => {\n const platform = usePlatform();\n const [closing, setClosing] = React.useState(false);\n const onClose = () => setClosing(true);\n const _action = React.useRef(noop);\n\n const afterClose = () => {\n restProps.onClose();\n _action.current();\n _action.current = noop;\n };\n\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n useScrollLock(!isDesktop);\n\n let timeout = platform === Platform.IOS ? 300 : 200;\n\n if (isDesktop) {\n timeout = 0;\n }\n\n const fallbackTransitionFinish = useTimeout(afterClose, timeout);\n React.useEffect(() => {\n if (closing) {\n fallbackTransitionFinish.set();\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closing, fallbackTransitionFinish]);\n\n const onItemClick = React.useCallback<ItemClickHandler>(\n (action, immediateAction, autoClose) => (event) => {\n event.persist();\n immediateAction && immediateAction(event);\n if (autoClose) {\n _action.current = () => action && action(event);\n setClosing(true);\n } else {\n action && action(event);\n }\n },\n [],\n );\n const contextValue = useObjectMemo({ onItemClick, isDesktop });\n\n const DropdownComponent = isDesktop ? ActionSheetDropdownDesktop : ActionSheetDropdown;\n\n const dropdownProps = isDesktop\n ? Object.assign(restProps, { popupOffsetDistance, popupDirection })\n : restProps;\n\n const actionSheet = (\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={closing}\n timeout={timeout}\n {...dropdownProps}\n onClose={onClose}\n className={isDesktop ? className : undefined}\n style={isDesktop ? style : undefined}\n >\n {(header || text) && (\n <header className={styles['ActionSheet__header']}>\n {header && (\n <Footnote weight=\"2\" className={styles['ActionSheet__title']}>\n {header}\n </Footnote>\n )}\n {text && <Footnote className={styles['ActionSheet__text']}>{text}</Footnote>}\n </header>\n )}\n {children}\n {platform === Platform.IOS && !isDesktop && iosCloseItem}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n );\n\n if (isDesktop) {\n return actionSheet;\n }\n\n return (\n <PopoutWrapper\n closing={closing}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={onClose}\n hasMask\n fixed\n >\n {actionSheet}\n </PopoutWrapper>\n );\n};\n"],"names":["ActionSheet","children","className","header","text","style","iosCloseItem","popupDirection","popupOffsetDistance","restProps","platform","usePlatform","React","useState","closing","setClosing","onClose","_action","useRef","noop","afterClose","current","isDesktop","useAdaptivityWithJSMediaQueries","useScrollLock","timeout","Platform","IOS","fallbackTransitionFinish","useTimeout","useEffect","set","clear","onItemClick","useCallback","action","immediateAction","autoClose","event","persist","contextValue","useObjectMemo","DropdownComponent","ActionSheetDropdownDesktop","ActionSheetDropdown","dropdownProps","Object","assign","actionSheet","ActionSheetContext","Provider","value","undefined","Footnote","weight","PopoutWrapper","alignY","onClick","hasMask","fixed"],"mappings":";;;;+BAkCaA;;;eAAAA;;;;;;;;+DAlCU;oBACF;+CAC2B;6BAClB;2BACF;0BACD;wBACF;6BACK;6BACA;wBACL;kCAC4B;mCACjB;0CACO;AAsBpC,IAAMA,cAAc;QACzBC,kBAAAA,UACAC,mBAAAA,WACAC,gBAAAA,QACAC,cAAAA,MACAC,eAAAA,OACAC,sBAAAA,6CACAC,gBAAAA,oDAAiB,kCACjBC,6BAAAA,qBACGC;QARHR;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWC,IAAAA,wBAAW;IAC5B,IAA8BC,qCAAAA,OAAMC,QAAQ,CAAC,YAAtCC,UAAuBF,oBAAdG,aAAcH;IAC9B,IAAMI,UAAU;eAAMD,WAAW;;IACjC,IAAME,UAAUL,OAAMM,MAAM,CAACC,UAAI;IAEjC,IAAMC,aAAa;QACjBX,UAAUO,OAAO;QACjBC,QAAQI,OAAO;QACfJ,QAAQI,OAAO,GAAGF,UAAI;IACxB;IAEA,IAAM,AAAEG,YAAcC,IAAAA,gEAA+B,IAA7CD;IAERE,IAAAA,4BAAa,EAAC,CAACF;IAEf,IAAIG,UAAUf,aAAagB,kBAAQ,CAACC,GAAG,GAAG,MAAM;IAEhD,IAAIL,WAAW;QACbG,UAAU;IACZ;IAEA,IAAMG,2BAA2BC,IAAAA,sBAAU,EAACT,YAAYK;IACxDb,OAAMkB,SAAS,CAAC;QACd,IAAIhB,SAAS;YACXc,yBAAyBG,GAAG;QAC9B,OAAO;YACLH,yBAAyBI,KAAK;QAChC;IACF,GAAG;QAAClB;QAASc;KAAyB;IAEtC,IAAMK,cAAcrB,OAAMsB,WAAW,CACnC,SAACC,QAAQC,iBAAiBC;eAAc,SAACC;YACvCA,MAAMC,OAAO;YACbH,mBAAmBA,gBAAgBE;YACnC,IAAID,WAAW;gBACbpB,QAAQI,OAAO,GAAG;2BAAMc,UAAUA,OAAOG;;gBACzCvB,WAAW;YACb,OAAO;gBACLoB,UAAUA,OAAOG;YACnB;QACF;OACA,EAAE;IAEJ,IAAME,eAAeC,IAAAA,4BAAa,EAAC;QAAER,aAAAA;QAAaX,WAAAA;IAAU;IAE5D,IAAMoB,oBAAoBpB,YAAYqB,sDAA0B,GAAGC,wCAAmB;IAEtF,IAAMC,gBAAgBvB,YAClBwB,OAAOC,MAAM,CAACtC,WAAW;QAAED,qBAAAA;QAAqBD,gBAAAA;IAAe,KAC/DE;IAEJ,IAAMuC,4BACJ,qBAACC,sCAAkB,CAACC,QAAQ;QAACC,OAAOX;qBAClC,qBAACE;QACC5B,SAASA;QACTW,SAASA;OACLoB;QACJ7B,SAASA;QACTd,WAAWoB,YAAYpB,YAAYkD;QACnC/C,OAAOiB,YAAYjB,QAAQ+C;QAE1B,AAACjD,CAAAA,UAAUC,IAAG,mBACb,qBAACD;QAAOD,SAAS;OACdC,wBACC,qBAACkD,kBAAQ;QAACC,QAAO;QAAIpD,SAAS;OAC3BC,SAGJC,sBAAQ,qBAACiD,kBAAQ;QAACnD,SAAS;OAAgCE,QAG/DH,UACAS,aAAagB,kBAAQ,CAACC,GAAG,IAAI,CAACL,aAAahB;IAKlD,IAAIgB,WAAW;QACb,OAAO0B;IACT;IAEA,qBACE,qBAACO,4BAAa;QACZzC,SAASA;QACT0C,QAAO;QACPtD,WAAWA;QACXG,OAAOA;QACPoD,SAASzC;QACT0C,SAAAA;QACAC,OAAAA;OAECX;AAGP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetContext.ts"],"sourcesContent":["import * as React from 'react';\n\nexport type ActionType<T> = (event: React.MouseEvent<T>) => void;\n\nexport type ItemClickHandler<T extends Element = Element> = (\n action: ActionType<T> | undefined,\n immediateAction: ActionType<T> | undefined,\n autoClose: boolean,\n) => (event: React.MouseEvent) => void;\n\nexport type ActionSheetContextType<T extends Element = Element> = {\n onItemClick?: ItemClickHandler<T>;\n isDesktop?: boolean;\n};\n\nexport const ActionSheetContext = React.createContext<ActionSheetContextType<any>>({});\n"],"names":["ActionSheetContext","React","createContext"],"mappings":";;;;+BAeaA;;;eAAAA;;;;+DAfU;AAehB,IAAMA,qBAAqBC,OAAMC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetContext.ts"],"sourcesContent":["import * as React from 'react';\n\nexport type ActionType<T> = (event: React.MouseEvent<T>) => void;\n\nexport type ItemClickHandler<T extends Element = Element> = (\n action: ActionType<T> | undefined,\n immediateAction: ActionType<T> | undefined,\n autoClose: boolean,\n) => (event: React.MouseEvent) => void;\n\nexport type ActionSheetContextType<T extends Element = Element> = {\n onItemClick?: ItemClickHandler<T>;\n isDesktop?: boolean;\n};\n\nexport const ActionSheetContext = React.createContext<ActionSheetContextType<any>>({});\n"],"names":["ActionSheetContext","React","createContext"],"mappings":";;;;+BAeaA;;;eAAAA;;;;+DAfU;AAehB,IAAMA,qBAAqBC,OAAMC,aAAa,CAA8B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetDefaultIosCloseItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ActionSheetItem, ActionSheetItemProps } from '../ActionSheetItem/ActionSheetItem';\n\nexport const ActionSheetDefaultIosCloseItem = (props: ActionSheetItemProps) => {\n return (\n <ActionSheetItem autoClose mode=\"cancel\" {...props}>\n Отмена\n </ActionSheetItem>\n );\n};\n"],"names":["ActionSheetDefaultIosCloseItem","props","ActionSheetItem","autoClose","mode"],"mappings":";;;;+BAGaA;;;eAAAA;;;;;+DAHU;+BAC+B;AAE/C,IAAMA,iCAAiC,SAACC;IAC7C,qBACE,qBAACC;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetDefaultIosCloseItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ActionSheetItem, ActionSheetItemProps } from '../ActionSheetItem/ActionSheetItem';\n\nexport const ActionSheetDefaultIosCloseItem = (props: ActionSheetItemProps) => {\n return (\n <ActionSheetItem autoClose mode=\"cancel\" {...props}>\n Отмена\n </ActionSheetItem>\n );\n};\n"],"names":["ActionSheetDefaultIosCloseItem","props","ActionSheetItem","autoClose","mode"],"mappings":";;;;+BAGaA;;;eAAAA;;;;;+DAHU;+BAC+B;AAE/C,IAAMA,iCAAiC,SAACC;IAC7C,qBACE,qBAACC,gCAAe;QAACC,WAAAA;QAAUC,MAAK;OAAaH,QAAO;AAIxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetDropdown.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { SharedDropdownProps } from './types';\nimport styles from './ActionSheet.module.css';\n\nconst stopPropagation: React.MouseEventHandler = (e) => e.stopPropagation();\n\nexport type ActionSheetDropdownProps = Omit<\n SharedDropdownProps,\n 'popupDirection' | 'popupOffsetDistance'\n>;\n\nexport const ActionSheetDropdown = ({\n children,\n closing,\n // these 2 props are only omitted - ActionSheetDesktop compat\n toggleRef,\n className,\n ...restProps\n}: SharedDropdownProps) => {\n const { sizeY } = useAdaptivityWithJSMediaQueries();\n const platform = usePlatform();\n\n return (\n <FocusTrap\n {...restProps}\n onClick={stopPropagation}\n className={classNames(\n styles['ActionSheet'],\n platform === Platform.IOS && styles['ActionSheet--ios'],\n closing && styles['ActionSheet--closing'],\n sizeY === SizeType.COMPACT && styles['ActionSheet--sizeY-compact'],\n className,\n )}\n >\n {children}\n </FocusTrap>\n );\n};\n"],"names":["ActionSheetDropdown","stopPropagation","e","children","closing","toggleRef","className","restProps","sizeY","useAdaptivityWithJSMediaQueries","platform","usePlatform","FocusTrap","onClick","classNames","Platform","IOS","SizeType","COMPACT"],"mappings":";;;;+BAiBaA;;;eAAAA;;;;;;;+DAjBU;oBACI;+CACqB;2BACpB;0BACH;wBACA;yBACC;AAI1B,IAAMC,kBAA2C,SAACC;WAAMA,EAAED;;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetDropdown.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { SharedDropdownProps } from './types';\nimport styles from './ActionSheet.module.css';\n\nconst stopPropagation: React.MouseEventHandler = (e) => e.stopPropagation();\n\nexport type ActionSheetDropdownProps = Omit<\n SharedDropdownProps,\n 'popupDirection' | 'popupOffsetDistance'\n>;\n\nexport const ActionSheetDropdown = ({\n children,\n closing,\n // these 2 props are only omitted - ActionSheetDesktop compat\n toggleRef,\n className,\n ...restProps\n}: SharedDropdownProps) => {\n const { sizeY } = useAdaptivityWithJSMediaQueries();\n const platform = usePlatform();\n\n return (\n <FocusTrap\n {...restProps}\n onClick={stopPropagation}\n className={classNames(\n styles['ActionSheet'],\n platform === Platform.IOS && styles['ActionSheet--ios'],\n closing && styles['ActionSheet--closing'],\n sizeY === SizeType.COMPACT && styles['ActionSheet--sizeY-compact'],\n className,\n )}\n >\n {children}\n </FocusTrap>\n );\n};\n"],"names":["ActionSheetDropdown","stopPropagation","e","children","closing","toggleRef","className","restProps","sizeY","useAdaptivityWithJSMediaQueries","platform","usePlatform","FocusTrap","onClick","classNames","Platform","IOS","SizeType","COMPACT"],"mappings":";;;;+BAiBaA;;;eAAAA;;;;;;;+DAjBU;oBACI;+CACqB;2BACpB;0BACH;wBACA;yBACC;AAI1B,IAAMC,kBAA2C,SAACC;WAAMA,EAAED,eAAe;;AAOlE,IAAMD,sBAAsB;QACjCG,kBAAAA,UACAC,iBAAAA,SACA,6DAA6D;IAC7DC,mBAAAA,WACAC,mBAAAA,WACGC;QALHJ;QACAC;QAEAC;QACAC;;IAGA,IAAM,AAAEE,QAAUC,IAAAA,gEAA+B,IAAzCD;IACR,IAAME,WAAWC,IAAAA,wBAAW;IAE5B,qBACE,qBAACC,oBAAS,8CACJL;QACJM,SAASZ;QACTK,WAAWQ,IAAAA,gBAAU,qBAEnBJ,aAAaK,kBAAQ,CAACC,GAAG,4BACzBZ,uCACAI,UAAUS,oBAAQ,CAACC,OAAO,sCAC1BZ;QAGDH;AAGP"}
|
|
@@ -59,9 +59,11 @@ var ActionSheetDropdownDesktop = function(_param) {
|
|
|
59
59
|
elementRef
|
|
60
60
|
]);
|
|
61
61
|
var bodyClickListener = (0, _useEventListener.useEventListener)("click", function(e) {
|
|
62
|
-
var
|
|
62
|
+
var _elementRef;
|
|
63
|
+
var dropdownElement = (_elementRef = elementRef) === null || _elementRef === void 0 ? void 0 : _elementRef.current;
|
|
63
64
|
if (dropdownElement && !dropdownElement.contains(e.target)) {
|
|
64
|
-
|
|
65
|
+
var _onClose;
|
|
66
|
+
(_onClose = onClose) === null || _onClose === void 0 ? void 0 : _onClose();
|
|
65
67
|
}
|
|
66
68
|
});
|
|
67
69
|
_react.useEffect(function() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetDropdownDesktop.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useEffectDev } from '../../hooks/useEffectDev';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { useDOM } from '../../lib/dom';\nimport { isRefObject } from '../../lib/isRefObject';\nimport { Platform } from '../../lib/platform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { Popper } from '../Popper/Popper';\nimport { SharedDropdownProps } from './types';\nimport styles from './ActionSheet.module.css';\n\nconst warn = warnOnce('ActionSheet');\nfunction getEl(ref: SharedDropdownProps['toggleRef']): Element | null | undefined {\n return ref && 'current' in ref ? ref.current : ref;\n}\n\nexport const ActionSheetDropdownDesktop = ({\n children,\n toggleRef,\n closing,\n popupDirection,\n onClose,\n className,\n style,\n popupOffsetDistance = 0,\n ...restProps\n}: SharedDropdownProps) => {\n const { document } = useDOM();\n const platform = usePlatform();\n const { sizeY } = useAdaptivityWithJSMediaQueries();\n const elementRef = React.useRef<HTMLDivElement | null>(null);\n\n useEffectDev(() => {\n const toggleEl = getEl(toggleRef);\n if (!toggleEl) {\n warn(`Свойство \"toggleRef\" не передано`, 'error');\n }\n }, [toggleRef]);\n\n const isPopupDirectionTop = React.useMemo(\n () =>\n popupDirection === 'top' ||\n (typeof popupDirection === 'function' && popupDirection(elementRef) === 'top'),\n [popupDirection, elementRef],\n );\n\n const bodyClickListener = useEventListener('click', (e: MouseEvent) => {\n const dropdownElement = elementRef?.current;\n if (dropdownElement && !dropdownElement.contains(e.target as Node)) {\n onClose?.();\n }\n });\n\n React.useEffect(() => {\n setTimeout(() => {\n bodyClickListener.add(document!.body);\n });\n }, [bodyClickListener, document]);\n\n const onClick = React.useCallback((e: React.MouseEvent<HTMLElement>) => e.stopPropagation(), []);\n\n const targetRef = React.useMemo(() => {\n if (isRefObject<SharedDropdownProps['toggleRef'], HTMLElement>(toggleRef)) {\n return toggleRef;\n }\n\n return { current: toggleRef as HTMLElement };\n }, [toggleRef]);\n\n return (\n <Popper\n targetRef={targetRef}\n offsetDistance={popupOffsetDistance}\n placement={isPopupDirectionTop ? 'top-end' : 'bottom-end'}\n className={classNames(\n styles['ActionSheet'],\n platform === Platform.IOS && styles['ActionSheet--ios'],\n styles['ActionSheet--desktop'],\n sizeY === SizeType.COMPACT && styles['ActionSheet--sizeY-compact'],\n className,\n )}\n style={style}\n getRef={elementRef}\n forcePortal={false}\n >\n <FocusTrap onClose={onClose} {...restProps} onClick={onClick}>\n {children}\n </FocusTrap>\n </Popper>\n );\n};\n"],"names":["ActionSheetDropdownDesktop","warn","warnOnce","getEl","ref","current","children","toggleRef","closing","popupDirection","onClose","className","style","popupOffsetDistance","restProps","document","useDOM","platform","usePlatform","sizeY","useAdaptivityWithJSMediaQueries","elementRef","React","useRef","useEffectDev","toggleEl","isPopupDirectionTop","useMemo","bodyClickListener","useEventListener","e","dropdownElement","contains","target","useEffect","setTimeout","add","body","onClick","useCallback","stopPropagation","targetRef","isRefObject","Popper","offsetDistance","placement","classNames","Platform","IOS","SizeType","COMPACT","getRef","forcePortal","FocusTrap"],"mappings":";;;;+BAqBaA;;;eAAAA;;;;;;;+DArBU;oBACI;+CACqB;4BACnB;gCACI;2BACL;0BACH;mBACF;2BACK;wBACH;wBACA;yBACC;sBACH;AAIvB,IAAMC,OAAOC,IAAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetDropdownDesktop.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useEffectDev } from '../../hooks/useEffectDev';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { useDOM } from '../../lib/dom';\nimport { isRefObject } from '../../lib/isRefObject';\nimport { Platform } from '../../lib/platform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { Popper } from '../Popper/Popper';\nimport { SharedDropdownProps } from './types';\nimport styles from './ActionSheet.module.css';\n\nconst warn = warnOnce('ActionSheet');\nfunction getEl(ref: SharedDropdownProps['toggleRef']): Element | null | undefined {\n return ref && 'current' in ref ? ref.current : ref;\n}\n\nexport const ActionSheetDropdownDesktop = ({\n children,\n toggleRef,\n closing,\n popupDirection,\n onClose,\n className,\n style,\n popupOffsetDistance = 0,\n ...restProps\n}: SharedDropdownProps) => {\n const { document } = useDOM();\n const platform = usePlatform();\n const { sizeY } = useAdaptivityWithJSMediaQueries();\n const elementRef = React.useRef<HTMLDivElement | null>(null);\n\n useEffectDev(() => {\n const toggleEl = getEl(toggleRef);\n if (!toggleEl) {\n warn(`Свойство \"toggleRef\" не передано`, 'error');\n }\n }, [toggleRef]);\n\n const isPopupDirectionTop = React.useMemo(\n () =>\n popupDirection === 'top' ||\n (typeof popupDirection === 'function' && popupDirection(elementRef) === 'top'),\n [popupDirection, elementRef],\n );\n\n const bodyClickListener = useEventListener('click', (e: MouseEvent) => {\n const dropdownElement = elementRef?.current;\n if (dropdownElement && !dropdownElement.contains(e.target as Node)) {\n onClose?.();\n }\n });\n\n React.useEffect(() => {\n setTimeout(() => {\n bodyClickListener.add(document!.body);\n });\n }, [bodyClickListener, document]);\n\n const onClick = React.useCallback((e: React.MouseEvent<HTMLElement>) => e.stopPropagation(), []);\n\n const targetRef = React.useMemo(() => {\n if (isRefObject<SharedDropdownProps['toggleRef'], HTMLElement>(toggleRef)) {\n return toggleRef;\n }\n\n return { current: toggleRef as HTMLElement };\n }, [toggleRef]);\n\n return (\n <Popper\n targetRef={targetRef}\n offsetDistance={popupOffsetDistance}\n placement={isPopupDirectionTop ? 'top-end' : 'bottom-end'}\n className={classNames(\n styles['ActionSheet'],\n platform === Platform.IOS && styles['ActionSheet--ios'],\n styles['ActionSheet--desktop'],\n sizeY === SizeType.COMPACT && styles['ActionSheet--sizeY-compact'],\n className,\n )}\n style={style}\n getRef={elementRef}\n forcePortal={false}\n >\n <FocusTrap onClose={onClose} {...restProps} onClick={onClick}>\n {children}\n </FocusTrap>\n </Popper>\n );\n};\n"],"names":["ActionSheetDropdownDesktop","warn","warnOnce","getEl","ref","current","children","toggleRef","closing","popupDirection","onClose","className","style","popupOffsetDistance","restProps","document","useDOM","platform","usePlatform","sizeY","useAdaptivityWithJSMediaQueries","elementRef","React","useRef","useEffectDev","toggleEl","isPopupDirectionTop","useMemo","bodyClickListener","useEventListener","e","dropdownElement","contains","target","useEffect","setTimeout","add","body","onClick","useCallback","stopPropagation","targetRef","isRefObject","Popper","offsetDistance","placement","classNames","Platform","IOS","SizeType","COMPACT","getRef","forcePortal","FocusTrap"],"mappings":";;;;+BAqBaA;;;eAAAA;;;;;;;+DArBU;oBACI;+CACqB;4BACnB;gCACI;2BACL;0BACH;mBACF;2BACK;wBACH;wBACA;yBACC;sBACH;AAIvB,IAAMC,OAAOC,IAAAA,kBAAQ,EAAC;AACtB,SAASC,MAAMC,GAAqC;IAClD,OAAOA,OAAO,aAAaA,MAAMA,IAAIC,OAAO,GAAGD;AACjD;AAEO,IAAMJ,6BAA6B;QACxCM,kBAAAA,UACAC,mBAAAA,WACAC,iBAAAA,SACAC,wBAAAA,gBACAC,iBAAAA,SACAC,mBAAAA,WACAC,eAAAA,2CACAC,qBAAAA,8DAAsB,gCACnBC;QARHR;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAM,AAAEE,WAAaC,IAAAA,WAAM,IAAnBD;IACR,IAAME,WAAWC,IAAAA,wBAAW;IAC5B,IAAM,AAAEC,QAAUC,IAAAA,gEAA+B,IAAzCD;IACR,IAAME,aAAaC,OAAMC,MAAM,CAAwB;IAEvDC,IAAAA,0BAAY,EAAC;QACX,IAAMC,WAAWtB,MAAMI;QACvB,IAAI,CAACkB,UAAU;YACbxB,KAAM,oCAAmC;QAC3C;IACF,GAAG;QAACM;KAAU;IAEd,IAAMmB,sBAAsBJ,OAAMK,OAAO,CACvC;eACElB,mBAAmB,SAClB,OAAOA,mBAAmB,cAAcA,eAAeY,gBAAgB;OAC1E;QAACZ;QAAgBY;KAAW;IAG9B,IAAMO,oBAAoBC,IAAAA,kCAAgB,EAAC,SAAS,SAACC;YAC3BT;QAAxB,IAAMU,mBAAkBV,cAAAA,wBAAAA,kCAAAA,YAAYhB,OAAO;QAC3C,IAAI0B,mBAAmB,CAACA,gBAAgBC,QAAQ,CAACF,EAAEG,MAAM,GAAW;gBAClEvB;aAAAA,WAAAA,qBAAAA,+BAAAA;QACF;IACF;IAEAY,OAAMY,SAAS,CAAC;QACdC,WAAW;YACTP,kBAAkBQ,GAAG,CAACrB,SAAUsB,IAAI;QACtC;IACF,GAAG;QAACT;QAAmBb;KAAS;IAEhC,IAAMuB,UAAUhB,OAAMiB,WAAW,CAAC,SAACT;eAAqCA,EAAEU,eAAe;OAAI,EAAE;IAE/F,IAAMC,YAAYnB,OAAMK,OAAO,CAAC;QAC9B,IAAIe,IAAAA,wBAAW,EAAgDnC,YAAY;YACzE,OAAOA;QACT;QAEA,OAAO;YAAEF,SAASE;QAAyB;IAC7C,GAAG;QAACA;KAAU;IAEd,qBACE,qBAACoC,cAAM;QACLF,WAAWA;QACXG,gBAAgB/B;QAChBgC,WAAWnB,sBAAsB,YAAY;QAC7Cf,WAAWmC,IAAAA,gBAAU,qBAEnB7B,aAAa8B,kBAAQ,CAACC,GAAG,wDAEzB7B,UAAU8B,oBAAQ,CAACC,OAAO,sCAC1BvC;QAEFC,OAAOA;QACPuC,QAAQ9B;QACR+B,aAAa;qBAEb,qBAACC,oBAAS;QAAC3C,SAASA;OAAaI;QAAWwB,SAASA;QAClDhC;AAIT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ActionSheetItem/ActionSheetItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon20CheckCircleOn, Icon24CheckCircleOn } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { ActionSheetContext, type ActionSheetContextType } from '../ActionSheet/ActionSheetContext';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './ActionSheetItem.module.css';\n\nexport interface ActionSheetItemProps\n extends React.HTMLAttributes<HTMLElement>,\n React.AnchorHTMLAttributes<HTMLElement>,\n Pick<React.InputHTMLAttributes<HTMLInputElement>, 'name' | 'checked' | 'value'> {\n mode?: 'default' | 'destructive' | 'cancel';\n before?: React.ReactNode;\n meta?: React.ReactNode;\n subtitle?: React.ReactNode;\n autoClose?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n /**\n * Все текстовые элементы при необходимости занимают несколько строк\n */\n multiline?: boolean;\n /**\n * Если autoClose === true, onClick будет вызван после завершения анимации скрытия и после вызова onClose.\n * Из этого следует, что в объекте события значения полей типа `currentTarget` будут не определены.\n * Если вам нужен объект события именно на момент клика, используйте `onImmediateClick`.\n */\n onClick?: React.MouseEventHandler<HTMLElement>;\n onImmediateClick?: React.MouseEventHandler<HTMLElement>;\n /**\n * Иконка для `checked` режима.\n */\n iconChecked?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheetItem\n */\nconst ActionSheetItem = ({\n children,\n autoClose,\n mode = 'default',\n meta,\n subtitle,\n before,\n selectable,\n value,\n name,\n checked,\n defaultChecked,\n onChange,\n onClick,\n onImmediateClick,\n multiline = false,\n iconChecked: iconCheckedProp,\n className,\n ...restProps\n}: ActionSheetItemProps) => {\n const platform = usePlatform();\n const { onItemClick = () => noop, isDesktop } =\n React.useContext<ActionSheetContextType<HTMLElement>>(ActionSheetContext);\n const { sizeY } = useAdaptivityWithJSMediaQueries();\n\n const iconChecked =\n iconCheckedProp ||\n (sizeY === SizeType.COMPACT ? <Icon20CheckCircleOn /> : <Icon24CheckCircleOn />);\n\n let Component: React.ElementType = restProps.href ? 'a' : 'div';\n\n if (selectable) {\n Component = 'label';\n }\n\n const isRich = subtitle || meta || selectable;\n const isCentered = !isRich && !before && platform === Platform.IOS;\n\n return (\n <Tappable\n Component={Component}\n {...restProps}\n onClick={selectable ? onClick : onItemClick(onClick, onImmediateClick, Boolean(autoClose))}\n activeMode={platform === Platform.IOS ? styles['ActionSheetItem--active'] : undefined}\n className={classNames(\n styles['ActionSheetItem'],\n platform === Platform.IOS && styles['ActionSheetItem--ios'],\n mode === 'cancel' && styles['ActionSheetItem--mode-cancel'],\n mode === 'destructive' && styles['ActionSheetItem--mode-destructive'],\n sizeY === SizeType.COMPACT && styles['ActionSheetItem--sizeY-compact'],\n isRich && styles['ActionSheetItem--rich'],\n isDesktop && styles['ActionSheetItem--desktop'],\n selectable && styles['ActionSheetItem--selectable'],\n className,\n )}\n >\n {before && <div className={styles['ActionSheetItem__before']}>{before}</div>}\n <div\n className={classNames(\n styles['ActionSheetItem__container'],\n !multiline && styles['ActionSheetItem--ellipsis'],\n )}\n >\n <div\n className={classNames(\n styles['ActionSheetItem__content'],\n isCentered && styles['ActionSheetItem--centered'],\n )}\n >\n {platform === Platform.IOS ? (\n <Title\n className={styles['ActionSheetItem__children']}\n weight={mode === 'cancel' ? '2' : '3'}\n level={isCentered ? '2' : '3'}\n >\n {children}\n </Title>\n ) : (\n <Text className={styles['ActionSheetItem__children']}>{children}</Text>\n )}\n {meta && <Text className={styles['ActionSheetItem__meta']}>{meta}</Text>}\n </div>\n {subtitle && <Subhead className={styles['ActionSheetItem__subtitle']}>{subtitle}</Subhead>}\n </div>\n {selectable && (\n <div className={styles['ActionSheetItem__after']}>\n <input\n type=\"radio\"\n className={styles['ActionSheetItem__radio']}\n name={name}\n value={value}\n onChange={onChange}\n onClick={onItemClick(noop, noop, Boolean(autoClose))}\n defaultChecked={defaultChecked}\n checked={checked}\n disabled={restProps.disabled}\n />\n <div className={styles['ActionSheetItem__marker']}>{iconChecked}</div>\n </div>\n )}\n </Tappable>\n );\n};\n\nexport { ActionSheetItem };\n"],"names":["ActionSheetItem","children","autoClose","mode","meta","subtitle","before","selectable","value","name","checked","defaultChecked","onChange","onClick","onImmediateClick","multiline","iconChecked","iconCheckedProp","className","restProps","platform","usePlatform","React","useContext","ActionSheetContext","onItemClick","noop","isDesktop","sizeY","useAdaptivityWithJSMediaQueries","SizeType","COMPACT","Icon20CheckCircleOn","Icon24CheckCircleOn","Component","href","isRich","isCentered","Platform","IOS","Tappable","Boolean","activeMode","undefined","classNames","div","Title","weight","level","Text","Subhead","input","type","disabled"],"mappings":";;;;+BAqJSA;;;eAAAA;;;;;;;+DArJc;qBACkC;oBACxB;+CACe;2BACpB;0BACH;wBACA;kCACuC;wBACvC;uBACD;oBACH;qBACC;AA+BtB;;CAEC,GACD,IAAMA,kBAAkB;QACtBC,kBAAAA,UACAC,mBAAAA,gCACAC,MAAAA,gCAAO,yBACPC,cAAAA,MACAC,kBAAAA,UACAC,gBAAAA,QACAC,oBAAAA,YACAC,eAAAA,OACAC,cAAAA,MACAC,iBAAAA,SACAC,wBAAAA,gBACAC,kBAAAA,UACAC,iBAAAA,SACAC,0BAAAA,4CACAC,WAAAA,0CAAY,0BACZC,AAAaC,yBAAbD,aACAE,mBAAAA,WACGC;QAjBHlB;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAE;;IAGA,IAAME,WAAWC,IAAAA;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ActionSheetItem/ActionSheetItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon20CheckCircleOn, Icon24CheckCircleOn } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { ActionSheetContext, type ActionSheetContextType } from '../ActionSheet/ActionSheetContext';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './ActionSheetItem.module.css';\n\nexport interface ActionSheetItemProps\n extends React.HTMLAttributes<HTMLElement>,\n React.AnchorHTMLAttributes<HTMLElement>,\n Pick<React.InputHTMLAttributes<HTMLInputElement>, 'name' | 'checked' | 'value'> {\n mode?: 'default' | 'destructive' | 'cancel';\n before?: React.ReactNode;\n meta?: React.ReactNode;\n subtitle?: React.ReactNode;\n autoClose?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n /**\n * Все текстовые элементы при необходимости занимают несколько строк\n */\n multiline?: boolean;\n /**\n * Если autoClose === true, onClick будет вызван после завершения анимации скрытия и после вызова onClose.\n * Из этого следует, что в объекте события значения полей типа `currentTarget` будут не определены.\n * Если вам нужен объект события именно на момент клика, используйте `onImmediateClick`.\n */\n onClick?: React.MouseEventHandler<HTMLElement>;\n onImmediateClick?: React.MouseEventHandler<HTMLElement>;\n /**\n * Иконка для `checked` режима.\n */\n iconChecked?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheetItem\n */\nconst ActionSheetItem = ({\n children,\n autoClose,\n mode = 'default',\n meta,\n subtitle,\n before,\n selectable,\n value,\n name,\n checked,\n defaultChecked,\n onChange,\n onClick,\n onImmediateClick,\n multiline = false,\n iconChecked: iconCheckedProp,\n className,\n ...restProps\n}: ActionSheetItemProps) => {\n const platform = usePlatform();\n const { onItemClick = () => noop, isDesktop } =\n React.useContext<ActionSheetContextType<HTMLElement>>(ActionSheetContext);\n const { sizeY } = useAdaptivityWithJSMediaQueries();\n\n const iconChecked =\n iconCheckedProp ||\n (sizeY === SizeType.COMPACT ? <Icon20CheckCircleOn /> : <Icon24CheckCircleOn />);\n\n let Component: React.ElementType = restProps.href ? 'a' : 'div';\n\n if (selectable) {\n Component = 'label';\n }\n\n const isRich = subtitle || meta || selectable;\n const isCentered = !isRich && !before && platform === Platform.IOS;\n\n return (\n <Tappable\n Component={Component}\n {...restProps}\n onClick={selectable ? onClick : onItemClick(onClick, onImmediateClick, Boolean(autoClose))}\n activeMode={platform === Platform.IOS ? styles['ActionSheetItem--active'] : undefined}\n className={classNames(\n styles['ActionSheetItem'],\n platform === Platform.IOS && styles['ActionSheetItem--ios'],\n mode === 'cancel' && styles['ActionSheetItem--mode-cancel'],\n mode === 'destructive' && styles['ActionSheetItem--mode-destructive'],\n sizeY === SizeType.COMPACT && styles['ActionSheetItem--sizeY-compact'],\n isRich && styles['ActionSheetItem--rich'],\n isDesktop && styles['ActionSheetItem--desktop'],\n selectable && styles['ActionSheetItem--selectable'],\n className,\n )}\n >\n {before && <div className={styles['ActionSheetItem__before']}>{before}</div>}\n <div\n className={classNames(\n styles['ActionSheetItem__container'],\n !multiline && styles['ActionSheetItem--ellipsis'],\n )}\n >\n <div\n className={classNames(\n styles['ActionSheetItem__content'],\n isCentered && styles['ActionSheetItem--centered'],\n )}\n >\n {platform === Platform.IOS ? (\n <Title\n className={styles['ActionSheetItem__children']}\n weight={mode === 'cancel' ? '2' : '3'}\n level={isCentered ? '2' : '3'}\n >\n {children}\n </Title>\n ) : (\n <Text className={styles['ActionSheetItem__children']}>{children}</Text>\n )}\n {meta && <Text className={styles['ActionSheetItem__meta']}>{meta}</Text>}\n </div>\n {subtitle && <Subhead className={styles['ActionSheetItem__subtitle']}>{subtitle}</Subhead>}\n </div>\n {selectable && (\n <div className={styles['ActionSheetItem__after']}>\n <input\n type=\"radio\"\n className={styles['ActionSheetItem__radio']}\n name={name}\n value={value}\n onChange={onChange}\n onClick={onItemClick(noop, noop, Boolean(autoClose))}\n defaultChecked={defaultChecked}\n checked={checked}\n disabled={restProps.disabled}\n />\n <div className={styles['ActionSheetItem__marker']}>{iconChecked}</div>\n </div>\n )}\n </Tappable>\n );\n};\n\nexport { ActionSheetItem };\n"],"names":["ActionSheetItem","children","autoClose","mode","meta","subtitle","before","selectable","value","name","checked","defaultChecked","onChange","onClick","onImmediateClick","multiline","iconChecked","iconCheckedProp","className","restProps","platform","usePlatform","React","useContext","ActionSheetContext","onItemClick","noop","isDesktop","sizeY","useAdaptivityWithJSMediaQueries","SizeType","COMPACT","Icon20CheckCircleOn","Icon24CheckCircleOn","Component","href","isRich","isCentered","Platform","IOS","Tappable","Boolean","activeMode","undefined","classNames","div","Title","weight","level","Text","Subhead","input","type","disabled"],"mappings":";;;;+BAqJSA;;;eAAAA;;;;;;;+DArJc;qBACkC;oBACxB;+CACe;2BACpB;0BACH;wBACA;kCACuC;wBACvC;uBACD;oBACH;qBACC;AA+BtB;;CAEC,GACD,IAAMA,kBAAkB;QACtBC,kBAAAA,UACAC,mBAAAA,gCACAC,MAAAA,gCAAO,yBACPC,cAAAA,MACAC,kBAAAA,UACAC,gBAAAA,QACAC,oBAAAA,YACAC,eAAAA,OACAC,cAAAA,MACAC,iBAAAA,SACAC,wBAAAA,gBACAC,kBAAAA,UACAC,iBAAAA,SACAC,0BAAAA,4CACAC,WAAAA,0CAAY,0BACZC,AAAaC,yBAAbD,aACAE,mBAAAA,WACGC;QAjBHlB;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAE;;IAGA,IAAME,WAAWC,IAAAA,wBAAW;IAC5B,IACEC,oBAAAA,OAAMC,UAAU,CAAsCC,sCAAkB,mCAAxEF,kBADMG,aAAAA,yDAAc;eAAMC,UAAI;uCAAEC,YAChCL,kBADgCK;IAElC,IAAM,AAAEC,QAAUC,IAAAA,gEAA+B,IAAzCD;IAER,IAAMZ,cACJC,mBACCW,CAAAA,UAAUE,oBAAQ,CAACC,OAAO,iBAAG,qBAACC,0BAAmB,wBAAM,qBAACC,0BAAmB,OAAE;IAEhF,IAAIC,YAA+Bf,UAAUgB,IAAI,GAAG,MAAM;IAE1D,IAAI5B,YAAY;QACd2B,YAAY;IACd;IAEA,IAAME,SAAS/B,YAAYD,QAAQG;IACnC,IAAM8B,aAAa,CAACD,UAAU,CAAC9B,UAAUc,aAAakB,kBAAQ,CAACC,GAAG;IAElE,qBACE,qBAACC,kBAAQ;QACPN,WAAWA;OACPf;QACJN,SAASN,aAAaM,UAAUY,YAAYZ,SAASC,kBAAkB2B,QAAQvC;QAC/EwC,YAAYtB,aAAakB,kBAAQ,CAACC,GAAG,mCAAuCI;QAC5EzB,WAAW0B,IAAAA,gBAAU,yBAEnBxB,aAAakB,kBAAQ,CAACC,GAAG,gCACzBpC,SAAS,gDACTA,SAAS,0DACTyB,UAAUE,oBAAQ,CAACC,OAAO,0CAC1BK,uCACAT,6CACApB,iDACAW;QAGDZ,wBAAU,qBAACuC;QAAI3B,SAAS;OAAsCZ,uBAC/D,qBAACuC;QACC3B,WAAW0B,IAAAA,gBAAU,oCAEnB,CAAC7B;qBAGH,qBAAC8B;QACC3B,WAAW0B,IAAAA,gBAAU,kCAEnBP;OAGDjB,aAAakB,kBAAQ,CAACC,GAAG,iBACxB,qBAACO,YAAK;QACJ5B,SAAS;QACT6B,QAAQ5C,SAAS,WAAW,MAAM;QAClC6C,OAAOX,aAAa,MAAM;OAEzBpC,0BAGH,qBAACgD,UAAI;QAAC/B,SAAS;OAAwCjB,WAExDG,sBAAQ,qBAAC6C,UAAI;QAAC/B,SAAS;OAAoCd,QAE7DC,0BAAY,qBAAC6C,gBAAO;QAAChC,SAAS;OAAwCb,YAExEE,4BACC,qBAACsC;QAAI3B,SAAS;qBACZ,qBAACiC;QACCC,MAAK;QACLlC,SAAS;QACTT,MAAMA;QACND,OAAOA;QACPI,UAAUA;QACVC,SAASY,YAAYC,UAAI,EAAEA,UAAI,EAAEe,QAAQvC;QACzCS,gBAAgBA;QAChBD,SAASA;QACT2C,UAAUlC,UAAUkC,QAAQ;sBAE9B,qBAACR;QAAI3B,SAAS;OAAsCF;AAK9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/AdaptiveIconRenderer/AdaptiveIconRenderer.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\n\nexport interface AdaptiveIconRendererProps {\n IconCompact: React.ComponentType<{ className?: string }>;\n IconRegular: React.ComponentType<{ className?: string }>;\n}\n\n/**\n * @since 5.4.0\n * @see https://vkcom.github.io/VKUI/#/AdaptiveIconRenderer\n */\nexport const AdaptiveIconRenderer = ({ IconCompact, IconRegular }: AdaptiveIconRendererProps) => {\n const { sizeY } = useAdaptivityConditionalRender();\n\n return (\n <React.Fragment>\n {sizeY.compact && <IconCompact className={sizeY.compact.className} />}\n {sizeY.regular && <IconRegular className={sizeY.regular.className} />}\n </React.Fragment>\n );\n};\n"],"names":["AdaptiveIconRenderer","IconCompact","IconRegular","sizeY","useAdaptivityConditionalRender","React","Fragment","compact","className","regular"],"mappings":";;;;+BAYaA;;;eAAAA;;;;+DAZU;8CACwB;AAWxC,IAAMA,uBAAuB;QAAGC,oBAAAA,aAAaC,oBAAAA;IAClD,IAAM,AAAEC,QAAUC,IAAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/AdaptiveIconRenderer/AdaptiveIconRenderer.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\n\nexport interface AdaptiveIconRendererProps {\n IconCompact: React.ComponentType<{ className?: string }>;\n IconRegular: React.ComponentType<{ className?: string }>;\n}\n\n/**\n * @since 5.4.0\n * @see https://vkcom.github.io/VKUI/#/AdaptiveIconRenderer\n */\nexport const AdaptiveIconRenderer = ({ IconCompact, IconRegular }: AdaptiveIconRendererProps) => {\n const { sizeY } = useAdaptivityConditionalRender();\n\n return (\n <React.Fragment>\n {sizeY.compact && <IconCompact className={sizeY.compact.className} />}\n {sizeY.regular && <IconRegular className={sizeY.regular.className} />}\n </React.Fragment>\n );\n};\n"],"names":["AdaptiveIconRenderer","IconCompact","IconRegular","sizeY","useAdaptivityConditionalRender","React","Fragment","compact","className","regular"],"mappings":";;;;+BAYaA;;;eAAAA;;;;+DAZU;8CACwB;AAWxC,IAAMA,uBAAuB;QAAGC,oBAAAA,aAAaC,oBAAAA;IAClD,IAAM,AAAEC,QAAUC,IAAAA,8DAA8B,IAAxCD;IAER,qBACE,qBAACE,OAAMC,QAAQ,QACZH,MAAMI,OAAO,kBAAI,qBAACN;QAAYO,WAAWL,MAAMI,OAAO,CAACC,SAAS;QAChEL,MAAMM,OAAO,kBAAI,qBAACP;QAAYM,WAAWL,MAAMM,OAAO,CAACD,SAAS;;AAGvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/AdaptivityProvider/AdaptivityContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport { SizeType, ViewHeight, ViewWidth } from '../../lib/adaptivity';\n\nexport interface SizeProps {\n sizeX?: SizeType;\n sizeY?: SizeType;\n}\n\nexport interface AdaptivityProps extends SizeProps {\n /**\n * @ignore\n */\n viewWidth?: ViewWidth;\n /**\n * @ignore\n */\n viewHeight?: ViewHeight;\n /**\n * @ignore\n */\n hasPointer?: boolean;\n /**\n * @ignore\n */\n hasHover?: boolean;\n}\n\nexport const AdaptivityContext = React.createContext<AdaptivityProps>({});\n"],"names":["AdaptivityContext","React","createContext"],"mappings":";;;;+BA2BaA;;;eAAAA;;;;+DA3BU;AA2BhB,IAAMA,kCAAoBC,OAAMC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/AdaptivityProvider/AdaptivityContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport { SizeType, ViewHeight, ViewWidth } from '../../lib/adaptivity';\n\nexport interface SizeProps {\n sizeX?: SizeType;\n sizeY?: SizeType;\n}\n\nexport interface AdaptivityProps extends SizeProps {\n /**\n * @ignore\n */\n viewWidth?: ViewWidth;\n /**\n * @ignore\n */\n viewHeight?: ViewHeight;\n /**\n * @ignore\n */\n hasPointer?: boolean;\n /**\n * @ignore\n */\n hasHover?: boolean;\n}\n\nexport const AdaptivityContext = React.createContext<AdaptivityProps>({});\n"],"names":["AdaptivityContext","React","createContext"],"mappings":";;;;+BA2BaA;;;eAAAA;;;;+DA3BU;AA2BhB,IAAMA,kCAAoBC,OAAMC,aAAa,CAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/AdaptivityProvider/AdaptivityProvider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { hasMouse as _hasPointer } from '@vkontakte/vkjs';\nimport { BridgeAdaptivity, useBridgeAdaptivity } from '../../hooks/useBridgeAdaptivity';\nimport { BREAKPOINTS, SizeType, ViewHeight, ViewWidth } from '../../lib/adaptivity';\nimport { HasChildren } from '../../types';\nimport { AdaptivityContext, type AdaptivityProps } from './AdaptivityContext';\n\nexport interface AdaptivityProviderProps extends AdaptivityProps, HasChildren {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/AdaptivityProvider\n */\nexport const AdaptivityProvider = ({\n viewWidth,\n viewHeight,\n sizeX,\n sizeY,\n hasPointer,\n hasHover,\n children,\n}: AdaptivityProviderProps) => {\n const bridge = useBridgeAdaptivity();\n const adaptivity = React.useMemo(\n () =>\n calculateAdaptivity(\n {\n viewWidth,\n viewHeight,\n sizeX,\n sizeY,\n hasPointer,\n hasHover,\n },\n bridge,\n ),\n [viewWidth, viewHeight, sizeX, sizeY, hasPointer, hasHover, bridge],\n );\n\n return <AdaptivityContext.Provider value={adaptivity}>{children}</AdaptivityContext.Provider>;\n};\n\nfunction calculateAdaptivity(\n { viewWidth, viewHeight, sizeX, sizeY, hasPointer, hasHover }: AdaptivityProps,\n bridge: BridgeAdaptivity,\n) {\n if (bridge.type === 'adaptive') {\n const { viewportWidth, viewportHeight } = bridge;\n\n if (viewportWidth >= BREAKPOINTS.DESKTOP) {\n viewWidth = ViewWidth.DESKTOP;\n } else if (viewportWidth >= BREAKPOINTS.TABLET) {\n viewWidth = ViewWidth.TABLET;\n } else if (viewportWidth >= BREAKPOINTS.SMALL_TABLET) {\n viewWidth = ViewWidth.SMALL_TABLET;\n } else if (viewportWidth >= BREAKPOINTS.MOBILE) {\n viewWidth = ViewWidth.MOBILE;\n } else {\n viewWidth = ViewWidth.SMALL_MOBILE;\n }\n\n if (viewportHeight >= BREAKPOINTS.MEDIUM_HEIGHT) {\n viewHeight = ViewHeight.MEDIUM;\n } else if (viewportHeight >= BREAKPOINTS.MOBILE_LANDSCAPE_HEIGHT) {\n viewHeight = ViewHeight.SMALL;\n } else {\n viewHeight = ViewHeight.EXTRA_SMALL;\n }\n\n if (viewWidth <= ViewWidth.MOBILE) {\n sizeX = SizeType.COMPACT;\n } else {\n sizeX = SizeType.REGULAR;\n }\n\n if (\n (viewWidth >= ViewWidth.SMALL_TABLET && _hasPointer) ||\n viewHeight <= ViewHeight.EXTRA_SMALL\n ) {\n sizeY = SizeType.COMPACT;\n } else {\n sizeY = SizeType.REGULAR;\n }\n } else if (bridge.type === 'force_mobile' || bridge.type === 'force_mobile_compact') {\n viewWidth = ViewWidth.MOBILE;\n sizeX = SizeType.COMPACT;\n\n if (bridge.type === 'force_mobile_compact') {\n sizeY = SizeType.COMPACT;\n } else {\n sizeY = SizeType.REGULAR;\n }\n } else {\n if (sizeX === undefined && viewWidth !== undefined) {\n if (viewWidth <= ViewWidth.MOBILE) {\n sizeX = SizeType.COMPACT;\n } else {\n sizeX = SizeType.REGULAR;\n }\n }\n if (sizeY === undefined && viewWidth !== undefined && viewHeight !== undefined) {\n if (\n (viewWidth >= ViewWidth.SMALL_TABLET && _hasPointer) ||\n viewHeight <= ViewHeight.EXTRA_SMALL\n ) {\n sizeY = SizeType.COMPACT;\n } else {\n sizeY = SizeType.REGULAR;\n }\n }\n }\n\n return {\n viewWidth,\n viewHeight,\n sizeX,\n sizeY,\n hasPointer,\n hasHover,\n };\n}\n"],"names":["AdaptivityProvider","viewWidth","viewHeight","sizeX","sizeY","hasPointer","hasHover","children","bridge","useBridgeAdaptivity","adaptivity","React","useMemo","calculateAdaptivity","AdaptivityContext","Provider","value","type","viewportWidth","viewportHeight","BREAKPOINTS","DESKTOP","ViewWidth","TABLET","SMALL_TABLET","MOBILE","SMALL_MOBILE","MEDIUM_HEIGHT","ViewHeight","MEDIUM","MOBILE_LANDSCAPE_HEIGHT","SMALL","EXTRA_SMALL","SizeType","COMPACT","REGULAR","_hasPointer","undefined"],"mappings":";;;;+BAYaA;;;eAAAA;;;;+DAZU;oBACiB;mCACc;0BACO;iCAEL;AAOjD,IAAMA,qBAAqB;QAChCC,kBAAAA,WACAC,mBAAAA,YACAC,cAAAA,OACAC,cAAAA,OACAC,mBAAAA,YACAC,iBAAAA,UACAC,iBAAAA;IAEA,IAAMC,SAASC,IAAAA;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/AdaptivityProvider/AdaptivityProvider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { hasMouse as _hasPointer } from '@vkontakte/vkjs';\nimport { BridgeAdaptivity, useBridgeAdaptivity } from '../../hooks/useBridgeAdaptivity';\nimport { BREAKPOINTS, SizeType, ViewHeight, ViewWidth } from '../../lib/adaptivity';\nimport { HasChildren } from '../../types';\nimport { AdaptivityContext, type AdaptivityProps } from './AdaptivityContext';\n\nexport interface AdaptivityProviderProps extends AdaptivityProps, HasChildren {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/AdaptivityProvider\n */\nexport const AdaptivityProvider = ({\n viewWidth,\n viewHeight,\n sizeX,\n sizeY,\n hasPointer,\n hasHover,\n children,\n}: AdaptivityProviderProps) => {\n const bridge = useBridgeAdaptivity();\n const adaptivity = React.useMemo(\n () =>\n calculateAdaptivity(\n {\n viewWidth,\n viewHeight,\n sizeX,\n sizeY,\n hasPointer,\n hasHover,\n },\n bridge,\n ),\n [viewWidth, viewHeight, sizeX, sizeY, hasPointer, hasHover, bridge],\n );\n\n return <AdaptivityContext.Provider value={adaptivity}>{children}</AdaptivityContext.Provider>;\n};\n\nfunction calculateAdaptivity(\n { viewWidth, viewHeight, sizeX, sizeY, hasPointer, hasHover }: AdaptivityProps,\n bridge: BridgeAdaptivity,\n) {\n if (bridge.type === 'adaptive') {\n const { viewportWidth, viewportHeight } = bridge;\n\n if (viewportWidth >= BREAKPOINTS.DESKTOP) {\n viewWidth = ViewWidth.DESKTOP;\n } else if (viewportWidth >= BREAKPOINTS.TABLET) {\n viewWidth = ViewWidth.TABLET;\n } else if (viewportWidth >= BREAKPOINTS.SMALL_TABLET) {\n viewWidth = ViewWidth.SMALL_TABLET;\n } else if (viewportWidth >= BREAKPOINTS.MOBILE) {\n viewWidth = ViewWidth.MOBILE;\n } else {\n viewWidth = ViewWidth.SMALL_MOBILE;\n }\n\n if (viewportHeight >= BREAKPOINTS.MEDIUM_HEIGHT) {\n viewHeight = ViewHeight.MEDIUM;\n } else if (viewportHeight >= BREAKPOINTS.MOBILE_LANDSCAPE_HEIGHT) {\n viewHeight = ViewHeight.SMALL;\n } else {\n viewHeight = ViewHeight.EXTRA_SMALL;\n }\n\n if (viewWidth <= ViewWidth.MOBILE) {\n sizeX = SizeType.COMPACT;\n } else {\n sizeX = SizeType.REGULAR;\n }\n\n if (\n (viewWidth >= ViewWidth.SMALL_TABLET && _hasPointer) ||\n viewHeight <= ViewHeight.EXTRA_SMALL\n ) {\n sizeY = SizeType.COMPACT;\n } else {\n sizeY = SizeType.REGULAR;\n }\n } else if (bridge.type === 'force_mobile' || bridge.type === 'force_mobile_compact') {\n viewWidth = ViewWidth.MOBILE;\n sizeX = SizeType.COMPACT;\n\n if (bridge.type === 'force_mobile_compact') {\n sizeY = SizeType.COMPACT;\n } else {\n sizeY = SizeType.REGULAR;\n }\n } else {\n if (sizeX === undefined && viewWidth !== undefined) {\n if (viewWidth <= ViewWidth.MOBILE) {\n sizeX = SizeType.COMPACT;\n } else {\n sizeX = SizeType.REGULAR;\n }\n }\n if (sizeY === undefined && viewWidth !== undefined && viewHeight !== undefined) {\n if (\n (viewWidth >= ViewWidth.SMALL_TABLET && _hasPointer) ||\n viewHeight <= ViewHeight.EXTRA_SMALL\n ) {\n sizeY = SizeType.COMPACT;\n } else {\n sizeY = SizeType.REGULAR;\n }\n }\n }\n\n return {\n viewWidth,\n viewHeight,\n sizeX,\n sizeY,\n hasPointer,\n hasHover,\n };\n}\n"],"names":["AdaptivityProvider","viewWidth","viewHeight","sizeX","sizeY","hasPointer","hasHover","children","bridge","useBridgeAdaptivity","adaptivity","React","useMemo","calculateAdaptivity","AdaptivityContext","Provider","value","type","viewportWidth","viewportHeight","BREAKPOINTS","DESKTOP","ViewWidth","TABLET","SMALL_TABLET","MOBILE","SMALL_MOBILE","MEDIUM_HEIGHT","ViewHeight","MEDIUM","MOBILE_LANDSCAPE_HEIGHT","SMALL","EXTRA_SMALL","SizeType","COMPACT","REGULAR","_hasPointer","undefined"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Alert/Alert.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { Platform } from '../../lib/platform';\nimport { stopPropagation } from '../../lib/utils';\nimport { AnchorHTMLAttributesOnly, HasChildren } from '../../types';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { Button, ButtonProps } from '../Button/Button';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { ModalDismissButton } from '../ModalDismissButton/ModalDismissButton';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './Alert.module.css';\n\nexport interface AlertActionInterface\n extends Pick<ButtonProps, 'Component'>,\n AnchorHTMLAttributesOnly {\n title: string;\n action?: VoidFunction;\n autoClose?: boolean;\n mode: 'cancel' | 'destructive' | 'default';\n}\n\nexport interface AlertProps extends React.HTMLAttributes<HTMLElement> {\n actionsLayout?: 'vertical' | 'horizontal';\n actions?: AlertActionInterface[];\n header?: React.ReactNode;\n text?: React.ReactNode;\n onClose: VoidFunction;\n\n /**\n * `aria-label` для кнопки закрытия. Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n}\n\ntype ItemClickHandler = (item: AlertActionInterface) => void;\n\ninterface AlertTypography extends HasChildren {\n id: string;\n}\n\nconst AlertHeader = (props: AlertTypography) => {\n const platform = usePlatform();\n\n switch (platform) {\n case Platform.IOS:\n return <Title className={styles['Alert__header']} weight=\"1\" level=\"3\" {...props} />;\n default:\n return <Title className={styles['Alert__header']} weight=\"2\" level=\"2\" {...props} />;\n }\n};\n\nconst AlertText = (props: AlertTypography) => {\n const platform = usePlatform();\n\n switch (platform) {\n case Platform.VKCOM:\n return <Footnote className={styles['Alert__text']} {...props} />;\n case Platform.IOS:\n return <Caption className={styles['Alert__text']} {...props} />;\n default:\n return <Text Component=\"span\" className={styles['Alert__text']} weight=\"3\" {...props} />;\n }\n};\n\ninterface AlertActionProps {\n action: AlertActionInterface;\n onItemClick: ItemClickHandler;\n}\n\nconst AlertAction = ({ action, onItemClick, ...restProps }: AlertActionProps) => {\n const platform = usePlatform();\n const handleItemClick = React.useCallback(() => onItemClick(action), [onItemClick, action]);\n\n if (platform === Platform.IOS) {\n const { title, action: actionProp, autoClose, mode, ...restActionProps } = action;\n\n return (\n <Tappable\n Component={restActionProps.href ? 'a' : 'button'}\n className={classNames(\n styles['Alert__action'],\n mode === 'destructive' && styles['Alert__action--mode-destructive'],\n mode === 'cancel' && styles['Alert__action--mode-cancel'],\n )}\n onClick={handleItemClick}\n {...restActionProps}\n {...restProps}\n >\n {title}\n </Tappable>\n );\n }\n\n let mode: ButtonProps['mode'] = 'tertiary';\n\n if (platform === Platform.VKCOM) {\n mode = action.mode === 'cancel' ? 'secondary' : 'primary';\n }\n\n return (\n <Button\n className={classNames(\n styles['Alert__button'],\n action.mode === 'cancel' && styles['Alert__button--mode-cancel'],\n )}\n mode={mode}\n size=\"m\"\n onClick={handleItemClick}\n Component={action.Component}\n href={action.href}\n target={action.target}\n >\n {action.title}\n </Button>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Alert\n */\nexport const Alert = ({\n actions = [],\n actionsLayout = 'horizontal',\n children,\n className,\n style,\n text,\n header,\n onClose,\n dismissLabel = 'Закрыть предупреждение',\n ...restProps\n}: AlertProps) => {\n const platform = usePlatform();\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n const { waitTransitionFinish } = useWaitTransitionFinish();\n\n const [closing, setClosing] = React.useState(false);\n\n const elementRef = React.useRef<HTMLDivElement>(null);\n\n const resolvedActionsLayout: AlertProps['actionsLayout'] =\n platform === Platform.VKCOM ? 'horizontal' : actionsLayout;\n\n const timeout = platform === Platform.IOS ? 300 : 200;\n\n const close = React.useCallback(() => {\n setClosing(true);\n waitTransitionFinish(\n elementRef.current,\n (e?: TransitionEvent) => {\n if (!e || e.propertyName === 'opacity') {\n onClose();\n }\n },\n timeout,\n );\n }, [elementRef, waitTransitionFinish, onClose, timeout]);\n\n const onItemClick: ItemClickHandler = React.useCallback(\n (item: AlertActionInterface) => {\n const { action, autoClose } = item;\n\n if (autoClose) {\n setClosing(true);\n waitTransitionFinish(\n elementRef.current,\n (e?: TransitionEvent) => {\n if (!e || e.propertyName === 'opacity') {\n onClose();\n action && action();\n }\n },\n timeout,\n );\n } else {\n action && action();\n }\n },\n [elementRef, waitTransitionFinish, onClose, timeout],\n );\n\n useScrollLock();\n\n return (\n <PopoutWrapper className={className} closing={closing} style={style} onClick={close}>\n <FocusTrap\n {...restProps}\n getRootRef={elementRef}\n onClick={stopPropagation}\n onClose={close}\n timeout={timeout}\n className={classNames(\n styles['Alert'],\n platform === Platform.IOS && styles['Alert--ios'],\n platform === Platform.VKCOM && styles['Alert--vkcom'],\n resolvedActionsLayout === 'vertical' ? styles['Alert--v'] : styles['Alert--h'],\n closing && styles['Alert--closing'],\n isDesktop && styles['Alert--desktop'],\n )}\n role=\"alertdialog\"\n aria-modal\n aria-labelledby=\"vkui--alert--title\"\n aria-describedby=\"vkui--alert--desc\"\n >\n <div className={styles['Alert__content']}>\n {hasReactNode(header) && <AlertHeader id=\"vkui--alert--title\">{header}</AlertHeader>}\n {hasReactNode(text) && <AlertText id=\"vkui--alert--desc\">{text}</AlertText>}\n {children}\n </div>\n <div className={styles['Alert__actions']}>\n {actions.map((action, i) => (\n <AlertAction key={i} action={action} onItemClick={onItemClick} />\n ))}\n </div>\n {isDesktop && <ModalDismissButton onClick={close} aria-label={dismissLabel} />}\n </FocusTrap>\n </PopoutWrapper>\n );\n};\n"],"names":["Alert","AlertHeader","props","platform","usePlatform","Platform","IOS","Title","className","weight","level","AlertText","VKCOM","Footnote","Caption","Text","Component","AlertAction","action","onItemClick","restProps","handleItemClick","React","useCallback","title","actionProp","autoClose","mode","restActionProps","Tappable","href","classNames","onClick","Button","size","target","actions","actionsLayout","children","style","text","header","onClose","dismissLabel","isDesktop","useAdaptivityWithJSMediaQueries","waitTransitionFinish","useWaitTransitionFinish","useState","closing","setClosing","elementRef","useRef","resolvedActionsLayout","timeout","close","current","e","propertyName","item","useScrollLock","PopoutWrapper","FocusTrap","getRootRef","stopPropagation","role","aria-modal","aria-labelledby","aria-describedby","div","hasReactNode","id","map","i","key","ModalDismissButton","aria-label"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Alert/Alert.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { Platform } from '../../lib/platform';\nimport { stopPropagation } from '../../lib/utils';\nimport { AnchorHTMLAttributesOnly, HasChildren } from '../../types';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { Button, ButtonProps } from '../Button/Button';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { ModalDismissButton } from '../ModalDismissButton/ModalDismissButton';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './Alert.module.css';\n\nexport interface AlertActionInterface\n extends Pick<ButtonProps, 'Component'>,\n AnchorHTMLAttributesOnly {\n title: string;\n action?: VoidFunction;\n autoClose?: boolean;\n mode: 'cancel' | 'destructive' | 'default';\n}\n\nexport interface AlertProps extends React.HTMLAttributes<HTMLElement> {\n actionsLayout?: 'vertical' | 'horizontal';\n actions?: AlertActionInterface[];\n header?: React.ReactNode;\n text?: React.ReactNode;\n onClose: VoidFunction;\n\n /**\n * `aria-label` для кнопки закрытия. Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n}\n\ntype ItemClickHandler = (item: AlertActionInterface) => void;\n\ninterface AlertTypography extends HasChildren {\n id: string;\n}\n\nconst AlertHeader = (props: AlertTypography) => {\n const platform = usePlatform();\n\n switch (platform) {\n case Platform.IOS:\n return <Title className={styles['Alert__header']} weight=\"1\" level=\"3\" {...props} />;\n default:\n return <Title className={styles['Alert__header']} weight=\"2\" level=\"2\" {...props} />;\n }\n};\n\nconst AlertText = (props: AlertTypography) => {\n const platform = usePlatform();\n\n switch (platform) {\n case Platform.VKCOM:\n return <Footnote className={styles['Alert__text']} {...props} />;\n case Platform.IOS:\n return <Caption className={styles['Alert__text']} {...props} />;\n default:\n return <Text Component=\"span\" className={styles['Alert__text']} weight=\"3\" {...props} />;\n }\n};\n\ninterface AlertActionProps {\n action: AlertActionInterface;\n onItemClick: ItemClickHandler;\n}\n\nconst AlertAction = ({ action, onItemClick, ...restProps }: AlertActionProps) => {\n const platform = usePlatform();\n const handleItemClick = React.useCallback(() => onItemClick(action), [onItemClick, action]);\n\n if (platform === Platform.IOS) {\n const { title, action: actionProp, autoClose, mode, ...restActionProps } = action;\n\n return (\n <Tappable\n Component={restActionProps.href ? 'a' : 'button'}\n className={classNames(\n styles['Alert__action'],\n mode === 'destructive' && styles['Alert__action--mode-destructive'],\n mode === 'cancel' && styles['Alert__action--mode-cancel'],\n )}\n onClick={handleItemClick}\n {...restActionProps}\n {...restProps}\n >\n {title}\n </Tappable>\n );\n }\n\n let mode: ButtonProps['mode'] = 'tertiary';\n\n if (platform === Platform.VKCOM) {\n mode = action.mode === 'cancel' ? 'secondary' : 'primary';\n }\n\n return (\n <Button\n className={classNames(\n styles['Alert__button'],\n action.mode === 'cancel' && styles['Alert__button--mode-cancel'],\n )}\n mode={mode}\n size=\"m\"\n onClick={handleItemClick}\n Component={action.Component}\n href={action.href}\n target={action.target}\n >\n {action.title}\n </Button>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Alert\n */\nexport const Alert = ({\n actions = [],\n actionsLayout = 'horizontal',\n children,\n className,\n style,\n text,\n header,\n onClose,\n dismissLabel = 'Закрыть предупреждение',\n ...restProps\n}: AlertProps) => {\n const platform = usePlatform();\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n const { waitTransitionFinish } = useWaitTransitionFinish();\n\n const [closing, setClosing] = React.useState(false);\n\n const elementRef = React.useRef<HTMLDivElement>(null);\n\n const resolvedActionsLayout: AlertProps['actionsLayout'] =\n platform === Platform.VKCOM ? 'horizontal' : actionsLayout;\n\n const timeout = platform === Platform.IOS ? 300 : 200;\n\n const close = React.useCallback(() => {\n setClosing(true);\n waitTransitionFinish(\n elementRef.current,\n (e?: TransitionEvent) => {\n if (!e || e.propertyName === 'opacity') {\n onClose();\n }\n },\n timeout,\n );\n }, [elementRef, waitTransitionFinish, onClose, timeout]);\n\n const onItemClick: ItemClickHandler = React.useCallback(\n (item: AlertActionInterface) => {\n const { action, autoClose } = item;\n\n if (autoClose) {\n setClosing(true);\n waitTransitionFinish(\n elementRef.current,\n (e?: TransitionEvent) => {\n if (!e || e.propertyName === 'opacity') {\n onClose();\n action && action();\n }\n },\n timeout,\n );\n } else {\n action && action();\n }\n },\n [elementRef, waitTransitionFinish, onClose, timeout],\n );\n\n useScrollLock();\n\n return (\n <PopoutWrapper className={className} closing={closing} style={style} onClick={close}>\n <FocusTrap\n {...restProps}\n getRootRef={elementRef}\n onClick={stopPropagation}\n onClose={close}\n timeout={timeout}\n className={classNames(\n styles['Alert'],\n platform === Platform.IOS && styles['Alert--ios'],\n platform === Platform.VKCOM && styles['Alert--vkcom'],\n resolvedActionsLayout === 'vertical' ? styles['Alert--v'] : styles['Alert--h'],\n closing && styles['Alert--closing'],\n isDesktop && styles['Alert--desktop'],\n )}\n role=\"alertdialog\"\n aria-modal\n aria-labelledby=\"vkui--alert--title\"\n aria-describedby=\"vkui--alert--desc\"\n >\n <div className={styles['Alert__content']}>\n {hasReactNode(header) && <AlertHeader id=\"vkui--alert--title\">{header}</AlertHeader>}\n {hasReactNode(text) && <AlertText id=\"vkui--alert--desc\">{text}</AlertText>}\n {children}\n </div>\n <div className={styles['Alert__actions']}>\n {actions.map((action, i) => (\n <AlertAction key={i} action={action} onItemClick={onItemClick} />\n ))}\n </div>\n {isDesktop && <ModalDismissButton onClick={close} aria-label={dismissLabel} />}\n </FocusTrap>\n </PopoutWrapper>\n );\n};\n"],"names":["Alert","AlertHeader","props","platform","usePlatform","Platform","IOS","Title","className","weight","level","AlertText","VKCOM","Footnote","Caption","Text","Component","AlertAction","action","onItemClick","restProps","handleItemClick","React","useCallback","title","actionProp","autoClose","mode","restActionProps","Tappable","href","classNames","onClick","Button","size","target","actions","actionsLayout","children","style","text","header","onClose","dismissLabel","isDesktop","useAdaptivityWithJSMediaQueries","waitTransitionFinish","useWaitTransitionFinish","useState","closing","setClosing","elementRef","useRef","resolvedActionsLayout","timeout","close","current","e","propertyName","item","useScrollLock","PopoutWrapper","FocusTrap","getRootRef","stopPropagation","role","aria-modal","aria-labelledby","aria-describedby","div","hasReactNode","id","map","i","key","ModalDismissButton","aria-label"],"mappings":"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"}
|
|
@@ -63,8 +63,8 @@ var AppRoot = function(_param) {
|
|
|
63
63
|
}
|
|
64
64
|
setPortalRoot(portal);
|
|
65
65
|
return function() {
|
|
66
|
-
var _portal_parentElement;
|
|
67
|
-
portal === null ||
|
|
66
|
+
var _portal_parentElement, _portal;
|
|
67
|
+
(_portal = portal) === null || _portal === void 0 ? void 0 : (_portal_parentElement = _portal.parentElement) === null || _portal_parentElement === void 0 ? void 0 : _portal_parentElement.removeChild(portal);
|
|
68
68
|
};
|
|
69
69
|
}, [
|
|
70
70
|
portalRootProp
|
|
@@ -72,7 +72,7 @@ var AppRoot = function(_param) {
|
|
|
72
72
|
// setup root classes
|
|
73
73
|
(0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function() {
|
|
74
74
|
var _parent_classList;
|
|
75
|
-
var _rootRef_current;
|
|
75
|
+
var _rootRef_current, _parent;
|
|
76
76
|
if (mode === "partial") {
|
|
77
77
|
return _vkjs.noop;
|
|
78
78
|
}
|
|
@@ -80,10 +80,11 @@ var AppRoot = function(_param) {
|
|
|
80
80
|
var classes = [
|
|
81
81
|
"vkui__root"
|
|
82
82
|
].concat(mode === "embedded" ? "vkui__root--embedded" : []);
|
|
83
|
-
parent === null ||
|
|
83
|
+
(_parent = parent) === null || _parent === void 0 ? void 0 : (_parent_classList = _parent.classList).add.apply(_parent_classList, _to_consumable_array._(classes));
|
|
84
84
|
return function() {
|
|
85
85
|
var _parent_classList;
|
|
86
|
-
|
|
86
|
+
var _parent;
|
|
87
|
+
(_parent = parent) === null || _parent === void 0 ? void 0 : (_parent_classList = _parent.classList).remove.apply(_parent_classList, _to_consumable_array._(classes));
|
|
87
88
|
};
|
|
88
89
|
}, []);
|
|
89
90
|
(0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/AppRoot/AppRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { IconSettingsProvider } from '@vkontakte/icons';\nimport { Insets } from '@vkontakte/vk-bridge';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useAppearance } from '../../hooks/useAppearance';\nimport { useInsets } from '../../hooks/useInsets';\nimport { useKeyboardInputTracker } from '../../hooks/useKeyboardInputTracker';\nimport { SizeType } from '../../lib/adaptivity';\nimport { useDOM } from '../../lib/dom';\nimport { isRefObject } from '../../lib/isRefObject';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { AppRootContext } from './AppRootContext';\nimport { ElementScrollController, GlobalScrollController } from './ScrollContext';\nimport styles from './AppRoot.module.css';\n\nconst vkuiSizeXClassNames = {\n none: 'vkui--sizeX-none',\n [SizeType.REGULAR]: 'vkui--sizeX-regular',\n};\n\nconst INSET_CUSTOM_PROPERTY_PREFIX = `--vkui_internal--safe_area_inset_`;\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Режим встраивания */\n mode?: 'partial' | 'embedded' | 'full';\n window?: Window;\n scroll?: 'global' | 'contain';\n /**\n * Кастомный root-элемент портала\n */\n portalRoot?: HTMLElement | React.RefObject<HTMLElement> | null;\n /** Disable portal for components */\n disablePortal?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/AppRoot\n */\nexport const AppRoot = ({\n children,\n mode = 'full',\n scroll = 'global',\n portalRoot: portalRootProp = null,\n disablePortal,\n className,\n ...props\n}: AppRootProps) => {\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const [portalRoot, setPortalRoot] = React.useState<HTMLElement | null>(null);\n const { document } = useDOM();\n const insets = useInsets();\n const appearance = useAppearance();\n\n const { hasPointer, sizeX = 'none' } = useAdaptivity();\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n let portal: HTMLElement | null = null;\n if (portalRootProp) {\n if (isRefObject(portalRootProp)) {\n portal = portalRootProp.current;\n } else {\n portal = portalRootProp;\n }\n }\n if (!portal) {\n portal = document!.createElement('div');\n document!.body.appendChild(portal);\n }\n setPortalRoot(portal);\n return () => {\n portal?.parentElement?.removeChild(portal);\n };\n }, [portalRootProp]);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial') {\n return noop;\n }\n\n const parent = rootRef.current?.parentElement;\n const classes = ['vkui__root'].concat(mode === 'embedded' ? 'vkui__root--embedded' : []);\n parent?.classList.add(...classes);\n\n return () => {\n parent?.classList.remove(...classes);\n };\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (mode === 'full') {\n document!.documentElement.classList.add('vkui');\n\n return () => {\n document!.documentElement.classList.remove('vkui');\n };\n }\n\n return undefined;\n }, [document, mode]);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial' || !rootRef.current?.parentElement) {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n let key: keyof Insets;\n for (key in insets) {\n if (insets.hasOwnProperty(key) && typeof insets[key] === 'number') {\n const inset = insets[key];\n parent.style.setProperty(INSET_CUSTOM_PROPERTY_PREFIX + key, `${inset}px`);\n portalRoot &&\n portalRoot.style.setProperty(INSET_CUSTOM_PROPERTY_PREFIX + key, `${inset}px`);\n }\n }\n\n return () => {\n let key: keyof Insets;\n for (key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(INSET_CUSTOM_PROPERTY_PREFIX + key);\n portalRoot && portalRoot.style.removeProperty(INSET_CUSTOM_PROPERTY_PREFIX + key);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial') {\n return noop;\n }\n const className = sizeX !== SizeType.COMPACT ? vkuiSizeXClassNames[sizeX] : null;\n const container = mode === 'embedded' ? rootRef.current?.parentElement : document!.body;\n\n if (className === null || !container) {\n return noop;\n }\n\n container.classList.add(className);\n return () => {\n container.classList.remove(className);\n };\n }, [sizeX]);\n\n useIsomorphicLayoutEffect(() => {\n if (mode !== 'full' || appearance === undefined) {\n return noop;\n }\n document!.documentElement.style.setProperty('color-scheme', appearance);\n\n return () => document!.documentElement.style.removeProperty('color-scheme');\n }, [appearance]);\n\n const ScrollController = React.useMemo(\n () => (scroll === 'contain' ? ElementScrollController : GlobalScrollController),\n [scroll],\n );\n\n const content = (\n <AppRootContext.Provider\n value={{\n appRoot: rootRef,\n portalRoot,\n embedded: mode === 'embedded',\n keyboardInput: isKeyboardInputActive,\n mode,\n disablePortal,\n }}\n >\n <ScrollController elRef={rootRef}>\n <IconSettingsProvider classPrefix=\"vkui\">{children}</IconSettingsProvider>\n </ScrollController>\n </AppRootContext.Provider>\n );\n\n return mode === 'partial' ? (\n content\n ) : (\n <div\n ref={rootRef}\n className={classNames(\n styles['AppRoot'],\n hasPointer === undefined\n ? styles['AppRoot--pointer-none']\n : !hasPointer && styles['AppRoot--pointer-has-not'],\n className,\n )}\n {...props}\n >\n {content}\n </div>\n );\n};\n"],"names":["AppRoot","vkuiSizeXClassNames","none","SizeType","REGULAR","INSET_CUSTOM_PROPERTY_PREFIX","children","mode","scroll","portalRootProp","portalRoot","disablePortal","className","props","isKeyboardInputActive","useKeyboardInputTracker","rootRef","React","useRef","useState","setPortalRoot","document","useDOM","insets","useInsets","appearance","useAppearance","useAdaptivity","hasPointer","sizeX","useIsomorphicLayoutEffect","portal","isRefObject","current","createElement","body","appendChild","parentElement","removeChild","parent","noop","classes","concat","classList","add","remove","documentElement","undefined","key","hasOwnProperty","inset","style","setProperty","removeProperty","COMPACT","container","ScrollController","useMemo","ElementScrollController","GlobalScrollController","content","AppRootContext","Provider","value","appRoot","embedded","keyboardInput","elRef","IconSettingsProvider","classPrefix","div","ref","classNames"],"mappings":";;;;+BA0CaA;;;eAAAA;;;;;;;;;+DA1CU;qBACc;oBAEJ;6BACH;6BACA;yBACJ;uCACc;0BACf;mBACF;2BACK;yCACc;8BACX;6BACiC;AAGhE,IAAMC,sBAEJ;IADAC,MAAM;GACLC,qBAASC,SAAU;AAGtB,IAAMC,+BAAgC;AAqB/B,IAAML,UAAU;QACrBM,kBAAAA,+BACAC,MAAAA,gCAAO,6CACPC,QAAAA,oCAAS,0BACGC,aAAZC,YAAYD,iBAAAA,iBAAiB,OAAjBA,KACZE,uBAAAA,eACAC,mBAAAA,WACGC;QANHP;QACAC;QACAC;QACAE;QACAC;QACAC;;IAGA,IAAME,wBAAwBC,IAAAA;IAC9B,IAAMC,UAAUC,OAAMC,OAA8B;IACpD,IAAoCD,qCAAAA,OAAME,SAA6B,WAAhET,aAA6BO,oBAAjBG,gBAAiBH;IACpC,IAAM,AAAEI,WAAaC,IAAAA,eAAbD;IACR,IAAME,SAASC,IAAAA;IACf,IAAMC,aAAaC,IAAAA;IAEnB,IAAuCC,kBAAAA,IAAAA,iCAA/BC,aAA+BD,gBAA/BC,mCAA+BD,gBAAnBE,OAAAA,0CAAQ;IAE5B,eAAe;IACfC,IAAAA,sDAA0B;QACxB,IAAIC,SAA6B;QACjC,IAAItB,gBAAgB;YAClB,IAAIuB,IAAAA,0BAAYvB,iBAAiB;gBAC/BsB,SAAStB,eAAewB;YAC1B,OAAO;gBACLF,SAAStB;YACX;QACF;QACA,IAAI,CAACsB,QAAQ;YACXA,SAASV,SAAUa,cAAc;YACjCb,SAAUc,KAAKC,YAAYL;QAC7B;QACAX,cAAcW;QACd,OAAO;gBACLA;YAAAA,mBAAAA,oBAAAA,KAAAA,IAAAA,CAAAA,wBAAAA,OAAQM,2BAARN,mCAAAA,KAAAA,IAAAA,sBAAuBO,YAAYP;QACrC;IACF,GAAG;QAACtB;KAAe;IAEnB,qBAAqB;IACrBqB,IAAAA,sDAA0B;YAOxBS;YAFevB;QAJf,IAAIT,SAAS,WAAW;YACtB,OAAOiC;QACT;QAEA,IAAMD,SAASvB,CAAAA,mBAAAA,QAAQiB,qBAARjB,8BAAAA,KAAAA,IAAAA,iBAAiBqB;QAChC,IAAMI,UAAU;YAAC;SAAa,CAACC,OAAOnC,SAAS,aAAa,yBAAyB,EAAE;QACvFgC,mBAAAA,oBAAAA,KAAAA,IAAAA,CAAAA,oBAAAA,OAAQI,WAAUC,UAAlBL,mBAAsB,uBAAGE;QAEzB,OAAO;gBACLF;YAAAA,mBAAAA,oBAAAA,KAAAA,IAAAA,CAAAA,oBAAAA,OAAQI,WAAUE,aAAlBN,mBAAyB,uBAAGE;QAC9B;IACF,GAAG,EAAE;IAELX,IAAAA,sDAA0B;QACxB,IAAIvB,SAAS,QAAQ;YACnBc,SAAUyB,gBAAgBH,UAAUC,IAAI;YAExC,OAAO;gBACLvB,SAAUyB,gBAAgBH,UAAUE,OAAO;YAC7C;QACF;QAEA,OAAOE;IACT,GAAG;QAAC1B;QAAUd;KAAK;IAEnB,eAAe;IACfuB,IAAAA,sDAA0B;YACGd;QAA3B,IAAIT,SAAS,aAAa,CAACS,CAAAA,CAAAA,mBAAAA,QAAQiB,qBAARjB,8BAAAA,KAAAA,IAAAA,iBAAiBqB,aAAY,GAAG;YACzD,OAAOG;QACT;QAEA,IAAMD,SAASvB,QAAQiB,QAAQI;QAE/B,IAAIW;QACJ,IAAKA,OAAOzB,OAAQ;YAClB,IAAIA,OAAO0B,eAAeD,QAAQ,OAAOzB,MAAM,CAACyB,IAAI,KAAK,UAAU;gBACjE,IAAME,QAAQ3B,MAAM,CAACyB,IAAI;gBACzBT,OAAOY,MAAMC,YAAY/C,+BAA+B2C,KAAK,AAAC,GAAQ,OAANE,OAAM;gBACtExC,cACEA,WAAWyC,MAAMC,YAAY/C,+BAA+B2C,KAAK,AAAC,GAAQ,OAANE,OAAM;YAC9E;QACF;QAEA,OAAO;YACL,IAAIF;YACJ,IAAKA,OAAOzB,OAAQ;gBAClB,IAAIA,OAAO0B,eAAeD,MAAM;oBAC9BT,OAAOY,MAAME,eAAehD,+BAA+B2C;oBAC3DtC,cAAcA,WAAWyC,MAAME,eAAehD,+BAA+B2C;gBAC/E;YACF;QACF;IACF,GAAG;QAACzB;QAAQb;KAAW;IAEvB,qBAAqB;IACrBoB,IAAAA,sDAA0B;YAKgBd;QAJxC,IAAIT,SAAS,WAAW;YACtB,OAAOiC;QACT;QACA,IAAM5B,YAAYiB,UAAU1B,qBAASmD,UAAUrD,mBAAmB,CAAC4B,MAAM,GAAG;QAC5E,IAAM0B,YAAYhD,SAAS,aAAaS,CAAAA,mBAAAA,QAAQiB,qBAARjB,8BAAAA,KAAAA,IAAAA,iBAAiBqB,gBAAgBhB,SAAUc;QAEnF,IAAIvB,cAAc,QAAQ,CAAC2C,WAAW;YACpC,OAAOf;QACT;QAEAe,UAAUZ,UAAUC,IAAIhC;QACxB,OAAO;YACL2C,UAAUZ,UAAUE,OAAOjC;QAC7B;IACF,GAAG;QAACiB;KAAM;IAEVC,IAAAA,sDAA0B;QACxB,IAAIvB,SAAS,UAAUkB,eAAesB,WAAW;YAC/C,OAAOP;QACT;QACAnB,SAAUyB,gBAAgBK,MAAMC,YAAY,gBAAgB3B;QAE5D,OAAO;mBAAMJ,SAAUyB,gBAAgBK,MAAME,eAAe;;IAC9D,GAAG;QAAC5B;KAAW;IAEf,IAAM+B,mBAAmBvC,OAAMwC,QAC7B;eAAOjD,WAAW,YAAYkD,yCAA0BC;OACxD;QAACnD;KAAO;IAGV,IAAMoD,wBACJ,qBAACC,+BAAeC;QACdC,OAAO;YACLC,SAAShD;YACTN,YAAAA;YACAuD,UAAU1D,SAAS;YACnB2D,eAAepD;YACfP,MAAAA;YACAI,eAAAA;QACF;qBAEA,qBAAC6C;QAAiBW,OAAOnD;qBACvB,qBAACoD;QAAqBC,aAAY;OAAQ/D;IAKhD,OAAOC,SAAS,YACdqD,wBAEA,qBAACU;QACCC,KAAKvD;QACLJ,WAAW4D,IAAAA,iCAET5C,eAAemB,0CAEX,CAACnB,8CACLhB;OAEEC,QAEH+C;AAGP"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/AppRoot/AppRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { IconSettingsProvider } from '@vkontakte/icons';\nimport { Insets } from '@vkontakte/vk-bridge';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useAppearance } from '../../hooks/useAppearance';\nimport { useInsets } from '../../hooks/useInsets';\nimport { useKeyboardInputTracker } from '../../hooks/useKeyboardInputTracker';\nimport { SizeType } from '../../lib/adaptivity';\nimport { useDOM } from '../../lib/dom';\nimport { isRefObject } from '../../lib/isRefObject';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { AppRootContext } from './AppRootContext';\nimport { ElementScrollController, GlobalScrollController } from './ScrollContext';\nimport styles from './AppRoot.module.css';\n\nconst vkuiSizeXClassNames = {\n none: 'vkui--sizeX-none',\n [SizeType.REGULAR]: 'vkui--sizeX-regular',\n};\n\nconst INSET_CUSTOM_PROPERTY_PREFIX = `--vkui_internal--safe_area_inset_`;\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Режим встраивания */\n mode?: 'partial' | 'embedded' | 'full';\n window?: Window;\n scroll?: 'global' | 'contain';\n /**\n * Кастомный root-элемент портала\n */\n portalRoot?: HTMLElement | React.RefObject<HTMLElement> | null;\n /** Disable portal for components */\n disablePortal?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/AppRoot\n */\nexport const AppRoot = ({\n children,\n mode = 'full',\n scroll = 'global',\n portalRoot: portalRootProp = null,\n disablePortal,\n className,\n ...props\n}: AppRootProps) => {\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const [portalRoot, setPortalRoot] = React.useState<HTMLElement | null>(null);\n const { document } = useDOM();\n const insets = useInsets();\n const appearance = useAppearance();\n\n const { hasPointer, sizeX = 'none' } = useAdaptivity();\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n let portal: HTMLElement | null = null;\n if (portalRootProp) {\n if (isRefObject(portalRootProp)) {\n portal = portalRootProp.current;\n } else {\n portal = portalRootProp;\n }\n }\n if (!portal) {\n portal = document!.createElement('div');\n document!.body.appendChild(portal);\n }\n setPortalRoot(portal);\n return () => {\n portal?.parentElement?.removeChild(portal);\n };\n }, [portalRootProp]);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial') {\n return noop;\n }\n\n const parent = rootRef.current?.parentElement;\n const classes = ['vkui__root'].concat(mode === 'embedded' ? 'vkui__root--embedded' : []);\n parent?.classList.add(...classes);\n\n return () => {\n parent?.classList.remove(...classes);\n };\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (mode === 'full') {\n document!.documentElement.classList.add('vkui');\n\n return () => {\n document!.documentElement.classList.remove('vkui');\n };\n }\n\n return undefined;\n }, [document, mode]);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial' || !rootRef.current?.parentElement) {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n let key: keyof Insets;\n for (key in insets) {\n if (insets.hasOwnProperty(key) && typeof insets[key] === 'number') {\n const inset = insets[key];\n parent.style.setProperty(INSET_CUSTOM_PROPERTY_PREFIX + key, `${inset}px`);\n portalRoot &&\n portalRoot.style.setProperty(INSET_CUSTOM_PROPERTY_PREFIX + key, `${inset}px`);\n }\n }\n\n return () => {\n let key: keyof Insets;\n for (key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(INSET_CUSTOM_PROPERTY_PREFIX + key);\n portalRoot && portalRoot.style.removeProperty(INSET_CUSTOM_PROPERTY_PREFIX + key);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial') {\n return noop;\n }\n const className = sizeX !== SizeType.COMPACT ? vkuiSizeXClassNames[sizeX] : null;\n const container = mode === 'embedded' ? rootRef.current?.parentElement : document!.body;\n\n if (className === null || !container) {\n return noop;\n }\n\n container.classList.add(className);\n return () => {\n container.classList.remove(className);\n };\n }, [sizeX]);\n\n useIsomorphicLayoutEffect(() => {\n if (mode !== 'full' || appearance === undefined) {\n return noop;\n }\n document!.documentElement.style.setProperty('color-scheme', appearance);\n\n return () => document!.documentElement.style.removeProperty('color-scheme');\n }, [appearance]);\n\n const ScrollController = React.useMemo(\n () => (scroll === 'contain' ? ElementScrollController : GlobalScrollController),\n [scroll],\n );\n\n const content = (\n <AppRootContext.Provider\n value={{\n appRoot: rootRef,\n portalRoot,\n embedded: mode === 'embedded',\n keyboardInput: isKeyboardInputActive,\n mode,\n disablePortal,\n }}\n >\n <ScrollController elRef={rootRef}>\n <IconSettingsProvider classPrefix=\"vkui\">{children}</IconSettingsProvider>\n </ScrollController>\n </AppRootContext.Provider>\n );\n\n return mode === 'partial' ? (\n content\n ) : (\n <div\n ref={rootRef}\n className={classNames(\n styles['AppRoot'],\n hasPointer === undefined\n ? styles['AppRoot--pointer-none']\n : !hasPointer && styles['AppRoot--pointer-has-not'],\n className,\n )}\n {...props}\n >\n {content}\n </div>\n );\n};\n"],"names":["AppRoot","vkuiSizeXClassNames","none","SizeType","REGULAR","INSET_CUSTOM_PROPERTY_PREFIX","children","mode","scroll","portalRootProp","portalRoot","disablePortal","className","props","isKeyboardInputActive","useKeyboardInputTracker","rootRef","React","useRef","useState","setPortalRoot","document","useDOM","insets","useInsets","appearance","useAppearance","useAdaptivity","hasPointer","sizeX","useIsomorphicLayoutEffect","portal","isRefObject","current","createElement","body","appendChild","parentElement","removeChild","parent","noop","classes","concat","classList","add","remove","documentElement","undefined","key","hasOwnProperty","inset","style","setProperty","removeProperty","COMPACT","container","ScrollController","useMemo","ElementScrollController","GlobalScrollController","content","AppRootContext","Provider","value","appRoot","embedded","keyboardInput","elRef","IconSettingsProvider","classPrefix","div","ref","classNames"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/AppRoot/AppRootContext.ts"],"sourcesContent":["import * as React from 'react';\n\nexport interface AppRootContextInterface {\n appRoot?: React.RefObject<HTMLDivElement>;\n portalRoot?: HTMLElement | null;\n embedded?: boolean;\n mode?: 'partial' | 'embedded' | 'full';\n keyboardInput?: boolean;\n disablePortal?: boolean;\n}\n\nexport const AppRootContext = React.createContext<AppRootContextInterface>({\n portalRoot: null,\n});\n"],"names":["AppRootContext","React","createContext","portalRoot"],"mappings":";;;;+BAWaA;;;eAAAA;;;;+DAXU;AAWhB,IAAMA,iBAAiBC,OAAMC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/AppRoot/AppRootContext.ts"],"sourcesContent":["import * as React from 'react';\n\nexport interface AppRootContextInterface {\n appRoot?: React.RefObject<HTMLDivElement>;\n portalRoot?: HTMLElement | null;\n embedded?: boolean;\n mode?: 'partial' | 'embedded' | 'full';\n keyboardInput?: boolean;\n disablePortal?: boolean;\n}\n\nexport const AppRootContext = React.createContext<AppRootContextInterface>({\n portalRoot: null,\n});\n"],"names":["AppRootContext","React","createContext","portalRoot"],"mappings":";;;;+BAWaA;;;eAAAA;;;;+DAXU;AAWhB,IAAMA,iBAAiBC,OAAMC,aAAa,CAA0B;IACzEC,YAAY;AACd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/AppRoot/AppRootPortal.tsx"],"sourcesContent":["import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { useAppearance } from '../../hooks/useAppearance';\nimport { useIsClient } from '../../hooks/useIsClient';\nimport { isRefObject } from '../../lib/isRefObject';\nimport { HasChildren } from '../../types';\nimport { AppearanceProvider } from '../AppearanceProvider/AppearanceProvider';\nimport { AppRootContext } from './AppRootContext';\n\nexport interface AppRootPortalProps extends HasChildren {\n className?: string;\n forcePortal?: boolean;\n /**\n * Кастомный root-элемент портала.\n * При передаче вместе с `forcePorta=true` игнорируется `portalRoot` и `disablePortal`\n * из контекста `AppRoot`.\n */\n portalRoot?: HTMLElement | React.RefObject<HTMLElement> | null;\n}\n\nexport const AppRootPortal = ({\n children,\n className,\n forcePortal: forcePortalProp,\n portalRoot: portalRootProp = null,\n}: AppRootPortalProps) => {\n const { portalRoot, mode, disablePortal } = React.useContext(AppRootContext);\n const appearance = useAppearance();\n\n const isClient = useIsClient();\n if (!isClient) {\n return null;\n }\n\n const forcePortal = forcePortalProp ?? mode !== 'full';\n\n const portalContainer = getPortalContainer(portalRootProp, portalRoot);\n\n const ignoreDisablePortalFlagFromContext = portalRootProp && forcePortal;\n const shouldUsePortal = ignoreDisablePortalFlagFromContext\n ? true\n : !disablePortal && portalContainer && forcePortal;\n\n return shouldUsePortal && portalContainer ? (\n createPortal(\n <AppearanceProvider appearance={appearance}>\n <div className={className}>{children}</div>\n </AppearanceProvider>,\n portalContainer,\n )\n ) : (\n <React.Fragment>{children}</React.Fragment>\n );\n};\n\n/**\n * Получает из кастомного пропа `partialRootProp` и `partialRoot` контекста\n * контейнер-элемент для портала.\n * `partialRootProp` может быть ref элементом.\n *\n */\nfunction getPortalContainer(\n portalRootProp?: HTMLElement | React.RefObject<HTMLElement> | null,\n portalRoot?: HTMLElement | null,\n) {\n if (!portalRootProp) {\n return portalRoot;\n }\n\n return isRefObject(portalRootProp) ? portalRootProp.current : portalRootProp;\n}\n"],"names":["AppRootPortal","children","className","forcePortal","forcePortalProp","portalRootProp","portalRoot","React","useContext","AppRootContext","mode","disablePortal","appearance","useAppearance","isClient","useIsClient","portalContainer","getPortalContainer","ignoreDisablePortalFlagFromContext","shouldUsePortal","createPortal","AppearanceProvider","div","Fragment","isRefObject","current"],"mappings":";;;;+BAoBaA;;;eAAAA;;;;+DApBU;wBACM;6BACC;2BACF;2BACA;kCAEO;8BACJ;AAaxB,IAAMA,gBAAgB;QAC3BC,iBAAAA,UACAC,kBAAAA,WACAC,AAAaC,wBAAbD,aACYE,YAAZC,YAAYD,iBAAAA,iBAAiB,OAAjBA;IAEZ,IAA4CE,oBAAAA,OAAMC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/AppRoot/AppRootPortal.tsx"],"sourcesContent":["import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { useAppearance } from '../../hooks/useAppearance';\nimport { useIsClient } from '../../hooks/useIsClient';\nimport { isRefObject } from '../../lib/isRefObject';\nimport { HasChildren } from '../../types';\nimport { AppearanceProvider } from '../AppearanceProvider/AppearanceProvider';\nimport { AppRootContext } from './AppRootContext';\n\nexport interface AppRootPortalProps extends HasChildren {\n className?: string;\n forcePortal?: boolean;\n /**\n * Кастомный root-элемент портала.\n * При передаче вместе с `forcePorta=true` игнорируется `portalRoot` и `disablePortal`\n * из контекста `AppRoot`.\n */\n portalRoot?: HTMLElement | React.RefObject<HTMLElement> | null;\n}\n\nexport const AppRootPortal = ({\n children,\n className,\n forcePortal: forcePortalProp,\n portalRoot: portalRootProp = null,\n}: AppRootPortalProps) => {\n const { portalRoot, mode, disablePortal } = React.useContext(AppRootContext);\n const appearance = useAppearance();\n\n const isClient = useIsClient();\n if (!isClient) {\n return null;\n }\n\n const forcePortal = forcePortalProp ?? mode !== 'full';\n\n const portalContainer = getPortalContainer(portalRootProp, portalRoot);\n\n const ignoreDisablePortalFlagFromContext = portalRootProp && forcePortal;\n const shouldUsePortal = ignoreDisablePortalFlagFromContext\n ? true\n : !disablePortal && portalContainer && forcePortal;\n\n return shouldUsePortal && portalContainer ? (\n createPortal(\n <AppearanceProvider appearance={appearance}>\n <div className={className}>{children}</div>\n </AppearanceProvider>,\n portalContainer,\n )\n ) : (\n <React.Fragment>{children}</React.Fragment>\n );\n};\n\n/**\n * Получает из кастомного пропа `partialRootProp` и `partialRoot` контекста\n * контейнер-элемент для портала.\n * `partialRootProp` может быть ref элементом.\n *\n */\nfunction getPortalContainer(\n portalRootProp?: HTMLElement | React.RefObject<HTMLElement> | null,\n portalRoot?: HTMLElement | null,\n) {\n if (!portalRootProp) {\n return portalRoot;\n }\n\n return isRefObject(portalRootProp) ? portalRootProp.current : portalRootProp;\n}\n"],"names":["AppRootPortal","children","className","forcePortal","forcePortalProp","portalRootProp","portalRoot","React","useContext","AppRootContext","mode","disablePortal","appearance","useAppearance","isClient","useIsClient","portalContainer","getPortalContainer","ignoreDisablePortalFlagFromContext","shouldUsePortal","createPortal","AppearanceProvider","div","Fragment","isRefObject","current"],"mappings":";;;;+BAoBaA;;;eAAAA;;;;+DApBU;wBACM;6BACC;2BACF;2BACA;kCAEO;8BACJ;AAaxB,IAAMA,gBAAgB;QAC3BC,iBAAAA,UACAC,kBAAAA,WACAC,AAAaC,wBAAbD,aACYE,YAAZC,YAAYD,iBAAAA,iBAAiB,OAAjBA;IAEZ,IAA4CE,oBAAAA,OAAMC,UAAU,CAACC,8BAAc,GAAnEH,aAAoCC,kBAApCD,YAAYI,OAAwBH,kBAAxBG,MAAMC,gBAAkBJ,kBAAlBI;IAC1B,IAAMC,aAAaC,IAAAA,4BAAa;IAEhC,IAAMC,WAAWC,IAAAA,wBAAW;IAC5B,IAAI,CAACD,UAAU;QACb,OAAO;IACT;IAEA,IAAMX,cAAcC,4BAAAA,6BAAAA,kBAAmBM,SAAS;IAEhD,IAAMM,kBAAkBC,mBAAmBZ,gBAAgBC;IAE3D,IAAMY,qCAAqCb,kBAAkBF;IAC7D,IAAMgB,kBAAkBD,qCACpB,OACA,CAACP,iBAAiBK,mBAAmBb;IAEzC,OAAOgB,mBAAmBH,gCACxBI,IAAAA,sBAAY,gBACV,qBAACC,sCAAkB;QAACT,YAAYA;qBAC9B,qBAACU;QAAIpB,WAAWA;OAAYD,YAE9Be,iCAGF,qBAACT,OAAMgB,QAAQ,QAAEtB;AAErB;AAEA;;;;;CAKC,GACD,SAASgB,mBACPZ,cAAkE,EAClEC,UAA+B;IAE/B,IAAI,CAACD,gBAAgB;QACnB,OAAOC;IACT;IAEA,OAAOkB,IAAAA,wBAAW,EAACnB,kBAAkBA,eAAeoB,OAAO,GAAGpB;AAChE"}
|
|
@@ -155,9 +155,10 @@ var ElementScrollController = function(param) {
|
|
|
155
155
|
]);
|
|
156
156
|
var scrollTo = _react.useCallback(function() {
|
|
157
157
|
var x = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0, y = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
|
|
158
|
+
var // Some iOS versions do not normalize scroll — do it manually.
|
|
159
|
+
_el;
|
|
158
160
|
var el = elRef.current;
|
|
159
|
-
|
|
160
|
-
el === null || el === void 0 ? void 0 : el.scrollTo(x ? (0, _math.clamp)(x, 0, el.scrollWidth - el.clientWidth) : 0, y ? (0, _math.clamp)(y, 0, el.scrollHeight - el.clientHeight) : 0);
|
|
161
|
+
(_el = el) === null || _el === void 0 ? void 0 : _el.scrollTo(x ? (0, _math.clamp)(x, 0, el.scrollWidth - el.clientWidth) : 0, y ? (0, _math.clamp)(y, 0, el.scrollHeight - el.clientHeight) : 0);
|
|
161
162
|
}, [
|
|
162
163
|
elRef
|
|
163
164
|
]);
|
|
@@ -229,7 +230,8 @@ var useScrollLockEffect = function(effect, deps) {
|
|
|
229
230
|
// Добавляем effectCallback в список функций, которые необходимо вызвать
|
|
230
231
|
// до блокировки
|
|
231
232
|
_react.useEffect(function() {
|
|
232
|
-
var
|
|
233
|
+
var _beforeScrollLockFnSetRef;
|
|
234
|
+
var beforeSet = (_beforeScrollLockFnSetRef = beforeScrollLockFnSetRef) === null || _beforeScrollLockFnSetRef === void 0 ? void 0 : _beforeScrollLockFnSetRef.current;
|
|
233
235
|
if (!beforeSet) {
|
|
234
236
|
return _vkjs.noop;
|
|
235
237
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/AppRoot/ScrollContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useDOM } from '../../lib/dom';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { HasChildren } from '../../types';\n\nconst clearDisableScrollStyle = (node: HTMLElement) => {\n Object.assign(node.style, {\n position: '',\n top: '',\n left: '',\n right: '',\n overflowY: '',\n overflowX: '',\n });\n};\n\nconst getPageYOffsetWithoutKeyboardHeight = (window: Window) => {\n // Note: здесь расчёт на то, что `clientHeight` равен `window.innerHeight`.\n // Это достигается тем, что тегу `html` задали`height: 100%` и у него нет отступов сверху и снизу. Если есть отступы,\n // то надо задать `box-sizing: border-box`, чтобы они не учитывались.\n const diffOfClientHeightAndViewportHeight =\n window.document.documentElement.clientHeight - window.innerHeight;\n return window.pageYOffset - diffOfClientHeightAndViewportHeight;\n};\n\nexport interface ScrollContextInterface {\n getScroll(this: void): { x: number; y: number };\n scrollTo(this: void, x?: number, y?: number): void;\n isScrollLock: boolean;\n enableScrollLock(this: void): void;\n disableScrollLock(this: void): void;\n beforeScrollLockFnSetRef?: React.RefObject<Set<() => void>>;\n}\n\nexport const ScrollContext = React.createContext<ScrollContextInterface>({\n getScroll: () => ({ x: 0, y: 0 }),\n scrollTo: noop,\n isScrollLock: false,\n enableScrollLock: noop,\n disableScrollLock: noop,\n});\n\nexport const useScroll = () => React.useContext(ScrollContext);\n\nexport interface ScrollControllerProps extends HasChildren {\n elRef: React.RefObject<HTMLElement>;\n}\n\nexport const GlobalScrollController = ({ children }: ScrollControllerProps) => {\n const { window, document } = useDOM();\n const [isScrollLock, setScrollLock] = React.useState(false);\n const beforeScrollLockFnSetRef = React.useRef<Set<() => void>>(new Set());\n\n const getScroll = React.useCallback<ScrollContextInterface['getScroll']>(\n () => ({\n x: window!.pageXOffset,\n y: getPageYOffsetWithoutKeyboardHeight(window!),\n }),\n [window],\n );\n const scrollTo = React.useCallback<ScrollContextInterface['scrollTo']>(\n (x = 0, y = 0) => {\n // Some iOS versions do not normalize scroll — do it manually.\n window!.scrollTo(\n x ? clamp(x, 0, document!.body.scrollWidth - window!.innerWidth) : 0,\n y ? clamp(y, 0, document!.body.scrollHeight - window!.innerHeight) : 0,\n );\n },\n [document, window],\n );\n\n const enableScrollLock = React.useCallback<ScrollContextInterface['enableScrollLock']>(() => {\n beforeScrollLockFnSetRef.current.forEach((fn) => {\n fn();\n });\n\n const scrollY = window!.pageYOffset;\n const scrollX = window!.pageXOffset;\n const overflowY = window!.innerWidth > document!.documentElement.clientWidth ? 'scroll' : '';\n const overflowX = window!.innerHeight > document!.documentElement.clientHeight ? 'scroll' : '';\n\n Object.assign(document!.body.style, {\n position: 'fixed',\n top: `-${scrollY}px`,\n left: `-${scrollX}px`,\n right: '0',\n overflowY,\n overflowX,\n });\n setScrollLock(true);\n }, [document, window]);\n\n const disableScrollLock = React.useCallback<ScrollContextInterface['disableScrollLock']>(() => {\n const scrollY = document!.body.style.top;\n const scrollX = document!.body.style.left;\n\n clearDisableScrollStyle(document!.body);\n window!.scrollTo(-parseInt(scrollX || '0'), -parseInt(scrollY || '0'));\n setScrollLock(false);\n }, [document, window]);\n\n const scrollController = React.useMemo<ScrollContextInterface>(\n () => ({\n getScroll,\n scrollTo,\n isScrollLock,\n disableScrollLock,\n enableScrollLock,\n\n beforeScrollLockFnSetRef: beforeScrollLockFnSetRef,\n }),\n [getScroll, scrollTo, isScrollLock, disableScrollLock, enableScrollLock],\n );\n\n return <ScrollContext.Provider value={scrollController}>{children}</ScrollContext.Provider>;\n};\n\nexport const ElementScrollController = ({ elRef, children }: ScrollControllerProps) => {\n const [isScrollLock, setScrollLock] = React.useState(false);\n const beforeScrollLockFnSetRef = React.useRef<Set<() => void>>(new Set());\n\n const getScroll = React.useCallback<ScrollContextInterface['getScroll']>(\n () => ({\n x: elRef.current?.scrollLeft ?? 0,\n y: elRef.current?.scrollTop ?? 0,\n }),\n [elRef],\n );\n const scrollTo = React.useCallback<ScrollContextInterface['scrollTo']>(\n (x = 0, y = 0) => {\n const el = elRef.current;\n // Some iOS versions do not normalize scroll — do it manually.\n el?.scrollTo(\n x ? clamp(x, 0, el.scrollWidth - el.clientWidth) : 0,\n y ? clamp(y, 0, el.scrollHeight - el.clientHeight) : 0,\n );\n },\n [elRef],\n );\n\n const enableScrollLock = React.useCallback<ScrollContextInterface['enableScrollLock']>(() => {\n const el = elRef.current;\n if (!el) {\n return;\n }\n beforeScrollLockFnSetRef.current.forEach((fn) => {\n fn();\n });\n\n const scrollY = el.scrollTop;\n const scrollX = el.scrollLeft;\n const overflowY = el.scrollWidth > el.clientWidth ? 'scroll' : '';\n const overflowX = el.scrollHeight > el.clientHeight ? 'scroll' : '';\n\n Object.assign(el.style, {\n position: 'absolute',\n top: `-${scrollY}px`,\n left: `-${scrollX}px`,\n right: '0',\n overflowY,\n overflowX,\n });\n setScrollLock(true);\n }, [elRef]);\n\n const disableScrollLock = React.useCallback<ScrollContextInterface['disableScrollLock']>(() => {\n const el = elRef.current;\n if (!el) {\n return;\n }\n\n const scrollY = el.style.top;\n const scrollX = el.style.left;\n\n clearDisableScrollStyle(el);\n el.scrollTo(-parseInt(scrollX || '0'), -parseInt(scrollY || '0'));\n setScrollLock(false);\n }, [elRef]);\n\n const scrollController = React.useMemo<ScrollContextInterface>(\n () => ({\n getScroll,\n scrollTo,\n isScrollLock,\n disableScrollLock,\n enableScrollLock,\n beforeScrollLockFnSetRef,\n }),\n [getScroll, scrollTo, isScrollLock, disableScrollLock, enableScrollLock],\n );\n\n return <ScrollContext.Provider value={scrollController}>{children}</ScrollContext.Provider>;\n};\n\n/**\n * Вызывает функцию effect, до блокировки прокрутки\n * @param effect функция, которая может возвращать функцию очистки\n * @param deps effect обновится только при изменении значений в списке.\n */\nexport const useScrollLockEffect = (effect: React.EffectCallback, deps: React.DependencyList) => {\n const destructorRef = React.useRef<ReturnType<React.EffectCallback>>(noop);\n const { isScrollLock, beforeScrollLockFnSetRef } = useScroll();\n\n // Изменяем effectCallback только при изменении deps\n const effectCallback = React.useCallback(() => {\n destructorRef.current = effect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n\n // Добавляем effectCallback в список функций, которые необходимо вызвать\n // до блокировки\n React.useEffect(() => {\n const beforeSet = beforeScrollLockFnSetRef?.current;\n if (!beforeSet) {\n return noop;\n }\n\n beforeSet.add(effectCallback);\n\n return () => {\n beforeSet.delete(effectCallback);\n };\n }, [beforeScrollLockFnSetRef, effectCallback]);\n\n // Вызываем сбрасывающую функцию, после отключения блокировки\n React.useEffect(() => {\n if (!isScrollLock && destructorRef.current) {\n destructorRef.current();\n }\n }, [isScrollLock]);\n};\n\nexport const useScrollLock = (enabled = true) => {\n const { enableScrollLock, disableScrollLock } = useScroll();\n useIsomorphicLayoutEffect(() => {\n if (enabled) {\n enableScrollLock();\n return disableScrollLock;\n }\n return noop;\n }, [enableScrollLock, disableScrollLock, enabled]);\n};\n"],"names":["ScrollContext","useScroll","GlobalScrollController","ElementScrollController","useScrollLockEffect","useScrollLock","clearDisableScrollStyle","node","Object","assign","style","position","top","left","right","overflowY","overflowX","getPageYOffsetWithoutKeyboardHeight","window","diffOfClientHeightAndViewportHeight","document","documentElement","clientHeight","innerHeight","pageYOffset","React","createContext","getScroll","x","y","scrollTo","noop","isScrollLock","enableScrollLock","disableScrollLock","useContext","children","useDOM","useState","setScrollLock","beforeScrollLockFnSetRef","useRef","Set","useCallback","pageXOffset","clamp","body","scrollWidth","innerWidth","scrollHeight","current","forEach","fn","scrollY","scrollX","clientWidth","parseInt","scrollController","useMemo","Provider","value","elRef","scrollLeft","scrollTop","el","effect","deps","destructorRef","effectCallback","useEffect","beforeSet","add","delete","enabled","useIsomorphicLayoutEffect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/AppRoot/ScrollContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useDOM } from '../../lib/dom';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { HasChildren } from '../../types';\n\nconst clearDisableScrollStyle = (node: HTMLElement) => {\n Object.assign(node.style, {\n position: '',\n top: '',\n left: '',\n right: '',\n overflowY: '',\n overflowX: '',\n });\n};\n\nconst getPageYOffsetWithoutKeyboardHeight = (window: Window) => {\n // Note: здесь расчёт на то, что `clientHeight` равен `window.innerHeight`.\n // Это достигается тем, что тегу `html` задали`height: 100%` и у него нет отступов сверху и снизу. Если есть отступы,\n // то надо задать `box-sizing: border-box`, чтобы они не учитывались.\n const diffOfClientHeightAndViewportHeight =\n window.document.documentElement.clientHeight - window.innerHeight;\n return window.pageYOffset - diffOfClientHeightAndViewportHeight;\n};\n\nexport interface ScrollContextInterface {\n getScroll(this: void): { x: number; y: number };\n scrollTo(this: void, x?: number, y?: number): void;\n isScrollLock: boolean;\n enableScrollLock(this: void): void;\n disableScrollLock(this: void): void;\n beforeScrollLockFnSetRef?: React.RefObject<Set<() => void>>;\n}\n\nexport const ScrollContext = React.createContext<ScrollContextInterface>({\n getScroll: () => ({ x: 0, y: 0 }),\n scrollTo: noop,\n isScrollLock: false,\n enableScrollLock: noop,\n disableScrollLock: noop,\n});\n\nexport const useScroll = () => React.useContext(ScrollContext);\n\nexport interface ScrollControllerProps extends HasChildren {\n elRef: React.RefObject<HTMLElement>;\n}\n\nexport const GlobalScrollController = ({ children }: ScrollControllerProps) => {\n const { window, document } = useDOM();\n const [isScrollLock, setScrollLock] = React.useState(false);\n const beforeScrollLockFnSetRef = React.useRef<Set<() => void>>(new Set());\n\n const getScroll = React.useCallback<ScrollContextInterface['getScroll']>(\n () => ({\n x: window!.pageXOffset,\n y: getPageYOffsetWithoutKeyboardHeight(window!),\n }),\n [window],\n );\n const scrollTo = React.useCallback<ScrollContextInterface['scrollTo']>(\n (x = 0, y = 0) => {\n // Some iOS versions do not normalize scroll — do it manually.\n window!.scrollTo(\n x ? clamp(x, 0, document!.body.scrollWidth - window!.innerWidth) : 0,\n y ? clamp(y, 0, document!.body.scrollHeight - window!.innerHeight) : 0,\n );\n },\n [document, window],\n );\n\n const enableScrollLock = React.useCallback<ScrollContextInterface['enableScrollLock']>(() => {\n beforeScrollLockFnSetRef.current.forEach((fn) => {\n fn();\n });\n\n const scrollY = window!.pageYOffset;\n const scrollX = window!.pageXOffset;\n const overflowY = window!.innerWidth > document!.documentElement.clientWidth ? 'scroll' : '';\n const overflowX = window!.innerHeight > document!.documentElement.clientHeight ? 'scroll' : '';\n\n Object.assign(document!.body.style, {\n position: 'fixed',\n top: `-${scrollY}px`,\n left: `-${scrollX}px`,\n right: '0',\n overflowY,\n overflowX,\n });\n setScrollLock(true);\n }, [document, window]);\n\n const disableScrollLock = React.useCallback<ScrollContextInterface['disableScrollLock']>(() => {\n const scrollY = document!.body.style.top;\n const scrollX = document!.body.style.left;\n\n clearDisableScrollStyle(document!.body);\n window!.scrollTo(-parseInt(scrollX || '0'), -parseInt(scrollY || '0'));\n setScrollLock(false);\n }, [document, window]);\n\n const scrollController = React.useMemo<ScrollContextInterface>(\n () => ({\n getScroll,\n scrollTo,\n isScrollLock,\n disableScrollLock,\n enableScrollLock,\n\n beforeScrollLockFnSetRef: beforeScrollLockFnSetRef,\n }),\n [getScroll, scrollTo, isScrollLock, disableScrollLock, enableScrollLock],\n );\n\n return <ScrollContext.Provider value={scrollController}>{children}</ScrollContext.Provider>;\n};\n\nexport const ElementScrollController = ({ elRef, children }: ScrollControllerProps) => {\n const [isScrollLock, setScrollLock] = React.useState(false);\n const beforeScrollLockFnSetRef = React.useRef<Set<() => void>>(new Set());\n\n const getScroll = React.useCallback<ScrollContextInterface['getScroll']>(\n () => ({\n x: elRef.current?.scrollLeft ?? 0,\n y: elRef.current?.scrollTop ?? 0,\n }),\n [elRef],\n );\n const scrollTo = React.useCallback<ScrollContextInterface['scrollTo']>(\n (x = 0, y = 0) => {\n const el = elRef.current;\n // Some iOS versions do not normalize scroll — do it manually.\n el?.scrollTo(\n x ? clamp(x, 0, el.scrollWidth - el.clientWidth) : 0,\n y ? clamp(y, 0, el.scrollHeight - el.clientHeight) : 0,\n );\n },\n [elRef],\n );\n\n const enableScrollLock = React.useCallback<ScrollContextInterface['enableScrollLock']>(() => {\n const el = elRef.current;\n if (!el) {\n return;\n }\n beforeScrollLockFnSetRef.current.forEach((fn) => {\n fn();\n });\n\n const scrollY = el.scrollTop;\n const scrollX = el.scrollLeft;\n const overflowY = el.scrollWidth > el.clientWidth ? 'scroll' : '';\n const overflowX = el.scrollHeight > el.clientHeight ? 'scroll' : '';\n\n Object.assign(el.style, {\n position: 'absolute',\n top: `-${scrollY}px`,\n left: `-${scrollX}px`,\n right: '0',\n overflowY,\n overflowX,\n });\n setScrollLock(true);\n }, [elRef]);\n\n const disableScrollLock = React.useCallback<ScrollContextInterface['disableScrollLock']>(() => {\n const el = elRef.current;\n if (!el) {\n return;\n }\n\n const scrollY = el.style.top;\n const scrollX = el.style.left;\n\n clearDisableScrollStyle(el);\n el.scrollTo(-parseInt(scrollX || '0'), -parseInt(scrollY || '0'));\n setScrollLock(false);\n }, [elRef]);\n\n const scrollController = React.useMemo<ScrollContextInterface>(\n () => ({\n getScroll,\n scrollTo,\n isScrollLock,\n disableScrollLock,\n enableScrollLock,\n beforeScrollLockFnSetRef,\n }),\n [getScroll, scrollTo, isScrollLock, disableScrollLock, enableScrollLock],\n );\n\n return <ScrollContext.Provider value={scrollController}>{children}</ScrollContext.Provider>;\n};\n\n/**\n * Вызывает функцию effect, до блокировки прокрутки\n * @param effect функция, которая может возвращать функцию очистки\n * @param deps effect обновится только при изменении значений в списке.\n */\nexport const useScrollLockEffect = (effect: React.EffectCallback, deps: React.DependencyList) => {\n const destructorRef = React.useRef<ReturnType<React.EffectCallback>>(noop);\n const { isScrollLock, beforeScrollLockFnSetRef } = useScroll();\n\n // Изменяем effectCallback только при изменении deps\n const effectCallback = React.useCallback(() => {\n destructorRef.current = effect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n\n // Добавляем effectCallback в список функций, которые необходимо вызвать\n // до блокировки\n React.useEffect(() => {\n const beforeSet = beforeScrollLockFnSetRef?.current;\n if (!beforeSet) {\n return noop;\n }\n\n beforeSet.add(effectCallback);\n\n return () => {\n beforeSet.delete(effectCallback);\n };\n }, [beforeScrollLockFnSetRef, effectCallback]);\n\n // Вызываем сбрасывающую функцию, после отключения блокировки\n React.useEffect(() => {\n if (!isScrollLock && destructorRef.current) {\n destructorRef.current();\n }\n }, [isScrollLock]);\n};\n\nexport const useScrollLock = (enabled = true) => {\n const { enableScrollLock, disableScrollLock } = useScroll();\n useIsomorphicLayoutEffect(() => {\n if (enabled) {\n enableScrollLock();\n return disableScrollLock;\n }\n return noop;\n }, [enableScrollLock, disableScrollLock, enabled]);\n};\n"],"names":["ScrollContext","useScroll","GlobalScrollController","ElementScrollController","useScrollLockEffect","useScrollLock","clearDisableScrollStyle","node","Object","assign","style","position","top","left","right","overflowY","overflowX","getPageYOffsetWithoutKeyboardHeight","window","diffOfClientHeightAndViewportHeight","document","documentElement","clientHeight","innerHeight","pageYOffset","React","createContext","getScroll","x","y","scrollTo","noop","isScrollLock","enableScrollLock","disableScrollLock","useContext","children","useDOM","useState","setScrollLock","beforeScrollLockFnSetRef","useRef","Set","useCallback","pageXOffset","clamp","body","scrollWidth","innerWidth","scrollHeight","current","forEach","fn","scrollY","scrollX","clientWidth","parseInt","scrollController","useMemo","Provider","value","elRef","scrollLeft","scrollTop","el","effect","deps","destructorRef","effectCallback","useEffect","beforeSet","add","delete","enabled","useIsomorphicLayoutEffect"],"mappings":"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"}
|