react-native-screen-transitions 3.6.0 → 3.7.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 (368) hide show
  1. package/README.md +2 -2
  2. package/lib/commonjs/blank-stack/components/stack-view.js +35 -39
  3. package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -1
  4. package/lib/commonjs/blank-stack/navigators/create-blank-stack-navigator.js +7 -14
  5. package/lib/commonjs/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -1
  6. package/lib/commonjs/component-stack/components/stack-view.js +4 -11
  7. package/lib/commonjs/component-stack/components/stack-view.js.map +1 -1
  8. package/lib/commonjs/component-stack/navigators/create-component-stack-navigator.js +1 -1
  9. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +6 -0
  10. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  11. package/lib/commonjs/shared/adapters/with-screen-transitions/context.js +28 -0
  12. package/lib/commonjs/shared/adapters/with-screen-transitions/context.js.map +1 -0
  13. package/lib/commonjs/shared/adapters/with-screen-transitions/index.js +75 -0
  14. package/lib/commonjs/shared/adapters/with-screen-transitions/index.js.map +1 -0
  15. package/lib/commonjs/shared/adapters/with-screen-transitions/options.js +103 -0
  16. package/lib/commonjs/shared/adapters/with-screen-transitions/options.js.map +1 -0
  17. package/lib/commonjs/shared/adapters/with-screen-transitions/stack-layout.js +143 -0
  18. package/lib/commonjs/shared/adapters/with-screen-transitions/stack-layout.js.map +1 -0
  19. package/lib/commonjs/shared/adapters/with-screen-transitions/types.js +6 -0
  20. package/lib/commonjs/shared/adapters/with-screen-transitions/types.js.map +1 -0
  21. package/lib/commonjs/shared/components/activity/helpers.js +9 -0
  22. package/lib/commonjs/shared/components/activity/helpers.js.map +1 -0
  23. package/lib/commonjs/shared/components/activity/index.js +20 -0
  24. package/lib/commonjs/shared/components/activity/index.js.map +1 -0
  25. package/lib/commonjs/shared/components/activity/variants/activity-container.js +29 -0
  26. package/lib/commonjs/shared/components/activity/variants/activity-container.js.map +1 -0
  27. package/lib/commonjs/shared/components/activity/variants/activity-screen.js +107 -0
  28. package/lib/commonjs/shared/components/activity/variants/activity-screen.js.map +1 -0
  29. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-measurer.js +10 -4
  30. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-measurer.js.map +1 -1
  31. package/lib/commonjs/shared/components/create-boundary-component/utils/measured-bounds.js +13 -1
  32. package/lib/commonjs/shared/components/create-boundary-component/utils/measured-bounds.js.map +1 -1
  33. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js +8 -17
  34. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
  35. package/lib/commonjs/shared/components/screen-lifecycle/index.js +1 -1
  36. package/lib/commonjs/shared/components/screen-lifecycle/index.js.map +1 -1
  37. package/lib/commonjs/shared/hooks/navigation/use-navigation-helpers.js +10 -4
  38. package/lib/commonjs/shared/hooks/navigation/use-navigation-helpers.js.map +1 -1
  39. package/lib/commonjs/shared/hooks/navigation/use-stack.js +63 -6
  40. package/lib/commonjs/shared/hooks/navigation/use-stack.js.map +1 -1
  41. package/lib/commonjs/shared/index.js +8 -0
  42. package/lib/commonjs/shared/index.js.map +1 -1
  43. package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js +18 -29
  44. package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  45. package/lib/commonjs/shared/providers/screen/descriptors/index.js +6 -0
  46. package/lib/commonjs/shared/providers/screen/descriptors/index.js.map +1 -1
  47. package/lib/commonjs/shared/providers/screen/gestures/ownership/resolve-ownership.js +2 -1
  48. package/lib/commonjs/shared/providers/screen/gestures/ownership/resolve-ownership.js.map +1 -1
  49. package/lib/commonjs/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js +1 -1
  50. package/lib/commonjs/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +1 -1
  51. package/lib/commonjs/shared/providers/screen/gestures/pan/pan-lifecycle.js +4 -1
  52. package/lib/commonjs/shared/providers/screen/gestures/pan/pan-lifecycle.js.map +1 -1
  53. package/lib/commonjs/shared/providers/screen/gestures/pan/use-pan-behavior.js +4 -3
  54. package/lib/commonjs/shared/providers/screen/gestures/pan/use-pan-behavior.js.map +1 -1
  55. package/lib/commonjs/shared/providers/screen/gestures/pinch/pinch-lifecycle.js +4 -1
  56. package/lib/commonjs/shared/providers/screen/gestures/pinch/pinch-lifecycle.js.map +1 -1
  57. package/lib/commonjs/shared/providers/screen/gestures/pinch/use-pinch-behavior.js +4 -3
  58. package/lib/commonjs/shared/providers/screen/gestures/pinch/use-pinch-behavior.js.map +1 -1
  59. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +16 -1
  60. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  61. package/lib/commonjs/shared/providers/stack/direct.provider.js +4 -3
  62. package/lib/commonjs/shared/providers/stack/direct.provider.js.map +1 -1
  63. package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.js +199 -0
  64. package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.js.map +1 -0
  65. package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.js +62 -0
  66. package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.js.map +1 -0
  67. package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.js +81 -0
  68. package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.js.map +1 -0
  69. package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.js +123 -0
  70. package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.js.map +1 -0
  71. package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/types.js +6 -0
  72. package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/types.js.map +1 -0
  73. package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/index.js +24 -0
  74. package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/index.js.map +1 -0
  75. package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.js +131 -0
  76. package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.js.map +1 -0
  77. package/lib/commonjs/shared/providers/stack/managed.provider.js +18 -29
  78. package/lib/commonjs/shared/providers/stack/managed.provider.js.map +1 -1
  79. package/lib/commonjs/shared/types/stack.types.js.map +1 -1
  80. package/lib/commonjs/shared/utils/create-provider.js +99 -10
  81. package/lib/commonjs/shared/utils/create-provider.js.map +1 -1
  82. package/lib/commonjs/shared/utils/navigation/resolve-scene-neighbors.js +8 -5
  83. package/lib/commonjs/shared/utils/navigation/resolve-scene-neighbors.js.map +1 -1
  84. package/lib/commonjs/shared/utils/navigation/sync-routes-with-removed.js +23 -6
  85. package/lib/commonjs/shared/utils/navigation/sync-routes-with-removed.js.map +1 -1
  86. package/lib/commonjs/shared/utils/visibility-block-offset.js +13 -0
  87. package/lib/commonjs/shared/utils/visibility-block-offset.js.map +1 -0
  88. package/lib/module/blank-stack/components/stack-view.js +36 -40
  89. package/lib/module/blank-stack/components/stack-view.js.map +1 -1
  90. package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js +7 -14
  91. package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -1
  92. package/lib/module/component-stack/components/stack-view.js +4 -11
  93. package/lib/module/component-stack/components/stack-view.js.map +1 -1
  94. package/lib/module/component-stack/navigators/create-component-stack-navigator.js +1 -1
  95. package/lib/module/native-stack/navigators/createNativeStackNavigator.js +6 -0
  96. package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  97. package/lib/module/shared/adapters/with-screen-transitions/context.js +23 -0
  98. package/lib/module/shared/adapters/with-screen-transitions/context.js.map +1 -0
  99. package/lib/module/shared/adapters/with-screen-transitions/index.js +66 -0
  100. package/lib/module/shared/adapters/with-screen-transitions/index.js.map +1 -0
  101. package/lib/module/shared/adapters/with-screen-transitions/options.js +98 -0
  102. package/lib/module/shared/adapters/with-screen-transitions/options.js.map +1 -0
  103. package/lib/module/shared/adapters/with-screen-transitions/stack-layout.js +138 -0
  104. package/lib/module/shared/adapters/with-screen-transitions/stack-layout.js.map +1 -0
  105. package/lib/module/shared/adapters/with-screen-transitions/types.js +4 -0
  106. package/lib/module/shared/adapters/with-screen-transitions/types.js.map +1 -0
  107. package/lib/module/shared/components/activity/helpers.js +5 -0
  108. package/lib/module/shared/components/activity/helpers.js.map +1 -0
  109. package/lib/module/shared/components/activity/index.js +5 -0
  110. package/lib/module/shared/components/activity/index.js.map +1 -0
  111. package/lib/module/shared/components/activity/variants/activity-container.js +24 -0
  112. package/lib/module/shared/components/activity/variants/activity-container.js.map +1 -0
  113. package/lib/module/shared/components/activity/variants/activity-screen.js +103 -0
  114. package/lib/module/shared/components/activity/variants/activity-screen.js.map +1 -0
  115. package/lib/module/shared/components/create-boundary-component/hooks/use-measurer.js +11 -5
  116. package/lib/module/shared/components/create-boundary-component/hooks/use-measurer.js.map +1 -1
  117. package/lib/module/shared/components/create-boundary-component/utils/measured-bounds.js +11 -0
  118. package/lib/module/shared/components/create-boundary-component/utils/measured-bounds.js.map +1 -1
  119. package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js +8 -17
  120. package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
  121. package/lib/module/shared/components/screen-lifecycle/index.js +1 -1
  122. package/lib/module/shared/components/screen-lifecycle/index.js.map +1 -1
  123. package/lib/module/shared/hooks/navigation/use-navigation-helpers.js +11 -5
  124. package/lib/module/shared/hooks/navigation/use-navigation-helpers.js.map +1 -1
  125. package/lib/module/shared/hooks/navigation/use-stack.js +63 -6
  126. package/lib/module/shared/hooks/navigation/use-stack.js.map +1 -1
  127. package/lib/module/shared/index.js +3 -0
  128. package/lib/module/shared/index.js.map +1 -1
  129. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js +17 -29
  130. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  131. package/lib/module/shared/providers/screen/descriptors/index.js +1 -1
  132. package/lib/module/shared/providers/screen/descriptors/index.js.map +1 -1
  133. package/lib/module/shared/providers/screen/gestures/ownership/resolve-ownership.js +2 -1
  134. package/lib/module/shared/providers/screen/gestures/ownership/resolve-ownership.js.map +1 -1
  135. package/lib/module/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js +2 -2
  136. package/lib/module/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +1 -1
  137. package/lib/module/shared/providers/screen/gestures/pan/pan-lifecycle.js +5 -2
  138. package/lib/module/shared/providers/screen/gestures/pan/pan-lifecycle.js.map +1 -1
  139. package/lib/module/shared/providers/screen/gestures/pan/use-pan-behavior.js +4 -3
  140. package/lib/module/shared/providers/screen/gestures/pan/use-pan-behavior.js.map +1 -1
  141. package/lib/module/shared/providers/screen/gestures/pinch/pinch-lifecycle.js +5 -2
  142. package/lib/module/shared/providers/screen/gestures/pinch/pinch-lifecycle.js.map +1 -1
  143. package/lib/module/shared/providers/screen/gestures/pinch/use-pinch-behavior.js +4 -3
  144. package/lib/module/shared/providers/screen/gestures/pinch/use-pinch-behavior.js.map +1 -1
  145. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +16 -1
  146. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  147. package/lib/module/shared/providers/stack/direct.provider.js +5 -4
  148. package/lib/module/shared/providers/stack/direct.provider.js.map +1 -1
  149. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.js +194 -0
  150. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.js.map +1 -0
  151. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.js +57 -0
  152. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.js.map +1 -0
  153. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.js +69 -0
  154. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.js.map +1 -0
  155. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.js +118 -0
  156. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.js.map +1 -0
  157. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/types.js +4 -0
  158. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/types.js.map +1 -0
  159. package/lib/module/shared/providers/stack/helpers/managed-stack-state/index.js +19 -0
  160. package/lib/module/shared/providers/stack/helpers/managed-stack-state/index.js.map +1 -0
  161. package/lib/module/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.js +126 -0
  162. package/lib/module/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.js.map +1 -0
  163. package/lib/module/shared/providers/stack/managed.provider.js +19 -30
  164. package/lib/module/shared/providers/stack/managed.provider.js.map +1 -1
  165. package/lib/module/shared/types/stack.types.js.map +1 -1
  166. package/lib/module/shared/utils/create-provider.js +100 -11
  167. package/lib/module/shared/utils/create-provider.js.map +1 -1
  168. package/lib/module/shared/utils/navigation/resolve-scene-neighbors.js +8 -5
  169. package/lib/module/shared/utils/navigation/resolve-scene-neighbors.js.map +1 -1
  170. package/lib/module/shared/utils/navigation/sync-routes-with-removed.js +23 -6
  171. package/lib/module/shared/utils/navigation/sync-routes-with-removed.js.map +1 -1
  172. package/lib/module/shared/utils/visibility-block-offset.js +8 -0
  173. package/lib/module/shared/utils/visibility-block-offset.js.map +1 -0
  174. package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
  175. package/lib/typescript/blank-stack/index.d.ts +1 -1
  176. package/lib/typescript/blank-stack/index.d.ts.map +1 -1
  177. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts +4 -6
  178. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts.map +1 -1
  179. package/lib/typescript/blank-stack/types.d.ts +41 -29
  180. package/lib/typescript/blank-stack/types.d.ts.map +1 -1
  181. package/lib/typescript/component-stack/components/stack-view.d.ts.map +1 -1
  182. package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts +1 -1
  183. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +5 -0
  184. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts.map +1 -1
  185. package/lib/typescript/native-stack/types.d.ts +25 -0
  186. package/lib/typescript/native-stack/types.d.ts.map +1 -1
  187. package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts +15 -0
  188. package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts.map +1 -0
  189. package/lib/typescript/shared/adapters/with-screen-transitions/index.d.ts +11 -0
  190. package/lib/typescript/shared/adapters/with-screen-transitions/index.d.ts.map +1 -0
  191. package/lib/typescript/shared/adapters/with-screen-transitions/options.d.ts +16 -0
  192. package/lib/typescript/shared/adapters/with-screen-transitions/options.d.ts.map +1 -0
  193. package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts +12 -0
  194. package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts.map +1 -0
  195. package/lib/typescript/shared/adapters/with-screen-transitions/types.d.ts +24 -0
  196. package/lib/typescript/shared/adapters/with-screen-transitions/types.d.ts.map +1 -0
  197. package/lib/typescript/shared/components/activity/helpers.d.ts +4 -0
  198. package/lib/typescript/shared/components/activity/helpers.d.ts.map +1 -0
  199. package/lib/typescript/shared/components/activity/index.d.ts +3 -0
  200. package/lib/typescript/shared/components/activity/index.d.ts.map +1 -0
  201. package/lib/typescript/shared/components/activity/variants/activity-container.d.ts +6 -0
  202. package/lib/typescript/shared/components/activity/variants/activity-container.d.ts.map +1 -0
  203. package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts +13 -0
  204. package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts.map +1 -0
  205. package/lib/typescript/shared/components/create-boundary-component/hooks/use-measurer.d.ts.map +1 -1
  206. package/lib/typescript/shared/components/create-boundary-component/index.d.ts +2 -2
  207. package/lib/typescript/shared/components/create-boundary-component/utils/measured-bounds.d.ts +1 -0
  208. package/lib/typescript/shared/components/create-boundary-component/utils/measured-bounds.d.ts.map +1 -1
  209. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts +1 -2
  210. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts.map +1 -1
  211. package/lib/typescript/shared/hooks/navigation/use-navigation-helpers.d.ts +1 -0
  212. package/lib/typescript/shared/hooks/navigation/use-navigation-helpers.d.ts.map +1 -1
  213. package/lib/typescript/shared/hooks/navigation/use-stack.d.ts +13 -1
  214. package/lib/typescript/shared/hooks/navigation/use-stack.d.ts.map +1 -1
  215. package/lib/typescript/shared/index.d.ts +15 -11
  216. package/lib/typescript/shared/index.d.ts.map +1 -1
  217. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts +11 -3
  218. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  219. package/lib/typescript/shared/providers/screen/descriptors/index.d.ts +1 -1
  220. package/lib/typescript/shared/providers/screen/descriptors/index.d.ts.map +1 -1
  221. package/lib/typescript/shared/providers/screen/gestures/ownership/resolve-ownership.d.ts.map +1 -1
  222. package/lib/typescript/shared/providers/screen/gestures/pan/pan-lifecycle.d.ts +1 -1
  223. package/lib/typescript/shared/providers/screen/gestures/pan/pan-lifecycle.d.ts.map +1 -1
  224. package/lib/typescript/shared/providers/screen/gestures/pan/use-pan-behavior.d.ts.map +1 -1
  225. package/lib/typescript/shared/providers/screen/gestures/pinch/pinch-lifecycle.d.ts +1 -1
  226. package/lib/typescript/shared/providers/screen/gestures/pinch/pinch-lifecycle.d.ts.map +1 -1
  227. package/lib/typescript/shared/providers/screen/gestures/pinch/use-pinch-behavior.d.ts.map +1 -1
  228. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +3 -1
  229. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  230. package/lib/typescript/shared/providers/stack/direct.provider.d.ts.map +1 -1
  231. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.d.ts +13 -0
  232. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.d.ts.map +1 -0
  233. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.d.ts +12 -0
  234. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.d.ts.map +1 -0
  235. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.d.ts +11 -0
  236. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.d.ts.map +1 -0
  237. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.d.ts +12 -0
  238. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.d.ts.map +1 -0
  239. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/types.d.ts +40 -0
  240. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/types.d.ts.map +1 -0
  241. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/index.d.ts +12 -0
  242. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/index.d.ts.map +1 -0
  243. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.d.ts +13 -0
  244. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.d.ts.map +1 -0
  245. package/lib/typescript/shared/providers/stack/managed.provider.d.ts.map +1 -1
  246. package/lib/typescript/shared/types/index.d.ts +2 -2
  247. package/lib/typescript/shared/types/index.d.ts.map +1 -1
  248. package/lib/typescript/shared/types/providers/managed-stack.types.d.ts +3 -9
  249. package/lib/typescript/shared/types/providers/managed-stack.types.d.ts.map +1 -1
  250. package/lib/typescript/shared/types/screen.types.d.ts +24 -0
  251. package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
  252. package/lib/typescript/shared/types/stack.types.d.ts +7 -0
  253. package/lib/typescript/shared/types/stack.types.d.ts.map +1 -1
  254. package/lib/typescript/shared/utils/create-provider.d.ts +17 -3
  255. package/lib/typescript/shared/utils/create-provider.d.ts.map +1 -1
  256. package/lib/typescript/shared/utils/navigation/resolve-scene-neighbors.d.ts +2 -1
  257. package/lib/typescript/shared/utils/navigation/resolve-scene-neighbors.d.ts.map +1 -1
  258. package/lib/typescript/shared/utils/navigation/sync-routes-with-removed.d.ts +2 -1
  259. package/lib/typescript/shared/utils/navigation/sync-routes-with-removed.d.ts.map +1 -1
  260. package/lib/typescript/shared/utils/visibility-block-offset.d.ts +2 -0
  261. package/lib/typescript/shared/utils/visibility-block-offset.d.ts.map +1 -0
  262. package/package.json +11 -1
  263. package/src/blank-stack/components/stack-view.tsx +54 -48
  264. package/src/blank-stack/index.ts +1 -0
  265. package/src/blank-stack/navigators/create-blank-stack-navigator.tsx +7 -15
  266. package/src/blank-stack/types.ts +44 -29
  267. package/src/component-stack/components/stack-view.tsx +4 -11
  268. package/src/component-stack/navigators/create-component-stack-navigator.tsx +1 -1
  269. package/src/native-stack/navigators/createNativeStackNavigator.tsx +5 -0
  270. package/src/native-stack/types.ts +25 -0
  271. package/src/shared/adapters/with-screen-transitions/context.tsx +42 -0
  272. package/src/shared/adapters/with-screen-transitions/index.tsx +155 -0
  273. package/src/shared/adapters/with-screen-transitions/options.ts +172 -0
  274. package/src/shared/adapters/with-screen-transitions/stack-layout.tsx +233 -0
  275. package/src/shared/adapters/with-screen-transitions/types.ts +28 -0
  276. package/src/shared/components/activity/helpers.ts +8 -0
  277. package/src/shared/components/activity/index.tsx +2 -0
  278. package/src/shared/components/activity/variants/activity-container.tsx +25 -0
  279. package/src/shared/components/activity/variants/activity-screen.tsx +133 -0
  280. package/src/shared/components/create-boundary-component/hooks/use-measurer.ts +23 -4
  281. package/src/shared/components/create-boundary-component/utils/measured-bounds.ts +15 -0
  282. package/src/shared/components/screen-lifecycle/hooks/use-close-transition-intent.ts +9 -26
  283. package/src/shared/components/screen-lifecycle/index.tsx +1 -1
  284. package/src/shared/hooks/navigation/use-navigation-helpers.ts +9 -3
  285. package/src/shared/hooks/navigation/use-stack.tsx +115 -6
  286. package/src/shared/index.ts +9 -0
  287. package/src/shared/providers/screen/descriptors/descriptors.provider.tsx +31 -31
  288. package/src/shared/providers/screen/descriptors/index.tsx +1 -0
  289. package/src/shared/providers/screen/gestures/ownership/resolve-ownership.ts +2 -1
  290. package/src/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.ts +2 -2
  291. package/src/shared/providers/screen/gestures/pan/pan-lifecycle.ts +7 -2
  292. package/src/shared/providers/screen/gestures/pan/use-pan-behavior.ts +10 -2
  293. package/src/shared/providers/screen/gestures/pinch/pinch-lifecycle.ts +7 -2
  294. package/src/shared/providers/screen/gestures/pinch/use-pinch-behavior.ts +8 -3
  295. package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +17 -1
  296. package/src/shared/providers/stack/direct.provider.tsx +13 -4
  297. package/src/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.ts +368 -0
  298. package/src/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.ts +129 -0
  299. package/src/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.ts +139 -0
  300. package/src/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.ts +198 -0
  301. package/src/shared/providers/stack/helpers/managed-stack-state/helpers/types.ts +57 -0
  302. package/src/shared/providers/stack/helpers/managed-stack-state/index.ts +40 -0
  303. package/src/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.ts +160 -0
  304. package/src/shared/providers/stack/managed.provider.tsx +23 -39
  305. package/src/shared/types/index.ts +3 -0
  306. package/src/shared/types/providers/managed-stack.types.ts +6 -8
  307. package/src/shared/types/screen.types.ts +25 -0
  308. package/src/shared/types/stack.types.ts +11 -0
  309. package/src/shared/utils/create-provider.tsx +183 -8
  310. package/src/shared/utils/navigation/resolve-scene-neighbors.ts +9 -4
  311. package/src/shared/utils/navigation/sync-routes-with-removed.ts +38 -7
  312. package/src/shared/utils/visibility-block-offset.ts +4 -0
  313. package/lib/commonjs/blank-stack/components/stack-view.native.js +0 -64
  314. package/lib/commonjs/blank-stack/components/stack-view.native.js.map +0 -1
  315. package/lib/commonjs/shared/components/native-screen-container.js +0 -42
  316. package/lib/commonjs/shared/components/native-screen-container.js.map +0 -1
  317. package/lib/commonjs/shared/components/native-screen.js +0 -125
  318. package/lib/commonjs/shared/components/native-screen.js.map +0 -1
  319. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.js +0 -51
  320. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.js.map +0 -1
  321. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.js +0 -15
  322. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.js.map +0 -1
  323. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.js +0 -14
  324. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.js.map +0 -1
  325. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.js +0 -13
  326. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.js.map +0 -1
  327. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/index.js +0 -101
  328. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/index.js.map +0 -1
  329. package/lib/module/blank-stack/components/stack-view.native.js +0 -60
  330. package/lib/module/blank-stack/components/stack-view.native.js.map +0 -1
  331. package/lib/module/shared/components/native-screen-container.js +0 -37
  332. package/lib/module/shared/components/native-screen-container.js.map +0 -1
  333. package/lib/module/shared/components/native-screen.js +0 -119
  334. package/lib/module/shared/components/native-screen.js.map +0 -1
  335. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.js +0 -47
  336. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.js.map +0 -1
  337. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.js +0 -10
  338. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.js.map +0 -1
  339. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.js +0 -9
  340. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.js.map +0 -1
  341. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.js +0 -8
  342. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.js.map +0 -1
  343. package/lib/module/shared/providers/stack/helpers/use-local-routes/index.js +0 -95
  344. package/lib/module/shared/providers/stack/helpers/use-local-routes/index.js.map +0 -1
  345. package/lib/typescript/blank-stack/components/stack-view.native.d.ts +0 -3
  346. package/lib/typescript/blank-stack/components/stack-view.native.d.ts.map +0 -1
  347. package/lib/typescript/shared/components/native-screen-container.d.ts +0 -6
  348. package/lib/typescript/shared/components/native-screen-container.d.ts.map +0 -1
  349. package/lib/typescript/shared/components/native-screen.d.ts +0 -12
  350. package/lib/typescript/shared/components/native-screen.d.ts.map +0 -1
  351. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.d.ts +0 -10
  352. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.d.ts.map +0 -1
  353. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.d.ts +0 -2
  354. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.d.ts.map +0 -1
  355. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.d.ts +0 -3
  356. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.d.ts.map +0 -1
  357. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.d.ts +0 -3
  358. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.d.ts.map +0 -1
  359. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/index.d.ts +0 -19
  360. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/index.d.ts.map +0 -1
  361. package/src/blank-stack/components/stack-view.native.tsx +0 -74
  362. package/src/shared/components/native-screen-container.tsx +0 -33
  363. package/src/shared/components/native-screen.tsx +0 -176
  364. package/src/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.ts +0 -65
  365. package/src/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.ts +0 -15
  366. package/src/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.ts +0 -12
  367. package/src/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.ts +0 -11
  368. package/src/shared/providers/stack/helpers/use-local-routes/index.ts +0 -147
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createManagedStackController = void 0;
7
+ var _native = require("@react-navigation/native");
8
+ var _buildManagedStackState = require("./helpers/build-managed-stack-state");
9
+ var _deriveManagedStackState = require("./helpers/derive-managed-stack-state");
10
+ /**
11
+ * Maintains the stack-local route snapshot used while managed transitions run.
12
+ *
13
+ * React Navigation remains the source of truth for settled routes, but it can
14
+ * remove descriptors before our close animation has finished. This controller
15
+ * keeps those closing routes locally until their lifecycle reports completion.
16
+ */
17
+ const createManagedStackController = initialProps => {
18
+ const closingRouteKeys = new Set();
19
+ let props = initialProps;
20
+ let previousPropRoutes = initialProps.state.routes;
21
+ let snapshot = {
22
+ state: (0, _buildManagedStackState.buildManagedStackState)({
23
+ props,
24
+ routes: initialProps.state.routes,
25
+ descriptors: initialProps.descriptors,
26
+ closingRouteKeys
27
+ })
28
+ };
29
+ const listeners = new Set();
30
+ const emit = () => {
31
+ for (const listener of listeners) {
32
+ listener();
33
+ }
34
+ };
35
+ const subscribe = listener => {
36
+ listeners.add(listener);
37
+ return () => {
38
+ listeners.delete(listener);
39
+ };
40
+ };
41
+ const getSnapshot = () => {
42
+ return snapshot;
43
+ };
44
+ const update = nextProps => {
45
+ const previousRoutesSnapshot = previousPropRoutes;
46
+ props = nextProps;
47
+ const nextState = (0, _deriveManagedStackState.deriveManagedStackState)({
48
+ props,
49
+ current: snapshot.state,
50
+ previousRoutesSnapshot,
51
+ closingRouteKeys
52
+ });
53
+ previousPropRoutes = nextProps.state.routes;
54
+ if (nextState === snapshot.state) {
55
+ return;
56
+ }
57
+ snapshot = {
58
+ state: nextState
59
+ };
60
+ };
61
+ const handleCloseRoute = ({
62
+ route
63
+ }) => {
64
+ const {
65
+ state,
66
+ navigation
67
+ } = props;
68
+ if (state.routes.some(candidate => candidate.key === route.key)) {
69
+ navigation.dispatch({
70
+ ..._native.StackActions.pop(),
71
+ source: route.key,
72
+ target: state.key
73
+ });
74
+ return;
75
+ }
76
+ closingRouteKeys.delete(route.key);
77
+ const current = snapshot.state;
78
+ const routeExists = current.routes.some(candidate => candidate.key === route.key);
79
+ if (!routeExists) {
80
+ return;
81
+ }
82
+ const nextRoutes = current.routes.filter(candidate => candidate.key !== route.key);
83
+ const nextDescriptors = {
84
+ ...current.sourceDescriptors
85
+ };
86
+ delete nextDescriptors[route.key];
87
+ snapshot = {
88
+ state: (0, _buildManagedStackState.buildManagedStackState)({
89
+ props,
90
+ routes: nextRoutes,
91
+ descriptors: nextDescriptors,
92
+ closingRouteKeys,
93
+ previousState: current
94
+ })
95
+ };
96
+ emit();
97
+ };
98
+ const requestDismiss = ({
99
+ route
100
+ }) => {
101
+ const current = snapshot.state;
102
+ const routeIndex = current.routes.findIndex(candidate => candidate.key === route.key);
103
+ if (routeIndex <= 0) {
104
+ return false;
105
+ }
106
+ if (closingRouteKeys.has(route.key)) {
107
+ return true;
108
+ }
109
+ closingRouteKeys.add(route.key);
110
+ snapshot = {
111
+ state: (0, _buildManagedStackState.buildManagedStackState)({
112
+ props,
113
+ routes: current.routes,
114
+ descriptors: current.sourceDescriptors,
115
+ closingRouteKeys,
116
+ previousState: current
117
+ })
118
+ };
119
+ emit();
120
+ return true;
121
+ };
122
+ return {
123
+ subscribe,
124
+ getSnapshot,
125
+ update,
126
+ handleCloseRoute,
127
+ requestDismiss
128
+ };
129
+ };
130
+ exports.createManagedStackController = createManagedStackController;
131
+ //# sourceMappingURL=managed-stack-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_native","require","_buildManagedStackState","_deriveManagedStackState","createManagedStackController","initialProps","closingRouteKeys","Set","props","previousPropRoutes","state","routes","snapshot","buildManagedStackState","descriptors","listeners","emit","listener","subscribe","add","delete","getSnapshot","update","nextProps","previousRoutesSnapshot","nextState","deriveManagedStackState","current","handleCloseRoute","route","navigation","some","candidate","key","dispatch","StackActions","pop","source","target","routeExists","nextRoutes","filter","nextDescriptors","sourceDescriptors","previousState","requestDismiss","routeIndex","findIndex","has","exports"],"sourceRoot":"../../../../../../../src","sources":["shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.ts"],"mappings":"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","ignoreList":[]}
@@ -8,10 +8,9 @@ exports.withManagedStack = withManagedStack;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var React = _react;
10
10
  var _useStack = require("../../hooks/navigation/use-stack");
11
+ var _animation = require("../../stores/animation.store");
11
12
  var _core = require("./core.provider");
12
- var _useClosingRouteMap = require("./helpers/use-closing-route-map");
13
- var _useLocalRoutes = require("./helpers/use-local-routes");
14
- var _useProcessedRoutes = require("./helpers/use-processed-routes");
13
+ var _managedStackState = require("./helpers/managed-stack-state");
15
14
  var _useStackDerived = require("./helpers/use-stack-derived");
16
15
  var _jsxRuntime = require("react/jsx-runtime");
17
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
@@ -31,42 +30,32 @@ function useManagedStackValue(props) {
31
30
  const {
32
31
  state,
33
32
  handleCloseRoute,
34
- closingRouteKeys
35
- } = (0, _useLocalRoutes.useLocalRoutes)(props);
33
+ requestDismiss
34
+ } = (0, _managedStackState.useManagedStackState)(props);
36
35
  const navigatorKey = props.state.key;
37
- const processed = (0, _useProcessedRoutes.useProcessedRoutes)(state.routes, state.descriptors);
36
+ const animationMaps = (0, _react.useMemo)(() => state.routeKeys.map(routeKey => _animation.AnimationStore.getBag(routeKey)), [state.routeKeys]);
38
37
  const {
39
38
  optimisticFocusedIndex
40
- } = (0, _useStackDerived.useStackDerived)(processed.animationMaps);
41
- const closingRouteMap = (0, _useClosingRouteMap.useClosingRouteMap)(processed.routeKeys, processed.animationMaps);
39
+ } = (0, _useStackDerived.useStackDerived)(animationMaps);
42
40
  const focusedIndex = props.state.index;
43
-
44
- // Common stack context (consumed by useStack())
45
41
  const stackContextValue = (0, _react.useMemo)(() => ({
46
42
  flags,
47
43
  navigatorKey,
48
- routeKeys: processed.routeKeys,
44
+ routeKeys: state.routeKeys,
49
45
  routes: state.routes,
50
- scenes: processed.scenes,
51
- optimisticFocusedIndex
52
- }), [flags, navigatorKey, processed.routeKeys, state.routes, processed.scenes, optimisticFocusedIndex]);
53
-
54
- // Managed-specific context (consumed by useManagedStackContext())
46
+ scenes: state.scenes,
47
+ optimisticFocusedIndex,
48
+ focusedIndex,
49
+ requestDismiss
50
+ }), [flags, navigatorKey, state.routeKeys, state.routes, state.scenes, optimisticFocusedIndex, focusedIndex, requestDismiss]);
55
51
  const managedContextValue = (0, _react.useMemo)(() => ({
56
- activeScreensLimit: processed.activeScreensLimit,
57
- closingRouteKeysShared: closingRouteKeys.shared,
58
- handleCloseRoute,
59
- backdropBehaviors: processed.backdropBehaviors
60
- }), [processed.activeScreensLimit, closingRouteKeys.shared, handleCloseRoute, processed.backdropBehaviors]);
61
-
62
- // Combined props for render children (stack-view components)
52
+ handleCloseRoute
53
+ }), [handleCloseRoute]);
63
54
  const renderProps = (0, _react.useMemo)(() => ({
64
- descriptors: state.descriptors,
65
- scenes: processed.scenes,
55
+ scenes: state.scenes,
66
56
  focusedIndex,
67
- closingRouteMap,
68
- shouldShowFloatOverlay: processed.shouldShowFloatOverlay
69
- }), [state.descriptors, processed.scenes, focusedIndex, closingRouteMap, processed.shouldShowFloatOverlay]);
57
+ shouldShowFloatOverlay: state.shouldShowFloatOverlay
58
+ }), [state.scenes, focusedIndex, state.shouldShowFloatOverlay]);
70
59
  return {
71
60
  stackContextValue,
72
61
  managedContextValue,
@@ -80,7 +69,7 @@ function withManagedStack(Component) {
80
69
  managedContextValue,
81
70
  renderProps
82
71
  } = useManagedStackValue(props);
83
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_useStack.StackContext.Provider, {
72
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_useStack.StackProvider, {
84
73
  value: stackContextValue,
85
74
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ManagedStackContext.Provider, {
86
75
  value: managedContextValue,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","React","_useStack","_core","_useClosingRouteMap","_useLocalRoutes","_useProcessedRoutes","_useStackDerived","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ManagedStackContext","createContext","displayName","useManagedStackContext","context","useContext","Error","useManagedStackValue","props","flags","useStackCoreContext","state","handleCloseRoute","closingRouteKeys","useLocalRoutes","navigatorKey","key","processed","useProcessedRoutes","routes","descriptors","optimisticFocusedIndex","useStackDerived","animationMaps","closingRouteMap","useClosingRouteMap","routeKeys","focusedIndex","index","stackContextValue","useMemo","scenes","managedContextValue","activeScreensLimit","closingRouteKeysShared","shared","backdropBehaviors","renderProps","shouldShowFloatOverlay","withManagedStack","Component","ManagedStackProvider","jsx","StackContext","Provider","value","children"],"sourceRoot":"../../../../../src","sources":["shared/providers/stack/managed.provider.tsx"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA+B,IAAAC,KAAA,GAAAH,MAAA;AAE/B,IAAAI,SAAA,GAAAF,OAAA;AAeA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAN,OAAA;AACA,IAAAO,gBAAA,GAAAP,OAAA;AAA8D,IAAAQ,WAAA,GAAAR,OAAA;AAAA,SAAAD,wBAAAU,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAZ,uBAAA,YAAAA,CAAAU,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAE9D,MAAMkB,mBAAmB,gBACxB3B,KAAK,CAAC4B,aAAa,CAAkC,IAAI,CAAC;AAC3DD,mBAAmB,CAACE,WAAW,GAAG,cAAc;AAEhD,SAASC,sBAAsBA,CAAA,EAA6B;EAC3D,MAAMC,OAAO,GAAG/B,KAAK,CAACgC,UAAU,CAACL,mBAAmB,CAAC;EACrD,IAAI,CAACI,OAAO,EAAE;IACb,MAAM,IAAIE,KAAK,CACd,iEACD,CAAC;EACF;EACA,OAAOF,OAAO;AACf;AAEA,SAASG,oBAAoBA,CAI5BC,KAAkD,EAChB;EAClC,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,yBAAmB,EAAC,CAAC;EACvC,MAAM;IAAEC,KAAK;IAAEC,gBAAgB;IAAEC;EAAiB,CAAC,GAAG,IAAAC,8BAAc,EAACN,KAAK,CAAC;EAC3E,MAAMO,YAAY,GAAGP,KAAK,CAACG,KAAK,CAACK,GAAG;EAEpC,MAAMC,SAAS,GAAG,IAAAC,sCAAkB,EAACP,KAAK,CAACQ,MAAM,EAAER,KAAK,CAACS,WAAW,CAAC;EACrE,MAAM;IAAEC;EAAuB,CAAC,GAAG,IAAAC,gCAAe,EAACL,SAAS,CAACM,aAAa,CAAC;EAC3E,MAAMC,eAAe,GAAG,IAAAC,sCAAkB,EACzCR,SAAS,CAACS,SAAS,EACnBT,SAAS,CAACM,aACX,CAAC;EAED,MAAMI,YAAY,GAAGnB,KAAK,CAACG,KAAK,CAACiB,KAAK;;EAEtC;EACA,MAAMC,iBAAiB,GAAG,IAAAC,cAAO,EAChC,OAAO;IACNrB,KAAK;IACLM,YAAY;IACZW,SAAS,EAAET,SAAS,CAACS,SAAS;IAC9BP,MAAM,EAAER,KAAK,CAACQ,MAAyB;IACvCY,MAAM,EAAEd,SAAS,CAACc,MAA0B;IAC5CV;EACD,CAAC,CAAC,EACF,CACCZ,KAAK,EACLM,YAAY,EACZE,SAAS,CAACS,SAAS,EACnBf,KAAK,CAACQ,MAAM,EACZF,SAAS,CAACc,MAAM,EAChBV,sBAAsB,CAExB,CAAC;;EAED;EACA,MAAMW,mBAAmB,GAAG,IAAAF,cAAO,EAClC,OAAO;IACNG,kBAAkB,EAAEhB,SAAS,CAACgB,kBAAkB;IAChDC,sBAAsB,EAAErB,gBAAgB,CAACsB,MAAM;IAC/CvB,gBAAgB;IAChBwB,iBAAiB,EAAEnB,SAAS,CAACmB;EAC9B,CAAC,CAAC,EACF,CACCnB,SAAS,CAACgB,kBAAkB,EAC5BpB,gBAAgB,CAACsB,MAAM,EACvBvB,gBAAgB,EAChBK,SAAS,CAACmB,iBAAiB,CAE7B,CAAC;;EAED;EACA,MAAMC,WAAW,GAAG,IAAAP,cAAO,EAC1B,OAAO;IACNV,WAAW,EAAET,KAAK,CAACS,WAAW;IAC9BW,MAAM,EAAEd,SAAS,CAACc,MAAM;IACxBJ,YAAY;IACZH,eAAe;IACfc,sBAAsB,EAAErB,SAAS,CAACqB;EACnC,CAAC,CAAC,EACF,CACC3B,KAAK,CAACS,WAAW,EACjBH,SAAS,CAACc,MAAM,EAChBJ,YAAY,EACZH,eAAe,EACfP,SAAS,CAACqB,sBAAsB,CAElC,CAAC;EAED,OAAO;IAAET,iBAAiB;IAAEG,mBAAmB;IAAEK;EAAY,CAAC;AAC/D;AAEA,SAASE,gBAAgBA,CAIxBC,SAAoE,EACZ;EACxD,OAAO,SAASC,oBAAoBA,CACnCjC,KAAkD,EACjD;IACD,MAAM;MAAEqB,iBAAiB;MAAEG,mBAAmB;MAAEK;IAAY,CAAC,GAC5D9B,oBAAoB,CAA2BC,KAAK,CAAC;IAEtD,oBACC,IAAA5B,WAAA,CAAA8D,GAAA,EAACpE,SAAA,CAAAqE,YAAY,CAACC,QAAQ;MAACC,KAAK,EAAEhB,iBAAkB;MAAAiB,QAAA,eAC/C,IAAAlE,WAAA,CAAA8D,GAAA,EAAC1C,mBAAmB,CAAC4C,QAAQ;QAACC,KAAK,EAAEb,mBAAoB;QAAAc,QAAA,eACxD,IAAAlE,WAAA,CAAA8D,GAAA,EAACF,SAAS;UAAA,GAAKH;QAAW,CAAG;MAAC,CACD;IAAC,CACT,CAAC;EAE1B,CAAC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","React","_useStack","_animation","_core","_managedStackState","_useStackDerived","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ManagedStackContext","createContext","displayName","useManagedStackContext","context","useContext","Error","useManagedStackValue","props","flags","useStackCoreContext","state","handleCloseRoute","requestDismiss","useManagedStackState","navigatorKey","key","animationMaps","useMemo","routeKeys","map","routeKey","AnimationStore","getBag","optimisticFocusedIndex","useStackDerived","focusedIndex","index","stackContextValue","routes","scenes","managedContextValue","renderProps","shouldShowFloatOverlay","withManagedStack","Component","ManagedStackProvider","jsx","StackProvider","value","children","Provider"],"sourceRoot":"../../../../../src","sources":["shared/providers/stack/managed.provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["StackType","exports"],"sourceRoot":"../../../../src","sources":["shared/types/stack.types.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AAYA;AACA;AACA;AACA;AAYA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AAHA,IAUYA,SAAS,GAAAC,OAAA,CAAAD,SAAA,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["StackType","exports"],"sourceRoot":"../../../../src","sources":["shared/types/stack.types.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AAYA;AACA;AACA;AACA;AAmBA;AACA;AACA;AACA;AAUA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AAHA,IAUYA,SAAS,GAAAC,OAAA,CAAAD,SAAA,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA","ignoreList":[]}
@@ -12,13 +12,46 @@ var _jsxRuntime = require("react/jsx-runtime");
12
12
  * SUPER COOL AMAZING UTILITY
13
13
  */
14
14
 
15
+ const NullProviderStore = {
16
+ getSnapshot: () => null,
17
+ subscribe: () => () => {}
18
+ };
19
+ const createProviderStore = initialSnapshot => {
20
+ let snapshot = initialSnapshot;
21
+ const listeners = new Set();
22
+ return {
23
+ getSnapshot: () => snapshot,
24
+ notify: () => {
25
+ for (const listener of listeners) {
26
+ listener();
27
+ }
28
+ },
29
+ setSnapshot: nextSnapshot => {
30
+ if (Object.is(snapshot, nextSnapshot)) {
31
+ return false;
32
+ }
33
+ snapshot = nextSnapshot;
34
+ return true;
35
+ },
36
+ subscribe: listener => {
37
+ listeners.add(listener);
38
+ return () => {
39
+ listeners.delete(listener);
40
+ };
41
+ }
42
+ };
43
+ };
15
44
  function createProvider(name, options) {
16
45
  return factory => {
17
46
  const {
18
47
  guarded = true
19
48
  } = options ?? {};
49
+ const providerDisplayName = `${name}Provider`;
50
+ const innerProviderDisplayName = `${name}InnerProvider`;
20
51
  const Context = /*#__PURE__*/(0, _react.createContext)(null);
21
52
  Context.displayName = name;
53
+ const StoreContext = /*#__PURE__*/(0, _react.createContext)(null);
54
+ StoreContext.displayName = `${name}Store`;
22
55
  const Provider = props => {
23
56
  const {
24
57
  children = props.children,
@@ -29,27 +62,52 @@ function createProvider(name, options) {
29
62
  throw new Error(`${name}Context value must be provided. You likely forgot to return it from the factory function.`);
30
63
  }
31
64
  const memoValue = (0, _react.useMemo)(() => enabled ? value : null, [enabled, value]);
65
+ const storeRef = (0, _react.useRef)(null);
66
+ const pendingNotifyRef = (0, _react.useRef)(false);
67
+ if (storeRef.current === null) {
68
+ storeRef.current = createProviderStore(memoValue);
69
+ }
70
+ const store = storeRef.current;
71
+ pendingNotifyRef.current = store.setSnapshot(memoValue) || pendingNotifyRef.current;
72
+ (0, _react.useLayoutEffect)(() => {
73
+ if (!pendingNotifyRef.current) {
74
+ return;
75
+ }
76
+ pendingNotifyRef.current = false;
77
+ store.notify();
78
+ });
32
79
 
33
80
  // Per-instance ref ensures InnerProvider reads latest value while keeping
34
81
  // a stable component reference.
35
82
  const valueRef = (0, _react.useRef)(memoValue);
36
83
  valueRef.current = memoValue;
37
- const InnerProvider = (0, _react.useMemo)(() => ({
38
- children
39
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(Context.Provider, {
40
- value: valueRef.current,
41
- children: children
42
- }), []);
84
+ const InnerProvider = (0, _react.useMemo)(() => {
85
+ const NamedInnerProvider = ({
86
+ children
87
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(StoreContext.Provider, {
88
+ value: store,
89
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Context.Provider, {
90
+ value: valueRef.current,
91
+ children: children
92
+ })
93
+ });
94
+ NamedInnerProvider.displayName = innerProviderDisplayName;
95
+ return NamedInnerProvider;
96
+ }, [store]);
43
97
  if (typeof children === "function") {
44
98
  return children({
45
99
  [`${name}Provider`]: InnerProvider
46
100
  });
47
101
  }
48
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Context.Provider, {
49
- value: memoValue,
50
- children: children
102
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(StoreContext.Provider, {
103
+ value: store,
104
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Context.Provider, {
105
+ value: memoValue,
106
+ children: children
107
+ })
51
108
  });
52
109
  };
110
+ Provider.displayName = providerDisplayName;
53
111
  const useEnhancedContext = () => {
54
112
  const context = (0, _react.useContext)(Context);
55
113
  if (guarded && context === null) {
@@ -57,10 +115,41 @@ function createProvider(name, options) {
57
115
  }
58
116
  return context;
59
117
  };
118
+ const useStoreSelector = selector => {
119
+ const store = (0, _react.useContext)(StoreContext);
120
+ const resolvedStore = store ?? NullProviderStore;
121
+ const selectorRef = (0, _react.useRef)(selector);
122
+ selectorRef.current = selector;
123
+ const getSelectedSnapshot = (0, _react.useCallback)(() => {
124
+ if (guarded && store === null) {
125
+ throw new Error(`${name} store must be used within a ${name}Provider`);
126
+ }
127
+ const snapshot = resolvedStore.getSnapshot();
128
+ if (guarded && snapshot === null) {
129
+ throw new Error(`${name} store must be used within an enabled ${name}Provider`);
130
+ }
131
+ return selectorRef.current ? selectorRef.current(snapshot) : snapshot;
132
+ }, [resolvedStore, store]);
133
+ return (0, _react.useSyncExternalStore)(resolvedStore.subscribe, getSelectedSnapshot, getSelectedSnapshot);
134
+ };
135
+ const useOptionalStoreSelector = selector => {
136
+ const store = (0, _react.useContext)(StoreContext);
137
+ const resolvedStore = store ?? NullProviderStore;
138
+ const selectorRef = (0, _react.useRef)(selector);
139
+ selectorRef.current = selector;
140
+ const getSelectedSnapshot = (0, _react.useCallback)(() => {
141
+ const snapshot = resolvedStore.getSnapshot();
142
+ return selectorRef.current ? selectorRef.current(snapshot) : snapshot;
143
+ }, [resolvedStore]);
144
+ return (0, _react.useSyncExternalStore)(resolvedStore.subscribe, getSelectedSnapshot, getSelectedSnapshot);
145
+ };
60
146
  return {
61
147
  [`${name}Context`]: Context,
148
+ [`${name}StoreContext`]: StoreContext,
62
149
  [`${name}Provider`]: Provider,
63
- [`use${name}Context`]: useEnhancedContext
150
+ [`use${name}Context`]: useEnhancedContext,
151
+ [`use${name}Store`]: useStoreSelector,
152
+ [`use${name}OptionalStore`]: useOptionalStoreSelector
64
153
  };
65
154
  };
66
155
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_jsxRuntime","createProvider","name","options","factory","guarded","Context","createContext","displayName","Provider","props","children","enabled","value","Error","memoValue","useMemo","valueRef","useRef","current","InnerProvider","jsx","useEnhancedContext","context","useContext"],"sourceRoot":"../../../../src","sources":["shared/utils/create-provider.tsx"],"mappings":";;;;;;AAKA,IAAAA,MAAA,GAAAC,OAAA;AAMe,IAAAC,WAAA,GAAAD,OAAA;AAXf;AACA;AACA;AACA;AACA;;AAWe,SAASE,cAAcA,CAGpCC,IAAkB,EAAEC,OAA+B,EAAE;EACtD,OACCC,OAUC,IACG;IACJ,MAAM;MAAEC,OAAO,GAAG;IAAK,CAAC,GAAGF,OAAO,IAAI,CAAC,CAAC;IAExC,MAAMG,OAAO,gBAAG,IAAAC,oBAAa,EAAsB,IAAI,CAAC;IACxDD,OAAO,CAACE,WAAW,GAAGN,IAAI;IAE1B,MAAMO,QAAiC,GAAIC,KAAK,IAAK;MACpD,MAAM;QACLC,QAAQ,GAAID,KAAK,CAA8BC,QAAQ;QACvDC,OAAO,GAAG,IAAI;QACdC;MACD,CAAC,GAAGT,OAAO,CAACM,KAAK,CAAC;MAElB,IAAI,CAACG,KAAK,EAAE;QACX,MAAM,IAAIC,KAAK,CACd,GAAGZ,IAAI,2FACR,CAAC;MACF;MAEA,MAAMa,SAAS,GAAG,IAAAC,cAAO,EACxB,MAAOJ,OAAO,GAAGC,KAAK,GAAG,IAAK,EAC9B,CAACD,OAAO,EAAEC,KAAK,CAChB,CAAC;;MAED;MACA;MACA,MAAMI,QAAQ,GAAG,IAAAC,aAAM,EAAsBH,SAAS,CAAC;MACvDE,QAAQ,CAACE,OAAO,GAAGJ,SAAS;MAE5B,MAAMK,aAAa,GAAG,IAAAJ,cAAO,EAC5B,MACC,CAAC;QAAEL;MAAS,CAAC,kBACZ,IAAAX,WAAA,CAAAqB,GAAA,EAACf,OAAO,CAACG,QAAQ;QAACI,KAAK,EAAEI,QAAQ,CAACE,OAAQ;QAAAR,QAAA,EACxCA;MAAQ,CACQ,CAClB,EACF,EACD,CAAC;MAED,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;QACnC,OAAOA,QAAQ,CAAC;UACf,CAAC,GAAGT,IAAI,UAAU,GAAGkB;QACtB,CAAsE,CAAC;MACxE;MAEA,oBAAO,IAAApB,WAAA,CAAAqB,GAAA,EAACf,OAAO,CAACG,QAAQ;QAACI,KAAK,EAAEE,SAAU;QAAAJ,QAAA,EAAEA;MAAQ,CAAmB,CAAC;IACzE,CAAC;IAED,MAAMW,kBAAkB,GAAGA,CAAA,KAA2B;MACrD,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAAClB,OAAO,CAAC;MAEnC,IAAID,OAAO,IAAIkB,OAAO,KAAK,IAAI,EAAE;QAChC,MAAM,IAAIT,KAAK,CACd,GAAGZ,IAAI,kCAAkCA,IAAI,UAC9C,CAAC;MACF;MAEA,OAAOqB,OAAO;IACf,CAAC;IAED,OAAO;MACN,CAAC,GAAGrB,IAAI,SAAS,GAAGI,OAAO;MAC3B,CAAC,GAAGJ,IAAI,UAAU,GAAGO,QAAQ;MAC7B,CAAC,MAAMP,IAAI,SAAS,GAAGoB;IACxB,CAAC;EASF,CAAC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_jsxRuntime","NullProviderStore","getSnapshot","subscribe","createProviderStore","initialSnapshot","snapshot","listeners","Set","notify","listener","setSnapshot","nextSnapshot","Object","is","add","delete","createProvider","name","options","factory","guarded","providerDisplayName","innerProviderDisplayName","Context","createContext","displayName","StoreContext","Provider","props","children","enabled","value","Error","memoValue","useMemo","storeRef","useRef","pendingNotifyRef","current","store","useLayoutEffect","valueRef","InnerProvider","NamedInnerProvider","jsx","useEnhancedContext","context","useContext","useStoreSelector","selector","resolvedStore","selectorRef","getSelectedSnapshot","useCallback","useSyncExternalStore","useOptionalStoreSelector"],"sourceRoot":"../../../../src","sources":["shared/utils/create-provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -32,7 +32,7 @@ const findPreviousDescriptor = (scenes, sceneIndex, isRouteClosing) => {
32
32
  * - If there is no non-closing neighbor above/below, we fall back to the first
33
33
  * closing neighbor (needed for normal back transitions).
34
34
  */
35
- function resolveSceneNeighbors(scenes, sceneIndex, isRouteClosing) {
35
+ function resolveSceneNeighbors(scenes, sceneIndex, isRouteClosing, getRouteClosingOrder) {
36
36
  const current = scenes[sceneIndex];
37
37
  if (!current) {
38
38
  return {
@@ -47,7 +47,8 @@ function resolveSceneNeighbors(scenes, sceneIndex, isRouteClosing) {
47
47
  };
48
48
  }
49
49
  let nextDescriptor;
50
- let firstClosingAbove;
50
+ let latestClosingAbove;
51
+ let latestClosingAboveOrder = Number.NEGATIVE_INFINITY;
51
52
  for (let i = sceneIndex + 1; i < scenes.length; i++) {
52
53
  const candidate = scenes[i];
53
54
  if (!candidate) continue;
@@ -55,12 +56,14 @@ function resolveSceneNeighbors(scenes, sceneIndex, isRouteClosing) {
55
56
  nextDescriptor = candidate.descriptor;
56
57
  break;
57
58
  }
58
- if (firstClosingAbove === undefined) {
59
- firstClosingAbove = candidate.descriptor;
59
+ const closeOrder = getRouteClosingOrder?.(candidate.route.key) ?? i;
60
+ if (closeOrder >= latestClosingAboveOrder) {
61
+ latestClosingAbove = candidate.descriptor;
62
+ latestClosingAboveOrder = closeOrder;
60
63
  }
61
64
  }
62
65
  if (nextDescriptor === undefined) {
63
- nextDescriptor = firstClosingAbove;
66
+ nextDescriptor = latestClosingAbove;
64
67
  }
65
68
  const previousDescriptor = findPreviousDescriptor(scenes, sceneIndex, isRouteClosing);
66
69
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["findPreviousDescriptor","scenes","sceneIndex","isRouteClosing","firstClosingBelow","i","candidate","route","key","descriptor","undefined","resolveSceneNeighbors","current","previousDescriptor","nextDescriptor","firstClosingAbove","length"],"sourceRoot":"../../../../../src","sources":["shared/utils/navigation/resolve-scene-neighbors.ts"],"mappings":";;;;;;AAOA,MAAMA,sBAAsB,GAAGA,CAC9BC,MAAW,EACXC,UAAkB,EAClBC,cAA8B,KACG;EACjC,IAAIC,iBAA8C;EAElD,KAAK,IAAIC,CAAC,GAAGH,UAAU,GAAG,CAAC,EAAEG,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IACzC,MAAMC,SAAS,GAAGL,MAAM,CAACI,CAAC,CAAC;IAC3B,IAAI,CAACC,SAAS,EAAE;IAEhB,IAAI,CAACH,cAAc,CAACG,SAAS,CAACC,KAAK,CAACC,GAAG,CAAC,EAAE;MACzC,OAAOF,SAAS,CAACG,UAAU;IAC5B;IAEA,IAAIL,iBAAiB,KAAKM,SAAS,EAAE;MACpCN,iBAAiB,GAAGE,SAAS,CAACG,UAAU;IACzC;EACD;EAEA,OAAOL,iBAAiB;AACzB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASO,qBAAqBA,CACpCV,MAAW,EACXC,UAAkB,EAClBC,cAA8B,EAI7B;EACD,MAAMS,OAAO,GAAGX,MAAM,CAACC,UAAU,CAAC;EAClC,IAAI,CAACU,OAAO,EAAE;IACb,OAAO;MACNC,kBAAkB,EAAEH,SAAS;MAC7BI,cAAc,EAAEJ;IACjB,CAAC;EACF;EAEA,IAAIP,cAAc,CAACS,OAAO,CAACL,KAAK,CAACC,GAAG,CAAC,EAAE;IACtC,OAAO;MACNK,kBAAkB,EAAEb,sBAAsB,CACzCC,MAAM,EACNC,UAAU,EACVC,cACD,CAAC;MACDW,cAAc,EAAEJ;IACjB,CAAC;EACF;EAEA,IAAII,cAA2C;EAC/C,IAAIC,iBAA8C;EAElD,KAAK,IAAIV,CAAC,GAAGH,UAAU,GAAG,CAAC,EAAEG,CAAC,GAAGJ,MAAM,CAACe,MAAM,EAAEX,CAAC,EAAE,EAAE;IACpD,MAAMC,SAAS,GAAGL,MAAM,CAACI,CAAC,CAAC;IAC3B,IAAI,CAACC,SAAS,EAAE;IAEhB,IAAI,CAACH,cAAc,CAACG,SAAS,CAACC,KAAK,CAACC,GAAG,CAAC,EAAE;MACzCM,cAAc,GAAGR,SAAS,CAACG,UAAU;MACrC;IACD;IAEA,IAAIM,iBAAiB,KAAKL,SAAS,EAAE;MACpCK,iBAAiB,GAAGT,SAAS,CAACG,UAAU;IACzC;EACD;EAEA,IAAIK,cAAc,KAAKJ,SAAS,EAAE;IACjCI,cAAc,GAAGC,iBAAiB;EACnC;EAEA,MAAMF,kBAAkB,GAAGb,sBAAsB,CAChDC,MAAM,EACNC,UAAU,EACVC,cACD,CAAC;EAED,OAAO;IACNU,kBAAkB;IAClBC;EACD,CAAC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["findPreviousDescriptor","scenes","sceneIndex","isRouteClosing","firstClosingBelow","i","candidate","route","key","descriptor","undefined","resolveSceneNeighbors","getRouteClosingOrder","current","previousDescriptor","nextDescriptor","latestClosingAbove","latestClosingAboveOrder","Number","NEGATIVE_INFINITY","length","closeOrder"],"sourceRoot":"../../../../../src","sources":["shared/utils/navigation/resolve-scene-neighbors.ts"],"mappings":";;;;;;AAQA,MAAMA,sBAAsB,GAAGA,CAC9BC,MAAW,EACXC,UAAkB,EAClBC,cAA8B,KACG;EACjC,IAAIC,iBAA8C;EAElD,KAAK,IAAIC,CAAC,GAAGH,UAAU,GAAG,CAAC,EAAEG,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IACzC,MAAMC,SAAS,GAAGL,MAAM,CAACI,CAAC,CAAC;IAC3B,IAAI,CAACC,SAAS,EAAE;IAEhB,IAAI,CAACH,cAAc,CAACG,SAAS,CAACC,KAAK,CAACC,GAAG,CAAC,EAAE;MACzC,OAAOF,SAAS,CAACG,UAAU;IAC5B;IAEA,IAAIL,iBAAiB,KAAKM,SAAS,EAAE;MACpCN,iBAAiB,GAAGE,SAAS,CAACG,UAAU;IACzC;EACD;EAEA,OAAOL,iBAAiB;AACzB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASO,qBAAqBA,CACpCV,MAAW,EACXC,UAAkB,EAClBC,cAA8B,EAC9BS,oBAA2C,EAI1C;EACD,MAAMC,OAAO,GAAGZ,MAAM,CAACC,UAAU,CAAC;EAClC,IAAI,CAACW,OAAO,EAAE;IACb,OAAO;MACNC,kBAAkB,EAAEJ,SAAS;MAC7BK,cAAc,EAAEL;IACjB,CAAC;EACF;EAEA,IAAIP,cAAc,CAACU,OAAO,CAACN,KAAK,CAACC,GAAG,CAAC,EAAE;IACtC,OAAO;MACNM,kBAAkB,EAAEd,sBAAsB,CACzCC,MAAM,EACNC,UAAU,EACVC,cACD,CAAC;MACDY,cAAc,EAAEL;IACjB,CAAC;EACF;EAEA,IAAIK,cAA2C;EAC/C,IAAIC,kBAA+C;EACnD,IAAIC,uBAAuB,GAAGC,MAAM,CAACC,iBAAiB;EAEtD,KAAK,IAAId,CAAC,GAAGH,UAAU,GAAG,CAAC,EAAEG,CAAC,GAAGJ,MAAM,CAACmB,MAAM,EAAEf,CAAC,EAAE,EAAE;IACpD,MAAMC,SAAS,GAAGL,MAAM,CAACI,CAAC,CAAC;IAC3B,IAAI,CAACC,SAAS,EAAE;IAEhB,IAAI,CAACH,cAAc,CAACG,SAAS,CAACC,KAAK,CAACC,GAAG,CAAC,EAAE;MACzCO,cAAc,GAAGT,SAAS,CAACG,UAAU;MACrC;IACD;IAEA,MAAMY,UAAU,GAAGT,oBAAoB,GAAGN,SAAS,CAACC,KAAK,CAACC,GAAG,CAAC,IAAIH,CAAC;IACnE,IAAIgB,UAAU,IAAIJ,uBAAuB,EAAE;MAC1CD,kBAAkB,GAAGV,SAAS,CAACG,UAAU;MACzCQ,uBAAuB,GAAGI,UAAU;IACrC;EACD;EAEA,IAAIN,cAAc,KAAKL,SAAS,EAAE;IACjCK,cAAc,GAAGC,kBAAkB;EACpC;EAEA,MAAMF,kBAAkB,GAAGd,sBAAsB,CAChDC,MAAM,EACNC,UAAU,EACVC,cACD,CAAC;EAED,OAAO;IACNW,kBAAkB;IAClBC;EACD,CAAC;AACF","ignoreList":[]}
@@ -5,6 +5,23 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.syncRoutesWithRemoved = void 0;
7
7
  var _composeDescriptors = require("./compose-descriptors");
8
+ const addClosingRouteKey = (closingRouteKeys, key) => {
9
+ closingRouteKeys.add(key);
10
+ };
11
+ const deleteClosingRouteKey = (closingRouteKeys, key) => {
12
+ if (closingRouteKeys instanceof Set) {
13
+ closingRouteKeys.delete(key);
14
+ return;
15
+ }
16
+ closingRouteKeys.remove(key);
17
+ };
18
+ const getClosingRouteKeyValues = closingRouteKeys => {
19
+ if (closingRouteKeys instanceof Set) {
20
+ return closingRouteKeys;
21
+ }
22
+ return closingRouteKeys.ref.current;
23
+ };
24
+
8
25
  /**
9
26
  * Synchronizes routes while handling removed routes that may still be animating out.
10
27
  * This manages the complex logic of keeping closing routes visible during transitions.
@@ -37,28 +54,28 @@ const syncRoutesWithRemoved = ({
37
54
  const previousRouteStillPresent = nextRoutes.some(route => route.key === previousFocusedRoute.key);
38
55
  if (nextRouteWasPresent && !previousRouteStillPresent) {
39
56
  // Previous route was removed, mark as closing
40
- closingRouteKeys.add(previousFocusedRoute.key);
57
+ addClosingRouteKey(closingRouteKeys, previousFocusedRoute.key);
41
58
  derivedRoutes.push(previousFocusedRoute);
42
59
  } else {
43
60
  // Next route is now active, not closing
44
- closingRouteKeys.remove(nextFocusedRoute.key);
61
+ deleteClosingRouteKey(closingRouteKeys, nextFocusedRoute.key);
45
62
  if (!previousRouteStillPresent) {
46
63
  // Previous route needs to be inserted for transition
47
- closingRouteKeys.remove(previousFocusedRoute.key);
64
+ deleteClosingRouteKey(closingRouteKeys, previousFocusedRoute.key);
48
65
  const insertIndex = Math.max(derivedRoutes.length - 1, 0);
49
66
  derivedRoutes.splice(insertIndex, 0, previousFocusedRoute);
50
67
  }
51
68
  }
52
69
  } else if (nextFocusedRoute) {
53
70
  // Same focused route, ensure it's not marked as closing
54
- closingRouteKeys.remove(nextFocusedRoute.key);
71
+ deleteClosingRouteKey(closingRouteKeys, nextFocusedRoute.key);
55
72
  }
56
73
 
57
74
  // Clean up closing keys that are no longer in the route list
58
75
  const activeKeys = new Set(derivedRoutes.map(route => route.key));
59
- for (const key of Array.from(closingRouteKeys.ref.current)) {
76
+ for (const key of Array.from(getClosingRouteKeyValues(closingRouteKeys))) {
60
77
  if (!activeKeys.has(key)) {
61
- closingRouteKeys.remove(key);
78
+ deleteClosingRouteKey(closingRouteKeys, key);
62
79
  }
63
80
  }
64
81
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["_composeDescriptors","require","syncRoutesWithRemoved","prevRoutes","prevDescriptors","nextRoutes","nextDescriptors","closingRouteKeys","length","clear","routes","descriptors","derivedRoutes","slice","previousFocusedRoute","nextFocusedRoute","key","nextRouteWasPresent","some","route","previousRouteStillPresent","add","push","remove","insertIndex","Math","max","splice","activeKeys","Set","map","Array","from","ref","current","has","composeDescriptors","exports"],"sourceRoot":"../../../../../src","sources":["shared/utils/navigation/sync-routes-with-removed.ts"],"mappings":";;;;;;AAEA,IAAAA,mBAAA,GAAAC,OAAA;AAaA;AACA;AACA;AACA;AACO,MAAMC,qBAAqB,GAAGA,CAGnC;EACDC,UAAU;EACVC,eAAe;EACfC,UAAU;EACVC,eAAe;EACfC;AACkD,CAAC,KAG/C;EACJ,IAAIF,UAAU,CAACG,MAAM,KAAK,CAAC,EAAE;IAC5BD,gBAAgB,CAACE,KAAK,CAAC,CAAC;IACxB,OAAO;MACNC,MAAM,EAAEL,UAAU;MAClBM,WAAW,EAAE,CAAC;IACf,CAAC;EACF;;EAEA;EACA,MAAMC,aAAsB,GAAGP,UAAU,CAACQ,KAAK,CAAC,CAAC;;EAEjD;EACA,MAAMC,oBAAoB,GAAGX,UAAU,CAACA,UAAU,CAACK,MAAM,GAAG,CAAC,CAAC;EAC9D,MAAMO,gBAAgB,GAAGV,UAAU,CAACA,UAAU,CAACG,MAAM,GAAG,CAAC,CAAC;;EAE1D;EACA,IACCM,oBAAoB,IACpBC,gBAAgB,IAChBD,oBAAoB,CAACE,GAAG,KAAKD,gBAAgB,CAACC,GAAG,EAChD;IACD,MAAMC,mBAAmB,GAAGd,UAAU,CAACe,IAAI,CACzCC,KAAK,IAAKA,KAAK,CAACH,GAAG,KAAKD,gBAAgB,CAACC,GAC3C,CAAC;IACD,MAAMI,yBAAyB,GAAGf,UAAU,CAACa,IAAI,CAC/CC,KAAK,IAAKA,KAAK,CAACH,GAAG,KAAKF,oBAAoB,CAACE,GAC/C,CAAC;IAED,IAAIC,mBAAmB,IAAI,CAACG,yBAAyB,EAAE;MACtD;MACAb,gBAAgB,CAACc,GAAG,CAACP,oBAAoB,CAACE,GAAG,CAAC;MAE9CJ,aAAa,CAACU,IAAI,CAACR,oBAAoB,CAAC;IACzC,CAAC,MAAM;MACN;MACAP,gBAAgB,CAACgB,MAAM,CAACR,gBAAgB,CAACC,GAAG,CAAC;MAE7C,IAAI,CAACI,yBAAyB,EAAE;QAC/B;QACAb,gBAAgB,CAACgB,MAAM,CAACT,oBAAoB,CAACE,GAAG,CAAC;QAEjD,MAAMQ,WAAW,GAAGC,IAAI,CAACC,GAAG,CAACd,aAAa,CAACJ,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;QACzDI,aAAa,CAACe,MAAM,CAACH,WAAW,EAAE,CAAC,EAAEV,oBAAoB,CAAC;MAC3D;IACD;EACD,CAAC,MAAM,IAAIC,gBAAgB,EAAE;IAC5B;IACAR,gBAAgB,CAACgB,MAAM,CAACR,gBAAgB,CAACC,GAAG,CAAC;EAC9C;;EAEA;EACA,MAAMY,UAAU,GAAG,IAAIC,GAAG,CAACjB,aAAa,CAACkB,GAAG,CAAEX,KAAK,IAAKA,KAAK,CAACH,GAAG,CAAC,CAAC;EACnE,KAAK,MAAMA,GAAG,IAAIe,KAAK,CAACC,IAAI,CAACzB,gBAAgB,CAAC0B,GAAG,CAACC,OAAO,CAAC,EAAE;IAC3D,IAAI,CAACN,UAAU,CAACO,GAAG,CAACnB,GAAG,CAAC,EAAE;MACzBT,gBAAgB,CAACgB,MAAM,CAACP,GAAG,CAAC;IAC7B;EACD;EAEA,OAAO;IACNN,MAAM,EAAEE,aAAa;IACrBD,WAAW,EAAE,IAAAyB,sCAAkB,EAC9BxB,aAAa,EACbN,eAAe,EACfF,eACD;EACD,CAAC;AACF,CAAC;AAACiC,OAAA,CAAAnC,qBAAA,GAAAA,qBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_composeDescriptors","require","addClosingRouteKey","closingRouteKeys","key","add","deleteClosingRouteKey","Set","delete","remove","getClosingRouteKeyValues","ref","current","syncRoutesWithRemoved","prevRoutes","prevDescriptors","nextRoutes","nextDescriptors","length","clear","routes","descriptors","derivedRoutes","slice","previousFocusedRoute","nextFocusedRoute","nextRouteWasPresent","some","route","previousRouteStillPresent","push","insertIndex","Math","max","splice","activeKeys","map","Array","from","has","composeDescriptors","exports"],"sourceRoot":"../../../../../src","sources":["shared/utils/navigation/sync-routes-with-removed.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getVisibilityBlockOffset = void 0;
7
+ const getVisibilityBlockOffset = viewportHeight => {
8
+ "worklet";
9
+
10
+ return viewportHeight * 2 + 1;
11
+ };
12
+ exports.getVisibilityBlockOffset = getVisibilityBlockOffset;
13
+ //# sourceMappingURL=visibility-block-offset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getVisibilityBlockOffset","viewportHeight","exports"],"sourceRoot":"../../../../src","sources":["shared/utils/visibility-block-offset.ts"],"mappings":";;;;;;AAAO,MAAMA,wBAAwB,GAAIC,cAAsB,IAAa;EAC3E,SAAS;;EACT,OAAOA,cAAc,GAAG,CAAC,GAAG,CAAC;AAC9B,CAAC;AAACC,OAAA,CAAAF,wBAAA,GAAAA,wBAAA","ignoreList":[]}