@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
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
.HorizontalCellShowMore {
|
|
2
|
+
display: flex;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.HorizontalCellShowMore--compensate-last-cell-indent {
|
|
6
|
+
/* Компенсация бокового отступа, заданного в последнем HorizontalCell:last-child::after */
|
|
7
|
+
margin-left: calc(-1 * var(--vkui_internal--side_cell_gap));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.HorizontalCellShowMore:last-child::after {
|
|
11
|
+
content: '';
|
|
12
|
+
min-width: var(--vkui_internal--side_cell_gap);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.HorizontalCellShowMore__body {
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
justify-content: center;
|
|
19
|
+
align-items: center;
|
|
20
|
+
padding: 4px var(--vkui--spacing_size_s);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.HorizontalCellShowMore--size-s .HorizontalCellShowMore__body {
|
|
24
|
+
min-width: 64px;
|
|
25
|
+
padding: var(--vkui--spacing_size_xs);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.HorizontalCellShowMore--size-m .HorizontalCellShowMore__body,
|
|
29
|
+
.HorizontalCellShowMore--size-l .HorizontalCellShowMore__body {
|
|
30
|
+
width: 128px;
|
|
31
|
+
margin-bottom: auto;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* Перебиваем селектор в Tappable--sizeX-(compact|none) */
|
|
35
|
+
|
|
36
|
+
.HorizontalCellShowMore .HorizontalCellShowMore__body {
|
|
37
|
+
border-radius: var(--vkui--size_border_radius--regular);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.HorizontalCellShowMore__icon {
|
|
41
|
+
color: var(--vkui--color_icon_accent);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.HorizontalCellShowMore__text {
|
|
45
|
+
padding-top: 8px;
|
|
46
|
+
color: var(--vkui--color_text_accent);
|
|
47
|
+
}
|
|
@@ -20,7 +20,7 @@ import styles from './HorizontalScroll.module.css';
|
|
|
20
20
|
* Константа взята из полифила (468), на дизайн-ревью уточнили до 250
|
|
21
21
|
* @var {number} SCROLL_ONE_FRAME_TIME время анимации скролла
|
|
22
22
|
*/ const SCROLL_ONE_FRAME_TIME = 250;
|
|
23
|
-
function doScroll({ scrollElement
|
|
23
|
+
function doScroll({ scrollElement, getScrollPosition, animationQueue, onScrollToRightBorder, onScrollEnd, onScrollStart, initialScrollWidth, scrollAnimationDuration = SCROLL_ONE_FRAME_TIME }) {
|
|
24
24
|
if (!scrollElement || !getScrollPosition) {
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
@@ -58,7 +58,7 @@ function doScroll({ scrollElement , getScrollPosition , animationQueue , onScrol
|
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
60
|
* @see https://vkcom.github.io/VKUI/#/HorizontalScroll
|
|
61
|
-
*/ export const HorizontalScroll = ({ children
|
|
61
|
+
*/ export const HorizontalScroll = ({ children, getScrollToLeft, getScrollToRight, showArrows = true, arrowSize = 'l', arrowOffsetY, scrollAnimationDuration = SCROLL_ONE_FRAME_TIME, getRef, className, scrollOnAnyWheel = false, ...restProps })=>{
|
|
62
62
|
const [canScrollLeft, setCanScrollLeft] = React.useState(false);
|
|
63
63
|
const [canScrollRight, setCanScrollRight] = React.useState(false);
|
|
64
64
|
const isCustomScrollingRef = React.useRef(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/HorizontalScroll/HorizontalScroll.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivityHasPointer } from '../../hooks/useAdaptivityHasPointer';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { easeInOutSine } from '../../lib/fx';\nimport { HasRef } from '../../types';\nimport { ScrollArrow } from '../ScrollArrow/ScrollArrow';\nimport styles from './HorizontalScroll.module.css';\n\ninterface ScrollContext {\n scrollElement: HTMLElement | null;\n scrollAnimationDuration: number;\n animationQueue: VoidFunction[];\n getScrollPosition: (currentPosition: number) => number;\n onScrollToRightBorder: VoidFunction;\n onScrollEnd: VoidFunction;\n onScrollStart: VoidFunction;\n /**\n * Начальная ширина прокрутки.\n * В некоторых случаях может отличаться от текущей ширины прокрутки из-за transforms: translate\n */\n initialScrollWidth: number;\n}\n\nexport type ScrollPositionHandler = (currentPosition: number) => number;\n\nexport interface HorizontalScrollProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * Функция для расчета величины прокрутки при клике на левую стрелку.\n */\n getScrollToLeft?: ScrollPositionHandler;\n /**\n * Функция для расчета величины прокрутки при клике на правую стрелку.\n */\n getScrollToRight?: ScrollPositionHandler;\n arrowSize?: 'm' | 'l';\n /**\n * Смещает иконки кнопок навигации по вертикали.\n */\n arrowOffsetY?: number | string;\n showArrows?: boolean | 'always';\n scrollAnimationDuration?: number;\n /**\n * Добавляет возможность прокручивать контент на любое колесо мыши.\n * По умолчанию прокручивается как любой горизонтальный контент через shift.\n */\n scrollOnAnyWheel?: boolean;\n}\n\n/**\n * timing method\n */\nfunction now() {\n return performance && performance.now ? performance.now() : Date.now();\n}\n\n/**\n * Округляем el.scrollLeft\n * https://github.com/VKCOM/VKUI/pull/2445\n */\nconst roundUpElementScrollLeft = (el: HTMLElement) => Math.ceil(el.scrollLeft);\n\n/**\n * Код анимации скрола, на основе полифила: https://github.com/iamdustan/smoothscroll\n * Константа взята из полифила (468), на дизайн-ревью уточнили до 250\n * @var {number} SCROLL_ONE_FRAME_TIME время анимации скролла\n */\nconst SCROLL_ONE_FRAME_TIME = 250;\n\nfunction doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue,\n onScrollToRightBorder,\n onScrollEnd,\n onScrollStart,\n initialScrollWidth,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n}: ScrollContext) {\n if (!scrollElement || !getScrollPosition) {\n return;\n }\n\n /**\n * максимальное значение сдвига влево\n */\n const maxLeft = initialScrollWidth - scrollElement.offsetWidth;\n\n let startLeft = roundUpElementScrollLeft(scrollElement);\n let endLeft = getScrollPosition(startLeft);\n\n onScrollStart();\n\n if (endLeft >= maxLeft) {\n onScrollToRightBorder();\n endLeft = maxLeft;\n }\n\n const startTime = now();\n\n (function scroll() {\n if (!scrollElement) {\n onScrollEnd();\n return;\n }\n\n const time = now();\n const elapsed = Math.min((time - startTime) / scrollAnimationDuration, 1);\n\n const value = easeInOutSine(elapsed);\n\n const currentLeft = startLeft + (endLeft - startLeft) * value;\n scrollElement.scrollLeft = Math.ceil(currentLeft);\n\n if (roundUpElementScrollLeft(scrollElement) !== Math.max(0, endLeft) && elapsed !== 1) {\n requestAnimationFrame(scroll);\n return;\n }\n\n onScrollEnd();\n animationQueue.shift();\n if (animationQueue.length > 0) {\n animationQueue[0]();\n }\n })();\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/HorizontalScroll\n */\nexport const HorizontalScroll = ({\n children,\n getScrollToLeft,\n getScrollToRight,\n showArrows = true,\n arrowSize = 'l',\n arrowOffsetY,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n getRef,\n className,\n scrollOnAnyWheel = false,\n ...restProps\n}: HorizontalScrollProps) => {\n const [canScrollLeft, setCanScrollLeft] = React.useState(false);\n const [canScrollRight, setCanScrollRight] = React.useState(false);\n\n const isCustomScrollingRef = React.useRef(false);\n\n const scrollerRef = useExternRef(getRef);\n\n const animationQueue = React.useRef<VoidFunction[]>([]);\n\n const hasPointer = useAdaptivityHasPointer();\n\n const scrollTo = React.useCallback(\n (getScrollPosition: ScrollPositionHandler) => {\n const scrollElement = scrollerRef.current;\n\n animationQueue.current.push(() =>\n doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue: animationQueue.current,\n onScrollToRightBorder: () => setCanScrollRight(false),\n onScrollEnd: () => (isCustomScrollingRef.current = false),\n onScrollStart: () => (isCustomScrollingRef.current = true),\n initialScrollWidth: scrollElement?.firstElementChild?.scrollWidth || 0,\n scrollAnimationDuration,\n }),\n );\n if (animationQueue.current.length === 1) {\n animationQueue.current[0]();\n }\n },\n [scrollAnimationDuration, scrollerRef],\n );\n\n const scrollToLeft = React.useCallback(() => {\n const getScrollPosition =\n getScrollToLeft ?? ((i: number) => i - scrollerRef.current!.offsetWidth);\n scrollTo(getScrollPosition);\n }, [getScrollToLeft, scrollTo, scrollerRef]);\n\n const scrollToRight = React.useCallback(() => {\n const getScrollPosition =\n getScrollToRight ?? ((i: number) => i + scrollerRef.current!.offsetWidth);\n scrollTo(getScrollPosition);\n }, [getScrollToRight, scrollTo, scrollerRef]);\n\n const onscroll = React.useCallback(() => {\n if (showArrows && hasPointer && scrollerRef.current && !isCustomScrollingRef.current) {\n const scrollElement = scrollerRef.current;\n\n setCanScrollLeft(scrollElement.scrollLeft > 0);\n setCanScrollRight(\n roundUpElementScrollLeft(scrollElement) + scrollElement.offsetWidth <\n scrollElement.scrollWidth,\n );\n }\n }, [hasPointer, scrollerRef, showArrows]);\n\n const scrollEvent = useEventListener('scroll', onscroll);\n React.useEffect(() => {\n if (scrollerRef.current) {\n scrollEvent.add(scrollerRef.current);\n }\n }, [scrollEvent, scrollerRef]);\n React.useEffect(onscroll, [scrollerRef, children, onscroll]);\n\n /**\n * Прокрутка с помощью любого колеса мыши\n */\n const onwheel = React.useCallback(\n (e: WheelEvent) => {\n scrollerRef.current!.scrollBy({ left: e.deltaX + e.deltaY, behavior: 'auto' });\n e.preventDefault();\n },\n [scrollerRef],\n );\n\n const wheelEvent = useEventListener('wheel', onwheel);\n React.useEffect(() => {\n if (!scrollerRef.current || !scrollOnAnyWheel) {\n return noop;\n }\n\n wheelEvent.add(scrollerRef.current);\n\n return wheelEvent.remove;\n }, [wheelEvent, scrollerRef, scrollOnAnyWheel]);\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['HorizontalScroll'],\n 'vkuiInternalHorizontalScroll',\n showArrows === 'always' && styles['HorizontalScroll--withConstArrows'],\n className,\n )}\n >\n {showArrows && (hasPointer || hasPointer === undefined) && canScrollLeft && (\n <ScrollArrow\n size={arrowSize}\n offsetY={arrowOffsetY}\n direction=\"left\"\n className={classNames(\n styles['HorizontalScroll__arrow'],\n styles['HorizontalScroll__arrowLeft'],\n )}\n onClick={scrollToLeft}\n />\n )}\n {showArrows && (hasPointer || hasPointer === undefined) && canScrollRight && (\n <ScrollArrow\n size={arrowSize}\n offsetY={arrowOffsetY}\n direction=\"right\"\n className={classNames(\n styles['HorizontalScroll__arrow'],\n styles['HorizontalScroll__arrowRight'],\n )}\n onClick={scrollToRight}\n />\n )}\n <div className={styles['HorizontalScroll__in']} ref={scrollerRef}>\n <div className={styles['HorizontalScroll__in-wrapper']}>{children}</div>\n </div>\n </div>\n );\n};\n"],"names":["React","classNames","noop","useAdaptivityHasPointer","useEventListener","useExternRef","easeInOutSine","ScrollArrow","styles","now","performance","Date","roundUpElementScrollLeft","el","Math","ceil","scrollLeft","SCROLL_ONE_FRAME_TIME","doScroll","scrollElement","getScrollPosition","animationQueue","onScrollToRightBorder","onScrollEnd","onScrollStart","initialScrollWidth","scrollAnimationDuration","maxLeft","offsetWidth","startLeft","endLeft","startTime","scroll","time","elapsed","min","value","currentLeft","max","requestAnimationFrame","shift","length","HorizontalScroll","children","getScrollToLeft","getScrollToRight","showArrows","arrowSize","arrowOffsetY","getRef","className","scrollOnAnyWheel","restProps","canScrollLeft","setCanScrollLeft","useState","canScrollRight","setCanScrollRight","isCustomScrollingRef","useRef","scrollerRef","hasPointer","scrollTo","useCallback","current","push","firstElementChild","scrollWidth","scrollToLeft","i","scrollToRight","onscroll","scrollEvent","useEffect","add","onwheel","e","scrollBy","left","deltaX","deltaY","behavior","preventDefault","wheelEvent","remove","div","undefined","size","offsetY","direction","onClick","ref"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/HorizontalScroll/HorizontalScroll.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivityHasPointer } from '../../hooks/useAdaptivityHasPointer';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { easeInOutSine } from '../../lib/fx';\nimport { HasRef } from '../../types';\nimport { ScrollArrow } from '../ScrollArrow/ScrollArrow';\nimport styles from './HorizontalScroll.module.css';\n\ninterface ScrollContext {\n scrollElement: HTMLElement | null;\n scrollAnimationDuration: number;\n animationQueue: VoidFunction[];\n getScrollPosition: (currentPosition: number) => number;\n onScrollToRightBorder: VoidFunction;\n onScrollEnd: VoidFunction;\n onScrollStart: VoidFunction;\n /**\n * Начальная ширина прокрутки.\n * В некоторых случаях может отличаться от текущей ширины прокрутки из-за transforms: translate\n */\n initialScrollWidth: number;\n}\n\nexport type ScrollPositionHandler = (currentPosition: number) => number;\n\nexport interface HorizontalScrollProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * Функция для расчета величины прокрутки при клике на левую стрелку.\n */\n getScrollToLeft?: ScrollPositionHandler;\n /**\n * Функция для расчета величины прокрутки при клике на правую стрелку.\n */\n getScrollToRight?: ScrollPositionHandler;\n arrowSize?: 'm' | 'l';\n /**\n * Смещает иконки кнопок навигации по вертикали.\n */\n arrowOffsetY?: number | string;\n showArrows?: boolean | 'always';\n scrollAnimationDuration?: number;\n /**\n * Добавляет возможность прокручивать контент на любое колесо мыши.\n * По умолчанию прокручивается как любой горизонтальный контент через shift.\n */\n scrollOnAnyWheel?: boolean;\n}\n\n/**\n * timing method\n */\nfunction now() {\n return performance && performance.now ? performance.now() : Date.now();\n}\n\n/**\n * Округляем el.scrollLeft\n * https://github.com/VKCOM/VKUI/pull/2445\n */\nconst roundUpElementScrollLeft = (el: HTMLElement) => Math.ceil(el.scrollLeft);\n\n/**\n * Код анимации скрола, на основе полифила: https://github.com/iamdustan/smoothscroll\n * Константа взята из полифила (468), на дизайн-ревью уточнили до 250\n * @var {number} SCROLL_ONE_FRAME_TIME время анимации скролла\n */\nconst SCROLL_ONE_FRAME_TIME = 250;\n\nfunction doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue,\n onScrollToRightBorder,\n onScrollEnd,\n onScrollStart,\n initialScrollWidth,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n}: ScrollContext) {\n if (!scrollElement || !getScrollPosition) {\n return;\n }\n\n /**\n * максимальное значение сдвига влево\n */\n const maxLeft = initialScrollWidth - scrollElement.offsetWidth;\n\n let startLeft = roundUpElementScrollLeft(scrollElement);\n let endLeft = getScrollPosition(startLeft);\n\n onScrollStart();\n\n if (endLeft >= maxLeft) {\n onScrollToRightBorder();\n endLeft = maxLeft;\n }\n\n const startTime = now();\n\n (function scroll() {\n if (!scrollElement) {\n onScrollEnd();\n return;\n }\n\n const time = now();\n const elapsed = Math.min((time - startTime) / scrollAnimationDuration, 1);\n\n const value = easeInOutSine(elapsed);\n\n const currentLeft = startLeft + (endLeft - startLeft) * value;\n scrollElement.scrollLeft = Math.ceil(currentLeft);\n\n if (roundUpElementScrollLeft(scrollElement) !== Math.max(0, endLeft) && elapsed !== 1) {\n requestAnimationFrame(scroll);\n return;\n }\n\n onScrollEnd();\n animationQueue.shift();\n if (animationQueue.length > 0) {\n animationQueue[0]();\n }\n })();\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/HorizontalScroll\n */\nexport const HorizontalScroll = ({\n children,\n getScrollToLeft,\n getScrollToRight,\n showArrows = true,\n arrowSize = 'l',\n arrowOffsetY,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n getRef,\n className,\n scrollOnAnyWheel = false,\n ...restProps\n}: HorizontalScrollProps) => {\n const [canScrollLeft, setCanScrollLeft] = React.useState(false);\n const [canScrollRight, setCanScrollRight] = React.useState(false);\n\n const isCustomScrollingRef = React.useRef(false);\n\n const scrollerRef = useExternRef(getRef);\n\n const animationQueue = React.useRef<VoidFunction[]>([]);\n\n const hasPointer = useAdaptivityHasPointer();\n\n const scrollTo = React.useCallback(\n (getScrollPosition: ScrollPositionHandler) => {\n const scrollElement = scrollerRef.current;\n\n animationQueue.current.push(() =>\n doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue: animationQueue.current,\n onScrollToRightBorder: () => setCanScrollRight(false),\n onScrollEnd: () => (isCustomScrollingRef.current = false),\n onScrollStart: () => (isCustomScrollingRef.current = true),\n initialScrollWidth: scrollElement?.firstElementChild?.scrollWidth || 0,\n scrollAnimationDuration,\n }),\n );\n if (animationQueue.current.length === 1) {\n animationQueue.current[0]();\n }\n },\n [scrollAnimationDuration, scrollerRef],\n );\n\n const scrollToLeft = React.useCallback(() => {\n const getScrollPosition =\n getScrollToLeft ?? ((i: number) => i - scrollerRef.current!.offsetWidth);\n scrollTo(getScrollPosition);\n }, [getScrollToLeft, scrollTo, scrollerRef]);\n\n const scrollToRight = React.useCallback(() => {\n const getScrollPosition =\n getScrollToRight ?? ((i: number) => i + scrollerRef.current!.offsetWidth);\n scrollTo(getScrollPosition);\n }, [getScrollToRight, scrollTo, scrollerRef]);\n\n const onscroll = React.useCallback(() => {\n if (showArrows && hasPointer && scrollerRef.current && !isCustomScrollingRef.current) {\n const scrollElement = scrollerRef.current;\n\n setCanScrollLeft(scrollElement.scrollLeft > 0);\n setCanScrollRight(\n roundUpElementScrollLeft(scrollElement) + scrollElement.offsetWidth <\n scrollElement.scrollWidth,\n );\n }\n }, [hasPointer, scrollerRef, showArrows]);\n\n const scrollEvent = useEventListener('scroll', onscroll);\n React.useEffect(() => {\n if (scrollerRef.current) {\n scrollEvent.add(scrollerRef.current);\n }\n }, [scrollEvent, scrollerRef]);\n React.useEffect(onscroll, [scrollerRef, children, onscroll]);\n\n /**\n * Прокрутка с помощью любого колеса мыши\n */\n const onwheel = React.useCallback(\n (e: WheelEvent) => {\n scrollerRef.current!.scrollBy({ left: e.deltaX + e.deltaY, behavior: 'auto' });\n e.preventDefault();\n },\n [scrollerRef],\n );\n\n const wheelEvent = useEventListener('wheel', onwheel);\n React.useEffect(() => {\n if (!scrollerRef.current || !scrollOnAnyWheel) {\n return noop;\n }\n\n wheelEvent.add(scrollerRef.current);\n\n return wheelEvent.remove;\n }, [wheelEvent, scrollerRef, scrollOnAnyWheel]);\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['HorizontalScroll'],\n 'vkuiInternalHorizontalScroll',\n showArrows === 'always' && styles['HorizontalScroll--withConstArrows'],\n className,\n )}\n >\n {showArrows && (hasPointer || hasPointer === undefined) && canScrollLeft && (\n <ScrollArrow\n size={arrowSize}\n offsetY={arrowOffsetY}\n direction=\"left\"\n className={classNames(\n styles['HorizontalScroll__arrow'],\n styles['HorizontalScroll__arrowLeft'],\n )}\n onClick={scrollToLeft}\n />\n )}\n {showArrows && (hasPointer || hasPointer === undefined) && canScrollRight && (\n <ScrollArrow\n size={arrowSize}\n offsetY={arrowOffsetY}\n direction=\"right\"\n className={classNames(\n styles['HorizontalScroll__arrow'],\n styles['HorizontalScroll__arrowRight'],\n )}\n onClick={scrollToRight}\n />\n )}\n <div className={styles['HorizontalScroll__in']} ref={scrollerRef}>\n <div className={styles['HorizontalScroll__in-wrapper']}>{children}</div>\n </div>\n </div>\n );\n};\n"],"names":["React","classNames","noop","useAdaptivityHasPointer","useEventListener","useExternRef","easeInOutSine","ScrollArrow","styles","now","performance","Date","roundUpElementScrollLeft","el","Math","ceil","scrollLeft","SCROLL_ONE_FRAME_TIME","doScroll","scrollElement","getScrollPosition","animationQueue","onScrollToRightBorder","onScrollEnd","onScrollStart","initialScrollWidth","scrollAnimationDuration","maxLeft","offsetWidth","startLeft","endLeft","startTime","scroll","time","elapsed","min","value","currentLeft","max","requestAnimationFrame","shift","length","HorizontalScroll","children","getScrollToLeft","getScrollToRight","showArrows","arrowSize","arrowOffsetY","getRef","className","scrollOnAnyWheel","restProps","canScrollLeft","setCanScrollLeft","useState","canScrollRight","setCanScrollRight","isCustomScrollingRef","useRef","scrollerRef","hasPointer","scrollTo","useCallback","current","push","firstElementChild","scrollWidth","scrollToLeft","i","scrollToRight","onscroll","scrollEvent","useEffect","add","onwheel","e","scrollBy","left","deltaX","deltaY","behavior","preventDefault","wheelEvent","remove","div","undefined","size","offsetY","direction","onClick","ref"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { usePatchChildrenRef } from '../../hooks/usePatchChildrenRef';
|
|
|
4
4
|
import { useTimeout } from '../../hooks/useTimeout';
|
|
5
5
|
import { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';
|
|
6
6
|
import { Popper } from '../Popper/Popper';
|
|
7
|
-
export const HoverPopper = ({ getRef
|
|
7
|
+
export const HoverPopper = ({ getRef, content, children, onShownChange, shown: _shown, showDelay = 150, hideDelay = 150, ...restProps })=>{
|
|
8
8
|
const [computedShown, setComputedShown] = React.useState(_shown || false);
|
|
9
9
|
const shown = typeof _shown === 'boolean' ? _shown : computedShown;
|
|
10
10
|
const setShown = (value)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/HoverPopper/HoverPopper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { usePatchChildrenRef } from '../../hooks/usePatchChildrenRef';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { Popper, PopperCommonProps } from '../Popper/Popper';\n\nexport interface HoverPopperProps extends Omit<PopperCommonProps, 'content'> {\n /**\n * Содержимое тултипа\n */\n content?: React.ReactNode;\n /**\n * Если передан, то тултип будет показан/скрыт в зависимости от значения свойства\n */\n shown?: boolean;\n /**\n * Вызывается при каждом изменении видимости тултипа\n */\n onShownChange?: (shown: boolean) => void;\n /**\n * Количество миллисекунд, после которых произойдет показ дропдауна\n */\n showDelay?: number;\n /**\n * Количество миллисекунд, после которых произойдет скрытие дропдауна\n */\n hideDelay?: number;\n /**\n * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элементу компонента\n */\n children?: React.ReactElement;\n}\n\nexport const HoverPopper = ({\n getRef,\n content,\n children,\n onShownChange,\n shown: _shown,\n showDelay = 150,\n hideDelay = 150,\n ...restProps\n}: HoverPopperProps) => {\n const [computedShown, setComputedShown] = React.useState(_shown || false);\n\n const shown = typeof _shown === 'boolean' ? _shown : computedShown;\n\n const setShown = (value: boolean) => {\n if (typeof _shown !== 'boolean') {\n setComputedShown(value);\n }\n typeof onShownChange === 'function' && onShownChange(value);\n };\n\n const showTimeout = useTimeout(() => {\n setShown(true);\n }, showDelay);\n\n const hideTimeout = useTimeout(() => {\n setShown(false);\n }, hideDelay);\n\n const [childRef, child] = usePatchChildrenRef(children);\n\n const onTargetEnter = () => {\n hideTimeout.clear();\n showTimeout.set();\n };\n\n const onTargetLeave = () => {\n showTimeout.clear();\n hideTimeout.set();\n };\n\n const targetEnterListener = useEventListener('pointerenter', onTargetEnter);\n const targetLeaveListener = useEventListener('pointerleave', onTargetLeave);\n\n useIsomorphicLayoutEffect(() => {\n if (childRef.current) {\n targetEnterListener.add(childRef.current);\n targetLeaveListener.add(childRef.current);\n }\n }, []);\n\n return (\n <React.Fragment>\n {child}\n {shown && (\n <Popper\n {...restProps}\n onMouseOver={hideTimeout.clear}\n onMouseOut={onTargetLeave}\n getRef={getRef}\n targetRef={childRef}\n >\n {content}\n </Popper>\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","useEventListener","usePatchChildrenRef","useTimeout","useIsomorphicLayoutEffect","Popper","HoverPopper","getRef","content","children","onShownChange","shown","_shown","showDelay","hideDelay","restProps","computedShown","setComputedShown","useState","setShown","value","showTimeout","hideTimeout","childRef","child","onTargetEnter","clear","set","onTargetLeave","targetEnterListener","targetLeaveListener","current","add","Fragment","onMouseOver","onMouseOut","targetRef"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,SAASC,mBAAmB,QAAQ,kCAAkC;AACtE,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,yBAAyB,QAAQ,sCAAsC;AAChF,SAASC,MAAM,QAA2B,mBAAmB;AA6B7D,OAAO,MAAMC,cAAc,CAAC,EAC1BC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/HoverPopper/HoverPopper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { usePatchChildrenRef } from '../../hooks/usePatchChildrenRef';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { Popper, PopperCommonProps } from '../Popper/Popper';\n\nexport interface HoverPopperProps extends Omit<PopperCommonProps, 'content'> {\n /**\n * Содержимое тултипа\n */\n content?: React.ReactNode;\n /**\n * Если передан, то тултип будет показан/скрыт в зависимости от значения свойства\n */\n shown?: boolean;\n /**\n * Вызывается при каждом изменении видимости тултипа\n */\n onShownChange?: (shown: boolean) => void;\n /**\n * Количество миллисекунд, после которых произойдет показ дропдауна\n */\n showDelay?: number;\n /**\n * Количество миллисекунд, после которых произойдет скрытие дропдауна\n */\n hideDelay?: number;\n /**\n * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элементу компонента\n */\n children?: React.ReactElement;\n}\n\nexport const HoverPopper = ({\n getRef,\n content,\n children,\n onShownChange,\n shown: _shown,\n showDelay = 150,\n hideDelay = 150,\n ...restProps\n}: HoverPopperProps) => {\n const [computedShown, setComputedShown] = React.useState(_shown || false);\n\n const shown = typeof _shown === 'boolean' ? _shown : computedShown;\n\n const setShown = (value: boolean) => {\n if (typeof _shown !== 'boolean') {\n setComputedShown(value);\n }\n typeof onShownChange === 'function' && onShownChange(value);\n };\n\n const showTimeout = useTimeout(() => {\n setShown(true);\n }, showDelay);\n\n const hideTimeout = useTimeout(() => {\n setShown(false);\n }, hideDelay);\n\n const [childRef, child] = usePatchChildrenRef(children);\n\n const onTargetEnter = () => {\n hideTimeout.clear();\n showTimeout.set();\n };\n\n const onTargetLeave = () => {\n showTimeout.clear();\n hideTimeout.set();\n };\n\n const targetEnterListener = useEventListener('pointerenter', onTargetEnter);\n const targetLeaveListener = useEventListener('pointerleave', onTargetLeave);\n\n useIsomorphicLayoutEffect(() => {\n if (childRef.current) {\n targetEnterListener.add(childRef.current);\n targetLeaveListener.add(childRef.current);\n }\n }, []);\n\n return (\n <React.Fragment>\n {child}\n {shown && (\n <Popper\n {...restProps}\n onMouseOver={hideTimeout.clear}\n onMouseOut={onTargetLeave}\n getRef={getRef}\n targetRef={childRef}\n >\n {content}\n </Popper>\n )}\n </React.Fragment>\n );\n};\n"],"names":["React","useEventListener","usePatchChildrenRef","useTimeout","useIsomorphicLayoutEffect","Popper","HoverPopper","getRef","content","children","onShownChange","shown","_shown","showDelay","hideDelay","restProps","computedShown","setComputedShown","useState","setShown","value","showTimeout","hideTimeout","childRef","child","onTargetEnter","clear","set","onTargetLeave","targetEnterListener","targetLeaveListener","current","add","Fragment","onMouseOver","onMouseOut","targetRef"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,SAASC,mBAAmB,QAAQ,kCAAkC;AACtE,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,yBAAyB,QAAQ,sCAAsC;AAChF,SAASC,MAAM,QAA2B,mBAAmB;AA6B7D,OAAO,MAAMC,cAAc,CAAC,EAC1BC,MAAM,EACNC,OAAO,EACPC,QAAQ,EACRC,aAAa,EACbC,OAAOC,MAAM,EACbC,YAAY,GAAG,EACfC,YAAY,GAAG,EACf,GAAGC,WACc;IACjB,MAAM,CAACC,eAAeC,iBAAiB,GAAGjB,MAAMkB,QAAQ,CAACN,UAAU;IAEnE,MAAMD,QAAQ,OAAOC,WAAW,YAAYA,SAASI;IAErD,MAAMG,WAAW,CAACC;QAChB,IAAI,OAAOR,WAAW,WAAW;YAC/BK,iBAAiBG;QACnB;QACA,OAAOV,kBAAkB,cAAcA,cAAcU;IACvD;IAEA,MAAMC,cAAclB,WAAW;QAC7BgB,SAAS;IACX,GAAGN;IAEH,MAAMS,cAAcnB,WAAW;QAC7BgB,SAAS;IACX,GAAGL;IAEH,MAAM,CAACS,UAAUC,MAAM,GAAGtB,oBAAoBO;IAE9C,MAAMgB,gBAAgB;QACpBH,YAAYI,KAAK;QACjBL,YAAYM,GAAG;IACjB;IAEA,MAAMC,gBAAgB;QACpBP,YAAYK,KAAK;QACjBJ,YAAYK,GAAG;IACjB;IAEA,MAAME,sBAAsB5B,iBAAiB,gBAAgBwB;IAC7D,MAAMK,sBAAsB7B,iBAAiB,gBAAgB2B;IAE7DxB,0BAA0B;QACxB,IAAImB,SAASQ,OAAO,EAAE;YACpBF,oBAAoBG,GAAG,CAACT,SAASQ,OAAO;YACxCD,oBAAoBE,GAAG,CAACT,SAASQ,OAAO;QAC1C;IACF,GAAG,EAAE;IAEL,qBACE,oBAAC/B,MAAMiC,QAAQ,QACZT,OACAb,uBACC,oBAACN;QACE,GAAGU,SAAS;QACbmB,aAAaZ,YAAYI,KAAK;QAC9BS,YAAYP;QACZrB,QAAQA;QACR6B,WAAWb;OAEVf;AAKX,EAAE"}
|
|
@@ -14,9 +14,9 @@ const sizeYClassNames = {
|
|
|
14
14
|
const warn = warnOnce('IconButton');
|
|
15
15
|
/**
|
|
16
16
|
* @see https://vkcom.github.io/VKUI/#/IconButton
|
|
17
|
-
*/ export const IconButton = ({ children
|
|
17
|
+
*/ export const IconButton = ({ children, className, ...restProps })=>{
|
|
18
18
|
const platform = usePlatform();
|
|
19
|
-
const { sizeY ='none'
|
|
19
|
+
const { sizeY = 'none' } = useAdaptivity();
|
|
20
20
|
if (process.env.NODE_ENV === 'development') {
|
|
21
21
|
const isAccessible = restProps['aria-label'] || restProps['aria-labelledby'];
|
|
22
22
|
if (!isAccessible) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { HasChildren } from '../../types';\nimport { Tappable, TappableProps } from '../Tappable/Tappable';\nimport styles from './IconButton.module.css';\n\nconst sizeYClassNames = {\n none: styles['IconButton--sizeY-none'],\n [SizeType.COMPACT]: styles['IconButton--sizeY-compact'],\n};\n\nexport interface IconButtonProps extends TappableProps, HasChildren {}\n\nconst warn = warnOnce('IconButton');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/IconButton\n */\nexport const IconButton = ({ children, className, ...restProps }: IconButtonProps) => {\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n\n if (process.env.NODE_ENV === 'development') {\n const isAccessible = restProps['aria-label'] || restProps['aria-labelledby'];\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y[restProps.href ? 'link-name' : 'button-name'], 'error');\n }\n }\n\n return (\n <Tappable\n activeEffectDelay={200}\n activeMode=\"background\"\n Component={restProps.href ? 'a' : 'button'}\n {...restProps}\n className={classNames(\n styles['IconButton'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n platform === Platform.IOS && styles['IconButton--ios'],\n className,\n )}\n >\n {children}\n </Tappable>\n );\n};\n"],"names":["React","classNames","useAdaptivity","usePlatform","SizeType","Platform","COMMON_WARNINGS","warnOnce","Tappable","styles","sizeYClassNames","none","COMPACT","warn","IconButton","children","className","restProps","platform","sizeY","process","env","NODE_ENV","isAccessible","a11y","href","activeEffectDelay","activeMode","Component","REGULAR","IOS"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,eAAe,EAAEC,QAAQ,QAAQ,qBAAqB;AAE/D,SAASC,QAAQ,QAAuB,uBAAuB;AAC/D,OAAOC,YAAY,0BAA0B;AAE7C,MAAMC,kBAAkB;IACtBC,MAAMF,MAAM,CAAC,yBAAyB;IACtC,CAACL,SAASQ,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { Platform } from '../../lib/platform';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { HasChildren } from '../../types';\nimport { Tappable, TappableProps } from '../Tappable/Tappable';\nimport styles from './IconButton.module.css';\n\nconst sizeYClassNames = {\n none: styles['IconButton--sizeY-none'],\n [SizeType.COMPACT]: styles['IconButton--sizeY-compact'],\n};\n\nexport interface IconButtonProps extends TappableProps, HasChildren {}\n\nconst warn = warnOnce('IconButton');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/IconButton\n */\nexport const IconButton = ({ children, className, ...restProps }: IconButtonProps) => {\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n\n if (process.env.NODE_ENV === 'development') {\n const isAccessible = restProps['aria-label'] || restProps['aria-labelledby'];\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y[restProps.href ? 'link-name' : 'button-name'], 'error');\n }\n }\n\n return (\n <Tappable\n activeEffectDelay={200}\n activeMode=\"background\"\n Component={restProps.href ? 'a' : 'button'}\n {...restProps}\n className={classNames(\n styles['IconButton'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n platform === Platform.IOS && styles['IconButton--ios'],\n className,\n )}\n >\n {children}\n </Tappable>\n );\n};\n"],"names":["React","classNames","useAdaptivity","usePlatform","SizeType","Platform","COMMON_WARNINGS","warnOnce","Tappable","styles","sizeYClassNames","none","COMPACT","warn","IconButton","children","className","restProps","platform","sizeY","process","env","NODE_ENV","isAccessible","a11y","href","activeEffectDelay","activeMode","Component","REGULAR","IOS"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,eAAe,EAAEC,QAAQ,QAAQ,qBAAqB;AAE/D,SAASC,QAAQ,QAAuB,uBAAuB;AAC/D,OAAOC,YAAY,0BAA0B;AAE7C,MAAMC,kBAAkB;IACtBC,MAAMF,MAAM,CAAC,yBAAyB;IACtC,CAACL,SAASQ,OAAO,CAAC,EAAEH,MAAM,CAAC,4BAA4B;AACzD;AAIA,MAAMI,OAAON,SAAS;AAEtB;;CAEC,GACD,OAAO,MAAMO,aAAa,CAAC,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGC,WAA4B;IAC/E,MAAMC,WAAWf;IACjB,MAAM,EAAEgB,QAAQ,MAAM,EAAE,GAAGjB;IAE3B,IAAIkB,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,MAAMC,eAAeN,SAAS,CAAC,aAAa,IAAIA,SAAS,CAAC,kBAAkB;QAE5E,IAAI,CAACM,cAAc;YACjBV,KAAKP,gBAAgBkB,IAAI,CAACP,UAAUQ,IAAI,GAAG,cAAc,cAAc,EAAE;QAC3E;IACF;IAEA,qBACE,oBAACjB;QACCkB,mBAAmB;QACnBC,YAAW;QACXC,WAAWX,UAAUQ,IAAI,GAAG,MAAM;QACjC,GAAGR,SAAS;QACbD,WAAWf,WACTQ,MAAM,CAAC,aAAa,EACpBU,UAAUf,SAASyB,OAAO,IAAInB,eAAe,CAACS,MAAM,EACpDD,aAAab,SAASyB,GAAG,IAAIrB,MAAM,CAAC,kBAAkB,EACtDO;OAGDD;AAGP,EAAE"}
|
|
@@ -4,7 +4,7 @@ import { ImageBadge } from './ImageBadge/ImageBadge';
|
|
|
4
4
|
export const IMAGE_DEFAULT_SIZE = 48;
|
|
5
5
|
/**
|
|
6
6
|
* @see https://vkcom.github.io/VKUI/#/Image
|
|
7
|
-
*/ export const Image = ({ size =IMAGE_DEFAULT_SIZE
|
|
7
|
+
*/ export const Image = ({ size = IMAGE_DEFAULT_SIZE, borderRadius: borderRadiusProp = 'm', style, className, ...restProps })=>{
|
|
8
8
|
let borderRadius;
|
|
9
9
|
switch(borderRadiusProp){
|
|
10
10
|
case 's':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Image/Image.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ImageBase, type ImageBaseOverlayProps, type ImageBaseProps } from '../ImageBase/ImageBase';\nimport { ImageBadge, type ImageBadgeProps } from './ImageBadge/ImageBadge';\n\nexport type { ImageBadgeProps, ImageBaseOverlayProps as ImageOverlayProps };\n\nexport const IMAGE_DEFAULT_SIZE = 48;\n\nexport interface ImageProps extends Omit<ImageBaseProps, 'badge'> {\n /**\n * Размер закругления.\n */\n borderRadius?: 's' | 'l' | 'm';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Image\n */\nexport const Image = ({\n size = IMAGE_DEFAULT_SIZE,\n borderRadius: borderRadiusProp = 'm',\n style,\n className,\n ...restProps\n}: ImageProps) => {\n let borderRadius: number;\n\n switch (borderRadiusProp) {\n case 's': {\n if (size <= 32) {\n borderRadius = 2;\n } else if (size <= 56) {\n borderRadius = 3;\n }\n borderRadius = 4;\n break;\n }\n case 'm': {\n if (size <= 32) {\n borderRadius = 3;\n } else if (size <= 48) {\n borderRadius = 4;\n } else if (size <= 72) {\n borderRadius = 6;\n } else if (size <= 80) {\n borderRadius = 8;\n }\n borderRadius = 10;\n break;\n }\n case 'l': {\n if (size <= 16) {\n borderRadius = 4;\n } else if (size <= 20) {\n borderRadius = 5;\n } else if (size <= 32) {\n borderRadius = 6;\n } else if (size <= 40) {\n borderRadius = 8;\n } else if (size <= 48) {\n borderRadius = 10;\n } else if (size <= 56) {\n borderRadius = 12;\n } else if (size <= 64) {\n borderRadius = 14;\n }\n borderRadius = 16;\n }\n }\n\n return (\n <ImageBase\n {...restProps}\n size={size}\n style={{ ...style, borderRadius }}\n className={className}\n />\n );\n};\n\nImage.Badge = ImageBadge;\n\nImage.Overlay = ImageBase.Overlay;\n"],"names":["React","ImageBase","ImageBadge","IMAGE_DEFAULT_SIZE","Image","size","borderRadius","borderRadiusProp","style","className","restProps","Badge","Overlay"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,SAAS,QAAyD,yBAAyB;AACpG,SAASC,UAAU,QAA8B,0BAA0B;AAI3E,OAAO,MAAMC,qBAAqB,GAAG;AASrC;;CAEC,GACD,OAAO,MAAMC,QAAQ,CAAC,EACpBC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Image/Image.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ImageBase, type ImageBaseOverlayProps, type ImageBaseProps } from '../ImageBase/ImageBase';\nimport { ImageBadge, type ImageBadgeProps } from './ImageBadge/ImageBadge';\n\nexport type { ImageBadgeProps, ImageBaseOverlayProps as ImageOverlayProps };\n\nexport const IMAGE_DEFAULT_SIZE = 48;\n\nexport interface ImageProps extends Omit<ImageBaseProps, 'badge'> {\n /**\n * Размер закругления.\n */\n borderRadius?: 's' | 'l' | 'm';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Image\n */\nexport const Image = ({\n size = IMAGE_DEFAULT_SIZE,\n borderRadius: borderRadiusProp = 'm',\n style,\n className,\n ...restProps\n}: ImageProps) => {\n let borderRadius: number;\n\n switch (borderRadiusProp) {\n case 's': {\n if (size <= 32) {\n borderRadius = 2;\n } else if (size <= 56) {\n borderRadius = 3;\n }\n borderRadius = 4;\n break;\n }\n case 'm': {\n if (size <= 32) {\n borderRadius = 3;\n } else if (size <= 48) {\n borderRadius = 4;\n } else if (size <= 72) {\n borderRadius = 6;\n } else if (size <= 80) {\n borderRadius = 8;\n }\n borderRadius = 10;\n break;\n }\n case 'l': {\n if (size <= 16) {\n borderRadius = 4;\n } else if (size <= 20) {\n borderRadius = 5;\n } else if (size <= 32) {\n borderRadius = 6;\n } else if (size <= 40) {\n borderRadius = 8;\n } else if (size <= 48) {\n borderRadius = 10;\n } else if (size <= 56) {\n borderRadius = 12;\n } else if (size <= 64) {\n borderRadius = 14;\n }\n borderRadius = 16;\n }\n }\n\n return (\n <ImageBase\n {...restProps}\n size={size}\n style={{ ...style, borderRadius }}\n className={className}\n />\n );\n};\n\nImage.Badge = ImageBadge;\n\nImage.Overlay = ImageBase.Overlay;\n"],"names":["React","ImageBase","ImageBadge","IMAGE_DEFAULT_SIZE","Image","size","borderRadius","borderRadiusProp","style","className","restProps","Badge","Overlay"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,SAAS,QAAyD,yBAAyB;AACpG,SAASC,UAAU,QAA8B,0BAA0B;AAI3E,OAAO,MAAMC,qBAAqB,GAAG;AASrC;;CAEC,GACD,OAAO,MAAMC,QAAQ,CAAC,EACpBC,OAAOF,kBAAkB,EACzBG,cAAcC,mBAAmB,GAAG,EACpCC,KAAK,EACLC,SAAS,EACT,GAAGC,WACQ;IACX,IAAIJ;IAEJ,OAAQC;QACN,KAAK;YAAK;gBACR,IAAIF,QAAQ,IAAI;oBACdC,eAAe;gBACjB,OAAO,IAAID,QAAQ,IAAI;oBACrBC,eAAe;gBACjB;gBACAA,eAAe;gBACf;YACF;QACA,KAAK;YAAK;gBACR,IAAID,QAAQ,IAAI;oBACdC,eAAe;gBACjB,OAAO,IAAID,QAAQ,IAAI;oBACrBC,eAAe;gBACjB,OAAO,IAAID,QAAQ,IAAI;oBACrBC,eAAe;gBACjB,OAAO,IAAID,QAAQ,IAAI;oBACrBC,eAAe;gBACjB;gBACAA,eAAe;gBACf;YACF;QACA,KAAK;YAAK;gBACR,IAAID,QAAQ,IAAI;oBACdC,eAAe;gBACjB,OAAO,IAAID,QAAQ,IAAI;oBACrBC,eAAe;gBACjB,OAAO,IAAID,QAAQ,IAAI;oBACrBC,eAAe;gBACjB,OAAO,IAAID,QAAQ,IAAI;oBACrBC,eAAe;gBACjB,OAAO,IAAID,QAAQ,IAAI;oBACrBC,eAAe;gBACjB,OAAO,IAAID,QAAQ,IAAI;oBACrBC,eAAe;gBACjB,OAAO,IAAID,QAAQ,IAAI;oBACrBC,eAAe;gBACjB;gBACAA,eAAe;YACjB;IACF;IAEA,qBACE,oBAACL;QACE,GAAGS,SAAS;QACbL,MAAMA;QACNG,OAAO;YAAE,GAAGA,KAAK;YAAEF;QAAa;QAChCG,WAAWA;;AAGjB,EAAE;AAEFL,MAAMO,KAAK,GAAGT;AAEdE,MAAMQ,OAAO,GAAGX,UAAUW,OAAO"}
|
|
@@ -2,8 +2,8 @@ import * as React from 'react';
|
|
|
2
2
|
import { classNames } from '@vkontakte/vkjs';
|
|
3
3
|
import { ImageBase, ImageBaseContext } from '../../ImageBase/ImageBase';
|
|
4
4
|
import styles from './ImageBadge.module.css';
|
|
5
|
-
export const ImageBadge = ({ className
|
|
6
|
-
const { size
|
|
5
|
+
export const ImageBadge = ({ className, ...restProps })=>{
|
|
6
|
+
const { size } = React.useContext(ImageBaseContext);
|
|
7
7
|
return /*#__PURE__*/ React.createElement(ImageBase.Badge, {
|
|
8
8
|
...restProps,
|
|
9
9
|
className: classNames(styles['ImageBadge'], size < 96 && styles['ImageBadge--shifted'], className)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Image/ImageBadge/ImageBadge.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { ImageBase, type ImageBaseBadgeProps, ImageBaseContext } from '../../ImageBase/ImageBase';\nimport styles from './ImageBadge.module.css';\n\nexport type ImageBadgeProps = ImageBaseBadgeProps;\n\nexport const ImageBadge = ({ className, ...restProps }: ImageBadgeProps) => {\n const { size } = React.useContext(ImageBaseContext);\n return (\n <ImageBase.Badge\n {...restProps}\n className={classNames(\n styles['ImageBadge'],\n size < 96 && styles['ImageBadge--shifted'],\n className,\n )}\n />\n );\n};\n"],"names":["React","classNames","ImageBase","ImageBaseContext","styles","ImageBadge","className","restProps","size","useContext","Badge"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,SAAS,EAA4BC,gBAAgB,QAAQ,4BAA4B;AAClG,OAAOC,YAAY,0BAA0B;AAI7C,OAAO,MAAMC,aAAa,CAAC,EAAEC,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Image/ImageBadge/ImageBadge.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { ImageBase, type ImageBaseBadgeProps, ImageBaseContext } from '../../ImageBase/ImageBase';\nimport styles from './ImageBadge.module.css';\n\nexport type ImageBadgeProps = ImageBaseBadgeProps;\n\nexport const ImageBadge = ({ className, ...restProps }: ImageBadgeProps) => {\n const { size } = React.useContext(ImageBaseContext);\n return (\n <ImageBase.Badge\n {...restProps}\n className={classNames(\n styles['ImageBadge'],\n size < 96 && styles['ImageBadge--shifted'],\n className,\n )}\n />\n );\n};\n"],"names":["React","classNames","ImageBase","ImageBaseContext","styles","ImageBadge","className","restProps","size","useContext","Badge"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,SAAS,EAA4BC,gBAAgB,QAAQ,4BAA4B;AAClG,OAAOC,YAAY,0BAA0B;AAI7C,OAAO,MAAMC,aAAa,CAAC,EAAEC,SAAS,EAAE,GAAGC,WAA4B;IACrE,MAAM,EAAEC,IAAI,EAAE,GAAGR,MAAMS,UAAU,CAACN;IAClC,qBACE,oBAACD,UAAUQ,KAAK;QACb,GAAGH,SAAS;QACbD,WAAWL,WACTG,MAAM,CAAC,aAAa,EACpBI,OAAO,MAAMJ,MAAM,CAAC,sBAAsB,EAC1CE;;AAIR,EAAE"}
|
|
@@ -9,7 +9,7 @@ export { getBadgeIconSizeByImageBaseSize, getFallbackIconSizeByImageBaseSize, ge
|
|
|
9
9
|
export { ImageBaseContext };
|
|
10
10
|
/**
|
|
11
11
|
* @see https://vkcom.github.io/VKUI/#/ImageBase
|
|
12
|
-
*/ export const ImageBase = ({ alt
|
|
12
|
+
*/ export const ImageBase = ({ alt, crossOrigin, decoding, loading, referrerPolicy, sizes, src, srcSet, useMap, getRef, size = 24, width, height, style, className, getRootRef, withBorder = true, 'fallbackIcon': fallbackIconProp, children, 'aria-label': ariaLabel, onClick, onLoad, onError, ...restProps })=>{
|
|
13
13
|
const [loaded, setLoaded] = React.useState(false);
|
|
14
14
|
const [failed, setFailed] = React.useState(false);
|
|
15
15
|
const hasSrc = src || srcSet;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ImageBase/ImageBase.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HasRef, HasRootRef, LiteralUnion } from '../../types';\nimport { ImageBaseBadge, type ImageBaseBadgeProps } from './ImageBaseBadge/ImageBaseBadge';\nimport { ImageBaseOverlay, type ImageBaseOverlayProps } from './ImageBaseOverlay/ImageBaseOverlay';\nimport { ImageBaseContext } from './context';\nimport type { ImageBaseContextProps, ImageBaseExpectedIconProps, ImageBaseSize } from './types';\nimport { validateFallbackIcon, validateSize } from './validators';\nimport styles from './ImageBase.module.css';\n\nexport type {\n ImageBaseSize,\n ImageBaseExpectedIconProps,\n ImageBaseBadgeProps,\n ImageBaseOverlayProps,\n ImageBaseContextProps,\n};\n\nexport {\n getBadgeIconSizeByImageBaseSize,\n getFallbackIconSizeByImageBaseSize,\n getOverlayIconSizeByImageBaseSize,\n} from './helpers';\n\nexport { ImageBaseContext };\n\nexport interface ImageBaseProps\n extends React.ImgHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLImageElement> {\n /**\n * Задаёт размер картинки.\n *\n * Используйте размеры заданные дизайн-системой `16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 56 | 64 | 72 | 80 | 88 | 96`.\n *\n * > ⚠️ Использование кастомного размера – это пограничный кейс.\n */\n size?: LiteralUnion<ImageBaseSize, number>;\n /**\n * Включает или отключает обводку.\n */\n withBorder?: boolean;\n /**\n * Фолбек на случай, если картинка не прогрузилась.\n *\n * > 📝 Нужный для `<ImageBase size={...} />` размер можно узнать из функции `getFallbackIconSizeByImageBaseSize()`.\n *\n * > Предпочтительней использовать иконки из `@vkontakte/icons`.\n *\n * > 📊️ Если вы хотите передать кастомную иконку, то следует именовать её по шаблону `Icon<size><name>`. Или же\n * > чтобы в неё был передан параметр `width`. Тогда мы сможем выводить в консоль подсказку правильного ли размера вы\n * > использовали иконку.\n *\n * > ⚠️ Может перекрывать `children`.\n */\n fallbackIcon?: React.ReactElement<ImageBaseExpectedIconProps>;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ImageBase\n */\nexport const ImageBase = ({\n alt,\n crossOrigin,\n decoding,\n loading,\n referrerPolicy,\n sizes,\n src,\n srcSet,\n useMap,\n getRef,\n size = 24,\n width,\n height,\n style,\n className,\n getRootRef,\n withBorder = true,\n 'fallbackIcon': fallbackIconProp,\n children,\n 'aria-label': ariaLabel,\n onClick,\n onLoad,\n onError,\n ...restProps\n}: ImageBaseProps) => {\n const [loaded, setLoaded] = React.useState(false);\n const [failed, setFailed] = React.useState(false);\n\n const hasSrc = src || srcSet;\n const needShowFallbackIcon = (failed || !hasSrc) && React.isValidElement(fallbackIconProp);\n\n const fallbackIcon = needShowFallbackIcon ? fallbackIconProp : null;\n\n if (process.env.NODE_ENV === 'development') {\n validateSize(size);\n if (fallbackIcon) {\n validateFallbackIcon(size, { name: 'fallbackIcon', value: fallbackIcon });\n }\n }\n\n const handleImageLoad = (event: React.SyntheticEvent<HTMLImageElement>) => {\n setLoaded(true);\n setFailed(false);\n onLoad?.(event);\n };\n\n const handleImageError = (event: React.SyntheticEvent<HTMLImageElement>) => {\n setLoaded(false);\n setFailed(true);\n onError?.(event);\n };\n\n const sizeClassName = (() => {\n switch (size) {\n case 28:\n return styles['ImageBase--size-28'];\n case 32:\n return styles['ImageBase--size-32'];\n case 40:\n return styles['ImageBase--size-40'];\n case 48:\n return styles['ImageBase--size-48'];\n case 72:\n return styles['ImageBase--size-72'];\n }\n\n return null;\n })();\n\n return (\n <ImageBaseContext.Provider value={{ size }}>\n <div\n {...restProps}\n ref={getRootRef}\n style={{ ...style, width: size, height: size }}\n className={classNames(\n className,\n styles['ImageBase'],\n sizeClassName,\n loaded && styles['ImageBase--loaded'],\n )}\n role={hasSrc ? 'img' : 'presentation'}\n aria-label={ariaLabel}\n onClick={onClick}\n >\n {hasSrc && (\n <img\n ref={getRef}\n alt={alt}\n className={styles['ImageBase__img']}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n sizes={sizes}\n src={src}\n srcSet={srcSet}\n useMap={useMap}\n width={width}\n height={height}\n onLoad={handleImageLoad}\n onError={handleImageError}\n />\n )}\n {fallbackIcon && (\n <div className={classNames(styles['ImageBase__fallback'])}>{fallbackIcon}</div>\n )}\n {children}\n {withBorder && <div aria-hidden className={styles['ImageBase__border']} />}\n </div>\n </ImageBaseContext.Provider>\n );\n};\n\nImageBase.Badge = ImageBaseBadge;\n\nImageBase.Overlay = ImageBaseOverlay;\n"],"names":["React","classNames","ImageBaseBadge","ImageBaseOverlay","ImageBaseContext","validateFallbackIcon","validateSize","styles","getBadgeIconSizeByImageBaseSize","getFallbackIconSizeByImageBaseSize","getOverlayIconSizeByImageBaseSize","ImageBase","alt","crossOrigin","decoding","loading","referrerPolicy","sizes","src","srcSet","useMap","getRef","size","width","height","style","className","getRootRef","withBorder","fallbackIconProp","children","ariaLabel","onClick","onLoad","onError","restProps","loaded","setLoaded","useState","failed","setFailed","hasSrc","needShowFallbackIcon","isValidElement","fallbackIcon","process","env","NODE_ENV","name","value","handleImageLoad","event","handleImageError","sizeClassName","Provider","div","ref","role","aria-label","img","aria-hidden","Badge","Overlay"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,cAAc,QAAkC,kCAAkC;AAC3F,SAASC,gBAAgB,QAAoC,sCAAsC;AACnG,SAASC,gBAAgB,QAAQ,YAAY;AAE7C,SAASC,oBAAoB,EAAEC,YAAY,QAAQ,eAAe;AAClE,OAAOC,YAAY,yBAAyB;AAU5C,SACEC,+BAA+B,EAC/BC,kCAAkC,EAClCC,iCAAiC,QAC5B,YAAY;AAEnB,SAASN,gBAAgB,GAAG;AAkC5B;;CAEC,GACD,OAAO,MAAMO,YAAY,CAAC,EACxBC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ImageBase/ImageBase.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HasRef, HasRootRef, LiteralUnion } from '../../types';\nimport { ImageBaseBadge, type ImageBaseBadgeProps } from './ImageBaseBadge/ImageBaseBadge';\nimport { ImageBaseOverlay, type ImageBaseOverlayProps } from './ImageBaseOverlay/ImageBaseOverlay';\nimport { ImageBaseContext } from './context';\nimport type { ImageBaseContextProps, ImageBaseExpectedIconProps, ImageBaseSize } from './types';\nimport { validateFallbackIcon, validateSize } from './validators';\nimport styles from './ImageBase.module.css';\n\nexport type {\n ImageBaseSize,\n ImageBaseExpectedIconProps,\n ImageBaseBadgeProps,\n ImageBaseOverlayProps,\n ImageBaseContextProps,\n};\n\nexport {\n getBadgeIconSizeByImageBaseSize,\n getFallbackIconSizeByImageBaseSize,\n getOverlayIconSizeByImageBaseSize,\n} from './helpers';\n\nexport { ImageBaseContext };\n\nexport interface ImageBaseProps\n extends React.ImgHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLImageElement> {\n /**\n * Задаёт размер картинки.\n *\n * Используйте размеры заданные дизайн-системой `16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 56 | 64 | 72 | 80 | 88 | 96`.\n *\n * > ⚠️ Использование кастомного размера – это пограничный кейс.\n */\n size?: LiteralUnion<ImageBaseSize, number>;\n /**\n * Включает или отключает обводку.\n */\n withBorder?: boolean;\n /**\n * Фолбек на случай, если картинка не прогрузилась.\n *\n * > 📝 Нужный для `<ImageBase size={...} />` размер можно узнать из функции `getFallbackIconSizeByImageBaseSize()`.\n *\n * > Предпочтительней использовать иконки из `@vkontakte/icons`.\n *\n * > 📊️ Если вы хотите передать кастомную иконку, то следует именовать её по шаблону `Icon<size><name>`. Или же\n * > чтобы в неё был передан параметр `width`. Тогда мы сможем выводить в консоль подсказку правильного ли размера вы\n * > использовали иконку.\n *\n * > ⚠️ Может перекрывать `children`.\n */\n fallbackIcon?: React.ReactElement<ImageBaseExpectedIconProps>;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ImageBase\n */\nexport const ImageBase = ({\n alt,\n crossOrigin,\n decoding,\n loading,\n referrerPolicy,\n sizes,\n src,\n srcSet,\n useMap,\n getRef,\n size = 24,\n width,\n height,\n style,\n className,\n getRootRef,\n withBorder = true,\n 'fallbackIcon': fallbackIconProp,\n children,\n 'aria-label': ariaLabel,\n onClick,\n onLoad,\n onError,\n ...restProps\n}: ImageBaseProps) => {\n const [loaded, setLoaded] = React.useState(false);\n const [failed, setFailed] = React.useState(false);\n\n const hasSrc = src || srcSet;\n const needShowFallbackIcon = (failed || !hasSrc) && React.isValidElement(fallbackIconProp);\n\n const fallbackIcon = needShowFallbackIcon ? fallbackIconProp : null;\n\n if (process.env.NODE_ENV === 'development') {\n validateSize(size);\n if (fallbackIcon) {\n validateFallbackIcon(size, { name: 'fallbackIcon', value: fallbackIcon });\n }\n }\n\n const handleImageLoad = (event: React.SyntheticEvent<HTMLImageElement>) => {\n setLoaded(true);\n setFailed(false);\n onLoad?.(event);\n };\n\n const handleImageError = (event: React.SyntheticEvent<HTMLImageElement>) => {\n setLoaded(false);\n setFailed(true);\n onError?.(event);\n };\n\n const sizeClassName = (() => {\n switch (size) {\n case 28:\n return styles['ImageBase--size-28'];\n case 32:\n return styles['ImageBase--size-32'];\n case 40:\n return styles['ImageBase--size-40'];\n case 48:\n return styles['ImageBase--size-48'];\n case 72:\n return styles['ImageBase--size-72'];\n }\n\n return null;\n })();\n\n return (\n <ImageBaseContext.Provider value={{ size }}>\n <div\n {...restProps}\n ref={getRootRef}\n style={{ ...style, width: size, height: size }}\n className={classNames(\n className,\n styles['ImageBase'],\n sizeClassName,\n loaded && styles['ImageBase--loaded'],\n )}\n role={hasSrc ? 'img' : 'presentation'}\n aria-label={ariaLabel}\n onClick={onClick}\n >\n {hasSrc && (\n <img\n ref={getRef}\n alt={alt}\n className={styles['ImageBase__img']}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n sizes={sizes}\n src={src}\n srcSet={srcSet}\n useMap={useMap}\n width={width}\n height={height}\n onLoad={handleImageLoad}\n onError={handleImageError}\n />\n )}\n {fallbackIcon && (\n <div className={classNames(styles['ImageBase__fallback'])}>{fallbackIcon}</div>\n )}\n {children}\n {withBorder && <div aria-hidden className={styles['ImageBase__border']} />}\n </div>\n </ImageBaseContext.Provider>\n );\n};\n\nImageBase.Badge = ImageBaseBadge;\n\nImageBase.Overlay = ImageBaseOverlay;\n"],"names":["React","classNames","ImageBaseBadge","ImageBaseOverlay","ImageBaseContext","validateFallbackIcon","validateSize","styles","getBadgeIconSizeByImageBaseSize","getFallbackIconSizeByImageBaseSize","getOverlayIconSizeByImageBaseSize","ImageBase","alt","crossOrigin","decoding","loading","referrerPolicy","sizes","src","srcSet","useMap","getRef","size","width","height","style","className","getRootRef","withBorder","fallbackIconProp","children","ariaLabel","onClick","onLoad","onError","restProps","loaded","setLoaded","useState","failed","setFailed","hasSrc","needShowFallbackIcon","isValidElement","fallbackIcon","process","env","NODE_ENV","name","value","handleImageLoad","event","handleImageError","sizeClassName","Provider","div","ref","role","aria-label","img","aria-hidden","Badge","Overlay"],"mappings":"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"}
|
|
@@ -11,11 +11,11 @@ const backgroundStyles = {
|
|
|
11
11
|
* Бейдж в правом нижнем углу компонента.
|
|
12
12
|
*
|
|
13
13
|
* > Не используйте при `size < 24`
|
|
14
|
-
*/ export const ImageBaseBadge = ({ background ='shadow'
|
|
14
|
+
*/ export const ImageBaseBadge = ({ background = 'shadow', children, className, ...restProps })=>{
|
|
15
15
|
if (process.env.NODE_ENV === 'development') {
|
|
16
16
|
if (children) {
|
|
17
17
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
18
|
-
const { size
|
|
18
|
+
const { size } = React.useContext(ImageBaseContext);
|
|
19
19
|
validateBadgeIcon(size, {
|
|
20
20
|
name: 'children',
|
|
21
21
|
value: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { ImageBaseContext } from '../context';\nimport type { ImageBaseExpectedIconProps } from '../types';\nimport { validateBadgeIcon } from '../validators';\nimport styles from './ImageBaseBadge.module.css';\n\nconst backgroundStyles = {\n stroke: styles['ImageBaseBadge--background-stroke'],\n shadow: styles['ImageBaseBadge--background-shadow'],\n};\n\nexport interface ImageBaseBadgeProps extends React.AriaAttributes {\n /**\n * Вид подложки под иконку.\n *\n * - `\"stroke\"` – имитирует вырез (⚠️ если фон под компонентом динамический, то ожидайте баг).\n * - `\"shadow\"` – добавляет небольшую тень.\n */\n background?: 'stroke' | 'shadow';\n /**\n * Принимает иконку.\n *\n * > 📝 Нужный для `<ImageBase size={...} />` размер можно узнать из функции `getBadgeIconSizeByImageBaseSize()`.\n *\n * > Предпочтительней использовать иконки из `@vkontakte/icons`.\n *\n * > 📊️ Если вы хотите передать кастомную иконку, то следует именовать её по шаблону `Icon<size><name>`. Или же\n * > чтобы в неё был передан параметр `width`. Тогда мы сможем выводить в консоль подсказку правильного ли размера вы\n * > использовали иконку.\n */\n children: React.ReactElement<ImageBaseExpectedIconProps>;\n className?: string;\n}\n\n/**\n * Бейдж в правом нижнем углу компонента.\n *\n * > Не используйте при `size < 24`\n */\nexport const ImageBaseBadge = ({\n background = 'shadow',\n children,\n className,\n ...restProps\n}: ImageBaseBadgeProps) => {\n if (process.env.NODE_ENV === 'development') {\n if (children) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { size } = React.useContext(ImageBaseContext);\n validateBadgeIcon(size, { name: 'children', value: children });\n }\n }\n\n return (\n <div\n {...restProps}\n className={classNames(styles['ImageBaseBadge'], backgroundStyles[background], className)}\n >\n {children}\n </div>\n );\n};\n"],"names":["React","classNames","ImageBaseContext","validateBadgeIcon","styles","backgroundStyles","stroke","shadow","ImageBaseBadge","background","children","className","restProps","process","env","NODE_ENV","size","useContext","name","value","div"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,gBAAgB,QAAQ,aAAa;AAE9C,SAASC,iBAAiB,QAAQ,gBAAgB;AAClD,OAAOC,YAAY,8BAA8B;AAEjD,MAAMC,mBAAmB;IACvBC,QAAQF,MAAM,CAAC,oCAAoC;IACnDG,QAAQH,MAAM,CAAC,oCAAoC;AACrD;AAyBA;;;;CAIC,GACD,OAAO,MAAMI,iBAAiB,CAAC,EAC7BC,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { ImageBaseContext } from '../context';\nimport type { ImageBaseExpectedIconProps } from '../types';\nimport { validateBadgeIcon } from '../validators';\nimport styles from './ImageBaseBadge.module.css';\n\nconst backgroundStyles = {\n stroke: styles['ImageBaseBadge--background-stroke'],\n shadow: styles['ImageBaseBadge--background-shadow'],\n};\n\nexport interface ImageBaseBadgeProps extends React.AriaAttributes {\n /**\n * Вид подложки под иконку.\n *\n * - `\"stroke\"` – имитирует вырез (⚠️ если фон под компонентом динамический, то ожидайте баг).\n * - `\"shadow\"` – добавляет небольшую тень.\n */\n background?: 'stroke' | 'shadow';\n /**\n * Принимает иконку.\n *\n * > 📝 Нужный для `<ImageBase size={...} />` размер можно узнать из функции `getBadgeIconSizeByImageBaseSize()`.\n *\n * > Предпочтительней использовать иконки из `@vkontakte/icons`.\n *\n * > 📊️ Если вы хотите передать кастомную иконку, то следует именовать её по шаблону `Icon<size><name>`. Или же\n * > чтобы в неё был передан параметр `width`. Тогда мы сможем выводить в консоль подсказку правильного ли размера вы\n * > использовали иконку.\n */\n children: React.ReactElement<ImageBaseExpectedIconProps>;\n className?: string;\n}\n\n/**\n * Бейдж в правом нижнем углу компонента.\n *\n * > Не используйте при `size < 24`\n */\nexport const ImageBaseBadge = ({\n background = 'shadow',\n children,\n className,\n ...restProps\n}: ImageBaseBadgeProps) => {\n if (process.env.NODE_ENV === 'development') {\n if (children) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { size } = React.useContext(ImageBaseContext);\n validateBadgeIcon(size, { name: 'children', value: children });\n }\n }\n\n return (\n <div\n {...restProps}\n className={classNames(styles['ImageBaseBadge'], backgroundStyles[background], className)}\n >\n {children}\n </div>\n );\n};\n"],"names":["React","classNames","ImageBaseContext","validateBadgeIcon","styles","backgroundStyles","stroke","shadow","ImageBaseBadge","background","children","className","restProps","process","env","NODE_ENV","size","useContext","name","value","div"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,gBAAgB,QAAQ,aAAa;AAE9C,SAASC,iBAAiB,QAAQ,gBAAgB;AAClD,OAAOC,YAAY,8BAA8B;AAEjD,MAAMC,mBAAmB;IACvBC,QAAQF,MAAM,CAAC,oCAAoC;IACnDG,QAAQH,MAAM,CAAC,oCAAoC;AACrD;AAyBA;;;;CAIC,GACD,OAAO,MAAMI,iBAAiB,CAAC,EAC7BC,aAAa,QAAQ,EACrBC,QAAQ,EACRC,SAAS,EACT,GAAGC,WACiB;IACpB,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,IAAIL,UAAU;YACZ,sDAAsD;YACtD,MAAM,EAAEM,IAAI,EAAE,GAAGhB,MAAMiB,UAAU,CAACf;YAClCC,kBAAkBa,MAAM;gBAAEE,MAAM;gBAAYC,OAAOT;YAAS;QAC9D;IACF;IAEA,qBACE,oBAACU;QACE,GAAGR,SAAS;QACbD,WAAWV,WAAWG,MAAM,CAAC,iBAAiB,EAAEC,gBAAgB,CAACI,WAAW,EAAEE;OAE7ED;AAGP,EAAE"}
|
|
@@ -8,7 +8,7 @@ import { validateOverlayIcon } from '../validators';
|
|
|
8
8
|
import styles from './ImageBaseOverlay.module.css';
|
|
9
9
|
/**
|
|
10
10
|
* Интерактивный оверлей над картинкой.
|
|
11
|
-
*/ export const ImageBaseOverlay = ({ className
|
|
11
|
+
*/ export const ImageBaseOverlay = ({ className, theme: themeProp, visibility: visibilityProp, children, onClick, ...restProps })=>{
|
|
12
12
|
const appearance = useAppearance();
|
|
13
13
|
const hasPointer = useAdaptivityHasPointer();
|
|
14
14
|
const theme = themeProp ?? appearance;
|
|
@@ -16,7 +16,7 @@ import styles from './ImageBaseOverlay.module.css';
|
|
|
16
16
|
if (process.env.NODE_ENV === 'development') {
|
|
17
17
|
if (children) {
|
|
18
18
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
19
|
-
const { size
|
|
19
|
+
const { size } = React.useContext(ImageBaseContext);
|
|
20
20
|
validateOverlayIcon(size, {
|
|
21
21
|
name: 'children',
|
|
22
22
|
value: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityHasPointer } from '../../../hooks/useAdaptivityHasPointer';\nimport { useAppearance } from '../../../hooks/useAppearance';\nimport { Tappable } from '../../Tappable/Tappable';\nimport { ImageBaseContext } from '../context';\nimport type { ImageBaseExpectedIconProps } from '../types';\nimport { validateOverlayIcon } from '../validators';\nimport styles from './ImageBaseOverlay.module.css';\n\nexport interface ImageBaseOverlayProps extends React.AriaAttributes {\n /**\n * Задаёт тему оформления.\n *\n * > По умолчанию берётся из параметра `appearance` в `ConfigProvider`.\n */\n theme?: 'dark' | 'light';\n /**\n * Определяет каким образом должен показываться оверлей.\n *\n * - `\"on-hover\"` – на наведение указателя мыши.\n * - `\"always\"` – всегда показывать.\n *\n * > По умолчанию определяется в зависимости от того, есть ли у пользователя мышь или нет.\n */\n visibility?: 'on-hover' | 'always';\n /**\n * Принимает иконку.\n *\n *\n * > 📝 Нужный для `<ImageBase size={...} />` размер можно узнать из функции `getOverlayIconSizeByImageBaseSize()`.\n *\n * > Предпочтительней использовать иконки из `@vkontakte/icons`.\n *\n * > 📊️ Если вы хотите передать кастомную иконку, то следует именовать её по шаблону `Icon<size><name>`. Или же\n * > чтобы в неё был передан параметр `width`. Тогда мы сможем выводить в консоль подсказку правильного ли размера вы\n * > использовали иконку.\n */\n children: React.ReactElement<ImageBaseExpectedIconProps>;\n className?: string;\n onClick?: React.MouseEventHandler<HTMLElement>;\n}\n\n/**\n * Интерактивный оверлей над картинкой.\n */\nexport const ImageBaseOverlay = ({\n className,\n theme: themeProp,\n visibility: visibilityProp,\n children,\n onClick,\n ...restProps\n}: ImageBaseOverlayProps) => {\n const appearance = useAppearance();\n const hasPointer = useAdaptivityHasPointer();\n const theme = themeProp ?? appearance;\n const visibility = visibilityProp ?? (hasPointer ? 'on-hover' : 'always');\n\n if (process.env.NODE_ENV === 'development') {\n if (children) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { size } = React.useContext(ImageBaseContext);\n validateOverlayIcon(size, { name: 'children', value: children });\n }\n }\n\n return (\n <Tappable\n {...restProps}\n type=\"button\"\n Component=\"button\"\n className={classNames(\n styles['ImageBaseOverlay'],\n visibility === 'always' && styles['ImageBaseOverlay--visible'],\n theme === 'light' && styles['ImageBaseOverlay--theme-light'],\n theme === 'dark' && styles['ImageBaseOverlay--theme-dark'],\n className,\n )}\n hasHover={visibility === 'on-hover'}\n hoverMode={visibility === 'on-hover' ? styles['ImageBaseOverlay--visible'] : undefined}\n focusVisibleMode={styles['ImageBaseOverlay--focus-visible']}\n hasActive={false}\n onClick={onClick}\n >\n {children}\n </Tappable>\n );\n};\n"],"names":["React","classNames","useAdaptivityHasPointer","useAppearance","Tappable","ImageBaseContext","validateOverlayIcon","styles","ImageBaseOverlay","className","theme","themeProp","visibility","visibilityProp","children","onClick","restProps","appearance","hasPointer","process","env","NODE_ENV","size","useContext","name","value","type","Component","hasHover","hoverMode","undefined","focusVisibleMode","hasActive"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,uBAAuB,QAAQ,yCAAyC;AACjF,SAASC,aAAa,QAAQ,+BAA+B;AAC7D,SAASC,QAAQ,QAAQ,0BAA0B;AACnD,SAASC,gBAAgB,QAAQ,aAAa;AAE9C,SAASC,mBAAmB,QAAQ,gBAAgB;AACpD,OAAOC,YAAY,gCAAgC;AAmCnD;;CAEC,GACD,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityHasPointer } from '../../../hooks/useAdaptivityHasPointer';\nimport { useAppearance } from '../../../hooks/useAppearance';\nimport { Tappable } from '../../Tappable/Tappable';\nimport { ImageBaseContext } from '../context';\nimport type { ImageBaseExpectedIconProps } from '../types';\nimport { validateOverlayIcon } from '../validators';\nimport styles from './ImageBaseOverlay.module.css';\n\nexport interface ImageBaseOverlayProps extends React.AriaAttributes {\n /**\n * Задаёт тему оформления.\n *\n * > По умолчанию берётся из параметра `appearance` в `ConfigProvider`.\n */\n theme?: 'dark' | 'light';\n /**\n * Определяет каким образом должен показываться оверлей.\n *\n * - `\"on-hover\"` – на наведение указателя мыши.\n * - `\"always\"` – всегда показывать.\n *\n * > По умолчанию определяется в зависимости от того, есть ли у пользователя мышь или нет.\n */\n visibility?: 'on-hover' | 'always';\n /**\n * Принимает иконку.\n *\n *\n * > 📝 Нужный для `<ImageBase size={...} />` размер можно узнать из функции `getOverlayIconSizeByImageBaseSize()`.\n *\n * > Предпочтительней использовать иконки из `@vkontakte/icons`.\n *\n * > 📊️ Если вы хотите передать кастомную иконку, то следует именовать её по шаблону `Icon<size><name>`. Или же\n * > чтобы в неё был передан параметр `width`. Тогда мы сможем выводить в консоль подсказку правильного ли размера вы\n * > использовали иконку.\n */\n children: React.ReactElement<ImageBaseExpectedIconProps>;\n className?: string;\n onClick?: React.MouseEventHandler<HTMLElement>;\n}\n\n/**\n * Интерактивный оверлей над картинкой.\n */\nexport const ImageBaseOverlay = ({\n className,\n theme: themeProp,\n visibility: visibilityProp,\n children,\n onClick,\n ...restProps\n}: ImageBaseOverlayProps) => {\n const appearance = useAppearance();\n const hasPointer = useAdaptivityHasPointer();\n const theme = themeProp ?? appearance;\n const visibility = visibilityProp ?? (hasPointer ? 'on-hover' : 'always');\n\n if (process.env.NODE_ENV === 'development') {\n if (children) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { size } = React.useContext(ImageBaseContext);\n validateOverlayIcon(size, { name: 'children', value: children });\n }\n }\n\n return (\n <Tappable\n {...restProps}\n type=\"button\"\n Component=\"button\"\n className={classNames(\n styles['ImageBaseOverlay'],\n visibility === 'always' && styles['ImageBaseOverlay--visible'],\n theme === 'light' && styles['ImageBaseOverlay--theme-light'],\n theme === 'dark' && styles['ImageBaseOverlay--theme-dark'],\n className,\n )}\n hasHover={visibility === 'on-hover'}\n hoverMode={visibility === 'on-hover' ? styles['ImageBaseOverlay--visible'] : undefined}\n focusVisibleMode={styles['ImageBaseOverlay--focus-visible']}\n hasActive={false}\n onClick={onClick}\n >\n {children}\n </Tappable>\n );\n};\n"],"names":["React","classNames","useAdaptivityHasPointer","useAppearance","Tappable","ImageBaseContext","validateOverlayIcon","styles","ImageBaseOverlay","className","theme","themeProp","visibility","visibilityProp","children","onClick","restProps","appearance","hasPointer","process","env","NODE_ENV","size","useContext","name","value","type","Component","hasHover","hoverMode","undefined","focusVisibleMode","hasActive"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,uBAAuB,QAAQ,yCAAyC;AACjF,SAASC,aAAa,QAAQ,+BAA+B;AAC7D,SAASC,QAAQ,QAAQ,0BAA0B;AACnD,SAASC,gBAAgB,QAAQ,aAAa;AAE9C,SAASC,mBAAmB,QAAQ,gBAAgB;AACpD,OAAOC,YAAY,gCAAgC;AAmCnD;;CAEC,GACD,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,SAAS,EACTC,OAAOC,SAAS,EAChBC,YAAYC,cAAc,EAC1BC,QAAQ,EACRC,OAAO,EACP,GAAGC,WACmB;IACtB,MAAMC,aAAad;IACnB,MAAMe,aAAahB;IACnB,MAAMQ,QAAQC,aAAaM;IAC3B,MAAML,aAAaC,kBAAmBK,CAAAA,aAAa,aAAa,QAAO;IAEvE,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,IAAIP,UAAU;YACZ,sDAAsD;YACtD,MAAM,EAAEQ,IAAI,EAAE,GAAGtB,MAAMuB,UAAU,CAAClB;YAClCC,oBAAoBgB,MAAM;gBAAEE,MAAM;gBAAYC,OAAOX;YAAS;QAChE;IACF;IAEA,qBACE,oBAACV;QACE,GAAGY,SAAS;QACbU,MAAK;QACLC,WAAU;QACVlB,WAAWR,WACTM,MAAM,CAAC,mBAAmB,EAC1BK,eAAe,YAAYL,MAAM,CAAC,4BAA4B,EAC9DG,UAAU,WAAWH,MAAM,CAAC,gCAAgC,EAC5DG,UAAU,UAAUH,MAAM,CAAC,+BAA+B,EAC1DE;QAEFmB,UAAUhB,eAAe;QACzBiB,WAAWjB,eAAe,aAAaL,MAAM,CAAC,4BAA4B,GAAGuB;QAC7EC,kBAAkBxB,MAAM,CAAC,kCAAkC;QAC3DyB,WAAW;QACXjB,SAASA;OAERD;AAGP,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ImageBase/context.ts"],"sourcesContent":["import * as React from 'react';\nimport { ImageBaseContextProps } from './types';\n\nexport const ImageBaseContext = React.createContext<ImageBaseContextProps>({\n size: 0,\n});\n"],"names":["React","ImageBaseContext","createContext","size"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAG/B,OAAO,MAAMC,mBAAmBD,MAAME,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ImageBase/context.ts"],"sourcesContent":["import * as React from 'react';\nimport { ImageBaseContextProps } from './types';\n\nexport const ImageBaseContext = React.createContext<ImageBaseContextProps>({\n size: 0,\n});\n"],"names":["React","ImageBaseContext","createContext","size"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAG/B,OAAO,MAAMC,mBAAmBD,MAAME,aAAa,CAAwB;IACzEC,MAAM;AACR,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ImageBase/helpers.ts"],"sourcesContent":["/**\n * Возвращает размер иконки основанный на дизайн-системы.\n */\nexport function getFallbackIconSizeByImageBaseSize(imageSize: number): 12 | 16 | 20 | 24 | 28 | 36 {\n if (imageSize <= 20) {\n return 12;\n } else if (imageSize > 20 && imageSize <= 28) {\n return 16;\n } else if (imageSize > 28 && imageSize <= 32) {\n return 20;\n } else if (imageSize > 32 && imageSize <= 44) {\n return 24;\n } else if (imageSize > 44 && imageSize <= 64) {\n return 28;\n }\n return getFallbackIconSizeByImageBaseSize.MAX_SIZE;\n}\n\ngetFallbackIconSizeByImageBaseSize.MAX_SIZE = 36 as const;\n\n/**\n * Возвращает размер иконки основанный на дизайн-системы.\n */\nexport function getBadgeIconSizeByImageBaseSize(imageSize: number): 12 | 16 | 20 | 24 {\n if (imageSize <= 36) {\n return 12;\n } else if (imageSize > 36 && imageSize <= 48) {\n return 16;\n } else if (imageSize > 48 && imageSize <= 64) {\n return 20;\n }\n return getBadgeIconSizeByImageBaseSize.MAX_SIZE;\n}\n\ngetBadgeIconSizeByImageBaseSize.MAX_SIZE = 24 as const;\n\n/**\n * Возвращает размер иконки основанный на дизайн-системы.\n */\nexport function getOverlayIconSizeByImageBaseSize(\n imageSize: number,\n): 12 | 16 | 18 | 20 | 24 | 28 | 32 {\n if (imageSize <= 20) {\n return 12;\n } else if (imageSize > 20 && imageSize <= 24) {\n return 16;\n } else if (imageSize > 24 && imageSize <= 28) {\n return 18;\n } else if (imageSize > 28 && imageSize <= 40) {\n return 20;\n } else if (imageSize > 40 && imageSize <= 48) {\n return 24;\n } else if (imageSize > 48 && imageSize <= 88) {\n return 28;\n }\n return getOverlayIconSizeByImageBaseSize.MAX_SIZE;\n}\n\ngetOverlayIconSizeByImageBaseSize.MAX_SIZE = 32 as const;\n"],"names":["getFallbackIconSizeByImageBaseSize","imageSize","MAX_SIZE","getBadgeIconSizeByImageBaseSize","getOverlayIconSizeByImageBaseSize"],"mappings":"AAAA;;CAEC,GACD,OAAO,SAASA,mCAAmCC,SAAiB;IAClE,IAAIA,aAAa,IAAI;QACnB,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT;IACA,OAAOD,mCAAmCE;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ImageBase/helpers.ts"],"sourcesContent":["/**\n * Возвращает размер иконки основанный на дизайн-системы.\n */\nexport function getFallbackIconSizeByImageBaseSize(imageSize: number): 12 | 16 | 20 | 24 | 28 | 36 {\n if (imageSize <= 20) {\n return 12;\n } else if (imageSize > 20 && imageSize <= 28) {\n return 16;\n } else if (imageSize > 28 && imageSize <= 32) {\n return 20;\n } else if (imageSize > 32 && imageSize <= 44) {\n return 24;\n } else if (imageSize > 44 && imageSize <= 64) {\n return 28;\n }\n return getFallbackIconSizeByImageBaseSize.MAX_SIZE;\n}\n\ngetFallbackIconSizeByImageBaseSize.MAX_SIZE = 36 as const;\n\n/**\n * Возвращает размер иконки основанный на дизайн-системы.\n */\nexport function getBadgeIconSizeByImageBaseSize(imageSize: number): 12 | 16 | 20 | 24 {\n if (imageSize <= 36) {\n return 12;\n } else if (imageSize > 36 && imageSize <= 48) {\n return 16;\n } else if (imageSize > 48 && imageSize <= 64) {\n return 20;\n }\n return getBadgeIconSizeByImageBaseSize.MAX_SIZE;\n}\n\ngetBadgeIconSizeByImageBaseSize.MAX_SIZE = 24 as const;\n\n/**\n * Возвращает размер иконки основанный на дизайн-системы.\n */\nexport function getOverlayIconSizeByImageBaseSize(\n imageSize: number,\n): 12 | 16 | 18 | 20 | 24 | 28 | 32 {\n if (imageSize <= 20) {\n return 12;\n } else if (imageSize > 20 && imageSize <= 24) {\n return 16;\n } else if (imageSize > 24 && imageSize <= 28) {\n return 18;\n } else if (imageSize > 28 && imageSize <= 40) {\n return 20;\n } else if (imageSize > 40 && imageSize <= 48) {\n return 24;\n } else if (imageSize > 48 && imageSize <= 88) {\n return 28;\n }\n return getOverlayIconSizeByImageBaseSize.MAX_SIZE;\n}\n\ngetOverlayIconSizeByImageBaseSize.MAX_SIZE = 32 as const;\n"],"names":["getFallbackIconSizeByImageBaseSize","imageSize","MAX_SIZE","getBadgeIconSizeByImageBaseSize","getOverlayIconSizeByImageBaseSize"],"mappings":"AAAA;;CAEC,GACD,OAAO,SAASA,mCAAmCC,SAAiB;IAClE,IAAIA,aAAa,IAAI;QACnB,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT;IACA,OAAOD,mCAAmCE,QAAQ;AACpD;AAEAF,mCAAmCE,QAAQ,GAAG;AAE9C;;CAEC,GACD,OAAO,SAASC,gCAAgCF,SAAiB;IAC/D,IAAIA,aAAa,IAAI;QACnB,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT;IACA,OAAOE,gCAAgCD,QAAQ;AACjD;AAEAC,gCAAgCD,QAAQ,GAAG;AAE3C;;CAEC,GACD,OAAO,SAASE,kCACdH,SAAiB;IAEjB,IAAIA,aAAa,IAAI;QACnB,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT,OAAO,IAAIA,YAAY,MAAMA,aAAa,IAAI;QAC5C,OAAO;IACT;IACA,OAAOG,kCAAkCF,QAAQ;AACnD;AAEAE,kCAAkCF,QAAQ,GAAG"}
|
|
@@ -7,14 +7,13 @@ import { imageBaseSizes } from './types';
|
|
|
7
7
|
* Icon28User -> 28
|
|
8
8
|
* Icon12Circle1 -> 12
|
|
9
9
|
* Icon12Circle2 -> 12
|
|
10
|
+
* Icon20TextHeading1Outline -> 20
|
|
10
11
|
*/ function parseIconSizeByDisplayName(displayName) {
|
|
11
12
|
if (typeof displayName !== 'string') {
|
|
12
13
|
return null;
|
|
13
14
|
}
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
const size = Number(rawSize);
|
|
17
|
-
return size > 0 ? size : null;
|
|
15
|
+
const match = /Icon(\d+)/.exec(displayName);
|
|
16
|
+
return match ? Number(match[1]) : null;
|
|
18
17
|
}
|
|
19
18
|
function parseIconSizeByWidthProp(width) {
|
|
20
19
|
if (typeof width !== 'string' && typeof width !== 'number') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ImageBase/validators.ts"],"sourcesContent":["import { warnOnce } from '../../lib/warnOnce';\nimport {\n getBadgeIconSizeByImageBaseSize,\n getFallbackIconSizeByImageBaseSize,\n getOverlayIconSizeByImageBaseSize,\n} from './helpers';\nimport { imageBaseSizes } from './types';\n\n/**\n * Пример,\n *\n * Icon28User -> 28\n * Icon12Circle1 -> 12\n * Icon12Circle2 -> 12\n */\nfunction parseIconSizeByDisplayName(displayName: unknown): number | null {\n if (typeof displayName !== 'string') {\n return null;\n }\n const
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ImageBase/validators.ts"],"sourcesContent":["import { warnOnce } from '../../lib/warnOnce';\nimport {\n getBadgeIconSizeByImageBaseSize,\n getFallbackIconSizeByImageBaseSize,\n getOverlayIconSizeByImageBaseSize,\n} from './helpers';\nimport { imageBaseSizes } from './types';\n\n/**\n * Пример,\n *\n * Icon28User -> 28\n * Icon12Circle1 -> 12\n * Icon12Circle2 -> 12\n * Icon20TextHeading1Outline -> 20\n */\nfunction parseIconSizeByDisplayName(displayName: unknown): number | null {\n if (typeof displayName !== 'string') {\n return null;\n }\n\n const match = /Icon(\\d+)/.exec(displayName);\n\n return match ? Number(match[1]) : null;\n}\n\nfunction parseIconSizeByWidthProp(width: unknown): number | null {\n if (typeof width !== 'string' && typeof width !== 'number') {\n return null;\n }\n const size = Number(width);\n return size > 0 ? size : null;\n}\n\nfunction getElementDisplayName(element: JSX.Element): string | null {\n return element.type.displayName ?? null;\n}\n\nfunction getElementWidthProp(element: JSX.Element): number | string | null {\n return element.props.width ?? null;\n}\n\nfunction getIconSizeByElement(element: JSX.Element): number | null {\n const sizeByDisplayName = parseIconSizeByDisplayName(getElementDisplayName(element));\n const sizeByWidth = parseIconSizeByWidthProp(getElementWidthProp(element));\n return sizeByWidth ? sizeByWidth : sizeByDisplayName;\n}\n\ninterface IconProp {\n name: string;\n value: JSX.Element;\n}\n\ninterface SelectorFn {\n (imageSize: number): number;\n MAX_SIZE: number;\n}\n\nfunction validateIconComponentSizeByImageSize(\n imageSize: number,\n iconProp: IconProp,\n selectorFn: SelectorFn,\n logger: ReturnType<typeof warnOnce>,\n) {\n const iconSize = getIconSizeByElement(iconProp.value);\n\n if (iconSize === null) {\n return;\n }\n\n const result = selectorFn(imageSize);\n\n if (result === iconSize || (result === selectorFn.MAX_SIZE && iconSize >= result)) {\n return;\n }\n\n const iconName = getElementDisplayName(iconProp.value);\n const propMessage = iconName ? `${iconProp.name}={<${iconName} />}` : iconProp.name;\n\n logger(\n `Размер \\`${propMessage}\\` не соответствует дизайн-системе. Для \\`size={${imageSize}}\\` размер иконки для \\`${iconProp.name}\\` должен соответствовать <Icon${result}<name> />. Если такого размера нет, то используйте <${iconName} width={${result}} height={${result}} />`,\n 'log',\n );\n}\n\nconst warnImageBase = warnOnce('ImageBase');\n\nexport function validateFallbackIcon(imageSize: number, iconProp: IconProp) {\n return validateIconComponentSizeByImageSize(\n imageSize,\n iconProp,\n getFallbackIconSizeByImageBaseSize,\n warnImageBase,\n );\n}\n\nconst mapOfExpectedSize = new Set<number>(imageBaseSizes);\n\nconst arrayOfSizes = Object.keys(mapOfExpectedSize).map((str) => Number(str));\nconst maxSize = arrayOfSizes.reduce((maxSize, size) => (size > maxSize ? size : maxSize), 0);\n\nexport function validateSize(imageSize: number): void {\n if (imageSize > maxSize || mapOfExpectedSize.has(imageSize)) {\n return;\n }\n warnImageBase(\n `\\`size={${imageSize}}\\` не соответствует дизайн-системе. Пожалуйста, используйте один из следующих вариантов: ${arrayOfSizes.join(\n ' | ',\n )}`,\n 'log',\n );\n}\n\nconst warnImageBaseBadge = warnOnce('ImageBase.Badge');\n\nexport function validateBadgeIcon(imageSize: number, iconProp: IconProp): void {\n if (imageSize < 24 && iconProp) {\n return warnImageBaseBadge('Не используйте бейдж при `size < 24`.', 'log');\n }\n validateIconComponentSizeByImageSize(\n imageSize,\n iconProp,\n getBadgeIconSizeByImageBaseSize,\n warnImageBaseBadge,\n );\n}\n\nconst warnImageBaseOverlay = warnOnce('ImageBase.Overlay');\n\nexport function validateOverlayIcon(imageSize: number, iconProp: IconProp): void {\n validateIconComponentSizeByImageSize(\n imageSize,\n iconProp,\n getOverlayIconSizeByImageBaseSize,\n warnImageBaseOverlay,\n );\n}\n"],"names":["warnOnce","getBadgeIconSizeByImageBaseSize","getFallbackIconSizeByImageBaseSize","getOverlayIconSizeByImageBaseSize","imageBaseSizes","parseIconSizeByDisplayName","displayName","match","exec","Number","parseIconSizeByWidthProp","width","size","getElementDisplayName","element","type","getElementWidthProp","props","getIconSizeByElement","sizeByDisplayName","sizeByWidth","validateIconComponentSizeByImageSize","imageSize","iconProp","selectorFn","logger","iconSize","value","result","MAX_SIZE","iconName","propMessage","name","warnImageBase","validateFallbackIcon","mapOfExpectedSize","Set","arrayOfSizes","Object","keys","map","str","maxSize","reduce","validateSize","has","join","warnImageBaseBadge","validateBadgeIcon","warnImageBaseOverlay","validateOverlayIcon"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,qBAAqB;AAC9C,SACEC,+BAA+B,EAC/BC,kCAAkC,EAClCC,iCAAiC,QAC5B,YAAY;AACnB,SAASC,cAAc,QAAQ,UAAU;AAEzC;;;;;;;CAOC,GACD,SAASC,2BAA2BC,WAAoB;IACtD,IAAI,OAAOA,gBAAgB,UAAU;QACnC,OAAO;IACT;IAEA,MAAMC,QAAQ,YAAYC,IAAI,CAACF;IAE/B,OAAOC,QAAQE,OAAOF,KAAK,CAAC,EAAE,IAAI;AACpC;AAEA,SAASG,yBAAyBC,KAAc;IAC9C,IAAI,OAAOA,UAAU,YAAY,OAAOA,UAAU,UAAU;QAC1D,OAAO;IACT;IACA,MAAMC,OAAOH,OAAOE;IACpB,OAAOC,OAAO,IAAIA,OAAO;AAC3B;AAEA,SAASC,sBAAsBC,OAAoB;IACjD,OAAOA,QAAQC,IAAI,CAACT,WAAW,IAAI;AACrC;AAEA,SAASU,oBAAoBF,OAAoB;IAC/C,OAAOA,QAAQG,KAAK,CAACN,KAAK,IAAI;AAChC;AAEA,SAASO,qBAAqBJ,OAAoB;IAChD,MAAMK,oBAAoBd,2BAA2BQ,sBAAsBC;IAC3E,MAAMM,cAAcV,yBAAyBM,oBAAoBF;IACjE,OAAOM,cAAcA,cAAcD;AACrC;AAYA,SAASE,qCACPC,SAAiB,EACjBC,QAAkB,EAClBC,UAAsB,EACtBC,MAAmC;IAEnC,MAAMC,WAAWR,qBAAqBK,SAASI,KAAK;IAEpD,IAAID,aAAa,MAAM;QACrB;IACF;IAEA,MAAME,SAASJ,WAAWF;IAE1B,IAAIM,WAAWF,YAAaE,WAAWJ,WAAWK,QAAQ,IAAIH,YAAYE,QAAS;QACjF;IACF;IAEA,MAAME,WAAWjB,sBAAsBU,SAASI,KAAK;IACrD,MAAMI,cAAcD,WAAW,CAAC,EAAEP,SAASS,IAAI,CAAC,GAAG,EAAEF,SAAS,IAAI,CAAC,GAAGP,SAASS,IAAI;IAEnFP,OACE,CAAC,SAAS,EAAEM,YAAY,gDAAgD,EAAET,UAAU,wBAAwB,EAAEC,SAASS,IAAI,CAAC,+BAA+B,EAAEJ,OAAO,oDAAoD,EAAEE,SAAS,QAAQ,EAAEF,OAAO,UAAU,EAAEA,OAAO,IAAI,CAAC,EAC5Q;AAEJ;AAEA,MAAMK,gBAAgBjC,SAAS;AAE/B,OAAO,SAASkC,qBAAqBZ,SAAiB,EAAEC,QAAkB;IACxE,OAAOF,qCACLC,WACAC,UACArB,oCACA+B;AAEJ;AAEA,MAAME,oBAAoB,IAAIC,IAAYhC;AAE1C,MAAMiC,eAAeC,OAAOC,IAAI,CAACJ,mBAAmBK,GAAG,CAAC,CAACC,MAAQhC,OAAOgC;AACxE,MAAMC,UAAUL,aAAaM,MAAM,CAAC,CAACD,SAAS9B,OAAUA,OAAO8B,UAAU9B,OAAO8B,SAAU;AAE1F,OAAO,SAASE,aAAatB,SAAiB;IAC5C,IAAIA,YAAYoB,WAAWP,kBAAkBU,GAAG,CAACvB,YAAY;QAC3D;IACF;IACAW,cACE,CAAC,QAAQ,EAAEX,UAAU,0FAA0F,EAAEe,aAAaS,IAAI,CAChI,OACA,CAAC,EACH;AAEJ;AAEA,MAAMC,qBAAqB/C,SAAS;AAEpC,OAAO,SAASgD,kBAAkB1B,SAAiB,EAAEC,QAAkB;IACrE,IAAID,YAAY,MAAMC,UAAU;QAC9B,OAAOwB,mBAAmB,yCAAyC;IACrE;IACA1B,qCACEC,WACAC,UACAtB,iCACA8C;AAEJ;AAEA,MAAME,uBAAuBjD,SAAS;AAEtC,OAAO,SAASkD,oBAAoB5B,SAAiB,EAAEC,QAAkB;IACvEF,qCACEC,WACAC,UACApB,mCACA8C;AAEJ"}
|
|
@@ -6,7 +6,7 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
|
|
|
6
6
|
import styles from './InfoRow.module.css';
|
|
7
7
|
/**
|
|
8
8
|
* @see https://vkcom.github.io/VKUI/#/InfoRow
|
|
9
|
-
*/ export const InfoRow = ({ header
|
|
9
|
+
*/ export const InfoRow = ({ header, children, className, ...restProps })=>/*#__PURE__*/ React.createElement(Headline, {
|
|
10
10
|
...restProps,
|
|
11
11
|
Component: "span",
|
|
12
12
|
className: classNames(styles['InfoRow'], className),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/InfoRow/InfoRow.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './InfoRow.module.css';\n\nexport interface InfoRowProps extends React.HTMLAttributes<HTMLDivElement> {\n header: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/InfoRow\n */\nexport const InfoRow = ({ header, children, className, ...restProps }: InfoRowProps) => (\n <Headline\n {...restProps}\n Component=\"span\"\n className={classNames(styles['InfoRow'], className)}\n weight=\"3\"\n >\n {hasReactNode(header) && (\n <Subhead Component=\"strong\" className={styles['InfoRow__header']}>\n {header}\n <VisuallyHidden> </VisuallyHidden>\n </Subhead>\n )}\n {children}\n </Headline>\n);\n"],"names":["React","classNames","hasReactNode","Headline","Subhead","VisuallyHidden","styles","InfoRow","header","children","className","restProps","Component","weight"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,cAAc,QAAQ,mCAAmC;AAClE,OAAOC,YAAY,uBAAuB;AAM1C;;CAEC,GACD,OAAO,MAAMC,UAAU,CAAC,EAAEC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/InfoRow/InfoRow.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './InfoRow.module.css';\n\nexport interface InfoRowProps extends React.HTMLAttributes<HTMLDivElement> {\n header: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/InfoRow\n */\nexport const InfoRow = ({ header, children, className, ...restProps }: InfoRowProps) => (\n <Headline\n {...restProps}\n Component=\"span\"\n className={classNames(styles['InfoRow'], className)}\n weight=\"3\"\n >\n {hasReactNode(header) && (\n <Subhead Component=\"strong\" className={styles['InfoRow__header']}>\n {header}\n <VisuallyHidden> </VisuallyHidden>\n </Subhead>\n )}\n {children}\n </Headline>\n);\n"],"names":["React","classNames","hasReactNode","Headline","Subhead","VisuallyHidden","styles","InfoRow","header","children","className","restProps","Component","weight"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,cAAc,QAAQ,mCAAmC;AAClE,OAAOC,YAAY,uBAAuB;AAM1C;;CAEC,GACD,OAAO,MAAMC,UAAU,CAAC,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGC,WAAyB,iBACjF,oBAACR;QACE,GAAGQ,SAAS;QACbC,WAAU;QACVF,WAAWT,WAAWK,MAAM,CAAC,UAAU,EAAEI;QACzCG,QAAO;OAENX,aAAaM,yBACZ,oBAACJ;QAAQQ,WAAU;QAASF,WAAWJ,MAAM,CAAC,kBAAkB;OAC7DE,sBACD,oBAACH,sBAAe,UAGnBI,UAEH"}
|
|
@@ -11,8 +11,8 @@ const sizeYClassNames = {
|
|
|
11
11
|
};
|
|
12
12
|
/**
|
|
13
13
|
* @see https://vkcom.github.io/VKUI/#/Input
|
|
14
|
-
*/ export const Input = ({ type ='text'
|
|
15
|
-
const { sizeY ='none'
|
|
14
|
+
*/ export const Input = ({ type = 'text', align = 'left', getRef, className, getRootRef, style, before, after, status, mode, ...restProps })=>{
|
|
15
|
+
const { sizeY = 'none' } = useAdaptivity();
|
|
16
16
|
return /*#__PURE__*/ React.createElement(FormField, {
|
|
17
17
|
style: style,
|
|
18
18
|
className: classNames(styles['Input'], align === 'right' && styles['Input--align-right'], align === 'center' && styles['Input--align-center'], sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY], before && styles['Input--hasBefore'], after && styles['Input--hasAfter'], className),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Input/Input.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { SizeType } from '../../lib/adaptivity';\nimport { HasAlign, HasRef, HasRootRef } from '../../types';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './Input.module.css';\n\nconst sizeYClassNames = {\n none: styles['Input--sizeY-none'],\n [SizeType.COMPACT]: styles['Input--sizeY-compact'],\n};\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasAlign,\n FormFieldProps {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Input\n */\nexport const Input = ({\n type = 'text',\n align = 'left',\n getRef,\n className,\n getRootRef,\n style,\n before,\n after,\n status,\n mode,\n ...restProps\n}: InputProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <FormField\n style={style}\n className={classNames(\n styles['Input'],\n align === 'right' && styles['Input--align-right'],\n align === 'center' && styles['Input--align-center'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n before && styles['Input--hasBefore'],\n after && styles['Input--hasAfter'],\n className,\n )}\n getRootRef={getRootRef}\n before={before}\n after={after}\n disabled={restProps.disabled}\n mode={mode}\n status={status}\n >\n <Text\n {...restProps}\n Component=\"input\"\n normalize={false}\n type={type}\n className={styles['Input__el']}\n getRootRef={getRef}\n />\n </FormField>\n );\n};\n"],"names":["React","classNames","useAdaptivity","SizeType","FormField","Text","styles","sizeYClassNames","none","COMPACT","Input","type","align","getRef","className","getRootRef","style","before","after","status","mode","restProps","sizeY","REGULAR","disabled","Component","normalize"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,SAAS,QAAwB,yBAAyB;AACnE,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,OAAOC,YAAY,qBAAqB;AAExC,MAAMC,kBAAkB;IACtBC,MAAMF,MAAM,CAAC,oBAAoB;IACjC,CAACH,SAASM,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Input/Input.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { SizeType } from '../../lib/adaptivity';\nimport { HasAlign, HasRef, HasRootRef } from '../../types';\nimport { FormField, FormFieldProps } from '../FormField/FormField';\nimport { Text } from '../Typography/Text/Text';\nimport styles from './Input.module.css';\n\nconst sizeYClassNames = {\n none: styles['Input--sizeY-none'],\n [SizeType.COMPACT]: styles['Input--sizeY-compact'],\n};\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasAlign,\n FormFieldProps {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Input\n */\nexport const Input = ({\n type = 'text',\n align = 'left',\n getRef,\n className,\n getRootRef,\n style,\n before,\n after,\n status,\n mode,\n ...restProps\n}: InputProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <FormField\n style={style}\n className={classNames(\n styles['Input'],\n align === 'right' && styles['Input--align-right'],\n align === 'center' && styles['Input--align-center'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n before && styles['Input--hasBefore'],\n after && styles['Input--hasAfter'],\n className,\n )}\n getRootRef={getRootRef}\n before={before}\n after={after}\n disabled={restProps.disabled}\n mode={mode}\n status={status}\n >\n <Text\n {...restProps}\n Component=\"input\"\n normalize={false}\n type={type}\n className={styles['Input__el']}\n getRootRef={getRef}\n />\n </FormField>\n );\n};\n"],"names":["React","classNames","useAdaptivity","SizeType","FormField","Text","styles","sizeYClassNames","none","COMPACT","Input","type","align","getRef","className","getRootRef","style","before","after","status","mode","restProps","sizeY","REGULAR","disabled","Component","normalize"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,SAAS,QAAwB,yBAAyB;AACnE,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,OAAOC,YAAY,qBAAqB;AAExC,MAAMC,kBAAkB;IACtBC,MAAMF,MAAM,CAAC,oBAAoB;IACjC,CAACH,SAASM,OAAO,CAAC,EAAEH,MAAM,CAAC,uBAAuB;AACpD;AASA;;CAEC,GACD,OAAO,MAAMI,QAAQ,CAAC,EACpBC,OAAO,MAAM,EACbC,QAAQ,MAAM,EACdC,MAAM,EACNC,SAAS,EACTC,UAAU,EACVC,KAAK,EACLC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,IAAI,EACJ,GAAGC,WACQ;IACX,MAAM,EAAEC,QAAQ,MAAM,EAAE,GAAGpB;IAE3B,qBACE,oBAACE;QACCY,OAAOA;QACPF,WAAWb,WACTK,MAAM,CAAC,QAAQ,EACfM,UAAU,WAAWN,MAAM,CAAC,qBAAqB,EACjDM,UAAU,YAAYN,MAAM,CAAC,sBAAsB,EACnDgB,UAAUnB,SAASoB,OAAO,IAAIhB,eAAe,CAACe,MAAM,EACpDL,UAAUX,MAAM,CAAC,mBAAmB,EACpCY,SAASZ,MAAM,CAAC,kBAAkB,EAClCQ;QAEFC,YAAYA;QACZE,QAAQA;QACRC,OAAOA;QACPM,UAAUH,UAAUG,QAAQ;QAC5BJ,MAAMA;QACND,QAAQA;qBAER,oBAACd;QACE,GAAGgB,SAAS;QACbI,WAAU;QACVC,WAAW;QACXf,MAAMA;QACNG,WAAWR,MAAM,CAAC,YAAY;QAC9BS,YAAYF;;AAIpB,EAAE"}
|
|
@@ -14,7 +14,7 @@ function getMaskElements(length) {
|
|
|
14
14
|
}
|
|
15
15
|
return result;
|
|
16
16
|
}
|
|
17
|
-
export const InputLike = ({ value
|
|
17
|
+
export const InputLike = ({ value, length, index, onElementSelect, onClick, onFocus, getRootRef, className, ...props })=>{
|
|
18
18
|
const handleElementSelect = React.useCallback((event)=>{
|
|
19
19
|
stopPropagation(event);
|
|
20
20
|
onElementSelect?.(index);
|