@vkontakte/vkui 5.5.4 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
- package/dist/cjs/components/Accordion/AccordionSummary.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -2
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
- package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRoot.js +6 -5
- package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cjs/components/AppRoot/ScrollContext.js +5 -3
- package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/cjs/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
- package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/cjs/components/Avatar/AvatarBadge/icons.js.map +1 -1
- package/dist/cjs/components/Avatar/helpers.js.map +1 -1
- package/dist/cjs/components/Badge/Badge.js.map +1 -1
- package/dist/cjs/components/Banner/Banner.d.ts +5 -1
- package/dist/cjs/components/Banner/Banner.js +4 -3
- package/dist/cjs/components/Banner/Banner.js.map +1 -1
- package/dist/cjs/components/BaseGallery/BaseGallery.js +15 -9
- package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/cjs/components/BaseGallery/helpers.js.map +1 -1
- package/dist/cjs/components/Button/Button.d.ts +2 -1
- package/dist/cjs/components/Button/Button.js +5 -3
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/cjs/components/Calendar/Calendar.js +2 -1
- package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
- package/dist/cjs/components/CalendarDay/CalendarDay.js +4 -2
- package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cjs/components/CalendarDays/CalendarDays.js +6 -5
- package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.js +16 -8
- package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cjs/components/CalendarTime/CalendarTime.js +4 -2
- package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/cjs/components/Card/Card.js.map +1 -1
- package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cjs/components/Cell/Cell.js.map +1 -1
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
- package/dist/cjs/components/Cell/useDraggable.js.map +1 -1
- package/dist/cjs/components/CellButton/CellButton.js.map +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cjs/components/Chip/Chip.js.map +1 -1
- package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cjs/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
- package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +10 -4
- package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +20 -9
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
- package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cjs/components/Counter/Counter.js.map +1 -1
- package/dist/cjs/components/CustomScrollView/CustomScrollView.js +2 -1
- package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +15 -8
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +4 -2
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.js +4 -2
- package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.js +8 -5
- package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js +11 -7
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cjs/components/Div/Div.js.map +1 -1
- package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/cjs/components/Epic/Epic.d.ts +1 -0
- package/dist/cjs/components/Epic/Epic.js.map +1 -1
- package/dist/cjs/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/cjs/components/File/File.js.map +1 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.js +2 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cjs/components/FocusTrap/FocusTrap.js +4 -3
- package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
- package/dist/cjs/components/Footer/Footer.js.map +1 -1
- package/dist/cjs/components/FormField/FormField.js.map +1 -1
- package/dist/cjs/components/FormItem/FormItem.js +2 -1
- package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
- package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/cjs/components/Gallery/Gallery.js.map +1 -1
- package/dist/cjs/components/Gradient/Gradient.js.map +1 -1
- package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/cjs/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
- package/dist/cjs/components/Group/Group.d.ts +8 -8
- package/dist/cjs/components/Group/Group.js +1 -1
- package/dist/cjs/components/Group/Group.js.map +1 -1
- package/dist/cjs/components/Header/Header.js.map +1 -1
- package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
- package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.js +56 -0
- package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +2 -2
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
- package/dist/cjs/components/Image/Image.js.map +1 -1
- package/dist/cjs/components/Image/ImageBadge/ImageBadge.js.map +1 -1
- package/dist/cjs/components/ImageBase/ImageBase.js +4 -2
- package/dist/cjs/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/cjs/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
- package/dist/cjs/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
- package/dist/cjs/components/ImageBase/context.js.map +1 -1
- package/dist/cjs/components/ImageBase/helpers.js.map +1 -1
- package/dist/cjs/components/ImageBase/validators.js +3 -4
- package/dist/cjs/components/ImageBase/validators.js.map +1 -1
- package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/cjs/components/Input/Input.js.map +1 -1
- package/dist/cjs/components/InputLike/InputLike.js +6 -4
- package/dist/cjs/components/InputLike/InputLike.js.map +1 -1
- package/dist/cjs/components/InputLike/InputLikeDivider.js.map +1 -1
- package/dist/cjs/components/Link/Link.js.map +1 -1
- package/dist/cjs/components/List/List.js.map +1 -1
- package/dist/cjs/components/List/ListContext.js.map +1 -1
- package/dist/cjs/components/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js +9 -8
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPageContext.js.map +1 -1
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js +21 -15
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +12 -6
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cjs/components/ModalRoot/types.d.ts +4 -2
- package/dist/cjs/components/ModalRoot/types.js.map +1 -1
- package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cjs/components/ModalRoot/useModalRootContext.js.map +1 -1
- package/dist/cjs/components/ModalRoot/withModalRootContext.js.map +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cjs/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
- package/dist/cjs/components/Pagination/Pagination.js +2 -1
- package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
- package/dist/cjs/components/Panel/Panel.js.map +1 -1
- package/dist/cjs/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
- package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/cjs/components/PanelSpinner/PanelSpinner.js.map +1 -1
- package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/cjs/components/PlatformProvider/PlatformProvider.js.map +1 -1
- package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cjs/components/Popover/Popover.js.map +1 -1
- package/dist/cjs/components/Popper/Popper.js.map +1 -1
- package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/cjs/components/Progress/Progress.js.map +1 -1
- package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js +2 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
- package/dist/cjs/components/Radio/Radio.js.map +1 -1
- package/dist/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/cjs/components/Removable/Removable.js +2 -2
- package/dist/cjs/components/Removable/Removable.js.map +1 -1
- package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
- package/dist/cjs/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
- package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
- package/dist/cjs/components/Root/Root.d.ts +1 -0
- package/dist/cjs/components/Root/Root.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cjs/components/ScrollArrow/ScrollArrow.js.map +1 -1
- package/dist/cjs/components/Search/Search.js +2 -2
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cjs/components/Separator/Separator.js.map +1 -1
- package/dist/cjs/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
- package/dist/cjs/components/SimpleCell/Chevron/Chevron.js +27 -0
- package/dist/cjs/components/SimpleCell/Chevron/Chevron.js.map +1 -0
- package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +6 -2
- package/dist/cjs/components/SimpleCell/SimpleCell.js +16 -5
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/Slider/Slider.js.map +1 -1
- package/dist/cjs/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
- package/dist/cjs/components/Slider/helpers.js.map +1 -1
- package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
- package/dist/cjs/components/Spinner/Spinner.d.ts +2 -1
- package/dist/cjs/components/Spinner/Spinner.js +19 -4
- package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitColContext.js.map +1 -1
- package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cjs/components/Switch/Switch.js.map +1 -1
- package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
- package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
- package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/cjs/components/Textarea/Textarea.js +2 -1
- package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js +4 -2
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/components/Tooltip/TooltipContainer.js.map +1 -1
- package/dist/cjs/components/Touch/Touch.js +1 -1
- package/dist/cjs/components/Touch/Touch.js.map +1 -1
- package/dist/cjs/components/Touch/TouchContext.js.map +1 -1
- package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
- package/dist/cjs/components/Typography/Typography.js.map +1 -1
- package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cjs/components/View/View.d.ts +1 -0
- package/dist/cjs/components/View/View.js +16 -8
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
- package/dist/cjs/components/View/utils.js +2 -2
- package/dist/cjs/components/View/utils.js.map +1 -1
- package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cjs/helpers/appearance.js.map +1 -1
- package/dist/cjs/helpers/generateVKUITokensClassName.js.map +1 -1
- package/dist/cjs/helpers/getPlatformClassName.js.map +1 -1
- package/dist/cjs/helpers/math.js.map +1 -1
- package/dist/cjs/helpers/range.js.map +1 -1
- package/dist/cjs/hoc/withContext.js.map +1 -1
- package/dist/cjs/hoc/withInsets.js.map +1 -1
- package/dist/cjs/hoc/withPlatform.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivity.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityConditionalRender/index.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityHasHover.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityHasPointer.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
- package/dist/cjs/hooks/useAppearance.js.map +1 -1
- package/dist/cjs/hooks/useAutoDetectAppearance.js +2 -1
- package/dist/cjs/hooks/useAutoDetectAppearance.js.map +1 -1
- package/dist/cjs/hooks/useBooleanState.js.map +1 -1
- package/dist/cjs/hooks/useBridgeAdaptivity.js.map +1 -1
- package/dist/cjs/hooks/useCalendar.js +6 -3
- package/dist/cjs/hooks/useCalendar.js.map +1 -1
- package/dist/cjs/hooks/useChipsInput.js +2 -1
- package/dist/cjs/hooks/useChipsInput.js.map +1 -1
- package/dist/cjs/hooks/useChipsSelect.js.map +1 -1
- package/dist/cjs/hooks/useDateInput.js +5 -3
- package/dist/cjs/hooks/useDateInput.js.map +1 -1
- package/dist/cjs/hooks/useEffectDev.js.map +1 -1
- package/dist/cjs/hooks/useEnsuredControl.js.map +1 -1
- package/dist/cjs/hooks/useEventListener.js.map +1 -1
- package/dist/cjs/hooks/useExternRef.js.map +1 -1
- package/dist/cjs/hooks/useFocusVisible.js.map +1 -1
- package/dist/cjs/hooks/useFocusWithin.js.map +1 -1
- package/dist/cjs/hooks/useGlobalEventListener.js.map +1 -1
- package/dist/cjs/hooks/useId.js.map +1 -1
- package/dist/cjs/hooks/useInsets.js.map +1 -1
- package/dist/cjs/hooks/useIsClient.js.map +1 -1
- package/dist/cjs/hooks/useKeyboard.js +4 -4
- package/dist/cjs/hooks/useKeyboard.js.map +1 -1
- package/dist/cjs/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/cjs/hooks/useMediaQueries.js.map +1 -1
- package/dist/cjs/hooks/useObjectMemo.js.map +1 -1
- package/dist/cjs/hooks/useOrientationChange.js +1 -1
- package/dist/cjs/hooks/useOrientationChange.js.map +1 -1
- package/dist/cjs/hooks/usePagination.js.map +1 -1
- package/dist/cjs/hooks/usePatchChildrenRef.js +2 -1
- package/dist/cjs/hooks/usePatchChildrenRef.js.map +1 -1
- package/dist/cjs/hooks/usePlatform.js.map +1 -1
- package/dist/cjs/hooks/usePrevious.js.map +1 -1
- package/dist/cjs/hooks/useTimeout.js +2 -1
- package/dist/cjs/hooks/useTimeout.js.map +1 -1
- package/dist/cjs/hooks/useTodayDate.js.map +1 -1
- package/dist/cjs/hooks/useWaitTransitionFinish.js +4 -2
- package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +4 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/SSR.js.map +1 -1
- package/dist/cjs/lib/accessibility.js.map +1 -1
- package/dist/cjs/lib/adaptivity/constants.js.map +1 -1
- package/dist/cjs/lib/adaptivity/functions.js.map +1 -1
- package/dist/cjs/lib/animate.js.map +1 -1
- package/dist/cjs/lib/browser.js.map +1 -1
- package/dist/cjs/lib/calendar.js.map +1 -1
- package/dist/cjs/lib/callMultiple.js.map +1 -1
- package/dist/cjs/lib/date.js.map +1 -1
- package/dist/cjs/lib/dom.js.map +1 -1
- package/dist/cjs/lib/floating/adapters.js.map +1 -1
- package/dist/cjs/lib/floating/functions.js.map +1 -1
- package/dist/cjs/lib/floating/index.js.map +1 -1
- package/dist/cjs/lib/fx.js.map +1 -1
- package/dist/cjs/lib/getNavId.js.map +1 -1
- package/dist/cjs/lib/isRefObject.js.map +1 -1
- package/dist/cjs/lib/matchMedia.js.map +1 -1
- package/dist/cjs/lib/offset.js +6 -5
- package/dist/cjs/lib/offset.js.map +1 -1
- package/dist/cjs/lib/platform.js.map +1 -1
- package/dist/cjs/lib/polyfills.js.map +1 -1
- package/dist/cjs/lib/removeObjectKeys.js.map +1 -1
- package/dist/cjs/lib/select.js +2 -2
- package/dist/cjs/lib/select.js.map +1 -1
- package/dist/cjs/lib/styles.js.map +1 -1
- package/dist/cjs/lib/supportEvents.js.map +1 -1
- package/dist/cjs/lib/taptic.js.map +1 -1
- package/dist/cjs/lib/testing.js.map +1 -1
- package/dist/cjs/lib/tokensClassProvider.js.map +1 -1
- package/dist/cjs/lib/touch.js.map +1 -1
- package/dist/cjs/lib/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/cjs/lib/utils.js.map +1 -1
- package/dist/cjs/lib/warnOnce.js.map +1 -1
- package/dist/cjs/shared/breakpoints.js.map +1 -1
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -2
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.js +6 -5
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/components/AppRoot/ScrollContext.js +5 -3
- package/dist/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
- package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/components/Avatar/helpers.js.map +1 -1
- package/dist/components/Banner/Banner.d.ts +5 -1
- package/dist/components/Banner/Banner.js +4 -3
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/BaseGallery/BaseGallery.js +15 -9
- package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/components/BaseGallery/helpers.js.map +1 -1
- package/dist/components/Button/Button.d.ts +2 -1
- package/dist/components/Button/Button.js +5 -3
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Calendar/Calendar.js +2 -1
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.js +4 -2
- package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.js +6 -5
- package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +16 -8
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/CalendarTime/CalendarTime.js +4 -2
- package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/Cell/Cell.js.map +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
- package/dist/components/Cell/useDraggable.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Chip/Chip.js.map +1 -1
- package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
- package/dist/components/ChipsInputBase/ChipsInputBase.js +10 -4
- package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/components/ChipsSelect/ChipsSelect.js +20 -9
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/Counter/Counter.js.map +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.js +2 -1
- package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +15 -8
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +4 -2
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/components/DateInput/DateInput.js +4 -2
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DatePicker/DatePicker.js +8 -5
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +11 -7
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/components/Epic/Epic.d.ts +1 -0
- package/dist/components/Epic/Epic.js.map +1 -1
- package/dist/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/components/File/File.js.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.js +2 -1
- package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/components/FocusTrap/FocusTrap.js +4 -3
- package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/FormItem/FormItem.js +2 -1
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/Gallery/Gallery.js.map +1 -1
- package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
- package/dist/components/Group/Group.d.ts +8 -8
- package/dist/components/Group/Group.js +1 -1
- package/dist/components/Group/Group.js.map +1 -1
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
- package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.js +45 -0
- package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
- package/dist/components/HorizontalScroll/HorizontalScroll.js +2 -2
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/components/IconButton/IconButton.js.map +1 -1
- package/dist/components/Image/Image.js.map +1 -1
- package/dist/components/Image/ImageBadge/ImageBadge.js.map +1 -1
- package/dist/components/ImageBase/ImageBase.js +4 -2
- package/dist/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
- package/dist/components/ImageBase/context.js.map +1 -1
- package/dist/components/ImageBase/helpers.js.map +1 -1
- package/dist/components/ImageBase/validators.js +3 -4
- package/dist/components/ImageBase/validators.js.map +1 -1
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/InputLike/InputLike.js +6 -4
- package/dist/components/InputLike/InputLike.js.map +1 -1
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/List/List.js.map +1 -1
- package/dist/components/List/ListContext.js.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +9 -8
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalPage/ModalPageContext.js.map +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +21 -15
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootDesktop.js +12 -6
- package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/components/ModalRoot/types.d.ts +4 -2
- package/dist/components/ModalRoot/types.js.map +1 -1
- package/dist/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/components/ModalRoot/useModalRootContext.js.map +1 -1
- package/dist/components/ModalRoot/withModalRootContext.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
- package/dist/components/Pagination/Pagination.js +2 -1
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Panel/Panel.js.map +1 -1
- package/dist/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/components/PanelSpinner/PanelSpinner.js.map +1 -1
- package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.js +2 -1
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/Removable/Removable.js +2 -2
- package/dist/components/Removable/Removable.js.map +1 -1
- package/dist/components/RichCell/RichCell.js.map +1 -1
- package/dist/components/Root/Root.d.ts +1 -0
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/Search/Search.js +2 -2
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
- package/dist/components/SimpleCell/Chevron/Chevron.js +16 -0
- package/dist/components/SimpleCell/Chevron/Chevron.js.map +1 -0
- package/dist/components/SimpleCell/SimpleCell.d.ts +6 -2
- package/dist/components/SimpleCell/SimpleCell.js +16 -5
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/Slider/helpers.js.map +1 -1
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/Spinner/Spinner.d.ts +2 -1
- package/dist/components/Spinner/Spinner.js +19 -4
- package/dist/components/Spinner/Spinner.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SplitCol/SplitColContext.js.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.js +1 -1
- package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/components/Tappable/Tappable.js.map +1 -1
- package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/components/Textarea/Textarea.js +2 -1
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +4 -2
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Tooltip/TooltipContainer.js.map +1 -1
- package/dist/components/Touch/Touch.js +1 -1
- package/dist/components/Touch/Touch.js.map +1 -1
- package/dist/components/Touch/TouchContext.js.map +1 -1
- package/dist/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/components/Typography/Text/Text.js.map +1 -1
- package/dist/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/components/View/View.d.ts +1 -0
- package/dist/components/View/View.js +16 -8
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components/View/utils.js +2 -2
- package/dist/components/View/utils.js.map +1 -1
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/components.css +10 -9
- package/dist/components.css.map +1 -1
- package/dist/components.js.tmp +3108 -2238
- package/dist/cssm/components/Accordion/Accordion.js +1 -1
- package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
- package/dist/cssm/components/Accordion/AccordionSummary.js +1 -1
- package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -2
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +3 -3
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -3
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +3 -3
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js +2 -2
- package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +3 -3
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js +6 -6
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +3 -3
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootPortal.js +2 -2
- package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cssm/components/AppRoot/ScrollContext.js +5 -5
- package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js +1 -1
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.js +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.js +1 -1
- package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.js +2 -2
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +2 -2
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/icons.js +2 -2
- package/dist/cssm/components/Avatar/AvatarBadge/icons.js.map +1 -1
- package/dist/cssm/components/Avatar/helpers.js.map +1 -1
- package/dist/cssm/components/Badge/Badge.js +1 -1
- package/dist/cssm/components/Badge/Badge.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.d.ts +5 -1
- package/dist/cssm/components/Banner/Banner.js +2 -2
- package/dist/cssm/components/Banner/Banner.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.module.css +6 -1
- package/dist/cssm/components/BaseGallery/BaseGallery.js +3 -3
- package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/cssm/components/BaseGallery/helpers.js +4 -4
- package/dist/cssm/components/BaseGallery/helpers.js.map +1 -1
- package/dist/cssm/components/Button/Button.d.ts +2 -1
- package/dist/cssm/components/Button/Button.js +4 -3
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/cssm/components/Calendar/Calendar.js +2 -2
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.js +2 -2
- package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js +2 -2
- package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js +7 -7
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js +2 -2
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.js +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/cssm/components/Card/Card.js +1 -1
- package/dist/cssm/components/Card/Card.js.map +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.js +2 -2
- package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.js +2 -2
- package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.js +3 -3
- package/dist/cssm/components/Cell/Cell.js.map +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cssm/components/Cell/CellDragger/CellDragger.js +1 -1
- package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
- package/dist/cssm/components/Cell/useDraggable.js +1 -1
- package/dist/cssm/components/Cell/useDraggable.js.map +1 -1
- package/dist/cssm/components/CellButton/CellButton.js +1 -1
- package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.js +3 -3
- package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cssm/components/Chip/Chip.js +2 -2
- package/dist/cssm/components/Chip/Chip.js.map +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +9 -5
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +13 -5
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js +2 -2
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.js +3 -3
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.js +1 -1
- package/dist/cssm/components/Counter/Counter.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js +3 -3
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js +1 -1
- package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +4 -4
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -2
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +2 -2
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.js +3 -3
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DatePicker/DatePicker.js +8 -8
- package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +3 -3
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/Div/Div.js +1 -1
- package/dist/cssm/components/Div/Div.js.map +1 -1
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js +2 -2
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/cssm/components/Epic/Epic.d.ts +1 -0
- package/dist/cssm/components/Epic/Epic.js +1 -1
- package/dist/cssm/components/Epic/Epic.js.map +1 -1
- package/dist/cssm/components/Epic/ScrollSaver.js +2 -2
- package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/cssm/components/File/File.js +1 -1
- package/dist/cssm/components/File/File.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js +3 -3
- package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cssm/components/FocusTrap/FocusTrap.js +4 -4
- package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/cssm/components/FocusVisible/FocusVisible.js +1 -1
- package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
- package/dist/cssm/components/Footer/Footer.js +1 -1
- package/dist/cssm/components/Footer/Footer.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.js +2 -2
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.js +2 -2
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormLayout/FormLayout.js +1 -1
- package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +2 -2
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cssm/components/FormStatus/FormStatus.js +1 -1
- package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/cssm/components/Gallery/Gallery.js +1 -1
- package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
- package/dist/cssm/components/Gradient/Gradient.js +1 -1
- package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.js +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js +2 -2
- package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
- package/dist/cssm/components/Group/Group.d.ts +8 -8
- package/dist/cssm/components/Group/Group.js +4 -4
- package/dist/cssm/components/Group/Group.js.map +1 -1
- package/dist/cssm/components/Group/Group.module.css +2 -0
- package/dist/cssm/components/Header/Header.js +2 -2
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js +3 -3
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +0 -5
- package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
- package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.js +35 -0
- package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
- package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.module.css +47 -0
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +2 -2
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/HoverPopper/HoverPopper.js +1 -1
- package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/cssm/components/IconButton/IconButton.js +2 -2
- package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
- package/dist/cssm/components/Image/Image.js +1 -1
- package/dist/cssm/components/Image/Image.js.map +1 -1
- package/dist/cssm/components/Image/ImageBadge/ImageBadge.js +2 -2
- package/dist/cssm/components/Image/ImageBadge/ImageBadge.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.js +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js +2 -2
- package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +2 -2
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
- package/dist/cssm/components/ImageBase/context.js.map +1 -1
- package/dist/cssm/components/ImageBase/helpers.js.map +1 -1
- package/dist/cssm/components/ImageBase/validators.js +3 -4
- package/dist/cssm/components/ImageBase/validators.js.map +1 -1
- package/dist/cssm/components/InfoRow/InfoRow.js +1 -1
- package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/cssm/components/Input/Input.js +2 -2
- package/dist/cssm/components/Input/Input.js.map +1 -1
- package/dist/cssm/components/InputLike/InputLike.js +1 -1
- package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
- package/dist/cssm/components/InputLike/InputLikeDivider.js +1 -1
- package/dist/cssm/components/InputLike/InputLikeDivider.js.map +1 -1
- package/dist/cssm/components/Link/Link.js +1 -1
- package/dist/cssm/components/Link/Link.js.map +1 -1
- package/dist/cssm/components/List/List.js +1 -1
- package/dist/cssm/components/List/List.js.map +1 -1
- package/dist/cssm/components/List/ListContext.js.map +1 -1
- package/dist/cssm/components/LocaleProvider/LocaleProvider.js +1 -1
- package/dist/cssm/components/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.js +3 -3
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +11 -10
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +4 -5
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js +4 -4
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.module.css +5 -1
- package/dist/cssm/components/ModalPage/ModalPageContext.js.map +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +3 -3
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js +12 -12
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +7 -7
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cssm/components/ModalRoot/types.d.ts +4 -2
- package/dist/cssm/components/ModalRoot/types.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalRootContext.js.map +1 -1
- package/dist/cssm/components/ModalRoot/withModalRootContext.js +1 -1
- package/dist/cssm/components/ModalRoot/withModalRootContext.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js +2 -2
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js +1 -1
- package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.js +2 -2
- package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
- package/dist/cssm/components/Panel/Panel.js +2 -2
- package/dist/cssm/components/Panel/Panel.js.map +1 -1
- package/dist/cssm/components/PanelHeader/LegacyPanelHeaderContent.js +1 -1
- package/dist/cssm/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js +9 -9
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +2 -2
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +2 -2
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
- package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +2 -2
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
- package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
- package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/cssm/components/PanelSpinner/PanelSpinner.js +1 -1
- package/dist/cssm/components/PanelSpinner/PanelSpinner.js.map +1 -1
- package/dist/cssm/components/Placeholder/Placeholder.js +1 -1
- package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
- package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js +5 -5
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +2 -2
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cssm/components/Popover/Popover.js +3 -3
- package/dist/cssm/components/Popover/Popover.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.js +3 -3
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/PopperArrow/PopperArrow.js +1 -1
- package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/cssm/components/Progress/Progress.js +1 -1
- package/dist/cssm/components/Progress/Progress.js.map +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js +6 -6
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
- package/dist/cssm/components/Radio/Radio.js +2 -2
- package/dist/cssm/components/Radio/Radio.js.map +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.js +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/cssm/components/RangeSlider/RangeSlider.js +2 -2
- package/dist/cssm/components/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.js +4 -4
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/RichCell/RichCell.js +2 -2
- package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
- package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js +1 -1
- package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
- package/dist/cssm/components/RichTooltip/RichTooltip.js +1 -1
- package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
- package/dist/cssm/components/Root/Root.d.ts +1 -0
- package/dist/cssm/components/Root/Root.js +5 -5
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cssm/components/ScrollArrow/ScrollArrow.js +3 -3
- package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
- package/dist/cssm/components/Search/Search.js +3 -3
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js +3 -3
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +3 -3
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cssm/components/Select/Select.js +3 -3
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +2 -2
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SelectTypography/SelectTypography.js +2 -2
- package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cssm/components/Separator/Separator.js +1 -1
- package/dist/cssm/components/Separator/Separator.js.map +1 -1
- package/dist/cssm/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
- package/dist/cssm/components/SimpleCell/Chevron/Chevron.js +12 -0
- package/dist/cssm/components/SimpleCell/Chevron/Chevron.js.map +1 -0
- package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +6 -2
- package/dist/cssm/components/SimpleCell/SimpleCell.js +15 -5
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.module.css +5 -6
- package/dist/cssm/components/Slider/Slider.js +7 -7
- package/dist/cssm/components/Slider/Slider.js.map +1 -1
- package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js +2 -2
- package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
- package/dist/cssm/components/Slider/helpers.js.map +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.js +4 -4
- package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cssm/components/Spacing/Spacing.js +1 -1
- package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
- package/dist/cssm/components/Spinner/Spinner.d.ts +2 -1
- package/dist/cssm/components/Spinner/Spinner.js +19 -5
- package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
- package/dist/cssm/components/Spinner/Spinner.module.css +0 -19
- package/dist/cssm/components/SplitCol/SplitCol.js +3 -3
- package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cssm/components/SplitCol/SplitColContext.js.map +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.js +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +3 -3
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.js +3 -3
- package/dist/cssm/components/Switch/Switch.js.map +1 -1
- package/dist/cssm/components/Tabbar/Tabbar.js +1 -1
- package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js +2 -2
- package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cssm/components/Tabs/Tabs.js +2 -2
- package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js +3 -3
- package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.js +10 -10
- package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.module.css +2 -0
- package/dist/cssm/components/TextTooltip/TextTooltip.js +1 -1
- package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.js +2 -2
- package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.js +5 -5
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/Tooltip/TooltipContainer.js +1 -1
- package/dist/cssm/components/Tooltip/TooltipContainer.js.map +1 -1
- package/dist/cssm/components/Touch/Touch.js +4 -4
- package/dist/cssm/components/Touch/Touch.js.map +1 -1
- package/dist/cssm/components/Touch/TouchContext.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.js +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.js +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.js +2 -2
- package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.js +2 -2
- package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cssm/components/Typography/Text/Text.js +2 -2
- package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.js +1 -1
- package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
- package/dist/cssm/components/Typography/Typography.js +1 -1
- package/dist/cssm/components/Typography/Typography.js.map +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.js +2 -2
- package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cssm/components/View/View.d.ts +1 -0
- package/dist/cssm/components/View/View.js +3 -3
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/ViewInfinite.js +2 -2
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/components/View/utils.js.map +1 -1
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +1 -1
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +1 -1
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/cssm/components/WriteBar/WriteBar.js +1 -1
- package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cssm/helpers/appearance.js +1 -1
- package/dist/cssm/helpers/appearance.js.map +1 -1
- package/dist/cssm/helpers/generateVKUITokensClassName.js.map +1 -1
- package/dist/cssm/helpers/math.js.map +1 -1
- package/dist/cssm/helpers/range.js.map +1 -1
- package/dist/cssm/hoc/withContext.js.map +1 -1
- package/dist/cssm/hoc/withPlatform.js +1 -1
- package/dist/cssm/hoc/withPlatform.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivity.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityHasHover.js +1 -1
- package/dist/cssm/hooks/useAdaptivityHasHover.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityHasPointer.js +1 -1
- package/dist/cssm/hooks/useAdaptivityHasPointer.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js +1 -1
- package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
- package/dist/cssm/hooks/useAppearance.js +1 -1
- package/dist/cssm/hooks/useAppearance.js.map +1 -1
- package/dist/cssm/hooks/useAutoDetectAppearance.js +2 -2
- package/dist/cssm/hooks/useAutoDetectAppearance.js.map +1 -1
- package/dist/cssm/hooks/useBooleanState.js.map +1 -1
- package/dist/cssm/hooks/useBridgeAdaptivity.js +2 -2
- package/dist/cssm/hooks/useBridgeAdaptivity.js.map +1 -1
- package/dist/cssm/hooks/useCalendar.js +1 -1
- package/dist/cssm/hooks/useCalendar.js.map +1 -1
- package/dist/cssm/hooks/useChipsInput.js +1 -1
- package/dist/cssm/hooks/useChipsInput.js.map +1 -1
- package/dist/cssm/hooks/useChipsSelect.js +2 -2
- package/dist/cssm/hooks/useChipsSelect.js.map +1 -1
- package/dist/cssm/hooks/useDateInput.js +4 -4
- package/dist/cssm/hooks/useDateInput.js.map +1 -1
- package/dist/cssm/hooks/useEffectDev.js.map +1 -1
- package/dist/cssm/hooks/useEnsuredControl.js +2 -2
- package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
- package/dist/cssm/hooks/useEventListener.js.map +1 -1
- package/dist/cssm/hooks/useExternRef.js.map +1 -1
- package/dist/cssm/hooks/useFocusVisible.js +1 -1
- package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
- package/dist/cssm/hooks/useFocusWithin.js +1 -1
- package/dist/cssm/hooks/useFocusWithin.js.map +1 -1
- package/dist/cssm/hooks/useGlobalEventListener.js.map +1 -1
- package/dist/cssm/hooks/useId.js.map +1 -1
- package/dist/cssm/hooks/useInsets.js +2 -2
- package/dist/cssm/hooks/useInsets.js.map +1 -1
- package/dist/cssm/hooks/useIsClient.js.map +1 -1
- package/dist/cssm/hooks/useKeyboard.js +2 -2
- package/dist/cssm/hooks/useKeyboard.js.map +1 -1
- package/dist/cssm/hooks/useKeyboardInputTracker.js +1 -1
- package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/cssm/hooks/useMediaQueries.js +1 -1
- package/dist/cssm/hooks/useMediaQueries.js.map +1 -1
- package/dist/cssm/hooks/useObjectMemo.js.map +1 -1
- package/dist/cssm/hooks/useOrientationChange.js +1 -1
- package/dist/cssm/hooks/useOrientationChange.js.map +1 -1
- package/dist/cssm/hooks/usePagination.js +1 -1
- package/dist/cssm/hooks/usePagination.js.map +1 -1
- package/dist/cssm/hooks/usePatchChildrenRef.js.map +1 -1
- package/dist/cssm/hooks/usePlatform.js +1 -1
- package/dist/cssm/hooks/usePlatform.js.map +1 -1
- package/dist/cssm/hooks/usePrevious.js.map +1 -1
- package/dist/cssm/hooks/useTimeout.js +1 -1
- package/dist/cssm/hooks/useTimeout.js.map +1 -1
- package/dist/cssm/hooks/useTodayDate.js +1 -1
- package/dist/cssm/hooks/useTodayDate.js.map +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.js +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/cssm/index.d.ts +3 -1
- package/dist/cssm/index.js +1 -0
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/SSR.js +1 -1
- package/dist/cssm/lib/SSR.js.map +1 -1
- package/dist/cssm/lib/accessibility.js +2 -2
- package/dist/cssm/lib/accessibility.js.map +1 -1
- package/dist/cssm/lib/adaptivity/constants.js.map +1 -1
- package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
- package/dist/cssm/lib/animate.js +1 -1
- package/dist/cssm/lib/animate.js.map +1 -1
- package/dist/cssm/lib/browser.js +1 -1
- package/dist/cssm/lib/browser.js.map +1 -1
- package/dist/cssm/lib/calendar.js.map +1 -1
- package/dist/cssm/lib/callMultiple.js.map +1 -1
- package/dist/cssm/lib/date.js.map +1 -1
- package/dist/cssm/lib/dom.js.map +1 -1
- package/dist/cssm/lib/floating/adapters.js +1 -1
- package/dist/cssm/lib/floating/adapters.js.map +1 -1
- package/dist/cssm/lib/floating/functions.js.map +1 -1
- package/dist/cssm/lib/fx.js.map +1 -1
- package/dist/cssm/lib/getNavId.js.map +1 -1
- package/dist/cssm/lib/isRefObject.js.map +1 -1
- package/dist/cssm/lib/matchMedia.js.map +1 -1
- package/dist/cssm/lib/platform.js.map +1 -1
- package/dist/cssm/lib/removeObjectKeys.js.map +1 -1
- package/dist/cssm/lib/select.js.map +1 -1
- package/dist/cssm/lib/styles.js.map +1 -1
- package/dist/cssm/lib/supportEvents.js.map +1 -1
- package/dist/cssm/lib/taptic.js.map +1 -1
- package/dist/cssm/lib/testing.js.map +1 -1
- package/dist/cssm/lib/tokensClassProvider.js +1 -1
- package/dist/cssm/lib/tokensClassProvider.js.map +1 -1
- package/dist/cssm/lib/touch.js.map +1 -1
- package/dist/cssm/lib/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/cssm/lib/utils.js.map +1 -1
- package/dist/cssm/lib/warnOnce.js.map +1 -1
- package/dist/cssm/shared/breakpoints.js.map +1 -1
- package/dist/cssm/styles/constants.css +3 -0
- package/dist/cssm/styles/customMedias.generated.css +23 -0
- package/dist/cssm/styles/themes.css +3 -3
- package/dist/helpers/appearance.js.map +1 -1
- package/dist/helpers/generateVKUITokensClassName.js.map +1 -1
- package/dist/helpers/math.js.map +1 -1
- package/dist/helpers/range.js.map +1 -1
- package/dist/hoc/withContext.js.map +1 -1
- package/dist/hooks/useAdaptivity.js.map +1 -1
- package/dist/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
- package/dist/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
- package/dist/hooks/useAdaptivityHasHover.js.map +1 -1
- package/dist/hooks/useAdaptivityHasPointer.js.map +1 -1
- package/dist/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
- package/dist/hooks/useAutoDetectAppearance.js +2 -1
- package/dist/hooks/useAutoDetectAppearance.js.map +1 -1
- package/dist/hooks/useBooleanState.js.map +1 -1
- package/dist/hooks/useBridgeAdaptivity.js.map +1 -1
- package/dist/hooks/useCalendar.js +6 -3
- package/dist/hooks/useCalendar.js.map +1 -1
- package/dist/hooks/useChipsInput.js +2 -1
- package/dist/hooks/useChipsInput.js.map +1 -1
- package/dist/hooks/useChipsSelect.js.map +1 -1
- package/dist/hooks/useDateInput.js +5 -3
- package/dist/hooks/useDateInput.js.map +1 -1
- package/dist/hooks/useEffectDev.js.map +1 -1
- package/dist/hooks/useEnsuredControl.js.map +1 -1
- package/dist/hooks/useEventListener.js.map +1 -1
- package/dist/hooks/useExternRef.js.map +1 -1
- package/dist/hooks/useFocusVisible.js.map +1 -1
- package/dist/hooks/useFocusWithin.js.map +1 -1
- package/dist/hooks/useGlobalEventListener.js.map +1 -1
- package/dist/hooks/useId.js.map +1 -1
- package/dist/hooks/useInsets.js.map +1 -1
- package/dist/hooks/useIsClient.js.map +1 -1
- package/dist/hooks/useKeyboard.js +4 -4
- package/dist/hooks/useKeyboard.js.map +1 -1
- package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/hooks/useMediaQueries.js.map +1 -1
- package/dist/hooks/useObjectMemo.js.map +1 -1
- package/dist/hooks/useOrientationChange.js +1 -1
- package/dist/hooks/useOrientationChange.js.map +1 -1
- package/dist/hooks/usePagination.js.map +1 -1
- package/dist/hooks/usePatchChildrenRef.js +2 -1
- package/dist/hooks/usePatchChildrenRef.js.map +1 -1
- package/dist/hooks/usePrevious.js.map +1 -1
- package/dist/hooks/useTimeout.js +2 -1
- package/dist/hooks/useTimeout.js.map +1 -1
- package/dist/hooks/useTodayDate.js.map +1 -1
- package/dist/hooks/useWaitTransitionFinish.js +4 -2
- package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/SSR.js.map +1 -1
- package/dist/lib/accessibility.js.map +1 -1
- package/dist/lib/adaptivity/constants.js.map +1 -1
- package/dist/lib/adaptivity/functions.js.map +1 -1
- package/dist/lib/animate.js.map +1 -1
- package/dist/lib/browser.js.map +1 -1
- package/dist/lib/calendar.js.map +1 -1
- package/dist/lib/callMultiple.js.map +1 -1
- package/dist/lib/date.js.map +1 -1
- package/dist/lib/dom.js.map +1 -1
- package/dist/lib/floating/adapters.js.map +1 -1
- package/dist/lib/floating/functions.js.map +1 -1
- package/dist/lib/fx.js.map +1 -1
- package/dist/lib/getNavId.js.map +1 -1
- package/dist/lib/isRefObject.js.map +1 -1
- package/dist/lib/matchMedia.js.map +1 -1
- package/dist/lib/offset.js +6 -5
- package/dist/lib/offset.js.map +1 -1
- package/dist/lib/platform.js.map +1 -1
- package/dist/lib/polyfills.js.map +1 -1
- package/dist/lib/removeObjectKeys.js.map +1 -1
- package/dist/lib/select.js +2 -2
- package/dist/lib/select.js.map +1 -1
- package/dist/lib/styles.js.map +1 -1
- package/dist/lib/supportEvents.js.map +1 -1
- package/dist/lib/taptic.js.map +1 -1
- package/dist/lib/testing.js.map +1 -1
- package/dist/lib/tokensClassProvider.js.map +1 -1
- package/dist/lib/touch.js.map +1 -1
- package/dist/lib/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/warnOnce.js.map +1 -1
- package/dist/shared/breakpoints.js.map +1 -1
- package/dist/vkui.css +11 -10
- package/dist/vkui.css.map +1 -1
- package/dist/vkui.js.tmp +3108 -2238
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, leadingZero } from '@vkontakte/vkjs';\nimport { range } from '../../helpers/range';\nimport { useAdaptivityHasPointer } from '../../hooks/useAdaptivityHasPointer';\nimport { CustomSelect } from '../CustomSelect/CustomSelect';\nimport { Input } from '../Input/Input';\nimport styles from './DatePicker.module.css';\n\nconst DefaultMonths: string[] = [\n 'Января',\n 'Февраля',\n 'Марта',\n 'Апреля',\n 'Мая',\n 'Июня',\n 'Июля',\n 'Августа',\n 'Сентября',\n 'Октября',\n 'Ноября',\n 'Декабря',\n];\n\nexport type DatePickerDateFormat = {\n day: number;\n month: number;\n year: number;\n};\n\nexport interface DatePickerProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'min' | 'max'> {\n min?: DatePickerDateFormat;\n max?: DatePickerDateFormat;\n name?: string;\n defaultValue?: DatePickerDateFormat;\n popupDirection?: 'top' | 'bottom';\n monthNames?: string[];\n dayPlaceholder?: string;\n monthPlaceholder?: string;\n yearPlaceholder?: string;\n onDateChange?: (value: DatePickerDateFormat) => void;\n disabled?: boolean;\n}\n\n// Переводим state к формату гг-мм-дд\nfunction convertToInputFormat({ day = 0, month = 0, year = 0 }: Partial<DatePickerDateFormat>) {\n return `${year}-${leadingZero(month)}-${leadingZero(day)}`;\n}\n\n// Переводим дату формата гг-мм-дд к объекту\nfunction parseInputDate(date: string): DatePickerDateFormat {\n const splited = date.split('-');\n\n return {\n day: Number(splited[2]),\n month: Number(splited[1]),\n year: Number(splited[0]),\n };\n}\n\nfunction getMonthMaxDay(month?: number, year?: number) {\n return month ? new Date(year || 2016, month, 0).getDate() : 31;\n}\n\nconst DatePickerCustom = ({\n name,\n min = { day: 0, month: 0, year: 0 },\n max = { day: 31, month: 12, year: 2100 },\n dayPlaceholder,\n monthPlaceholder,\n yearPlaceholder,\n popupDirection,\n defaultValue,\n monthNames,\n day = 0,\n month = 0,\n year = 0,\n onDateChange,\n disabled,\n className,\n ...restProps\n}: DatePickerProps & Partial<DatePickerDateFormat>) => {\n const onSelectChange: React.ChangeEventHandler<HTMLSelectElement> = (e) => {\n onDateChange?.({\n day,\n month,\n year,\n [e.target.name]: Number(e.target.value),\n });\n };\n const dayOptions = range(1, getMonthMaxDay(month, year)).map((value) => ({\n label: String(value),\n value,\n }));\n const monthOptions = (monthNames || DefaultMonths).map((name, index) => ({\n label: name,\n value: index + 1,\n }));\n const yearOptions = range(max.year, min.year).map((value) => ({\n label: String(value),\n value: value,\n }));\n return (\n <div className={classNames(styles['DatePicker'], className)} {...restProps}>\n <div className={styles['DatePicker__container']}>\n <div className={styles['DatePicker__day']}>\n <CustomSelect\n name=\"day\"\n value={day}\n options={dayOptions}\n placeholder={dayPlaceholder}\n popupDirection={popupDirection}\n onChange={onSelectChange}\n disabled={disabled}\n />\n </div>\n <div className={styles['DatePicker__month']}>\n <CustomSelect\n className={styles['DatePicker__monthSelect']}\n name=\"month\"\n value={month}\n options={monthOptions}\n placeholder={monthPlaceholder}\n popupDirection={popupDirection}\n onChange={onSelectChange}\n disabled={disabled}\n />\n </div>\n <div className={styles['DatePicker__year']}>\n <CustomSelect\n name=\"year\"\n value={year}\n options={yearOptions}\n placeholder={yearPlaceholder}\n popupDirection={popupDirection}\n onChange={onSelectChange}\n disabled={disabled}\n />\n </div>\n </div>\n <input type=\"hidden\" name={name} value={convertToInputFormat({ day, month, year })} />\n </div>\n );\n};\n\nconst DatePickerNative = ({\n min = { day: 0, month: 0, year: 0 },\n max = { day: 31, month: 12, year: 2100 },\n dayPlaceholder,\n monthPlaceholder,\n yearPlaceholder,\n popupDirection,\n defaultValue,\n day,\n month,\n year,\n onDateChange,\n ...restProps\n}: DatePickerProps & Partial<DatePickerDateFormat>) => {\n const defProps =\n day && month && year ? { defaultValue: convertToInputFormat({ day, month, year }) } : {};\n const onStringChange: React.ChangeEventHandler<HTMLInputElement> = React.useCallback(\n (e) => {\n onDateChange?.(parseInputDate(e.currentTarget.value));\n },\n [onDateChange],\n );\n return (\n <Input\n {...restProps}\n type=\"date\"\n onChange={onStringChange}\n min={convertToInputFormat(min)}\n max={convertToInputFormat(max)}\n {...defProps}\n />\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/DatePicker\n */\nexport const DatePicker = ({ defaultValue, ...props }: DatePickerProps) => {\n const hasPointer = useAdaptivityHasPointer();\n const [value, setValue] = React.useState<Partial<DatePickerDateFormat>>(() => ({\n day: defaultValue?.day || 0,\n month: defaultValue?.month || 0,\n year: defaultValue?.year || 0,\n }));\n\n const onDateChange = React.useCallback(\n (update: DatePickerDateFormat) => {\n setValue(update);\n props.onDateChange && props.onDateChange({ ...update });\n },\n [props],\n );\n\n const Cmp = hasPointer ? DatePickerCustom : DatePickerNative;\n return <Cmp {...props} {...value} onDateChange={onDateChange} />;\n};\n"],"names":["React","classNames","leadingZero","range","useAdaptivityHasPointer","CustomSelect","Input","DefaultMonths","convertToInputFormat","day","month","year","parseInputDate","date","splited","split","Number","getMonthMaxDay","Date","getDate","DatePickerCustom","name","min","max","dayPlaceholder","monthPlaceholder","yearPlaceholder","popupDirection","defaultValue","monthNames","onDateChange","disabled","className","restProps","onSelectChange","e","target","value","dayOptions","map","label","String","monthOptions","index","yearOptions","div","options","placeholder","onChange","input","type","DatePickerNative","defProps","onStringChange","useCallback","currentTarget","DatePicker","props","hasPointer","useState","setValue","update","Cmp"],"mappings":";;;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,WAAW,QAAQ,kBAAkB;AAC1D,SAASC,KAAK,QAAQ,sBAAsB;AAC5C,SAASC,uBAAuB,QAAQ,sCAAsC;AAC9E,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,KAAK,QAAQ,iBAAiB;AAGvC,IAAMC,gBAA0B;IAC9B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAuBD,qCAAqC;AACrC,SAASC,qBAAqB,KAA+D;qBAA/D,MAAEC,KAAAA,8BAAM,+BAAR,MAAWC,OAAAA,kCAAQ,gCAAnB,MAAsBC,MAAAA,gCAAO;IACzD,OAAO,AAAC,GAAUT,OAARS,MAAK,KAAyBT,OAAtBA,YAAYQ,QAAO,KAAoB,OAAjBR,YAAYO;AACtD;AAEA,4CAA4C;AAC5C,SAASG,eAAeC,IAAY;IAClC,IAAMC,UAAUD,KAAKE,MAAM;IAE3B,OAAO;QACLN,KAAKO,OAAOF,OAAO,CAAC,EAAE;QACtBJ,OAAOM,OAAOF,OAAO,CAAC,EAAE;QACxBH,MAAMK,OAAOF,OAAO,CAAC,EAAE;IACzB;AACF;AAEA,SAASG,eAAeP,KAAc,EAAEC,IAAa;IACnD,OAAOD,QAAQ,IAAIQ,KAAKP,QAAQ,MAAMD,OAAO,GAAGS,YAAY;AAC9D;AAEA,IAAMC,mBAAmB;QACvBC,cAAAA,0BACAC,KAAAA,8BAAM;QAAEb,KAAK;QAAGC,OAAO;QAAGC,MAAM;IAAE,oCAClCY,KAAAA,8BAAM;QAAEd,KAAK;QAAIC,OAAO;QAAIC,MAAM;IAAK,gBACvCa,wBAAAA,gBACAC,0BAAAA,kBACAC,yBAAAA,iBACAC,wBAAAA,gBACAC,sBAAAA,cACAC,oBAAAA,gCACApB,KAAAA,8BAAM,sCACNC,OAAAA,kCAAQ,uCACRC,MAAAA,gCAAO,iBACPmB,sBAAAA,cACAC,kBAAAA,UACAC,mBAAAA,WACGC;QAfHZ;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACApB;QACAC;QACAC;QACAmB;QACAC;QACAC;;IAGA,IAAME,iBAA8D,SAACC;QACnEL,yBAAAA,0BAAAA,KAAAA,IAAAA,aAIE;YAHArB,KAAAA;YACAC,OAAAA;YACAC,MAAAA;WACCwB,EAAEC,OAAOf,MAAOL,OAAOmB,EAAEC,OAAOC;IAErC;IACA,IAAMC,aAAanC,MAAM,GAAGc,eAAeP,OAAOC,OAAO4B,IAAI,SAACF;eAAW;YACvEG,OAAOC,OAAOJ;YACdA,OAAAA;QACF;;IACA,IAAMK,eAAe,AAACb,CAAAA,cAActB,aAAY,EAAGgC,IAAI,SAAClB,MAAMsB;eAAW;YACvEH,OAAOnB;YACPgB,OAAOM,QAAQ;QACjB;;IACA,IAAMC,cAAczC,MAAMoB,IAAIZ,MAAMW,IAAIX,MAAM4B,IAAI,SAACF;eAAW;YAC5DG,OAAOC,OAAOJ;YACdA,OAAOA;QACT;;IACA,qBACE,oBAACQ;QAAIb,WAAW/B,6BAAiC+B;OAAgBC,0BAC/D,oBAACY;QAAIb,SAAS;qBACZ,oBAACa;QAAIb,SAAS;qBACZ,oBAAC3B;QACCgB,MAAK;QACLgB,OAAO5B;QACPqC,SAASR;QACTS,aAAavB;QACbG,gBAAgBA;QAChBqB,UAAUd;QACVH,UAAUA;uBAGd,oBAACc;QAAIb,SAAS;qBACZ,oBAAC3B;QACC2B,SAAS;QACTX,MAAK;QACLgB,OAAO3B;QACPoC,SAASJ;QACTK,aAAatB;QACbE,gBAAgBA;QAChBqB,UAAUd;QACVH,UAAUA;uBAGd,oBAACc;QAAIb,SAAS;qBACZ,oBAAC3B;QACCgB,MAAK;QACLgB,OAAO1B;QACPmC,SAASF;QACTG,aAAarB;QACbC,gBAAgBA;QAChBqB,UAAUd;QACVH,UAAUA;wBAIhB,oBAACkB;QAAMC,MAAK;QAAS7B,MAAMA;QAAMgB,OAAO7B,qBAAqB;YAAEC,KAAAA;YAAKC,OAAAA;YAAOC,MAAAA;QAAK;;AAGtF;AAEA,IAAMwC,mBAAmB;4BACvB7B,KAAAA,8BAAM;QAAEb,KAAK;QAAGC,OAAO;QAAGC,MAAM;IAAE,oCAClCY,KAAAA,8BAAM;QAAEd,KAAK;QAAIC,OAAO;QAAIC,MAAM;IAAK,gBACvCa,wBAAAA,gBACAC,0BAAAA,kBACAC,yBAAAA,iBACAC,wBAAAA,gBACAC,sBAAAA,cACAnB,aAAAA,KACAC,eAAAA,OACAC,cAAAA,MACAmB,sBAAAA,cACGG;QAXHX;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAnB;QACAC;QACAC;QACAmB;;IAGA,IAAMsB,WACJ3C,OAAOC,SAASC,OAAO;QAAEiB,cAAcpB,qBAAqB;YAAEC,KAAAA;YAAKC,OAAAA;YAAOC,MAAAA;QAAK;IAAG,IAAI,CAAC;IACzF,IAAM0C,iBAA6DrD,MAAMsD,YACvE,SAACnB;QACCL,yBAAAA,0BAAAA,KAAAA,IAAAA,aAAelB,eAAeuB,EAAEoB,cAAclB;IAChD,GACA;QAACP;KAAa;IAEhB,qBACE,oBAACxB,8DACK2B;QACJiB,MAAK;QACLF,UAAUK;QACV/B,KAAKd,qBAAqBc;QAC1BC,KAAKf,qBAAqBe;QACtB6B;AAGV;AAEA;;CAEC,GACD,OAAO,IAAMI,aAAa;QAAG5B,sBAAAA,cAAiB6B;QAAjB7B;;IAC3B,IAAM8B,aAAatD;IACnB,IAA0BJ,mCAAAA,MAAM2D,SAAwC;QAAO,OAAA;YAC7ElD,KAAKmB,CAAAA,yBAAAA,0BAAAA,KAAAA,IAAAA,aAAcnB,GAAE,KAAK;YAC1BC,OAAOkB,CAAAA,yBAAAA,0BAAAA,KAAAA,IAAAA,aAAclB,KAAI,KAAK;YAC9BC,MAAMiB,CAAAA,yBAAAA,0BAAAA,KAAAA,IAAAA,aAAcjB,IAAG,KAAK;QAC9B;YAJO0B,QAAmBrC,oBAAZ4D,WAAY5D;IAM1B,IAAM8B,eAAe9B,MAAMsD,YACzB,SAACO;QACCD,SAASC;QACTJ,MAAM3B,gBAAgB2B,MAAM3B,aAAa,mBAAK+B;IAChD,GACA;QAACJ;KAAM;IAGT,IAAMK,MAAMJ,aAAatC,mBAAmB+B;IAC5C,qBAAO,oBAACW,6CAAQL,OAAWpB;QAAOP,cAAcA;;AAClD,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, leadingZero } from '@vkontakte/vkjs';\nimport { range } from '../../helpers/range';\nimport { useAdaptivityHasPointer } from '../../hooks/useAdaptivityHasPointer';\nimport { CustomSelect } from '../CustomSelect/CustomSelect';\nimport { Input } from '../Input/Input';\nimport styles from './DatePicker.module.css';\n\nconst DefaultMonths: string[] = [\n 'Января',\n 'Февраля',\n 'Марта',\n 'Апреля',\n 'Мая',\n 'Июня',\n 'Июля',\n 'Августа',\n 'Сентября',\n 'Октября',\n 'Ноября',\n 'Декабря',\n];\n\nexport type DatePickerDateFormat = {\n day: number;\n month: number;\n year: number;\n};\n\nexport interface DatePickerProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'min' | 'max'> {\n min?: DatePickerDateFormat;\n max?: DatePickerDateFormat;\n name?: string;\n defaultValue?: DatePickerDateFormat;\n popupDirection?: 'top' | 'bottom';\n monthNames?: string[];\n dayPlaceholder?: string;\n monthPlaceholder?: string;\n yearPlaceholder?: string;\n onDateChange?: (value: DatePickerDateFormat) => void;\n disabled?: boolean;\n}\n\n// Переводим state к формату гг-мм-дд\nfunction convertToInputFormat({ day = 0, month = 0, year = 0 }: Partial<DatePickerDateFormat>) {\n return `${year}-${leadingZero(month)}-${leadingZero(day)}`;\n}\n\n// Переводим дату формата гг-мм-дд к объекту\nfunction parseInputDate(date: string): DatePickerDateFormat {\n const splited = date.split('-');\n\n return {\n day: Number(splited[2]),\n month: Number(splited[1]),\n year: Number(splited[0]),\n };\n}\n\nfunction getMonthMaxDay(month?: number, year?: number) {\n return month ? new Date(year || 2016, month, 0).getDate() : 31;\n}\n\nconst DatePickerCustom = ({\n name,\n min = { day: 0, month: 0, year: 0 },\n max = { day: 31, month: 12, year: 2100 },\n dayPlaceholder,\n monthPlaceholder,\n yearPlaceholder,\n popupDirection,\n defaultValue,\n monthNames,\n day = 0,\n month = 0,\n year = 0,\n onDateChange,\n disabled,\n className,\n ...restProps\n}: DatePickerProps & Partial<DatePickerDateFormat>) => {\n const onSelectChange: React.ChangeEventHandler<HTMLSelectElement> = (e) => {\n onDateChange?.({\n day,\n month,\n year,\n [e.target.name]: Number(e.target.value),\n });\n };\n const dayOptions = range(1, getMonthMaxDay(month, year)).map((value) => ({\n label: String(value),\n value,\n }));\n const monthOptions = (monthNames || DefaultMonths).map((name, index) => ({\n label: name,\n value: index + 1,\n }));\n const yearOptions = range(max.year, min.year).map((value) => ({\n label: String(value),\n value: value,\n }));\n return (\n <div className={classNames(styles['DatePicker'], className)} {...restProps}>\n <div className={styles['DatePicker__container']}>\n <div className={styles['DatePicker__day']}>\n <CustomSelect\n name=\"day\"\n value={day}\n options={dayOptions}\n placeholder={dayPlaceholder}\n popupDirection={popupDirection}\n onChange={onSelectChange}\n disabled={disabled}\n />\n </div>\n <div className={styles['DatePicker__month']}>\n <CustomSelect\n className={styles['DatePicker__monthSelect']}\n name=\"month\"\n value={month}\n options={monthOptions}\n placeholder={monthPlaceholder}\n popupDirection={popupDirection}\n onChange={onSelectChange}\n disabled={disabled}\n />\n </div>\n <div className={styles['DatePicker__year']}>\n <CustomSelect\n name=\"year\"\n value={year}\n options={yearOptions}\n placeholder={yearPlaceholder}\n popupDirection={popupDirection}\n onChange={onSelectChange}\n disabled={disabled}\n />\n </div>\n </div>\n <input type=\"hidden\" name={name} value={convertToInputFormat({ day, month, year })} />\n </div>\n );\n};\n\nconst DatePickerNative = ({\n min = { day: 0, month: 0, year: 0 },\n max = { day: 31, month: 12, year: 2100 },\n dayPlaceholder,\n monthPlaceholder,\n yearPlaceholder,\n popupDirection,\n defaultValue,\n day,\n month,\n year,\n onDateChange,\n ...restProps\n}: DatePickerProps & Partial<DatePickerDateFormat>) => {\n const defProps =\n day && month && year ? { defaultValue: convertToInputFormat({ day, month, year }) } : {};\n const onStringChange: React.ChangeEventHandler<HTMLInputElement> = React.useCallback(\n (e) => {\n onDateChange?.(parseInputDate(e.currentTarget.value));\n },\n [onDateChange],\n );\n return (\n <Input\n {...restProps}\n type=\"date\"\n onChange={onStringChange}\n min={convertToInputFormat(min)}\n max={convertToInputFormat(max)}\n {...defProps}\n />\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/DatePicker\n */\nexport const DatePicker = ({ defaultValue, ...props }: DatePickerProps) => {\n const hasPointer = useAdaptivityHasPointer();\n const [value, setValue] = React.useState<Partial<DatePickerDateFormat>>(() => ({\n day: defaultValue?.day || 0,\n month: defaultValue?.month || 0,\n year: defaultValue?.year || 0,\n }));\n\n const onDateChange = React.useCallback(\n (update: DatePickerDateFormat) => {\n setValue(update);\n props.onDateChange && props.onDateChange({ ...update });\n },\n [props],\n );\n\n const Cmp = hasPointer ? DatePickerCustom : DatePickerNative;\n return <Cmp {...props} {...value} onDateChange={onDateChange} />;\n};\n"],"names":["React","classNames","leadingZero","range","useAdaptivityHasPointer","CustomSelect","Input","DefaultMonths","convertToInputFormat","day","month","year","parseInputDate","date","splited","split","Number","getMonthMaxDay","Date","getDate","DatePickerCustom","name","min","max","dayPlaceholder","monthPlaceholder","yearPlaceholder","popupDirection","defaultValue","monthNames","onDateChange","disabled","className","restProps","onSelectChange","e","target","value","dayOptions","map","label","String","monthOptions","index","yearOptions","div","options","placeholder","onChange","input","type","DatePickerNative","defProps","onStringChange","useCallback","currentTarget","DatePicker","props","hasPointer","useState","setValue","update","Cmp"],"mappings":"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"}
|
|
@@ -46,6 +46,7 @@ var elementsConfig = function(index) {
|
|
|
46
46
|
};
|
|
47
47
|
};
|
|
48
48
|
var getInternalValue = function(value) {
|
|
49
|
+
var _value, _value1;
|
|
49
50
|
var newValue = [
|
|
50
51
|
"",
|
|
51
52
|
"",
|
|
@@ -54,12 +55,12 @@ var getInternalValue = function(value) {
|
|
|
54
55
|
"",
|
|
55
56
|
""
|
|
56
57
|
];
|
|
57
|
-
if (value === null ||
|
|
58
|
+
if ((_value = value) === null || _value === void 0 ? void 0 : _value[0]) {
|
|
58
59
|
newValue[0] = String(value[0].getDate()).padStart(2, "0");
|
|
59
60
|
newValue[1] = String(value[0].getMonth() + 1).padStart(2, "0");
|
|
60
61
|
newValue[2] = String(value[0].getFullYear()).padStart(4, "0");
|
|
61
62
|
}
|
|
62
|
-
if (value === null ||
|
|
63
|
+
if ((_value1 = value) === null || _value1 === void 0 ? void 0 : _value1[1]) {
|
|
63
64
|
newValue[3] = String(value[1].getDate()).padStart(2, "0");
|
|
64
65
|
newValue[4] = String(value[1].getMonth() + 1).padStart(2, "0");
|
|
65
66
|
newValue[5] = String(value[1].getFullYear()).padStart(4, "0");
|
|
@@ -110,6 +111,7 @@ var getInternalValue = function(value) {
|
|
|
110
111
|
var monthsEndRef = React.useRef(null);
|
|
111
112
|
var yearsEndRef = React.useRef(null);
|
|
112
113
|
var onInternalValueChange = React.useCallback(function(internalValue) {
|
|
114
|
+
var _value, _value1;
|
|
113
115
|
var isStartValid = true;
|
|
114
116
|
var isEndValid = true;
|
|
115
117
|
for(var i = 0; i <= 2; i += 1){
|
|
@@ -136,10 +138,11 @@ var getInternalValue = function(value) {
|
|
|
136
138
|
}
|
|
137
139
|
var valueExists = Array.isArray(value);
|
|
138
140
|
var now = new Date();
|
|
139
|
-
var start = isStartValid ? parse(formattedStartValue, mask, valueExists && (value === null ||
|
|
140
|
-
var end = isEndValid ? parse(formattedEndValue, mask, valueExists && (value === null ||
|
|
141
|
+
var start = isStartValid ? parse(formattedStartValue, mask, valueExists && ((_value = value) === null || _value === void 0 ? void 0 : _value[0]) || now) : null;
|
|
142
|
+
var end = isEndValid ? parse(formattedEndValue, mask, valueExists && ((_value1 = value) === null || _value1 === void 0 ? void 0 : _value1[1]) || now) : null;
|
|
141
143
|
if (start && end && isAfter(end, start)) {
|
|
142
|
-
|
|
144
|
+
var _onChange;
|
|
145
|
+
(_onChange = onChange) === null || _onChange === void 0 ? void 0 : _onChange([
|
|
143
146
|
start,
|
|
144
147
|
end
|
|
145
148
|
]);
|
|
@@ -179,8 +182,9 @@ var getInternalValue = function(value) {
|
|
|
179
182
|
var _useAdaptivity = useAdaptivity(), _useAdaptivity_sizeY = _useAdaptivity.sizeY, sizeY = _useAdaptivity_sizeY === void 0 ? "none" : _useAdaptivity_sizeY;
|
|
180
183
|
var handleRootRef = useExternRef(rootRef, getRootRef);
|
|
181
184
|
var onCalendarChange = React.useCallback(function(newValue) {
|
|
182
|
-
|
|
183
|
-
|
|
185
|
+
var _onChange, _newValue, _value;
|
|
186
|
+
(_onChange = onChange) === null || _onChange === void 0 ? void 0 : _onChange(newValue);
|
|
187
|
+
if (closeOnChange && ((_newValue = newValue) === null || _newValue === void 0 ? void 0 : _newValue[1]) && newValue[1] !== ((_value = value) === null || _value === void 0 ? void 0 : _value[1])) {
|
|
184
188
|
removeFocusFromField();
|
|
185
189
|
}
|
|
186
190
|
}, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/DateRangeInput/DateRangeInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon16Clear, Icon20CalendarOutline } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useDateInput } from '../../hooks/useDateInput';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { SizeType } from '../../lib/adaptivity';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { format, isAfter, isMatch, parse } from '../../lib/date';\nimport type { PlacementWithAuto } from '../../lib/floating';\nimport { HasRootRef } from '../../types';\nimport { CalendarRange, CalendarRangeProps } from '../CalendarRange/CalendarRange';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport { IconButton } from '../IconButton/IconButton';\nimport { InputLike } from '../InputLike/InputLike';\nimport { InputLikeDivider } from '../InputLike/InputLikeDivider';\nimport { Popper } from '../Popper/Popper';\nimport styles from './DateRangeInput.module.css';\nimport dateInputStyles from '../DateInput/DateInput.module.css';\n\nconst sizeYClassNames = {\n none: styles['DateRangeInput--sizeY-none'],\n [SizeType.COMPACT]: styles['DateRangeInput--sizeY-compact'],\n};\n\nexport interface DateRangeInputProps\n extends Omit<React.InputHTMLAttributes<HTMLDivElement>, 'value' | 'onChange'>,\n Pick<\n CalendarRangeProps,\n | 'disablePast'\n | 'disableFuture'\n | 'shouldDisableDate'\n | 'onChange'\n | 'value'\n | 'weekStartsOn'\n | 'disablePickers'\n | 'prevMonthAriaLabel'\n | 'nextMonthAriaLabel'\n | 'changeMonthAriaLabel'\n | 'changeYearAriaLabel'\n | 'changeDayAriaLabel'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n >,\n HasRootRef<HTMLDivElement>,\n FormFieldProps {\n calendarPlacement?: PlacementWithAuto;\n closeOnChange?: boolean;\n clearFieldAriaLabel?: string;\n showCalendarAriaLabel?: string;\n changeStartDayAriaLabel?: string;\n changeStartMonthAriaLabel?: string;\n changeStartYearAriaLabel?: string;\n changeEndDayAriaLabel?: string;\n changeEndMonthAriaLabel?: string;\n changeEndYearAriaLabel?: string;\n disableCalendar?: boolean;\n}\n\nconst elementsConfig = (index: number) => {\n let length = 2;\n let min = 1;\n let max = 0;\n\n switch (index) {\n case 0:\n case 3:\n max = 31;\n break;\n case 1:\n case 4:\n max = 12;\n break;\n case 2:\n case 5:\n max = 2100;\n min = 1900;\n length = 4;\n break;\n }\n\n return { length, min, max };\n};\n\nconst getInternalValue = (value: CalendarRangeProps['value']) => {\n const newValue = ['', '', '', '', '', ''];\n if (value?.[0]) {\n newValue[0] = String(value[0].getDate()).padStart(2, '0');\n newValue[1] = String(value[0].getMonth() + 1).padStart(2, '0');\n newValue[2] = String(value[0].getFullYear()).padStart(4, '0');\n }\n if (value?.[1]) {\n newValue[3] = String(value[1].getDate()).padStart(2, '0');\n newValue[4] = String(value[1].getMonth() + 1).padStart(2, '0');\n newValue[5] = String(value[1].getFullYear()).padStart(4, '0');\n }\n return newValue;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/DateRangeInput\n */\nexport const DateRangeInput = ({\n shouldDisableDate,\n disableFuture,\n disablePast,\n value,\n onChange,\n calendarPlacement = 'bottom-start',\n style,\n className,\n closeOnChange = true,\n disablePickers,\n getRootRef,\n name,\n autoFocus,\n disabled,\n onClick,\n onFocus,\n prevMonthAriaLabel,\n nextMonthAriaLabel,\n changeDayAriaLabel,\n changeMonthAriaLabel,\n changeYearAriaLabel,\n changeStartDayAriaLabel = 'Изменить день начала',\n changeStartMonthAriaLabel = 'Изменить месяц начала',\n changeStartYearAriaLabel = 'Изменить год начала',\n changeEndDayAriaLabel = 'Изменить день окончания',\n changeEndMonthAriaLabel = 'Изменить месяц окончания',\n changeEndYearAriaLabel = 'Изменить год окончания',\n clearFieldAriaLabel = 'Очистить поле',\n showCalendarAriaLabel = 'Показать календарь',\n prevMonthIcon,\n nextMonthIcon,\n disableCalendar = false,\n ...props\n}: DateRangeInputProps) => {\n const daysStartRef = React.useRef<HTMLSpanElement>(null);\n const monthsStartRef = React.useRef<HTMLSpanElement>(null);\n const yearsStartRef = React.useRef<HTMLSpanElement>(null);\n const daysEndRef = React.useRef<HTMLSpanElement>(null);\n const monthsEndRef = React.useRef<HTMLSpanElement>(null);\n const yearsEndRef = React.useRef<HTMLSpanElement>(null);\n\n const onInternalValueChange = React.useCallback(\n (internalValue: string[]) => {\n let isStartValid = true;\n let isEndValid = true;\n for (let i = 0; i <= 2; i += 1) {\n if (internalValue[i].length < elementsConfig(i).length) {\n isStartValid = false;\n }\n }\n for (let i = 3; i <= 5; i += 1) {\n if (internalValue[i].length < elementsConfig(i).length) {\n isEndValid = false;\n }\n }\n const formattedStartValue = `${internalValue[0]}.${internalValue[1]}.${internalValue[2]}`;\n const formattedEndValue = `${internalValue[3]}.${internalValue[4]}.${internalValue[5]}`;\n const mask = 'DD.MM.YYYY';\n\n if (!isMatch(formattedStartValue, mask)) {\n isStartValid = false;\n }\n if (!isMatch(formattedEndValue, mask)) {\n isEndValid = false;\n }\n\n if (!isStartValid && !isEndValid) {\n return;\n }\n\n const valueExists = Array.isArray(value);\n const now = new Date();\n const start = isStartValid\n ? parse(formattedStartValue, mask, (valueExists && value?.[0]) || now)\n : null;\n const end = isEndValid\n ? parse(formattedEndValue, mask, (valueExists && value?.[1]) || now)\n : null;\n if (start && end && isAfter(end, start)) {\n onChange?.([start, end]);\n }\n },\n [onChange, value],\n );\n\n const refs = React.useMemo(\n () => [daysStartRef, monthsStartRef, yearsStartRef, daysEndRef, monthsEndRef, yearsEndRef],\n [daysStartRef, monthsStartRef, yearsStartRef, daysEndRef, monthsEndRef, yearsEndRef],\n );\n\n const {\n rootRef,\n calendarRef,\n open,\n openCalendar,\n closeCalendar,\n internalValue,\n handleKeyDown,\n setFocusedElement,\n handleFieldEnter,\n clear,\n removeFocusFromField,\n } = useDateInput({\n maxElement: 5,\n refs,\n autoFocus,\n disabled,\n elementsConfig,\n onChange,\n onInternalValueChange,\n getInternalValue,\n value,\n });\n\n const { sizeY = 'none' } = useAdaptivity();\n\n const handleRootRef = useExternRef(rootRef, getRootRef);\n\n const onCalendarChange = React.useCallback(\n (newValue?: Array<Date | null> | undefined) => {\n onChange?.(newValue);\n if (closeOnChange && newValue?.[1] && newValue[1] !== value?.[1]) {\n removeFocusFromField();\n }\n },\n [onChange, closeOnChange, value, removeFocusFromField],\n );\n\n return (\n <FormField\n style={style}\n className={classNames(sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY], className)}\n getRootRef={handleRootRef}\n after={\n value ? (\n <IconButton hoverMode=\"opacity\" aria-label={clearFieldAriaLabel} onClick={clear}>\n <Icon16Clear />\n </IconButton>\n ) : (\n <IconButton hoverMode=\"opacity\" aria-label={showCalendarAriaLabel} onClick={openCalendar}>\n <Icon20CalendarOutline />\n </IconButton>\n )\n }\n disabled={disabled}\n onClick={callMultiple(handleFieldEnter, onClick)}\n onFocus={callMultiple(handleFieldEnter, onFocus)}\n {...props}\n >\n <input\n type=\"hidden\"\n name={name}\n value={\n value\n ? `${value[0] ? format(value[0], 'DD.MM.YYYY') : ''} - ${\n value[1] ? format(value[1], 'DD.MM.YYYY') : ''\n }`\n : ''\n }\n />\n <span className={dateInputStyles['DateInput__input']} onKeyDown={handleKeyDown}>\n <InputLike\n length={2}\n getRootRef={daysStartRef}\n index={0}\n onElementSelect={setFocusedElement}\n value={internalValue[0]}\n aria-label={changeStartDayAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={monthsStartRef}\n index={1}\n onElementSelect={setFocusedElement}\n value={internalValue[1]}\n aria-label={changeStartMonthAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={4}\n getRootRef={yearsStartRef}\n index={2}\n onElementSelect={setFocusedElement}\n value={internalValue[2]}\n aria-label={changeStartYearAriaLabel}\n />\n <InputLikeDivider>{' — '}</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={daysEndRef}\n index={3}\n onElementSelect={setFocusedElement}\n value={internalValue[3]}\n aria-label={changeEndDayAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={monthsEndRef}\n index={4}\n onElementSelect={setFocusedElement}\n value={internalValue[4]}\n aria-label={changeEndMonthAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={4}\n getRootRef={yearsEndRef}\n index={5}\n onElementSelect={setFocusedElement}\n value={internalValue[5]}\n aria-label={changeEndYearAriaLabel}\n />\n </span>\n {open && !disableCalendar && (\n <Popper targetRef={rootRef} offsetDistance={8} placement={calendarPlacement}>\n <CalendarRange\n value={value}\n onChange={onCalendarChange}\n disablePast={disablePast}\n disableFuture={disableFuture}\n shouldDisableDate={shouldDisableDate}\n onClose={closeCalendar}\n getRootRef={calendarRef}\n disablePickers={disablePickers}\n prevMonthAriaLabel={prevMonthAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n changeMonthAriaLabel={changeMonthAriaLabel}\n changeYearAriaLabel={changeYearAriaLabel}\n changeDayAriaLabel={changeDayAriaLabel}\n prevMonthIcon={prevMonthIcon}\n nextMonthIcon={nextMonthIcon}\n />\n </Popper>\n )}\n </FormField>\n );\n};\n"],"names":["React","Icon16Clear","Icon20CalendarOutline","classNames","useAdaptivity","useDateInput","useExternRef","SizeType","callMultiple","format","isAfter","isMatch","parse","CalendarRange","FormField","IconButton","InputLike","InputLikeDivider","Popper","sizeYClassNames","none","COMPACT","elementsConfig","index","length","min","max","getInternalValue","value","newValue","String","getDate","padStart","getMonth","getFullYear","DateRangeInput","shouldDisableDate","disableFuture","disablePast","onChange","calendarPlacement","style","className","closeOnChange","disablePickers","getRootRef","name","autoFocus","disabled","onClick","onFocus","prevMonthAriaLabel","nextMonthAriaLabel","changeDayAriaLabel","changeMonthAriaLabel","changeYearAriaLabel","changeStartDayAriaLabel","changeStartMonthAriaLabel","changeStartYearAriaLabel","changeEndDayAriaLabel","changeEndMonthAriaLabel","changeEndYearAriaLabel","clearFieldAriaLabel","showCalendarAriaLabel","prevMonthIcon","nextMonthIcon","disableCalendar","props","daysStartRef","useRef","monthsStartRef","yearsStartRef","daysEndRef","monthsEndRef","yearsEndRef","onInternalValueChange","useCallback","internalValue","isStartValid","isEndValid","i","formattedStartValue","formattedEndValue","mask","valueExists","Array","isArray","now","Date","start","end","refs","useMemo","maxElement","rootRef","calendarRef","open","openCalendar","closeCalendar","handleKeyDown","setFocusedElement","handleFieldEnter","clear","removeFocusFromField","sizeY","handleRootRef","onCalendarChange","REGULAR","after","hoverMode","aria-label","input","type","span","onKeyDown","onElementSelect","targetRef","offsetDistance","placement","onClose"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/DateRangeInput/DateRangeInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon16Clear, Icon20CalendarOutline } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useDateInput } from '../../hooks/useDateInput';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { SizeType } from '../../lib/adaptivity';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { format, isAfter, isMatch, parse } from '../../lib/date';\nimport type { PlacementWithAuto } from '../../lib/floating';\nimport { HasRootRef } from '../../types';\nimport { CalendarRange, CalendarRangeProps } from '../CalendarRange/CalendarRange';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport { IconButton } from '../IconButton/IconButton';\nimport { InputLike } from '../InputLike/InputLike';\nimport { InputLikeDivider } from '../InputLike/InputLikeDivider';\nimport { Popper } from '../Popper/Popper';\nimport styles from './DateRangeInput.module.css';\nimport dateInputStyles from '../DateInput/DateInput.module.css';\n\nconst sizeYClassNames = {\n none: styles['DateRangeInput--sizeY-none'],\n [SizeType.COMPACT]: styles['DateRangeInput--sizeY-compact'],\n};\n\nexport interface DateRangeInputProps\n extends Omit<React.InputHTMLAttributes<HTMLDivElement>, 'value' | 'onChange'>,\n Pick<\n CalendarRangeProps,\n | 'disablePast'\n | 'disableFuture'\n | 'shouldDisableDate'\n | 'onChange'\n | 'value'\n | 'weekStartsOn'\n | 'disablePickers'\n | 'prevMonthAriaLabel'\n | 'nextMonthAriaLabel'\n | 'changeMonthAriaLabel'\n | 'changeYearAriaLabel'\n | 'changeDayAriaLabel'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n >,\n HasRootRef<HTMLDivElement>,\n FormFieldProps {\n calendarPlacement?: PlacementWithAuto;\n closeOnChange?: boolean;\n clearFieldAriaLabel?: string;\n showCalendarAriaLabel?: string;\n changeStartDayAriaLabel?: string;\n changeStartMonthAriaLabel?: string;\n changeStartYearAriaLabel?: string;\n changeEndDayAriaLabel?: string;\n changeEndMonthAriaLabel?: string;\n changeEndYearAriaLabel?: string;\n disableCalendar?: boolean;\n}\n\nconst elementsConfig = (index: number) => {\n let length = 2;\n let min = 1;\n let max = 0;\n\n switch (index) {\n case 0:\n case 3:\n max = 31;\n break;\n case 1:\n case 4:\n max = 12;\n break;\n case 2:\n case 5:\n max = 2100;\n min = 1900;\n length = 4;\n break;\n }\n\n return { length, min, max };\n};\n\nconst getInternalValue = (value: CalendarRangeProps['value']) => {\n const newValue = ['', '', '', '', '', ''];\n if (value?.[0]) {\n newValue[0] = String(value[0].getDate()).padStart(2, '0');\n newValue[1] = String(value[0].getMonth() + 1).padStart(2, '0');\n newValue[2] = String(value[0].getFullYear()).padStart(4, '0');\n }\n if (value?.[1]) {\n newValue[3] = String(value[1].getDate()).padStart(2, '0');\n newValue[4] = String(value[1].getMonth() + 1).padStart(2, '0');\n newValue[5] = String(value[1].getFullYear()).padStart(4, '0');\n }\n return newValue;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/DateRangeInput\n */\nexport const DateRangeInput = ({\n shouldDisableDate,\n disableFuture,\n disablePast,\n value,\n onChange,\n calendarPlacement = 'bottom-start',\n style,\n className,\n closeOnChange = true,\n disablePickers,\n getRootRef,\n name,\n autoFocus,\n disabled,\n onClick,\n onFocus,\n prevMonthAriaLabel,\n nextMonthAriaLabel,\n changeDayAriaLabel,\n changeMonthAriaLabel,\n changeYearAriaLabel,\n changeStartDayAriaLabel = 'Изменить день начала',\n changeStartMonthAriaLabel = 'Изменить месяц начала',\n changeStartYearAriaLabel = 'Изменить год начала',\n changeEndDayAriaLabel = 'Изменить день окончания',\n changeEndMonthAriaLabel = 'Изменить месяц окончания',\n changeEndYearAriaLabel = 'Изменить год окончания',\n clearFieldAriaLabel = 'Очистить поле',\n showCalendarAriaLabel = 'Показать календарь',\n prevMonthIcon,\n nextMonthIcon,\n disableCalendar = false,\n ...props\n}: DateRangeInputProps) => {\n const daysStartRef = React.useRef<HTMLSpanElement>(null);\n const monthsStartRef = React.useRef<HTMLSpanElement>(null);\n const yearsStartRef = React.useRef<HTMLSpanElement>(null);\n const daysEndRef = React.useRef<HTMLSpanElement>(null);\n const monthsEndRef = React.useRef<HTMLSpanElement>(null);\n const yearsEndRef = React.useRef<HTMLSpanElement>(null);\n\n const onInternalValueChange = React.useCallback(\n (internalValue: string[]) => {\n let isStartValid = true;\n let isEndValid = true;\n for (let i = 0; i <= 2; i += 1) {\n if (internalValue[i].length < elementsConfig(i).length) {\n isStartValid = false;\n }\n }\n for (let i = 3; i <= 5; i += 1) {\n if (internalValue[i].length < elementsConfig(i).length) {\n isEndValid = false;\n }\n }\n const formattedStartValue = `${internalValue[0]}.${internalValue[1]}.${internalValue[2]}`;\n const formattedEndValue = `${internalValue[3]}.${internalValue[4]}.${internalValue[5]}`;\n const mask = 'DD.MM.YYYY';\n\n if (!isMatch(formattedStartValue, mask)) {\n isStartValid = false;\n }\n if (!isMatch(formattedEndValue, mask)) {\n isEndValid = false;\n }\n\n if (!isStartValid && !isEndValid) {\n return;\n }\n\n const valueExists = Array.isArray(value);\n const now = new Date();\n const start = isStartValid\n ? parse(formattedStartValue, mask, (valueExists && value?.[0]) || now)\n : null;\n const end = isEndValid\n ? parse(formattedEndValue, mask, (valueExists && value?.[1]) || now)\n : null;\n if (start && end && isAfter(end, start)) {\n onChange?.([start, end]);\n }\n },\n [onChange, value],\n );\n\n const refs = React.useMemo(\n () => [daysStartRef, monthsStartRef, yearsStartRef, daysEndRef, monthsEndRef, yearsEndRef],\n [daysStartRef, monthsStartRef, yearsStartRef, daysEndRef, monthsEndRef, yearsEndRef],\n );\n\n const {\n rootRef,\n calendarRef,\n open,\n openCalendar,\n closeCalendar,\n internalValue,\n handleKeyDown,\n setFocusedElement,\n handleFieldEnter,\n clear,\n removeFocusFromField,\n } = useDateInput({\n maxElement: 5,\n refs,\n autoFocus,\n disabled,\n elementsConfig,\n onChange,\n onInternalValueChange,\n getInternalValue,\n value,\n });\n\n const { sizeY = 'none' } = useAdaptivity();\n\n const handleRootRef = useExternRef(rootRef, getRootRef);\n\n const onCalendarChange = React.useCallback(\n (newValue?: Array<Date | null> | undefined) => {\n onChange?.(newValue);\n if (closeOnChange && newValue?.[1] && newValue[1] !== value?.[1]) {\n removeFocusFromField();\n }\n },\n [onChange, closeOnChange, value, removeFocusFromField],\n );\n\n return (\n <FormField\n style={style}\n className={classNames(sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY], className)}\n getRootRef={handleRootRef}\n after={\n value ? (\n <IconButton hoverMode=\"opacity\" aria-label={clearFieldAriaLabel} onClick={clear}>\n <Icon16Clear />\n </IconButton>\n ) : (\n <IconButton hoverMode=\"opacity\" aria-label={showCalendarAriaLabel} onClick={openCalendar}>\n <Icon20CalendarOutline />\n </IconButton>\n )\n }\n disabled={disabled}\n onClick={callMultiple(handleFieldEnter, onClick)}\n onFocus={callMultiple(handleFieldEnter, onFocus)}\n {...props}\n >\n <input\n type=\"hidden\"\n name={name}\n value={\n value\n ? `${value[0] ? format(value[0], 'DD.MM.YYYY') : ''} - ${\n value[1] ? format(value[1], 'DD.MM.YYYY') : ''\n }`\n : ''\n }\n />\n <span className={dateInputStyles['DateInput__input']} onKeyDown={handleKeyDown}>\n <InputLike\n length={2}\n getRootRef={daysStartRef}\n index={0}\n onElementSelect={setFocusedElement}\n value={internalValue[0]}\n aria-label={changeStartDayAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={monthsStartRef}\n index={1}\n onElementSelect={setFocusedElement}\n value={internalValue[1]}\n aria-label={changeStartMonthAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={4}\n getRootRef={yearsStartRef}\n index={2}\n onElementSelect={setFocusedElement}\n value={internalValue[2]}\n aria-label={changeStartYearAriaLabel}\n />\n <InputLikeDivider>{' — '}</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={daysEndRef}\n index={3}\n onElementSelect={setFocusedElement}\n value={internalValue[3]}\n aria-label={changeEndDayAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={2}\n getRootRef={monthsEndRef}\n index={4}\n onElementSelect={setFocusedElement}\n value={internalValue[4]}\n aria-label={changeEndMonthAriaLabel}\n />\n <InputLikeDivider>.</InputLikeDivider>\n <InputLike\n length={4}\n getRootRef={yearsEndRef}\n index={5}\n onElementSelect={setFocusedElement}\n value={internalValue[5]}\n aria-label={changeEndYearAriaLabel}\n />\n </span>\n {open && !disableCalendar && (\n <Popper targetRef={rootRef} offsetDistance={8} placement={calendarPlacement}>\n <CalendarRange\n value={value}\n onChange={onCalendarChange}\n disablePast={disablePast}\n disableFuture={disableFuture}\n shouldDisableDate={shouldDisableDate}\n onClose={closeCalendar}\n getRootRef={calendarRef}\n disablePickers={disablePickers}\n prevMonthAriaLabel={prevMonthAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n changeMonthAriaLabel={changeMonthAriaLabel}\n changeYearAriaLabel={changeYearAriaLabel}\n changeDayAriaLabel={changeDayAriaLabel}\n prevMonthIcon={prevMonthIcon}\n nextMonthIcon={nextMonthIcon}\n />\n </Popper>\n )}\n </FormField>\n );\n};\n"],"names":["React","Icon16Clear","Icon20CalendarOutline","classNames","useAdaptivity","useDateInput","useExternRef","SizeType","callMultiple","format","isAfter","isMatch","parse","CalendarRange","FormField","IconButton","InputLike","InputLikeDivider","Popper","sizeYClassNames","none","COMPACT","elementsConfig","index","length","min","max","getInternalValue","value","newValue","String","getDate","padStart","getMonth","getFullYear","DateRangeInput","shouldDisableDate","disableFuture","disablePast","onChange","calendarPlacement","style","className","closeOnChange","disablePickers","getRootRef","name","autoFocus","disabled","onClick","onFocus","prevMonthAriaLabel","nextMonthAriaLabel","changeDayAriaLabel","changeMonthAriaLabel","changeYearAriaLabel","changeStartDayAriaLabel","changeStartMonthAriaLabel","changeStartYearAriaLabel","changeEndDayAriaLabel","changeEndMonthAriaLabel","changeEndYearAriaLabel","clearFieldAriaLabel","showCalendarAriaLabel","prevMonthIcon","nextMonthIcon","disableCalendar","props","daysStartRef","useRef","monthsStartRef","yearsStartRef","daysEndRef","monthsEndRef","yearsEndRef","onInternalValueChange","useCallback","internalValue","isStartValid","isEndValid","i","formattedStartValue","formattedEndValue","mask","valueExists","Array","isArray","now","Date","start","end","refs","useMemo","maxElement","rootRef","calendarRef","open","openCalendar","closeCalendar","handleKeyDown","setFocusedElement","handleFieldEnter","clear","removeFocusFromField","sizeY","handleRootRef","onCalendarChange","REGULAR","after","hoverMode","aria-label","input","type","span","onKeyDown","onElementSelect","targetRef","offsetDistance","placement","onClose"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/DropdownIcon/DropdownIcon.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Icon20ChevronUp,\n Icon20Dropdown,\n Icon24ChevronDown,\n Icon24ChevronUp,\n} from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\n\nexport interface DropdownIconProps extends React.HTMLAttributes<SVGSVGElement> {\n opened?: boolean;\n}\n\nexport const DropdownIcon = ({ opened = false, className, ...restProps }: DropdownIconProps) => {\n const { sizeY } = useAdaptivityConditionalRender();\n const IconCompact = opened ? Icon20ChevronUp : Icon20Dropdown;\n const IconRegular = opened ? Icon24ChevronUp : Icon24ChevronDown;\n\n return (\n <React.Fragment>\n {sizeY.compact && (\n <IconCompact className={classNames(sizeY.compact.className, className)} {...restProps} />\n )}\n {sizeY.regular && (\n <IconRegular className={classNames(sizeY.regular.className, className)} {...restProps} />\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","Icon20ChevronUp","Icon20Dropdown","Icon24ChevronDown","Icon24ChevronUp","classNames","useAdaptivityConditionalRender","DropdownIcon","opened","className","restProps","sizeY","IconCompact","IconRegular","Fragment","compact","regular"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SACEC,eAAe,EACfC,cAAc,EACdC,iBAAiB,EACjBC,eAAe,QACV,mBAAmB;AAC1B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,8BAA8B,QAAQ,6CAA6C;AAM5F,OAAO,IAAMC,eAAe;+BAAGC,QAAAA,oCAAS,uBAAOC,mBAAAA,WAAcC;QAA9BF;QAAgBC;;IAC7C,IAAM,AAAEE,QAAUL,iCAAVK;IACR,IAAMC,cAAcJ,SAASP,kBAAkBC;IAC/C,IAAMW,cAAcL,SAASJ,kBAAkBD;IAE/C,qBACE,oBAACH,MAAMc,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/DropdownIcon/DropdownIcon.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Icon20ChevronUp,\n Icon20Dropdown,\n Icon24ChevronDown,\n Icon24ChevronUp,\n} from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\n\nexport interface DropdownIconProps extends React.HTMLAttributes<SVGSVGElement> {\n opened?: boolean;\n}\n\nexport const DropdownIcon = ({ opened = false, className, ...restProps }: DropdownIconProps) => {\n const { sizeY } = useAdaptivityConditionalRender();\n const IconCompact = opened ? Icon20ChevronUp : Icon20Dropdown;\n const IconRegular = opened ? Icon24ChevronUp : Icon24ChevronDown;\n\n return (\n <React.Fragment>\n {sizeY.compact && (\n <IconCompact className={classNames(sizeY.compact.className, className)} {...restProps} />\n )}\n {sizeY.regular && (\n <IconRegular className={classNames(sizeY.regular.className, className)} {...restProps} />\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","Icon20ChevronUp","Icon20Dropdown","Icon24ChevronDown","Icon24ChevronUp","classNames","useAdaptivityConditionalRender","DropdownIcon","opened","className","restProps","sizeY","IconCompact","IconRegular","Fragment","compact","regular"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SACEC,eAAe,EACfC,cAAc,EACdC,iBAAiB,EACjBC,eAAe,QACV,mBAAmB;AAC1B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,8BAA8B,QAAQ,6CAA6C;AAM5F,OAAO,IAAMC,eAAe;+BAAGC,QAAAA,oCAAS,uBAAOC,mBAAAA,WAAcC;QAA9BF;QAAgBC;;IAC7C,IAAM,AAAEE,QAAUL,iCAAVK;IACR,IAAMC,cAAcJ,SAASP,kBAAkBC;IAC/C,IAAMW,cAAcL,SAASJ,kBAAkBD;IAE/C,qBACE,oBAACH,MAAMc,QAAQ,QACZH,MAAMI,OAAO,kBACZ,oBAACH;QAAYH,WAAWJ,WAAWM,MAAMI,OAAO,CAACN,SAAS,EAAEA;OAAgBC,aAE7EC,MAAMK,OAAO,kBACZ,oBAACH;QAAYJ,WAAWJ,WAAWM,MAAMK,OAAO,CAACP,SAAS,EAAEA;OAAgBC;AAIpF,EAAE"}
|
|
@@ -2,6 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
export interface EpicProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
3
|
tabbar?: React.ReactNode;
|
|
4
4
|
activeStory: string;
|
|
5
|
+
children: React.ReactElement | Iterable<React.ReactElement>;
|
|
5
6
|
}
|
|
6
7
|
/**
|
|
7
8
|
* @see https://vkcom.github.io/VKUI/#/Epic
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Epic/Epic.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { getNavId } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ScrollSaver } from './ScrollSaver';\nimport styles from './Epic.module.css';\n\nexport interface EpicProps extends React.HTMLAttributes<HTMLDivElement> {\n tabbar?: React.ReactNode;\n activeStory: string;\n}\n\nconst warn = warnOnce('Epic');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Epic\n */\nexport const Epic = (props: EpicProps) => {\n const scroll = React.useRef<{ [key: string]: number }>({}).current;\n const { activeStory, tabbar, children, className, ...restProps } = props;\n\n const story =\n (React.Children.toArray(children).find(\n (story) => React.isValidElement(story) && getNavId(story.props, warn) === activeStory,\n ) as React.ReactElement | undefined) ?? null;\n\n return (\n <div\n {...restProps}\n className={classNames(styles['Epic'], tabbar && 'vkuiInternalEpic--hasTabbar', className)}\n >\n <ScrollSaver\n key={activeStory}\n initialScroll={scroll[activeStory] || 0}\n saveScroll={(value) => (scroll[activeStory] = value)}\n >\n {story}\n </ScrollSaver>\n {tabbar}\n </div>\n );\n};\n"],"names":["React","classNames","getNavId","warnOnce","ScrollSaver","warn","Epic","props","scroll","useRef","current","activeStory","tabbar","children","className","restProps","story","Children","toArray","find","isValidElement","div","key","initialScroll","saveScroll","value"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,WAAW,QAAQ,gBAAgB;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Epic/Epic.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { getNavId } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ScrollSaver } from './ScrollSaver';\nimport styles from './Epic.module.css';\n\nexport interface EpicProps extends React.HTMLAttributes<HTMLDivElement> {\n tabbar?: React.ReactNode;\n activeStory: string;\n children: React.ReactElement | Iterable<React.ReactElement>;\n}\n\nconst warn = warnOnce('Epic');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Epic\n */\nexport const Epic = (props: EpicProps) => {\n const scroll = React.useRef<{ [key: string]: number }>({}).current;\n const { activeStory, tabbar, children, className, ...restProps } = props;\n\n const story =\n (React.Children.toArray(children).find(\n (story) => React.isValidElement(story) && getNavId(story.props, warn) === activeStory,\n ) as React.ReactElement | undefined) ?? null;\n\n return (\n <div\n {...restProps}\n className={classNames(styles['Epic'], tabbar && 'vkuiInternalEpic--hasTabbar', className)}\n >\n <ScrollSaver\n key={activeStory}\n initialScroll={scroll[activeStory] || 0}\n saveScroll={(value) => (scroll[activeStory] = value)}\n >\n {story}\n </ScrollSaver>\n {tabbar}\n </div>\n );\n};\n"],"names":["React","classNames","getNavId","warnOnce","ScrollSaver","warn","Epic","props","scroll","useRef","current","activeStory","tabbar","children","className","restProps","story","Children","toArray","find","isValidElement","div","key","initialScroll","saveScroll","value"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,WAAW,QAAQ,gBAAgB;AAS5C,IAAMC,OAAOF,SAAS;AAEtB;;CAEC,GACD,OAAO,IAAMG,OAAO,SAACC;IACnB,IAAMC,SAASR,MAAMS,MAAM,CAA4B,CAAC,GAAGC,OAAO;IAClE,IAAQC,cAA2DJ,MAA3DI,aAAaC,SAA8CL,MAA9CK,QAAQC,WAAsCN,MAAtCM,UAAUC,YAA4BP,MAA5BO,WAAcC,uCAAcR;QAA3DI;QAAaC;QAAQC;QAAUC;;QAGpCd;IADH,IAAMgB,QACJ,CAAChB,+BAAAA,MAAMiB,QAAQ,CAACC,OAAO,CAACL,UAAUM,IAAI,CACpC,SAACH;6BAAUhB,MAAMoB,cAAc,CAACJ,UAAUd,SAASc,MAAMT,KAAK,EAAEF,UAAUM;oBAD3EX,0CAAAA,+BAEuC;IAE1C,qBACE,oBAACqB,+CACKN;QACJD,WAAWb,uBAA2BW,UAAU,+BAA+BE;sBAE/E,oBAACV;QACCkB,KAAKX;QACLY,eAAef,MAAM,CAACG,YAAY,IAAI;QACtCa,YAAY,SAACC;mBAAWjB,MAAM,CAACG,YAAY,GAAGc;;OAE7CT,QAEFJ;AAGP,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Epic/ScrollSaver.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { HasChildren } from '../../types';\nimport { ScrollContext } from '../AppRoot/ScrollContext';\n\nexport interface ScrollSaverProps extends HasChildren {\n initialScroll?: number;\n saveScroll: (this: void, scroll: number) => any;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ScrollSaver\n */\nexport const ScrollSaver = ({ children, initialScroll, saveScroll }: ScrollSaverProps) => {\n const { getScroll, scrollTo } = React.useContext(ScrollContext);\n useIsomorphicLayoutEffect(() => {\n if (typeof initialScroll === 'number') {\n scrollTo(0, initialScroll);\n }\n return () => saveScroll(getScroll().y);\n }, []);\n return <React.Fragment>{children}</React.Fragment>;\n};\n"],"names":["React","useIsomorphicLayoutEffect","ScrollContext","ScrollSaver","children","initialScroll","saveScroll","useContext","getScroll","scrollTo","y","Fragment"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,yBAAyB,QAAQ,sCAAsC;AAEhF,SAASC,aAAa,QAAQ,2BAA2B;AAOzD;;CAEC,GACD,OAAO,IAAMC,cAAc;QAAGC,iBAAAA,UAAUC,sBAAAA,eAAeC,mBAAAA;IACrD,IAAgCN,oBAAAA,MAAMO,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Epic/ScrollSaver.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { HasChildren } from '../../types';\nimport { ScrollContext } from '../AppRoot/ScrollContext';\n\nexport interface ScrollSaverProps extends HasChildren {\n initialScroll?: number;\n saveScroll: (this: void, scroll: number) => any;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ScrollSaver\n */\nexport const ScrollSaver = ({ children, initialScroll, saveScroll }: ScrollSaverProps) => {\n const { getScroll, scrollTo } = React.useContext(ScrollContext);\n useIsomorphicLayoutEffect(() => {\n if (typeof initialScroll === 'number') {\n scrollTo(0, initialScroll);\n }\n return () => saveScroll(getScroll().y);\n }, []);\n return <React.Fragment>{children}</React.Fragment>;\n};\n"],"names":["React","useIsomorphicLayoutEffect","ScrollContext","ScrollSaver","children","initialScroll","saveScroll","useContext","getScroll","scrollTo","y","Fragment"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,yBAAyB,QAAQ,sCAAsC;AAEhF,SAASC,aAAa,QAAQ,2BAA2B;AAOzD;;CAEC,GACD,OAAO,IAAMC,cAAc;QAAGC,iBAAAA,UAAUC,sBAAAA,eAAeC,mBAAAA;IACrD,IAAgCN,oBAAAA,MAAMO,UAAU,CAACL,gBAAzCM,YAAwBR,kBAAxBQ,WAAWC,WAAaT,kBAAbS;IACnBR,0BAA0B;QACxB,IAAI,OAAOI,kBAAkB,UAAU;YACrCI,SAAS,GAAGJ;QACd;QACA,OAAO;mBAAMC,WAAWE,YAAYE,CAAC;;IACvC,GAAG,EAAE;IACL,qBAAO,oBAACV,MAAMW,QAAQ,QAAEP;AAC1B,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/File/File.tsx"],"sourcesContent":["import * as React from 'react';\nimport { HasRef, HasRootRef } from '../../types';\nimport { Button, VKUIButtonProps } from '../Button/Button';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\n\nexport interface FileProps\n extends Omit<VKUIButtonProps, 'type'>,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/File\n */\nexport const File = ({\n children = 'Выберите файл',\n align = 'left',\n size,\n mode,\n stretched,\n before,\n after,\n loading,\n className,\n style,\n getRef,\n getRootRef,\n appearance,\n ...restProps\n}: FileProps) => {\n return (\n <Button\n Component=\"label\"\n align={align}\n className={className}\n stretched={stretched}\n mode={mode}\n appearance={appearance}\n size={size}\n before={before}\n after={after}\n loading={loading}\n style={style}\n getRootRef={getRootRef}\n disabled={restProps.disabled}\n >\n <VisuallyHidden {...restProps} Component=\"input\" type=\"file\" getRootRef={getRef} />\n {children}\n </Button>\n );\n};\n"],"names":["React","Button","VisuallyHidden","File","children","align","size","mode","stretched","before","after","loading","className","style","getRef","getRootRef","appearance","restProps","Component","disabled","type"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,MAAM,QAAyB,mBAAmB;AAC3D,SAASC,cAAc,QAAQ,mCAAmC;AAQlE;;CAEC,GACD,OAAO,IAAMC,OAAO;iCAClBC,UAAAA,wCAAW,yDACXC,OAAAA,kCAAQ,uBACRC,cAAAA,MACAC,cAAAA,MACAC,mBAAAA,WACAC,gBAAAA,QACAC,eAAAA,OACAC,iBAAAA,SACAC,mBAAAA,WACAC,eAAAA,OACAC,gBAAAA,QACAC,oBAAAA,YACAC,oBAAAA,YACGC;QAbHb;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,qBACE,oBAACf;QACCiB,WAAU;QACVb,OAAOA;QACPO,WAAWA;QACXJ,WAAWA;QACXD,MAAMA;QACNS,YAAYA;QACZV,MAAMA;QACNG,QAAQA;QACRC,OAAOA;QACPC,SAASA;QACTE,OAAOA;QACPE,YAAYA;QACZI,UAAUF,UAAUE;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/File/File.tsx"],"sourcesContent":["import * as React from 'react';\nimport { HasRef, HasRootRef } from '../../types';\nimport { Button, VKUIButtonProps } from '../Button/Button';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\n\nexport interface FileProps\n extends Omit<VKUIButtonProps, 'type'>,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/File\n */\nexport const File = ({\n children = 'Выберите файл',\n align = 'left',\n size,\n mode,\n stretched,\n before,\n after,\n loading,\n className,\n style,\n getRef,\n getRootRef,\n appearance,\n ...restProps\n}: FileProps) => {\n return (\n <Button\n Component=\"label\"\n align={align}\n className={className}\n stretched={stretched}\n mode={mode}\n appearance={appearance}\n size={size}\n before={before}\n after={after}\n loading={loading}\n style={style}\n getRootRef={getRootRef}\n disabled={restProps.disabled}\n >\n <VisuallyHidden {...restProps} Component=\"input\" type=\"file\" getRootRef={getRef} />\n {children}\n </Button>\n );\n};\n"],"names":["React","Button","VisuallyHidden","File","children","align","size","mode","stretched","before","after","loading","className","style","getRef","getRootRef","appearance","restProps","Component","disabled","type"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,MAAM,QAAyB,mBAAmB;AAC3D,SAASC,cAAc,QAAQ,mCAAmC;AAQlE;;CAEC,GACD,OAAO,IAAMC,OAAO;iCAClBC,UAAAA,wCAAW,yDACXC,OAAAA,kCAAQ,uBACRC,cAAAA,MACAC,cAAAA,MACAC,mBAAAA,WACAC,gBAAAA,QACAC,eAAAA,OACAC,iBAAAA,SACAC,mBAAAA,WACAC,eAAAA,OACAC,gBAAAA,QACAC,oBAAAA,YACAC,oBAAAA,YACGC;QAbHb;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,qBACE,oBAACf;QACCiB,WAAU;QACVb,OAAOA;QACPO,WAAWA;QACXJ,WAAWA;QACXD,MAAMA;QACNS,YAAYA;QACZV,MAAMA;QACNG,QAAQA;QACRC,OAAOA;QACPC,SAASA;QACTE,OAAOA;QACPE,YAAYA;QACZI,UAAUF,UAAUE,QAAQ;qBAE5B,oBAACjB,wDAAmBe;QAAWC,WAAU;QAAQE,MAAK;QAAOL,YAAYD;SACxEV;AAGP,EAAE"}
|
|
@@ -30,11 +30,12 @@ import { TooltipContainer } from "../Tooltip/TooltipContainer";
|
|
|
30
30
|
var window = useDOM().window;
|
|
31
31
|
var colRef = React.useContext(SplitColContext).colRef;
|
|
32
32
|
var doResize = function() {
|
|
33
|
+
var _colRef;
|
|
33
34
|
if (useParentWidth && ref.current) {
|
|
34
35
|
var _ref_current_parentElement;
|
|
35
36
|
var parentWidth = (_ref_current_parentElement = ref.current.parentElement) === null || _ref_current_parentElement === void 0 ? void 0 : _ref_current_parentElement.getBoundingClientRect().width;
|
|
36
37
|
setWidth(parentWidth ? "".concat(parentWidth, "px") : undefined);
|
|
37
|
-
} else if (colRef === null ||
|
|
38
|
+
} else if ((_colRef = colRef) === null || _colRef === void 0 ? void 0 : _colRef.current) {
|
|
38
39
|
var computedStyle = getComputedStyle(colRef.current);
|
|
39
40
|
setWidth("".concat(colRef.current.clientWidth - parseFloat(computedStyle.paddingLeft) - parseFloat(computedStyle.paddingRight), "px"));
|
|
40
41
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/FixedLayout/FixedLayout.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useDOM } from '../../lib/dom';\nimport { Platform } from '../../lib/platform';\nimport { HasRef, HasRootRef } from '../../types';\nimport { SplitColContext } from '../SplitCol/SplitColContext';\nimport { TooltipContainer } from '../Tooltip/TooltipContainer';\nimport styles from './FixedLayout.module.css';\n\nexport interface FixedLayoutProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n vertical?: 'top' | 'bottom';\n /**\n * Это свойство определяет, будет ли фон компонента окрашен в цвет фона контента.\n * Это часто необходимо для фиксированных кнопок в нижней части экрана.\n */\n filled?: boolean;\n /**\n * Всегда соответствовать ширине родителя.\n * Ширина пересчитывается по событию `window` `resize`.\n */\n useParentWidth?: boolean;\n}\n\nexport interface FixedLayoutState {\n position: 'absolute' | null;\n top: number;\n bottom: number;\n width: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FixedLayout\n */\nexport const FixedLayout = ({\n children,\n style,\n vertical,\n getRootRef,\n getRef,\n filled,\n className,\n useParentWidth,\n ...restProps\n}: FixedLayoutProps) => {\n const platform = usePlatform();\n const ref = useExternRef(getRootRef, getRef); // TODO [>=6]: удалить getRef\n const [width, setWidth] = React.useState<string | undefined>(undefined);\n const { window } = useDOM();\n const { colRef } = React.useContext(SplitColContext);\n\n const doResize = () => {\n if (useParentWidth && ref.current) {\n const parentWidth = ref.current.parentElement?.getBoundingClientRect().width;\n setWidth(parentWidth ? `${parentWidth}px` : undefined);\n } else if (colRef?.current) {\n const computedStyle = getComputedStyle(colRef.current);\n\n setWidth(\n `${\n colRef.current.clientWidth -\n parseFloat(computedStyle.paddingLeft) -\n parseFloat(computedStyle.paddingRight)\n }px`,\n );\n } else {\n setWidth(undefined);\n }\n };\n React.useEffect(doResize, [colRef, platform, ref, useParentWidth]);\n useGlobalEventListener(window, 'resize', doResize);\n\n return (\n <TooltipContainer\n {...restProps}\n fixed\n ref={ref}\n className={classNames(\n styles['FixedLayout'],\n platform === Platform.IOS && 'vkuiInternalFixedLayout--ios',\n filled && styles['FixedLayout--filled'],\n vertical &&\n {\n top: styles['FixedLayout--vertical-top'],\n bottom: classNames(\n styles['FixedLayout--vertical-bottom'],\n 'vkuiInternalFixedLayout--vertical-bottom',\n ),\n }[vertical],\n className,\n )}\n style={{ ...style, width }}\n >\n {children}\n </TooltipContainer>\n );\n};\n"],"names":["React","classNames","useExternRef","useGlobalEventListener","usePlatform","useDOM","Platform","SplitColContext","TooltipContainer","FixedLayout","children","style","vertical","getRootRef","getRef","filled","className","useParentWidth","restProps","platform","ref","useState","undefined","width","setWidth","window","colRef","useContext","doResize","current","parentWidth","parentElement","getBoundingClientRect","computedStyle","getComputedStyle","clientWidth","parseFloat","paddingLeft","paddingRight","useEffect","fixed","IOS","top","bottom"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,sBAAsB,QAAQ,qCAAqC;AAC5E,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,gBAAgB,QAAQ,8BAA8B;AA2B/D;;CAEC,GACD,OAAO,IAAMC,cAAc;QACzBC,kBAAAA,UACAC,eAAAA,OACAC,kBAAAA,UACAC,oBAAAA,YACAC,gBAAAA,QACAC,gBAAAA,QACAC,mBAAAA,WACAC,wBAAAA,gBACGC;QARHR;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWf;IACjB,IAAMgB,MAAMlB,aAAaW,YAAYC,SAAS,6BAA6B;IAC3E,IAA0Bd,mCAAAA,MAAMqB,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/FixedLayout/FixedLayout.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useDOM } from '../../lib/dom';\nimport { Platform } from '../../lib/platform';\nimport { HasRef, HasRootRef } from '../../types';\nimport { SplitColContext } from '../SplitCol/SplitColContext';\nimport { TooltipContainer } from '../Tooltip/TooltipContainer';\nimport styles from './FixedLayout.module.css';\n\nexport interface FixedLayoutProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n vertical?: 'top' | 'bottom';\n /**\n * Это свойство определяет, будет ли фон компонента окрашен в цвет фона контента.\n * Это часто необходимо для фиксированных кнопок в нижней части экрана.\n */\n filled?: boolean;\n /**\n * Всегда соответствовать ширине родителя.\n * Ширина пересчитывается по событию `window` `resize`.\n */\n useParentWidth?: boolean;\n}\n\nexport interface FixedLayoutState {\n position: 'absolute' | null;\n top: number;\n bottom: number;\n width: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FixedLayout\n */\nexport const FixedLayout = ({\n children,\n style,\n vertical,\n getRootRef,\n getRef,\n filled,\n className,\n useParentWidth,\n ...restProps\n}: FixedLayoutProps) => {\n const platform = usePlatform();\n const ref = useExternRef(getRootRef, getRef); // TODO [>=6]: удалить getRef\n const [width, setWidth] = React.useState<string | undefined>(undefined);\n const { window } = useDOM();\n const { colRef } = React.useContext(SplitColContext);\n\n const doResize = () => {\n if (useParentWidth && ref.current) {\n const parentWidth = ref.current.parentElement?.getBoundingClientRect().width;\n setWidth(parentWidth ? `${parentWidth}px` : undefined);\n } else if (colRef?.current) {\n const computedStyle = getComputedStyle(colRef.current);\n\n setWidth(\n `${\n colRef.current.clientWidth -\n parseFloat(computedStyle.paddingLeft) -\n parseFloat(computedStyle.paddingRight)\n }px`,\n );\n } else {\n setWidth(undefined);\n }\n };\n React.useEffect(doResize, [colRef, platform, ref, useParentWidth]);\n useGlobalEventListener(window, 'resize', doResize);\n\n return (\n <TooltipContainer\n {...restProps}\n fixed\n ref={ref}\n className={classNames(\n styles['FixedLayout'],\n platform === Platform.IOS && 'vkuiInternalFixedLayout--ios',\n filled && styles['FixedLayout--filled'],\n vertical &&\n {\n top: styles['FixedLayout--vertical-top'],\n bottom: classNames(\n styles['FixedLayout--vertical-bottom'],\n 'vkuiInternalFixedLayout--vertical-bottom',\n ),\n }[vertical],\n className,\n )}\n style={{ ...style, width }}\n >\n {children}\n </TooltipContainer>\n );\n};\n"],"names":["React","classNames","useExternRef","useGlobalEventListener","usePlatform","useDOM","Platform","SplitColContext","TooltipContainer","FixedLayout","children","style","vertical","getRootRef","getRef","filled","className","useParentWidth","restProps","platform","ref","useState","undefined","width","setWidth","window","colRef","useContext","doResize","current","parentWidth","parentElement","getBoundingClientRect","computedStyle","getComputedStyle","clientWidth","parseFloat","paddingLeft","paddingRight","useEffect","fixed","IOS","top","bottom"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,sBAAsB,QAAQ,qCAAqC;AAC5E,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,gBAAgB,QAAQ,8BAA8B;AA2B/D;;CAEC,GACD,OAAO,IAAMC,cAAc;QACzBC,kBAAAA,UACAC,eAAAA,OACAC,kBAAAA,UACAC,oBAAAA,YACAC,gBAAAA,QACAC,gBAAAA,QACAC,mBAAAA,WACAC,wBAAAA,gBACGC;QARHR;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWf;IACjB,IAAMgB,MAAMlB,aAAaW,YAAYC,SAAS,6BAA6B;IAC3E,IAA0Bd,mCAAAA,MAAMqB,QAAQ,CAAqBC,gBAAtDC,QAAmBvB,oBAAZwB,WAAYxB;IAC1B,IAAM,AAAEyB,SAAWpB,SAAXoB;IACR,IAAM,AAAEC,SAAW1B,MAAM2B,UAAU,CAACpB,iBAA5BmB;IAER,IAAME,WAAW;YAIJF;QAHX,IAAIT,kBAAkBG,IAAIS,OAAO,EAAE;gBACbT;YAApB,IAAMU,eAAcV,6BAAAA,IAAIS,OAAO,CAACE,aAAa,cAAzBX,iDAAAA,2BAA2BY,qBAAqB,GAAGT,KAAK;YAC5EC,SAASM,cAAc,AAAC,GAAc,OAAZA,aAAY,QAAMR;QAC9C,OAAO,KAAII,UAAAA,oBAAAA,8BAAAA,QAAQG,OAAO,EAAE;YAC1B,IAAMI,gBAAgBC,iBAAiBR,OAAOG,OAAO;YAErDL,SACE,AAAC,GAIA,OAHCE,OAAOG,OAAO,CAACM,WAAW,GAC1BC,WAAWH,cAAcI,WAAW,IACpCD,WAAWH,cAAcK,YAAY,GACtC;QAEL,OAAO;YACLd,SAASF;QACX;IACF;IACAtB,MAAMuC,SAAS,CAACX,UAAU;QAACF;QAAQP;QAAUC;QAAKH;KAAe;IACjEd,uBAAuBsB,QAAQ,UAAUG;IAEzC,qBACE,oBAACpB,0DACKU;QACJsB,OAAAA;QACApB,KAAKA;QACLJ,WAAWf,8BAETkB,aAAab,SAASmC,GAAG,IAAI,gCAC7B1B,qCACAH,YACE,CAAA;YACE8B,GAAG;YACHC,QAAQ1C,+CAEN;QAEJ,CAAA,CAAC,CAACW,SAAS,EACbI;QAEFL,OAAO,wCAAKA;YAAOY,OAAAA;;QAElBb;AAGP,EAAE"}
|
|
@@ -28,8 +28,8 @@ var FOCUSABLE_ELEMENTS = FOCUSABLE_ELEMENTS_LIST.join();
|
|
|
28
28
|
// HANDLE TRAP MOUNT
|
|
29
29
|
var keyboardInput = React.useContext(AppRootContext).keyboardInput;
|
|
30
30
|
var focusOnTrapMount = useTimeout(function() {
|
|
31
|
-
var _ref_current;
|
|
32
|
-
if (keyboardInput && !((_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.contains(document.activeElement)) && (focusableNodes === null ||
|
|
31
|
+
var _ref_current, _focusableNodes;
|
|
32
|
+
if (keyboardInput && !((_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.contains(document.activeElement)) && ((_focusableNodes = focusableNodes) === null || _focusableNodes === void 0 ? void 0 : _focusableNodes.length)) {
|
|
33
33
|
focusableNodes[0].focus();
|
|
34
34
|
}
|
|
35
35
|
}, timeout);
|
|
@@ -75,7 +75,8 @@ var FOCUSABLE_ELEMENTS = FOCUSABLE_ELEMENTS_LIST.join();
|
|
|
75
75
|
restoreFocus
|
|
76
76
|
]);
|
|
77
77
|
var onDocumentKeydown = function(e) {
|
|
78
|
-
|
|
78
|
+
var _focusableNodes;
|
|
79
|
+
if (pressedKey(e) === Keys.TAB && ((_focusableNodes = focusableNodes) === null || _focusableNodes === void 0 ? void 0 : _focusableNodes.length)) {
|
|
79
80
|
var lastIdx = focusableNodes.length - 1;
|
|
80
81
|
var targetIdx = focusableNodes.findIndex(function(node) {
|
|
81
82
|
return node === e.target;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/FocusTrap/FocusTrap.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { FOCUSABLE_ELEMENTS_LIST, Keys, pressedKey } from '../../lib/accessibility';\nimport { useDOM } from '../../lib/dom';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { HasComponent, HasRootRef } from '../../types';\nimport { AppRootContext } from '../AppRoot/AppRootContext';\n\nconst FOCUSABLE_ELEMENTS: string = FOCUSABLE_ELEMENTS_LIST.join();\nexport interface FocusTrapProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent {\n restoreFocus?: boolean;\n timeout?: number;\n onClose?(): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FocusTrap\n */\nexport const FocusTrap = ({\n Component = 'div',\n onClose,\n restoreFocus = true,\n timeout = 0,\n getRootRef,\n children,\n ...restProps\n}: FocusTrapProps) => {\n const ref = useExternRef<HTMLElement>(getRootRef);\n\n const { document, window } = useDOM();\n\n const [focusableNodes, setFocusableNodes] = React.useState<HTMLElement[] | null>(null);\n const [restoreFocusTo, setRestoreFocusTo] = React.useState<HTMLElement | null>(null);\n\n // HANDLE TRAP MOUNT\n\n const { keyboardInput } = React.useContext(AppRootContext);\n const focusOnTrapMount = useTimeout(() => {\n if (\n keyboardInput &&\n !ref.current?.contains(document!.activeElement) &&\n focusableNodes?.length\n ) {\n focusableNodes[0].focus();\n }\n }, timeout);\n useIsomorphicLayoutEffect(() => {\n focusOnTrapMount.set();\n }, []);\n\n // HANDLE FOCUSABLE NODES\n\n useIsomorphicLayoutEffect(() => {\n if (!ref.current) {\n return;\n }\n\n const nodes: HTMLElement[] = [];\n Array.prototype.forEach.call(\n // eslint-disable-next-line no-restricted-properties\n ref.current.querySelectorAll(FOCUSABLE_ELEMENTS),\n (focusableEl: Element) => {\n const { display, visibility } = window!.getComputedStyle(focusableEl);\n\n if (display !== 'none' && visibility !== 'hidden') {\n nodes.push(focusableEl as HTMLElement);\n }\n },\n );\n\n if (nodes.length === 0) {\n // Чтобы фокус был хотя бы на родителе\n nodes.push(ref.current);\n }\n\n setFocusableNodes(nodes);\n }, [children]);\n\n // HANDLE TRAP UNMOUNT\n\n const focusOnTrapUnmount = useTimeout(() => {\n if (restoreFocusTo) {\n restoreFocusTo.focus();\n }\n }, timeout);\n useIsomorphicLayoutEffect(() => {\n if (restoreFocus && document!.activeElement) {\n setRestoreFocusTo(document!.activeElement as HTMLElement);\n\n return () => {\n focusOnTrapUnmount.set();\n };\n }\n\n return;\n }, [restoreFocus]);\n\n const onDocumentKeydown = (e: KeyboardEvent) => {\n if (pressedKey(e) === Keys.TAB && focusableNodes?.length) {\n const lastIdx = focusableNodes.length - 1;\n const targetIdx = focusableNodes.findIndex((node) => node === e.target);\n\n const shouldFocusFirstNode = targetIdx === -1 || (targetIdx === lastIdx && !e.shiftKey);\n\n if (shouldFocusFirstNode || (targetIdx === 0 && e.shiftKey)) {\n e.preventDefault();\n\n const node = focusableNodes[shouldFocusFirstNode ? 0 : lastIdx];\n\n if (node !== document!.activeElement) {\n node.focus();\n }\n\n return false;\n }\n }\n\n if (onClose && pressedKey(e) === Keys.ESCAPE) {\n onClose();\n }\n\n return true;\n };\n useGlobalEventListener(document, 'keydown', onDocumentKeydown, {\n capture: true,\n });\n\n return (\n <Component tabIndex={-1} ref={ref} {...restProps}>\n {children}\n </Component>\n );\n};\n"],"names":["React","useExternRef","useGlobalEventListener","useTimeout","FOCUSABLE_ELEMENTS_LIST","Keys","pressedKey","useDOM","useIsomorphicLayoutEffect","AppRootContext","FOCUSABLE_ELEMENTS","join","FocusTrap","Component","onClose","restoreFocus","timeout","getRootRef","children","restProps","ref","document","window","useState","focusableNodes","setFocusableNodes","restoreFocusTo","setRestoreFocusTo","keyboardInput","useContext","focusOnTrapMount","current","contains","activeElement","length","focus","set","nodes","Array","prototype","forEach","call","querySelectorAll","focusableEl","getComputedStyle","display","visibility","push","focusOnTrapUnmount","onDocumentKeydown","e","TAB","lastIdx","targetIdx","findIndex","node","target","shouldFocusFirstNode","shiftKey","preventDefault","ESCAPE","capture","tabIndex"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,sBAAsB,QAAQ,qCAAqC;AAC5E,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,uBAAuB,EAAEC,IAAI,EAAEC,UAAU,QAAQ,0BAA0B;AACpF,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,yBAAyB,QAAQ,sCAAsC;AAEhF,SAASC,cAAc,QAAQ,4BAA4B;AAE3D,IAAMC,qBAA6BN,wBAAwBO;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/FocusTrap/FocusTrap.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { FOCUSABLE_ELEMENTS_LIST, Keys, pressedKey } from '../../lib/accessibility';\nimport { useDOM } from '../../lib/dom';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { HasComponent, HasRootRef } from '../../types';\nimport { AppRootContext } from '../AppRoot/AppRootContext';\n\nconst FOCUSABLE_ELEMENTS: string = FOCUSABLE_ELEMENTS_LIST.join();\nexport interface FocusTrapProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent {\n restoreFocus?: boolean;\n timeout?: number;\n onClose?(): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FocusTrap\n */\nexport const FocusTrap = ({\n Component = 'div',\n onClose,\n restoreFocus = true,\n timeout = 0,\n getRootRef,\n children,\n ...restProps\n}: FocusTrapProps) => {\n const ref = useExternRef<HTMLElement>(getRootRef);\n\n const { document, window } = useDOM();\n\n const [focusableNodes, setFocusableNodes] = React.useState<HTMLElement[] | null>(null);\n const [restoreFocusTo, setRestoreFocusTo] = React.useState<HTMLElement | null>(null);\n\n // HANDLE TRAP MOUNT\n\n const { keyboardInput } = React.useContext(AppRootContext);\n const focusOnTrapMount = useTimeout(() => {\n if (\n keyboardInput &&\n !ref.current?.contains(document!.activeElement) &&\n focusableNodes?.length\n ) {\n focusableNodes[0].focus();\n }\n }, timeout);\n useIsomorphicLayoutEffect(() => {\n focusOnTrapMount.set();\n }, []);\n\n // HANDLE FOCUSABLE NODES\n\n useIsomorphicLayoutEffect(() => {\n if (!ref.current) {\n return;\n }\n\n const nodes: HTMLElement[] = [];\n Array.prototype.forEach.call(\n // eslint-disable-next-line no-restricted-properties\n ref.current.querySelectorAll(FOCUSABLE_ELEMENTS),\n (focusableEl: Element) => {\n const { display, visibility } = window!.getComputedStyle(focusableEl);\n\n if (display !== 'none' && visibility !== 'hidden') {\n nodes.push(focusableEl as HTMLElement);\n }\n },\n );\n\n if (nodes.length === 0) {\n // Чтобы фокус был хотя бы на родителе\n nodes.push(ref.current);\n }\n\n setFocusableNodes(nodes);\n }, [children]);\n\n // HANDLE TRAP UNMOUNT\n\n const focusOnTrapUnmount = useTimeout(() => {\n if (restoreFocusTo) {\n restoreFocusTo.focus();\n }\n }, timeout);\n useIsomorphicLayoutEffect(() => {\n if (restoreFocus && document!.activeElement) {\n setRestoreFocusTo(document!.activeElement as HTMLElement);\n\n return () => {\n focusOnTrapUnmount.set();\n };\n }\n\n return;\n }, [restoreFocus]);\n\n const onDocumentKeydown = (e: KeyboardEvent) => {\n if (pressedKey(e) === Keys.TAB && focusableNodes?.length) {\n const lastIdx = focusableNodes.length - 1;\n const targetIdx = focusableNodes.findIndex((node) => node === e.target);\n\n const shouldFocusFirstNode = targetIdx === -1 || (targetIdx === lastIdx && !e.shiftKey);\n\n if (shouldFocusFirstNode || (targetIdx === 0 && e.shiftKey)) {\n e.preventDefault();\n\n const node = focusableNodes[shouldFocusFirstNode ? 0 : lastIdx];\n\n if (node !== document!.activeElement) {\n node.focus();\n }\n\n return false;\n }\n }\n\n if (onClose && pressedKey(e) === Keys.ESCAPE) {\n onClose();\n }\n\n return true;\n };\n useGlobalEventListener(document, 'keydown', onDocumentKeydown, {\n capture: true,\n });\n\n return (\n <Component tabIndex={-1} ref={ref} {...restProps}>\n {children}\n </Component>\n );\n};\n"],"names":["React","useExternRef","useGlobalEventListener","useTimeout","FOCUSABLE_ELEMENTS_LIST","Keys","pressedKey","useDOM","useIsomorphicLayoutEffect","AppRootContext","FOCUSABLE_ELEMENTS","join","FocusTrap","Component","onClose","restoreFocus","timeout","getRootRef","children","restProps","ref","document","window","useState","focusableNodes","setFocusableNodes","restoreFocusTo","setRestoreFocusTo","keyboardInput","useContext","focusOnTrapMount","current","contains","activeElement","length","focus","set","nodes","Array","prototype","forEach","call","querySelectorAll","focusableEl","getComputedStyle","display","visibility","push","focusOnTrapUnmount","onDocumentKeydown","e","TAB","lastIdx","targetIdx","findIndex","node","target","shouldFocusFirstNode","shiftKey","preventDefault","ESCAPE","capture","tabIndex"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/FormField/FormField.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useFocusWithin } from '../../hooks/useFocusWithin';\nimport { SizeType } from '../../lib/adaptivity';\nimport { HasComponent, HasRootRef } from '../../types';\nimport { FocusVisible } from '../FocusVisible/FocusVisible';\nimport styles from './FormField.module.css';\n\nconst sizeYClassNames = {\n none: styles['FormField--sizeY-none'],\n [SizeType.COMPACT]: styles['FormField--sizeY-compact'],\n};\n\nexport interface FormFieldProps {\n status?: 'default' | 'error' | 'valid';\n /**\n * Добавляет иконку слева.\n *\n * Рекомендации:\n *\n * - Используйте следующие размеры иконок `12` | `16` | `20` | `24` | `28`.\n * - Используйте [IconButton](https://vkcom.github.io/VKUI/#/IconButton), если вам нужна кликабельная иконка.\n */\n before?: React.ReactNode;\n /**\n * Добавляет иконку справа.\n *\n * Рекомендации:\n *\n * - Используйте следующие размеры иконок `12` | `16` | `20` | `24` | `28`.\n * - Используйте [IconButton](https://vkcom.github.io/VKUI/#/IconButton), если вам нужна кликабельная иконка.\n */\n after?: React.ReactNode;\n mode?: 'default' | 'plain';\n}\n\ninterface FormFieldOwnProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent,\n FormFieldProps {\n disabled?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FormField\n */\nexport const FormField = ({\n Component = 'span',\n status = 'default',\n children,\n getRootRef,\n before,\n after,\n disabled,\n mode = 'default',\n className,\n ...restProps\n}: FormFieldOwnProps) => {\n const elRef = useExternRef(getRootRef);\n const focusWithin = useFocusWithin(elRef);\n const { sizeY = 'none' } = useAdaptivity();\n const [hover, setHover] = React.useState(false);\n\n const handleMouseEnter = (e: MouseEvent) => {\n e.stopPropagation();\n setHover(true);\n };\n\n const handleMouseLeave = (e: MouseEvent) => {\n e.stopPropagation();\n setHover(false);\n };\n\n return (\n <Component\n {...restProps}\n ref={elRef}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n className={classNames(\n styles['FormField'],\n mode === 'default' && styles['FormField--mode-default'],\n status !== 'default' &&\n {\n error: styles['FormField--status-error'],\n valid: styles['FormField--status-valid'],\n }[status],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n disabled && styles['FormField--disabled'],\n !disabled && hover && styles['FormField--hover'],\n className,\n )}\n >\n {before && <span className={styles['FormField__before']}>{before}</span>}\n {children}\n {after && (\n <span className={classNames(styles['FormField__after'], 'vkuiInternalFormField__after')}>\n {after}\n </span>\n )}\n <span aria-hidden className={styles['FormField__border']} />\n <FocusVisible thin visible={focusWithin} mode=\"outline\" />\n </Component>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useExternRef","useFocusWithin","SizeType","FocusVisible","sizeYClassNames","none","COMPACT","FormField","Component","status","children","getRootRef","before","after","disabled","mode","className","restProps","elRef","focusWithin","sizeY","useState","hover","setHover","handleMouseEnter","e","stopPropagation","handleMouseLeave","ref","onMouseEnter","onMouseLeave","error","valid","REGULAR","span","aria-hidden","thin","visible"],"mappings":";;;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,cAAc,QAAQ,6BAA6B;AAC5D,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,YAAY,QAAQ,+BAA+B;AAG5D,IAAMC;IACJC,IAAI;GACHH,SAASI;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/FormField/FormField.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useFocusWithin } from '../../hooks/useFocusWithin';\nimport { SizeType } from '../../lib/adaptivity';\nimport { HasComponent, HasRootRef } from '../../types';\nimport { FocusVisible } from '../FocusVisible/FocusVisible';\nimport styles from './FormField.module.css';\n\nconst sizeYClassNames = {\n none: styles['FormField--sizeY-none'],\n [SizeType.COMPACT]: styles['FormField--sizeY-compact'],\n};\n\nexport interface FormFieldProps {\n status?: 'default' | 'error' | 'valid';\n /**\n * Добавляет иконку слева.\n *\n * Рекомендации:\n *\n * - Используйте следующие размеры иконок `12` | `16` | `20` | `24` | `28`.\n * - Используйте [IconButton](https://vkcom.github.io/VKUI/#/IconButton), если вам нужна кликабельная иконка.\n */\n before?: React.ReactNode;\n /**\n * Добавляет иконку справа.\n *\n * Рекомендации:\n *\n * - Используйте следующие размеры иконок `12` | `16` | `20` | `24` | `28`.\n * - Используйте [IconButton](https://vkcom.github.io/VKUI/#/IconButton), если вам нужна кликабельная иконка.\n */\n after?: React.ReactNode;\n mode?: 'default' | 'plain';\n}\n\ninterface FormFieldOwnProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent,\n FormFieldProps {\n disabled?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FormField\n */\nexport const FormField = ({\n Component = 'span',\n status = 'default',\n children,\n getRootRef,\n before,\n after,\n disabled,\n mode = 'default',\n className,\n ...restProps\n}: FormFieldOwnProps) => {\n const elRef = useExternRef(getRootRef);\n const focusWithin = useFocusWithin(elRef);\n const { sizeY = 'none' } = useAdaptivity();\n const [hover, setHover] = React.useState(false);\n\n const handleMouseEnter = (e: MouseEvent) => {\n e.stopPropagation();\n setHover(true);\n };\n\n const handleMouseLeave = (e: MouseEvent) => {\n e.stopPropagation();\n setHover(false);\n };\n\n return (\n <Component\n {...restProps}\n ref={elRef}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n className={classNames(\n styles['FormField'],\n mode === 'default' && styles['FormField--mode-default'],\n status !== 'default' &&\n {\n error: styles['FormField--status-error'],\n valid: styles['FormField--status-valid'],\n }[status],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n disabled && styles['FormField--disabled'],\n !disabled && hover && styles['FormField--hover'],\n className,\n )}\n >\n {before && <span className={styles['FormField__before']}>{before}</span>}\n {children}\n {after && (\n <span className={classNames(styles['FormField__after'], 'vkuiInternalFormField__after')}>\n {after}\n </span>\n )}\n <span aria-hidden className={styles['FormField__border']} />\n <FocusVisible thin visible={focusWithin} mode=\"outline\" />\n </Component>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useExternRef","useFocusWithin","SizeType","FocusVisible","sizeYClassNames","none","COMPACT","FormField","Component","status","children","getRootRef","before","after","disabled","mode","className","restProps","elRef","focusWithin","sizeY","useState","hover","setHover","handleMouseEnter","e","stopPropagation","handleMouseLeave","ref","onMouseEnter","onMouseLeave","error","valid","REGULAR","span","aria-hidden","thin","visible"],"mappings":";;;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,cAAc,QAAQ,6BAA6B;AAC5D,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,YAAY,QAAQ,+BAA+B;AAG5D,IAAMC;IACJC,IAAI;GACHH,SAASI,OAAO;AAkCnB;;CAEC,GACD,OAAO,IAAMC,YAAY;kCACvBC,WAAAA,0CAAY,kDACZC,QAAAA,oCAAS,2BACTC,kBAAAA,UACAC,oBAAAA,YACAC,gBAAAA,QACAC,eAAAA,OACAC,kBAAAA,+BACAC,MAAAA,gCAAO,yBACPC,mBAAAA,WACGC;QATHT;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAME,QAAQlB,aAAaW;IAC3B,IAAMQ,cAAclB,eAAeiB;IACnC,IAA2BnB,iBAAAA,wCAAAA,eAAnBqB,OAAAA,0CAAQ;IAChB,IAA0BvB,mCAAAA,MAAMwB,QAAQ,CAAC,YAAlCC,QAAmBzB,oBAAZ0B,WAAY1B;IAE1B,IAAM2B,mBAAmB,SAACC;QACxBA,EAAEC,eAAe;QACjBH,SAAS;IACX;IAEA,IAAMI,mBAAmB,SAACF;QACxBA,EAAEC,eAAe;QACjBH,SAAS;IACX;IAEA,qBACE,oBAACf,mDACKS;QACJW,KAAKV;QACLW,cAAcL;QACdM,cAAcH;QACdX,WAAWlB,4BAETiB,SAAS,4CACTN,WAAW,aACT,CAAA;YACEsB,KAAK;YACLC,KAAK;QACP,CAAA,CAAC,CAACvB,OAAO,EACXW,UAAUlB,SAAS+B,OAAO,IAAI7B,eAAe,CAACgB,MAAM,EACpDN,uCACA,CAACA,YAAYQ,iCACbN;QAGDJ,wBAAU,oBAACsB;QAAKlB,SAAS;OAAgCJ,SACzDF,UACAG,uBACC,oBAACqB;QAAKlB,WAAWlB,mCAAuC;OACrDe,sBAGL,oBAACqB;QAAKC,eAAAA;QAAYnB,SAAS;sBAC3B,oBAACb;QAAaiC,MAAAA;QAAKC,SAASlB;QAAaJ,MAAK;;AAGpD,EAAE"}
|
|
@@ -47,7 +47,8 @@ var sizeYClassNames = _define_property({
|
|
|
47
47
|
}), removable ? /*#__PURE__*/ React.createElement(Removable, {
|
|
48
48
|
align: "start",
|
|
49
49
|
onRemove: function(e) {
|
|
50
|
-
|
|
50
|
+
var _rootEl;
|
|
51
|
+
if ((_rootEl = rootEl) === null || _rootEl === void 0 ? void 0 : _rootEl.current) {
|
|
51
52
|
onRemove(e, rootEl.current);
|
|
52
53
|
}
|
|
53
54
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/FormItem/FormItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { SizeType } from '../../lib/adaptivity';\nimport { HasComponent, HasRootRef } from '../../types';\nimport { Removable, RemovableProps } from '../Removable/Removable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport styles from './FormItem.module.css';\n\nconst sizeYClassNames = {\n none: classNames(styles['FormItem--sizeY-none'], 'vkuiInternalFormItem--sizeY-none'),\n [SizeType.COMPACT]: classNames(\n styles['FormItem--sizeY-compact'],\n 'vkuiInternalFormItem--sizeY-compact',\n ),\n};\n\nexport interface FormItemProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent,\n RemovableProps {\n top?: React.ReactNode;\n bottom?: React.ReactNode;\n status?: 'default' | 'error' | 'valid';\n /**\n * Дает возможность удалить `FormItem`. Рекомендуется использовать только для `Input` или `Select`.\n *\n * Режим `indent` предназначен для визуального отступа\n */\n removable?: boolean | 'indent';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FormItem\n */\nexport const FormItem = ({\n children,\n top,\n bottom,\n status = 'default',\n Component = 'div',\n removable,\n onRemove = noop,\n removePlaceholder = 'Удалить',\n getRootRef,\n className,\n htmlFor,\n ...restProps\n}: FormItemProps) => {\n const rootEl = useExternRef(getRootRef);\n const { sizeY = 'none' } = useAdaptivity();\n\n const wrappedChildren = (\n <React.Fragment>\n {hasReactNode(top) && (\n <Subhead\n className={styles['FormItem__top']}\n Component={htmlFor ? 'label' : 'h5'}\n htmlFor={htmlFor}\n >\n {top}\n </Subhead>\n )}\n {children}\n {hasReactNode(bottom) && <Footnote className={styles['FormItem__bottom']}>{bottom}</Footnote>}\n </React.Fragment>\n );\n\n return (\n <Component\n {...restProps}\n ref={rootEl}\n className={classNames(\n styles['FormItem'],\n 'vkuiInternalFormItem',\n status !== 'default' &&\n {\n error: classNames(\n styles['FormItem--status-error'],\n 'vkuiInternalFormItem--status-error',\n ),\n valid: classNames(\n styles['FormItem--status-valid'],\n 'vkuiInternalFormItem--status-valid',\n ),\n }[status],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n hasReactNode(top) &&\n classNames(styles['FormItem--withTop'], 'vkuiInternalFormItem--withTop'),\n removable && classNames(styles['FormItem--removable'], 'vkuiInternalFormItem--removable'),\n className,\n )}\n >\n {removable ? (\n <Removable\n align=\"start\"\n onRemove={(e) => {\n if (rootEl?.current) {\n onRemove(e, rootEl.current);\n }\n }}\n removePlaceholder={removePlaceholder}\n indent={removable === 'indent'}\n >\n <div\n className={classNames(styles['FormItem__removable'], 'vkuiInternalFormItem__removable')}\n >\n {wrappedChildren}\n </div>\n </Removable>\n ) : (\n wrappedChildren\n )}\n </Component>\n );\n};\n"],"names":["React","classNames","hasReactNode","noop","useAdaptivity","useExternRef","SizeType","Removable","Footnote","Subhead","sizeYClassNames","none","COMPACT","FormItem","children","top","bottom","status","Component","removable","onRemove","removePlaceholder","getRootRef","className","htmlFor","restProps","rootEl","sizeY","wrappedChildren","Fragment","ref","error","valid","REGULAR","align","e","current","indent","div"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,EAAEC,IAAI,QAAQ,kBAAkB;AACjE,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,SAAS,QAAwB,yBAAyB;AACnE,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,OAAO,QAAQ,gCAAgC;AAGxD,IAAMC,kBAEJ;IADAC,MAAMV,uCAA2C;GAChDK,SAASM,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/FormItem/FormItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { SizeType } from '../../lib/adaptivity';\nimport { HasComponent, HasRootRef } from '../../types';\nimport { Removable, RemovableProps } from '../Removable/Removable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport styles from './FormItem.module.css';\n\nconst sizeYClassNames = {\n none: classNames(styles['FormItem--sizeY-none'], 'vkuiInternalFormItem--sizeY-none'),\n [SizeType.COMPACT]: classNames(\n styles['FormItem--sizeY-compact'],\n 'vkuiInternalFormItem--sizeY-compact',\n ),\n};\n\nexport interface FormItemProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent,\n RemovableProps {\n top?: React.ReactNode;\n bottom?: React.ReactNode;\n status?: 'default' | 'error' | 'valid';\n /**\n * Дает возможность удалить `FormItem`. Рекомендуется использовать только для `Input` или `Select`.\n *\n * Режим `indent` предназначен для визуального отступа\n */\n removable?: boolean | 'indent';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FormItem\n */\nexport const FormItem = ({\n children,\n top,\n bottom,\n status = 'default',\n Component = 'div',\n removable,\n onRemove = noop,\n removePlaceholder = 'Удалить',\n getRootRef,\n className,\n htmlFor,\n ...restProps\n}: FormItemProps) => {\n const rootEl = useExternRef(getRootRef);\n const { sizeY = 'none' } = useAdaptivity();\n\n const wrappedChildren = (\n <React.Fragment>\n {hasReactNode(top) && (\n <Subhead\n className={styles['FormItem__top']}\n Component={htmlFor ? 'label' : 'h5'}\n htmlFor={htmlFor}\n >\n {top}\n </Subhead>\n )}\n {children}\n {hasReactNode(bottom) && <Footnote className={styles['FormItem__bottom']}>{bottom}</Footnote>}\n </React.Fragment>\n );\n\n return (\n <Component\n {...restProps}\n ref={rootEl}\n className={classNames(\n styles['FormItem'],\n 'vkuiInternalFormItem',\n status !== 'default' &&\n {\n error: classNames(\n styles['FormItem--status-error'],\n 'vkuiInternalFormItem--status-error',\n ),\n valid: classNames(\n styles['FormItem--status-valid'],\n 'vkuiInternalFormItem--status-valid',\n ),\n }[status],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n hasReactNode(top) &&\n classNames(styles['FormItem--withTop'], 'vkuiInternalFormItem--withTop'),\n removable && classNames(styles['FormItem--removable'], 'vkuiInternalFormItem--removable'),\n className,\n )}\n >\n {removable ? (\n <Removable\n align=\"start\"\n onRemove={(e) => {\n if (rootEl?.current) {\n onRemove(e, rootEl.current);\n }\n }}\n removePlaceholder={removePlaceholder}\n indent={removable === 'indent'}\n >\n <div\n className={classNames(styles['FormItem__removable'], 'vkuiInternalFormItem__removable')}\n >\n {wrappedChildren}\n </div>\n </Removable>\n ) : (\n wrappedChildren\n )}\n </Component>\n );\n};\n"],"names":["React","classNames","hasReactNode","noop","useAdaptivity","useExternRef","SizeType","Removable","Footnote","Subhead","sizeYClassNames","none","COMPACT","FormItem","children","top","bottom","status","Component","removable","onRemove","removePlaceholder","getRootRef","className","htmlFor","restProps","rootEl","sizeY","wrappedChildren","Fragment","ref","error","valid","REGULAR","align","e","current","indent","div"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,EAAEC,IAAI,QAAQ,kBAAkB;AACjE,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,SAAS,QAAwB,yBAAyB;AACnE,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,OAAO,QAAQ,gCAAgC;AAGxD,IAAMC,kBAEJ;IADAC,MAAMV,uCAA2C;GAChDK,SAASM,OAAO,EAAGX,0CAElB;AAoBJ;;CAEC,GACD,OAAO,IAAMY,WAAW;QACtBC,kBAAAA,UACAC,aAAAA,KACAC,gBAAAA,+BACAC,QAAAA,oCAAS,qDACTC,WAAAA,0CAAY,0BACZC,mBAAAA,oCACAC,UAAAA,wCAAWjB,0DACXkB,mBAAAA,0DAAoB,sCACpBC,oBAAAA,YACAC,mBAAAA,WACAC,iBAAAA,SACGC;QAXHX;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAME,SAASrB,aAAaiB;IAC5B,IAA2BlB,iBAAAA,wCAAAA,eAAnBuB,OAAAA,0CAAQ;IAEhB,IAAMC,gCACJ,oBAAC5B,MAAM6B,QAAQ,QACZ3B,aAAaa,sBACZ,oBAACN;QACCc,SAAS;QACTL,WAAWM,UAAU,UAAU;QAC/BA,SAASA;OAERT,MAGJD,UACAZ,aAAac,yBAAW,oBAACR;QAASe,SAAS;OAA+BP;IAI/E,qBACE,oBAACE,mDACKO;QACJK,KAAKJ;QACLH,WAAWtB,2BAET,wBACAgB,WAAW,aACT,CAAA;YACEc,OAAO9B,yCAEL;YAEF+B,OAAO/B,yCAEL;QAEJ,CAAA,CAAC,CAACgB,OAAO,EACXU,UAAUrB,SAAS2B,OAAO,IAAIvB,eAAe,CAACiB,MAAM,EACpDzB,aAAaa,QACXd,oCAAwC,kCAC1CkB,aAAalB,sCAA0C,oCACvDsB;QAGDJ,0BACC,oBAACZ;QACC2B,OAAM;QACNd,UAAU,SAACe;gBACLT;YAAJ,KAAIA,UAAAA,oBAAAA,8BAAAA,QAAQU,OAAO,EAAE;gBACnBhB,SAASe,GAAGT,OAAOU,OAAO;YAC5B;QACF;QACAf,mBAAmBA;QACnBgB,QAAQlB,cAAc;qBAEtB,oBAACmB;QACCf,WAAWtB,sCAA0C;OAEpD2B,oBAILA;AAIR,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/FormLayout/FormLayout.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasComponent, HasRef } from '../../types';\nimport styles from './FormLayout.module.css';\n\nconst preventDefault = (e: React.FormEvent) => e.preventDefault();\n\nexport type FormLayoutProps = React.AllHTMLAttributes<HTMLElement> &\n HasRef<HTMLElement> &\n HasComponent;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FormLayout\n */\nexport const FormLayout = ({\n children,\n Component = 'form',\n getRef,\n onSubmit = preventDefault,\n className,\n ...restProps\n}: FormLayoutProps) => {\n return (\n <Component\n {...restProps}\n className={classNames(styles['FormLayout'], className)}\n onSubmit={onSubmit}\n ref={getRef}\n >\n {children}\n {Component === 'form' && (\n <input type=\"submit\" className={styles['FormLayout__submit']} value=\"\" />\n )}\n </Component>\n );\n};\n"],"names":["React","classNames","preventDefault","e","FormLayout","children","Component","getRef","onSubmit","className","restProps","ref","input","type","value"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAI7C,IAAMC,iBAAiB,SAACC;WAAuBA,EAAED;;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/FormLayout/FormLayout.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasComponent, HasRef } from '../../types';\nimport styles from './FormLayout.module.css';\n\nconst preventDefault = (e: React.FormEvent) => e.preventDefault();\n\nexport type FormLayoutProps = React.AllHTMLAttributes<HTMLElement> &\n HasRef<HTMLElement> &\n HasComponent;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FormLayout\n */\nexport const FormLayout = ({\n children,\n Component = 'form',\n getRef,\n onSubmit = preventDefault,\n className,\n ...restProps\n}: FormLayoutProps) => {\n return (\n <Component\n {...restProps}\n className={classNames(styles['FormLayout'], className)}\n onSubmit={onSubmit}\n ref={getRef}\n >\n {children}\n {Component === 'form' && (\n <input type=\"submit\" className={styles['FormLayout__submit']} value=\"\" />\n )}\n </Component>\n );\n};\n"],"names":["React","classNames","preventDefault","e","FormLayout","children","Component","getRef","onSubmit","className","restProps","ref","input","type","value"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAI7C,IAAMC,iBAAiB,SAACC;WAAuBA,EAAED,cAAc;;AAM/D;;CAEC,GACD,OAAO,IAAME,aAAa;QACxBC,kBAAAA,oCACAC,WAAAA,0CAAY,2BACZC,gBAAAA,iCACAC,UAAAA,wCAAWN,kCACXO,mBAAAA,WACGC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,qBACE,oBAACH,mDACKI;QACJD,WAAWR,6BAAiCQ;QAC5CD,UAAUA;QACVG,KAAKJ;QAEJF,UACAC,cAAc,wBACb,oBAACM;QAAMC,MAAK;QAASJ,SAAS;QAAgCK,OAAM;;AAI5E,EAAE"}
|
|
@@ -35,7 +35,8 @@ var sizeYClassNames = _define_property({
|
|
|
35
35
|
align: "start",
|
|
36
36
|
removePlaceholder: removePlaceholder,
|
|
37
37
|
onRemove: function(e) {
|
|
38
|
-
|
|
38
|
+
var _rootEl;
|
|
39
|
+
if ((_rootEl = rootEl) === null || _rootEl === void 0 ? void 0 : _rootEl.current) {
|
|
39
40
|
onRemove(e, rootEl.current);
|
|
40
41
|
}
|
|
41
42
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/FormLayoutGroup/FormLayoutGroup.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { SizeType } from '../../lib/adaptivity';\nimport { HasRootRef } from '../../types';\nimport { Removable, RemovableProps } from '../Removable/Removable';\nimport styles from './FormLayoutGroup.module.css';\n\nconst sizeYClassNames = {\n none: classNames(\n styles['FormLayoutGroup--sizeY-none'],\n 'vkuiInternalFormLayoutGroup--sizeY-none',\n ),\n [SizeType.COMPACT]: classNames(\n styles['FormLayoutGroup--sizeY-compact'],\n 'vkuiInternalFormLayoutGroup--sizeY-compact',\n ),\n};\n\nexport interface FormLayoutGroupProps\n extends React.HTMLAttributes<HTMLDivElement>,\n RemovableProps,\n HasRootRef<HTMLDivElement> {\n mode?: 'vertical' | 'horizontal';\n /**\n * Только для режима horizontal. Дает возможность удалить всю группу `FormItem`.\n *\n * Режим `indent` предназначен для визуального отступа.\n */\n removable?: boolean | 'indent';\n\n /**\n * Только для режима horizontal. Дает возможность склеить несколько `FormItem`.\n */\n segmented?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FormLayoutGroup\n */\nexport const FormLayoutGroup = ({\n children,\n mode = 'vertical',\n removable,\n segmented,\n removePlaceholder = 'Удалить',\n onRemove = noop,\n getRootRef,\n className,\n ...restProps\n}: FormLayoutGroupProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n const isRemovable = removable && mode === 'horizontal';\n const isSegmented = segmented && mode === 'horizontal';\n const rootEl = useExternRef(getRootRef);\n\n return (\n <div\n ref={rootEl}\n className={classNames(\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n mode === 'horizontal' &&\n classNames(\n styles['FormLayoutGroup--mode-horizontal'],\n 'vkuiInternalFormLayoutGroup--mode-horizontal',\n ),\n isRemovable &&\n classNames(\n styles['FormLayoutGroup--removable'],\n 'vkuiInternalFormLayoutGroup--removable',\n ),\n isSegmented &&\n classNames(\n styles['FormLayoutGroup--segmented'],\n 'vkuiInternalFormLayoutGroup--segmented',\n ),\n className,\n )}\n {...restProps}\n >\n {isRemovable ? (\n <Removable\n className={styles['FormLayoutGroup__removable']}\n align=\"start\"\n removePlaceholder={removePlaceholder}\n onRemove={(e) => {\n if (rootEl?.current) {\n onRemove(e, rootEl.current);\n }\n }}\n indent={removable === 'indent'}\n >\n {children}\n </Removable>\n ) : (\n <React.Fragment>\n {children}\n <span className={styles['FormLayoutGroup__offset']} aria-hidden />\n </React.Fragment>\n )}\n </div>\n );\n};\n"],"names":["React","classNames","noop","useAdaptivity","useExternRef","SizeType","Removable","sizeYClassNames","none","COMPACT","FormLayoutGroup","children","mode","removable","segmented","removePlaceholder","onRemove","getRootRef","className","restProps","sizeY","isRemovable","isSegmented","rootEl","div","ref","REGULAR","align","e","current","indent","Fragment","span","aria-hidden"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,SAAS,QAAwB,yBAAyB;AAGnE,IAAMC,kBAKJ;IAJAC,MAAMP,8CAEJ;GAEDI,SAASI,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/FormLayoutGroup/FormLayoutGroup.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { SizeType } from '../../lib/adaptivity';\nimport { HasRootRef } from '../../types';\nimport { Removable, RemovableProps } from '../Removable/Removable';\nimport styles from './FormLayoutGroup.module.css';\n\nconst sizeYClassNames = {\n none: classNames(\n styles['FormLayoutGroup--sizeY-none'],\n 'vkuiInternalFormLayoutGroup--sizeY-none',\n ),\n [SizeType.COMPACT]: classNames(\n styles['FormLayoutGroup--sizeY-compact'],\n 'vkuiInternalFormLayoutGroup--sizeY-compact',\n ),\n};\n\nexport interface FormLayoutGroupProps\n extends React.HTMLAttributes<HTMLDivElement>,\n RemovableProps,\n HasRootRef<HTMLDivElement> {\n mode?: 'vertical' | 'horizontal';\n /**\n * Только для режима horizontal. Дает возможность удалить всю группу `FormItem`.\n *\n * Режим `indent` предназначен для визуального отступа.\n */\n removable?: boolean | 'indent';\n\n /**\n * Только для режима horizontal. Дает возможность склеить несколько `FormItem`.\n */\n segmented?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FormLayoutGroup\n */\nexport const FormLayoutGroup = ({\n children,\n mode = 'vertical',\n removable,\n segmented,\n removePlaceholder = 'Удалить',\n onRemove = noop,\n getRootRef,\n className,\n ...restProps\n}: FormLayoutGroupProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n const isRemovable = removable && mode === 'horizontal';\n const isSegmented = segmented && mode === 'horizontal';\n const rootEl = useExternRef(getRootRef);\n\n return (\n <div\n ref={rootEl}\n className={classNames(\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n mode === 'horizontal' &&\n classNames(\n styles['FormLayoutGroup--mode-horizontal'],\n 'vkuiInternalFormLayoutGroup--mode-horizontal',\n ),\n isRemovable &&\n classNames(\n styles['FormLayoutGroup--removable'],\n 'vkuiInternalFormLayoutGroup--removable',\n ),\n isSegmented &&\n classNames(\n styles['FormLayoutGroup--segmented'],\n 'vkuiInternalFormLayoutGroup--segmented',\n ),\n className,\n )}\n {...restProps}\n >\n {isRemovable ? (\n <Removable\n className={styles['FormLayoutGroup__removable']}\n align=\"start\"\n removePlaceholder={removePlaceholder}\n onRemove={(e) => {\n if (rootEl?.current) {\n onRemove(e, rootEl.current);\n }\n }}\n indent={removable === 'indent'}\n >\n {children}\n </Removable>\n ) : (\n <React.Fragment>\n {children}\n <span className={styles['FormLayoutGroup__offset']} aria-hidden />\n </React.Fragment>\n )}\n </div>\n );\n};\n"],"names":["React","classNames","noop","useAdaptivity","useExternRef","SizeType","Removable","sizeYClassNames","none","COMPACT","FormLayoutGroup","children","mode","removable","segmented","removePlaceholder","onRemove","getRootRef","className","restProps","sizeY","isRemovable","isSegmented","rootEl","div","ref","REGULAR","align","e","current","indent","Fragment","span","aria-hidden"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,SAAS,QAAwB,yBAAyB;AAGnE,IAAMC,kBAKJ;IAJAC,MAAMP,8CAEJ;GAEDI,SAASI,OAAO,EAAGR,iDAElB;AAsBJ;;CAEC,GACD,OAAO,IAAMS,kBAAkB;QAC7BC,kBAAAA,+BACAC,MAAAA,gCAAO,0BACPC,mBAAAA,WACAC,mBAAAA,6CACAC,mBAAAA,0DAAoB,+DACpBC,UAAAA,wCAAWd,wBACXe,oBAAAA,YACAC,mBAAAA,WACGC;QARHR;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAA2Bf,iBAAAA,wCAAAA,eAAnBiB,OAAAA,0CAAQ;IAChB,IAAMC,cAAcR,aAAaD,SAAS;IAC1C,IAAMU,cAAcR,aAAaF,SAAS;IAC1C,IAAMW,SAASnB,aAAaa;IAE5B,qBACE,oBAACO;QACCC,KAAKF;QACLL,WAAWjB,WACTmB,UAAUf,SAASqB,OAAO,IAAInB,eAAe,CAACa,MAAM,EACpDR,SAAS,gBACPX,mDAEE,iDAEJoB,eACEpB,6CAEE,2CAEJqB,eACErB,6CAEE,2CAEJiB;OAEEC,YAEHE,4BACC,oBAACf;QACCY,SAAS;QACTS,OAAM;QACNZ,mBAAmBA;QACnBC,UAAU,SAACY;gBACLL;YAAJ,KAAIA,UAAAA,oBAAAA,8BAAAA,QAAQM,OAAO,EAAE;gBACnBb,SAASY,GAAGL,OAAOM,OAAO;YAC5B;QACF;QACAC,QAAQjB,cAAc;OAErBF,0BAGH,oBAACX,MAAM+B,QAAQ,QACZpB,wBACD,oBAACqB;QAAKd,SAAS;QAAqCe,eAAAA;;AAK9D,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Gallery/Gallery.tsx"],"sourcesContent":["import * as React from 'react';\nimport { clamp } from '../../helpers/math';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { BaseGallery } from '../BaseGallery/BaseGallery';\nimport { BaseGalleryProps } from '../BaseGallery/types';\n\nexport interface GalleryProps extends BaseGalleryProps {\n initialSlideIndex?: number;\n timeout?: number;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Gallery\n */\nexport const Gallery = ({\n initialSlideIndex = 0,\n children,\n timeout = 0,\n onChange,\n bullets,\n ...props\n}: GalleryProps) => {\n const [localSlideIndex, setSlideIndex] = React.useState(initialSlideIndex);\n const isControlled = typeof props.slideIndex === 'number';\n const slideIndex = isControlled ? props.slideIndex ?? 0 : localSlideIndex;\n const isDraggable = !isControlled || Boolean(onChange);\n const slides = React.useMemo(\n () => React.Children.toArray(children).filter((item) => Boolean(item)),\n [children],\n );\n const childCount = slides.length;\n\n const handleChange: GalleryProps['onChange'] = React.useCallback(\n (current: number) => {\n if (current === slideIndex) {\n return;\n }\n !isControlled && setSlideIndex(current);\n onChange && onChange(current);\n },\n [isControlled, onChange, slideIndex],\n );\n\n const autoplay = useTimeout(() => handleChange((slideIndex + 1) % childCount), timeout);\n React.useEffect(\n () => (timeout ? autoplay.set() : autoplay.clear()),\n [timeout, slideIndex, autoplay],\n );\n\n // prevent invalid slideIndex\n // any slide index is invalid with no slides, just keep it as is\n const safeSlideIndex = childCount > 0 ? clamp(slideIndex, 0, childCount - 1) : slideIndex;\n // notify parent in controlled mode\n React.useEffect(() => {\n if (onChange && safeSlideIndex !== slideIndex) {\n onChange(safeSlideIndex);\n }\n setSlideIndex(safeSlideIndex);\n }, [onChange, safeSlideIndex, slideIndex]);\n\n return (\n <BaseGallery\n isDraggable={isDraggable}\n {...props}\n bullets={childCount > 0 && bullets}\n slideIndex={safeSlideIndex}\n onChange={handleChange}\n >\n {slides}\n </BaseGallery>\n );\n};\n"],"names":["React","clamp","useTimeout","BaseGallery","Gallery","initialSlideIndex","children","timeout","onChange","bullets","props","useState","localSlideIndex","setSlideIndex","isControlled","slideIndex","isDraggable","Boolean","slides","useMemo","Children","toArray","filter","item","childCount","length","handleChange","useCallback","current","autoplay","useEffect","set","clear","safeSlideIndex"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,KAAK,QAAQ,qBAAqB;AAC3C,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,WAAW,QAAQ,6BAA6B;AAQzD;;CAEC,GACD,OAAO,IAAMC,UAAU;0CACrBC,mBAAAA,0DAAoB,8BACpBC,kBAAAA,kCACAC,SAAAA,sCAAU,oBACVC,kBAAAA,UACAC,iBAAAA,SACGC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAyCT,mCAAAA,MAAMW,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Gallery/Gallery.tsx"],"sourcesContent":["import * as React from 'react';\nimport { clamp } from '../../helpers/math';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { BaseGallery } from '../BaseGallery/BaseGallery';\nimport { BaseGalleryProps } from '../BaseGallery/types';\n\nexport interface GalleryProps extends BaseGalleryProps {\n initialSlideIndex?: number;\n timeout?: number;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Gallery\n */\nexport const Gallery = ({\n initialSlideIndex = 0,\n children,\n timeout = 0,\n onChange,\n bullets,\n ...props\n}: GalleryProps) => {\n const [localSlideIndex, setSlideIndex] = React.useState(initialSlideIndex);\n const isControlled = typeof props.slideIndex === 'number';\n const slideIndex = isControlled ? props.slideIndex ?? 0 : localSlideIndex;\n const isDraggable = !isControlled || Boolean(onChange);\n const slides = React.useMemo(\n () => React.Children.toArray(children).filter((item) => Boolean(item)),\n [children],\n );\n const childCount = slides.length;\n\n const handleChange: GalleryProps['onChange'] = React.useCallback(\n (current: number) => {\n if (current === slideIndex) {\n return;\n }\n !isControlled && setSlideIndex(current);\n onChange && onChange(current);\n },\n [isControlled, onChange, slideIndex],\n );\n\n const autoplay = useTimeout(() => handleChange((slideIndex + 1) % childCount), timeout);\n React.useEffect(\n () => (timeout ? autoplay.set() : autoplay.clear()),\n [timeout, slideIndex, autoplay],\n );\n\n // prevent invalid slideIndex\n // any slide index is invalid with no slides, just keep it as is\n const safeSlideIndex = childCount > 0 ? clamp(slideIndex, 0, childCount - 1) : slideIndex;\n // notify parent in controlled mode\n React.useEffect(() => {\n if (onChange && safeSlideIndex !== slideIndex) {\n onChange(safeSlideIndex);\n }\n setSlideIndex(safeSlideIndex);\n }, [onChange, safeSlideIndex, slideIndex]);\n\n return (\n <BaseGallery\n isDraggable={isDraggable}\n {...props}\n bullets={childCount > 0 && bullets}\n slideIndex={safeSlideIndex}\n onChange={handleChange}\n >\n {slides}\n </BaseGallery>\n );\n};\n"],"names":["React","clamp","useTimeout","BaseGallery","Gallery","initialSlideIndex","children","timeout","onChange","bullets","props","useState","localSlideIndex","setSlideIndex","isControlled","slideIndex","isDraggable","Boolean","slides","useMemo","Children","toArray","filter","item","childCount","length","handleChange","useCallback","current","autoplay","useEffect","set","clear","safeSlideIndex"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,KAAK,QAAQ,qBAAqB;AAC3C,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,WAAW,QAAQ,6BAA6B;AAQzD;;CAEC,GACD,OAAO,IAAMC,UAAU;0CACrBC,mBAAAA,0DAAoB,8BACpBC,kBAAAA,kCACAC,SAAAA,sCAAU,oBACVC,kBAAAA,UACAC,iBAAAA,SACGC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAyCT,mCAAAA,MAAMW,QAAQ,CAACN,wBAAjDO,kBAAkCZ,oBAAjBa,gBAAiBb;IACzC,IAAMc,eAAe,OAAOJ,MAAMK,UAAU,KAAK;QACfL;IAAlC,IAAMK,aAAaD,eAAeJ,CAAAA,oBAAAA,MAAMK,UAAU,cAAhBL,+BAAAA,oBAAoB,IAAIE;IAC1D,IAAMI,cAAc,CAACF,gBAAgBG,QAAQT;IAC7C,IAAMU,SAASlB,MAAMmB,OAAO,CAC1B;eAAMnB,MAAMoB,QAAQ,CAACC,OAAO,CAACf,UAAUgB,MAAM,CAAC,SAACC;mBAASN,QAAQM;;OAChE;QAACjB;KAAS;IAEZ,IAAMkB,aAAaN,OAAOO,MAAM;IAEhC,IAAMC,eAAyC1B,MAAM2B,WAAW,CAC9D,SAACC;QACC,IAAIA,YAAYb,YAAY;YAC1B;QACF;QACA,CAACD,gBAAgBD,cAAce;QAC/BpB,YAAYA,SAASoB;IACvB,GACA;QAACd;QAAcN;QAAUO;KAAW;IAGtC,IAAMc,WAAW3B,WAAW;eAAMwB,aAAa,AAACX,CAAAA,aAAa,CAAA,IAAKS;OAAajB;IAC/EP,MAAM8B,SAAS,CACb;eAAOvB,UAAUsB,SAASE,GAAG,KAAKF,SAASG,KAAK;OAChD;QAACzB;QAASQ;QAAYc;KAAS;IAGjC,6BAA6B;IAC7B,gEAAgE;IAChE,IAAMI,iBAAiBT,aAAa,IAAIvB,MAAMc,YAAY,GAAGS,aAAa,KAAKT;IAC/E,mCAAmC;IACnCf,MAAM8B,SAAS,CAAC;QACd,IAAItB,YAAYyB,mBAAmBlB,YAAY;YAC7CP,SAASyB;QACX;QACApB,cAAcoB;IAChB,GAAG;QAACzB;QAAUyB;QAAgBlB;KAAW;IAEzC,qBACE,oBAACZ;QACCa,aAAaA;OACTN;QACJD,SAASe,aAAa,KAAKf;QAC3BM,YAAYkB;QACZzB,UAAUkB;QAETR;AAGP,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/GridAvatar/GridAvatar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ImageBase, type ImageBaseProps } from '../ImageBase/ImageBase';\nimport { GridAvatarBadge, type GridAvatarBadgeProps } from './GridAvatarBadge/GridAvatarBadge';\nimport styles from './GridAvatar.module.css';\n\nexport { GridAvatarBadgeProps };\n\nexport const GRID_AVATAR_DEFAULT_SIZE = 48;\n\nexport const MAX_GRID_LENGTH = 4;\n\nexport interface GridAvatarProps extends Omit<ImageBaseProps, 'src' | 'fallbackIcon'> {\n /**\n * Массив со ссылками. От 1 до 4 элементов.\n */\n src?: string[];\n}\n\nconst warn = warnOnce('GridAvatar');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/GridAvatar\n */\nexport const GridAvatar = ({\n src = [],\n size = GRID_AVATAR_DEFAULT_SIZE,\n className,\n children,\n ...restProps\n}: GridAvatarProps) => {\n if (process.env.NODE_ENV === 'development') {\n if (src.length > MAX_GRID_LENGTH) {\n warn(`Длина массива src (${src.length}) больше максимальной (${MAX_GRID_LENGTH})`, 'error');\n }\n }\n\n return (\n <ImageBase {...restProps} size={size} className={classNames(styles['GridAvatar'], className)}>\n <div className={styles['GridAvatar__in']} aria-hidden>\n {src.map((url, index) =>\n index < MAX_GRID_LENGTH ? (\n <div\n key={url}\n className={styles['GridAvatar__item']}\n style={{ backgroundImage: `url(${url})` }}\n />\n ) : null,\n )}\n </div>\n {children}\n </ImageBase>\n );\n};\n\nGridAvatar.Badge = GridAvatarBadge;\n"],"names":["React","classNames","warnOnce","ImageBase","GridAvatarBadge","GRID_AVATAR_DEFAULT_SIZE","MAX_GRID_LENGTH","warn","GridAvatar","src","size","className","children","restProps","process","env","NODE_ENV","length","div","aria-hidden","map","url","index","key","style","backgroundImage","Badge"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,SAAS,QAA6B,yBAAyB;AACxE,SAASC,eAAe,QAAmC,oCAAoC;AAK/F,OAAO,IAAMC,2BAA2B,GAAG;AAE3C,OAAO,IAAMC,kBAAkB,EAAE;AASjC,IAAMC,OAAOL,SAAS;AAEtB;;CAEC,GACD,OAAO,IAAMM,aAAa;4BACxBC,KAAAA,8BAAM,EAAE,oCACRC,MAAAA,gCAAOL,wCACPM,mBAAAA,WACAC,kBAAAA,UACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAIE,QAAQC,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/GridAvatar/GridAvatar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ImageBase, type ImageBaseProps } from '../ImageBase/ImageBase';\nimport { GridAvatarBadge, type GridAvatarBadgeProps } from './GridAvatarBadge/GridAvatarBadge';\nimport styles from './GridAvatar.module.css';\n\nexport { GridAvatarBadgeProps };\n\nexport const GRID_AVATAR_DEFAULT_SIZE = 48;\n\nexport const MAX_GRID_LENGTH = 4;\n\nexport interface GridAvatarProps extends Omit<ImageBaseProps, 'src' | 'fallbackIcon'> {\n /**\n * Массив со ссылками. От 1 до 4 элементов.\n */\n src?: string[];\n}\n\nconst warn = warnOnce('GridAvatar');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/GridAvatar\n */\nexport const GridAvatar = ({\n src = [],\n size = GRID_AVATAR_DEFAULT_SIZE,\n className,\n children,\n ...restProps\n}: GridAvatarProps) => {\n if (process.env.NODE_ENV === 'development') {\n if (src.length > MAX_GRID_LENGTH) {\n warn(`Длина массива src (${src.length}) больше максимальной (${MAX_GRID_LENGTH})`, 'error');\n }\n }\n\n return (\n <ImageBase {...restProps} size={size} className={classNames(styles['GridAvatar'], className)}>\n <div className={styles['GridAvatar__in']} aria-hidden>\n {src.map((url, index) =>\n index < MAX_GRID_LENGTH ? (\n <div\n key={url}\n className={styles['GridAvatar__item']}\n style={{ backgroundImage: `url(${url})` }}\n />\n ) : null,\n )}\n </div>\n {children}\n </ImageBase>\n );\n};\n\nGridAvatar.Badge = GridAvatarBadge;\n"],"names":["React","classNames","warnOnce","ImageBase","GridAvatarBadge","GRID_AVATAR_DEFAULT_SIZE","MAX_GRID_LENGTH","warn","GridAvatar","src","size","className","children","restProps","process","env","NODE_ENV","length","div","aria-hidden","map","url","index","key","style","backgroundImage","Badge"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,SAAS,QAA6B,yBAAyB;AACxE,SAASC,eAAe,QAAmC,oCAAoC;AAK/F,OAAO,IAAMC,2BAA2B,GAAG;AAE3C,OAAO,IAAMC,kBAAkB,EAAE;AASjC,IAAMC,OAAOL,SAAS;AAEtB;;CAEC,GACD,OAAO,IAAMM,aAAa;4BACxBC,KAAAA,8BAAM,EAAE,oCACRC,MAAAA,gCAAOL,wCACPM,mBAAAA,WACAC,kBAAAA,UACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAIE,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,IAAIP,IAAIQ,MAAM,GAAGX,iBAAiB;YAChCC,KAAK,AAAC,sBAAyDD,OAApCG,IAAIQ,MAAM,EAAC,2BAAyC,OAAhBX,iBAAgB,MAAI;QACrF;IACF;IAEA,qBACE,oBAACH,mDAAcU;QAAWH,MAAMA;QAAMC,WAAWV,6BAAiCU;sBAChF,oBAACO;QAAIP,SAAS;QAA4BQ,eAAAA;OACvCV,IAAIW,GAAG,CAAC,SAACC,KAAKC;eACbA,QAAQhB,gCACN,oBAACY;YACCK,KAAKF;YACLV,SAAS;YACTa,OAAO;gBAAEC,iBAAiB,AAAC,OAAU,OAAJJ,KAAI;YAAG;aAExC;SAGPT;AAGP,EAAE;AAEFJ,WAAWkB,KAAK,GAAGtB"}
|