@vkontakte/vkui 5.3.2 → 5.4.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/dist/cjs/components/Accordion/Accordion.d.ts +2 -2
- package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
- package/dist/cjs/components/Accordion/AccordionSummary.d.ts +1 -1
- package/dist/cjs/components/Accordion/AccordionSummary.js.map +1 -1
- package/dist/cjs/components/ActionSheet/types.d.ts +1 -1
- package/dist/cjs/components/ActionSheet/types.js.map +1 -1
- package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
- package/dist/cjs/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +4 -4
- package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRootPortal.d.ts +3 -3
- package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cjs/components/AppRoot/ScrollContext.d.ts +2 -2
- package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cjs/components/Button/Button.d.ts +1 -0
- package/dist/cjs/components/Button/Button.js +2 -2
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/Card/Card.js +1 -3
- package/dist/cjs/components/Card/Card.js.map +1 -1
- package/dist/cjs/components/CardGrid/CardGrid.js +4 -4
- package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js +10 -6
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.d.ts +2 -1
- package/dist/cjs/components/Checkbox/Checkbox.js +12 -8
- package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +3 -2
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/Counter/Counter.js +3 -5
- package/dist/cjs/components/Counter/Counter.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +3 -0
- package/dist/cjs/components/CustomSelect/CustomSelect.js +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cjs/components/Epic/ScrollSaver.d.ts +3 -3
- package/dist/cjs/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/cjs/components/File/File.js +4 -3
- package/dist/cjs/components/File/File.js.map +1 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.js +1 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cjs/components/FocusVisible/FocusVisible.d.ts +4 -2
- package/dist/cjs/components/FocusVisible/FocusVisible.js +4 -3
- package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
- package/dist/cjs/components/FormField/FormField.js +10 -1
- package/dist/cjs/components/FormField/FormField.js.map +1 -1
- package/dist/cjs/components/FormItem/FormItem.d.ts +3 -1
- package/dist/cjs/components/FormItem/FormItem.js +2 -1
- package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cjs/components/Group/Group.d.ts +5 -3
- package/dist/cjs/components/Group/Group.js +2 -2
- package/dist/cjs/components/Group/Group.js.map +1 -1
- package/dist/cjs/components/Header/Header.js +20 -16
- package/dist/cjs/components/Header/Header.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +4 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js +6 -2
- package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- package/dist/cjs/components/HoverPopper/HoverPopper.d.ts +1 -1
- package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/cjs/components/IconButton/IconButton.d.ts +3 -3
- package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
- package/dist/cjs/components/LocaleProvider/LocaleProvider.d.ts +2 -2
- package/dist/cjs/components/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.d.ts +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.js +19 -3
- package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPageContext.d.ts +5 -0
- package/dist/cjs/components/{Typography/types.js → ModalPage/ModalPageContext.js} +8 -1
- package/dist/cjs/components/ModalPage/ModalPageContext.js.map +1 -0
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +6 -1
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.d.ts +2 -27
- package/dist/cjs/components/ModalRoot/ModalRoot.js +13 -22
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +145 -219
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cjs/components/ModalRoot/types.d.ts +28 -0
- package/dist/cjs/components/ModalRoot/types.js.map +1 -1
- package/dist/cjs/components/ModalRoot/useModalManager.d.ts +6 -5
- package/dist/cjs/components/ModalRoot/useModalManager.js +3 -3
- package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.d.ts +6 -2
- package/dist/cjs/components/NativeSelect/NativeSelect.js +6 -3
- package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cjs/components/Panel/Panel.js +2 -2
- package/dist/cjs/components/Panel/Panel.js.map +1 -1
- package/dist/cjs/components/PanelHeader/PanelHeader.d.ts +11 -2
- package/dist/cjs/components/PanelHeader/PanelHeader.js +17 -7
- package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
- package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cjs/components/PlatformProvider/PlatformProvider.d.ts +1 -1
- package/dist/cjs/components/PlatformProvider/PlatformProvider.js.map +1 -1
- package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cjs/components/Popover/Popover.d.ts +3 -2
- package/dist/cjs/components/Popover/Popover.js +5 -3
- package/dist/cjs/components/Popover/Popover.js.map +1 -1
- package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts +3 -4
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cjs/components/Radio/Radio.d.ts +2 -1
- package/dist/cjs/components/Radio/Radio.js +14 -8
- package/dist/cjs/components/Radio/Radio.js.map +1 -1
- package/dist/cjs/components/Removable/Removable.d.ts +7 -2
- package/dist/cjs/components/Removable/Removable.js +4 -3
- package/dist/cjs/components/Removable/Removable.js.map +1 -1
- package/dist/cjs/components/Root/Root.js.map +1 -1
- package/dist/cjs/components/Search/Search.d.ts +3 -1
- package/dist/cjs/components/Search/Search.js +42 -57
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +8 -4
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cjs/components/SelectTypography/SelectTypography.d.ts +2 -3
- package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.js +8 -5
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/Spacing/Spacing.d.ts +2 -2
- package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitCol.js +1 -0
- package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +1 -3
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cjs/components/Switch/Switch.d.ts +4 -5
- package/dist/cjs/components/Switch/Switch.js +12 -8
- package/dist/cjs/components/Switch/Switch.js.map +1 -1
- package/dist/cjs/components/Tabbar/Tabbar.js +2 -4
- package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cjs/components/Tappable/Tappable.d.ts +2 -3
- package/dist/cjs/components/Tappable/Tappable.js +1 -0
- package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
- package/dist/cjs/components/Typography/Caption/Caption.d.ts +2 -2
- package/dist/cjs/components/Typography/Caption/Caption.js +10 -13
- package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cjs/components/Typography/Footnote/Footnote.d.ts +2 -2
- package/dist/cjs/components/Typography/Footnote/Footnote.js +10 -13
- package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.d.ts +3 -4
- package/dist/cjs/components/Typography/Headline/Headline.js +9 -12
- package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cjs/components/Typography/Paragraph/Paragraph.d.ts +3 -5
- package/dist/cjs/components/Typography/Paragraph/Paragraph.js +8 -13
- package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +2 -2
- package/dist/cjs/components/Typography/Subhead/Subhead.js +9 -12
- package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cjs/components/Typography/Text/Text.d.ts +3 -5
- package/dist/cjs/components/Typography/Text/Text.js +8 -13
- package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.d.ts +2 -2
- package/dist/cjs/components/Typography/Title/Title.js +10 -13
- package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
- package/dist/cjs/components/Typography/Typography.d.ts +16 -0
- package/dist/cjs/components/Typography/Typography.js +35 -0
- package/dist/cjs/components/Typography/Typography.js.map +1 -0
- package/dist/cjs/components/UsersStack/UsersStack.d.ts +2 -2
- package/dist/cjs/components/UsersStack/UsersStack.js +2 -1
- package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cjs/components/View/View.js +1 -1
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/components/View/ViewInfinite.js +1 -1
- package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
- package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
- package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js +29 -0
- package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js +5 -0
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +2 -2
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cjs/helpers/getPlatformClassName.js +1 -1
- package/dist/cjs/helpers/getPlatformClassName.js.map +1 -1
- package/dist/cjs/hooks/useFocusWithin.d.ts +2 -0
- package/dist/cjs/hooks/useFocusWithin.js +38 -0
- package/dist/cjs/hooks/useFocusWithin.js.map +1 -0
- package/dist/cjs/hooks/useId.js +1 -1
- package/dist/cjs/hooks/useId.js.map +1 -1
- package/dist/cjs/hooks/useWaitTransitionFinish.d.ts +1 -1
- package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/cjs/index.d.ts +4 -2
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/utils.js +2 -2
- package/dist/cjs/lib/utils.js.map +1 -1
- package/dist/components/Accordion/Accordion.d.ts +2 -2
- package/dist/components/Accordion/Accordion.js +2 -2
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/Accordion/AccordionSummary.d.ts +1 -1
- package/dist/components/Accordion/AccordionSummary.js +1 -1
- package/dist/components/Accordion/AccordionSummary.js.map +1 -1
- package/dist/components/ActionSheet/types.d.ts +1 -1
- package/dist/components/ActionSheet/types.js.map +1 -1
- package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
- package/dist/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +5 -2
- package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
- package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.d.ts +3 -3
- package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/components/AppRoot/ScrollContext.d.ts +2 -2
- package/dist/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/components/Button/Button.d.ts +1 -0
- package/dist/components/Button/Button.js +2 -2
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Card/Card.js +1 -3
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/CardGrid/CardGrid.js +4 -4
- package/dist/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js +10 -6
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +2 -1
- package/dist/components/Checkbox/Checkbox.js +12 -8
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/components/ChipsSelect/ChipsSelect.js +3 -2
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/Counter/Counter.js +4 -6
- package/dist/components/Counter/Counter.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +3 -0
- package/dist/components/CustomSelect/CustomSelect.js +1 -1
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/components/Epic/ScrollSaver.d.ts +3 -3
- package/dist/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/components/File/File.js +4 -3
- package/dist/components/File/File.js.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.js +1 -1
- package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/components/FocusVisible/FocusVisible.d.ts +4 -2
- package/dist/components/FocusVisible/FocusVisible.js +4 -3
- package/dist/components/FocusVisible/FocusVisible.js.map +1 -1
- package/dist/components/FormField/FormField.js +10 -1
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/FormItem/FormItem.d.ts +3 -1
- package/dist/components/FormItem/FormItem.js +2 -1
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/Group/Group.d.ts +5 -3
- package/dist/components/Group/Group.js +5 -3
- package/dist/components/Group/Group.js.map +1 -1
- package/dist/components/Header/Header.js +20 -16
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js +4 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
- package/dist/components/HorizontalScroll/HorizontalScrollArrow.js +6 -2
- package/dist/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- package/dist/components/HoverPopper/HoverPopper.d.ts +1 -1
- package/dist/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/components/IconButton/IconButton.d.ts +3 -3
- package/dist/components/IconButton/IconButton.js.map +1 -1
- package/dist/components/LocaleProvider/LocaleProvider.d.ts +2 -2
- package/dist/components/LocaleProvider/LocaleProvider.js +2 -2
- package/dist/components/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts +1 -1
- package/dist/components/ModalPage/ModalPage.js +19 -3
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalPage/ModalPageContext.d.ts +5 -0
- package/dist/components/ModalPage/ModalPageContext.js +4 -0
- package/dist/components/ModalPage/ModalPageContext.js.map +1 -0
- package/dist/components/ModalPageHeader/ModalPageHeader.js +6 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts +2 -27
- package/dist/components/ModalRoot/ModalRoot.js +13 -22
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
- package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
- package/dist/components/ModalRoot/ModalRootDesktop.js +149 -223
- package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/components/ModalRoot/types.d.ts +28 -0
- package/dist/components/ModalRoot/types.js.map +1 -1
- package/dist/components/ModalRoot/useModalManager.d.ts +6 -5
- package/dist/components/ModalRoot/useModalManager.js +3 -3
- package/dist/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.d.ts +6 -2
- package/dist/components/NativeSelect/NativeSelect.js +6 -3
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/Panel/Panel.js +2 -2
- package/dist/components/Panel/Panel.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.d.ts +11 -2
- package/dist/components/PanelHeader/PanelHeader.js +17 -7
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
- package/dist/components/PanelHeaderContext/PanelHeaderContext.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.js.map +1 -1
- package/dist/components/Popover/Popover.d.ts +3 -2
- package/dist/components/Popover/Popover.js +5 -3
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/PromoBanner/PromoBanner.js +1 -0
- package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.d.ts +3 -4
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/Radio/Radio.d.ts +2 -1
- package/dist/components/Radio/Radio.js +14 -8
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/Removable/Removable.d.ts +7 -2
- package/dist/components/Removable/Removable.js +4 -3
- package/dist/components/Removable/Removable.js.map +1 -1
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/Search/Search.d.ts +3 -1
- package/dist/components/Search/Search.js +42 -57
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +8 -4
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SelectTypography/SelectTypography.d.ts +2 -3
- package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.js +8 -5
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/Spacing/Spacing.d.ts +2 -2
- package/dist/components/Spacing/Spacing.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.js +1 -0
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -3
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/Switch/Switch.d.ts +4 -5
- package/dist/components/Switch/Switch.js +12 -8
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Tabbar/Tabbar.js +2 -4
- package/dist/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.js +1 -1
- package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/components/Tappable/Tappable.d.ts +2 -3
- package/dist/components/Tappable/Tappable.js +1 -0
- package/dist/components/Tappable/Tappable.js.map +1 -1
- package/dist/components/Typography/Caption/Caption.d.ts +2 -2
- package/dist/components/Typography/Caption/Caption.js +10 -13
- package/dist/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/components/Typography/Footnote/Footnote.d.ts +2 -2
- package/dist/components/Typography/Footnote/Footnote.js +10 -13
- package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/components/Typography/Headline/Headline.d.ts +3 -4
- package/dist/components/Typography/Headline/Headline.js +9 -12
- package/dist/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/components/Typography/Paragraph/Paragraph.d.ts +3 -5
- package/dist/components/Typography/Paragraph/Paragraph.js +8 -13
- package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/components/Typography/Subhead/Subhead.d.ts +2 -2
- package/dist/components/Typography/Subhead/Subhead.js +9 -12
- package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/components/Typography/Text/Text.d.ts +3 -5
- package/dist/components/Typography/Text/Text.js +8 -13
- package/dist/components/Typography/Text/Text.js.map +1 -1
- package/dist/components/Typography/Title/Title.d.ts +2 -2
- package/dist/components/Typography/Title/Title.js +10 -13
- package/dist/components/Typography/Title/Title.js.map +1 -1
- package/dist/components/Typography/Typography.d.ts +16 -0
- package/dist/components/Typography/Typography.js +24 -0
- package/dist/components/Typography/Typography.js.map +1 -0
- package/dist/components/UsersStack/UsersStack.d.ts +2 -2
- package/dist/components/UsersStack/UsersStack.js +2 -1
- package/dist/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/components/View/View.js +1 -1
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.js +1 -1
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js +25 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js +9 -4
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.js +2 -2
- package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/components.css +138 -138
- package/dist/components.css.map +1 -1
- package/dist/components.js.tmp +3802 -3692
- package/dist/cssm/components/Accordion/Accordion.d.ts +2 -2
- package/dist/cssm/components/Accordion/Accordion.js +2 -2
- package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
- package/dist/cssm/components/Accordion/Accordion.module.css +13 -1
- package/dist/cssm/components/Accordion/AccordionSummary.d.ts +1 -1
- package/dist/cssm/components/Accordion/AccordionSummary.js +1 -1
- package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.module.css +115 -1
- package/dist/cssm/components/ActionSheet/types.d.ts +1 -1
- package/dist/cssm/components/ActionSheet/types.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +241 -1
- package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
- package/dist/cssm/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +5 -2
- package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.module.css +287 -1
- package/dist/cssm/components/AppRoot/AppRoot.module.css +23 -1
- package/dist/cssm/components/AppRoot/AppRootPortal.d.ts +3 -3
- package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cssm/components/AppRoot/ScrollContext.d.ts +2 -2
- package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.module.css +55 -1
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.module.css +29 -1
- package/dist/cssm/components/Badge/Badge.module.css +27 -1
- package/dist/cssm/components/Banner/Banner.module.css +167 -1
- package/dist/cssm/components/BaseGallery/BaseGallery.module.css +82 -1
- package/dist/cssm/components/Button/Button.d.ts +1 -0
- package/dist/cssm/components/Button/Button.js +2 -1
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/Button/Button.module.css +676 -1
- package/dist/cssm/components/ButtonGroup/ButtonGroup.module.css +77 -1
- package/dist/cssm/components/Calendar/Calendar.module.css +30 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.module.css +84 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.module.css +31 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.module.css +41 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.module.css +26 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.module.css +19 -1
- package/dist/cssm/components/Card/Card.js +1 -3
- package/dist/cssm/components/Card/Card.js.map +1 -1
- package/dist/cssm/components/Card/Card.module.css +131 -3
- package/dist/cssm/components/CardGrid/CardGrid.js +4 -4
- package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.module.css +59 -1
- package/dist/cssm/components/CardScroll/CardScroll.module.css +64 -1
- package/dist/cssm/components/Cell/Cell.module.css +63 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +7 -5
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.module.css +13 -1
- package/dist/cssm/components/Cell/CellDragger/CellDragger.module.css +4 -1
- package/dist/cssm/components/CellButton/CellButton.module.css +57 -1
- package/dist/cssm/components/Checkbox/Checkbox.d.ts +2 -1
- package/dist/cssm/components/Checkbox/Checkbox.js +10 -7
- package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.module.css +172 -1
- package/dist/cssm/components/Chip/Chip.module.css +67 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.module.css +3 -1
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +115 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -2
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.module.css +27 -1
- package/dist/cssm/components/ContentCard/ContentCard.module.css +31 -1
- package/dist/cssm/components/Counter/Counter.js +4 -6
- package/dist/cssm/components/Counter/Counter.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.module.css +72 -3
- package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +86 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +3 -0
- package/dist/cssm/components/CustomSelect/CustomSelect.js +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.module.css +58 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.module.css +43 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +81 -1
- package/dist/cssm/components/DateInput/DateInput.module.css +30 -1
- package/dist/cssm/components/DatePicker/DatePicker.module.css +30 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.module.css +26 -1
- package/dist/cssm/components/Div/Div.module.css +4 -1
- package/dist/cssm/components/Epic/Epic.module.css +4 -1
- package/dist/cssm/components/Epic/ScrollSaver.d.ts +3 -3
- package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/cssm/components/File/File.js +4 -3
- 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/FixedLayout/FixedLayout.module.css +58 -1
- package/dist/cssm/components/FocusVisible/FocusVisible.d.ts +4 -2
- package/dist/cssm/components/FocusVisible/FocusVisible.js +4 -3
- package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
- package/dist/cssm/components/FocusVisible/FocusVisible.module.css +104 -1
- package/dist/cssm/components/Footer/Footer.module.css +9 -1
- package/dist/cssm/components/FormField/FormField.js +10 -1
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.module.css +211 -1
- package/dist/cssm/components/FormItem/FormItem.d.ts +3 -1
- package/dist/cssm/components/FormItem/FormItem.js +2 -1
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.module.css +104 -1
- package/dist/cssm/components/FormLayout/FormLayout.module.css +18 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +61 -1
- package/dist/cssm/components/FormStatus/FormStatus.module.css +3 -1
- package/dist/cssm/components/Gradient/Gradient.module.css +23 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.module.css +37 -1
- package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +9 -1
- package/dist/cssm/components/Group/Group.d.ts +5 -3
- package/dist/cssm/components/Group/Group.js +5 -3
- package/dist/cssm/components/Group/Group.js.map +1 -1
- package/dist/cssm/components/Group/Group.module.css +166 -1
- package/dist/cssm/components/Header/Header.js +23 -18
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/Header/Header.module.css +207 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +79 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +3 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.module.css +59 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js +5 -2
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.module.css +67 -1
- package/dist/cssm/components/HoverPopper/HoverPopper.d.ts +1 -1
- package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/cssm/components/IconButton/IconButton.d.ts +3 -3
- package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
- package/dist/cssm/components/IconButton/IconButton.module.css +152 -1
- package/dist/cssm/components/Image/ImageBadge/ImageBadge.module.css +10 -1
- package/dist/cssm/components/ImageBase/ImageBase.module.css +131 -1
- package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +28 -1
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +36 -1
- package/dist/cssm/components/InfoRow/InfoRow.module.css +17 -1
- package/dist/cssm/components/Input/Input.module.css +101 -1
- package/dist/cssm/components/InputLike/InputLike.module.css +31 -1
- package/dist/cssm/components/Link/Link.module.css +43 -1
- package/dist/cssm/components/List/List.module.css +3 -1
- package/dist/cssm/components/LocaleProvider/LocaleProvider.d.ts +2 -2
- package/dist/cssm/components/LocaleProvider/LocaleProvider.js +2 -2
- package/dist/cssm/components/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +78 -1
- package/dist/cssm/components/ModalCard/ModalCard.module.css +62 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +102 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.module.css +38 -1
- package/dist/cssm/components/ModalPage/ModalPage.d.ts +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js +17 -3
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.module.css +151 -1
- package/dist/cssm/components/ModalPage/ModalPageContext.d.ts +5 -0
- package/dist/cssm/components/ModalPage/ModalPageContext.js +4 -0
- package/dist/cssm/components/ModalPage/ModalPageContext.js.map +1 -0
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +6 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +18 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.d.ts +2 -27
- package/dist/cssm/components/ModalRoot/ModalRoot.js +12 -18
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.module.css +65 -1
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +106 -125
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cssm/components/ModalRoot/types.d.ts +28 -0
- package/dist/cssm/components/ModalRoot/types.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalManager.d.ts +6 -5
- package/dist/cssm/components/ModalRoot/useModalManager.js +3 -3
- package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +6 -2
- package/dist/cssm/components/NativeSelect/NativeSelect.js +4 -3
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.module.css +83 -1
- package/dist/cssm/components/Panel/Panel.js +2 -2
- package/dist/cssm/components/Panel/Panel.js.map +1 -1
- package/dist/cssm/components/Panel/Panel.module.css +177 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.d.ts +11 -2
- package/dist/cssm/components/PanelHeader/PanelHeader.js +16 -7
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.module.css +321 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +111 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +96 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.module.css +169 -1
- package/dist/cssm/components/Placeholder/Placeholder.module.css +41 -1
- package/dist/cssm/components/PlatformProvider/PlatformProvider.d.ts +1 -1
- package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
- package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
- package/dist/cssm/components/PopoutRoot/PopoutRoot.module.css +32 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.module.css +96 -1
- package/dist/cssm/components/Popover/Popover.d.ts +3 -2
- package/dist/cssm/components/Popover/Popover.js +3 -2
- package/dist/cssm/components/Popover/Popover.js.map +1 -1
- package/dist/cssm/components/Popover/Popover.module.css +28 -1
- package/dist/cssm/components/Popper/Popper.module.css +16 -1
- package/dist/cssm/components/PopperArrow/PopperArrow.module.css +23 -1
- package/dist/cssm/components/Progress/Progress.module.css +12 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -0
- package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.module.css +39 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts +3 -4
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +101 -1
- package/dist/cssm/components/Radio/Radio.d.ts +2 -1
- package/dist/cssm/components/Radio/Radio.js +11 -7
- package/dist/cssm/components/Radio/Radio.js.map +1 -1
- package/dist/cssm/components/Radio/Radio.module.css +140 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.module.css +13 -1
- package/dist/cssm/components/Removable/Removable.d.ts +7 -2
- package/dist/cssm/components/Removable/Removable.js +2 -2
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.module.css +153 -1
- package/dist/cssm/components/RichCell/RichCell.module.css +144 -1
- package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.module.css +11 -1
- package/dist/cssm/components/RichTooltip/RichTooltip.module.css +57 -1
- package/dist/cssm/components/Root/Root.js +4 -4
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/Root/Root.module.css +136 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +66 -1
- package/dist/cssm/components/Search/Search.d.ts +3 -1
- package/dist/cssm/components/Search/Search.js +38 -54
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/Search/Search.module.css +156 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.module.css +64 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +7 -4
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +52 -1
- package/dist/cssm/components/Select/Select.module.css +87 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SelectTypography/SelectTypography.d.ts +2 -3
- package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cssm/components/SelectTypography/SelectTypography.module.css +30 -1
- package/dist/cssm/components/Separator/Separator.module.css +48 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js +8 -5
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.module.css +223 -1
- package/dist/cssm/components/Slider/Slider.module.css +134 -1
- package/dist/cssm/components/Snackbar/Snackbar.module.css +165 -1
- package/dist/cssm/components/Spacing/Spacing.d.ts +2 -2
- package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
- package/dist/cssm/components/Spacing/Spacing.module.css +4 -1
- package/dist/cssm/components/Spinner/Spinner.module.css +36 -1
- package/dist/cssm/components/SplitCol/SplitCol.js +1 -0
- package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.module.css +51 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.module.css +29 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.module.css +16 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -3
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.module.css +166 -1
- package/dist/cssm/components/Switch/Switch.d.ts +4 -5
- package/dist/cssm/components/Switch/Switch.js +11 -8
- package/dist/cssm/components/Switch/Switch.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.module.css +200 -1
- package/dist/cssm/components/Tabbar/Tabbar.js +2 -4
- package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cssm/components/Tabbar/Tabbar.module.css +34 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.module.css +118 -1
- package/dist/cssm/components/Tabs/Tabs.module.css +62 -1
- package/dist/cssm/components/TabsItem/TabsItem.module.css +229 -1
- package/dist/cssm/components/Tappable/Tappable.d.ts +2 -3
- package/dist/cssm/components/Tappable/Tappable.js +1 -0
- package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.module.css +142 -1
- package/dist/cssm/components/TextTooltip/TextTooltip.module.css +58 -1
- package/dist/cssm/components/Textarea/Textarea.module.css +87 -1
- package/dist/cssm/components/Tooltip/Tooltip.module.css +57 -1
- package/dist/cssm/components/Typography/Caption/Caption.d.ts +2 -2
- package/dist/cssm/components/Typography/Caption/Caption.js +9 -10
- package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.module.css +45 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.d.ts +2 -2
- package/dist/cssm/components/Typography/Footnote/Footnote.js +7 -10
- package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.module.css +14 -1
- package/dist/cssm/components/Typography/Headline/Headline.d.ts +3 -4
- package/dist/cssm/components/Typography/Headline/Headline.js +9 -10
- package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.module.css +48 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.d.ts +3 -5
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js +8 -10
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +6 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.d.ts +2 -2
- package/dist/cssm/components/Typography/Subhead/Subhead.js +8 -9
- package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.module.css +18 -1
- package/dist/cssm/components/Typography/Text/Text.d.ts +3 -5
- package/dist/cssm/components/Typography/Text/Text.js +8 -10
- package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
- package/dist/cssm/components/Typography/Text/Text.module.css +29 -1
- package/dist/cssm/components/Typography/Title/Title.d.ts +2 -2
- package/dist/cssm/components/Typography/Title/Title.js +9 -10
- package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.module.css +20 -1
- package/dist/cssm/components/Typography/Typography.d.ts +16 -0
- package/dist/cssm/components/Typography/Typography.js +14 -0
- package/dist/cssm/components/Typography/Typography.js.map +1 -0
- package/dist/cssm/components/Typography/Typography.module.css +18 -0
- package/dist/cssm/components/UsersStack/UsersStack.d.ts +2 -2
- package/dist/cssm/components/UsersStack/UsersStack.js +2 -1
- package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.module.css +77 -1
- package/dist/cssm/components/View/View.js +6 -7
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/View.module.css +228 -1
- package/dist/cssm/components/View/ViewInfinite.js +6 -7
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +19 -0
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +10 -0
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +9 -4
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.module.css +10 -1
- package/dist/cssm/components/WriteBar/WriteBar.module.css +119 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +2 -2
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.module.css +66 -1
- package/dist/cssm/helpers/getPlatformClassName.js +1 -1
- package/dist/cssm/helpers/getPlatformClassName.js.map +1 -1
- package/dist/cssm/hooks/useFocusWithin.d.ts +2 -0
- package/dist/cssm/hooks/useFocusWithin.js +26 -0
- package/dist/cssm/hooks/useFocusWithin.js.map +1 -0
- package/dist/cssm/hooks/useId.js +1 -1
- package/dist/cssm/hooks/useId.js.map +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.d.ts +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/cssm/index.d.ts +4 -2
- package/dist/cssm/index.js +2 -1
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/utils.js +2 -2
- package/dist/cssm/lib/utils.js.map +1 -1
- package/dist/cssm/styles/adaptivity.module.css +87 -1
- package/dist/cssm/styles/common.css +36 -1
- package/dist/cssm/styles/constants.css +86 -1
- package/dist/cssm/styles/themes.css +1039 -1
- package/dist/helpers/getPlatformClassName.js +1 -1
- package/dist/helpers/getPlatformClassName.js.map +1 -1
- package/dist/hooks/useFocusWithin.d.ts +2 -0
- package/dist/hooks/useFocusWithin.js +27 -0
- package/dist/hooks/useFocusWithin.js.map +1 -0
- package/dist/hooks/useId.js +1 -1
- package/dist/hooks/useId.js.map +1 -1
- package/dist/hooks/useWaitTransitionFinish.d.ts +1 -1
- package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/utils.js +2 -2
- package/dist/lib/utils.js.map +1 -1
- package/dist/vkui.css +139 -139
- package/dist/vkui.css.map +1 -1
- package/dist/vkui.js.tmp +3802 -3692
- package/package.json +24 -17
- package/dist/cjs/components/Typography/types.d.ts +0 -11
- package/dist/cjs/components/Typography/types.js.map +0 -1
- package/dist/cjs/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
- package/dist/cjs/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
- package/dist/components/Typography/types.d.ts +0 -11
- package/dist/components/Typography/types.js +0 -3
- package/dist/components/Typography/types.js.map +0 -1
- package/dist/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
- package/dist/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
- package/dist/cssm/components/Typography/types.d.ts +0 -11
- package/dist/cssm/components/Typography/types.js +0 -3
- package/dist/cssm/components/Typography/types.js.map +0 -1
- package/dist/cssm/components/View/ViewIOS.module.css +0 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
- package/dist/cssm/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
- package/dist/cssm/styles/animations.css +0 -1
|
@@ -1 +1,151 @@
|
|
|
1
|
-
.
|
|
1
|
+
.ModalPage {
|
|
2
|
+
width: 100%;
|
|
3
|
+
height: 100%;
|
|
4
|
+
overflow: hidden;
|
|
5
|
+
position: absolute;
|
|
6
|
+
box-sizing: border-box;
|
|
7
|
+
pointer-events: none;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.ModalPage--desktop {
|
|
11
|
+
display: flex;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
align-items: center;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.ModalPage__in-wrap {
|
|
17
|
+
width: 100%;
|
|
18
|
+
height: 100%;
|
|
19
|
+
position: absolute;
|
|
20
|
+
right: 0;
|
|
21
|
+
bottom: 0;
|
|
22
|
+
left: 0;
|
|
23
|
+
margin-right: auto;
|
|
24
|
+
margin-left: auto;
|
|
25
|
+
display: flex;
|
|
26
|
+
align-items: flex-end;
|
|
27
|
+
pointer-events: initial;
|
|
28
|
+
transform: translateY(100%);
|
|
29
|
+
transition: transform 320ms var(--vkui--animation_easing_platform);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.ModalPage--ios .ModalPage__in-wrap {
|
|
33
|
+
transition: transform 400ms var(--vkui--animation_easing_platform);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.ModalPage--desktop .ModalPage__in-wrap {
|
|
37
|
+
position: relative;
|
|
38
|
+
align-items: initial;
|
|
39
|
+
margin: 32px 56px;
|
|
40
|
+
height: auto;
|
|
41
|
+
max-height: 640px;
|
|
42
|
+
opacity: 0;
|
|
43
|
+
transform: none;
|
|
44
|
+
transition: opacity 340ms var(--vkui--animation_easing_platform);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@media (max-height: 672px) {
|
|
48
|
+
.ModalPage--desktop .ModalPage__in-wrap {
|
|
49
|
+
max-height: calc(100% - 32px * 2);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.ModalPage--size-s .ModalPage__in-wrap {
|
|
54
|
+
max-width: var(--vkui--size_popup_small--regular);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.ModalPage--size-m .ModalPage__in-wrap {
|
|
58
|
+
max-width: var(--vkui--size_popup_medium--regular);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.ModalPage--size-l .ModalPage__in-wrap {
|
|
62
|
+
max-width: var(--vkui--size_popup_large--regular);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.ModalPage__in {
|
|
66
|
+
background-color: var(--vkui--color_background_modal);
|
|
67
|
+
overflow: visible;
|
|
68
|
+
position: relative;
|
|
69
|
+
box-sizing: border-box;
|
|
70
|
+
width: 100%;
|
|
71
|
+
height: 100%;
|
|
72
|
+
display: flex;
|
|
73
|
+
flex-direction: column;
|
|
74
|
+
border-top-right-radius: var(--vkui--size_border_radius_paper--regular);
|
|
75
|
+
border-top-left-radius: var(--vkui--size_border_radius_paper--regular);
|
|
76
|
+
|
|
77
|
+
--vkui_internal--background: var(--vkui--color_background_modal);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.ModalPage--desktop .ModalPage__in {
|
|
81
|
+
height: auto;
|
|
82
|
+
box-shadow: var(--vkui--elevation3);
|
|
83
|
+
border-bottom-right-radius: var(--vkui--size_border_radius_paper--regular);
|
|
84
|
+
border-bottom-left-radius: var(--vkui--size_border_radius_paper--regular);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.ModalPage__header {
|
|
88
|
+
width: 100%;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.ModalPage__content-wrap {
|
|
92
|
+
position: relative;
|
|
93
|
+
display: flex;
|
|
94
|
+
flex-direction: column;
|
|
95
|
+
overflow: hidden;
|
|
96
|
+
border-bottom-left-radius: inherit;
|
|
97
|
+
border-bottom-right-radius: inherit;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.ModalPage__header:empty + .ModalPage__content-wrap {
|
|
101
|
+
border-radius: inherit;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.ModalPage__content {
|
|
105
|
+
height: 100%;
|
|
106
|
+
overflow-y: hidden;
|
|
107
|
+
overflow-x: hidden;
|
|
108
|
+
box-sizing: border-box;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.ModalPage--desktop .ModalPage__content,
|
|
112
|
+
:global(.vkuiInternalModalRoot__modal--expandable) .ModalPage__content {
|
|
113
|
+
overflow-y: auto;
|
|
114
|
+
-webkit-overflow-scrolling: touch;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.ModalPage--desktop .ModalPage__content-in,
|
|
118
|
+
:global(.vkuiInternalModalRoot__modal--expandable) .ModalPage__content-in {
|
|
119
|
+
height: 100%;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.ModalPage__content-in {
|
|
123
|
+
position: relative;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.ModalPage__content-in::after {
|
|
127
|
+
content: '';
|
|
128
|
+
height: var(--vkui_internal--safe_area_inset_bottom);
|
|
129
|
+
display: block;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* CMP:
|
|
134
|
+
* ModalRoot
|
|
135
|
+
*
|
|
136
|
+
* [дополнительно] также ищи в файле `ModalRoot__modal--expandable`
|
|
137
|
+
*/
|
|
138
|
+
|
|
139
|
+
:global(.vkuiInternalModalRoot--touched) .ModalPage__in-wrap {
|
|
140
|
+
transition: none;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
:global(.vkuiInternalModalRoot--switching) .ModalPage__in-wrap {
|
|
144
|
+
pointer-events: none;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
:global(.vkuiInternalModalRoot__modal--collapsed) .ModalPage__content,
|
|
148
|
+
:global(.vkuiInternalModalRoot__modal--dragging) .ModalPage__content {
|
|
149
|
+
overflow: hidden;
|
|
150
|
+
touch-action: pan-y;
|
|
151
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ModalPage/ModalPageContext.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport interface ModalPageContextInterface {\n labelId?: string;\n}\n\nexport const ModalPageContext = React.createContext<ModalPageContextInterface>({});\n"],"names":["React","ModalPageContext","createContext"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAM/B,OAAO,MAAMC,iCAAmBD,MAAME,aAAa,CAA4B,CAAC,GAAG"}
|
|
@@ -3,6 +3,7 @@ import { classNames } from '@vkontakte/vkjs';
|
|
|
3
3
|
import { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';
|
|
4
4
|
import { usePlatform } from '../../hooks/usePlatform';
|
|
5
5
|
import { Platform } from '../../lib/platform';
|
|
6
|
+
import { ModalPageContext } from '../ModalPage/ModalPageContext';
|
|
6
7
|
import { PanelHeader } from '../PanelHeader/PanelHeader';
|
|
7
8
|
import { Separator } from '../Separator/Separator';
|
|
8
9
|
import styles from './ModalPageHeader.module.css';
|
|
@@ -12,6 +13,7 @@ import styles from './ModalPageHeader.module.css';
|
|
|
12
13
|
const platform = usePlatform();
|
|
13
14
|
const hasSeparator = separator && platform === Platform.VKCOM;
|
|
14
15
|
const { isDesktop } = useAdaptivityWithJSMediaQueries();
|
|
16
|
+
const { labelId } = React.useContext(ModalPageContext);
|
|
15
17
|
return /*#__PURE__*/ React.createElement("div", {
|
|
16
18
|
className: classNames(styles['ModalPageHeader'], platform !== Platform.VKCOM && styles['ModalPageHeader--withGaps'], isDesktop && styles['ModalPageHeader--desktop']),
|
|
17
19
|
ref: getRef
|
|
@@ -21,7 +23,10 @@ import styles from './ModalPageHeader.module.css';
|
|
|
21
23
|
fixed: false,
|
|
22
24
|
separator: false,
|
|
23
25
|
transparent: true
|
|
24
|
-
},
|
|
26
|
+
}, /*#__PURE__*/ React.createElement(PanelHeader.Content, {
|
|
27
|
+
Component: "h2",
|
|
28
|
+
id: labelId
|
|
29
|
+
}, children)), hasSeparator && /*#__PURE__*/ React.createElement(Separator, {
|
|
25
30
|
wide: true
|
|
26
31
|
}));
|
|
27
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ModalPageHeader/ModalPageHeader.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasRef } from '../../types';\nimport { PanelHeader, PanelHeaderProps } from '../PanelHeader/PanelHeader';\nimport { Separator } from '../Separator/Separator';\nimport styles from './ModalPageHeader.module.css';\n\nexport interface ModalPageHeaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<PanelHeaderProps, 'fixed' | 'shadow'>,\n HasRef<HTMLDivElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalPageHeader\n */\nexport const ModalPageHeader = ({\n children,\n separator = true,\n getRef,\n className,\n ...restProps\n}: ModalPageHeaderProps) => {\n const platform = usePlatform();\n const hasSeparator = separator && platform === Platform.VKCOM;\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n return (\n <div\n className={classNames(\n styles['ModalPageHeader'],\n platform !== Platform.VKCOM && styles['ModalPageHeader--withGaps'],\n isDesktop && styles['ModalPageHeader--desktop'],\n )}\n ref={getRef}\n >\n <PanelHeader\n className={classNames('vkuiInternalModalPageHeader__in', className)}\n {...restProps}\n fixed={false}\n separator={false}\n transparent\n >\n {children}\n </PanelHeader>\n {hasSeparator && <Separator wide />}\n </div>\n );\n};\n"],"names":["React","classNames","useAdaptivityWithJSMediaQueries","usePlatform","Platform","PanelHeader","Separator","styles","ModalPageHeader","children","separator","getRef","className","restProps","platform","hasSeparator","VKCOM","isDesktop","div","ref","fixed","transparent","wide"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,+BAA+B,QAAQ,8CAA8C;AAC9F,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,WAAW,QAA0B,6BAA6B;AAC3E,SAASC,SAAS,QAAQ,yBAAyB;AACnD,OAAOC,YAAY,+BAA+B;AAOlD;;CAEC,GACD,OAAO,MAAMC,kBAAkB,CAAC,EAC9BC,SAAQ,EACRC,WAAY,IAAI,CAAA,EAChBC,OAAM,EACNC,UAAS,EACT,GAAGC,WACkB,GAAK;IAC1B,MAAMC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ModalPageHeader/ModalPageHeader.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasRef } from '../../types';\nimport { ModalPageContext } from '../ModalPage/ModalPageContext';\nimport { PanelHeader, PanelHeaderProps } from '../PanelHeader/PanelHeader';\nimport { Separator } from '../Separator/Separator';\nimport styles from './ModalPageHeader.module.css';\n\nexport interface ModalPageHeaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<PanelHeaderProps, 'fixed' | 'shadow'>,\n HasRef<HTMLDivElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalPageHeader\n */\nexport const ModalPageHeader = ({\n children,\n separator = true,\n getRef,\n className,\n ...restProps\n}: ModalPageHeaderProps) => {\n const platform = usePlatform();\n const hasSeparator = separator && platform === Platform.VKCOM;\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n const { labelId } = React.useContext(ModalPageContext);\n\n return (\n <div\n className={classNames(\n styles['ModalPageHeader'],\n platform !== Platform.VKCOM && styles['ModalPageHeader--withGaps'],\n isDesktop && styles['ModalPageHeader--desktop'],\n )}\n ref={getRef}\n >\n <PanelHeader\n className={classNames('vkuiInternalModalPageHeader__in', className)}\n {...restProps}\n fixed={false}\n separator={false}\n transparent\n >\n <PanelHeader.Content Component=\"h2\" id={labelId}>\n {children}\n </PanelHeader.Content>\n </PanelHeader>\n {hasSeparator && <Separator wide />}\n </div>\n );\n};\n"],"names":["React","classNames","useAdaptivityWithJSMediaQueries","usePlatform","Platform","ModalPageContext","PanelHeader","Separator","styles","ModalPageHeader","children","separator","getRef","className","restProps","platform","hasSeparator","VKCOM","isDesktop","labelId","useContext","div","ref","fixed","transparent","Content","Component","id","wide"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,+BAA+B,QAAQ,8CAA8C;AAC9F,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,gBAAgB,QAAQ,gCAAgC;AACjE,SAASC,WAAW,QAA0B,6BAA6B;AAC3E,SAASC,SAAS,QAAQ,yBAAyB;AACnD,OAAOC,YAAY,+BAA+B;AAOlD;;CAEC,GACD,OAAO,MAAMC,kBAAkB,CAAC,EAC9BC,SAAQ,EACRC,WAAY,IAAI,CAAA,EAChBC,OAAM,EACNC,UAAS,EACT,GAAGC,WACkB,GAAK;IAC1B,MAAMC,WAAWZ;IACjB,MAAMa,eAAeL,aAAaI,aAAaX,SAASa,KAAK;IAC7D,MAAM,EAAEC,UAAS,EAAE,GAAGhB;IACtB,MAAM,EAAEiB,QAAO,EAAE,GAAGnB,MAAMoB,UAAU,CAACf;IAErC,qBACE,oBAACgB;QACCR,WAAWZ,WACTO,MAAM,CAAC,kBAAkB,EACzBO,aAAaX,SAASa,KAAK,IAAIT,MAAM,CAAC,4BAA4B,EAClEU,aAAaV,MAAM,CAAC,2BAA2B;QAEjDc,KAAKV;qBAEL,oBAACN;QACCO,WAAWZ,WAAW,mCAAmCY;QACxD,GAAGC,SAAS;QACbS,OAAO,KAAK;QACZZ,WAAW,KAAK;QAChBa,aAAAA,IAAW;qBAEX,oBAAClB,YAAYmB,OAAO;QAACC,WAAU;QAAKC,IAAIR;OACrCT,YAGJM,8BAAgB,oBAACT;QAAUqB,MAAAA,IAAI;;AAGtC,EAAE"}
|
|
@@ -1 +1,18 @@
|
|
|
1
|
-
.
|
|
1
|
+
.ModalPageHeader {
|
|
2
|
+
--vkui_internal--safe_area_inset_top: 0;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.ModalPageHeader--withGaps {
|
|
6
|
+
padding-right: 4px;
|
|
7
|
+
padding-left: 4px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.ModalPageHeader--desktop.ModalPageHeader--withGaps {
|
|
11
|
+
padding-right: 8px;
|
|
12
|
+
padding-left: 8px;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.ModalPageHeader :global(.vkuiIcon--dismiss_24), /* Note: <Icon24Dismiss /> по документации используется только для iOS */
|
|
16
|
+
.ModalPageHeader :global(.vkuiIcon--cancel_24) {
|
|
17
|
+
color: var(--vkui--color_icon_secondary);
|
|
18
|
+
}
|
|
@@ -1,28 +1,3 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export interface ModalRootProps extends HasPlatform {
|
|
5
|
-
activeModal?: string | null;
|
|
6
|
-
/**
|
|
7
|
-
* Будет вызвано при начале открытия активной модалки с её id
|
|
8
|
-
*/
|
|
9
|
-
onOpen?(modalId: string): void;
|
|
10
|
-
/**
|
|
11
|
-
* Будет вызвано при окончательном открытии активной модалки с её id
|
|
12
|
-
*/
|
|
13
|
-
onOpened?(modalId: string): void;
|
|
14
|
-
/**
|
|
15
|
-
* Будет вызвано при начале закрытия активной модалки с её id
|
|
16
|
-
*/
|
|
17
|
-
onClose?(modalId: string): void;
|
|
18
|
-
/**
|
|
19
|
-
* Будет вызвано при окончательном закрытии активной модалки с её id
|
|
20
|
-
*/
|
|
21
|
-
onClosed?(modalId: string): void;
|
|
22
|
-
/**
|
|
23
|
-
* @ignore
|
|
24
|
-
*/
|
|
25
|
-
configProvider?: ConfigProviderContextInterface;
|
|
26
|
-
children?: React.ReactNode;
|
|
27
|
-
}
|
|
28
|
-
export declare const ModalRootTouch: React.FC<Omit<ModalRootProps, "platform">>;
|
|
2
|
+
import { ModalRootWithDOMProps } from './types';
|
|
3
|
+
export declare const ModalRootTouch: React.FC<Omit<ModalRootWithDOMProps, "platform">>;
|
|
@@ -39,7 +39,7 @@ class ModalRootTouchComponent extends React.Component {
|
|
|
39
39
|
this.maskElementRef = /*#__PURE__*/ React.createRef();
|
|
40
40
|
this.modalRootContext = {
|
|
41
41
|
updateModalHeight: this.updateModalHeight,
|
|
42
|
-
registerModal: ({ id , ...data })=>Object.assign(this.getModalState(id) ?? {}, data),
|
|
42
|
+
registerModal: ({ id , ...data })=>Object.assign(this.props.getModalState(id) ?? {}, data),
|
|
43
43
|
onClose: ()=>this.props.onExit(),
|
|
44
44
|
isInsideModal: true
|
|
45
45
|
};
|
|
@@ -61,12 +61,6 @@ class ModalRootTouchComponent extends React.Component {
|
|
|
61
61
|
get window() {
|
|
62
62
|
return this.props.window;
|
|
63
63
|
}
|
|
64
|
-
getModalState(id) {
|
|
65
|
-
if (!id) {
|
|
66
|
-
return undefined;
|
|
67
|
-
}
|
|
68
|
-
return this.props.getModalState(id);
|
|
69
|
-
}
|
|
70
64
|
getModals() {
|
|
71
65
|
return React.Children.toArray(this.props.children);
|
|
72
66
|
}
|
|
@@ -88,7 +82,7 @@ class ModalRootTouchComponent extends React.Component {
|
|
|
88
82
|
// transition phase 3: animate entering modal
|
|
89
83
|
if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {
|
|
90
84
|
const { enteringModal } = this.props;
|
|
91
|
-
const enteringState = this.getModalState(enteringModal);
|
|
85
|
+
const enteringState = this.props.getModalState(enteringModal);
|
|
92
86
|
this.props.onEnter();
|
|
93
87
|
this.waitTransitionFinish(enteringState, ()=>{
|
|
94
88
|
if (enteringState?.innerElement) {
|
|
@@ -143,11 +137,11 @@ class ModalRootTouchComponent extends React.Component {
|
|
|
143
137
|
return false;
|
|
144
138
|
};
|
|
145
139
|
updateModalTranslate = ()=>{
|
|
146
|
-
const modalState = this.getModalState(this.props.activeModal);
|
|
140
|
+
const modalState = this.props.getModalState(this.props.activeModal);
|
|
147
141
|
modalState && this.animateTranslate(modalState, modalState.translateY);
|
|
148
142
|
};
|
|
149
143
|
checkPageContentHeight() {
|
|
150
|
-
const modalState = this.getModalState(this.props.activeModal);
|
|
144
|
+
const modalState = this.props.getModalState(this.props.activeModal);
|
|
151
145
|
if (modalState?.type === ModalType.PAGE && modalState?.modalElement) {
|
|
152
146
|
const prevModalState = {
|
|
153
147
|
...modalState
|
|
@@ -170,7 +164,7 @@ class ModalRootTouchComponent extends React.Component {
|
|
|
170
164
|
}
|
|
171
165
|
}
|
|
172
166
|
updateModalHeight = ()=>{
|
|
173
|
-
const modalState = this.getModalState(this.props.activeModal);
|
|
167
|
+
const modalState = this.props.getModalState(this.props.activeModal);
|
|
174
168
|
if (modalState && modalState.type === ModalType.PAGE && modalState.dynamicContentHeight) {
|
|
175
169
|
if (this.props.enteringModal) {
|
|
176
170
|
this.waitTransitionFinish(modalState, ()=>{
|
|
@@ -186,12 +180,12 @@ class ModalRootTouchComponent extends React.Component {
|
|
|
186
180
|
this.setState({
|
|
187
181
|
touchDown: false
|
|
188
182
|
});
|
|
189
|
-
const prevModalState = this.getModalState(id);
|
|
183
|
+
const prevModalState = this.props.getModalState(id);
|
|
190
184
|
if (!prevModalState) {
|
|
191
185
|
id && warn(`closeActiveModal: модальное окно (страница) ${id} не существует`, 'error');
|
|
192
186
|
return;
|
|
193
187
|
}
|
|
194
|
-
const nextModalState = this.getModalState(this.props.activeModal);
|
|
188
|
+
const nextModalState = this.props.getModalState(this.props.activeModal);
|
|
195
189
|
const nextIsPage = !!nextModalState && nextModalState.type === ModalType.PAGE;
|
|
196
190
|
const prevIsPage = !!prevModalState && prevModalState.type === ModalType.PAGE;
|
|
197
191
|
this.waitTransitionFinish(prevModalState, ()=>this.props.onExited(id));
|
|
@@ -206,7 +200,7 @@ class ModalRootTouchComponent extends React.Component {
|
|
|
206
200
|
if (this.props.exitingModal) {
|
|
207
201
|
return;
|
|
208
202
|
}
|
|
209
|
-
const modalState = this.getModalState(this.props.activeModal);
|
|
203
|
+
const modalState = this.props.getModalState(this.props.activeModal);
|
|
210
204
|
if (!modalState) {
|
|
211
205
|
return;
|
|
212
206
|
}
|
|
@@ -278,7 +272,7 @@ class ModalRootTouchComponent extends React.Component {
|
|
|
278
272
|
}
|
|
279
273
|
}
|
|
280
274
|
onTouchEnd = (e)=>{
|
|
281
|
-
const modalState = this.getModalState(this.props.activeModal);
|
|
275
|
+
const modalState = this.props.getModalState(this.props.activeModal);
|
|
282
276
|
if (modalState?.type === ModalType.PAGE) {
|
|
283
277
|
return this.onPageTouchEnd(e, modalState);
|
|
284
278
|
}
|
|
@@ -373,7 +367,7 @@ class ModalRootTouchComponent extends React.Component {
|
|
|
373
367
|
if (!activeModal) {
|
|
374
368
|
return;
|
|
375
369
|
}
|
|
376
|
-
const modalState = this.getModalState(activeModal);
|
|
370
|
+
const modalState = this.props.getModalState(activeModal);
|
|
377
371
|
if (modalState?.type === ModalType.PAGE && modalState?.contentElement?.contains(target)) {
|
|
378
372
|
modalState.contentScrolled = true;
|
|
379
373
|
if (modalState.contentScrollStopTimeout) {
|
|
@@ -448,7 +442,7 @@ class ModalRootTouchComponent extends React.Component {
|
|
|
448
442
|
ref: this.viewportRef
|
|
449
443
|
}, this.getModals().map((Modal)=>{
|
|
450
444
|
const modalId = getNavId(Modal.props, warn);
|
|
451
|
-
const _modalState = this.getModalState(modalId);
|
|
445
|
+
const _modalState = this.props.getModalState(modalId);
|
|
452
446
|
if (modalId !== activeModal && modalId !== exitingModal || !_modalState) {
|
|
453
447
|
return null;
|
|
454
448
|
}
|
|
@@ -460,7 +454,7 @@ class ModalRootTouchComponent extends React.Component {
|
|
|
460
454
|
return /*#__PURE__*/ React.createElement(FocusTrap, {
|
|
461
455
|
key: key,
|
|
462
456
|
getRootRef: (e)=>{
|
|
463
|
-
const modalState = this.getModalState(modalId);
|
|
457
|
+
const modalState = this.props.getModalState(modalId);
|
|
464
458
|
if (modalState) {
|
|
465
459
|
modalState.modalElement = e;
|
|
466
460
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ModalRoot/ModalRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { setTransformStyle } from '../../lib/styles';\nimport { transitionEvent } from '../../lib/supportEvents';\nimport { rubber } from '../../lib/touch';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasPlatform } from '../../types';\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n WebviewType,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport TouchRootContext from '../Touch/TouchContext';\nimport { ModalRootContext, ModalRootContextInterface } from './ModalRootContext';\nimport { MODAL_PAGE_DEFAULT_PERCENT_HEIGHT } from './constants';\nimport { ModalsStateEntry, ModalType, TranslateRange } from './types';\nimport { ModalTransitionProps, withModalManager } from './useModalManager';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nfunction numberInRange(number: number, range: TranslateRange | undefined) {\n if (!range) {\n return false;\n }\n return number >= range[0] && number <= range[1];\n}\n\nfunction rangeTranslate(number: number) {\n return clamp(number, 0, 98);\n}\n\nexport interface ModalRootProps extends HasPlatform {\n activeModal?: string | null;\n\n /**\n * Будет вызвано при начале открытия активной модалки с её id\n */\n onOpen?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном открытии активной модалки с её id\n */\n onOpened?(modalId: string): void;\n\n /**\n * Будет вызвано при начале закрытия активной модалки с её id\n */\n onClose?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном закрытии активной модалки с её id\n */\n onClosed?(modalId: string): void;\n\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n children?: React.ReactNode;\n}\n\ninterface ModalRootState {\n touchDown?: boolean;\n dragging?: boolean;\n}\n\nclass ModalRootTouchComponent extends React.Component<\n ModalRootProps & DOMProps & ModalTransitionProps,\n ModalRootState\n> {\n constructor(props: ModalRootProps & ModalTransitionProps) {\n super(props);\n this.state = {\n touchDown: false,\n dragging: false,\n };\n\n this.maskElementRef = React.createRef();\n\n this.modalRootContext = {\n updateModalHeight: this.updateModalHeight,\n registerModal: ({ id, ...data }) => Object.assign(this.getModalState(id) ?? {}, data),\n onClose: () => this.props.onExit(),\n isInsideModal: true,\n };\n\n this.frameIds = {};\n }\n\n private documentScrolling = false;\n private readonly maskElementRef: React.RefObject<HTMLDivElement>;\n private readonly viewportRef = React.createRef<HTMLDivElement>();\n private maskAnimationFrame: number | undefined = undefined;\n private readonly modalRootContext: ModalRootContextInterface;\n private readonly frameIds: {\n [index: string]: number;\n };\n private restoreFocusTo: HTMLElement | undefined | null = undefined;\n\n get timeout(): number {\n return this.props.platform === Platform.IOS ? 400 : 320;\n }\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n getModalState(id: string | undefined | null) {\n if (!id) {\n return undefined;\n }\n return this.props.getModalState(id);\n }\n\n getModals() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n componentDidMount() {\n // Отслеживаем изменение размеров viewport (Необходимо для iOS)\n if (this.props.platform === Platform.IOS) {\n this.window?.addEventListener('resize', this.updateModalTranslate, false);\n }\n }\n\n componentWillUnmount() {\n this.toggleDocumentScrolling(true);\n this.window!.removeEventListener('resize', this.updateModalTranslate, false);\n }\n\n componentDidUpdate(prevProps: ModalRootProps & ModalTransitionProps) {\n // transition phase 2: animate exiting modal\n if (this.props.exitingModal && this.props.exitingModal !== prevProps.exitingModal) {\n this.closeModal(this.props.exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {\n const { enteringModal } = this.props;\n const enteringState = this.getModalState(enteringModal);\n this.props.onEnter();\n this.waitTransitionFinish(enteringState, () => {\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = '';\n }\n this.props.onEntered(enteringModal);\n });\n\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = this.props.delayEnter\n ? `${this.timeout}ms`\n : '';\n this.animateTranslate(enteringState, enteringState.translateY);\n }\n }\n\n // focus restoration\n if (this.props.activeModal && !prevProps.activeModal) {\n this.restoreFocusTo = this.document!.activeElement as HTMLElement;\n }\n if (!this.props.activeModal && !this.props.exitingModal && this.restoreFocusTo) {\n this.restoreFocusTo.focus();\n this.restoreFocusTo = null;\n }\n\n this.toggleDocumentScrolling(!this.props.activeModal && !this.props.exitingModal);\n }\n\n /* Отключает скролл документа */\n toggleDocumentScrolling(enabled: boolean) {\n if (this.documentScrolling === enabled) {\n return;\n }\n this.documentScrolling = enabled;\n\n if (enabled) {\n // Здесь нужен последний аргумент с такими же параметрами, потому что\n // некоторые браузеры на странных вендорах типа Meizu не удаляют обработчик.\n // https://github.com/VKCOM/VKUI/issues/444\n this.window!.removeEventListener('touchmove', this.preventTouch, {\n // @ts-expect-error: TS2769 В интерфейсе EventListenerOptions нет поля passive\n passive: false,\n });\n } else {\n this.window!.addEventListener('touchmove', this.preventTouch, {\n passive: false,\n });\n }\n }\n\n preventTouch = (event: any) => {\n if (!event) {\n return false;\n }\n while (event.originalEvent) {\n event = event.originalEvent;\n }\n if (event.preventDefault) {\n event.preventDefault();\n }\n return false;\n };\n\n updateModalTranslate = () => {\n const modalState = this.getModalState(this.props.activeModal);\n modalState && this.animateTranslate(modalState, modalState.translateY);\n };\n\n checkPageContentHeight() {\n const modalState = this.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE && modalState?.modalElement) {\n const prevModalState = { ...modalState };\n initPageModal(modalState);\n const currentModalState = { ...modalState };\n\n let needAnimate = false;\n\n if (prevModalState.expandable === currentModalState.expandable) {\n if (prevModalState.translateYFrom !== currentModalState.translateYFrom) {\n needAnimate = true;\n }\n } else {\n needAnimate = true;\n }\n\n if (needAnimate) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n }\n }\n\n updateModalHeight = () => {\n const modalState = this.getModalState(this.props.activeModal);\n\n if (modalState && modalState.type === ModalType.PAGE && modalState.dynamicContentHeight) {\n if (this.props.enteringModal) {\n this.waitTransitionFinish(modalState, () => {\n requestAnimationFrame(() => this.checkPageContentHeight());\n });\n } else {\n requestAnimationFrame(() => this.checkPageContentHeight());\n }\n }\n };\n\n closeModal(id: string) {\n // Сбрасываем состояния, которые могут помешать закрытию модального окна\n this.setState({ touchDown: false });\n\n const prevModalState = this.getModalState(id);\n\n if (!prevModalState) {\n id && warn(`closeActiveModal: модальное окно (страница) ${id} не существует`, 'error');\n return;\n }\n\n const nextModalState = this.getModalState(this.props.activeModal);\n const nextIsPage = !!nextModalState && nextModalState.type === ModalType.PAGE;\n\n const prevIsPage = !!prevModalState && prevModalState.type === ModalType.PAGE;\n this.waitTransitionFinish(prevModalState, () => this.props.onExited(id));\n const exitTranslate =\n prevIsPage &&\n nextIsPage &&\n (prevModalState.translateY ?? 0) <= (nextModalState?.translateYFrom ?? 0) &&\n !this.props.isBack\n ? (nextModalState?.translateYFrom ?? 0) + 10\n : 100;\n this.animateTranslate(prevModalState, exitTranslate);\n\n if (!nextModalState) {\n // NOTE: was only for clean exit\n this.setMaskOpacity(prevModalState, 0);\n }\n }\n\n onTouchMove = (e: TouchEvent) => {\n if (this.props.exitingModal) {\n return;\n }\n const modalState = this.getModalState(this.props.activeModal);\n if (!modalState) {\n return;\n }\n\n if (modalState.type === ModalType.PAGE) {\n return this.onPageTouchMove(e, modalState);\n }\n\n if (modalState.type === ModalType.CARD) {\n return this.onCardTouchMove(e, modalState);\n }\n };\n\n onPageTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { shiftY, originalEvent } = event;\n const target = originalEvent.target as HTMLElement;\n\n if (!event.isY) {\n if (this.viewportRef.current?.contains(target)) {\n originalEvent.preventDefault();\n }\n return;\n }\n\n if (!modalState.innerElement?.contains(target)) {\n return originalEvent.preventDefault();\n }\n\n originalEvent.stopPropagation();\n\n const { expandable, contentScrolled, collapsed, expanded } = modalState;\n\n if (!this.state.touchDown) {\n modalState.touchStartContentScrollTop = modalState.contentElement?.scrollTop ?? 0;\n this.setState({ touchDown: true });\n }\n\n if (contentScrolled) {\n return;\n }\n\n if (modalState.touchMovePositive === null) {\n modalState.touchMovePositive = shiftY > 0;\n }\n\n if (\n !modalState.expandable ||\n collapsed ||\n (expanded && modalState.touchMovePositive && modalState.touchStartContentScrollTop === 0) ||\n modalState.headerElement?.contains(target)\n ) {\n originalEvent.preventDefault();\n\n if ((!expandable && shiftY < 0) || !this.window) {\n return;\n }\n\n !this.state.dragging && this.setState({ dragging: true });\n\n const shiftYPercent = (shiftY / this.window.innerHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 0.8, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = rangeTranslate((modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onCardTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { originalEvent, shiftY } = event;\n const target = originalEvent.target as HTMLElement;\n if (modalState.innerElement?.contains(target)) {\n if (!this.state.touchDown) {\n this.setState({ touchDown: true, dragging: true });\n }\n\n const shiftYPercent = (shiftY / modalState.innerElement.offsetHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 1.2, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = Math.max(0, (modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onTouchEnd = (e: TouchEvent) => {\n const modalState = this.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE) {\n return this.onPageTouchEnd(e, modalState);\n }\n\n if (modalState?.type === ModalType.CARD) {\n return this.onCardTouchEnd(e, modalState);\n }\n };\n\n onPageTouchEnd(event: TouchEvent, modalState: ModalsStateEntry) {\n const { startY, shiftY } = event;\n\n modalState.contentScrolled = false;\n modalState.touchMovePositive = null;\n\n let setStateCallback;\n\n if (this.state.dragging && this.window) {\n const shiftYEndPercent = ((startY + shiftY) / this.window.innerHeight) * 100;\n\n let translateY = modalState.translateYCurrent ?? 0;\n const expectTranslateY =\n (translateY / event.duration) *\n 240 *\n 0.6 *\n ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = rangeTranslate(translateY + expectTranslateY);\n\n if (modalState.settlingHeight !== 100) {\n if (numberInRange(translateY, modalState.expandedRange)) {\n translateY = modalState.expandedRange?.[0] ?? 0;\n } else if (numberInRange(translateY, modalState.collapsedRange)) {\n translateY = modalState.translateYFrom ?? 0;\n } else if (numberInRange(translateY, modalState.hiddenRange)) {\n translateY = 100;\n } else {\n translateY = modalState.translateYFrom ?? 0;\n }\n } else {\n if (numberInRange(translateY, [0, 25])) {\n translateY = 0;\n } else {\n translateY = 100;\n }\n }\n\n if (translateY !== 100 && shiftYEndPercent >= 75) {\n translateY = 100;\n }\n\n modalState.translateY = translateY;\n modalState.translateYCurrent = translateY;\n modalState.collapsed = translateY > 0 && translateY < shiftYEndPercent;\n modalState.expanded = translateY === 0;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onCardTouchEnd({ duration }: TouchEvent, modalState: ModalsStateEntry) {\n let setStateCallback;\n\n if (this.state.dragging) {\n let translateY = modalState.translateYCurrent ?? 0;\n\n const expectTranslateY =\n (translateY / duration) * 240 * 0.6 * ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = Math.max(0, translateY + expectTranslateY);\n\n if (translateY >= 30) {\n translateY = 100;\n } else {\n translateY = 0;\n }\n\n modalState.translateY = translateY;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onScroll = (e: React.SyntheticEvent) => {\n const activeModal = this.props.activeModal;\n\n const target = e.target as HTMLElement;\n\n if (!activeModal) {\n return;\n }\n const modalState = this.getModalState(activeModal);\n if (modalState?.type === ModalType.PAGE && modalState?.contentElement?.contains(target)) {\n modalState.contentScrolled = true;\n\n if (modalState.contentScrollStopTimeout) {\n clearTimeout(modalState.contentScrollStopTimeout);\n }\n\n modalState.contentScrollStopTimeout = setTimeout(() => {\n if (modalState.contentScrolled) {\n modalState.contentScrolled = false;\n }\n }, 250);\n }\n };\n\n waitTransitionFinish(modalState: ModalsStateEntry | undefined, eventHandler: () => void) {\n if (transitionEvent.supported) {\n const onceHandler = () => {\n modalState?.innerElement?.removeEventListener(transitionEvent.name as string, onceHandler);\n eventHandler();\n };\n\n modalState?.innerElement?.addEventListener(transitionEvent.name as string, onceHandler);\n } else {\n setTimeout(eventHandler, this.timeout);\n }\n }\n\n /**\n * Анимирует сдвиг модалки\n *\n * @param {ModalsStateEntry} modalState\n * @param {number} percent Процент сдвига: 0 – полностью открыта, 100 – полностью закрыта\n */\n animateTranslate(modalState: ModalsStateEntry, percent: number | undefined) {\n const frameId = `animateTranslateFrame${modalState.id}`;\n\n cancelAnimationFrame(this.frameIds[frameId]);\n\n this.frameIds[frameId] = requestAnimationFrame(() => {\n setTransformStyle(modalState.innerElement, `translate3d(0, ${percent}%, 0)`);\n });\n }\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n setMaskOpacity(modalState: ModalsStateEntry, forceOpacity: number | null = null) {\n if (forceOpacity === null && this.props.history?.[0] !== modalState.id) {\n return;\n }\n if (this.maskAnimationFrame) {\n cancelAnimationFrame(this.maskAnimationFrame);\n }\n this.maskAnimationFrame = requestAnimationFrame(() => {\n if (this.maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n this.maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n }\n });\n }\n\n render() {\n const { activeModal, exitingModal, enteringModal } = this.props;\n const { touchDown, dragging } = this.state;\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <TouchRootContext.Provider value={true}>\n <ModalRootContext.Provider value={this.modalRootContext}>\n <Touch\n className={classNames(\n styles['ModalRoot'],\n this.props.configProvider?.webviewType === WebviewType.VKAPPS &&\n styles['ModalRoot--vkapps'],\n touchDown &&\n classNames(styles['ModalRoot--touched'], 'vkuiInternalModalRoot--touched'),\n !!(enteringModal || exitingModal) &&\n classNames(styles['ModalRoot--switching'], 'vkuiInternalModalRoot--switching'),\n )}\n onMove={this.onTouchMove}\n onEnd={this.onTouchEnd}\n onScroll={this.onScroll}\n >\n <div\n className={styles['ModalRoot__mask']}\n onClick={this.props.onExit}\n ref={this.maskElementRef}\n />\n <div className={styles['ModalRoot__viewport']} ref={this.viewportRef}>\n {this.getModals().map((Modal) => {\n const modalId = getNavId(Modal.props, warn);\n const _modalState = this.getModalState(modalId);\n if ((modalId !== activeModal && modalId !== exitingModal) || !_modalState) {\n return null;\n }\n const modalState = { ..._modalState };\n\n const isPage = modalState.type === ModalType.PAGE;\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n key={key}\n getRootRef={(e) => {\n const modalState = this.getModalState(modalId);\n if (modalState) {\n modalState.modalElement = e;\n }\n }}\n onClose={this.props.onExit}\n timeout={this.timeout}\n className={classNames(\n styles['ModalRoot__modal'],\n\n dragging && 'vkuiInternalModalRoot__modal--dragging',\n\n isPage && modalState.expandable && 'vkuiInternalModalRoot__modal--expandable',\n isPage && modalState.collapsed && 'vkuiInternalModalRoot__modal--collapsed',\n )}\n restoreFocus={false}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </Touch>\n </ModalRootContext.Provider>\n </TouchRootContext.Provider>\n );\n }\n}\n\nexport const ModalRootTouch = withContext(\n withPlatform(withDOM<ModalRootProps>(withModalManager(initModal)(ModalRootTouchComponent))),\n ConfigProviderContext,\n 'configProvider',\n);\n\n/**\n * Инициализирует модалку перед анимацией открытия\n */\nfunction initModal(modalState: ModalsStateEntry) {\n switch (modalState.type) {\n case ModalType.PAGE:\n modalState.settlingHeight = modalState.settlingHeight || MODAL_PAGE_DEFAULT_PERCENT_HEIGHT;\n return initPageModal(modalState);\n case ModalType.CARD:\n return initCardModal(modalState);\n default:\n process.env.NODE_ENV === 'development' &&\n warn(`initActiveModal: modalState.type=\"${modalState.type}\" не поддерживается`, 'error');\n }\n}\n\nfunction initPageModal(modalState: ModalsStateEntry) {\n const { contentElement } = modalState;\n const contentHeight = (contentElement?.firstElementChild as HTMLElement).offsetHeight;\n\n let prevTranslateY = modalState.translateY;\n\n modalState.expandable =\n contentHeight > (contentElement?.clientHeight ?? 0) || modalState.settlingHeight === 100;\n\n let collapsed = false;\n let expanded = false;\n let translateYFrom;\n let translateY;\n let expandedRange: TranslateRange;\n let collapsedRange: TranslateRange;\n let hiddenRange: TranslateRange;\n\n if (modalState.expandable) {\n translateYFrom = 100 - (modalState.settlingHeight ?? 0);\n\n const shiftHalf = translateYFrom / 2;\n const visiblePart = 100 - translateYFrom;\n\n expandedRange = [0, shiftHalf];\n collapsedRange = [shiftHalf, translateYFrom + visiblePart / 4];\n hiddenRange = [translateYFrom + visiblePart / 4, 100];\n\n collapsed = translateYFrom > 0;\n expanded = translateYFrom <= 0;\n translateY = translateYFrom;\n } else {\n const headerHeight = modalState.headerElement?.offsetHeight ?? 0;\n const height = contentHeight + headerHeight;\n\n translateYFrom =\n 100 - (height / (modalState.innerElement?.parentElement?.offsetHeight ?? 0)) * 100;\n translateY = translateYFrom;\n\n expandedRange = [translateY, translateY + 25];\n collapsedRange = [translateY + 25, translateY + 25];\n hiddenRange = [translateY + 25, translateY + 100];\n }\n\n // Если модалка может открываться на весь экран, и новый сдвиг больше предыдущего, то откроем её на весь экран\n if (\n (modalState.expandable && translateY > (prevTranslateY ?? 100)) ||\n modalState.settlingHeight === 100\n ) {\n translateY = 0;\n }\n\n // Если модалка уже раскрыта обновляем состояния\n if (translateY === 0) {\n expanded = true;\n collapsed = false;\n }\n\n modalState.expandedRange = expandedRange;\n modalState.collapsedRange = collapsedRange;\n modalState.hiddenRange = hiddenRange;\n modalState.translateY = translateY;\n modalState.translateYFrom = translateYFrom;\n modalState.collapsed = collapsed;\n modalState.expanded = expanded;\n}\n\nfunction initCardModal(modalState: ModalsStateEntry) {\n modalState.translateY = 0;\n}\n"],"names":["React","classNames","clamp","withContext","withPlatform","withDOM","getNavId","Platform","setTransformStyle","transitionEvent","rubber","warnOnce","ConfigProviderContext","WebviewType","FocusTrap","Touch","TouchRootContext","ModalRootContext","MODAL_PAGE_DEFAULT_PERCENT_HEIGHT","ModalType","withModalManager","styles","warn","numberInRange","number","range","rangeTranslate","ModalRootTouchComponent","Component","constructor","props","state","touchDown","dragging","maskElementRef","createRef","modalRootContext","updateModalHeight","registerModal","id","data","Object","assign","getModalState","onClose","onExit","isInsideModal","frameIds","documentScrolling","viewportRef","maskAnimationFrame","undefined","restoreFocusTo","timeout","platform","IOS","document","window","getModals","Children","toArray","children","componentDidMount","addEventListener","updateModalTranslate","componentWillUnmount","toggleDocumentScrolling","removeEventListener","componentDidUpdate","prevProps","exitingModal","closeModal","enteringModal","enteringState","onEnter","waitTransitionFinish","innerElement","style","transitionDelay","onEntered","delayEnter","animateTranslate","translateY","activeModal","activeElement","focus","enabled","preventTouch","passive","event","originalEvent","preventDefault","modalState","checkPageContentHeight","type","PAGE","modalElement","prevModalState","initPageModal","currentModalState","needAnimate","expandable","translateYFrom","dynamicContentHeight","requestAnimationFrame","setState","nextModalState","nextIsPage","prevIsPage","onExited","exitTranslate","isBack","setMaskOpacity","onTouchMove","e","onPageTouchMove","CARD","onCardTouchMove","shiftY","target","isY","current","contains","stopPropagation","contentScrolled","collapsed","expanded","touchStartContentScrollTop","contentElement","scrollTop","touchMovePositive","headerElement","shiftYPercent","innerHeight","shiftYCurrent","touchShiftYPercent","translateYCurrent","offsetHeight","Math","max","onTouchEnd","onPageTouchEnd","onCardTouchEnd","startY","setStateCallback","shiftYEndPercent","expectTranslateY","duration","settlingHeight","expandedRange","collapsedRange","hiddenRange","hidden","onScroll","contentScrollStopTimeout","clearTimeout","setTimeout","eventHandler","supported","onceHandler","name","percent","frameId","cancelAnimationFrame","forceOpacity","history","opacity","toString","render","Provider","value","className","configProvider","webviewType","VKAPPS","onMove","onEnd","div","onClick","ref","map","Modal","modalId","_modalState","isPage","key","getRootRef","restoreFocus","ModalRootTouch","initModal","initCardModal","process","env","NODE_ENV","contentHeight","firstElementChild","prevTranslateY","clientHeight","shiftHalf","visiblePart","headerHeight","height","parentElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ModalRoot/ModalRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { setTransformStyle } from '../../lib/styles';\nimport { transitionEvent } from '../../lib/supportEvents';\nimport { rubber } from '../../lib/touch';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ConfigProviderContext, WebviewType } from '../ConfigProvider/ConfigProviderContext';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport TouchRootContext from '../Touch/TouchContext';\nimport { ModalRootContext, ModalRootContextInterface } from './ModalRootContext';\nimport { MODAL_PAGE_DEFAULT_PERCENT_HEIGHT } from './constants';\nimport { ModalRootWithDOMProps, ModalsStateEntry, ModalType, TranslateRange } from './types';\nimport { ModalTransitionProps, withModalManager } from './useModalManager';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nfunction numberInRange(number: number, range: TranslateRange | undefined) {\n if (!range) {\n return false;\n }\n return number >= range[0] && number <= range[1];\n}\n\nfunction rangeTranslate(number: number) {\n return clamp(number, 0, 98);\n}\n\ninterface ModalRootState {\n touchDown?: boolean;\n dragging?: boolean;\n}\n\nclass ModalRootTouchComponent extends React.Component<\n ModalRootWithDOMProps & DOMProps & ModalTransitionProps,\n ModalRootState\n> {\n constructor(props: ModalRootWithDOMProps & ModalTransitionProps) {\n super(props);\n this.state = {\n touchDown: false,\n dragging: false,\n };\n\n this.maskElementRef = React.createRef();\n\n this.modalRootContext = {\n updateModalHeight: this.updateModalHeight,\n registerModal: ({ id, ...data }) => Object.assign(this.props.getModalState(id) ?? {}, data),\n onClose: () => this.props.onExit(),\n isInsideModal: true,\n };\n\n this.frameIds = {};\n }\n\n private documentScrolling = false;\n private readonly maskElementRef: React.RefObject<HTMLDivElement>;\n private readonly viewportRef = React.createRef<HTMLDivElement>();\n private maskAnimationFrame: number | undefined = undefined;\n private readonly modalRootContext: ModalRootContextInterface;\n private readonly frameIds: {\n [index: string]: number;\n };\n private restoreFocusTo: HTMLElement | undefined | null = undefined;\n\n get timeout(): number {\n return this.props.platform === Platform.IOS ? 400 : 320;\n }\n\n get document(): Document {\n return this.props.document as Document;\n }\n\n get window(): Window {\n return this.props.window as Window;\n }\n\n getModals() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n componentDidMount() {\n // Отслеживаем изменение размеров viewport (Необходимо для iOS)\n if (this.props.platform === Platform.IOS) {\n this.window?.addEventListener('resize', this.updateModalTranslate, false);\n }\n }\n\n componentWillUnmount() {\n this.toggleDocumentScrolling(true);\n this.window.removeEventListener('resize', this.updateModalTranslate, false);\n }\n\n componentDidUpdate(prevProps: ModalRootWithDOMProps & ModalTransitionProps) {\n // transition phase 2: animate exiting modal\n if (this.props.exitingModal && this.props.exitingModal !== prevProps.exitingModal) {\n this.closeModal(this.props.exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {\n const { enteringModal } = this.props;\n const enteringState = this.props.getModalState(enteringModal);\n this.props.onEnter();\n this.waitTransitionFinish(enteringState, () => {\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = '';\n }\n this.props.onEntered(enteringModal);\n });\n\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = this.props.delayEnter\n ? `${this.timeout}ms`\n : '';\n this.animateTranslate(enteringState, enteringState.translateY);\n }\n }\n\n // focus restoration\n if (this.props.activeModal && !prevProps.activeModal) {\n this.restoreFocusTo = this.document.activeElement as HTMLElement;\n }\n if (!this.props.activeModal && !this.props.exitingModal && this.restoreFocusTo) {\n this.restoreFocusTo.focus();\n this.restoreFocusTo = null;\n }\n\n this.toggleDocumentScrolling(!this.props.activeModal && !this.props.exitingModal);\n }\n\n /* Отключает скролл документа */\n toggleDocumentScrolling(enabled: boolean) {\n if (this.documentScrolling === enabled) {\n return;\n }\n this.documentScrolling = enabled;\n\n if (enabled) {\n // Здесь нужен последний аргумент с такими же параметрами, потому что\n // некоторые браузеры на странных вендорах типа Meizu не удаляют обработчик.\n // https://github.com/VKCOM/VKUI/issues/444\n this.window.removeEventListener('touchmove', this.preventTouch, {\n // @ts-expect-error: TS2769 В интерфейсе EventListenerOptions нет поля passive\n passive: false,\n });\n } else {\n this.window.addEventListener('touchmove', this.preventTouch, {\n passive: false,\n });\n }\n }\n\n preventTouch = (event: any) => {\n if (!event) {\n return false;\n }\n while (event.originalEvent) {\n event = event.originalEvent;\n }\n if (event.preventDefault) {\n event.preventDefault();\n }\n return false;\n };\n\n updateModalTranslate = () => {\n const modalState = this.props.getModalState(this.props.activeModal);\n modalState && this.animateTranslate(modalState, modalState.translateY);\n };\n\n checkPageContentHeight() {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE && modalState?.modalElement) {\n const prevModalState = { ...modalState };\n initPageModal(modalState);\n const currentModalState = { ...modalState };\n\n let needAnimate = false;\n\n if (prevModalState.expandable === currentModalState.expandable) {\n if (prevModalState.translateYFrom !== currentModalState.translateYFrom) {\n needAnimate = true;\n }\n } else {\n needAnimate = true;\n }\n\n if (needAnimate) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n }\n }\n\n updateModalHeight = () => {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState && modalState.type === ModalType.PAGE && modalState.dynamicContentHeight) {\n if (this.props.enteringModal) {\n this.waitTransitionFinish(modalState, () => {\n requestAnimationFrame(() => this.checkPageContentHeight());\n });\n } else {\n requestAnimationFrame(() => this.checkPageContentHeight());\n }\n }\n };\n\n closeModal(id: string) {\n // Сбрасываем состояния, которые могут помешать закрытию модального окна\n this.setState({ touchDown: false });\n\n const prevModalState = this.props.getModalState(id);\n\n if (!prevModalState) {\n id && warn(`closeActiveModal: модальное окно (страница) ${id} не существует`, 'error');\n return;\n }\n\n const nextModalState = this.props.getModalState(this.props.activeModal);\n const nextIsPage = !!nextModalState && nextModalState.type === ModalType.PAGE;\n\n const prevIsPage = !!prevModalState && prevModalState.type === ModalType.PAGE;\n this.waitTransitionFinish(prevModalState, () => this.props.onExited(id));\n const exitTranslate =\n prevIsPage &&\n nextIsPage &&\n (prevModalState.translateY ?? 0) <= (nextModalState?.translateYFrom ?? 0) &&\n !this.props.isBack\n ? (nextModalState?.translateYFrom ?? 0) + 10\n : 100;\n this.animateTranslate(prevModalState, exitTranslate);\n\n if (!nextModalState) {\n // NOTE: was only for clean exit\n this.setMaskOpacity(prevModalState, 0);\n }\n }\n\n onTouchMove = (e: TouchEvent) => {\n if (this.props.exitingModal) {\n return;\n }\n const modalState = this.props.getModalState(this.props.activeModal);\n if (!modalState) {\n return;\n }\n\n if (modalState.type === ModalType.PAGE) {\n return this.onPageTouchMove(e, modalState);\n }\n\n if (modalState.type === ModalType.CARD) {\n return this.onCardTouchMove(e, modalState);\n }\n };\n\n onPageTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { shiftY, originalEvent } = event;\n const target = originalEvent.target as HTMLElement;\n\n if (!event.isY) {\n if (this.viewportRef.current?.contains(target)) {\n originalEvent.preventDefault();\n }\n return;\n }\n\n if (!modalState.innerElement?.contains(target)) {\n return originalEvent.preventDefault();\n }\n\n originalEvent.stopPropagation();\n\n const { expandable, contentScrolled, collapsed, expanded } = modalState;\n\n if (!this.state.touchDown) {\n modalState.touchStartContentScrollTop = modalState.contentElement?.scrollTop ?? 0;\n this.setState({ touchDown: true });\n }\n\n if (contentScrolled) {\n return;\n }\n\n if (modalState.touchMovePositive === null) {\n modalState.touchMovePositive = shiftY > 0;\n }\n\n if (\n !modalState.expandable ||\n collapsed ||\n (expanded && modalState.touchMovePositive && modalState.touchStartContentScrollTop === 0) ||\n modalState.headerElement?.contains(target)\n ) {\n originalEvent.preventDefault();\n\n if ((!expandable && shiftY < 0) || !this.window) {\n return;\n }\n\n !this.state.dragging && this.setState({ dragging: true });\n\n const shiftYPercent = (shiftY / this.window.innerHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 0.8, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = rangeTranslate((modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onCardTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { originalEvent, shiftY } = event;\n const target = originalEvent.target as HTMLElement;\n if (modalState.innerElement?.contains(target)) {\n if (!this.state.touchDown) {\n this.setState({ touchDown: true, dragging: true });\n }\n\n const shiftYPercent = (shiftY / modalState.innerElement.offsetHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 1.2, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = Math.max(0, (modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onTouchEnd = (e: TouchEvent) => {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE) {\n return this.onPageTouchEnd(e, modalState);\n }\n\n if (modalState?.type === ModalType.CARD) {\n return this.onCardTouchEnd(e, modalState);\n }\n };\n\n onPageTouchEnd(event: TouchEvent, modalState: ModalsStateEntry) {\n const { startY, shiftY } = event;\n\n modalState.contentScrolled = false;\n modalState.touchMovePositive = null;\n\n let setStateCallback;\n\n if (this.state.dragging && this.window) {\n const shiftYEndPercent = ((startY + shiftY) / this.window.innerHeight) * 100;\n\n let translateY = modalState.translateYCurrent ?? 0;\n const expectTranslateY =\n (translateY / event.duration) *\n 240 *\n 0.6 *\n ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = rangeTranslate(translateY + expectTranslateY);\n\n if (modalState.settlingHeight !== 100) {\n if (numberInRange(translateY, modalState.expandedRange)) {\n translateY = modalState.expandedRange?.[0] ?? 0;\n } else if (numberInRange(translateY, modalState.collapsedRange)) {\n translateY = modalState.translateYFrom ?? 0;\n } else if (numberInRange(translateY, modalState.hiddenRange)) {\n translateY = 100;\n } else {\n translateY = modalState.translateYFrom ?? 0;\n }\n } else {\n if (numberInRange(translateY, [0, 25])) {\n translateY = 0;\n } else {\n translateY = 100;\n }\n }\n\n if (translateY !== 100 && shiftYEndPercent >= 75) {\n translateY = 100;\n }\n\n modalState.translateY = translateY;\n modalState.translateYCurrent = translateY;\n modalState.collapsed = translateY > 0 && translateY < shiftYEndPercent;\n modalState.expanded = translateY === 0;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onCardTouchEnd({ duration }: TouchEvent, modalState: ModalsStateEntry) {\n let setStateCallback;\n\n if (this.state.dragging) {\n let translateY = modalState.translateYCurrent ?? 0;\n\n const expectTranslateY =\n (translateY / duration) * 240 * 0.6 * ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = Math.max(0, translateY + expectTranslateY);\n\n if (translateY >= 30) {\n translateY = 100;\n } else {\n translateY = 0;\n }\n\n modalState.translateY = translateY;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onScroll = (e: React.SyntheticEvent) => {\n const activeModal = this.props.activeModal;\n\n const target = e.target as HTMLElement;\n\n if (!activeModal) {\n return;\n }\n const modalState = this.props.getModalState(activeModal);\n if (modalState?.type === ModalType.PAGE && modalState?.contentElement?.contains(target)) {\n modalState.contentScrolled = true;\n\n if (modalState.contentScrollStopTimeout) {\n clearTimeout(modalState.contentScrollStopTimeout);\n }\n\n modalState.contentScrollStopTimeout = setTimeout(() => {\n if (modalState.contentScrolled) {\n modalState.contentScrolled = false;\n }\n }, 250);\n }\n };\n\n waitTransitionFinish(modalState: ModalsStateEntry | undefined, eventHandler: () => void) {\n if (transitionEvent.supported) {\n const onceHandler = () => {\n modalState?.innerElement?.removeEventListener(transitionEvent.name as string, onceHandler);\n eventHandler();\n };\n\n modalState?.innerElement?.addEventListener(transitionEvent.name as string, onceHandler);\n } else {\n setTimeout(eventHandler, this.timeout);\n }\n }\n\n /**\n * Анимирует сдвиг модалки\n *\n * @param {ModalsStateEntry} modalState\n * @param {number} percent Процент сдвига: 0 – полностью открыта, 100 – полностью закрыта\n */\n animateTranslate(modalState: ModalsStateEntry, percent: number | undefined) {\n const frameId = `animateTranslateFrame${modalState.id}`;\n\n cancelAnimationFrame(this.frameIds[frameId]);\n\n this.frameIds[frameId] = requestAnimationFrame(() => {\n setTransformStyle(modalState.innerElement, `translate3d(0, ${percent}%, 0)`);\n });\n }\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n setMaskOpacity(modalState: ModalsStateEntry, forceOpacity: number | null = null) {\n if (forceOpacity === null && this.props.history?.[0] !== modalState.id) {\n return;\n }\n if (this.maskAnimationFrame) {\n cancelAnimationFrame(this.maskAnimationFrame);\n }\n this.maskAnimationFrame = requestAnimationFrame(() => {\n if (this.maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n this.maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n }\n });\n }\n\n render() {\n const { activeModal, exitingModal, enteringModal } = this.props;\n const { touchDown, dragging } = this.state;\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <TouchRootContext.Provider value={true}>\n <ModalRootContext.Provider value={this.modalRootContext}>\n <Touch\n className={classNames(\n styles['ModalRoot'],\n this.props.configProvider?.webviewType === WebviewType.VKAPPS &&\n styles['ModalRoot--vkapps'],\n touchDown &&\n classNames(styles['ModalRoot--touched'], 'vkuiInternalModalRoot--touched'),\n !!(enteringModal || exitingModal) &&\n classNames(styles['ModalRoot--switching'], 'vkuiInternalModalRoot--switching'),\n )}\n onMove={this.onTouchMove}\n onEnd={this.onTouchEnd}\n onScroll={this.onScroll}\n >\n <div\n className={styles['ModalRoot__mask']}\n onClick={this.props.onExit}\n ref={this.maskElementRef}\n />\n <div className={styles['ModalRoot__viewport']} ref={this.viewportRef}>\n {this.getModals().map((Modal) => {\n const modalId = getNavId(Modal.props, warn);\n const _modalState = this.props.getModalState(modalId);\n if ((modalId !== activeModal && modalId !== exitingModal) || !_modalState) {\n return null;\n }\n const modalState = { ..._modalState };\n\n const isPage = modalState.type === ModalType.PAGE;\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n key={key}\n getRootRef={(e) => {\n const modalState = this.props.getModalState(modalId);\n if (modalState) {\n modalState.modalElement = e;\n }\n }}\n onClose={this.props.onExit}\n timeout={this.timeout}\n className={classNames(\n styles['ModalRoot__modal'],\n\n dragging && 'vkuiInternalModalRoot__modal--dragging',\n\n isPage && modalState.expandable && 'vkuiInternalModalRoot__modal--expandable',\n isPage && modalState.collapsed && 'vkuiInternalModalRoot__modal--collapsed',\n )}\n restoreFocus={false}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </Touch>\n </ModalRootContext.Provider>\n </TouchRootContext.Provider>\n );\n }\n}\n\nexport const ModalRootTouch = withContext(\n withPlatform(\n withDOM<ModalRootWithDOMProps>(withModalManager(initModal)(ModalRootTouchComponent)),\n ),\n ConfigProviderContext,\n 'configProvider',\n);\n\n/**\n * Инициализирует модалку перед анимацией открытия\n */\nfunction initModal(modalState: ModalsStateEntry) {\n switch (modalState.type) {\n case ModalType.PAGE:\n modalState.settlingHeight = modalState.settlingHeight || MODAL_PAGE_DEFAULT_PERCENT_HEIGHT;\n return initPageModal(modalState);\n case ModalType.CARD:\n return initCardModal(modalState);\n default:\n process.env.NODE_ENV === 'development' &&\n warn(`initActiveModal: modalState.type=\"${modalState.type}\" не поддерживается`, 'error');\n }\n}\n\nfunction initPageModal(modalState: ModalsStateEntry) {\n const { contentElement } = modalState;\n const contentHeight = (contentElement?.firstElementChild as HTMLElement).offsetHeight;\n\n let prevTranslateY = modalState.translateY;\n\n modalState.expandable =\n contentHeight > (contentElement?.clientHeight ?? 0) || modalState.settlingHeight === 100;\n\n let collapsed = false;\n let expanded = false;\n let translateYFrom;\n let translateY;\n let expandedRange: TranslateRange;\n let collapsedRange: TranslateRange;\n let hiddenRange: TranslateRange;\n\n if (modalState.expandable) {\n translateYFrom = 100 - (modalState.settlingHeight ?? 0);\n\n const shiftHalf = translateYFrom / 2;\n const visiblePart = 100 - translateYFrom;\n\n expandedRange = [0, shiftHalf];\n collapsedRange = [shiftHalf, translateYFrom + visiblePart / 4];\n hiddenRange = [translateYFrom + visiblePart / 4, 100];\n\n collapsed = translateYFrom > 0;\n expanded = translateYFrom <= 0;\n translateY = translateYFrom;\n } else {\n const headerHeight = modalState.headerElement?.offsetHeight ?? 0;\n const height = contentHeight + headerHeight;\n\n translateYFrom =\n 100 - (height / (modalState.innerElement?.parentElement?.offsetHeight ?? 0)) * 100;\n translateY = translateYFrom;\n\n expandedRange = [translateY, translateY + 25];\n collapsedRange = [translateY + 25, translateY + 25];\n hiddenRange = [translateY + 25, translateY + 100];\n }\n\n // Если модалка может открываться на весь экран, и новый сдвиг больше предыдущего, то откроем её на весь экран\n if (\n (modalState.expandable && translateY > (prevTranslateY ?? 100)) ||\n modalState.settlingHeight === 100\n ) {\n translateY = 0;\n }\n\n // Если модалка уже раскрыта обновляем состояния\n if (translateY === 0) {\n expanded = true;\n collapsed = false;\n }\n\n modalState.expandedRange = expandedRange;\n modalState.collapsedRange = collapsedRange;\n modalState.hiddenRange = hiddenRange;\n modalState.translateY = translateY;\n modalState.translateYFrom = translateYFrom;\n modalState.collapsed = collapsed;\n modalState.expanded = expanded;\n}\n\nfunction initCardModal(modalState: ModalsStateEntry) {\n modalState.translateY = 0;\n}\n"],"names":["React","classNames","clamp","withContext","withPlatform","withDOM","getNavId","Platform","setTransformStyle","transitionEvent","rubber","warnOnce","ConfigProviderContext","WebviewType","FocusTrap","Touch","TouchRootContext","ModalRootContext","MODAL_PAGE_DEFAULT_PERCENT_HEIGHT","ModalType","withModalManager","styles","warn","numberInRange","number","range","rangeTranslate","ModalRootTouchComponent","Component","constructor","props","state","touchDown","dragging","maskElementRef","createRef","modalRootContext","updateModalHeight","registerModal","id","data","Object","assign","getModalState","onClose","onExit","isInsideModal","frameIds","documentScrolling","viewportRef","maskAnimationFrame","undefined","restoreFocusTo","timeout","platform","IOS","document","window","getModals","Children","toArray","children","componentDidMount","addEventListener","updateModalTranslate","componentWillUnmount","toggleDocumentScrolling","removeEventListener","componentDidUpdate","prevProps","exitingModal","closeModal","enteringModal","enteringState","onEnter","waitTransitionFinish","innerElement","style","transitionDelay","onEntered","delayEnter","animateTranslate","translateY","activeModal","activeElement","focus","enabled","preventTouch","passive","event","originalEvent","preventDefault","modalState","checkPageContentHeight","type","PAGE","modalElement","prevModalState","initPageModal","currentModalState","needAnimate","expandable","translateYFrom","dynamicContentHeight","requestAnimationFrame","setState","nextModalState","nextIsPage","prevIsPage","onExited","exitTranslate","isBack","setMaskOpacity","onTouchMove","e","onPageTouchMove","CARD","onCardTouchMove","shiftY","target","isY","current","contains","stopPropagation","contentScrolled","collapsed","expanded","touchStartContentScrollTop","contentElement","scrollTop","touchMovePositive","headerElement","shiftYPercent","innerHeight","shiftYCurrent","touchShiftYPercent","translateYCurrent","offsetHeight","Math","max","onTouchEnd","onPageTouchEnd","onCardTouchEnd","startY","setStateCallback","shiftYEndPercent","expectTranslateY","duration","settlingHeight","expandedRange","collapsedRange","hiddenRange","hidden","onScroll","contentScrollStopTimeout","clearTimeout","setTimeout","eventHandler","supported","onceHandler","name","percent","frameId","cancelAnimationFrame","forceOpacity","history","opacity","toString","render","Provider","value","className","configProvider","webviewType","VKAPPS","onMove","onEnd","div","onClick","ref","map","Modal","modalId","_modalState","isPage","key","getRootRef","restoreFocus","ModalRootTouch","initModal","initCardModal","process","env","NODE_ENV","contentHeight","firstElementChild","prevTranslateY","clientHeight","shiftHalf","visiblePart","headerHeight","height","parentElement"],"mappings":"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"}
|