react-native-screen-transitions 3.9.0-alpha.2 → 3.9.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/shared/components/boundary/components/boundary-target.js +14 -9
- package/lib/commonjs/shared/components/boundary/components/boundary-target.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/create-boundary-component.js +66 -28
- package/lib/commonjs/shared/components/boundary/create-boundary-component.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/hooks/{use-boundary-presence.js → lifecycles/use-boundary-presence.js} +8 -4
- package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-boundary-presence.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/hooks/{use-initial-destination-measurement.js → lifecycles/use-initial-destination-measurement.js} +27 -10
- package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/hooks/{use-initial-source-measurement.js → lifecycles/use-initial-source-measurement.js} +5 -7
- package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/hooks/{use-refresh-boundary.js → lifecycles/use-refresh-boundary.js} +4 -4
- package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js +14 -35
- package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js +5 -6
- package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/index.js +26 -29
- package/lib/commonjs/shared/components/boundary/index.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/components/boundary-local-portal-host.js +58 -0
- package/lib/commonjs/shared/components/boundary/portal/components/boundary-local-portal-host.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/components/host.js +20 -4
- package/lib/commonjs/shared/components/boundary/portal/components/host.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js +78 -27
- package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/components/portal.js +195 -121
- package/lib/commonjs/shared/components/boundary/portal/components/portal.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/hooks/use-host-measurement.js +14 -2
- package/lib/commonjs/shared/components/boundary/portal/hooks/use-host-measurement.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/hooks/use-placeholder-styles.js +57 -0
- package/lib/commonjs/shared/components/boundary/portal/hooks/use-placeholder-styles.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js +5 -44
- package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js +37 -5
- package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/teleport.js +15 -2
- package/lib/commonjs/shared/components/boundary/portal/teleport.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/utils/has-local-slot.js +18 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/has-local-slot.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/naming.js +10 -3
- package/lib/commonjs/shared/components/boundary/portal/utils/naming.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js +28 -48
- package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/utils/ownership.js +254 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/ownership.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/resolve-portal.js +38 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/resolve-portal.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/shallow-equal.js +29 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/shallow-equal.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js +10 -1
- package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/utils/visible-host.js +25 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/visible-host.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js +6 -7
- package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/utils/destination-signals.js +1 -22
- package/lib/commonjs/shared/components/boundary/utils/destination-signals.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js +0 -21
- package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/utils/source-signals.js +4 -9
- package/lib/commonjs/shared/components/boundary/utils/source-signals.js.map +1 -1
- package/lib/commonjs/shared/components/masked-view.js +5 -0
- package/lib/commonjs/shared/components/masked-view.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/layers/backdrop.js +18 -8
- package/lib/commonjs/shared/components/screen-container/layers/backdrop.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/layers/content.js +34 -16
- package/lib/commonjs/shared/components/screen-container/layers/content.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/layers/render-component.js +10 -0
- package/lib/commonjs/shared/components/screen-container/layers/render-component.js.map +1 -0
- package/lib/commonjs/shared/components/screen-container/layers/surface-container.js +5 -3
- package/lib/commonjs/shared/components/screen-container/layers/surface-container.js.map +1 -1
- package/lib/commonjs/shared/index.js +4 -0
- package/lib/commonjs/shared/index.js.map +1 -1
- package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js +6 -3
- package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
- package/lib/commonjs/shared/providers/register-bounds.provider.js +6 -0
- package/lib/commonjs/shared/providers/register-bounds.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/derivations.js +1 -0
- package/lib/commonjs/shared/providers/screen/animation/helpers/derivations.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js +1 -0
- package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/helpers/compose-slot-style.js +95 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/compose-slot-style.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/normalize-slots.js +30 -9
- package/lib/commonjs/shared/providers/screen/styles/helpers/normalize-slots.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +9 -3
- package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.js +2 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/hooks/slot-resolvers.js +96 -0
- package/lib/commonjs/shared/providers/screen/styles/hooks/slot-resolvers.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +16 -3
- package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/index.js +16 -3
- package/lib/commonjs/shared/providers/screen/styles/index.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/slot.provider.js +22 -51
- package/lib/commonjs/shared/providers/screen/styles/slot.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/stores/slot-references.store.js +53 -0
- package/lib/commonjs/shared/providers/screen/styles/stores/slot-references.store.js.map +1 -0
- package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js +22 -2
- package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds/internals/entries.js +11 -4
- package/lib/commonjs/shared/stores/bounds/internals/entries.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds/internals/links.js +134 -51
- package/lib/commonjs/shared/stores/bounds/internals/links.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds/internals/resolver.js +1 -3
- package/lib/commonjs/shared/stores/bounds/internals/resolver.js.map +1 -1
- package/lib/commonjs/shared/stores/system.store.js +5 -0
- package/lib/commonjs/shared/stores/system.store.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js +10 -69
- package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/styles/local-transform.js +59 -0
- package/lib/commonjs/shared/utils/bounds/helpers/styles/local-transform.js.map +1 -0
- package/lib/module/shared/components/boundary/components/boundary-target.js +12 -7
- package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -1
- package/lib/module/shared/components/boundary/create-boundary-component.js +67 -29
- package/lib/module/shared/components/boundary/create-boundary-component.js.map +1 -1
- package/lib/module/shared/components/boundary/hooks/{use-boundary-presence.js → lifecycles/use-boundary-presence.js} +8 -4
- package/lib/module/shared/components/boundary/hooks/lifecycles/use-boundary-presence.js.map +1 -0
- package/lib/module/shared/components/boundary/hooks/{use-initial-destination-measurement.js → lifecycles/use-initial-destination-measurement.js} +27 -10
- package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -0
- package/lib/module/shared/components/boundary/hooks/{use-initial-source-measurement.js → lifecycles/use-initial-source-measurement.js} +5 -7
- package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js.map +1 -0
- package/lib/module/shared/components/boundary/hooks/{use-refresh-boundary.js → lifecycles/use-refresh-boundary.js} +4 -4
- package/lib/module/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -0
- package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js +15 -36
- package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
- package/lib/module/shared/components/boundary/hooks/use-measurer.js +5 -6
- package/lib/module/shared/components/boundary/hooks/use-measurer.js.map +1 -1
- package/lib/module/shared/components/boundary/index.js +26 -29
- package/lib/module/shared/components/boundary/index.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/components/boundary-local-portal-host.js +53 -0
- package/lib/module/shared/components/boundary/portal/components/boundary-local-portal-host.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/components/host.js +21 -5
- package/lib/module/shared/components/boundary/portal/components/host.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js +79 -28
- package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/components/portal.js +201 -127
- package/lib/module/shared/components/boundary/portal/components/portal.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js +15 -3
- package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/hooks/use-placeholder-styles.js +52 -0
- package/lib/module/shared/components/boundary/portal/hooks/use-placeholder-styles.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js +4 -41
- package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js +35 -4
- package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/teleport.js +16 -2
- package/lib/module/shared/components/boundary/portal/teleport.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/utils/has-local-slot.js +13 -0
- package/lib/module/shared/components/boundary/portal/utils/has-local-slot.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/utils/naming.js +8 -2
- package/lib/module/shared/components/boundary/portal/utils/naming.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/utils/offset-style.js +29 -48
- package/lib/module/shared/components/boundary/portal/utils/offset-style.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/utils/ownership.js +246 -0
- package/lib/module/shared/components/boundary/portal/utils/ownership.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/utils/resolve-portal.js +33 -0
- package/lib/module/shared/components/boundary/portal/utils/resolve-portal.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/utils/shallow-equal.js +24 -0
- package/lib/module/shared/components/boundary/portal/utils/shallow-equal.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/utils/teleport-control.js +8 -0
- package/lib/module/shared/components/boundary/portal/utils/teleport-control.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/utils/visible-host.js +20 -0
- package/lib/module/shared/components/boundary/portal/utils/visible-host.js.map +1 -0
- package/lib/module/shared/components/boundary/providers/boundary-root.provider.js +6 -7
- package/lib/module/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
- package/lib/module/shared/components/boundary/utils/destination-signals.js +2 -23
- package/lib/module/shared/components/boundary/utils/destination-signals.js.map +1 -1
- package/lib/module/shared/components/boundary/utils/refresh-signals.js +0 -21
- package/lib/module/shared/components/boundary/utils/refresh-signals.js.map +1 -1
- package/lib/module/shared/components/boundary/utils/source-signals.js +4 -9
- package/lib/module/shared/components/boundary/utils/source-signals.js.map +1 -1
- package/lib/module/shared/components/masked-view.js +5 -0
- package/lib/module/shared/components/masked-view.js.map +1 -1
- package/lib/module/shared/components/screen-container/layers/backdrop.js +19 -9
- package/lib/module/shared/components/screen-container/layers/backdrop.js.map +1 -1
- package/lib/module/shared/components/screen-container/layers/content.js +35 -17
- package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
- package/lib/module/shared/components/screen-container/layers/render-component.js +6 -0
- package/lib/module/shared/components/screen-container/layers/render-component.js.map +1 -0
- package/lib/module/shared/components/screen-container/layers/surface-container.js +5 -3
- package/lib/module/shared/components/screen-container/layers/surface-container.js.map +1 -1
- package/lib/module/shared/index.js +4 -0
- package/lib/module/shared/index.js.map +1 -1
- package/lib/module/shared/providers/helpers/measured-bounds-writes.js +6 -3
- package/lib/module/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
- package/lib/module/shared/providers/register-bounds.provider.js +6 -0
- package/lib/module/shared/providers/register-bounds.provider.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/derivations.js +1 -0
- package/lib/module/shared/providers/screen/animation/helpers/derivations.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/pipeline.js +1 -0
- package/lib/module/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/helpers/compose-slot-style.js +89 -0
- package/lib/module/shared/providers/screen/styles/helpers/compose-slot-style.js.map +1 -0
- package/lib/module/shared/providers/screen/styles/helpers/normalize-slots.js +30 -9
- package/lib/module/shared/providers/screen/styles/helpers/normalize-slots.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +9 -3
- package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.js +2 -0
- package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/hooks/slot-resolvers.js +87 -0
- package/lib/module/shared/providers/screen/styles/hooks/slot-resolvers.js.map +1 -0
- package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +16 -3
- package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/index.js +2 -1
- package/lib/module/shared/providers/screen/styles/index.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/slot.provider.js +22 -47
- package/lib/module/shared/providers/screen/styles/slot.provider.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/stores/slot-references.store.js +47 -0
- package/lib/module/shared/providers/screen/styles/stores/slot-references.store.js.map +1 -0
- package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js +19 -1
- package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
- package/lib/module/shared/stores/bounds/internals/entries.js +11 -4
- package/lib/module/shared/stores/bounds/internals/entries.js.map +1 -1
- package/lib/module/shared/stores/bounds/internals/links.js +135 -53
- package/lib/module/shared/stores/bounds/internals/links.js.map +1 -1
- package/lib/module/shared/stores/bounds/internals/resolver.js +1 -3
- package/lib/module/shared/stores/bounds/internals/resolver.js.map +1 -1
- package/lib/module/shared/stores/system.store.js +5 -0
- package/lib/module/shared/stores/system.store.js.map +1 -1
- package/lib/module/shared/types/animation.types.js.map +1 -1
- package/lib/module/shared/utils/bounds/helpers/styles/compute.js +10 -69
- package/lib/module/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
- package/lib/module/shared/utils/bounds/helpers/styles/local-transform.js +52 -0
- package/lib/module/shared/utils/bounds/helpers/styles/local-transform.js.map +1 -0
- package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts +1 -2
- package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts.map +1 -1
- package/lib/typescript/component-stack/components/component-screen.d.ts +1 -1
- package/lib/typescript/component-stack/components/component-screen.d.ts.map +1 -1
- package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts +1 -2
- package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts.map +1 -1
- package/lib/typescript/component-stack/types.d.ts +26 -0
- package/lib/typescript/component-stack/types.d.ts.map +1 -1
- package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +1 -1
- package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts.map +1 -1
- package/lib/typescript/native-stack/views/NativeStackView.d.ts +1 -2
- package/lib/typescript/native-stack/views/NativeStackView.d.ts.map +1 -1
- package/lib/typescript/native-stack/views/useHeaderConfigProps.d.ts +2 -2
- package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts +1 -1
- package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts.map +1 -1
- package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts +1 -1
- package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts.map +1 -1
- package/lib/typescript/shared/components/activity/variants/activity-container.d.ts +1 -1
- package/lib/typescript/shared/components/activity/variants/activity-container.d.ts.map +1 -1
- package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts +1 -1
- package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts +1 -1
- package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts +0 -1
- package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-boundary-presence.d.ts +11 -0
- package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-boundary-presence.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/hooks/{use-initial-destination-measurement.d.ts → lifecycles/use-initial-destination-measurement.d.ts} +2 -2
- package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.d.ts +8 -0
- package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/hooks/{use-refresh-boundary.d.ts → lifecycles/use-refresh-boundary.d.ts} +2 -2
- package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts +5 -9
- package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts +4 -3
- package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/index.d.ts +35 -24
- package/lib/typescript/shared/components/boundary/index.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/components/boundary-local-portal-host.d.ts +8 -0
- package/lib/typescript/shared/components/boundary/portal/components/boundary-local-portal-host.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/components/host.d.ts +2 -2
- package/lib/typescript/shared/components/boundary/portal/components/host.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts +2 -2
- package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts +1 -1
- package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts +4 -3
- package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/hooks/use-host-measurement.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/hooks/use-placeholder-styles.d.ts +17 -0
- package/lib/typescript/shared/components/boundary/portal/hooks/use-placeholder-styles.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts +0 -7
- package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts +16 -1
- package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/teleport.d.ts +1 -1
- package/lib/typescript/shared/components/boundary/portal/teleport.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/utils/has-local-slot.d.ts +3 -0
- package/lib/typescript/shared/components/boundary/portal/utils/has-local-slot.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts +2 -1
- package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts +23 -30
- package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts +35 -0
- package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/utils/resolve-portal.d.ts +12 -0
- package/lib/typescript/shared/components/boundary/portal/utils/resolve-portal.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/utils/shallow-equal.d.ts +8 -0
- package/lib/typescript/shared/components/boundary/portal/utils/shallow-equal.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts +4 -0
- package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/utils/visible-host.d.ts +8 -0
- package/lib/typescript/shared/components/boundary/portal/utils/visible-host.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts +7 -12
- package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/types.d.ts +9 -36
- package/lib/typescript/shared/components/boundary/types.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/utils/source-signals.d.ts +0 -1
- package/lib/typescript/shared/components/boundary/utils/source-signals.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-transition-aware-component.d.ts +6 -5
- package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
- package/lib/typescript/shared/components/masked-view.d.ts +5 -1
- package/lib/typescript/shared/components/masked-view.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts +1 -1
- package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts +1 -1
- package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts.map +1 -1
- package/lib/typescript/shared/components/scene-view.d.ts +1 -1
- package/lib/typescript/shared/components/scene-view.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container/index.d.ts +1 -1
- package/lib/typescript/shared/components/screen-container/index.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts +1 -1
- package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container/layers/content.d.ts +1 -1
- package/lib/typescript/shared/components/screen-container/layers/content.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container/layers/maybe-masked-navigation-container.d.ts +1 -1
- package/lib/typescript/shared/components/screen-container/layers/maybe-masked-navigation-container.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container/layers/render-component.d.ts +3 -0
- package/lib/typescript/shared/components/screen-container/layers/render-component.d.ts.map +1 -0
- package/lib/typescript/shared/components/screen-container/layers/surface-container.d.ts +1 -1
- package/lib/typescript/shared/components/screen-container/layers/surface-container.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/navigation/use-stack.d.ts +1 -1
- package/lib/typescript/shared/hooks/navigation/use-stack.d.ts.map +1 -1
- package/lib/typescript/shared/index.d.ts +731 -683
- package/lib/typescript/shared/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts +3 -3
- package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts.map +1 -1
- package/lib/typescript/shared/providers/register-bounds.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/derivations.d.ts +1 -0
- package/lib/typescript/shared/providers/screen/animation/helpers/derivations.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts +1 -1
- package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/screen-composer.d.ts +1 -1
- package/lib/typescript/shared/providers/screen/screen-composer.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/components/floating-overlay-layer.d.ts +1 -1
- package/lib/typescript/shared/providers/screen/styles/components/floating-overlay-layer.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/helpers/compose-slot-style.d.ts +4 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/compose-slot-style.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/normalize-slots.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.d.ts +2 -1
- package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/hooks/slot-resolvers.d.ts +11 -0
- package/lib/typescript/shared/providers/screen/styles/hooks/slot-resolvers.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts +4 -1
- package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +3 -3
- package/lib/typescript/shared/providers/screen/styles/index.d.ts +2 -1
- package/lib/typescript/shared/providers/screen/styles/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts +5 -10
- package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/stores/slot-references.store.d.ts +6 -0
- package/lib/typescript/shared/providers/screen/styles/stores/slot-references.store.d.ts.map +1 -0
- package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts +2 -0
- package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds/internals/entries.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds/internals/links.d.ts +4 -3
- package/lib/typescript/shared/stores/bounds/internals/links.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds/internals/resolver.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds/types.d.ts +9 -20
- package/lib/typescript/shared/stores/bounds/types.d.ts.map +1 -1
- package/lib/typescript/shared/stores/system.store.d.ts +1 -0
- package/lib/typescript/shared/stores/system.store.d.ts.map +1 -1
- package/lib/typescript/shared/types/animation.types.d.ts +7 -1
- package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/index.d.ts +1 -1
- package/lib/typescript/shared/types/index.d.ts.map +1 -1
- package/lib/typescript/shared/types/screen.types.d.ts +99 -4
- package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/styles/compute.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/styles/local-transform.d.ts +6 -0
- package/lib/typescript/shared/utils/bounds/helpers/styles/local-transform.d.ts.map +1 -0
- package/lib/typescript/shared/utils/bounds/types/options.d.ts +2 -0
- package/lib/typescript/shared/utils/bounds/types/options.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/component-stack/types.ts +26 -0
- package/src/shared/components/boundary/components/boundary-target.tsx +21 -7
- package/src/shared/components/boundary/create-boundary-component.tsx +92 -28
- package/src/shared/components/boundary/hooks/{use-boundary-presence.ts → lifecycles/use-boundary-presence.ts} +16 -5
- package/src/shared/components/boundary/hooks/{use-initial-destination-measurement.ts → lifecycles/use-initial-destination-measurement.ts} +40 -13
- package/src/shared/components/boundary/hooks/{use-initial-source-measurement.ts → lifecycles/use-initial-source-measurement.ts} +7 -9
- package/src/shared/components/boundary/hooks/{use-refresh-boundary.ts → lifecycles/use-refresh-boundary.ts} +6 -6
- package/src/shared/components/boundary/hooks/use-boundary-measurement.ts +15 -45
- package/src/shared/components/boundary/hooks/use-measurer.ts +9 -14
- package/src/shared/components/boundary/index.tsx +55 -29
- package/src/shared/components/boundary/portal/components/boundary-local-portal-host.tsx +66 -0
- package/src/shared/components/boundary/portal/components/host.tsx +20 -5
- package/src/shared/components/boundary/portal/components/portal-boundary-host.tsx +112 -46
- package/src/shared/components/boundary/portal/components/portal.tsx +263 -134
- package/src/shared/components/boundary/portal/hooks/use-host-measurement.ts +23 -2
- package/src/shared/components/boundary/portal/hooks/use-placeholder-styles.ts +55 -0
- package/src/shared/components/boundary/portal/stores/host-registry.store.ts +4 -51
- package/src/shared/components/boundary/portal/stores/portal-boundary-host.store.ts +59 -6
- package/src/shared/components/boundary/portal/teleport.ts +28 -3
- package/src/shared/components/boundary/portal/utils/has-local-slot.ts +16 -0
- package/src/shared/components/boundary/portal/utils/naming.ts +11 -1
- package/src/shared/components/boundary/portal/utils/offset-style.ts +42 -137
- package/src/shared/components/boundary/portal/utils/ownership.ts +371 -0
- package/src/shared/components/boundary/portal/utils/resolve-portal.ts +50 -0
- package/src/shared/components/boundary/portal/utils/shallow-equal.ts +25 -0
- package/src/shared/components/boundary/portal/utils/teleport-control.ts +12 -0
- package/src/shared/components/boundary/portal/utils/visible-host.ts +24 -0
- package/src/shared/components/boundary/providers/boundary-root.provider.tsx +9 -18
- package/src/shared/components/boundary/types.ts +9 -39
- package/src/shared/components/boundary/utils/destination-signals.ts +1 -32
- package/src/shared/components/boundary/utils/refresh-signals.ts +0 -41
- package/src/shared/components/boundary/utils/source-signals.ts +5 -17
- package/src/shared/components/masked-view.tsx +4 -0
- package/src/shared/components/screen-container/layers/backdrop.tsx +31 -10
- package/src/shared/components/screen-container/layers/content.tsx +61 -22
- package/src/shared/components/screen-container/layers/render-component.ts +9 -0
- package/src/shared/components/screen-container/layers/surface-container.tsx +5 -4
- package/src/shared/index.ts +9 -5
- package/src/shared/providers/helpers/measured-bounds-writes.ts +6 -11
- package/src/shared/providers/register-bounds.provider.tsx +5 -0
- package/src/shared/providers/screen/animation/helpers/derivations.ts +3 -0
- package/src/shared/providers/screen/animation/helpers/pipeline.ts +1 -0
- package/src/shared/providers/screen/styles/helpers/compose-slot-style.ts +129 -0
- package/src/shared/providers/screen/styles/helpers/normalize-slots.ts +45 -8
- package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/index.ts +14 -2
- package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.ts +3 -0
- package/src/shared/providers/screen/styles/hooks/slot-resolvers.tsx +111 -0
- package/src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +21 -3
- package/src/shared/providers/screen/styles/index.tsx +8 -3
- package/src/shared/providers/screen/styles/slot.provider.tsx +36 -54
- package/src/shared/providers/screen/styles/stores/slot-references.store.ts +71 -0
- package/src/shared/stores/bounds/helpers/link-pairs.helpers.ts +24 -1
- package/src/shared/stores/bounds/internals/entries.ts +13 -5
- package/src/shared/stores/bounds/internals/links.ts +167 -85
- package/src/shared/stores/bounds/internals/resolver.ts +0 -2
- package/src/shared/stores/bounds/types.ts +10 -22
- package/src/shared/stores/system.store.ts +6 -0
- package/src/shared/types/animation.types.ts +8 -1
- package/src/shared/types/index.ts +5 -0
- package/src/shared/types/screen.types.ts +111 -4
- package/src/shared/utils/bounds/helpers/styles/compute.ts +22 -124
- package/src/shared/utils/bounds/helpers/styles/local-transform.ts +86 -0
- package/src/shared/utils/bounds/types/options.ts +2 -0
- package/lib/commonjs/shared/components/boundary/hooks/use-boundary-presence.js.map +0 -1
- package/lib/commonjs/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +0 -1
- package/lib/commonjs/shared/components/boundary/hooks/use-initial-source-measurement.js.map +0 -1
- package/lib/commonjs/shared/components/boundary/hooks/use-refresh-boundary.js.map +0 -1
- package/lib/commonjs/shared/components/boundary/portal/resolve-portal.js +0 -36
- package/lib/commonjs/shared/components/boundary/portal/resolve-portal.js.map +0 -1
- package/lib/commonjs/shared/components/boundary/portal/utils/attachment.js +0 -40
- package/lib/commonjs/shared/components/boundary/portal/utils/attachment.js.map +0 -1
- package/lib/module/shared/components/boundary/hooks/use-boundary-presence.js.map +0 -1
- package/lib/module/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +0 -1
- package/lib/module/shared/components/boundary/hooks/use-initial-source-measurement.js.map +0 -1
- package/lib/module/shared/components/boundary/hooks/use-refresh-boundary.js.map +0 -1
- package/lib/module/shared/components/boundary/portal/resolve-portal.js +0 -31
- package/lib/module/shared/components/boundary/portal/resolve-portal.js.map +0 -1
- package/lib/module/shared/components/boundary/portal/utils/attachment.js +0 -35
- package/lib/module/shared/components/boundary/portal/utils/attachment.js.map +0 -1
- package/lib/typescript/shared/components/boundary/hooks/use-boundary-presence.d.ts +0 -9
- package/lib/typescript/shared/components/boundary/hooks/use-boundary-presence.d.ts.map +0 -1
- package/lib/typescript/shared/components/boundary/hooks/use-initial-destination-measurement.d.ts.map +0 -1
- package/lib/typescript/shared/components/boundary/hooks/use-initial-source-measurement.d.ts +0 -9
- package/lib/typescript/shared/components/boundary/hooks/use-initial-source-measurement.d.ts.map +0 -1
- package/lib/typescript/shared/components/boundary/hooks/use-refresh-boundary.d.ts.map +0 -1
- package/lib/typescript/shared/components/boundary/portal/resolve-portal.d.ts +0 -14
- package/lib/typescript/shared/components/boundary/portal/resolve-portal.d.ts.map +0 -1
- package/lib/typescript/shared/components/boundary/portal/utils/attachment.d.ts +0 -21
- package/lib/typescript/shared/components/boundary/portal/utils/attachment.d.ts.map +0 -1
- package/src/shared/components/boundary/portal/resolve-portal.ts +0 -40
- package/src/shared/components/boundary/portal/utils/attachment.ts +0 -48
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { runOnUI } from "react-native-reanimated";
|
|
5
|
-
import { createPendingPairKey } from "../../../stores/bounds/helpers/link-pairs.helpers";
|
|
3
|
+
import { useMemo } from "react";
|
|
6
4
|
import { prepareStyleForBounds } from "../../../utils/bounds/helpers/styles/styles";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
5
|
+
import { useBoundaryPresence } from "./lifecycles/use-boundary-presence";
|
|
6
|
+
import { useInitialDestinationMeasurement } from "./lifecycles/use-initial-destination-measurement";
|
|
7
|
+
import { useInitialSourceMeasurement } from "./lifecycles/use-initial-source-measurement";
|
|
8
|
+
import { useRefreshBoundary } from "./lifecycles/use-refresh-boundary";
|
|
11
9
|
import { useMeasurer } from "./use-measurer";
|
|
12
|
-
import { useRefreshBoundary } from "./use-refresh-boundary";
|
|
13
10
|
/**
|
|
14
11
|
* Owns the full measurement lifecycle for a boundary: builds the measurer,
|
|
15
12
|
* registers presence, runs the initial source/destination + refresh reactions,
|
|
16
|
-
* and
|
|
17
|
-
* measurer itself.
|
|
13
|
+
* and keeps the component itself away from the measurer.
|
|
18
14
|
*/
|
|
19
15
|
export const useBoundaryMeasurement = ({
|
|
20
16
|
boundTag,
|
|
@@ -24,10 +20,9 @@ export const useBoundaryMeasurement = ({
|
|
|
24
20
|
measuredRef,
|
|
25
21
|
style,
|
|
26
22
|
targetPreparedStyles,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
config
|
|
30
|
-
onPress
|
|
23
|
+
handoff,
|
|
24
|
+
escapeClipping,
|
|
25
|
+
config
|
|
31
26
|
}) => {
|
|
32
27
|
const {
|
|
33
28
|
anchor,
|
|
@@ -43,14 +38,14 @@ export const useBoundaryMeasurement = ({
|
|
|
43
38
|
}), [anchor, scaleMode, target, method]);
|
|
44
39
|
const rootPreparedStyles = useMemo(() => prepareStyleForBounds(style), [style]);
|
|
45
40
|
const preparedStyles = targetPreparedStyles ?? rootPreparedStyles;
|
|
46
|
-
const portalHost = resolvePortalHost(portal);
|
|
47
41
|
const measureBoundary = useMeasurer({
|
|
48
42
|
enabled,
|
|
49
43
|
boundTag,
|
|
50
44
|
currentScreenKey,
|
|
51
45
|
preparedStyles,
|
|
52
46
|
measuredAnimatedRef: measuredRef,
|
|
53
|
-
|
|
47
|
+
handoff,
|
|
48
|
+
escapeClipping
|
|
54
49
|
});
|
|
55
50
|
|
|
56
51
|
// Register/unregister this boundary in the presence map so source/destination
|
|
@@ -59,17 +54,14 @@ export const useBoundaryMeasurement = ({
|
|
|
59
54
|
enabled: runtimeEnabled,
|
|
60
55
|
boundTag,
|
|
61
56
|
currentScreenKey,
|
|
62
|
-
boundaryConfig
|
|
57
|
+
boundaryConfig,
|
|
58
|
+
handoff,
|
|
59
|
+
escapeClipping
|
|
63
60
|
});
|
|
64
|
-
|
|
65
|
-
// Passive auto-measurement only applies to non-pressable boundaries; pressable
|
|
66
|
-
// ones capture their source on press (see handlePress below).
|
|
67
|
-
const shouldPassivelyMeasureSource = shouldAutoMeasure && typeof onPress !== "function";
|
|
68
61
|
useInitialSourceMeasurement({
|
|
69
62
|
enabled: runtimeEnabled,
|
|
70
63
|
measureBoundary,
|
|
71
|
-
boundTag
|
|
72
|
-
shouldAutoMeasure: shouldPassivelyMeasureSource
|
|
64
|
+
boundTag
|
|
73
65
|
});
|
|
74
66
|
useInitialDestinationMeasurement({
|
|
75
67
|
boundTag,
|
|
@@ -81,18 +73,5 @@ export const useBoundaryMeasurement = ({
|
|
|
81
73
|
boundTag,
|
|
82
74
|
measureBoundary
|
|
83
75
|
});
|
|
84
|
-
const handlePress = useCallback((...args) => {
|
|
85
|
-
// Press path has priority: capture source before user onPress/navigation.
|
|
86
|
-
runOnUI(measureBoundary)({
|
|
87
|
-
type: "source",
|
|
88
|
-
pairKey: createPendingPairKey(currentScreenKey)
|
|
89
|
-
});
|
|
90
|
-
if (typeof onPress === "function") {
|
|
91
|
-
onPress(...args);
|
|
92
|
-
}
|
|
93
|
-
}, [measureBoundary, onPress, currentScreenKey]);
|
|
94
|
-
return {
|
|
95
|
-
onPress: typeof onPress === "function" ? handlePress : undefined
|
|
96
|
-
};
|
|
97
76
|
};
|
|
98
77
|
//# sourceMappingURL=use-boundary-measurement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useMemo","prepareStyleForBounds","useBoundaryPresence","useInitialDestinationMeasurement","useInitialSourceMeasurement","useRefreshBoundary","useMeasurer","useBoundaryMeasurement","boundTag","enabled","runtimeEnabled","currentScreenKey","measuredRef","style","targetPreparedStyles","handoff","escapeClipping","config","anchor","scaleMode","target","method","boundaryConfig","rootPreparedStyles","preparedStyles","measureBoundary","measuredAnimatedRef"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-boundary-measurement.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAI/B,SAASC,qBAAqB,QAAQ,6CAA6C;AAEnF,SAASC,mBAAmB,QAAQ,oCAAoC;AACxE,SAASC,gCAAgC,QAAQ,kDAAkD;AACnG,SAASC,2BAA2B,QAAQ,6CAA6C;AACzF,SAASC,kBAAkB,QAAQ,mCAAmC;AACtE,SAASC,WAAW,QAAQ,gBAAgB;AAmB5C;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CAAC;EACtCC,QAAQ;EACRC,OAAO;EACPC,cAAc;EACdC,gBAAgB;EAChBC,WAAW;EACXC,KAAK;EACLC,oBAAoB;EACpBC,OAAO;EACPC,cAAc;EACdC;AAC6B,CAAC,KAAK;EACnC,MAAM;IAAEC,MAAM;IAAEC,SAAS;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGJ,MAAM;EACpD,MAAMK,cAAc,GAAGtB,OAAO,CAC7B,OAAO;IAAEkB,MAAM;IAAEC,SAAS;IAAEC,MAAM;IAAEC;EAAO,CAAC,CAAC,EAC7C,CAACH,MAAM,EAAEC,SAAS,EAAEC,MAAM,EAAEC,MAAM,CACnC,CAAC;EAED,MAAME,kBAAkB,GAAGvB,OAAO,CACjC,MAAMC,qBAAqB,CAACY,KAAK,CAAC,EAClC,CAACA,KAAK,CACP,CAAC;EACD,MAAMW,cAAc,GAAGV,oBAAoB,IAAIS,kBAAkB;EAEjE,MAAME,eAAe,GAAGnB,WAAW,CAAC;IACnCG,OAAO;IACPD,QAAQ;IACRG,gBAAgB;IAChBa,cAAc;IACdE,mBAAmB,EAAEd,WAAW;IAChCG,OAAO;IACPC;EACD,CAAC,CAAC;;EAEF;EACA;EACAd,mBAAmB,CAAC;IACnBO,OAAO,EAAEC,cAAc;IACvBF,QAAQ;IACRG,gBAAgB;IAChBW,cAAc;IACdP,OAAO;IACPC;EACD,CAAC,CAAC;EAEFZ,2BAA2B,CAAC;IAC3BK,OAAO,EAAEC,cAAc;IACvBe,eAAe;IACfjB;EACD,CAAC,CAAC;EAEFL,gCAAgC,CAAC;IAChCK,QAAQ;IACRC,OAAO,EAAEC,cAAc;IACvBe;EACD,CAAC,CAAC;EAEFpB,kBAAkB,CAAC;IAClBI,OAAO,EAAEC,cAAc;IACvBF,QAAQ;IACRiB;EACD,CAAC,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -7,7 +7,6 @@ import { applyMeasuredBoundsWrites } from "../../../providers/helpers/measured-b
|
|
|
7
7
|
import { useOriginContext } from "../../../providers/screen/origin.provider";
|
|
8
8
|
import { ScrollStore } from "../../../stores/scroll.store";
|
|
9
9
|
import { SystemStore } from "../../../stores/system.store";
|
|
10
|
-
import { getActiveScrollHost } from "../portal/stores/host-registry.store";
|
|
11
10
|
import { attachScrollSnapshotToMeasuredBounds, isMeasurementInViewport, measureWithOverscrollAwareness, normalizeMeasuredBoundsToOrigin } from "../utils/measured-bounds";
|
|
12
11
|
export const useMeasurer = ({
|
|
13
12
|
enabled,
|
|
@@ -15,7 +14,8 @@ export const useMeasurer = ({
|
|
|
15
14
|
currentScreenKey,
|
|
16
15
|
preparedStyles,
|
|
17
16
|
measuredAnimatedRef,
|
|
18
|
-
|
|
17
|
+
handoff,
|
|
18
|
+
escapeClipping
|
|
19
19
|
}) => {
|
|
20
20
|
const {
|
|
21
21
|
width: viewportWidth,
|
|
@@ -47,7 +47,6 @@ export const useMeasurer = ({
|
|
|
47
47
|
const viewportAllowsDestinationWrite = target.type !== "destination" || !shouldGuardDestinationViewport || isMeasurementInViewport(normalizedMeasured, viewportWidth, viewportHeight);
|
|
48
48
|
if (!viewportAllowsDestinationWrite) return;
|
|
49
49
|
const measuredWithScroll = attachScrollSnapshotToMeasuredBounds(normalizedMeasured, scrollMetadata.get());
|
|
50
|
-
const sourceHost = target.type === "source" ? getActiveScrollHost(currentScreenKey) ?? undefined : undefined;
|
|
51
50
|
applyMeasuredBoundsWrites({
|
|
52
51
|
entryTag: boundTag.tag,
|
|
53
52
|
linkId: boundTag.linkKey,
|
|
@@ -56,9 +55,9 @@ export const useMeasurer = ({
|
|
|
56
55
|
measured: measuredWithScroll,
|
|
57
56
|
preparedStyles,
|
|
58
57
|
linkWrite: target,
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
handoff,
|
|
59
|
+
escapeClipping
|
|
61
60
|
});
|
|
62
|
-
}, [enabled, boundTag, currentScreenKey, preparedStyles, measuredAnimatedRef,
|
|
61
|
+
}, [enabled, boundTag, currentScreenKey, preparedStyles, measuredAnimatedRef, handoff, escapeClipping, viewportWidth, viewportHeight, scrollState, scrollMetadata, pendingLifecycleStartBlockCount, originRef]);
|
|
63
62
|
};
|
|
64
63
|
//# sourceMappingURL=use-measurer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useWindowDimensions","measure","applyMeasuredBoundsWrites","useOriginContext","ScrollStore","SystemStore","
|
|
1
|
+
{"version":3,"names":["useCallback","useWindowDimensions","measure","applyMeasuredBoundsWrites","useOriginContext","ScrollStore","SystemStore","attachScrollSnapshotToMeasuredBounds","isMeasurementInViewport","measureWithOverscrollAwareness","normalizeMeasuredBoundsToOrigin","useMeasurer","enabled","boundTag","currentScreenKey","preparedStyles","measuredAnimatedRef","handoff","escapeClipping","width","viewportWidth","height","viewportHeight","scrollState","getValue","scrollMetadata","pendingLifecycleStartBlockCount","originRef","target","measured","get","measuredOrigin","normalizedMeasured","shouldGuardDestinationViewport","group","viewportAllowsDestinationWrite","type","measuredWithScroll","entryTag","tag","linkId","linkKey","linkWrite"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-measurer.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAASC,mBAAmB,QAAQ,cAAc;AAClD,SAECC,OAAO,QAED,yBAAyB;AAChC,SAASC,yBAAyB,QAAQ,mDAAmD;AAC7F,SAASC,gBAAgB,QAAQ,2CAA2C;AAE5E,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,WAAW,QAAQ,8BAA8B;AAE1D,SACCC,oCAAoC,EACpCC,uBAAuB,EACvBC,8BAA8B,EAC9BC,+BAA+B,QACzB,0BAA0B;AAYjC,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAC3BC,OAAO;EACPC,QAAQ;EACRC,gBAAgB;EAChBC,cAAc;EACdC,mBAAmB;EACnBC,OAAO;EACPC;AACkB,CAAC,KAAsB;EACzC,MAAM;IAAEC,KAAK,EAAEC,aAAa;IAAEC,MAAM,EAAEC;EAAe,CAAC,GACrDrB,mBAAmB,CAAC,CAAC;EAEtB,MAAMsB,WAAW,GAAGlB,WAAW,CAACmB,QAAQ,CAACV,gBAAgB,EAAE,cAAc,CAAC;EAC1E,MAAMW,cAAc,GAAGpB,WAAW,CAACmB,QAAQ,CAACV,gBAAgB,EAAE,UAAU,CAAC;EACzE,MAAMY,+BAA+B,GAAGpB,WAAW,CAACkB,QAAQ,CAC3DV,gBAAgB,EAChB,iCACD,CAAC;EACD,MAAM;IAAEa;EAAU,CAAC,GAAGvB,gBAAgB,CAAC,CAAC;EAExC,OAAOJ,WAAW,CAChB4B,MAAM,IAAK;IACX,SAAS;;IACT,IAAI,CAAChB,OAAO,EAAE;IAEd,MAAMiB,QAAQ,GAAGpB,8BAA8B,CAC9CO,mBAAmB,EACnBO,WAAW,CAACO,GAAG,CAAC,CACjB,CAAC;IACD,MAAMC,cAAc,GAAG7B,OAAO,CAACyB,SAAS,CAAC;IAEzC,IAAI,CAACE,QAAQ,IAAI,CAACE,cAAc,EAAE;IAElC,MAAMC,kBAAkB,GAAGtB,+BAA+B,CACzDmB,QAAQ,EACRE,cACD,CAAC;;IAED;AACH;AACA;AACA;AACA;AACA;AACA;IACG,MAAME,8BAA8B,GACnCP,+BAA+B,CAACI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAACjB,QAAQ,CAACqB,KAAK;IAE9D,MAAMC,8BAA8B,GACnCP,MAAM,CAACQ,IAAI,KAAK,aAAa,IAC7B,CAACH,8BAA8B,IAC/BzB,uBAAuB,CACtBwB,kBAAkB,EAClBZ,aAAa,EACbE,cACD,CAAC;IAEF,IAAI,CAACa,8BAA8B,EAAE;IAErC,MAAME,kBAAkB,GAAG9B,oCAAoC,CAC9DyB,kBAAkB,EAClBP,cAAc,CAACK,GAAG,CAAC,CACpB,CAAC;IAED3B,yBAAyB,CAAC;MACzBmC,QAAQ,EAAEzB,QAAQ,CAAC0B,GAAG;MACtBC,MAAM,EAAE3B,QAAQ,CAAC4B,OAAO;MACxBP,KAAK,EAAErB,QAAQ,CAACqB,KAAK;MACrBpB,gBAAgB;MAChBe,QAAQ,EAAEQ,kBAAkB;MAC5BtB,cAAc;MACd2B,SAAS,EAAEd,MAAM;MACjBX,OAAO;MACPC;IACD,CAAC,CAAC;EACH,CAAC,EACD,CACCN,OAAO,EACPC,QAAQ,EACRC,gBAAgB,EAChBC,cAAc,EACdC,mBAAmB,EACnBC,OAAO,EACPC,cAAc,EACdE,aAAa,EACbE,cAAc,EACdC,WAAW,EACXE,cAAc,EACdC,+BAA+B,EAC/BC,SAAS,CAEX,CAAC;AACF,CAAC","ignoreList":[]}
|
|
@@ -1,54 +1,51 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { forwardRef } from "react";
|
|
3
4
|
import { Pressable, View } from "react-native";
|
|
4
5
|
import { BoundaryTarget } from "./components/boundary-target";
|
|
5
6
|
import { createBoundaryComponent } from "./create-boundary-component";
|
|
6
7
|
import { Host } from "./portal";
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
9
|
export { createBoundaryComponent };
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
+
const BoundaryPrimitive = /*#__PURE__*/forwardRef((props, ref) => {
|
|
11
|
+
const Component = "onPress" in props ? Pressable : View;
|
|
12
|
+
return /*#__PURE__*/_jsx(Component, {
|
|
13
|
+
...props,
|
|
14
|
+
ref: ref
|
|
15
|
+
});
|
|
10
16
|
});
|
|
17
|
+
BoundaryPrimitive.displayName = "Transition.Boundary.Primitive";
|
|
18
|
+
const BoundaryRoot = createBoundaryComponent(BoundaryPrimitive);
|
|
19
|
+
const BoundaryView = createBoundaryComponent(View);
|
|
11
20
|
const BoundaryTrigger = createBoundaryComponent(Pressable);
|
|
21
|
+
BoundaryRoot.displayName = "Transition.Boundary";
|
|
12
22
|
BoundaryView.displayName = "Transition.Boundary.View";
|
|
13
23
|
BoundaryTrigger.displayName = "Transition.Boundary.Trigger";
|
|
14
24
|
BoundaryTarget.displayName = "Transition.Boundary.Target";
|
|
15
25
|
Host.displayName = "Transition.Boundary.Host";
|
|
16
26
|
|
|
17
27
|
/**
|
|
18
|
-
* Shared-boundary
|
|
28
|
+
* Shared-boundary component with static helpers.
|
|
19
29
|
*
|
|
20
30
|
* How measurement works:
|
|
21
|
-
* 1.
|
|
22
|
-
* 2.
|
|
23
|
-
* 3. The link is updated as layout changes
|
|
31
|
+
* 1. Destination screen captures bounds for a tag.
|
|
32
|
+
* 2. Source screen captures bounds for the same concrete pair.
|
|
33
|
+
* 3. The link is updated as layout changes.
|
|
24
34
|
*
|
|
25
|
-
*
|
|
26
|
-
* -
|
|
27
|
-
*
|
|
28
|
-
* fresh source geometry on the first frame.
|
|
35
|
+
* Runtime primitive:
|
|
36
|
+
* - With an `onPress` handler, the root renders as a Pressable.
|
|
37
|
+
* - Without an `onPress` handler, the root renders as a View.
|
|
29
38
|
*
|
|
30
39
|
* Use:
|
|
31
|
-
* - `Boundary
|
|
32
|
-
* - `Boundary.Trigger` for tappable elements that start navigation.
|
|
40
|
+
* - `Boundary` for passive and pressable shared elements.
|
|
33
41
|
* - `Boundary.Target` to measure a nested descendant instead of the root.
|
|
34
42
|
* - `Boundary.Host` to make nested portal placement explicit.
|
|
35
43
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
* Passive boundary wrapper (no built-in press semantics).
|
|
39
|
-
*/
|
|
40
|
-
View: BoundaryView,
|
|
41
|
-
/**
|
|
42
|
-
* Pressable boundary wrapper with press-priority source capture.
|
|
43
|
-
*/
|
|
44
|
-
Trigger: BoundaryTrigger,
|
|
45
|
-
/**
|
|
46
|
-
* Optional nested measurement override inside a boundary root.
|
|
47
|
-
*/
|
|
44
|
+
|
|
45
|
+
export const Boundary = Object.assign(BoundaryRoot, {
|
|
48
46
|
Target: BoundaryTarget,
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
};
|
|
47
|
+
Host,
|
|
48
|
+
View: BoundaryView,
|
|
49
|
+
Trigger: BoundaryTrigger
|
|
50
|
+
});
|
|
54
51
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Pressable","View","BoundaryTarget","createBoundaryComponent","Host","
|
|
1
|
+
{"version":3,"names":["forwardRef","Pressable","View","BoundaryTarget","createBoundaryComponent","Host","jsx","_jsx","BoundaryPrimitive","props","ref","Component","displayName","BoundaryRoot","BoundaryView","BoundaryTrigger","Boundary","Object","assign","Target","Trigger"],"sourceRoot":"../../../../../src","sources":["shared/components/boundary/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SACCC,SAAS,EAETC,IAAI,QAEE,cAAc;AACrB,SAASC,cAAc,QAAQ,8BAA8B;AAC7D,SAASC,uBAAuB,QAAQ,6BAA6B;AACrE,SAASC,IAAI,QAAQ,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGhC,SAASH,uBAAuB;AAOhC,MAAMI,iBAAiB,gBAAGR,UAAU,CACnC,CAACS,KAAK,EAAEC,GAAG,KAAK;EACf,MAAMC,SAAS,GAAG,SAAS,IAAIF,KAAK,GAAGR,SAAS,GAAGC,IAAI;EAEvD,oBAAOK,IAAA,CAACI,SAAS;IAAA,GAAMF,KAAK;IAAUC,GAAG,EAAEA;EAAW,CAAE,CAAC;AAC1D,CACD,CAAC;AAEDF,iBAAiB,CAACI,WAAW,GAAG,+BAA+B;AAE/D,MAAMC,YAAY,GAAGT,uBAAuB,CAACI,iBAAiB,CAAC;AAC/D,MAAMM,YAAY,GAAGV,uBAAuB,CAACF,IAAI,CAAC;AAClD,MAAMa,eAAe,GAAGX,uBAAuB,CAACH,SAAS,CAAC;AAC1DY,YAAY,CAACD,WAAW,GAAG,qBAAqB;AAChDE,YAAY,CAACF,WAAW,GAAG,0BAA0B;AACrDG,eAAe,CAACH,WAAW,GAAG,6BAA6B;AAC3DT,cAAc,CAACS,WAAW,GAAG,4BAA4B;AACzDP,IAAI,CAACO,WAAW,GAAG,0BAA0B;;AAI7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAsBA,OAAO,MAAMI,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAACL,YAAY,EAAE;EACnDM,MAAM,EAAEhB,cAAc;EACtBE,IAAI;EACJH,IAAI,EAAEY,YAAY;EAClBM,OAAO,EAAEL;AACV,CAAC,CAAsB","ignoreList":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useCallback, useLayoutEffect } from "react";
|
|
4
|
+
import { StyleSheet, View } from "react-native";
|
|
5
|
+
import Animated from "react-native-reanimated";
|
|
6
|
+
import { SystemStore } from "../../../../stores/system.store";
|
|
7
|
+
import { NativePortalHost } from "../teleport";
|
|
8
|
+
import { createBoundaryLocalPortalHostName } from "../utils/naming";
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
const AnimatedPortalHost = NativePortalHost ? Animated.createAnimatedComponent(NativePortalHost) : null;
|
|
11
|
+
export const BoundaryLocalPortalHost = /*#__PURE__*/memo(function BoundaryLocalPortalHost({
|
|
12
|
+
boundaryId,
|
|
13
|
+
enabled,
|
|
14
|
+
screenKey
|
|
15
|
+
}) {
|
|
16
|
+
const {
|
|
17
|
+
drainLifecycleStartBlocks
|
|
18
|
+
} = SystemStore.getBag(screenKey).actions;
|
|
19
|
+
const handleLayout = useCallback(() => {
|
|
20
|
+
drainLifecycleStartBlocks();
|
|
21
|
+
}, [drainLifecycleStartBlocks]);
|
|
22
|
+
useLayoutEffect(() => {
|
|
23
|
+
if (!enabled || !AnimatedPortalHost) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
drainLifecycleStartBlocks();
|
|
27
|
+
}, [enabled, drainLifecycleStartBlocks]);
|
|
28
|
+
if (!enabled || !AnimatedPortalHost) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
const portalHostName = createBoundaryLocalPortalHostName(screenKey, boundaryId);
|
|
32
|
+
return /*#__PURE__*/_jsx(View, {
|
|
33
|
+
pointerEvents: "none",
|
|
34
|
+
style: styles.hostWrapper,
|
|
35
|
+
onLayout: handleLayout,
|
|
36
|
+
collapsable: false,
|
|
37
|
+
children: /*#__PURE__*/_jsx(AnimatedPortalHost, {
|
|
38
|
+
name: portalHostName,
|
|
39
|
+
style: styles.host
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
const styles = StyleSheet.create({
|
|
44
|
+
host: {
|
|
45
|
+
...StyleSheet.absoluteFillObject,
|
|
46
|
+
overflow: "visible"
|
|
47
|
+
},
|
|
48
|
+
hostWrapper: {
|
|
49
|
+
...StyleSheet.absoluteFillObject,
|
|
50
|
+
overflow: "visible"
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=boundary-local-portal-host.js.map
|
package/lib/module/shared/components/boundary/portal/components/boundary-local-portal-host.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useCallback","useLayoutEffect","StyleSheet","View","Animated","SystemStore","NativePortalHost","createBoundaryLocalPortalHostName","jsx","_jsx","AnimatedPortalHost","createAnimatedComponent","BoundaryLocalPortalHost","boundaryId","enabled","screenKey","drainLifecycleStartBlocks","getBag","actions","handleLayout","portalHostName","pointerEvents","style","styles","hostWrapper","onLayout","collapsable","children","name","host","create","absoluteFillObject","overflow"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-local-portal-host.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,WAAW,EAAEC,eAAe,QAAQ,OAAO;AAC1D,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,WAAW,QAAQ,iCAAiC;AAC7D,SAASC,gBAAgB,QAAQ,aAAa;AAC9C,SAASC,iCAAiC,QAAQ,iBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEpE,MAAMC,kBAAkB,GAAGJ,gBAAgB,GACxCF,QAAQ,CAACO,uBAAuB,CAACL,gBAAgB,CAAC,GAClD,IAAI;AAQP,OAAO,MAAMM,uBAAuB,gBAAGb,IAAI,CAAC,SAASa,uBAAuBA,CAAC;EAC5EC,UAAU;EACVC,OAAO;EACPC;AAC6B,CAAC,EAAE;EAChC,MAAM;IAAEC;EAA0B,CAAC,GAAGX,WAAW,CAACY,MAAM,CAACF,SAAS,CAAC,CAACG,OAAO;EAC3E,MAAMC,YAAY,GAAGnB,WAAW,CAAC,MAAM;IACtCgB,yBAAyB,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACA,yBAAyB,CAAC,CAAC;EAE/Bf,eAAe,CAAC,MAAM;IACrB,IAAI,CAACa,OAAO,IAAI,CAACJ,kBAAkB,EAAE;MACpC;IACD;IAEAM,yBAAyB,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACF,OAAO,EAAEE,yBAAyB,CAAC,CAAC;EAExC,IAAI,CAACF,OAAO,IAAI,CAACJ,kBAAkB,EAAE;IACpC,OAAO,IAAI;EACZ;EAEA,MAAMU,cAAc,GAAGb,iCAAiC,CACvDQ,SAAS,EACTF,UACD,CAAC;EAED,oBACCJ,IAAA,CAACN,IAAI;IACJkB,aAAa,EAAC,MAAM;IACpBC,KAAK,EAAEC,MAAM,CAACC,WAAY;IAC1BC,QAAQ,EAAEN,YAAa;IACvBO,WAAW,EAAE,KAAM;IAAAC,QAAA,eAEnBlB,IAAA,CAACC,kBAAkB;MAACkB,IAAI,EAAER,cAAe;MAACE,KAAK,EAAEC,MAAM,CAACM;IAAK,CAAE;EAAC,CAC3D,CAAC;AAET,CAAC,CAAC;AAEF,MAAMN,MAAM,GAAGrB,UAAU,CAAC4B,MAAM,CAAC;EAChCD,IAAI,EAAE;IACL,GAAG3B,UAAU,CAAC6B,kBAAkB;IAChCC,QAAQ,EAAE;EACX,CAAC;EACDR,WAAW,EAAE;IACZ,GAAGtB,UAAU,CAAC6B,kBAAkB;IAChCC,QAAQ,EAAE;EACX;AACD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { memo, useLayoutEffect, useRef } from "react";
|
|
3
|
+
import { memo, useCallback, useLayoutEffect, useRef } from "react";
|
|
4
4
|
import { StyleSheet, useWindowDimensions, View } from "react-native";
|
|
5
5
|
import Animated from "react-native-reanimated";
|
|
6
6
|
import { useDescriptorsStore } from "../../../../providers/screen/descriptors";
|
|
7
|
+
import { SystemStore } from "../../../../stores/system.store";
|
|
7
8
|
import { useHostMeasurement } from "../hooks/use-host-measurement";
|
|
8
9
|
import { registerHost, unregisterHost } from "../stores/host-registry.store";
|
|
9
10
|
import { useActivePortalBoundaryHosts } from "../stores/portal-boundary-host.store";
|
|
@@ -15,6 +16,9 @@ function HostImpl({
|
|
|
15
16
|
style
|
|
16
17
|
}) {
|
|
17
18
|
const screenKey = useDescriptorsStore(s => s.derivations.currentScreenKey);
|
|
19
|
+
const {
|
|
20
|
+
drainLifecycleStartBlocks
|
|
21
|
+
} = SystemStore.getBag(screenKey).actions;
|
|
18
22
|
const generatedHostKeyRef = useRef(null);
|
|
19
23
|
if (generatedHostKeyRef.current === null) {
|
|
20
24
|
generatedHostKeyRef.current = `${screenKey}-host-${nextHostId++}`;
|
|
@@ -43,20 +47,32 @@ function HostImpl({
|
|
|
43
47
|
unregisterHost(screenKey, hostKey);
|
|
44
48
|
};
|
|
45
49
|
}, [capturesScroll, fallback, hostKey, screenKey]);
|
|
46
|
-
const
|
|
47
|
-
|
|
50
|
+
const handleUnblocking = useCallback(() => {
|
|
51
|
+
// Screen-level escape keeps the open transition gated until portal hosts
|
|
52
|
+
// have committed layout. A screen may render more than one portal boundary
|
|
53
|
+
// host for the same lifecycle request, so the final host layout drains the
|
|
54
|
+
// outstanding start blocks for this screen.
|
|
55
|
+
drainLifecycleStartBlocks();
|
|
56
|
+
}, [drainLifecycleStartBlocks]);
|
|
57
|
+
const boundaryHosts = measurement.canRenderHosts ? activeBoundaryHosts.map((host, idx, list) => /*#__PURE__*/_jsx(View, {
|
|
58
|
+
pointerEvents: "none",
|
|
48
59
|
style: [styles.boundaryHostViewport, {
|
|
49
60
|
width: viewportWidth,
|
|
50
61
|
height: viewportHeight
|
|
51
62
|
}],
|
|
63
|
+
onLayout: () => {
|
|
64
|
+
if (list.length - 1 === idx) {
|
|
65
|
+
handleUnblocking();
|
|
66
|
+
}
|
|
67
|
+
},
|
|
52
68
|
children: /*#__PURE__*/_jsx(PortalBoundaryHost, {
|
|
53
69
|
host: host,
|
|
54
70
|
style: StyleSheet.absoluteFill
|
|
55
71
|
})
|
|
56
|
-
}, host.
|
|
72
|
+
}, host.portalHostName)) : null;
|
|
57
73
|
return /*#__PURE__*/_jsx(Animated.View, {
|
|
58
74
|
ref: measurement.hostRef,
|
|
59
|
-
pointerEvents: "
|
|
75
|
+
pointerEvents: "none",
|
|
60
76
|
style: [styles.host, {
|
|
61
77
|
width: viewportWidth,
|
|
62
78
|
height: viewportHeight
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useLayoutEffect","useRef","StyleSheet","useWindowDimensions","View","Animated","useDescriptorsStore","useHostMeasurement","registerHost","unregisterHost","useActivePortalBoundaryHosts","PortalBoundaryHost","jsx","_jsx","nextHostId","HostImpl","fallback","style","screenKey","s","derivations","currentScreenKey","generatedHostKeyRef","current","hostKey","capturesScroll","activeBoundaryHosts","height","viewportHeight","width","viewportWidth","measurement","enabled","length","boundaryHosts","canRenderHosts","map","host","pointerEvents","styles","boundaryHostViewport","children","absoluteFill","
|
|
1
|
+
{"version":3,"names":["memo","useCallback","useLayoutEffect","useRef","StyleSheet","useWindowDimensions","View","Animated","useDescriptorsStore","SystemStore","useHostMeasurement","registerHost","unregisterHost","useActivePortalBoundaryHosts","PortalBoundaryHost","jsx","_jsx","nextHostId","HostImpl","fallback","style","screenKey","s","derivations","currentScreenKey","drainLifecycleStartBlocks","getBag","actions","generatedHostKeyRef","current","hostKey","capturesScroll","activeBoundaryHosts","height","viewportHeight","width","viewportWidth","measurement","enabled","length","handleUnblocking","boundaryHosts","canRenderHosts","map","host","idx","list","pointerEvents","styles","boundaryHostViewport","onLayout","children","absoluteFill","portalHostName","ref","hostRef","collapsable","Host","props","ScreenFallbackHost","create","elevation","left","overflow","position","top","zIndex"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/host.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,WAAW,EAAEC,eAAe,EAAEC,MAAM,QAAQ,OAAO;AAClE,SAECC,UAAU,EACVC,mBAAmB,EACnBC,IAAI,QAEE,cAAc;AACrB,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,mBAAmB,QAAQ,0CAA0C;AAC9E,SAASC,WAAW,QAAQ,iCAAiC;AAC7D,SAASC,kBAAkB,QAAQ,+BAA+B;AAClE,SAASC,YAAY,EAAEC,cAAc,QAAQ,+BAA+B;AAC5E,SAASC,4BAA4B,QAAQ,sCAAsC;AACnF,SAASC,kBAAkB,QAAQ,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE5D,IAAIC,UAAU,GAAG,CAAC;AAUlB,SAASC,QAAQA,CAAC;EAAEC,QAAQ,GAAG,KAAK;EAAEC;AAAqB,CAAC,EAAE;EAC7D,MAAMC,SAAS,GAAGb,mBAAmB,CAAEc,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACC,gBAAgB,CAAC;EAC5E,MAAM;IAAEC;EAA0B,CAAC,GAAGhB,WAAW,CAACiB,MAAM,CAACL,SAAS,CAAC,CAACM,OAAO;EAC3E,MAAMC,mBAAmB,GAAGzB,MAAM,CAAgB,IAAI,CAAC;EAEvD,IAAIyB,mBAAmB,CAACC,OAAO,KAAK,IAAI,EAAE;IACzCD,mBAAmB,CAACC,OAAO,GAAG,GAAGR,SAAS,SAASJ,UAAU,EAAE,EAAE;EAClE;EAEA,MAAMa,OAAO,GAAGX,QAAQ,GAAGE,SAAS,GAAGO,mBAAmB,CAACC,OAAO;EAClE,MAAME,cAAc,GAAG,CAACZ,QAAQ;EAChC,MAAMa,mBAAmB,GAAGnB,4BAA4B,CAACiB,OAAO,CAAC;EACjE,MAAM;IAAEG,MAAM,EAAEC,cAAc;IAAEC,KAAK,EAAEC;EAAc,CAAC,GACrD/B,mBAAmB,CAAC,CAAC;EAEtB,MAAMgC,WAAW,GAAG3B,kBAAkB,CAAC;IACtCqB,cAAc;IACdO,OAAO,EAAEN,mBAAmB,CAACO,MAAM,GAAG,CAAC;IACvCT,OAAO;IACPT;EACD,CAAC,CAAC;EAEFnB,eAAe,CAAC,MAAM;IACrBS,YAAY,CAAC;MACZoB,cAAc;MACdZ,QAAQ;MACRW,OAAO;MACPT;IACD,CAAC,CAAC;IAEF,OAAO,MAAM;MACZT,cAAc,CAACS,SAAS,EAAES,OAAO,CAAC;IACnC,CAAC;EACF,CAAC,EAAE,CAACC,cAAc,EAAEZ,QAAQ,EAAEW,OAAO,EAAET,SAAS,CAAC,CAAC;EAElD,MAAMmB,gBAAgB,GAAGvC,WAAW,CAAC,MAAM;IAC1C;IACA;IACA;IACA;IACAwB,yBAAyB,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACA,yBAAyB,CAAC,CAAC;EAE/B,MAAMgB,aAAa,GAAGJ,WAAW,CAACK,cAAc,GAC7CV,mBAAmB,CAACW,GAAG,CAAC,CAACC,IAAI,EAAEC,GAAG,EAAEC,IAAI,kBACxC9B,IAAA,CAACV,IAAI;IAEJyC,aAAa,EAAC,MAAM;IACpB3B,KAAK,EAAE,CACN4B,MAAM,CAACC,oBAAoB,EAC3B;MAAEd,KAAK,EAAEC,aAAa;MAAEH,MAAM,EAAEC;IAAe,CAAC,CAC/C;IACFgB,QAAQ,EAAEA,CAAA,KAAM;MACf,IAAIJ,IAAI,CAACP,MAAM,GAAG,CAAC,KAAKM,GAAG,EAAE;QAC5BL,gBAAgB,CAAC,CAAC;MACnB;IACD,CAAE;IAAAW,QAAA,eAEFnC,IAAA,CAACF,kBAAkB;MAAC8B,IAAI,EAAEA,IAAK;MAACxB,KAAK,EAAEhB,UAAU,CAACgD;IAAa,CAAE;EAAC,GAZ7DR,IAAI,CAACS,cAaL,CACN,CAAC,GACD,IAAI;EAEP,oBACCrC,IAAA,CAACT,QAAQ,CAACD,IAAI;IACbgD,GAAG,EAAEjB,WAAW,CAACkB,OAAQ;IACzBR,aAAa,EAAC,MAAM;IACpB3B,KAAK,EAAE,CACN4B,MAAM,CAACJ,IAAI,EACX;MAAET,KAAK,EAAEC,aAAa;MAAEH,MAAM,EAAEC;IAAe,CAAC,EAChDd,KAAK,CACJ;IACFoC,WAAW,EAAE,KAAM;IAAAL,QAAA,EAElBV;EAAa,CACA,CAAC;AAElB;AAEA,OAAO,MAAMgB,IAAI,gBAAGzD,IAAI,CAAC,SAASyD,IAAIA,CAACC,KAAsB,EAAE;EAC9D,oBAAO1C,IAAA,CAACE,QAAQ;IAAA,GAAKwC;EAAK,CAAG,CAAC;AAC/B,CAAC,CAAC;AAEF,OAAO,MAAMC,kBAAkB,gBAAG3D,IAAI,CAAC,SAAS2D,kBAAkBA,CAAA,EAAG;EACpE,oBAAO3C,IAAA,CAACE,QAAQ;IAACC,QAAQ;EAAA,CAAE,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM6B,MAAM,GAAG5C,UAAU,CAACwD,MAAM,CAAC;EAChChB,IAAI,EAAE;IACLiB,SAAS,EAAE,MAAM;IACjBC,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE,SAAS;IACnBC,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,MAAM,EAAE;EACT,CAAC;EACDjB,oBAAoB,EAAE;IACrBa,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE,SAAS;IACnBC,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE;EACN;AACD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { memo } from "react";
|
|
4
|
+
import { StyleSheet } from "react-native";
|
|
4
5
|
import Animated, { useAnimatedStyle } from "react-native-reanimated";
|
|
5
6
|
import { NO_STYLES } from "../../../../constants";
|
|
7
|
+
import { composeSlotStyleWithLocalTransform } from "../../../../providers/screen/styles/helpers/compose-slot-style";
|
|
6
8
|
import { AnimationStore } from "../../../../stores/animation.store";
|
|
7
9
|
import { getSourceScreenKeyFromPairKey } from "../../../../stores/bounds/helpers/link-pairs.helpers";
|
|
8
10
|
import { getLink } from "../../../../stores/bounds/internals/links";
|
|
9
|
-
import {
|
|
10
|
-
import { ScrollStore } from "../../../../stores/scroll.store";
|
|
11
|
+
import { getClampedScrollAxisDelta, ScrollStore } from "../../../../stores/scroll.store";
|
|
11
12
|
import { NativePortalHost } from "../teleport";
|
|
12
|
-
import {
|
|
13
|
+
import { hasLocalSlot } from "../utils/has-local-slot";
|
|
13
14
|
import { resolvePortalOffsetStyle } from "../utils/offset-style";
|
|
14
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
16
|
const AnimatedPortalBoundaryHost = NativePortalHost ? Animated.createAnimatedComponent(NativePortalHost) : null;
|
|
@@ -17,12 +18,13 @@ export const PortalBoundaryHost = /*#__PURE__*/memo(function PortalBoundaryHost(
|
|
|
17
18
|
host,
|
|
18
19
|
style
|
|
19
20
|
}) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
// Cross-screen landing-rect scroll tracking: the flight interpolates toward
|
|
22
|
+
// the source rect stored at measure time, but the source screen stays
|
|
23
|
+
// scrollable while the pair closes (destination pointer events are
|
|
24
|
+
// released). These are read per-frame so the landing point follows the
|
|
25
|
+
// live source scroll instead of the stale snapshot.
|
|
25
26
|
const sourceScrollMetadata = ScrollStore.getValue(getSourceScreenKeyFromPairKey(host.pairKey), "metadata");
|
|
27
|
+
const hostVisualProgress = AnimationStore.getValue(host.screenKey, "visualProgress");
|
|
26
28
|
const hostStyle = useAnimatedStyle(() => {
|
|
27
29
|
"worklet";
|
|
28
30
|
|
|
@@ -32,38 +34,87 @@ export const PortalBoundaryHost = /*#__PURE__*/memo(function PortalBoundaryHost(
|
|
|
32
34
|
if (!link?.source || !link.destination) {
|
|
33
35
|
return NO_STYLES;
|
|
34
36
|
}
|
|
35
|
-
|
|
36
|
-
// Make the coordinate case explicit before resolving the host offset.
|
|
37
|
-
// The resolver owns the math; this component decides which screen/scroll
|
|
38
|
-
// relationship the active portal is in.
|
|
37
|
+
const sourceBounds = link.source.bounds;
|
|
39
38
|
const isCrossScreenPortal = link.source.screenKey !== host.screenKey;
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
let landingShift;
|
|
40
|
+
if (isCrossScreenPortal) {
|
|
41
|
+
// Weight by distance-to-landing so the destination end of the flight
|
|
42
|
+
// stays pinned: no correction while the content sits over the
|
|
43
|
+
// destination rect (progress 1), full correction at touchdown on the
|
|
44
|
+
// source rect (progress 0).
|
|
45
|
+
const landingWeight = 1 - Math.min(Math.max(hostVisualProgress.get(), 0), 1);
|
|
46
|
+
if (landingWeight > 0) {
|
|
47
|
+
const liveScroll = sourceScrollMetadata.get();
|
|
48
|
+
const capturedScroll = sourceBounds.scroll ?? null;
|
|
42
49
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
// Scroll offset grows as content moves up/left, so the rect's
|
|
51
|
+
// on-screen position shifts by the negative delta.
|
|
52
|
+
landingShift = {
|
|
53
|
+
x: -getClampedScrollAxisDelta(liveScroll, capturedScroll, "horizontal") * landingWeight,
|
|
54
|
+
y: -getClampedScrollAxisDelta(liveScroll, capturedScroll, "vertical") * landingWeight
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
48
58
|
return resolvePortalOffsetStyle({
|
|
49
|
-
bounds:
|
|
50
|
-
hostCurrentScroll: placement === "cross-screen-close" ? hostScrollMetadata.get() : null,
|
|
59
|
+
bounds: sourceBounds,
|
|
51
60
|
hostKey: host.hostKey,
|
|
52
|
-
placement,
|
|
53
|
-
|
|
54
|
-
hostProgress: hostProgress.get(),
|
|
55
|
-
trackSourceScroll
|
|
61
|
+
placement: isCrossScreenPortal ? "cross-screen" : "same-screen",
|
|
62
|
+
landingShift
|
|
56
63
|
});
|
|
57
64
|
});
|
|
65
|
+
const contentFrameStyle = useAnimatedStyle(() => {
|
|
66
|
+
"worklet";
|
|
67
|
+
|
|
68
|
+
const link = getLink(host.pairKey, host.boundaryId);
|
|
69
|
+
if (!link?.source || !link.destination) {
|
|
70
|
+
return NO_STYLES;
|
|
71
|
+
}
|
|
72
|
+
const sourceBounds = link.source.bounds;
|
|
73
|
+
return {
|
|
74
|
+
height: sourceBounds.height,
|
|
75
|
+
width: sourceBounds.width
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
const slotStyle = useAnimatedStyle(() => {
|
|
79
|
+
"worklet";
|
|
80
|
+
|
|
81
|
+
// `slotsMap` is the resolved map: it may contain real interpolator output,
|
|
82
|
+
// inherited styles, or resolver-created reset patches for slots that just
|
|
83
|
+
// disappeared. Normal components need those reset patches so stale styles
|
|
84
|
+
// clear correctly.
|
|
85
|
+
//
|
|
86
|
+
// A screen-level portal host is different. It is only the temporary visual
|
|
87
|
+
// receiver for teleported content, not the original component that needs a
|
|
88
|
+
// cleanup frame. If the current local interpolator layers did not emit this
|
|
89
|
+
// boundary id, any resolved style here is cleanup/stale residue and should
|
|
90
|
+
// not be drawn by the host.
|
|
91
|
+
if (host.escapeClipping && !hasLocalSlot(host.localStylesMaps.get(), host.boundaryId)) {
|
|
92
|
+
return NO_STYLES;
|
|
93
|
+
}
|
|
94
|
+
const slot = host.slotsMap.get()[host.boundaryId];
|
|
95
|
+
return composeSlotStyleWithLocalTransform(slot?.style ?? NO_STYLES, undefined, slot?.boundsLocalTransform);
|
|
96
|
+
});
|
|
58
97
|
|
|
59
98
|
// Without `react-native-teleport` no portal ever mounts a boundary host, so
|
|
60
99
|
// this never renders — the guard just narrows the nullable animated host.
|
|
61
100
|
if (!AnimatedPortalBoundaryHost) {
|
|
62
101
|
return null;
|
|
63
102
|
}
|
|
64
|
-
return /*#__PURE__*/_jsx(
|
|
65
|
-
|
|
66
|
-
style: [style, hostStyle]
|
|
103
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
|
104
|
+
pointerEvents: "none",
|
|
105
|
+
style: [style, hostStyle],
|
|
106
|
+
collapsable: false,
|
|
107
|
+
children: /*#__PURE__*/_jsx(AnimatedPortalBoundaryHost, {
|
|
108
|
+
name: host.portalHostName,
|
|
109
|
+
style: [styles.content, contentFrameStyle, slotStyle]
|
|
110
|
+
})
|
|
67
111
|
});
|
|
68
112
|
});
|
|
113
|
+
const styles = StyleSheet.create({
|
|
114
|
+
content: {
|
|
115
|
+
left: 0,
|
|
116
|
+
position: "absolute",
|
|
117
|
+
top: 0
|
|
118
|
+
}
|
|
119
|
+
});
|
|
69
120
|
//# sourceMappingURL=portal-boundary-host.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","Animated","useAnimatedStyle","NO_STYLES","AnimationStore","getSourceScreenKeyFromPairKey","getLink","
|
|
1
|
+
{"version":3,"names":["memo","StyleSheet","Animated","useAnimatedStyle","NO_STYLES","composeSlotStyleWithLocalTransform","AnimationStore","getSourceScreenKeyFromPairKey","getLink","getClampedScrollAxisDelta","ScrollStore","NativePortalHost","hasLocalSlot","resolvePortalOffsetStyle","jsx","_jsx","AnimatedPortalBoundaryHost","createAnimatedComponent","PortalBoundaryHost","host","style","sourceScrollMetadata","getValue","pairKey","hostVisualProgress","screenKey","hostStyle","link","boundaryId","source","destination","sourceBounds","bounds","isCrossScreenPortal","landingShift","landingWeight","Math","min","max","get","liveScroll","capturedScroll","scroll","x","y","hostKey","placement","contentFrameStyle","height","width","slotStyle","escapeClipping","localStylesMaps","slot","slotsMap","undefined","boundsLocalTransform","View","pointerEvents","collapsable","children","name","portalHostName","styles","content","create","left","position","top"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/portal-boundary-host.tsx"],"mappings":"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","ignoreList":[]}
|