react-native-screen-transitions 4.0.0-alpha.2 → 4.0.0-alpha.3
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/adapters/with-screen-transitions/context.js +4 -0
- package/lib/commonjs/adapters/with-screen-transitions/context.js.map +1 -1
- package/lib/commonjs/adapters/with-screen-transitions/stack-layout.js +14 -8
- package/lib/commonjs/adapters/with-screen-transitions/stack-layout.js.map +1 -1
- package/lib/commonjs/animation/snap-to.js +1 -0
- package/lib/commonjs/animation/snap-to.js.map +1 -1
- package/lib/commonjs/components/activity/variants/activity-screen.js +26 -10
- package/lib/commonjs/components/activity/variants/activity-screen.js.map +1 -1
- package/lib/commonjs/components/boundary/components/boundary-target.js +1 -1
- package/lib/commonjs/components/boundary/components/boundary-target.js.map +1 -1
- package/lib/commonjs/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +18 -7
- package/lib/commonjs/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
- package/lib/commonjs/components/boundary/hooks/lifecycles/use-refresh-boundary.js +5 -12
- package/lib/commonjs/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
- package/lib/commonjs/components/boundary/hooks/use-measurer.js +6 -13
- package/lib/commonjs/components/boundary/hooks/use-measurer.js.map +1 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +67 -0
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -0
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +44 -37
- package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/host.js +2 -2
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/active-pair.js +30 -0
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/active-pair.js.map +1 -0
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +75 -0
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -0
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +17 -32
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +10 -19
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -1
- package/lib/commonjs/components/boundary/portal/utils/naming.js +8 -1
- package/lib/commonjs/components/boundary/portal/utils/naming.js.map +1 -1
- package/lib/commonjs/components/boundary/providers/boundary-root.provider.js +4 -5
- package/lib/commonjs/components/boundary/providers/boundary-root.provider.js.map +1 -1
- package/lib/commonjs/components/boundary/utils/measured-bounds.js +19 -31
- package/lib/commonjs/components/boundary/utils/measured-bounds.js.map +1 -1
- package/lib/commonjs/components/boundary/utils/refresh-signals.js +14 -20
- package/lib/commonjs/components/boundary/utils/refresh-signals.js.map +1 -1
- package/lib/commonjs/components/create-transition-aware-component.js +9 -30
- package/lib/commonjs/components/create-transition-aware-component.js.map +1 -1
- package/lib/commonjs/components/screen-container/hooks/use-backdrop-pointer-events.js +5 -9
- package/lib/commonjs/components/screen-container/hooks/use-backdrop-pointer-events.js.map +1 -1
- package/lib/commonjs/components/screen-container/hooks/use-content-layout.js +3 -8
- package/lib/commonjs/components/screen-container/hooks/use-content-layout.js.map +1 -1
- package/lib/commonjs/components/screen-container/layers/backdrop.js +7 -10
- package/lib/commonjs/components/screen-container/layers/backdrop.js.map +1 -1
- package/lib/commonjs/components/screen-container/layers/content.js +10 -16
- package/lib/commonjs/components/screen-container/layers/content.js.map +1 -1
- package/lib/commonjs/components/screen-container/layers/surface-container.js +1 -5
- package/lib/commonjs/components/screen-container/layers/surface-container.js.map +1 -1
- package/lib/commonjs/components/screen-lifecycle/hooks/use-close-transition-intent.js +10 -12
- package/lib/commonjs/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
- package/lib/commonjs/components/screen-lifecycle/hooks/use-open-transition-intent.js +2 -3
- package/lib/commonjs/components/screen-lifecycle/hooks/use-open-transition-intent.js.map +1 -1
- package/lib/commonjs/components/screen-lifecycle/hooks/use-transition-start-controller.js +5 -1
- package/lib/commonjs/components/screen-lifecycle/hooks/use-transition-start-controller.js.map +1 -1
- package/lib/commonjs/components/screen-lifecycle/index.js +2 -4
- package/lib/commonjs/components/screen-lifecycle/index.js.map +1 -1
- package/lib/commonjs/components/stack-view.js +69 -35
- package/lib/commonjs/components/stack-view.js.map +1 -1
- package/lib/commonjs/configs/presets.js +10 -10
- package/lib/commonjs/configs/presets.js.map +1 -1
- package/lib/commonjs/constants.js +1 -0
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/hooks/navigation/use-navigation-helpers.js +9 -8
- package/lib/commonjs/hooks/navigation/use-navigation-helpers.js.map +1 -1
- package/lib/commonjs/hooks/navigation/use-screen-state.js +1 -3
- package/lib/commonjs/hooks/navigation/use-screen-state.js.map +1 -1
- package/lib/commonjs/providers/screen/animation/animation.provider.js +7 -7
- package/lib/commonjs/providers/screen/animation/animation.provider.js.map +1 -1
- package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js +1 -3
- package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map +1 -1
- package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +1 -1
- package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +1 -1
- package/lib/commonjs/providers/screen/animation/helpers/hydrate-transition-state/index.js +4 -10
- package/lib/commonjs/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
- package/lib/commonjs/providers/screen/animation/helpers/pipeline.js +5 -7
- package/lib/commonjs/providers/screen/animation/helpers/pipeline.js.map +1 -1
- package/lib/commonjs/providers/screen/animation/index.js +2 -2
- package/lib/commonjs/providers/screen/animation/use-screen-animation.js +1 -1
- package/lib/commonjs/providers/screen/animation/use-screen-animation.js.map +1 -1
- package/lib/commonjs/providers/screen/descriptors/descriptors.provider.js +34 -42
- package/lib/commonjs/providers/screen/descriptors/descriptors.provider.js.map +1 -1
- package/lib/commonjs/providers/screen/descriptors/index.js +0 -12
- package/lib/commonjs/providers/screen/descriptors/index.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/gestures.provider.js +7 -7
- package/lib/commonjs/providers/screen/gestures/gestures.provider.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture-config.js +3 -9
- package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture.js +1 -1
- package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/hooks/use-stable-runtime-config.js +1 -3
- package/lib/commonjs/providers/screen/gestures/hooks/use-stable-runtime-config.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/index.js +2 -2
- package/lib/commonjs/providers/screen/gestures/ownership/shadowing-claims.js +2 -2
- package/lib/commonjs/providers/screen/gestures/ownership/shadowing-claims.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js +8 -11
- package/lib/commonjs/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/pan/activation/use-pan-activation.js +2 -4
- package/lib/commonjs/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/pan/behavior/pan-lifecycle.js +5 -8
- package/lib/commonjs/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/pan/behavior/pan-reset.js +10 -0
- package/lib/commonjs/providers/screen/gestures/pan/behavior/pan-reset.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/pan/use-build-pan-gesture.js +1 -1
- package/lib/commonjs/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +8 -6
- package/lib/commonjs/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/pinch/behavior/pinch-reset.js +7 -0
- package/lib/commonjs/providers/screen/gestures/pinch/behavior/pinch-reset.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/pinch/use-build-pinch-gesture.js +1 -1
- package/lib/commonjs/providers/screen/gestures/pinch/use-build-pinch-gesture.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js +5 -5
- package/lib/commonjs/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js.map +1 -1
- package/lib/commonjs/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +2 -2
- package/lib/commonjs/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
- package/lib/commonjs/providers/screen/options/index.js +2 -2
- package/lib/commonjs/providers/screen/options/options.provider.js +4 -8
- package/lib/commonjs/providers/screen/options/options.provider.js.map +1 -1
- package/lib/commonjs/providers/screen/screen-composer.js +2 -0
- package/lib/commonjs/providers/screen/screen-composer.js.map +1 -1
- package/lib/commonjs/providers/screen/styles/constants.js +10 -4
- package/lib/commonjs/providers/screen/styles/constants.js.map +1 -1
- package/lib/commonjs/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js +93 -0
- package/lib/commonjs/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js.map +1 -0
- package/lib/commonjs/providers/screen/styles/helpers/resolve-slot-styles/index.js +48 -5
- package/lib/commonjs/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
- package/lib/commonjs/providers/screen/styles/helpers/select-interpolator-frame.js +32 -0
- package/lib/commonjs/providers/screen/styles/helpers/select-interpolator-frame.js.map +1 -0
- package/lib/commonjs/providers/screen/styles/helpers/visibility-gate.js +14 -1
- package/lib/commonjs/providers/screen/styles/helpers/visibility-gate.js.map +1 -1
- package/lib/commonjs/providers/screen/styles/hooks/use-interpolated-style-maps.js +64 -40
- package/lib/commonjs/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
- package/lib/commonjs/providers/screen/styles/hooks/use-maybe-block-visibility.js +1 -3
- package/lib/commonjs/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
- package/lib/commonjs/providers/screen/styles/index.js +0 -6
- package/lib/commonjs/providers/screen/styles/index.js.map +1 -1
- package/lib/commonjs/providers/screen/styles/slot.provider.js +23 -19
- package/lib/commonjs/providers/screen/styles/slot.provider.js.map +1 -1
- package/lib/commonjs/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js +3 -11
- package/lib/commonjs/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js.map +1 -1
- package/lib/commonjs/providers/stack/blank-stack.provider.js +53 -49
- package/lib/commonjs/providers/stack/blank-stack.provider.js.map +1 -1
- package/lib/commonjs/providers/stack/core.provider.js +24 -45
- package/lib/commonjs/providers/stack/core.provider.js.map +1 -1
- package/lib/commonjs/providers/stack/direct.provider.js +46 -40
- package/lib/commonjs/providers/stack/direct.provider.js.map +1 -1
- package/lib/commonjs/stores/animation.store.js +19 -1
- package/lib/commonjs/stores/animation.store.js.map +1 -1
- package/lib/commonjs/types/stack.types.js.map +1 -1
- package/lib/commonjs/utils/animation/animate-to-progress.js +12 -11
- package/lib/commonjs/utils/animation/animate-to-progress.js.map +1 -1
- package/lib/commonjs/utils/bounds/helpers/create-bounds-accessor-core.js +6 -0
- package/lib/commonjs/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
- package/lib/commonjs/utils/create-provider.js +61 -75
- package/lib/commonjs/utils/create-provider.js.map +1 -1
- package/lib/module/adapters/with-screen-transitions/context.js +3 -0
- package/lib/module/adapters/with-screen-transitions/context.js.map +1 -1
- package/lib/module/adapters/with-screen-transitions/stack-layout.js +14 -8
- package/lib/module/adapters/with-screen-transitions/stack-layout.js.map +1 -1
- package/lib/module/animation/snap-to.js +1 -0
- package/lib/module/animation/snap-to.js.map +1 -1
- package/lib/module/components/activity/variants/activity-screen.js +26 -10
- package/lib/module/components/activity/variants/activity-screen.js.map +1 -1
- package/lib/module/components/boundary/components/boundary-target.js +2 -2
- package/lib/module/components/boundary/components/boundary-target.js.map +1 -1
- package/lib/module/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +19 -7
- package/lib/module/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
- package/lib/module/components/boundary/hooks/lifecycles/use-refresh-boundary.js +5 -12
- package/lib/module/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
- package/lib/module/components/boundary/hooks/use-measurer.js +7 -14
- package/lib/module/components/boundary/hooks/use-measurer.js.map +1 -1
- package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +60 -0
- package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -0
- package/lib/module/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +44 -37
- package/lib/module/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/components/host.js +2 -2
- package/lib/module/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/helpers/active-pair.js +25 -0
- package/lib/module/components/boundary/portal/components/boundary-portal/helpers/active-pair.js.map +1 -0
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +70 -0
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -0
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +17 -32
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +13 -22
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -1
- package/lib/module/components/boundary/portal/utils/naming.js +6 -0
- package/lib/module/components/boundary/portal/utils/naming.js.map +1 -1
- package/lib/module/components/boundary/providers/boundary-root.provider.js +3 -3
- package/lib/module/components/boundary/providers/boundary-root.provider.js.map +1 -1
- package/lib/module/components/boundary/utils/measured-bounds.js +17 -28
- package/lib/module/components/boundary/utils/measured-bounds.js.map +1 -1
- package/lib/module/components/boundary/utils/refresh-signals.js +14 -20
- package/lib/module/components/boundary/utils/refresh-signals.js.map +1 -1
- package/lib/module/components/create-transition-aware-component.js +10 -31
- package/lib/module/components/create-transition-aware-component.js.map +1 -1
- package/lib/module/components/screen-container/hooks/use-backdrop-pointer-events.js +8 -12
- package/lib/module/components/screen-container/hooks/use-backdrop-pointer-events.js.map +1 -1
- package/lib/module/components/screen-container/hooks/use-content-layout.js +4 -9
- package/lib/module/components/screen-container/hooks/use-content-layout.js.map +1 -1
- package/lib/module/components/screen-container/layers/backdrop.js +8 -11
- package/lib/module/components/screen-container/layers/backdrop.js.map +1 -1
- package/lib/module/components/screen-container/layers/content.js +12 -18
- package/lib/module/components/screen-container/layers/content.js.map +1 -1
- package/lib/module/components/screen-container/layers/surface-container.js +2 -6
- package/lib/module/components/screen-container/layers/surface-container.js.map +1 -1
- package/lib/module/components/screen-lifecycle/hooks/use-close-transition-intent.js +13 -15
- package/lib/module/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
- package/lib/module/components/screen-lifecycle/hooks/use-open-transition-intent.js +3 -4
- package/lib/module/components/screen-lifecycle/hooks/use-open-transition-intent.js.map +1 -1
- package/lib/module/components/screen-lifecycle/hooks/use-transition-start-controller.js +5 -1
- package/lib/module/components/screen-lifecycle/hooks/use-transition-start-controller.js.map +1 -1
- package/lib/module/components/screen-lifecycle/index.js +3 -5
- package/lib/module/components/screen-lifecycle/index.js.map +1 -1
- package/lib/module/components/stack-view.js +71 -37
- package/lib/module/components/stack-view.js.map +1 -1
- package/lib/module/configs/presets.js +10 -10
- package/lib/module/configs/presets.js.map +1 -1
- package/lib/module/constants.js +1 -0
- package/lib/module/constants.js.map +1 -1
- package/lib/module/hooks/navigation/use-navigation-helpers.js +9 -8
- package/lib/module/hooks/navigation/use-navigation-helpers.js.map +1 -1
- package/lib/module/hooks/navigation/use-screen-state.js +2 -4
- package/lib/module/hooks/navigation/use-screen-state.js.map +1 -1
- package/lib/module/providers/screen/animation/animation.provider.js +6 -5
- package/lib/module/providers/screen/animation/animation.provider.js.map +1 -1
- package/lib/module/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js +2 -4
- package/lib/module/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map +1 -1
- package/lib/module/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +2 -2
- package/lib/module/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +1 -1
- package/lib/module/providers/screen/animation/helpers/hydrate-transition-state/index.js +4 -10
- package/lib/module/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
- package/lib/module/providers/screen/animation/helpers/pipeline.js +6 -8
- package/lib/module/providers/screen/animation/helpers/pipeline.js.map +1 -1
- package/lib/module/providers/screen/animation/index.js +1 -1
- package/lib/module/providers/screen/animation/index.js.map +1 -1
- package/lib/module/providers/screen/animation/use-screen-animation.js +2 -2
- package/lib/module/providers/screen/animation/use-screen-animation.js.map +1 -1
- package/lib/module/providers/screen/descriptors/descriptors.provider.js +34 -40
- package/lib/module/providers/screen/descriptors/descriptors.provider.js.map +1 -1
- package/lib/module/providers/screen/descriptors/index.js +1 -1
- package/lib/module/providers/screen/descriptors/index.js.map +1 -1
- package/lib/module/providers/screen/gestures/gestures.provider.js +6 -6
- package/lib/module/providers/screen/gestures/gestures.provider.js.map +1 -1
- package/lib/module/providers/screen/gestures/hooks/use-screen-gesture-config.js +5 -11
- package/lib/module/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
- package/lib/module/providers/screen/gestures/hooks/use-screen-gesture.js +2 -2
- package/lib/module/providers/screen/gestures/hooks/use-screen-gesture.js.map +1 -1
- package/lib/module/providers/screen/gestures/hooks/use-stable-runtime-config.js +2 -4
- package/lib/module/providers/screen/gestures/hooks/use-stable-runtime-config.js.map +1 -1
- package/lib/module/providers/screen/gestures/index.js +1 -1
- package/lib/module/providers/screen/gestures/index.js.map +1 -1
- package/lib/module/providers/screen/gestures/ownership/shadowing-claims.js +2 -2
- package/lib/module/providers/screen/gestures/ownership/shadowing-claims.js.map +1 -1
- package/lib/module/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js +10 -13
- package/lib/module/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +1 -1
- package/lib/module/providers/screen/gestures/pan/activation/use-pan-activation.js +3 -5
- package/lib/module/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
- package/lib/module/providers/screen/gestures/pan/behavior/pan-lifecycle.js +6 -9
- package/lib/module/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
- package/lib/module/providers/screen/gestures/pan/behavior/pan-reset.js +10 -0
- package/lib/module/providers/screen/gestures/pan/behavior/pan-reset.js.map +1 -1
- package/lib/module/providers/screen/gestures/pan/use-build-pan-gesture.js +2 -2
- package/lib/module/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
- package/lib/module/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +9 -7
- package/lib/module/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
- package/lib/module/providers/screen/gestures/pinch/behavior/pinch-reset.js +7 -0
- package/lib/module/providers/screen/gestures/pinch/behavior/pinch-reset.js.map +1 -1
- package/lib/module/providers/screen/gestures/pinch/use-build-pinch-gesture.js +2 -2
- package/lib/module/providers/screen/gestures/pinch/use-build-pinch-gesture.js.map +1 -1
- package/lib/module/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js +3 -3
- package/lib/module/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js.map +1 -1
- package/lib/module/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +4 -4
- package/lib/module/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
- package/lib/module/providers/screen/options/index.js +1 -1
- package/lib/module/providers/screen/options/index.js.map +1 -1
- package/lib/module/providers/screen/options/options.provider.js +3 -7
- package/lib/module/providers/screen/options/options.provider.js.map +1 -1
- package/lib/module/providers/screen/screen-composer.js +2 -0
- package/lib/module/providers/screen/screen-composer.js.map +1 -1
- package/lib/module/providers/screen/styles/constants.js +8 -3
- package/lib/module/providers/screen/styles/constants.js.map +1 -1
- package/lib/module/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js +88 -0
- package/lib/module/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js.map +1 -0
- package/lib/module/providers/screen/styles/helpers/resolve-slot-styles/index.js +49 -6
- package/lib/module/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
- package/lib/module/providers/screen/styles/helpers/select-interpolator-frame.js +27 -0
- package/lib/module/providers/screen/styles/helpers/select-interpolator-frame.js.map +1 -0
- package/lib/module/providers/screen/styles/helpers/visibility-gate.js +12 -0
- package/lib/module/providers/screen/styles/helpers/visibility-gate.js.map +1 -1
- package/lib/module/providers/screen/styles/hooks/use-interpolated-style-maps.js +67 -43
- package/lib/module/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
- package/lib/module/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -4
- package/lib/module/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
- package/lib/module/providers/screen/styles/index.js +1 -1
- package/lib/module/providers/screen/styles/index.js.map +1 -1
- package/lib/module/providers/screen/styles/slot.provider.js +23 -18
- package/lib/module/providers/screen/styles/slot.provider.js.map +1 -1
- package/lib/module/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js +3 -11
- package/lib/module/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js.map +1 -1
- package/lib/module/providers/stack/blank-stack.provider.js +50 -47
- package/lib/module/providers/stack/blank-stack.provider.js.map +1 -1
- package/lib/module/providers/stack/core.provider.js +22 -43
- package/lib/module/providers/stack/core.provider.js.map +1 -1
- package/lib/module/providers/stack/direct.provider.js +44 -41
- package/lib/module/providers/stack/direct.provider.js.map +1 -1
- package/lib/module/stores/animation.store.js +17 -0
- package/lib/module/stores/animation.store.js.map +1 -1
- package/lib/module/types/stack.types.js.map +1 -1
- package/lib/module/utils/animation/animate-to-progress.js +12 -11
- package/lib/module/utils/animation/animate-to-progress.js.map +1 -1
- package/lib/module/utils/bounds/helpers/create-bounds-accessor-core.js +6 -0
- package/lib/module/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
- package/lib/module/utils/create-provider.js +62 -76
- package/lib/module/utils/create-provider.js.map +1 -1
- package/lib/typescript/adapters/with-screen-transitions/context.d.ts +2 -0
- package/lib/typescript/adapters/with-screen-transitions/context.d.ts.map +1 -1
- package/lib/typescript/adapters/with-screen-transitions/stack-layout.d.ts +1 -1
- package/lib/typescript/adapters/with-screen-transitions/stack-layout.d.ts.map +1 -1
- package/lib/typescript/animation/snap-to.d.ts.map +1 -1
- package/lib/typescript/components/activity/variants/activity-screen.d.ts +3 -2
- package/lib/typescript/components/activity/variants/activity-screen.d.ts.map +1 -1
- package/lib/typescript/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts.map +1 -1
- package/lib/typescript/components/boundary/hooks/lifecycles/use-refresh-boundary.d.ts.map +1 -1
- package/lib/typescript/components/boundary/hooks/use-measurer.d.ts +1 -1
- package/lib/typescript/components/boundary/hooks/use-measurer.d.ts.map +1 -1
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts +26 -0
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts.map +1 -0
- package/lib/typescript/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts.map +1 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/components/host.d.ts.map +1 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/active-pair.d.ts +9 -0
- package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/active-pair.d.ts.map +1 -0
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts +17 -0
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts.map +1 -0
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts.map +1 -1
- package/lib/typescript/components/boundary/portal/utils/naming.d.ts +1 -0
- package/lib/typescript/components/boundary/portal/utils/naming.d.ts.map +1 -1
- package/lib/typescript/components/boundary/providers/boundary-root.provider.d.ts +1 -1
- package/lib/typescript/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
- package/lib/typescript/components/boundary/utils/measured-bounds.d.ts +1 -3
- package/lib/typescript/components/boundary/utils/measured-bounds.d.ts.map +1 -1
- package/lib/typescript/components/boundary/utils/refresh-signals.d.ts +0 -4
- package/lib/typescript/components/boundary/utils/refresh-signals.d.ts.map +1 -1
- package/lib/typescript/components/create-transition-aware-component.d.ts +0 -2
- package/lib/typescript/components/create-transition-aware-component.d.ts.map +1 -1
- package/lib/typescript/components/screen-container/hooks/use-backdrop-pointer-events.d.ts.map +1 -1
- package/lib/typescript/components/screen-container/hooks/use-content-layout.d.ts.map +1 -1
- package/lib/typescript/components/screen-container/layers/backdrop.d.ts.map +1 -1
- package/lib/typescript/components/screen-container/layers/content.d.ts.map +1 -1
- package/lib/typescript/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts.map +1 -1
- package/lib/typescript/components/screen-lifecycle/hooks/use-open-transition-intent.d.ts.map +1 -1
- package/lib/typescript/components/screen-lifecycle/hooks/use-transition-start-controller.d.ts.map +1 -1
- package/lib/typescript/components/screen-lifecycle/index.d.ts.map +1 -1
- package/lib/typescript/components/stack-view.d.ts +5 -1
- package/lib/typescript/components/stack-view.d.ts.map +1 -1
- package/lib/typescript/configs/index.d.ts +6 -6
- package/lib/typescript/configs/presets.d.ts +6 -6
- package/lib/typescript/configs/presets.d.ts.map +1 -1
- package/lib/typescript/constants.d.ts.map +1 -1
- package/lib/typescript/hooks/navigation/use-navigation-helpers.d.ts.map +1 -1
- package/lib/typescript/hooks/navigation/use-screen-state.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +10 -18
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/providers/screen/animation/animation.provider.d.ts +4 -1
- package/lib/typescript/providers/screen/animation/animation.provider.d.ts.map +1 -1
- package/lib/typescript/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.d.ts.map +1 -1
- package/lib/typescript/providers/screen/animation/helpers/hydrate-transition-state/index.d.ts.map +1 -1
- package/lib/typescript/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
- package/lib/typescript/providers/screen/animation/index.d.ts +1 -1
- package/lib/typescript/providers/screen/animation/index.d.ts.map +1 -1
- package/lib/typescript/providers/screen/descriptors/descriptors.provider.d.ts +10 -11
- package/lib/typescript/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
- package/lib/typescript/providers/screen/descriptors/index.d.ts +1 -1
- package/lib/typescript/providers/screen/descriptors/index.d.ts.map +1 -1
- package/lib/typescript/providers/screen/gestures/gestures.provider.d.ts +4 -1
- package/lib/typescript/providers/screen/gestures/gestures.provider.d.ts.map +1 -1
- package/lib/typescript/providers/screen/gestures/hooks/use-screen-gesture-config.d.ts.map +1 -1
- package/lib/typescript/providers/screen/gestures/hooks/use-stable-runtime-config.d.ts.map +1 -1
- package/lib/typescript/providers/screen/gestures/index.d.ts +1 -1
- package/lib/typescript/providers/screen/gestures/index.d.ts.map +1 -1
- package/lib/typescript/providers/screen/gestures/ownership/shadowing-claims.d.ts +2 -3
- package/lib/typescript/providers/screen/gestures/ownership/shadowing-claims.d.ts.map +1 -1
- package/lib/typescript/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.d.ts.map +1 -1
- package/lib/typescript/providers/screen/gestures/pan/activation/use-pan-activation.d.ts.map +1 -1
- package/lib/typescript/providers/screen/gestures/pan/behavior/pan-lifecycle.d.ts.map +1 -1
- package/lib/typescript/providers/screen/gestures/pan/behavior/pan-reset.d.ts +4 -1
- package/lib/typescript/providers/screen/gestures/pan/behavior/pan-reset.d.ts.map +1 -1
- package/lib/typescript/providers/screen/gestures/pinch/behavior/pinch-lifecycle.d.ts.map +1 -1
- package/lib/typescript/providers/screen/gestures/pinch/behavior/pinch-reset.d.ts +3 -1
- package/lib/typescript/providers/screen/gestures/pinch/behavior/pinch-reset.d.ts.map +1 -1
- package/lib/typescript/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.d.ts +1 -1
- package/lib/typescript/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.d.ts.map +1 -1
- package/lib/typescript/providers/screen/options/index.d.ts +1 -1
- package/lib/typescript/providers/screen/options/index.d.ts.map +1 -1
- package/lib/typescript/providers/screen/options/options.provider.d.ts +4 -1
- package/lib/typescript/providers/screen/options/options.provider.d.ts.map +1 -1
- package/lib/typescript/providers/screen/screen-composer.d.ts +3 -2
- package/lib/typescript/providers/screen/screen-composer.d.ts.map +1 -1
- package/lib/typescript/providers/screen/styles/constants.d.ts +1 -0
- package/lib/typescript/providers/screen/styles/constants.d.ts.map +1 -1
- package/lib/typescript/providers/screen/styles/helpers/resolve-interpolator-style-handoff.d.ts +12 -0
- package/lib/typescript/providers/screen/styles/helpers/resolve-interpolator-style-handoff.d.ts.map +1 -0
- package/lib/typescript/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts +5 -3
- package/lib/typescript/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts.map +1 -1
- package/lib/typescript/providers/screen/styles/helpers/select-interpolator-frame.d.ts +4 -0
- package/lib/typescript/providers/screen/styles/helpers/select-interpolator-frame.d.ts.map +1 -0
- package/lib/typescript/providers/screen/styles/helpers/visibility-gate.d.ts +10 -0
- package/lib/typescript/providers/screen/styles/helpers/visibility-gate.d.ts.map +1 -1
- package/lib/typescript/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts +10 -5
- package/lib/typescript/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
- package/lib/typescript/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +1 -1
- package/lib/typescript/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
- package/lib/typescript/providers/screen/styles/index.d.ts +1 -1
- package/lib/typescript/providers/screen/styles/index.d.ts.map +1 -1
- package/lib/typescript/providers/screen/styles/slot.provider.d.ts +4 -1
- package/lib/typescript/providers/screen/styles/slot.provider.d.ts.map +1 -1
- package/lib/typescript/providers/stack/blank-stack-state/helpers/build-blank-stack-state.d.ts.map +1 -1
- package/lib/typescript/providers/stack/blank-stack.provider.d.ts +12 -6
- package/lib/typescript/providers/stack/blank-stack.provider.d.ts.map +1 -1
- package/lib/typescript/providers/stack/core.provider.d.ts +10 -8
- package/lib/typescript/providers/stack/core.provider.d.ts.map +1 -1
- package/lib/typescript/providers/stack/direct.provider.d.ts +11 -4
- package/lib/typescript/providers/stack/direct.provider.d.ts.map +1 -1
- package/lib/typescript/stores/animation.store.d.ts +1 -0
- package/lib/typescript/stores/animation.store.d.ts.map +1 -1
- package/lib/typescript/types/blank-stack.types.d.ts +1 -4
- package/lib/typescript/types/blank-stack.types.d.ts.map +1 -1
- package/lib/typescript/types/gesture.types.d.ts +11 -0
- package/lib/typescript/types/gesture.types.d.ts.map +1 -1
- package/lib/typescript/types/providers/blank-stack-provider.types.d.ts +12 -20
- package/lib/typescript/types/providers/blank-stack-provider.types.d.ts.map +1 -1
- package/lib/typescript/types/providers/direct-stack.types.d.ts +2 -1
- package/lib/typescript/types/providers/direct-stack.types.d.ts.map +1 -1
- package/lib/typescript/types/screen.types.d.ts +0 -30
- package/lib/typescript/types/screen.types.d.ts.map +1 -1
- package/lib/typescript/types/stack.types.d.ts +2 -4
- package/lib/typescript/types/stack.types.d.ts.map +1 -1
- package/lib/typescript/utils/animation/animate-to-progress.d.ts +3 -2
- package/lib/typescript/utils/animation/animate-to-progress.d.ts.map +1 -1
- package/lib/typescript/utils/bounds/helpers/create-bounds-accessor-core.d.ts.map +1 -1
- package/lib/typescript/utils/create-provider.d.ts +17 -9
- package/lib/typescript/utils/create-provider.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/adapters/with-screen-transitions/context.tsx +5 -0
- package/src/adapters/with-screen-transitions/stack-layout.tsx +20 -7
- package/src/animation/snap-to.ts +1 -0
- package/src/components/activity/variants/activity-screen.tsx +46 -13
- package/src/components/boundary/components/boundary-target.tsx +2 -2
- package/src/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts +28 -14
- package/src/components/boundary/hooks/lifecycles/use-refresh-boundary.ts +7 -24
- package/src/components/boundary/hooks/use-measurer.ts +7 -16
- package/src/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.ts +103 -0
- package/src/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts +86 -61
- package/src/components/boundary/portal/components/boundary-portal/components/host.tsx +12 -14
- package/src/components/boundary/portal/components/boundary-portal/helpers/active-pair.ts +36 -0
- package/src/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.ts +114 -0
- package/src/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +9 -46
- package/src/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.ts +13 -20
- package/src/components/boundary/portal/utils/naming.ts +11 -0
- package/src/components/boundary/providers/boundary-root.provider.tsx +8 -11
- package/src/components/boundary/utils/measured-bounds.ts +29 -32
- package/src/components/boundary/utils/refresh-signals.ts +23 -26
- package/src/components/create-transition-aware-component.tsx +11 -36
- package/src/components/screen-container/hooks/use-backdrop-pointer-events.ts +10 -8
- package/src/components/screen-container/hooks/use-content-layout.ts +10 -10
- package/src/components/screen-container/layers/backdrop.tsx +20 -9
- package/src/components/screen-container/layers/content.tsx +20 -21
- package/src/components/screen-container/layers/surface-container.tsx +4 -4
- package/src/components/screen-lifecycle/hooks/use-close-transition-intent.ts +19 -9
- package/src/components/screen-lifecycle/hooks/use-open-transition-intent.ts +5 -2
- package/src/components/screen-lifecycle/hooks/use-transition-start-controller.ts +6 -0
- package/src/components/screen-lifecycle/index.tsx +3 -2
- package/src/components/stack-view.tsx +117 -56
- package/src/configs/presets.ts +13 -13
- package/src/constants.ts +1 -0
- package/src/hooks/navigation/use-navigation-helpers.ts +9 -8
- package/src/hooks/navigation/use-screen-state.ts +4 -2
- package/src/providers/screen/animation/animation.provider.tsx +170 -173
- package/src/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.tsx +4 -2
- package/src/providers/screen/animation/helpers/accessors/use-build-transition-accessor.ts +2 -2
- package/src/providers/screen/animation/helpers/hydrate-transition-state/index.ts +4 -21
- package/src/providers/screen/animation/helpers/pipeline.ts +6 -10
- package/src/providers/screen/animation/index.tsx +1 -1
- package/src/providers/screen/animation/use-screen-animation.tsx +2 -2
- package/src/providers/screen/descriptors/descriptors.provider.tsx +83 -72
- package/src/providers/screen/descriptors/index.tsx +0 -2
- package/src/providers/screen/gestures/gestures.provider.tsx +72 -63
- package/src/providers/screen/gestures/hooks/use-screen-gesture-config.ts +7 -8
- package/src/providers/screen/gestures/hooks/use-screen-gesture.ts +2 -2
- package/src/providers/screen/gestures/hooks/use-stable-runtime-config.ts +4 -2
- package/src/providers/screen/gestures/index.tsx +1 -1
- package/src/providers/screen/gestures/ownership/shadowing-claims.ts +3 -4
- package/src/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.ts +16 -8
- package/src/providers/screen/gestures/pan/activation/use-pan-activation.ts +7 -2
- package/src/providers/screen/gestures/pan/behavior/pan-lifecycle.ts +8 -16
- package/src/providers/screen/gestures/pan/behavior/pan-reset.ts +14 -0
- package/src/providers/screen/gestures/pan/use-build-pan-gesture.ts +2 -2
- package/src/providers/screen/gestures/pinch/behavior/pinch-lifecycle.ts +12 -11
- package/src/providers/screen/gestures/pinch/behavior/pinch-reset.ts +10 -0
- package/src/providers/screen/gestures/pinch/use-build-pinch-gesture.ts +2 -2
- package/src/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.tsx +4 -4
- package/src/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.ts +4 -4
- package/src/providers/screen/options/index.ts +1 -1
- package/src/providers/screen/options/options.provider.tsx +24 -28
- package/src/providers/screen/screen-composer.tsx +9 -2
- package/src/providers/screen/styles/constants.ts +8 -6
- package/src/providers/screen/styles/helpers/resolve-interpolator-style-handoff.ts +138 -0
- package/src/providers/screen/styles/helpers/resolve-slot-styles/index.ts +71 -4
- package/src/providers/screen/styles/helpers/select-interpolator-frame.ts +41 -0
- package/src/providers/screen/styles/helpers/visibility-gate.ts +25 -0
- package/src/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +99 -55
- package/src/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +4 -2
- package/src/providers/screen/styles/index.tsx +0 -1
- package/src/providers/screen/styles/slot.provider.tsx +62 -48
- package/src/providers/stack/blank-stack-state/helpers/build-blank-stack-state.ts +4 -17
- package/src/providers/stack/blank-stack.provider.tsx +66 -75
- package/src/providers/stack/core.provider.tsx +53 -79
- package/src/providers/stack/direct.provider.tsx +76 -57
- package/src/stores/animation.store.ts +19 -0
- package/src/types/blank-stack.types.ts +1 -4
- package/src/types/gesture.types.ts +11 -0
- package/src/types/providers/blank-stack-provider.types.ts +8 -22
- package/src/types/providers/direct-stack.types.ts +2 -1
- package/src/types/screen.types.ts +0 -32
- package/src/types/stack.types.ts +2 -4
- package/src/utils/animation/animate-to-progress.ts +18 -18
- package/src/utils/bounds/helpers/create-bounds-accessor-core.ts +7 -0
- package/src/utils/create-provider.tsx +105 -136
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/host-name.js +0 -14
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/host-name.js.map +0 -1
- package/lib/commonjs/components/boundary/portal/utils/handoff-target.js +0 -33
- package/lib/commonjs/components/boundary/portal/utils/handoff-target.js.map +0 -1
- package/lib/commonjs/hooks/use-stable-callback-value.js +0 -69
- package/lib/commonjs/hooks/use-stable-callback-value.js.map +0 -1
- package/lib/commonjs/providers/register-bounds.provider.js +0 -312
- package/lib/commonjs/providers/register-bounds.provider.js.map +0 -1
- package/lib/commonjs/providers/screen/origin.provider.js +0 -41
- package/lib/commonjs/providers/screen/origin.provider.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/helpers/host-name.js +0 -9
- package/lib/module/components/boundary/portal/components/boundary-portal/helpers/host-name.js.map +0 -1
- package/lib/module/components/boundary/portal/utils/handoff-target.js +0 -28
- package/lib/module/components/boundary/portal/utils/handoff-target.js.map +0 -1
- package/lib/module/hooks/use-stable-callback-value.js +0 -64
- package/lib/module/hooks/use-stable-callback-value.js.map +0 -1
- package/lib/module/providers/register-bounds.provider.js +0 -308
- package/lib/module/providers/register-bounds.provider.js.map +0 -1
- package/lib/module/providers/screen/origin.provider.js +0 -33
- package/lib/module/providers/screen/origin.provider.js.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/host-name.d.ts +0 -2
- package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/host-name.d.ts.map +0 -1
- package/lib/typescript/components/boundary/portal/utils/handoff-target.d.ts +0 -12
- package/lib/typescript/components/boundary/portal/utils/handoff-target.d.ts.map +0 -1
- package/lib/typescript/hooks/use-stable-callback-value.d.ts +0 -13
- package/lib/typescript/hooks/use-stable-callback-value.d.ts.map +0 -1
- package/lib/typescript/providers/register-bounds.provider.d.ts +0 -25
- package/lib/typescript/providers/register-bounds.provider.d.ts.map +0 -1
- package/lib/typescript/providers/screen/origin.provider.d.ts +0 -11
- package/lib/typescript/providers/screen/origin.provider.d.ts.map +0 -1
- package/src/components/boundary/portal/components/boundary-portal/helpers/host-name.ts +0 -10
- package/src/components/boundary/portal/utils/handoff-target.ts +0 -48
- package/src/hooks/use-stable-callback-value.ts +0 -72
- package/src/providers/register-bounds.provider.tsx +0 -401
- package/src/providers/screen/origin.provider.tsx +0 -38
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
* THANK YOU @MatiPl01
|
|
3
3
|
* https://github.com/MatiPl01/react-native-sortables/blob/main/packages/react-native-sortables/src/providers/utils/createProvider.tsx
|
|
4
4
|
* SUPER COOL AMAZING UTILITY
|
|
5
|
+
*
|
|
6
|
+
* Store-only provider: values propagate exclusively through a subscription
|
|
7
|
+
* store read with `use${Name}Store(selector)`. There is intentionally no raw
|
|
8
|
+
* context channel, so consumers subscribe only to the values they render.
|
|
9
|
+
*
|
|
10
|
+
* Factories do not memoize what they return:
|
|
11
|
+
* - `value`: the store shallow-compares snapshots and keeps the previous
|
|
12
|
+
* object when the contents are unchanged. Derived object and array fields
|
|
13
|
+
* must still have stable identities.
|
|
14
|
+
* - `children`: passed-through children keep their identity across
|
|
15
|
+
* provider-local renders. Factories that wrap children should use a
|
|
16
|
+
* module-level memoized component for the wrapper.
|
|
5
17
|
*/
|
|
6
18
|
import {
|
|
7
19
|
createContext,
|
|
@@ -9,13 +21,10 @@ import {
|
|
|
9
21
|
useCallback,
|
|
10
22
|
useContext,
|
|
11
23
|
useLayoutEffect,
|
|
12
|
-
useMemo,
|
|
13
24
|
useRef,
|
|
14
25
|
useSyncExternalStore,
|
|
15
26
|
} from "react";
|
|
16
27
|
|
|
17
|
-
type InnerProviderComponent = React.FC<{ children: ReactNode }>;
|
|
18
|
-
|
|
19
28
|
type ProviderSnapshot<
|
|
20
29
|
ContextValue,
|
|
21
30
|
Guarded extends boolean,
|
|
@@ -32,9 +41,8 @@ type ProviderStoreHook<ContextValue, Guarded extends boolean> = {
|
|
|
32
41
|
): Selected;
|
|
33
42
|
};
|
|
34
43
|
|
|
35
|
-
type
|
|
36
|
-
|
|
37
|
-
<Selected>(selector: (value: ContextValue | null) => Selected): Selected;
|
|
44
|
+
export type ProviderFactoryInternals<ContextValue> = {
|
|
45
|
+
useParentStore: ProviderStoreHook<ContextValue, false>;
|
|
38
46
|
};
|
|
39
47
|
|
|
40
48
|
export interface ProviderStoreApi<ContextValue> {
|
|
@@ -53,6 +61,42 @@ const NullProviderStore: ProviderStoreApi<never> = {
|
|
|
53
61
|
subscribe: () => () => {},
|
|
54
62
|
};
|
|
55
63
|
|
|
64
|
+
const shallowEqual = (a: unknown, b: unknown): boolean => {
|
|
65
|
+
if (Object.is(a, b)) {
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (
|
|
70
|
+
typeof a !== "object" ||
|
|
71
|
+
a === null ||
|
|
72
|
+
typeof b !== "object" ||
|
|
73
|
+
b === null
|
|
74
|
+
) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const aKeys = Object.keys(a);
|
|
79
|
+
const bKeys = Object.keys(b);
|
|
80
|
+
|
|
81
|
+
if (aKeys.length !== bKeys.length) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
for (const key of aKeys) {
|
|
86
|
+
if (
|
|
87
|
+
!(key in b) ||
|
|
88
|
+
!Object.is(
|
|
89
|
+
(a as Record<string, unknown>)[key],
|
|
90
|
+
(b as Record<string, unknown>)[key],
|
|
91
|
+
)
|
|
92
|
+
) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return true;
|
|
98
|
+
};
|
|
99
|
+
|
|
56
100
|
const createProviderStore = <ContextValue,>(
|
|
57
101
|
initialSnapshot: ContextValue | null,
|
|
58
102
|
): MutableProviderStoreApi<ContextValue> => {
|
|
@@ -67,7 +111,7 @@ const createProviderStore = <ContextValue,>(
|
|
|
67
111
|
}
|
|
68
112
|
},
|
|
69
113
|
setSnapshot: (nextSnapshot) => {
|
|
70
|
-
if (
|
|
114
|
+
if (shallowEqual(snapshot, nextSnapshot)) {
|
|
71
115
|
return false;
|
|
72
116
|
}
|
|
73
117
|
|
|
@@ -88,36 +132,73 @@ export default function createProvider<
|
|
|
88
132
|
Guarded extends boolean = true,
|
|
89
133
|
>(name: ProviderName, options?: { guarded?: Guarded }) {
|
|
90
134
|
return <ProviderProps extends object, ContextValue>(
|
|
91
|
-
factory: (
|
|
135
|
+
factory: (
|
|
136
|
+
props: ProviderProps,
|
|
137
|
+
internals: ProviderFactoryInternals<ContextValue>,
|
|
138
|
+
) => {
|
|
92
139
|
value?: ContextValue;
|
|
93
140
|
enabled?: boolean;
|
|
94
|
-
children?:
|
|
95
|
-
| ReactNode
|
|
96
|
-
| ((
|
|
97
|
-
innerProvider: {
|
|
98
|
-
[K in ProviderName as `${K}Provider`]: InnerProviderComponent;
|
|
99
|
-
},
|
|
100
|
-
) => ReactNode);
|
|
141
|
+
children?: ReactNode;
|
|
101
142
|
},
|
|
102
143
|
) => {
|
|
103
144
|
const { guarded = true } = options ?? {};
|
|
104
145
|
const providerDisplayName = `${name}Provider`;
|
|
105
|
-
const innerProviderDisplayName = `${name}InnerProvider`;
|
|
106
|
-
|
|
107
|
-
const Context = createContext<ContextValue | null>(null);
|
|
108
|
-
Context.displayName = name;
|
|
109
146
|
|
|
110
147
|
const StoreContext = createContext<ProviderStoreApi<ContextValue> | null>(
|
|
111
148
|
null,
|
|
112
149
|
);
|
|
113
150
|
StoreContext.displayName = `${name}Store`;
|
|
114
151
|
|
|
152
|
+
const createStoreHook = (strict: boolean) => {
|
|
153
|
+
return <Selected,>(
|
|
154
|
+
selector?: (value: ContextValue | null) => Selected,
|
|
155
|
+
): Selected | ContextValue | null => {
|
|
156
|
+
const store = useContext(StoreContext);
|
|
157
|
+
const resolvedStore =
|
|
158
|
+
store ?? (NullProviderStore as ProviderStoreApi<ContextValue>);
|
|
159
|
+
const selectorRef = useRef<typeof selector>(selector);
|
|
160
|
+
selectorRef.current = selector;
|
|
161
|
+
|
|
162
|
+
const getSelectedSnapshot = useCallback(() => {
|
|
163
|
+
if (strict && store === null) {
|
|
164
|
+
throw new Error(
|
|
165
|
+
`${name} store must be used within a ${name}Provider`,
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const snapshot = resolvedStore.getSnapshot();
|
|
170
|
+
|
|
171
|
+
if (strict && snapshot === null) {
|
|
172
|
+
throw new Error(
|
|
173
|
+
`${name} store must be used within an enabled ${name}Provider`,
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
return selectorRef.current ? selectorRef.current(snapshot) : snapshot;
|
|
178
|
+
}, [resolvedStore, store]);
|
|
179
|
+
|
|
180
|
+
return useSyncExternalStore(
|
|
181
|
+
resolvedStore.subscribe,
|
|
182
|
+
getSelectedSnapshot,
|
|
183
|
+
getSelectedSnapshot,
|
|
184
|
+
);
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
const useStoreSelector = createStoreHook(guarded);
|
|
189
|
+
const factoryInternals: ProviderFactoryInternals<ContextValue> = {
|
|
190
|
+
useParentStore: createStoreHook(false) as ProviderStoreHook<
|
|
191
|
+
ContextValue,
|
|
192
|
+
false
|
|
193
|
+
>,
|
|
194
|
+
};
|
|
195
|
+
|
|
115
196
|
const Provider: React.FC<ProviderProps> = (props) => {
|
|
116
197
|
const {
|
|
117
198
|
children = (props as { children?: ReactNode }).children,
|
|
118
199
|
enabled = true,
|
|
119
200
|
value,
|
|
120
|
-
} = factory(props);
|
|
201
|
+
} = factory(props, factoryInternals);
|
|
121
202
|
|
|
122
203
|
if (!value) {
|
|
123
204
|
throw new Error(
|
|
@@ -125,23 +206,19 @@ export default function createProvider<
|
|
|
125
206
|
);
|
|
126
207
|
}
|
|
127
208
|
|
|
128
|
-
const
|
|
129
|
-
() => (enabled ? value : null),
|
|
130
|
-
[enabled, value],
|
|
131
|
-
);
|
|
132
|
-
|
|
209
|
+
const snapshotValue = enabled ? value : null;
|
|
133
210
|
const storeRef = useRef<MutableProviderStoreApi<ContextValue> | null>(
|
|
134
211
|
null,
|
|
135
212
|
);
|
|
136
213
|
const pendingNotifyRef = useRef(false);
|
|
137
214
|
|
|
138
215
|
if (storeRef.current === null) {
|
|
139
|
-
storeRef.current = createProviderStore<ContextValue>(
|
|
216
|
+
storeRef.current = createProviderStore<ContextValue>(snapshotValue);
|
|
140
217
|
}
|
|
141
218
|
const store = storeRef.current;
|
|
142
219
|
|
|
143
220
|
pendingNotifyRef.current =
|
|
144
|
-
store.setSnapshot(
|
|
221
|
+
store.setSnapshot(snapshotValue) || pendingNotifyRef.current;
|
|
145
222
|
|
|
146
223
|
useLayoutEffect(() => {
|
|
147
224
|
if (!pendingNotifyRef.current) {
|
|
@@ -152,130 +229,22 @@ export default function createProvider<
|
|
|
152
229
|
store.notify();
|
|
153
230
|
});
|
|
154
231
|
|
|
155
|
-
// Per-instance ref ensures InnerProvider reads latest value while keeping
|
|
156
|
-
// a stable component reference.
|
|
157
|
-
const valueRef = useRef<ContextValue | null>(memoValue);
|
|
158
|
-
valueRef.current = memoValue;
|
|
159
|
-
|
|
160
|
-
const InnerProvider = useMemo((): InnerProviderComponent => {
|
|
161
|
-
const NamedInnerProvider: InnerProviderComponent = ({ children }) => (
|
|
162
|
-
<StoreContext.Provider value={store}>
|
|
163
|
-
<Context.Provider value={valueRef.current}>
|
|
164
|
-
{children}
|
|
165
|
-
</Context.Provider>
|
|
166
|
-
</StoreContext.Provider>
|
|
167
|
-
);
|
|
168
|
-
|
|
169
|
-
NamedInnerProvider.displayName = innerProviderDisplayName;
|
|
170
|
-
|
|
171
|
-
return NamedInnerProvider;
|
|
172
|
-
}, [store]);
|
|
173
|
-
|
|
174
|
-
if (typeof children === "function") {
|
|
175
|
-
return children({
|
|
176
|
-
[`${name}Provider`]: InnerProvider,
|
|
177
|
-
} as { [K in ProviderName as `${K}Provider`]: InnerProviderComponent });
|
|
178
|
-
}
|
|
179
|
-
|
|
180
232
|
return (
|
|
181
|
-
<StoreContext.Provider value={store}>
|
|
182
|
-
<Context.Provider value={memoValue}>{children}</Context.Provider>
|
|
183
|
-
</StoreContext.Provider>
|
|
233
|
+
<StoreContext.Provider value={store}>{children}</StoreContext.Provider>
|
|
184
234
|
);
|
|
185
235
|
};
|
|
186
236
|
Provider.displayName = providerDisplayName;
|
|
187
237
|
|
|
188
|
-
const useEnhancedContext = (): ContextValue | null => {
|
|
189
|
-
const context = useContext(Context);
|
|
190
|
-
|
|
191
|
-
if (guarded && context === null) {
|
|
192
|
-
throw new Error(
|
|
193
|
-
`${name} context must be used within a ${name}Provider`,
|
|
194
|
-
);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
return context;
|
|
198
|
-
};
|
|
199
|
-
|
|
200
|
-
const useStoreSelector = <Selected,>(
|
|
201
|
-
selector?: (value: ContextValue | null) => Selected,
|
|
202
|
-
): Selected | ContextValue | null => {
|
|
203
|
-
const store = useContext(StoreContext);
|
|
204
|
-
const resolvedStore =
|
|
205
|
-
store ?? (NullProviderStore as ProviderStoreApi<ContextValue>);
|
|
206
|
-
const selectorRef = useRef<typeof selector>(selector);
|
|
207
|
-
selectorRef.current = selector;
|
|
208
|
-
|
|
209
|
-
const getSelectedSnapshot = useCallback(() => {
|
|
210
|
-
if (guarded && store === null) {
|
|
211
|
-
throw new Error(
|
|
212
|
-
`${name} store must be used within a ${name}Provider`,
|
|
213
|
-
);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
const snapshot = resolvedStore.getSnapshot();
|
|
217
|
-
|
|
218
|
-
if (guarded && snapshot === null) {
|
|
219
|
-
throw new Error(
|
|
220
|
-
`${name} store must be used within an enabled ${name}Provider`,
|
|
221
|
-
);
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
return selectorRef.current ? selectorRef.current(snapshot) : snapshot;
|
|
225
|
-
}, [resolvedStore, store]);
|
|
226
|
-
|
|
227
|
-
return useSyncExternalStore(
|
|
228
|
-
resolvedStore.subscribe,
|
|
229
|
-
getSelectedSnapshot,
|
|
230
|
-
getSelectedSnapshot,
|
|
231
|
-
);
|
|
232
|
-
};
|
|
233
|
-
|
|
234
|
-
const useOptionalStoreSelector = <Selected,>(
|
|
235
|
-
selector?: (value: ContextValue | null) => Selected,
|
|
236
|
-
): Selected | ContextValue | null => {
|
|
237
|
-
const store = useContext(StoreContext);
|
|
238
|
-
const resolvedStore =
|
|
239
|
-
store ?? (NullProviderStore as ProviderStoreApi<ContextValue>);
|
|
240
|
-
const selectorRef = useRef<typeof selector>(selector);
|
|
241
|
-
selectorRef.current = selector;
|
|
242
|
-
|
|
243
|
-
const getSelectedSnapshot = useCallback(() => {
|
|
244
|
-
const snapshot = resolvedStore.getSnapshot();
|
|
245
|
-
return selectorRef.current ? selectorRef.current(snapshot) : snapshot;
|
|
246
|
-
}, [resolvedStore]);
|
|
247
|
-
|
|
248
|
-
return useSyncExternalStore(
|
|
249
|
-
resolvedStore.subscribe,
|
|
250
|
-
getSelectedSnapshot,
|
|
251
|
-
getSelectedSnapshot,
|
|
252
|
-
);
|
|
253
|
-
};
|
|
254
|
-
|
|
255
238
|
return {
|
|
256
|
-
[`${name}Context`]: Context,
|
|
257
|
-
[`${name}StoreContext`]: StoreContext,
|
|
258
239
|
[`${name}Provider`]: Provider,
|
|
259
|
-
[`use${name}Context`]: useEnhancedContext,
|
|
260
240
|
[`use${name}Store`]: useStoreSelector,
|
|
261
|
-
[`use${name}OptionalStore`]: useOptionalStoreSelector,
|
|
262
241
|
} as {
|
|
263
|
-
[P in ProviderName as `${P}Context`]: React.Context<ContextValue>;
|
|
264
|
-
} & {
|
|
265
|
-
[P in ProviderName as `${P}StoreContext`]: React.Context<ProviderStoreApi<ContextValue> | null>;
|
|
266
|
-
} & {
|
|
267
242
|
[P in ProviderName as `${P}Provider`]: React.FC<ProviderProps>;
|
|
268
|
-
} & {
|
|
269
|
-
[P in ProviderName as `use${P}Context`]: () => Guarded extends true
|
|
270
|
-
? ContextValue
|
|
271
|
-
: ContextValue | null;
|
|
272
243
|
} & {
|
|
273
244
|
[P in ProviderName as `use${P}Store`]: ProviderStoreHook<
|
|
274
245
|
ContextValue,
|
|
275
246
|
Guarded
|
|
276
247
|
>;
|
|
277
|
-
} & {
|
|
278
|
-
[P in ProviderName as `use${P}OptionalStore`]: ProviderOptionalStoreHook<ContextValue>;
|
|
279
248
|
};
|
|
280
249
|
};
|
|
281
250
|
}
|
package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/host-name.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createBoundaryPortalHostName = void 0;
|
|
7
|
-
const BOUNDARY_PORTAL_HOST_NAME_SUFFIX = "-portal-host";
|
|
8
|
-
const createBoundaryPortalHostName = (hostKey, boundaryId, pairKey) => {
|
|
9
|
-
"worklet";
|
|
10
|
-
|
|
11
|
-
return `${hostKey}-${pairKey ? `${pairKey}-` : ""}${boundaryId}${BOUNDARY_PORTAL_HOST_NAME_SUFFIX}`;
|
|
12
|
-
};
|
|
13
|
-
exports.createBoundaryPortalHostName = createBoundaryPortalHostName;
|
|
14
|
-
//# sourceMappingURL=host-name.js.map
|
package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/host-name.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["BOUNDARY_PORTAL_HOST_NAME_SUFFIX","createBoundaryPortalHostName","hostKey","boundaryId","pairKey","exports"],"sourceRoot":"../../../../../../../../src","sources":["components/boundary/portal/components/boundary-portal/helpers/host-name.ts"],"mappings":";;;;;;AAAA,MAAMA,gCAAgC,GAAG,cAAc;AAEhD,MAAMC,4BAA4B,GAAGA,CAC3CC,OAAe,EACfC,UAAkB,EAClBC,OAAuB,KACnB;EACJ,SAAS;;EACT,OAAO,GAAGF,OAAO,IAAIE,OAAO,GAAG,GAAGA,OAAO,GAAG,GAAG,EAAE,GAAGD,UAAU,GAAGH,gCAAgC,EAAE;AACpG,CAAC;AAACK,OAAA,CAAAJ,4BAAA,GAAAA,4BAAA","ignoreList":[]}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.resolveEnteringHandoffTarget = void 0;
|
|
7
|
-
var _linkPairs = require("../../../../stores/bounds/helpers/link-pairs.helpers");
|
|
8
|
-
/** Resolve only the immediate A -> B entering handoff. */
|
|
9
|
-
const resolveEnteringHandoffTarget = ({
|
|
10
|
-
animationProgress,
|
|
11
|
-
boundaryId,
|
|
12
|
-
currentScreenKey,
|
|
13
|
-
pairsState,
|
|
14
|
-
sourcePairKey
|
|
15
|
-
}) => {
|
|
16
|
-
"worklet";
|
|
17
|
-
|
|
18
|
-
if (!sourcePairKey || animationProgress <= 0) {
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
const pair = pairsState[sourcePairKey];
|
|
22
|
-
const linkKey = (0, _linkPairs.getLinkKeyFromTag)(boundaryId);
|
|
23
|
-
const link = pair?.links[linkKey];
|
|
24
|
-
if (link?.status !== "complete" || link.source.screenKey !== currentScreenKey || !link.source.handoff || !link.destination.handoff) {
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
if (link.group && pair.groups[link.group]?.activeId !== linkKey) {
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
return link.destination.screenKey;
|
|
31
|
-
};
|
|
32
|
-
exports.resolveEnteringHandoffTarget = resolveEnteringHandoffTarget;
|
|
33
|
-
//# sourceMappingURL=handoff-target.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_linkPairs","require","resolveEnteringHandoffTarget","animationProgress","boundaryId","currentScreenKey","pairsState","sourcePairKey","pair","linkKey","getLinkKeyFromTag","link","links","status","source","screenKey","handoff","destination","group","groups","activeId","exports"],"sourceRoot":"../../../../../../src","sources":["components/boundary/portal/utils/handoff-target.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAeA;AACO,MAAMC,4BAA4B,GAAGA,CAAC;EAC5CC,iBAAiB;EACjBC,UAAU;EACVC,gBAAgB;EAChBC,UAAU;EACVC;AACmC,CAAC,KAAuB;EAC3D,SAAS;;EAET,IAAI,CAACA,aAAa,IAAIJ,iBAAiB,IAAI,CAAC,EAAE;IAC7C,OAAO,IAAI;EACZ;EAEA,MAAMK,IAAI,GAAGF,UAAU,CAACC,aAAa,CAAC;EACtC,MAAME,OAAO,GAAG,IAAAC,4BAAiB,EAACN,UAAU,CAAC;EAC7C,MAAMO,IAAI,GAAGH,IAAI,EAAEI,KAAK,CAACH,OAAO,CAAC;EAEjC,IACCE,IAAI,EAAEE,MAAM,KAAK,UAAU,IAC3BF,IAAI,CAACG,MAAM,CAACC,SAAS,KAAKV,gBAAgB,IAC1C,CAACM,IAAI,CAACG,MAAM,CAACE,OAAO,IACpB,CAACL,IAAI,CAACM,WAAW,CAACD,OAAO,EACxB;IACD,OAAO,IAAI;EACZ;EAEA,IAAIL,IAAI,CAACO,KAAK,IAAIV,IAAI,CAACW,MAAM,CAACR,IAAI,CAACO,KAAK,CAAC,EAAEE,QAAQ,KAAKX,OAAO,EAAE;IAChE,OAAO,IAAI;EACZ;EAEA,OAAOE,IAAI,CAACM,WAAW,CAACF,SAAS;AAClC,CAAC;AAACM,OAAA,CAAAnB,4BAAA,GAAAA,4BAAA","ignoreList":[]}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = useStableCallbackValue;
|
|
7
|
-
var _react = require("react");
|
|
8
|
-
var _reactNativeReanimated = require("react-native-reanimated");
|
|
9
|
-
var _reactNativeWorklets = require("react-native-worklets");
|
|
10
|
-
/**
|
|
11
|
-
* Credit:
|
|
12
|
-
* https://github.com/MatiPl01/react-native-sortables/blob/main/packages/react-native-sortables/src/integrations/reanimated/hooks/useStableCallbackValue.ts
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
function useMutableValue(initialValue) {
|
|
16
|
-
const [mutable] = (0, _react.useState)(() => (0, _reactNativeReanimated.makeMutable)(initialValue));
|
|
17
|
-
(0, _react.useEffect)(() => {
|
|
18
|
-
return () => {
|
|
19
|
-
(0, _reactNativeReanimated.cancelAnimation)(mutable);
|
|
20
|
-
};
|
|
21
|
-
}, [mutable]);
|
|
22
|
-
return mutable;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// We cannot store a function as a SharedValue because reanimated will treat
|
|
26
|
-
// it as an animation and will try to execute the animation when assigned
|
|
27
|
-
// to the SharedValue. Since we want the function to be treated as a value,
|
|
28
|
-
// we wrap it in an object and store the object in the SharedValue.
|
|
29
|
-
|
|
30
|
-
const wrap = callback => {
|
|
31
|
-
if ((0, _reactNativeWorklets.isWorkletFunction)(callback)) {
|
|
32
|
-
return {
|
|
33
|
-
call: callback
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
return {
|
|
37
|
-
call: (...args) => {
|
|
38
|
-
"worklet";
|
|
39
|
-
|
|
40
|
-
(0, _reactNativeWorklets.scheduleOnRN)(callback, ...args);
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
/** Creates a stable worklet callback that can be called from the UI runtime
|
|
46
|
-
* @param callback The JavaScript or worklet function to be called
|
|
47
|
-
* @returns A worklet function that can be safely called from the UI thread
|
|
48
|
-
* @default Behavior:
|
|
49
|
-
* - If passed a regular JS function, schedules it on the JS thread
|
|
50
|
-
* - If passed a worklet function, calls it directly on the UI thread
|
|
51
|
-
* @important The returned function maintains a stable reference and properly handles
|
|
52
|
-
* thread execution based on the input callback type
|
|
53
|
-
*/
|
|
54
|
-
function useStableCallbackValue(callback) {
|
|
55
|
-
const stableCallback = useMutableValue(null);
|
|
56
|
-
(0, _react.useEffect)(() => {
|
|
57
|
-
if (callback) {
|
|
58
|
-
stableCallback.set(wrap(callback));
|
|
59
|
-
} else {
|
|
60
|
-
stableCallback.set(null);
|
|
61
|
-
}
|
|
62
|
-
}, [callback, stableCallback]);
|
|
63
|
-
return (0, _react.useCallback)((...args) => {
|
|
64
|
-
"worklet";
|
|
65
|
-
|
|
66
|
-
stableCallback.get()?.call(...args);
|
|
67
|
-
}, [stableCallback]);
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=use-stable-callback-value.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNativeReanimated","_reactNativeWorklets","useMutableValue","initialValue","mutable","useState","makeMutable","useEffect","cancelAnimation","wrap","callback","isWorkletFunction","call","args","scheduleOnRN","useStableCallbackValue","stableCallback","set","useCallback","get"],"sourceRoot":"../../../src","sources":["hooks/use-stable-callback-value.ts"],"mappings":";;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AANA;AACA;AACA;AACA;;AAOA,SAASG,eAAeA,CAAIC,YAAe,EAAE;EAC5C,MAAM,CAACC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAM,IAAAC,kCAAW,EAACH,YAAY,CAAC,CAAC;EAE3D,IAAAI,gBAAS,EAAC,MAAM;IACf,OAAO,MAAM;MACZ,IAAAC,sCAAe,EAACJ,OAAO,CAAC;IACzB,CAAC;EACF,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,OAAOA,OAAO;AACf;;AAEA;AACA;AACA;AACA;;AAKA,MAAMK,IAAI,GAA2BC,QAAW,IAAyB;EACxE,IAAI,IAAAC,sCAAiB,EAACD,QAAQ,CAAC,EAAE;IAChC,OAAO;MAAEE,IAAI,EAAEF;IAAS,CAAC;EAC1B;EACA,OAAO;IACNE,IAAI,EAAGA,CAAC,GAAGC,IAAmB,KAAK;MAClC,SAAS;;MACT,IAAAC,iCAAY,EAACJ,QAAQ,EAAE,GAAGG,IAAI,CAAC;IAChC;EACD,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASE,sBAAsBA,CAC7CL,QAAY,EACX;EACD,MAAMM,cAAc,GAAGd,eAAe,CAA4B,IAAI,CAAC;EAEvE,IAAAK,gBAAS,EAAC,MAAM;IACf,IAAIG,QAAQ,EAAE;MACbM,cAAc,CAACC,GAAG,CAACR,IAAI,CAACC,QAAQ,CAAC,CAAC;IACnC,CAAC,MAAM;MACNM,cAAc,CAACC,GAAG,CAAC,IAAI,CAAC;IACzB;EACD,CAAC,EAAE,CAACP,QAAQ,EAAEM,cAAc,CAAC,CAAC;EAE9B,OAAO,IAAAE,kBAAW,EACjB,CAAC,GAAGL,IAAmB,KAAK;IAC3B,SAAS;;IACTG,cAAc,CAACG,GAAG,CAAC,CAAC,EAAEP,IAAI,CAAC,GAAGC,IAAI,CAAC;EACpC,CAAC,EACD,CAACG,cAAc,CAChB,CAAC;AACF","ignoreList":[]}
|