react-native-screen-transitions 3.8.0-beta.1 → 3.9.0-alpha.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/blank-stack/components/stack-view.js +2 -1
- package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -1
- package/lib/commonjs/shared/components/{create-boundary-component → boundary}/components/boundary-target.js +21 -8
- package/lib/commonjs/shared/components/boundary/components/boundary-target.js.map +1 -0
- package/lib/commonjs/shared/components/{create-boundary-component → boundary}/create-boundary-component.js +10 -24
- package/lib/commonjs/shared/components/boundary/create-boundary-component.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/hooks/use-boundary-presence.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/hooks/use-initial-destination-measurement.js +115 -0
- package/lib/commonjs/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +1 -0
- package/lib/commonjs/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.js +4 -5
- package/lib/commonjs/shared/components/boundary/hooks/use-initial-source-measurement.js.map +1 -0
- package/lib/commonjs/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.js +26 -22
- package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js.map +1 -0
- package/lib/commonjs/shared/components/{create-boundary-component → boundary}/hooks/use-refresh-boundary.js +10 -7
- package/lib/commonjs/shared/components/boundary/hooks/use-refresh-boundary.js.map +1 -0
- package/lib/commonjs/shared/components/{create-boundary-component → boundary}/index.js +8 -1
- package/lib/commonjs/shared/components/boundary/index.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/components/host.js +99 -0
- package/lib/commonjs/shared/components/boundary/portal/components/host.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js +68 -0
- package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/components/portal-provider.js +17 -0
- package/lib/commonjs/shared/components/boundary/portal/components/portal-provider.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/components/portal.js +195 -0
- package/lib/commonjs/shared/components/boundary/portal/components/portal.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/hooks/use-host-measurement.js +74 -0
- package/lib/commonjs/shared/components/boundary/portal/hooks/use-host-measurement.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/index.js +27 -0
- package/lib/commonjs/shared/components/boundary/portal/index.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/stores/host-bounds.store.js +47 -0
- package/lib/commonjs/shared/components/boundary/portal/stores/host-bounds.store.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js +137 -0
- package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js +60 -0
- package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/attachment.js +40 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/attachment.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/naming.js +15 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/naming.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js +71 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js +16 -0
- package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js.map +1 -0
- package/lib/commonjs/shared/components/{create-boundary-component → boundary}/providers/boundary-owner.provider.js +26 -25
- package/lib/commonjs/shared/components/boundary/providers/boundary-owner.provider.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/types.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/utils/destination-signals.js +25 -0
- package/lib/commonjs/shared/components/boundary/utils/destination-signals.js.map +1 -0
- package/lib/commonjs/shared/components/{create-boundary-component → boundary}/utils/measured-bounds.js +19 -9
- package/lib/commonjs/shared/components/boundary/utils/measured-bounds.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js +105 -0
- package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js.map +1 -0
- package/lib/commonjs/shared/components/boundary/utils/source-signals.js +48 -0
- package/lib/commonjs/shared/components/boundary/utils/source-signals.js.map +1 -0
- package/lib/commonjs/shared/components/create-transition-aware-component.js +8 -3
- package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/commonjs/shared/components/{integrations/masked-view.js → masked-view.js} +2 -2
- package/lib/commonjs/shared/components/masked-view.js.map +1 -0
- package/lib/commonjs/shared/components/screen-container/layers/content.js +9 -5
- package/lib/commonjs/shared/components/screen-container/layers/content.js.map +1 -1
- package/lib/commonjs/shared/configs/presets.js +6 -6
- package/lib/commonjs/shared/configs/presets.js.map +1 -1
- package/lib/commonjs/shared/index.js +4 -4
- package/lib/commonjs/shared/index.js.map +1 -1
- package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js +4 -2
- package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js +7 -3
- package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +8 -1
- package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js +21 -6
- package/lib/commonjs/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/origin.provider.js +41 -0
- package/lib/commonjs/shared/providers/screen/origin.provider.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/styles/constants.js +2 -0
- package/lib/commonjs/shared/providers/screen/styles/constants.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js +58 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +7 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -1
- package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/styles.provider.js +7 -5
- package/lib/commonjs/shared/providers/screen/styles/styles.provider.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js +1 -10
- package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds/index.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds/internals/entries.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds/internals/links.js +36 -19
- package/lib/commonjs/shared/stores/bounds/internals/links.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds/internals/resolver.js +6 -4
- package/lib/commonjs/shared/stores/bounds/internals/resolver.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds/internals/state.js.map +1 -1
- package/lib/commonjs/shared/stores/scroll.store.js +54 -1
- package/lib/commonjs/shared/stores/scroll.store.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/create-bound-tag.js +38 -4
- package/lib/commonjs/shared/utils/bounds/helpers/create-bound-tag.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js +40 -87
- package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/create-link-accessor.js +6 -67
- package/lib/commonjs/shared/utils/bounds/helpers/create-link-accessor.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/prepare-bound-styles.js +8 -12
- package/lib/commonjs/shared/utils/bounds/helpers/prepare-bound-styles.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/styles/composers.js +235 -68
- package/lib/commonjs/shared/utils/bounds/helpers/styles/composers.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js +74 -4
- package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js +5 -9
- package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js +5 -10
- package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
- package/lib/module/blank-stack/components/stack-view.js +3 -2
- package/lib/module/blank-stack/components/stack-view.js.map +1 -1
- package/lib/module/shared/components/{create-boundary-component → boundary}/components/boundary-target.js +21 -8
- package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -0
- package/lib/module/shared/components/{create-boundary-component → boundary}/create-boundary-component.js +11 -25
- package/lib/module/shared/components/boundary/create-boundary-component.js.map +1 -0
- package/lib/module/shared/components/boundary/hooks/use-boundary-presence.js.map +1 -0
- package/lib/module/shared/components/boundary/hooks/use-initial-destination-measurement.js +110 -0
- package/lib/module/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +1 -0
- package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.js +4 -5
- package/lib/module/shared/components/boundary/hooks/use-initial-source-measurement.js.map +1 -0
- package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.js +27 -23
- package/lib/module/shared/components/boundary/hooks/use-measurer.js.map +1 -0
- package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-refresh-boundary.js +10 -7
- package/lib/module/shared/components/boundary/hooks/use-refresh-boundary.js.map +1 -0
- package/lib/module/shared/components/{create-boundary-component → boundary}/index.js +8 -1
- package/lib/module/shared/components/boundary/index.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/components/host.js +94 -0
- package/lib/module/shared/components/boundary/portal/components/host.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js +63 -0
- package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/components/portal-provider.js +13 -0
- package/lib/module/shared/components/boundary/portal/components/portal-provider.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/components/portal.js +190 -0
- package/lib/module/shared/components/boundary/portal/components/portal.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js +69 -0
- package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/index.js +6 -0
- package/lib/module/shared/components/boundary/portal/index.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/stores/host-bounds.store.js +40 -0
- package/lib/module/shared/components/boundary/portal/stores/host-bounds.store.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js +126 -0
- package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js +53 -0
- package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/utils/attachment.js +35 -0
- package/lib/module/shared/components/boundary/portal/utils/attachment.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/utils/naming.js +10 -0
- package/lib/module/shared/components/boundary/portal/utils/naming.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/utils/offset-style.js +66 -0
- package/lib/module/shared/components/boundary/portal/utils/offset-style.js.map +1 -0
- package/lib/module/shared/components/boundary/portal/utils/teleport-control.js +11 -0
- package/lib/module/shared/components/boundary/portal/utils/teleport-control.js.map +1 -0
- package/lib/module/shared/components/boundary/providers/boundary-owner.provider.js +60 -0
- package/lib/module/shared/components/boundary/providers/boundary-owner.provider.js.map +1 -0
- package/lib/module/shared/components/boundary/types.js.map +1 -0
- package/lib/module/shared/components/boundary/utils/destination-signals.js +20 -0
- package/lib/module/shared/components/boundary/utils/destination-signals.js.map +1 -0
- package/lib/module/shared/components/{create-boundary-component → boundary}/utils/measured-bounds.js +16 -7
- package/lib/module/shared/components/boundary/utils/measured-bounds.js.map +1 -0
- package/lib/module/shared/components/boundary/utils/refresh-signals.js +100 -0
- package/lib/module/shared/components/boundary/utils/refresh-signals.js.map +1 -0
- package/lib/module/shared/components/boundary/utils/source-signals.js +43 -0
- package/lib/module/shared/components/boundary/utils/source-signals.js.map +1 -0
- package/lib/module/shared/components/create-transition-aware-component.js +8 -3
- package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/module/shared/components/{integrations/masked-view.js → masked-view.js} +2 -2
- package/lib/module/shared/components/masked-view.js.map +1 -0
- package/lib/module/shared/components/screen-container/layers/content.js +10 -6
- package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
- package/lib/module/shared/configs/presets.js +6 -6
- package/lib/module/shared/configs/presets.js.map +1 -1
- package/lib/module/shared/index.js +2 -2
- package/lib/module/shared/index.js.map +1 -1
- package/lib/module/shared/providers/helpers/measured-bounds-writes.js +4 -2
- package/lib/module/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
- package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js +8 -4
- package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
- package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +8 -1
- package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
- package/lib/module/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js +20 -6
- package/lib/module/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +1 -1
- package/lib/module/shared/providers/screen/origin.provider.js +33 -0
- package/lib/module/shared/providers/screen/origin.provider.js.map +1 -0
- package/lib/module/shared/providers/screen/styles/constants.js +2 -0
- package/lib/module/shared/providers/screen/styles/constants.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js +53 -0
- package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js.map +1 -0
- package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +1 -0
- package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -1
- package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/styles.provider.js +7 -5
- package/lib/module/shared/providers/screen/styles/styles.provider.js.map +1 -1
- package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js +1 -8
- package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
- package/lib/module/shared/stores/bounds/index.js.map +1 -1
- package/lib/module/shared/stores/bounds/internals/entries.js.map +1 -1
- package/lib/module/shared/stores/bounds/internals/links.js +36 -19
- package/lib/module/shared/stores/bounds/internals/links.js.map +1 -1
- package/lib/module/shared/stores/bounds/internals/resolver.js +6 -4
- package/lib/module/shared/stores/bounds/internals/resolver.js.map +1 -1
- package/lib/module/shared/stores/bounds/internals/state.js.map +1 -1
- package/lib/module/shared/stores/scroll.store.js +50 -0
- package/lib/module/shared/stores/scroll.store.js.map +1 -1
- package/lib/module/shared/types/animation.types.js.map +1 -1
- package/lib/module/shared/types/bounds.types.js.map +1 -1
- package/lib/module/shared/utils/bounds/helpers/create-bound-tag.js +36 -3
- package/lib/module/shared/utils/bounds/helpers/create-bound-tag.js.map +1 -1
- package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js +42 -89
- package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
- package/lib/module/shared/utils/bounds/helpers/create-link-accessor.js +6 -67
- package/lib/module/shared/utils/bounds/helpers/create-link-accessor.js.map +1 -1
- package/lib/module/shared/utils/bounds/helpers/prepare-bound-styles.js +8 -13
- package/lib/module/shared/utils/bounds/helpers/prepare-bound-styles.js.map +1 -1
- package/lib/module/shared/utils/bounds/helpers/styles/composers.js +236 -69
- package/lib/module/shared/utils/bounds/helpers/styles/composers.js.map +1 -1
- package/lib/module/shared/utils/bounds/helpers/styles/compute.js +74 -4
- package/lib/module/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
- package/lib/module/shared/utils/bounds/navigation/reveal/build.js +5 -9
- package/lib/module/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
- package/lib/module/shared/utils/bounds/navigation/zoom/build.js +5 -10
- package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
- package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/hooks/use-boundary-presence.d.ts.map +1 -0
- package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-initial-destination-measurement.d.ts +1 -4
- package/lib/typescript/shared/components/boundary/hooks/use-initial-destination-measurement.d.ts.map +1 -0
- package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.d.ts +0 -2
- package/lib/typescript/shared/components/boundary/hooks/use-initial-source-measurement.d.ts.map +1 -0
- package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.d.ts +4 -2
- package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/hooks/use-refresh-boundary.d.ts +10 -0
- package/lib/typescript/shared/components/boundary/hooks/use-refresh-boundary.d.ts.map +1 -0
- package/lib/typescript/shared/components/{create-boundary-component → boundary}/index.d.ts +8 -2
- package/lib/typescript/shared/components/boundary/index.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/components/host.d.ts +7 -0
- package/lib/typescript/shared/components/boundary/portal/components/host.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts +9 -0
- package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts +4 -0
- package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts +19 -0
- package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/hooks/use-host-measurement.d.ts +13 -0
- package/lib/typescript/shared/components/boundary/portal/hooks/use-host-measurement.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/index.d.ts +4 -0
- package/lib/typescript/shared/components/boundary/portal/index.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/stores/host-bounds.store.d.ts +9 -0
- package/lib/typescript/shared/components/boundary/portal/stores/host-bounds.store.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts +19 -0
- package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts +11 -0
- package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/utils/attachment.d.ts +21 -0
- package/lib/typescript/shared/components/boundary/portal/utils/attachment.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts +3 -0
- package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts +37 -0
- package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts +3 -0
- package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts.map +1 -0
- package/lib/typescript/shared/components/{create-boundary-component → boundary}/providers/boundary-owner.provider.d.ts +14 -6
- package/lib/typescript/shared/components/boundary/providers/boundary-owner.provider.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/types.d.ts +78 -0
- package/lib/typescript/shared/components/boundary/types.d.ts.map +1 -0
- package/lib/typescript/shared/components/{create-boundary-component → boundary}/utils/destination-signals.d.ts +2 -3
- package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts.map +1 -0
- package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts +12 -0
- package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts.map +1 -0
- package/lib/typescript/shared/components/{create-boundary-component → boundary}/utils/refresh-signals.d.ts +4 -3
- package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts.map +1 -0
- package/lib/typescript/shared/components/{create-boundary-component → boundary}/utils/source-signals.d.ts +1 -2
- package/lib/typescript/shared/components/boundary/utils/source-signals.d.ts.map +1 -0
- package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
- package/lib/typescript/shared/components/masked-view.d.ts.map +1 -0
- package/lib/typescript/shared/components/screen-container/layers/content.d.ts.map +1 -1
- package/lib/typescript/shared/configs/presets.d.ts.map +1 -1
- package/lib/typescript/shared/index.d.ts +19 -17
- package/lib/typescript/shared/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts +3 -1
- package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts +6 -1
- package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts +9 -3
- package/lib/typescript/shared/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/origin.provider.d.ts +11 -0
- package/lib/typescript/shared/providers/screen/origin.provider.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/styles/constants.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.d.ts +3 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts +1 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +1 -0
- package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/styles.provider.d.ts +1 -0
- package/lib/typescript/shared/providers/screen/styles/styles.provider.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts +1 -3
- package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds/index.d.ts +1 -1
- package/lib/typescript/shared/stores/bounds/index.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds/internals/entries.d.ts +2 -2
- package/lib/typescript/shared/stores/bounds/internals/entries.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds/internals/links.d.ts +2 -2
- 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/internals/state.d.ts +4 -2
- package/lib/typescript/shared/stores/bounds/internals/state.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds/types.d.ts +47 -12
- package/lib/typescript/shared/stores/bounds/types.d.ts.map +1 -1
- package/lib/typescript/shared/stores/scroll.store.d.ts +12 -1
- package/lib/typescript/shared/stores/scroll.store.d.ts.map +1 -1
- package/lib/typescript/shared/types/animation.types.d.ts +13 -2
- package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/bounds.types.d.ts +10 -40
- package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/index.d.ts +2 -2
- package/lib/typescript/shared/types/index.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/create-bound-tag.d.ts +2 -1
- package/lib/typescript/shared/utils/bounds/helpers/create-bound-tag.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/create-bounds-accessor-core.d.ts +7 -11
- package/lib/typescript/shared/utils/bounds/helpers/create-bounds-accessor-core.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/create-link-accessor.d.ts +0 -3
- package/lib/typescript/shared/utils/bounds/helpers/create-link-accessor.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/prepare-bound-styles.d.ts +7 -3
- package/lib/typescript/shared/utils/bounds/helpers/prepare-bound-styles.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/styles/composers.d.ts +3 -0
- package/lib/typescript/shared/utils/bounds/helpers/styles/composers.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/styles/compute.d.ts +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/styles/compute.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/navigation/reveal/build.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/navigation/zoom/build.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/types/options.d.ts +93 -6
- package/lib/typescript/shared/utils/bounds/types/options.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/blank-stack/components/stack-view.tsx +4 -3
- package/src/shared/components/{create-boundary-component → boundary}/components/boundary-target.tsx +28 -11
- package/src/shared/components/{create-boundary-component → boundary}/create-boundary-component.tsx +20 -31
- package/src/shared/components/boundary/hooks/use-initial-destination-measurement.ts +156 -0
- package/src/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.ts +5 -14
- package/src/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.ts +42 -46
- package/src/shared/components/{create-boundary-component → boundary}/hooks/use-refresh-boundary.ts +16 -11
- package/src/shared/components/{create-boundary-component → boundary}/index.tsx +12 -0
- package/src/shared/components/boundary/portal/components/host.tsx +114 -0
- package/src/shared/components/boundary/portal/components/portal-boundary-host.tsx +90 -0
- package/src/shared/components/boundary/portal/components/portal-provider.tsx +10 -0
- package/src/shared/components/boundary/portal/components/portal.tsx +278 -0
- package/src/shared/components/boundary/portal/hooks/use-host-measurement.ts +102 -0
- package/src/shared/components/boundary/portal/index.ts +3 -0
- package/src/shared/components/boundary/portal/stores/host-bounds.store.ts +45 -0
- package/src/shared/components/boundary/portal/stores/host-registry.store.ts +182 -0
- package/src/shared/components/boundary/portal/stores/portal-boundary-host.store.ts +91 -0
- package/src/shared/components/boundary/portal/utils/attachment.ts +48 -0
- package/src/shared/components/boundary/portal/utils/naming.ts +10 -0
- package/src/shared/components/boundary/portal/utils/offset-style.ts +171 -0
- package/src/shared/components/boundary/portal/utils/teleport-control.ts +13 -0
- package/src/shared/components/{create-boundary-component → boundary}/providers/boundary-owner.provider.tsx +41 -33
- package/src/shared/components/boundary/types.ts +92 -0
- package/src/shared/components/boundary/utils/destination-signals.ts +31 -0
- package/src/shared/components/{create-boundary-component → boundary}/utils/measured-bounds.ts +34 -11
- package/src/shared/components/boundary/utils/refresh-signals.ts +175 -0
- package/src/shared/components/boundary/utils/source-signals.ts +63 -0
- package/src/shared/components/create-transition-aware-component.tsx +8 -3
- package/src/shared/components/{integrations/masked-view.tsx → masked-view.tsx} +2 -2
- package/src/shared/components/screen-container/layers/content.tsx +12 -7
- package/src/shared/configs/presets.ts +2 -6
- package/src/shared/index.ts +13 -5
- package/src/shared/providers/helpers/measured-bounds-writes.ts +11 -1
- package/src/shared/providers/screen/descriptors/descriptors.provider.tsx +7 -3
- package/src/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.ts +16 -0
- package/src/shared/providers/screen/descriptors/helpers/get-ancestor-keys.ts +31 -6
- package/src/shared/providers/screen/origin.provider.tsx +38 -0
- package/src/shared/providers/screen/styles/constants.ts +2 -0
- package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.ts +74 -0
- package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/index.ts +1 -0
- package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +1 -0
- package/src/shared/providers/screen/styles/styles.provider.tsx +5 -3
- package/src/shared/stores/bounds/helpers/link-pairs.helpers.ts +1 -10
- package/src/shared/stores/bounds/index.ts +2 -4
- package/src/shared/stores/bounds/internals/entries.ts +4 -4
- package/src/shared/stores/bounds/internals/links.ts +52 -18
- package/src/shared/stores/bounds/internals/resolver.ts +5 -3
- package/src/shared/stores/bounds/internals/state.ts +5 -2
- package/src/shared/stores/bounds/types.ts +59 -15
- package/src/shared/stores/scroll.store.ts +68 -0
- package/src/shared/types/animation.types.ts +17 -2
- package/src/shared/types/bounds.types.ts +22 -60
- package/src/shared/types/index.ts +5 -0
- package/src/shared/utils/bounds/helpers/create-bound-tag.ts +46 -4
- package/src/shared/utils/bounds/helpers/create-bounds-accessor-core.ts +65 -116
- package/src/shared/utils/bounds/helpers/create-link-accessor.ts +10 -80
- package/src/shared/utils/bounds/helpers/prepare-bound-styles.ts +10 -13
- package/src/shared/utils/bounds/helpers/styles/composers.ts +269 -46
- package/src/shared/utils/bounds/helpers/styles/compute.ts +134 -2
- package/src/shared/utils/bounds/navigation/reveal/build.ts +5 -7
- package/src/shared/utils/bounds/navigation/zoom/build.ts +5 -8
- package/src/shared/utils/bounds/types/options.ts +105 -6
- package/lib/commonjs/shared/components/create-boundary-component/components/boundary-target.js.map +0 -1
- package/lib/commonjs/shared/components/create-boundary-component/create-boundary-component.js.map +0 -1
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-boundary-presence.js.map +0 -1
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js +0 -99
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js.map +0 -1
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-source-measurement.js.map +0 -1
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-measurer.js.map +0 -1
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-refresh-boundary.js.map +0 -1
- package/lib/commonjs/shared/components/create-boundary-component/index.js.map +0 -1
- package/lib/commonjs/shared/components/create-boundary-component/providers/boundary-owner.provider.js.map +0 -1
- package/lib/commonjs/shared/components/create-boundary-component/types.js.map +0 -1
- package/lib/commonjs/shared/components/create-boundary-component/utils/destination-signals.js +0 -75
- package/lib/commonjs/shared/components/create-boundary-component/utils/destination-signals.js.map +0 -1
- package/lib/commonjs/shared/components/create-boundary-component/utils/measured-bounds.js.map +0 -1
- package/lib/commonjs/shared/components/create-boundary-component/utils/refresh-signals.js +0 -103
- package/lib/commonjs/shared/components/create-boundary-component/utils/refresh-signals.js.map +0 -1
- package/lib/commonjs/shared/components/create-boundary-component/utils/source-signals.js +0 -52
- package/lib/commonjs/shared/components/create-boundary-component/utils/source-signals.js.map +0 -1
- package/lib/commonjs/shared/components/integrations/masked-view.js.map +0 -1
- package/lib/commonjs/shared/utils/bounds/helpers/create-interpolators.js +0 -68
- package/lib/commonjs/shared/utils/bounds/helpers/create-interpolators.js.map +0 -1
- package/lib/commonjs/shared/utils/bounds/helpers/styles/interpolate-link-style.js +0 -30
- package/lib/commonjs/shared/utils/bounds/helpers/styles/interpolate-link-style.js.map +0 -1
- package/lib/module/shared/components/create-boundary-component/components/boundary-target.js.map +0 -1
- package/lib/module/shared/components/create-boundary-component/create-boundary-component.js.map +0 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-boundary-presence.js.map +0 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js +0 -94
- package/lib/module/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js.map +0 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-initial-source-measurement.js.map +0 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-measurer.js.map +0 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-refresh-boundary.js.map +0 -1
- package/lib/module/shared/components/create-boundary-component/index.js.map +0 -1
- package/lib/module/shared/components/create-boundary-component/providers/boundary-owner.provider.js +0 -60
- package/lib/module/shared/components/create-boundary-component/providers/boundary-owner.provider.js.map +0 -1
- package/lib/module/shared/components/create-boundary-component/types.js.map +0 -1
- package/lib/module/shared/components/create-boundary-component/utils/destination-signals.js +0 -70
- package/lib/module/shared/components/create-boundary-component/utils/destination-signals.js.map +0 -1
- package/lib/module/shared/components/create-boundary-component/utils/measured-bounds.js.map +0 -1
- package/lib/module/shared/components/create-boundary-component/utils/refresh-signals.js +0 -98
- package/lib/module/shared/components/create-boundary-component/utils/refresh-signals.js.map +0 -1
- package/lib/module/shared/components/create-boundary-component/utils/source-signals.js +0 -47
- package/lib/module/shared/components/create-boundary-component/utils/source-signals.js.map +0 -1
- package/lib/module/shared/components/integrations/masked-view.js.map +0 -1
- package/lib/module/shared/utils/bounds/helpers/create-interpolators.js +0 -63
- package/lib/module/shared/utils/bounds/helpers/create-interpolators.js.map +0 -1
- package/lib/module/shared/utils/bounds/helpers/styles/interpolate-link-style.js +0 -26
- package/lib/module/shared/utils/bounds/helpers/styles/interpolate-link-style.js.map +0 -1
- package/lib/typescript/shared/components/create-boundary-component/components/boundary-target.d.ts.map +0 -1
- package/lib/typescript/shared/components/create-boundary-component/create-boundary-component.d.ts.map +0 -1
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-boundary-presence.d.ts.map +0 -1
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.d.ts.map +0 -1
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-initial-source-measurement.d.ts.map +0 -1
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-measurer.d.ts.map +0 -1
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-refresh-boundary.d.ts +0 -14
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-refresh-boundary.d.ts.map +0 -1
- package/lib/typescript/shared/components/create-boundary-component/index.d.ts.map +0 -1
- package/lib/typescript/shared/components/create-boundary-component/providers/boundary-owner.provider.d.ts.map +0 -1
- package/lib/typescript/shared/components/create-boundary-component/types.d.ts +0 -37
- package/lib/typescript/shared/components/create-boundary-component/types.d.ts.map +0 -1
- package/lib/typescript/shared/components/create-boundary-component/utils/destination-signals.d.ts.map +0 -1
- package/lib/typescript/shared/components/create-boundary-component/utils/measured-bounds.d.ts +0 -8
- package/lib/typescript/shared/components/create-boundary-component/utils/measured-bounds.d.ts.map +0 -1
- package/lib/typescript/shared/components/create-boundary-component/utils/refresh-signals.d.ts.map +0 -1
- package/lib/typescript/shared/components/create-boundary-component/utils/source-signals.d.ts.map +0 -1
- package/lib/typescript/shared/components/integrations/masked-view.d.ts.map +0 -1
- package/lib/typescript/shared/utils/bounds/helpers/create-interpolators.d.ts +0 -14
- package/lib/typescript/shared/utils/bounds/helpers/create-interpolators.d.ts.map +0 -1
- package/lib/typescript/shared/utils/bounds/helpers/styles/interpolate-link-style.d.ts +0 -17
- package/lib/typescript/shared/utils/bounds/helpers/styles/interpolate-link-style.d.ts.map +0 -1
- package/src/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.ts +0 -130
- package/src/shared/components/create-boundary-component/types.ts +0 -48
- package/src/shared/components/create-boundary-component/utils/destination-signals.ts +0 -129
- package/src/shared/components/create-boundary-component/utils/refresh-signals.ts +0 -164
- package/src/shared/components/create-boundary-component/utils/source-signals.ts +0 -72
- package/src/shared/utils/bounds/helpers/create-interpolators.ts +0 -117
- package/src/shared/utils/bounds/helpers/styles/interpolate-link-style.ts +0 -43
- /package/lib/commonjs/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.js +0 -0
- /package/lib/commonjs/shared/components/{create-boundary-component → boundary}/types.js +0 -0
- /package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.js +0 -0
- /package/lib/module/shared/components/{create-boundary-component → boundary}/types.js +0 -0
- /package/lib/typescript/shared/components/{create-boundary-component → boundary}/components/boundary-target.d.ts +0 -0
- /package/lib/typescript/shared/components/{create-boundary-component → boundary}/create-boundary-component.d.ts +0 -0
- /package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.d.ts +0 -0
- /package/lib/typescript/shared/components/{integrations/masked-view.d.ts → masked-view.d.ts} +0 -0
- /package/src/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.ts +0 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ScreenFallbackHost = exports.Host = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
|
|
10
|
+
var _descriptors = require("../../../../providers/screen/descriptors");
|
|
11
|
+
var _useHostMeasurement = require("../hooks/use-host-measurement");
|
|
12
|
+
var _hostRegistry = require("../stores/host-registry.store");
|
|
13
|
+
var _portalBoundaryHost = require("../stores/portal-boundary-host.store");
|
|
14
|
+
var _portalBoundaryHost2 = require("./portal-boundary-host");
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
let nextHostId = 0;
|
|
18
|
+
function HostImpl({
|
|
19
|
+
fallback = false,
|
|
20
|
+
style
|
|
21
|
+
}) {
|
|
22
|
+
const screenKey = (0, _descriptors.useDescriptorsStore)(s => s.derivations.currentScreenKey);
|
|
23
|
+
const generatedHostKeyRef = (0, _react.useRef)(null);
|
|
24
|
+
if (generatedHostKeyRef.current === null) {
|
|
25
|
+
generatedHostKeyRef.current = `${screenKey}-host-${nextHostId++}`;
|
|
26
|
+
}
|
|
27
|
+
const hostKey = fallback ? screenKey : generatedHostKeyRef.current;
|
|
28
|
+
const capturesScroll = !fallback;
|
|
29
|
+
const activeBoundaryHosts = (0, _portalBoundaryHost.useActivePortalBoundaryHosts)(hostKey);
|
|
30
|
+
const {
|
|
31
|
+
height: viewportHeight,
|
|
32
|
+
width: viewportWidth
|
|
33
|
+
} = (0, _reactNative.useWindowDimensions)();
|
|
34
|
+
const measurement = (0, _useHostMeasurement.useHostMeasurement)({
|
|
35
|
+
capturesScroll,
|
|
36
|
+
enabled: activeBoundaryHosts.length > 0,
|
|
37
|
+
hostKey,
|
|
38
|
+
screenKey
|
|
39
|
+
});
|
|
40
|
+
(0, _react.useLayoutEffect)(() => {
|
|
41
|
+
(0, _hostRegistry.registerHost)({
|
|
42
|
+
capturesScroll,
|
|
43
|
+
fallback,
|
|
44
|
+
hostKey,
|
|
45
|
+
screenKey
|
|
46
|
+
});
|
|
47
|
+
return () => {
|
|
48
|
+
(0, _hostRegistry.unregisterHost)(screenKey, hostKey);
|
|
49
|
+
};
|
|
50
|
+
}, [capturesScroll, fallback, hostKey, screenKey]);
|
|
51
|
+
const boundaryHosts = measurement.canRenderHosts ? activeBoundaryHosts.map(host => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
52
|
+
pointerEvents: "box-none",
|
|
53
|
+
style: [styles.boundaryHostViewport, {
|
|
54
|
+
width: viewportWidth,
|
|
55
|
+
height: viewportHeight
|
|
56
|
+
}],
|
|
57
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_portalBoundaryHost2.PortalBoundaryHost, {
|
|
58
|
+
host: host,
|
|
59
|
+
style: _reactNative.StyleSheet.absoluteFill
|
|
60
|
+
})
|
|
61
|
+
}, host.boundaryId)) : null;
|
|
62
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
63
|
+
ref: measurement.hostRef,
|
|
64
|
+
pointerEvents: "box-none",
|
|
65
|
+
style: [styles.host, {
|
|
66
|
+
width: viewportWidth,
|
|
67
|
+
height: viewportHeight
|
|
68
|
+
}, style],
|
|
69
|
+
collapsable: false,
|
|
70
|
+
children: boundaryHosts
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
const Host = exports.Host = /*#__PURE__*/(0, _react.memo)(function Host(props) {
|
|
74
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(HostImpl, {
|
|
75
|
+
...props
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
const ScreenFallbackHost = exports.ScreenFallbackHost = /*#__PURE__*/(0, _react.memo)(function ScreenFallbackHost() {
|
|
79
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(HostImpl, {
|
|
80
|
+
fallback: true
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
const styles = _reactNative.StyleSheet.create({
|
|
84
|
+
host: {
|
|
85
|
+
elevation: 999999,
|
|
86
|
+
left: 0,
|
|
87
|
+
overflow: "visible",
|
|
88
|
+
position: "absolute",
|
|
89
|
+
top: 0,
|
|
90
|
+
zIndex: 999999
|
|
91
|
+
},
|
|
92
|
+
boundaryHostViewport: {
|
|
93
|
+
left: 0,
|
|
94
|
+
overflow: "visible",
|
|
95
|
+
position: "absolute",
|
|
96
|
+
top: 0
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_interopRequireDefault","_descriptors","_useHostMeasurement","_hostRegistry","_portalBoundaryHost","_portalBoundaryHost2","_jsxRuntime","e","__esModule","default","nextHostId","HostImpl","fallback","style","screenKey","useDescriptorsStore","s","derivations","currentScreenKey","generatedHostKeyRef","useRef","current","hostKey","capturesScroll","activeBoundaryHosts","useActivePortalBoundaryHosts","height","viewportHeight","width","viewportWidth","useWindowDimensions","measurement","useHostMeasurement","enabled","length","useLayoutEffect","registerHost","unregisterHost","boundaryHosts","canRenderHosts","map","host","jsx","View","pointerEvents","styles","boundaryHostViewport","children","PortalBoundaryHost","StyleSheet","absoluteFill","boundaryId","ref","hostRef","collapsable","Host","exports","memo","props","ScreenFallbackHost","create","elevation","left","overflow","position","top","zIndex"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/host.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PortalBoundaryHost = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
9
|
+
var _reactNativeTeleport = require("react-native-teleport");
|
|
10
|
+
var _constants = require("../../../../constants");
|
|
11
|
+
var _animation = require("../../../../stores/animation.store");
|
|
12
|
+
var _linkPairs = require("../../../../stores/bounds/helpers/link-pairs.helpers");
|
|
13
|
+
var _links = require("../../../../stores/bounds/internals/links");
|
|
14
|
+
var _gesture = require("../../../../stores/gesture.store");
|
|
15
|
+
var _scroll = require("../../../../stores/scroll.store");
|
|
16
|
+
var _naming = require("../utils/naming");
|
|
17
|
+
var _offsetStyle = require("../utils/offset-style");
|
|
18
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
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); }
|
|
20
|
+
const AnimatedPortalBoundaryHost = _reactNativeReanimated.default.createAnimatedComponent(_reactNativeTeleport.PortalHost);
|
|
21
|
+
const PortalBoundaryHost = exports.PortalBoundaryHost = /*#__PURE__*/(0, _react.memo)(function PortalBoundaryHost({
|
|
22
|
+
host,
|
|
23
|
+
style
|
|
24
|
+
}) {
|
|
25
|
+
const hostName = (0, _naming.createPortalBoundaryHostName)(host.hostKey, host.boundaryId);
|
|
26
|
+
const hostClosing = _animation.AnimationStore.getValue(host.screenKey, "closing");
|
|
27
|
+
const hostProgress = _animation.AnimationStore.getValue(host.screenKey, "transitionProgress");
|
|
28
|
+
const hostGestureDismissing = _gesture.GestureStore.getValue(host.screenKey, "dismissing");
|
|
29
|
+
const hostScrollMetadata = _scroll.ScrollStore.getValue(host.screenKey, "metadata");
|
|
30
|
+
const sourceScrollMetadata = _scroll.ScrollStore.getValue((0, _linkPairs.getSourceScreenKeyFromPairKey)(host.pairKey), "metadata");
|
|
31
|
+
const hostStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
|
|
32
|
+
"worklet";
|
|
33
|
+
|
|
34
|
+
// Strict per-member lookup — a fallback member's source rect would
|
|
35
|
+
// misplace this host's teleported content.
|
|
36
|
+
const link = (0, _links.getLink)(host.pairKey, host.boundaryId);
|
|
37
|
+
if (!link?.source || !link.destination) {
|
|
38
|
+
return _constants.NO_STYLES;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Make the coordinate case explicit before resolving the host offset.
|
|
42
|
+
// The resolver owns the math; this component decides which screen/scroll
|
|
43
|
+
// relationship the active portal is in.
|
|
44
|
+
const isCrossScreenPortal = link.source.screenKey !== host.screenKey;
|
|
45
|
+
const isHostClosing = hostClosing.get() === 1 || hostGestureDismissing.get() === 1;
|
|
46
|
+
const placement = !isCrossScreenPortal ? "same-screen" : isHostClosing ? "cross-screen-close" : "cross-screen-open";
|
|
47
|
+
|
|
48
|
+
// A source that originated inside its own scroll host moves with that
|
|
49
|
+
// ScrollView while this portal stays attached over here. Shifting the
|
|
50
|
+
// source rect by the clamped source scroll travel keeps the return
|
|
51
|
+
// landing point on the live placeholder, so the close detach is seamless.
|
|
52
|
+
const trackSourceScroll = isCrossScreenPortal && link.source.sourceHost?.capturesScroll === true;
|
|
53
|
+
return (0, _offsetStyle.resolvePortalOffsetStyle)({
|
|
54
|
+
bounds: link.source.bounds,
|
|
55
|
+
hostCurrentScroll: placement === "cross-screen-close" ? hostScrollMetadata.get() : null,
|
|
56
|
+
hostKey: host.hostKey,
|
|
57
|
+
placement,
|
|
58
|
+
sourceCurrentScroll: trackSourceScroll ? sourceScrollMetadata.get() : null,
|
|
59
|
+
hostProgress: hostProgress.get(),
|
|
60
|
+
trackSourceScroll
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedPortalBoundaryHost, {
|
|
64
|
+
name: hostName,
|
|
65
|
+
style: [style, hostStyle]
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=portal-boundary-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","_interopRequireWildcard","_reactNativeTeleport","_constants","_animation","_linkPairs","_links","_gesture","_scroll","_naming","_offsetStyle","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AnimatedPortalBoundaryHost","Animated","createAnimatedComponent","NativePortalHost","PortalBoundaryHost","exports","memo","host","style","hostName","createPortalBoundaryHostName","hostKey","boundaryId","hostClosing","AnimationStore","getValue","screenKey","hostProgress","hostGestureDismissing","GestureStore","hostScrollMetadata","ScrollStore","sourceScrollMetadata","getSourceScreenKeyFromPairKey","pairKey","hostStyle","useAnimatedStyle","link","getLink","source","destination","NO_STYLES","isCrossScreenPortal","isHostClosing","placement","trackSourceScroll","sourceHost","capturesScroll","resolvePortalOffsetStyle","bounds","hostCurrentScroll","sourceCurrentScroll","jsx","name"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/portal-boundary-host.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PortalProvider = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNativeTeleport = require("react-native-teleport");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
const PortalProvider = exports.PortalProvider = /*#__PURE__*/(0, _react.memo)(function PortalProvider({
|
|
11
|
+
children
|
|
12
|
+
}) {
|
|
13
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeTeleport.PortalProvider, {
|
|
14
|
+
children: children
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=portal-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeTeleport","_jsxRuntime","PortalProvider","exports","memo","children","jsx"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/portal-provider.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAA+E,IAAAE,WAAA,GAAAF,OAAA;AAExE,MAAMG,cAAc,GAAAC,OAAA,CAAAD,cAAA,gBAAG,IAAAE,WAAI,EAAC,SAASF,cAAcA,CAAC;EAC1DG;AAGD,CAAC,EAAE;EACF,oBAAO,IAAAJ,WAAA,CAAAK,GAAA,EAACN,oBAAA,CAAAE,cAAoB;IAAAG,QAAA,EAAEA;EAAQ,CAAuB,CAAC;AAC/D,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,195 @@
|
|
|
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 _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
9
|
+
var _reactNativeTeleport = require("react-native-teleport");
|
|
10
|
+
var _descriptors = require("../../../../providers/screen/descriptors");
|
|
11
|
+
var _styles = require("../../../../providers/screen/styles");
|
|
12
|
+
var _animation = require("../../../../stores/animation.store");
|
|
13
|
+
var _linkPairs = require("../../../../stores/bounds/helpers/link-pairs.helpers");
|
|
14
|
+
var _links = require("../../../../stores/bounds/internals/links");
|
|
15
|
+
var _state = require("../../../../stores/bounds/internals/state");
|
|
16
|
+
var _createTransitionAwareComponent = require("../../../create-transition-aware-component");
|
|
17
|
+
var _hostRegistry = require("../stores/host-registry.store");
|
|
18
|
+
var _portalBoundaryHost = require("../stores/portal-boundary-host.store");
|
|
19
|
+
var _attachment = require("../utils/attachment");
|
|
20
|
+
var _naming = require("../utils/naming");
|
|
21
|
+
var _teleportControl = require("../utils/teleport-control");
|
|
22
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
+
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); }
|
|
24
|
+
const TransitionAwareTeleport = (0, _createTransitionAwareComponent.createTransitionAwareComponent)(_reactNativeTeleport.Portal);
|
|
25
|
+
const Portal = exports.Portal = /*#__PURE__*/(0, _react.memo)(function Portal({
|
|
26
|
+
id = "my-id",
|
|
27
|
+
children,
|
|
28
|
+
mode = false,
|
|
29
|
+
placeholderRef
|
|
30
|
+
}) {
|
|
31
|
+
const isPortalEnabled = !!mode;
|
|
32
|
+
const portalAttachTarget = !mode || mode === true ? "current-screen" : mode.attachTo ?? "current-screen";
|
|
33
|
+
const {
|
|
34
|
+
stylesMap
|
|
35
|
+
} = (0, _styles.useScreenStyles)();
|
|
36
|
+
const sourcePairKey = (0, _descriptors.useDescriptorsStore)(s => s.derivations.sourcePairKey);
|
|
37
|
+
const currentScreenKey = (0, _descriptors.useDescriptorsStore)(s => s.derivations.currentScreenKey);
|
|
38
|
+
const nextScreenKey = (0, _descriptors.useDescriptorsStore)(s => s.derivations.nextScreenKey);
|
|
39
|
+
const [attachment, setAttachment] = (0, _react.useState)(_naming.PORTAL_HOST_NAME_RESET_VALUE);
|
|
40
|
+
const attachedHostName = (0, _reactNativeReanimated.useSharedValue)(_naming.PORTAL_HOST_NAME_RESET_VALUE);
|
|
41
|
+
const placeholderWidth = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
42
|
+
const placeholderHeight = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
43
|
+
const {
|
|
44
|
+
progressScreenKey,
|
|
45
|
+
targetScreenKey
|
|
46
|
+
} = (0, _attachment.resolvePortalAttachmentTargets)({
|
|
47
|
+
attachment,
|
|
48
|
+
currentScreenKey,
|
|
49
|
+
nextScreenKey,
|
|
50
|
+
portalAttachTarget,
|
|
51
|
+
sourcePairKey
|
|
52
|
+
});
|
|
53
|
+
const activeHostKey = (0, _hostRegistry.useActiveHostKey)(targetScreenKey);
|
|
54
|
+
const activeHostCapturesScroll = activeHostKey ? (0, _hostRegistry.getHostCapturesScroll)(activeHostKey) : false;
|
|
55
|
+
const progress = _animation.AnimationStore.getValue(progressScreenKey ?? "", "transitionProgress");
|
|
56
|
+
const closing = _animation.AnimationStore.getValue(progressScreenKey ?? "", "closing");
|
|
57
|
+
const updatePortalAttachment = (0, _react.useCallback)((matchedScreenKey, pairKey) => {
|
|
58
|
+
if (matchedScreenKey && pairKey) {
|
|
59
|
+
setAttachment(current => {
|
|
60
|
+
if (current?.matchedScreenKey === matchedScreenKey && current.pairKey === pairKey) {
|
|
61
|
+
return current;
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
matchedScreenKey,
|
|
65
|
+
pairKey
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
setAttachment(current => current ? null : current);
|
|
71
|
+
}, []);
|
|
72
|
+
(0, _react.useLayoutEffect)(() => {
|
|
73
|
+
if (!isPortalEnabled || !attachment || !activeHostKey || !targetScreenKey) {
|
|
74
|
+
attachedHostName.set(_naming.PORTAL_HOST_NAME_RESET_VALUE);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
(0, _portalBoundaryHost.mountPortalBoundaryHost)({
|
|
78
|
+
boundaryId: id,
|
|
79
|
+
capturesScroll: activeHostCapturesScroll,
|
|
80
|
+
hostKey: activeHostKey,
|
|
81
|
+
pairKey: attachment.pairKey,
|
|
82
|
+
screenKey: targetScreenKey
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
// The native registry parks portals whose host has not registered yet and
|
|
86
|
+
// re-parents the moment it does, so the host name can be handed over
|
|
87
|
+
// immediately — ordering belongs to the registry, not to frame counting.
|
|
88
|
+
// hostName rides animated props, so the handover needs no React commit.
|
|
89
|
+
attachedHostName.set((0, _naming.createPortalBoundaryHostName)(activeHostKey, id));
|
|
90
|
+
}, [activeHostKey, activeHostCapturesScroll, attachedHostName, attachment, id, isPortalEnabled, targetScreenKey]);
|
|
91
|
+
(0, _react.useLayoutEffect)(() => {
|
|
92
|
+
return () => {
|
|
93
|
+
attachedHostName.set(_naming.PORTAL_HOST_NAME_RESET_VALUE);
|
|
94
|
+
(0, _portalBoundaryHost.unmountPortalBoundaryHost)(id);
|
|
95
|
+
};
|
|
96
|
+
}, [attachedHostName, id]);
|
|
97
|
+
(0, _reactNativeReanimated.useAnimatedReaction)(() => {
|
|
98
|
+
"worklet";
|
|
99
|
+
|
|
100
|
+
if (!isPortalEnabled || !sourcePairKey) {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
_state.pairs.get();
|
|
104
|
+
// Strict per-member lookup: getResolvedLink's group fallback borrows
|
|
105
|
+
// the initial member's link for style resolution, which would make
|
|
106
|
+
// every inactive group member's portal see a "complete" link and
|
|
107
|
+
// attach. A portal may only teleport on its OWN member's link.
|
|
108
|
+
const link = (0, _links.getLink)(sourcePairKey, id);
|
|
109
|
+
if (link?.status !== "complete") {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Grouped portals teleport only while their member is the group's
|
|
114
|
+
// active id — retargeting detaches the previous member (its content
|
|
115
|
+
// returns home) and attaches the new one. Exactly one grouped member
|
|
116
|
+
// is teleported at a time.
|
|
117
|
+
if (link.group) {
|
|
118
|
+
const activeId = _state.pairs.get()[sourcePairKey]?.groups?.[link.group]?.activeId;
|
|
119
|
+
if (activeId && activeId !== (0, _linkPairs.getLinkKeyFromTag)(id)) {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return link.destination.screenKey;
|
|
124
|
+
}, (matchedScreenKey, previousMatchedScreenKey) => {
|
|
125
|
+
"worklet";
|
|
126
|
+
|
|
127
|
+
if (matchedScreenKey === previousMatchedScreenKey) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
(0, _reactNativeReanimated.runOnJS)(updatePortalAttachment)(matchedScreenKey, sourcePairKey);
|
|
131
|
+
});
|
|
132
|
+
const teleportProps = (0, _reactNativeReanimated.useAnimatedProps)(() => {
|
|
133
|
+
"worklet";
|
|
134
|
+
|
|
135
|
+
// Opening waits for the destination transition to start so content is not
|
|
136
|
+
// re-parented before the host is visually ready. Closing stays attached
|
|
137
|
+
// through progress 0 so the final frame can land in the matched host.
|
|
138
|
+
const attachThreshold = closing.get() === 1 ? 0 : 0.001;
|
|
139
|
+
const {
|
|
140
|
+
teleport,
|
|
141
|
+
...slotProps
|
|
142
|
+
} = stylesMap.get()[id]?.props ?? {};
|
|
143
|
+
const shouldTeleport = (0, _teleportControl.isTeleportEnabled)(teleport);
|
|
144
|
+
return {
|
|
145
|
+
// Preserve portal slot props from the interpolator while keeping
|
|
146
|
+
// hostName owned by the attachment gate below.
|
|
147
|
+
...slotProps,
|
|
148
|
+
hostName: shouldTeleport && progress.get() >= attachThreshold ? attachedHostName.get() : _naming.PORTAL_HOST_NAME_RESET_VALUE
|
|
149
|
+
};
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
// Pin the placeholder to its measured size while content lives in the host,
|
|
153
|
+
// in the same UI frame the host name flips — no commit in between. Until the
|
|
154
|
+
// first layout lands (dims 0) sizing stays natural so an instant attach
|
|
155
|
+
// cannot collapse the slot.
|
|
156
|
+
const placeholderStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
|
|
157
|
+
"worklet";
|
|
158
|
+
|
|
159
|
+
const hostName = attachedHostName.get();
|
|
160
|
+
const isAttached = hostName !== null;
|
|
161
|
+
const width = placeholderWidth.get();
|
|
162
|
+
const height = placeholderHeight.get();
|
|
163
|
+
if (!isAttached || width === 0) {
|
|
164
|
+
return {
|
|
165
|
+
width: "auto",
|
|
166
|
+
height: "auto"
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
width,
|
|
171
|
+
height
|
|
172
|
+
};
|
|
173
|
+
});
|
|
174
|
+
if (isPortalEnabled) {
|
|
175
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
176
|
+
ref: placeholderRef,
|
|
177
|
+
onLayout: event => {
|
|
178
|
+
placeholderWidth.set(event.nativeEvent.layout.width);
|
|
179
|
+
placeholderHeight.set(event.nativeEvent.layout.height);
|
|
180
|
+
},
|
|
181
|
+
style: placeholderStyle,
|
|
182
|
+
collapsable: false,
|
|
183
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(TransitionAwareTeleport, {
|
|
184
|
+
animatedProps: teleportProps,
|
|
185
|
+
name: id,
|
|
186
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
187
|
+
style: placeholderStyle,
|
|
188
|
+
children: children
|
|
189
|
+
})
|
|
190
|
+
})
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
return children;
|
|
194
|
+
});
|
|
195
|
+
//# sourceMappingURL=portal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","_interopRequireWildcard","_reactNativeTeleport","_descriptors","_styles","_animation","_linkPairs","_links","_state","_createTransitionAwareComponent","_hostRegistry","_portalBoundaryHost","_attachment","_naming","_teleportControl","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TransitionAwareTeleport","createTransitionAwareComponent","NativePortal","Portal","exports","memo","id","children","mode","placeholderRef","isPortalEnabled","portalAttachTarget","attachTo","stylesMap","useScreenStyles","sourcePairKey","useDescriptorsStore","s","derivations","currentScreenKey","nextScreenKey","attachment","setAttachment","useState","PORTAL_HOST_NAME_RESET_VALUE","attachedHostName","useSharedValue","placeholderWidth","placeholderHeight","progressScreenKey","targetScreenKey","resolvePortalAttachmentTargets","activeHostKey","useActiveHostKey","activeHostCapturesScroll","getHostCapturesScroll","progress","AnimationStore","getValue","closing","updatePortalAttachment","useCallback","matchedScreenKey","pairKey","current","useLayoutEffect","mountPortalBoundaryHost","boundaryId","capturesScroll","hostKey","screenKey","createPortalBoundaryHostName","unmountPortalBoundaryHost","useAnimatedReaction","pairs","link","getLink","status","group","activeId","groups","getLinkKeyFromTag","destination","previousMatchedScreenKey","runOnJS","teleportProps","useAnimatedProps","attachThreshold","teleport","slotProps","props","shouldTeleport","isTeleportEnabled","hostName","placeholderStyle","useAnimatedStyle","isAttached","width","height","jsx","View","ref","onLayout","event","nativeEvent","layout","style","collapsable","animatedProps","name"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/portal.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useHostMeasurement = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
9
|
+
var _origin = require("../../../../providers/screen/origin.provider");
|
|
10
|
+
var _scroll = require("../../../../stores/scroll.store");
|
|
11
|
+
var _measuredBounds = require("../../utils/measured-bounds");
|
|
12
|
+
var _hostBounds = require("../stores/host-bounds.store");
|
|
13
|
+
const useHostMeasurement = ({
|
|
14
|
+
capturesScroll,
|
|
15
|
+
enabled,
|
|
16
|
+
hostKey,
|
|
17
|
+
screenKey
|
|
18
|
+
}) => {
|
|
19
|
+
const hostRef = (0, _reactNativeReanimated.useAnimatedRef)();
|
|
20
|
+
const scrollMetadata = _scroll.ScrollStore.getValue(screenKey, "metadata");
|
|
21
|
+
const [canRenderHosts, setCanRenderHosts] = (0, _react.useState)(false);
|
|
22
|
+
const {
|
|
23
|
+
originRef
|
|
24
|
+
} = (0, _origin.useOriginContext)();
|
|
25
|
+
const hasMeasuredHost = (0, _reactNativeReanimated.useSharedValue)(false);
|
|
26
|
+
(0, _reactNativeReanimated.useAnimatedReaction)(() => {
|
|
27
|
+
"worklet";
|
|
28
|
+
|
|
29
|
+
if (!enabled) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
return hasMeasuredHost.get();
|
|
33
|
+
}, hasAlreadyMeasured => {
|
|
34
|
+
"worklet";
|
|
35
|
+
|
|
36
|
+
if (!enabled || hasAlreadyMeasured) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const measured = (0, _reactNativeReanimated.measure)(hostRef);
|
|
40
|
+
const measuredOrigin = (0, _reactNativeReanimated.measure)(originRef);
|
|
41
|
+
if (!measured || !measuredOrigin) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
hasMeasuredHost.set(true);
|
|
45
|
+
|
|
46
|
+
// A measurement taken mid rubber-band would bake the transient
|
|
47
|
+
// overscroll displacement into the host frame. Store the at-rest
|
|
48
|
+
// position instead; clamped scroll deltas share that basis.
|
|
49
|
+
const currentScroll = scrollMetadata.get();
|
|
50
|
+
const overscrollNormalized = capturesScroll ? (0, _measuredBounds.adjustedMeasuredBoundsForOverscrollDeltas)(measured, currentScroll) : measured;
|
|
51
|
+
const normalizedMeasured = (0, _measuredBounds.normalizeMeasuredBoundsToOrigin)(overscrollNormalized, measuredOrigin);
|
|
52
|
+
(0, _hostBounds.setPortalHostBounds)(hostKey, {
|
|
53
|
+
x: normalizedMeasured.x,
|
|
54
|
+
y: normalizedMeasured.y,
|
|
55
|
+
width: normalizedMeasured.width,
|
|
56
|
+
height: normalizedMeasured.height,
|
|
57
|
+
pageX: normalizedMeasured.pageX,
|
|
58
|
+
pageY: normalizedMeasured.pageY,
|
|
59
|
+
scroll: capturesScroll ? currentScroll : null
|
|
60
|
+
});
|
|
61
|
+
(0, _reactNativeReanimated.runOnJS)(setCanRenderHosts)(true);
|
|
62
|
+
});
|
|
63
|
+
(0, _react.useLayoutEffect)(() => {
|
|
64
|
+
return () => {
|
|
65
|
+
(0, _reactNativeReanimated.runOnUI)(_hostBounds.clearPortalHostBounds)(hostKey);
|
|
66
|
+
};
|
|
67
|
+
}, [hostKey]);
|
|
68
|
+
return {
|
|
69
|
+
canRenderHosts,
|
|
70
|
+
hostRef
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
exports.useHostMeasurement = useHostMeasurement;
|
|
74
|
+
//# sourceMappingURL=use-host-measurement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","_origin","_scroll","_measuredBounds","_hostBounds","useHostMeasurement","capturesScroll","enabled","hostKey","screenKey","hostRef","useAnimatedRef","scrollMetadata","ScrollStore","getValue","canRenderHosts","setCanRenderHosts","useState","originRef","useOriginContext","hasMeasuredHost","useSharedValue","useAnimatedReaction","get","hasAlreadyMeasured","measured","measure","measuredOrigin","set","currentScroll","overscrollNormalized","adjustedMeasuredBoundsForOverscrollDeltas","normalizedMeasured","normalizeMeasuredBoundsToOrigin","setPortalHostBounds","x","y","width","height","pageX","pageY","scroll","runOnJS","useLayoutEffect","runOnUI","clearPortalHostBounds","exports"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/hooks/use-host-measurement.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAD,OAAA;AAQA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AAIA,IAAAK,WAAA,GAAAL,OAAA;AAYO,MAAMM,kBAAkB,GAAGA,CAAC;EAClCC,cAAc;EACdC,OAAO;EACPC,OAAO;EACPC;AACyB,CAAC,KAAK;EAC/B,MAAMC,OAAO,GAAG,IAAAC,qCAAc,EAAO,CAAC;EACtC,MAAMC,cAAc,GAAGC,mBAAW,CAACC,QAAQ,CAACL,SAAS,EAAE,UAAU,CAAC;EAClE,MAAM,CAACM,cAAc,EAAEC,iBAAiB,CAAC,GAAG,IAAAC,eAAQ,EAAU,KAAK,CAAC;EACpE,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,wBAAgB,EAAC,CAAC;EACxC,MAAMC,eAAe,GAAG,IAAAC,qCAAc,EAAC,KAAK,CAAC;EAE7C,IAAAC,0CAAmB,EAClB,MAAM;IACL,SAAS;;IACT,IAAI,CAACf,OAAO,EAAE;MACb,OAAO,IAAI;IACZ;IAEA,OAAOa,eAAe,CAACG,GAAG,CAAC,CAAC;EAC7B,CAAC,EACAC,kBAAkB,IAAK;IACvB,SAAS;;IACT,IAAI,CAACjB,OAAO,IAAIiB,kBAAkB,EAAE;MACnC;IACD;IAEA,MAAMC,QAAQ,GAAG,IAAAC,8BAAO,EAAChB,OAAO,CAAC;IACjC,MAAMiB,cAAc,GAAG,IAAAD,8BAAO,EAACR,SAAS,CAAC;IAEzC,IAAI,CAACO,QAAQ,IAAI,CAACE,cAAc,EAAE;MACjC;IACD;IAEAP,eAAe,CAACQ,GAAG,CAAC,IAAI,CAAC;;IAEzB;IACA;IACA;IACA,MAAMC,aAAa,GAAGjB,cAAc,CAACW,GAAG,CAAC,CAAC;IAC1C,MAAMO,oBAAoB,GAAGxB,cAAc,GACxC,IAAAyB,yDAAyC,EAACN,QAAQ,EAAEI,aAAa,CAAC,GAClEJ,QAAQ;IAEX,MAAMO,kBAAkB,GAAG,IAAAC,+CAA+B,EACzDH,oBAAoB,EACpBH,cACD,CAAC;IAED,IAAAO,+BAAmB,EAAC1B,OAAO,EAAE;MAC5B2B,CAAC,EAAEH,kBAAkB,CAACG,CAAC;MACvBC,CAAC,EAAEJ,kBAAkB,CAACI,CAAC;MACvBC,KAAK,EAAEL,kBAAkB,CAACK,KAAK;MAC/BC,MAAM,EAAEN,kBAAkB,CAACM,MAAM;MACjCC,KAAK,EAAEP,kBAAkB,CAACO,KAAK;MAC/BC,KAAK,EAAER,kBAAkB,CAACQ,KAAK;MAC/BC,MAAM,EAAEnC,cAAc,GAAGuB,aAAa,GAAG;IAC1C,CAAC,CAAC;IAEF,IAAAa,8BAAO,EAAC1B,iBAAiB,CAAC,CAAC,IAAI,CAAC;EACjC,CACD,CAAC;EAED,IAAA2B,sBAAe,EAAC,MAAM;IACrB,OAAO,MAAM;MACZ,IAAAC,8BAAO,EAACC,iCAAqB,CAAC,CAACrC,OAAO,CAAC;IACxC,CAAC;EACF,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,OAAO;IACNO,cAAc;IACdL;EACD,CAAC;AACF,CAAC;AAACoC,OAAA,CAAAzC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Host", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _host.Host;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "Portal", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _portal.Portal;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "PortalProvider", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _portalProvider.PortalProvider;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
var _host = require("./components/host");
|
|
25
|
+
var _portal = require("./components/portal");
|
|
26
|
+
var _portalProvider = require("./components/portal-provider");
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_host","require","_portal","_portalProvider"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/portal/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setPortalHostBounds = exports.getPortalHostBounds = exports.clearPortalHostBounds = void 0;
|
|
7
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
8
|
+
var _scroll = require("../../../../stores/scroll.store");
|
|
9
|
+
const portalHostBounds = (0, _reactNativeReanimated.makeMutable)({});
|
|
10
|
+
const getPortalHostBounds = hostKey => {
|
|
11
|
+
"worklet";
|
|
12
|
+
|
|
13
|
+
return portalHostBounds.get()[hostKey] ?? null;
|
|
14
|
+
};
|
|
15
|
+
exports.getPortalHostBounds = getPortalHostBounds;
|
|
16
|
+
const setPortalHostBounds = (hostKey, bounds) => {
|
|
17
|
+
"worklet";
|
|
18
|
+
|
|
19
|
+
const nextBounds = {
|
|
20
|
+
...bounds,
|
|
21
|
+
scroll: (0, _scroll.cloneScrollMetadataState)(bounds.scroll)
|
|
22
|
+
};
|
|
23
|
+
portalHostBounds.set(state => {
|
|
24
|
+
"worklet";
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
...state,
|
|
28
|
+
[hostKey]: nextBounds
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
exports.setPortalHostBounds = setPortalHostBounds;
|
|
33
|
+
const clearPortalHostBounds = hostKey => {
|
|
34
|
+
"worklet";
|
|
35
|
+
|
|
36
|
+
portalHostBounds.set(state => {
|
|
37
|
+
"worklet";
|
|
38
|
+
|
|
39
|
+
const nextState = {
|
|
40
|
+
...state
|
|
41
|
+
};
|
|
42
|
+
delete nextState[hostKey];
|
|
43
|
+
return nextState;
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
exports.clearPortalHostBounds = clearPortalHostBounds;
|
|
47
|
+
//# sourceMappingURL=host-bounds.store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeReanimated","require","_scroll","portalHostBounds","makeMutable","getPortalHostBounds","hostKey","get","exports","setPortalHostBounds","bounds","nextBounds","scroll","cloneScrollMetadataState","set","state","clearPortalHostBounds","nextState"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/stores/host-bounds.store.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AASA,MAAME,gBAAgB,GAAG,IAAAC,kCAAW,EAAwB,CAAC,CAAC,CAAC;AAExD,MAAMC,mBAAmB,GAAIC,OAAe,IAAK;EACvD,SAAS;;EACT,OAAOH,gBAAgB,CAACI,GAAG,CAAC,CAAC,CAACD,OAAO,CAAC,IAAI,IAAI;AAC/C,CAAC;AAACE,OAAA,CAAAH,mBAAA,GAAAA,mBAAA;AAEK,MAAMI,mBAAmB,GAAGA,CAClCH,OAAe,EACfI,MAAwB,KACpB;EACJ,SAAS;;EACT,MAAMC,UAA4B,GAAG;IACpC,GAAGD,MAAM;IACTE,MAAM,EAAE,IAAAC,gCAAwB,EAACH,MAAM,CAACE,MAAM;EAC/C,CAAC;EAEDT,gBAAgB,CAACW,GAAG,CAAEC,KAAK,IAAK;IAC/B,SAAS;;IACT,OAAO;MACN,GAAGA,KAAK;MACR,CAACT,OAAO,GAAGK;IACZ,CAAC;EACF,CAAC,CAAC;AACH,CAAC;AAACH,OAAA,CAAAC,mBAAA,GAAAA,mBAAA;AAEK,MAAMO,qBAAqB,GAAIV,OAAe,IAAK;EACzD,SAAS;;EACTH,gBAAgB,CAACW,GAAG,CAAEC,KAAK,IAAK;IAC/B,SAAS;;IACT,MAAME,SAAgC,GAAG;MAAE,GAAGF;IAAM,CAAC;IACrD,OAAOE,SAAS,CAACX,OAAO,CAAC;IACzB,OAAOW,SAAS;EACjB,CAAC,CAAC;AACH,CAAC;AAACT,OAAA,CAAAQ,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|