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
@@ -61,7 +61,7 @@ export function useScreenState<
61
61
  TNavigation extends BaseStackNavigation = BaseStackNavigation,
62
62
  >(): ScreenState<TNavigation> {
63
63
  const { routes, scenes, routeKeys, focusedIndex } = useBlankStackStore();
64
- const current = useDescriptorsStore((store) => store.current);
64
+ const current = useDescriptorsStore((store) => store.descriptors.current);
65
65
 
66
66
  const index = useMemo(
67
67
  () => routeKeys.indexOf(current.route.key),
package/src/index.ts CHANGED
@@ -50,7 +50,7 @@ export {
50
50
  export type {
51
51
  AnimatedViewStyle,
52
52
  AnimationConfig,
53
- BoundaryTeleportControl,
53
+ BoundaryHandoffTarget,
54
54
  BoundsMotion,
55
55
  BoundsMotionFrame,
56
56
  BoundsMotionTransform,
@@ -73,7 +73,8 @@ export type {
73
73
  ScreenInterpolationProps,
74
74
  ScreenLayerComponentProps,
75
75
  ScreenStyleInterpolator,
76
- ScreenTransitionAccessor,
76
+ ScreenSurfaceComponent,
77
+ ScreenSurfaceComponentProps,
77
78
  ScreenTransitionConfig,
78
79
  ScreenTransitionDepthTarget,
79
80
  ScreenTransitionTarget,
@@ -1,19 +1,6 @@
1
- import * as React from "react";
2
- import {
3
- createStandardNavigator,
4
- type NavigatorDescriptor,
5
- } from "standard-navigation";
1
+ import { createStandardNavigator } from "standard-navigation";
6
2
  import { StackView } from "../components/stack-view";
7
- import {
8
- type NavigationHostContextValue,
9
- NavigationHostProvider,
10
- } from "../providers/navigation/navigation-host.provider";
11
- import type {
12
- BlankStackDescriptor,
13
- BlankStackFactoryOptions,
14
- BlankStackNavigationHelpers,
15
- BlankStackNavigationOptions,
16
- } from "../types/blank-stack.types";
3
+ import type { BlankStackNavigationOptions } from "../types/blank-stack.types";
17
4
  import type {
18
5
  BaseStackNavigation,
19
6
  BaseStackRoute,
@@ -22,122 +9,27 @@ import type {
22
9
 
23
10
  export type BlankStackStandardEventMap = {};
24
11
 
25
- export type BlankStackStandardNavigatorProps = BlankStackFactoryOptions & {
12
+ export type BlankStackStandardNavigatorProps = {
26
13
  navigationState?: BaseStackState<BaseStackRoute>;
27
14
  navigation?: BaseStackNavigation;
28
- navigationHost?: NavigationHostContextValue;
29
- };
30
-
31
- type StandardDescriptor = NavigatorDescriptor<BlankStackNavigationOptions> & {
32
- navigation?: BaseStackNavigation;
33
- route?: BaseStackRoute;
34
15
  };
35
16
 
36
- type StandardDescriptorMap = Record<string, StandardDescriptor>;
37
- type BlankStackDescriptorMap = Record<string, BlankStackDescriptor>;
38
-
39
- function createDescriptorMap({
40
- routes,
41
- descriptors,
42
- navigation,
43
- }: {
44
- routes: BaseStackRoute[];
45
- descriptors: StandardDescriptorMap;
46
- navigation: BaseStackNavigation;
47
- }): BlankStackDescriptorMap {
48
- const result: BlankStackDescriptorMap = {};
49
-
50
- for (const route of routes) {
51
- const descriptor = descriptors[route.key];
52
-
53
- if (!descriptor) {
54
- continue;
55
- }
56
-
57
- result[route.key] = {
58
- route: descriptor.route ?? route,
59
- navigation: (descriptor.navigation ??
60
- navigation) as BlankStackDescriptor["navigation"],
61
- options: descriptor.options,
62
- render: () => descriptor.render() as React.JSX.Element,
63
- };
64
- }
65
-
66
- return result;
67
- }
68
-
69
17
  export const BlankStackNavigator = createStandardNavigator<
70
18
  BlankStackNavigationOptions,
71
19
  BlankStackStandardEventMap,
72
20
  BlankStackStandardNavigatorProps
73
- >(
74
- ({
75
- actions,
76
- descriptors,
77
- state,
78
- navigation,
79
- navigationHost,
80
- navigationState,
81
- }) => {
82
- const stackState = navigationState ?? {
83
- key: "blank-stack",
84
- index: state.index,
85
- routes: state.routes as BaseStackRoute[],
86
- };
87
- const stackStateRef = React.useRef(stackState);
88
- stackStateRef.current = stackState;
89
-
90
- const fallbackNavigation = React.useMemo<BaseStackNavigation>(
91
- () => ({
92
- getState: () => stackStateRef.current,
93
- dispatch: (action) => {
94
- if (action?.type === "GO_BACK" || action?.type === "POP") {
95
- actions.back();
96
- return;
97
- }
98
-
99
- const name = action?.payload?.name;
100
- if (action?.type === "NAVIGATE" && typeof name === "string") {
101
- actions.navigate(name, action.payload.params);
102
- }
103
- },
104
- }),
105
- [actions],
106
- );
107
- const stackNavigation = navigation ?? fallbackNavigation;
108
- const stackDescriptors = React.useMemo(
109
- () =>
110
- createDescriptorMap({
111
- routes: stackState.routes,
112
- descriptors,
113
- navigation: stackNavigation,
114
- }),
115
- [descriptors, stackNavigation, stackState.routes],
116
- );
117
- const describe = React.useCallback(
118
- (route: BlankStackDescriptor["route"]) => {
119
- const descriptor = stackDescriptors[route.key];
120
-
121
- if (!descriptor) {
122
- throw new Error(
123
- `BlankStack could not find a descriptor for route "${route.key}".`,
124
- );
125
- }
126
-
127
- return descriptor;
128
- },
129
- [stackDescriptors],
21
+ >(({ descriptors, navigation, navigationState }) => {
22
+ if (!navigationState || !navigation) {
23
+ throw new Error(
24
+ "BlankStack requires navigation state and helpers from its integration.",
130
25
  );
26
+ }
131
27
 
132
- return (
133
- <NavigationHostProvider value={navigationHost}>
134
- <StackView
135
- state={stackState}
136
- navigation={stackNavigation as BlankStackNavigationHelpers}
137
- descriptors={stackDescriptors}
138
- describe={describe}
139
- />
140
- </NavigationHostProvider>
141
- );
142
- },
143
- );
28
+ return (
29
+ <StackView
30
+ state={navigationState}
31
+ navigation={navigation}
32
+ descriptors={descriptors}
33
+ />
34
+ );
35
+ });
@@ -4,11 +4,6 @@ import {
4
4
  type StackRouterOptions,
5
5
  unstable_integrateWithRouter,
6
6
  } from "expo-router";
7
- import {
8
- NavigationContext,
9
- NavigationRouteContext,
10
- } from "expo-router/react-navigation";
11
- import type { NavigationScreenProviderComponent } from "../../providers/navigation/navigation-host.provider";
12
7
  import type { BlankStackNavigationOptions } from "../../types/blank-stack.types";
13
8
  import {
14
9
  BlankStackNavigator,
@@ -18,22 +13,6 @@ import {
18
13
 
19
14
  type BlankStackExpoRouterParamList = Record<string, object | undefined>;
20
15
 
21
- const ExpoRouterScreenProvider: NavigationScreenProviderComponent = ({
22
- children,
23
- navigation,
24
- route,
25
- }) => (
26
- <NavigationContext.Provider value={navigation as never}>
27
- <NavigationRouteContext.Provider value={route as never}>
28
- {children}
29
- </NavigationRouteContext.Provider>
30
- </NavigationContext.Provider>
31
- );
32
-
33
- const expoRouterNavigationHost = {
34
- ScreenProvider: ExpoRouterScreenProvider,
35
- };
36
-
37
16
  export const BlankStack = unstable_integrateWithRouter<
38
17
  BlankStackNavigationOptions,
39
18
  StackNavigationState<BlankStackExpoRouterParamList>,
@@ -44,14 +23,12 @@ export const BlankStack = unstable_integrateWithRouter<
44
23
  createProps: ({ state, navigation }) => ({
45
24
  navigationState: state,
46
25
  navigation,
47
- navigationHost: expoRouterNavigationHost,
48
26
  }),
49
27
  });
50
28
 
51
29
  export const BlankStackScreen = BlankStack.Screen;
52
30
 
53
31
  export type {
54
- BlankStackFactoryOptions,
55
32
  BlankStackNavigationEventMap,
56
33
  BlankStackNavigationOptions,
57
34
  BlankStackNavigationProp,
@@ -6,7 +6,6 @@ import {
6
6
  type StackRouterOptions,
7
7
  type StandardNavigationTypeBagBase,
8
8
  } from "@react-navigation/native";
9
- import { reactNavigationHost } from "../../providers/navigation/react-navigation-host";
10
9
  import type {
11
10
  BlankStackNavigationEventMap,
12
11
  BlankStackNavigationOptions,
@@ -33,11 +32,9 @@ export const {
33
32
  >(BlankStackNavigator, StackRouter, ({ state, navigation }) => ({
34
33
  navigationState: state,
35
34
  navigation,
36
- navigationHost: reactNavigationHost,
37
35
  }));
38
36
 
39
37
  export type {
40
- BlankStackFactoryOptions,
41
38
  BlankStackNavigationEventMap,
42
39
  BlankStackNavigationOptions,
43
40
  BlankStackNavigationProp,
@@ -1,10 +1,10 @@
1
1
  import { type ReactNode, useMemo } from "react";
2
+ import type { BoundsAccessor } from "../../../types/bounds.types";
2
3
  import { createBoundsAccessor } from "../../../utils/bounds";
3
4
  import createProvider from "../../../utils/create-provider";
5
+ import { useBlankStackStore } from "../../stack/blank-stack.provider";
4
6
  import { useDescriptorsStore } from "../descriptors";
5
- import { useCurrentScreenRelationships } from "../use-current-screen-relationships";
6
7
  import { useScreenAnimationPipeline } from "./helpers/pipeline";
7
- import type { ScreenAnimationTransitionSource } from "./types";
8
8
 
9
9
  type Props = {
10
10
  children: ReactNode;
@@ -13,76 +13,42 @@ type Props = {
13
13
  export type ScreenAnimationContextValue = ReturnType<
14
14
  typeof useScreenAnimationPipeline
15
15
  > & {
16
- transitionSources: readonly ScreenAnimationTransitionSource[];
17
- transitionOriginIndex: number;
18
- transitionSourcesThroughSelf: readonly ScreenAnimationTransitionSource[];
19
- transitionSourcesFromSelf: readonly ScreenAnimationTransitionSource[];
16
+ boundsAccessor: BoundsAccessor;
20
17
  };
21
18
 
22
- const EMPTY_TRANSITION_SOURCES: readonly ScreenAnimationTransitionSource[] = [];
23
-
24
- const createScreenAnimationProvider = createProvider("ScreenAnimation", {
25
- global: true,
26
- })<Props, ScreenAnimationContextValue>;
27
-
28
19
  export const {
20
+ StoreProvider: ScreenAnimationStoreProvider,
29
21
  ScreenAnimationProvider,
30
22
  useOptionalScreenAnimationStore,
31
23
  useScreenAnimationStore,
32
- }: ReturnType<typeof createScreenAnimationProvider> =
33
- createScreenAnimationProvider((_props) => {
34
- const currentScreenKey = useDescriptorsStore(
35
- (store) => store.derivations.currentScreenKey,
36
- );
37
- const relationships = useCurrentScreenRelationships();
38
- const pipeline = useScreenAnimationPipeline();
24
+ } = createProvider("ScreenAnimation", {
25
+ global: true,
26
+ })<Props, ScreenAnimationContextValue>(() => {
27
+ const currentScreenKey = useDescriptorsStore(
28
+ (store) => store.derivations.currentScreenKey,
29
+ );
30
+ const isClosing = useBlankStackStore(
31
+ (store) => store.scenesByKey[currentScreenKey]?.activity === "closing",
32
+ );
33
+ const pipeline = useScreenAnimationPipeline();
34
+
35
+ const { screenInterpolatorProps } = pipeline;
39
36
 
40
- const screenAnimationSource = useMemo<ScreenAnimationTransitionSource>(
41
- () => ({
42
- screenInterpolatorProps: pipeline.screenInterpolatorProps,
43
- screenInterpolatorPropsRevision:
44
- pipeline.screenInterpolatorPropsRevision,
45
- boundsAccessor: createBoundsAccessor(() => {
46
- "worklet";
47
- return pipeline.screenInterpolatorProps.get();
48
- }),
37
+ const boundsAccessor = useMemo(
38
+ () =>
39
+ createBoundsAccessor(() => {
40
+ "worklet";
41
+ return screenInterpolatorProps.get();
49
42
  }),
50
- [
51
- pipeline.screenInterpolatorProps,
52
- pipeline.screenInterpolatorPropsRevision,
53
- ],
54
- );
55
- const ancestorSources =
56
- useOptionalScreenAnimationStore(
57
- relationships.parentScreenKey,
58
- (store) => store.transitionSourcesThroughSelf,
59
- ) ?? EMPTY_TRANSITION_SOURCES;
60
- const descendantSources =
61
- useOptionalScreenAnimationStore(
62
- relationships.activeChildScreenKey,
63
- (store) => store.transitionSourcesFromSelf,
64
- ) ?? EMPTY_TRANSITION_SOURCES;
65
- const transitionSourcesThroughSelf = useMemo(
66
- () => [...ancestorSources, screenAnimationSource],
67
- [ancestorSources, screenAnimationSource],
68
- );
69
- const transitionSourcesFromSelf = useMemo(
70
- () => [screenAnimationSource, ...descendantSources],
71
- [screenAnimationSource, descendantSources],
72
- );
73
- const transitionSources = useMemo(
74
- () => [...transitionSourcesThroughSelf, ...descendantSources],
75
- [transitionSourcesThroughSelf, descendantSources],
76
- );
43
+ [screenInterpolatorProps],
44
+ );
77
45
 
78
- return {
79
- key: currentScreenKey,
80
- value: {
81
- ...pipeline,
82
- transitionSources,
83
- transitionOriginIndex: ancestorSources.length,
84
- transitionSourcesThroughSelf,
85
- transitionSourcesFromSelf,
86
- },
87
- };
88
- });
46
+ return {
47
+ key: currentScreenKey,
48
+ unregisterOnCleanup: isClosing,
49
+ value: {
50
+ ...pipeline,
51
+ boundsAccessor,
52
+ },
53
+ };
54
+ });
@@ -34,9 +34,8 @@ export type ScreenInterpolatorFrame = Omit<
34
34
  "bounds" | "transition"
35
35
  >;
36
36
 
37
- interface ScreenAnimationPipeline {
38
- screenInterpolatorProps: SharedValue<ScreenInterpolatorFrame>;
39
- screenInterpolatorPropsRevision: DerivedValue<number>;
37
+ export interface ScreenAnimationPipeline {
38
+ screenInterpolatorProps: DerivedValue<ScreenInterpolatorFrame>;
40
39
  selectedInterpolatorOptions: SharedValue<SelectedInterpolatorOptions>;
41
40
  nextInterpolator: ScreenStyleInterpolator | undefined;
42
41
  currentInterpolator: ScreenStyleInterpolator | undefined;
@@ -281,9 +280,13 @@ export function useScreenAnimationPipeline(): ScreenAnimationPipeline {
281
280
  [routeKeys],
282
281
  );
283
282
 
284
- const currDescriptor = useDescriptorsStore((store) => store.current);
285
- const nextDescriptor = useDescriptorsStore((store) => store.next);
286
- const prevDescriptor = useDescriptorsStore((store) => store.previous);
283
+ const currDescriptor = useDescriptorsStore(
284
+ (store) => store.descriptors.current,
285
+ );
286
+ const nextDescriptor = useDescriptorsStore((store) => store.descriptors.next);
287
+ const prevDescriptor = useDescriptorsStore(
288
+ (store) => store.descriptors.previous,
289
+ );
287
290
  const currentAnimation = useBuildTransitionState(currDescriptor);
288
291
  const nextAnimation = useBuildTransitionState(nextDescriptor);
289
292
  const prevAnimation = useBuildTransitionState(prevDescriptor);
@@ -306,20 +309,16 @@ export function useScreenAnimationPipeline(): ScreenAnimationPipeline {
306
309
  [dimensions, insets, currDescriptor, nextDescriptor, prevDescriptor],
307
310
  );
308
311
 
309
- const screenInterpolatorProps = useSharedValue(initialInterpolatorProps);
310
312
  const selectedInterpolatorOptions =
311
313
  useSharedValue<SelectedInterpolatorOptions>({
312
314
  owner: "current",
313
315
  });
314
-
315
- const propsRevisionState = useSharedValue({ value: 0 });
316
- const screenInterpolatorPropsRevision = useDerivedValue<number>(() => {
317
- "worklet";
318
- screenInterpolatorProps.modify((frame) => {
316
+ const screenInterpolatorProps = useDerivedValue<ScreenInterpolatorFrame>(
317
+ () => {
319
318
  "worklet";
320
319
  const interpolatorOptions = selectedInterpolatorOptions.get();
321
320
  return hydrateInterpolatorFrame({
322
- frame,
321
+ frame: { ...initialInterpolatorProps },
323
322
  dimensions,
324
323
  insets,
325
324
  currentAnimation,
@@ -330,25 +329,14 @@ export function useScreenAnimationPipeline(): ScreenAnimationPipeline {
330
329
  stackProgressEntries,
331
330
  currentRouteKey,
332
331
  });
333
- }, false);
334
-
335
- // `screenInterpolatorProps` is mutated in place. Consumers read this
336
- // revision first so Reanimated subscribes to the hydrated frame.
337
- propsRevisionState.modify((revision) => {
338
- "worklet";
339
- revision.value += 1;
340
- return revision;
341
- }, false);
342
-
343
- return propsRevisionState.get().value;
344
- });
332
+ },
333
+ );
345
334
 
346
335
  const nextInterpolator = nextDescriptor?.options.screenStyleInterpolator;
347
336
  const currentInterpolator = currDescriptor.options.screenStyleInterpolator;
348
337
 
349
338
  return {
350
339
  screenInterpolatorProps,
351
- screenInterpolatorPropsRevision,
352
340
  selectedInterpolatorOptions,
353
341
  nextInterpolator,
354
342
  currentInterpolator,
@@ -1,14 +1,3 @@
1
- import type { SharedValue } from "react-native-reanimated";
2
1
  import type { ScreenTransitionTarget } from "../../../types/animation.types";
3
- import type { BoundsAccessor } from "../../../types/bounds.types";
4
- import type { ScreenInterpolatorFrame } from "./helpers/pipeline";
5
-
6
- export type ScreenInterpolatorPropsRevision = Pick<SharedValue<number>, "get">;
7
2
 
8
3
  export type ScreenAnimationTarget = ScreenTransitionTarget;
9
-
10
- export type ScreenAnimationTransitionSource = {
11
- screenInterpolatorProps: SharedValue<ScreenInterpolatorFrame>;
12
- screenInterpolatorPropsRevision: ScreenInterpolatorPropsRevision;
13
- boundsAccessor: BoundsAccessor;
14
- };
@@ -3,10 +3,12 @@ import type {
3
3
  ScreenInterpolationProps,
4
4
  ScreenTransitionTarget,
5
5
  } from "../../../types/animation.types";
6
- import { useNavigationRoute } from "../../navigation/navigation-host.provider";
7
- import { useOptionalScreenAnimationStore } from "./animation.provider";
8
- import { useBuildTransitionAccessor } from "./helpers/accessors/use-build-transition-accessor";
9
- import { readScreenAnimationRevisions } from "./helpers/read-screen-animation-revisions";
6
+ import { useOptionalDescriptorsStore } from "../descriptors";
7
+ import { useResolvedTransitionKey } from "../topology";
8
+ import {
9
+ useOptionalScreenAnimationStore,
10
+ useScreenAnimationStore,
11
+ } from "./animation.provider";
10
12
  import type { ScreenAnimationTarget } from "./types";
11
13
 
12
14
  export type { ScreenAnimationTarget } from "./types";
@@ -23,27 +25,45 @@ export function useScreenAnimation(
23
25
  ):
24
26
  | DerivedValue<ScreenInterpolationProps>
25
27
  | DerivedValue<ScreenInterpolationProps | null> {
26
- const routeKey = useNavigationRoute().key;
27
- const localAnimationStore = useOptionalScreenAnimationStore();
28
- const keyedAnimationStore = useOptionalScreenAnimationStore(
29
- localAnimationStore ? null : routeKey,
28
+ const currentKey = useOptionalDescriptorsStore(
29
+ (store) => store?.derivations.currentScreenKey ?? null,
30
30
  );
31
- const screenAnimationStore = localAnimationStore ?? keyedAnimationStore;
32
31
 
33
- if (!screenAnimationStore) {
34
- throw new Error(
35
- `ScreenAnimationStore is unavailable for route "${routeKey}"`,
36
- );
37
- }
32
+ const localInterpolatorProps = useScreenAnimationStore(
33
+ (store) => store.screenInterpolatorProps,
34
+ );
35
+ const localBoundsAccessor = useScreenAnimationStore(
36
+ (store) => store.boundsAccessor,
37
+ );
38
+
39
+ const usesLocalStore =
40
+ target === undefined || (typeof target === "object" && target.depth === 0);
41
+
42
+ const screenKey = useResolvedTransitionKey(currentKey, target);
38
43
 
39
- const { transitionSources } = screenAnimationStore;
40
- const transition = useBuildTransitionAccessor(screenAnimationStore);
41
- const transitionTarget = target;
44
+ const keyedInterpolatorProps = useOptionalScreenAnimationStore(
45
+ usesLocalStore ? null : screenKey,
46
+ (store) => store.screenInterpolatorProps,
47
+ );
48
+ const keyedBoundsAccessor = useOptionalScreenAnimationStore(
49
+ usesLocalStore ? null : screenKey,
50
+ (store) => store.boundsAccessor,
51
+ );
52
+
53
+ const screenInterpolatorProps = usesLocalStore
54
+ ? localInterpolatorProps
55
+ : keyedInterpolatorProps;
56
+ const boundsAccessor = usesLocalStore
57
+ ? localBoundsAccessor
58
+ : keyedBoundsAccessor;
42
59
 
43
60
  const animation = useDerivedValue<ScreenInterpolationProps | null>(() => {
44
- "worklet";
45
- readScreenAnimationRevisions(transitionSources);
46
- return transition(transitionTarget);
61
+ if (!screenInterpolatorProps || !boundsAccessor) return null;
62
+
63
+ return {
64
+ ...screenInterpolatorProps.get(),
65
+ bounds: boundsAccessor,
66
+ };
47
67
  });
48
68
 
49
69
  return animation;