react-native-screen-transitions 4.0.0-alpha.9 → 4.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (586) hide show
  1. package/README.md +5 -10
  2. package/lib/commonjs/adapters/with-screen-transitions/stack-layout.js +1 -3
  3. package/lib/commonjs/adapters/with-screen-transitions/stack-layout.js.map +1 -1
  4. package/lib/commonjs/components/blank-stack-host.js +21 -0
  5. package/lib/commonjs/components/blank-stack-host.js.map +1 -0
  6. package/lib/commonjs/components/blank-stack-runtime.js +33 -0
  7. package/lib/commonjs/components/blank-stack-runtime.js.map +1 -0
  8. package/lib/commonjs/components/blank-stack-scene.js +31 -0
  9. package/lib/commonjs/components/blank-stack-scene.js.map +1 -0
  10. package/lib/commonjs/components/blank-stack-view.js +23 -0
  11. package/lib/commonjs/components/blank-stack-view.js.map +1 -0
  12. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +53 -1
  13. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -1
  14. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +43 -8
  15. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  16. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +2 -3
  17. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  18. package/lib/commonjs/components/boundary/utils/source-signals.js +6 -4
  19. package/lib/commonjs/components/boundary/utils/source-signals.js.map +1 -1
  20. package/lib/commonjs/components/overlay/helpers/get-active-overlay.js +3 -24
  21. package/lib/commonjs/components/overlay/helpers/get-active-overlay.js.map +1 -1
  22. package/lib/commonjs/components/overlay/helpers/retain-ready-overlay-resources.js +4 -3
  23. package/lib/commonjs/components/overlay/helpers/retain-ready-overlay-resources.js.map +1 -1
  24. package/lib/commonjs/components/overlay/helpers/run-overlay-slot-interpolator.js +2 -4
  25. package/lib/commonjs/components/overlay/helpers/run-overlay-slot-interpolator.js.map +1 -1
  26. package/lib/commonjs/components/overlay/hooks/use-overlay-slot.js +2 -18
  27. package/lib/commonjs/components/overlay/hooks/use-overlay-slot.js.map +1 -1
  28. package/lib/commonjs/components/overlay/variations/float-overlay.js +0 -2
  29. package/lib/commonjs/components/overlay/variations/float-overlay.js.map +1 -1
  30. package/lib/commonjs/components/overlay/variations/overlay-host.js +18 -16
  31. package/lib/commonjs/components/overlay/variations/overlay-host.js.map +1 -1
  32. package/lib/commonjs/components/screen-container/layers/content.js +10 -5
  33. package/lib/commonjs/components/screen-container/layers/content.js.map +1 -1
  34. package/lib/commonjs/components/screen-container/layers/surface.js +50 -0
  35. package/lib/commonjs/components/screen-container/layers/surface.js.map +1 -0
  36. package/lib/commonjs/components/screen-lifecycle/index.js +2 -2
  37. package/lib/commonjs/components/screen-lifecycle/index.js.map +1 -1
  38. package/lib/commonjs/components/stack-view.js +7 -29
  39. package/lib/commonjs/components/stack-view.js.map +1 -1
  40. package/lib/commonjs/configs/index.js +1 -4
  41. package/lib/commonjs/configs/index.js.map +1 -1
  42. package/lib/commonjs/configs/presets.js +1 -384
  43. package/lib/commonjs/configs/presets.js.map +1 -1
  44. package/lib/commonjs/custom-navigator.js +41 -0
  45. package/lib/commonjs/custom-navigator.js.map +1 -0
  46. package/lib/commonjs/hooks/navigation/use-blank-stack-state.js +26 -0
  47. package/lib/commonjs/hooks/navigation/use-blank-stack-state.js.map +1 -0
  48. package/lib/commonjs/hooks/navigation/use-navigation-helpers.js +2 -2
  49. package/lib/commonjs/hooks/navigation/use-navigation-helpers.js.map +1 -1
  50. package/lib/commonjs/hooks/navigation/use-screen-state.js +1 -1
  51. package/lib/commonjs/hooks/navigation/use-screen-state.js.map +1 -1
  52. package/lib/commonjs/navigators/create-blank-stack-navigator.js +7 -67
  53. package/lib/commonjs/navigators/create-blank-stack-navigator.js.map +1 -1
  54. package/lib/commonjs/navigators/expo-router/index.js +1 -18
  55. package/lib/commonjs/navigators/expo-router/index.js.map +1 -1
  56. package/lib/commonjs/navigators/react-navigation/index.js +1 -3
  57. package/lib/commonjs/navigators/react-navigation/index.js.map +1 -1
  58. package/lib/commonjs/providers/screen/animation/animation.provider.js +17 -25
  59. package/lib/commonjs/providers/screen/animation/animation.provider.js.map +1 -1
  60. package/lib/commonjs/providers/screen/animation/helpers/pipeline.js +19 -36
  61. package/lib/commonjs/providers/screen/animation/helpers/pipeline.js.map +1 -1
  62. package/lib/commonjs/providers/screen/animation/use-screen-animation.js +16 -19
  63. package/lib/commonjs/providers/screen/animation/use-screen-animation.js.map +1 -1
  64. package/lib/commonjs/providers/screen/descriptors/descriptors.provider.js +31 -64
  65. package/lib/commonjs/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  66. package/lib/commonjs/providers/screen/descriptors/index.js +6 -0
  67. package/lib/commonjs/providers/screen/descriptors/index.js.map +1 -1
  68. package/lib/commonjs/providers/screen/gestures/gestures.provider.js +14 -25
  69. package/lib/commonjs/providers/screen/gestures/gestures.provider.js.map +1 -1
  70. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture-config.js +3 -4
  71. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
  72. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture.js +6 -7
  73. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture.js.map +1 -1
  74. package/lib/commonjs/providers/screen/gestures/ownership/gesture-ownership-coordinator.js +149 -0
  75. package/lib/commonjs/providers/screen/gestures/ownership/gesture-ownership-coordinator.js.map +1 -0
  76. package/lib/commonjs/providers/screen/gestures/ownership/use-gesture-scroll-coordination.js +15 -0
  77. package/lib/commonjs/providers/screen/gestures/ownership/use-gesture-scroll-coordination.js.map +1 -0
  78. package/lib/commonjs/providers/screen/gestures/ownership/use-register-gesture-ownership.js +52 -0
  79. package/lib/commonjs/providers/screen/gestures/ownership/use-register-gesture-ownership.js.map +1 -0
  80. package/lib/commonjs/providers/screen/gestures/pan/activation/pan-activation-decision.js +4 -9
  81. package/lib/commonjs/providers/screen/gestures/pan/activation/pan-activation-decision.js.map +1 -1
  82. package/lib/commonjs/providers/screen/gestures/pan/activation/use-pan-activation.js +3 -3
  83. package/lib/commonjs/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
  84. package/lib/commonjs/providers/screen/gestures/pan/use-build-pan-gesture.js +2 -2
  85. package/lib/commonjs/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
  86. package/lib/commonjs/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +13 -11
  87. package/lib/commonjs/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
  88. package/lib/commonjs/providers/screen/gestures/shared/policy.js +4 -9
  89. package/lib/commonjs/providers/screen/gestures/shared/policy.js.map +1 -1
  90. package/lib/commonjs/providers/screen/gestures/types.js +2 -2
  91. package/lib/commonjs/providers/screen/gestures/types.js.map +1 -1
  92. package/lib/commonjs/providers/screen/screen-composer.js +10 -13
  93. package/lib/commonjs/providers/screen/screen-composer.js.map +1 -1
  94. package/lib/commonjs/providers/screen/styles/constants.js +4 -0
  95. package/lib/commonjs/providers/screen/styles/constants.js.map +1 -1
  96. package/lib/commonjs/providers/screen/styles/helpers/create-interpolator-scope.js +3 -15
  97. package/lib/commonjs/providers/screen/styles/helpers/create-interpolator-scope.js.map +1 -1
  98. package/lib/commonjs/providers/screen/styles/hooks/slot-resolvers.js +1 -9
  99. package/lib/commonjs/providers/screen/styles/hooks/slot-resolvers.js.map +1 -1
  100. package/lib/commonjs/providers/screen/styles/hooks/use-interpolated-style-maps.js +4 -25
  101. package/lib/commonjs/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  102. package/lib/commonjs/providers/screen/styles/slot.provider.js +3 -1
  103. package/lib/commonjs/providers/screen/styles/slot.provider.js.map +1 -1
  104. package/lib/commonjs/providers/screen/topology/helpers/create-screen-topology.js +176 -0
  105. package/lib/commonjs/providers/screen/topology/helpers/create-screen-topology.js.map +1 -0
  106. package/lib/commonjs/providers/screen/topology/hooks/use-resolved-transition-key.js +17 -0
  107. package/lib/commonjs/providers/screen/topology/hooks/use-resolved-transition-key.js.map +1 -0
  108. package/lib/commonjs/{factories/screen-topology → providers/screen/topology/hooks}/use-screen-relationships.js +1 -1
  109. package/lib/commonjs/providers/screen/topology/hooks/use-screen-relationships.js.map +1 -0
  110. package/lib/commonjs/{factories/screen-topology → providers/screen/topology}/index.js +16 -15
  111. package/lib/commonjs/providers/screen/topology/index.js.map +1 -0
  112. package/lib/commonjs/providers/screen/topology/topology.provider.js +56 -0
  113. package/lib/commonjs/providers/screen/topology/topology.provider.js.map +1 -0
  114. package/lib/commonjs/providers/screen/topology/types.js.map +1 -0
  115. package/lib/commonjs/providers/screen/use-current-screen-relationships.js +2 -2
  116. package/lib/commonjs/providers/screen/use-current-screen-relationships.js.map +1 -1
  117. package/lib/commonjs/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js +10 -4
  118. package/lib/commonjs/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js.map +1 -1
  119. package/lib/commonjs/providers/stack/blank-stack-state/helpers/derive-blank-stack-state.js +4 -3
  120. package/lib/commonjs/providers/stack/blank-stack-state/helpers/derive-blank-stack-state.js.map +1 -1
  121. package/lib/commonjs/providers/stack/blank-stack-state/helpers/reconcile-blank-stack-routes.js.map +1 -1
  122. package/lib/commonjs/providers/stack/blank-stack-state/helpers/state-equality.js +9 -2
  123. package/lib/commonjs/providers/stack/blank-stack-state/helpers/state-equality.js.map +1 -1
  124. package/lib/commonjs/providers/stack/stack-transition/index.js +20 -0
  125. package/lib/commonjs/providers/stack/stack-transition/index.js.map +1 -0
  126. package/lib/commonjs/providers/stack/stack-transition/stack-transition-controller.js +197 -0
  127. package/lib/commonjs/providers/stack/stack-transition/stack-transition-controller.js.map +1 -0
  128. package/lib/commonjs/providers/stack/stack-transition/stack-transition.provider.js +92 -0
  129. package/lib/commonjs/providers/stack/stack-transition/stack-transition.provider.js.map +1 -0
  130. package/lib/commonjs/providers/stack/stack-transition/use-stack-transition.js +46 -0
  131. package/lib/commonjs/providers/stack/stack-transition/use-stack-transition.js.map +1 -0
  132. package/lib/commonjs/types/ownership.types.js +2 -25
  133. package/lib/commonjs/types/ownership.types.js.map +1 -1
  134. package/lib/commonjs/utils/create-provider.js +14 -3
  135. package/lib/commonjs/utils/create-provider.js.map +1 -1
  136. package/lib/module/adapters/with-screen-transitions/stack-layout.js +1 -3
  137. package/lib/module/adapters/with-screen-transitions/stack-layout.js.map +1 -1
  138. package/lib/module/components/blank-stack-host.js +17 -0
  139. package/lib/module/components/blank-stack-host.js.map +1 -0
  140. package/lib/module/components/blank-stack-runtime.js +29 -0
  141. package/lib/module/components/blank-stack-runtime.js.map +1 -0
  142. package/lib/module/components/blank-stack-scene.js +27 -0
  143. package/lib/module/components/blank-stack-scene.js.map +1 -0
  144. package/lib/module/components/blank-stack-view.js +19 -0
  145. package/lib/module/components/blank-stack-view.js.map +1 -0
  146. package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +50 -0
  147. package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -1
  148. package/lib/module/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +44 -9
  149. package/lib/module/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  150. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +2 -3
  151. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  152. package/lib/module/components/boundary/utils/source-signals.js +6 -4
  153. package/lib/module/components/boundary/utils/source-signals.js.map +1 -1
  154. package/lib/module/components/overlay/helpers/get-active-overlay.js +3 -24
  155. package/lib/module/components/overlay/helpers/get-active-overlay.js.map +1 -1
  156. package/lib/module/components/overlay/helpers/retain-ready-overlay-resources.js +4 -3
  157. package/lib/module/components/overlay/helpers/retain-ready-overlay-resources.js.map +1 -1
  158. package/lib/module/components/overlay/helpers/run-overlay-slot-interpolator.js +2 -4
  159. package/lib/module/components/overlay/helpers/run-overlay-slot-interpolator.js.map +1 -1
  160. package/lib/module/components/overlay/hooks/use-overlay-slot.js +2 -18
  161. package/lib/module/components/overlay/hooks/use-overlay-slot.js.map +1 -1
  162. package/lib/module/components/overlay/variations/float-overlay.js +0 -2
  163. package/lib/module/components/overlay/variations/float-overlay.js.map +1 -1
  164. package/lib/module/components/overlay/variations/overlay-host.js +19 -17
  165. package/lib/module/components/overlay/variations/overlay-host.js.map +1 -1
  166. package/lib/module/components/screen-container/layers/content.js +10 -5
  167. package/lib/module/components/screen-container/layers/content.js.map +1 -1
  168. package/lib/module/components/screen-container/layers/surface.js +45 -0
  169. package/lib/module/components/screen-container/layers/surface.js.map +1 -0
  170. package/lib/module/components/screen-lifecycle/index.js +2 -2
  171. package/lib/module/components/screen-lifecycle/index.js.map +1 -1
  172. package/lib/module/components/stack-view.js +7 -29
  173. package/lib/module/components/stack-view.js.map +1 -1
  174. package/lib/module/configs/index.js +2 -5
  175. package/lib/module/configs/index.js.map +1 -1
  176. package/lib/module/configs/presets.js +0 -380
  177. package/lib/module/configs/presets.js.map +1 -1
  178. package/lib/module/custom-navigator.js +8 -0
  179. package/lib/module/custom-navigator.js.map +1 -0
  180. package/lib/module/hooks/navigation/use-blank-stack-state.js +21 -0
  181. package/lib/module/hooks/navigation/use-blank-stack-state.js.map +1 -0
  182. package/lib/module/hooks/navigation/use-navigation-helpers.js +2 -2
  183. package/lib/module/hooks/navigation/use-navigation-helpers.js.map +1 -1
  184. package/lib/module/hooks/navigation/use-screen-state.js +1 -1
  185. package/lib/module/hooks/navigation/use-screen-state.js.map +1 -1
  186. package/lib/module/navigators/create-blank-stack-navigator.js +7 -66
  187. package/lib/module/navigators/create-blank-stack-navigator.js.map +1 -1
  188. package/lib/module/navigators/expo-router/index.js +1 -18
  189. package/lib/module/navigators/expo-router/index.js.map +1 -1
  190. package/lib/module/navigators/react-navigation/index.js +1 -3
  191. package/lib/module/navigators/react-navigation/index.js.map +1 -1
  192. package/lib/module/providers/screen/animation/animation.provider.js +15 -24
  193. package/lib/module/providers/screen/animation/animation.provider.js.map +1 -1
  194. package/lib/module/providers/screen/animation/helpers/pipeline.js +19 -36
  195. package/lib/module/providers/screen/animation/helpers/pipeline.js.map +1 -1
  196. package/lib/module/providers/screen/animation/use-screen-animation.js +17 -20
  197. package/lib/module/providers/screen/animation/use-screen-animation.js.map +1 -1
  198. package/lib/module/providers/screen/descriptors/descriptors.provider.js +31 -66
  199. package/lib/module/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  200. package/lib/module/providers/screen/descriptors/index.js +1 -1
  201. package/lib/module/providers/screen/descriptors/index.js.map +1 -1
  202. package/lib/module/providers/screen/gestures/gestures.provider.js +16 -27
  203. package/lib/module/providers/screen/gestures/gestures.provider.js.map +1 -1
  204. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture-config.js +3 -4
  205. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
  206. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture.js +6 -7
  207. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture.js.map +1 -1
  208. package/lib/module/providers/screen/gestures/ownership/gesture-ownership-coordinator.js +144 -0
  209. package/lib/module/providers/screen/gestures/ownership/gesture-ownership-coordinator.js.map +1 -0
  210. package/lib/module/providers/screen/gestures/ownership/use-gesture-scroll-coordination.js +10 -0
  211. package/lib/module/providers/screen/gestures/ownership/use-gesture-scroll-coordination.js.map +1 -0
  212. package/lib/module/providers/screen/gestures/ownership/use-register-gesture-ownership.js +47 -0
  213. package/lib/module/providers/screen/gestures/ownership/use-register-gesture-ownership.js.map +1 -0
  214. package/lib/module/providers/screen/gestures/pan/activation/pan-activation-decision.js +4 -9
  215. package/lib/module/providers/screen/gestures/pan/activation/pan-activation-decision.js.map +1 -1
  216. package/lib/module/providers/screen/gestures/pan/activation/use-pan-activation.js +3 -3
  217. package/lib/module/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
  218. package/lib/module/providers/screen/gestures/pan/use-build-pan-gesture.js +2 -2
  219. package/lib/module/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
  220. package/lib/module/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +13 -11
  221. package/lib/module/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
  222. package/lib/module/providers/screen/gestures/shared/policy.js +4 -9
  223. package/lib/module/providers/screen/gestures/shared/policy.js.map +1 -1
  224. package/lib/module/providers/screen/gestures/types.js +1 -1
  225. package/lib/module/providers/screen/gestures/types.js.map +1 -1
  226. package/lib/module/providers/screen/screen-composer.js +10 -13
  227. package/lib/module/providers/screen/screen-composer.js.map +1 -1
  228. package/lib/module/providers/screen/styles/constants.js +4 -0
  229. package/lib/module/providers/screen/styles/constants.js.map +1 -1
  230. package/lib/module/providers/screen/styles/helpers/create-interpolator-scope.js +3 -15
  231. package/lib/module/providers/screen/styles/helpers/create-interpolator-scope.js.map +1 -1
  232. package/lib/module/providers/screen/styles/hooks/slot-resolvers.js +2 -10
  233. package/lib/module/providers/screen/styles/hooks/slot-resolvers.js.map +1 -1
  234. package/lib/module/providers/screen/styles/hooks/use-interpolated-style-maps.js +4 -25
  235. package/lib/module/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  236. package/lib/module/providers/screen/styles/slot.provider.js +1 -0
  237. package/lib/module/providers/screen/styles/slot.provider.js.map +1 -1
  238. package/lib/module/providers/screen/topology/helpers/create-screen-topology.js +171 -0
  239. package/lib/module/providers/screen/topology/helpers/create-screen-topology.js.map +1 -0
  240. package/lib/module/providers/screen/topology/hooks/use-resolved-transition-key.js +12 -0
  241. package/lib/module/providers/screen/topology/hooks/use-resolved-transition-key.js.map +1 -0
  242. package/lib/module/{factories/screen-topology → providers/screen/topology/hooks}/use-screen-relationships.js +1 -1
  243. package/lib/module/providers/screen/topology/hooks/use-screen-relationships.js.map +1 -0
  244. package/lib/module/providers/screen/topology/index.js +7 -0
  245. package/lib/module/providers/screen/topology/index.js.map +1 -0
  246. package/lib/module/providers/screen/topology/topology.provider.js +50 -0
  247. package/lib/module/providers/screen/topology/topology.provider.js.map +1 -0
  248. package/lib/module/providers/screen/topology/types.js.map +1 -0
  249. package/lib/module/providers/screen/use-current-screen-relationships.js +1 -1
  250. package/lib/module/providers/screen/use-current-screen-relationships.js.map +1 -1
  251. package/lib/module/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js +11 -5
  252. package/lib/module/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js.map +1 -1
  253. package/lib/module/providers/stack/blank-stack-state/helpers/derive-blank-stack-state.js +5 -4
  254. package/lib/module/providers/stack/blank-stack-state/helpers/derive-blank-stack-state.js.map +1 -1
  255. package/lib/module/providers/stack/blank-stack-state/helpers/reconcile-blank-stack-routes.js.map +1 -1
  256. package/lib/module/providers/stack/blank-stack-state/helpers/state-equality.js +7 -1
  257. package/lib/module/providers/stack/blank-stack-state/helpers/state-equality.js.map +1 -1
  258. package/lib/module/providers/stack/stack-transition/index.js +5 -0
  259. package/lib/module/providers/stack/stack-transition/index.js.map +1 -0
  260. package/lib/module/providers/stack/stack-transition/stack-transition-controller.js +189 -0
  261. package/lib/module/providers/stack/stack-transition/stack-transition-controller.js.map +1 -0
  262. package/lib/module/providers/stack/stack-transition/stack-transition.provider.js +85 -0
  263. package/lib/module/providers/stack/stack-transition/stack-transition.provider.js.map +1 -0
  264. package/lib/module/providers/stack/stack-transition/use-stack-transition.js +41 -0
  265. package/lib/module/providers/stack/stack-transition/use-stack-transition.js.map +1 -0
  266. package/lib/module/types/animation.types.js +10 -0
  267. package/lib/module/types/animation.types.js.map +1 -1
  268. package/lib/module/types/ownership.types.js +1 -24
  269. package/lib/module/types/ownership.types.js.map +1 -1
  270. package/lib/module/utils/create-provider.js +14 -3
  271. package/lib/module/utils/create-provider.js.map +1 -1
  272. package/lib/typescript/adapters/with-screen-transitions/stack-layout.d.ts.map +1 -1
  273. package/lib/typescript/components/blank-stack-host.d.ts +9 -0
  274. package/lib/typescript/components/blank-stack-host.d.ts.map +1 -0
  275. package/lib/typescript/components/blank-stack-runtime.d.ts +8 -0
  276. package/lib/typescript/components/blank-stack-runtime.d.ts.map +1 -0
  277. package/lib/typescript/components/blank-stack-scene.d.ts +5 -0
  278. package/lib/typescript/components/blank-stack-scene.d.ts.map +1 -0
  279. package/lib/typescript/components/blank-stack-view.d.ts +2 -0
  280. package/lib/typescript/components/blank-stack-view.d.ts.map +1 -0
  281. package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts +20 -1
  282. package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts.map +1 -1
  283. package/lib/typescript/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts.map +1 -1
  284. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -1
  285. package/lib/typescript/components/boundary/utils/source-signals.d.ts.map +1 -1
  286. package/lib/typescript/components/overlay/helpers/get-active-overlay.d.ts +2 -8
  287. package/lib/typescript/components/overlay/helpers/get-active-overlay.d.ts.map +1 -1
  288. package/lib/typescript/components/overlay/helpers/retain-ready-overlay-resources.d.ts +2 -1
  289. package/lib/typescript/components/overlay/helpers/retain-ready-overlay-resources.d.ts.map +1 -1
  290. package/lib/typescript/components/overlay/helpers/run-overlay-slot-interpolator.d.ts +2 -3
  291. package/lib/typescript/components/overlay/helpers/run-overlay-slot-interpolator.d.ts.map +1 -1
  292. package/lib/typescript/components/overlay/hooks/use-overlay-slot.d.ts.map +1 -1
  293. package/lib/typescript/components/overlay/variations/float-overlay.d.ts.map +1 -1
  294. package/lib/typescript/components/overlay/variations/overlay-host.d.ts +2 -3
  295. package/lib/typescript/components/overlay/variations/overlay-host.d.ts.map +1 -1
  296. package/lib/typescript/components/screen-container/layers/content.d.ts.map +1 -1
  297. package/lib/typescript/components/screen-container/layers/surface.d.ts +7 -0
  298. package/lib/typescript/components/screen-container/layers/surface.d.ts.map +1 -0
  299. package/lib/typescript/components/stack-view.d.ts +1 -1
  300. package/lib/typescript/components/stack-view.d.ts.map +1 -1
  301. package/lib/typescript/configs/index.d.ts +0 -9
  302. package/lib/typescript/configs/index.d.ts.map +1 -1
  303. package/lib/typescript/configs/presets.d.ts +0 -9
  304. package/lib/typescript/configs/presets.d.ts.map +1 -1
  305. package/lib/typescript/custom-navigator.d.ts +8 -0
  306. package/lib/typescript/custom-navigator.d.ts.map +1 -0
  307. package/lib/typescript/hooks/navigation/use-blank-stack-state.d.ts +8 -0
  308. package/lib/typescript/hooks/navigation/use-blank-stack-state.d.ts.map +1 -0
  309. package/lib/typescript/hooks/navigation/use-navigation-helpers.d.ts.map +1 -1
  310. package/lib/typescript/index.d.ts +1 -10
  311. package/lib/typescript/index.d.ts.map +1 -1
  312. package/lib/typescript/navigators/create-blank-stack-navigator.d.ts +2 -4
  313. package/lib/typescript/navigators/create-blank-stack-navigator.d.ts.map +1 -1
  314. package/lib/typescript/navigators/expo-router/index.d.ts +3 -3
  315. package/lib/typescript/navigators/expo-router/index.d.ts.map +1 -1
  316. package/lib/typescript/navigators/react-navigation/index.d.ts +1 -1
  317. package/lib/typescript/navigators/react-navigation/index.d.ts.map +1 -1
  318. package/lib/typescript/providers/screen/animation/animation.provider.d.ts +12 -6
  319. package/lib/typescript/providers/screen/animation/animation.provider.d.ts.map +1 -1
  320. package/lib/typescript/providers/screen/animation/helpers/pipeline.d.ts +2 -4
  321. package/lib/typescript/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
  322. package/lib/typescript/providers/screen/animation/types.d.ts +0 -9
  323. package/lib/typescript/providers/screen/animation/types.d.ts.map +1 -1
  324. package/lib/typescript/providers/screen/animation/use-screen-animation.d.ts.map +1 -1
  325. package/lib/typescript/providers/screen/descriptors/descriptors.provider.d.ts +9 -11
  326. package/lib/typescript/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  327. package/lib/typescript/providers/screen/descriptors/index.d.ts +1 -1
  328. package/lib/typescript/providers/screen/descriptors/index.d.ts.map +1 -1
  329. package/lib/typescript/providers/screen/gestures/gestures.provider.d.ts +9 -12
  330. package/lib/typescript/providers/screen/gestures/gestures.provider.d.ts.map +1 -1
  331. package/lib/typescript/providers/screen/gestures/hooks/use-screen-gesture-config.d.ts +2 -2
  332. package/lib/typescript/providers/screen/gestures/hooks/use-screen-gesture-config.d.ts.map +1 -1
  333. package/lib/typescript/providers/screen/gestures/hooks/use-screen-gesture.d.ts +3 -2
  334. package/lib/typescript/providers/screen/gestures/hooks/use-screen-gesture.d.ts.map +1 -1
  335. package/lib/typescript/providers/screen/gestures/index.d.ts +1 -1
  336. package/lib/typescript/providers/screen/gestures/index.d.ts.map +1 -1
  337. package/lib/typescript/providers/screen/gestures/ownership/gesture-ownership-coordinator.d.ts +26 -0
  338. package/lib/typescript/providers/screen/gestures/ownership/gesture-ownership-coordinator.d.ts.map +1 -0
  339. package/lib/typescript/providers/screen/gestures/ownership/use-gesture-scroll-coordination.d.ts +3 -0
  340. package/lib/typescript/providers/screen/gestures/ownership/use-gesture-scroll-coordination.d.ts.map +1 -0
  341. package/lib/typescript/providers/screen/gestures/ownership/use-register-gesture-ownership.d.ts +9 -0
  342. package/lib/typescript/providers/screen/gestures/ownership/use-register-gesture-ownership.d.ts.map +1 -0
  343. package/lib/typescript/providers/screen/gestures/pan/activation/pan-activation-decision.d.ts +4 -4
  344. package/lib/typescript/providers/screen/gestures/pan/activation/pan-activation-decision.d.ts.map +1 -1
  345. package/lib/typescript/providers/screen/gestures/pan/activation/use-pan-activation.d.ts +3 -3
  346. package/lib/typescript/providers/screen/gestures/pan/activation/use-pan-activation.d.ts.map +1 -1
  347. package/lib/typescript/providers/screen/gestures/pan/use-build-pan-gesture.d.ts +3 -3
  348. package/lib/typescript/providers/screen/gestures/pan/use-build-pan-gesture.d.ts.map +1 -1
  349. package/lib/typescript/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.d.ts.map +1 -1
  350. package/lib/typescript/providers/screen/gestures/shared/policy.d.ts +2 -3
  351. package/lib/typescript/providers/screen/gestures/shared/policy.d.ts.map +1 -1
  352. package/lib/typescript/providers/screen/gestures/types.d.ts +4 -18
  353. package/lib/typescript/providers/screen/gestures/types.d.ts.map +1 -1
  354. package/lib/typescript/providers/screen/screen-composer.d.ts +2 -6
  355. package/lib/typescript/providers/screen/screen-composer.d.ts.map +1 -1
  356. package/lib/typescript/providers/screen/styles/constants.d.ts.map +1 -1
  357. package/lib/typescript/providers/screen/styles/helpers/create-interpolator-scope.d.ts +2 -3
  358. package/lib/typescript/providers/screen/styles/helpers/create-interpolator-scope.d.ts.map +1 -1
  359. package/lib/typescript/providers/screen/styles/hooks/slot-resolvers.d.ts.map +1 -1
  360. package/lib/typescript/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
  361. package/lib/typescript/providers/screen/styles/slot.provider.d.ts +11 -2
  362. package/lib/typescript/providers/screen/styles/slot.provider.d.ts.map +1 -1
  363. package/lib/typescript/{factories/screen-topology → providers/screen/topology/helpers}/create-screen-topology.d.ts +1 -1
  364. package/lib/typescript/providers/screen/topology/helpers/create-screen-topology.d.ts.map +1 -0
  365. package/lib/typescript/providers/screen/topology/hooks/use-resolved-transition-key.d.ts +3 -0
  366. package/lib/typescript/providers/screen/topology/hooks/use-resolved-transition-key.d.ts.map +1 -0
  367. package/lib/typescript/{factories/screen-topology → providers/screen/topology/hooks}/use-screen-relationships.d.ts +1 -0
  368. package/lib/typescript/providers/screen/topology/hooks/use-screen-relationships.d.ts.map +1 -0
  369. package/lib/typescript/providers/screen/topology/index.d.ts +6 -0
  370. package/lib/typescript/providers/screen/topology/index.d.ts.map +1 -0
  371. package/lib/typescript/providers/screen/topology/topology.provider.d.ts +13 -0
  372. package/lib/typescript/providers/screen/topology/topology.provider.d.ts.map +1 -0
  373. package/lib/typescript/{factories/screen-topology → providers/screen/topology}/types.d.ts +7 -1
  374. package/lib/typescript/providers/screen/topology/types.d.ts.map +1 -0
  375. package/lib/typescript/providers/screen/use-current-screen-relationships.d.ts +1 -0
  376. package/lib/typescript/providers/screen/use-current-screen-relationships.d.ts.map +1 -1
  377. package/lib/typescript/providers/stack/blank-stack-state/helpers/build-blank-stack-state.d.ts +3 -3
  378. package/lib/typescript/providers/stack/blank-stack-state/helpers/build-blank-stack-state.d.ts.map +1 -1
  379. package/lib/typescript/providers/stack/blank-stack-state/helpers/derive-blank-stack-state.d.ts.map +1 -1
  380. package/lib/typescript/providers/stack/blank-stack-state/helpers/reconcile-blank-stack-routes.d.ts +3 -2
  381. package/lib/typescript/providers/stack/blank-stack-state/helpers/reconcile-blank-stack-routes.d.ts.map +1 -1
  382. package/lib/typescript/providers/stack/blank-stack-state/helpers/state-equality.d.ts +4 -4
  383. package/lib/typescript/providers/stack/blank-stack-state/helpers/state-equality.d.ts.map +1 -1
  384. package/lib/typescript/providers/stack/blank-stack-state/helpers/types.d.ts +6 -5
  385. package/lib/typescript/providers/stack/blank-stack-state/helpers/types.d.ts.map +1 -1
  386. package/lib/typescript/providers/stack/blank-stack.provider.d.ts +3 -1
  387. package/lib/typescript/providers/stack/blank-stack.provider.d.ts.map +1 -1
  388. package/lib/typescript/providers/stack/stack-transition/index.d.ts +3 -0
  389. package/lib/typescript/providers/stack/stack-transition/index.d.ts.map +1 -0
  390. package/lib/typescript/providers/stack/stack-transition/stack-transition-controller.d.ts +48 -0
  391. package/lib/typescript/providers/stack/stack-transition/stack-transition-controller.d.ts.map +1 -0
  392. package/lib/typescript/providers/stack/stack-transition/stack-transition.provider.d.ts +14 -0
  393. package/lib/typescript/providers/stack/stack-transition/stack-transition.provider.d.ts.map +1 -0
  394. package/lib/typescript/providers/stack/stack-transition/use-stack-transition.d.ts +12 -0
  395. package/lib/typescript/providers/stack/stack-transition/use-stack-transition.d.ts.map +1 -0
  396. package/lib/typescript/types/animation.types.d.ts +16 -22
  397. package/lib/typescript/types/animation.types.d.ts.map +1 -1
  398. package/lib/typescript/types/blank-stack.types.d.ts +2 -23
  399. package/lib/typescript/types/blank-stack.types.d.ts.map +1 -1
  400. package/lib/typescript/types/bounds.types.d.ts +1 -1
  401. package/lib/typescript/types/bounds.types.d.ts.map +1 -1
  402. package/lib/typescript/types/index.d.ts +2 -2
  403. package/lib/typescript/types/index.d.ts.map +1 -1
  404. package/lib/typescript/types/ownership.types.d.ts +1 -18
  405. package/lib/typescript/types/ownership.types.d.ts.map +1 -1
  406. package/lib/typescript/types/providers/blank-stack-provider.types.d.ts +8 -6
  407. package/lib/typescript/types/providers/blank-stack-provider.types.d.ts.map +1 -1
  408. package/lib/typescript/types/screen.types.d.ts +40 -0
  409. package/lib/typescript/types/screen.types.d.ts.map +1 -1
  410. package/lib/typescript/utils/create-provider.d.ts +4 -1
  411. package/lib/typescript/utils/create-provider.d.ts.map +1 -1
  412. package/package.json +9 -8
  413. package/src/adapters/with-screen-transitions/stack-layout.tsx +1 -9
  414. package/src/components/blank-stack-host.tsx +21 -0
  415. package/src/components/blank-stack-runtime.tsx +37 -0
  416. package/src/components/blank-stack-scene.tsx +30 -0
  417. package/src/components/blank-stack-view.tsx +19 -0
  418. package/src/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.ts +89 -0
  419. package/src/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts +97 -14
  420. package/src/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +2 -6
  421. package/src/components/boundary/utils/source-signals.ts +6 -4
  422. package/src/components/overlay/helpers/get-active-overlay.ts +4 -36
  423. package/src/components/overlay/helpers/retain-ready-overlay-resources.ts +10 -1
  424. package/src/components/overlay/helpers/run-overlay-slot-interpolator.ts +0 -4
  425. package/src/components/overlay/hooks/use-overlay-slot.ts +1 -30
  426. package/src/components/overlay/variations/float-overlay.tsx +9 -12
  427. package/src/components/overlay/variations/overlay-host.tsx +24 -23
  428. package/src/components/screen-container/layers/content.tsx +12 -7
  429. package/src/components/screen-container/layers/surface.tsx +65 -0
  430. package/src/components/screen-lifecycle/index.tsx +2 -2
  431. package/src/components/stack-view.tsx +8 -39
  432. package/src/configs/index.ts +0 -6
  433. package/src/configs/presets.ts +0 -447
  434. package/src/custom-navigator.ts +25 -0
  435. package/src/hooks/navigation/use-blank-stack-state.ts +24 -0
  436. package/src/hooks/navigation/use-navigation-helpers.ts +4 -2
  437. package/src/hooks/navigation/use-screen-state.ts +1 -1
  438. package/src/index.ts +3 -2
  439. package/src/navigators/create-blank-stack-navigator.tsx +16 -124
  440. package/src/navigators/expo-router/index.tsx +0 -23
  441. package/src/navigators/react-navigation/index.tsx +0 -3
  442. package/src/providers/screen/animation/animation.provider.tsx +32 -66
  443. package/src/providers/screen/animation/helpers/pipeline.ts +14 -26
  444. package/src/providers/screen/animation/types.ts +0 -11
  445. package/src/providers/screen/animation/use-screen-animation.tsx +40 -20
  446. package/src/providers/screen/descriptors/descriptors.provider.tsx +43 -99
  447. package/src/providers/screen/descriptors/index.tsx +1 -0
  448. package/src/providers/screen/gestures/gestures.provider.tsx +14 -55
  449. package/src/providers/screen/gestures/hooks/use-screen-gesture-config.ts +3 -6
  450. package/src/providers/screen/gestures/hooks/use-screen-gesture.ts +13 -13
  451. package/src/providers/screen/gestures/index.tsx +0 -2
  452. package/src/providers/screen/gestures/ownership/gesture-ownership-coordinator.ts +252 -0
  453. package/src/providers/screen/gestures/ownership/use-gesture-scroll-coordination.ts +23 -0
  454. package/src/providers/screen/gestures/ownership/use-register-gesture-ownership.ts +73 -0
  455. package/src/providers/screen/gestures/pan/activation/pan-activation-decision.ts +6 -20
  456. package/src/providers/screen/gestures/pan/activation/use-pan-activation.ts +5 -5
  457. package/src/providers/screen/gestures/pan/use-build-pan-gesture.ts +4 -4
  458. package/src/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.ts +9 -12
  459. package/src/providers/screen/gestures/shared/policy.ts +0 -8
  460. package/src/providers/screen/gestures/types.ts +4 -19
  461. package/src/providers/screen/screen-composer.tsx +18 -29
  462. package/src/providers/screen/styles/constants.ts +2 -0
  463. package/src/providers/screen/styles/helpers/create-interpolator-scope.ts +2 -21
  464. package/src/providers/screen/styles/hooks/slot-resolvers.tsx +2 -17
  465. package/src/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +0 -29
  466. package/src/providers/screen/styles/slot.provider.tsx +2 -0
  467. package/src/{factories/screen-topology → providers/screen/topology/helpers}/create-screen-topology.ts +97 -53
  468. package/src/providers/screen/topology/hooks/use-resolved-transition-key.ts +29 -0
  469. package/src/{factories/screen-topology → providers/screen/topology/hooks}/use-screen-relationships.ts +1 -1
  470. package/src/providers/screen/topology/index.ts +16 -0
  471. package/src/providers/screen/topology/topology.provider.tsx +72 -0
  472. package/src/{factories/screen-topology → providers/screen/topology}/types.ts +7 -1
  473. package/src/providers/screen/use-current-screen-relationships.ts +1 -1
  474. package/src/providers/stack/blank-stack-state/helpers/build-blank-stack-state.ts +31 -12
  475. package/src/providers/stack/blank-stack-state/helpers/derive-blank-stack-state.ts +11 -3
  476. package/src/providers/stack/blank-stack-state/helpers/reconcile-blank-stack-routes.ts +2 -2
  477. package/src/providers/stack/blank-stack-state/helpers/state-equality.ts +25 -11
  478. package/src/providers/stack/blank-stack-state/helpers/types.ts +9 -4
  479. package/src/providers/stack/stack-transition/index.ts +5 -0
  480. package/src/providers/stack/stack-transition/stack-transition-controller.ts +341 -0
  481. package/src/providers/stack/stack-transition/stack-transition.provider.tsx +120 -0
  482. package/src/providers/stack/stack-transition/use-stack-transition.ts +77 -0
  483. package/src/types/animation.types.ts +16 -28
  484. package/src/types/blank-stack.types.ts +1 -29
  485. package/src/types/bounds.types.ts +1 -4
  486. package/src/types/index.ts +3 -2
  487. package/src/types/ownership.types.ts +1 -26
  488. package/src/types/providers/blank-stack-provider.types.ts +14 -11
  489. package/src/types/screen.types.ts +46 -0
  490. package/src/utils/create-provider.tsx +22 -4
  491. package/lib/commonjs/components/boundary/portal/utils/teleport-control.js +0 -16
  492. package/lib/commonjs/components/boundary/portal/utils/teleport-control.js.map +0 -1
  493. package/lib/commonjs/factories/screen-topology/create-screen-topology.js +0 -147
  494. package/lib/commonjs/factories/screen-topology/create-screen-topology.js.map +0 -1
  495. package/lib/commonjs/factories/screen-topology/index.js.map +0 -1
  496. package/lib/commonjs/factories/screen-topology/types.js.map +0 -1
  497. package/lib/commonjs/factories/screen-topology/use-screen-relationships.js.map +0 -1
  498. package/lib/commonjs/factories/screen-topology/worklet.js +0 -55
  499. package/lib/commonjs/factories/screen-topology/worklet.js.map +0 -1
  500. package/lib/commonjs/providers/navigation/navigation-host.provider.js +0 -56
  501. package/lib/commonjs/providers/navigation/navigation-host.provider.js.map +0 -1
  502. package/lib/commonjs/providers/navigation/react-navigation-host.js +0 -23
  503. package/lib/commonjs/providers/navigation/react-navigation-host.js.map +0 -1
  504. package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +0 -62
  505. package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +0 -1
  506. package/lib/commonjs/providers/screen/animation/helpers/read-screen-animation-revisions.js +0 -16
  507. package/lib/commonjs/providers/screen/animation/helpers/read-screen-animation-revisions.js.map +0 -1
  508. package/lib/commonjs/providers/screen/gestures/ownership/gesture-ownership-bridge.js +0 -128
  509. package/lib/commonjs/providers/screen/gestures/ownership/gesture-ownership-bridge.js.map +0 -1
  510. package/lib/commonjs/providers/screen/gestures/ownership/resolve-ownership.js +0 -71
  511. package/lib/commonjs/providers/screen/gestures/ownership/resolve-ownership.js.map +0 -1
  512. package/lib/commonjs/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.js +0 -54
  513. package/lib/commonjs/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.js.map +0 -1
  514. package/lib/commonjs/providers/screen/styles/helpers/collect-interpolator-shared-values.js +0 -50
  515. package/lib/commonjs/providers/screen/styles/helpers/collect-interpolator-shared-values.js.map +0 -1
  516. package/lib/commonjs/utils/resolve-chain-target.js +0 -29
  517. package/lib/commonjs/utils/resolve-chain-target.js.map +0 -1
  518. package/lib/module/components/boundary/portal/utils/teleport-control.js +0 -11
  519. package/lib/module/components/boundary/portal/utils/teleport-control.js.map +0 -1
  520. package/lib/module/factories/screen-topology/create-screen-topology.js +0 -142
  521. package/lib/module/factories/screen-topology/create-screen-topology.js.map +0 -1
  522. package/lib/module/factories/screen-topology/index.js +0 -6
  523. package/lib/module/factories/screen-topology/index.js.map +0 -1
  524. package/lib/module/factories/screen-topology/types.js.map +0 -1
  525. package/lib/module/factories/screen-topology/use-screen-relationships.js.map +0 -1
  526. package/lib/module/factories/screen-topology/worklet.js +0 -48
  527. package/lib/module/factories/screen-topology/worklet.js.map +0 -1
  528. package/lib/module/providers/navigation/navigation-host.provider.js +0 -50
  529. package/lib/module/providers/navigation/navigation-host.provider.js.map +0 -1
  530. package/lib/module/providers/navigation/react-navigation-host.js +0 -19
  531. package/lib/module/providers/navigation/react-navigation-host.js.map +0 -1
  532. package/lib/module/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +0 -56
  533. package/lib/module/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +0 -1
  534. package/lib/module/providers/screen/animation/helpers/read-screen-animation-revisions.js +0 -11
  535. package/lib/module/providers/screen/animation/helpers/read-screen-animation-revisions.js.map +0 -1
  536. package/lib/module/providers/screen/gestures/ownership/gesture-ownership-bridge.js +0 -124
  537. package/lib/module/providers/screen/gestures/ownership/gesture-ownership-bridge.js.map +0 -1
  538. package/lib/module/providers/screen/gestures/ownership/resolve-ownership.js +0 -67
  539. package/lib/module/providers/screen/gestures/ownership/resolve-ownership.js.map +0 -1
  540. package/lib/module/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.js +0 -50
  541. package/lib/module/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.js.map +0 -1
  542. package/lib/module/providers/screen/styles/helpers/collect-interpolator-shared-values.js +0 -45
  543. package/lib/module/providers/screen/styles/helpers/collect-interpolator-shared-values.js.map +0 -1
  544. package/lib/module/utils/resolve-chain-target.js +0 -25
  545. package/lib/module/utils/resolve-chain-target.js.map +0 -1
  546. package/lib/typescript/components/boundary/portal/utils/teleport-control.d.ts +0 -3
  547. package/lib/typescript/components/boundary/portal/utils/teleport-control.d.ts.map +0 -1
  548. package/lib/typescript/factories/screen-topology/create-screen-topology.d.ts.map +0 -1
  549. package/lib/typescript/factories/screen-topology/index.d.ts +0 -5
  550. package/lib/typescript/factories/screen-topology/index.d.ts.map +0 -1
  551. package/lib/typescript/factories/screen-topology/types.d.ts.map +0 -1
  552. package/lib/typescript/factories/screen-topology/use-screen-relationships.d.ts.map +0 -1
  553. package/lib/typescript/factories/screen-topology/worklet.d.ts +0 -5
  554. package/lib/typescript/factories/screen-topology/worklet.d.ts.map +0 -1
  555. package/lib/typescript/providers/navigation/navigation-host.provider.d.ts +0 -21
  556. package/lib/typescript/providers/navigation/navigation-host.provider.d.ts.map +0 -1
  557. package/lib/typescript/providers/navigation/react-navigation-host.d.ts +0 -3
  558. package/lib/typescript/providers/navigation/react-navigation-host.d.ts.map +0 -1
  559. package/lib/typescript/providers/screen/animation/helpers/accessors/use-build-transition-accessor.d.ts +0 -9
  560. package/lib/typescript/providers/screen/animation/helpers/accessors/use-build-transition-accessor.d.ts.map +0 -1
  561. package/lib/typescript/providers/screen/animation/helpers/read-screen-animation-revisions.d.ts +0 -6
  562. package/lib/typescript/providers/screen/animation/helpers/read-screen-animation-revisions.d.ts.map +0 -1
  563. package/lib/typescript/providers/screen/gestures/ownership/gesture-ownership-bridge.d.ts +0 -3
  564. package/lib/typescript/providers/screen/gestures/ownership/gesture-ownership-bridge.d.ts.map +0 -1
  565. package/lib/typescript/providers/screen/gestures/ownership/resolve-ownership.d.ts +0 -32
  566. package/lib/typescript/providers/screen/gestures/ownership/resolve-ownership.d.ts.map +0 -1
  567. package/lib/typescript/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.d.ts +0 -11
  568. package/lib/typescript/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.d.ts.map +0 -1
  569. package/lib/typescript/providers/screen/styles/helpers/collect-interpolator-shared-values.d.ts +0 -4
  570. package/lib/typescript/providers/screen/styles/helpers/collect-interpolator-shared-values.d.ts.map +0 -1
  571. package/lib/typescript/utils/resolve-chain-target.d.ts +0 -11
  572. package/lib/typescript/utils/resolve-chain-target.d.ts.map +0 -1
  573. package/src/components/boundary/portal/utils/teleport-control.ts +0 -13
  574. package/src/factories/screen-topology/index.ts +0 -16
  575. package/src/factories/screen-topology/worklet.ts +0 -60
  576. package/src/providers/navigation/navigation-host.provider.tsx +0 -75
  577. package/src/providers/navigation/react-navigation-host.tsx +0 -24
  578. package/src/providers/screen/animation/helpers/accessors/use-build-transition-accessor.ts +0 -96
  579. package/src/providers/screen/animation/helpers/read-screen-animation-revisions.ts +0 -15
  580. package/src/providers/screen/gestures/ownership/gesture-ownership-bridge.tsx +0 -173
  581. package/src/providers/screen/gestures/ownership/resolve-ownership.ts +0 -90
  582. package/src/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.ts +0 -88
  583. package/src/providers/screen/styles/helpers/collect-interpolator-shared-values.ts +0 -75
  584. package/src/utils/resolve-chain-target.ts +0 -33
  585. /package/lib/commonjs/{factories/screen-topology → providers/screen/topology}/types.js +0 -0
  586. /package/lib/module/{factories/screen-topology → providers/screen/topology}/types.js +0 -0
@@ -9,14 +9,23 @@ import { useBlankStackStore } from "../../../../../../providers/stack/blank-stac
9
9
  import { AnimationStore } from "../../../../../../stores/animation.store";
10
10
  import { getLinkKeyFromTag } from "../../../../../../stores/bounds/helpers/link-pairs.helpers";
11
11
  import { getEntry } from "../../../../../../stores/bounds/internals/entries";
12
+ import {
13
+ getPairKeyForDestination,
14
+ getPairKeyForSource,
15
+ } from "../../../../../../stores/bounds/internals/links";
12
16
  import { pairs } from "../../../../../../stores/bounds/internals/state";
17
+ import type {
18
+ LinkPairState,
19
+ TagLink,
20
+ } from "../../../../../../stores/bounds/types";
13
21
  import { SystemStore } from "../../../../../../stores/system.store";
14
22
  import { PORTAL_HOST_NAME_RESET_VALUE } from "../../../utils/naming";
15
- import { isTeleportEnabled } from "../../../utils/teleport-control";
16
23
  import {
17
24
  resolveActiveHandoffReceiver,
18
25
  resolveHandoffAttachmentCandidate,
19
26
  resolvePreviousHandoffReceiver,
27
+ resolveRequestedHandoffPairKey,
28
+ resolveRequestedHandoffReceiver,
20
29
  } from "../helpers/active-handoff-receiver";
21
30
  import { createBoundaryContentPortalHostName } from "../helpers/host-name";
22
31
 
@@ -24,6 +33,19 @@ interface UseBoundaryContentPortalAttachmentParams {
24
33
  boundaryId: string;
25
34
  }
26
35
 
36
+ const isCompleteActiveLink = (
37
+ pair: LinkPairState | null | undefined,
38
+ link: TagLink | undefined,
39
+ boundaryLinkKey: string,
40
+ ) => {
41
+ "worklet";
42
+
43
+ return (
44
+ link?.status === "complete" &&
45
+ (!link.group || pair?.groups[link.group]?.activeId === boundaryLinkKey)
46
+ );
47
+ };
48
+
27
49
  export const useBoundaryContentPortalAttachment = ({
28
50
  boundaryId,
29
51
  }: UseBoundaryContentPortalAttachmentParams) => {
@@ -34,6 +56,9 @@ export const useBoundaryContentPortalAttachment = ({
34
56
  );
35
57
  const nextScreenKey = useDescriptorsStore((s) => s.derivations.nextScreenKey);
36
58
  const sourcePairKey = useDescriptorsStore((s) => s.derivations.sourcePairKey);
59
+ const destinationPairKey = useDescriptorsStore(
60
+ (s) => s.derivations.destinationPairKey,
61
+ );
37
62
  const destinationSlots = useOptionalScreenSlotStore(
38
63
  nextScreenKey ?? currentScreenKey,
39
64
  );
@@ -67,11 +92,9 @@ export const useBoundaryContentPortalAttachment = ({
67
92
  const slot = slotsMap.get()[boundaryId];
68
93
  const {
69
94
  pointerEvents: _pointerEvents,
70
- teleport,
95
+ handoffTarget,
71
96
  ...slotProps
72
97
  } = slot?.props ?? {};
73
-
74
- const shouldTeleport = isTeleportEnabled(teleport);
75
98
  const closing = activeReceiverClosing.get();
76
99
  const animationProgress = activeReceiverAnimationProgress.get();
77
100
 
@@ -89,20 +112,65 @@ export const useBoundaryContentPortalAttachment = ({
89
112
  animationProgress,
90
113
  });
91
114
 
92
- const pair = sourcePairKey ? pairs.get()[sourcePairKey] : null;
93
- const link = pair?.links[getLinkKeyFromTag(boundaryId)];
115
+ const automaticPair = sourcePairKey ? pairs.get()[sourcePairKey] : null;
116
+ const boundaryLinkKey = getLinkKeyFromTag(boundaryId);
117
+ const automaticLink = automaticPair?.links[boundaryLinkKey];
118
+ const requestedSourcePairKey =
119
+ getPairKeyForSource(boundaryId, currentScreenKey) ?? sourcePairKey;
120
+ const requestedSourcePair = requestedSourcePairKey
121
+ ? pairs.get()[requestedSourcePairKey]
122
+ : null;
123
+ const requestedSourceLink = requestedSourcePair?.links[boundaryLinkKey];
94
124
 
95
125
  const pairDestination =
96
- link?.status === "complete" &&
97
- (!link.group ||
98
- pair?.groups[link.group]?.activeId === getLinkKeyFromTag(boundaryId))
99
- ? link.destination.screenKey
126
+ automaticLink?.status === "complete" &&
127
+ (!automaticLink.group ||
128
+ automaticPair?.groups[automaticLink.group]?.activeId ===
129
+ boundaryLinkKey)
130
+ ? automaticLink.destination.screenKey
100
131
  : null;
132
+ const requestedDestinationPairKey =
133
+ getPairKeyForDestination(boundaryId, currentScreenKey) ??
134
+ destinationPairKey;
135
+ const destinationPair = requestedDestinationPairKey
136
+ ? pairs.get()[requestedDestinationPairKey]
137
+ : null;
138
+ const destinationLink = destinationPair?.links[boundaryLinkKey];
139
+ const retainedSourcePairKey = sourcePairBeforeClose.get() ?? undefined;
140
+ const retainedSourcePair = retainedSourcePairKey
141
+ ? pairs.get()[retainedSourcePairKey]
142
+ : null;
143
+ const retainedSourceLink = retainedSourcePair?.links[boundaryLinkKey];
144
+ const requestedPairKey = resolveRequestedHandoffPairKey({
145
+ destinationPairHasCompleteLink: isCompleteActiveLink(
146
+ destinationPair,
147
+ destinationLink,
148
+ boundaryLinkKey,
149
+ ),
150
+ destinationPairKey: requestedDestinationPairKey,
151
+ handoffTarget,
152
+ retainedSourcePairHasCompleteLink: isCompleteActiveLink(
153
+ retainedSourcePair,
154
+ retainedSourceLink,
155
+ boundaryLinkKey,
156
+ ),
157
+ retainedSourcePairKey,
158
+ sourcePairHasCompleteLink: isCompleteActiveLink(
159
+ requestedSourcePair,
160
+ requestedSourceLink,
161
+ boundaryLinkKey,
162
+ ),
163
+ sourcePairKey: requestedSourcePairKey,
164
+ });
165
+ const requestedPair = requestedPairKey
166
+ ? pairs.get()[requestedPairKey]
167
+ : null;
168
+ const requestedLink = requestedPair?.links[boundaryLinkKey];
101
169
 
102
170
  const isInterpolatorReady = interpolatorReady.get();
103
171
  const attachedScreenKey = attachedReceiverScreenKey.get();
104
172
 
105
- const nextReceiverScreenKey = resolveHandoffAttachmentCandidate({
173
+ const automaticReceiverScreenKey = resolveHandoffAttachmentCandidate({
106
174
  activeReceiverClosing: !!closing,
107
175
  activeReceiverScreenKey,
108
176
  attachedReceiverScreenKey: attachedScreenKey,
@@ -110,8 +178,25 @@ export const useBoundaryContentPortalAttachment = ({
110
178
  interpolatorReady: !!isInterpolatorReady,
111
179
  pairChangedDuringClose,
112
180
  pairDestinationScreenKey: pairDestination,
181
+ pairHasBoundaryLink: automaticLink !== undefined,
113
182
  previousReceiverScreenKey,
114
183
  });
184
+ const requestedDestinationScreenKey =
185
+ requestedLink?.status === "complete"
186
+ ? requestedLink.destination.screenKey
187
+ : null;
188
+ const nextReceiverScreenKey = resolveRequestedHandoffReceiver({
189
+ automaticScreenKey: automaticReceiverScreenKey,
190
+ destinationReady:
191
+ requestedDestinationScreenKey === activeReceiverScreenKey ||
192
+ !!isInterpolatorReady,
193
+ destinationScreenKey: requestedDestinationScreenKey,
194
+ handoffTarget,
195
+ sourceScreenKey:
196
+ requestedLink?.status === "complete"
197
+ ? requestedLink.source.screenKey
198
+ : null,
199
+ });
115
200
 
116
201
  const receiverEntry = nextReceiverScreenKey
117
202
  ? getEntry(boundaryId, nextReceiverScreenKey)
@@ -136,9 +221,7 @@ export const useBoundaryContentPortalAttachment = ({
136
221
  attachedReceiverScreenKey.set(nextReceiverScreenKey);
137
222
  }
138
223
 
139
- const targetScreenKey = shouldTeleport
140
- ? attachedReceiverScreenKey.get()
141
- : null;
224
+ const targetScreenKey = attachedReceiverScreenKey.get();
142
225
 
143
226
  const targetHostName = targetScreenKey
144
227
  ? createBoundaryContentPortalHostName(targetScreenKey, boundaryId)
@@ -3,7 +3,6 @@ import { useDescriptorsStore } from "../../../../../../providers/screen/descript
3
3
  import { useScreenSlotStore } from "../../../../../../providers/screen/styles";
4
4
  import { useBoundaryRootStore } from "../../../../providers/boundary-root.provider";
5
5
  import { PORTAL_HOST_NAME_RESET_VALUE } from "../../../utils/naming";
6
- import { isTeleportEnabled } from "../../../utils/teleport-control";
7
6
  import { useActiveHostKey } from "../stores/host-registry.store";
8
7
  import { useActivePortalBoundaryHost } from "./use-active-portal-boundary-host";
9
8
 
@@ -45,14 +44,11 @@ export const useBoundaryPortalAttachment = ({
45
44
  const slot = slotsMap.get()[boundaryId];
46
45
  const {
47
46
  pointerEvents: _pointerEvents,
48
- teleport,
47
+ handoffTarget: _handoffTarget,
49
48
  ...slotProps
50
49
  } = slot?.props ?? {};
51
50
 
52
- const shouldAttach =
53
- slot !== undefined &&
54
- isTeleportEnabled(teleport) &&
55
- portalHostReady.get();
51
+ const shouldAttach = slot !== undefined && portalHostReady.get();
56
52
 
57
53
  const hostName = shouldAttach
58
54
  ? portalHostName.get()
@@ -1,3 +1,4 @@
1
+ import { getLinkKeyFromTag } from "../../../stores/bounds/helpers/link-pairs.helpers";
1
2
  import type {
2
3
  LinkPairsState,
3
4
  ScreenPairKey,
@@ -25,8 +26,9 @@ export const getInitialSourceCaptureSignal = (params: {
25
26
  }
26
27
 
27
28
  const pair = linkState?.[sourcePairKey];
28
- const link = pair?.links?.[linkId];
29
- const hasSourceRequest = pair?.sourceRequests?.[linkId];
29
+ const linkKey = getLinkKeyFromTag(linkId);
30
+ const link = pair?.links?.[linkKey];
31
+ const hasSourceRequest = pair?.sourceRequests?.[linkKey];
30
32
 
31
33
  if ((!link?.destination && !hasSourceRequest) || link?.source) {
32
34
  return null;
@@ -37,12 +39,12 @@ export const getInitialSourceCaptureSignal = (params: {
37
39
 
38
40
  // Passive grouped sources should not measure every mounted item. Once a
39
41
  // group has an active id, only that concrete member can auto-capture.
40
- if (activeId && activeId !== linkId) {
42
+ if (activeId && activeId !== linkKey) {
41
43
  return null;
42
44
  }
43
45
  }
44
46
 
45
- const signalParts = group ? [group, linkId] : [linkId];
47
+ const signalParts = group ? [group, linkKey] : [linkKey];
46
48
 
47
49
  return {
48
50
  pairKey: sourcePairKey,
@@ -4,52 +4,24 @@ type StackScene = BaseStackScene;
4
4
 
5
5
  import { isOverlayVisible } from "../../../utils/overlay/visibility";
6
6
 
7
- export type FloatOverlayActivity = "active" | "inert" | "inactive" | "closing";
8
-
9
7
  export type FloatOverlayEntry = {
10
8
  scene: StackScene;
11
9
  overlayIndex: number;
12
- activity: FloatOverlayActivity;
13
10
  };
14
11
 
15
12
  export type FloatOverlayTransitionEntry = FloatOverlayEntry & {
16
13
  driverScene: StackScene;
17
14
  };
18
15
 
19
- type OverlayCandidate = Omit<FloatOverlayEntry, "activity">;
20
-
21
- const resolveOverlayActivity = (
22
- scene: StackScene,
23
- distanceFromTop: number,
24
- ): FloatOverlayActivity => {
25
- if (distanceFromTop === 0 && scene.activity === "closing") {
26
- return "closing";
27
- }
28
-
29
- if (distanceFromTop === 0) {
30
- return "active";
31
- }
32
-
33
- if (distanceFromTop === 1) {
34
- return "inert";
35
- }
36
-
37
- return "inactive";
38
- };
39
-
40
16
  /**
41
- * Finds every visible floating-overlay checkpoint in stack order.
42
- *
43
- * The newest checkpoint owns the active overlay. Its immediate predecessor
44
- * remains visible and inert; all older checkpoints are retained but inactive.
45
- * This mirrors the screen activity window without making plain screens create
46
- * a new overlay checkpoint.
17
+ * Overlay ordering and transition coordination are library-owned. Visibility,
18
+ * interaction, and presentation are user-owned.
47
19
  */
48
20
  export function getFloatOverlayStack(
49
21
  scenes: StackScene[],
50
22
  transitionsAlwaysOn: boolean,
51
23
  ): FloatOverlayEntry[] {
52
- const candidates: OverlayCandidate[] = [];
24
+ const candidates: FloatOverlayEntry[] = [];
53
25
 
54
26
  for (let index = 0; index < scenes.length; index += 1) {
55
27
  const scene = scenes[index];
@@ -64,11 +36,7 @@ export function getFloatOverlayStack(
64
36
  }
65
37
  }
66
38
 
67
- const topIndex = candidates.length - 1;
68
- return candidates.map((candidate, index) => ({
69
- ...candidate,
70
- activity: resolveOverlayActivity(candidate.scene, topIndex - index),
71
- }));
39
+ return candidates;
72
40
  }
73
41
 
74
42
  export function getFloatOverlayTransitions(
@@ -4,6 +4,7 @@ import type { FloatOverlayEntry } from "./get-active-overlay";
4
4
 
5
5
  export type ReadyOverlayResources = {
6
6
  overlayAnimationStore: ScreenAnimationContextValue;
7
+ overlaySlots: ScreenSlotContextValue;
7
8
  driverScene: FloatOverlayEntry["scene"];
8
9
  driverAnimationStore: ScreenAnimationContextValue;
9
10
  driverSlots: ScreenSlotContextValue;
@@ -12,16 +13,23 @@ export type ReadyOverlayResources = {
12
13
  export function retainReadyOverlayResources(
13
14
  previous: ReadyOverlayResources | null,
14
15
  overlayAnimationStore: ScreenAnimationContextValue | null,
16
+ overlaySlots: ScreenSlotContextValue | null,
15
17
  driverScene: FloatOverlayEntry["scene"],
16
18
  driverAnimationStore: ScreenAnimationContextValue | null,
17
19
  driverSlots: ScreenSlotContextValue | null,
18
20
  ): ReadyOverlayResources | null {
19
- if (!overlayAnimationStore || !driverAnimationStore || !driverSlots) {
21
+ if (
22
+ !overlayAnimationStore ||
23
+ !overlaySlots ||
24
+ !driverAnimationStore ||
25
+ !driverSlots
26
+ ) {
20
27
  return previous;
21
28
  }
22
29
 
23
30
  if (
24
31
  previous?.overlayAnimationStore === overlayAnimationStore &&
32
+ previous.overlaySlots === overlaySlots &&
25
33
  previous.driverScene === driverScene &&
26
34
  previous.driverAnimationStore === driverAnimationStore &&
27
35
  previous.driverSlots === driverSlots
@@ -31,6 +39,7 @@ export function retainReadyOverlayResources(
31
39
 
32
40
  return {
33
41
  overlayAnimationStore,
42
+ overlaySlots,
34
43
  driverScene,
35
44
  driverAnimationStore,
36
45
  driverSlots,
@@ -5,18 +5,15 @@ import { selectInterpolatorFrame } from "../../../providers/screen/styles/helper
5
5
  import type {
6
6
  NormalizedTransitionSlotStyle,
7
7
  ScreenStyleInterpolator,
8
- ScreenTransitionAccessor,
9
8
  } from "../../../types/animation.types";
10
9
  import { logger } from "../../../utils/logger";
11
10
 
12
11
  export const runOverlaySlotInterpolator = ({
13
12
  frame,
14
13
  interpolator,
15
- transition,
16
14
  }: {
17
15
  frame: ScreenInterpolatorFrame;
18
16
  interpolator: ScreenStyleInterpolator | undefined;
19
- transition: ScreenTransitionAccessor;
20
17
  }): NormalizedTransitionSlotStyle | undefined => {
21
18
  "worklet";
22
19
 
@@ -29,7 +26,6 @@ export const runOverlaySlotInterpolator = ({
29
26
  createInterpolatorScope({
30
27
  frame,
31
28
  selectedFrame: selectInterpolatorFrame(frame, false),
32
- transition,
33
29
  }),
34
30
  );
35
31
 
@@ -1,4 +1,3 @@
1
- import { useMemo } from "react";
2
1
  import { useWindowDimensions } from "react-native";
3
2
  import {
4
3
  type SharedValue,
@@ -8,8 +7,6 @@ import {
8
7
  } from "react-native-reanimated";
9
8
  import { NO_PROPS, NO_STYLES } from "../../../constants";
10
9
  import type { ScreenAnimationContextValue } from "../../../providers/screen/animation/animation.provider";
11
- import { useBuildTransitionAccessor } from "../../../providers/screen/animation/helpers/accessors/use-build-transition-accessor";
12
- import { collectInterpolatorSharedValues } from "../../../providers/screen/styles/helpers/collect-interpolator-shared-values";
13
10
  import type {
14
11
  NormalizedTransitionSlotStyle,
15
12
  ScreenStyleInterpolator,
@@ -39,30 +36,9 @@ export const useOverlaySlot = ({
39
36
  isIncoming: boolean;
40
37
  }) => {
41
38
  const { height } = useWindowDimensions();
42
- const overlayTransition = useBuildTransitionAccessor(overlayAnimationStore);
43
- const driverTransition = useBuildTransitionAccessor(driverAnimationStore);
44
-
45
- const interpolatorSharedValues = useMemo(
46
- () =>
47
- collectInterpolatorSharedValues([
48
- overlayInterpolator,
49
- driverInterpolator,
50
- ]),
51
- [overlayInterpolator, driverInterpolator],
52
- );
53
-
54
39
  const overlaySlot = useDerivedValue<
55
40
  NormalizedTransitionSlotStyle | undefined
56
41
  >(() => {
57
- "worklet";
58
- overlayAnimationStore.screenInterpolatorPropsRevision.get();
59
- driverAnimationStore.screenInterpolatorPropsRevision.get();
60
- previousOverlayAnimationStore?.screenInterpolatorPropsRevision.get();
61
-
62
- for (let index = 0; index < interpolatorSharedValues.length; index++) {
63
- interpolatorSharedValues[index]?.get();
64
- }
65
-
66
42
  const overlayFrame = overlayAnimationStore.screenInterpolatorProps.get();
67
43
  const driverFrame = driverAnimationStore.screenInterpolatorProps.get();
68
44
  const overlayOwnsGesture = shouldUseOverlayGestureDriver(
@@ -81,7 +57,6 @@ export const useOverlaySlot = ({
81
57
  interpolator: overlayOwnsGesture
82
58
  ? overlayInterpolator
83
59
  : driverInterpolator,
84
- transition: overlayOwnsGesture ? overlayTransition : driverTransition,
85
60
  });
86
61
  });
87
62
 
@@ -108,11 +83,7 @@ export const useOverlaySlot = ({
108
83
  return NO_PROPS;
109
84
  }
110
85
 
111
- const {
112
- pointerEvents: _pointerEvents,
113
- teleport: _teleport,
114
- ...props
115
- } = slotProps;
86
+ const { handoffTarget: _handoffTarget, ...props } = slotProps;
116
87
 
117
88
  return props;
118
89
  });
@@ -24,16 +24,13 @@ export function FloatOverlay() {
24
24
 
25
25
  const overlayTransitions = getFloatOverlayTransitions(overlayStack, scenes);
26
26
 
27
- return overlayTransitions.map(
28
- ({ scene, activity, driverScene }, layerIndex) => (
29
- <OverlayHost
30
- key={scene.route.key}
31
- scene={scene}
32
- driverScene={driverScene}
33
- previousOverlayScene={overlayTransitions[layerIndex - 1]?.scene}
34
- activity={activity}
35
- layerIndex={layerIndex}
36
- />
37
- ),
38
- );
27
+ return overlayTransitions.map(({ scene, driverScene }, layerIndex) => (
28
+ <OverlayHost
29
+ key={scene.route.key}
30
+ scene={scene}
31
+ driverScene={driverScene}
32
+ previousOverlayScene={overlayTransitions[layerIndex - 1]?.scene}
33
+ layerIndex={layerIndex}
34
+ />
35
+ ));
39
36
  }
@@ -2,19 +2,19 @@ import { memo, useMemo, useRef } from "react";
2
2
  import { StyleSheet, View } from "react-native";
3
3
  import Animated, { useDerivedValue } from "react-native-reanimated";
4
4
  import { snapDescriptorToIndex } from "../../../animation/snap-to";
5
- import { NavigationScreenProvider } from "../../../providers/navigation/navigation-host.provider";
6
5
  import { useOptionalScreenAnimationStore } from "../../../providers/screen/animation";
7
- import type { ScreenAnimationContextValue } from "../../../providers/screen/animation/animation.provider";
6
+ import {
7
+ type ScreenAnimationContextValue,
8
+ ScreenAnimationStoreProvider,
9
+ } from "../../../providers/screen/animation/animation.provider";
8
10
  import {
9
11
  type ScreenSlotContextValue,
12
+ ScreenSlotStoreProvider,
10
13
  useOptionalScreenSlotStore,
11
14
  } from "../../../providers/screen/styles/slot.provider";
12
15
  import { useBlankStackStore } from "../../../providers/stack/blank-stack.provider";
13
16
  import type { OverlayProps } from "../../../types/overlay.types";
14
- import type {
15
- FloatOverlayActivity,
16
- FloatOverlayEntry,
17
- } from "../helpers/get-active-overlay";
17
+ import type { FloatOverlayEntry } from "../helpers/get-active-overlay";
18
18
  import {
19
19
  type ReadyOverlayResources,
20
20
  retainReadyOverlayResources,
@@ -25,7 +25,6 @@ type OverlayHostProps = {
25
25
  scene: FloatOverlayEntry["scene"];
26
26
  driverScene: FloatOverlayEntry["scene"];
27
27
  previousOverlayScene?: FloatOverlayEntry["scene"];
28
- activity: FloatOverlayActivity;
29
28
  layerIndex: number;
30
29
  };
31
30
 
@@ -33,7 +32,6 @@ export const OverlayHost = memo(function OverlayHost({
33
32
  scene,
34
33
  driverScene,
35
34
  previousOverlayScene,
36
- activity,
37
35
  layerIndex,
38
36
  }: OverlayHostProps) {
39
37
  const overlayAnimationStore = useOptionalScreenAnimationStore(
@@ -45,6 +43,7 @@ export const OverlayHost = memo(function OverlayHost({
45
43
  const previousOverlayAnimationStore = useOptionalScreenAnimationStore(
46
44
  previousOverlayScene?.route.key ?? scene.route.key,
47
45
  );
46
+ const overlaySlots = useOptionalScreenSlotStore(scene.route.key);
48
47
  const driverSlots = useOptionalScreenSlotStore(driverScene.route.key);
49
48
  const overlayComponentRef = useRef(scene.descriptor.options.overlay);
50
49
  const OverlayComponent = overlayComponentRef.current;
@@ -52,6 +51,7 @@ export const OverlayHost = memo(function OverlayHost({
52
51
  readyResourcesRef.current = retainReadyOverlayResources(
53
52
  readyResourcesRef.current,
54
53
  overlayAnimationStore,
54
+ overlaySlots,
55
55
  driverScene,
56
56
  driverAnimationStore,
57
57
  driverSlots,
@@ -66,9 +66,9 @@ export const OverlayHost = memo(function OverlayHost({
66
66
  <ReadyOverlayHost
67
67
  scene={scene}
68
68
  driverScene={readyResources.driverScene}
69
- activity={activity}
70
69
  layerIndex={layerIndex}
71
70
  overlayAnimationStore={readyResources.overlayAnimationStore}
71
+ overlaySlots={readyResources.overlaySlots}
72
72
  driverAnimationStore={readyResources.driverAnimationStore}
73
73
  previousOverlayAnimationStore={
74
74
  previousOverlayScene ? previousOverlayAnimationStore : undefined
@@ -81,6 +81,7 @@ export const OverlayHost = memo(function OverlayHost({
81
81
 
82
82
  type ReadyOverlayHostProps = OverlayHostProps & {
83
83
  overlayAnimationStore: ScreenAnimationContextValue;
84
+ overlaySlots: ScreenSlotContextValue;
84
85
  driverAnimationStore: ScreenAnimationContextValue;
85
86
  previousOverlayAnimationStore?: ScreenAnimationContextValue | null;
86
87
  driverSlots: ScreenSlotContextValue;
@@ -92,16 +93,15 @@ type ReadyOverlayHostProps = OverlayHostProps & {
92
93
  function ReadyOverlayHost({
93
94
  scene,
94
95
  driverScene,
95
- activity,
96
96
  layerIndex,
97
97
  overlayAnimationStore,
98
+ overlaySlots,
98
99
  driverAnimationStore,
99
100
  previousOverlayAnimationStore,
100
101
  driverSlots,
101
102
  OverlayComponent,
102
103
  }: ReadyOverlayHostProps) {
103
104
  const { scenes, focusedIndex, routeKeys, routes } = useBlankStackStore();
104
- const descriptor = scene.descriptor;
105
105
  const focusedScene = scenes[focusedIndex] ?? scenes[scenes.length - 1];
106
106
  const focusedDescriptor = focusedScene?.descriptor;
107
107
  const { animatedProps, animatedStyle } = useOverlaySlot({
@@ -115,7 +115,6 @@ function ReadyOverlayHost({
115
115
  });
116
116
  const relativeProgress = useDerivedValue(() => {
117
117
  "worklet";
118
- overlayAnimationStore.screenInterpolatorPropsRevision.get();
119
118
  return overlayAnimationStore.screenInterpolatorProps.get().stackProgress;
120
119
  });
121
120
 
@@ -147,7 +146,7 @@ function ReadyOverlayHost({
147
146
  return (
148
147
  <Animated.View
149
148
  animatedProps={animatedProps}
150
- pointerEvents={activity === "active" ? "box-none" : "none"}
149
+ pointerEvents="box-none"
151
150
  style={[
152
151
  styles.container,
153
152
  styles.floating,
@@ -156,17 +155,19 @@ function ReadyOverlayHost({
156
155
  animatedStyle,
157
156
  ]}
158
157
  >
159
- <NavigationScreenProvider
160
- navigation={descriptor.navigation}
161
- route={descriptor.route}
158
+ <ScreenAnimationStoreProvider
159
+ registerGlobally={false}
160
+ value={overlayAnimationStore}
162
161
  >
163
- <View
164
- pointerEvents="box-none"
165
- style={[StyleSheet.absoluteFill, styles.overlay]}
166
- >
167
- <OverlayComponent {...overlayProps} />
168
- </View>
169
- </NavigationScreenProvider>
162
+ <ScreenSlotStoreProvider registerGlobally={false} value={overlaySlots}>
163
+ <View
164
+ pointerEvents="box-none"
165
+ style={[StyleSheet.absoluteFill, styles.overlay]}
166
+ >
167
+ <OverlayComponent {...overlayProps} />
168
+ </View>
169
+ </ScreenSlotStoreProvider>
170
+ </ScreenAnimationStoreProvider>
170
171
  </Animated.View>
171
172
  );
172
173
  }
@@ -10,6 +10,7 @@ import { ScreenFallbackHost } from "../../boundary/portal/components/boundary-po
10
10
  import { useContentLayout } from "../hooks/use-content-layout";
11
11
  import { MaybeMaskedNavigationContainer } from "./maybe-masked-navigation-container";
12
12
  import { usesLayerRenderProps } from "./render-component";
13
+ import { SurfaceLayer } from "./surface";
13
14
 
14
15
  type Props = {
15
16
  children: React.ReactNode;
@@ -50,18 +51,22 @@ export const ContentLayer = memo(
50
51
  const contentProps =
51
52
  animatedContentProps as ScreenContentComponentProps["props"];
52
53
 
54
+ const screenChildren = hasAutoSnapPoint ? (
55
+ <View collapsable={false} onLayout={handleContentLayout}>
56
+ {children}
57
+ </View>
58
+ ) : (
59
+ children
60
+ );
61
+
53
62
  const contentChildren = (
54
63
  <MaybeMaskedNavigationContainer
55
64
  pointerEvents={contentPointerEvents}
56
65
  enabled={isNavigationMaskEnabled}
57
66
  >
58
- {hasAutoSnapPoint ? (
59
- <View collapsable={false} onLayout={handleContentLayout}>
60
- {children}
61
- </View>
62
- ) : (
63
- children
64
- )}
67
+ <SurfaceLayer pointerEvents={contentPointerEvents}>
68
+ {screenChildren}
69
+ </SurfaceLayer>
65
70
  <ScreenFallbackHost />
66
71
  </MaybeMaskedNavigationContainer>
67
72
  );