react-native-screen-transitions 3.10.0 → 3.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (663) hide show
  1. package/lib/commonjs/blank-stack/components/stack-view.js +64 -32
  2. package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -1
  3. package/lib/commonjs/component-stack/components/stack-view.js +57 -23
  4. package/lib/commonjs/component-stack/components/stack-view.js.map +1 -1
  5. package/lib/commonjs/native-stack/views/NativeStackView.native.js +23 -13
  6. package/lib/commonjs/native-stack/views/NativeStackView.native.js.map +1 -1
  7. package/lib/commonjs/shared/adapters/with-screen-transitions/context.js +4 -0
  8. package/lib/commonjs/shared/adapters/with-screen-transitions/context.js.map +1 -1
  9. package/lib/commonjs/shared/adapters/with-screen-transitions/stack-layout.js +14 -8
  10. package/lib/commonjs/shared/adapters/with-screen-transitions/stack-layout.js.map +1 -1
  11. package/lib/commonjs/shared/animation/snap-to.js +1 -0
  12. package/lib/commonjs/shared/animation/snap-to.js.map +1 -1
  13. package/lib/commonjs/shared/components/activity/variants/activity-screen.js +26 -10
  14. package/lib/commonjs/shared/components/activity/variants/activity-screen.js.map +1 -1
  15. package/lib/commonjs/shared/components/boundary/components/boundary-target.js +1 -1
  16. package/lib/commonjs/shared/components/boundary/components/boundary-target.js.map +1 -1
  17. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +41 -18
  18. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
  19. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js +3 -1
  20. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js.map +1 -1
  21. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js +8 -17
  22. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
  23. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js +5 -4
  24. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  25. package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js +6 -13
  26. package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js.map +1 -1
  27. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/components/host.js +1 -1
  28. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/components/host.js.map +1 -1
  29. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +67 -0
  30. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -0
  31. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +44 -37
  32. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  33. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/host.js +2 -2
  34. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -1
  35. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +4 -15
  36. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -1
  37. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/active-pair.js +30 -0
  38. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/active-pair.js.map +1 -0
  39. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +72 -0
  40. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -0
  41. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +12 -60
  42. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  43. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +10 -19
  44. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -1
  45. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js +1 -1
  46. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -1
  47. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js +8 -1
  48. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js.map +1 -1
  49. package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js +4 -5
  50. package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
  51. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js +8 -4
  52. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js.map +1 -1
  53. package/lib/commonjs/shared/components/boundary/utils/measured-bounds.js +19 -31
  54. package/lib/commonjs/shared/components/boundary/utils/measured-bounds.js.map +1 -1
  55. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js +16 -24
  56. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js.map +1 -1
  57. package/lib/commonjs/shared/components/create-transition-aware-component.js +9 -29
  58. package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
  59. package/lib/commonjs/shared/components/screen-container/hooks/use-backdrop-pointer-events.js +5 -9
  60. package/lib/commonjs/shared/components/screen-container/hooks/use-backdrop-pointer-events.js.map +1 -1
  61. package/lib/commonjs/shared/components/screen-container/hooks/use-content-layout.js +3 -8
  62. package/lib/commonjs/shared/components/screen-container/hooks/use-content-layout.js.map +1 -1
  63. package/lib/commonjs/shared/components/screen-container/layers/backdrop.js +7 -10
  64. package/lib/commonjs/shared/components/screen-container/layers/backdrop.js.map +1 -1
  65. package/lib/commonjs/shared/components/screen-container/layers/content.js +10 -16
  66. package/lib/commonjs/shared/components/screen-container/layers/content.js.map +1 -1
  67. package/lib/commonjs/shared/components/screen-container/layers/surface-container.js +1 -5
  68. package/lib/commonjs/shared/components/screen-container/layers/surface-container.js.map +1 -1
  69. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js +10 -12
  70. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
  71. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-open-transition-intent.js +2 -3
  72. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-open-transition-intent.js.map +1 -1
  73. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-transition-start-controller.js +5 -1
  74. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-transition-start-controller.js.map +1 -1
  75. package/lib/commonjs/shared/components/screen-lifecycle/index.js +2 -4
  76. package/lib/commonjs/shared/components/screen-lifecycle/index.js.map +1 -1
  77. package/lib/commonjs/shared/configs/presets.js +10 -10
  78. package/lib/commonjs/shared/configs/presets.js.map +1 -1
  79. package/lib/commonjs/shared/constants.js +1 -0
  80. package/lib/commonjs/shared/constants.js.map +1 -1
  81. package/lib/commonjs/shared/hooks/navigation/use-navigation-helpers.js +9 -8
  82. package/lib/commonjs/shared/hooks/navigation/use-navigation-helpers.js.map +1 -1
  83. package/lib/commonjs/shared/hooks/navigation/use-screen-state.js +1 -3
  84. package/lib/commonjs/shared/hooks/navigation/use-screen-state.js.map +1 -1
  85. package/lib/commonjs/shared/providers/screen/animation/animation.provider.js +7 -7
  86. package/lib/commonjs/shared/providers/screen/animation/animation.provider.js.map +1 -1
  87. package/lib/commonjs/shared/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js +1 -3
  88. package/lib/commonjs/shared/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map +1 -1
  89. package/lib/commonjs/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +1 -1
  90. package/lib/commonjs/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +1 -1
  91. package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js +4 -10
  92. package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
  93. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js +5 -7
  94. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  95. package/lib/commonjs/shared/providers/screen/animation/index.js +2 -2
  96. package/lib/commonjs/shared/providers/screen/animation/use-screen-animation.js +1 -1
  97. package/lib/commonjs/shared/providers/screen/animation/use-screen-animation.js.map +1 -1
  98. package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js +35 -47
  99. package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  100. package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +1 -3
  101. package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
  102. package/lib/commonjs/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js +3 -20
  103. package/lib/commonjs/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +1 -1
  104. package/lib/commonjs/shared/providers/screen/descriptors/index.js +0 -12
  105. package/lib/commonjs/shared/providers/screen/descriptors/index.js.map +1 -1
  106. package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js +7 -7
  107. package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
  108. package/lib/commonjs/shared/providers/screen/gestures/hooks/use-screen-gesture-config.js +3 -9
  109. package/lib/commonjs/shared/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
  110. package/lib/commonjs/shared/providers/screen/gestures/hooks/use-screen-gesture.js +1 -1
  111. package/lib/commonjs/shared/providers/screen/gestures/hooks/use-screen-gesture.js.map +1 -1
  112. package/lib/commonjs/shared/providers/screen/gestures/hooks/use-stable-runtime-config.js +1 -3
  113. package/lib/commonjs/shared/providers/screen/gestures/hooks/use-stable-runtime-config.js.map +1 -1
  114. package/lib/commonjs/shared/providers/screen/gestures/index.js +2 -2
  115. package/lib/commonjs/shared/providers/screen/gestures/ownership/shadowing-claims.js +2 -2
  116. package/lib/commonjs/shared/providers/screen/gestures/ownership/shadowing-claims.js.map +1 -1
  117. package/lib/commonjs/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js +8 -11
  118. package/lib/commonjs/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +1 -1
  119. package/lib/commonjs/shared/providers/screen/gestures/pan/activation/use-pan-activation.js +2 -4
  120. package/lib/commonjs/shared/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
  121. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js +5 -8
  122. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  123. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-reset.js +10 -0
  124. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-reset.js.map +1 -1
  125. package/lib/commonjs/shared/providers/screen/gestures/pan/use-build-pan-gesture.js +1 -1
  126. package/lib/commonjs/shared/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
  127. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +8 -6
  128. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  129. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-reset.js +7 -0
  130. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-reset.js.map +1 -1
  131. package/lib/commonjs/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.js +1 -1
  132. package/lib/commonjs/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.js.map +1 -1
  133. package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js +5 -5
  134. package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js.map +1 -1
  135. package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +2 -2
  136. package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
  137. package/lib/commonjs/shared/providers/screen/options/index.js +2 -2
  138. package/lib/commonjs/shared/providers/screen/options/options.provider.js +4 -8
  139. package/lib/commonjs/shared/providers/screen/options/options.provider.js.map +1 -1
  140. package/lib/commonjs/shared/providers/screen/screen-composer.js +2 -0
  141. package/lib/commonjs/shared/providers/screen/screen-composer.js.map +1 -1
  142. package/lib/commonjs/shared/providers/screen/styles/constants.js +10 -4
  143. package/lib/commonjs/shared/providers/screen/styles/constants.js.map +1 -1
  144. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js +94 -0
  145. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js.map +1 -0
  146. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +48 -5
  147. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  148. package/lib/commonjs/shared/providers/screen/styles/helpers/select-interpolator-frame.js +32 -0
  149. package/lib/commonjs/shared/providers/screen/styles/helpers/select-interpolator-frame.js.map +1 -0
  150. package/lib/commonjs/shared/providers/screen/styles/helpers/visibility-gate.js +14 -1
  151. package/lib/commonjs/shared/providers/screen/styles/helpers/visibility-gate.js.map +1 -1
  152. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +64 -40
  153. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  154. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +1 -3
  155. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  156. package/lib/commonjs/shared/providers/screen/styles/index.js +0 -6
  157. package/lib/commonjs/shared/providers/screen/styles/index.js.map +1 -1
  158. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js +23 -19
  159. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js.map +1 -1
  160. package/lib/commonjs/shared/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js +3 -11
  161. package/lib/commonjs/shared/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js.map +1 -1
  162. package/lib/commonjs/shared/providers/stack/blank-stack.provider.js +53 -49
  163. package/lib/commonjs/shared/providers/stack/blank-stack.provider.js.map +1 -1
  164. package/lib/commonjs/shared/providers/stack/core.provider.js +20 -39
  165. package/lib/commonjs/shared/providers/stack/core.provider.js.map +1 -1
  166. package/lib/commonjs/shared/providers/stack/direct.provider.js +46 -40
  167. package/lib/commonjs/shared/providers/stack/direct.provider.js.map +1 -1
  168. package/lib/commonjs/shared/stores/animation.store.js +19 -1
  169. package/lib/commonjs/shared/stores/animation.store.js.map +1 -1
  170. package/lib/commonjs/shared/stores/bounds/internals/entries.js +27 -0
  171. package/lib/commonjs/shared/stores/bounds/internals/entries.js.map +1 -1
  172. package/lib/commonjs/shared/stores/bounds/internals/links.js +25 -0
  173. package/lib/commonjs/shared/stores/bounds/internals/links.js.map +1 -1
  174. package/lib/commonjs/shared/stores/bounds/internals/resolver.js +2 -12
  175. package/lib/commonjs/shared/stores/bounds/internals/resolver.js.map +1 -1
  176. package/lib/commonjs/shared/types/stack.types.js.map +1 -1
  177. package/lib/commonjs/shared/utils/animation/animate-to-progress.js +12 -11
  178. package/lib/commonjs/shared/utils/animation/animate-to-progress.js.map +1 -1
  179. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js +6 -0
  180. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  181. package/lib/commonjs/shared/utils/bounds/helpers/create-link-accessor.js +2 -2
  182. package/lib/commonjs/shared/utils/bounds/helpers/create-link-accessor.js.map +1 -1
  183. package/lib/commonjs/shared/utils/create-provider.js +61 -75
  184. package/lib/commonjs/shared/utils/create-provider.js.map +1 -1
  185. package/lib/module/blank-stack/components/stack-view.js +66 -34
  186. package/lib/module/blank-stack/components/stack-view.js.map +1 -1
  187. package/lib/module/component-stack/components/stack-view.js +60 -26
  188. package/lib/module/component-stack/components/stack-view.js.map +1 -1
  189. package/lib/module/native-stack/views/NativeStackView.native.js +24 -14
  190. package/lib/module/native-stack/views/NativeStackView.native.js.map +1 -1
  191. package/lib/module/shared/adapters/with-screen-transitions/context.js +3 -0
  192. package/lib/module/shared/adapters/with-screen-transitions/context.js.map +1 -1
  193. package/lib/module/shared/adapters/with-screen-transitions/stack-layout.js +14 -8
  194. package/lib/module/shared/adapters/with-screen-transitions/stack-layout.js.map +1 -1
  195. package/lib/module/shared/animation/snap-to.js +1 -0
  196. package/lib/module/shared/animation/snap-to.js.map +1 -1
  197. package/lib/module/shared/components/activity/variants/activity-screen.js +26 -10
  198. package/lib/module/shared/components/activity/variants/activity-screen.js.map +1 -1
  199. package/lib/module/shared/components/boundary/components/boundary-target.js +2 -2
  200. package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -1
  201. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +45 -21
  202. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
  203. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js +3 -1
  204. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js.map +1 -1
  205. package/lib/module/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js +8 -17
  206. package/lib/module/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
  207. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js +5 -4
  208. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  209. package/lib/module/shared/components/boundary/hooks/use-measurer.js +7 -14
  210. package/lib/module/shared/components/boundary/hooks/use-measurer.js.map +1 -1
  211. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/components/host.js +1 -1
  212. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/components/host.js.map +1 -1
  213. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +60 -0
  214. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -0
  215. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +44 -37
  216. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  217. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/host.js +2 -2
  218. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -1
  219. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +4 -15
  220. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -1
  221. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/active-pair.js +25 -0
  222. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/active-pair.js.map +1 -0
  223. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +67 -0
  224. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -0
  225. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +12 -60
  226. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  227. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +13 -22
  228. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -1
  229. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js +1 -1
  230. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -1
  231. package/lib/module/shared/components/boundary/portal/utils/naming.js +6 -0
  232. package/lib/module/shared/components/boundary/portal/utils/naming.js.map +1 -1
  233. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js +3 -3
  234. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
  235. package/lib/module/shared/components/boundary/utils/destination-signals.js +8 -4
  236. package/lib/module/shared/components/boundary/utils/destination-signals.js.map +1 -1
  237. package/lib/module/shared/components/boundary/utils/measured-bounds.js +17 -28
  238. package/lib/module/shared/components/boundary/utils/measured-bounds.js.map +1 -1
  239. package/lib/module/shared/components/boundary/utils/refresh-signals.js +16 -24
  240. package/lib/module/shared/components/boundary/utils/refresh-signals.js.map +1 -1
  241. package/lib/module/shared/components/create-transition-aware-component.js +10 -30
  242. package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
  243. package/lib/module/shared/components/screen-container/hooks/use-backdrop-pointer-events.js +8 -12
  244. package/lib/module/shared/components/screen-container/hooks/use-backdrop-pointer-events.js.map +1 -1
  245. package/lib/module/shared/components/screen-container/hooks/use-content-layout.js +4 -9
  246. package/lib/module/shared/components/screen-container/hooks/use-content-layout.js.map +1 -1
  247. package/lib/module/shared/components/screen-container/layers/backdrop.js +8 -11
  248. package/lib/module/shared/components/screen-container/layers/backdrop.js.map +1 -1
  249. package/lib/module/shared/components/screen-container/layers/content.js +12 -18
  250. package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
  251. package/lib/module/shared/components/screen-container/layers/surface-container.js +2 -6
  252. package/lib/module/shared/components/screen-container/layers/surface-container.js.map +1 -1
  253. package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js +13 -15
  254. package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
  255. package/lib/module/shared/components/screen-lifecycle/hooks/use-open-transition-intent.js +3 -4
  256. package/lib/module/shared/components/screen-lifecycle/hooks/use-open-transition-intent.js.map +1 -1
  257. package/lib/module/shared/components/screen-lifecycle/hooks/use-transition-start-controller.js +5 -1
  258. package/lib/module/shared/components/screen-lifecycle/hooks/use-transition-start-controller.js.map +1 -1
  259. package/lib/module/shared/components/screen-lifecycle/index.js +3 -5
  260. package/lib/module/shared/components/screen-lifecycle/index.js.map +1 -1
  261. package/lib/module/shared/configs/presets.js +10 -10
  262. package/lib/module/shared/configs/presets.js.map +1 -1
  263. package/lib/module/shared/constants.js +1 -0
  264. package/lib/module/shared/constants.js.map +1 -1
  265. package/lib/module/shared/hooks/navigation/use-navigation-helpers.js +9 -8
  266. package/lib/module/shared/hooks/navigation/use-navigation-helpers.js.map +1 -1
  267. package/lib/module/shared/hooks/navigation/use-screen-state.js +2 -4
  268. package/lib/module/shared/hooks/navigation/use-screen-state.js.map +1 -1
  269. package/lib/module/shared/providers/screen/animation/animation.provider.js +6 -5
  270. package/lib/module/shared/providers/screen/animation/animation.provider.js.map +1 -1
  271. package/lib/module/shared/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js +2 -4
  272. package/lib/module/shared/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map +1 -1
  273. package/lib/module/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +2 -2
  274. package/lib/module/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +1 -1
  275. package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js +4 -10
  276. package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
  277. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js +6 -8
  278. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  279. package/lib/module/shared/providers/screen/animation/index.js +1 -1
  280. package/lib/module/shared/providers/screen/animation/index.js.map +1 -1
  281. package/lib/module/shared/providers/screen/animation/use-screen-animation.js +2 -2
  282. package/lib/module/shared/providers/screen/animation/use-screen-animation.js.map +1 -1
  283. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js +36 -46
  284. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  285. package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +1 -3
  286. package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
  287. package/lib/module/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js +3 -19
  288. package/lib/module/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +1 -1
  289. package/lib/module/shared/providers/screen/descriptors/index.js +1 -1
  290. package/lib/module/shared/providers/screen/descriptors/index.js.map +1 -1
  291. package/lib/module/shared/providers/screen/gestures/gestures.provider.js +6 -6
  292. package/lib/module/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
  293. package/lib/module/shared/providers/screen/gestures/hooks/use-screen-gesture-config.js +5 -11
  294. package/lib/module/shared/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
  295. package/lib/module/shared/providers/screen/gestures/hooks/use-screen-gesture.js +2 -2
  296. package/lib/module/shared/providers/screen/gestures/hooks/use-screen-gesture.js.map +1 -1
  297. package/lib/module/shared/providers/screen/gestures/hooks/use-stable-runtime-config.js +2 -4
  298. package/lib/module/shared/providers/screen/gestures/hooks/use-stable-runtime-config.js.map +1 -1
  299. package/lib/module/shared/providers/screen/gestures/index.js +1 -1
  300. package/lib/module/shared/providers/screen/gestures/index.js.map +1 -1
  301. package/lib/module/shared/providers/screen/gestures/ownership/shadowing-claims.js +2 -2
  302. package/lib/module/shared/providers/screen/gestures/ownership/shadowing-claims.js.map +1 -1
  303. package/lib/module/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js +10 -13
  304. package/lib/module/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +1 -1
  305. package/lib/module/shared/providers/screen/gestures/pan/activation/use-pan-activation.js +3 -5
  306. package/lib/module/shared/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
  307. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js +6 -9
  308. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  309. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-reset.js +10 -0
  310. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-reset.js.map +1 -1
  311. package/lib/module/shared/providers/screen/gestures/pan/use-build-pan-gesture.js +2 -2
  312. package/lib/module/shared/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
  313. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +9 -7
  314. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  315. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-reset.js +7 -0
  316. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-reset.js.map +1 -1
  317. package/lib/module/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.js +2 -2
  318. package/lib/module/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.js.map +1 -1
  319. package/lib/module/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js +3 -3
  320. package/lib/module/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js.map +1 -1
  321. package/lib/module/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +4 -4
  322. package/lib/module/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
  323. package/lib/module/shared/providers/screen/options/index.js +1 -1
  324. package/lib/module/shared/providers/screen/options/index.js.map +1 -1
  325. package/lib/module/shared/providers/screen/options/options.provider.js +3 -7
  326. package/lib/module/shared/providers/screen/options/options.provider.js.map +1 -1
  327. package/lib/module/shared/providers/screen/screen-composer.js +2 -0
  328. package/lib/module/shared/providers/screen/screen-composer.js.map +1 -1
  329. package/lib/module/shared/providers/screen/styles/constants.js +8 -3
  330. package/lib/module/shared/providers/screen/styles/constants.js.map +1 -1
  331. package/lib/module/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js +89 -0
  332. package/lib/module/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js.map +1 -0
  333. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +49 -6
  334. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  335. package/lib/module/shared/providers/screen/styles/helpers/select-interpolator-frame.js +27 -0
  336. package/lib/module/shared/providers/screen/styles/helpers/select-interpolator-frame.js.map +1 -0
  337. package/lib/module/shared/providers/screen/styles/helpers/visibility-gate.js +12 -0
  338. package/lib/module/shared/providers/screen/styles/helpers/visibility-gate.js.map +1 -1
  339. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +67 -43
  340. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  341. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -4
  342. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  343. package/lib/module/shared/providers/screen/styles/index.js +1 -1
  344. package/lib/module/shared/providers/screen/styles/index.js.map +1 -1
  345. package/lib/module/shared/providers/screen/styles/slot.provider.js +23 -18
  346. package/lib/module/shared/providers/screen/styles/slot.provider.js.map +1 -1
  347. package/lib/module/shared/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js +3 -11
  348. package/lib/module/shared/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js.map +1 -1
  349. package/lib/module/shared/providers/stack/blank-stack.provider.js +50 -47
  350. package/lib/module/shared/providers/stack/blank-stack.provider.js.map +1 -1
  351. package/lib/module/shared/providers/stack/core.provider.js +19 -39
  352. package/lib/module/shared/providers/stack/core.provider.js.map +1 -1
  353. package/lib/module/shared/providers/stack/direct.provider.js +44 -41
  354. package/lib/module/shared/providers/stack/direct.provider.js.map +1 -1
  355. package/lib/module/shared/stores/animation.store.js +17 -0
  356. package/lib/module/shared/stores/animation.store.js.map +1 -1
  357. package/lib/module/shared/stores/bounds/internals/entries.js +27 -1
  358. package/lib/module/shared/stores/bounds/internals/entries.js.map +1 -1
  359. package/lib/module/shared/stores/bounds/internals/links.js +25 -2
  360. package/lib/module/shared/stores/bounds/internals/links.js.map +1 -1
  361. package/lib/module/shared/stores/bounds/internals/resolver.js +3 -13
  362. package/lib/module/shared/stores/bounds/internals/resolver.js.map +1 -1
  363. package/lib/module/shared/types/stack.types.js.map +1 -1
  364. package/lib/module/shared/utils/animation/animate-to-progress.js +12 -11
  365. package/lib/module/shared/utils/animation/animate-to-progress.js.map +1 -1
  366. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js +6 -0
  367. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  368. package/lib/module/shared/utils/bounds/helpers/create-link-accessor.js +3 -3
  369. package/lib/module/shared/utils/bounds/helpers/create-link-accessor.js.map +1 -1
  370. package/lib/module/shared/utils/create-provider.js +62 -76
  371. package/lib/module/shared/utils/create-provider.js.map +1 -1
  372. package/lib/typescript/blank-stack/components/stack-view.d.ts +5 -1
  373. package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
  374. package/lib/typescript/blank-stack/types.d.ts +1 -4
  375. package/lib/typescript/blank-stack/types.d.ts.map +1 -1
  376. package/lib/typescript/component-stack/components/stack-view.d.ts +5 -1
  377. package/lib/typescript/component-stack/components/stack-view.d.ts.map +1 -1
  378. package/lib/typescript/native-stack/views/NativeStackView.native.d.ts +2 -2
  379. package/lib/typescript/native-stack/views/NativeStackView.native.d.ts.map +1 -1
  380. package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts +2 -0
  381. package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts.map +1 -1
  382. package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts +1 -1
  383. package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts.map +1 -1
  384. package/lib/typescript/shared/animation/snap-to.d.ts.map +1 -1
  385. package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts +3 -2
  386. package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts.map +1 -1
  387. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts.map +1 -1
  388. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.d.ts.map +1 -1
  389. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.d.ts.map +1 -1
  390. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts.map +1 -1
  391. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts +1 -1
  392. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts.map +1 -1
  393. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts +26 -0
  394. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts.map +1 -0
  395. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts.map +1 -1
  396. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/host.d.ts.map +1 -1
  397. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.d.ts.map +1 -1
  398. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/active-pair.d.ts +9 -0
  399. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/active-pair.d.ts.map +1 -0
  400. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts +13 -0
  401. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts.map +1 -0
  402. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -1
  403. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts +0 -1
  404. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts.map +1 -1
  405. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts +0 -2
  406. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts.map +1 -1
  407. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts +1 -0
  408. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts.map +1 -1
  409. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts +1 -1
  410. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
  411. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts +2 -3
  412. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts.map +1 -1
  413. package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts +1 -3
  414. package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts.map +1 -1
  415. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts +0 -6
  416. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts.map +1 -1
  417. package/lib/typescript/shared/components/create-transition-aware-component.d.ts +0 -2
  418. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  419. package/lib/typescript/shared/components/screen-container/hooks/use-backdrop-pointer-events.d.ts.map +1 -1
  420. package/lib/typescript/shared/components/screen-container/hooks/use-content-layout.d.ts.map +1 -1
  421. package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts.map +1 -1
  422. package/lib/typescript/shared/components/screen-container/layers/content.d.ts.map +1 -1
  423. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts.map +1 -1
  424. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-open-transition-intent.d.ts.map +1 -1
  425. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-transition-start-controller.d.ts.map +1 -1
  426. package/lib/typescript/shared/components/screen-lifecycle/index.d.ts.map +1 -1
  427. package/lib/typescript/shared/configs/index.d.ts +6 -6
  428. package/lib/typescript/shared/configs/presets.d.ts +6 -6
  429. package/lib/typescript/shared/configs/presets.d.ts.map +1 -1
  430. package/lib/typescript/shared/constants.d.ts.map +1 -1
  431. package/lib/typescript/shared/hooks/navigation/use-navigation-helpers.d.ts.map +1 -1
  432. package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts.map +1 -1
  433. package/lib/typescript/shared/index.d.ts +14 -22
  434. package/lib/typescript/shared/index.d.ts.map +1 -1
  435. package/lib/typescript/shared/providers/screen/animation/animation.provider.d.ts +4 -1
  436. package/lib/typescript/shared/providers/screen/animation/animation.provider.d.ts.map +1 -1
  437. package/lib/typescript/shared/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.d.ts.map +1 -1
  438. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/index.d.ts.map +1 -1
  439. package/lib/typescript/shared/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
  440. package/lib/typescript/shared/providers/screen/animation/index.d.ts +1 -1
  441. package/lib/typescript/shared/providers/screen/animation/index.d.ts.map +1 -1
  442. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts +10 -11
  443. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  444. package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts +1 -3
  445. package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts.map +1 -1
  446. package/lib/typescript/shared/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts +0 -8
  447. package/lib/typescript/shared/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts.map +1 -1
  448. package/lib/typescript/shared/providers/screen/descriptors/index.d.ts +1 -1
  449. package/lib/typescript/shared/providers/screen/descriptors/index.d.ts.map +1 -1
  450. package/lib/typescript/shared/providers/screen/gestures/gestures.provider.d.ts +4 -1
  451. package/lib/typescript/shared/providers/screen/gestures/gestures.provider.d.ts.map +1 -1
  452. package/lib/typescript/shared/providers/screen/gestures/hooks/use-screen-gesture-config.d.ts.map +1 -1
  453. package/lib/typescript/shared/providers/screen/gestures/hooks/use-stable-runtime-config.d.ts.map +1 -1
  454. package/lib/typescript/shared/providers/screen/gestures/index.d.ts +1 -1
  455. package/lib/typescript/shared/providers/screen/gestures/index.d.ts.map +1 -1
  456. package/lib/typescript/shared/providers/screen/gestures/ownership/shadowing-claims.d.ts +2 -3
  457. package/lib/typescript/shared/providers/screen/gestures/ownership/shadowing-claims.d.ts.map +1 -1
  458. package/lib/typescript/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.d.ts.map +1 -1
  459. package/lib/typescript/shared/providers/screen/gestures/pan/activation/use-pan-activation.d.ts.map +1 -1
  460. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.d.ts.map +1 -1
  461. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-reset.d.ts +4 -1
  462. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-reset.d.ts.map +1 -1
  463. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.d.ts.map +1 -1
  464. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-reset.d.ts +3 -1
  465. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-reset.d.ts.map +1 -1
  466. package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.d.ts +1 -1
  467. package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.d.ts.map +1 -1
  468. package/lib/typescript/shared/providers/screen/options/index.d.ts +1 -1
  469. package/lib/typescript/shared/providers/screen/options/index.d.ts.map +1 -1
  470. package/lib/typescript/shared/providers/screen/options/options.provider.d.ts +4 -1
  471. package/lib/typescript/shared/providers/screen/options/options.provider.d.ts.map +1 -1
  472. package/lib/typescript/shared/providers/screen/screen-composer.d.ts +3 -2
  473. package/lib/typescript/shared/providers/screen/screen-composer.d.ts.map +1 -1
  474. package/lib/typescript/shared/providers/screen/styles/constants.d.ts +1 -0
  475. package/lib/typescript/shared/providers/screen/styles/constants.d.ts.map +1 -1
  476. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.d.ts +10 -0
  477. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.d.ts.map +1 -0
  478. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts +5 -3
  479. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts.map +1 -1
  480. package/lib/typescript/shared/providers/screen/styles/helpers/select-interpolator-frame.d.ts +4 -0
  481. package/lib/typescript/shared/providers/screen/styles/helpers/select-interpolator-frame.d.ts.map +1 -0
  482. package/lib/typescript/shared/providers/screen/styles/helpers/visibility-gate.d.ts +10 -0
  483. package/lib/typescript/shared/providers/screen/styles/helpers/visibility-gate.d.ts.map +1 -1
  484. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts +10 -5
  485. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
  486. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +1 -1
  487. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  488. package/lib/typescript/shared/providers/screen/styles/index.d.ts +1 -1
  489. package/lib/typescript/shared/providers/screen/styles/index.d.ts.map +1 -1
  490. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts +4 -1
  491. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts.map +1 -1
  492. package/lib/typescript/shared/providers/stack/blank-stack-state/helpers/build-blank-stack-state.d.ts.map +1 -1
  493. package/lib/typescript/shared/providers/stack/blank-stack.provider.d.ts +12 -6
  494. package/lib/typescript/shared/providers/stack/blank-stack.provider.d.ts.map +1 -1
  495. package/lib/typescript/shared/providers/stack/core.provider.d.ts +10 -8
  496. package/lib/typescript/shared/providers/stack/core.provider.d.ts.map +1 -1
  497. package/lib/typescript/shared/providers/stack/direct.provider.d.ts +11 -4
  498. package/lib/typescript/shared/providers/stack/direct.provider.d.ts.map +1 -1
  499. package/lib/typescript/shared/stores/animation.store.d.ts +1 -0
  500. package/lib/typescript/shared/stores/animation.store.d.ts.map +1 -1
  501. package/lib/typescript/shared/stores/bounds/internals/entries.d.ts +2 -1
  502. package/lib/typescript/shared/stores/bounds/internals/entries.d.ts.map +1 -1
  503. package/lib/typescript/shared/stores/bounds/internals/links.d.ts +3 -1
  504. package/lib/typescript/shared/stores/bounds/internals/links.d.ts.map +1 -1
  505. package/lib/typescript/shared/stores/bounds/internals/resolver.d.ts.map +1 -1
  506. package/lib/typescript/shared/types/gesture.types.d.ts +11 -0
  507. package/lib/typescript/shared/types/gesture.types.d.ts.map +1 -1
  508. package/lib/typescript/shared/types/providers/blank-stack-provider.types.d.ts +12 -20
  509. package/lib/typescript/shared/types/providers/blank-stack-provider.types.d.ts.map +1 -1
  510. package/lib/typescript/shared/types/providers/direct-stack.types.d.ts +2 -0
  511. package/lib/typescript/shared/types/providers/direct-stack.types.d.ts.map +1 -1
  512. package/lib/typescript/shared/types/screen.types.d.ts +0 -30
  513. package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
  514. package/lib/typescript/shared/types/stack.types.d.ts +2 -4
  515. package/lib/typescript/shared/types/stack.types.d.ts.map +1 -1
  516. package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts +3 -2
  517. package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts.map +1 -1
  518. package/lib/typescript/shared/utils/bounds/helpers/create-bounds-accessor-core.d.ts.map +1 -1
  519. package/lib/typescript/shared/utils/bounds/helpers/create-link-accessor.d.ts.map +1 -1
  520. package/lib/typescript/shared/utils/create-provider.d.ts +17 -9
  521. package/lib/typescript/shared/utils/create-provider.d.ts.map +1 -1
  522. package/package.json +1 -1
  523. package/src/blank-stack/components/stack-view.tsx +109 -53
  524. package/src/blank-stack/types.ts +1 -4
  525. package/src/component-stack/components/stack-view.tsx +96 -32
  526. package/src/native-stack/views/NativeStackView.native.tsx +135 -124
  527. package/src/shared/adapters/with-screen-transitions/context.tsx +5 -0
  528. package/src/shared/adapters/with-screen-transitions/stack-layout.tsx +20 -7
  529. package/src/shared/animation/snap-to.ts +1 -0
  530. package/src/shared/components/activity/variants/activity-screen.tsx +46 -13
  531. package/src/shared/components/boundary/components/boundary-target.tsx +2 -2
  532. package/src/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts +88 -31
  533. package/src/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.ts +6 -1
  534. package/src/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.ts +15 -33
  535. package/src/shared/components/boundary/hooks/use-boundary-measurement.ts +5 -4
  536. package/src/shared/components/boundary/hooks/use-measurer.ts +7 -16
  537. package/src/shared/components/boundary/portal/components/boundary-content-portal/components/host.tsx +1 -1
  538. package/src/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.ts +103 -0
  539. package/src/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts +86 -61
  540. package/src/shared/components/boundary/portal/components/boundary-portal/components/host.tsx +12 -14
  541. package/src/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.tsx +4 -20
  542. package/src/shared/components/boundary/portal/components/boundary-portal/helpers/active-pair.ts +36 -0
  543. package/src/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.ts +107 -0
  544. package/src/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +13 -97
  545. package/src/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.ts +12 -27
  546. package/src/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.ts +0 -3
  547. package/src/shared/components/boundary/portal/utils/naming.ts +11 -0
  548. package/src/shared/components/boundary/providers/boundary-root.provider.tsx +8 -11
  549. package/src/shared/components/boundary/utils/destination-signals.ts +8 -8
  550. package/src/shared/components/boundary/utils/measured-bounds.ts +29 -32
  551. package/src/shared/components/boundary/utils/refresh-signals.ts +25 -36
  552. package/src/shared/components/create-transition-aware-component.tsx +11 -36
  553. package/src/shared/components/screen-container/hooks/use-backdrop-pointer-events.ts +10 -8
  554. package/src/shared/components/screen-container/hooks/use-content-layout.ts +10 -10
  555. package/src/shared/components/screen-container/layers/backdrop.tsx +20 -9
  556. package/src/shared/components/screen-container/layers/content.tsx +20 -21
  557. package/src/shared/components/screen-container/layers/surface-container.tsx +4 -4
  558. package/src/shared/components/screen-lifecycle/hooks/use-close-transition-intent.ts +19 -9
  559. package/src/shared/components/screen-lifecycle/hooks/use-open-transition-intent.ts +5 -2
  560. package/src/shared/components/screen-lifecycle/hooks/use-transition-start-controller.ts +6 -0
  561. package/src/shared/components/screen-lifecycle/index.tsx +3 -2
  562. package/src/shared/configs/presets.ts +13 -13
  563. package/src/shared/constants.ts +1 -0
  564. package/src/shared/hooks/navigation/use-navigation-helpers.ts +9 -8
  565. package/src/shared/hooks/navigation/use-screen-state.ts +4 -2
  566. package/src/shared/providers/screen/animation/animation.provider.tsx +170 -173
  567. package/src/shared/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.tsx +4 -2
  568. package/src/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.ts +2 -2
  569. package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/index.ts +4 -21
  570. package/src/shared/providers/screen/animation/helpers/pipeline.ts +6 -10
  571. package/src/shared/providers/screen/animation/index.tsx +1 -1
  572. package/src/shared/providers/screen/animation/use-screen-animation.tsx +2 -2
  573. package/src/shared/providers/screen/descriptors/descriptors.provider.tsx +77 -73
  574. package/src/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.ts +0 -4
  575. package/src/shared/providers/screen/descriptors/helpers/get-ancestor-keys.ts +3 -30
  576. package/src/shared/providers/screen/descriptors/index.tsx +0 -2
  577. package/src/shared/providers/screen/gestures/gestures.provider.tsx +72 -63
  578. package/src/shared/providers/screen/gestures/hooks/use-screen-gesture-config.ts +7 -8
  579. package/src/shared/providers/screen/gestures/hooks/use-screen-gesture.ts +2 -2
  580. package/src/shared/providers/screen/gestures/hooks/use-stable-runtime-config.ts +4 -2
  581. package/src/shared/providers/screen/gestures/index.tsx +1 -1
  582. package/src/shared/providers/screen/gestures/ownership/shadowing-claims.ts +3 -4
  583. package/src/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.ts +16 -8
  584. package/src/shared/providers/screen/gestures/pan/activation/use-pan-activation.ts +7 -2
  585. package/src/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.ts +8 -16
  586. package/src/shared/providers/screen/gestures/pan/behavior/pan-reset.ts +14 -0
  587. package/src/shared/providers/screen/gestures/pan/use-build-pan-gesture.ts +2 -2
  588. package/src/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.ts +12 -11
  589. package/src/shared/providers/screen/gestures/pinch/behavior/pinch-reset.ts +10 -0
  590. package/src/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.ts +2 -2
  591. package/src/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.tsx +4 -4
  592. package/src/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.ts +4 -4
  593. package/src/shared/providers/screen/options/index.ts +1 -1
  594. package/src/shared/providers/screen/options/options.provider.tsx +24 -28
  595. package/src/shared/providers/screen/screen-composer.tsx +9 -2
  596. package/src/shared/providers/screen/styles/constants.ts +8 -6
  597. package/src/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.ts +138 -0
  598. package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/index.ts +71 -4
  599. package/src/shared/providers/screen/styles/helpers/select-interpolator-frame.ts +41 -0
  600. package/src/shared/providers/screen/styles/helpers/visibility-gate.ts +25 -0
  601. package/src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +93 -52
  602. package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +4 -2
  603. package/src/shared/providers/screen/styles/index.tsx +0 -1
  604. package/src/shared/providers/screen/styles/slot.provider.tsx +62 -48
  605. package/src/shared/providers/stack/blank-stack-state/helpers/build-blank-stack-state.ts +4 -17
  606. package/src/shared/providers/stack/blank-stack.provider.tsx +66 -75
  607. package/src/shared/providers/stack/core.provider.tsx +46 -76
  608. package/src/shared/providers/stack/direct.provider.tsx +77 -57
  609. package/src/shared/stores/animation.store.ts +19 -0
  610. package/src/shared/stores/bounds/internals/entries.ts +38 -1
  611. package/src/shared/stores/bounds/internals/links.ts +36 -0
  612. package/src/shared/stores/bounds/internals/resolver.ts +7 -21
  613. package/src/shared/types/gesture.types.ts +11 -0
  614. package/src/shared/types/providers/blank-stack-provider.types.ts +8 -22
  615. package/src/shared/types/providers/direct-stack.types.ts +2 -0
  616. package/src/shared/types/screen.types.ts +0 -32
  617. package/src/shared/types/stack.types.ts +2 -4
  618. package/src/shared/utils/animation/animate-to-progress.ts +18 -18
  619. package/src/shared/utils/bounds/helpers/create-bounds-accessor-core.ts +7 -0
  620. package/src/shared/utils/bounds/helpers/create-link-accessor.ts +9 -3
  621. package/src/shared/utils/create-provider.tsx +105 -136
  622. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js +0 -18
  623. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js.map +0 -1
  624. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.js +0 -14
  625. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.js.map +0 -1
  626. package/lib/commonjs/shared/components/boundary/portal/utils/handoff-target.js +0 -33
  627. package/lib/commonjs/shared/components/boundary/portal/utils/handoff-target.js.map +0 -1
  628. package/lib/commonjs/shared/hooks/use-stable-callback-value.js +0 -68
  629. package/lib/commonjs/shared/hooks/use-stable-callback-value.js.map +0 -1
  630. package/lib/commonjs/shared/providers/register-bounds.provider.js +0 -311
  631. package/lib/commonjs/shared/providers/register-bounds.provider.js.map +0 -1
  632. package/lib/commonjs/shared/providers/screen/origin.provider.js +0 -41
  633. package/lib/commonjs/shared/providers/screen/origin.provider.js.map +0 -1
  634. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js +0 -13
  635. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js.map +0 -1
  636. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.js +0 -9
  637. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.js.map +0 -1
  638. package/lib/module/shared/components/boundary/portal/utils/handoff-target.js +0 -28
  639. package/lib/module/shared/components/boundary/portal/utils/handoff-target.js.map +0 -1
  640. package/lib/module/shared/hooks/use-stable-callback-value.js +0 -63
  641. package/lib/module/shared/hooks/use-stable-callback-value.js.map +0 -1
  642. package/lib/module/shared/providers/register-bounds.provider.js +0 -307
  643. package/lib/module/shared/providers/register-bounds.provider.js.map +0 -1
  644. package/lib/module/shared/providers/screen/origin.provider.js +0 -33
  645. package/lib/module/shared/providers/screen/origin.provider.js.map +0 -1
  646. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.d.ts +0 -3
  647. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.d.ts.map +0 -1
  648. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.d.ts +0 -2
  649. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.d.ts.map +0 -1
  650. package/lib/typescript/shared/components/boundary/portal/utils/handoff-target.d.ts +0 -12
  651. package/lib/typescript/shared/components/boundary/portal/utils/handoff-target.d.ts.map +0 -1
  652. package/lib/typescript/shared/hooks/use-stable-callback-value.d.ts +0 -13
  653. package/lib/typescript/shared/hooks/use-stable-callback-value.d.ts.map +0 -1
  654. package/lib/typescript/shared/providers/register-bounds.provider.d.ts +0 -25
  655. package/lib/typescript/shared/providers/register-bounds.provider.d.ts.map +0 -1
  656. package/lib/typescript/shared/providers/screen/origin.provider.d.ts +0 -11
  657. package/lib/typescript/shared/providers/screen/origin.provider.d.ts.map +0 -1
  658. package/src/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.ts +0 -16
  659. package/src/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.ts +0 -10
  660. package/src/shared/components/boundary/portal/utils/handoff-target.ts +0 -48
  661. package/src/shared/hooks/use-stable-callback-value.ts +0 -76
  662. package/src/shared/providers/register-bounds.provider.tsx +0 -402
  663. package/src/shared/providers/screen/origin.provider.tsx +0 -38
@@ -1,12 +1,10 @@
1
1
  import { useSyncExternalStore } from "react";
2
2
  import type { SharedValue } from "react-native-reanimated";
3
- import type { LocalStyleLayers } from "../../../../../../providers/screen/styles/helpers/resolve-slot-styles";
4
3
  import type { NormalizedTransitionInterpolatedStyle } from "../../../../../../types/animation.types";
5
4
 
6
5
  export type ActivePortalBoundaryHost = {
7
6
  boundaryId: string;
8
7
  hostKey: string;
9
- localStylesMaps: SharedValue<LocalStyleLayers>;
10
8
  pairKey: string;
11
9
  portalHostName: string;
12
10
  portalHostReady: SharedValue<boolean>;
@@ -56,7 +54,6 @@ const isSameHost = (
56
54
  return (
57
55
  a.boundaryId === b.boundaryId &&
58
56
  a.hostKey === b.hostKey &&
59
- a.localStylesMaps === b.localStylesMaps &&
60
57
  a.pairKey === b.pairKey &&
61
58
  a.portalHostName === b.portalHostName &&
62
59
  a.portalHostReady === b.portalHostReady &&
@@ -1 +1,12 @@
1
+ const BOUNDARY_PORTAL_HOST_NAME_SUFFIX = "-portal-host";
2
+
3
+ export const createBoundaryPortalHostName = (
4
+ hostKey: string,
5
+ boundaryId: string,
6
+ pairKey?: string | null,
7
+ ) => {
8
+ "worklet";
9
+ return `${hostKey}-${pairKey ? `${pairKey}-` : ""}${boundaryId}${BOUNDARY_PORTAL_HOST_NAME_SUFFIX}`;
10
+ };
11
+
1
12
  export const PORTAL_HOST_NAME_RESET_VALUE = null;
@@ -14,6 +14,7 @@ import {
14
14
  useComposedSlotStyles,
15
15
  useSlotStackingStyles,
16
16
  } from "../../../providers/screen/styles";
17
+ import { useBlankStackStore } from "../../../providers/stack/blank-stack.provider";
17
18
  import { createBoundTag } from "../../../stores/bounds/helpers/link-pairs.helpers";
18
19
  import type { BoundTag } from "../../../stores/bounds/types";
19
20
  import createProvider from "../../../utils/create-provider";
@@ -64,14 +65,10 @@ type BoundaryRootProviderProps = Pick<
64
65
  targetStyle?: unknown;
65
66
  };
66
67
 
67
- export const {
68
- BoundaryRootProvider,
69
- useBoundaryRootContext,
70
- useBoundaryRootStore,
71
- } = createProvider("BoundaryRoot", { guarded: false })<
72
- BoundaryRootProviderProps,
73
- BoundaryRootContextValue
74
- >(
68
+ export const { BoundaryRootProvider, useBoundaryRootStore } = createProvider(
69
+ "BoundaryRoot",
70
+ { guarded: false },
71
+ )<BoundaryRootProviderProps, BoundaryRootContextValue>(
75
72
  ({
76
73
  children,
77
74
  config,
@@ -98,12 +95,12 @@ export const {
98
95
  const currentScreenKey = useDescriptorsStore(
99
96
  (s) => s.derivations.currentScreenKey,
100
97
  );
101
- const currentActivity = useDescriptorsStore(
102
- (s) => s.descriptors.current.activity,
98
+ const isCurrentScreenClosing = useBlankStackStore(
99
+ (store) => store?.scenesByKey[currentScreenKey]?.activity === "closing",
103
100
  );
104
101
  const retainedBoundTagRef = useRef(requestedBoundTag);
105
102
  const shouldRetainClosingBoundTag =
106
- portalRuntime.handoff && currentActivity === "closing";
103
+ portalRuntime.handoff && isCurrentScreenClosing;
107
104
 
108
105
  // Navigation can update a retained closing route's params before that
109
106
  // route leaves the stack. Keep its handoff identity stable so the payload
@@ -14,14 +14,13 @@ export type InitialDestinationMeasurementAction =
14
14
  | "complete";
15
15
 
16
16
  export type InitialDestinationMeasurementSignal = {
17
- pairKey: ScreenPairKey;
17
+ pairKey: ScreenPairKey | null;
18
18
  action: InitialDestinationMeasurementAction;
19
19
  };
20
20
 
21
21
  export const getInitialDestinationMeasurementSignal = (params: {
22
22
  enabled: boolean;
23
- destinationPairKey?: ScreenPairKey;
24
- ancestorDestinationPairKey?: ScreenPairKey;
23
+ pairKey?: ScreenPairKey;
25
24
  linkId: string;
26
25
  group?: string;
27
26
  destinationPresent: boolean;
@@ -31,20 +30,21 @@ export const getInitialDestinationMeasurementSignal = (params: {
31
30
  "worklet";
32
31
  const {
33
32
  enabled,
34
- destinationPairKey,
35
- ancestorDestinationPairKey,
33
+ pairKey,
36
34
  linkId,
37
35
  group,
38
36
  destinationPresent,
39
37
  sourcePresent,
40
38
  linkState,
41
39
  } = params;
42
- const pairKey = destinationPairKey ?? ancestorDestinationPairKey;
43
-
44
- if (!enabled || !pairKey) {
40
+ if (!enabled) {
45
41
  return null;
46
42
  }
47
43
 
44
+ if (!pairKey) {
45
+ return { pairKey: null, action: "wait" };
46
+ }
47
+
48
48
  if (!destinationPresent) {
49
49
  return { pairKey, action: "wait" };
50
50
  }
@@ -60,18 +60,6 @@ export const adjustedMeasuredBoundsForOverscrollDeltas = (
60
60
  };
61
61
  };
62
62
 
63
- export const normalizeMeasuredBoundsToOrigin = (
64
- measured: MeasuredDimensions,
65
- origin: MeasuredDimensions,
66
- ): MeasuredDimensions => {
67
- "worklet";
68
- return {
69
- ...measured,
70
- pageX: measured.pageX - origin.pageX,
71
- pageY: measured.pageY - origin.pageY,
72
- };
73
- };
74
-
75
63
  export const isMeasurementInViewport = (
76
64
  measured: MeasuredDimensions,
77
65
  viewportWidth: number,
@@ -96,52 +84,61 @@ export const isMeasurementInViewport = (
96
84
  );
97
85
  };
98
86
 
99
- export const normalizeMeasuredBoundsWithVisibilityGate = ({
87
+ export const correctMeasuredBoundsForVisibilityGate = ({
100
88
  measured,
101
- origin,
102
89
  visibilityBlocked,
103
90
  visibilityBlockOffset,
104
91
  viewportWidth,
105
92
  viewportHeight,
106
93
  }: {
107
94
  measured: MeasuredDimensions;
108
- origin: MeasuredDimensions;
109
95
  visibilityBlocked: boolean;
110
96
  visibilityBlockOffset: number;
111
97
  viewportWidth: number;
112
98
  viewportHeight: number;
113
99
  }): MeasuredDimensions => {
114
100
  "worklet";
115
- const normalized = normalizeMeasuredBoundsToOrigin(measured, origin);
116
101
 
117
102
  if (
118
103
  !visibilityBlocked ||
119
104
  visibilityBlockOffset <= 0 ||
120
- isMeasurementInViewport(normalized, viewportWidth, viewportHeight)
105
+ isMeasurementInViewport(measured, viewportWidth, viewportHeight)
121
106
  ) {
122
- return normalized;
107
+ return measured;
123
108
  }
124
109
 
125
- // Fabric can expose the visibility transform to one native measurement one
126
- // frame before the other. Prefer normal origin-relative coordinates, then
127
- // test either side of that known frame skew while the gate is active.
128
- const measuredAhead = {
129
- ...normalized,
130
- pageY: normalized.pageY - visibilityBlockOffset,
110
+ // A destination can still carry the internal visibility transform for one
111
+ // native frame. Correct only that known offset and preserve all other
112
+ // presentation transforms in the measured coordinates.
113
+ const visibilityOffsetApplied = {
114
+ ...measured,
115
+ pageY: measured.pageY - visibilityBlockOffset,
131
116
  };
132
- if (isMeasurementInViewport(measuredAhead, viewportWidth, viewportHeight)) {
133
- return measuredAhead;
117
+ if (
118
+ isMeasurementInViewport(
119
+ visibilityOffsetApplied,
120
+ viewportWidth,
121
+ viewportHeight,
122
+ )
123
+ ) {
124
+ return visibilityOffsetApplied;
134
125
  }
135
126
 
136
- const originAhead = {
137
- ...normalized,
138
- pageY: normalized.pageY + visibilityBlockOffset,
127
+ const inverseVisibilityOffsetApplied = {
128
+ ...measured,
129
+ pageY: measured.pageY + visibilityBlockOffset,
139
130
  };
140
- if (isMeasurementInViewport(originAhead, viewportWidth, viewportHeight)) {
141
- return originAhead;
131
+ if (
132
+ isMeasurementInViewport(
133
+ inverseVisibilityOffsetApplied,
134
+ viewportWidth,
135
+ viewportHeight,
136
+ )
137
+ ) {
138
+ return inverseVisibilityOffsetApplied;
142
139
  }
143
140
 
144
- return normalized;
141
+ return measured;
145
142
  };
146
143
 
147
144
  export const measureWithOverscrollAwareness = (
@@ -31,16 +31,10 @@ export const getRefreshBoundarySignal = (params: {
31
31
  currentScreenKey: string;
32
32
  sourcePairKey?: ScreenPairKey;
33
33
  destinationPairKey?: ScreenPairKey;
34
- ancestorDestinationPairKey?: ScreenPairKey;
35
- nextScreenKey?: string;
36
34
  linkId: string;
37
35
  group?: string;
38
36
  shouldRefresh: boolean;
39
37
  closing: boolean;
40
- entering: boolean;
41
- animating: boolean;
42
- progress: number;
43
- gestureInProgress: boolean;
44
38
  linkState?: LinkPairsState;
45
39
  }): RefreshBoundarySignal | null => {
46
40
  "worklet";
@@ -49,51 +43,48 @@ export const getRefreshBoundarySignal = (params: {
49
43
  currentScreenKey,
50
44
  sourcePairKey,
51
45
  destinationPairKey,
52
- ancestorDestinationPairKey,
53
- nextScreenKey,
54
46
  linkId,
55
47
  group,
56
48
  shouldRefresh,
57
49
  closing,
58
- entering,
59
- animating,
60
- progress,
61
- gestureInProgress,
62
50
  linkState,
63
51
  } = params;
64
52
 
65
53
  if (!enabled) return null;
66
54
 
67
- // This is temporary for a patch fix. However, this architecture should
68
- // change: our signals aren't currently doing their intended job, so right
69
- // now we'll add one more guard until the shape is much more tested and
70
- // bulletproof.
71
- if (gestureInProgress) return null;
72
-
73
- const canRefreshPreCloseDestination =
74
- shouldRefresh && closing && !entering && !animating && progress >= 1;
75
-
76
- const canRefreshSettledDestination = shouldRefresh && !closing && !entering;
77
-
78
- // Guards:
79
- // 1) A user may dismiss via back button, in this case, we should remeasure.
80
- // 2) If a user drags during entering/closing animations we should NOT remeasure.
81
- if (!canRefreshPreCloseDestination && !canRefreshSettledDestination) {
55
+ if (!shouldRefresh) {
82
56
  return null;
83
57
  }
84
58
 
85
- // Non group:
86
- // Since in typical group flows we would need to know the src, we don't need to do that for
87
- // single a->b flows. So we just trigger the destination refresh.
59
+ // A source may move while its destination is active, so refresh whichever
60
+ // side of the pair this boundary currently represents.
88
61
  if (!group) {
89
- const refreshDestinationPairKey =
90
- destinationPairKey ??
91
- (nextScreenKey ? undefined : ancestorDestinationPairKey);
62
+ if (sourcePairKey) {
63
+ const sourcePair = linkState?.[sourcePairKey];
64
+ const participates =
65
+ !!sourcePair?.links?.[linkId] || !!sourcePair?.sourceRequests?.[linkId];
66
+
67
+ if (!participates) {
68
+ return null;
69
+ }
70
+
71
+ return buildRefreshSignal(
72
+ "source",
73
+ sourcePairKey,
74
+ [currentScreenKey, closing ? "closing" : "settled"].join("|"),
75
+ );
76
+ }
77
+
78
+ const refreshDestinationPairKey = destinationPairKey;
92
79
 
93
80
  if (!refreshDestinationPairKey) {
94
81
  return null;
95
82
  }
96
83
 
84
+ if (!linkState?.[refreshDestinationPairKey]?.links?.[linkId]) {
85
+ return null;
86
+ }
87
+
97
88
  return buildRefreshSignal(
98
89
  "destination",
99
90
  refreshDestinationPairKey,
@@ -117,9 +108,7 @@ export const getRefreshBoundarySignal = (params: {
117
108
  );
118
109
  }
119
110
 
120
- const refreshDestinationPairKey =
121
- destinationPairKey ??
122
- (nextScreenKey ? undefined : ancestorDestinationPairKey);
111
+ const refreshDestinationPairKey = destinationPairKey;
123
112
 
124
113
  if (!refreshDestinationPairKey) return null;
125
114
 
@@ -1,14 +1,8 @@
1
1
  /** biome-ignore-all lint/style/noNonNullAssertion: <This helper is usually being used inside a transitionable stack> */
2
2
  import type React from "react";
3
3
  import { type ComponentType, forwardRef, memo } from "react";
4
- import type { View } from "react-native";
5
4
  import { GestureDetector } from "react-native-gesture-handler";
6
- import Animated, {
7
- runOnUI,
8
- useAnimatedRef,
9
- useComposedEventHandler,
10
- } from "react-native-reanimated";
11
- import { RegisterBoundsProvider } from "../providers/register-bounds.provider";
5
+ import Animated, { useComposedEventHandler } from "react-native-reanimated";
12
6
  import {
13
7
  ScrollMetadataOwnerProvider,
14
8
  useScrollGestureCoordination,
@@ -36,7 +30,6 @@ export function createTransitionAwareComponent<P extends object>(
36
30
  TransitionAwareProps<P>
37
31
  >((props: any, ref) => {
38
32
  const {
39
- remeasureOnFocus: _remeasureOnFocus,
40
33
  onScroll: userOnScroll,
41
34
  onMomentumScrollEnd: userOnMomentumScrollEnd,
42
35
  onScrollEndDrag: userOnScrollEndDrag,
@@ -112,45 +105,27 @@ export function createTransitionAwareComponent<P extends object>(
112
105
  const Inner = forwardRef<
113
106
  React.ComponentRef<typeof AnimatedComponent>,
114
107
  TransitionAwareProps<P>
115
- >((props, _) => {
108
+ >((props, ref) => {
116
109
  const {
117
110
  children,
118
111
  style,
119
- sharedBoundTag,
120
112
  styleId,
121
- onPress,
122
- remeasureOnFocus,
123
113
  animatedProps: userAnimatedProps,
124
114
  ...rest
125
115
  } = props as any;
126
116
 
127
- const animatedRef = useAnimatedRef<View>();
128
- const associatedId = sharedBoundTag || styleId;
129
- const associatedStyles = useSlotStyles(associatedId);
130
- const associatedProps = useSlotProps(associatedId);
117
+ const associatedStyles = useSlotStyles(styleId);
118
+ const associatedProps = useSlotProps(styleId);
131
119
 
132
120
  return (
133
- <RegisterBoundsProvider
134
- animatedRef={animatedRef}
135
- style={style}
136
- onPress={onPress}
137
- sharedBoundTag={sharedBoundTag}
138
- remeasureOnFocus={remeasureOnFocus}
121
+ <AnimatedComponent
122
+ {...(rest as any)}
123
+ ref={ref}
124
+ style={[style, associatedStyles]}
125
+ animatedProps={userAnimatedProps ?? associatedProps}
139
126
  >
140
- {({ captureActiveOnPress, handleInitialLayout }) => (
141
- <AnimatedComponent
142
- {...(rest as any)}
143
- ref={animatedRef}
144
- style={[style, associatedStyles]}
145
- animatedProps={userAnimatedProps ?? associatedProps}
146
- onPress={captureActiveOnPress}
147
- onLayout={runOnUI(handleInitialLayout)}
148
- collapsable={!sharedBoundTag}
149
- >
150
- {children}
151
- </AnimatedComponent>
152
- )}
153
- </RegisterBoundsProvider>
127
+ {children}
128
+ </AnimatedComponent>
154
129
  );
155
130
  });
156
131
 
@@ -1,8 +1,8 @@
1
1
  import { useState } from "react";
2
2
  import { runOnJS, useAnimatedReaction } from "react-native-reanimated";
3
- import { useDescriptors } from "../../../providers/screen/descriptors";
4
- import { useScreenOptionsContext } from "../../../providers/screen/options";
5
- import { useStackCoreContext } from "../../../providers/stack/core.provider";
3
+ import { useDescriptorsStore } from "../../../providers/screen/descriptors";
4
+ import { useScreenOptionsStore } from "../../../providers/screen/options";
5
+ import { useStackCoreStore } from "../../../providers/stack/core.provider";
6
6
  import type { BackdropBehavior } from "../../../types/screen.types";
7
7
  import { StackType } from "../../../types/stack.types";
8
8
 
@@ -21,9 +21,11 @@ interface BackdropPointerEventsResult {
21
21
  * - Other stacks default to 'block' (undefined = normal touch handling)
22
22
  */
23
23
  export function useBackdropPointerEvents(): BackdropPointerEventsResult {
24
- const { current } = useDescriptors();
25
- const screenOptions = useScreenOptionsContext();
26
- const { flags } = useStackCoreContext();
24
+ const screenOptions = useScreenOptionsStore();
25
+ const descriptorBackdropBehavior = useDescriptorsStore(
26
+ (store) => store.options.backdropBehavior,
27
+ );
28
+ const stackType = useStackCoreStore((store) => store.flags.STACK_TYPE);
27
29
  const [runtimeBackdropBehavior, setRuntimeBackdropBehavior] = useState<
28
30
  BackdropBehavior | undefined
29
31
  >(undefined);
@@ -39,10 +41,10 @@ export function useBackdropPointerEvents(): BackdropPointerEventsResult {
39
41
  [screenOptions],
40
42
  );
41
43
 
42
- const isComponentStack = flags.STACK_TYPE === StackType.COMPONENT;
44
+ const isComponentStack = stackType === StackType.COMPONENT;
43
45
  const backdropBehavior: BackdropBehavior =
44
46
  runtimeBackdropBehavior ??
45
- current.options.backdropBehavior ??
47
+ descriptorBackdropBehavior ??
46
48
  (isComponentStack ? "passthrough" : "block");
47
49
 
48
50
  const pointerEvents =
@@ -1,10 +1,7 @@
1
1
  import { useCallback } from "react";
2
2
  import { type LayoutChangeEvent, useWindowDimensions } from "react-native";
3
3
  import { runOnUI } from "react-native-reanimated";
4
- import {
5
- useDescriptorDerivations,
6
- useDescriptors,
7
- } from "../../../providers/screen/descriptors";
4
+ import { useDescriptorsStore } from "../../../providers/screen/descriptors";
8
5
  import { AnimationStore } from "../../../stores/animation.store";
9
6
  import {
10
7
  LifecycleTransitionRequestKind,
@@ -12,10 +9,16 @@ import {
12
9
  } from "../../../stores/system.store";
13
10
 
14
11
  export function useContentLayout() {
15
- const { current } = useDescriptors();
16
- const { isFirstKey } = useDescriptorDerivations();
12
+ const routeKey = useDescriptorsStore(
13
+ (store) => store.derivations.currentScreenKey,
14
+ );
15
+ const isFirstKey = useDescriptorsStore(
16
+ (store) => store.derivations.isFirstKey,
17
+ );
18
+ const experimental_animateOnInitialMount = useDescriptorsStore(
19
+ (store) => store.options.experimental_animateOnInitialMount,
20
+ );
17
21
  const { height: screenHeight } = useWindowDimensions();
18
- const routeKey = current.route.key;
19
22
  const animations = AnimationStore.getBag(routeKey);
20
23
  const system = SystemStore.getBag(routeKey);
21
24
 
@@ -23,9 +26,6 @@ export function useContentLayout() {
23
26
  system;
24
27
  const { requestLifecycleTransition } = system.actions;
25
28
 
26
- const experimental_animateOnInitialMount =
27
- current.options.experimental_animateOnInitialMount;
28
-
29
29
  return useCallback(
30
30
  (event: LayoutChangeEvent) => {
31
31
  const { width, height } = event.nativeEvent.layout;
@@ -3,7 +3,7 @@ import { Pressable, StyleSheet } from "react-native";
3
3
  import Animated, { runOnUI } from "react-native-reanimated";
4
4
  import { DefaultSnapSpec } from "../../../configs/specs";
5
5
  import { useNavigationHelpers } from "../../../hooks/navigation/use-navigation-helpers";
6
- import { useDescriptors } from "../../../providers/screen/descriptors";
6
+ import { useDescriptorsStore } from "../../../providers/screen/descriptors";
7
7
  import { useSlotProps, useSlotStyles } from "../../../providers/screen/styles";
8
8
  import { AnimationStore } from "../../../stores/animation.store";
9
9
  import { GestureStore } from "../../../stores/gesture.store";
@@ -23,11 +23,23 @@ export const BackdropLayer = memo(function BackdropLayer({
23
23
  backdropBehavior: BackdropBehavior;
24
24
  isBackdropActive: boolean;
25
25
  }) {
26
- const { current } = useDescriptors();
27
26
  const { dismissScreen } = useNavigationHelpers();
28
27
 
29
- const BackdropComponent = current.options.backdropComponent;
30
- const routeKey = current.route.key;
28
+ const routeKey = useDescriptorsStore(
29
+ (store) => store.derivations.currentScreenKey,
30
+ );
31
+ const BackdropComponent = useDescriptorsStore(
32
+ (store) => store.options.backdropComponent,
33
+ );
34
+ const rawSnapPoints = useDescriptorsStore(
35
+ (store) => store.options.snapPoints,
36
+ );
37
+ const canDismiss = useDescriptorsStore(
38
+ (store) => store.options.gestureEnabled !== false,
39
+ );
40
+ const transitionSpec = useDescriptorsStore(
41
+ (store) => store.options.transitionSpec,
42
+ );
31
43
  const animations = AnimationStore.getBag(routeKey);
32
44
  const { targetProgress, animationProgress, resolvedAutoSnapPoint } =
33
45
  SystemStore.getBag(routeKey);
@@ -49,9 +61,6 @@ export const BackdropLayer = memo(function BackdropLayer({
49
61
  }
50
62
 
51
63
  if (backdropBehavior === "collapse") {
52
- const rawSnapPoints = current.options.snapPoints;
53
- const canDismiss = current.options.gestureEnabled !== false;
54
-
55
64
  // No snap points → fallback to dismiss
56
65
  if (!rawSnapPoints || rawSnapPoints.length === 0) {
57
66
  dismissScreen();
@@ -59,7 +68,6 @@ export const BackdropLayer = memo(function BackdropLayer({
59
68
  }
60
69
 
61
70
  const gestures = GestureStore.getBag(routeKey);
62
- const transitionSpec = current.options.transitionSpec;
63
71
 
64
72
  runOnUI(() => {
65
73
  "worklet";
@@ -95,6 +103,7 @@ export const BackdropLayer = memo(function BackdropLayer({
95
103
 
96
104
  animateToProgress({
97
105
  target,
106
+ markEntering: false,
98
107
  spec,
99
108
  animations,
100
109
  targetProgress,
@@ -109,7 +118,9 @@ export const BackdropLayer = memo(function BackdropLayer({
109
118
  animationProgress,
110
119
  resolvedAutoSnapPoint,
111
120
  backdropBehavior,
112
- current,
121
+ rawSnapPoints,
122
+ canDismiss,
123
+ transitionSpec,
113
124
  dismissScreen,
114
125
  routeKey,
115
126
  ]);
@@ -3,9 +3,8 @@ import { type ComponentType, memo, useMemo } from "react";
3
3
  import { StyleSheet, View } from "react-native";
4
4
  import { GestureDetector } from "react-native-gesture-handler";
5
5
  import Animated from "react-native-reanimated";
6
- import { useDescriptors } from "../../../providers/screen/descriptors";
7
- import { useGestureContext } from "../../../providers/screen/gestures";
8
- import { OriginProvider } from "../../../providers/screen/origin.provider";
6
+ import { useDescriptorsStore } from "../../../providers/screen/descriptors";
7
+ import { useGestureStore } from "../../../providers/screen/gestures";
9
8
  import { useSlotProps, useSlotStyles } from "../../../providers/screen/styles";
10
9
  import type { ScreenContentComponentProps } from "../../../types";
11
10
  import { ScreenFallbackHost } from "../../boundary/portal/components/boundary-portal/components/host";
@@ -22,11 +21,16 @@ type Props = {
22
21
 
23
22
  export const ContentLayer = memo(
24
23
  ({ children, pointerEvents, isBackdropActive }: Props) => {
25
- const { current } = useDescriptors();
26
-
27
- const gestureContext = useGestureContext();
28
- const ContentComponent = current.options.contentComponent;
29
- const isNavigationMaskEnabled = !!current.options.navigationMaskEnabled;
24
+ const gestureContext = useGestureStore();
25
+ const ContentComponent = useDescriptorsStore(
26
+ (store) => store.options.contentComponent,
27
+ );
28
+ const isNavigationMaskEnabled = useDescriptorsStore(
29
+ (store) => !!store.options.navigationMaskEnabled,
30
+ );
31
+ const hasAutoSnapPoint = useDescriptorsStore(
32
+ (store) => store.options.snapPoints?.includes("auto") ?? false,
33
+ );
30
34
  const contentPointerEvents = isBackdropActive ? "box-none" : pointerEvents;
31
35
 
32
36
  const AnimatedContentComponent = useMemo(() => {
@@ -37,9 +41,6 @@ export const ContentLayer = memo(
37
41
  : null;
38
42
  }, [ContentComponent]);
39
43
 
40
- const hasAutoSnapPoint =
41
- current.options.snapPoints?.includes("auto") ?? false;
42
-
43
44
  const handleContentLayout = useContentLayout();
44
45
 
45
46
  const animatedContentStyle = useSlotStyles("content");
@@ -57,16 +58,14 @@ export const ContentLayer = memo(
57
58
  enabled={isNavigationMaskEnabled}
58
59
  >
59
60
  <SurfaceContainer pointerEvents={contentPointerEvents}>
60
- <OriginProvider>
61
- {hasAutoSnapPoint ? (
62
- <View collapsable={false} onLayout={handleContentLayout}>
63
- {children}
64
- </View>
65
- ) : (
66
- children
67
- )}
68
- <ScreenFallbackHost />
69
- </OriginProvider>
61
+ {hasAutoSnapPoint ? (
62
+ <View collapsable={false} onLayout={handleContentLayout}>
63
+ {children}
64
+ </View>
65
+ ) : (
66
+ children
67
+ )}
68
+ <ScreenFallbackHost />
70
69
  </SurfaceContainer>
71
70
  </MaybeMaskedNavigationContainer>
72
71
  );
@@ -1,7 +1,7 @@
1
1
  import { type ComponentType, memo, useMemo } from "react";
2
2
  import { StyleSheet, type ViewProps } from "react-native";
3
3
  import Animated from "react-native-reanimated";
4
- import { useDescriptors } from "../../../providers/screen/descriptors";
4
+ import { useDescriptorsStore } from "../../../providers/screen/descriptors";
5
5
  import { useSlotProps, useSlotStyles } from "../../../providers/screen/styles";
6
6
 
7
7
  type Props = {
@@ -10,10 +10,10 @@ type Props = {
10
10
  };
11
11
 
12
12
  export const SurfaceContainer = memo(({ children, pointerEvents }: Props) => {
13
- const { current } = useDescriptors();
14
-
15
13
  /** @deprecated Use `contentComponent` instead. */
16
- const DeprecatedSurfaceComponent = current.options.surfaceComponent;
14
+ const DeprecatedSurfaceComponent = useDescriptorsStore(
15
+ (store) => store.options.surfaceComponent,
16
+ );
17
17
 
18
18
  const AnimatedSurfaceComponent = useMemo<ComponentType<any> | null>(() => {
19
19
  return DeprecatedSurfaceComponent