react-native-screen-transitions 4.1.0-beta.0 → 4.1.0-beta.1
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/lib/commonjs/components/boundary/components/boundary-lifecycle.js +40 -8
- package/lib/commonjs/components/boundary/components/boundary-lifecycle.js.map +1 -1
- package/lib/commonjs/components/boundary/components/boundary-target.js +10 -17
- package/lib/commonjs/components/boundary/components/boundary-target.js.map +1 -1
- package/lib/commonjs/components/boundary/create-boundary-component.js +13 -16
- package/lib/commonjs/components/boundary/create-boundary-component.js.map +1 -1
- package/lib/commonjs/components/boundary/helpers/presentation.js +56 -0
- package/lib/commonjs/components/boundary/helpers/presentation.js.map +1 -0
- package/lib/commonjs/components/boundary/hooks/use-boundary-presentation.js +65 -0
- package/lib/commonjs/components/boundary/hooks/use-boundary-presentation.js.map +1 -0
- package/lib/commonjs/components/boundary/hooks/use-composed-boundary-style.js +43 -0
- package/lib/commonjs/components/boundary/hooks/use-composed-boundary-style.js.map +1 -0
- package/lib/commonjs/components/boundary/index.js +2 -3
- package/lib/commonjs/components/boundary/index.js.map +1 -1
- package/lib/commonjs/components/boundary/portal/components/portal-host.js +39 -0
- package/lib/commonjs/components/boundary/portal/components/portal-host.js.map +1 -0
- package/lib/commonjs/components/boundary/portal/components/portal-overlay.js +170 -0
- package/lib/commonjs/components/boundary/portal/components/portal-overlay.js.map +1 -0
- package/lib/commonjs/components/boundary/portal/components/portal.js +88 -0
- package/lib/commonjs/components/boundary/portal/components/portal.js.map +1 -0
- package/lib/commonjs/components/boundary/portal/helpers/offset-style.js.map +1 -0
- package/lib/commonjs/components/boundary/portal/hooks/use-active-portal-boundary-host.js +35 -0
- package/lib/commonjs/components/boundary/portal/hooks/use-active-portal-boundary-host.js.map +1 -0
- package/lib/commonjs/components/boundary/portal/hooks/use-host-measurement.js +83 -0
- package/lib/commonjs/components/boundary/portal/hooks/use-host-measurement.js.map +1 -0
- package/lib/commonjs/components/boundary/portal/hooks/use-placeholder-styles.js.map +1 -0
- package/lib/commonjs/components/boundary/portal/hooks/use-portal-destination.js +58 -0
- package/lib/commonjs/components/boundary/portal/hooks/use-portal-destination.js.map +1 -0
- package/lib/commonjs/components/boundary/portal/index.js +0 -7
- package/lib/commonjs/components/boundary/portal/index.js.map +1 -1
- package/lib/commonjs/components/boundary/portal/{components/boundary-portal/stores → stores}/host-registry.store.js +1 -12
- package/lib/commonjs/components/boundary/portal/stores/host-registry.store.js.map +1 -0
- package/lib/commonjs/components/boundary/portal/{components/boundary-portal/stores → stores}/portal-boundary-host.store.js +17 -17
- package/lib/commonjs/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -0
- package/lib/commonjs/components/boundary/portal/utils/naming.js +8 -1
- package/lib/commonjs/components/boundary/portal/utils/naming.js.map +1 -1
- package/lib/commonjs/components/boundary/portal/utils/resolve-portal.js +7 -27
- package/lib/commonjs/components/boundary/portal/utils/resolve-portal.js.map +1 -1
- package/lib/commonjs/components/boundary/providers/boundary-root.provider.js +13 -7
- package/lib/commonjs/components/boundary/providers/boundary-root.provider.js.map +1 -1
- package/lib/commonjs/components/screen/container/helpers/layer-component.js +39 -0
- package/lib/commonjs/components/screen/container/helpers/layer-component.js.map +1 -0
- package/lib/commonjs/components/screen/container/{layers/render-component.js → helpers/uses-layer-render-props.js} +1 -1
- package/lib/commonjs/components/screen/container/helpers/uses-layer-render-props.js.map +1 -0
- package/lib/commonjs/components/screen/container/layers/backdrop.js +4 -13
- package/lib/commonjs/components/screen/container/layers/backdrop.js.map +1 -1
- package/lib/commonjs/components/screen/container/layers/clip.js +117 -0
- package/lib/commonjs/components/screen/container/layers/clip.js.map +1 -0
- package/lib/commonjs/components/screen/container/layers/content.js +17 -33
- package/lib/commonjs/components/screen/container/layers/content.js.map +1 -1
- package/lib/commonjs/components/screen/container/layers/surface.js +3 -15
- package/lib/commonjs/components/screen/container/layers/surface.js.map +1 -1
- package/lib/commonjs/components/screen/lifecycle/hooks/use-open-transition-intent.js +15 -0
- package/lib/commonjs/components/screen/lifecycle/hooks/use-open-transition-intent.js.map +1 -1
- package/lib/commonjs/constants.js +3 -1
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/hooks/navigation/use-navigation-helpers.js +16 -4
- package/lib/commonjs/hooks/navigation/use-navigation-helpers.js.map +1 -1
- package/lib/commonjs/providers/screen/motion/animation/helpers/build-screen-transition-options.js +0 -1
- package/lib/commonjs/providers/screen/motion/animation/helpers/build-screen-transition-options.js.map +1 -1
- package/lib/commonjs/providers/screen/motion/animation/helpers/hydrate-transition-state/index.js +3 -2
- package/lib/commonjs/providers/screen/motion/animation/helpers/hydrate-transition-state/index.js.map +1 -1
- package/lib/commonjs/providers/screen/motion/options/helpers.js +1 -3
- package/lib/commonjs/providers/screen/motion/options/helpers.js.map +1 -1
- package/lib/commonjs/providers/screen/orchestrator/helpers/use-interpolator-state.js +4 -2
- package/lib/commonjs/providers/screen/orchestrator/helpers/use-interpolator-state.js.map +1 -1
- package/lib/commonjs/providers/screen/orchestrator/helpers/use-pair-presentation.js +79 -0
- package/lib/commonjs/providers/screen/orchestrator/helpers/use-pair-presentation.js.map +1 -0
- package/lib/commonjs/providers/screen/orchestrator/orchestrator.provider.js +3 -0
- package/lib/commonjs/providers/screen/orchestrator/orchestrator.provider.js.map +1 -1
- package/lib/commonjs/providers/screen/orchestrator/styles/constants.js +1 -0
- package/lib/commonjs/providers/screen/orchestrator/styles/constants.js.map +1 -1
- package/lib/commonjs/providers/screen/orchestrator/styles/hooks/slot-resolvers.js +5 -8
- package/lib/commonjs/providers/screen/orchestrator/styles/hooks/slot-resolvers.js.map +1 -1
- package/lib/commonjs/utils/bounds/navigation/reveal/build.js +28 -61
- package/lib/commonjs/utils/bounds/navigation/reveal/build.js.map +1 -1
- package/lib/commonjs/utils/bounds/navigation/reveal/config.js +3 -4
- package/lib/commonjs/utils/bounds/navigation/reveal/config.js.map +1 -1
- package/lib/commonjs/utils/bounds/navigation/reveal/math.js +8 -8
- package/lib/commonjs/utils/bounds/navigation/reveal/math.js.map +1 -1
- package/lib/commonjs/utils/bounds/navigation/reveal/types.js +3 -1
- package/lib/commonjs/utils/bounds/navigation/reveal/types.js.map +1 -1
- package/lib/commonjs/utils/bounds/navigation/zoom/build.js +4 -6
- package/lib/commonjs/utils/bounds/navigation/zoom/build.js.map +1 -1
- package/lib/commonjs/utils/bounds/navigation/zoom/clip.js +64 -0
- package/lib/commonjs/utils/bounds/navigation/zoom/clip.js.map +1 -0
- package/lib/commonjs/utils/bounds/navigation/zoom/drag.js +1 -1
- package/lib/commonjs/utils/bounds/navigation/zoom/drag.js.map +1 -1
- package/lib/commonjs/utils/bounds/navigation/zoom/types.js +3 -1
- package/lib/commonjs/utils/bounds/navigation/zoom/types.js.map +1 -1
- package/lib/module/components/boundary/components/boundary-lifecycle.js +41 -9
- package/lib/module/components/boundary/components/boundary-lifecycle.js.map +1 -1
- package/lib/module/components/boundary/components/boundary-target.js +10 -17
- package/lib/module/components/boundary/components/boundary-target.js.map +1 -1
- package/lib/module/components/boundary/create-boundary-component.js +13 -16
- package/lib/module/components/boundary/create-boundary-component.js.map +1 -1
- package/lib/module/components/boundary/helpers/presentation.js +50 -0
- package/lib/module/components/boundary/helpers/presentation.js.map +1 -0
- package/lib/module/components/boundary/hooks/use-boundary-presentation.js +62 -0
- package/lib/module/components/boundary/hooks/use-boundary-presentation.js.map +1 -0
- package/lib/module/components/boundary/hooks/use-composed-boundary-style.js +39 -0
- package/lib/module/components/boundary/hooks/use-composed-boundary-style.js.map +1 -0
- package/lib/module/components/boundary/index.js +2 -3
- package/lib/module/components/boundary/index.js.map +1 -1
- package/lib/module/components/boundary/portal/components/portal-host.js +34 -0
- package/lib/module/components/boundary/portal/components/portal-host.js.map +1 -0
- package/lib/module/components/boundary/portal/components/portal-overlay.js +165 -0
- package/lib/module/components/boundary/portal/components/portal-overlay.js.map +1 -0
- package/lib/module/components/boundary/portal/components/portal.js +83 -0
- package/lib/module/components/boundary/portal/components/portal.js.map +1 -0
- package/lib/module/components/boundary/portal/helpers/offset-style.js.map +1 -0
- package/lib/module/components/boundary/portal/hooks/use-active-portal-boundary-host.js +31 -0
- package/lib/module/components/boundary/portal/hooks/use-active-portal-boundary-host.js.map +1 -0
- package/lib/module/components/boundary/portal/hooks/use-host-measurement.js +78 -0
- package/lib/module/components/boundary/portal/hooks/use-host-measurement.js.map +1 -0
- package/lib/module/components/boundary/portal/hooks/use-placeholder-styles.js.map +1 -0
- package/lib/module/components/boundary/portal/hooks/use-portal-destination.js +54 -0
- package/lib/module/components/boundary/portal/hooks/use-portal-destination.js.map +1 -0
- package/lib/module/components/boundary/portal/index.js +0 -1
- package/lib/module/components/boundary/portal/index.js.map +1 -1
- package/lib/module/components/boundary/portal/{components/boundary-portal/stores → stores}/host-registry.store.js +1 -12
- package/lib/module/components/boundary/portal/stores/host-registry.store.js.map +1 -0
- package/lib/module/components/boundary/portal/{components/boundary-portal/stores → stores}/portal-boundary-host.store.js +17 -17
- package/lib/module/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -0
- package/lib/module/components/boundary/portal/utils/naming.js +6 -0
- package/lib/module/components/boundary/portal/utils/naming.js.map +1 -1
- package/lib/module/components/boundary/portal/utils/resolve-portal.js +7 -27
- package/lib/module/components/boundary/portal/utils/resolve-portal.js.map +1 -1
- package/lib/module/components/boundary/providers/boundary-root.provider.js +13 -7
- package/lib/module/components/boundary/providers/boundary-root.provider.js.map +1 -1
- package/lib/module/components/screen/container/helpers/layer-component.js +35 -0
- package/lib/module/components/screen/container/helpers/layer-component.js.map +1 -0
- package/lib/module/components/screen/container/{layers/render-component.js → helpers/uses-layer-render-props.js} +1 -1
- package/lib/module/components/screen/container/helpers/uses-layer-render-props.js.map +1 -0
- package/lib/module/components/screen/container/layers/backdrop.js +5 -13
- package/lib/module/components/screen/container/layers/backdrop.js.map +1 -1
- package/lib/module/components/screen/container/layers/clip.js +112 -0
- package/lib/module/components/screen/container/layers/clip.js.map +1 -0
- package/lib/module/components/screen/container/layers/content.js +18 -33
- package/lib/module/components/screen/container/layers/content.js.map +1 -1
- package/lib/module/components/screen/container/layers/surface.js +4 -15
- package/lib/module/components/screen/container/layers/surface.js.map +1 -1
- package/lib/module/components/screen/lifecycle/hooks/use-open-transition-intent.js +17 -2
- package/lib/module/components/screen/lifecycle/hooks/use-open-transition-intent.js.map +1 -1
- package/lib/module/constants.js +3 -1
- package/lib/module/constants.js.map +1 -1
- package/lib/module/hooks/navigation/use-navigation-helpers.js +16 -4
- package/lib/module/hooks/navigation/use-navigation-helpers.js.map +1 -1
- package/lib/module/providers/screen/motion/animation/helpers/build-screen-transition-options.js +0 -1
- package/lib/module/providers/screen/motion/animation/helpers/build-screen-transition-options.js.map +1 -1
- package/lib/module/providers/screen/motion/animation/helpers/hydrate-transition-state/index.js +3 -2
- package/lib/module/providers/screen/motion/animation/helpers/hydrate-transition-state/index.js.map +1 -1
- package/lib/module/providers/screen/motion/options/helpers.js +1 -3
- package/lib/module/providers/screen/motion/options/helpers.js.map +1 -1
- package/lib/module/providers/screen/orchestrator/helpers/use-interpolator-state.js +6 -4
- package/lib/module/providers/screen/orchestrator/helpers/use-interpolator-state.js.map +1 -1
- package/lib/module/providers/screen/orchestrator/helpers/use-pair-presentation.js +73 -0
- package/lib/module/providers/screen/orchestrator/helpers/use-pair-presentation.js.map +1 -0
- package/lib/module/providers/screen/orchestrator/orchestrator.provider.js +3 -0
- package/lib/module/providers/screen/orchestrator/orchestrator.provider.js.map +1 -1
- package/lib/module/providers/screen/orchestrator/styles/constants.js +1 -0
- package/lib/module/providers/screen/orchestrator/styles/constants.js.map +1 -1
- package/lib/module/providers/screen/orchestrator/styles/hooks/slot-resolvers.js +5 -8
- package/lib/module/providers/screen/orchestrator/styles/hooks/slot-resolvers.js.map +1 -1
- package/lib/module/types/animation.types.js +3 -1
- package/lib/module/types/animation.types.js.map +1 -1
- package/lib/module/utils/bounds/navigation/reveal/build.js +30 -63
- package/lib/module/utils/bounds/navigation/reveal/build.js.map +1 -1
- package/lib/module/utils/bounds/navigation/reveal/config.js +2 -3
- package/lib/module/utils/bounds/navigation/reveal/config.js.map +1 -1
- package/lib/module/utils/bounds/navigation/reveal/math.js +7 -7
- package/lib/module/utils/bounds/navigation/reveal/math.js.map +1 -1
- package/lib/module/utils/bounds/navigation/reveal/types.js +1 -1
- package/lib/module/utils/bounds/navigation/reveal/types.js.map +1 -1
- package/lib/module/utils/bounds/navigation/zoom/build.js +5 -7
- package/lib/module/utils/bounds/navigation/zoom/build.js.map +1 -1
- package/lib/module/utils/bounds/navigation/zoom/clip.js +59 -0
- package/lib/module/utils/bounds/navigation/zoom/clip.js.map +1 -0
- package/lib/module/utils/bounds/navigation/zoom/drag.js +1 -1
- package/lib/module/utils/bounds/navigation/zoom/drag.js.map +1 -1
- package/lib/module/utils/bounds/navigation/zoom/types.js +1 -1
- package/lib/module/utils/bounds/navigation/zoom/types.js.map +1 -1
- package/lib/typescript/components/boundary/components/boundary-lifecycle.d.ts.map +1 -1
- package/lib/typescript/components/boundary/components/boundary-target.d.ts.map +1 -1
- package/lib/typescript/components/boundary/create-boundary-component.d.ts.map +1 -1
- package/lib/typescript/components/boundary/helpers/presentation.d.ts +14 -0
- package/lib/typescript/components/boundary/helpers/presentation.d.ts.map +1 -0
- package/lib/typescript/components/boundary/hooks/use-boundary-presentation.d.ts +9 -0
- package/lib/typescript/components/boundary/hooks/use-boundary-presentation.d.ts.map +1 -0
- package/lib/typescript/components/boundary/hooks/use-composed-boundary-style.d.ts +4 -0
- package/lib/typescript/components/boundary/hooks/use-composed-boundary-style.d.ts.map +1 -0
- package/lib/typescript/components/boundary/index.d.ts +3 -2
- package/lib/typescript/components/boundary/index.d.ts.map +1 -1
- package/lib/typescript/components/boundary/portal/components/portal-host.d.ts +15 -0
- package/lib/typescript/components/boundary/portal/components/portal-host.d.ts.map +1 -0
- package/lib/typescript/components/boundary/portal/components/portal-overlay.d.ts +20 -0
- package/lib/typescript/components/boundary/portal/components/portal-overlay.d.ts.map +1 -0
- package/lib/typescript/components/boundary/portal/components/portal.d.ts +23 -0
- package/lib/typescript/components/boundary/portal/components/portal.d.ts.map +1 -0
- package/lib/typescript/components/boundary/portal/helpers/offset-style.d.ts.map +1 -0
- package/lib/typescript/components/boundary/portal/hooks/use-active-portal-boundary-host.d.ts +11 -0
- package/lib/typescript/components/boundary/portal/hooks/use-active-portal-boundary-host.d.ts.map +1 -0
- package/lib/typescript/components/boundary/portal/hooks/use-host-measurement.d.ts +13 -0
- package/lib/typescript/components/boundary/portal/hooks/use-host-measurement.d.ts.map +1 -0
- package/lib/typescript/components/boundary/portal/hooks/use-placeholder-styles.d.ts.map +1 -0
- package/lib/typescript/components/boundary/portal/hooks/use-portal-destination.d.ts +8 -0
- package/lib/typescript/components/boundary/portal/hooks/use-portal-destination.d.ts.map +1 -0
- package/lib/typescript/components/boundary/portal/index.d.ts +0 -1
- package/lib/typescript/components/boundary/portal/index.d.ts.map +1 -1
- package/lib/typescript/components/boundary/portal/stores/host-registry.store.d.ts.map +1 -0
- package/lib/typescript/components/boundary/portal/{components/boundary-portal/stores → stores}/portal-boundary-host.store.d.ts +2 -3
- package/lib/typescript/components/boundary/portal/stores/portal-boundary-host.store.d.ts.map +1 -0
- package/lib/typescript/components/boundary/portal/utils/naming.d.ts +1 -0
- package/lib/typescript/components/boundary/portal/utils/naming.d.ts.map +1 -1
- package/lib/typescript/components/boundary/portal/utils/resolve-portal.d.ts +2 -7
- package/lib/typescript/components/boundary/portal/utils/resolve-portal.d.ts.map +1 -1
- package/lib/typescript/components/boundary/providers/boundary-root.provider.d.ts +5 -2
- package/lib/typescript/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
- package/lib/typescript/components/screen/container/helpers/layer-component.d.ts +10 -0
- package/lib/typescript/components/screen/container/helpers/layer-component.d.ts.map +1 -0
- package/lib/typescript/components/screen/container/{layers/render-component.d.ts → helpers/uses-layer-render-props.d.ts} +1 -1
- package/lib/typescript/components/screen/container/helpers/uses-layer-render-props.d.ts.map +1 -0
- package/lib/typescript/components/screen/container/layers/backdrop.d.ts.map +1 -1
- package/lib/typescript/components/screen/container/layers/clip.d.ts +7 -0
- package/lib/typescript/components/screen/container/layers/clip.d.ts.map +1 -0
- package/lib/typescript/components/screen/container/layers/content.d.ts.map +1 -1
- package/lib/typescript/components/screen/container/layers/surface.d.ts.map +1 -1
- package/lib/typescript/components/screen/lifecycle/hooks/use-open-transition-intent.d.ts.map +1 -1
- package/lib/typescript/constants.d.ts +3 -1
- package/lib/typescript/constants.d.ts.map +1 -1
- package/lib/typescript/hooks/navigation/use-navigation-helpers.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/providers/screen/motion/animation/helpers/build-screen-transition-options.d.ts.map +1 -1
- package/lib/typescript/providers/screen/motion/animation/helpers/hydrate-transition-state/index.d.ts.map +1 -1
- package/lib/typescript/providers/screen/motion/options/helpers.d.ts.map +1 -1
- package/lib/typescript/providers/screen/motion/options/types.d.ts +0 -1
- package/lib/typescript/providers/screen/motion/options/types.d.ts.map +1 -1
- package/lib/typescript/providers/screen/orchestrator/helpers/use-interpolator-state.d.ts.map +1 -1
- package/lib/typescript/providers/screen/orchestrator/helpers/use-pair-presentation.d.ts +21 -0
- package/lib/typescript/providers/screen/orchestrator/helpers/use-pair-presentation.d.ts.map +1 -0
- package/lib/typescript/providers/screen/orchestrator/orchestrator.provider.d.ts +2 -0
- package/lib/typescript/providers/screen/orchestrator/orchestrator.provider.d.ts.map +1 -1
- package/lib/typescript/providers/screen/orchestrator/styles/constants.d.ts.map +1 -1
- package/lib/typescript/providers/screen/orchestrator/styles/hooks/slot-resolvers.d.ts +1 -1
- package/lib/typescript/providers/screen/orchestrator/styles/hooks/slot-resolvers.d.ts.map +1 -1
- package/lib/typescript/providers/screen/orchestrator/styles/types.d.ts +1 -1
- package/lib/typescript/providers/screen/orchestrator/styles/types.d.ts.map +1 -1
- package/lib/typescript/types/animation.types.d.ts +16 -4
- package/lib/typescript/types/animation.types.d.ts.map +1 -1
- package/lib/typescript/types/bounds.types.d.ts +7 -15
- package/lib/typescript/types/bounds.types.d.ts.map +1 -1
- package/lib/typescript/types/index.d.ts +1 -1
- package/lib/typescript/types/index.d.ts.map +1 -1
- package/lib/typescript/types/screen.types.d.ts +1 -8
- package/lib/typescript/types/screen.types.d.ts.map +1 -1
- package/lib/typescript/utils/bounds/navigation/reveal/build.d.ts.map +1 -1
- package/lib/typescript/utils/bounds/navigation/reveal/config.d.ts +2 -3
- package/lib/typescript/utils/bounds/navigation/reveal/config.d.ts.map +1 -1
- package/lib/typescript/utils/bounds/navigation/reveal/math.d.ts +3 -3
- package/lib/typescript/utils/bounds/navigation/reveal/types.d.ts +1 -5
- package/lib/typescript/utils/bounds/navigation/reveal/types.d.ts.map +1 -1
- package/lib/typescript/utils/bounds/navigation/zoom/build.d.ts.map +1 -1
- package/lib/typescript/utils/bounds/navigation/zoom/{mask.d.ts → clip.d.ts} +5 -5
- package/lib/typescript/utils/bounds/navigation/zoom/clip.d.ts.map +1 -0
- package/lib/typescript/utils/bounds/navigation/zoom/drag.d.ts +1 -1
- package/lib/typescript/utils/bounds/navigation/zoom/types.d.ts +1 -5
- package/lib/typescript/utils/bounds/navigation/zoom/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/boundary/components/boundary-lifecycle.tsx +44 -8
- package/src/components/boundary/components/boundary-target.tsx +14 -36
- package/src/components/boundary/create-boundary-component.tsx +16 -17
- package/src/components/boundary/helpers/presentation.ts +88 -0
- package/src/components/boundary/hooks/use-boundary-presentation.ts +82 -0
- package/src/components/boundary/hooks/use-composed-boundary-style.ts +58 -0
- package/src/components/boundary/index.tsx +10 -5
- package/src/components/boundary/portal/components/portal-host.tsx +36 -0
- package/src/components/boundary/portal/components/portal-overlay.tsx +223 -0
- package/src/components/boundary/portal/components/portal.tsx +124 -0
- package/src/components/boundary/portal/hooks/use-active-portal-boundary-host.ts +52 -0
- package/src/components/boundary/portal/hooks/use-host-measurement.ts +101 -0
- package/src/components/boundary/portal/hooks/use-portal-destination.ts +53 -0
- package/src/components/boundary/portal/index.ts +0 -1
- package/src/components/boundary/portal/{components/boundary-portal/stores → stores}/host-registry.store.ts +1 -20
- package/src/components/boundary/portal/{components/boundary-portal/stores → stores}/portal-boundary-host.store.ts +19 -26
- package/src/components/boundary/portal/utils/naming.ts +10 -0
- package/src/components/boundary/portal/utils/resolve-portal.ts +9 -48
- package/src/components/boundary/providers/boundary-root.provider.tsx +34 -22
- package/src/components/screen/container/helpers/layer-component.tsx +38 -0
- package/src/components/screen/container/layers/backdrop.tsx +8 -31
- package/src/components/screen/container/layers/clip.tsx +124 -0
- package/src/components/screen/container/layers/content.tsx +21 -62
- package/src/components/screen/container/layers/surface.tsx +5 -23
- package/src/components/screen/lifecycle/hooks/use-open-transition-intent.ts +26 -2
- package/src/constants.ts +3 -1
- package/src/hooks/navigation/use-navigation-helpers.ts +13 -7
- package/src/index.ts +1 -0
- package/src/providers/screen/motion/animation/helpers/build-screen-transition-options.ts +0 -1
- package/src/providers/screen/motion/animation/helpers/hydrate-transition-state/index.ts +3 -2
- package/src/providers/screen/motion/options/helpers.ts +0 -6
- package/src/providers/screen/motion/options/types.ts +0 -1
- package/src/providers/screen/orchestrator/helpers/use-interpolator-state.ts +13 -8
- package/src/providers/screen/orchestrator/helpers/use-pair-presentation.ts +103 -0
- package/src/providers/screen/orchestrator/orchestrator.provider.tsx +4 -0
- package/src/providers/screen/orchestrator/styles/constants.ts +1 -0
- package/src/providers/screen/orchestrator/styles/hooks/slot-resolvers.tsx +8 -11
- package/src/providers/screen/orchestrator/styles/types.ts +1 -0
- package/src/types/animation.types.ts +35 -4
- package/src/types/bounds.types.ts +7 -15
- package/src/types/index.ts +1 -0
- package/src/types/screen.types.ts +1 -8
- package/src/utils/bounds/navigation/reveal/build.ts +46 -80
- package/src/utils/bounds/navigation/reveal/config.ts +2 -4
- package/src/utils/bounds/navigation/reveal/math.ts +9 -9
- package/src/utils/bounds/navigation/reveal/types.ts +1 -8
- package/src/utils/bounds/navigation/zoom/build.ts +16 -26
- package/src/utils/bounds/navigation/zoom/{mask.ts → clip.ts} +42 -48
- package/src/utils/bounds/navigation/zoom/drag.ts +2 -2
- package/src/utils/bounds/navigation/zoom/types.ts +1 -8
- package/lib/commonjs/components/boundary/hooks/use-boundary-measurement.js +0 -83
- package/lib/commonjs/components/boundary/hooks/use-boundary-measurement.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/components/host.js +0 -45
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/components/host.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +0 -119
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/handoff-visibility.js +0 -20
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/handoff-visibility.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/host-name.js +0 -14
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/host-name.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +0 -136
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/index.js +0 -53
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/index.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/host.js +0 -99
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/host.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +0 -104
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/local-measurement.js +0 -13
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/local-measurement.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/offset-style.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +0 -82
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +0 -58
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +0 -67
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/index.js +0 -68
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/index.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/stores/host-registry.store.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +0 -1
- package/lib/commonjs/components/screen/container/layers/maybe-masked-navigation-container.js +0 -83
- package/lib/commonjs/components/screen/container/layers/maybe-masked-navigation-container.js.map +0 -1
- package/lib/commonjs/components/screen/container/layers/render-component.js.map +0 -1
- package/lib/commonjs/utils/bounds/navigation/zoom/mask.js +0 -73
- package/lib/commonjs/utils/bounds/navigation/zoom/mask.js.map +0 -1
- package/lib/module/components/boundary/hooks/use-boundary-measurement.js +0 -78
- package/lib/module/components/boundary/hooks/use-boundary-measurement.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-content-portal/components/host.js +0 -40
- package/lib/module/components/boundary/portal/components/boundary-content-portal/components/host.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +0 -110
- package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/handoff-visibility.js +0 -16
- package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/handoff-visibility.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/host-name.js +0 -9
- package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/host-name.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +0 -131
- package/lib/module/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-content-portal/index.js +0 -42
- package/lib/module/components/boundary/portal/components/boundary-content-portal/index.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/components/host.js +0 -94
- package/lib/module/components/boundary/portal/components/boundary-portal/components/host.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +0 -99
- package/lib/module/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/helpers/local-measurement.js +0 -8
- package/lib/module/components/boundary/portal/components/boundary-portal/helpers/local-measurement.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/helpers/offset-style.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +0 -76
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +0 -53
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +0 -62
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/index.js +0 -63
- package/lib/module/components/boundary/portal/components/boundary-portal/index.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/stores/host-registry.store.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +0 -1
- package/lib/module/components/screen/container/layers/maybe-masked-navigation-container.js +0 -78
- package/lib/module/components/screen/container/layers/maybe-masked-navigation-container.js.map +0 -1
- package/lib/module/components/screen/container/layers/render-component.js.map +0 -1
- package/lib/module/utils/bounds/navigation/zoom/mask.js +0 -68
- package/lib/module/utils/bounds/navigation/zoom/mask.js.map +0 -1
- package/lib/typescript/components/boundary/hooks/use-boundary-measurement.d.ts +0 -28
- package/lib/typescript/components/boundary/hooks/use-boundary-measurement.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/components/host.d.ts +0 -10
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/components/host.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts +0 -45
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/handoff-visibility.d.ts +0 -8
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/handoff-visibility.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/host-name.d.ts +0 -2
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/host-name.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts +0 -10
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/index.d.ts +0 -9
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/index.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/components/host.d.ts +0 -7
- package/lib/typescript/components/boundary/portal/components/boundary-portal/components/host.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.d.ts +0 -13
- package/lib/typescript/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/local-measurement.d.ts +0 -4
- package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/local-measurement.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/offset-style.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts +0 -21
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts +0 -10
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts +0 -12
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/index.d.ts +0 -12
- package/lib/typescript/components/boundary/portal/components/boundary-portal/index.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/stores/host-registry.store.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts.map +0 -1
- package/lib/typescript/components/screen/container/layers/maybe-masked-navigation-container.d.ts +0 -9
- package/lib/typescript/components/screen/container/layers/maybe-masked-navigation-container.d.ts.map +0 -1
- package/lib/typescript/components/screen/container/layers/render-component.d.ts.map +0 -1
- package/lib/typescript/utils/bounds/navigation/zoom/mask.d.ts.map +0 -1
- package/src/components/boundary/hooks/use-boundary-measurement.ts +0 -98
- package/src/components/boundary/portal/components/boundary-content-portal/components/host.tsx +0 -56
- package/src/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.ts +0 -192
- package/src/components/boundary/portal/components/boundary-content-portal/helpers/handoff-visibility.ts +0 -23
- package/src/components/boundary/portal/components/boundary-content-portal/helpers/host-name.ts +0 -9
- package/src/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts +0 -252
- package/src/components/boundary/portal/components/boundary-content-portal/index.tsx +0 -81
- package/src/components/boundary/portal/components/boundary-portal/components/host.tsx +0 -119
- package/src/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.tsx +0 -139
- package/src/components/boundary/portal/components/boundary-portal/helpers/local-measurement.ts +0 -10
- package/src/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.ts +0 -118
- package/src/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +0 -64
- package/src/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.ts +0 -90
- package/src/components/boundary/portal/components/boundary-portal/index.tsx +0 -97
- package/src/components/screen/container/layers/maybe-masked-navigation-container.tsx +0 -113
- /package/lib/commonjs/components/boundary/portal/{components/boundary-portal/helpers → helpers}/offset-style.js +0 -0
- /package/lib/commonjs/components/boundary/portal/{components/boundary-portal/hooks → hooks}/use-placeholder-styles.js +0 -0
- /package/lib/module/components/boundary/portal/{components/boundary-portal/helpers → helpers}/offset-style.js +0 -0
- /package/lib/module/components/boundary/portal/{components/boundary-portal/hooks → hooks}/use-placeholder-styles.js +0 -0
- /package/lib/typescript/components/boundary/portal/{components/boundary-portal/helpers → helpers}/offset-style.d.ts +0 -0
- /package/lib/typescript/components/boundary/portal/{components/boundary-portal/hooks → hooks}/use-placeholder-styles.d.ts +0 -0
- /package/lib/typescript/components/boundary/portal/{components/boundary-portal/stores → stores}/host-registry.store.d.ts +0 -0
- /package/src/components/boundary/portal/{components/boundary-portal/helpers → helpers}/offset-style.ts +0 -0
- /package/src/components/boundary/portal/{components/boundary-portal/hooks → hooks}/use-placeholder-styles.ts +0 -0
- /package/src/components/screen/container/{layers/render-component.ts → helpers/uses-layer-render-props.ts} +0 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PortalOverlay = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
10
|
+
var _constants = require("../../../../constants");
|
|
11
|
+
var _builder = require("../../../../providers/screen/builder");
|
|
12
|
+
var _composeSlotStyle = require("../../../../providers/screen/orchestrator/styles/helpers/compose-slot-style");
|
|
13
|
+
var _offsetStyle = require("../helpers/offset-style");
|
|
14
|
+
var _useHostMeasurement = require("../hooks/use-host-measurement");
|
|
15
|
+
var _hostRegistry = require("../stores/host-registry.store");
|
|
16
|
+
var _portalBoundaryHost = require("../stores/portal-boundary-host.store");
|
|
17
|
+
var _teleport = require("../teleport");
|
|
18
|
+
var _portalHost = require("./portal-host");
|
|
19
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
21
|
+
/**
|
|
22
|
+
* A screen-sized overlay containing the receivers for escaped boundary frames.
|
|
23
|
+
*
|
|
24
|
+
* Registers this overlay as an available placement, measures its origin, and
|
|
25
|
+
* renders one positioned PortalHost per boundary assigned to it. An overlay can
|
|
26
|
+
* contain many hosts; each host receives one named portal.
|
|
27
|
+
*
|
|
28
|
+
* Boundary.Host uses this directly; screens render it with `fallback` for
|
|
29
|
+
* their automatic overlay. Explicit overlays take priority over the fallback.
|
|
30
|
+
* Handoff between screens uses receivers inside boundaries, so it does not
|
|
31
|
+
* need this overlay unless escapeClipping is also enabled.
|
|
32
|
+
*/
|
|
33
|
+
const PortalOverlay = exports.PortalOverlay = /*#__PURE__*/(0, _react.memo)(function PortalOverlay({
|
|
34
|
+
fallback = false,
|
|
35
|
+
style
|
|
36
|
+
}) {
|
|
37
|
+
const screenKey = (0, _builder.useBuilderStore)(s => s.derivations.currentScreenKey);
|
|
38
|
+
const id = (0, _react.useId)();
|
|
39
|
+
const hostKey = fallback ? screenKey : `${screenKey}-host-${id}`;
|
|
40
|
+
const activeBoundaryHosts = (0, _portalBoundaryHost.useActivePortalBoundaryHosts)(hostKey);
|
|
41
|
+
const {
|
|
42
|
+
height: viewportHeight,
|
|
43
|
+
width: viewportWidth
|
|
44
|
+
} = (0, _reactNative.useWindowDimensions)();
|
|
45
|
+
const measurementKey = activeBoundaryHosts.length ? activeBoundaryHosts.map(host => host.portalHostName).join("|") : null;
|
|
46
|
+
const measurement = (0, _useHostMeasurement.useHostMeasurement)({
|
|
47
|
+
measurementKey,
|
|
48
|
+
boundaryMeasurements: activeBoundaryHosts.map(host => host.localMeasurement)
|
|
49
|
+
});
|
|
50
|
+
const boundaryHosts = activeBoundaryHosts.map(host => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
51
|
+
pointerEvents: _teleport.PORTAL_POINTER_EVENTS,
|
|
52
|
+
style: [styles.boundaryHostViewport, {
|
|
53
|
+
width: viewportWidth,
|
|
54
|
+
height: viewportHeight
|
|
55
|
+
}],
|
|
56
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BoundaryPortalPlacement, {
|
|
57
|
+
host: host,
|
|
58
|
+
hostBounds: measurement.hostBounds
|
|
59
|
+
})
|
|
60
|
+
}, host.portalHostName));
|
|
61
|
+
(0, _react.useLayoutEffect)(() => {
|
|
62
|
+
(0, _hostRegistry.registerHost)({
|
|
63
|
+
fallback,
|
|
64
|
+
hostKey,
|
|
65
|
+
screenKey
|
|
66
|
+
});
|
|
67
|
+
return () => {
|
|
68
|
+
(0, _hostRegistry.unregisterHost)(screenKey, hostKey);
|
|
69
|
+
};
|
|
70
|
+
}, [fallback, hostKey, screenKey]);
|
|
71
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
72
|
+
ref: measurement.hostRef,
|
|
73
|
+
pointerEvents: _teleport.PORTAL_POINTER_EVENTS,
|
|
74
|
+
style: [styles.host, {
|
|
75
|
+
width: viewportWidth,
|
|
76
|
+
height: viewportHeight
|
|
77
|
+
}, style],
|
|
78
|
+
collapsable: false,
|
|
79
|
+
children: boundaryHosts
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
const getCurrentBoundaryBounds = host => {
|
|
83
|
+
"worklet";
|
|
84
|
+
|
|
85
|
+
return host.localMeasurement.get()?.bounds ?? null;
|
|
86
|
+
};
|
|
87
|
+
/** Positions one receiver using captured boundary and overlay measurements. */
|
|
88
|
+
const BoundaryPortalPlacement = /*#__PURE__*/(0, _react.memo)(function BoundaryPortalPlacement({
|
|
89
|
+
host,
|
|
90
|
+
hostBounds
|
|
91
|
+
}) {
|
|
92
|
+
(0, _reactNativeReanimated.useAnimatedReaction)(() => {
|
|
93
|
+
"worklet";
|
|
94
|
+
|
|
95
|
+
return getCurrentBoundaryBounds(host) !== null && hostBounds.get() !== null;
|
|
96
|
+
}, ready => {
|
|
97
|
+
"worklet";
|
|
98
|
+
|
|
99
|
+
host.portalHostReady.set(ready);
|
|
100
|
+
});
|
|
101
|
+
const hostStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
|
|
102
|
+
"worklet";
|
|
103
|
+
|
|
104
|
+
const boundaryBounds = getCurrentBoundaryBounds(host);
|
|
105
|
+
if (!boundaryBounds) {
|
|
106
|
+
return _constants.NO_STYLES;
|
|
107
|
+
}
|
|
108
|
+
return (0, _offsetStyle.resolvePortalOffsetStyle)({
|
|
109
|
+
bounds: boundaryBounds,
|
|
110
|
+
hostBounds: hostBounds.get()
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
const contentFrameStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
|
|
114
|
+
"worklet";
|
|
115
|
+
|
|
116
|
+
const boundaryBounds = getCurrentBoundaryBounds(host);
|
|
117
|
+
if (!boundaryBounds) {
|
|
118
|
+
return _constants.NO_STYLES;
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
height: boundaryBounds.height,
|
|
122
|
+
width: boundaryBounds.width
|
|
123
|
+
};
|
|
124
|
+
});
|
|
125
|
+
const slotStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
|
|
126
|
+
"worklet";
|
|
127
|
+
|
|
128
|
+
const slot = host.slotsMap.get()[host.boundaryId];
|
|
129
|
+
return (0, _composeSlotStyle.composeSlotStyleWithLocalTransform)(slot?.style ?? _constants.NO_STYLES, undefined, slot?.boundsLocalTransform);
|
|
130
|
+
});
|
|
131
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
132
|
+
pointerEvents: _teleport.PORTAL_POINTER_EVENTS,
|
|
133
|
+
style: [_reactNative.StyleSheet.absoluteFill, hostStyle],
|
|
134
|
+
collapsable: false,
|
|
135
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_portalHost.PortalHost, {
|
|
136
|
+
name: host.portalHostName,
|
|
137
|
+
style: [styles.content, contentFrameStyle, slotStyle]
|
|
138
|
+
})
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
const styles = _reactNative.StyleSheet.create({
|
|
142
|
+
// The teleport offset is a physical page delta measured from the screen's
|
|
143
|
+
// left edge, so the content box must anchor there too. Under native RTL,
|
|
144
|
+
// `left: 0` swaps to a right-edge anchor; `end: 0` is the physical left edge
|
|
145
|
+
// in RTL regardless of the swap setting.
|
|
146
|
+
content: _reactNative.I18nManager.isRTL ? {
|
|
147
|
+
end: 0,
|
|
148
|
+
position: "absolute",
|
|
149
|
+
top: 0
|
|
150
|
+
} : {
|
|
151
|
+
left: 0,
|
|
152
|
+
position: "absolute",
|
|
153
|
+
top: 0
|
|
154
|
+
},
|
|
155
|
+
host: {
|
|
156
|
+
elevation: 999999,
|
|
157
|
+
left: 0,
|
|
158
|
+
overflow: "visible",
|
|
159
|
+
position: "absolute",
|
|
160
|
+
top: 0,
|
|
161
|
+
zIndex: 999999
|
|
162
|
+
},
|
|
163
|
+
boundaryHostViewport: {
|
|
164
|
+
left: 0,
|
|
165
|
+
overflow: "visible",
|
|
166
|
+
position: "absolute",
|
|
167
|
+
top: 0
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
//# sourceMappingURL=portal-overlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_interopRequireWildcard","_constants","_builder","_composeSlotStyle","_offsetStyle","_useHostMeasurement","_hostRegistry","_portalBoundaryHost","_teleport","_portalHost","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","PortalOverlay","exports","memo","fallback","style","screenKey","useBuilderStore","s","derivations","currentScreenKey","id","useId","hostKey","activeBoundaryHosts","useActivePortalBoundaryHosts","height","viewportHeight","width","viewportWidth","useWindowDimensions","measurementKey","length","map","host","portalHostName","join","measurement","useHostMeasurement","boundaryMeasurements","localMeasurement","boundaryHosts","jsx","View","pointerEvents","PORTAL_POINTER_EVENTS","styles","boundaryHostViewport","children","BoundaryPortalPlacement","hostBounds","useLayoutEffect","registerHost","unregisterHost","ref","hostRef","collapsable","getCurrentBoundaryBounds","bounds","useAnimatedReaction","ready","portalHostReady","hostStyle","useAnimatedStyle","boundaryBounds","NO_STYLES","resolvePortalOffsetStyle","contentFrameStyle","slotStyle","slot","slotsMap","boundaryId","composeSlotStyleWithLocalTransform","undefined","boundsLocalTransform","StyleSheet","absoluteFill","PortalHost","name","content","create","I18nManager","isRTL","end","position","top","left","elevation","overflow","zIndex"],"sourceRoot":"../../../../../../src","sources":["components/boundary/portal/components/portal-overlay.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Portal = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
|
|
10
|
+
var _reactNativeWorklets = require("react-native-worklets");
|
|
11
|
+
var _logger = require("../../../../utils/logger");
|
|
12
|
+
var _usePlaceholderStyles = require("../hooks/use-placeholder-styles");
|
|
13
|
+
var _usePortalDestination = require("../hooks/use-portal-destination");
|
|
14
|
+
var _teleport = require("../teleport");
|
|
15
|
+
var _portalHost = require("./portal-host");
|
|
16
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
+
const AnimatedNativePortal = _teleport.NativePortal ? _reactNativeReanimated.default.createAnimatedComponent(_teleport.NativePortal) : null;
|
|
19
|
+
const EnabledNativePortal = AnimatedNativePortal;
|
|
20
|
+
/**
|
|
21
|
+
* Sends its children to a named PortalHost chosen on the UI thread.
|
|
22
|
+
*
|
|
23
|
+
* `handoff` moves the boundary's content between screens and creates a local
|
|
24
|
+
* receiver inside this boundary. `escapeClipping` moves the whole boundary
|
|
25
|
+
* frame into a PortalOverlay, leaving a sized placeholder at its original spot.
|
|
26
|
+
* When both are enabled, the handoff portal lives inside the escaped frame.
|
|
27
|
+
* Disabled portals, or apps without Teleport, render their children inline.
|
|
28
|
+
*/
|
|
29
|
+
const Portal = exports.Portal = /*#__PURE__*/(0, _react.memo)(function Portal(props) {
|
|
30
|
+
if (!props.enabled || props.boundaryId === undefined || !_teleport.isTeleportAvailable || !AnimatedNativePortal) {
|
|
31
|
+
return props.children;
|
|
32
|
+
}
|
|
33
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(EnabledPortal, {
|
|
34
|
+
...props,
|
|
35
|
+
boundaryId: props.boundaryId
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
function EnabledPortal({
|
|
39
|
+
boundaryId,
|
|
40
|
+
children,
|
|
41
|
+
mode,
|
|
42
|
+
placeholderRef
|
|
43
|
+
}) {
|
|
44
|
+
if (__DEV__ && mode === "escapeClipping" && !boundaryId) {
|
|
45
|
+
_logger.logger.warnOnce("portal:missing-id", "A boundary portal was rendered without an id; rendering inline.");
|
|
46
|
+
}
|
|
47
|
+
const {
|
|
48
|
+
teleportProps,
|
|
49
|
+
localHostName
|
|
50
|
+
} = (0, _usePortalDestination.usePortalDestination)(boundaryId, mode);
|
|
51
|
+
const content = /*#__PURE__*/(0, _jsxRuntime.jsx)(EnabledNativePortal, {
|
|
52
|
+
animatedProps: teleportProps,
|
|
53
|
+
name: boundaryId,
|
|
54
|
+
pointerEvents: _teleport.PORTAL_POINTER_EVENTS,
|
|
55
|
+
style: mode === "handoff" ? _reactNative.StyleSheet.absoluteFill : undefined,
|
|
56
|
+
children: children
|
|
57
|
+
});
|
|
58
|
+
return mode === "handoff" ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
59
|
+
children: [content, /*#__PURE__*/(0, _jsxRuntime.jsx)(_portalHost.PortalHost, {
|
|
60
|
+
name: localHostName
|
|
61
|
+
})]
|
|
62
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(PortalPlaceholder, {
|
|
63
|
+
placeholderRef: placeholderRef,
|
|
64
|
+
children: content
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function PortalPlaceholder({
|
|
68
|
+
children,
|
|
69
|
+
placeholderRef
|
|
70
|
+
}) {
|
|
71
|
+
const {
|
|
72
|
+
handleOnLayout,
|
|
73
|
+
placeholderStyle
|
|
74
|
+
} = (0, _usePlaceholderStyles.usePlaceholderStyles)();
|
|
75
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
76
|
+
ref: placeholderRef,
|
|
77
|
+
onLayout: ({
|
|
78
|
+
nativeEvent: {
|
|
79
|
+
layout
|
|
80
|
+
}
|
|
81
|
+
}) => (0, _reactNativeWorklets.scheduleOnUI)(handleOnLayout, layout),
|
|
82
|
+
style: placeholderStyle,
|
|
83
|
+
pointerEvents: _teleport.PORTAL_POINTER_EVENTS,
|
|
84
|
+
collapsable: false,
|
|
85
|
+
children: children
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=portal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_interopRequireDefault","_reactNativeWorklets","_logger","_usePlaceholderStyles","_usePortalDestination","_teleport","_portalHost","_jsxRuntime","e","__esModule","default","AnimatedNativePortal","NativePortal","Animated","createAnimatedComponent","EnabledNativePortal","Portal","exports","memo","props","enabled","boundaryId","undefined","isTeleportAvailable","children","jsx","EnabledPortal","mode","placeholderRef","__DEV__","logger","warnOnce","teleportProps","localHostName","usePortalDestination","content","animatedProps","name","pointerEvents","PORTAL_POINTER_EVENTS","style","StyleSheet","absoluteFill","jsxs","Fragment","PortalHost","PortalPlaceholder","handleOnLayout","placeholderStyle","usePlaceholderStyles","View","ref","onLayout","nativeEvent","layout","scheduleOnUI","collapsable"],"sourceRoot":"../../../../../../src","sources":["components/boundary/portal/components/portal.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["resolvePortalOffsetStyle","bounds","hostBounds","hostPageX","pageX","hostPageY","pageY","transform","translateY","translateX","exports"],"sourceRoot":"../../../../../../src","sources":["components/boundary/portal/helpers/offset-style.ts"],"mappings":";;;;;;AAOO,MAAMA,wBAAwB,GAAGA,CAAC;EACxCC,MAAM;EACNC;AAC+B,CAAC,KAAiB;EACjD,SAAS;;EACT;EACA;EACA;EACA,MAAMC,SAAS,GAAGD,UAAU,EAAEE,KAAK,IAAI,CAAC;EACxC,MAAMC,SAAS,GAAGH,UAAU,EAAEI,KAAK,IAAI,CAAC;EAExC,OAAO;IACNC,SAAS,EAAE,CACV;MAAEC,UAAU,EAAEP,MAAM,CAACK,KAAK,GAAGD;IAAU,CAAC,EACxC;MAAEI,UAAU,EAAER,MAAM,CAACG,KAAK,GAAGD;IAAU,CAAC;EAE1C,CAAC;AACF,CAAC;AAACO,OAAA,CAAAV,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useActivePortalBoundaryHost = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _portalBoundaryHost = require("../stores/portal-boundary-host.store");
|
|
9
|
+
var _naming = require("../utils/naming");
|
|
10
|
+
// Hosts belong to mounted boundaries, not animation phases. React prepares
|
|
11
|
+
// them once; attachment and release are entirely UI-thread decisions.
|
|
12
|
+
const useActivePortalBoundaryHost = ({
|
|
13
|
+
boundaryId,
|
|
14
|
+
escapeHostKey,
|
|
15
|
+
localMeasurement,
|
|
16
|
+
portalHostReady,
|
|
17
|
+
slotsMap
|
|
18
|
+
}) => {
|
|
19
|
+
const portalHostName = escapeHostKey ? (0, _naming.createBoundaryPortalHostName)(escapeHostKey, boundaryId) : null;
|
|
20
|
+
(0, _react.useLayoutEffect)(() => {
|
|
21
|
+
if (!escapeHostKey || !portalHostName) return;
|
|
22
|
+
(0, _portalBoundaryHost.mountPortalBoundaryHost)({
|
|
23
|
+
boundaryId,
|
|
24
|
+
hostKey: escapeHostKey,
|
|
25
|
+
localMeasurement,
|
|
26
|
+
portalHostName,
|
|
27
|
+
portalHostReady,
|
|
28
|
+
slotsMap
|
|
29
|
+
});
|
|
30
|
+
return () => (0, _portalBoundaryHost.unmountPortalBoundaryHostByName)(portalHostName);
|
|
31
|
+
}, [boundaryId, escapeHostKey, localMeasurement, portalHostName, portalHostReady, slotsMap]);
|
|
32
|
+
return portalHostName;
|
|
33
|
+
};
|
|
34
|
+
exports.useActivePortalBoundaryHost = useActivePortalBoundaryHost;
|
|
35
|
+
//# sourceMappingURL=use-active-portal-boundary-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_portalBoundaryHost","_naming","useActivePortalBoundaryHost","boundaryId","escapeHostKey","localMeasurement","portalHostReady","slotsMap","portalHostName","createBoundaryPortalHostName","useLayoutEffect","mountPortalBoundaryHost","hostKey","unmountPortalBoundaryHostByName","exports"],"sourceRoot":"../../../../../../src","sources":["components/boundary/portal/hooks/use-active-portal-boundary-host.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,mBAAA,GAAAD,OAAA;AAIA,IAAAE,OAAA,GAAAF,OAAA;AAEA;AACA;AACO,MAAMG,2BAA2B,GAAGA,CAAC;EAC3CC,UAAU;EACVC,aAAa;EACbC,gBAAgB;EAChBC,eAAe;EACfC;AAOD,CAAC,KAAK;EACL,MAAMC,cAAc,GAAGJ,aAAa,GACjC,IAAAK,oCAA4B,EAACL,aAAa,EAAED,UAAU,CAAC,GACvD,IAAI;EAEP,IAAAO,sBAAe,EAAC,MAAM;IACrB,IAAI,CAACN,aAAa,IAAI,CAACI,cAAc,EAAE;IAEvC,IAAAG,2CAAuB,EAAC;MACvBR,UAAU;MACVS,OAAO,EAAER,aAAa;MACtBC,gBAAgB;MAChBG,cAAc;MACdF,eAAe;MACfC;IACD,CAAC,CAAC;IAEF,OAAO,MAAM,IAAAM,mDAA+B,EAACL,cAAc,CAAC;EAC7D,CAAC,EAAE,CACFL,UAAU,EACVC,aAAa,EACbC,gBAAgB,EAChBG,cAAc,EACdF,eAAe,EACfC,QAAQ,CACR,CAAC;EACF,OAAOC,cAAc;AACtB,CAAC;AAACM,OAAA,CAAAZ,2BAAA,GAAAA,2BAAA","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useHostMeasurement = void 0;
|
|
7
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
8
|
+
const HOST_MEASUREMENT_RETRY_DELAY_MS = 16;
|
|
9
|
+
const MAX_HOST_MEASUREMENT_ATTEMPTS = 20;
|
|
10
|
+
const useHostMeasurement = ({
|
|
11
|
+
measurementKey,
|
|
12
|
+
boundaryMeasurements
|
|
13
|
+
}) => {
|
|
14
|
+
const hostRef = (0, _reactNativeReanimated.useAnimatedRef)();
|
|
15
|
+
const measurement = (0, _reactNativeReanimated.useSharedValue)(null);
|
|
16
|
+
const hostBounds = (0, _reactNativeReanimated.useDerivedValue)(() => {
|
|
17
|
+
const captured = measurement.get();
|
|
18
|
+
return captured?.key === measurementKey ? captured.bounds : null;
|
|
19
|
+
});
|
|
20
|
+
const retryToken = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
21
|
+
const attempts = (0, _reactNativeReanimated.useSharedValue)({
|
|
22
|
+
key: measurementKey,
|
|
23
|
+
count: 0
|
|
24
|
+
});
|
|
25
|
+
(0, _reactNativeReanimated.useAnimatedReaction)(() => {
|
|
26
|
+
"worklet";
|
|
27
|
+
|
|
28
|
+
if (!measurementKey) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Hosts mount before their screen is visible. Wait for source capture
|
|
33
|
+
// rather than caching the screen's initial offscreen position.
|
|
34
|
+
let hasSource = false;
|
|
35
|
+
for (const measurement of boundaryMeasurements) {
|
|
36
|
+
if (measurement.get()) {
|
|
37
|
+
hasSource = true;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (!hasSource) return null;
|
|
42
|
+
return [measurementKey, measurement.get()?.key ?? null, retryToken.get()];
|
|
43
|
+
}, state => {
|
|
44
|
+
"worklet";
|
|
45
|
+
|
|
46
|
+
if (!state) {
|
|
47
|
+
(0, _reactNativeReanimated.cancelAnimation)(retryToken);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const [requestedKey, completedKey] = state;
|
|
51
|
+
if (requestedKey === completedKey) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
(0, _reactNativeReanimated.cancelAnimation)(retryToken);
|
|
55
|
+
const count = attempts.get().key === requestedKey ? attempts.get().count : 0;
|
|
56
|
+
if (count >= MAX_HOST_MEASUREMENT_ATTEMPTS) return;
|
|
57
|
+
attempts.set({
|
|
58
|
+
key: requestedKey,
|
|
59
|
+
count: count + 1
|
|
60
|
+
});
|
|
61
|
+
const measured = (0, _reactNativeReanimated.measure)(hostRef);
|
|
62
|
+
if (!measured || measured.width <= 0 || measured.height <= 0) {
|
|
63
|
+
if (count + 1 < MAX_HOST_MEASUREMENT_ATTEMPTS) {
|
|
64
|
+
retryToken.set((0, _reactNativeReanimated.withDelay)(HOST_MEASUREMENT_RETRY_DELAY_MS, (0, _reactNativeReanimated.withTiming)(retryToken.get() + 1, {
|
|
65
|
+
duration: 0
|
|
66
|
+
})));
|
|
67
|
+
}
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
measurement.set({
|
|
71
|
+
key: requestedKey,
|
|
72
|
+
bounds: {
|
|
73
|
+
...measured
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
return {
|
|
78
|
+
hostBounds,
|
|
79
|
+
hostRef
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
exports.useHostMeasurement = useHostMeasurement;
|
|
83
|
+
//# sourceMappingURL=use-host-measurement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeReanimated","require","HOST_MEASUREMENT_RETRY_DELAY_MS","MAX_HOST_MEASUREMENT_ATTEMPTS","useHostMeasurement","measurementKey","boundaryMeasurements","hostRef","useAnimatedRef","measurement","useSharedValue","hostBounds","useDerivedValue","captured","get","key","bounds","retryToken","attempts","count","useAnimatedReaction","hasSource","state","cancelAnimation","requestedKey","completedKey","set","measured","measure","width","height","withDelay","withTiming","duration","exports"],"sourceRoot":"../../../../../../src","sources":["components/boundary/portal/hooks/use-host-measurement.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","usePlaceholderStyles","placeholderWidth","useSharedValue","placeholderHeight","placeholderStyle","useAnimatedStyle","width","get","height","handleOnLayout","useCallback","layout","hasValidDimensions","set","exports"],"sourceRoot":"../../../../../../src","sources":["components/boundary/portal/hooks/use-placeholder-styles.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAD,OAAA;AAEO,MAAME,oBAAoB,GAAGA,CAAA,KAAM;EACzC,MAAMC,gBAAgB,GAAG,IAAAC,qCAAc,EAAC,CAAC,CAAC;EAC1C,MAAMC,iBAAiB,GAAG,IAAAD,qCAAc,EAAC,CAAC,CAAC;EAC3C;EACA;EACA;EACA;EACA,MAAME,gBAAgB,GAAG,IAAAC,uCAAgB,EAAC,MAAM;IAC/C,SAAS;;IACT,MAAMC,KAAK,GAAGL,gBAAgB,CAACM,GAAG,CAAC,CAAC;IACpC,MAAMC,MAAM,GAAGL,iBAAiB,CAACI,GAAG,CAAC,CAAC;IAEtC,IAAID,KAAK,KAAK,CAAC,EAAE;MAChB,OAAO;QAAEA,KAAK,EAAE,MAAM;QAAEE,MAAM,EAAE;MAAO,CAAC;IACzC;IAEA,OAAO;MAAEF,KAAK;MAAEE;IAAO,CAAC;EACzB,CAAC,CAAC;EAEF,MAAMC,cAAc,GAAG,IAAAC,kBAAW,EAChCC,MAAuB,IAAK;IAC5B,SAAS;;IACT,MAAM;MAAEL,KAAK;MAAEE;IAAO,CAAC,GAAGG,MAAM;IAChC,IAAIL,KAAK,KAAK,CAAC,IAAIE,MAAM,KAAK,CAAC,EAAE;MAChC;IACD;IAEA,MAAMI,kBAAkB,GACvBT,iBAAiB,CAACI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAIN,gBAAgB,CAACM,GAAG,CAAC,CAAC,KAAK,CAAC;IAE9D,IAAI,CAACK,kBAAkB,EAAE;MACxBX,gBAAgB,CAACY,GAAG,CAACP,KAAK,CAAC;MAC3BH,iBAAiB,CAACU,GAAG,CAACL,MAAM,CAAC;IAC9B;EACD,CAAC,EACD,CAACL,iBAAiB,EAAEF,gBAAgB,CACrC,CAAC;EAED,OAAO;IAAEG,gBAAgB;IAAEK;EAAe,CAAC;AAC5C,CAAC;AAACK,OAAA,CAAAd,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.usePortalDestination = usePortalDestination;
|
|
7
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
8
|
+
var _boundaryRoot = require("../../providers/boundary-root.provider");
|
|
9
|
+
var _hostRegistry = require("../stores/host-registry.store");
|
|
10
|
+
var _naming = require("../utils/naming");
|
|
11
|
+
var _useActivePortalBoundaryHost = require("./use-active-portal-boundary-host");
|
|
12
|
+
function usePortalDestination(boundaryId, mode) {
|
|
13
|
+
const {
|
|
14
|
+
currentScreenKey,
|
|
15
|
+
localMeasurement,
|
|
16
|
+
slotsMap,
|
|
17
|
+
boundaryPresentation
|
|
18
|
+
} = (0, _boundaryRoot.useBoundaryRootStore)(s => s);
|
|
19
|
+
const portalHostReady = (0, _reactNativeReanimated.useSharedValue)(false);
|
|
20
|
+
const escapeHostKey = (0, _hostRegistry.useActiveHostKey)(mode === "escapeClipping" ? currentScreenKey : null);
|
|
21
|
+
const portalHostName = (0, _useActivePortalBoundaryHost.useActivePortalBoundaryHost)({
|
|
22
|
+
boundaryId,
|
|
23
|
+
escapeHostKey,
|
|
24
|
+
localMeasurement,
|
|
25
|
+
portalHostReady,
|
|
26
|
+
slotsMap
|
|
27
|
+
});
|
|
28
|
+
const teleportProps = (0, _reactNativeReanimated.useAnimatedProps)(() => {
|
|
29
|
+
"worklet";
|
|
30
|
+
|
|
31
|
+
const {
|
|
32
|
+
owner,
|
|
33
|
+
receiver,
|
|
34
|
+
slots
|
|
35
|
+
} = boundaryPresentation.get();
|
|
36
|
+
const slot = slots[boundaryId];
|
|
37
|
+
const {
|
|
38
|
+
pointerEvents: _pointerEvents,
|
|
39
|
+
handoffTarget: _handoffTarget,
|
|
40
|
+
...props
|
|
41
|
+
} = slot?.props ?? {};
|
|
42
|
+
let hostName = _naming.PORTAL_HOST_NAME_RESET_VALUE;
|
|
43
|
+
if (mode === "handoff") {
|
|
44
|
+
hostName = (0, _naming.createHandoffHostName)(receiver, boundaryId);
|
|
45
|
+
} else if (owner?.ready && localMeasurement.get()?.pairKey === owner.pairKey && slot !== undefined && portalHostReady.get()) {
|
|
46
|
+
hostName = portalHostName;
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
...props,
|
|
50
|
+
hostName
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
return {
|
|
54
|
+
teleportProps,
|
|
55
|
+
localHostName: (0, _naming.createHandoffHostName)(currentScreenKey, boundaryId)
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=use-portal-destination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeReanimated","require","_boundaryRoot","_hostRegistry","_naming","_useActivePortalBoundaryHost","usePortalDestination","boundaryId","mode","currentScreenKey","localMeasurement","slotsMap","boundaryPresentation","useBoundaryRootStore","s","portalHostReady","useSharedValue","escapeHostKey","useActiveHostKey","portalHostName","useActivePortalBoundaryHost","teleportProps","useAnimatedProps","owner","receiver","slots","get","slot","pointerEvents","_pointerEvents","handoffTarget","_handoffTarget","props","hostName","PORTAL_HOST_NAME_RESET_VALUE","createHandoffHostName","ready","pairKey","undefined","localHostName"],"sourceRoot":"../../../../../../src","sources":["components/boundary/portal/hooks/use-portal-destination.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAIA,IAAAI,4BAAA,GAAAJ,OAAA;AAIO,SAASK,oBAAoBA,CAACC,UAAkB,EAAEC,IAAgB,EAAE;EAC1E,MAAM;IAAEC,gBAAgB;IAAEC,gBAAgB;IAAEC,QAAQ;IAAEC;EAAqB,CAAC,GAC3E,IAAAC,kCAAoB,EAAEC,CAAC,IAAKA,CAAC,CAAC;EAC/B,MAAMC,eAAe,GAAG,IAAAC,qCAAc,EAAC,KAAK,CAAC;EAC7C,MAAMC,aAAa,GAAG,IAAAC,8BAAgB,EACrCV,IAAI,KAAK,gBAAgB,GAAGC,gBAAgB,GAAG,IAChD,CAAC;EACD,MAAMU,cAAc,GAAG,IAAAC,wDAA2B,EAAC;IAClDb,UAAU;IACVU,aAAa;IACbP,gBAAgB;IAChBK,eAAe;IACfJ;EACD,CAAC,CAAC;EACF,MAAMU,aAAa,GAAG,IAAAC,uCAAgB,EAAC,MAAM;IAC5C,SAAS;;IACT,MAAM;MAAEC,KAAK;MAAEC,QAAQ;MAAEC;IAAM,CAAC,GAAGb,oBAAoB,CAACc,GAAG,CAAC,CAAC;IAC7D,MAAMC,IAAI,GAAGF,KAAK,CAAClB,UAAU,CAAC;IAC9B,MAAM;MACLqB,aAAa,EAAEC,cAAc;MAC7BC,aAAa,EAAEC,cAAc;MAC7B,GAAGC;IACJ,CAAC,GAAGL,IAAI,EAAEK,KAAK,IAAI,CAAC,CAAC;IACrB,IAAIC,QAAuB,GAAGC,oCAA4B;IAC1D,IAAI1B,IAAI,KAAK,SAAS,EAAE;MACvByB,QAAQ,GAAG,IAAAE,6BAAqB,EAACX,QAAQ,EAAEjB,UAAU,CAAC;IACvD,CAAC,MAAM,IACNgB,KAAK,EAAEa,KAAK,IACZ1B,gBAAgB,CAACgB,GAAG,CAAC,CAAC,EAAEW,OAAO,KAAKd,KAAK,CAACc,OAAO,IACjDV,IAAI,KAAKW,SAAS,IAClBvB,eAAe,CAACW,GAAG,CAAC,CAAC,EACpB;MACDO,QAAQ,GAAGd,cAAc;IAC1B;IAEA,OAAO;MAAE,GAAGa,KAAK;MAAEC;IAAS,CAAC;EAC9B,CAAC,CAAC;EACF,OAAO;IACNZ,aAAa;IACbkB,aAAa,EAAE,IAAAJ,6BAAqB,EAAC1B,gBAAgB,EAAEF,UAAU;EAClE,CAAC;AACF","ignoreList":[]}
|
|
@@ -3,18 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "Host", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _host.Host;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
6
|
Object.defineProperty(exports, "PortalProvider", {
|
|
13
7
|
enumerable: true,
|
|
14
8
|
get: function () {
|
|
15
9
|
return _portalProvider.PortalProvider;
|
|
16
10
|
}
|
|
17
11
|
});
|
|
18
|
-
var _host = require("./components/boundary-portal/components/host");
|
|
19
12
|
var _portalProvider = require("./components/portal-provider");
|
|
20
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_portalProvider","require"],"sourceRoot":"../../../../../src","sources":["components/boundary/portal/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA","ignoreList":[]}
|
|
@@ -5,10 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useActiveHostKey = exports.unregisterHost = exports.resetHostRegistry = exports.registerHost = exports.getActiveHostKey = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
|
-
const EMPTY_SNAPSHOT = {};
|
|
9
8
|
const listeners = new Set();
|
|
10
9
|
const hostStacks = new Map();
|
|
11
|
-
let snapshot = EMPTY_SNAPSHOT;
|
|
12
10
|
|
|
13
11
|
/**
|
|
14
12
|
* The active host for a screen. Stack ordering is the load-bearing invariant:
|
|
@@ -28,15 +26,7 @@ const getActiveHostFromStack = (screenKey, stack) => {
|
|
|
28
26
|
}
|
|
29
27
|
return stack[0]?.hostKey ?? screenKey;
|
|
30
28
|
};
|
|
31
|
-
const buildSnapshot = () => {
|
|
32
|
-
const nextSnapshot = {};
|
|
33
|
-
for (const [screenKey, stack] of hostStacks) {
|
|
34
|
-
nextSnapshot[screenKey] = getActiveHostFromStack(screenKey, stack);
|
|
35
|
-
}
|
|
36
|
-
return nextSnapshot;
|
|
37
|
-
};
|
|
38
29
|
const emit = () => {
|
|
39
|
-
snapshot = buildSnapshot();
|
|
40
30
|
for (const listener of listeners) {
|
|
41
31
|
listener();
|
|
42
32
|
}
|
|
@@ -82,7 +72,7 @@ const unregisterHost = (screenKey, hostKey) => {
|
|
|
82
72
|
};
|
|
83
73
|
exports.unregisterHost = unregisterHost;
|
|
84
74
|
const getActiveHostKey = screenKey => {
|
|
85
|
-
return
|
|
75
|
+
return getActiveHostFromStack(screenKey, hostStacks.get(screenKey));
|
|
86
76
|
};
|
|
87
77
|
exports.getActiveHostKey = getActiveHostKey;
|
|
88
78
|
const useActiveHostKey = screenKey => {
|
|
@@ -91,7 +81,6 @@ const useActiveHostKey = screenKey => {
|
|
|
91
81
|
exports.useActiveHostKey = useActiveHostKey;
|
|
92
82
|
const resetHostRegistry = () => {
|
|
93
83
|
hostStacks.clear();
|
|
94
|
-
snapshot = EMPTY_SNAPSHOT;
|
|
95
84
|
emit();
|
|
96
85
|
};
|
|
97
86
|
exports.resetHostRegistry = resetHostRegistry;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","listeners","Set","hostStacks","Map","getActiveHostFromStack","screenKey","stack","length","index","host","fallback","hostKey","emit","listener","subscribe","add","delete","registerHost","registration","get","previousActiveHostKey","nextStack","filter","unshift","push","set","exports","unregisterHost","getActiveHostKey","useActiveHostKey","useSyncExternalStore","undefined","resetHostRegistry","clear"],"sourceRoot":"../../../../../../src","sources":["components/boundary/portal/stores/host-registry.store.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAQA,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAa,CAAC;AACvC,MAAMC,UAAU,GAAG,IAAIC,GAAG,CAA6B,CAAC;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,sBAAsB,GAAGA,CAC9BC,SAAiB,EACjBC,KAAqC,KACjC;EACJ,IAAI,CAACA,KAAK,IAAIA,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;IACjC,OAAOF,SAAS;EACjB;EAEA,KAAK,IAAIG,KAAK,GAAGF,KAAK,CAACC,MAAM,GAAG,CAAC,EAAEC,KAAK,IAAI,CAAC,EAAEA,KAAK,EAAE,EAAE;IACvD,MAAMC,IAAI,GAAGH,KAAK,CAACE,KAAK,CAAC;IACzB,IAAI,CAACC,IAAI,CAACC,QAAQ,EAAE;MACnB,OAAOD,IAAI,CAACE,OAAO;IACpB;EACD;EAEA,OAAOL,KAAK,CAAC,CAAC,CAAC,EAAEK,OAAO,IAAIN,SAAS;AACtC,CAAC;AAED,MAAMO,IAAI,GAAGA,CAAA,KAAM;EAClB,KAAK,MAAMC,QAAQ,IAAIb,SAAS,EAAE;IACjCa,QAAQ,CAAC,CAAC;EACX;AACD,CAAC;AAED,MAAMC,SAAS,GAAID,QAAoB,IAAK;EAC3Cb,SAAS,CAACe,GAAG,CAACF,QAAQ,CAAC;EAEvB,OAAO,MAAM;IACZb,SAAS,CAACgB,MAAM,CAACH,QAAQ,CAAC;EAC3B,CAAC;AACF,CAAC;AAEM,MAAMI,YAAY,GAAIC,YAA8B,IAAK;EAC/D,MAAMZ,KAAK,GAAGJ,UAAU,CAACiB,GAAG,CAACD,YAAY,CAACb,SAAS,CAAC,IAAI,EAAE;EAC1D,MAAMe,qBAAqB,GAAGhB,sBAAsB,CACnDc,YAAY,CAACb,SAAS,EACtBC,KACD,CAAC;EACD,MAAMe,SAAS,GAAGf,KAAK,CAACgB,MAAM,CAC5Bb,IAAI,IAAKA,IAAI,CAACE,OAAO,KAAKO,YAAY,CAACP,OACzC,CAAC;EAED,IAAIO,YAAY,CAACR,QAAQ,EAAE;IAC1BW,SAAS,CAACE,OAAO,CAACL,YAAY,CAAC;EAChC,CAAC,MAAM;IACNG,SAAS,CAACG,IAAI,CAACN,YAAY,CAAC;EAC7B;EAEAhB,UAAU,CAACuB,GAAG,CAACP,YAAY,CAACb,SAAS,EAAEgB,SAAS,CAAC;EAEjD,IACCD,qBAAqB,KACrBhB,sBAAsB,CAACc,YAAY,CAACb,SAAS,EAAEgB,SAAS,CAAC,EACxD;IACD;EACD;EAEAT,IAAI,CAAC,CAAC;AACP,CAAC;AAACc,OAAA,CAAAT,YAAA,GAAAA,YAAA;AAEK,MAAMU,cAAc,GAAGA,CAACtB,SAAiB,EAAEM,OAAe,KAAK;EACrE,MAAML,KAAK,GAAGJ,UAAU,CAACiB,GAAG,CAACd,SAAS,CAAC;EACvC,IAAI,CAACC,KAAK,EAAE;IACX;EACD;EAEA,MAAMc,qBAAqB,GAAGhB,sBAAsB,CAACC,SAAS,EAAEC,KAAK,CAAC;EACtE,MAAMe,SAAS,GAAGf,KAAK,CAACgB,MAAM,CAAEb,IAAI,IAAKA,IAAI,CAACE,OAAO,KAAKA,OAAO,CAAC;EAElE,IAAIU,SAAS,CAACd,MAAM,KAAK,CAAC,EAAE;IAC3BL,UAAU,CAACc,MAAM,CAACX,SAAS,CAAC;EAC7B,CAAC,MAAM;IACNH,UAAU,CAACuB,GAAG,CAACpB,SAAS,EAAEgB,SAAS,CAAC;EACrC;EAEA,IAAID,qBAAqB,KAAKhB,sBAAsB,CAACC,SAAS,EAAEgB,SAAS,CAAC,EAAE;IAC3E;EACD;EAEAT,IAAI,CAAC,CAAC;AACP,CAAC;AAACc,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAEK,MAAMC,gBAAgB,GAAIvB,SAAiB,IAAK;EACtD,OAAOD,sBAAsB,CAACC,SAAS,EAAEH,UAAU,CAACiB,GAAG,CAACd,SAAS,CAAC,CAAC;AACpE,CAAC;AAACqB,OAAA,CAAAE,gBAAA,GAAAA,gBAAA;AAEK,MAAMC,gBAAgB,GAAIxB,SAAyB,IAAK;EAC9D,OAAO,IAAAyB,2BAAoB,EAC1BhB,SAAS,EACT,MAAOT,SAAS,GAAGuB,gBAAgB,CAACvB,SAAS,CAAC,GAAG0B,SAAU,EAC3D,MAAMA,SACP,CAAC;AACF,CAAC;AAACL,OAAA,CAAAG,gBAAA,GAAAA,gBAAA;AAEK,MAAMG,iBAAiB,GAAGA,CAAA,KAAM;EACtC9B,UAAU,CAAC+B,KAAK,CAAC,CAAC;EAClBrB,IAAI,CAAC,CAAC;AACP,CAAC;AAACc,OAAA,CAAAM,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -11,25 +11,23 @@ const activeBoundaryHosts = new Map();
|
|
|
11
11
|
let snapshot = {
|
|
12
12
|
hostsByScope: {}
|
|
13
13
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
|
|
15
|
+
// Preserve other overlays' snapshots so a registration only rerenders its owners.
|
|
16
|
+
const emit = (...hostKeys) => {
|
|
17
|
+
const hostsByScope = {
|
|
18
|
+
...snapshot.hostsByScope
|
|
19
|
+
};
|
|
20
|
+
for (const hostKey of new Set(hostKeys)) {
|
|
21
|
+
hostsByScope[hostKey] = Array.from(activeBoundaryHosts.values()).filter(host => host.hostKey === hostKey);
|
|
22
|
+
if (!hostsByScope[hostKey].length) delete hostsByScope[hostKey];
|
|
20
23
|
}
|
|
21
|
-
|
|
24
|
+
snapshot = {
|
|
22
25
|
hostsByScope
|
|
23
26
|
};
|
|
24
|
-
|
|
25
|
-
const emit = () => {
|
|
26
|
-
snapshot = buildSnapshot();
|
|
27
|
-
for (const listener of listeners) {
|
|
28
|
-
listener();
|
|
29
|
-
}
|
|
27
|
+
for (const listener of listeners) listener();
|
|
30
28
|
};
|
|
31
29
|
const isSameHost = (a, b) => {
|
|
32
|
-
return a.boundaryId === b.boundaryId && a.hostKey === b.hostKey && a.localMeasurement === b.localMeasurement && a.
|
|
30
|
+
return a.boundaryId === b.boundaryId && a.hostKey === b.hostKey && a.localMeasurement === b.localMeasurement && a.portalHostName === b.portalHostName && a.portalHostReady === b.portalHostReady && a.slotsMap === b.slotsMap;
|
|
33
31
|
};
|
|
34
32
|
const mountPortalBoundaryHost = host => {
|
|
35
33
|
const previous = activeBoundaryHosts.get(host.portalHostName);
|
|
@@ -37,14 +35,16 @@ const mountPortalBoundaryHost = host => {
|
|
|
37
35
|
return;
|
|
38
36
|
}
|
|
39
37
|
activeBoundaryHosts.set(host.portalHostName, host);
|
|
40
|
-
emit();
|
|
38
|
+
emit(host.hostKey, previous?.hostKey ?? host.hostKey);
|
|
41
39
|
};
|
|
42
40
|
exports.mountPortalBoundaryHost = mountPortalBoundaryHost;
|
|
43
41
|
const unmountPortalBoundaryHostByName = portalHostName => {
|
|
44
|
-
|
|
42
|
+
const host = portalHostName ? activeBoundaryHosts.get(portalHostName) : undefined;
|
|
43
|
+
if (!host) {
|
|
45
44
|
return;
|
|
46
45
|
}
|
|
47
|
-
|
|
46
|
+
activeBoundaryHosts.delete(host.portalHostName);
|
|
47
|
+
emit(host.hostKey);
|
|
48
48
|
};
|
|
49
49
|
exports.unmountPortalBoundaryHostByName = unmountPortalBoundaryHostByName;
|
|
50
50
|
const subscribe = listener => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","EMPTY_HOSTS","listeners","Set","activeBoundaryHosts","Map","snapshot","hostsByScope","emit","hostKeys","hostKey","Array","from","values","filter","host","length","listener","isSameHost","a","b","boundaryId","localMeasurement","portalHostName","portalHostReady","slotsMap","mountPortalBoundaryHost","previous","get","set","exports","unmountPortalBoundaryHostByName","undefined","delete","subscribe","add","useActivePortalBoundaryHosts","useSyncExternalStore"],"sourceRoot":"../../../../../../src","sources":["components/boundary/portal/stores/portal-boundary-host.store.ts"],"mappings":"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","ignoreList":[]}
|