@vkontakte/vkui 7.4.4 → 7.5.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/components/Accordion/Accordion.d.ts +8 -1
- package/dist/components/Accordion/Accordion.d.ts.map +1 -1
- package/dist/components/Accordion/Accordion.js +9 -4
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/Accordion/AccordionContent.d.ts +1 -1
- package/dist/components/Accordion/AccordionContent.d.ts.map +1 -1
- package/dist/components/Accordion/AccordionContent.js +4 -1
- package/dist/components/Accordion/AccordionContent.js.map +1 -1
- package/dist/components/Accordion/AccordionContext.d.ts +5 -0
- package/dist/components/Accordion/AccordionContext.d.ts.map +1 -1
- package/dist/components/Accordion/AccordionContext.js +12 -0
- package/dist/components/Accordion/AccordionContext.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.d.ts +1 -1
- package/dist/components/ActionSheet/ActionSheet.js +1 -1
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.js +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +1 -1
- package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js +1 -1
- package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/components/Alert/Alert.d.ts +1 -1
- package/dist/components/Alert/Alert.js +1 -1
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.d.ts +3 -3
- package/dist/components/AppRoot/AppRoot.js +1 -1
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.d.ts +1 -1
- package/dist/components/AspectRatio/AspectRatio.js +1 -1
- package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/components/Avatar/Avatar.d.ts +1 -1
- package/dist/components/Avatar/Avatar.js +1 -1
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Badge/Badge.d.ts +1 -1
- package/dist/components/Badge/Badge.js +1 -1
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Banner/Banner.d.ts +3 -3
- package/dist/components/Banner/Banner.js +1 -1
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/Button/Button.d.ts +1 -1
- package/dist/components/Button/Button.js +1 -1
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.d.ts +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +1 -1
- package/dist/components/Calendar/Calendar.js +1 -1
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +1 -1
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/Card/Card.d.ts +1 -1
- package/dist/components/Card/Card.js +1 -1
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/CardGrid/CardGrid.d.ts +1 -1
- package/dist/components/CardGrid/CardGrid.js +1 -1
- package/dist/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/components/CardScroll/CardScroll.d.ts +1 -1
- package/dist/components/CardScroll/CardScroll.js +1 -1
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/Cell/Cell.d.ts +1 -1
- package/dist/components/Cell/Cell.js +1 -1
- package/dist/components/Cell/Cell.js.map +1 -1
- package/dist/components/CellButton/CellButton.d.ts +1 -1
- package/dist/components/CellButton/CellButton.js +1 -1
- package/dist/components/CellButton/CellButton.js.map +1 -1
- package/dist/components/CellButtonGroup/CellButtonGroup.d.ts +1 -1
- package/dist/components/CellButtonGroup/CellButtonGroup.js +1 -1
- package/dist/components/CellButtonGroup/CellButtonGroup.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +1 -1
- package/dist/components/Checkbox/Checkbox.js +1 -1
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/ChipsInput/ChipsInput.d.ts +1 -1
- package/dist/components/ChipsInput/ChipsInput.js +1 -1
- package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/components/ChipsInputBase/Chip/Chip.d.ts +1 -1
- package/dist/components/ChipsInputBase/Chip/Chip.js +1 -1
- package/dist/components/ChipsInputBase/Chip/Chip.js.map +1 -1
- package/dist/components/ChipsInputBase/ChipsInputBase.d.ts +1 -1
- package/dist/components/ChipsInputBase/ChipsInputBase.d.ts.map +1 -1
- package/dist/components/ChipsInputBase/ChipsInputBase.js +64 -37
- package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/components/ChipsInputBase/helpers.d.ts.map +1 -1
- package/dist/components/ChipsInputBase/helpers.js +2 -0
- package/dist/components/ChipsInputBase/helpers.js.map +1 -1
- package/dist/components/ChipsInputBase/types.d.ts +5 -1
- package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
- package/dist/components/ChipsInputBase/types.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.d.ts +2 -2
- package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js +7 -5
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/ColorSchemeProvider/ColorSchemeProvider.d.ts +1 -1
- package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js +1 -1
- package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.d.ts +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/ContentBadge/ContentBadge.d.ts +1 -1
- package/dist/components/ContentBadge/ContentBadge.js +1 -1
- package/dist/components/ContentBadge/ContentBadge.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.d.ts +1 -1
- package/dist/components/ContentCard/ContentCard.js +1 -1
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/Counter/Counter.d.ts +1 -1
- package/dist/components/Counter/Counter.js +1 -1
- package/dist/components/Counter/Counter.js.map +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.d.ts +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.js +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +2 -2
- package/dist/components/CustomSelect/CustomSelect.js +1 -1
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.d.ts +3 -3
- package/dist/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts +1 -1
- package/dist/components/DateInput/DateInput.js +2 -3
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/DirectionProvider/DirectionProvider.d.ts +1 -1
- package/dist/components/DirectionProvider/DirectionProvider.js +1 -1
- package/dist/components/DirectionProvider/DirectionProvider.js.map +1 -1
- package/dist/components/Div/Div.d.ts +1 -1
- package/dist/components/Div/Div.js +1 -1
- package/dist/components/Div/Div.js.map +1 -1
- package/dist/components/DropZone/DropZone.d.ts +1 -1
- package/dist/components/DropZone/DropZone.js +1 -1
- package/dist/components/DropZone/DropZone.js.map +1 -1
- package/dist/components/Epic/Epic.d.ts +1 -1
- package/dist/components/Epic/Epic.js +1 -1
- package/dist/components/Epic/Epic.js.map +1 -1
- package/dist/components/Epic/ScrollSaver.d.ts +0 -3
- package/dist/components/Epic/ScrollSaver.d.ts.map +1 -1
- package/dist/components/Epic/ScrollSaver.js +1 -3
- package/dist/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/components/File/File.d.ts +1 -1
- package/dist/components/File/File.js +1 -1
- package/dist/components/File/File.js.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.d.ts +1 -1
- package/dist/components/FixedLayout/FixedLayout.js +1 -1
- package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/components/Flex/Flex.d.ts +3 -0
- package/dist/components/Flex/Flex.d.ts.map +1 -1
- package/dist/components/Flex/Flex.js +3 -1
- package/dist/components/Flex/Flex.js.map +1 -1
- package/dist/components/FocusTrap/FocusTrap.d.ts +0 -3
- package/dist/components/FocusTrap/FocusTrap.d.ts.map +1 -1
- package/dist/components/FocusTrap/FocusTrap.js +1 -3
- package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/components/Footer/Footer.d.ts +1 -1
- package/dist/components/Footer/Footer.js +1 -1
- package/dist/components/Footer/Footer.js.map +1 -1
- package/dist/components/FormField/FormField.d.ts +3 -3
- package/dist/components/FormField/FormField.js +1 -1
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/FormItem/FormItem.d.ts +1 -1
- package/dist/components/FormItem/FormItem.js +1 -1
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/FormStatus/FormStatus.d.ts +1 -1
- package/dist/components/FormStatus/FormStatus.js +1 -1
- package/dist/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/components/Gallery/Gallery.d.ts +1 -1
- package/dist/components/Gallery/Gallery.js +1 -1
- package/dist/components/Gallery/Gallery.js.map +1 -1
- package/dist/components/Gradient/Gradient.d.ts +1 -1
- package/dist/components/Gradient/Gradient.js +1 -1
- package/dist/components/Gradient/Gradient.js.map +1 -1
- package/dist/components/GridAvatar/GridAvatar.d.ts +1 -1
- package/dist/components/GridAvatar/GridAvatar.js +1 -1
- package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/components/Group/Group.d.ts +1 -1
- package/dist/components/Group/Group.js +1 -1
- package/dist/components/Group/Group.js.map +1 -1
- package/dist/components/Header/Header.d.ts +1 -1
- package/dist/components/Header/Header.js +1 -1
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.d.ts +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.js +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +3 -0
- package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.d.ts.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js +3 -1
- package/dist/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/IconButton/IconButton.d.ts +1 -1
- package/dist/components/IconButton/IconButton.js +1 -1
- package/dist/components/IconButton/IconButton.js.map +1 -1
- package/dist/components/Image/Image.d.ts +1 -1
- package/dist/components/Image/Image.js +1 -1
- package/dist/components/Image/Image.js.map +1 -1
- package/dist/components/ImageBase/ImageBase.d.ts +1 -1
- package/dist/components/ImageBase/ImageBase.js +1 -1
- package/dist/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/components/InfoRow/InfoRow.d.ts +1 -1
- package/dist/components/InfoRow/InfoRow.js +1 -1
- package/dist/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/components/Input/Input.d.ts +1 -1
- package/dist/components/Input/Input.js +1 -1
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/Link/Link.d.ts +1 -1
- package/dist/components/Link/Link.js +1 -1
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/List/List.d.ts +1 -1
- package/dist/components/List/List.js +1 -1
- package/dist/components/List/List.js.map +1 -1
- package/dist/components/LocaleProvider/LocaleProvider.d.ts +1 -1
- package/dist/components/LocaleProvider/LocaleProvider.js +1 -1
- package/dist/components/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/components/Mark/Mark.d.ts +1 -1
- package/dist/components/Mark/Mark.js +1 -1
- package/dist/components/Mark/Mark.js.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.d.ts +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.js +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/components/ModalCard/ModalCard.d.ts +1 -1
- package/dist/components/ModalCard/ModalCard.js +1 -1
- package/dist/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.d.ts +3 -3
- package/dist/components/ModalCardBase/ModalCardBase.js +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +1 -1
- package/dist/components/ModalDismissButton/ModalDismissButton.js +1 -1
- package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/components/ModalOutsideButton/ModalOutsideButton.d.ts +1 -1
- package/dist/components/ModalOutsideButton/ModalOutsideButton.js +1 -1
- package/dist/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts +1 -1
- package/dist/components/ModalPage/ModalPage.js +1 -1
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.d.ts +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.js +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +1 -1
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.d.ts +1 -1
- package/dist/components/NativeSelect/NativeSelect.js +1 -1
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/components/Pagination/Pagination.d.ts +3 -3
- package/dist/components/Pagination/Pagination.js +1 -1
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Panel/Panel.d.ts +3 -3
- package/dist/components/Panel/Panel.js +1 -1
- package/dist/components/Panel/Panel.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.d.ts +1 -1
- package/dist/components/PanelHeader/PanelHeader.js +1 -1
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.js +1 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/PanelHeaderClose/PanelHeaderClose.d.ts +1 -1
- package/dist/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
- package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/components/PanelHeaderContext/PanelHeaderContext.d.ts +1 -1
- package/dist/components/PanelHeaderContext/PanelHeaderContext.js +1 -1
- package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +1 -1
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +1 -1
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/components/PanelSpinner/PanelSpinner.d.ts +1 -1
- package/dist/components/PanelSpinner/PanelSpinner.js +1 -1
- package/dist/components/PanelSpinner/PanelSpinner.js.map +1 -1
- package/dist/components/Placeholder/Placeholder.d.ts +1 -1
- package/dist/components/Placeholder/Placeholder.js +1 -1
- package/dist/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/components/PlatformProvider/PlatformProvider.d.ts +1 -1
- package/dist/components/PlatformProvider/PlatformProvider.js +1 -1
- package/dist/components/PlatformProvider/PlatformProvider.js.map +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.js +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/components/Popover/Popover.d.ts +1 -1
- package/dist/components/Popover/Popover.js +1 -1
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popper/Popper.d.ts +1 -1
- package/dist/components/Popper/Popper.js +1 -1
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/Progress/Progress.d.ts +1 -1
- package/dist/components/Progress/Progress.js +1 -1
- package/dist/components/Progress/Progress.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.d.ts +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.js +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/Radio/Radio.d.ts +1 -1
- package/dist/components/Radio/Radio.js +1 -1
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts +1 -1
- package/dist/components/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/RichCell/RichCell.d.ts +3 -3
- package/dist/components/RichCell/RichCell.js +1 -1
- package/dist/components/RichCell/RichCell.js.map +1 -1
- package/dist/components/Root/Root.d.ts +1 -1
- package/dist/components/Root/Root.js +1 -1
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinner.d.ts +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinner.js +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/components/ScrollArrow/ScrollArrow.d.ts +1 -1
- package/dist/components/ScrollArrow/ScrollArrow.js +1 -1
- package/dist/components/ScrollArrow/ScrollArrow.js.map +1 -1
- package/dist/components/Search/Search.d.ts +1 -1
- package/dist/components/Search/Search.js +1 -1
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.d.ts +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +0 -3
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +1 -3
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/components/Select/Select.d.ts +1 -1
- package/dist/components/Select/Select.js +1 -1
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.d.ts +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SelectionControl/SelectionControl.d.ts +1 -1
- package/dist/components/SelectionControl/SelectionControl.js +1 -1
- package/dist/components/SelectionControl/SelectionControl.js.map +1 -1
- package/dist/components/Separator/Separator.d.ts +1 -1
- package/dist/components/Separator/Separator.js +1 -1
- package/dist/components/Separator/Separator.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
- package/dist/components/SimpleCell/SimpleCell.js +1 -1
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/SimpleGrid/SimpleGrid.d.ts +3 -0
- package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
- package/dist/components/SimpleGrid/SimpleGrid.js +3 -1
- package/dist/components/SimpleGrid/SimpleGrid.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts +3 -0
- package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/components/Skeleton/Skeleton.js +3 -0
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Slider/Slider.d.ts +1 -1
- package/dist/components/Slider/Slider.js +1 -1
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/Snackbar/Snackbar.d.ts +1 -1
- package/dist/components/Snackbar/Snackbar.js +1 -1
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/Spacing/Spacing.d.ts +1 -1
- package/dist/components/Spacing/Spacing.js +1 -1
- package/dist/components/Spacing/Spacing.js.map +1 -1
- package/dist/components/Spinner/Spinner.d.ts +1 -1
- package/dist/components/Spinner/Spinner.js +1 -1
- package/dist/components/Spinner/Spinner.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.d.ts +1 -1
- package/dist/components/SplitCol/SplitCol.js +1 -1
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.d.ts +1 -1
- package/dist/components/SplitLayout/SplitLayout.js +1 -1
- package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +1 -1
- package/dist/components/SubnavigationBar/SubnavigationBar.js +1 -1
- package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.d.ts +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/Switch/Switch.d.ts +1 -1
- package/dist/components/Switch/Switch.js +1 -1
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Tabbar/Tabbar.d.ts +1 -1
- package/dist/components/Tabbar/Tabbar.js +1 -1
- package/dist/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.d.ts +1 -1
- package/dist/components/TabbarItem/TabbarItem.js +1 -1
- package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts +1 -1
- package/dist/components/Tabs/Tabs.js +1 -1
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/TabsItem/TabsItem.d.ts +3 -3
- package/dist/components/TabsItem/TabsItem.js +1 -1
- package/dist/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/components/Textarea/Textarea.d.ts +1 -1
- package/dist/components/Textarea/Textarea.js +1 -1
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/ToolButton/ToolButton.d.ts +1 -1
- package/dist/components/ToolButton/ToolButton.js +1 -1
- package/dist/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.js +1 -1
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/TooltipBase/TooltipBase.d.ts +0 -2
- package/dist/components/TooltipBase/TooltipBase.d.ts.map +1 -1
- package/dist/components/TooltipBase/TooltipBase.js +0 -2
- package/dist/components/TooltipBase/TooltipBase.js.map +1 -1
- package/dist/components/Touch/Touch.d.ts +1 -1
- package/dist/components/Touch/Touch.js +1 -1
- package/dist/components/Touch/Touch.js.map +1 -1
- package/dist/components/Typography/Caption/Caption.d.ts +1 -1
- package/dist/components/Typography/Caption/Caption.js +1 -1
- package/dist/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts +1 -1
- package/dist/components/Typography/DisplayTitle/DisplayTitle.js +1 -1
- package/dist/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
- package/dist/components/Typography/EllipsisText/EllipsisText.d.ts +1 -1
- package/dist/components/Typography/EllipsisText/EllipsisText.js +1 -1
- package/dist/components/Typography/EllipsisText/EllipsisText.js.map +1 -1
- package/dist/components/Typography/Footnote/Footnote.d.ts +1 -1
- package/dist/components/Typography/Footnote/Footnote.js +1 -1
- package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/components/Typography/Headline/Headline.d.ts +1 -1
- package/dist/components/Typography/Headline/Headline.js +1 -1
- package/dist/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/components/Typography/Paragraph/Paragraph.d.ts +1 -1
- package/dist/components/Typography/Paragraph/Paragraph.js +1 -1
- package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/components/Typography/Subhead/Subhead.d.ts +1 -1
- package/dist/components/Typography/Subhead/Subhead.js +1 -1
- package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/components/Typography/Text/Text.d.ts +1 -1
- package/dist/components/Typography/Text/Text.js +1 -1
- package/dist/components/Typography/Text/Text.js.map +1 -1
- package/dist/components/Typography/Title/Title.d.ts +1 -1
- package/dist/components/Typography/Title/Title.js +1 -1
- package/dist/components/Typography/Title/Title.js.map +1 -1
- package/dist/components/UnstyledTextField/UnstyledTextField.d.ts +4 -1
- package/dist/components/UnstyledTextField/UnstyledTextField.d.ts.map +1 -1
- package/dist/components/UnstyledTextField/UnstyledTextField.js +4 -1
- package/dist/components/UnstyledTextField/UnstyledTextField.js.map +1 -1
- package/dist/components/UsersStack/UsersStack.d.ts +1 -1
- package/dist/components/UsersStack/UsersStack.js +1 -1
- package/dist/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/components/View/View.d.ts +1 -1
- package/dist/components/View/View.js +1 -1
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.js +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/components/WriteBar/WriteBar.d.ts +1 -1
- package/dist/components/WriteBar/WriteBar.js +1 -1
- package/dist/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.d.ts +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.js +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/Accordion/Accordion.js +6 -2
- package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
- package/dist/cssm/components/Accordion/AccordionContent.js +4 -1
- package/dist/cssm/components/Accordion/AccordionContent.js.map +1 -1
- package/dist/cssm/components/Accordion/AccordionContext.js +12 -0
- package/dist/cssm/components/Accordion/AccordionContext.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js +1 -1
- package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js +1 -1
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.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/Badge/Badge.js +1 -1
- package/dist/cssm/components/Badge/Badge.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.js +1 -1
- package/dist/cssm/components/Banner/Banner.js.map +1 -1
- package/dist/cssm/components/Button/Button.js +1 -1
- 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 +1 -1
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.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 +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.js +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.js +1 -1
- package/dist/cssm/components/Cell/Cell.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/CellButtonGroup/CellButtonGroup.js +1 -1
- package/dist/cssm/components/CellButtonGroup/CellButtonGroup.js.map +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.js +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.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/Chip/Chip.js +1 -1
- package/dist/cssm/components/ChipsInputBase/Chip/Chip.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +59 -34
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +17 -3
- package/dist/cssm/components/ChipsInputBase/helpers.js +2 -0
- package/dist/cssm/components/ChipsInputBase/helpers.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +5 -4
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js +1 -1
- package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/ContentBadge/ContentBadge.js +1 -1
- package/dist/cssm/components/ContentBadge/ContentBadge.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.js +1 -1
- 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 +1 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.js +2 -3
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/DirectionProvider/DirectionProvider.js +1 -1
- package/dist/cssm/components/DirectionProvider/DirectionProvider.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/DropZone/DropZone.js +1 -1
- package/dist/cssm/components/DropZone/DropZone.js.map +1 -1
- 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 +1 -3
- 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 +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cssm/components/Flex/Flex.js +3 -1
- package/dist/cssm/components/Flex/Flex.js.map +1 -1
- package/dist/cssm/components/FocusTrap/FocusTrap.js +1 -3
- package/dist/cssm/components/FocusTrap/FocusTrap.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 +1 -1
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.js +1 -1
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +1 -1
- 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/Group/Group.js +1 -1
- package/dist/cssm/components/Group/Group.js.map +1 -1
- package/dist/cssm/components/Header/Header.js +1 -1
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js +3 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/IconButton/IconButton.js +1 -1
- 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/ImageBase/ImageBase.js +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.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 +1 -1
- package/dist/cssm/components/Input/Input.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/LocaleProvider/LocaleProvider.js +1 -1
- package/dist/cssm/components/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/cssm/components/Mark/Mark.js +1 -1
- package/dist/cssm/components/Mark/Mark.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 +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js +1 -1
- package/dist/cssm/components/ModalOutsideButton/ModalOutsideButton.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +1 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.js +1 -1
- package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
- package/dist/cssm/components/Panel/Panel.js +1 -1
- package/dist/cssm/components/Panel/Panel.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +1 -1
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- 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 +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +1 -1
- 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/PopoutWrapper/PopoutWrapper.js +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cssm/components/Popover/Popover.js +1 -1
- package/dist/cssm/components/Popover/Popover.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.js +1 -1
- package/dist/cssm/components/Popper/Popper.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/PullToRefresh/PullToRefresh.js +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/Radio/Radio.js +1 -1
- 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/RichCell/RichCell.js +1 -1
- package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
- package/dist/cssm/components/Root/Root.js +1 -1
- 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 +1 -1
- package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
- package/dist/cssm/components/Search/Search.js +1 -1
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +1 -3
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cssm/components/Select/Select.js +1 -1
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SelectionControl/SelectionControl.js +1 -1
- package/dist/cssm/components/SelectionControl/SelectionControl.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/SimpleCell.js +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SimpleGrid/SimpleGrid.js +3 -1
- package/dist/cssm/components/SimpleGrid/SimpleGrid.js.map +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.js +3 -0
- package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/cssm/components/Slider/Slider.js +1 -1
- package/dist/cssm/components/Slider/Slider.js.map +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.js +1 -1
- 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.js +1 -1
- package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.js +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.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 +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.js +1 -1
- 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 +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cssm/components/Tabs/Tabs.js +1 -1
- package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.js +1 -1
- package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.js +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.js +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/TooltipBase/TooltipBase.js +0 -2
- package/dist/cssm/components/TooltipBase/TooltipBase.js.map +1 -1
- package/dist/cssm/components/Touch/Touch.js +1 -1
- package/dist/cssm/components/Touch/Touch.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/DisplayTitle/DisplayTitle.js +1 -1
- package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
- package/dist/cssm/components/Typography/EllipsisText/EllipsisText.js +1 -1
- package/dist/cssm/components/Typography/EllipsisText/EllipsisText.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 +1 -1
- 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 +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cssm/components/Typography/Text/Text.js +1 -1
- 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/UnstyledTextField/UnstyledTextField.js +4 -1
- package/dist/cssm/components/UnstyledTextField/UnstyledTextField.js.map +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.js +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cssm/components/View/View.js +1 -1
- package/dist/cssm/components/View/View.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/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/hooks/useAdaptivity.js +1 -1
- package/dist/cssm/hooks/useAdaptivity.js.map +1 -1
- package/dist/cssm/index.js +1 -1
- 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 +4 -0
- package/dist/cssm/lib/accessibility.js.map +1 -1
- package/dist/hooks/useAdaptivity.d.ts +1 -1
- package/dist/hooks/useAdaptivity.js +1 -1
- package/dist/hooks/useAdaptivity.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/SSR.d.ts +1 -1
- package/dist/lib/SSR.js +1 -1
- package/dist/lib/SSR.js.map +1 -1
- package/dist/lib/accessibility.d.ts +1 -1
- package/dist/lib/accessibility.d.ts.map +1 -1
- package/dist/lib/accessibility.js +4 -0
- package/dist/lib/accessibility.js.map +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +5 -4
- package/src/components/Accordion/Accordion.tsx +13 -4
- package/src/components/Accordion/AccordionContent.tsx +5 -1
- package/src/components/Accordion/AccordionContext.tsx +17 -0
- package/src/components/ActionSheet/ActionSheet.tsx +1 -1
- package/src/components/ActionSheetItem/ActionSheetItem.tsx +1 -1
- package/src/components/AdaptiveIconRenderer/AdaptiveIconRenderer.tsx +1 -1
- package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +1 -1
- package/src/components/Alert/Alert.tsx +1 -1
- package/src/components/AppRoot/AppRoot.mdx +1 -1
- package/src/components/AppRoot/AppRoot.tsx +3 -3
- package/src/components/AspectRatio/AspectRatio.tsx +1 -1
- package/src/components/Avatar/Avatar.tsx +1 -1
- package/src/components/Badge/Badge.tsx +1 -1
- package/src/components/Banner/Banner.tsx +3 -3
- package/src/components/Button/Button.tsx +1 -1
- package/src/components/ButtonGroup/ButtonGroup.tsx +1 -1
- package/src/components/Calendar/Calendar.tsx +1 -1
- package/src/components/CalendarRange/CalendarRange.tsx +1 -1
- package/src/components/Card/Card.tsx +1 -1
- package/src/components/CardGrid/CardGrid.tsx +1 -1
- package/src/components/CardScroll/CardScroll.tsx +1 -1
- package/src/components/Cell/Cell.tsx +1 -1
- package/src/components/CellButton/CellButton.tsx +1 -1
- package/src/components/CellButtonGroup/CellButtonGroup.tsx +1 -1
- package/src/components/Checkbox/Checkbox.tsx +1 -1
- package/src/components/ChipsInput/ChipsInput.tsx +1 -1
- package/src/components/ChipsInputBase/Chip/Chip.tsx +1 -1
- package/src/components/ChipsInputBase/ChipsInputBase.module.css +15 -3
- package/src/components/ChipsInputBase/ChipsInputBase.module.css.d.ts.map +1 -1
- package/src/components/ChipsInputBase/ChipsInputBase.tsx +68 -37
- package/src/components/ChipsInputBase/helpers.ts +2 -0
- package/src/components/ChipsInputBase/types.ts +5 -1
- package/src/components/ChipsSelect/ChipsSelect.tsx +5 -2
- package/src/components/ColorSchemeProvider/ColorSchemeProvider.tsx +1 -1
- package/src/components/ConfigProvider/ConfigProvider.tsx +1 -1
- package/src/components/ContentBadge/ContentBadge.tsx +1 -1
- package/src/components/ContentCard/ContentCard.tsx +1 -1
- package/src/components/Counter/Counter.tsx +1 -1
- package/src/components/CustomScrollView/CustomScrollView.tsx +1 -1
- package/src/components/CustomSelect/CustomSelect.tsx +2 -2
- package/src/components/CustomSelectOption/CustomSelectOption.tsx +3 -3
- package/src/components/DateInput/DateInput.tsx +1 -1
- package/src/components/DateRangeInput/DateRangeInput.tsx +1 -1
- package/src/components/DirectionProvider/DirectionProvider.tsx +1 -1
- package/src/components/Div/Div.tsx +1 -1
- package/src/components/DropZone/DropZone.tsx +1 -1
- package/src/components/Epic/Epic.tsx +1 -1
- package/src/components/Epic/ScrollSaver.tsx +0 -3
- package/src/components/File/File.tsx +1 -1
- package/src/components/FixedLayout/FixedLayout.tsx +1 -1
- package/src/components/Flex/Flex.tsx +3 -0
- package/src/components/FocusTrap/FocusTrap.tsx +0 -3
- package/src/components/Footer/Footer.tsx +1 -1
- package/src/components/FormField/FormField.tsx +3 -3
- package/src/components/FormItem/FormItem.tsx +1 -1
- package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +1 -1
- package/src/components/FormStatus/FormStatus.tsx +1 -1
- package/src/components/Gallery/Gallery.tsx +1 -1
- package/src/components/Gradient/Gradient.tsx +1 -1
- package/src/components/GridAvatar/GridAvatar.tsx +1 -1
- package/src/components/Group/Group.tsx +1 -1
- package/src/components/Header/Header.tsx +1 -1
- package/src/components/HorizontalCell/HorizontalCell.tsx +1 -1
- package/src/components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore.tsx +3 -0
- package/src/components/HorizontalScroll/HorizontalScroll.tsx +1 -1
- package/src/components/IconButton/IconButton.tsx +1 -1
- package/src/components/Image/Image.tsx +1 -1
- package/src/components/ImageBase/ImageBase.tsx +1 -1
- package/src/components/InfoRow/InfoRow.tsx +1 -1
- package/src/components/Input/Input.tsx +1 -1
- package/src/components/Link/Link.tsx +1 -1
- package/src/components/List/List.tsx +1 -1
- package/src/components/LocaleProvider/LocaleProvider.tsx +1 -1
- package/src/components/Mark/Mark.tsx +1 -1
- package/src/components/MiniInfoCell/MiniInfoCell.tsx +1 -1
- package/src/components/ModalCard/ModalCard.tsx +1 -1
- package/src/components/ModalCardBase/ModalCardBase.tsx +3 -3
- package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -1
- package/src/components/ModalOutsideButton/ModalOutsideButton.tsx +1 -1
- package/src/components/ModalPage/ModalPage.tsx +1 -1
- package/src/components/ModalPageHeader/ModalPageHeader.tsx +1 -1
- package/src/components/ModalRoot/ModalRoot.tsx +1 -1
- package/src/components/NativeSelect/NativeSelect.tsx +1 -1
- package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +1 -1
- package/src/components/Pagination/Pagination.tsx +3 -3
- package/src/components/Panel/Panel.tsx +3 -3
- package/src/components/PanelHeader/PanelHeader.tsx +1 -1
- package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +1 -1
- package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +1 -1
- package/src/components/PanelHeaderClose/PanelHeaderClose.tsx +1 -1
- package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +1 -1
- package/src/components/PanelHeaderContext/PanelHeaderContext.tsx +1 -1
- package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +1 -1
- package/src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx +1 -1
- package/src/components/PanelSpinner/PanelSpinner.tsx +1 -1
- package/src/components/Placeholder/Placeholder.tsx +1 -1
- package/src/components/PlatformProvider/PlatformProvider.tsx +1 -1
- package/src/components/PopoutWrapper/PopoutWrapper.tsx +1 -1
- package/src/components/Popover/Popover.tsx +1 -1
- package/src/components/Popper/Popper.tsx +1 -1
- package/src/components/Progress/Progress.tsx +1 -1
- package/src/components/PullToRefresh/PullToRefresh.tsx +1 -1
- package/src/components/Radio/Radio.tsx +1 -1
- package/src/components/RadioGroup/RadioGroup.tsx +1 -1
- package/src/components/RichCell/RichCell.tsx +3 -3
- package/src/components/Root/Root.tsx +1 -1
- package/src/components/ScreenSpinner/ScreenSpinner.tsx +1 -1
- package/src/components/ScrollArrow/ScrollArrow.tsx +1 -1
- package/src/components/Search/Search.tsx +1 -1
- package/src/components/SegmentedControl/SegmentedControl.tsx +1 -1
- package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +0 -3
- package/src/components/Select/Select.tsx +1 -1
- package/src/components/SelectMimicry/SelectMimicry.tsx +1 -1
- package/src/components/SelectionControl/SelectionControl.tsx +1 -1
- package/src/components/Separator/Separator.tsx +1 -1
- package/src/components/SimpleCell/SimpleCell.tsx +1 -1
- package/src/components/SimpleGrid/SimpleGrid.tsx +3 -0
- package/src/components/Skeleton/Skeleton.tsx +3 -0
- package/src/components/Slider/Slider.tsx +1 -1
- package/src/components/Snackbar/Snackbar.tsx +1 -1
- package/src/components/Spacing/Spacing.tsx +1 -1
- package/src/components/Spinner/Spinner.tsx +1 -1
- package/src/components/SplitCol/SplitCol.tsx +1 -1
- package/src/components/SplitLayout/SplitLayout.tsx +1 -1
- package/src/components/SubnavigationBar/SubnavigationBar.tsx +1 -1
- package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -1
- package/src/components/Switch/Switch.tsx +1 -1
- package/src/components/Tabbar/Tabbar.tsx +1 -1
- package/src/components/TabbarItem/TabbarItem.tsx +1 -1
- package/src/components/Tabs/Tabs.tsx +1 -1
- package/src/components/TabsItem/TabsItem.tsx +3 -3
- package/src/components/Textarea/Textarea.tsx +1 -1
- package/src/components/ToolButton/ToolButton.tsx +1 -1
- package/src/components/Tooltip/Tooltip.tsx +1 -1
- package/src/components/TooltipBase/TooltipBase.tsx +0 -2
- package/src/components/Touch/Touch.tsx +1 -1
- package/src/components/Typography/Caption/Caption.tsx +1 -1
- package/src/components/Typography/DisplayTitle/DisplayTitle.tsx +1 -1
- package/src/components/Typography/EllipsisText/EllipsisText.tsx +1 -1
- package/src/components/Typography/Footnote/Footnote.tsx +1 -1
- package/src/components/Typography/Headline/Headline.tsx +1 -1
- package/src/components/Typography/Paragraph/Paragraph.tsx +1 -1
- package/src/components/Typography/Subhead/Subhead.tsx +1 -1
- package/src/components/Typography/Text/Text.tsx +1 -1
- package/src/components/Typography/Title/Title.tsx +1 -1
- package/src/components/UnstyledTextField/UnstyledTextField.mdx +1 -1
- package/src/components/UnstyledTextField/UnstyledTextField.tsx +4 -1
- package/src/components/UsersStack/UsersStack.tsx +1 -1
- package/src/components/View/View.tsx +1 -1
- package/src/components/VisuallyHidden/VisuallyHidden.tsx +1 -1
- package/src/components/WriteBar/WriteBar.tsx +1 -1
- package/src/components/WriteBarIcon/WriteBarIcon.tsx +1 -1
- package/src/hooks/useAdaptivity.ts +1 -1
- package/src/index.ts +1 -1
- package/src/lib/SSR.tsx +1 -1
- package/src/lib/accessibility.ts +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/SimpleCell/SimpleCell.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport type { HasComponent } from '../../types';\nimport { Tappable, type TappableOmitProps } from '../Tappable/Tappable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Chevron } from './Chevron/Chevron';\nimport styles from './SimpleCell.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport interface SimpleCellOwnProps extends HasComponent {\n /**\n * Иконка 28 или `<Avatar size={28|32|40|48|72} />`.\n */\n before?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится слева от текста `children`.\n */\n badgeBeforeTitle?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится справа от текста `children`.\n */\n badgeAfterTitle?: React.ReactNode;\n /**\n * Иконка 12. Добавится слева от текста `subtitle`.\n */\n badgeBeforeSubtitle?: React.ReactNode;\n /**\n * Иконка 12. Добавится справа от текста `subtitle`.\n */\n badgeAfterSubtitle?: React.ReactNode;\n /**\n * Контейнер для текста справа от `children`.\n */\n indicator?: React.ReactNode;\n /**\n * Дополнительная строка текста над `children`.\n */\n overTitle?: React.ReactNode;\n /**\n * Дополнительная строка текста под `children`.\n */\n subtitle?: React.ReactNode;\n /**\n * Дополнительная строка текста под `children` и `subtitle`.\n */\n extraSubtitle?: React.ReactNode;\n /**\n * Иконка 24|28 или `<Switch />`. Располагается справа от `indicator`.\n */\n after?: React.ReactNode;\n /**\n * Блокировка взаимодействия с компонентом.\n */\n disabled?: boolean;\n /**\n * Управляет видимостью иконки шеврона `›`.\n *\n * - `auto` - добавляет шеврон справа только для платформы `ios`;\n * - `always` - всегда показывает шеврон.\n */\n chevron?: 'auto' | 'always';\n /**\n * Размер chevron.\n */\n chevronSize?: 's' | 'm';\n /**\n * Включает многострочный режим для отображения текста.\n */\n multiline?: boolean;\n}\n\nexport interface SimpleCellProps extends SimpleCellOwnProps, TappableOmitProps {}\n\n/**\n * @see https://
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SimpleCell/SimpleCell.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport type { HasComponent } from '../../types';\nimport { Tappable, type TappableOmitProps } from '../Tappable/Tappable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Chevron } from './Chevron/Chevron';\nimport styles from './SimpleCell.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport interface SimpleCellOwnProps extends HasComponent {\n /**\n * Иконка 28 или `<Avatar size={28|32|40|48|72} />`.\n */\n before?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится слева от текста `children`.\n */\n badgeBeforeTitle?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится справа от текста `children`.\n */\n badgeAfterTitle?: React.ReactNode;\n /**\n * Иконка 12. Добавится слева от текста `subtitle`.\n */\n badgeBeforeSubtitle?: React.ReactNode;\n /**\n * Иконка 12. Добавится справа от текста `subtitle`.\n */\n badgeAfterSubtitle?: React.ReactNode;\n /**\n * Контейнер для текста справа от `children`.\n */\n indicator?: React.ReactNode;\n /**\n * Дополнительная строка текста над `children`.\n */\n overTitle?: React.ReactNode;\n /**\n * Дополнительная строка текста под `children`.\n */\n subtitle?: React.ReactNode;\n /**\n * Дополнительная строка текста под `children` и `subtitle`.\n */\n extraSubtitle?: React.ReactNode;\n /**\n * Иконка 24|28 или `<Switch />`. Располагается справа от `indicator`.\n */\n after?: React.ReactNode;\n /**\n * Блокировка взаимодействия с компонентом.\n */\n disabled?: boolean;\n /**\n * Управляет видимостью иконки шеврона `›`.\n *\n * - `auto` - добавляет шеврон справа только для платформы `ios`;\n * - `always` - всегда показывает шеврон.\n */\n chevron?: 'auto' | 'always';\n /**\n * Размер chevron.\n */\n chevronSize?: 's' | 'm';\n /**\n * Включает многострочный режим для отображения текста.\n */\n multiline?: boolean;\n}\n\nexport interface SimpleCellProps extends SimpleCellOwnProps, TappableOmitProps {}\n\n/**\n * @see https://vkui.io/components/simple-cell\n */\nexport const SimpleCell = ({\n badgeBeforeTitle,\n badgeAfterTitle,\n badgeBeforeSubtitle,\n badgeAfterSubtitle,\n before,\n indicator,\n children,\n after,\n chevron,\n multiline,\n overTitle,\n subtitle,\n extraSubtitle,\n chevronSize = 'm',\n ...restProps\n}: SimpleCellProps): React.ReactNode => {\n const platform = usePlatform();\n\n const hasChevron = chevron === 'always' || (chevron === 'auto' && platform === 'ios');\n\n const hasAfter = hasReactNode(after) || hasChevron;\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Tappable\n {...restProps}\n baseClassName={classNames(\n styles.host,\n restProps.disabled && styles.disabled,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n multiline && styles.mult,\n )}\n >\n <div className={classNames(styles.before, platform === 'ios' && styles.beforeIos)}>\n {before}\n </div>\n <div className={styles.middle}>\n {overTitle && (\n <Subhead Component=\"span\" className={classNames(styles.text, styles.overTitle)}>\n {overTitle}\n </Subhead>\n )}\n <div className={styles.content}>\n {badgeBeforeTitle && <span className={styles.badge}>{badgeBeforeTitle}</span>}\n <Headline Component=\"span\" className={styles.children} weight=\"3\">\n {children}\n </Headline>\n {hasReactNode(badgeAfterTitle) && <span className={styles.badge}>{badgeAfterTitle}</span>}\n </div>\n {subtitle && (\n <div className={styles.content}>\n {badgeBeforeSubtitle && <span className={styles.badge}>{badgeBeforeSubtitle}</span>}\n <Footnote normalize={false} className={classNames(styles.text, styles.subtitle)}>\n {subtitle}\n </Footnote>\n {badgeAfterSubtitle && <span className={styles.badge}>{badgeAfterSubtitle}</span>}\n </div>\n )}\n {extraSubtitle && (\n <Footnote className={classNames(styles.text, styles.extraSubtitle)}>\n {extraSubtitle}\n </Footnote>\n )}\n </div>\n {hasReactNode(indicator) && (\n <Headline Component=\"span\" weight=\"3\" className={styles.indicator}>\n {indicator}\n </Headline>\n )}\n {hasAfter && (\n <div className={classNames(styles.after, 'vkuiInternalSimpleCell__after')}>\n {after}\n {hasChevron && <Chevron size={chevronSize} className={styles.chevronIcon} />}\n </div>\n )}\n </Tappable>\n );\n};\n"],"names":["React","classNames","hasReactNode","useAdaptivity","usePlatform","Tappable","Footnote","Headline","Subhead","Chevron","sizeYClassNames","none","compact","SimpleCell","badgeBeforeTitle","badgeAfterTitle","badgeBeforeSubtitle","badgeAfterSubtitle","before","indicator","children","after","chevron","multiline","overTitle","subtitle","extraSubtitle","chevronSize","restProps","platform","hasChevron","hasAfter","sizeY","baseClassName","disabled","div","className","Component","span","weight","normalize","size"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,WAAW,QAAQ,6BAA0B;AAEtD,SAASC,QAAQ,QAAgC,0BAAuB;AACxE,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,OAAO,QAAQ,uBAAoB;AAG5C,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AAkEA;;CAEC,GACD,OAAO,MAAMC,aAAa;QAAC,EACzBC,gBAAgB,EAChBC,eAAe,EACfC,mBAAmB,EACnBC,kBAAkB,EAClBC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,KAAK,EACLC,OAAO,EACPC,SAAS,EACTC,SAAS,EACTC,QAAQ,EACRC,aAAa,EACbC,cAAc,GAAG,EAED,WADbC;QAdHd;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,WAAWzB;IAEjB,MAAM0B,aAAaR,YAAY,YAAaA,YAAY,UAAUO,aAAa;IAE/E,MAAME,WAAW7B,aAAamB,UAAUS;IACxC,MAAM,EAAEE,QAAQ,MAAM,EAAE,GAAG7B;IAE3B,qBACE,MAACE,kDACKuB;QACJK,eAAehC,mCAEb2B,UAAUM,QAAQ,gCAClBF,UAAU,aAAatB,eAAe,CAACsB,MAAM,EAC7CT;;0BAGF,KAACY;gBAAIC,WAAWnC,qCAA0B4B,aAAa;0BACpDX;;0BAEH,MAACiB;gBAAIC,SAAS;;oBACXZ,2BACC,KAAChB;wBAAQ6B,WAAU;wBAAOD,WAAWnC;kCAClCuB;;kCAGL,MAACW;wBAAIC,SAAS;;4BACXtB,kCAAoB,KAACwB;gCAAKF,SAAS;0CAAiBtB;;0CACrD,KAACP;gCAAS8B,WAAU;gCAAOD,SAAS;gCAAmBG,QAAO;0CAC3DnB;;4BAEFlB,aAAaa,kCAAoB,KAACuB;gCAAKF,SAAS;0CAAiBrB;;;;oBAEnEU,0BACC,MAACU;wBAAIC,SAAS;;4BACXpB,qCAAuB,KAACsB;gCAAKF,SAAS;0CAAiBpB;;0CACxD,KAACV;gCAASkC,WAAW;gCAAOJ,WAAWnC;0CACpCwB;;4BAEFR,oCAAsB,KAACqB;gCAAKF,SAAS;0CAAiBnB;;;;oBAG1DS,+BACC,KAACpB;wBAAS8B,WAAWnC;kCAClByB;;;;YAINxB,aAAaiB,4BACZ,KAACZ;gBAAS8B,WAAU;gBAAOE,QAAO;gBAAIH,SAAS;0BAC5CjB;;YAGJY,0BACC,MAACI;gBAAIC,WAAWnC,oCAAyB;;oBACtCoB;oBACAS,4BAAc,KAACrB;wBAAQgC,MAAMd;wBAAaS,SAAS;;;;;;AAK9D,EAAE"}
|
|
@@ -28,5 +28,8 @@ export interface SimpleGridProps extends Omit<RootComponentProps<HTMLElement>, '
|
|
|
28
28
|
*/
|
|
29
29
|
align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline';
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* @see https://vkui.io/components/simple-grid
|
|
33
|
+
*/
|
|
31
34
|
export declare const SimpleGrid: ({ columns, gap, margin, minColWidth, align, ...props }: SimpleGridProps) => import("react/jsx-runtime").JSX.Element;
|
|
32
35
|
//# sourceMappingURL=SimpleGrid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleGrid.d.ts","sourceRoot":"","sources":["../../../src/components/SimpleGrid/SimpleGrid.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAiBzE,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC7F;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC;IACxD;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;CAC7D;AAED,eAAO,MAAM,UAAU,GAAI,wDAOxB,eAAe,4CA4BjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"SimpleGrid.d.ts","sourceRoot":"","sources":["../../../src/components/SimpleGrid/SimpleGrid.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAiBzE,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC7F;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC;IACxD;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;CAC7D;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,wDAOxB,eAAe,4CA4BjB,CAAC"}
|
|
@@ -17,7 +17,9 @@ const alignClassNames = {
|
|
|
17
17
|
stretch: "vkuiSimpleGrid__alignStretch",
|
|
18
18
|
baseline: "vkuiSimpleGrid__alignBaseline"
|
|
19
19
|
};
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
|
+
* @see https://vkui.io/components/simple-grid
|
|
22
|
+
*/ export const SimpleGrid = (_param)=>{
|
|
21
23
|
var { columns = 1, gap, margin = 'none', minColWidth, align = 'stretch' } = _param, props = _object_without_properties(_param, [
|
|
22
24
|
"columns",
|
|
23
25
|
"gap",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/SimpleGrid/SimpleGrid.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport {\n calculateGap,\n columnGapClassNames,\n type GapsProp,\n rowGapClassNames,\n} from '../../lib/layouts';\nimport type { CSSCustomProperties } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport type { RootComponentProps } from '../RootComponent/RootComponent';\nimport styles from './SimpleGrid.module.css';\n\nconst marginClassNames = {\n 'auto': styles.marginAuto,\n 'auto-inline': styles.marginAutoInline,\n 'auto-block': styles.marginAutoBlock,\n};\n\nconst alignClassNames = {\n start: styles.alignStart,\n end: styles.alignEnd,\n center: styles.alignCenter,\n stretch: styles.alignStretch,\n baseline: styles.alignBaseline,\n};\n\nexport interface SimpleGridProps extends Omit<RootComponentProps<HTMLElement>, 'baseClassName'> {\n /**\n * Количество колонок.\n */\n columns?: number;\n /**\n * Отступы между элементами.\n * Значение из списка предопределённых пресетов или число, которое будет приведено к пикселям.\n * Через массив можно задать отступ между столбцами и строками [row, column], если они отличаются.\n */\n gap?: GapsProp;\n /**\n * Управляет отступами вокруг контейнера\n * Значение `none` позволяет отключить отступы\n * Значение `auto` позволяет задать платформенные отступы\n * Значение `auto-inline` позволяет задать платформенные inline-отступы\n * Значение `auto-block` позволяет задать платформенные block-отступы.\n */\n margin?: 'none' | 'auto' | 'auto-inline' | 'auto-block';\n /**\n * Вместо задания количества колонок, можно указать минимальную ширину элементов.\n */\n minColWidth?: number;\n /**\n * Выравнивание элементов по вспомогательной оси, эквивалентно `align-items`.\n */\n align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline';\n}\n\nexport const SimpleGrid = ({\n columns = 1,\n gap,\n margin = 'none',\n minColWidth,\n align = 'stretch',\n ...props\n}: SimpleGridProps) => {\n const style: CSSCustomProperties = {};\n const [rowGap, columnGap] = calculateGap(gap);\n if (typeof rowGap === 'number') {\n style['--vkui_internal--row_gap'] = `${rowGap}px`;\n }\n if (typeof columnGap === 'number') {\n style['--vkui_internal--column_gap'] = `${columnGap}px`;\n }\n style['--vkui_internal--grid_columns'] = `${columns}`;\n if (minColWidth) {\n style['--vkui_internal--min_col_width'] = `${minColWidth}px`;\n }\n\n return (\n <RootComponent\n {...props}\n baseClassName={classNames(\n styles.host,\n margin !== 'none' && marginClassNames[margin],\n alignClassNames[align],\n minColWidth && styles.withMinWidth,\n typeof columnGap === 'string' && columnGapClassNames[columnGap],\n typeof rowGap === 'string' && rowGapClassNames[rowGap],\n )}\n baseStyle={style}\n />\n );\n};\n"],"names":["classNames","calculateGap","columnGapClassNames","rowGapClassNames","RootComponent","marginClassNames","alignClassNames","start","end","center","stretch","baseline","SimpleGrid","columns","gap","margin","minColWidth","align","props","style","rowGap","columnGap","baseClassName","baseStyle"],"mappings":";;;;AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SACEC,YAAY,EACZC,mBAAmB,EAEnBC,gBAAgB,QACX,6BAAoB;AAE3B,SAASC,aAAa,QAAQ,oCAAiC;AAI/D,MAAMC,mBAAmB;IACvB,MAAM;IACN,aAAa;IACb,YAAY;AACd;AAEA,MAAMC,kBAAkB;IACtBC,KAAK;IACLC,GAAG;IACHC,MAAM;IACNC,OAAO;IACPC,QAAQ;AACV;AA+BA,OAAO,MAAMC,aAAa;QAAC,EACzBC,UAAU,CAAC,EACXC,GAAG,EACHC,SAAS,MAAM,EACfC,WAAW,EACXC,QAAQ,SAAS,EAED,WADbC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,QAA6B,CAAC;IACpC,MAAM,CAACC,QAAQC,UAAU,GAAGpB,aAAaa;IACzC,IAAI,OAAOM,WAAW,UAAU;QAC9BD,KAAK,CAAC,2BAA2B,GAAG,GAAGC,OAAO,EAAE,CAAC;IACnD;IACA,IAAI,OAAOC,cAAc,UAAU;QACjCF,KAAK,CAAC,8BAA8B,GAAG,GAAGE,UAAU,EAAE,CAAC;IACzD;IACAF,KAAK,CAAC,gCAAgC,GAAG,GAAGN,SAAS;IACrD,IAAIG,aAAa;QACfG,KAAK,CAAC,iCAAiC,GAAG,GAAGH,YAAY,EAAE,CAAC;IAC9D;IAEA,qBACE,KAACZ,uDACKc;QACJI,eAAetB,mCAEbe,WAAW,UAAUV,gBAAgB,CAACU,OAAO,EAC7CT,eAAe,CAACW,MAAM,EACtBD,+CACA,OAAOK,cAAc,YAAYnB,mBAAmB,CAACmB,UAAU,EAC/D,OAAOD,WAAW,YAAYjB,gBAAgB,CAACiB,OAAO;QAExDG,WAAWJ;;AAGjB,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SimpleGrid/SimpleGrid.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport {\n calculateGap,\n columnGapClassNames,\n type GapsProp,\n rowGapClassNames,\n} from '../../lib/layouts';\nimport type { CSSCustomProperties } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport type { RootComponentProps } from '../RootComponent/RootComponent';\nimport styles from './SimpleGrid.module.css';\n\nconst marginClassNames = {\n 'auto': styles.marginAuto,\n 'auto-inline': styles.marginAutoInline,\n 'auto-block': styles.marginAutoBlock,\n};\n\nconst alignClassNames = {\n start: styles.alignStart,\n end: styles.alignEnd,\n center: styles.alignCenter,\n stretch: styles.alignStretch,\n baseline: styles.alignBaseline,\n};\n\nexport interface SimpleGridProps extends Omit<RootComponentProps<HTMLElement>, 'baseClassName'> {\n /**\n * Количество колонок.\n */\n columns?: number;\n /**\n * Отступы между элементами.\n * Значение из списка предопределённых пресетов или число, которое будет приведено к пикселям.\n * Через массив можно задать отступ между столбцами и строками [row, column], если они отличаются.\n */\n gap?: GapsProp;\n /**\n * Управляет отступами вокруг контейнера\n * Значение `none` позволяет отключить отступы\n * Значение `auto` позволяет задать платформенные отступы\n * Значение `auto-inline` позволяет задать платформенные inline-отступы\n * Значение `auto-block` позволяет задать платформенные block-отступы.\n */\n margin?: 'none' | 'auto' | 'auto-inline' | 'auto-block';\n /**\n * Вместо задания количества колонок, можно указать минимальную ширину элементов.\n */\n minColWidth?: number;\n /**\n * Выравнивание элементов по вспомогательной оси, эквивалентно `align-items`.\n */\n align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline';\n}\n\n/**\n * @see https://vkui.io/components/simple-grid\n */\nexport const SimpleGrid = ({\n columns = 1,\n gap,\n margin = 'none',\n minColWidth,\n align = 'stretch',\n ...props\n}: SimpleGridProps) => {\n const style: CSSCustomProperties = {};\n const [rowGap, columnGap] = calculateGap(gap);\n if (typeof rowGap === 'number') {\n style['--vkui_internal--row_gap'] = `${rowGap}px`;\n }\n if (typeof columnGap === 'number') {\n style['--vkui_internal--column_gap'] = `${columnGap}px`;\n }\n style['--vkui_internal--grid_columns'] = `${columns}`;\n if (minColWidth) {\n style['--vkui_internal--min_col_width'] = `${minColWidth}px`;\n }\n\n return (\n <RootComponent\n {...props}\n baseClassName={classNames(\n styles.host,\n margin !== 'none' && marginClassNames[margin],\n alignClassNames[align],\n minColWidth && styles.withMinWidth,\n typeof columnGap === 'string' && columnGapClassNames[columnGap],\n typeof rowGap === 'string' && rowGapClassNames[rowGap],\n )}\n baseStyle={style}\n />\n );\n};\n"],"names":["classNames","calculateGap","columnGapClassNames","rowGapClassNames","RootComponent","marginClassNames","alignClassNames","start","end","center","stretch","baseline","SimpleGrid","columns","gap","margin","minColWidth","align","props","style","rowGap","columnGap","baseClassName","baseStyle"],"mappings":";;;;AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SACEC,YAAY,EACZC,mBAAmB,EAEnBC,gBAAgB,QACX,6BAAoB;AAE3B,SAASC,aAAa,QAAQ,oCAAiC;AAI/D,MAAMC,mBAAmB;IACvB,MAAM;IACN,aAAa;IACb,YAAY;AACd;AAEA,MAAMC,kBAAkB;IACtBC,KAAK;IACLC,GAAG;IACHC,MAAM;IACNC,OAAO;IACPC,QAAQ;AACV;AA+BA;;CAEC,GACD,OAAO,MAAMC,aAAa;QAAC,EACzBC,UAAU,CAAC,EACXC,GAAG,EACHC,SAAS,MAAM,EACfC,WAAW,EACXC,QAAQ,SAAS,EAED,WADbC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,QAA6B,CAAC;IACpC,MAAM,CAACC,QAAQC,UAAU,GAAGpB,aAAaa;IACzC,IAAI,OAAOM,WAAW,UAAU;QAC9BD,KAAK,CAAC,2BAA2B,GAAG,GAAGC,OAAO,EAAE,CAAC;IACnD;IACA,IAAI,OAAOC,cAAc,UAAU;QACjCF,KAAK,CAAC,8BAA8B,GAAG,GAAGE,UAAU,EAAE,CAAC;IACzD;IACAF,KAAK,CAAC,gCAAgC,GAAG,GAAGN,SAAS;IACrD,IAAIG,aAAa;QACfG,KAAK,CAAC,iCAAiC,GAAG,GAAGH,YAAY,EAAE,CAAC;IAC9D;IAEA,qBACE,KAACZ,uDACKc;QACJI,eAAetB,mCAEbe,WAAW,UAAUV,gBAAgB,CAACU,OAAO,EAC7CT,eAAe,CAACW,MAAM,EACtBD,+CACA,OAAOK,cAAc,YAAYnB,mBAAmB,CAACmB,UAAU,EAC/D,OAAOD,WAAW,YAAYjB,gBAAgB,CAACiB,OAAO;QAExDG,WAAWJ;;AAGjB,EAAE"}
|
|
@@ -32,6 +32,9 @@ export interface SkeletonProps extends HTMLAttributesWithRootRef<HTMLDivElement
|
|
|
32
32
|
* > вписывается в слоты компонентов, которые обычно ожидают текст.
|
|
33
33
|
*
|
|
34
34
|
* @since 6.1.0
|
|
35
|
+
*
|
|
36
|
+
* @see https://vkui.io/components/skeleton
|
|
37
|
+
*
|
|
35
38
|
*/
|
|
36
39
|
export declare const Skeleton: ({ width, height, inlineSize, blockSize, maxWidth, maxInlineSize, borderRadius, children, colorFrom, colorTo, noAnimation, duration, margin, getRootRef, visibilityDelay, ...restProps }: SkeletonProps) => React.ReactNode;
|
|
37
40
|
//# sourceMappingURL=Skeleton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/Skeleton/Skeleton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAuB,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAgFlF,MAAM,WAAW,aACf,SAAQ,yBAAyB,CAAC,cAAc,GAAG,eAAe,CAAC,EACjE,IAAI,CACF,KAAK,CAAC,aAAa,EACjB,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,UAAU,GACV,eAAe,GACf,cAAc,GACd,QAAQ,CACX;IACH;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED
|
|
1
|
+
{"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/Skeleton/Skeleton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAuB,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAgFlF,MAAM,WAAW,aACf,SAAQ,yBAAyB,CAAC,cAAc,GAAG,eAAe,CAAC,EACjE,IAAI,CACF,KAAK,CAAC,aAAa,EACjB,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,UAAU,GACV,eAAe,GACf,cAAc,GACd,QAAQ,CACX;IACH;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,GAAI,yLAiBtB,aAAa,KAAG,KAAK,CAAC,SA6CxB,CAAC"}
|
|
@@ -93,6 +93,9 @@ const CUSTOM_PROPERTY_GRADIENT_LEFT = '--vkui_internal--skeleton_gradient_left';
|
|
|
93
93
|
* > вписывается в слоты компонентов, которые обычно ожидают текст.
|
|
94
94
|
*
|
|
95
95
|
* @since 6.1.0
|
|
96
|
+
*
|
|
97
|
+
* @see https://vkui.io/components/skeleton
|
|
98
|
+
*
|
|
96
99
|
*/ export const Skeleton = (_param)=>{
|
|
97
100
|
var { width, height, inlineSize, blockSize, maxWidth, maxInlineSize, borderRadius, children, colorFrom, colorTo, noAnimation = false, duration, margin, getRootRef, visibilityDelay } = _param, restProps = _object_without_properties(_param, [
|
|
98
101
|
"width",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { millisecondsInSecond } from 'date-fns/constants';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useResizeObserver } from '../../hooks/useResizeObserver';\nimport { useStateWithPrev } from '../../hooks/useStateWithPrev';\nimport { useDOM } from '../../lib/dom';\nimport { animationVisibilityDelayStyles } from '../../styles/animationVisibilityDelay';\nimport type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Skeleton.module.css';\nimport stylesDelay from '../../styles/animationVisibilityDelay.module.css';\n\nconst CUSTOM_PROPERTY_GRADIENT_LEFT = '--vkui_internal--skeleton_gradient_left';\n\n/**\n * Синхронизирует анимацию скелетонов с помощью временных отрезков.\n *\n * ## visibilitychange\n *\n * В синхронизацию не заложен механизм перехода на оптимизации браузеров при\n * переходе на другую вкладку, поскольку нет уверенности в реальности таких\n * кейсов со скелетонами. Если такой кейс принесут, необходимо обработать\n * событие `visibilitychange` используя функцию `syncAnimation`.\n *\n * Смотри https://developer.chrome.com/blog/page-lifecycle-api/.\n *\n * @param duration Длительность анимации в секундах.\n */\nfunction useSkeletonSyncAnimation(disableAnimation: boolean, duration = 1.5) {\n const [isAnimationStarted, setIsAnimationStarted] = React.useState<boolean>(false);\n const timer = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n const syncAnimation = React.useCallback(() => {\n clearTimeout(timer.current);\n setIsAnimationStarted(false);\n\n const durationInMilliseconds = duration * millisecondsInSecond;\n const delay = durationInMilliseconds - (performance.now() % durationInMilliseconds);\n\n timer.current = setTimeout(() => setIsAnimationStarted(true), delay);\n\n return () => clearTimeout(timer.current);\n }, [duration]);\n\n React.useEffect(() => {\n if (disableAnimation) {\n setIsAnimationStarted(false);\n return;\n }\n\n if (isAnimationStarted) {\n return;\n }\n\n return syncAnimation();\n }, [disableAnimation, isAnimationStarted, syncAnimation]);\n\n return isAnimationStarted;\n}\n\n/**\n * Вычисляет позицию скелетона.\n */\nfunction useSkeletonPosition(rootRef: React.RefObject<HTMLElement | null>) {\n const { document, window } = useDOM();\n const [[skeletonGradientLeft, prevSkeletonGradientLeft], setSkeletonGradientLeft] =\n useStateWithPrev('0');\n\n const updatePosition = React.useCallback(() => {\n const el = rootRef.current;\n if (!el || !document) {\n return;\n }\n\n const value = -(el.getBoundingClientRect().left - document.body.getBoundingClientRect().left);\n const gradientValue = value === 0 ? '0' : `${value}px`;\n if (prevSkeletonGradientLeft !== gradientValue) {\n setSkeletonGradientLeft(gradientValue);\n }\n }, [document, prevSkeletonGradientLeft, rootRef, setSkeletonGradientLeft]);\n\n React.useEffect(updatePosition, [updatePosition]);\n useResizeObserver(window, updatePosition);\n\n return skeletonGradientLeft;\n}\n\nexport interface SkeletonProps\n extends HTMLAttributesWithRootRef<HTMLDivElement | HTMLSpanElement>,\n Pick<\n React.CSSProperties,\n | 'width'\n | 'height'\n | 'inlineSize'\n | 'blockSize'\n | 'maxWidth'\n | 'maxInlineSize'\n | 'borderRadius'\n | 'margin'\n > {\n /**\n * Начальный цвет анимации.\n */\n colorFrom?: string;\n\n /**\n * Финальный цвет анимации.\n */\n colorTo?: string;\n\n /**\n * Выключает анимацию, в результате чего показывается только один цвет.\n */\n noAnimation?: boolean;\n\n /**\n * Длительность анимации в секундах.\n */\n duration?: number;\n\n /**\n * Задерживает отрисовку элемента на заданное количество миллисекунд.\n */\n visibilityDelay?: number;\n}\n\n/**\n * > Старайтесь минимизировать количество заглушек на экране. Не каждый элемент\n * > на экране должен заменяться заглушкой.\n * >\n * > Текстовые блоки лучше сокращать до трёх строк. Ширина последней строки\n * > скелета вычисляется, как 75% от ширины текстового блока. Высота скелетона\n * > автоматически подстраивается под размер шрифта, поэтому идеально\n * > вписывается в слоты компонентов, которые обычно ожидают текст.\n *\n * @since 6.1.0\n */\nexport const Skeleton = ({\n width,\n height,\n inlineSize,\n blockSize,\n maxWidth,\n maxInlineSize,\n borderRadius,\n children,\n colorFrom,\n colorTo,\n noAnimation = false,\n duration,\n margin,\n getRootRef,\n visibilityDelay,\n ...restProps\n}: SkeletonProps): React.ReactNode => {\n const rootRef = useExternRef(getRootRef);\n\n const disableAnimation = !useSkeletonSyncAnimation(noAnimation, duration);\n const skeletonGradientLeft = useSkeletonPosition(rootRef);\n\n const skeletonStyle: React.CSSProperties & CSSCustomProperties = {\n width,\n height,\n inlineSize,\n blockSize,\n maxWidth,\n maxInlineSize,\n borderRadius,\n margin,\n [CUSTOM_PROPERTY_GRADIENT_LEFT]: skeletonGradientLeft,\n };\n\n if (colorFrom) {\n skeletonStyle['--vkui_internal--skeleton_color_from'] = colorFrom;\n }\n\n if (colorTo) {\n skeletonStyle['--vkui_internal--skeleton_color_to'] = colorTo;\n }\n\n if (Number.isFinite(duration)) {\n skeletonStyle['--vkui_internal--skeleton_animation_duration'] = `${duration}s`;\n }\n\n return (\n <RootComponent\n getRootRef={rootRef}\n Component=\"span\"\n baseClassName={classNames(\n styles.host,\n disableAnimation && styles.disableAnimation,\n visibilityDelay && stylesDelay.visibilityDelay,\n )}\n baseStyle={mergeStyle(skeletonStyle, animationVisibilityDelayStyles(visibilityDelay))}\n {...restProps}\n >\n {children || <>‌</>}\n </RootComponent>\n );\n};\n"],"names":["React","classNames","millisecondsInSecond","mergeStyle","useExternRef","useResizeObserver","useStateWithPrev","useDOM","animationVisibilityDelayStyles","RootComponent","CUSTOM_PROPERTY_GRADIENT_LEFT","useSkeletonSyncAnimation","disableAnimation","duration","isAnimationStarted","setIsAnimationStarted","useState","timer","useRef","undefined","syncAnimation","useCallback","clearTimeout","current","durationInMilliseconds","delay","performance","now","setTimeout","useEffect","useSkeletonPosition","rootRef","document","window","skeletonGradientLeft","prevSkeletonGradientLeft","setSkeletonGradientLeft","updatePosition","el","value","getBoundingClientRect","left","body","gradientValue","Skeleton","width","height","inlineSize","blockSize","maxWidth","maxInlineSize","borderRadius","children","colorFrom","colorTo","noAnimation","margin","getRootRef","visibilityDelay","restProps","skeletonStyle","Number","isFinite","Component","baseClassName","baseStyle"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,oBAAoB,QAAQ,qBAAqB;AAC1D,SAASC,UAAU,QAAQ,8BAA2B;AACtD,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,iBAAiB,QAAQ,mCAAgC;AAClE,SAASC,gBAAgB,QAAQ,kCAA+B;AAChE,SAASC,MAAM,QAAQ,mBAAgB;AACvC,SAASC,8BAA8B,QAAQ,2CAAwC;AAEvF,SAASC,aAAa,QAAQ,oCAAiC;AAI/D,MAAMC,gCAAgC;AAEtC;;;;;;;;;;;;;CAaC,GACD,SAASC,yBAAyBC,gBAAyB,EAAEC,WAAW,GAAG;IACzE,MAAM,CAACC,oBAAoBC,sBAAsB,GAAGf,MAAMgB,QAAQ,CAAU;IAC5E,MAAMC,QAAQjB,MAAMkB,MAAM,CAA4CC;IAEtE,MAAMC,gBAAgBpB,MAAMqB,WAAW,CAAC;QACtCC,aAAaL,MAAMM,OAAO;QAC1BR,sBAAsB;QAEtB,MAAMS,yBAAyBX,WAAWX;QAC1C,MAAMuB,QAAQD,yBAA0BE,YAAYC,GAAG,KAAKH;QAE5DP,MAAMM,OAAO,GAAGK,WAAW,IAAMb,sBAAsB,OAAOU;QAE9D,OAAO,IAAMH,aAAaL,MAAMM,OAAO;IACzC,GAAG;QAACV;KAAS;IAEbb,MAAM6B,SAAS,CAAC;QACd,IAAIjB,kBAAkB;YACpBG,sBAAsB;YACtB;QACF;QAEA,IAAID,oBAAoB;YACtB;QACF;QAEA,OAAOM;IACT,GAAG;QAACR;QAAkBE;QAAoBM;KAAc;IAExD,OAAON;AACT;AAEA;;CAEC,GACD,SAASgB,oBAAoBC,OAA4C;IACvE,MAAM,EAAEC,QAAQ,EAAEC,MAAM,EAAE,GAAG1B;IAC7B,MAAM,CAAC,CAAC2B,sBAAsBC,yBAAyB,EAAEC,wBAAwB,GAC/E9B,iBAAiB;IAEnB,MAAM+B,iBAAiBrC,MAAMqB,WAAW,CAAC;QACvC,MAAMiB,KAAKP,QAAQR,OAAO;QAC1B,IAAI,CAACe,MAAM,CAACN,UAAU;YACpB;QACF;QAEA,MAAMO,QAAQ,CAAED,CAAAA,GAAGE,qBAAqB,GAAGC,IAAI,GAAGT,SAASU,IAAI,CAACF,qBAAqB,GAAGC,IAAI,AAAD;QAC3F,MAAME,gBAAgBJ,UAAU,IAAI,MAAM,GAAGA,MAAM,EAAE,CAAC;QACtD,IAAIJ,6BAA6BQ,eAAe;YAC9CP,wBAAwBO;QAC1B;IACF,GAAG;QAACX;QAAUG;QAA0BJ;QAASK;KAAwB;IAEzEpC,MAAM6B,SAAS,CAACQ,gBAAgB;QAACA;KAAe;IAChDhC,kBAAkB4B,QAAQI;IAE1B,OAAOH;AACT;AAyCA
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { millisecondsInSecond } from 'date-fns/constants';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useResizeObserver } from '../../hooks/useResizeObserver';\nimport { useStateWithPrev } from '../../hooks/useStateWithPrev';\nimport { useDOM } from '../../lib/dom';\nimport { animationVisibilityDelayStyles } from '../../styles/animationVisibilityDelay';\nimport type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Skeleton.module.css';\nimport stylesDelay from '../../styles/animationVisibilityDelay.module.css';\n\nconst CUSTOM_PROPERTY_GRADIENT_LEFT = '--vkui_internal--skeleton_gradient_left';\n\n/**\n * Синхронизирует анимацию скелетонов с помощью временных отрезков.\n *\n * ## visibilitychange\n *\n * В синхронизацию не заложен механизм перехода на оптимизации браузеров при\n * переходе на другую вкладку, поскольку нет уверенности в реальности таких\n * кейсов со скелетонами. Если такой кейс принесут, необходимо обработать\n * событие `visibilitychange` используя функцию `syncAnimation`.\n *\n * Смотри https://developer.chrome.com/blog/page-lifecycle-api/.\n *\n * @param duration Длительность анимации в секундах.\n */\nfunction useSkeletonSyncAnimation(disableAnimation: boolean, duration = 1.5) {\n const [isAnimationStarted, setIsAnimationStarted] = React.useState<boolean>(false);\n const timer = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n const syncAnimation = React.useCallback(() => {\n clearTimeout(timer.current);\n setIsAnimationStarted(false);\n\n const durationInMilliseconds = duration * millisecondsInSecond;\n const delay = durationInMilliseconds - (performance.now() % durationInMilliseconds);\n\n timer.current = setTimeout(() => setIsAnimationStarted(true), delay);\n\n return () => clearTimeout(timer.current);\n }, [duration]);\n\n React.useEffect(() => {\n if (disableAnimation) {\n setIsAnimationStarted(false);\n return;\n }\n\n if (isAnimationStarted) {\n return;\n }\n\n return syncAnimation();\n }, [disableAnimation, isAnimationStarted, syncAnimation]);\n\n return isAnimationStarted;\n}\n\n/**\n * Вычисляет позицию скелетона.\n */\nfunction useSkeletonPosition(rootRef: React.RefObject<HTMLElement | null>) {\n const { document, window } = useDOM();\n const [[skeletonGradientLeft, prevSkeletonGradientLeft], setSkeletonGradientLeft] =\n useStateWithPrev('0');\n\n const updatePosition = React.useCallback(() => {\n const el = rootRef.current;\n if (!el || !document) {\n return;\n }\n\n const value = -(el.getBoundingClientRect().left - document.body.getBoundingClientRect().left);\n const gradientValue = value === 0 ? '0' : `${value}px`;\n if (prevSkeletonGradientLeft !== gradientValue) {\n setSkeletonGradientLeft(gradientValue);\n }\n }, [document, prevSkeletonGradientLeft, rootRef, setSkeletonGradientLeft]);\n\n React.useEffect(updatePosition, [updatePosition]);\n useResizeObserver(window, updatePosition);\n\n return skeletonGradientLeft;\n}\n\nexport interface SkeletonProps\n extends HTMLAttributesWithRootRef<HTMLDivElement | HTMLSpanElement>,\n Pick<\n React.CSSProperties,\n | 'width'\n | 'height'\n | 'inlineSize'\n | 'blockSize'\n | 'maxWidth'\n | 'maxInlineSize'\n | 'borderRadius'\n | 'margin'\n > {\n /**\n * Начальный цвет анимации.\n */\n colorFrom?: string;\n\n /**\n * Финальный цвет анимации.\n */\n colorTo?: string;\n\n /**\n * Выключает анимацию, в результате чего показывается только один цвет.\n */\n noAnimation?: boolean;\n\n /**\n * Длительность анимации в секундах.\n */\n duration?: number;\n\n /**\n * Задерживает отрисовку элемента на заданное количество миллисекунд.\n */\n visibilityDelay?: number;\n}\n\n/**\n * > Старайтесь минимизировать количество заглушек на экране. Не каждый элемент\n * > на экране должен заменяться заглушкой.\n * >\n * > Текстовые блоки лучше сокращать до трёх строк. Ширина последней строки\n * > скелета вычисляется, как 75% от ширины текстового блока. Высота скелетона\n * > автоматически подстраивается под размер шрифта, поэтому идеально\n * > вписывается в слоты компонентов, которые обычно ожидают текст.\n *\n * @since 6.1.0\n *\n * @see https://vkui.io/components/skeleton\n *\n */\nexport const Skeleton = ({\n width,\n height,\n inlineSize,\n blockSize,\n maxWidth,\n maxInlineSize,\n borderRadius,\n children,\n colorFrom,\n colorTo,\n noAnimation = false,\n duration,\n margin,\n getRootRef,\n visibilityDelay,\n ...restProps\n}: SkeletonProps): React.ReactNode => {\n const rootRef = useExternRef(getRootRef);\n\n const disableAnimation = !useSkeletonSyncAnimation(noAnimation, duration);\n const skeletonGradientLeft = useSkeletonPosition(rootRef);\n\n const skeletonStyle: React.CSSProperties & CSSCustomProperties = {\n width,\n height,\n inlineSize,\n blockSize,\n maxWidth,\n maxInlineSize,\n borderRadius,\n margin,\n [CUSTOM_PROPERTY_GRADIENT_LEFT]: skeletonGradientLeft,\n };\n\n if (colorFrom) {\n skeletonStyle['--vkui_internal--skeleton_color_from'] = colorFrom;\n }\n\n if (colorTo) {\n skeletonStyle['--vkui_internal--skeleton_color_to'] = colorTo;\n }\n\n if (Number.isFinite(duration)) {\n skeletonStyle['--vkui_internal--skeleton_animation_duration'] = `${duration}s`;\n }\n\n return (\n <RootComponent\n getRootRef={rootRef}\n Component=\"span\"\n baseClassName={classNames(\n styles.host,\n disableAnimation && styles.disableAnimation,\n visibilityDelay && stylesDelay.visibilityDelay,\n )}\n baseStyle={mergeStyle(skeletonStyle, animationVisibilityDelayStyles(visibilityDelay))}\n {...restProps}\n >\n {children || <>‌</>}\n </RootComponent>\n );\n};\n"],"names":["React","classNames","millisecondsInSecond","mergeStyle","useExternRef","useResizeObserver","useStateWithPrev","useDOM","animationVisibilityDelayStyles","RootComponent","CUSTOM_PROPERTY_GRADIENT_LEFT","useSkeletonSyncAnimation","disableAnimation","duration","isAnimationStarted","setIsAnimationStarted","useState","timer","useRef","undefined","syncAnimation","useCallback","clearTimeout","current","durationInMilliseconds","delay","performance","now","setTimeout","useEffect","useSkeletonPosition","rootRef","document","window","skeletonGradientLeft","prevSkeletonGradientLeft","setSkeletonGradientLeft","updatePosition","el","value","getBoundingClientRect","left","body","gradientValue","Skeleton","width","height","inlineSize","blockSize","maxWidth","maxInlineSize","borderRadius","children","colorFrom","colorTo","noAnimation","margin","getRootRef","visibilityDelay","restProps","skeletonStyle","Number","isFinite","Component","baseClassName","baseStyle"],"mappings":"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"}
|
|
@@ -86,7 +86,7 @@ export interface SliderMultipleProps extends SliderBaseProps {
|
|
|
86
86
|
onChange?: (value: [number, number], event: CustomTouchEvent | React.ChangeEvent) => void;
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
|
-
* @see https://
|
|
89
|
+
* @see https://vkui.io/components/slider
|
|
90
90
|
*/
|
|
91
91
|
export declare const Slider: ({ step, min, max, value: valueProp, multiple: multipleProp, defaultValue, disabled, className, getRootRef, getAriaLabel, getAriaValueText, startThumbTestId, endThumbTestId, onChange, withTooltip, size, style: styleProp, ...restProps }: SliderProps | SliderMultipleProps) => React.ReactNode;
|
|
92
92
|
//# sourceMappingURL=Slider.d.ts.map
|
|
@@ -23,7 +23,7 @@ const sizeClassNames = {
|
|
|
23
23
|
s: "vkuiSlider__sizeS"
|
|
24
24
|
};
|
|
25
25
|
/**
|
|
26
|
-
* @see https://
|
|
26
|
+
* @see https://vkui.io/components/slider
|
|
27
27
|
*/ export const Slider = (_param)=>{
|
|
28
28
|
var { step = 1, min = 0, max = 100, value: valueProp, multiple: multipleProp, defaultValue = multipleProp ? [
|
|
29
29
|
min,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { type CustomTouchEvent, type CustomTouchEventHandler, Touch } from '../Touch/Touch';\nimport { SliderThumb } from './SliderThumb/SliderThumb';\nimport {\n extractSliderAriaAttributesFromRestProps,\n getDraggingTypeByTargetDataset,\n isMultipleValues,\n offsetToValue,\n snapDirection,\n toPercent,\n updateInternalStateValue,\n updateInternalStateValueByNativeChange,\n} from './helpers';\nimport type { InternalDraggingType, InternalGestureRef, InternalValueState } from './types';\nimport styles from './Slider.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nconst sizeClassNames = {\n l: styles.sizeL,\n m: styles.sizeM,\n s: styles.sizeS,\n};\n\nexport interface SliderBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {\n /**\n * Минимальное значение слайдера.\n */\n min?: number;\n /**\n * Максимальное значение слайдера.\n */\n max?: number;\n /**\n * Шаг изменения значения слайдера.\n */\n step?: number;\n /**\n * Блокировка взаимодействия с компонентом.\n */\n disabled?: boolean;\n /**\n * Тоже самое, что и `aria-label`, но на вход можно получать индекс текущего ползунка и в зависимости от этого выдавать разный текст.\n *\n * > Перебивает `aria-label`.\n */\n getAriaLabel?: (index: number) => string;\n /**\n * В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.\n *\n * Полезно при использовании компонента как неконтролируемого.\n *\n * > Перебивает `aria-valuetext`.\n */\n getAriaValueText?: (value: number, index: number) => string;\n /**\n * Включает отображение всплывающей подсказки при взаимодействии с ползунком.\n */\n withTooltip?: boolean;\n /**\n * Размер ползунка.\n */\n size?: 's' | 'm' | 'l';\n /**\n * Передает атрибут `data-testid` для первого ползунка.\n */\n startThumbTestId?: string;\n /**\n * Передает атрибут `data-testid` для второго ползунка когда `multiple=true`.\n */\n endThumbTestId?: string;\n}\n\nexport interface SliderProps extends SliderBaseProps {\n /**\n * Флаг множественного выбора (должен быть false или не указан).\n */\n multiple?: false;\n /**\n * Текущее значение слайдера.\n */\n value?: number;\n /**\n * Значение слайдера по умолчанию.\n */\n defaultValue?: number;\n /**\n * Обработчик изменения значения слайдера.\n */\n onChange?: (value: number, event: CustomTouchEvent | React.ChangeEvent) => void;\n}\n\nexport interface SliderMultipleProps extends SliderBaseProps {\n /**\n * Флаг множественного выбора (должен быть true).\n */\n multiple: true;\n /**\n * Текущие значения слайдера в виде массива [начальное, конечное].\n */\n value?: [number, number];\n /**\n * Значения слайдера по умолчанию в виде массива [начальное, конечное].\n */\n defaultValue?: [number, number];\n /**\n * Обработчик изменения значений слайдера.\n */\n onChange?: (value: [number, number], event: CustomTouchEvent | React.ChangeEvent) => void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Slider\n */\nexport const Slider = ({\n step = 1,\n min = 0,\n max = 100,\n value: valueProp,\n multiple: multipleProp,\n defaultValue = multipleProp ? [min, max] : min,\n disabled,\n className,\n getRootRef,\n getAriaLabel,\n getAriaValueText,\n startThumbTestId,\n endThumbTestId,\n onChange,\n withTooltip,\n size = 'l',\n style: styleProp,\n ...restProps\n}: SliderProps | SliderMultipleProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\n\n const isControlled = valueProp !== undefined;\n const [localValue, setValue] = React.useState(defaultValue);\n\n const value = React.useMemo<InternalValueState>(() => {\n const resolvedValue = isControlled ? valueProp : localValue;\n return Array.isArray(resolvedValue)\n ? [clamp(resolvedValue[0], min, max), clamp(resolvedValue[1], min, max)]\n : [clamp(resolvedValue, min, max), null];\n }, [isControlled, valueProp, localValue, min, max]);\n\n const [startValue, endValue] = value;\n const multiple = multipleProp && endValue !== null;\n const startValueInPercent = toPercent(startValue, min, max);\n const endReversedValueInPercent = multiple ? toPercent(endValue, min, max) : 0;\n const [activeThumb, setActiveThumb] = React.useState<InternalDraggingType | null>(null);\n\n const gesture = React.useRef<InternalGestureRef>({\n dragging: null,\n startX: 0,\n containerWidth: 0,\n }).current;\n const thumbsContainerRef = useExternRef(getRootRef);\n const thumbStartInputRef = React.useRef<HTMLInputElement>(null);\n const thumbEndInputRef = React.useRef<HTMLInputElement>(null);\n\n const { ariaLabel, ariaValueText, ariaLabelledBy, ...restPropsWithoutAriaAttributes } =\n extractSliderAriaAttributesFromRestProps(restProps);\n\n const changeValue = (\n nextValue: InternalValueState,\n event: CustomTouchEvent | React.ChangeEvent,\n ) => {\n if (disabled || (value[0] === nextValue[0] && value[1] === nextValue[1])) {\n return;\n }\n\n if (multipleProp) {\n if (isMultipleValues(nextValue)) {\n !isControlled && setValue(nextValue);\n onChange && onChange(nextValue, event);\n }\n } else {\n !isControlled && setValue(nextValue[0]);\n onChange && onChange(nextValue[0], event);\n }\n };\n\n const handlePointerStart: CustomTouchEventHandler = (event: CustomTouchEvent) => {\n if (!thumbsContainerRef.current) {\n return;\n }\n\n const { left: nextContainerX, width: nextContainerWidth } =\n thumbsContainerRef.current.getBoundingClientRect();\n\n // @ts-expect-error: TS2345 в VKUITouchEvent плохо описаны типы. `target` это просто `EventTarget`.\n const foundDraggingType = getDraggingTypeByTargetDataset(event.originalEvent.target);\n\n let nextStartX = event.startX - nextContainerX;\n if (isRtl) {\n nextStartX = nextContainerWidth - nextStartX;\n }\n const nextValue = offsetToValue(nextStartX, nextContainerWidth, min, max, step);\n const nextDragging = snapDirection(value, nextValue, foundDraggingType);\n\n gesture.dragging = nextDragging;\n gesture.containerWidth = nextContainerWidth;\n gesture.startX = nextStartX;\n\n const updatedInternalStateValue = updateInternalStateValue(\n value,\n nextValue,\n min,\n max,\n nextDragging,\n );\n\n const [nextStartValue, nextEndValue] = updatedInternalStateValue;\n if (\n thumbStartInputRef.current &&\n (foundDraggingType === 'start' ||\n (nextStartValue !== startValue && nextEndValue === endValue))\n ) {\n thumbStartInputRef.current.focus();\n event.originalEvent.preventDefault();\n } else if (\n thumbEndInputRef.current &&\n (foundDraggingType === 'end' || (nextEndValue !== endValue && nextStartValue === startValue))\n ) {\n thumbEndInputRef.current.focus();\n event.originalEvent.preventDefault();\n }\n\n changeValue(updatedInternalStateValue, event);\n\n event.originalEvent.stopPropagation();\n setActiveThumb(gesture.dragging);\n };\n\n const handlePointerMove: CustomTouchEventHandler = (event: CustomTouchEvent) => {\n const { startX, containerWidth, dragging } = gesture;\n\n const { shiftX = 0 } = event;\n const nextStartX = startX + (isRtl ? -shiftX : shiftX);\n const nextValue = offsetToValue(nextStartX, containerWidth, min, max, step);\n\n changeValue(updateInternalStateValue(value, nextValue, min, max, dragging), event);\n\n event.originalEvent.stopPropagation();\n event.originalEvent.preventDefault();\n };\n\n const handlePointerEnd: CustomTouchEventHandler = (event) => {\n gesture.dragging = null;\n event.originalEvent.stopPropagation();\n setActiveThumb(null);\n };\n\n const handleChangeByNativeInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n changeValue(\n updateInternalStateValueByNativeChange(\n value,\n Number(event.target.value),\n getDraggingTypeByTargetDataset(event.target),\n ),\n event,\n );\n };\n\n const style: CSSCustomProperties = {\n '--vkui_internal--Slider_start_value': String(startValueInPercent),\n '--vkui_internal--Slider_end_value': String(endReversedValueInPercent),\n };\n\n return (\n <Touch\n data-value={multiple ? `${startValue},${endValue}` : startValue}\n {...restPropsWithoutAriaAttributes}\n className={classNames(\n styles.host,\n disabled && styles.disabled,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n sizeClassNames[size],\n multiple && styles.multiple,\n isRtl && styles.rtl,\n className,\n )}\n style={mergeStyle(styleProp, style)}\n getRootRef={getRootRef}\n onStart={disabled ? undefined : handlePointerStart}\n onMove={disabled ? undefined : handlePointerMove}\n onEnd={disabled ? undefined : handlePointerEnd}\n >\n <div className={styles.track} />\n <div className={styles.trackFill} />\n <div ref={thumbsContainerRef} className={styles.thumbs}>\n <SliderThumb\n data-type=\"start\"\n className={classNames(styles.thumb, styles.thumbStart)}\n style={{\n // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.\n zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined,\n }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'start',\n 'data-testid': startThumbTestId,\n 'ref': thumbStartInputRef,\n 'step': step,\n 'min': min,\n 'value': startValue,\n 'max': multiple ? endValue : max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(0) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(startValue, 0) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n isActive={activeThumb === 'start'}\n />\n {multiple && (\n <SliderThumb\n data-type=\"end\"\n className={classNames(styles.thumb, styles.thumbEnd)}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'end',\n 'data-testid': endThumbTestId,\n 'ref': thumbEndInputRef,\n 'step': step,\n 'min': startValue,\n 'value': endValue,\n 'max': max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(1) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(endValue, 1) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n isActive={activeThumb === 'end'}\n />\n )}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","clamp","mergeStyle","useAdaptivity","useConfigDirection","useExternRef","Touch","SliderThumb","extractSliderAriaAttributesFromRestProps","getDraggingTypeByTargetDataset","isMultipleValues","offsetToValue","snapDirection","toPercent","updateInternalStateValue","updateInternalStateValueByNativeChange","sizeYClassNames","none","compact","sizeClassNames","l","m","s","Slider","step","min","max","value","valueProp","multiple","multipleProp","defaultValue","disabled","className","getRootRef","getAriaLabel","getAriaValueText","startThumbTestId","endThumbTestId","onChange","withTooltip","size","style","styleProp","restProps","sizeY","direction","isRtl","isControlled","undefined","localValue","setValue","useState","useMemo","resolvedValue","Array","isArray","startValue","endValue","startValueInPercent","endReversedValueInPercent","activeThumb","setActiveThumb","gesture","useRef","dragging","startX","containerWidth","current","thumbsContainerRef","thumbStartInputRef","thumbEndInputRef","ariaLabel","ariaValueText","ariaLabelledBy","restPropsWithoutAriaAttributes","changeValue","nextValue","event","handlePointerStart","left","nextContainerX","width","nextContainerWidth","getBoundingClientRect","foundDraggingType","originalEvent","target","nextStartX","nextDragging","updatedInternalStateValue","nextStartValue","nextEndValue","focus","preventDefault","stopPropagation","handlePointerMove","shiftX","handlePointerEnd","handleChangeByNativeInput","Number","String","data-value","onStart","onMove","onEnd","div","ref","data-type","zIndex","inputProps","isActive"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { type CustomTouchEvent, type CustomTouchEventHandler, Touch } from '../Touch/Touch';\nimport { SliderThumb } from './SliderThumb/SliderThumb';\nimport {\n extractSliderAriaAttributesFromRestProps,\n getDraggingTypeByTargetDataset,\n isMultipleValues,\n offsetToValue,\n snapDirection,\n toPercent,\n updateInternalStateValue,\n updateInternalStateValueByNativeChange,\n} from './helpers';\nimport type { InternalDraggingType, InternalGestureRef, InternalValueState } from './types';\nimport styles from './Slider.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nconst sizeClassNames = {\n l: styles.sizeL,\n m: styles.sizeM,\n s: styles.sizeS,\n};\n\nexport interface SliderBaseProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'> {\n /**\n * Минимальное значение слайдера.\n */\n min?: number;\n /**\n * Максимальное значение слайдера.\n */\n max?: number;\n /**\n * Шаг изменения значения слайдера.\n */\n step?: number;\n /**\n * Блокировка взаимодействия с компонентом.\n */\n disabled?: boolean;\n /**\n * Тоже самое, что и `aria-label`, но на вход можно получать индекс текущего ползунка и в зависимости от этого выдавать разный текст.\n *\n * > Перебивает `aria-label`.\n */\n getAriaLabel?: (index: number) => string;\n /**\n * В отличие от `aria-valuetext`, позволяет более гибко форматировать текст в зависимости от значения ползунка.\n *\n * Полезно при использовании компонента как неконтролируемого.\n *\n * > Перебивает `aria-valuetext`.\n */\n getAriaValueText?: (value: number, index: number) => string;\n /**\n * Включает отображение всплывающей подсказки при взаимодействии с ползунком.\n */\n withTooltip?: boolean;\n /**\n * Размер ползунка.\n */\n size?: 's' | 'm' | 'l';\n /**\n * Передает атрибут `data-testid` для первого ползунка.\n */\n startThumbTestId?: string;\n /**\n * Передает атрибут `data-testid` для второго ползунка когда `multiple=true`.\n */\n endThumbTestId?: string;\n}\n\nexport interface SliderProps extends SliderBaseProps {\n /**\n * Флаг множественного выбора (должен быть false или не указан).\n */\n multiple?: false;\n /**\n * Текущее значение слайдера.\n */\n value?: number;\n /**\n * Значение слайдера по умолчанию.\n */\n defaultValue?: number;\n /**\n * Обработчик изменения значения слайдера.\n */\n onChange?: (value: number, event: CustomTouchEvent | React.ChangeEvent) => void;\n}\n\nexport interface SliderMultipleProps extends SliderBaseProps {\n /**\n * Флаг множественного выбора (должен быть true).\n */\n multiple: true;\n /**\n * Текущие значения слайдера в виде массива [начальное, конечное].\n */\n value?: [number, number];\n /**\n * Значения слайдера по умолчанию в виде массива [начальное, конечное].\n */\n defaultValue?: [number, number];\n /**\n * Обработчик изменения значений слайдера.\n */\n onChange?: (value: [number, number], event: CustomTouchEvent | React.ChangeEvent) => void;\n}\n\n/**\n * @see https://vkui.io/components/slider\n */\nexport const Slider = ({\n step = 1,\n min = 0,\n max = 100,\n value: valueProp,\n multiple: multipleProp,\n defaultValue = multipleProp ? [min, max] : min,\n disabled,\n className,\n getRootRef,\n getAriaLabel,\n getAriaValueText,\n startThumbTestId,\n endThumbTestId,\n onChange,\n withTooltip,\n size = 'l',\n style: styleProp,\n ...restProps\n}: SliderProps | SliderMultipleProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\n\n const isControlled = valueProp !== undefined;\n const [localValue, setValue] = React.useState(defaultValue);\n\n const value = React.useMemo<InternalValueState>(() => {\n const resolvedValue = isControlled ? valueProp : localValue;\n return Array.isArray(resolvedValue)\n ? [clamp(resolvedValue[0], min, max), clamp(resolvedValue[1], min, max)]\n : [clamp(resolvedValue, min, max), null];\n }, [isControlled, valueProp, localValue, min, max]);\n\n const [startValue, endValue] = value;\n const multiple = multipleProp && endValue !== null;\n const startValueInPercent = toPercent(startValue, min, max);\n const endReversedValueInPercent = multiple ? toPercent(endValue, min, max) : 0;\n const [activeThumb, setActiveThumb] = React.useState<InternalDraggingType | null>(null);\n\n const gesture = React.useRef<InternalGestureRef>({\n dragging: null,\n startX: 0,\n containerWidth: 0,\n }).current;\n const thumbsContainerRef = useExternRef(getRootRef);\n const thumbStartInputRef = React.useRef<HTMLInputElement>(null);\n const thumbEndInputRef = React.useRef<HTMLInputElement>(null);\n\n const { ariaLabel, ariaValueText, ariaLabelledBy, ...restPropsWithoutAriaAttributes } =\n extractSliderAriaAttributesFromRestProps(restProps);\n\n const changeValue = (\n nextValue: InternalValueState,\n event: CustomTouchEvent | React.ChangeEvent,\n ) => {\n if (disabled || (value[0] === nextValue[0] && value[1] === nextValue[1])) {\n return;\n }\n\n if (multipleProp) {\n if (isMultipleValues(nextValue)) {\n !isControlled && setValue(nextValue);\n onChange && onChange(nextValue, event);\n }\n } else {\n !isControlled && setValue(nextValue[0]);\n onChange && onChange(nextValue[0], event);\n }\n };\n\n const handlePointerStart: CustomTouchEventHandler = (event: CustomTouchEvent) => {\n if (!thumbsContainerRef.current) {\n return;\n }\n\n const { left: nextContainerX, width: nextContainerWidth } =\n thumbsContainerRef.current.getBoundingClientRect();\n\n // @ts-expect-error: TS2345 в VKUITouchEvent плохо описаны типы. `target` это просто `EventTarget`.\n const foundDraggingType = getDraggingTypeByTargetDataset(event.originalEvent.target);\n\n let nextStartX = event.startX - nextContainerX;\n if (isRtl) {\n nextStartX = nextContainerWidth - nextStartX;\n }\n const nextValue = offsetToValue(nextStartX, nextContainerWidth, min, max, step);\n const nextDragging = snapDirection(value, nextValue, foundDraggingType);\n\n gesture.dragging = nextDragging;\n gesture.containerWidth = nextContainerWidth;\n gesture.startX = nextStartX;\n\n const updatedInternalStateValue = updateInternalStateValue(\n value,\n nextValue,\n min,\n max,\n nextDragging,\n );\n\n const [nextStartValue, nextEndValue] = updatedInternalStateValue;\n if (\n thumbStartInputRef.current &&\n (foundDraggingType === 'start' ||\n (nextStartValue !== startValue && nextEndValue === endValue))\n ) {\n thumbStartInputRef.current.focus();\n event.originalEvent.preventDefault();\n } else if (\n thumbEndInputRef.current &&\n (foundDraggingType === 'end' || (nextEndValue !== endValue && nextStartValue === startValue))\n ) {\n thumbEndInputRef.current.focus();\n event.originalEvent.preventDefault();\n }\n\n changeValue(updatedInternalStateValue, event);\n\n event.originalEvent.stopPropagation();\n setActiveThumb(gesture.dragging);\n };\n\n const handlePointerMove: CustomTouchEventHandler = (event: CustomTouchEvent) => {\n const { startX, containerWidth, dragging } = gesture;\n\n const { shiftX = 0 } = event;\n const nextStartX = startX + (isRtl ? -shiftX : shiftX);\n const nextValue = offsetToValue(nextStartX, containerWidth, min, max, step);\n\n changeValue(updateInternalStateValue(value, nextValue, min, max, dragging), event);\n\n event.originalEvent.stopPropagation();\n event.originalEvent.preventDefault();\n };\n\n const handlePointerEnd: CustomTouchEventHandler = (event) => {\n gesture.dragging = null;\n event.originalEvent.stopPropagation();\n setActiveThumb(null);\n };\n\n const handleChangeByNativeInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n changeValue(\n updateInternalStateValueByNativeChange(\n value,\n Number(event.target.value),\n getDraggingTypeByTargetDataset(event.target),\n ),\n event,\n );\n };\n\n const style: CSSCustomProperties = {\n '--vkui_internal--Slider_start_value': String(startValueInPercent),\n '--vkui_internal--Slider_end_value': String(endReversedValueInPercent),\n };\n\n return (\n <Touch\n data-value={multiple ? `${startValue},${endValue}` : startValue}\n {...restPropsWithoutAriaAttributes}\n className={classNames(\n styles.host,\n disabled && styles.disabled,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n sizeClassNames[size],\n multiple && styles.multiple,\n isRtl && styles.rtl,\n className,\n )}\n style={mergeStyle(styleProp, style)}\n getRootRef={getRootRef}\n onStart={disabled ? undefined : handlePointerStart}\n onMove={disabled ? undefined : handlePointerMove}\n onEnd={disabled ? undefined : handlePointerEnd}\n >\n <div className={styles.track} />\n <div className={styles.trackFill} />\n <div ref={thumbsContainerRef} className={styles.thumbs}>\n <SliderThumb\n data-type=\"start\"\n className={classNames(styles.thumb, styles.thumbStart)}\n style={{\n // Меняем местами порядок слоёв, иначе, при достижении `start` и `end` 100%, `end` будет перекрывать `start`.\n zIndex: multiple && startValueInPercent >= 50 ? 2 : undefined,\n }}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'start',\n 'data-testid': startThumbTestId,\n 'ref': thumbStartInputRef,\n 'step': step,\n 'min': min,\n 'value': startValue,\n 'max': multiple ? endValue : max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(0) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(startValue, 0) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n isActive={activeThumb === 'start'}\n />\n {multiple && (\n <SliderThumb\n data-type=\"end\"\n className={classNames(styles.thumb, styles.thumbEnd)}\n withTooltip={withTooltip}\n inputProps={{\n 'data-type': 'end',\n 'data-testid': endThumbTestId,\n 'ref': thumbEndInputRef,\n 'step': step,\n 'min': startValue,\n 'value': endValue,\n 'max': max,\n 'disabled': disabled,\n 'aria-label': getAriaLabel ? getAriaLabel(1) : ariaLabel,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(endValue, 1) : ariaValueText,\n 'aria-labelledby': ariaLabelledBy,\n 'onChange': handleChangeByNativeInput,\n }}\n isActive={activeThumb === 'end'}\n />\n )}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","clamp","mergeStyle","useAdaptivity","useConfigDirection","useExternRef","Touch","SliderThumb","extractSliderAriaAttributesFromRestProps","getDraggingTypeByTargetDataset","isMultipleValues","offsetToValue","snapDirection","toPercent","updateInternalStateValue","updateInternalStateValueByNativeChange","sizeYClassNames","none","compact","sizeClassNames","l","m","s","Slider","step","min","max","value","valueProp","multiple","multipleProp","defaultValue","disabled","className","getRootRef","getAriaLabel","getAriaValueText","startThumbTestId","endThumbTestId","onChange","withTooltip","size","style","styleProp","restProps","sizeY","direction","isRtl","isControlled","undefined","localValue","setValue","useState","useMemo","resolvedValue","Array","isArray","startValue","endValue","startValueInPercent","endReversedValueInPercent","activeThumb","setActiveThumb","gesture","useRef","dragging","startX","containerWidth","current","thumbsContainerRef","thumbStartInputRef","thumbEndInputRef","ariaLabel","ariaValueText","ariaLabelledBy","restPropsWithoutAriaAttributes","changeValue","nextValue","event","handlePointerStart","left","nextContainerX","width","nextContainerWidth","getBoundingClientRect","foundDraggingType","originalEvent","target","nextStartX","nextDragging","updatedInternalStateValue","nextStartValue","nextEndValue","focus","preventDefault","stopPropagation","handlePointerMove","shiftX","handlePointerEnd","handleChangeByNativeInput","Number","String","data-value","onStart","onMove","onEnd","div","ref","data-type","zIndex","inputProps","isActive"],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ export interface SnackbarProps extends Omit<HTMLAttributesWithRootRef<HTMLDivEle
|
|
|
38
38
|
offsetY?: React.CSSProperties['bottom'];
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
* @see https://
|
|
41
|
+
* @see https://vkui.io/components/snackbar
|
|
42
42
|
*/
|
|
43
43
|
export declare const Snackbar: React.FC<SnackbarProps> & {
|
|
44
44
|
Basic: typeof Basic;
|
|
@@ -36,7 +36,7 @@ const animationStateClassNames = {
|
|
|
36
36
|
exited: undefined
|
|
37
37
|
};
|
|
38
38
|
/**
|
|
39
|
-
* @see https://
|
|
39
|
+
* @see https://vkui.io/components/snackbar
|
|
40
40
|
*/ export const Snackbar = (_param)=>{
|
|
41
41
|
var { placement = 'bottom-start', children, layout, action, before, after, duration = 4000, onActionClick, onClose, mode = 'default', subtitle, offsetY, getRootRef } = _param, restProps = _object_without_properties(_param, [
|
|
42
42
|
"placement",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Snackbar/Snackbar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useFocusWithin } from '../../hooks/useFocusWithin';\nimport { useGlobalEscKeyDown } from '../../hooks/useGlobalEscKeyDown';\nimport { useMediaQueries } from '../../hooks/useMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useCSSKeyframesAnimationController } from '../../lib/animation';\nimport { getRelativeBoundingClientRect } from '../../lib/dom';\nimport { UIPanGestureRecognizer } from '../../lib/touch';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Basic, type BasicProps } from './subcomponents/Basic/Basic';\nimport type { ShiftData, SnackbarPlacement } from './types';\nimport {\n getInitialShiftData,\n getMovedShiftData,\n resolveOffsetYCssStyle,\n shouldBeClosedByShiftData,\n} from './utils';\nimport styles from './Snackbar.module.css';\n\nconst placementClassNames = {\n 'top-start': styles.placementTopStart,\n 'top': styles.placementTop,\n 'top-end': styles.placementTopEnd,\n 'bottom-start': styles.placementBottomStart,\n 'bottom': styles.placementBottom,\n 'bottom-end': styles.placementBottomEnd,\n};\n\nconst animationStateClassNames = {\n enter: styles.stateEnter,\n entering: styles.stateEntering,\n entered: styles.stateEntered,\n exit: styles.stateExit,\n exiting: styles.stateExiting,\n exited: undefined,\n};\n\nexport interface SnackbarProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'role'>,\n BasicProps {\n /**\n * Задаёт расположение компонента.\n *\n * > Note: в мобильном режиме:\n * > - `\"top-start\"`/`\"top-end\"` перебивается на `\"top\"`, чтобы поведение было схожим с нативными\n * > уведомлениями;\n * > - `\"bottom\"` перебивается на `\"bottom-start\"`, чтобы избежать вызова системных\n * > функций, таких как **Pull To Refresh** и **Режим управления одной рукой**.\n * > - `\"bottom-start\"`/`\"bottom-end\"` закрываются смахиванием в любое из направлений\n * > по горизонтальной оси.\n */\n placement?: SnackbarPlacement;\n /**\n * Название кнопки действия в уведомлении\n * Не может использоваться одновременно с `subtitle`.\n */\n action?: React.ReactNode;\n /**\n * Будет вызвано при нажатии на кнопку действия.\n */\n onActionClick?: (event: React.MouseEvent) => void;\n /**\n * Время в миллисекундах, через которое плашка скроется.\n */\n duration?: number;\n /**\n * Обработчик закрытия уведомления.\n */\n onClose: () => void;\n /**\n * Величина отступа снизу. Используется для позиционирования элемента в случае, когда нежелательно, чтобы Snackbar при появлении перекрывал важные элементы интерфейса.\n */\n offsetY?: React.CSSProperties['bottom'];\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Snackbar\n */\nexport const Snackbar: React.FC<SnackbarProps> & { Basic: typeof Basic } = ({\n placement = 'bottom-start',\n children,\n layout,\n action,\n before,\n after,\n duration = 4000,\n onActionClick,\n onClose,\n mode = 'default',\n subtitle,\n offsetY,\n getRootRef,\n ...restProps\n}: SnackbarProps) => {\n const platform = usePlatform();\n\n const [open, setOpen] = React.useState(true);\n const [touched, setTouched] = React.useState(false);\n\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\n\n const rootRef = useExternRef(getRootRef);\n const focused = useFocusWithin(rootRef);\n const inRef = React.useRef<HTMLDivElement>(null);\n const panGestureRecognizer = React.useRef<UIPanGestureRecognizer | null>(null);\n\n const shiftDataRef = React.useRef<ShiftData | null>(null);\n\n const rafRef = React.useRef<ReturnType<typeof requestAnimationFrame> | null>(null);\n const closeTimeoutIdRef = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const mediaQueries = useMediaQueries();\n const [animationState, animationHandlers] = useCSSKeyframesAnimationController(\n open ? 'enter' : 'exit',\n {\n onExited: onClose,\n },\n );\n\n const clearRAF = React.useCallback(() => {\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n }, []);\n\n const updateShiftAxisCSSProperties = React.useCallback(\n (x: number | null, y: number | null, direction: number | null) => {\n rafRef.current = requestAnimationFrame(() => {\n if (rootRef.current) {\n x === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_x')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_x', `${x}px`);\n y === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_y')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_y', `${y}px`);\n direction === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_direction')\n : /* istanbul ignore next: TODO чтобы протестировать кейс, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n rootRef.current.style.setProperty(\n '--vkui_internal--snackbar_direction',\n `${direction}`,\n );\n }\n });\n },\n [rootRef],\n );\n\n const close = React.useCallback(() => {\n setOpen(false);\n }, []);\n\n const handleActionClick = (event: React.MouseEvent) => {\n close();\n if (action) {\n onActionClick?.(event);\n }\n };\n\n const handleTouchStart = (event: React.UIEvent<HTMLDivElement>) => {\n panGestureRecognizer.current = new UIPanGestureRecognizer();\n panGestureRecognizer.current.setStartCoords(event.nativeEvent);\n shiftDataRef.current = getInitialShiftData(\n rootRef.current!.offsetWidth,\n rootRef.current!.offsetHeight,\n mediaQueries,\n );\n setTouched(true);\n };\n\n const handleTouchMove = (event: React.UIEvent<HTMLDivElement>) => {\n if (shiftDataRef.current && panGestureRecognizer.current) {\n panGestureRecognizer.current.setInitialTimeOnce();\n panGestureRecognizer.current.setEndCoords(event.nativeEvent);\n shiftDataRef.current = getMovedShiftData(\n placement,\n shiftDataRef.current,\n panGestureRecognizer.current.delta(),\n isRtl,\n );\n\n if (shiftDataRef.current.shifted) {\n updateShiftAxisCSSProperties(\n shiftDataRef.current.x,\n shiftDataRef.current.y,\n shiftDataRef.current.direction,\n );\n }\n }\n };\n\n const handleTouchEnd = () => {\n if (\n touched &&\n shiftDataRef.current &&\n panGestureRecognizer.current &&\n shouldBeClosedByShiftData(\n placement,\n shiftDataRef.current,\n getRelativeBoundingClientRect(rootRef.current!, inRef.current!),\n panGestureRecognizer.current.velocity(),\n isRtl,\n )\n ) {\n close();\n }\n\n setTouched(false);\n };\n\n useIsomorphicLayoutEffect(\n function closeAfterDelay() {\n if (!open || focused || touched || animationState !== 'entered') {\n return;\n }\n closeTimeoutIdRef.current = setTimeout(close, duration);\n return function preventCloseAfterDelayOnUnmount() {\n clearTimeout(closeTimeoutIdRef.current);\n };\n },\n [open, focused, touched, animationState, close, duration],\n );\n\n useIsomorphicLayoutEffect(\n function clearUserInteractionDataAfterTouchEnd() {\n if (!touched) {\n clearRAF();\n shiftDataRef.current = null;\n panGestureRecognizer.current = null;\n\n if (open) {\n updateShiftAxisCSSProperties(null, null, null);\n }\n }\n },\n [touched, open, updateShiftAxisCSSProperties, clearRAF],\n );\n\n React.useEffect(() => clearRAF, [clearRAF]);\n\n useGlobalEscKeyDown(open, close);\n\n if (animationState === 'exited') {\n return null;\n }\n\n return (\n <RootComponent\n {...restProps}\n role=\"presentation\"\n baseClassName={classNames(\n styles.host,\n platform === 'ios' && styles.ios,\n touched && styles.touched,\n placementClassNames[placement],\n animationStateClassNames[animationState],\n isRtl && styles.rtl,\n )}\n baseStyle={resolveOffsetYCssStyle(placement, offsetY)}\n getRootRef={rootRef}\n >\n <div\n role=\"alert\"\n className={styles.in}\n ref={inRef}\n // mobile\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n // desktop\n onMouseDown={handleTouchStart}\n onMouseMove={handleTouchMove}\n onMouseUp={handleTouchEnd}\n onMouseLeave={handleTouchEnd}\n {...animationHandlers}\n >\n <Basic\n mode={mode}\n layout={layout}\n before={before}\n after={after}\n subtitle={subtitle}\n action={\n action && (\n <Button\n align=\"left\"\n mode=\"link\"\n appearance={\n mode === 'dark'\n ? /* istanbul ignore next: проверяется в e2e */\n 'overlay'\n : 'accent'\n }\n size=\"s\"\n onClick={handleActionClick}\n >\n {action}\n </Button>\n )\n }\n >\n {children}\n </Basic>\n </div>\n </RootComponent>\n );\n};\n\nSnackbar.Basic = Basic;\n"],"names":["React","classNames","useConfigDirection","useExternRef","useFocusWithin","useGlobalEscKeyDown","useMediaQueries","usePlatform","useCSSKeyframesAnimationController","getRelativeBoundingClientRect","UIPanGestureRecognizer","useIsomorphicLayoutEffect","Button","RootComponent","Basic","getInitialShiftData","getMovedShiftData","resolveOffsetYCssStyle","shouldBeClosedByShiftData","placementClassNames","animationStateClassNames","enter","entering","entered","exit","exiting","exited","undefined","Snackbar","placement","children","layout","action","before","after","duration","onActionClick","onClose","mode","subtitle","offsetY","getRootRef","restProps","platform","open","setOpen","useState","touched","setTouched","direction","isRtl","rootRef","focused","inRef","useRef","panGestureRecognizer","shiftDataRef","rafRef","closeTimeoutIdRef","mediaQueries","animationState","animationHandlers","onExited","clearRAF","useCallback","current","cancelAnimationFrame","updateShiftAxisCSSProperties","x","y","requestAnimationFrame","style","removeProperty","setProperty","close","handleActionClick","event","handleTouchStart","setStartCoords","nativeEvent","offsetWidth","offsetHeight","handleTouchMove","setInitialTimeOnce","setEndCoords","delta","shifted","handleTouchEnd","velocity","closeAfterDelay","setTimeout","preventCloseAfterDelayOnUnmount","clearTimeout","clearUserInteractionDataAfterTouchEnd","useEffect","role","baseClassName","baseStyle","div","className","ref","onTouchStart","onTouchMove","onTouchEnd","onMouseDown","onMouseMove","onMouseUp","onMouseLeave","align","appearance","size","onClick"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Snackbar/Snackbar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useConfigDirection } from '../../hooks/useConfigDirection';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useFocusWithin } from '../../hooks/useFocusWithin';\nimport { useGlobalEscKeyDown } from '../../hooks/useGlobalEscKeyDown';\nimport { useMediaQueries } from '../../hooks/useMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useCSSKeyframesAnimationController } from '../../lib/animation';\nimport { getRelativeBoundingClientRect } from '../../lib/dom';\nimport { UIPanGestureRecognizer } from '../../lib/touch';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Basic, type BasicProps } from './subcomponents/Basic/Basic';\nimport type { ShiftData, SnackbarPlacement } from './types';\nimport {\n getInitialShiftData,\n getMovedShiftData,\n resolveOffsetYCssStyle,\n shouldBeClosedByShiftData,\n} from './utils';\nimport styles from './Snackbar.module.css';\n\nconst placementClassNames = {\n 'top-start': styles.placementTopStart,\n 'top': styles.placementTop,\n 'top-end': styles.placementTopEnd,\n 'bottom-start': styles.placementBottomStart,\n 'bottom': styles.placementBottom,\n 'bottom-end': styles.placementBottomEnd,\n};\n\nconst animationStateClassNames = {\n enter: styles.stateEnter,\n entering: styles.stateEntering,\n entered: styles.stateEntered,\n exit: styles.stateExit,\n exiting: styles.stateExiting,\n exited: undefined,\n};\n\nexport interface SnackbarProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'role'>,\n BasicProps {\n /**\n * Задаёт расположение компонента.\n *\n * > Note: в мобильном режиме:\n * > - `\"top-start\"`/`\"top-end\"` перебивается на `\"top\"`, чтобы поведение было схожим с нативными\n * > уведомлениями;\n * > - `\"bottom\"` перебивается на `\"bottom-start\"`, чтобы избежать вызова системных\n * > функций, таких как **Pull To Refresh** и **Режим управления одной рукой**.\n * > - `\"bottom-start\"`/`\"bottom-end\"` закрываются смахиванием в любое из направлений\n * > по горизонтальной оси.\n */\n placement?: SnackbarPlacement;\n /**\n * Название кнопки действия в уведомлении\n * Не может использоваться одновременно с `subtitle`.\n */\n action?: React.ReactNode;\n /**\n * Будет вызвано при нажатии на кнопку действия.\n */\n onActionClick?: (event: React.MouseEvent) => void;\n /**\n * Время в миллисекундах, через которое плашка скроется.\n */\n duration?: number;\n /**\n * Обработчик закрытия уведомления.\n */\n onClose: () => void;\n /**\n * Величина отступа снизу. Используется для позиционирования элемента в случае, когда нежелательно, чтобы Snackbar при появлении перекрывал важные элементы интерфейса.\n */\n offsetY?: React.CSSProperties['bottom'];\n}\n\n/**\n * @see https://vkui.io/components/snackbar\n */\nexport const Snackbar: React.FC<SnackbarProps> & { Basic: typeof Basic } = ({\n placement = 'bottom-start',\n children,\n layout,\n action,\n before,\n after,\n duration = 4000,\n onActionClick,\n onClose,\n mode = 'default',\n subtitle,\n offsetY,\n getRootRef,\n ...restProps\n}: SnackbarProps) => {\n const platform = usePlatform();\n\n const [open, setOpen] = React.useState(true);\n const [touched, setTouched] = React.useState(false);\n\n const direction = useConfigDirection();\n const isRtl = direction === 'rtl';\n\n const rootRef = useExternRef(getRootRef);\n const focused = useFocusWithin(rootRef);\n const inRef = React.useRef<HTMLDivElement>(null);\n const panGestureRecognizer = React.useRef<UIPanGestureRecognizer | null>(null);\n\n const shiftDataRef = React.useRef<ShiftData | null>(null);\n\n const rafRef = React.useRef<ReturnType<typeof requestAnimationFrame> | null>(null);\n const closeTimeoutIdRef = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const mediaQueries = useMediaQueries();\n const [animationState, animationHandlers] = useCSSKeyframesAnimationController(\n open ? 'enter' : 'exit',\n {\n onExited: onClose,\n },\n );\n\n const clearRAF = React.useCallback(() => {\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n }, []);\n\n const updateShiftAxisCSSProperties = React.useCallback(\n (x: number | null, y: number | null, direction: number | null) => {\n rafRef.current = requestAnimationFrame(() => {\n if (rootRef.current) {\n x === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_x')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_x', `${x}px`);\n y === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_shift_y')\n : rootRef.current.style.setProperty('--vkui_internal--snackbar_shift_y', `${y}px`);\n direction === null\n ? rootRef.current.style.removeProperty('--vkui_internal--snackbar_direction')\n : /* istanbul ignore next: TODO чтобы протестировать кейс, нужно мокать useMediaQueries(), чтобы перебивать mediaQueries.smallTabletPlus.matches */\n rootRef.current.style.setProperty(\n '--vkui_internal--snackbar_direction',\n `${direction}`,\n );\n }\n });\n },\n [rootRef],\n );\n\n const close = React.useCallback(() => {\n setOpen(false);\n }, []);\n\n const handleActionClick = (event: React.MouseEvent) => {\n close();\n if (action) {\n onActionClick?.(event);\n }\n };\n\n const handleTouchStart = (event: React.UIEvent<HTMLDivElement>) => {\n panGestureRecognizer.current = new UIPanGestureRecognizer();\n panGestureRecognizer.current.setStartCoords(event.nativeEvent);\n shiftDataRef.current = getInitialShiftData(\n rootRef.current!.offsetWidth,\n rootRef.current!.offsetHeight,\n mediaQueries,\n );\n setTouched(true);\n };\n\n const handleTouchMove = (event: React.UIEvent<HTMLDivElement>) => {\n if (shiftDataRef.current && panGestureRecognizer.current) {\n panGestureRecognizer.current.setInitialTimeOnce();\n panGestureRecognizer.current.setEndCoords(event.nativeEvent);\n shiftDataRef.current = getMovedShiftData(\n placement,\n shiftDataRef.current,\n panGestureRecognizer.current.delta(),\n isRtl,\n );\n\n if (shiftDataRef.current.shifted) {\n updateShiftAxisCSSProperties(\n shiftDataRef.current.x,\n shiftDataRef.current.y,\n shiftDataRef.current.direction,\n );\n }\n }\n };\n\n const handleTouchEnd = () => {\n if (\n touched &&\n shiftDataRef.current &&\n panGestureRecognizer.current &&\n shouldBeClosedByShiftData(\n placement,\n shiftDataRef.current,\n getRelativeBoundingClientRect(rootRef.current!, inRef.current!),\n panGestureRecognizer.current.velocity(),\n isRtl,\n )\n ) {\n close();\n }\n\n setTouched(false);\n };\n\n useIsomorphicLayoutEffect(\n function closeAfterDelay() {\n if (!open || focused || touched || animationState !== 'entered') {\n return;\n }\n closeTimeoutIdRef.current = setTimeout(close, duration);\n return function preventCloseAfterDelayOnUnmount() {\n clearTimeout(closeTimeoutIdRef.current);\n };\n },\n [open, focused, touched, animationState, close, duration],\n );\n\n useIsomorphicLayoutEffect(\n function clearUserInteractionDataAfterTouchEnd() {\n if (!touched) {\n clearRAF();\n shiftDataRef.current = null;\n panGestureRecognizer.current = null;\n\n if (open) {\n updateShiftAxisCSSProperties(null, null, null);\n }\n }\n },\n [touched, open, updateShiftAxisCSSProperties, clearRAF],\n );\n\n React.useEffect(() => clearRAF, [clearRAF]);\n\n useGlobalEscKeyDown(open, close);\n\n if (animationState === 'exited') {\n return null;\n }\n\n return (\n <RootComponent\n {...restProps}\n role=\"presentation\"\n baseClassName={classNames(\n styles.host,\n platform === 'ios' && styles.ios,\n touched && styles.touched,\n placementClassNames[placement],\n animationStateClassNames[animationState],\n isRtl && styles.rtl,\n )}\n baseStyle={resolveOffsetYCssStyle(placement, offsetY)}\n getRootRef={rootRef}\n >\n <div\n role=\"alert\"\n className={styles.in}\n ref={inRef}\n // mobile\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n // desktop\n onMouseDown={handleTouchStart}\n onMouseMove={handleTouchMove}\n onMouseUp={handleTouchEnd}\n onMouseLeave={handleTouchEnd}\n {...animationHandlers}\n >\n <Basic\n mode={mode}\n layout={layout}\n before={before}\n after={after}\n subtitle={subtitle}\n action={\n action && (\n <Button\n align=\"left\"\n mode=\"link\"\n appearance={\n mode === 'dark'\n ? /* istanbul ignore next: проверяется в e2e */\n 'overlay'\n : 'accent'\n }\n size=\"s\"\n onClick={handleActionClick}\n >\n {action}\n </Button>\n )\n }\n >\n {children}\n </Basic>\n </div>\n </RootComponent>\n );\n};\n\nSnackbar.Basic = Basic;\n"],"names":["React","classNames","useConfigDirection","useExternRef","useFocusWithin","useGlobalEscKeyDown","useMediaQueries","usePlatform","useCSSKeyframesAnimationController","getRelativeBoundingClientRect","UIPanGestureRecognizer","useIsomorphicLayoutEffect","Button","RootComponent","Basic","getInitialShiftData","getMovedShiftData","resolveOffsetYCssStyle","shouldBeClosedByShiftData","placementClassNames","animationStateClassNames","enter","entering","entered","exit","exiting","exited","undefined","Snackbar","placement","children","layout","action","before","after","duration","onActionClick","onClose","mode","subtitle","offsetY","getRootRef","restProps","platform","open","setOpen","useState","touched","setTouched","direction","isRtl","rootRef","focused","inRef","useRef","panGestureRecognizer","shiftDataRef","rafRef","closeTimeoutIdRef","mediaQueries","animationState","animationHandlers","onExited","clearRAF","useCallback","current","cancelAnimationFrame","updateShiftAxisCSSProperties","x","y","requestAnimationFrame","style","removeProperty","setProperty","close","handleActionClick","event","handleTouchStart","setStartCoords","nativeEvent","offsetWidth","offsetHeight","handleTouchMove","setInitialTimeOnce","setEndCoords","delta","shifted","handleTouchEnd","velocity","closeAfterDelay","setTimeout","preventCloseAfterDelayOnUnmount","clearTimeout","clearUserInteractionDataAfterTouchEnd","useEffect","role","baseClassName","baseStyle","div","className","ref","onTouchStart","onTouchMove","onTouchEnd","onMouseDown","onMouseMove","onMouseUp","onMouseLeave","align","appearance","size","onClick"],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export interface SpacingProps extends HTMLAttributesWithRootRef<HTMLDivElement>
|
|
|
17
17
|
children?: React.ReactNode;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* @see https://
|
|
20
|
+
* @see https://vkui.io/components/spacing
|
|
21
21
|
*/
|
|
22
22
|
export declare const Spacing: ({ size, ...restProps }: SpacingProps) => React.ReactNode;
|
|
23
23
|
//# sourceMappingURL=Spacing.d.ts.map
|
|
@@ -8,7 +8,7 @@ import { resolveSpacingSize } from "../../lib/spacings/sizes.js";
|
|
|
8
8
|
import { RootComponent } from "../RootComponent/RootComponent.js";
|
|
9
9
|
export const CUSTOM_CSS_TOKEN_FOR_USER_GAP = '--vkui_internal--spacing_size';
|
|
10
10
|
/**
|
|
11
|
-
* @see https://
|
|
11
|
+
* @see https://vkui.io/components/spacing
|
|
12
12
|
*/ export const Spacing = (_param)=>{
|
|
13
13
|
var { size = 'm' } = _param, restProps = _object_without_properties(_param, [
|
|
14
14
|
"size"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Spacing/Spacing.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { resolveSpacingSize, type SpacingSizeProp } from '../../lib/spacings/sizes';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Spacing.module.css';\n\nexport const CUSTOM_CSS_TOKEN_FOR_USER_GAP = '--vkui_internal--spacing_size';\n\nexport interface SpacingProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Высота спэйсинга.\n *\n * Принимает значения дизайн-системы, числовые значения и css-переменные.\n */\n size?: SpacingSizeProp;\n /**\n * @deprecated 7.0.0.\n *\n * Свойство устарело и будет удалено в v8.\n */\n children?: React.ReactNode;\n}\n/**\n * @see https://
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Spacing/Spacing.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { resolveSpacingSize, type SpacingSizeProp } from '../../lib/spacings/sizes';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './Spacing.module.css';\n\nexport const CUSTOM_CSS_TOKEN_FOR_USER_GAP = '--vkui_internal--spacing_size';\n\nexport interface SpacingProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Высота спэйсинга.\n *\n * Принимает значения дизайн-системы, числовые значения и css-переменные.\n */\n size?: SpacingSizeProp;\n /**\n * @deprecated 7.0.0.\n *\n * Свойство устарело и будет удалено в v8.\n */\n children?: React.ReactNode;\n}\n/**\n * @see https://vkui.io/components/spacing\n */\nexport const Spacing = ({ size = 'm', ...restProps }: SpacingProps): React.ReactNode => {\n const [spacingSizeClassName, spacingSizeStyle] = resolveSpacingSize(\n CUSTOM_CSS_TOKEN_FOR_USER_GAP,\n size,\n );\n return (\n <RootComponent\n {...restProps}\n baseStyle={spacingSizeStyle}\n baseClassName={classNames(styles.host, spacingSizeClassName)}\n />\n );\n};\n"],"names":["React","classNames","resolveSpacingSize","RootComponent","CUSTOM_CSS_TOKEN_FOR_USER_GAP","Spacing","size","restProps","spacingSizeClassName","spacingSizeStyle","baseStyle","baseClassName"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,kBAAkB,QAA8B,8BAA2B;AAEpF,SAASC,aAAa,QAAQ,oCAAiC;AAG/D,OAAO,MAAMC,gCAAgC,gCAAgC;AAgB7E;;CAEC,GACD,OAAO,MAAMC,UAAU;QAAC,EAAEC,OAAO,GAAG,EAA8B,WAAzBC;QAAfD;;IACxB,MAAM,CAACE,sBAAsBC,iBAAiB,GAAGP,mBAC/CE,+BACAE;IAEF,qBACE,KAACH,uDACKI;QACJG,WAAWD;QACXE,eAAeV,gCAAwBO;;AAG7C,EAAE"}
|
|
@@ -19,7 +19,7 @@ export interface SpinnerProps extends HTMLAttributesWithRootRef<HTMLSpanElement>
|
|
|
19
19
|
visibilityDelay?: number;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* @see https://
|
|
22
|
+
* @see https://vkui.io/components/spinner
|
|
23
23
|
*/
|
|
24
24
|
export declare const Spinner: React.MemoExoticComponent<({ size, children, disableAnimation, noColor, visibilityDelay, ...restProps }: SpinnerProps) => import("react/jsx-runtime").JSX.Element>;
|
|
25
25
|
//# sourceMappingURL=Spinner.d.ts.map
|
|
@@ -17,7 +17,7 @@ const spinnerIconMap = {
|
|
|
17
17
|
xl: Icon44Spinner
|
|
18
18
|
};
|
|
19
19
|
/**
|
|
20
|
-
* @see https://
|
|
20
|
+
* @see https://vkui.io/components/spinner
|
|
21
21
|
*/ // eslint-disable-next-line react/display-name -- используется defineComponentDisplayNames
|
|
22
22
|
export const Spinner = /*#__PURE__*/ React.memo((_param)=>{
|
|
23
23
|
var { size = 'm', children = 'Загружается...', disableAnimation = false, noColor = false, visibilityDelay } = _param, restProps = _object_without_properties(_param, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { defineComponentDisplayNames } from '../../lib/react/defineComponentDisplayNames';\nimport { animationVisibilityDelayStyles } from '../../styles/animationVisibilityDelay';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport { SpinnerAnimation } from './SpinnerAnimation';\nimport { Icon16Spinner, Icon24Spinner, Icon32Spinner, Icon44Spinner } from './icons';\nimport styles from './Spinner.module.css';\nimport stylesDelay from '../../styles/animationVisibilityDelay.module.css';\n\nconst spinnerIconMap = {\n s: Icon16Spinner,\n m: Icon24Spinner,\n l: Icon32Spinner,\n xl: Icon44Spinner,\n};\n\nexport interface SpinnerProps extends HTMLAttributesWithRootRef<HTMLSpanElement> {\n /**\n * Размер спиннера.\n */\n size?: 's' | 'm' | 'l' | 'xl';\n /**\n * Отключение анимации.\n */\n disableAnimation?: boolean;\n /**\n * Задать цвет можно будет через свойство color родителя.\n */\n noColor?: boolean;\n /**\n * Задерживает отрисовку элемента на заданное количество миллисекунд.\n */\n visibilityDelay?: number;\n}\n\n/**\n * @see https://
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { defineComponentDisplayNames } from '../../lib/react/defineComponentDisplayNames';\nimport { animationVisibilityDelayStyles } from '../../styles/animationVisibilityDelay';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport { SpinnerAnimation } from './SpinnerAnimation';\nimport { Icon16Spinner, Icon24Spinner, Icon32Spinner, Icon44Spinner } from './icons';\nimport styles from './Spinner.module.css';\nimport stylesDelay from '../../styles/animationVisibilityDelay.module.css';\n\nconst spinnerIconMap = {\n s: Icon16Spinner,\n m: Icon24Spinner,\n l: Icon32Spinner,\n xl: Icon44Spinner,\n};\n\nexport interface SpinnerProps extends HTMLAttributesWithRootRef<HTMLSpanElement> {\n /**\n * Размер спиннера.\n */\n size?: 's' | 'm' | 'l' | 'xl';\n /**\n * Отключение анимации.\n */\n disableAnimation?: boolean;\n /**\n * Задать цвет можно будет через свойство color родителя.\n */\n noColor?: boolean;\n /**\n * Задерживает отрисовку элемента на заданное количество миллисекунд.\n */\n visibilityDelay?: number;\n}\n\n/**\n * @see https://vkui.io/components/spinner\n */\n// eslint-disable-next-line react/display-name -- используется defineComponentDisplayNames\nexport const Spinner = React.memo(\n ({\n size = 'm',\n children = 'Загружается...',\n disableAnimation = false,\n noColor = false,\n visibilityDelay,\n ...restProps\n }: SpinnerProps) => {\n const SpinnerIcon = spinnerIconMap[size];\n\n return (\n <RootComponent\n Component=\"span\"\n role=\"status\"\n {...restProps}\n baseClassName={classNames(\n styles.host,\n noColor && styles.noColor,\n visibilityDelay && stylesDelay.visibilityDelay,\n )}\n baseStyle={animationVisibilityDelayStyles(visibilityDelay)}\n >\n <SpinnerIcon>{disableAnimation ? null : <SpinnerAnimation size={size} />}</SpinnerIcon>\n {hasReactNode(children) && <VisuallyHidden>{children}</VisuallyHidden>}\n </RootComponent>\n );\n },\n);\n\nif (process.env.NODE_ENV !== 'production') {\n defineComponentDisplayNames(Spinner, 'Spinner');\n}\n"],"names":["React","classNames","hasReactNode","defineComponentDisplayNames","animationVisibilityDelayStyles","RootComponent","VisuallyHidden","SpinnerAnimation","Icon16Spinner","Icon24Spinner","Icon32Spinner","Icon44Spinner","spinnerIconMap","s","m","l","xl","Spinner","memo","size","children","disableAnimation","noColor","visibilityDelay","restProps","SpinnerIcon","Component","role","baseClassName","baseStyle","process","env","NODE_ENV"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,2BAA2B,QAAQ,iDAA8C;AAC1F,SAASC,8BAA8B,QAAQ,2CAAwC;AAEvF,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,cAAc,QAAQ,sCAAmC;AAClE,SAASC,gBAAgB,QAAQ,wBAAqB;AACtD,SAASC,aAAa,EAAEC,aAAa,EAAEC,aAAa,EAAEC,aAAa,QAAQ,aAAU;AAIrF,MAAMC,iBAAiB;IACrBC,GAAGL;IACHM,GAAGL;IACHM,GAAGL;IACHM,IAAIL;AACN;AAqBA;;CAEC,GACD,0FAA0F;AAC1F,OAAO,MAAMM,wBAAUjB,MAAMkB,IAAI,CAC/B;QAAC,EACCC,OAAO,GAAG,EACVC,WAAW,gBAAgB,EAC3BC,mBAAmB,KAAK,EACxBC,UAAU,KAAK,EACfC,eAAe,EAEF,WADVC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,cAAcb,cAAc,CAACO,KAAK;IAExC,qBACE,MAACd;QACCqB,WAAU;QACVC,MAAK;OACDH;QACJI,eAAe3B,gCAEbqB,mCACAC;QAEFM,WAAWzB,+BAA+BmB;;0BAE1C,KAACE;0BAAaJ,mBAAmB,qBAAO,KAACd;oBAAiBY,MAAMA;;;YAC/DjB,aAAakB,2BAAa,KAACd;0BAAgBc;;;;AAGlD,GACA;AAEF,IAAIU,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;IACzC7B,4BAA4Bc,SAAS;AACvC"}
|
|
@@ -31,7 +31,7 @@ export interface SplitColProps extends HTMLAttributesWithRootRef<HTMLDivElement>
|
|
|
31
31
|
stretchedOnMobile?: boolean;
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
|
-
* @see https://
|
|
34
|
+
* @see https://vkui.io/components/split-layout#split-col
|
|
35
35
|
*/
|
|
36
36
|
export declare const SplitCol: (props: SplitColProps) => React.ReactNode;
|
|
37
37
|
//# sourceMappingURL=SplitCol.d.ts.map
|
|
@@ -46,7 +46,7 @@ function useTransitionAnimate(animateProp) {
|
|
|
46
46
|
return animate;
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
|
-
* @see https://
|
|
49
|
+
* @see https://vkui.io/components/split-layout#split-col
|
|
50
50
|
*/ export const SplitCol = (props)=>{
|
|
51
51
|
const { children, width, maxWidth, minWidth, animate: animateProp, fixed, autoSpaced, stretchedOnMobile, getRootRef } = props, restProps = _object_without_properties(props, [
|
|
52
52
|
"children",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/SplitCol/SplitCol.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useMediaQueries } from '../../hooks/useMediaQueries';\nimport { ViewWidth, viewWidthToClassName } from '../../lib/adaptivity';\nimport { matchMediaListAddListener, matchMediaListRemoveListener } from '../../lib/matchMedia';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { SplitColContext } from './SplitColContext';\nimport styles from './SplitCol.module.css';\n\nconst breakpointClassNames = {\n none: classNames(styles.viewWidthNone, 'vkuiInternalSplitCol--viewWidth-none'),\n tabletMinus: styles.viewWidthTabletMinus,\n smallTabletPlus: styles.viewWidthSmallTabletPlus,\n tabletPlus: 'vkuiInternalSplitCol--viewWidth-tabletPlus',\n};\n\nfunction useTransitionAnimate(animateProp?: boolean) {\n const { viewWidth } = useAdaptivity();\n const [animate, setAnimate] = React.useState(Boolean(animateProp));\n const mediaQueries = useMediaQueries();\n\n React.useEffect(() => {\n if (animateProp !== undefined) {\n setAnimate(animateProp);\n return;\n }\n\n if (viewWidth !== undefined) {\n setAnimate(viewWidth < ViewWidth.TABLET);\n return;\n }\n\n // eslint-disable-next-line no-restricted-properties\n const listener = () => setAnimate(!mediaQueries.smallTabletPlus.matches);\n listener();\n\n matchMediaListAddListener(mediaQueries.smallTabletPlus, listener);\n return () => {\n matchMediaListRemoveListener(mediaQueries.smallTabletPlus, listener);\n };\n }, [animateProp, viewWidth, mediaQueries]);\n\n return animate;\n}\n\nexport interface SplitColProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Ширина колонки.\n */\n width?: number | string;\n /**\n * Максимальная ширина колонки.\n */\n maxWidth?: number | string;\n /**\n * Минимальная ширина колонки.\n */\n minWidth?: number | string;\n /**\n * Если false, то переходы между Panel происходят без анимации.\n */\n animate?: boolean;\n /**\n * Если true, то добавляются боковые отступы фиксированной величины при ширине больше чем `smallTablet`.\n */\n autoSpaced?: boolean;\n /**\n * Фиксированное положение колонки.\n */\n fixed?: boolean;\n /**\n * Если true, то ширина контейнера становится 100% при ширине меньше чем `tablet`.\n */\n stretchedOnMobile?: boolean;\n}\n\n/**\n * @see https://
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SplitCol/SplitCol.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useMediaQueries } from '../../hooks/useMediaQueries';\nimport { ViewWidth, viewWidthToClassName } from '../../lib/adaptivity';\nimport { matchMediaListAddListener, matchMediaListRemoveListener } from '../../lib/matchMedia';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { SplitColContext } from './SplitColContext';\nimport styles from './SplitCol.module.css';\n\nconst breakpointClassNames = {\n none: classNames(styles.viewWidthNone, 'vkuiInternalSplitCol--viewWidth-none'),\n tabletMinus: styles.viewWidthTabletMinus,\n smallTabletPlus: styles.viewWidthSmallTabletPlus,\n tabletPlus: 'vkuiInternalSplitCol--viewWidth-tabletPlus',\n};\n\nfunction useTransitionAnimate(animateProp?: boolean) {\n const { viewWidth } = useAdaptivity();\n const [animate, setAnimate] = React.useState(Boolean(animateProp));\n const mediaQueries = useMediaQueries();\n\n React.useEffect(() => {\n if (animateProp !== undefined) {\n setAnimate(animateProp);\n return;\n }\n\n if (viewWidth !== undefined) {\n setAnimate(viewWidth < ViewWidth.TABLET);\n return;\n }\n\n // eslint-disable-next-line no-restricted-properties\n const listener = () => setAnimate(!mediaQueries.smallTabletPlus.matches);\n listener();\n\n matchMediaListAddListener(mediaQueries.smallTabletPlus, listener);\n return () => {\n matchMediaListRemoveListener(mediaQueries.smallTabletPlus, listener);\n };\n }, [animateProp, viewWidth, mediaQueries]);\n\n return animate;\n}\n\nexport interface SplitColProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Ширина колонки.\n */\n width?: number | string;\n /**\n * Максимальная ширина колонки.\n */\n maxWidth?: number | string;\n /**\n * Минимальная ширина колонки.\n */\n minWidth?: number | string;\n /**\n * Если false, то переходы между Panel происходят без анимации.\n */\n animate?: boolean;\n /**\n * Если true, то добавляются боковые отступы фиксированной величины при ширине больше чем `smallTablet`.\n */\n autoSpaced?: boolean;\n /**\n * Фиксированное положение колонки.\n */\n fixed?: boolean;\n /**\n * Если true, то ширина контейнера становится 100% при ширине меньше чем `tablet`.\n */\n stretchedOnMobile?: boolean;\n}\n\n/**\n * @see https://vkui.io/components/split-layout#split-col\n */\nexport const SplitCol = (props: SplitColProps): React.ReactNode => {\n const {\n children,\n width,\n maxWidth,\n minWidth,\n animate: animateProp,\n fixed,\n autoSpaced,\n stretchedOnMobile,\n getRootRef,\n ...restProps\n } = props;\n const baseRef = useExternRef(getRootRef);\n const { viewWidth } = useAdaptivity();\n const animate = useTransitionAnimate(animateProp);\n\n const contextValue = React.useMemo(\n () => ({\n colRef: baseRef,\n animate,\n }),\n [animate, baseRef],\n );\n\n return (\n <RootComponent\n {...restProps}\n baseStyle={{\n width,\n maxWidth,\n minWidth,\n }}\n getRootRef={baseRef}\n baseClassName={classNames(\n styles.host,\n viewWidthToClassName(breakpointClassNames, viewWidth),\n autoSpaced && classNames(styles.spacedAuto, 'vkuiInternalSplitCol--spaced-auto'),\n fixed && styles.fixed,\n stretchedOnMobile && styles.stretchedOnMobile,\n )}\n >\n <SplitColContext.Provider value={contextValue}>\n {fixed ? <div className={styles.fixedInner}>{children}</div> : children}\n </SplitColContext.Provider>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useExternRef","useMediaQueries","ViewWidth","viewWidthToClassName","matchMediaListAddListener","matchMediaListRemoveListener","RootComponent","SplitColContext","breakpointClassNames","none","tabletMinus","smallTabletPlus","tabletPlus","useTransitionAnimate","animateProp","viewWidth","animate","setAnimate","useState","Boolean","mediaQueries","useEffect","undefined","TABLET","listener","matches","SplitCol","props","children","width","maxWidth","minWidth","fixed","autoSpaced","stretchedOnMobile","getRootRef","restProps","baseRef","contextValue","useMemo","colRef","baseStyle","baseClassName","Provider","value","div","className"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,eAAe,QAAQ,iCAA8B;AAC9D,SAASC,SAAS,EAAEC,oBAAoB,QAAQ,gCAAuB;AACvE,SAASC,yBAAyB,EAAEC,4BAA4B,QAAQ,0BAAuB;AAE/F,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,eAAe,QAAQ,uBAAoB;AAGpD,MAAMC,uBAAuB;IAC3BC,MAAMX,0CAAiC;IACvCY,WAAW;IACXC,eAAe;IACfC,YAAY;AACd;AAEA,SAASC,qBAAqBC,WAAqB;IACjD,MAAM,EAAEC,SAAS,EAAE,GAAGhB;IACtB,MAAM,CAACiB,SAASC,WAAW,GAAGpB,MAAMqB,QAAQ,CAACC,QAAQL;IACrD,MAAMM,eAAenB;IAErBJ,MAAMwB,SAAS,CAAC;QACd,IAAIP,gBAAgBQ,WAAW;YAC7BL,WAAWH;YACX;QACF;QAEA,IAAIC,cAAcO,WAAW;YAC3BL,WAAWF,YAAYb,UAAUqB,MAAM;YACvC;QACF;QAEA,oDAAoD;QACpD,MAAMC,WAAW,IAAMP,WAAW,CAACG,aAAaT,eAAe,CAACc,OAAO;QACvED;QAEApB,0BAA0BgB,aAAaT,eAAe,EAAEa;QACxD,OAAO;YACLnB,6BAA6Be,aAAaT,eAAe,EAAEa;QAC7D;IACF,GAAG;QAACV;QAAaC;QAAWK;KAAa;IAEzC,OAAOJ;AACT;AAiCA;;CAEC,GACD,OAAO,MAAMU,WAAW,CAACC;IACvB,MAAM,EACJC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,QAAQ,EACRf,SAASF,WAAW,EACpBkB,KAAK,EACLC,UAAU,EACVC,iBAAiB,EACjBC,UAAU,EAEX,GAAGR,OADCS,uCACDT;QAVFC;QACAC;QACAC;QACAC;QACAf;QACAgB;QACAC;QACAC;QACAC;;IAGF,MAAME,UAAUrC,aAAamC;IAC7B,MAAM,EAAEpB,SAAS,EAAE,GAAGhB;IACtB,MAAMiB,UAAUH,qBAAqBC;IAErC,MAAMwB,eAAezC,MAAM0C,OAAO,CAChC,IAAO,CAAA;YACLC,QAAQH;YACRrB;QACF,CAAA,GACA;QAACA;QAASqB;KAAQ;IAGpB,qBACE,KAAC/B,uDACK8B;QACJK,WAAW;YACTZ;YACAC;YACAC;QACF;QACAI,YAAYE;QACZK,eAAe5C,iCAEbK,qBAAqBK,sBAAsBO,YAC3CkB,cAAcnC,uCAA8B,sCAC5CkC,gCACAE;kBAGF,cAAA,KAAC3B,gBAAgBoC,QAAQ;YAACC,OAAON;sBAC9BN,sBAAQ,KAACa;gBAAIC,SAAS;0BAAsBlB;iBAAkBA;;;AAIvE,EAAE"}
|
|
@@ -27,7 +27,7 @@ export interface SplitLayoutProps extends HTMLAttributesWithRootRef<HTMLDivEleme
|
|
|
27
27
|
center?: boolean;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
* @see https://
|
|
30
|
+
* @see https://vkui.io/components/split-layout
|
|
31
31
|
*/
|
|
32
32
|
export declare const SplitLayout: ({ header, children, getRootRef, getRef, className, center, modal, popout, ...restProps }: SplitLayoutProps) => React.ReactNode;
|
|
33
33
|
//# sourceMappingURL=SplitLayout.d.ts.map
|
|
@@ -7,7 +7,7 @@ import * as React from "react";
|
|
|
7
7
|
import { classNames } from "@vkontakte/vkjs";
|
|
8
8
|
import { usePlatform } from "../../hooks/usePlatform.js";
|
|
9
9
|
/**
|
|
10
|
-
* @see https://
|
|
10
|
+
* @see https://vkui.io/components/split-layout
|
|
11
11
|
*/ export const SplitLayout = (_param)=>{
|
|
12
12
|
var { header, children, getRootRef, getRef, className, center, modal, popout } = _param, restProps = _object_without_properties(_param, [
|
|
13
13
|
"header",
|