@vkontakte/vkui 7.0.0-dev-efd91c.0 → 7.0.0-dev-efd91c.2
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/components/Accordion/Accordion.d.ts.map +1 -1
- package/dist/components/Accordion/Accordion.js +9 -5
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js +20 -14
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/Alert/Alert.d.ts +3 -1
- package/dist/components/Alert/Alert.d.ts.map +1 -1
- package/dist/components/Alert/Alert.js +61 -56
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.d.ts +2 -1
- package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRoot.js +75 -102
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppRoot/AppRootContext.d.ts +6 -1
- package/dist/components/AppRoot/AppRootContext.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRootContext.js +5 -1
- package/dist/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.d.ts +6 -2
- package/dist/components/AppRoot/AppRootPortal.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.js +49 -27
- package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/components/AppRoot/AppRootStyleContainer.d.ts +16 -0
- package/dist/components/AppRoot/AppRootStyleContainer.d.ts.map +1 -0
- package/dist/components/AppRoot/AppRootStyleContainer.js +57 -0
- package/dist/components/AppRoot/AppRootStyleContainer.js.map +1 -0
- package/dist/components/AppRoot/ModalPopoutPortal.d.ts +11 -0
- package/dist/components/AppRoot/ModalPopoutPortal.d.ts.map +1 -0
- package/dist/components/AppRoot/ModalPopoutPortal.js +28 -0
- package/dist/components/AppRoot/ModalPopoutPortal.js.map +1 -0
- package/dist/components/AppRoot/helpers.d.ts +2 -12
- package/dist/components/AppRoot/helpers.d.ts.map +1 -1
- package/dist/components/AppRoot/helpers.js +6 -56
- package/dist/components/AppRoot/helpers.js.map +1 -1
- package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/components/BaseGallery/CarouselBase/CarouselBase.d.ts.map +1 -1
- package/dist/components/BaseGallery/CarouselBase/CarouselBase.js +1 -0
- package/dist/components/BaseGallery/CarouselBase/CarouselBase.js.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.js +2 -2
- package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
- package/dist/components/CalendarTime/CalendarTime.js +2 -2
- package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js +15 -7
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/Counter/Counter.d.ts +16 -6
- package/dist/components/Counter/Counter.d.ts.map +1 -1
- package/dist/components/Counter/Counter.js +50 -5
- package/dist/components/Counter/Counter.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +7 -1
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/FormItem/FormItem.d.ts.map +1 -1
- package/dist/components/FormItem/FormItem.js +5 -3
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/Gallery/Gallery.js.map +1 -1
- package/dist/components/Group/GroupContainer.d.ts.map +1 -1
- package/dist/components/Group/GroupContainer.js +2 -2
- package/dist/components/Group/GroupContainer.js.map +1 -1
- package/dist/components/Link/Link.d.ts +15 -2
- package/dist/components/Link/Link.d.ts.map +1 -1
- package/dist/components/Link/Link.js +20 -5
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/ModalCard/ModalCard.d.ts +2 -6
- package/dist/components/ModalCard/ModalCard.d.ts.map +1 -1
- package/dist/components/ModalCard/ModalCard.js +40 -65
- package/dist/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/components/ModalCard/ModalCardInternal.d.ts +13 -0
- package/dist/components/ModalCard/ModalCardInternal.d.ts.map +1 -0
- package/dist/components/ModalCard/ModalCardInternal.js +147 -0
- package/dist/components/ModalCard/ModalCardInternal.js.map +1 -0
- package/dist/components/ModalCard/types.d.ts +44 -0
- package/dist/components/ModalCard/types.d.ts.map +1 -0
- package/dist/components/ModalCard/types.js +3 -0
- package/dist/components/ModalCard/types.js.map +1 -0
- package/dist/components/ModalCardBase/ModalCardBase.d.ts.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +1 -3
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalOutlet/ModalOutlet.d.ts +9 -0
- package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -0
- package/dist/components/ModalOutlet/ModalOutlet.js +25 -0
- package/dist/components/ModalOutlet/ModalOutlet.js.map +1 -0
- package/dist/components/ModalOverlay/ModalOverlay.d.ts +12 -0
- package/dist/components/ModalOverlay/ModalOverlay.d.ts.map +1 -0
- package/dist/components/ModalOverlay/ModalOverlay.js +47 -0
- package/dist/components/ModalOverlay/ModalOverlay.js.map +1 -0
- package/dist/components/ModalPage/ModalPage.d.ts +2 -60
- package/dist/components/ModalPage/ModalPage.d.ts.map +1 -1
- package/dist/components/ModalPage/ModalPage.js +39 -111
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalPage/ModalPageInternal.d.ts +13 -0
- package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -0
- package/dist/components/ModalPage/ModalPageInternal.js +181 -0
- package/dist/components/ModalPage/ModalPageInternal.js.map +1 -0
- package/dist/components/ModalPage/types.d.ts +104 -0
- package/dist/components/ModalPage/types.d.ts.map +1 -0
- package/dist/components/ModalPage/types.js +3 -0
- package/dist/components/ModalPage/types.js.map +1 -0
- package/dist/components/ModalPageContent/ModalPageContent.d.ts +4 -0
- package/dist/components/ModalPageContent/ModalPageContent.d.ts.map +1 -0
- package/dist/components/ModalPageContent/ModalPageContent.js +22 -0
- package/dist/components/ModalPageContent/ModalPageContent.js.map +1 -0
- package/dist/components/ModalPageFooter/ModalPageFooter.d.ts +7 -0
- package/dist/components/ModalPageFooter/ModalPageFooter.d.ts.map +1 -0
- package/dist/components/ModalPageFooter/ModalPageFooter.js +30 -0
- package/dist/components/ModalPageFooter/ModalPageFooter.js.map +1 -0
- package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.js +4 -4
- package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts +5 -2
- package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +52 -590
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootContext.d.ts +8 -18
- package/dist/components/ModalRoot/ModalRootContext.d.ts.map +1 -1
- package/dist/components/ModalRoot/ModalRootContext.js +13 -40
- package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.d.ts +13 -0
- package/dist/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.d.ts.map +1 -0
- package/dist/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.js +33 -0
- package/dist/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.js.map +1 -0
- package/dist/components/ModalRoot/types.d.ts +52 -21
- package/dist/components/ModalRoot/types.d.ts.map +1 -1
- package/dist/components/ModalRoot/types.js +1 -1
- package/dist/components/ModalRoot/types.js.map +1 -1
- package/dist/components/ModalRoot/useModalManager.d.ts +27 -38
- package/dist/components/ModalRoot/useModalManager.d.ts.map +1 -1
- package/dist/components/ModalRoot/useModalManager.js +37 -193
- package/dist/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/components/ModalRoot/useModalRootContext.d.ts +2 -2
- package/dist/components/ModalRoot/useModalRootContext.d.ts.map +1 -1
- package/dist/components/ModalRoot/useModalRootContext.js +18 -2
- package/dist/components/ModalRoot/useModalRootContext.js.map +1 -1
- package/dist/components/ModalRoot/withModalRootContext.d.ts +6 -1
- package/dist/components/ModalRoot/withModalRootContext.d.ts.map +1 -1
- package/dist/components/ModalRoot/withModalRootContext.js +7 -4
- package/dist/components/ModalRoot/withModalRootContext.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.d.ts +5 -6
- package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.js +7 -1
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/NavTransitionContext/NavTransitionContext.d.ts.map +1 -1
- package/dist/components/NavTransitionContext/NavTransitionContext.js +6 -4
- package/dist/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.d.ts.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.js +2 -2
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +5 -4
- package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts.map +1 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.js +10 -12
- package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js +6 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/PanelHeaderClose/PanelHeaderClose.d.ts +2 -1
- package/dist/components/PanelHeaderClose/PanelHeaderClose.d.ts.map +1 -1
- package/dist/components/PanelHeaderClose/PanelHeaderClose.js +9 -13
- package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +1 -1
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts.map +1 -1
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js +7 -11
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +2 -1
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts.map +1 -1
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js +10 -14
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +5 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.d.ts.map +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.js +6 -2
- package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.js +9 -8
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinner.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinner.js +23 -18
- package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/components/ScreenSpinner/types.d.ts +2 -0
- package/dist/components/ScreenSpinner/types.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/types.js.map +1 -1
- package/dist/components/Separator/Separator.d.ts +2 -0
- package/dist/components/Separator/Separator.d.ts.map +1 -1
- package/dist/components/Separator/Separator.js +4 -5
- package/dist/components/Separator/Separator.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.js +4 -4
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Spacing/Spacing.d.ts +3 -1
- package/dist/components/Spacing/Spacing.d.ts.map +1 -1
- package/dist/components/Spacing/Spacing.js +4 -5
- package/dist/components/Spacing/Spacing.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.d.ts.map +1 -1
- package/dist/components/SplitCol/SplitCol.js +7 -5
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.d.ts +9 -1
- package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.js +17 -12
- package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/components/Tappable/Tappable.d.ts.map +1 -1
- package/dist/components/Tappable/Tappable.js +1 -1
- package/dist/components/Tappable/Tappable.js.map +1 -1
- package/dist/components/View/useLayoutEffectCall.d.ts +1 -1
- package/dist/components/View/useLayoutEffectCall.d.ts.map +1 -1
- package/dist/components/View/useLayoutEffectCall.js +8 -33
- package/dist/components/View/useLayoutEffectCall.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/context/ModalContext.d.ts +15 -0
- package/dist/context/ModalContext.d.ts.map +1 -0
- package/dist/context/ModalContext.js +13 -0
- package/dist/context/ModalContext.js.map +1 -0
- package/dist/cssm/components/Accordion/Accordion.js +9 -5
- package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +20 -14
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js +60 -56
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +73 -100
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.module.css +2 -40
- package/dist/cssm/components/AppRoot/AppRootContext.js +5 -1
- package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootPortal.js +49 -27
- package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootStyleContainer.js +57 -0
- package/dist/cssm/components/AppRoot/AppRootStyleContainer.js.map +1 -0
- package/dist/cssm/components/AppRoot/AppRootStyleContainer.module.css +87 -0
- package/dist/cssm/components/AppRoot/ModalPopoutPortal.js +27 -0
- package/dist/cssm/components/AppRoot/ModalPopoutPortal.js.map +1 -0
- package/dist/cssm/components/AppRoot/helpers.js +6 -56
- package/dist/cssm/components/AppRoot/helpers.js.map +1 -1
- package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/cssm/components/BaseGallery/CarouselBase/CarouselBase.js +1 -0
- package/dist/cssm/components/BaseGallery/CarouselBase/CarouselBase.js.map +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js +2 -2
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.js +2 -2
- package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js +15 -7
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.js +48 -4
- package/dist/cssm/components/Counter/Counter.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.module.css +81 -12
- package/dist/cssm/components/CustomSelect/CustomSelect.js +7 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.js +5 -3
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
- package/dist/cssm/components/Group/GroupContainer.js +2 -2
- package/dist/cssm/components/Group/GroupContainer.js.map +1 -1
- package/dist/cssm/components/Link/Link.js +17 -5
- package/dist/cssm/components/Link/Link.js.map +1 -1
- package/dist/cssm/components/Link/Link.module.css +13 -4
- package/dist/cssm/components/ModalCard/ModalCard.js +30 -51
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.module.css +62 -44
- package/dist/cssm/components/ModalCard/ModalCardInternal.js +122 -0
- package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -0
- package/dist/cssm/components/ModalCard/types.js +3 -0
- package/dist/cssm/components/ModalCard/types.js.map +1 -0
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +1 -3
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +0 -2
- package/dist/cssm/components/ModalOutlet/ModalOutlet.js +17 -0
- package/dist/cssm/components/ModalOutlet/ModalOutlet.js.map +1 -0
- package/dist/cssm/components/ModalOutlet/ModalOutlet.module.css +17 -0
- package/dist/cssm/components/ModalOverlay/ModalOverlay.js +40 -0
- package/dist/cssm/components/ModalOverlay/ModalOverlay.js.map +1 -0
- package/dist/cssm/components/ModalOverlay/ModalOverlay.module.css +71 -0
- package/dist/cssm/components/ModalPage/ModalPage.js +32 -99
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.module.css +125 -123
- package/dist/cssm/components/ModalPage/ModalPageInternal.js +161 -0
- package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -0
- package/dist/cssm/components/ModalPage/types.js +3 -0
- package/dist/cssm/components/ModalPage/types.js.map +1 -0
- package/dist/cssm/components/ModalPageContent/ModalPageContent.js +15 -0
- package/dist/cssm/components/ModalPageContent/ModalPageContent.js.map +1 -0
- package/dist/cssm/components/ModalPageContent/ModalPageContent.module.css +4 -0
- package/dist/cssm/components/ModalPageFooter/ModalPageFooter.js +23 -0
- package/dist/cssm/components/ModalPageFooter/ModalPageFooter.js.map +1 -0
- package/dist/cssm/components/ModalPageFooter/ModalPageFooter.module.css +35 -0
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +4 -4
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +8 -2
- package/dist/cssm/components/ModalRoot/ModalRoot.js +52 -571
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootContext.js +13 -40
- package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/cssm/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.js +27 -0
- package/dist/cssm/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.js.map +1 -0
- package/dist/cssm/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.module.css +8 -0
- package/dist/cssm/components/ModalRoot/types.js +1 -1
- package/dist/cssm/components/ModalRoot/types.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js +36 -194
- package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalRootContext.js +18 -2
- package/dist/cssm/components/ModalRoot/useModalRootContext.js.map +1 -1
- package/dist/cssm/components/ModalRoot/withModalRootContext.js +7 -4
- package/dist/cssm/components/ModalRoot/withModalRootContext.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js +7 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js +6 -4
- package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js +2 -2
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +9 -12
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +6 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +8 -12
- package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +7 -11
- package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +8 -12
- package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +5 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js +9 -8
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +23 -19
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/types.js.map +1 -1
- package/dist/cssm/components/Search/Search.module.css +2 -2
- package/dist/cssm/components/Separator/Separator.js +9 -8
- package/dist/cssm/components/Separator/Separator.js.map +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.js +4 -4
- package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/cssm/components/Spacing/Spacing.js +6 -7
- package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.js +7 -5
- package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.js +14 -9
- package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.js +1 -1
- package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
- package/dist/cssm/components/View/useLayoutEffectCall.js +8 -23
- package/dist/cssm/components/View/useLayoutEffectCall.js.map +1 -1
- package/dist/cssm/context/ModalContext.js +13 -0
- package/dist/cssm/context/ModalContext.js.map +1 -0
- package/dist/cssm/helpers/range.js +3 -0
- package/dist/cssm/helpers/range.js.map +1 -1
- package/dist/cssm/hooks/useObjectMemo.js +6 -2
- package/dist/cssm/hooks/useObjectMemo.js.map +1 -1
- package/dist/cssm/hooks/usePrevious.js +9 -2
- package/dist/cssm/hooks/usePrevious.js.map +1 -1
- package/dist/cssm/hooks/useStableCallback.js +1 -1
- package/dist/cssm/hooks/useStableCallback.js.map +1 -1
- package/dist/cssm/hooks/useStateWithPrev.js +34 -0
- package/dist/cssm/hooks/useStateWithPrev.js.map +1 -0
- package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js +23 -0
- package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -0
- package/dist/cssm/hooks/useSyncHTMLWithTokens.js +19 -0
- package/dist/cssm/hooks/useSyncHTMLWithTokens.js.map +1 -0
- package/dist/cssm/hooks/useVirtualKeyboardState.js +134 -0
- package/dist/cssm/hooks/useVirtualKeyboardState.js.map +1 -0
- package/dist/cssm/index.js +6 -2
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/SSR.js +1 -7
- package/dist/cssm/lib/SSR.js.map +1 -1
- package/dist/cssm/lib/adaptivity/functions.js +7 -1
- package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
- package/dist/cssm/lib/animation/useCSSKeyframesAnimationController.js +7 -5
- package/dist/cssm/lib/animation/useCSSKeyframesAnimationController.js.map +1 -1
- package/dist/cssm/lib/animation/useCSSTransition.js +4 -4
- package/dist/cssm/lib/animation/useCSSTransition.js.map +1 -1
- package/dist/cssm/lib/dom.js +65 -11
- package/dist/cssm/lib/dom.js.map +1 -1
- package/dist/cssm/lib/floating/usePlacementChangeCallback.js +6 -3
- package/dist/cssm/lib/floating/usePlacementChangeCallback.js.map +1 -1
- package/dist/cssm/lib/sheet/constants.js +23 -0
- package/dist/cssm/lib/sheet/constants.js.map +1 -0
- package/dist/cssm/lib/sheet/controllers/BottomSheetController.js +252 -0
- package/dist/cssm/lib/sheet/controllers/BottomSheetController.js.map +1 -0
- package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js +50 -0
- package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js.map +1 -0
- package/dist/cssm/lib/sheet/index.js +4 -0
- package/dist/cssm/lib/sheet/index.js.map +1 -0
- package/dist/cssm/lib/sheet/useBottomSheet.js +116 -0
- package/dist/cssm/lib/sheet/useBottomSheet.js.map +1 -0
- package/dist/cssm/lib/spacings/sizes.js +23 -0
- package/dist/cssm/lib/spacings/sizes.js.map +1 -1
- package/dist/cssm/lib/touch/UIPanGestureRecognizer.js +10 -0
- package/dist/cssm/lib/touch/UIPanGestureRecognizer.js.map +1 -1
- package/dist/cssm/lib/touch/index.js.map +1 -1
- package/dist/cssm/styles/common.css +31 -34
- package/dist/cssm/styles/constants.css +5 -0
- package/dist/helpers/range.d.ts +1 -0
- package/dist/helpers/range.d.ts.map +1 -1
- package/dist/helpers/range.js +3 -0
- package/dist/helpers/range.js.map +1 -1
- package/dist/hooks/useObjectMemo.d.ts +3 -0
- package/dist/hooks/useObjectMemo.d.ts.map +1 -1
- package/dist/hooks/useObjectMemo.js +6 -2
- package/dist/hooks/useObjectMemo.js.map +1 -1
- package/dist/hooks/usePrevious.d.ts +3 -0
- package/dist/hooks/usePrevious.d.ts.map +1 -1
- package/dist/hooks/usePrevious.js +9 -2
- package/dist/hooks/usePrevious.js.map +1 -1
- package/dist/hooks/useStableCallback.js +1 -1
- package/dist/hooks/useStableCallback.js.map +1 -1
- package/dist/hooks/useStateWithPrev.d.ts +12 -0
- package/dist/hooks/useStateWithPrev.d.ts.map +1 -0
- package/dist/hooks/useStateWithPrev.js +34 -0
- package/dist/hooks/useStateWithPrev.js.map +1 -0
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts +8 -0
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts.map +1 -0
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js +24 -0
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -0
- package/dist/hooks/useSyncHTMLWithTokens.d.ts +5 -0
- package/dist/hooks/useSyncHTMLWithTokens.d.ts.map +1 -0
- package/dist/hooks/useSyncHTMLWithTokens.js +20 -0
- package/dist/hooks/useSyncHTMLWithTokens.js.map +1 -0
- package/dist/hooks/useVirtualKeyboardState.d.ts +32 -0
- package/dist/hooks/useVirtualKeyboardState.d.ts.map +1 -0
- package/dist/hooks/useVirtualKeyboardState.js +134 -0
- package/dist/hooks/useVirtualKeyboardState.js.map +1 -0
- package/dist/index.d.ts +13 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/SSR.d.ts.map +1 -1
- package/dist/lib/SSR.js +1 -7
- package/dist/lib/SSR.js.map +1 -1
- package/dist/lib/adaptivity/functions.d.ts +1 -0
- package/dist/lib/adaptivity/functions.d.ts.map +1 -1
- package/dist/lib/adaptivity/functions.js +7 -1
- package/dist/lib/adaptivity/functions.js.map +1 -1
- package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts.map +1 -1
- package/dist/lib/animation/useCSSKeyframesAnimationController.js +7 -5
- package/dist/lib/animation/useCSSKeyframesAnimationController.js.map +1 -1
- package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
- package/dist/lib/animation/useCSSTransition.js +4 -4
- package/dist/lib/animation/useCSSTransition.js.map +1 -1
- package/dist/lib/dom.d.ts +20 -5
- package/dist/lib/dom.d.ts.map +1 -1
- package/dist/lib/dom.js +65 -11
- package/dist/lib/dom.js.map +1 -1
- package/dist/lib/floating/usePlacementChangeCallback.d.ts.map +1 -1
- package/dist/lib/floating/usePlacementChangeCallback.js +6 -3
- package/dist/lib/floating/usePlacementChangeCallback.js.map +1 -1
- package/dist/lib/sheet/constants.d.ts +28 -0
- package/dist/lib/sheet/constants.d.ts.map +1 -0
- package/dist/lib/sheet/constants.js +23 -0
- package/dist/lib/sheet/constants.js.map +1 -0
- package/dist/lib/sheet/controllers/BottomSheetController.d.ts +51 -0
- package/dist/lib/sheet/controllers/BottomSheetController.d.ts.map +1 -0
- package/dist/lib/sheet/controllers/BottomSheetController.js +259 -0
- package/dist/lib/sheet/controllers/BottomSheetController.js.map +1 -0
- package/dist/lib/sheet/controllers/CSSTransitionController.d.ts +14 -0
- package/dist/lib/sheet/controllers/CSSTransitionController.d.ts.map +1 -0
- package/dist/lib/sheet/controllers/CSSTransitionController.js +51 -0
- package/dist/lib/sheet/controllers/CSSTransitionController.js.map +1 -0
- package/dist/lib/sheet/index.d.ts +3 -0
- package/dist/lib/sheet/index.d.ts.map +1 -0
- package/dist/lib/sheet/index.js +4 -0
- package/dist/lib/sheet/index.js.map +1 -0
- package/dist/lib/sheet/useBottomSheet.d.ts +56 -0
- package/dist/lib/sheet/useBottomSheet.d.ts.map +1 -0
- package/dist/lib/sheet/useBottomSheet.js +116 -0
- package/dist/lib/sheet/useBottomSheet.js.map +1 -0
- package/dist/lib/spacings/sizes.d.ts +3 -2
- package/dist/lib/spacings/sizes.d.ts.map +1 -1
- package/dist/lib/spacings/sizes.js +23 -0
- package/dist/lib/spacings/sizes.js.map +1 -1
- package/dist/lib/touch/UIPanGestureRecognizer.d.ts +8 -9
- package/dist/lib/touch/UIPanGestureRecognizer.d.ts.map +1 -1
- package/dist/lib/touch/UIPanGestureRecognizer.js +10 -0
- package/dist/lib/touch/UIPanGestureRecognizer.js.map +1 -1
- package/dist/lib/touch/index.d.ts +1 -1
- package/dist/lib/touch/index.d.ts.map +1 -1
- package/dist/lib/touch/index.js.map +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +9 -6
- package/src/components/Accordion/Accordion.tsx +9 -7
- package/src/components/ActionSheet/ActionSheet.tsx +18 -13
- package/src/components/Alert/Alert.tsx +65 -59
- package/src/components/AppRoot/AppRoot.module.css +2 -30
- package/src/components/AppRoot/AppRoot.tsx +90 -122
- package/src/components/AppRoot/AppRootContext.ts +11 -2
- package/src/components/AppRoot/AppRootPortal.tsx +71 -30
- package/src/components/AppRoot/AppRootStyleContainer.module.css +77 -0
- package/src/components/AppRoot/AppRootStyleContainer.tsx +72 -0
- package/src/components/AppRoot/ModalPopoutPortal.tsx +27 -0
- package/src/components/AppRoot/helpers.ts +10 -65
- package/src/components/BaseGallery/BaseGallery.tsx +1 -1
- package/src/components/BaseGallery/CarouselBase/CarouselBase.tsx +1 -0
- package/src/components/CalendarHeader/CalendarHeader.tsx +5 -2
- package/src/components/CalendarTime/CalendarTime.tsx +5 -2
- package/src/components/ConfigProvider/ConfigProvider.tsx +22 -11
- package/src/components/Counter/Counter.module.css +80 -12
- package/src/components/Counter/Counter.tsx +64 -7
- package/src/components/CustomSelect/CustomSelect.tsx +7 -1
- package/src/components/FormItem/FormItem.tsx +1 -2
- package/src/components/Gallery/Gallery.tsx +1 -1
- package/src/components/Group/GroupContainer.tsx +2 -2
- package/src/components/Link/Link.module.css +11 -3
- package/src/components/Link/Link.tsx +28 -2
- package/src/components/ModalCard/ModalCard.module.css +60 -44
- package/src/components/ModalCard/ModalCard.tsx +41 -74
- package/src/components/ModalCard/ModalCardInternal.tsx +175 -0
- package/src/components/ModalCard/types.ts +51 -0
- package/src/components/ModalCardBase/ModalCardBase.module.css +0 -1
- package/src/components/ModalCardBase/ModalCardBase.tsx +1 -8
- package/src/components/ModalOutlet/ModalOutlet.module.css +16 -0
- package/src/components/ModalOutlet/ModalOutlet.tsx +31 -0
- package/src/components/ModalOverlay/ModalOverlay.module.css +65 -0
- package/src/components/ModalOverlay/ModalOverlay.tsx +66 -0
- package/src/components/ModalPage/ModalPage.module.css +124 -123
- package/src/components/ModalPage/ModalPage.tsx +42 -164
- package/src/components/ModalPage/ModalPageInternal.tsx +229 -0
- package/src/components/ModalPage/types.ts +112 -0
- package/src/components/ModalPageContent/ModalPageContent.module.css +4 -0
- package/src/components/ModalPageContent/ModalPageContent.tsx +25 -0
- package/src/components/ModalPageFooter/ModalPageFooter.module.css +33 -0
- package/src/components/ModalPageFooter/ModalPageFooter.tsx +31 -0
- package/src/components/ModalPageHeader/ModalPageHeader.module.css +8 -2
- package/src/components/ModalPageHeader/ModalPageHeader.tsx +5 -5
- package/src/components/ModalRoot/ModalRoot.tsx +62 -716
- package/src/components/ModalRoot/ModalRootContext.tsx +13 -50
- package/src/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.module.css +6 -0
- package/src/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.tsx +37 -0
- package/src/components/ModalRoot/types.ts +60 -20
- package/src/components/ModalRoot/useModalManager.tsx +74 -228
- package/src/components/ModalRoot/useModalRootContext.ts +21 -0
- package/src/components/ModalRoot/withModalRootContext.tsx +8 -3
- package/src/components/NativeSelect/NativeSelect.tsx +12 -9
- package/src/components/NavTransitionContext/NavTransitionContext.tsx +7 -4
- package/src/components/PanelHeader/PanelHeader.tsx +2 -2
- package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +14 -12
- package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +4 -1
- package/src/components/PanelHeaderClose/PanelHeaderClose.tsx +10 -13
- package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +10 -12
- package/src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx +11 -10
- package/src/components/PopoutWrapper/PopoutWrapper.tsx +9 -0
- package/src/components/PullToRefresh/PullToRefresh.tsx +11 -7
- package/src/components/ScreenSpinner/ScreenSpinner.tsx +10 -6
- package/src/components/ScreenSpinner/types.tsx +2 -0
- package/src/components/Search/Search.module.css +2 -2
- package/src/components/Separator/Separator.tsx +32 -20
- package/src/components/Skeleton/Skeleton.tsx +4 -4
- package/src/components/Spacing/Spacing.tsx +17 -10
- package/src/components/SplitCol/SplitCol.tsx +7 -5
- package/src/components/SplitLayout/SplitLayout.tsx +20 -10
- package/src/components/Tappable/Tappable.tsx +1 -0
- package/src/components/View/useLayoutEffectCall.tsx +7 -29
- package/src/context/ModalContext.tsx +18 -0
- package/src/helpers/range.ts +4 -0
- package/src/hooks/useObjectMemo.ts +6 -0
- package/src/hooks/usePrevious.ts +9 -0
- package/src/hooks/useStableCallback.ts +1 -1
- package/src/hooks/useStateWithPrev.ts +43 -0
- package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +39 -0
- package/src/hooks/useSyncHTMLWithTokens.ts +27 -0
- package/src/hooks/useVirtualKeyboardState.ts +152 -0
- package/src/index.ts +22 -5
- package/src/lib/SSR.tsx +1 -7
- package/src/lib/adaptivity/functions.ts +8 -1
- package/src/lib/animation/useCSSKeyframesAnimationController.ts +10 -5
- package/src/lib/animation/useCSSTransition.ts +4 -10
- package/src/lib/dom.tsx +85 -13
- package/src/lib/floating/usePlacementChangeCallback.ts +9 -3
- package/src/lib/sheet/constants.ts +32 -0
- package/src/lib/sheet/controllers/BottomSheetController.ts +382 -0
- package/src/lib/sheet/controllers/CSSTransitionController.ts +51 -0
- package/src/lib/sheet/index.ts +10 -0
- package/src/lib/sheet/useBottomSheet.ts +175 -0
- package/src/lib/spacings/sizes.ts +17 -2
- package/src/lib/touch/UIPanGestureRecognizer.ts +12 -9
- package/src/lib/touch/index.ts +4 -1
- package/src/styles/common.css +31 -41
- package/src/styles/constants.css +5 -0
- package/dist/components/ModalPage/ModalPageContext.d.ts +0 -6
- package/dist/components/ModalPage/ModalPageContext.d.ts.map +0 -1
- package/dist/components/ModalPage/ModalPageContext.js +0 -4
- package/dist/components/ModalPage/ModalPageContext.js.map +0 -1
- package/dist/components/ModalRoot/ModalRootAdaptive.d.ts +0 -7
- package/dist/components/ModalRoot/ModalRootAdaptive.d.ts.map +0 -1
- package/dist/components/ModalRoot/ModalRootAdaptive.js +0 -18
- package/dist/components/ModalRoot/ModalRootAdaptive.js.map +0 -1
- package/dist/components/ModalRoot/ModalRootDesktop.d.ts +0 -4
- package/dist/components/ModalRoot/ModalRootDesktop.d.ts.map +0 -1
- package/dist/components/ModalRoot/ModalRootDesktop.js +0 -186
- package/dist/components/ModalRoot/ModalRootDesktop.js.map +0 -1
- package/dist/components/ModalRoot/constants.d.ts +0 -2
- package/dist/components/ModalRoot/constants.d.ts.map +0 -1
- package/dist/components/ModalRoot/constants.js +0 -3
- package/dist/components/ModalRoot/constants.js.map +0 -1
- package/dist/components/PopoutRoot/PopoutRoot.d.ts +0 -19
- package/dist/components/PopoutRoot/PopoutRoot.d.ts.map +0 -1
- package/dist/components/PopoutRoot/PopoutRoot.js +0 -55
- package/dist/components/PopoutRoot/PopoutRoot.js.map +0 -1
- package/dist/cssm/components/ModalPage/ModalPageContext.js +0 -4
- package/dist/cssm/components/ModalPage/ModalPageContext.js.map +0 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.module.css +0 -61
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js +0 -19
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +0 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +0 -179
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +0 -1
- package/dist/cssm/components/ModalRoot/constants.js +0 -3
- package/dist/cssm/components/ModalRoot/constants.js.map +0 -1
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js +0 -41
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +0 -1
- package/dist/cssm/components/PopoutRoot/PopoutRoot.module.css +0 -28
- package/dist/cssm/hooks/useKeyboard.js +0 -40
- package/dist/cssm/hooks/useKeyboard.js.map +0 -1
- package/dist/hooks/useKeyboard.d.ts +0 -11
- package/dist/hooks/useKeyboard.d.ts.map +0 -1
- package/dist/hooks/useKeyboard.js +0 -42
- package/dist/hooks/useKeyboard.js.map +0 -1
- package/src/components/ModalPage/ModalPageContext.tsx +0 -8
- package/src/components/ModalRoot/ModalRoot.module.css +0 -59
- package/src/components/ModalRoot/ModalRootAdaptive.tsx +0 -21
- package/src/components/ModalRoot/ModalRootDesktop.tsx +0 -243
- package/src/components/ModalRoot/constants.ts +0 -1
- package/src/components/ModalRoot/useModalRootContext.tsx +0 -5
- package/src/components/PopoutRoot/PopoutRoot.module.css +0 -28
- package/src/components/PopoutRoot/PopoutRoot.tsx +0 -51
- package/src/hooks/useKeyboard.ts +0 -56
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/components/ModalRoot/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,KAAK,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/ModalRoot/constants.ts"],"sourcesContent":["export const MODAL_PAGE_DEFAULT_PERCENT_HEIGHT = 75;\n"],"names":["MODAL_PAGE_DEFAULT_PERCENT_HEIGHT"],"mappings":"AAAA,OAAO,MAAMA,oCAAoC,GAAG"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import type { HTMLAttributesWithRootRef } from '../../types';
|
|
3
|
-
/**
|
|
4
|
-
* @private
|
|
5
|
-
*/
|
|
6
|
-
export declare const PopoutRootPopout: ({ className, ...restProps }: React.HTMLAttributes<HTMLDivElement>) => React.ReactNode;
|
|
7
|
-
/**
|
|
8
|
-
* @private
|
|
9
|
-
*/
|
|
10
|
-
export declare const PopoutRootModal: ({ className, ...restProps }: React.HTMLAttributes<HTMLDivElement>) => React.ReactNode;
|
|
11
|
-
export interface PopoutRootProps extends HTMLAttributesWithRootRef<HTMLDivElement> {
|
|
12
|
-
popout?: React.ReactNode;
|
|
13
|
-
modal?: React.ReactNode;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* @private
|
|
17
|
-
*/
|
|
18
|
-
export declare const PopoutRoot: ({ popout, modal, children, ...restProps }: PopoutRootProps) => React.ReactNode;
|
|
19
|
-
//# sourceMappingURL=PopoutRoot.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PopoutRoot.d.ts","sourceRoot":"","sources":["../../../src/components/PopoutRoot/PopoutRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAK7D;;GAEG;AACH,eAAO,MAAM,gBAAgB,gCAG1B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,KAAG,KAAK,CAAC,SAE/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,gCAGzB,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,KAAG,KAAK,CAAC,SAE/C,CAAC;AAEF,MAAM,WAAW,eAAgB,SAAQ,yBAAyB,CAAC,cAAc,CAAC;IAChF,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,8CAKpB,eAAe,KAAG,KAAK,CAAC,SAU1B,CAAC"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
|
-
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
|
-
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
4
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
-
import * as React from "react";
|
|
6
|
-
import { classNames } from "@vkontakte/vkjs";
|
|
7
|
-
import { AppRootPortal } from "../AppRoot/AppRootPortal.js";
|
|
8
|
-
import { RootComponent } from "../RootComponent/RootComponent.js";
|
|
9
|
-
/**
|
|
10
|
-
* @private
|
|
11
|
-
*/ export const PopoutRootPopout = (_param)=>{
|
|
12
|
-
var { className } = _param, restProps = _object_without_properties(_param, [
|
|
13
|
-
"className"
|
|
14
|
-
]);
|
|
15
|
-
return /*#__PURE__*/ _jsx("div", _object_spread({
|
|
16
|
-
className: classNames("vkuiPopoutRoot__popout", className)
|
|
17
|
-
}, restProps));
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* @private
|
|
21
|
-
*/ export const PopoutRootModal = (_param)=>{
|
|
22
|
-
var { className } = _param, restProps = _object_without_properties(_param, [
|
|
23
|
-
"className"
|
|
24
|
-
]);
|
|
25
|
-
return /*#__PURE__*/ _jsx("div", _object_spread({
|
|
26
|
-
className: classNames("vkuiPopoutRoot__modal", className)
|
|
27
|
-
}, restProps));
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* @private
|
|
31
|
-
*/ export const PopoutRoot = (_param)=>{
|
|
32
|
-
var { popout, modal, children } = _param, restProps = _object_without_properties(_param, [
|
|
33
|
-
"popout",
|
|
34
|
-
"modal",
|
|
35
|
-
"children"
|
|
36
|
-
]);
|
|
37
|
-
return /*#__PURE__*/ _jsxs(RootComponent, _object_spread_props(_object_spread({}, restProps), {
|
|
38
|
-
baseClassName: "vkuiPopoutRoot__host",
|
|
39
|
-
children: [
|
|
40
|
-
children,
|
|
41
|
-
/*#__PURE__*/ _jsxs(AppRootPortal, {
|
|
42
|
-
children: [
|
|
43
|
-
!!popout && /*#__PURE__*/ _jsx(PopoutRootPopout, {
|
|
44
|
-
children: popout
|
|
45
|
-
}),
|
|
46
|
-
!!modal && /*#__PURE__*/ _jsx(PopoutRootModal, {
|
|
47
|
-
children: modal
|
|
48
|
-
})
|
|
49
|
-
]
|
|
50
|
-
})
|
|
51
|
-
]
|
|
52
|
-
}));
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
//# sourceMappingURL=PopoutRoot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/PopoutRoot/PopoutRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './PopoutRoot.module.css';\n\n/**\n * @private\n */\nexport const PopoutRootPopout = ({\n className,\n ...restProps\n}: React.HTMLAttributes<HTMLDivElement>): React.ReactNode => (\n <div className={classNames(styles.popout, className)} {...restProps} />\n);\n\n/**\n * @private\n */\nexport const PopoutRootModal = ({\n className,\n ...restProps\n}: React.HTMLAttributes<HTMLDivElement>): React.ReactNode => (\n <div className={classNames(styles.modal, className)} {...restProps} />\n);\n\nexport interface PopoutRootProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n popout?: React.ReactNode;\n modal?: React.ReactNode;\n}\n\n/**\n * @private\n */\nexport const PopoutRoot = ({\n popout,\n modal,\n children,\n ...restProps\n}: PopoutRootProps): React.ReactNode => {\n return (\n <RootComponent {...restProps} baseClassName={styles.host}>\n {children}\n <AppRootPortal>\n {!!popout && <PopoutRootPopout>{popout}</PopoutRootPopout>}\n {!!modal && <PopoutRootModal>{modal}</PopoutRootModal>}\n </AppRootPortal>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","AppRootPortal","RootComponent","PopoutRootPopout","className","restProps","div","PopoutRootModal","PopoutRoot","popout","modal","children","baseClassName"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,8BAA2B;AACzD,SAASC,aAAa,QAAQ,oCAAiC;AAG/D;;CAEC,GACD,OAAO,MAAMC,mBAAmB;QAAC,EAC/BC,SAAS,EAE4B,WADlCC;QADHD;;yBAGA,KAACE;QAAIF,WAAWJ,qCAA0BI;OAAgBC;EAC1D;AAEF;;CAEC,GACD,OAAO,MAAME,kBAAkB;QAAC,EAC9BH,SAAS,EAE4B,WADlCC;QADHD;;yBAGA,KAACE;QAAIF,WAAWJ,oCAAyBI;OAAgBC;EACzD;AAOF;;CAEC,GACD,OAAO,MAAMG,aAAa;QAAC,EACzBC,MAAM,EACNC,KAAK,EACLC,QAAQ,EAEQ,WADbN;QAHHI;QACAC;QACAC;;IAGA,qBACE,MAACT,uDAAkBG;QAAWO,aAAa;;YACxCD;0BACD,MAACV;;oBACE,CAAC,CAACQ,wBAAU,KAACN;kCAAkBM;;oBAC/B,CAAC,CAACC,uBAAS,KAACH;kCAAiBG;;;;;;AAItC,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
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.Context<ModalPageContextInterface> =\n React.createContext<ModalPageContextInterface>({});\n"],"names":["React","ModalPageContext","createContext"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAM/B,OAAO,MAAMC,iCACXD,MAAME,aAAa,CAA4B,CAAC,GAAG"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
.host {
|
|
2
|
-
inline-size: 100%;
|
|
3
|
-
block-size: 100%;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
.mask {
|
|
7
|
-
opacity: 1;
|
|
8
|
-
inline-size: 100%;
|
|
9
|
-
block-size: 100%;
|
|
10
|
-
position: absolute;
|
|
11
|
-
inset-inline-start: 0;
|
|
12
|
-
inset-block-start: 0;
|
|
13
|
-
background: rgba(0, 0, 0, 0.4);
|
|
14
|
-
-webkit-user-select: none;
|
|
15
|
-
-moz-user-select: none;
|
|
16
|
-
user-select: none;
|
|
17
|
-
transition: opacity 167ms ease-out;
|
|
18
|
-
animation: animation-modalroot-fade-in 0.32s ease;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.touched .mask {
|
|
22
|
-
transition: none;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.switching .mask {
|
|
26
|
-
/** Во время автоматической анимации смены модалок с фоном взаимодействовать нельзя */
|
|
27
|
-
pointer-events: none;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.viewport {
|
|
31
|
-
position: absolute;
|
|
32
|
-
inset: 0;
|
|
33
|
-
pointer-events: none;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
:not(.desktop).host .viewport {
|
|
37
|
-
inset-block-start: var(--vkui_internal--safe_area_inset_top);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
:not(.desktop).hasCustomPanelHeaderAfterSlot .viewport {
|
|
41
|
-
inset-block-start: calc(
|
|
42
|
-
var(--vkui_internal--safe_area_inset_top) + var(--vkui_internal--panel_header_height)
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.modal {
|
|
47
|
-
position: absolute;
|
|
48
|
-
inline-size: 100%;
|
|
49
|
-
block-size: 100%;
|
|
50
|
-
box-sizing: border-box;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
@keyframes animation-modalroot-fade-in {
|
|
54
|
-
from {
|
|
55
|
-
opacity: 0;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
to {
|
|
59
|
-
opacity: 1;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import * as React from "react";
|
|
4
|
-
import { useAdaptivityWithJSMediaQueries } from "../../hooks/useAdaptivityWithJSMediaQueries.js";
|
|
5
|
-
import { useScrollLock } from "../AppRoot/ScrollContext.js";
|
|
6
|
-
import { ModalRootTouch } from "./ModalRoot.js";
|
|
7
|
-
import { ModalRootDesktop } from "./ModalRootDesktop.js";
|
|
8
|
-
/**
|
|
9
|
-
* @see https://vkcom.github.io/VKUI/#/ModalRoot
|
|
10
|
-
*/ export const ModalRoot = (props)=>{
|
|
11
|
-
const { isDesktop } = useAdaptivityWithJSMediaQueries();
|
|
12
|
-
useScrollLock(!!props.activeModal);
|
|
13
|
-
const RootComponent = isDesktop ? ModalRootDesktop : ModalRootTouch;
|
|
14
|
-
return /*#__PURE__*/ _jsx(RootComponent, {
|
|
15
|
-
...props
|
|
16
|
-
});
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
//# sourceMappingURL=ModalRootAdaptive.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ModalRoot/ModalRootAdaptive.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { ModalRootTouch } from './ModalRoot';\nimport { ModalRootDesktop } from './ModalRootDesktop';\nimport type { ModalRootProps } from './types';\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalRoot\n */\nexport const ModalRoot = (props: ModalRootProps): React.ReactNode => {\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n useScrollLock(!!props.activeModal);\n\n const RootComponent = isDesktop ? ModalRootDesktop : ModalRootTouch;\n\n return <RootComponent {...props} />;\n};\n"],"names":["React","useAdaptivityWithJSMediaQueries","useScrollLock","ModalRootTouch","ModalRootDesktop","ModalRoot","props","isDesktop","activeModal","RootComponent"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,+BAA+B,QAAQ,iDAA8C;AAC9F,SAASC,aAAa,QAAQ,8BAA2B;AACzD,SAASC,cAAc,QAAQ,iBAAc;AAC7C,SAASC,gBAAgB,QAAQ,wBAAqB;AAGtD;;CAEC,GACD,OAAO,MAAMC,YAAY,CAACC;IACxB,MAAM,EAAEC,SAAS,EAAE,GAAGN;IAEtBC,cAAc,CAAC,CAACI,MAAME,WAAW;IAEjC,MAAMC,gBAAgBF,YAAYH,mBAAmBD;IAErD,qBAAO,KAACM;QAAe,GAAGH,KAAK;;AACjC,EAAE"}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import * as React from "react";
|
|
4
|
-
import { classNames, noop } from "@vkontakte/vkjs";
|
|
5
|
-
import { clamp } from "../../helpers/math.js";
|
|
6
|
-
import { useObjectMemo } from "../../hooks/useObjectMemo.js";
|
|
7
|
-
import { usePrevious } from "../../hooks/usePrevious.js";
|
|
8
|
-
import { useWaitTransitionFinish } from "../../hooks/useWaitTransitionFinish.js";
|
|
9
|
-
import { useDOM } from "../../lib/dom.js";
|
|
10
|
-
import { getNavId } from "../../lib/getNavId.js";
|
|
11
|
-
import { warnOnce } from "../../lib/warnOnce.js";
|
|
12
|
-
import { useConfigProvider } from "../ConfigProvider/ConfigProviderContext.js";
|
|
13
|
-
import { FocusTrap } from "../FocusTrap/FocusTrap.js";
|
|
14
|
-
import { ModalRootContext } from "./ModalRootContext.js";
|
|
15
|
-
import { useModalManager } from "./useModalManager.js";
|
|
16
|
-
import styles from "./ModalRoot.module.css";
|
|
17
|
-
const warn = warnOnce('ModalRoot');
|
|
18
|
-
export const ModalRootDesktop = ({ activeModal: activeModalProp, children, noFocusToDialog = false, onOpen, onOpened, onClose, onClosed, modalOverlayTestId })=>{
|
|
19
|
-
const maskElementRef = React.useRef(null);
|
|
20
|
-
const maskAnimationFrame = React.useRef(undefined);
|
|
21
|
-
const restoreFocusTo = React.useRef(undefined);
|
|
22
|
-
const { document } = useDOM();
|
|
23
|
-
const { hasCustomPanelHeaderAfter, platform } = useConfigProvider();
|
|
24
|
-
const { activeModal, exitingModal, onExit, getModalState, enteringModal, onEnter, onEntered: onEnteredProp, onExited, history, delayEnter } = useModalManager(activeModalProp, children, onOpen, onOpened, onClose, onClosed, noop);
|
|
25
|
-
const waitTransitionFinish = useWaitTransitionFinish();
|
|
26
|
-
const prevProps = usePrevious({
|
|
27
|
-
exitingModal,
|
|
28
|
-
enteringModal,
|
|
29
|
-
activeModal
|
|
30
|
-
});
|
|
31
|
-
const modalRootContext = useObjectMemo({
|
|
32
|
-
updateModalHeight: ()=>undefined,
|
|
33
|
-
registerModal: ({ id, ...data })=>Object.assign(getModalState(id) ?? {}, data),
|
|
34
|
-
onClose: onExit,
|
|
35
|
-
isInsideModal: true
|
|
36
|
-
});
|
|
37
|
-
const timeout = platform === 'ios' ? 400 : 320;
|
|
38
|
-
const modals = React.Children.toArray(children);
|
|
39
|
-
/* Анимирует сдвиг модального окна */ const animateModalOpacity = (modalState, display)=>{
|
|
40
|
-
if (modalState?.innerElement) {
|
|
41
|
-
modalState.innerElement.style.transition = '';
|
|
42
|
-
modalState.innerElement.style.transitionDelay = display && delayEnter ? `${timeout}ms` : '';
|
|
43
|
-
modalState.innerElement.style.opacity = display ? '1' : '0';
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
/* Устанавливает прозрачность для полупрозрачной подложки */ const setMaskOpacity = (modalState, forceOpacity = null)=>{
|
|
47
|
-
if (forceOpacity === null && history?.[0] !== modalState.id) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
if (maskAnimationFrame.current) {
|
|
51
|
-
cancelAnimationFrame(maskAnimationFrame.current);
|
|
52
|
-
}
|
|
53
|
-
maskAnimationFrame.current = requestAnimationFrame(()=>{
|
|
54
|
-
if (maskElementRef.current) {
|
|
55
|
-
const { translateY = 0, translateYCurrent = 0 } = modalState;
|
|
56
|
-
const opacity = forceOpacity === null ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0 : forceOpacity;
|
|
57
|
-
maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
|
-
const onEntered = ({ id, modalElement })=>{
|
|
62
|
-
if (!noFocusToDialog && modalElement && !modalElement.contains(document.activeElement)) {
|
|
63
|
-
modalElement.focus();
|
|
64
|
-
}
|
|
65
|
-
onEnteredProp(id);
|
|
66
|
-
};
|
|
67
|
-
const openModal = ()=>{
|
|
68
|
-
if (!enteringModal || !prevProps) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
const enteringState = getModalState(enteringModal);
|
|
72
|
-
onEnter();
|
|
73
|
-
// Анимация открытия модального окна
|
|
74
|
-
if (!prevProps.exitingModal) {
|
|
75
|
-
requestAnimationFrame(()=>{
|
|
76
|
-
if (enteringModal === enteringModal && enteringState) {
|
|
77
|
-
waitTransitionFinish(enteringState.innerElement, ()=>onEntered(enteringState), timeout);
|
|
78
|
-
animateModalOpacity(enteringState, true);
|
|
79
|
-
setMaskOpacity(enteringState, 1);
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
// Переход между модальными окнами без анимации
|
|
85
|
-
requestAnimationFrame(()=>{
|
|
86
|
-
if (enteringState?.innerElement) {
|
|
87
|
-
enteringState.innerElement.style.transition = 'none';
|
|
88
|
-
enteringState.innerElement.style.opacity = '1';
|
|
89
|
-
setMaskOpacity(enteringState, 1);
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
if (enteringState) {
|
|
93
|
-
onEntered(enteringState);
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
const closeModal = (id)=>{
|
|
97
|
-
const prevModalState = getModalState(id);
|
|
98
|
-
if (!prevModalState) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
// Анимация закрытия модального окна
|
|
102
|
-
if (!activeModal) {
|
|
103
|
-
requestAnimationFrame(()=>{
|
|
104
|
-
waitTransitionFinish(prevModalState?.innerElement, (event)=>{
|
|
105
|
-
// Исключаем дочерние элементы
|
|
106
|
-
if (event && event.target === prevModalState?.innerElement) {
|
|
107
|
-
onExited(id);
|
|
108
|
-
} else if (!event) {
|
|
109
|
-
// Вызвался по тайм-ауту
|
|
110
|
-
onExited(id);
|
|
111
|
-
}
|
|
112
|
-
}, timeout);
|
|
113
|
-
animateModalOpacity(prevModalState, false);
|
|
114
|
-
setMaskOpacity(prevModalState, 0);
|
|
115
|
-
});
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
// Переход между модальными окнами без анимации
|
|
119
|
-
onExited(id);
|
|
120
|
-
};
|
|
121
|
-
React.useEffect(()=>{
|
|
122
|
-
if (!prevProps) {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
// transition phase 2: animate exiting modal
|
|
126
|
-
if (exitingModal && exitingModal !== prevProps.exitingModal) {
|
|
127
|
-
closeModal(exitingModal);
|
|
128
|
-
}
|
|
129
|
-
// transition phase 3: animate entering modal
|
|
130
|
-
if (enteringModal && enteringModal !== prevProps.enteringModal) {
|
|
131
|
-
openModal();
|
|
132
|
-
}
|
|
133
|
-
// focus restoration
|
|
134
|
-
if (activeModal && !prevProps.activeModal) {
|
|
135
|
-
restoreFocusTo.current = document?.activeElement ?? undefined;
|
|
136
|
-
}
|
|
137
|
-
if (!activeModal && !exitingModal && restoreFocusTo.current) {
|
|
138
|
-
restoreFocusTo.current.focus();
|
|
139
|
-
restoreFocusTo.current = undefined;
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
if (!activeModal && !exitingModal) {
|
|
143
|
-
return null;
|
|
144
|
-
}
|
|
145
|
-
return /*#__PURE__*/ _jsx(ModalRootContext.Provider, {
|
|
146
|
-
value: modalRootContext,
|
|
147
|
-
children: /*#__PURE__*/ _jsxs("div", {
|
|
148
|
-
className: classNames(styles.host, hasCustomPanelHeaderAfter && styles.hasCustomPanelHeaderAfterSlot, styles.desktop),
|
|
149
|
-
children: [
|
|
150
|
-
/*#__PURE__*/ _jsx("div", {
|
|
151
|
-
"data-testid": modalOverlayTestId,
|
|
152
|
-
className: styles.mask,
|
|
153
|
-
ref: maskElementRef,
|
|
154
|
-
onClick: onExit
|
|
155
|
-
}),
|
|
156
|
-
/*#__PURE__*/ _jsx("div", {
|
|
157
|
-
className: styles.viewport,
|
|
158
|
-
children: modals.map((Modal)=>{
|
|
159
|
-
const modalId = getNavId(Modal.props, warn);
|
|
160
|
-
if (modalId !== activeModal && modalId !== exitingModal) {
|
|
161
|
-
return null;
|
|
162
|
-
}
|
|
163
|
-
const key = `modal-${modalId}`;
|
|
164
|
-
return /*#__PURE__*/ _jsx(FocusTrap, {
|
|
165
|
-
autoFocus: false,
|
|
166
|
-
restoreFocus: false,
|
|
167
|
-
onClose: onExit,
|
|
168
|
-
timeout: timeout,
|
|
169
|
-
className: styles.modal,
|
|
170
|
-
children: Modal
|
|
171
|
-
}, key);
|
|
172
|
-
})
|
|
173
|
-
})
|
|
174
|
-
]
|
|
175
|
-
})
|
|
176
|
-
});
|
|
177
|
-
};
|
|
178
|
-
|
|
179
|
-
//# sourceMappingURL=ModalRootDesktop.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ModalRoot/ModalRootDesktop.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { useDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { ModalRootContext, type ModalRootContextInterface } from './ModalRootContext';\nimport type { ModalRootWithDOMProps, ModalsStateEntry } from './types';\nimport { useModalManager } from './useModalManager';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nexport const ModalRootDesktop = ({\n activeModal: activeModalProp,\n children,\n noFocusToDialog = false,\n onOpen,\n onOpened,\n onClose,\n onClosed,\n modalOverlayTestId,\n}: ModalRootWithDOMProps): React.ReactNode => {\n const maskElementRef = React.useRef<HTMLDivElement>(null);\n const maskAnimationFrame = React.useRef<number | undefined>(undefined);\n const restoreFocusTo = React.useRef<HTMLElement | undefined>(undefined);\n\n const { document } = useDOM();\n const { hasCustomPanelHeaderAfter, platform } = useConfigProvider();\n const {\n activeModal,\n exitingModal,\n onExit,\n getModalState,\n enteringModal,\n onEnter,\n onEntered: onEnteredProp,\n onExited,\n history,\n delayEnter,\n } = useModalManager(activeModalProp, children, onOpen, onOpened, onClose, onClosed, noop);\n\n const waitTransitionFinish = useWaitTransitionFinish();\n const prevProps = usePrevious({\n exitingModal,\n enteringModal,\n activeModal,\n });\n const modalRootContext: ModalRootContextInterface = useObjectMemo({\n updateModalHeight: () => undefined,\n registerModal: ({ id, ...data }) => Object.assign(getModalState(id) ?? {}, data),\n onClose: onExit,\n isInsideModal: true,\n });\n\n const timeout = platform === 'ios' ? 400 : 320;\n const modals = React.Children.toArray(children) as React.ReactElement[];\n\n /* Анимирует сдвиг модального окна */\n const animateModalOpacity = (modalState: ModalsStateEntry | undefined, display: boolean) => {\n if (modalState?.innerElement) {\n modalState.innerElement.style.transition = '';\n modalState.innerElement.style.transitionDelay = display && delayEnter ? `${timeout}ms` : '';\n modalState.innerElement.style.opacity = display ? '1' : '0';\n }\n };\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n const setMaskOpacity = (modalState: ModalsStateEntry, forceOpacity: number | null = null) => {\n if (forceOpacity === null && history?.[0] !== modalState.id) {\n return;\n }\n\n if (maskAnimationFrame.current) {\n cancelAnimationFrame(maskAnimationFrame.current);\n }\n maskAnimationFrame.current = requestAnimationFrame(() => {\n if (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 maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n }\n });\n };\n\n const onEntered = ({ id, modalElement }: ModalsStateEntry) => {\n if (!noFocusToDialog && modalElement && !modalElement.contains(document!.activeElement)) {\n modalElement.focus();\n }\n\n onEnteredProp(id);\n };\n\n const openModal = () => {\n if (!enteringModal || !prevProps) {\n return;\n }\n\n const enteringState = getModalState(enteringModal);\n onEnter();\n\n // Анимация открытия модального окна\n if (!prevProps.exitingModal) {\n requestAnimationFrame(() => {\n if (enteringModal === enteringModal && enteringState) {\n waitTransitionFinish(enteringState.innerElement, () => onEntered(enteringState), timeout);\n animateModalOpacity(enteringState, true);\n setMaskOpacity(enteringState, 1);\n }\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n requestAnimationFrame(() => {\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transition = 'none';\n enteringState.innerElement.style.opacity = '1';\n setMaskOpacity(enteringState, 1);\n }\n });\n\n if (enteringState) {\n onEntered(enteringState);\n }\n };\n\n const closeModal = (id: string) => {\n const prevModalState = getModalState(id);\n if (!prevModalState) {\n return;\n }\n\n // Анимация закрытия модального окна\n if (!activeModal) {\n requestAnimationFrame(() => {\n waitTransitionFinish(\n prevModalState?.innerElement,\n (event) => {\n // Исключаем дочерние элементы\n if (event && event.target === prevModalState?.innerElement) {\n onExited(id);\n } else if (!event) {\n // Вызвался по тайм-ауту\n onExited(id);\n }\n },\n timeout,\n );\n animateModalOpacity(prevModalState, false);\n setMaskOpacity(prevModalState, 0);\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n onExited(id);\n };\n\n React.useEffect(() => {\n if (!prevProps) {\n return;\n }\n\n // transition phase 2: animate exiting modal\n if (exitingModal && exitingModal !== prevProps.exitingModal) {\n closeModal(exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (enteringModal && enteringModal !== prevProps.enteringModal) {\n openModal();\n }\n\n // focus restoration\n if (activeModal && !prevProps.activeModal) {\n restoreFocusTo.current = (document?.activeElement ?? undefined) as HTMLElement | undefined;\n }\n if (!activeModal && !exitingModal && restoreFocusTo.current) {\n restoreFocusTo.current.focus();\n restoreFocusTo.current = undefined;\n }\n });\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <ModalRootContext.Provider value={modalRootContext}>\n <div\n className={classNames(\n styles.host,\n hasCustomPanelHeaderAfter && styles.hasCustomPanelHeaderAfterSlot,\n styles.desktop,\n )}\n >\n <div\n data-testid={modalOverlayTestId}\n className={styles.mask}\n ref={maskElementRef}\n onClick={onExit}\n />\n <div className={styles.viewport}>\n {modals.map((Modal: React.ReactElement) => {\n const modalId = getNavId(Modal.props, warn);\n if (modalId !== activeModal && modalId !== exitingModal) {\n return null;\n }\n\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n autoFocus={false}\n restoreFocus={false}\n onClose={onExit}\n timeout={timeout}\n key={key}\n className={styles.modal}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </div>\n </ModalRootContext.Provider>\n );\n};\n"],"names":["React","classNames","noop","clamp","useObjectMemo","usePrevious","useWaitTransitionFinish","useDOM","getNavId","warnOnce","useConfigProvider","FocusTrap","ModalRootContext","useModalManager","styles","warn","ModalRootDesktop","activeModal","activeModalProp","children","noFocusToDialog","onOpen","onOpened","onClose","onClosed","modalOverlayTestId","maskElementRef","useRef","maskAnimationFrame","undefined","restoreFocusTo","document","hasCustomPanelHeaderAfter","platform","exitingModal","onExit","getModalState","enteringModal","onEnter","onEntered","onEnteredProp","onExited","history","delayEnter","waitTransitionFinish","prevProps","modalRootContext","updateModalHeight","registerModal","id","data","Object","assign","isInsideModal","timeout","modals","Children","toArray","animateModalOpacity","modalState","display","innerElement","style","transition","transitionDelay","opacity","setMaskOpacity","forceOpacity","current","cancelAnimationFrame","requestAnimationFrame","translateY","translateYCurrent","toString","modalElement","contains","activeElement","focus","openModal","enteringState","closeModal","prevModalState","event","target","useEffect","Provider","value","div","className","host","hasCustomPanelHeaderAfterSlot","desktop","data-testid","mask","ref","onClick","viewport","map","Modal","modalId","props","key","autoFocus","restoreFocus","modal"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ModalRoot/constants.ts"],"sourcesContent":["export const MODAL_PAGE_DEFAULT_PERCENT_HEIGHT = 75;\n"],"names":["MODAL_PAGE_DEFAULT_PERCENT_HEIGHT"],"mappings":"AAAA,OAAO,MAAMA,oCAAoC,GAAG"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import { classNames } from "@vkontakte/vkjs";
|
|
4
|
-
import { AppRootPortal } from "../AppRoot/AppRootPortal.js";
|
|
5
|
-
import { RootComponent } from "../RootComponent/RootComponent.js";
|
|
6
|
-
import styles from "./PopoutRoot.module.css";
|
|
7
|
-
/**
|
|
8
|
-
* @private
|
|
9
|
-
*/ export const PopoutRootPopout = ({ className, ...restProps })=>/*#__PURE__*/ _jsx("div", {
|
|
10
|
-
className: classNames(styles.popout, className),
|
|
11
|
-
...restProps
|
|
12
|
-
});
|
|
13
|
-
/**
|
|
14
|
-
* @private
|
|
15
|
-
*/ export const PopoutRootModal = ({ className, ...restProps })=>/*#__PURE__*/ _jsx("div", {
|
|
16
|
-
className: classNames(styles.modal, className),
|
|
17
|
-
...restProps
|
|
18
|
-
});
|
|
19
|
-
/**
|
|
20
|
-
* @private
|
|
21
|
-
*/ export const PopoutRoot = ({ popout, modal, children, ...restProps })=>{
|
|
22
|
-
return /*#__PURE__*/ _jsxs(RootComponent, {
|
|
23
|
-
...restProps,
|
|
24
|
-
baseClassName: styles.host,
|
|
25
|
-
children: [
|
|
26
|
-
children,
|
|
27
|
-
/*#__PURE__*/ _jsxs(AppRootPortal, {
|
|
28
|
-
children: [
|
|
29
|
-
!!popout && /*#__PURE__*/ _jsx(PopoutRootPopout, {
|
|
30
|
-
children: popout
|
|
31
|
-
}),
|
|
32
|
-
!!modal && /*#__PURE__*/ _jsx(PopoutRootModal, {
|
|
33
|
-
children: modal
|
|
34
|
-
})
|
|
35
|
-
]
|
|
36
|
-
})
|
|
37
|
-
]
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
//# sourceMappingURL=PopoutRoot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/PopoutRoot/PopoutRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './PopoutRoot.module.css';\n\n/**\n * @private\n */\nexport const PopoutRootPopout = ({\n className,\n ...restProps\n}: React.HTMLAttributes<HTMLDivElement>): React.ReactNode => (\n <div className={classNames(styles.popout, className)} {...restProps} />\n);\n\n/**\n * @private\n */\nexport const PopoutRootModal = ({\n className,\n ...restProps\n}: React.HTMLAttributes<HTMLDivElement>): React.ReactNode => (\n <div className={classNames(styles.modal, className)} {...restProps} />\n);\n\nexport interface PopoutRootProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n popout?: React.ReactNode;\n modal?: React.ReactNode;\n}\n\n/**\n * @private\n */\nexport const PopoutRoot = ({\n popout,\n modal,\n children,\n ...restProps\n}: PopoutRootProps): React.ReactNode => {\n return (\n <RootComponent {...restProps} baseClassName={styles.host}>\n {children}\n <AppRootPortal>\n {!!popout && <PopoutRootPopout>{popout}</PopoutRootPopout>}\n {!!modal && <PopoutRootModal>{modal}</PopoutRootModal>}\n </AppRootPortal>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","AppRootPortal","RootComponent","styles","PopoutRootPopout","className","restProps","div","popout","PopoutRootModal","modal","PopoutRoot","children","baseClassName","host"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,8BAA2B;AACzD,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,OAAOC,YAAY,0BAA0B;AAE7C;;CAEC,GACD,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,SAAS,EACT,GAAGC,WACkC,iBACrC,KAACC;QAAIF,WAAWL,WAAWG,OAAOK,MAAM,EAAEH;QAAa,GAAGC,SAAS;OACnE;AAEF;;CAEC,GACD,OAAO,MAAMG,kBAAkB,CAAC,EAC9BJ,SAAS,EACT,GAAGC,WACkC,iBACrC,KAACC;QAAIF,WAAWL,WAAWG,OAAOO,KAAK,EAAEL;QAAa,GAAGC,SAAS;OAClE;AAOF;;CAEC,GACD,OAAO,MAAMK,aAAa,CAAC,EACzBH,MAAM,EACNE,KAAK,EACLE,QAAQ,EACR,GAAGN,WACa;IAChB,qBACE,MAACJ;QAAe,GAAGI,SAAS;QAAEO,eAAeV,OAAOW,IAAI;;YACrDF;0BACD,MAACX;;oBACE,CAAC,CAACO,wBAAU,KAACJ;kCAAkBI;;oBAC/B,CAAC,CAACE,uBAAS,KAACD;kCAAiBC;;;;;;AAItC,EAAE"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
.host {
|
|
2
|
-
inline-size: 100%;
|
|
3
|
-
block-size: 100%;
|
|
4
|
-
position: relative;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.popout {
|
|
8
|
-
position: fixed;
|
|
9
|
-
inset-inline-start: 0;
|
|
10
|
-
inset-block-start: 0;
|
|
11
|
-
z-index: var(--vkui--z_index_popout);
|
|
12
|
-
inline-size: 100%;
|
|
13
|
-
block-size: 100%;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.modal {
|
|
17
|
-
position: fixed;
|
|
18
|
-
inset-inline-start: 0;
|
|
19
|
-
inset-block-start: 0;
|
|
20
|
-
z-index: var(--vkui--z_index_modal);
|
|
21
|
-
inline-size: 100%;
|
|
22
|
-
block-size: 100%;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.popout:empty,
|
|
26
|
-
.modal:empty {
|
|
27
|
-
display: none;
|
|
28
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { useDOM } from "../lib/dom.js";
|
|
3
|
-
import { useGlobalEventListener } from "./useGlobalEventListener.js";
|
|
4
|
-
/**
|
|
5
|
-
Проверяет, закрыла ли клавиатура часть экрана, 24% подошло к большинству устройств
|
|
6
|
-
Работает на iOS и Android, где софт-клавиатура ресайзит viewport в браузерах
|
|
7
|
-
*/ export function getPreciseKeyboardState(window) {
|
|
8
|
-
const { innerHeight, screen: { availHeight } } = window;
|
|
9
|
-
const coveredViewportPercentage = Math.round((1 - innerHeight / availHeight) * 100);
|
|
10
|
-
return coveredViewportPercentage > 24;
|
|
11
|
-
}
|
|
12
|
-
const eventOptions = {
|
|
13
|
-
passive: true,
|
|
14
|
-
capture: false
|
|
15
|
-
};
|
|
16
|
-
export function useKeyboard() {
|
|
17
|
-
const { document } = useDOM();
|
|
18
|
-
const [isOpened, setIsOpened] = React.useState(false);
|
|
19
|
-
const onFocus = React.useCallback((event)=>{
|
|
20
|
-
const isOpened = (event === true || event.type === 'focusin') && (document?.activeElement?.tagName === 'INPUT' || document?.activeElement?.tagName === 'TEXTAREA');
|
|
21
|
-
setIsOpened(isOpened);
|
|
22
|
-
}, [
|
|
23
|
-
document?.activeElement?.tagName
|
|
24
|
-
]);
|
|
25
|
-
/**
|
|
26
|
-
У полей с autoFocus не отлавливаются события focus, для этого вызываем вручную,
|
|
27
|
-
чтобы иметь хоть какое-то понимание происходящего.
|
|
28
|
-
*/ React.useEffect(()=>{
|
|
29
|
-
onFocus(true);
|
|
30
|
-
}, [
|
|
31
|
-
onFocus
|
|
32
|
-
]);
|
|
33
|
-
useGlobalEventListener(document, 'focusout', onFocus, eventOptions);
|
|
34
|
-
useGlobalEventListener(document, 'focusin', onFocus, eventOptions);
|
|
35
|
-
return {
|
|
36
|
-
isOpened
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
//# sourceMappingURL=useKeyboard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useKeyboard.ts"],"sourcesContent":["import * as React from 'react';\nimport { useDOM } from '../lib/dom';\nimport { useGlobalEventListener } from './useGlobalEventListener';\n\ninterface SoftwareKeyboardState {\n isOpened: boolean;\n}\n\n/**\n Проверяет, закрыла ли клавиатура часть экрана, 24% подошло к большинству устройств\n Работает на iOS и Android, где софт-клавиатура ресайзит viewport в браузерах\n */\nexport function getPreciseKeyboardState(window: any): boolean {\n const {\n innerHeight,\n screen: { availHeight },\n } = window;\n\n const coveredViewportPercentage = Math.round((1 - innerHeight / availHeight) * 100);\n return coveredViewportPercentage > 24;\n}\n\nconst eventOptions = {\n passive: true,\n capture: false,\n};\n\nexport function useKeyboard(): SoftwareKeyboardState {\n const { document } = useDOM();\n\n const [isOpened, setIsOpened] = React.useState(false);\n\n const onFocus = React.useCallback(\n (event: FocusEvent | true) => {\n const isOpened =\n (event === true || event.type === 'focusin') &&\n (document?.activeElement?.tagName === 'INPUT' ||\n document?.activeElement?.tagName === 'TEXTAREA');\n setIsOpened(isOpened);\n },\n [document?.activeElement?.tagName],\n );\n\n /**\n У полей с autoFocus не отлавливаются события focus, для этого вызываем вручную,\n чтобы иметь хоть какое-то понимание происходящего.\n */\n React.useEffect(() => {\n onFocus(true);\n }, [onFocus]);\n\n useGlobalEventListener(document, 'focusout', onFocus, eventOptions);\n useGlobalEventListener(document, 'focusin', onFocus, eventOptions);\n\n return { isOpened };\n}\n"],"names":["React","useDOM","useGlobalEventListener","getPreciseKeyboardState","window","innerHeight","screen","availHeight","coveredViewportPercentage","Math","round","eventOptions","passive","capture","useKeyboard","document","isOpened","setIsOpened","useState","onFocus","useCallback","event","type","activeElement","tagName","useEffect"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,MAAM,QAAQ,gBAAa;AACpC,SAASC,sBAAsB,QAAQ,8BAA2B;AAMlE;;;CAGC,GACD,OAAO,SAASC,wBAAwBC,MAAW;IACjD,MAAM,EACJC,WAAW,EACXC,QAAQ,EAAEC,WAAW,EAAE,EACxB,GAAGH;IAEJ,MAAMI,4BAA4BC,KAAKC,KAAK,CAAC,AAAC,CAAA,IAAIL,cAAcE,WAAU,IAAK;IAC/E,OAAOC,4BAA4B;AACrC;AAEA,MAAMG,eAAe;IACnBC,SAAS;IACTC,SAAS;AACX;AAEA,OAAO,SAASC;IACd,MAAM,EAAEC,QAAQ,EAAE,GAAGd;IAErB,MAAM,CAACe,UAAUC,YAAY,GAAGjB,MAAMkB,QAAQ,CAAC;IAE/C,MAAMC,UAAUnB,MAAMoB,WAAW,CAC/B,CAACC;QACC,MAAML,WACJ,AAACK,CAAAA,UAAU,QAAQA,MAAMC,IAAI,KAAK,SAAQ,KACzCP,CAAAA,UAAUQ,eAAeC,YAAY,WACpCT,UAAUQ,eAAeC,YAAY,UAAS;QAClDP,YAAYD;IACd,GACA;QAACD,UAAUQ,eAAeC;KAAQ;IAGpC;;;GAGC,GACDxB,MAAMyB,SAAS,CAAC;QACdN,QAAQ;IACV,GAAG;QAACA;KAAQ;IAEZjB,uBAAuBa,UAAU,YAAYI,SAASR;IACtDT,uBAAuBa,UAAU,WAAWI,SAASR;IAErD,OAAO;QAAEK;IAAS;AACpB"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
interface SoftwareKeyboardState {
|
|
2
|
-
isOpened: boolean;
|
|
3
|
-
}
|
|
4
|
-
/**
|
|
5
|
-
Проверяет, закрыла ли клавиатура часть экрана, 24% подошло к большинству устройств
|
|
6
|
-
Работает на iOS и Android, где софт-клавиатура ресайзит viewport в браузерах
|
|
7
|
-
*/
|
|
8
|
-
export declare function getPreciseKeyboardState(window: any): boolean;
|
|
9
|
-
export declare function useKeyboard(): SoftwareKeyboardState;
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=useKeyboard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyboard.d.ts","sourceRoot":"","sources":["../../src/hooks/useKeyboard.ts"],"names":[],"mappings":"AAIA,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAQ5D;AAOD,wBAAgB,WAAW,IAAI,qBAAqB,CA4BnD"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { useDOM } from "../lib/dom.js";
|
|
3
|
-
import { useGlobalEventListener } from "./useGlobalEventListener.js";
|
|
4
|
-
/**
|
|
5
|
-
Проверяет, закрыла ли клавиатура часть экрана, 24% подошло к большинству устройств
|
|
6
|
-
Работает на iOS и Android, где софт-клавиатура ресайзит viewport в браузерах
|
|
7
|
-
*/ export function getPreciseKeyboardState(window) {
|
|
8
|
-
const { innerHeight, screen: { availHeight } } = window;
|
|
9
|
-
const coveredViewportPercentage = Math.round((1 - innerHeight / availHeight) * 100);
|
|
10
|
-
return coveredViewportPercentage > 24;
|
|
11
|
-
}
|
|
12
|
-
const eventOptions = {
|
|
13
|
-
passive: true,
|
|
14
|
-
capture: false
|
|
15
|
-
};
|
|
16
|
-
export function useKeyboard() {
|
|
17
|
-
var _document_activeElement;
|
|
18
|
-
const { document } = useDOM();
|
|
19
|
-
const [isOpened, setIsOpened] = React.useState(false);
|
|
20
|
-
const onFocus = React.useCallback((event)=>{
|
|
21
|
-
var _document_activeElement, _document_activeElement1;
|
|
22
|
-
const isOpened = (event === true || event.type === 'focusin') && ((document === null || document === void 0 ? void 0 : (_document_activeElement = document.activeElement) === null || _document_activeElement === void 0 ? void 0 : _document_activeElement.tagName) === 'INPUT' || (document === null || document === void 0 ? void 0 : (_document_activeElement1 = document.activeElement) === null || _document_activeElement1 === void 0 ? void 0 : _document_activeElement1.tagName) === 'TEXTAREA');
|
|
23
|
-
setIsOpened(isOpened);
|
|
24
|
-
}, [
|
|
25
|
-
document === null || document === void 0 ? void 0 : (_document_activeElement = document.activeElement) === null || _document_activeElement === void 0 ? void 0 : _document_activeElement.tagName
|
|
26
|
-
]);
|
|
27
|
-
/**
|
|
28
|
-
У полей с autoFocus не отлавливаются события focus, для этого вызываем вручную,
|
|
29
|
-
чтобы иметь хоть какое-то понимание происходящего.
|
|
30
|
-
*/ React.useEffect(()=>{
|
|
31
|
-
onFocus(true);
|
|
32
|
-
}, [
|
|
33
|
-
onFocus
|
|
34
|
-
]);
|
|
35
|
-
useGlobalEventListener(document, 'focusout', onFocus, eventOptions);
|
|
36
|
-
useGlobalEventListener(document, 'focusin', onFocus, eventOptions);
|
|
37
|
-
return {
|
|
38
|
-
isOpened
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
//# sourceMappingURL=useKeyboard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useKeyboard.ts"],"sourcesContent":["import * as React from 'react';\nimport { useDOM } from '../lib/dom';\nimport { useGlobalEventListener } from './useGlobalEventListener';\n\ninterface SoftwareKeyboardState {\n isOpened: boolean;\n}\n\n/**\n Проверяет, закрыла ли клавиатура часть экрана, 24% подошло к большинству устройств\n Работает на iOS и Android, где софт-клавиатура ресайзит viewport в браузерах\n */\nexport function getPreciseKeyboardState(window: any): boolean {\n const {\n innerHeight,\n screen: { availHeight },\n } = window;\n\n const coveredViewportPercentage = Math.round((1 - innerHeight / availHeight) * 100);\n return coveredViewportPercentage > 24;\n}\n\nconst eventOptions = {\n passive: true,\n capture: false,\n};\n\nexport function useKeyboard(): SoftwareKeyboardState {\n const { document } = useDOM();\n\n const [isOpened, setIsOpened] = React.useState(false);\n\n const onFocus = React.useCallback(\n (event: FocusEvent | true) => {\n const isOpened =\n (event === true || event.type === 'focusin') &&\n (document?.activeElement?.tagName === 'INPUT' ||\n document?.activeElement?.tagName === 'TEXTAREA');\n setIsOpened(isOpened);\n },\n [document?.activeElement?.tagName],\n );\n\n /**\n У полей с autoFocus не отлавливаются события focus, для этого вызываем вручную,\n чтобы иметь хоть какое-то понимание происходящего.\n */\n React.useEffect(() => {\n onFocus(true);\n }, [onFocus]);\n\n useGlobalEventListener(document, 'focusout', onFocus, eventOptions);\n useGlobalEventListener(document, 'focusin', onFocus, eventOptions);\n\n return { isOpened };\n}\n"],"names":["React","useDOM","useGlobalEventListener","getPreciseKeyboardState","window","innerHeight","screen","availHeight","coveredViewportPercentage","Math","round","eventOptions","passive","capture","useKeyboard","document","isOpened","setIsOpened","useState","onFocus","useCallback","event","type","activeElement","tagName","useEffect"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,MAAM,QAAQ,gBAAa;AACpC,SAASC,sBAAsB,QAAQ,8BAA2B;AAMlE;;;CAGC,GACD,OAAO,SAASC,wBAAwBC,MAAW;IACjD,MAAM,EACJC,WAAW,EACXC,QAAQ,EAAEC,WAAW,EAAE,EACxB,GAAGH;IAEJ,MAAMI,4BAA4BC,KAAKC,KAAK,CAAC,AAAC,CAAA,IAAIL,cAAcE,WAAU,IAAK;IAC/E,OAAOC,4BAA4B;AACrC;AAEA,MAAMG,eAAe;IACnBC,SAAS;IACTC,SAAS;AACX;AAEA,OAAO,SAASC;QAaXC;IAZH,MAAM,EAAEA,QAAQ,EAAE,GAAGd;IAErB,MAAM,CAACe,UAAUC,YAAY,GAAGjB,MAAMkB,QAAQ,CAAC;IAE/C,MAAMC,UAAUnB,MAAMoB,WAAW,CAC/B,CAACC;YAGIN,yBACCA;QAHJ,MAAMC,WACJ,AAACK,CAAAA,UAAU,QAAQA,MAAMC,IAAI,KAAK,SAAQ,KACzCP,CAAAA,CAAAA,qBAAAA,gCAAAA,0BAAAA,SAAUQ,aAAa,cAAvBR,8CAAAA,wBAAyBS,OAAO,MAAK,WACpCT,CAAAA,qBAAAA,gCAAAA,2BAAAA,SAAUQ,aAAa,cAAvBR,+CAAAA,yBAAyBS,OAAO,MAAK,UAAS;QAClDP,YAAYD;IACd,GACA;QAACD,qBAAAA,gCAAAA,0BAAAA,SAAUQ,aAAa,cAAvBR,8CAAAA,wBAAyBS,OAAO;KAAC;IAGpC;;;GAGC,GACDxB,MAAMyB,SAAS,CAAC;QACdN,QAAQ;IACV,GAAG;QAACA;KAAQ;IAEZjB,uBAAuBa,UAAU,YAAYI,SAASR;IACtDT,uBAAuBa,UAAU,WAAWI,SAASR;IAErD,OAAO;QAAEK;IAAS;AACpB"}
|