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
@@ -171,11 +171,7 @@ export type ScreenTransitionDepthTarget = {
171
171
  depth: number;
172
172
  };
173
173
 
174
- export type ScreenTransitionTarget = ScreenTransitionDepthTarget;
175
-
176
- export type ScreenTransitionAccessor = (
177
- target?: ScreenTransitionTarget,
178
- ) => ScreenInterpolationProps | null;
174
+ export type ScreenTransitionTarget = ScreenTransitionDepthTarget | string;
179
175
 
180
176
  export interface ScreenInterpolationProps {
181
177
  /**
@@ -237,20 +233,6 @@ export interface ScreenInterpolationProps {
237
233
  */
238
234
  bounds: BoundsAccessor;
239
235
 
240
- /**
241
- * Resolves interpolation props for this screen's transition timeline or an
242
- * ancestor/descendant transition timeline.
243
- *
244
- * Calling without a target returns the current transition.
245
- * `transition({ depth: -1 })` returns the immediate parent transition.
246
- * `transition({ depth: 1 })` returns the immediate child transition.
247
- * `transition({ depth: 0 })` returns the current transition.
248
- *
249
- * When called from a returned transition scope, targets are resolved relative
250
- * to that scope.
251
- */
252
- transition: ScreenTransitionAccessor;
253
-
254
236
  /**
255
237
  * The screen state that is currently driving the transition (either current or next, whichever is focused).
256
238
  */
@@ -279,19 +261,25 @@ export type ScreenStyleInterpolator = (
279
261
  */
280
262
  export type AnimatedViewStyle = ViewStyle & TextStyle;
281
263
 
282
- export type BoundaryTeleportControl =
283
- | boolean
284
- | {
285
- enabled?: boolean;
286
- };
264
+ /**
265
+ * Selects which matched boundary owns handoff content during a transition.
266
+ *
267
+ * `"auto"` follows the navigator's default ownership lifecycle. Use an
268
+ * explicit target when ownership needs to change at a precise interpolator
269
+ * frame, such as returning content to its source as soon as dismissal begins.
270
+ *
271
+ * @default "auto"
272
+ */
273
+ export type BoundaryHandoffTarget = "auto" | "source" | "destination";
287
274
 
288
275
  export type TransitionSlotProps = Record<string, unknown> & {
289
276
  /**
290
- * Controls whether a handoff or clipping-escape boundary should attach for
291
- * the current interpolator frame. `false` detaches the portal while keeping
292
- * hostName ownership internal.
277
+ * Selects which matched boundary owns handoff content for the current
278
+ * interpolator frame.
279
+ *
280
+ * @default "auto"
293
281
  */
294
- teleport?: BoundaryTeleportControl;
282
+ handoffTarget?: BoundaryHandoffTarget;
295
283
  };
296
284
 
297
285
  type TransitionSlotDefinition = {
@@ -1,7 +1,6 @@
1
1
  import type {
2
2
  DefaultNavigatorOptions,
3
3
  Descriptor,
4
- NavigationHelpers,
5
4
  NavigationProp,
6
5
  ParamListBase,
7
6
  RouteProp,
@@ -48,32 +47,6 @@ export type BlankStackOptionsArgs<
48
47
  theme: Theme;
49
48
  };
50
49
 
51
- export type BlankStackNavigationHelpers = NavigationHelpers<
52
- ParamListBase,
53
- BlankStackNavigationEventMap
54
- >;
55
-
56
- /**
57
- * Additional props accepted by the blank stack navigator.
58
- *
59
- * These can be passed to `<BlankStack.Navigator />` in the dynamic API, and
60
- * they are also supported as top-level keys in static navigator config.
61
- */
62
- export interface BlankStackFactoryOptions {
63
- /**
64
- * Creates an isolated navigation tree for embedded flows.
65
- *
66
- * Use this when the blank stack needs to live inside another screen or host
67
- * application without joining the parent React Navigation tree.
68
- *
69
- * When enabled, the navigator:
70
- * - wraps itself in `NavigationIndependentTree` + `NavigationContainer`
71
- *
72
- * Leave this disabled for normal top-level app stacks.
73
- */
74
- independent?: boolean;
75
- }
76
-
77
50
  /**
78
51
  * Props passed to overlay components in blank-stack.
79
52
  * Uses the shared OverlayProps type with blank-stack's navigation type.
@@ -121,8 +94,7 @@ export type BlankStackNavigatorProps = DefaultNavigatorOptions<
121
94
  BlankStackNavigationEventMap,
122
95
  BlankStackNavigationProp<ParamListBase>
123
96
  > &
124
- StackRouterOptions &
125
- BlankStackFactoryOptions;
97
+ StackRouterOptions;
126
98
 
127
99
  export type BlankStackDescriptor = Descriptor<
128
100
  BlankStackNavigationOptions,
@@ -229,9 +229,6 @@ export type BoundsAccessor = (
229
229
  options: BoundsIdentityInput,
230
230
  ) => BoundsScopedAccessor;
231
231
 
232
- export type BoundsInterpolationProps = Omit<
233
- ScreenInterpolationProps,
234
- "bounds" | "transition"
235
- >;
232
+ export type BoundsInterpolationProps = Omit<ScreenInterpolationProps, "bounds">;
236
233
 
237
234
  export type { BoundsMotion, BoundsMotionFrame, BoundsMotionTransform };
@@ -2,10 +2,9 @@ export { FALSE, TRUE } from "../constants";
2
2
  export type {
3
3
  AnimatedViewStyle,
4
4
  AnimationConfig,
5
- BoundaryTeleportControl,
5
+ BoundaryHandoffTarget,
6
6
  ScreenInterpolationProps,
7
7
  ScreenStyleInterpolator,
8
- ScreenTransitionAccessor,
9
8
  ScreenTransitionDepthTarget,
10
9
  ScreenTransitionOptions,
11
10
  ScreenTransitionState,
@@ -60,6 +59,8 @@ export type {
60
59
  ScreenContentComponentProps,
61
60
  ScreenKey,
62
61
  ScreenLayerComponentProps,
62
+ ScreenSurfaceComponent,
63
+ ScreenSurfaceComponentProps,
63
64
  ScreenTransitionConfig,
64
65
  SheetSnapBehavior,
65
66
  TransitionAwareProps,
@@ -5,7 +5,7 @@
5
5
  * 1. Gestures dismiss stacks, not screens
6
6
  * 2. Ownership is per-direction (4 independent directions)
7
7
  * 3. Shadowing: child claiming same direction blocks parent
8
- * 4. Inheritance: no local claim walks up tree to find owner
8
+ * 4. Inheritance: topology resolves the nearest claiming ancestor
9
9
  */
10
10
 
11
11
  /**
@@ -50,28 +50,3 @@ export const NO_CLAIMS: ClaimedDirections = {
50
50
  horizontal: false,
51
51
  "horizontal-inverted": false,
52
52
  };
53
-
54
- /**
55
- * Ownership status for a direction relative to the current screen.
56
- *
57
- * - 'self': Current screen owns this direction (should activate)
58
- * - 'ancestor': An ancestor owns this direction (should fail to bubble up)
59
- * - 'none': No one owns this direction (should fail, no gesture response)
60
- */
61
- export type OwnershipStatus = "self" | "ancestor" | "none";
62
-
63
- /**
64
- * Map of ownership status for all four directions.
65
- * Pre-computed during render for worklet access.
66
- */
67
- export type DirectionOwnership = Record<Direction, OwnershipStatus>;
68
-
69
- /**
70
- * Empty ownership - used when no gestures are configured anywhere.
71
- */
72
- export const NO_OWNERSHIP: DirectionOwnership = {
73
- vertical: "none",
74
- "vertical-inverted": "none",
75
- horizontal: "none",
76
- "horizontal-inverted": "none",
77
- };
@@ -1,24 +1,27 @@
1
- import type {
2
- BlankStackDescriptor,
3
- BlankStackNavigationHelpers,
4
- } from "../blank-stack.types";
1
+ import type { NavigatorDescriptor } from "standard-navigation";
2
+ import type { BlankStackNavigationOptions } from "../blank-stack.types";
5
3
  import type {
6
4
  BaseStackDescriptor,
5
+ BaseStackNavigation,
7
6
  BaseStackRoute,
8
7
  BaseStackScene,
9
8
  BaseStackState,
10
9
  } from "../stack.types";
11
10
 
12
11
  export interface BlankStackProviderProps {
13
- state: BaseStackState<BlankStackDescriptor["route"]>;
14
- navigation: BlankStackNavigationHelpers;
15
- descriptors: Record<string, BlankStackDescriptor>;
16
- describe: (
17
- route: BlankStackDescriptor["route"],
18
- placeholder: boolean,
19
- ) => BlankStackDescriptor;
12
+ state: BaseStackState<BaseStackRoute>;
13
+ navigation: BaseStackNavigation;
14
+ descriptors: BlankStackDescriptorSources;
20
15
  }
21
16
 
17
+ export type BlankStackDescriptorSource =
18
+ NavigatorDescriptor<BlankStackNavigationOptions>;
19
+
20
+ export type BlankStackDescriptorSources = Record<
21
+ string,
22
+ BlankStackDescriptorSource
23
+ >;
24
+
22
25
  export interface BlankStackStoreValue {
23
26
  navigatorKey: string;
24
27
  routeKeys: string[];
@@ -100,6 +100,17 @@ export type ScreenContentComponentProps = ScreenLayerComponentProps & {
100
100
  children: ReactNode;
101
101
  };
102
102
 
103
+ /**
104
+ * Props passed to {@linkcode ScreenTransitionConfig.surfaceComponent} when it
105
+ * is provided as a render-style component.
106
+ */
107
+ export type ScreenSurfaceComponentProps = ScreenLayerComponentProps & {
108
+ /**
109
+ * The screen subtree rendered inside the visual surface layer.
110
+ */
111
+ children: ReactNode;
112
+ };
113
+
103
114
  /**
104
115
  * Custom renderer for the backdrop layer.
105
116
  *
@@ -126,6 +137,20 @@ export type ScreenContentComponent =
126
137
  | ComponentType<any>
127
138
  | ComponentType<ScreenContentComponentProps>;
128
139
 
140
+ /**
141
+ * Custom renderer for the screen's visual surface layer.
142
+ *
143
+ * The surface is nested inside the content layer and does not contain the
144
+ * shared-element fallback host. Use it for visual effects such as filters,
145
+ * clipping, backgrounds, and corner treatments without changing navigation
146
+ * geometry.
147
+ *
148
+ * @see {@linkcode ScreenTransitionConfig.surfaceComponent}
149
+ */
150
+ export type ScreenSurfaceComponent =
151
+ | ComponentType<any>
152
+ | ComponentType<ScreenSurfaceComponentProps>;
153
+
129
154
  /**
130
155
  * Controls how an inactive screen is retained after it is no longer active.
131
156
  *
@@ -180,6 +205,16 @@ export type TransitionAwareProps<T extends object> = AnimatedProps<T> & {
180
205
  };
181
206
 
182
207
  export type ScreenTransitionConfig = {
208
+ /**
209
+ * Globally identifies this mounted screen for keyed animation observation.
210
+ *
211
+ * The key must be unique among mounted screens.
212
+ *
213
+ * @example
214
+ * options={{ transitionKey: "feed" }}
215
+ */
216
+ transitionKey?: string;
217
+
183
218
  /**
184
219
  * The user-provided function to calculate styles based on animation progress.
185
220
  *
@@ -441,4 +476,15 @@ export type ScreenTransitionConfig = {
441
476
  * @default undefined
442
477
  */
443
478
  contentComponent?: ScreenContentComponent;
479
+
480
+ /**
481
+ * Custom component to render as the screen's visual surface layer.
482
+ *
483
+ * The component receives the `surface` slot's animated styles and props. It
484
+ * is nested inside the content layer while shared-element fallback content
485
+ * remains outside it.
486
+ *
487
+ * @default undefined
488
+ */
489
+ surfaceComponent?: ScreenSurfaceComponent;
444
490
  };
@@ -74,6 +74,7 @@ type ResolvedOptionalProviderStoreHook<
74
74
  type ProviderFactoryResult<ContextValue, Global extends boolean> = {
75
75
  value: ContextValue;
76
76
  children?: ReactNode;
77
+ unregisterOnCleanup?: boolean;
77
78
  } & (Global extends true ? { key: string } : { key?: never });
78
79
 
79
80
  interface ProviderStoreApi<ContextValue> {
@@ -320,17 +321,23 @@ export default function createProvider<
320
321
  );
321
322
  const StoreProvider = ({
322
323
  children,
324
+ registerGlobally = true,
323
325
  storeKey,
326
+ unregisterOnCleanup = true,
324
327
  value,
325
328
  }: {
326
329
  children?: ReactNode;
330
+ registerGlobally?: boolean;
327
331
  storeKey?: string;
332
+ unregisterOnCleanup?: boolean;
328
333
  value: ContextValue;
329
334
  }) => {
330
335
  const storeRef = useRef<MutableProviderStoreApi<ContextValue> | null>(
331
336
  null,
332
337
  );
333
338
  const pendingNotifyRef = useRef(false);
339
+ const unregisterOnCleanupRef = useRef(unregisterOnCleanup);
340
+ unregisterOnCleanupRef.current = unregisterOnCleanup;
334
341
 
335
342
  if (storeRef.current === null) {
336
343
  storeRef.current = createProviderStore<ContextValue>(value);
@@ -338,7 +345,7 @@ export default function createProvider<
338
345
  const store = storeRef.current;
339
346
 
340
347
  useLayoutEffect(() => {
341
- if (!globalRegistry) {
348
+ if (!globalRegistry || !registerGlobally) {
342
349
  return;
343
350
  }
344
351
 
@@ -348,8 +355,14 @@ export default function createProvider<
348
355
  );
349
356
  }
350
357
 
351
- return globalRegistry.register(storeKey, store);
352
- }, [storeKey, store]);
358
+ const unregister = globalRegistry.register(storeKey, store);
359
+
360
+ return () => {
361
+ if (unregisterOnCleanupRef.current) {
362
+ unregister();
363
+ }
364
+ };
365
+ }, [registerGlobally, storeKey, store]);
353
366
 
354
367
  pendingNotifyRef.current =
355
368
  store.setSnapshot(value) || pendingNotifyRef.current;
@@ -373,10 +386,15 @@ export default function createProvider<
373
386
  const {
374
387
  children = (props as { children?: ReactNode }).children,
375
388
  key,
389
+ unregisterOnCleanup,
376
390
  value,
377
391
  } = factory(props);
378
392
  return (
379
- <StoreProvider storeKey={key} value={value}>
393
+ <StoreProvider
394
+ storeKey={key}
395
+ unregisterOnCleanup={unregisterOnCleanup}
396
+ value={value}
397
+ >
380
398
  {children}
381
399
  </StoreProvider>
382
400
  );
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.isTeleportEnabled = void 0;
7
- const isTeleportEnabled = teleport => {
8
- "worklet";
9
-
10
- if (typeof teleport === "boolean") {
11
- return teleport;
12
- }
13
- return teleport?.enabled !== false;
14
- };
15
- exports.isTeleportEnabled = isTeleportEnabled;
16
- //# sourceMappingURL=teleport-control.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["isTeleportEnabled","teleport","enabled","exports"],"sourceRoot":"../../../../../../src","sources":["components/boundary/portal/utils/teleport-control.ts"],"mappings":";;;;;;AAEO,MAAMA,iBAAiB,GAC7BC,QAA6C,IACzC;EACJ,SAAS;;EAET,IAAI,OAAOA,QAAQ,KAAK,SAAS,EAAE;IAClC,OAAOA,QAAQ;EAChB;EAEA,OAAOA,QAAQ,EAAEC,OAAO,KAAK,KAAK;AACnC,CAAC;AAACC,OAAA,CAAAH,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -1,147 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.screenTopology = exports.createScreenTopology = void 0;
7
- const EMPTY_RELATIONSHIPS = {
8
- parentScreenKey: null,
9
- activeChildScreenKey: null
10
- };
11
- const areRelationshipsEqual = (left, right) => left.parentScreenKey === right.parentScreenKey && left.activeChildScreenKey === right.activeChildScreenKey;
12
- const createScreenTopology = () => {
13
- const nodes = new Map();
14
- const listenersByScreenKey = new Map();
15
- const relationshipCache = new Map();
16
- const getNode = screenKey => nodes.get(screenKey);
17
- const ensureNode = screenKey => {
18
- const existing = getNode(screenKey);
19
- if (existing) return existing;
20
- const node = {
21
- parentScreenKey: null,
22
- activeChildScreenKeys: []
23
- };
24
- nodes.set(screenKey, node);
25
- return node;
26
- };
27
- const removeNodeIfEmpty = screenKey => {
28
- const node = getNode(screenKey);
29
- if (node && !node.parentScreenKey && node.activeChildScreenKeys.length === 0) {
30
- nodes.delete(screenKey);
31
- }
32
- };
33
- const getParent = screenKey => getNode(screenKey)?.parentScreenKey ?? null;
34
- const getActiveChild = screenKey => {
35
- const activeChildScreenKeys = getNode(screenKey)?.activeChildScreenKeys;
36
- return activeChildScreenKeys?.[activeChildScreenKeys.length - 1] ?? null;
37
- };
38
- const materializeRelationships = screenKey => {
39
- const parentScreenKey = getParent(screenKey);
40
- const activeChildScreenKey = getActiveChild(screenKey);
41
- if (!parentScreenKey && !activeChildScreenKey) {
42
- return EMPTY_RELATIONSHIPS;
43
- }
44
- return {
45
- parentScreenKey,
46
- activeChildScreenKey
47
- };
48
- };
49
- const getRelationships = screenKey => {
50
- const cached = relationshipCache.get(screenKey);
51
- if (cached) return cached;
52
- const relationships = materializeRelationships(screenKey);
53
- relationshipCache.set(screenKey, relationships);
54
- return relationships;
55
- };
56
- const mutate = (affectedScreenKeys, mutation) => {
57
- const previousRelationships = new Map();
58
- for (const screenKey of affectedScreenKeys) {
59
- if (listenersByScreenKey.has(screenKey)) {
60
- previousRelationships.set(screenKey, getRelationships(screenKey));
61
- }
62
- }
63
- mutation();
64
- for (const screenKey of affectedScreenKeys) {
65
- relationshipCache.delete(screenKey);
66
- }
67
- for (const [screenKey, previous] of previousRelationships) {
68
- const listeners = listenersByScreenKey.get(screenKey);
69
- if (!listeners) continue;
70
- const next = getRelationships(screenKey);
71
- if (areRelationshipsEqual(previous, next)) {
72
- relationshipCache.set(screenKey, previous);
73
- continue;
74
- }
75
- for (const listener of listeners) listener();
76
- }
77
- };
78
- const register = ({
79
- screenKey,
80
- parentScreenKey
81
- }) => {
82
- mutate(new Set([screenKey]), () => {
83
- ensureNode(screenKey).parentScreenKey = parentScreenKey ?? null;
84
- });
85
- };
86
- const unregister = screenKey => {
87
- const node = getNode(screenKey);
88
- if (!node) return;
89
- const affectedScreenKeys = new Set([screenKey]);
90
- if (node.parentScreenKey) {
91
- affectedScreenKeys.add(node.parentScreenKey);
92
- }
93
- mutate(affectedScreenKeys, () => {
94
- if (node.parentScreenKey) {
95
- const parent = getNode(node.parentScreenKey);
96
- if (parent) {
97
- parent.activeChildScreenKeys = parent.activeChildScreenKeys.filter(activeScreenKey => activeScreenKey !== screenKey);
98
- }
99
- removeNodeIfEmpty(node.parentScreenKey);
100
- }
101
- nodes.delete(screenKey);
102
- });
103
- };
104
- const activate = registration => {
105
- if (getParent(registration.screenKey) !== registration.parentScreenKey) {
106
- throw new Error("Screen topology can only activate a direct containment child.");
107
- }
108
- const affectedScreenKeys = new Set([registration.parentScreenKey]);
109
- mutate(affectedScreenKeys, () => {
110
- const parent = ensureNode(registration.parentScreenKey);
111
- parent.activeChildScreenKeys = [...parent.activeChildScreenKeys.filter(screenKey => screenKey !== registration.screenKey), registration.screenKey];
112
- });
113
- return () => {
114
- const parent = getNode(registration.parentScreenKey);
115
- if (!parent?.activeChildScreenKeys.includes(registration.screenKey)) {
116
- return;
117
- }
118
- mutate(affectedScreenKeys, () => {
119
- parent.activeChildScreenKeys = parent.activeChildScreenKeys.filter(screenKey => screenKey !== registration.screenKey);
120
- removeNodeIfEmpty(registration.parentScreenKey);
121
- });
122
- };
123
- };
124
- return {
125
- register,
126
- unregister,
127
- activate,
128
- getRelationships,
129
- subscribe: (screenKey, listener) => {
130
- const listeners = listenersByScreenKey.get(screenKey) ?? new Set();
131
- listeners.add(listener);
132
- listenersByScreenKey.set(screenKey, listeners);
133
- return () => {
134
- listeners.delete(listener);
135
- if (listeners.size === 0) {
136
- listenersByScreenKey.delete(screenKey);
137
- if (!getNode(screenKey)) {
138
- relationshipCache.delete(screenKey);
139
- }
140
- }
141
- };
142
- }
143
- };
144
- };
145
- exports.createScreenTopology = createScreenTopology;
146
- const screenTopology = exports.screenTopology = createScreenTopology();
147
- //# sourceMappingURL=create-screen-topology.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["EMPTY_RELATIONSHIPS","parentScreenKey","activeChildScreenKey","areRelationshipsEqual","left","right","createScreenTopology","nodes","Map","listenersByScreenKey","relationshipCache","getNode","screenKey","get","ensureNode","existing","node","activeChildScreenKeys","set","removeNodeIfEmpty","length","delete","getParent","getActiveChild","materializeRelationships","getRelationships","cached","relationships","mutate","affectedScreenKeys","mutation","previousRelationships","has","previous","listeners","next","listener","register","Set","unregister","add","parent","filter","activeScreenKey","activate","registration","Error","includes","subscribe","size","exports","screenTopology"],"sourceRoot":"../../../../src","sources":["factories/screen-topology/create-screen-topology.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["_createScreenTopology","require","_useScreenRelationships","_worklet"],"sourceRoot":"../../../../src","sources":["factories/screen-topology/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,qBAAA,GAAAC,OAAA;AAUA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["factories/screen-topology/types.ts"],"mappings":"","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_createScreenTopology","useScreenRelationships","screenKey","subscribe","useCallback","listener","screenTopology","getSnapshot","getRelationships","useSyncExternalStore","exports"],"sourceRoot":"../../../../src","sources":["factories/screen-topology/use-screen-relationships.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AAEO,MAAME,sBAAsB,GAAIC,SAAiB,IAAK;EAC5D,MAAMC,SAAS,GAAG,IAAAC,kBAAW,EAC3BC,QAAoB,IAAKC,oCAAc,CAACH,SAAS,CAACD,SAAS,EAAEG,QAAQ,CAAC,EACvE,CAACH,SAAS,CACX,CAAC;EACD,MAAMK,WAAW,GAAG,IAAAH,kBAAW,EAC9B,MAAME,oCAAc,CAACE,gBAAgB,CAACN,SAAS,CAAC,EAChD,CAACA,SAAS,CACX,CAAC;EAED,OAAO,IAAAO,2BAAoB,EAACN,SAAS,EAAEI,WAAW,EAAEA,WAAW,CAAC;AACjE,CAAC;AAACG,OAAA,CAAAT,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -1,55 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.unregisterWorkletScreen = exports.screenBelongsToScope = exports.registerWorkletScreen = void 0;
7
- var _reactNativeReanimated = require("react-native-reanimated");
8
- const toStorageKey = screenKey => {
9
- "worklet";
10
-
11
- return `screen:${screenKey}`;
12
- };
13
- const workletScreenTopology = (0, _reactNativeReanimated.makeMutable)({});
14
- const registerWorkletScreen = ({
15
- screenKey,
16
- parentScreenKey
17
- }) => {
18
- "worklet";
19
-
20
- workletScreenTopology.modify(value => {
21
- "worklet";
22
-
23
- value[toStorageKey(screenKey)] = {
24
- parentScreenKey
25
- };
26
- return value;
27
- });
28
- };
29
- exports.registerWorkletScreen = registerWorkletScreen;
30
- const unregisterWorkletScreen = screenKey => {
31
- "worklet";
32
-
33
- workletScreenTopology.modify(value => {
34
- "worklet";
35
-
36
- const storageKey = toStorageKey(screenKey);
37
- delete value[storageKey];
38
- return value;
39
- });
40
- };
41
- exports.unregisterWorkletScreen = unregisterWorkletScreen;
42
- const screenBelongsToScope = (screenKey, scopeScreenKey) => {
43
- "worklet";
44
-
45
- if (screenKey === scopeScreenKey) return true;
46
- const state = workletScreenTopology.get();
47
- let parentScreenKey = state[toStorageKey(screenKey)]?.parentScreenKey;
48
- while (parentScreenKey) {
49
- if (parentScreenKey === scopeScreenKey) return true;
50
- parentScreenKey = state[toStorageKey(parentScreenKey)]?.parentScreenKey;
51
- }
52
- return false;
53
- };
54
- exports.screenBelongsToScope = screenBelongsToScope;
55
- //# sourceMappingURL=worklet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNativeReanimated","require","toStorageKey","screenKey","workletScreenTopology","makeMutable","registerWorkletScreen","parentScreenKey","modify","value","exports","unregisterWorkletScreen","storageKey","screenBelongsToScope","scopeScreenKey","state","get"],"sourceRoot":"../../../../src","sources":["factories/screen-topology/worklet.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AASA,MAAMC,YAAY,GAAIC,SAAiB,IAAK;EAC3C,SAAS;;EACT,OAAO,UAAUA,SAAS,EAAE;AAC7B,CAAC;AAED,MAAMC,qBAAqB,GAAG,IAAAC,kCAAW,EAAwB,CAAC,CAAC,CAAC;AAE7D,MAAMC,qBAAqB,GAAGA,CAAC;EACrCH,SAAS;EACTI;AAC2B,CAAC,KAAK;EACjC,SAAS;;EACTH,qBAAqB,CAACI,MAAM,CACOC,KAAQ,IAAQ;IACjD,SAAS;;IACRA,KAAK,CAA2BP,YAAY,CAACC,SAAS,CAAC,CAAC,GAAG;MAC3DI;IACD,CAAC;IACD,OAAOE,KAAK;EACb,CACD,CAAC;AACF,CAAC;AAACC,OAAA,CAAAJ,qBAAA,GAAAA,qBAAA;AAEK,MAAMK,uBAAuB,GAAIR,SAAiB,IAAK;EAC7D,SAAS;;EACTC,qBAAqB,CAACI,MAAM,CACOC,KAAQ,IAAQ;IACjD,SAAS;;IACT,MAAMG,UAAU,GAAGV,YAAY,CAACC,SAAS,CAAC;IAC1C,OAAOM,KAAK,CAACG,UAAU,CAAC;IACxB,OAAOH,KAAK;EACb,CACD,CAAC;AACF,CAAC;AAACC,OAAA,CAAAC,uBAAA,GAAAA,uBAAA;AAEK,MAAME,oBAAoB,GAAGA,CACnCV,SAAiB,EACjBW,cAAsB,KACT;EACb,SAAS;;EACT,IAAIX,SAAS,KAAKW,cAAc,EAAE,OAAO,IAAI;EAE7C,MAAMC,KAAK,GAAGX,qBAAqB,CAACY,GAAG,CAAC,CAAC;EACzC,IAAIT,eAAe,GAAGQ,KAAK,CAACb,YAAY,CAACC,SAAS,CAAC,CAAC,EAAEI,eAAe;EACrE,OAAOA,eAAe,EAAE;IACvB,IAAIA,eAAe,KAAKO,cAAc,EAAE,OAAO,IAAI;IACnDP,eAAe,GAAGQ,KAAK,CAACb,YAAY,CAACK,eAAe,CAAC,CAAC,EAAEA,eAAe;EACxE;EAEA,OAAO,KAAK;AACb,CAAC;AAACG,OAAA,CAAAG,oBAAA,GAAAA,oBAAA","ignoreList":[]}