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
@@ -0,0 +1,73 @@
1
+ import { useLayoutEffect, useMemo } from "react";
2
+ import type { SharedValue } from "react-native-reanimated";
3
+ import {
4
+ type ClaimedDirections,
5
+ NO_CLAIMS,
6
+ } from "../../../../types/ownership.types";
7
+ import { useBlankStackStore } from "../../../stack/blank-stack.provider";
8
+ import { type BaseDescriptor, useDescriptorsStore } from "../../descriptors";
9
+ import { resolveScreenGestureConfig } from "../shared/policy";
10
+ import type { GestureOwnerMap, ScreenGestureSource } from "../types";
11
+ import { gestureOwnershipCoordinator } from "./gesture-ownership-coordinator";
12
+ import { resolveShadowingClaimDirections } from "./shadowing-claims";
13
+
14
+ const getDescriptorIsFirstKey = (descriptor: BaseDescriptor): boolean => {
15
+ const routes = descriptor.navigation.getState()?.routes ?? [];
16
+ return routes.findIndex((route) => route.key === descriptor.route.key) === 0;
17
+ };
18
+
19
+ const getDescriptorClaimedDirections = (
20
+ descriptor: BaseDescriptor | undefined,
21
+ ): ClaimedDirections => {
22
+ if (!descriptor) return NO_CLAIMS;
23
+
24
+ return resolveScreenGestureConfig({
25
+ options: descriptor.options,
26
+ isFirstKey: getDescriptorIsFirstKey(descriptor),
27
+ }).participation.claimedDirections;
28
+ };
29
+
30
+ export const useRegisterGestureOwnership = ({
31
+ claimedDirections,
32
+ owners,
33
+ source,
34
+ }: {
35
+ claimedDirections: ClaimedDirections;
36
+ owners: SharedValue<GestureOwnerMap>;
37
+ source: ScreenGestureSource;
38
+ }) => {
39
+ const previous = useDescriptorsStore((store) => store.descriptors.previous);
40
+ const isClosing = useBlankStackStore(
41
+ (store) => store.scenesByKey[source.routeKey]?.activity === "closing",
42
+ );
43
+ const previousClaimedDirections = useMemo(
44
+ () => getDescriptorClaimedDirections(previous),
45
+ [previous],
46
+ );
47
+ const effectiveClaimedDirections = useMemo(
48
+ () =>
49
+ resolveShadowingClaimDirections({
50
+ isCurrentScreenClosing: isClosing,
51
+ currentClaimedDirections: claimedDirections,
52
+ previousClaimedDirections,
53
+ }),
54
+ [claimedDirections, isClosing, previousClaimedDirections],
55
+ );
56
+
57
+ useLayoutEffect(() => {
58
+ gestureOwnershipCoordinator.register({
59
+ screenKey: source.routeKey,
60
+ source,
61
+ claimedDirections,
62
+ effectiveClaimedDirections,
63
+ owners,
64
+ });
65
+ }, [claimedDirections, effectiveClaimedDirections, owners, source]);
66
+
67
+ useLayoutEffect(
68
+ () => () => {
69
+ gestureOwnershipCoordinator.unregister(source.routeKey);
70
+ },
71
+ [source.routeKey],
72
+ );
73
+ };
@@ -5,12 +5,11 @@ import {
5
5
  type ScrollGestureState,
6
6
  } from "../../../../../types/gesture.types";
7
7
  import type { Direction } from "../../../../../types/ownership.types";
8
- import { shouldDeferToChildClaim } from "../../ownership/resolve-ownership";
9
8
  import { getPanSnapAxisConfigForDirection } from "../../shared/directions";
10
9
  import { resolveRuntimeSnapPoints } from "../../shared/snap-points";
11
10
  import type {
12
- DirectionClaimMap,
13
11
  GestureDimensions,
12
+ GestureOwnerMap,
14
13
  PanGestureRuntime,
15
14
  } from "../../types";
16
15
  import {
@@ -23,7 +22,6 @@ export type PanActivationAction = "activate" | "fail" | "wait";
23
22
  export type PanActivationReason =
24
23
  | "ancestor-dismissing"
25
24
  | "already-dragging"
26
- | "child-claim"
27
25
  | "disabled"
28
26
  | "dismissing"
29
27
  | "multi-touch"
@@ -51,7 +49,7 @@ interface ResolvePanActivationMoveDecisionProps {
51
49
  initialTouch: { x: number; y: number };
52
50
  activationState: GestureActivationState;
53
51
  ancestorDismissing: boolean;
54
- childDirectionClaims: DirectionClaimMap;
52
+ gestureOwners: GestureOwnerMap;
55
53
  currentScreenKey: string;
56
54
  scrollState: ScrollGestureState | null;
57
55
  }
@@ -147,9 +145,8 @@ const resolveOffsetFailureDecision = (
147
145
 
148
146
  const resolveDirectionGateDecision = (
149
147
  swipeDirection: Direction | null,
150
- runtime: PanGestureRuntime,
151
148
  offset: OffsetRuleResult,
152
- childDirectionClaims: DirectionClaimMap,
149
+ gestureOwners: GestureOwnerMap,
153
150
  currentScreenKey: string,
154
151
  ): PanActivationDecision | null => {
155
152
  "worklet";
@@ -162,7 +159,7 @@ const resolveDirectionGateDecision = (
162
159
  );
163
160
  }
164
161
 
165
- if (runtime.participation.ownershipStatus[swipeDirection] !== "self") {
162
+ if (gestureOwners[swipeDirection] !== currentScreenKey) {
166
163
  return createDecision(
167
164
  "fail",
168
165
  "ownership",
@@ -171,16 +168,6 @@ const resolveDirectionGateDecision = (
171
168
  );
172
169
  }
173
170
 
174
- const childClaim = childDirectionClaims[swipeDirection];
175
- if (shouldDeferToChildClaim(childClaim, currentScreenKey)) {
176
- return createDecision(
177
- "fail",
178
- "child-claim",
179
- swipeDirection,
180
- offset.nextActivationState,
181
- );
182
- }
183
-
184
171
  if (offset.nextActivationState !== GestureActivationState.PASSED) {
185
172
  return createDecision(
186
173
  "wait",
@@ -389,7 +376,7 @@ export const resolvePanActivationMoveDecision = ({
389
376
  initialTouch,
390
377
  activationState,
391
378
  ancestorDismissing,
392
- childDirectionClaims,
379
+ gestureOwners,
393
380
  currentScreenKey,
394
381
  scrollState,
395
382
  }: ResolvePanActivationMoveDecisionProps): PanActivationDecision => {
@@ -427,9 +414,8 @@ export const resolvePanActivationMoveDecision = ({
427
414
  const swipeDirection = getSwipeDirection(offset);
428
415
  const directionGateDecision = resolveDirectionGateDecision(
429
416
  swipeDirection,
430
- runtime,
431
417
  offset,
432
- childDirectionClaims,
418
+ gestureOwners,
433
419
  currentScreenKey,
434
420
  );
435
421
  if (directionGateDecision) return directionGateDecision;
@@ -12,9 +12,9 @@ import type { ScreenOptionsContextValue } from "../../../options";
12
12
  import { useCurrentScreenRelationships } from "../../../use-current-screen-relationships";
13
13
  import { resolvePanRuntime } from "../../shared/runtime";
14
14
  import type {
15
- DirectionClaimMap,
16
15
  GestureCompositionOwner,
17
16
  GestureDimensions,
17
+ GestureOwnerMap,
18
18
  PanGestureRuntime,
19
19
  ScrollGestureState,
20
20
  } from "../../types";
@@ -22,7 +22,7 @@ import { resolvePanActivationMoveDecision } from "./pan-activation-decision";
22
22
 
23
23
  interface UsePanActivationProps {
24
24
  scrollState: SharedValue<ScrollGestureState | null>;
25
- childDirectionClaims: SharedValue<DirectionClaimMap>;
25
+ gestureOwners: SharedValue<GestureOwnerMap>;
26
26
  runtime: SharedValue<PanGestureRuntime>;
27
27
  screenOptions: ScreenOptionsContextValue;
28
28
  dimensions: GestureDimensions;
@@ -31,7 +31,7 @@ interface UsePanActivationProps {
31
31
 
32
32
  export const usePanActivation = ({
33
33
  scrollState,
34
- childDirectionClaims,
34
+ gestureOwners,
35
35
  runtime,
36
36
  screenOptions,
37
37
  dimensions,
@@ -114,7 +114,7 @@ export const usePanActivation = ({
114
114
  initialTouch: initialTouch.get(),
115
115
  activationState: currentActivationState,
116
116
  ancestorDismissing: Boolean(ancestorDismissing?.get()),
117
- childDirectionClaims: childDirectionClaims.get(),
117
+ gestureOwners: gestureOwners.get(),
118
118
  currentScreenKey,
119
119
  scrollState: scrollState.get(),
120
120
  });
@@ -141,12 +141,12 @@ export const usePanActivation = ({
141
141
  },
142
142
  [
143
143
  ancestorDismissing,
144
- childDirectionClaims,
145
144
  currentScreenKey,
146
145
  dimensions,
147
146
  gestureActivationState,
148
147
  initialTouch,
149
148
  pendingDirection,
149
+ gestureOwners,
150
150
  runtime,
151
151
  screenOptions,
152
152
  scrollState,
@@ -5,8 +5,8 @@ import type { SharedValue } from "react-native-reanimated";
5
5
  import { useScreenOptionsStore } from "../../options";
6
6
  import { useStableRuntimeConfig } from "../hooks/use-stable-runtime-config";
7
7
  import type {
8
- DirectionClaimMap,
9
8
  GestureCompositionOwner,
9
+ GestureOwnerMap,
10
10
  PanGesture,
11
11
  ScreenGestureConfig,
12
12
  ScrollGestureState,
@@ -17,14 +17,14 @@ import { usePanBehavior } from "./behavior/use-pan-behavior";
17
17
  interface UseBuildPanGestureProps {
18
18
  scrollState: SharedValue<ScrollGestureState | null>;
19
19
  gestureConfig: ScreenGestureConfig;
20
- childDirectionClaims: SharedValue<DirectionClaimMap>;
20
+ gestureOwners: SharedValue<GestureOwnerMap>;
21
21
  gestureCompositionOwner: SharedValue<GestureCompositionOwner>;
22
22
  }
23
23
 
24
24
  export const useBuildPanGesture = ({
25
25
  scrollState,
26
26
  gestureConfig,
27
- childDirectionClaims,
27
+ gestureOwners,
28
28
  gestureCompositionOwner,
29
29
  }: UseBuildPanGestureProps): PanGesture => {
30
30
  const dimensions = useWindowDimensions();
@@ -38,7 +38,7 @@ export const useBuildPanGesture = ({
38
38
 
39
39
  const activation = usePanActivation({
40
40
  scrollState,
41
- childDirectionClaims,
41
+ gestureOwners,
42
42
  runtime,
43
43
  screenOptions,
44
44
  dimensions,
@@ -11,6 +11,7 @@ import useStableCallback from "../../../../hooks/use-stable-callback";
11
11
  import { AnimationStore } from "../../../../stores/animation.store";
12
12
  import { ScrollStore } from "../../../../stores/scroll.store";
13
13
  import { useOptionalScreenGestureStore } from "../gestures.provider";
14
+ import { useGestureScrollCoordination } from "../ownership/use-gesture-scroll-coordination";
14
15
  import type {
15
16
  ScrollGestureAxis,
16
17
  ScrollGestureAxisState,
@@ -26,7 +27,6 @@ import {
26
27
  updateScrollGestureAxisState,
27
28
  updateScrollMetadataAxisState,
28
29
  } from "./update-scroll-gesture-state";
29
- import { walkUpScrollGestureCoordination } from "./walk-up-scroll-gesture-coordination";
30
30
 
31
31
  interface ScrollGestureCoordinationProps {
32
32
  onContentSizeChange?: (width: number, height: number) => void;
@@ -90,10 +90,9 @@ export const useScrollGestureCoordination = (
90
90
  ) => {
91
91
  const context = useOptionalScreenGestureStore();
92
92
  const scrollDirection = props.direction ?? "vertical";
93
- const gesturePath = useMemo(
94
- () => (context ? [context, ...context.ancestorGestures] : []),
95
- [context],
96
- );
93
+ const routeKey = context?.routeKey ?? null;
94
+ const { scrollStates, panGestures, pinchGestures, ownerRouteKeys } =
95
+ useGestureScrollCoordination(routeKey, scrollDirection);
97
96
 
98
97
  const metadataOwnerContext = useOptionalScrollMetadataOwnerStore();
99
98
  const metadataOwnerProviderValue =
@@ -104,12 +103,6 @@ export const useScrollGestureCoordination = (
104
103
  );
105
104
  const [writesMetadata, setWritesMetadata] = useState(false);
106
105
 
107
- const { scrollStates, panGestures, pinchGestures, ownerRouteKeys } = useMemo(
108
- () => walkUpScrollGestureCoordination(gesturePath, scrollDirection),
109
- [gesturePath, scrollDirection],
110
- );
111
-
112
- const routeKey = context?.routeKey;
113
106
  const metadataState = useMemo(
114
107
  () => (routeKey ? ScrollStore.getValue(routeKey, "metadata") : null),
115
108
  [routeKey],
@@ -174,7 +167,10 @@ export const useScrollGestureCoordination = (
174
167
  );
175
168
 
176
169
  const nativeGesture = useMemo(() => {
177
- if (panGestures.length === 0 && pinchGestures.length === 0) return null;
170
+ // Ownership registrations disappear while a screen's Activity is paused.
171
+ // Keep its detector mounted through that gap: removing the wrapper remounts
172
+ // scroll children and loses state, including captured boundary measurements.
173
+ if (!routeKey) return null;
178
174
 
179
175
  const setIsTouched = () => {
180
176
  "worklet";
@@ -230,6 +226,7 @@ export const useScrollGestureCoordination = (
230
226
 
231
227
  return gesture;
232
228
  }, [
229
+ routeKey,
233
230
  panGestures,
234
231
  pinchGestures,
235
232
  scrollStates,
@@ -24,13 +24,11 @@ import type {
24
24
  SnapPoint,
25
25
  } from "../../../../types/screen.types";
26
26
  import { computeClaimedDirections } from "../ownership/compute-claimed-directions";
27
- import { resolveOwnership } from "../ownership/resolve-ownership";
28
27
  import type {
29
28
  PanGesturePolicy,
30
29
  PinchGesturePolicy,
31
30
  ScreenGestureConfig,
32
31
  ScreenGestureParticipation,
33
- ScreenGestureSource,
34
32
  } from "../types";
35
33
  import {
36
34
  getGestureDirectionEntries,
@@ -293,11 +291,9 @@ export const resolvePinchPolicy = (
293
291
  const resolveGestureParticipation = ({
294
292
  options,
295
293
  isFirstKey,
296
- ancestorGestures,
297
294
  }: {
298
295
  options: GesturePolicyOptions;
299
296
  isFirstKey: boolean;
300
- ancestorGestures: readonly ScreenGestureSource[];
301
297
  }): ScreenGestureParticipation => {
302
298
  const canDismiss = resolveGestureCanDismiss({
303
299
  isFirstKey,
@@ -325,23 +321,19 @@ const resolveGestureParticipation = ({
325
321
  canTrackGesture,
326
322
  effectiveSnapPoints,
327
323
  claimedDirections,
328
- ownershipStatus: resolveOwnership(claimedDirections, ancestorGestures),
329
324
  };
330
325
  };
331
326
 
332
327
  export const resolveScreenGestureConfig = ({
333
328
  options,
334
329
  isFirstKey,
335
- ancestorGestures,
336
330
  }: {
337
331
  options: ScreenTransitionConfig;
338
332
  isFirstKey: boolean;
339
- ancestorGestures: readonly ScreenGestureSource[];
340
333
  }): ScreenGestureConfig => {
341
334
  const participation = resolveGestureParticipation({
342
335
  options,
343
336
  isFirstKey,
344
- ancestorGestures,
345
337
  });
346
338
  const hasSnapPoints = participation.effectiveSnapPoints.hasSnapPoints;
347
339
 
@@ -25,7 +25,7 @@ import type {
25
25
  } from "../../../types/gesture.types";
26
26
  import type {
27
27
  ClaimedDirections,
28
- DirectionOwnership,
28
+ Direction,
29
29
  } from "../../../types/ownership.types";
30
30
  import type { ScreenTransitionConfig } from "../../../types/screen.types";
31
31
  import type { EffectiveSnapPointsResult } from "./shared/snap-points";
@@ -52,19 +52,9 @@ export type {
52
52
  ScrollMetadataState,
53
53
  };
54
54
 
55
- export type DirectionClaim = {
56
- routeKey: string;
57
- isDismissing: SharedValue<number>;
58
- } | null;
59
-
60
- export type DirectionClaimMap = {
61
- vertical: DirectionClaim;
62
- "vertical-inverted": DirectionClaim;
63
- horizontal: DirectionClaim;
64
- "horizontal-inverted": DirectionClaim;
65
- };
55
+ export type GestureOwnerMap = Record<Direction, string | null>;
66
56
 
67
- export const NO_DIRECTION_CLAIMS: DirectionClaimMap = {
57
+ export const NO_GESTURE_OWNERS: GestureOwnerMap = {
68
58
  vertical: null,
69
59
  "vertical-inverted": null,
70
60
  horizontal: null,
@@ -77,13 +67,9 @@ export interface ScreenGestureSource {
77
67
  panGesture: PanGesture;
78
68
  pinchGesture: PinchGesture;
79
69
  scrollState: SharedValue<ScrollGestureState | null>;
80
- claimedDirections: ClaimedDirections;
81
- childDirectionClaims: SharedValue<DirectionClaimMap>;
82
70
  }
83
71
 
84
- export interface GestureContextType extends ScreenGestureSource {
85
- ancestorGestures: readonly ScreenGestureSource[];
86
- }
72
+ export type GestureContextType = ScreenGestureSource;
87
73
 
88
74
  export interface ScreenGestureParticipation {
89
75
  /** Whether this route is the first route in its stack. First routes never track gestures. */
@@ -94,7 +80,6 @@ export interface ScreenGestureParticipation {
94
80
  canTrackGesture: boolean;
95
81
  effectiveSnapPoints: EffectiveSnapPointsResult;
96
82
  claimedDirections: ClaimedDirections;
97
- ownershipStatus: DirectionOwnership;
98
83
  }
99
84
 
100
85
  export interface ScreenGestureConfig {
@@ -2,44 +2,33 @@ import type React from "react";
2
2
  import { ScreenContainer } from "../../components/screen-container";
3
3
  import { ScreenLifecycle } from "../../components/screen-lifecycle";
4
4
  import { ScreenAnimationProvider } from "./animation";
5
- import { type BaseDescriptor, DescriptorsProvider } from "./descriptors";
5
+ import { DescriptorsProvider } from "./descriptors";
6
6
  import { ScreenGestureProvider } from "./gestures";
7
7
  import { ScreenOptionsProvider } from "./options";
8
8
  import { ScreenSlotProvider } from "./styles";
9
+ import { ScreenTopologyProvider } from "./topology";
9
10
 
10
11
  type Props = {
11
- previous?: BaseDescriptor;
12
- current?: BaseDescriptor;
13
- next?: BaseDescriptor;
14
- routeKey?: string;
12
+ routeKey: string;
15
13
  children: React.ReactNode;
16
14
  };
17
15
 
18
- export function ScreenComposer({
19
- previous,
20
- current,
21
- next,
22
- routeKey,
23
- children,
24
- }: Props) {
16
+ export function ScreenComposer({ routeKey, children }: Props) {
25
17
  return (
26
- <DescriptorsProvider
27
- previous={previous}
28
- current={current}
29
- next={next}
30
- routeKey={routeKey}
31
- >
32
- <ScreenLifecycle>
33
- <ScreenOptionsProvider>
34
- <ScreenGestureProvider>
35
- <ScreenAnimationProvider>
36
- <ScreenSlotProvider>
37
- <ScreenContainer>{children}</ScreenContainer>
38
- </ScreenSlotProvider>
39
- </ScreenAnimationProvider>
40
- </ScreenGestureProvider>
41
- </ScreenOptionsProvider>
42
- </ScreenLifecycle>
18
+ <DescriptorsProvider routeKey={routeKey}>
19
+ <ScreenTopologyProvider>
20
+ <ScreenLifecycle>
21
+ <ScreenOptionsProvider>
22
+ <ScreenGestureProvider>
23
+ <ScreenAnimationProvider>
24
+ <ScreenSlotProvider>
25
+ <ScreenContainer>{children}</ScreenContainer>
26
+ </ScreenSlotProvider>
27
+ </ScreenAnimationProvider>
28
+ </ScreenGestureProvider>
29
+ </ScreenOptionsProvider>
30
+ </ScreenLifecycle>
31
+ </ScreenTopologyProvider>
43
32
  </DescriptorsProvider>
44
33
  );
45
34
  }
@@ -22,6 +22,7 @@ const IDENTITY_TRANSFORM = [
22
22
  * please add its identity value here in a PR.
23
23
  */
24
24
  export const STYLE_RESET_VALUES: Record<string, unknown> = {
25
+ filter: [{ blur: 0.01 }],
25
26
  transform: IDENTITY_TRANSFORM,
26
27
  translateX: 0,
27
28
  translateY: 0,
@@ -67,6 +68,7 @@ export const PROP_RESET_VALUES: Record<string, unknown> = {
67
68
  const RESERVED_STYLE_SLOT_IDS = {
68
69
  overlay: true,
69
70
  content: true,
71
+ surface: true,
70
72
  backdrop: true,
71
73
  [NAVIGATION_MASK_ELEMENT_STYLE_ID]: true,
72
74
  [NAVIGATION_MASK_CONTAINER_STYLE_ID]: true,
@@ -1,7 +1,4 @@
1
- import type {
2
- ScreenInterpolationProps,
3
- ScreenTransitionAccessor,
4
- } from "../../../../types/animation.types";
1
+ import type { ScreenInterpolationProps } from "../../../../types/animation.types";
5
2
  import { createBoundsAccessor } from "../../../../utils/bounds";
6
3
  import type { ScreenInterpolatorFrame } from "../../animation/helpers/pipeline";
7
4
  import type { SelectedInterpolatorFrame } from "./select-interpolator-frame";
@@ -9,11 +6,9 @@ import type { SelectedInterpolatorFrame } from "./select-interpolator-frame";
9
6
  export const createInterpolatorScope = ({
10
7
  frame,
11
8
  selectedFrame,
12
- transition,
13
9
  }: {
14
10
  frame: ScreenInterpolatorFrame;
15
11
  selectedFrame: SelectedInterpolatorFrame;
16
- transition: ScreenTransitionAccessor;
17
12
  }): ScreenInterpolationProps => {
18
13
  "worklet";
19
14
 
@@ -21,25 +16,11 @@ export const createInterpolatorScope = ({
21
16
  ...frame,
22
17
  ...selectedFrame,
23
18
  };
24
- let scope: ScreenInterpolationProps;
25
- const scopedTransition: ScreenTransitionAccessor = (target) => {
26
- "worklet";
27
-
28
- if ((target?.depth ?? 0) === 0) {
29
- return scope;
30
- }
31
-
32
- return transition(target);
33
- };
34
-
35
- scope = {
19
+ return {
36
20
  ...selectedProps,
37
21
  bounds: createBoundsAccessor(() => {
38
22
  "worklet";
39
23
  return selectedProps;
40
24
  }),
41
- transition: scopedTransition,
42
25
  };
43
-
44
- return scope;
45
26
  };
@@ -1,29 +1,14 @@
1
1
  import { useMemo } from "react";
2
2
  import { useAnimatedProps, useAnimatedStyle } from "react-native-reanimated";
3
3
  import { NO_PROPS, NO_STYLES } from "../../../../constants";
4
- import { useNavigationRoute } from "../../../navigation/navigation-host.provider";
5
4
  import {
6
5
  composeSlotStyleWithLocalTransform,
7
6
  getLocalTransformForSlotComposition,
8
7
  } from "../helpers/compose-slot-style";
9
- import { useOptionalScreenSlotStore } from "../slot.provider";
8
+ import { useScreenSlotStore } from "../slot.provider";
10
9
 
11
10
  const useCurrentScreenSlotsMap = () => {
12
- const routeKey = useNavigationRoute().key;
13
- const localSlotsMap = useOptionalScreenSlotStore(
14
- (store) => store?.slotsMap ?? null,
15
- );
16
- const keyedSlotsMap = useOptionalScreenSlotStore(
17
- localSlotsMap ? null : routeKey,
18
- (store) => store.slotsMap,
19
- );
20
- const slotsMap = localSlotsMap ?? keyedSlotsMap;
21
-
22
- if (!slotsMap) {
23
- throw new Error(`ScreenSlotStore is unavailable for route "${routeKey}"`);
24
- }
25
-
26
- return slotsMap;
11
+ return useScreenSlotStore((store) => store.slotsMap);
27
12
  };
28
13
 
29
14
  export const useSlotStyles = (slotId: string | undefined) => {
@@ -1,4 +1,3 @@
1
- import { useMemo } from "react";
2
1
  import {
3
2
  type SharedValue,
4
3
  useAnimatedReaction,
@@ -18,16 +17,13 @@ import type {
18
17
  } from "../../../../types/animation.types";
19
18
  import { logger } from "../../../../utils/logger";
20
19
  import { useScreenAnimationStore } from "../../animation";
21
- import { useBuildTransitionAccessor } from "../../animation/helpers/accessors/use-build-transition-accessor";
22
20
  import type { ScreenInterpolatorFrame } from "../../animation/helpers/pipeline";
23
- import { readScreenAnimationRevisions } from "../../animation/helpers/read-screen-animation-revisions";
24
21
  import { syncSelectedInterpolatorOptions } from "../../animation/helpers/selected-interpolator-options";
25
22
  import { useDescriptorsStore } from "../../descriptors";
26
23
  import {
27
24
  syncScreenOptionsOverrides,
28
25
  useScreenOptionsStore,
29
26
  } from "../../options";
30
- import { collectInterpolatorSharedValues } from "../helpers/collect-interpolator-shared-values";
31
27
  import { createInterpolatorScope } from "../helpers/create-interpolator-scope";
32
28
  import { normalizeSlots } from "../helpers/normalize-slots";
33
29
  import { resolveInterpolatorStyleHandoff } from "../helpers/resolve-interpolator-style-handoff";
@@ -55,7 +51,6 @@ type RunInterpolatorParams = {
55
51
  interpolator: ScreenStyleInterpolator | undefined;
56
52
  props: ScreenInterpolatorFrame;
57
53
  selectedFrame: SelectedInterpolatorFrame;
58
- transition: Parameters<ScreenStyleInterpolator>[0]["transition"];
59
54
  };
60
55
 
61
56
  const normalizeRawStyleMap = (
@@ -76,7 +71,6 @@ const runInterpolator = ({
76
71
  interpolator,
77
72
  props,
78
73
  selectedFrame,
79
- transition,
80
74
  }: RunInterpolatorParams): InterpolatorResult | undefined => {
81
75
  "worklet";
82
76
 
@@ -89,7 +83,6 @@ const runInterpolator = ({
89
83
  createInterpolatorScope({
90
84
  frame: props,
91
85
  selectedFrame,
92
- transition,
93
86
  }),
94
87
  );
95
88
 
@@ -157,16 +150,6 @@ export const useInterpolatedStylesMap = ({
157
150
  const currentInterpolator = useScreenAnimationStore(
158
151
  (store) => store.currentInterpolator,
159
152
  );
160
- const transitionSources = useScreenAnimationStore(
161
- (store) => store.transitionSources,
162
- );
163
- const transitionOriginIndex = useScreenAnimationStore(
164
- (store) => store.transitionOriginIndex,
165
- );
166
- const transition = useBuildTransitionAccessor({
167
- transitionSources,
168
- transitionOriginIndex,
169
- });
170
153
  const hasCurrentInterpolator = !!currentInterpolator;
171
154
  const { closing: currentClosing, entering: currentEntering } =
172
155
  AnimationStore.getBag(currentScreenKey);
@@ -194,14 +177,6 @@ export const useInterpolatedStylesMap = ({
194
177
  : 0;
195
178
  });
196
179
 
197
- // In some cases, a user may want to use external shared values to drive animations in the interpoaltor.
198
- // We can now support this by collecting those shared values and reading them here to trigger an update.
199
- const interpolatorSharedValues = useMemo(
200
- () =>
201
- collectInterpolatorSharedValues([currentInterpolator, nextInterpolator]),
202
- [currentInterpolator, nextInterpolator],
203
- );
204
-
205
180
  const activeScreenKey = nextScreenKey ?? currentScreenKey;
206
181
  const { closing: activeClosing, entering: activeEntering } =
207
182
  AnimationStore.getBag(activeScreenKey);
@@ -236,8 +211,6 @@ export const useInterpolatedStylesMap = ({
236
211
  );
237
212
 
238
213
  const localStylesMaps = useDerivedValue<LocalStyleLayers>(() => {
239
- "worklet";
240
- readScreenAnimationRevisions(transitionSources, interpolatorSharedValues);
241
214
  const props = screenInterpolatorProps.get();
242
215
 
243
216
  const { current, next } = props;
@@ -298,7 +271,6 @@ export const useInterpolatedStylesMap = ({
298
271
  interpolator: currentInterpolator,
299
272
  props,
300
273
  selectedFrame: currentSelectedFrame,
301
- transition,
302
274
  });
303
275
 
304
276
  const initialDestinationStyleGate = resolveInitialDestinationStyleGate({
@@ -335,7 +307,6 @@ export const useInterpolatedStylesMap = ({
335
307
  interpolator: nextInterpolator,
336
308
  props,
337
309
  selectedFrame: nextSelectedFrame,
338
- transition,
339
310
  });
340
311
 
341
312
  syncSelectedInterpolatorOptions(