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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (586) hide show
  1. package/README.md +5 -10
  2. package/lib/commonjs/adapters/with-screen-transitions/stack-layout.js +1 -3
  3. package/lib/commonjs/adapters/with-screen-transitions/stack-layout.js.map +1 -1
  4. package/lib/commonjs/components/blank-stack-host.js +21 -0
  5. package/lib/commonjs/components/blank-stack-host.js.map +1 -0
  6. package/lib/commonjs/components/blank-stack-runtime.js +33 -0
  7. package/lib/commonjs/components/blank-stack-runtime.js.map +1 -0
  8. package/lib/commonjs/components/blank-stack-scene.js +31 -0
  9. package/lib/commonjs/components/blank-stack-scene.js.map +1 -0
  10. package/lib/commonjs/components/blank-stack-view.js +23 -0
  11. package/lib/commonjs/components/blank-stack-view.js.map +1 -0
  12. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +53 -1
  13. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -1
  14. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +43 -8
  15. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  16. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +2 -3
  17. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  18. package/lib/commonjs/components/boundary/utils/source-signals.js +6 -4
  19. package/lib/commonjs/components/boundary/utils/source-signals.js.map +1 -1
  20. package/lib/commonjs/components/overlay/helpers/get-active-overlay.js +3 -24
  21. package/lib/commonjs/components/overlay/helpers/get-active-overlay.js.map +1 -1
  22. package/lib/commonjs/components/overlay/helpers/retain-ready-overlay-resources.js +4 -3
  23. package/lib/commonjs/components/overlay/helpers/retain-ready-overlay-resources.js.map +1 -1
  24. package/lib/commonjs/components/overlay/helpers/run-overlay-slot-interpolator.js +2 -4
  25. package/lib/commonjs/components/overlay/helpers/run-overlay-slot-interpolator.js.map +1 -1
  26. package/lib/commonjs/components/overlay/hooks/use-overlay-slot.js +2 -18
  27. package/lib/commonjs/components/overlay/hooks/use-overlay-slot.js.map +1 -1
  28. package/lib/commonjs/components/overlay/variations/float-overlay.js +0 -2
  29. package/lib/commonjs/components/overlay/variations/float-overlay.js.map +1 -1
  30. package/lib/commonjs/components/overlay/variations/overlay-host.js +18 -16
  31. package/lib/commonjs/components/overlay/variations/overlay-host.js.map +1 -1
  32. package/lib/commonjs/components/screen-container/layers/content.js +10 -5
  33. package/lib/commonjs/components/screen-container/layers/content.js.map +1 -1
  34. package/lib/commonjs/components/screen-container/layers/surface.js +50 -0
  35. package/lib/commonjs/components/screen-container/layers/surface.js.map +1 -0
  36. package/lib/commonjs/components/screen-lifecycle/index.js +2 -2
  37. package/lib/commonjs/components/screen-lifecycle/index.js.map +1 -1
  38. package/lib/commonjs/components/stack-view.js +7 -29
  39. package/lib/commonjs/components/stack-view.js.map +1 -1
  40. package/lib/commonjs/configs/index.js +1 -4
  41. package/lib/commonjs/configs/index.js.map +1 -1
  42. package/lib/commonjs/configs/presets.js +1 -384
  43. package/lib/commonjs/configs/presets.js.map +1 -1
  44. package/lib/commonjs/custom-navigator.js +41 -0
  45. package/lib/commonjs/custom-navigator.js.map +1 -0
  46. package/lib/commonjs/hooks/navigation/use-blank-stack-state.js +26 -0
  47. package/lib/commonjs/hooks/navigation/use-blank-stack-state.js.map +1 -0
  48. package/lib/commonjs/hooks/navigation/use-navigation-helpers.js +2 -2
  49. package/lib/commonjs/hooks/navigation/use-navigation-helpers.js.map +1 -1
  50. package/lib/commonjs/hooks/navigation/use-screen-state.js +1 -1
  51. package/lib/commonjs/hooks/navigation/use-screen-state.js.map +1 -1
  52. package/lib/commonjs/navigators/create-blank-stack-navigator.js +7 -67
  53. package/lib/commonjs/navigators/create-blank-stack-navigator.js.map +1 -1
  54. package/lib/commonjs/navigators/expo-router/index.js +1 -18
  55. package/lib/commonjs/navigators/expo-router/index.js.map +1 -1
  56. package/lib/commonjs/navigators/react-navigation/index.js +1 -3
  57. package/lib/commonjs/navigators/react-navigation/index.js.map +1 -1
  58. package/lib/commonjs/providers/screen/animation/animation.provider.js +17 -25
  59. package/lib/commonjs/providers/screen/animation/animation.provider.js.map +1 -1
  60. package/lib/commonjs/providers/screen/animation/helpers/pipeline.js +19 -36
  61. package/lib/commonjs/providers/screen/animation/helpers/pipeline.js.map +1 -1
  62. package/lib/commonjs/providers/screen/animation/use-screen-animation.js +16 -19
  63. package/lib/commonjs/providers/screen/animation/use-screen-animation.js.map +1 -1
  64. package/lib/commonjs/providers/screen/descriptors/descriptors.provider.js +31 -64
  65. package/lib/commonjs/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  66. package/lib/commonjs/providers/screen/descriptors/index.js +6 -0
  67. package/lib/commonjs/providers/screen/descriptors/index.js.map +1 -1
  68. package/lib/commonjs/providers/screen/gestures/gestures.provider.js +14 -25
  69. package/lib/commonjs/providers/screen/gestures/gestures.provider.js.map +1 -1
  70. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture-config.js +3 -4
  71. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
  72. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture.js +6 -7
  73. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture.js.map +1 -1
  74. package/lib/commonjs/providers/screen/gestures/ownership/gesture-ownership-coordinator.js +149 -0
  75. package/lib/commonjs/providers/screen/gestures/ownership/gesture-ownership-coordinator.js.map +1 -0
  76. package/lib/commonjs/providers/screen/gestures/ownership/use-gesture-scroll-coordination.js +15 -0
  77. package/lib/commonjs/providers/screen/gestures/ownership/use-gesture-scroll-coordination.js.map +1 -0
  78. package/lib/commonjs/providers/screen/gestures/ownership/use-register-gesture-ownership.js +52 -0
  79. package/lib/commonjs/providers/screen/gestures/ownership/use-register-gesture-ownership.js.map +1 -0
  80. package/lib/commonjs/providers/screen/gestures/pan/activation/pan-activation-decision.js +4 -9
  81. package/lib/commonjs/providers/screen/gestures/pan/activation/pan-activation-decision.js.map +1 -1
  82. package/lib/commonjs/providers/screen/gestures/pan/activation/use-pan-activation.js +3 -3
  83. package/lib/commonjs/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
  84. package/lib/commonjs/providers/screen/gestures/pan/use-build-pan-gesture.js +2 -2
  85. package/lib/commonjs/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
  86. package/lib/commonjs/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +13 -11
  87. package/lib/commonjs/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
  88. package/lib/commonjs/providers/screen/gestures/shared/policy.js +4 -9
  89. package/lib/commonjs/providers/screen/gestures/shared/policy.js.map +1 -1
  90. package/lib/commonjs/providers/screen/gestures/types.js +2 -2
  91. package/lib/commonjs/providers/screen/gestures/types.js.map +1 -1
  92. package/lib/commonjs/providers/screen/screen-composer.js +10 -13
  93. package/lib/commonjs/providers/screen/screen-composer.js.map +1 -1
  94. package/lib/commonjs/providers/screen/styles/constants.js +4 -0
  95. package/lib/commonjs/providers/screen/styles/constants.js.map +1 -1
  96. package/lib/commonjs/providers/screen/styles/helpers/create-interpolator-scope.js +3 -15
  97. package/lib/commonjs/providers/screen/styles/helpers/create-interpolator-scope.js.map +1 -1
  98. package/lib/commonjs/providers/screen/styles/hooks/slot-resolvers.js +1 -9
  99. package/lib/commonjs/providers/screen/styles/hooks/slot-resolvers.js.map +1 -1
  100. package/lib/commonjs/providers/screen/styles/hooks/use-interpolated-style-maps.js +4 -25
  101. package/lib/commonjs/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  102. package/lib/commonjs/providers/screen/styles/slot.provider.js +3 -1
  103. package/lib/commonjs/providers/screen/styles/slot.provider.js.map +1 -1
  104. package/lib/commonjs/providers/screen/topology/helpers/create-screen-topology.js +176 -0
  105. package/lib/commonjs/providers/screen/topology/helpers/create-screen-topology.js.map +1 -0
  106. package/lib/commonjs/providers/screen/topology/hooks/use-resolved-transition-key.js +17 -0
  107. package/lib/commonjs/providers/screen/topology/hooks/use-resolved-transition-key.js.map +1 -0
  108. package/lib/commonjs/{factories/screen-topology → providers/screen/topology/hooks}/use-screen-relationships.js +1 -1
  109. package/lib/commonjs/providers/screen/topology/hooks/use-screen-relationships.js.map +1 -0
  110. package/lib/commonjs/{factories/screen-topology → providers/screen/topology}/index.js +16 -15
  111. package/lib/commonjs/providers/screen/topology/index.js.map +1 -0
  112. package/lib/commonjs/providers/screen/topology/topology.provider.js +56 -0
  113. package/lib/commonjs/providers/screen/topology/topology.provider.js.map +1 -0
  114. package/lib/commonjs/providers/screen/topology/types.js.map +1 -0
  115. package/lib/commonjs/providers/screen/use-current-screen-relationships.js +2 -2
  116. package/lib/commonjs/providers/screen/use-current-screen-relationships.js.map +1 -1
  117. package/lib/commonjs/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js +10 -4
  118. package/lib/commonjs/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js.map +1 -1
  119. package/lib/commonjs/providers/stack/blank-stack-state/helpers/derive-blank-stack-state.js +4 -3
  120. package/lib/commonjs/providers/stack/blank-stack-state/helpers/derive-blank-stack-state.js.map +1 -1
  121. package/lib/commonjs/providers/stack/blank-stack-state/helpers/reconcile-blank-stack-routes.js.map +1 -1
  122. package/lib/commonjs/providers/stack/blank-stack-state/helpers/state-equality.js +9 -2
  123. package/lib/commonjs/providers/stack/blank-stack-state/helpers/state-equality.js.map +1 -1
  124. package/lib/commonjs/providers/stack/stack-transition/index.js +20 -0
  125. package/lib/commonjs/providers/stack/stack-transition/index.js.map +1 -0
  126. package/lib/commonjs/providers/stack/stack-transition/stack-transition-controller.js +197 -0
  127. package/lib/commonjs/providers/stack/stack-transition/stack-transition-controller.js.map +1 -0
  128. package/lib/commonjs/providers/stack/stack-transition/stack-transition.provider.js +92 -0
  129. package/lib/commonjs/providers/stack/stack-transition/stack-transition.provider.js.map +1 -0
  130. package/lib/commonjs/providers/stack/stack-transition/use-stack-transition.js +46 -0
  131. package/lib/commonjs/providers/stack/stack-transition/use-stack-transition.js.map +1 -0
  132. package/lib/commonjs/types/ownership.types.js +2 -25
  133. package/lib/commonjs/types/ownership.types.js.map +1 -1
  134. package/lib/commonjs/utils/create-provider.js +14 -3
  135. package/lib/commonjs/utils/create-provider.js.map +1 -1
  136. package/lib/module/adapters/with-screen-transitions/stack-layout.js +1 -3
  137. package/lib/module/adapters/with-screen-transitions/stack-layout.js.map +1 -1
  138. package/lib/module/components/blank-stack-host.js +17 -0
  139. package/lib/module/components/blank-stack-host.js.map +1 -0
  140. package/lib/module/components/blank-stack-runtime.js +29 -0
  141. package/lib/module/components/blank-stack-runtime.js.map +1 -0
  142. package/lib/module/components/blank-stack-scene.js +27 -0
  143. package/lib/module/components/blank-stack-scene.js.map +1 -0
  144. package/lib/module/components/blank-stack-view.js +19 -0
  145. package/lib/module/components/blank-stack-view.js.map +1 -0
  146. package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +50 -0
  147. package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -1
  148. package/lib/module/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +44 -9
  149. package/lib/module/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  150. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +2 -3
  151. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  152. package/lib/module/components/boundary/utils/source-signals.js +6 -4
  153. package/lib/module/components/boundary/utils/source-signals.js.map +1 -1
  154. package/lib/module/components/overlay/helpers/get-active-overlay.js +3 -24
  155. package/lib/module/components/overlay/helpers/get-active-overlay.js.map +1 -1
  156. package/lib/module/components/overlay/helpers/retain-ready-overlay-resources.js +4 -3
  157. package/lib/module/components/overlay/helpers/retain-ready-overlay-resources.js.map +1 -1
  158. package/lib/module/components/overlay/helpers/run-overlay-slot-interpolator.js +2 -4
  159. package/lib/module/components/overlay/helpers/run-overlay-slot-interpolator.js.map +1 -1
  160. package/lib/module/components/overlay/hooks/use-overlay-slot.js +2 -18
  161. package/lib/module/components/overlay/hooks/use-overlay-slot.js.map +1 -1
  162. package/lib/module/components/overlay/variations/float-overlay.js +0 -2
  163. package/lib/module/components/overlay/variations/float-overlay.js.map +1 -1
  164. package/lib/module/components/overlay/variations/overlay-host.js +19 -17
  165. package/lib/module/components/overlay/variations/overlay-host.js.map +1 -1
  166. package/lib/module/components/screen-container/layers/content.js +10 -5
  167. package/lib/module/components/screen-container/layers/content.js.map +1 -1
  168. package/lib/module/components/screen-container/layers/surface.js +45 -0
  169. package/lib/module/components/screen-container/layers/surface.js.map +1 -0
  170. package/lib/module/components/screen-lifecycle/index.js +2 -2
  171. package/lib/module/components/screen-lifecycle/index.js.map +1 -1
  172. package/lib/module/components/stack-view.js +7 -29
  173. package/lib/module/components/stack-view.js.map +1 -1
  174. package/lib/module/configs/index.js +2 -5
  175. package/lib/module/configs/index.js.map +1 -1
  176. package/lib/module/configs/presets.js +0 -380
  177. package/lib/module/configs/presets.js.map +1 -1
  178. package/lib/module/custom-navigator.js +8 -0
  179. package/lib/module/custom-navigator.js.map +1 -0
  180. package/lib/module/hooks/navigation/use-blank-stack-state.js +21 -0
  181. package/lib/module/hooks/navigation/use-blank-stack-state.js.map +1 -0
  182. package/lib/module/hooks/navigation/use-navigation-helpers.js +2 -2
  183. package/lib/module/hooks/navigation/use-navigation-helpers.js.map +1 -1
  184. package/lib/module/hooks/navigation/use-screen-state.js +1 -1
  185. package/lib/module/hooks/navigation/use-screen-state.js.map +1 -1
  186. package/lib/module/navigators/create-blank-stack-navigator.js +7 -66
  187. package/lib/module/navigators/create-blank-stack-navigator.js.map +1 -1
  188. package/lib/module/navigators/expo-router/index.js +1 -18
  189. package/lib/module/navigators/expo-router/index.js.map +1 -1
  190. package/lib/module/navigators/react-navigation/index.js +1 -3
  191. package/lib/module/navigators/react-navigation/index.js.map +1 -1
  192. package/lib/module/providers/screen/animation/animation.provider.js +15 -24
  193. package/lib/module/providers/screen/animation/animation.provider.js.map +1 -1
  194. package/lib/module/providers/screen/animation/helpers/pipeline.js +19 -36
  195. package/lib/module/providers/screen/animation/helpers/pipeline.js.map +1 -1
  196. package/lib/module/providers/screen/animation/use-screen-animation.js +17 -20
  197. package/lib/module/providers/screen/animation/use-screen-animation.js.map +1 -1
  198. package/lib/module/providers/screen/descriptors/descriptors.provider.js +31 -66
  199. package/lib/module/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  200. package/lib/module/providers/screen/descriptors/index.js +1 -1
  201. package/lib/module/providers/screen/descriptors/index.js.map +1 -1
  202. package/lib/module/providers/screen/gestures/gestures.provider.js +16 -27
  203. package/lib/module/providers/screen/gestures/gestures.provider.js.map +1 -1
  204. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture-config.js +3 -4
  205. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
  206. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture.js +6 -7
  207. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture.js.map +1 -1
  208. package/lib/module/providers/screen/gestures/ownership/gesture-ownership-coordinator.js +144 -0
  209. package/lib/module/providers/screen/gestures/ownership/gesture-ownership-coordinator.js.map +1 -0
  210. package/lib/module/providers/screen/gestures/ownership/use-gesture-scroll-coordination.js +10 -0
  211. package/lib/module/providers/screen/gestures/ownership/use-gesture-scroll-coordination.js.map +1 -0
  212. package/lib/module/providers/screen/gestures/ownership/use-register-gesture-ownership.js +47 -0
  213. package/lib/module/providers/screen/gestures/ownership/use-register-gesture-ownership.js.map +1 -0
  214. package/lib/module/providers/screen/gestures/pan/activation/pan-activation-decision.js +4 -9
  215. package/lib/module/providers/screen/gestures/pan/activation/pan-activation-decision.js.map +1 -1
  216. package/lib/module/providers/screen/gestures/pan/activation/use-pan-activation.js +3 -3
  217. package/lib/module/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
  218. package/lib/module/providers/screen/gestures/pan/use-build-pan-gesture.js +2 -2
  219. package/lib/module/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
  220. package/lib/module/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +13 -11
  221. package/lib/module/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
  222. package/lib/module/providers/screen/gestures/shared/policy.js +4 -9
  223. package/lib/module/providers/screen/gestures/shared/policy.js.map +1 -1
  224. package/lib/module/providers/screen/gestures/types.js +1 -1
  225. package/lib/module/providers/screen/gestures/types.js.map +1 -1
  226. package/lib/module/providers/screen/screen-composer.js +10 -13
  227. package/lib/module/providers/screen/screen-composer.js.map +1 -1
  228. package/lib/module/providers/screen/styles/constants.js +4 -0
  229. package/lib/module/providers/screen/styles/constants.js.map +1 -1
  230. package/lib/module/providers/screen/styles/helpers/create-interpolator-scope.js +3 -15
  231. package/lib/module/providers/screen/styles/helpers/create-interpolator-scope.js.map +1 -1
  232. package/lib/module/providers/screen/styles/hooks/slot-resolvers.js +2 -10
  233. package/lib/module/providers/screen/styles/hooks/slot-resolvers.js.map +1 -1
  234. package/lib/module/providers/screen/styles/hooks/use-interpolated-style-maps.js +4 -25
  235. package/lib/module/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  236. package/lib/module/providers/screen/styles/slot.provider.js +1 -0
  237. package/lib/module/providers/screen/styles/slot.provider.js.map +1 -1
  238. package/lib/module/providers/screen/topology/helpers/create-screen-topology.js +171 -0
  239. package/lib/module/providers/screen/topology/helpers/create-screen-topology.js.map +1 -0
  240. package/lib/module/providers/screen/topology/hooks/use-resolved-transition-key.js +12 -0
  241. package/lib/module/providers/screen/topology/hooks/use-resolved-transition-key.js.map +1 -0
  242. package/lib/module/{factories/screen-topology → providers/screen/topology/hooks}/use-screen-relationships.js +1 -1
  243. package/lib/module/providers/screen/topology/hooks/use-screen-relationships.js.map +1 -0
  244. package/lib/module/providers/screen/topology/index.js +7 -0
  245. package/lib/module/providers/screen/topology/index.js.map +1 -0
  246. package/lib/module/providers/screen/topology/topology.provider.js +50 -0
  247. package/lib/module/providers/screen/topology/topology.provider.js.map +1 -0
  248. package/lib/module/providers/screen/topology/types.js.map +1 -0
  249. package/lib/module/providers/screen/use-current-screen-relationships.js +1 -1
  250. package/lib/module/providers/screen/use-current-screen-relationships.js.map +1 -1
  251. package/lib/module/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js +11 -5
  252. package/lib/module/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js.map +1 -1
  253. package/lib/module/providers/stack/blank-stack-state/helpers/derive-blank-stack-state.js +5 -4
  254. package/lib/module/providers/stack/blank-stack-state/helpers/derive-blank-stack-state.js.map +1 -1
  255. package/lib/module/providers/stack/blank-stack-state/helpers/reconcile-blank-stack-routes.js.map +1 -1
  256. package/lib/module/providers/stack/blank-stack-state/helpers/state-equality.js +7 -1
  257. package/lib/module/providers/stack/blank-stack-state/helpers/state-equality.js.map +1 -1
  258. package/lib/module/providers/stack/stack-transition/index.js +5 -0
  259. package/lib/module/providers/stack/stack-transition/index.js.map +1 -0
  260. package/lib/module/providers/stack/stack-transition/stack-transition-controller.js +189 -0
  261. package/lib/module/providers/stack/stack-transition/stack-transition-controller.js.map +1 -0
  262. package/lib/module/providers/stack/stack-transition/stack-transition.provider.js +85 -0
  263. package/lib/module/providers/stack/stack-transition/stack-transition.provider.js.map +1 -0
  264. package/lib/module/providers/stack/stack-transition/use-stack-transition.js +41 -0
  265. package/lib/module/providers/stack/stack-transition/use-stack-transition.js.map +1 -0
  266. package/lib/module/types/animation.types.js +10 -0
  267. package/lib/module/types/animation.types.js.map +1 -1
  268. package/lib/module/types/ownership.types.js +1 -24
  269. package/lib/module/types/ownership.types.js.map +1 -1
  270. package/lib/module/utils/create-provider.js +14 -3
  271. package/lib/module/utils/create-provider.js.map +1 -1
  272. package/lib/typescript/adapters/with-screen-transitions/stack-layout.d.ts.map +1 -1
  273. package/lib/typescript/components/blank-stack-host.d.ts +9 -0
  274. package/lib/typescript/components/blank-stack-host.d.ts.map +1 -0
  275. package/lib/typescript/components/blank-stack-runtime.d.ts +8 -0
  276. package/lib/typescript/components/blank-stack-runtime.d.ts.map +1 -0
  277. package/lib/typescript/components/blank-stack-scene.d.ts +5 -0
  278. package/lib/typescript/components/blank-stack-scene.d.ts.map +1 -0
  279. package/lib/typescript/components/blank-stack-view.d.ts +2 -0
  280. package/lib/typescript/components/blank-stack-view.d.ts.map +1 -0
  281. package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts +20 -1
  282. package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts.map +1 -1
  283. package/lib/typescript/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts.map +1 -1
  284. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -1
  285. package/lib/typescript/components/boundary/utils/source-signals.d.ts.map +1 -1
  286. package/lib/typescript/components/overlay/helpers/get-active-overlay.d.ts +2 -8
  287. package/lib/typescript/components/overlay/helpers/get-active-overlay.d.ts.map +1 -1
  288. package/lib/typescript/components/overlay/helpers/retain-ready-overlay-resources.d.ts +2 -1
  289. package/lib/typescript/components/overlay/helpers/retain-ready-overlay-resources.d.ts.map +1 -1
  290. package/lib/typescript/components/overlay/helpers/run-overlay-slot-interpolator.d.ts +2 -3
  291. package/lib/typescript/components/overlay/helpers/run-overlay-slot-interpolator.d.ts.map +1 -1
  292. package/lib/typescript/components/overlay/hooks/use-overlay-slot.d.ts.map +1 -1
  293. package/lib/typescript/components/overlay/variations/float-overlay.d.ts.map +1 -1
  294. package/lib/typescript/components/overlay/variations/overlay-host.d.ts +2 -3
  295. package/lib/typescript/components/overlay/variations/overlay-host.d.ts.map +1 -1
  296. package/lib/typescript/components/screen-container/layers/content.d.ts.map +1 -1
  297. package/lib/typescript/components/screen-container/layers/surface.d.ts +7 -0
  298. package/lib/typescript/components/screen-container/layers/surface.d.ts.map +1 -0
  299. package/lib/typescript/components/stack-view.d.ts +1 -1
  300. package/lib/typescript/components/stack-view.d.ts.map +1 -1
  301. package/lib/typescript/configs/index.d.ts +0 -9
  302. package/lib/typescript/configs/index.d.ts.map +1 -1
  303. package/lib/typescript/configs/presets.d.ts +0 -9
  304. package/lib/typescript/configs/presets.d.ts.map +1 -1
  305. package/lib/typescript/custom-navigator.d.ts +8 -0
  306. package/lib/typescript/custom-navigator.d.ts.map +1 -0
  307. package/lib/typescript/hooks/navigation/use-blank-stack-state.d.ts +8 -0
  308. package/lib/typescript/hooks/navigation/use-blank-stack-state.d.ts.map +1 -0
  309. package/lib/typescript/hooks/navigation/use-navigation-helpers.d.ts.map +1 -1
  310. package/lib/typescript/index.d.ts +1 -10
  311. package/lib/typescript/index.d.ts.map +1 -1
  312. package/lib/typescript/navigators/create-blank-stack-navigator.d.ts +2 -4
  313. package/lib/typescript/navigators/create-blank-stack-navigator.d.ts.map +1 -1
  314. package/lib/typescript/navigators/expo-router/index.d.ts +3 -3
  315. package/lib/typescript/navigators/expo-router/index.d.ts.map +1 -1
  316. package/lib/typescript/navigators/react-navigation/index.d.ts +1 -1
  317. package/lib/typescript/navigators/react-navigation/index.d.ts.map +1 -1
  318. package/lib/typescript/providers/screen/animation/animation.provider.d.ts +12 -6
  319. package/lib/typescript/providers/screen/animation/animation.provider.d.ts.map +1 -1
  320. package/lib/typescript/providers/screen/animation/helpers/pipeline.d.ts +2 -4
  321. package/lib/typescript/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
  322. package/lib/typescript/providers/screen/animation/types.d.ts +0 -9
  323. package/lib/typescript/providers/screen/animation/types.d.ts.map +1 -1
  324. package/lib/typescript/providers/screen/animation/use-screen-animation.d.ts.map +1 -1
  325. package/lib/typescript/providers/screen/descriptors/descriptors.provider.d.ts +9 -11
  326. package/lib/typescript/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  327. package/lib/typescript/providers/screen/descriptors/index.d.ts +1 -1
  328. package/lib/typescript/providers/screen/descriptors/index.d.ts.map +1 -1
  329. package/lib/typescript/providers/screen/gestures/gestures.provider.d.ts +9 -12
  330. package/lib/typescript/providers/screen/gestures/gestures.provider.d.ts.map +1 -1
  331. package/lib/typescript/providers/screen/gestures/hooks/use-screen-gesture-config.d.ts +2 -2
  332. package/lib/typescript/providers/screen/gestures/hooks/use-screen-gesture-config.d.ts.map +1 -1
  333. package/lib/typescript/providers/screen/gestures/hooks/use-screen-gesture.d.ts +3 -2
  334. package/lib/typescript/providers/screen/gestures/hooks/use-screen-gesture.d.ts.map +1 -1
  335. package/lib/typescript/providers/screen/gestures/index.d.ts +1 -1
  336. package/lib/typescript/providers/screen/gestures/index.d.ts.map +1 -1
  337. package/lib/typescript/providers/screen/gestures/ownership/gesture-ownership-coordinator.d.ts +26 -0
  338. package/lib/typescript/providers/screen/gestures/ownership/gesture-ownership-coordinator.d.ts.map +1 -0
  339. package/lib/typescript/providers/screen/gestures/ownership/use-gesture-scroll-coordination.d.ts +3 -0
  340. package/lib/typescript/providers/screen/gestures/ownership/use-gesture-scroll-coordination.d.ts.map +1 -0
  341. package/lib/typescript/providers/screen/gestures/ownership/use-register-gesture-ownership.d.ts +9 -0
  342. package/lib/typescript/providers/screen/gestures/ownership/use-register-gesture-ownership.d.ts.map +1 -0
  343. package/lib/typescript/providers/screen/gestures/pan/activation/pan-activation-decision.d.ts +4 -4
  344. package/lib/typescript/providers/screen/gestures/pan/activation/pan-activation-decision.d.ts.map +1 -1
  345. package/lib/typescript/providers/screen/gestures/pan/activation/use-pan-activation.d.ts +3 -3
  346. package/lib/typescript/providers/screen/gestures/pan/activation/use-pan-activation.d.ts.map +1 -1
  347. package/lib/typescript/providers/screen/gestures/pan/use-build-pan-gesture.d.ts +3 -3
  348. package/lib/typescript/providers/screen/gestures/pan/use-build-pan-gesture.d.ts.map +1 -1
  349. package/lib/typescript/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.d.ts.map +1 -1
  350. package/lib/typescript/providers/screen/gestures/shared/policy.d.ts +2 -3
  351. package/lib/typescript/providers/screen/gestures/shared/policy.d.ts.map +1 -1
  352. package/lib/typescript/providers/screen/gestures/types.d.ts +4 -18
  353. package/lib/typescript/providers/screen/gestures/types.d.ts.map +1 -1
  354. package/lib/typescript/providers/screen/screen-composer.d.ts +2 -6
  355. package/lib/typescript/providers/screen/screen-composer.d.ts.map +1 -1
  356. package/lib/typescript/providers/screen/styles/constants.d.ts.map +1 -1
  357. package/lib/typescript/providers/screen/styles/helpers/create-interpolator-scope.d.ts +2 -3
  358. package/lib/typescript/providers/screen/styles/helpers/create-interpolator-scope.d.ts.map +1 -1
  359. package/lib/typescript/providers/screen/styles/hooks/slot-resolvers.d.ts.map +1 -1
  360. package/lib/typescript/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
  361. package/lib/typescript/providers/screen/styles/slot.provider.d.ts +11 -2
  362. package/lib/typescript/providers/screen/styles/slot.provider.d.ts.map +1 -1
  363. package/lib/typescript/{factories/screen-topology → providers/screen/topology/helpers}/create-screen-topology.d.ts +1 -1
  364. package/lib/typescript/providers/screen/topology/helpers/create-screen-topology.d.ts.map +1 -0
  365. package/lib/typescript/providers/screen/topology/hooks/use-resolved-transition-key.d.ts +3 -0
  366. package/lib/typescript/providers/screen/topology/hooks/use-resolved-transition-key.d.ts.map +1 -0
  367. package/lib/typescript/{factories/screen-topology → providers/screen/topology/hooks}/use-screen-relationships.d.ts +1 -0
  368. package/lib/typescript/providers/screen/topology/hooks/use-screen-relationships.d.ts.map +1 -0
  369. package/lib/typescript/providers/screen/topology/index.d.ts +6 -0
  370. package/lib/typescript/providers/screen/topology/index.d.ts.map +1 -0
  371. package/lib/typescript/providers/screen/topology/topology.provider.d.ts +13 -0
  372. package/lib/typescript/providers/screen/topology/topology.provider.d.ts.map +1 -0
  373. package/lib/typescript/{factories/screen-topology → providers/screen/topology}/types.d.ts +7 -1
  374. package/lib/typescript/providers/screen/topology/types.d.ts.map +1 -0
  375. package/lib/typescript/providers/screen/use-current-screen-relationships.d.ts +1 -0
  376. package/lib/typescript/providers/screen/use-current-screen-relationships.d.ts.map +1 -1
  377. package/lib/typescript/providers/stack/blank-stack-state/helpers/build-blank-stack-state.d.ts +3 -3
  378. package/lib/typescript/providers/stack/blank-stack-state/helpers/build-blank-stack-state.d.ts.map +1 -1
  379. package/lib/typescript/providers/stack/blank-stack-state/helpers/derive-blank-stack-state.d.ts.map +1 -1
  380. package/lib/typescript/providers/stack/blank-stack-state/helpers/reconcile-blank-stack-routes.d.ts +3 -2
  381. package/lib/typescript/providers/stack/blank-stack-state/helpers/reconcile-blank-stack-routes.d.ts.map +1 -1
  382. package/lib/typescript/providers/stack/blank-stack-state/helpers/state-equality.d.ts +4 -4
  383. package/lib/typescript/providers/stack/blank-stack-state/helpers/state-equality.d.ts.map +1 -1
  384. package/lib/typescript/providers/stack/blank-stack-state/helpers/types.d.ts +6 -5
  385. package/lib/typescript/providers/stack/blank-stack-state/helpers/types.d.ts.map +1 -1
  386. package/lib/typescript/providers/stack/blank-stack.provider.d.ts +3 -1
  387. package/lib/typescript/providers/stack/blank-stack.provider.d.ts.map +1 -1
  388. package/lib/typescript/providers/stack/stack-transition/index.d.ts +3 -0
  389. package/lib/typescript/providers/stack/stack-transition/index.d.ts.map +1 -0
  390. package/lib/typescript/providers/stack/stack-transition/stack-transition-controller.d.ts +48 -0
  391. package/lib/typescript/providers/stack/stack-transition/stack-transition-controller.d.ts.map +1 -0
  392. package/lib/typescript/providers/stack/stack-transition/stack-transition.provider.d.ts +14 -0
  393. package/lib/typescript/providers/stack/stack-transition/stack-transition.provider.d.ts.map +1 -0
  394. package/lib/typescript/providers/stack/stack-transition/use-stack-transition.d.ts +12 -0
  395. package/lib/typescript/providers/stack/stack-transition/use-stack-transition.d.ts.map +1 -0
  396. package/lib/typescript/types/animation.types.d.ts +16 -22
  397. package/lib/typescript/types/animation.types.d.ts.map +1 -1
  398. package/lib/typescript/types/blank-stack.types.d.ts +2 -23
  399. package/lib/typescript/types/blank-stack.types.d.ts.map +1 -1
  400. package/lib/typescript/types/bounds.types.d.ts +1 -1
  401. package/lib/typescript/types/bounds.types.d.ts.map +1 -1
  402. package/lib/typescript/types/index.d.ts +2 -2
  403. package/lib/typescript/types/index.d.ts.map +1 -1
  404. package/lib/typescript/types/ownership.types.d.ts +1 -18
  405. package/lib/typescript/types/ownership.types.d.ts.map +1 -1
  406. package/lib/typescript/types/providers/blank-stack-provider.types.d.ts +8 -6
  407. package/lib/typescript/types/providers/blank-stack-provider.types.d.ts.map +1 -1
  408. package/lib/typescript/types/screen.types.d.ts +40 -0
  409. package/lib/typescript/types/screen.types.d.ts.map +1 -1
  410. package/lib/typescript/utils/create-provider.d.ts +4 -1
  411. package/lib/typescript/utils/create-provider.d.ts.map +1 -1
  412. package/package.json +9 -8
  413. package/src/adapters/with-screen-transitions/stack-layout.tsx +1 -9
  414. package/src/components/blank-stack-host.tsx +21 -0
  415. package/src/components/blank-stack-runtime.tsx +37 -0
  416. package/src/components/blank-stack-scene.tsx +30 -0
  417. package/src/components/blank-stack-view.tsx +19 -0
  418. package/src/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.ts +89 -0
  419. package/src/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts +97 -14
  420. package/src/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +2 -6
  421. package/src/components/boundary/utils/source-signals.ts +6 -4
  422. package/src/components/overlay/helpers/get-active-overlay.ts +4 -36
  423. package/src/components/overlay/helpers/retain-ready-overlay-resources.ts +10 -1
  424. package/src/components/overlay/helpers/run-overlay-slot-interpolator.ts +0 -4
  425. package/src/components/overlay/hooks/use-overlay-slot.ts +1 -30
  426. package/src/components/overlay/variations/float-overlay.tsx +9 -12
  427. package/src/components/overlay/variations/overlay-host.tsx +24 -23
  428. package/src/components/screen-container/layers/content.tsx +12 -7
  429. package/src/components/screen-container/layers/surface.tsx +65 -0
  430. package/src/components/screen-lifecycle/index.tsx +2 -2
  431. package/src/components/stack-view.tsx +8 -39
  432. package/src/configs/index.ts +0 -6
  433. package/src/configs/presets.ts +0 -447
  434. package/src/custom-navigator.ts +25 -0
  435. package/src/hooks/navigation/use-blank-stack-state.ts +24 -0
  436. package/src/hooks/navigation/use-navigation-helpers.ts +4 -2
  437. package/src/hooks/navigation/use-screen-state.ts +1 -1
  438. package/src/index.ts +3 -2
  439. package/src/navigators/create-blank-stack-navigator.tsx +16 -124
  440. package/src/navigators/expo-router/index.tsx +0 -23
  441. package/src/navigators/react-navigation/index.tsx +0 -3
  442. package/src/providers/screen/animation/animation.provider.tsx +32 -66
  443. package/src/providers/screen/animation/helpers/pipeline.ts +14 -26
  444. package/src/providers/screen/animation/types.ts +0 -11
  445. package/src/providers/screen/animation/use-screen-animation.tsx +40 -20
  446. package/src/providers/screen/descriptors/descriptors.provider.tsx +43 -99
  447. package/src/providers/screen/descriptors/index.tsx +1 -0
  448. package/src/providers/screen/gestures/gestures.provider.tsx +14 -55
  449. package/src/providers/screen/gestures/hooks/use-screen-gesture-config.ts +3 -6
  450. package/src/providers/screen/gestures/hooks/use-screen-gesture.ts +13 -13
  451. package/src/providers/screen/gestures/index.tsx +0 -2
  452. package/src/providers/screen/gestures/ownership/gesture-ownership-coordinator.ts +252 -0
  453. package/src/providers/screen/gestures/ownership/use-gesture-scroll-coordination.ts +23 -0
  454. package/src/providers/screen/gestures/ownership/use-register-gesture-ownership.ts +73 -0
  455. package/src/providers/screen/gestures/pan/activation/pan-activation-decision.ts +6 -20
  456. package/src/providers/screen/gestures/pan/activation/use-pan-activation.ts +5 -5
  457. package/src/providers/screen/gestures/pan/use-build-pan-gesture.ts +4 -4
  458. package/src/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.ts +9 -12
  459. package/src/providers/screen/gestures/shared/policy.ts +0 -8
  460. package/src/providers/screen/gestures/types.ts +4 -19
  461. package/src/providers/screen/screen-composer.tsx +18 -29
  462. package/src/providers/screen/styles/constants.ts +2 -0
  463. package/src/providers/screen/styles/helpers/create-interpolator-scope.ts +2 -21
  464. package/src/providers/screen/styles/hooks/slot-resolvers.tsx +2 -17
  465. package/src/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +0 -29
  466. package/src/providers/screen/styles/slot.provider.tsx +2 -0
  467. package/src/{factories/screen-topology → providers/screen/topology/helpers}/create-screen-topology.ts +97 -53
  468. package/src/providers/screen/topology/hooks/use-resolved-transition-key.ts +29 -0
  469. package/src/{factories/screen-topology → providers/screen/topology/hooks}/use-screen-relationships.ts +1 -1
  470. package/src/providers/screen/topology/index.ts +16 -0
  471. package/src/providers/screen/topology/topology.provider.tsx +72 -0
  472. package/src/{factories/screen-topology → providers/screen/topology}/types.ts +7 -1
  473. package/src/providers/screen/use-current-screen-relationships.ts +1 -1
  474. package/src/providers/stack/blank-stack-state/helpers/build-blank-stack-state.ts +31 -12
  475. package/src/providers/stack/blank-stack-state/helpers/derive-blank-stack-state.ts +11 -3
  476. package/src/providers/stack/blank-stack-state/helpers/reconcile-blank-stack-routes.ts +2 -2
  477. package/src/providers/stack/blank-stack-state/helpers/state-equality.ts +25 -11
  478. package/src/providers/stack/blank-stack-state/helpers/types.ts +9 -4
  479. package/src/providers/stack/stack-transition/index.ts +5 -0
  480. package/src/providers/stack/stack-transition/stack-transition-controller.ts +341 -0
  481. package/src/providers/stack/stack-transition/stack-transition.provider.tsx +120 -0
  482. package/src/providers/stack/stack-transition/use-stack-transition.ts +77 -0
  483. package/src/types/animation.types.ts +16 -28
  484. package/src/types/blank-stack.types.ts +1 -29
  485. package/src/types/bounds.types.ts +1 -4
  486. package/src/types/index.ts +3 -2
  487. package/src/types/ownership.types.ts +1 -26
  488. package/src/types/providers/blank-stack-provider.types.ts +14 -11
  489. package/src/types/screen.types.ts +46 -0
  490. package/src/utils/create-provider.tsx +22 -4
  491. package/lib/commonjs/components/boundary/portal/utils/teleport-control.js +0 -16
  492. package/lib/commonjs/components/boundary/portal/utils/teleport-control.js.map +0 -1
  493. package/lib/commonjs/factories/screen-topology/create-screen-topology.js +0 -147
  494. package/lib/commonjs/factories/screen-topology/create-screen-topology.js.map +0 -1
  495. package/lib/commonjs/factories/screen-topology/index.js.map +0 -1
  496. package/lib/commonjs/factories/screen-topology/types.js.map +0 -1
  497. package/lib/commonjs/factories/screen-topology/use-screen-relationships.js.map +0 -1
  498. package/lib/commonjs/factories/screen-topology/worklet.js +0 -55
  499. package/lib/commonjs/factories/screen-topology/worklet.js.map +0 -1
  500. package/lib/commonjs/providers/navigation/navigation-host.provider.js +0 -56
  501. package/lib/commonjs/providers/navigation/navigation-host.provider.js.map +0 -1
  502. package/lib/commonjs/providers/navigation/react-navigation-host.js +0 -23
  503. package/lib/commonjs/providers/navigation/react-navigation-host.js.map +0 -1
  504. package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +0 -62
  505. package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +0 -1
  506. package/lib/commonjs/providers/screen/animation/helpers/read-screen-animation-revisions.js +0 -16
  507. package/lib/commonjs/providers/screen/animation/helpers/read-screen-animation-revisions.js.map +0 -1
  508. package/lib/commonjs/providers/screen/gestures/ownership/gesture-ownership-bridge.js +0 -128
  509. package/lib/commonjs/providers/screen/gestures/ownership/gesture-ownership-bridge.js.map +0 -1
  510. package/lib/commonjs/providers/screen/gestures/ownership/resolve-ownership.js +0 -71
  511. package/lib/commonjs/providers/screen/gestures/ownership/resolve-ownership.js.map +0 -1
  512. package/lib/commonjs/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.js +0 -54
  513. package/lib/commonjs/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.js.map +0 -1
  514. package/lib/commonjs/providers/screen/styles/helpers/collect-interpolator-shared-values.js +0 -50
  515. package/lib/commonjs/providers/screen/styles/helpers/collect-interpolator-shared-values.js.map +0 -1
  516. package/lib/commonjs/utils/resolve-chain-target.js +0 -29
  517. package/lib/commonjs/utils/resolve-chain-target.js.map +0 -1
  518. package/lib/module/components/boundary/portal/utils/teleport-control.js +0 -11
  519. package/lib/module/components/boundary/portal/utils/teleport-control.js.map +0 -1
  520. package/lib/module/factories/screen-topology/create-screen-topology.js +0 -142
  521. package/lib/module/factories/screen-topology/create-screen-topology.js.map +0 -1
  522. package/lib/module/factories/screen-topology/index.js +0 -6
  523. package/lib/module/factories/screen-topology/index.js.map +0 -1
  524. package/lib/module/factories/screen-topology/types.js.map +0 -1
  525. package/lib/module/factories/screen-topology/use-screen-relationships.js.map +0 -1
  526. package/lib/module/factories/screen-topology/worklet.js +0 -48
  527. package/lib/module/factories/screen-topology/worklet.js.map +0 -1
  528. package/lib/module/providers/navigation/navigation-host.provider.js +0 -50
  529. package/lib/module/providers/navigation/navigation-host.provider.js.map +0 -1
  530. package/lib/module/providers/navigation/react-navigation-host.js +0 -19
  531. package/lib/module/providers/navigation/react-navigation-host.js.map +0 -1
  532. package/lib/module/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +0 -56
  533. package/lib/module/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +0 -1
  534. package/lib/module/providers/screen/animation/helpers/read-screen-animation-revisions.js +0 -11
  535. package/lib/module/providers/screen/animation/helpers/read-screen-animation-revisions.js.map +0 -1
  536. package/lib/module/providers/screen/gestures/ownership/gesture-ownership-bridge.js +0 -124
  537. package/lib/module/providers/screen/gestures/ownership/gesture-ownership-bridge.js.map +0 -1
  538. package/lib/module/providers/screen/gestures/ownership/resolve-ownership.js +0 -67
  539. package/lib/module/providers/screen/gestures/ownership/resolve-ownership.js.map +0 -1
  540. package/lib/module/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.js +0 -50
  541. package/lib/module/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.js.map +0 -1
  542. package/lib/module/providers/screen/styles/helpers/collect-interpolator-shared-values.js +0 -45
  543. package/lib/module/providers/screen/styles/helpers/collect-interpolator-shared-values.js.map +0 -1
  544. package/lib/module/utils/resolve-chain-target.js +0 -25
  545. package/lib/module/utils/resolve-chain-target.js.map +0 -1
  546. package/lib/typescript/components/boundary/portal/utils/teleport-control.d.ts +0 -3
  547. package/lib/typescript/components/boundary/portal/utils/teleport-control.d.ts.map +0 -1
  548. package/lib/typescript/factories/screen-topology/create-screen-topology.d.ts.map +0 -1
  549. package/lib/typescript/factories/screen-topology/index.d.ts +0 -5
  550. package/lib/typescript/factories/screen-topology/index.d.ts.map +0 -1
  551. package/lib/typescript/factories/screen-topology/types.d.ts.map +0 -1
  552. package/lib/typescript/factories/screen-topology/use-screen-relationships.d.ts.map +0 -1
  553. package/lib/typescript/factories/screen-topology/worklet.d.ts +0 -5
  554. package/lib/typescript/factories/screen-topology/worklet.d.ts.map +0 -1
  555. package/lib/typescript/providers/navigation/navigation-host.provider.d.ts +0 -21
  556. package/lib/typescript/providers/navigation/navigation-host.provider.d.ts.map +0 -1
  557. package/lib/typescript/providers/navigation/react-navigation-host.d.ts +0 -3
  558. package/lib/typescript/providers/navigation/react-navigation-host.d.ts.map +0 -1
  559. package/lib/typescript/providers/screen/animation/helpers/accessors/use-build-transition-accessor.d.ts +0 -9
  560. package/lib/typescript/providers/screen/animation/helpers/accessors/use-build-transition-accessor.d.ts.map +0 -1
  561. package/lib/typescript/providers/screen/animation/helpers/read-screen-animation-revisions.d.ts +0 -6
  562. package/lib/typescript/providers/screen/animation/helpers/read-screen-animation-revisions.d.ts.map +0 -1
  563. package/lib/typescript/providers/screen/gestures/ownership/gesture-ownership-bridge.d.ts +0 -3
  564. package/lib/typescript/providers/screen/gestures/ownership/gesture-ownership-bridge.d.ts.map +0 -1
  565. package/lib/typescript/providers/screen/gestures/ownership/resolve-ownership.d.ts +0 -32
  566. package/lib/typescript/providers/screen/gestures/ownership/resolve-ownership.d.ts.map +0 -1
  567. package/lib/typescript/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.d.ts +0 -11
  568. package/lib/typescript/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.d.ts.map +0 -1
  569. package/lib/typescript/providers/screen/styles/helpers/collect-interpolator-shared-values.d.ts +0 -4
  570. package/lib/typescript/providers/screen/styles/helpers/collect-interpolator-shared-values.d.ts.map +0 -1
  571. package/lib/typescript/utils/resolve-chain-target.d.ts +0 -11
  572. package/lib/typescript/utils/resolve-chain-target.d.ts.map +0 -1
  573. package/src/components/boundary/portal/utils/teleport-control.ts +0 -13
  574. package/src/factories/screen-topology/index.ts +0 -16
  575. package/src/factories/screen-topology/worklet.ts +0 -60
  576. package/src/providers/navigation/navigation-host.provider.tsx +0 -75
  577. package/src/providers/navigation/react-navigation-host.tsx +0 -24
  578. package/src/providers/screen/animation/helpers/accessors/use-build-transition-accessor.ts +0 -96
  579. package/src/providers/screen/animation/helpers/read-screen-animation-revisions.ts +0 -15
  580. package/src/providers/screen/gestures/ownership/gesture-ownership-bridge.tsx +0 -173
  581. package/src/providers/screen/gestures/ownership/resolve-ownership.ts +0 -90
  582. package/src/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.ts +0 -88
  583. package/src/providers/screen/styles/helpers/collect-interpolator-shared-values.ts +0 -75
  584. package/src/utils/resolve-chain-target.ts +0 -33
  585. /package/lib/commonjs/{factories/screen-topology → providers/screen/topology}/types.js +0 -0
  586. /package/lib/module/{factories/screen-topology → providers/screen/topology}/types.js +0 -0
@@ -0,0 +1,65 @@
1
+ import { type ComponentType, memo, useMemo } from "react";
2
+ import { StyleSheet } from "react-native";
3
+ import Animated from "react-native-reanimated";
4
+ import { useDescriptorsStore } from "../../../providers/screen/descriptors";
5
+ import { useSlotProps, useSlotStyles } from "../../../providers/screen/styles";
6
+ import type { ScreenSurfaceComponentProps } from "../../../types";
7
+ import { usesLayerRenderProps } from "./render-component";
8
+
9
+ type Props = {
10
+ children: React.ReactNode;
11
+ pointerEvents: "box-none" | undefined;
12
+ };
13
+
14
+ export const SurfaceLayer = memo(({ children, pointerEvents }: Props) => {
15
+ const SurfaceComponent = useDescriptorsStore(
16
+ (store) => store.options.surfaceComponent,
17
+ );
18
+
19
+ const AnimatedSurfaceComponent = useMemo(() => {
20
+ return SurfaceComponent && !usesLayerRenderProps(SurfaceComponent)
21
+ ? Animated.createAnimatedComponent(SurfaceComponent as ComponentType<any>)
22
+ : null;
23
+ }, [SurfaceComponent]);
24
+
25
+ const animatedSurfaceStyle = useSlotStyles("surface");
26
+ const animatedSurfaceProps = useSlotProps("surface");
27
+ const surfaceStyles = [
28
+ styles.surface,
29
+ animatedSurfaceStyle,
30
+ ] as ScreenSurfaceComponentProps["styles"];
31
+ const surfaceProps =
32
+ animatedSurfaceProps as ScreenSurfaceComponentProps["props"];
33
+
34
+ if (!SurfaceComponent) {
35
+ return children;
36
+ }
37
+
38
+ if (AnimatedSurfaceComponent) {
39
+ return (
40
+ <AnimatedSurfaceComponent
41
+ style={surfaceStyles}
42
+ animatedProps={animatedSurfaceProps}
43
+ pointerEvents={pointerEvents}
44
+ >
45
+ {children}
46
+ </AnimatedSurfaceComponent>
47
+ );
48
+ }
49
+
50
+ return (
51
+ <SurfaceComponent
52
+ styles={surfaceStyles}
53
+ props={surfaceProps}
54
+ pointerEvents={pointerEvents}
55
+ >
56
+ {children}
57
+ </SurfaceComponent>
58
+ );
59
+ });
60
+
61
+ const styles = StyleSheet.create({
62
+ surface: {
63
+ flex: 1,
64
+ },
65
+ });
@@ -16,8 +16,8 @@ interface Props {
16
16
  * Reads current/previous descriptors from DescriptorsProvider context.
17
17
  */
18
18
  export const ScreenLifecycle = ({ children }: Props) => {
19
- const current = useDescriptorsStore((store) => store.current);
20
- const previous = useDescriptorsStore((store) => store.previous);
19
+ const current = useDescriptorsStore((store) => store.descriptors.current);
20
+ const previous = useDescriptorsStore((store) => store.descriptors.previous);
21
21
 
22
22
  const animations = AnimationStore.getBag(current.route.key);
23
23
  const system = SystemStore.getBag(current.route.key);
@@ -1,5 +1,4 @@
1
- import { memo, type ReactNode } from "react";
2
- import { NavigationScreenProvider } from "../providers/navigation/navigation-host.provider";
1
+ import { memo } from "react";
3
2
  import { ScreenComposer } from "../providers/screen/screen-composer";
4
3
  import {
5
4
  BlankStackProvider,
@@ -18,28 +17,6 @@ interface RouteKeyProps {
18
17
  routeKey: string;
19
18
  }
20
19
 
21
- const BlankNavigationProvider = memo(function BlankNavigationProvider({
22
- children,
23
- routeKey,
24
- }: RouteKeyProps & { children: ReactNode }) {
25
- const navigation = useBlankStackStore(
26
- (store) => store.scenesByKey[routeKey]?.descriptor.navigation,
27
- );
28
- const route = useBlankStackStore(
29
- (store) => store.scenesByKey[routeKey]?.route,
30
- );
31
-
32
- if (!navigation || !route) {
33
- throw new Error(`Blank stack scene "${routeKey}" was not found.`);
34
- }
35
-
36
- return (
37
- <NavigationScreenProvider navigation={navigation} route={route}>
38
- {children}
39
- </NavigationScreenProvider>
40
- );
41
- });
42
-
43
20
  const BlankSceneContent = memo(function BlankSceneContent({
44
21
  routeKey,
45
22
  }: RouteKeyProps) {
@@ -47,27 +24,21 @@ const BlankSceneContent = memo(function BlankSceneContent({
47
24
  (store) => store?.scenesByKey[routeKey]?.descriptor.render,
48
25
  );
49
26
 
50
- return render?.() ?? null;
27
+ return render?.();
51
28
  });
52
29
 
53
30
  const BlankSceneRow = memo(function BlankSceneRow({ routeKey }: RouteKeyProps) {
54
31
  return (
55
- <BlankNavigationProvider routeKey={routeKey}>
56
- <ActivityScreen routeKey={routeKey}>
57
- <ScreenComposer routeKey={routeKey}>
58
- <BlankSceneContent routeKey={routeKey} />
59
- </ScreenComposer>
60
- </ActivityScreen>
61
- </BlankNavigationProvider>
32
+ <ActivityScreen routeKey={routeKey}>
33
+ <ScreenComposer routeKey={routeKey}>
34
+ <BlankSceneContent routeKey={routeKey} />
35
+ </ScreenComposer>
36
+ </ActivityScreen>
62
37
  );
63
38
  });
64
39
 
65
- const EMPTY_ROUTE_KEYS: string[] = [];
66
-
67
40
  const StackViewContent = memo(function StackViewContent() {
68
- const routeKeys = useBlankStackStore(
69
- (store) => store?.routeKeys ?? EMPTY_ROUTE_KEYS,
70
- );
41
+ const routeKeys = useBlankStackStore((store) => store?.routeKeys);
71
42
 
72
43
  return (
73
44
  <PortalProvider>
@@ -89,7 +60,6 @@ export const StackView = memo(function StackView({
89
60
  state,
90
61
  navigation,
91
62
  descriptors,
92
- describe,
93
63
  }: StackViewProps) {
94
64
  return (
95
65
  <StackCoreProvider
@@ -101,7 +71,6 @@ export const StackView = memo(function StackView({
101
71
  state={state}
102
72
  navigation={navigation}
103
73
  descriptors={descriptors}
104
- describe={describe}
105
74
  >
106
75
  <StackViewContent />
107
76
  </BlankStackProvider>
@@ -1,9 +1,6 @@
1
1
  import {
2
2
  DraggableCard,
3
3
  ElasticCard,
4
- SharedAppleMusic,
5
- SharedIGImage,
6
- SharedXImage,
7
4
  SlideFromBottom,
8
5
  SlideFromTop,
9
6
  ZoomIn,
@@ -23,7 +20,4 @@ export const Presets = {
23
20
  SlideFromBottom,
24
21
  DraggableCard,
25
22
  ElasticCard,
26
- SharedIGImage,
27
- SharedAppleMusic,
28
- SharedXImage,
29
23
  };
@@ -1,19 +1,11 @@
1
- import { Platform } from "react-native";
2
1
  import {
3
2
  Extrapolation,
4
3
  interpolate,
5
4
  interpolateColor,
6
5
  } from "react-native-reanimated";
7
- import {
8
- NAVIGATION_MASK_CONTAINER_STYLE_ID,
9
- NAVIGATION_MASK_ELEMENT_STYLE_ID,
10
- } from "../constants";
11
6
  import type { ScreenTransitionConfig } from "../types/screen.types";
12
- import { normalizeInterpolatedStyle } from "../utils/normalize-interpolated-style";
13
7
  import { DefaultSpec } from "./specs";
14
8
 
15
- const platform = Platform.OS;
16
-
17
9
  export const SlideFromTop = (
18
10
  config: Partial<ScreenTransitionConfig> = {},
19
11
  ): ScreenTransitionConfig => {
@@ -235,442 +227,3 @@ export const ElasticCard = (
235
227
  ...config,
236
228
  };
237
229
  };
238
-
239
- export const SharedIGImage = ({
240
- id,
241
- ...config
242
- }: Partial<ScreenTransitionConfig> & {
243
- id: string;
244
- }): ScreenTransitionConfig => {
245
- return {
246
- gestureEnabled: true,
247
- gestureDirection: ["vertical", "horizontal"],
248
- enableTransitions: true,
249
- screenStyleInterpolator: ({
250
- current,
251
- layouts: {
252
- screen: { height, width },
253
- },
254
- bounds,
255
- progress,
256
- focused,
257
- active,
258
- }) => {
259
- "worklet";
260
-
261
- const normX = active.gesture.handoff.normX;
262
- const normY = active.gesture.handoff.normY;
263
-
264
- const dragX = interpolate(
265
- normX,
266
- [-1, 0, 1],
267
- [-width * 0.7, 0, width * 0.7],
268
- "clamp",
269
- );
270
- const dragY = interpolate(
271
- normY,
272
- [-1, 0, 1],
273
- [-height * 0.4, 0, height * 0.4],
274
- "clamp",
275
- );
276
- const dragXScale = interpolate(normX, [0, 1], [1, 0.8]);
277
- const dragYScale = interpolate(normY, [0, 1], [1, 0.8]);
278
-
279
- const navigationStyles =
280
- bounds({
281
- id,
282
- }).navigation.zoom() ?? {};
283
-
284
- // Read the bound-specific slots before normalizing the full result.
285
- const sourceStyle = navigationStyles[id] as
286
- | Record<string, unknown>
287
- | undefined;
288
- const containerStyle = navigationStyles[
289
- NAVIGATION_MASK_CONTAINER_STYLE_ID
290
- ] as Record<string, unknown> | undefined;
291
- const maskStyle = navigationStyles[NAVIGATION_MASK_ELEMENT_STYLE_ID] as
292
- | Record<string, unknown>
293
- | undefined;
294
-
295
- const normalizedNav = normalizeInterpolatedStyle(
296
- navigationStyles as Record<string, any>,
297
- );
298
-
299
- if (focused) {
300
- return {
301
- ...normalizedNav,
302
- backdrop: {
303
- style: {
304
- backgroundColor: "black",
305
- opacity: interpolate(progress, [0, 1], [0, 0.5]),
306
- },
307
- },
308
- content: {
309
- style: {
310
- transform: [
311
- { translateX: dragX },
312
- { translateY: dragY },
313
- { scale: dragXScale },
314
- { scale: dragYScale },
315
- ],
316
- },
317
- },
318
- [NAVIGATION_MASK_CONTAINER_STYLE_ID]: containerStyle
319
- ? {
320
- style: {
321
- ...containerStyle,
322
- transform: [
323
- ...(((containerStyle.transform as any[]) ?? []) as any[]),
324
- { translateX: dragX * 0.2 },
325
- { translateY: dragY * 0.2 },
326
- ],
327
- },
328
- }
329
- : undefined,
330
- [NAVIGATION_MASK_ELEMENT_STYLE_ID]: maskStyle
331
- ? {
332
- style: {
333
- ...maskStyle,
334
- borderRadius: interpolate(progress, [0, 1], [0, 24]),
335
- },
336
- }
337
- : undefined,
338
- };
339
- }
340
-
341
- return {
342
- ...normalizedNav,
343
- content: {
344
- style: {
345
- ...(normalizedNav.content?.style ?? {}),
346
- pointerEvents: current.gesture.dismissing ? "none" : "auto",
347
- },
348
- },
349
- [id]: {
350
- style: {
351
- ...(sourceStyle ?? {}),
352
- transform: [
353
- { translateX: dragX || 0 },
354
- { translateY: dragY || 0 },
355
- ...(((sourceStyle?.transform as any[]) ?? []) as any[]),
356
- { scale: dragXScale },
357
- { scale: dragYScale },
358
- ],
359
- },
360
- },
361
- };
362
- },
363
- transitionSpec: {
364
- open: {
365
- stiffness: 1500,
366
- damping: 1000,
367
- mass: 3,
368
- overshootClamping: true,
369
- //@ts-expect-error
370
- restSpeedThreshold: 0.02,
371
- },
372
- close: {
373
- stiffness: 1500,
374
- damping: 1000,
375
- mass: 3,
376
- overshootClamping: true,
377
- //@ts-expect-error
378
- restSpeedThreshold: 0.02,
379
- },
380
- },
381
- ...config,
382
- };
383
- };
384
-
385
- export const SharedAppleMusic = ({
386
- id,
387
- ...config
388
- }: Partial<ScreenTransitionConfig> & {
389
- id: string;
390
- }): ScreenTransitionConfig => {
391
- return {
392
- enableTransitions: true,
393
- gestureEnabled: true,
394
- gestureDirection: ["vertical", "horizontal"],
395
- screenStyleInterpolator: ({
396
- bounds,
397
- focused,
398
- progress,
399
- layouts: { screen },
400
- current,
401
- active,
402
- }) => {
403
- "worklet";
404
-
405
- const normX = active.gesture.handoff.normX;
406
- const normY = active.gesture.handoff.normY;
407
- const initialGesture = active.gesture.handoff.active;
408
-
409
- /**
410
- * ===============================
411
- * Animations for both bounds
412
- * ===============================
413
- */
414
- const xResistance = initialGesture === "horizontal" ? 0.7 : 0.4;
415
- const yResistance = initialGesture === "vertical" ? 0.7 : 0.4;
416
-
417
- const xScaleOuput = initialGesture === "horizontal" ? [1, 0.5] : [1, 1];
418
- const yScaleOuput = initialGesture === "vertical" ? [1, 0.5] : [1, 1];
419
-
420
- const dragX = interpolate(
421
- normX,
422
- [-1, 0, 1],
423
- [-screen.width * xResistance, 0, screen.width * xResistance],
424
- "clamp",
425
- );
426
- const dragY = interpolate(
427
- normY,
428
- [-1, 0, 1],
429
- [-screen.height * yResistance, 0, screen.height * yResistance],
430
- "clamp",
431
- );
432
- const dragXScale = interpolate(normX, [0, 1], xScaleOuput);
433
- const dragYScale = interpolate(normY, [0, 1], yScaleOuput);
434
-
435
- const boundValues = bounds({ id }).values({
436
- method: focused ? "content" : "transform",
437
- anchor: "top",
438
- scaleMode: "uniform",
439
- });
440
-
441
- const opacity = interpolate(
442
- progress,
443
- [0, 0.25, 1.25, 2],
444
- [0, 1, 1, 0],
445
- "clamp",
446
- );
447
-
448
- /**
449
- * ===============================
450
- * Focused specific animations
451
- * ===============================
452
- */
453
- if (focused) {
454
- const maskedValues = bounds({ id }).values({
455
- space: "absolute",
456
- method: "size",
457
- target: "fullscreen",
458
- });
459
-
460
- // Apple Music style drop shadow that increases with drag magnitude
461
- const dragMagnitude = Math.max(Math.abs(normX), Math.abs(normY));
462
- const shadowOpacity = interpolate(
463
- dragMagnitude,
464
- [0, 1],
465
- [0, 0.25],
466
- "clamp",
467
- );
468
- const shadowRadius = interpolate(
469
- dragMagnitude,
470
- [0, 1],
471
- [0, 24],
472
- "clamp",
473
- );
474
- const shadowOffsetY = interpolate(
475
- dragMagnitude,
476
- [0, 1],
477
- [0, 20],
478
- "clamp",
479
- );
480
- const elevation = interpolate(dragMagnitude, [0, 1], [0, 24], "clamp");
481
-
482
- const IOSShadowStyle = {
483
- shadowColor: "#000",
484
- shadowOpacity,
485
- shadowRadius,
486
- shadowOffset: { width: 0, height: shadowOffsetY },
487
- };
488
-
489
- const AndroidShadowStyle = {
490
- elevation,
491
- shadowColor: "#000",
492
- };
493
-
494
- return {
495
- content: {
496
- style: {
497
- pointerEvents: current.animating ? "none" : "auto",
498
- transform: [
499
- { translateX: dragX || 0 },
500
- { translateY: dragY || 0 },
501
- { scale: dragXScale },
502
- { scale: dragYScale },
503
- ],
504
- opacity,
505
- ...(platform === "ios" ? IOSShadowStyle : AndroidShadowStyle),
506
- },
507
- },
508
- _ROOT_CONTAINER: {
509
- style: {
510
- transform: [
511
- { translateX: boundValues.translateX || 0 },
512
- { translateY: boundValues.translateY || 0 },
513
- //@ts-expect-error
514
- { scale: boundValues.scale || 1 },
515
- ],
516
- },
517
- },
518
- _ROOT_MASKED: {
519
- style: {
520
- width: maskedValues.width,
521
- height: maskedValues.height,
522
- transform: [
523
- { translateX: maskedValues.translateX || 0 },
524
- { translateY: maskedValues.translateY || 0 },
525
- ],
526
- borderRadius: interpolate(progress, [0, 1], [0, 24]),
527
- },
528
- },
529
- };
530
- }
531
-
532
- /**
533
- * ===============================
534
- * Unfocused specific animations
535
- * ===============================
536
- */
537
-
538
- const scaledBoundTranslateX = (boundValues.translateX || 0) * dragXScale;
539
- const scaledBoundTranslateY = (boundValues.translateY || 0) * dragYScale;
540
- const scaledBoundScaleX = (boundValues.scaleX || 1) * dragXScale;
541
- const scaledBoundScaleY = (boundValues.scaleY || 1) * dragYScale;
542
-
543
- const contentScale = interpolate(progress, [1, 2], [1, 0.9], "clamp");
544
-
545
- return {
546
- [id]: {
547
- style: {
548
- transform: [
549
- { translateX: dragX || 0 },
550
- { translateY: dragY || 0 },
551
- { translateX: scaledBoundTranslateX },
552
- { translateY: scaledBoundTranslateY },
553
- { scale: dragXScale },
554
- { scale: dragYScale },
555
- { scaleX: scaledBoundScaleX },
556
- { scaleY: scaledBoundScaleY },
557
- ],
558
- opacity,
559
- zIndex: current.animating ? 999 : -1,
560
- position: "relative",
561
- },
562
- },
563
- content: {
564
- style: {
565
- transform: [{ scale: contentScale }],
566
- },
567
- },
568
- };
569
- },
570
- transitionSpec: {
571
- open: {
572
- stiffness: 1000,
573
- damping: 500,
574
- mass: 3,
575
- overshootClamping: true,
576
- //@ts-expect-error - Should not lead to any issues
577
- restSpeedThreshold: 0.02,
578
- },
579
- close: {
580
- stiffness: 600,
581
- damping: 60,
582
- mass: 4,
583
- overshootClamping: false,
584
- //@ts-expect-error - Should not lead to any issues
585
- restSpeedThreshold: 0.02,
586
- restDisplacementThreshold: 0.002,
587
- },
588
- },
589
- ...config,
590
- };
591
- };
592
-
593
- export const SharedXImage = ({
594
- id,
595
- ...config
596
- }: Partial<ScreenTransitionConfig> & {
597
- id: string;
598
- }): ScreenTransitionConfig => {
599
- return {
600
- //@ts-expect-error - Should not lead to any issues
601
- enableTransitions: true,
602
- gestureEnabled: true,
603
- gestureDirection: ["vertical", "vertical-inverted"],
604
- screenStyleInterpolator: ({
605
- focused,
606
- bounds,
607
- current,
608
- layouts: { screen },
609
- progress,
610
- }) => {
611
- "worklet";
612
-
613
- if (!focused) return {};
614
-
615
- const navigationStyles =
616
- bounds({
617
- id,
618
- }).navigation.zoom() ?? {};
619
- const maskStyle = navigationStyles[NAVIGATION_MASK_ELEMENT_STYLE_ID] as
620
- | Record<string, unknown>
621
- | undefined;
622
-
623
- const normalizedNav = normalizeInterpolatedStyle(
624
- navigationStyles as Record<string, any>,
625
- );
626
-
627
- const dragY = interpolate(
628
- current.gesture.normY,
629
- [-1, 0, 1],
630
- [-screen.height, 0, screen.height],
631
- );
632
-
633
- const contentY = interpolate(
634
- progress,
635
- [0, 1],
636
- [dragY >= 0 ? screen.height : -screen.height, 0],
637
- );
638
-
639
- const overlayClr = interpolateColor(
640
- current.progress - Math.abs(current.gesture.normY),
641
- [0, 1],
642
- ["rgba(0,0,0,0)", "rgba(0,0,0,1)"],
643
- );
644
-
645
- const borderRadius = interpolate(current.progress, [0, 1], [12, 0]);
646
-
647
- return {
648
- ...normalizedNav,
649
- [NAVIGATION_MASK_ELEMENT_STYLE_ID]: maskStyle
650
- ? {
651
- style: {
652
- ...maskStyle,
653
- borderRadius,
654
- },
655
- }
656
- : undefined,
657
- content: {
658
- style: {
659
- transform: [{ translateY: contentY }, { translateY: dragY }],
660
- pointerEvents: current.animating ? "none" : "auto",
661
- },
662
- },
663
- backdrop: {
664
- style: {
665
- backgroundColor: overlayClr,
666
- },
667
- },
668
- };
669
- },
670
- transitionSpec: {
671
- open: DefaultSpec,
672
- close: DefaultSpec,
673
- },
674
- ...config,
675
- };
676
- };
@@ -0,0 +1,25 @@
1
+ export {
2
+ BlankStackHost,
3
+ type BlankStackHostProps,
4
+ } from "./components/blank-stack-host";
5
+ export {
6
+ BlankStackRuntime,
7
+ type BlankStackRuntimeProps,
8
+ } from "./components/blank-stack-runtime";
9
+ export {
10
+ BlankStackScene,
11
+ type BlankStackSceneProps,
12
+ } from "./components/blank-stack-scene";
13
+ export {
14
+ type BlankStackState,
15
+ useBlankStackState,
16
+ } from "./hooks/navigation/use-blank-stack-state";
17
+ export type { BlankStackStandardNavigatorProps } from "./navigators/create-blank-stack-navigator";
18
+ export {
19
+ type StackTransition,
20
+ useStackTransition,
21
+ } from "./providers/stack/stack-transition";
22
+ export type {
23
+ BlankStackNavigationEventMap,
24
+ BlankStackNavigationOptions,
25
+ } from "./types/blank-stack.types";
@@ -0,0 +1,24 @@
1
+ import { useMemo } from "react";
2
+ import { useBlankStackStore } from "../../providers/stack/blank-stack.provider";
3
+ import type { BlankStackStoreValue } from "../../types/providers/blank-stack-provider.types";
4
+
5
+ export type BlankStackState = Pick<
6
+ BlankStackStoreValue,
7
+ "focusedIndex" | "routeKeys" | "routes" | "scenes"
8
+ >;
9
+
10
+ /**
11
+ * Reads the durable scene state produced by Blank Stack without prescribing
12
+ * how those scenes are presented.
13
+ */
14
+ export const useBlankStackState = (): BlankStackState => {
15
+ const focusedIndex = useBlankStackStore((store) => store.focusedIndex);
16
+ const routeKeys = useBlankStackStore((store) => store.routeKeys);
17
+ const routes = useBlankStackStore((store) => store.routes);
18
+ const scenes = useBlankStackStore((store) => store.scenes);
19
+
20
+ return useMemo(
21
+ () => ({ focusedIndex, routeKeys, routes, scenes }),
22
+ [focusedIndex, routeKeys, routes, scenes],
23
+ );
24
+ };
@@ -9,8 +9,10 @@ import {
9
9
  import { dispatchCloseAction } from "../../utils/navigation/close-action-replay";
10
10
 
11
11
  export function useNavigationHelpers() {
12
- const route = useDescriptorsStore((store) => store.current.route);
13
- const navigation = useDescriptorsStore((store) => store.current.navigation);
12
+ const route = useDescriptorsStore((store) => store.descriptors.current.route);
13
+ const navigation = useDescriptorsStore(
14
+ (store) => store.descriptors.current.navigation,
15
+ );
14
16
  const requestStackDismiss = useBlankStackStore(
15
17
  (stack) => stack.requestDismiss,
16
18
  );