react-native-screen-transitions 3.6.0-beta.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 (381) 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/bounds/navigation/zoom/build.js +47 -50
  81. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  82. package/lib/commonjs/shared/utils/bounds/navigation/zoom/config.js +1 -1
  83. package/lib/commonjs/shared/utils/create-provider.js +99 -10
  84. package/lib/commonjs/shared/utils/create-provider.js.map +1 -1
  85. package/lib/commonjs/shared/utils/navigation/resolve-scene-neighbors.js +8 -5
  86. package/lib/commonjs/shared/utils/navigation/resolve-scene-neighbors.js.map +1 -1
  87. package/lib/commonjs/shared/utils/navigation/sync-routes-with-removed.js +23 -6
  88. package/lib/commonjs/shared/utils/navigation/sync-routes-with-removed.js.map +1 -1
  89. package/lib/commonjs/shared/utils/visibility-block-offset.js +13 -0
  90. package/lib/commonjs/shared/utils/visibility-block-offset.js.map +1 -0
  91. package/lib/module/blank-stack/components/stack-view.js +36 -40
  92. package/lib/module/blank-stack/components/stack-view.js.map +1 -1
  93. package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js +7 -14
  94. package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -1
  95. package/lib/module/component-stack/components/stack-view.js +4 -11
  96. package/lib/module/component-stack/components/stack-view.js.map +1 -1
  97. package/lib/module/component-stack/navigators/create-component-stack-navigator.js +1 -1
  98. package/lib/module/native-stack/navigators/createNativeStackNavigator.js +6 -0
  99. package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  100. package/lib/module/shared/adapters/with-screen-transitions/context.js +23 -0
  101. package/lib/module/shared/adapters/with-screen-transitions/context.js.map +1 -0
  102. package/lib/module/shared/adapters/with-screen-transitions/index.js +66 -0
  103. package/lib/module/shared/adapters/with-screen-transitions/index.js.map +1 -0
  104. package/lib/module/shared/adapters/with-screen-transitions/options.js +98 -0
  105. package/lib/module/shared/adapters/with-screen-transitions/options.js.map +1 -0
  106. package/lib/module/shared/adapters/with-screen-transitions/stack-layout.js +138 -0
  107. package/lib/module/shared/adapters/with-screen-transitions/stack-layout.js.map +1 -0
  108. package/lib/module/shared/adapters/with-screen-transitions/types.js +4 -0
  109. package/lib/module/shared/adapters/with-screen-transitions/types.js.map +1 -0
  110. package/lib/module/shared/components/activity/helpers.js +5 -0
  111. package/lib/module/shared/components/activity/helpers.js.map +1 -0
  112. package/lib/module/shared/components/activity/index.js +5 -0
  113. package/lib/module/shared/components/activity/index.js.map +1 -0
  114. package/lib/module/shared/components/activity/variants/activity-container.js +24 -0
  115. package/lib/module/shared/components/activity/variants/activity-container.js.map +1 -0
  116. package/lib/module/shared/components/activity/variants/activity-screen.js +103 -0
  117. package/lib/module/shared/components/activity/variants/activity-screen.js.map +1 -0
  118. package/lib/module/shared/components/create-boundary-component/hooks/use-measurer.js +11 -5
  119. package/lib/module/shared/components/create-boundary-component/hooks/use-measurer.js.map +1 -1
  120. package/lib/module/shared/components/create-boundary-component/utils/measured-bounds.js +11 -0
  121. package/lib/module/shared/components/create-boundary-component/utils/measured-bounds.js.map +1 -1
  122. package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js +8 -17
  123. package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
  124. package/lib/module/shared/components/screen-lifecycle/index.js +1 -1
  125. package/lib/module/shared/components/screen-lifecycle/index.js.map +1 -1
  126. package/lib/module/shared/hooks/navigation/use-navigation-helpers.js +11 -5
  127. package/lib/module/shared/hooks/navigation/use-navigation-helpers.js.map +1 -1
  128. package/lib/module/shared/hooks/navigation/use-stack.js +63 -6
  129. package/lib/module/shared/hooks/navigation/use-stack.js.map +1 -1
  130. package/lib/module/shared/index.js +3 -0
  131. package/lib/module/shared/index.js.map +1 -1
  132. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js +17 -29
  133. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  134. package/lib/module/shared/providers/screen/descriptors/index.js +1 -1
  135. package/lib/module/shared/providers/screen/descriptors/index.js.map +1 -1
  136. package/lib/module/shared/providers/screen/gestures/ownership/resolve-ownership.js +2 -1
  137. package/lib/module/shared/providers/screen/gestures/ownership/resolve-ownership.js.map +1 -1
  138. package/lib/module/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js +2 -2
  139. package/lib/module/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +1 -1
  140. package/lib/module/shared/providers/screen/gestures/pan/pan-lifecycle.js +5 -2
  141. package/lib/module/shared/providers/screen/gestures/pan/pan-lifecycle.js.map +1 -1
  142. package/lib/module/shared/providers/screen/gestures/pan/use-pan-behavior.js +4 -3
  143. package/lib/module/shared/providers/screen/gestures/pan/use-pan-behavior.js.map +1 -1
  144. package/lib/module/shared/providers/screen/gestures/pinch/pinch-lifecycle.js +5 -2
  145. package/lib/module/shared/providers/screen/gestures/pinch/pinch-lifecycle.js.map +1 -1
  146. package/lib/module/shared/providers/screen/gestures/pinch/use-pinch-behavior.js +4 -3
  147. package/lib/module/shared/providers/screen/gestures/pinch/use-pinch-behavior.js.map +1 -1
  148. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +16 -1
  149. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  150. package/lib/module/shared/providers/stack/direct.provider.js +5 -4
  151. package/lib/module/shared/providers/stack/direct.provider.js.map +1 -1
  152. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.js +194 -0
  153. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.js.map +1 -0
  154. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.js +57 -0
  155. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.js.map +1 -0
  156. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.js +69 -0
  157. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.js.map +1 -0
  158. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.js +118 -0
  159. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.js.map +1 -0
  160. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/types.js +4 -0
  161. package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/types.js.map +1 -0
  162. package/lib/module/shared/providers/stack/helpers/managed-stack-state/index.js +19 -0
  163. package/lib/module/shared/providers/stack/helpers/managed-stack-state/index.js.map +1 -0
  164. package/lib/module/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.js +126 -0
  165. package/lib/module/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.js.map +1 -0
  166. package/lib/module/shared/providers/stack/managed.provider.js +19 -30
  167. package/lib/module/shared/providers/stack/managed.provider.js.map +1 -1
  168. package/lib/module/shared/types/stack.types.js.map +1 -1
  169. package/lib/module/shared/utils/bounds/navigation/zoom/build.js +45 -48
  170. package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  171. package/lib/module/shared/utils/bounds/navigation/zoom/config.js +1 -1
  172. package/lib/module/shared/utils/create-provider.js +100 -11
  173. package/lib/module/shared/utils/create-provider.js.map +1 -1
  174. package/lib/module/shared/utils/navigation/resolve-scene-neighbors.js +8 -5
  175. package/lib/module/shared/utils/navigation/resolve-scene-neighbors.js.map +1 -1
  176. package/lib/module/shared/utils/navigation/sync-routes-with-removed.js +23 -6
  177. package/lib/module/shared/utils/navigation/sync-routes-with-removed.js.map +1 -1
  178. package/lib/module/shared/utils/visibility-block-offset.js +8 -0
  179. package/lib/module/shared/utils/visibility-block-offset.js.map +1 -0
  180. package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
  181. package/lib/typescript/blank-stack/index.d.ts +1 -1
  182. package/lib/typescript/blank-stack/index.d.ts.map +1 -1
  183. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts +4 -6
  184. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts.map +1 -1
  185. package/lib/typescript/blank-stack/types.d.ts +41 -29
  186. package/lib/typescript/blank-stack/types.d.ts.map +1 -1
  187. package/lib/typescript/component-stack/components/stack-view.d.ts.map +1 -1
  188. package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts +1 -1
  189. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +5 -0
  190. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts.map +1 -1
  191. package/lib/typescript/native-stack/types.d.ts +25 -0
  192. package/lib/typescript/native-stack/types.d.ts.map +1 -1
  193. package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts +15 -0
  194. package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts.map +1 -0
  195. package/lib/typescript/shared/adapters/with-screen-transitions/index.d.ts +11 -0
  196. package/lib/typescript/shared/adapters/with-screen-transitions/index.d.ts.map +1 -0
  197. package/lib/typescript/shared/adapters/with-screen-transitions/options.d.ts +16 -0
  198. package/lib/typescript/shared/adapters/with-screen-transitions/options.d.ts.map +1 -0
  199. package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts +12 -0
  200. package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts.map +1 -0
  201. package/lib/typescript/shared/adapters/with-screen-transitions/types.d.ts +24 -0
  202. package/lib/typescript/shared/adapters/with-screen-transitions/types.d.ts.map +1 -0
  203. package/lib/typescript/shared/components/activity/helpers.d.ts +4 -0
  204. package/lib/typescript/shared/components/activity/helpers.d.ts.map +1 -0
  205. package/lib/typescript/shared/components/activity/index.d.ts +3 -0
  206. package/lib/typescript/shared/components/activity/index.d.ts.map +1 -0
  207. package/lib/typescript/shared/components/activity/variants/activity-container.d.ts +6 -0
  208. package/lib/typescript/shared/components/activity/variants/activity-container.d.ts.map +1 -0
  209. package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts +13 -0
  210. package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts.map +1 -0
  211. package/lib/typescript/shared/components/create-boundary-component/hooks/use-measurer.d.ts.map +1 -1
  212. package/lib/typescript/shared/components/create-boundary-component/index.d.ts +2 -2
  213. package/lib/typescript/shared/components/create-boundary-component/utils/measured-bounds.d.ts +1 -0
  214. package/lib/typescript/shared/components/create-boundary-component/utils/measured-bounds.d.ts.map +1 -1
  215. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts +1 -2
  216. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts.map +1 -1
  217. package/lib/typescript/shared/hooks/navigation/use-navigation-helpers.d.ts +1 -0
  218. package/lib/typescript/shared/hooks/navigation/use-navigation-helpers.d.ts.map +1 -1
  219. package/lib/typescript/shared/hooks/navigation/use-stack.d.ts +13 -1
  220. package/lib/typescript/shared/hooks/navigation/use-stack.d.ts.map +1 -1
  221. package/lib/typescript/shared/index.d.ts +15 -11
  222. package/lib/typescript/shared/index.d.ts.map +1 -1
  223. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts +11 -3
  224. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  225. package/lib/typescript/shared/providers/screen/descriptors/index.d.ts +1 -1
  226. package/lib/typescript/shared/providers/screen/descriptors/index.d.ts.map +1 -1
  227. package/lib/typescript/shared/providers/screen/gestures/ownership/resolve-ownership.d.ts.map +1 -1
  228. package/lib/typescript/shared/providers/screen/gestures/pan/pan-lifecycle.d.ts +1 -1
  229. package/lib/typescript/shared/providers/screen/gestures/pan/pan-lifecycle.d.ts.map +1 -1
  230. package/lib/typescript/shared/providers/screen/gestures/pan/use-pan-behavior.d.ts.map +1 -1
  231. package/lib/typescript/shared/providers/screen/gestures/pinch/pinch-lifecycle.d.ts +1 -1
  232. package/lib/typescript/shared/providers/screen/gestures/pinch/pinch-lifecycle.d.ts.map +1 -1
  233. package/lib/typescript/shared/providers/screen/gestures/pinch/use-pinch-behavior.d.ts.map +1 -1
  234. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +3 -1
  235. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  236. package/lib/typescript/shared/providers/stack/direct.provider.d.ts.map +1 -1
  237. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.d.ts +13 -0
  238. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.d.ts.map +1 -0
  239. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.d.ts +12 -0
  240. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.d.ts.map +1 -0
  241. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.d.ts +11 -0
  242. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.d.ts.map +1 -0
  243. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.d.ts +12 -0
  244. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.d.ts.map +1 -0
  245. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/types.d.ts +40 -0
  246. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/types.d.ts.map +1 -0
  247. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/index.d.ts +12 -0
  248. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/index.d.ts.map +1 -0
  249. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.d.ts +13 -0
  250. package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.d.ts.map +1 -0
  251. package/lib/typescript/shared/providers/stack/managed.provider.d.ts.map +1 -1
  252. package/lib/typescript/shared/types/bounds.types.d.ts +27 -0
  253. package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
  254. package/lib/typescript/shared/types/index.d.ts +2 -2
  255. package/lib/typescript/shared/types/index.d.ts.map +1 -1
  256. package/lib/typescript/shared/types/providers/managed-stack.types.d.ts +3 -9
  257. package/lib/typescript/shared/types/providers/managed-stack.types.d.ts.map +1 -1
  258. package/lib/typescript/shared/types/screen.types.d.ts +24 -0
  259. package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
  260. package/lib/typescript/shared/types/stack.types.d.ts +7 -0
  261. package/lib/typescript/shared/types/stack.types.d.ts.map +1 -1
  262. package/lib/typescript/shared/utils/bounds/navigation/zoom/build.d.ts.map +1 -1
  263. package/lib/typescript/shared/utils/bounds/navigation/zoom/config.d.ts +1 -1
  264. package/lib/typescript/shared/utils/create-provider.d.ts +17 -3
  265. package/lib/typescript/shared/utils/create-provider.d.ts.map +1 -1
  266. package/lib/typescript/shared/utils/navigation/resolve-scene-neighbors.d.ts +2 -1
  267. package/lib/typescript/shared/utils/navigation/resolve-scene-neighbors.d.ts.map +1 -1
  268. package/lib/typescript/shared/utils/navigation/sync-routes-with-removed.d.ts +2 -1
  269. package/lib/typescript/shared/utils/navigation/sync-routes-with-removed.d.ts.map +1 -1
  270. package/lib/typescript/shared/utils/visibility-block-offset.d.ts +2 -0
  271. package/lib/typescript/shared/utils/visibility-block-offset.d.ts.map +1 -0
  272. package/package.json +11 -1
  273. package/src/blank-stack/components/stack-view.tsx +54 -48
  274. package/src/blank-stack/index.ts +1 -0
  275. package/src/blank-stack/navigators/create-blank-stack-navigator.tsx +7 -15
  276. package/src/blank-stack/types.ts +44 -29
  277. package/src/component-stack/components/stack-view.tsx +4 -11
  278. package/src/component-stack/navigators/create-component-stack-navigator.tsx +1 -1
  279. package/src/native-stack/navigators/createNativeStackNavigator.tsx +5 -0
  280. package/src/native-stack/types.ts +25 -0
  281. package/src/shared/adapters/with-screen-transitions/context.tsx +42 -0
  282. package/src/shared/adapters/with-screen-transitions/index.tsx +155 -0
  283. package/src/shared/adapters/with-screen-transitions/options.ts +172 -0
  284. package/src/shared/adapters/with-screen-transitions/stack-layout.tsx +233 -0
  285. package/src/shared/adapters/with-screen-transitions/types.ts +28 -0
  286. package/src/shared/components/activity/helpers.ts +8 -0
  287. package/src/shared/components/activity/index.tsx +2 -0
  288. package/src/shared/components/activity/variants/activity-container.tsx +25 -0
  289. package/src/shared/components/activity/variants/activity-screen.tsx +133 -0
  290. package/src/shared/components/create-boundary-component/hooks/use-measurer.ts +23 -4
  291. package/src/shared/components/create-boundary-component/utils/measured-bounds.ts +15 -0
  292. package/src/shared/components/screen-lifecycle/hooks/use-close-transition-intent.ts +9 -26
  293. package/src/shared/components/screen-lifecycle/index.tsx +1 -1
  294. package/src/shared/hooks/navigation/use-navigation-helpers.ts +9 -3
  295. package/src/shared/hooks/navigation/use-stack.tsx +115 -6
  296. package/src/shared/index.ts +9 -0
  297. package/src/shared/providers/screen/descriptors/descriptors.provider.tsx +31 -31
  298. package/src/shared/providers/screen/descriptors/index.tsx +1 -0
  299. package/src/shared/providers/screen/gestures/ownership/resolve-ownership.ts +2 -1
  300. package/src/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.ts +2 -2
  301. package/src/shared/providers/screen/gestures/pan/pan-lifecycle.ts +7 -2
  302. package/src/shared/providers/screen/gestures/pan/use-pan-behavior.ts +10 -2
  303. package/src/shared/providers/screen/gestures/pinch/pinch-lifecycle.ts +7 -2
  304. package/src/shared/providers/screen/gestures/pinch/use-pinch-behavior.ts +8 -3
  305. package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +17 -1
  306. package/src/shared/providers/stack/direct.provider.tsx +13 -4
  307. package/src/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.ts +368 -0
  308. package/src/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.ts +129 -0
  309. package/src/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.ts +139 -0
  310. package/src/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.ts +198 -0
  311. package/src/shared/providers/stack/helpers/managed-stack-state/helpers/types.ts +57 -0
  312. package/src/shared/providers/stack/helpers/managed-stack-state/index.ts +40 -0
  313. package/src/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.ts +160 -0
  314. package/src/shared/providers/stack/managed.provider.tsx +23 -39
  315. package/src/shared/types/bounds.types.ts +27 -0
  316. package/src/shared/types/index.ts +3 -0
  317. package/src/shared/types/providers/managed-stack.types.ts +6 -8
  318. package/src/shared/types/screen.types.ts +25 -0
  319. package/src/shared/types/stack.types.ts +11 -0
  320. package/src/shared/utils/bounds/navigation/zoom/build.ts +62 -71
  321. package/src/shared/utils/bounds/navigation/zoom/config.ts +1 -1
  322. package/src/shared/utils/create-provider.tsx +183 -8
  323. package/src/shared/utils/navigation/resolve-scene-neighbors.ts +9 -4
  324. package/src/shared/utils/navigation/sync-routes-with-removed.ts +38 -7
  325. package/src/shared/utils/visibility-block-offset.ts +4 -0
  326. package/lib/commonjs/blank-stack/components/stack-view.native.js +0 -64
  327. package/lib/commonjs/blank-stack/components/stack-view.native.js.map +0 -1
  328. package/lib/commonjs/shared/components/native-screen-container.js +0 -42
  329. package/lib/commonjs/shared/components/native-screen-container.js.map +0 -1
  330. package/lib/commonjs/shared/components/native-screen.js +0 -125
  331. package/lib/commonjs/shared/components/native-screen.js.map +0 -1
  332. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.js +0 -51
  333. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.js.map +0 -1
  334. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.js +0 -15
  335. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.js.map +0 -1
  336. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.js +0 -14
  337. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.js.map +0 -1
  338. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.js +0 -13
  339. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.js.map +0 -1
  340. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/index.js +0 -101
  341. package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/index.js.map +0 -1
  342. package/lib/module/blank-stack/components/stack-view.native.js +0 -60
  343. package/lib/module/blank-stack/components/stack-view.native.js.map +0 -1
  344. package/lib/module/shared/components/native-screen-container.js +0 -37
  345. package/lib/module/shared/components/native-screen-container.js.map +0 -1
  346. package/lib/module/shared/components/native-screen.js +0 -119
  347. package/lib/module/shared/components/native-screen.js.map +0 -1
  348. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.js +0 -47
  349. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.js.map +0 -1
  350. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.js +0 -10
  351. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.js.map +0 -1
  352. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.js +0 -9
  353. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.js.map +0 -1
  354. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.js +0 -8
  355. package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.js.map +0 -1
  356. package/lib/module/shared/providers/stack/helpers/use-local-routes/index.js +0 -95
  357. package/lib/module/shared/providers/stack/helpers/use-local-routes/index.js.map +0 -1
  358. package/lib/typescript/blank-stack/components/stack-view.native.d.ts +0 -3
  359. package/lib/typescript/blank-stack/components/stack-view.native.d.ts.map +0 -1
  360. package/lib/typescript/shared/components/native-screen-container.d.ts +0 -6
  361. package/lib/typescript/shared/components/native-screen-container.d.ts.map +0 -1
  362. package/lib/typescript/shared/components/native-screen.d.ts +0 -12
  363. package/lib/typescript/shared/components/native-screen.d.ts.map +0 -1
  364. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.d.ts +0 -10
  365. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.d.ts.map +0 -1
  366. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.d.ts +0 -2
  367. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.d.ts.map +0 -1
  368. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.d.ts +0 -3
  369. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.d.ts.map +0 -1
  370. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.d.ts +0 -3
  371. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.d.ts.map +0 -1
  372. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/index.d.ts +0 -19
  373. package/lib/typescript/shared/providers/stack/helpers/use-local-routes/index.d.ts.map +0 -1
  374. package/src/blank-stack/components/stack-view.native.tsx +0 -74
  375. package/src/shared/components/native-screen-container.tsx +0 -33
  376. package/src/shared/components/native-screen.tsx +0 -176
  377. package/src/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.ts +0 -65
  378. package/src/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.ts +0 -15
  379. package/src/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.ts +0 -12
  380. package/src/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.ts +0 -11
  381. package/src/shared/providers/stack/helpers/use-local-routes/index.ts +0 -147
@@ -8,7 +8,8 @@ import { finalizePinchRelease, startPinchBase, trackPinchGesture } from "./pinch
8
8
  import { primeSnapPinchRelease, resolvePinchRelease, resolveSnapPinchRelease } from "./pinch-release";
9
9
  export const usePinchBehavior = (runtime, screenOptions) => {
10
10
  const {
11
- dismissScreen
11
+ dismissScreen,
12
+ requestDismiss
12
13
  } = useNavigationHelpers();
13
14
  const {
14
15
  withSensitivity,
@@ -37,8 +38,8 @@ export const usePinchBehavior = (runtime, screenOptions) => {
37
38
  const latestRuntime = resolvePinchRuntime(runtime.get(), screenOptions.get());
38
39
  const event = withSensitivity(rawEvent);
39
40
  const release = latestRuntime.participation.effectiveSnapPoints.hasSnapPoints ? resolveSnapPinchRelease(event, latestRuntime) : resolvePinchRelease(event, latestRuntime);
40
- finalizePinchRelease(release, latestRuntime, dismissScreen);
41
- }, [runtime, screenOptions, dismissScreen, withSensitivity]);
41
+ finalizePinchRelease(release, latestRuntime, dismissScreen, requestDismiss);
42
+ }, [runtime, screenOptions, dismissScreen, requestDismiss, withSensitivity]);
42
43
  return useMemo(() => ({
43
44
  onStart,
44
45
  onUpdate,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useMemo","useNavigationHelpers","usePinchGestureSensitivity","resolvePinchRuntime","finalizePinchRelease","startPinchBase","trackPinchGesture","primeSnapPinchRelease","resolvePinchRelease","resolveSnapPinchRelease","usePinchBehavior","runtime","screenOptions","dismissScreen","withSensitivity","resetSensitivity","onStart","event","latestRuntime","get","participation","effectiveSnapPoints","hasSnapPoints","onUpdate","rawEvent","stores","gestures","onEnd","release"],"sourceRoot":"../../../../../../../src","sources":["shared/providers/screen/gestures/pinch/use-pinch-behavior.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAE5C,SAASC,oBAAoB,QAAQ,qDAAqD;AAE1F,SAASC,0BAA0B,QAAQ,kCAAkC;AAC7E,SAASC,mBAAmB,QAAQ,mBAAmB;AAMvD,SACCC,oBAAoB,EACpBC,cAAc,EACdC,iBAAiB,QACX,mBAAmB;AAC1B,SACCC,qBAAqB,EACrBC,mBAAmB,EACnBC,uBAAuB,QACjB,iBAAiB;AAExB,OAAO,MAAMC,gBAAgB,GAAGA,CAC/BC,OAAyC,EACzCC,aAAwC,KACrB;EACnB,MAAM;IAAEC;EAAc,CAAC,GAAGZ,oBAAoB,CAAC,CAAC;EAChD,MAAM;IAAEa,eAAe;IAAEC;EAAiB,CAAC,GAC1Cb,0BAA0B,CAACU,aAAa,CAAC;EAE1C,MAAMI,OAAO,GAAGjB,WAAW,CACzBkB,KAAwB,IAAK;IAC7B,SAAS;;IACT,MAAMC,aAAa,GAAGf,mBAAmB,CACxCQ,OAAO,CAACQ,GAAG,CAAC,CAAC,EACbP,aAAa,CAACO,GAAG,CAAC,CACnB,CAAC;IACD,IAAID,aAAa,CAACE,aAAa,CAACC,mBAAmB,CAACC,aAAa,EAAE;MAClEf,qBAAqB,CAACW,aAAa,CAAC;IACrC;IACAb,cAAc,CAACa,aAAa,EAAED,KAAK,CAAC;IACpCF,gBAAgB,CAAC,CAAC;EACnB,CAAC,EACD,CAACJ,OAAO,EAAEC,aAAa,EAAEG,gBAAgB,CAC1C,CAAC;EAED,MAAMQ,QAAQ,GAAGxB,WAAW,CAC1ByB,QAA2B,IAAK;IAChC,SAAS;;IACT,MAAMN,aAAa,GAAGf,mBAAmB,CACxCQ,OAAO,CAACQ,GAAG,CAAC,CAAC,EACbP,aAAa,CAACO,GAAG,CAAC,CACnB,CAAC;IACD,MAAMF,KAAK,GAAGH,eAAe,CAACU,QAAQ,CAAC;IACvClB,iBAAiB,CAACW,KAAK,EAAEO,QAAQ,EAAEN,aAAa,CAACO,MAAM,CAACC,QAAQ,CAAC;EAClE,CAAC,EACD,CAACf,OAAO,EAAEC,aAAa,EAAEE,eAAe,CACzC,CAAC;EAED,MAAMa,KAAK,GAAG5B,WAAW,CACvByB,QAA2B,IAAK;IAChC,SAAS;;IACT,MAAMN,aAAa,GAAGf,mBAAmB,CACxCQ,OAAO,CAACQ,GAAG,CAAC,CAAC,EACbP,aAAa,CAACO,GAAG,CAAC,CACnB,CAAC;IACD,MAAMF,KAAK,GAAGH,eAAe,CAACU,QAAQ,CAAC;IACvC,MAAMI,OAAO,GAAGV,aAAa,CAACE,aAAa,CAACC,mBAAmB,CAC7DC,aAAa,GACZb,uBAAuB,CAACQ,KAAK,EAAEC,aAAa,CAAC,GAC7CV,mBAAmB,CAACS,KAAK,EAAEC,aAAa,CAAC;IAC5Cd,oBAAoB,CAACwB,OAAO,EAAEV,aAAa,EAAEL,aAAa,CAAC;EAC5D,CAAC,EACD,CAACF,OAAO,EAAEC,aAAa,EAAEC,aAAa,EAAEC,eAAe,CACxD,CAAC;EAED,OAAOd,OAAO,CACb,OAAO;IACNgB,OAAO;IACPO,QAAQ;IACRI;EACD,CAAC,CAAC,EACF,CAACX,OAAO,EAAEO,QAAQ,EAAEI,KAAK,CAC1B,CAAC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useMemo","useNavigationHelpers","usePinchGestureSensitivity","resolvePinchRuntime","finalizePinchRelease","startPinchBase","trackPinchGesture","primeSnapPinchRelease","resolvePinchRelease","resolveSnapPinchRelease","usePinchBehavior","runtime","screenOptions","dismissScreen","requestDismiss","withSensitivity","resetSensitivity","onStart","event","latestRuntime","get","participation","effectiveSnapPoints","hasSnapPoints","onUpdate","rawEvent","stores","gestures","onEnd","release"],"sourceRoot":"../../../../../../../src","sources":["shared/providers/screen/gestures/pinch/use-pinch-behavior.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAE5C,SAASC,oBAAoB,QAAQ,qDAAqD;AAE1F,SAASC,0BAA0B,QAAQ,kCAAkC;AAC7E,SAASC,mBAAmB,QAAQ,mBAAmB;AAMvD,SACCC,oBAAoB,EACpBC,cAAc,EACdC,iBAAiB,QACX,mBAAmB;AAC1B,SACCC,qBAAqB,EACrBC,mBAAmB,EACnBC,uBAAuB,QACjB,iBAAiB;AAExB,OAAO,MAAMC,gBAAgB,GAAGA,CAC/BC,OAAyC,EACzCC,aAAwC,KACrB;EACnB,MAAM;IAAEC,aAAa;IAAEC;EAAe,CAAC,GAAGb,oBAAoB,CAAC,CAAC;EAChE,MAAM;IAAEc,eAAe;IAAEC;EAAiB,CAAC,GAC1Cd,0BAA0B,CAACU,aAAa,CAAC;EAE1C,MAAMK,OAAO,GAAGlB,WAAW,CACzBmB,KAAwB,IAAK;IAC7B,SAAS;;IACT,MAAMC,aAAa,GAAGhB,mBAAmB,CACxCQ,OAAO,CAACS,GAAG,CAAC,CAAC,EACbR,aAAa,CAACQ,GAAG,CAAC,CACnB,CAAC;IACD,IAAID,aAAa,CAACE,aAAa,CAACC,mBAAmB,CAACC,aAAa,EAAE;MAClEhB,qBAAqB,CAACY,aAAa,CAAC;IACrC;IACAd,cAAc,CAACc,aAAa,EAAED,KAAK,CAAC;IACpCF,gBAAgB,CAAC,CAAC;EACnB,CAAC,EACD,CAACL,OAAO,EAAEC,aAAa,EAAEI,gBAAgB,CAC1C,CAAC;EAED,MAAMQ,QAAQ,GAAGzB,WAAW,CAC1B0B,QAA2B,IAAK;IAChC,SAAS;;IACT,MAAMN,aAAa,GAAGhB,mBAAmB,CACxCQ,OAAO,CAACS,GAAG,CAAC,CAAC,EACbR,aAAa,CAACQ,GAAG,CAAC,CACnB,CAAC;IACD,MAAMF,KAAK,GAAGH,eAAe,CAACU,QAAQ,CAAC;IACvCnB,iBAAiB,CAACY,KAAK,EAAEO,QAAQ,EAAEN,aAAa,CAACO,MAAM,CAACC,QAAQ,CAAC;EAClE,CAAC,EACD,CAAChB,OAAO,EAAEC,aAAa,EAAEG,eAAe,CACzC,CAAC;EAED,MAAMa,KAAK,GAAG7B,WAAW,CACvB0B,QAA2B,IAAK;IAChC,SAAS;;IACT,MAAMN,aAAa,GAAGhB,mBAAmB,CACxCQ,OAAO,CAACS,GAAG,CAAC,CAAC,EACbR,aAAa,CAACQ,GAAG,CAAC,CACnB,CAAC;IACD,MAAMF,KAAK,GAAGH,eAAe,CAACU,QAAQ,CAAC;IACvC,MAAMI,OAAO,GAAGV,aAAa,CAACE,aAAa,CAACC,mBAAmB,CAC7DC,aAAa,GACZd,uBAAuB,CAACS,KAAK,EAAEC,aAAa,CAAC,GAC7CX,mBAAmB,CAACU,KAAK,EAAEC,aAAa,CAAC;IAC5Cf,oBAAoB,CACnByB,OAAO,EACPV,aAAa,EACbN,aAAa,EACbC,cACD,CAAC;EACF,CAAC,EACD,CAACH,OAAO,EAAEC,aAAa,EAAEC,aAAa,EAAEC,cAAc,EAAEC,eAAe,CACxE,CAAC;EAED,OAAOf,OAAO,CACb,OAAO;IACNiB,OAAO;IACPO,QAAQ;IACRI;EACD,CAAC,CAAC,EACF,CAACX,OAAO,EAAEO,QAAQ,EAAEI,KAAK,CAC1B,CAAC;AACF,CAAC","ignoreList":[]}
@@ -1,11 +1,16 @@
1
1
  "use strict";
2
2
 
3
+ import { useWindowDimensions } from "react-native";
3
4
  import { useAnimatedProps, useAnimatedReaction, useAnimatedStyle, useSharedValue } from "react-native-reanimated";
4
5
  import { AnimationStore } from "../../../../stores/animation.store";
5
6
  import { SystemStore } from "../../../../stores/system.store";
7
+ import { getVisibilityBlockOffset } from "../../../../utils/visibility-block-offset";
6
8
  import { useDescriptorDerivations } from "../../descriptors";
7
9
  import { resolveScreenVisibilityGate } from "../helpers/visibility-gate";
8
10
  export const useMaybeBlockVisibility = isFloatingOverlay => {
11
+ const {
12
+ height
13
+ } = useWindowDimensions();
9
14
  const {
10
15
  currentScreenKey
11
16
  } = useDescriptorDerivations();
@@ -51,8 +56,18 @@ export const useMaybeBlockVisibility = isFloatingOverlay => {
51
56
  const animatedStyle = useAnimatedStyle(() => {
52
57
  "worklet";
53
58
 
59
+ /**
60
+ * Keep blocked screens physically offscreen. On physical devices,
61
+ * opacity: 0 can break Liquid Glass sampling.
62
+ *
63
+ * See: https://github.com/expo/expo/issues/41024
64
+ *
65
+ */
66
+ const offset = getVisibilityBlockOffset(height);
54
67
  return {
55
- opacity: shouldBlockVisibility.get() ? 0 : 1
68
+ transform: [{
69
+ translateY: shouldBlockVisibility.get() ? offset : 0
70
+ }]
56
71
  };
57
72
  });
58
73
  const animatedProps = useAnimatedProps(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["useAnimatedProps","useAnimatedReaction","useAnimatedStyle","useSharedValue","AnimationStore","SystemStore","useDescriptorDerivations","resolveScreenVisibilityGate","useMaybeBlockVisibility","isFloatingOverlay","currentScreenKey","entering","progress","getBag","pendingLifecycleStartBlockCount","pendingLifecycleRequestKind","hasVisibilityGateOpened","shouldBlockVisibility","get","gate","shouldOpenGate","set","shouldBlock","animatedStyle","opacity","animatedProps","pointerEvents"],"sourceRoot":"../../../../../../../src","sources":["shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx"],"mappings":";;AAAA,SACCA,gBAAgB,EAChBC,mBAAmB,EACnBC,gBAAgB,EAChBC,cAAc,QACR,yBAAyB;AAChC,SAASC,cAAc,QAAQ,oCAAoC;AACnE,SAASC,WAAW,QAAQ,iCAAiC;AAC7D,SAASC,wBAAwB,QAAQ,mBAAmB;AAC5D,SAASC,2BAA2B,QAAQ,4BAA4B;AAExE,OAAO,MAAMC,uBAAuB,GAAIC,iBAA2B,IAAK;EACvE,MAAM;IAAEC;EAAiB,CAAC,GAAGJ,wBAAwB,CAAC,CAAC;EACvD,MAAM;IAAEK,QAAQ;IAAEC;EAAS,CAAC,GAAGR,cAAc,CAACS,MAAM,CAACH,gBAAgB,CAAC;EAEtE,MAAM;IAAEI,+BAA+B;IAAEC;EAA4B,CAAC,GACrEV,WAAW,CAACQ,MAAM,CAACH,gBAAgB,CAAC;EAErC,MAAMM,uBAAuB,GAAGb,cAAc,CAAC,KAAK,CAAC;EACrD,MAAMc,qBAAqB,GAAGd,cAAc,CAAC,CAACM,iBAAiB,CAAC;;EAEhE;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACCR,mBAAmB,CAClB,MAAM;IACL,SAAS;;IAET,OAAOM,2BAA2B,CAAC;MAClCE,iBAAiB;MACjBO,uBAAuB,EAAEA,uBAAuB,CAACE,GAAG,CAAC,CAAC;MACtDJ,+BAA+B,EAAEA,+BAA+B,CAACI,GAAG,CAAC,CAAC;MACtEH,2BAA2B,EAAEA,2BAA2B,CAACG,GAAG,CAAC,CAAC;MAC9DN,QAAQ,EAAEA,QAAQ,CAACM,GAAG,CAAC,CAAC;MACxBP,QAAQ,EAAEA,QAAQ,CAACO,GAAG,CAAC;IACxB,CAAC,CAAC;EACH,CAAC,EACAC,IAAI,IAAK;IACT,SAAS;;IAET,IAAIA,IAAI,CAACC,cAAc,EAAE;MACxBJ,uBAAuB,CAACK,GAAG,CAAC,IAAI,CAAC;IAClC;IAEAJ,qBAAqB,CAACI,GAAG,CAACF,IAAI,CAACG,WAAW,CAAC;EAC5C,CACD,CAAC;EAED,MAAMC,aAAa,GAAGrB,gBAAgB,CAAC,MAAM;IAC5C,SAAS;;IACT,OAAO;MACNsB,OAAO,EAAEP,qBAAqB,CAACC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG;IAC5C,CAAC;EACF,CAAC,CAAC;EAEF,MAAMO,aAAa,GAAGzB,gBAAgB,CAAC,MAAM;IAC5C,SAAS;;IACT,OAAO;MACN0B,aAAa,EAAET,qBAAqB,CAACC,GAAG,CAAC,CAAC,GACtC,MAAM,GACN;IACL,CAAC;EACF,CAAC,CAAC;EAEF,OAAO;IACNK,aAAa;IACbE;EACD,CAAC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useWindowDimensions","useAnimatedProps","useAnimatedReaction","useAnimatedStyle","useSharedValue","AnimationStore","SystemStore","getVisibilityBlockOffset","useDescriptorDerivations","resolveScreenVisibilityGate","useMaybeBlockVisibility","isFloatingOverlay","height","currentScreenKey","entering","progress","getBag","pendingLifecycleStartBlockCount","pendingLifecycleRequestKind","hasVisibilityGateOpened","shouldBlockVisibility","get","gate","shouldOpenGate","set","shouldBlock","animatedStyle","offset","transform","translateY","animatedProps","pointerEvents"],"sourceRoot":"../../../../../../../src","sources":["shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,cAAc;AAClD,SACCC,gBAAgB,EAChBC,mBAAmB,EACnBC,gBAAgB,EAChBC,cAAc,QACR,yBAAyB;AAChC,SAASC,cAAc,QAAQ,oCAAoC;AACnE,SAASC,WAAW,QAAQ,iCAAiC;AAC7D,SAASC,wBAAwB,QAAQ,2CAA2C;AACpF,SAASC,wBAAwB,QAAQ,mBAAmB;AAC5D,SAASC,2BAA2B,QAAQ,4BAA4B;AAExE,OAAO,MAAMC,uBAAuB,GAAIC,iBAA2B,IAAK;EACvE,MAAM;IAAEC;EAAO,CAAC,GAAGZ,mBAAmB,CAAC,CAAC;EACxC,MAAM;IAAEa;EAAiB,CAAC,GAAGL,wBAAwB,CAAC,CAAC;EACvD,MAAM;IAAEM,QAAQ;IAAEC;EAAS,CAAC,GAAGV,cAAc,CAACW,MAAM,CAACH,gBAAgB,CAAC;EAEtE,MAAM;IAAEI,+BAA+B;IAAEC;EAA4B,CAAC,GACrEZ,WAAW,CAACU,MAAM,CAACH,gBAAgB,CAAC;EAErC,MAAMM,uBAAuB,GAAGf,cAAc,CAAC,KAAK,CAAC;EACrD,MAAMgB,qBAAqB,GAAGhB,cAAc,CAAC,CAACO,iBAAiB,CAAC;;EAEhE;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACCT,mBAAmB,CAClB,MAAM;IACL,SAAS;;IAET,OAAOO,2BAA2B,CAAC;MAClCE,iBAAiB;MACjBQ,uBAAuB,EAAEA,uBAAuB,CAACE,GAAG,CAAC,CAAC;MACtDJ,+BAA+B,EAAEA,+BAA+B,CAACI,GAAG,CAAC,CAAC;MACtEH,2BAA2B,EAAEA,2BAA2B,CAACG,GAAG,CAAC,CAAC;MAC9DN,QAAQ,EAAEA,QAAQ,CAACM,GAAG,CAAC,CAAC;MACxBP,QAAQ,EAAEA,QAAQ,CAACO,GAAG,CAAC;IACxB,CAAC,CAAC;EACH,CAAC,EACAC,IAAI,IAAK;IACT,SAAS;;IAET,IAAIA,IAAI,CAACC,cAAc,EAAE;MACxBJ,uBAAuB,CAACK,GAAG,CAAC,IAAI,CAAC;IAClC;IAEAJ,qBAAqB,CAACI,GAAG,CAACF,IAAI,CAACG,WAAW,CAAC;EAC5C,CACD,CAAC;EAED,MAAMC,aAAa,GAAGvB,gBAAgB,CAAC,MAAM;IAC5C,SAAS;;IACT;AACF;AACA;AACA;AACA;AACA;AACA;IACE,MAAMwB,MAAM,GAAGpB,wBAAwB,CAACK,MAAM,CAAC;IAE/C,OAAO;MACNgB,SAAS,EAAE,CACV;QACCC,UAAU,EAAET,qBAAqB,CAACC,GAAG,CAAC,CAAC,GAAGM,MAAM,GAAG;MACpD,CAAC;IAEH,CAAC;EACF,CAAC,CAAC;EAEF,MAAMG,aAAa,GAAG7B,gBAAgB,CAAC,MAAM;IAC5C,SAAS;;IACT,OAAO;MACN8B,aAAa,EAAEX,qBAAqB,CAACC,GAAG,CAAC,CAAC,GACtC,MAAM,GACN;IACL,CAAC;EACF,CAAC,CAAC;EAEF,OAAO;IACNK,aAAa;IACbI;EACD,CAAC;AACF,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { useMemo } from "react";
4
- import { StackContext } from "../../hooks/navigation/use-stack";
4
+ import { StackProvider } from "../../hooks/navigation/use-stack";
5
5
  import { AnimationStore } from "../../stores/animation.store";
6
6
  import { isOverlayVisible } from "../../utils/overlay/visibility";
7
7
  import { useStackCoreContext } from "./core.provider";
@@ -75,8 +75,9 @@ function useDirectStackValue(props) {
75
75
  routeKeys,
76
76
  routes: allRoutes,
77
77
  scenes,
78
- optimisticFocusedIndex
79
- }), [flags, navigatorKey, routeKeys, allRoutes, scenes, optimisticFocusedIndex]);
78
+ optimisticFocusedIndex,
79
+ focusedIndex
80
+ }), [flags, navigatorKey, routeKeys, allRoutes, scenes, optimisticFocusedIndex, focusedIndex]);
80
81
 
81
82
  // DirectStack context value
82
83
  const lifecycleValue = useMemo(() => ({
@@ -98,7 +99,7 @@ function withDirectStack(Component) {
98
99
  stackContextValue,
99
100
  ...lifecycleValue
100
101
  } = useDirectStackValue(props);
101
- return /*#__PURE__*/_jsx(StackContext.Provider, {
102
+ return /*#__PURE__*/_jsx(StackProvider, {
102
103
  value: stackContextValue,
103
104
  children: /*#__PURE__*/_jsx(Component, {
104
105
  ...lifecycleValue
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","StackContext","AnimationStore","isOverlayVisible","useStackCoreContext","useStackDerived","jsx","_jsx","useDirectStackValue","props","state","navigation","descriptors","describe","flags","navigatorKey","key","preloadedDescriptors","preloadedRoutes","reduce","acc","route","scenes","shouldShowFloatOverlay","routeKeys","allRoutes","animationMaps","routes","concat","allDescriptors","descriptor","isPreloaded","undefined","push","getBag","options","enableTransitions","optimisticFocusedIndex","focusedIndex","index","stackContextValue","lifecycleValue","withDirectStack","Component","DirectStackProvider","Provider","value","children"],"sourceRoot":"../../../../../src","sources":["shared/providers/stack/direct.provider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","StackProvider","AnimationStore","isOverlayVisible","useStackCoreContext","useStackDerived","jsx","_jsx","useDirectStackValue","props","state","navigation","descriptors","describe","flags","navigatorKey","key","preloadedDescriptors","preloadedRoutes","reduce","acc","route","scenes","shouldShowFloatOverlay","routeKeys","allRoutes","animationMaps","routes","concat","allDescriptors","descriptor","isPreloaded","undefined","push","getBag","options","enableTransitions","optimisticFocusedIndex","focusedIndex","index","stackContextValue","lifecycleValue","withDirectStack","Component","DirectStackProvider","value","children"],"sourceRoot":"../../../../../src","sources":["shared/providers/stack/direct.provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+
3
+ import { resolveSceneNeighbors } from "../../../../../utils/navigation/resolve-scene-neighbors";
4
+ import { isOverlayVisible } from "../../../../../utils/overlay/visibility";
5
+ import { areDescriptorSourcesEquivalent, areDescriptorsEqual, areRouteChildStateMapsEqual, getRouteChildState, setsAreEqual } from "./helpers";
6
+ const areRouteKeysEqual = (a, b) => {
7
+ if (a === b) return true;
8
+ if (a.length !== b.length) return false;
9
+ return a.every((key, index) => key === b[index]);
10
+ };
11
+ const resolveStableDescriptorSource = ({
12
+ routeKey,
13
+ sourceDescriptor,
14
+ previousState
15
+ }) => {
16
+ const previousSourceDescriptor = previousState?.sourceDescriptors[routeKey];
17
+ if (previousSourceDescriptor && areDescriptorSourcesEquivalent(previousSourceDescriptor, sourceDescriptor)) {
18
+ return previousSourceDescriptor;
19
+ }
20
+ return sourceDescriptor;
21
+ };
22
+ const getSceneActivity = ({
23
+ focusedIndex,
24
+ isClosing,
25
+ sceneIndex,
26
+ topIndex,
27
+ topIsClosing
28
+ }) => {
29
+ if (isClosing) {
30
+ return "closing";
31
+ }
32
+ if (topIsClosing) {
33
+ return sceneIndex === focusedIndex ? "inert" : "inactive";
34
+ }
35
+ if (sceneIndex === topIndex) {
36
+ return "active";
37
+ }
38
+ if (sceneIndex === topIndex - 1) {
39
+ return "inert";
40
+ }
41
+ return "inactive";
42
+ };
43
+ const getSceneActivityWindow = ({
44
+ props,
45
+ routes,
46
+ closingRouteKeys
47
+ }) => {
48
+ const focusedRouteKey = props.state.routes[props.state.index]?.key;
49
+ let focusedIndex = Math.max(0, routes.findIndex(route => route.key === focusedRouteKey));
50
+ while (focusedIndex > 0 && closingRouteKeys.has(routes[focusedIndex]?.key)) {
51
+ focusedIndex--;
52
+ }
53
+ const topIndex = routes.length - 1;
54
+ const topRoute = routes[topIndex];
55
+ const topIsClosing = topRoute !== undefined && closingRouteKeys.has(topRoute.key);
56
+ return {
57
+ focusedIndex,
58
+ topIndex,
59
+ topIsClosing
60
+ };
61
+ };
62
+ const withDescriptorActivityState = (descriptor, activity) => {
63
+ if (descriptor.activity === activity) {
64
+ return descriptor;
65
+ }
66
+ return {
67
+ ...descriptor,
68
+ activity
69
+ };
70
+ };
71
+ const buildBaseScenes = ({
72
+ routes,
73
+ descriptors,
74
+ closingRouteKeys,
75
+ previousState,
76
+ activityWindow
77
+ }) => {
78
+ const routeKeys = [];
79
+ const scenes = [];
80
+ const routeChildStates = {};
81
+ const sourceDescriptors = {};
82
+ const managedDescriptors = {};
83
+ let shouldShowFloatOverlay = false;
84
+ for (let sceneIndex = 0; sceneIndex < routes.length; sceneIndex++) {
85
+ const route = routes[sceneIndex];
86
+ const rawSourceDescriptor = descriptors[route.key];
87
+ if (!rawSourceDescriptor) {
88
+ throw new Error(`Missing descriptor for route "${route.key}"`);
89
+ }
90
+ const routeChildState = getRouteChildState(route);
91
+ const childStateUnchanged = !previousState || Object.is(previousState.routeChildStates[route.key], routeChildState);
92
+ const sourceDescriptor = childStateUnchanged ? resolveStableDescriptorSource({
93
+ routeKey: route.key,
94
+ sourceDescriptor: rawSourceDescriptor,
95
+ previousState
96
+ }) : rawSourceDescriptor;
97
+ const activity = getSceneActivity({
98
+ ...activityWindow,
99
+ isClosing: closingRouteKeys.has(route.key),
100
+ sceneIndex
101
+ });
102
+ const previousDescriptor = previousState?.descriptors[route.key];
103
+ const descriptor = previousDescriptor && childStateUnchanged && previousDescriptor.route === sourceDescriptor.route && previousDescriptor.navigation === sourceDescriptor.navigation && previousDescriptor.options === sourceDescriptor.options && previousDescriptor.activity === activity ? previousDescriptor : withDescriptorActivityState(sourceDescriptor, activity);
104
+ routeKeys.push(route.key);
105
+ routeChildStates[route.key] = routeChildState;
106
+ sourceDescriptors[route.key] = sourceDescriptor;
107
+ managedDescriptors[route.key] = descriptor;
108
+ if (!shouldShowFloatOverlay) {
109
+ shouldShowFloatOverlay = isOverlayVisible(sourceDescriptor?.options);
110
+ }
111
+ scenes.push({
112
+ route: descriptor.route,
113
+ descriptor
114
+ });
115
+ }
116
+ return {
117
+ scenes,
118
+ routeChildStates,
119
+ sourceDescriptors,
120
+ descriptors: managedDescriptors,
121
+ routeKeys,
122
+ shouldShowFloatOverlay
123
+ };
124
+ };
125
+ const withSceneRelationships = ({
126
+ scenes,
127
+ sourceDescriptors,
128
+ closingRouteKeys,
129
+ previousState
130
+ }) => {
131
+ const isRouteClosing = routeKey => closingRouteKeys.has(routeKey);
132
+ const closingRouteOrder = new Map(Array.from(closingRouteKeys, (routeKey, index) => [routeKey, index]));
133
+ const previousScenesByRouteKey = previousState ? new Map(previousState.scenes.map(scene => [scene.route.key, scene])) : undefined;
134
+ let reusedEveryScene = previousState !== undefined && scenes.length === previousState.scenes.length;
135
+ const relationshipScenes = scenes.map(scene => ({
136
+ route: scene.route,
137
+ descriptor: sourceDescriptors[scene.route.key] ?? scene.descriptor
138
+ }));
139
+ const nextScenes = scenes.map((scene, sceneIndex) => {
140
+ const {
141
+ previousDescriptor,
142
+ nextDescriptor
143
+ } = resolveSceneNeighbors(relationshipScenes, sceneIndex, isRouteClosing, routeKey => closingRouteOrder.get(routeKey));
144
+ const nextScene = {
145
+ ...scene,
146
+ previousDescriptor,
147
+ nextDescriptor
148
+ };
149
+ const previousScene = previousState?.scenes[sceneIndex]?.route === scene.route ? previousState.scenes[sceneIndex] : previousScenesByRouteKey?.get(scene.route.key);
150
+ if (previousScene && previousScene.route === nextScene.route && previousScene.descriptor === nextScene.descriptor && previousScene.previousDescriptor === nextScene.previousDescriptor && previousScene.nextDescriptor === nextScene.nextDescriptor) {
151
+ return previousScene;
152
+ }
153
+ reusedEveryScene = false;
154
+ return nextScene;
155
+ });
156
+ if (reusedEveryScene && previousState) {
157
+ return previousState.scenes;
158
+ }
159
+ return nextScenes;
160
+ };
161
+ export const buildManagedStackState = params => {
162
+ const activityWindow = getSceneActivityWindow(params);
163
+ const focusedRouteKey = params.props.state.routes[params.props.state.index]?.key;
164
+ const {
165
+ scenes: baseScenes,
166
+ routeChildStates,
167
+ sourceDescriptors,
168
+ descriptors: managedDescriptors,
169
+ routeKeys,
170
+ shouldShowFloatOverlay
171
+ } = buildBaseScenes({
172
+ ...params,
173
+ activityWindow
174
+ });
175
+ const scenes = withSceneRelationships({
176
+ scenes: baseScenes,
177
+ sourceDescriptors,
178
+ closingRouteKeys: params.closingRouteKeys,
179
+ previousState: params.previousState
180
+ });
181
+ const closingRouteKeys = new Set(params.closingRouteKeys);
182
+ return {
183
+ routes: params.routes,
184
+ descriptors: params.previousState && areDescriptorsEqual(params.previousState.descriptors, managedDescriptors) ? params.previousState.descriptors : managedDescriptors,
185
+ sourceDescriptors: params.previousState && areDescriptorsEqual(params.previousState.sourceDescriptors, sourceDescriptors) ? params.previousState.sourceDescriptors : sourceDescriptors,
186
+ focusedRouteKey,
187
+ routeChildStates: params.previousState && areRouteChildStateMapsEqual(params.previousState.routeChildStates, routeChildStates) ? params.previousState.routeChildStates : routeChildStates,
188
+ scenes,
189
+ routeKeys: params.previousState && areRouteKeysEqual(params.previousState.routeKeys, routeKeys) ? params.previousState.routeKeys : routeKeys,
190
+ shouldShowFloatOverlay,
191
+ closingRouteKeys: params.previousState && setsAreEqual(params.previousState.closingRouteKeys, closingRouteKeys) ? params.previousState.closingRouteKeys : closingRouteKeys
192
+ };
193
+ };
194
+ //# sourceMappingURL=build-managed-stack-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["resolveSceneNeighbors","isOverlayVisible","areDescriptorSourcesEquivalent","areDescriptorsEqual","areRouteChildStateMapsEqual","getRouteChildState","setsAreEqual","areRouteKeysEqual","a","b","length","every","key","index","resolveStableDescriptorSource","routeKey","sourceDescriptor","previousState","previousSourceDescriptor","sourceDescriptors","getSceneActivity","focusedIndex","isClosing","sceneIndex","topIndex","topIsClosing","getSceneActivityWindow","props","routes","closingRouteKeys","focusedRouteKey","state","Math","max","findIndex","route","has","topRoute","undefined","withDescriptorActivityState","descriptor","activity","buildBaseScenes","descriptors","activityWindow","routeKeys","scenes","routeChildStates","managedDescriptors","shouldShowFloatOverlay","rawSourceDescriptor","Error","routeChildState","childStateUnchanged","Object","is","previousDescriptor","navigation","options","push","withSceneRelationships","isRouteClosing","closingRouteOrder","Map","Array","from","previousScenesByRouteKey","map","scene","reusedEveryScene","relationshipScenes","nextScenes","nextDescriptor","get","nextScene","previousScene","buildManagedStackState","params","baseScenes","Set"],"sourceRoot":"../../../../../../../../src","sources":["shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ import { buildManagedStackState } from "./build-managed-stack-state";
4
+ import { areDescriptorSourceMapsEquivalent, areDescriptorsEqual, areRouteChildStateMapsEqual, getRouteChildStateMap, setsAreEqual } from "./helpers";
5
+ import { reconcileManagedRoutes } from "./reconcile-managed-routes";
6
+ const routesAreIdentical = (a, b) => {
7
+ if (a === b) return true;
8
+ if (a.length !== b.length) return false;
9
+ return a.every((route, index) => route === b[index]);
10
+ };
11
+ const routeKeysAreEqual = (a, b) => {
12
+ if (a.length !== b.length) return false;
13
+ return a.every((route, index) => route.key === b[index]?.key);
14
+ };
15
+ export const deriveManagedStackState = ({
16
+ props,
17
+ current,
18
+ previousRoutesSnapshot,
19
+ closingRouteKeys
20
+ }) => {
21
+ const nextRoutesSnapshot = props.state.routes;
22
+ const nextDescriptors = props.descriptors;
23
+ const nextRouteChildStates = getRouteChildStateMap(nextRoutesSnapshot);
24
+ const nextFocusedRouteKey = nextRoutesSnapshot[props.state.index]?.key;
25
+ const focusedRouteUnchanged = current.focusedRouteKey === nextFocusedRouteKey;
26
+ const closingRouteKeysUnchanged = setsAreEqual(current.closingRouteKeys, closingRouteKeys);
27
+ const routeChildStatesUnchanged = areRouteChildStateMapsEqual(current.routeChildStates, nextRouteChildStates);
28
+ const alreadyAligned = focusedRouteUnchanged && closingRouteKeysUnchanged && routeChildStatesUnchanged && routesAreIdentical(current.routes, nextRoutesSnapshot) && areDescriptorsEqual(current.sourceDescriptors, nextDescriptors);
29
+ if (alreadyAligned) {
30
+ return current;
31
+ }
32
+ const logicallyAligned = focusedRouteUnchanged && closingRouteKeysUnchanged && routeChildStatesUnchanged && routeKeysAreEqual(current.routes, nextRoutesSnapshot) && areDescriptorSourceMapsEquivalent(current.sourceDescriptors, nextDescriptors);
33
+ if (logicallyAligned) {
34
+ return current;
35
+ }
36
+ const result = reconcileManagedRoutes({
37
+ current,
38
+ previousRoutesSnapshot,
39
+ nextRoutesSnapshot,
40
+ nextDescriptors,
41
+ closingRouteKeys
42
+ });
43
+ const routesChanged = !routesAreIdentical(current.routes, result.routes);
44
+ const descriptorsChanged = !areDescriptorsEqual(current.sourceDescriptors, result.descriptors);
45
+ const closingRouteKeysChanged = !setsAreEqual(current.closingRouteKeys, closingRouteKeys);
46
+ if (!routesChanged && !descriptorsChanged && !closingRouteKeysChanged) {
47
+ return current;
48
+ }
49
+ return buildManagedStackState({
50
+ props,
51
+ routes: routesChanged ? result.routes : current.routes,
52
+ descriptors: descriptorsChanged ? result.descriptors : current.sourceDescriptors,
53
+ closingRouteKeys,
54
+ previousState: current
55
+ });
56
+ };
57
+ //# sourceMappingURL=derive-managed-stack-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["buildManagedStackState","areDescriptorSourceMapsEquivalent","areDescriptorsEqual","areRouteChildStateMapsEqual","getRouteChildStateMap","setsAreEqual","reconcileManagedRoutes","routesAreIdentical","a","b","length","every","route","index","routeKeysAreEqual","key","deriveManagedStackState","props","current","previousRoutesSnapshot","closingRouteKeys","nextRoutesSnapshot","state","routes","nextDescriptors","descriptors","nextRouteChildStates","nextFocusedRouteKey","focusedRouteUnchanged","focusedRouteKey","closingRouteKeysUnchanged","routeChildStatesUnchanged","routeChildStates","alreadyAligned","sourceDescriptors","logicallyAligned","result","routesChanged","descriptorsChanged","closingRouteKeysChanged","previousState"],"sourceRoot":"../../../../../../../../src","sources":["shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ export const areDescriptorsEqual = (a, b) => {
4
+ if (a === b) return true;
5
+ const aKeys = Object.keys(a);
6
+ const bKeys = Object.keys(b);
7
+ if (aKeys.length !== bKeys.length) return false;
8
+ return aKeys.every(key => a[key] === b[key]);
9
+ };
10
+ export const setsAreEqual = (left, right) => {
11
+ if (left.size !== right.size) {
12
+ return false;
13
+ }
14
+ for (const value of left) {
15
+ if (!right.has(value)) {
16
+ return false;
17
+ }
18
+ }
19
+ return true;
20
+ };
21
+ export const getRouteChildState = route => {
22
+ if (!route || typeof route !== "object") {
23
+ return undefined;
24
+ }
25
+ const childStateSymbol = Object.getOwnPropertySymbols(route).find(symbol => symbol.description === "CHILD_STATE");
26
+ if (childStateSymbol && childStateSymbol in route) {
27
+ return route[childStateSymbol];
28
+ }
29
+ return route.state;
30
+ };
31
+ export const getRouteChildStateMap = routes => {
32
+ const childStates = {};
33
+ for (const route of routes) {
34
+ childStates[route.key] = getRouteChildState(route);
35
+ }
36
+ return childStates;
37
+ };
38
+ export const areRouteChildStateMapsEqual = (previous, next) => {
39
+ if (previous === next) return true;
40
+ const previousKeys = Object.keys(previous);
41
+ const nextKeys = Object.keys(next);
42
+ if (previousKeys.length !== nextKeys.length) return false;
43
+ return previousKeys.every(key => Object.is(previous[key], next[key]));
44
+ };
45
+ export const areRecordsShallowEqual = (a, b) => {
46
+ if (a === b) return true;
47
+ const aKeys = Object.keys(a);
48
+ const bKeys = Object.keys(b);
49
+ if (aKeys.length !== bKeys.length) return false;
50
+ return aKeys.every(key => Object.is(a[key], b[key]));
51
+ };
52
+ export const areDescriptorSourcesEquivalent = (previous, next) => {
53
+ return previous.navigation === next.navigation && areRecordsShallowEqual(previous.route, next.route) && areRecordsShallowEqual(previous.options, next.options);
54
+ };
55
+ export const areDescriptorSourceMapsEquivalent = (previous, next) => {
56
+ if (previous === next) return true;
57
+ const previousKeys = Object.keys(previous);
58
+ const nextKeys = Object.keys(next);
59
+ if (previousKeys.length !== nextKeys.length) return false;
60
+ return previousKeys.every(key => {
61
+ const previousDescriptor = previous[key];
62
+ const nextDescriptor = next[key];
63
+ if (!previousDescriptor || !nextDescriptor) {
64
+ return false;
65
+ }
66
+ return areDescriptorSourcesEquivalent(previousDescriptor, nextDescriptor);
67
+ });
68
+ };
69
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["areDescriptorsEqual","a","b","aKeys","Object","keys","bKeys","length","every","key","setsAreEqual","left","right","size","value","has","getRouteChildState","route","undefined","childStateSymbol","getOwnPropertySymbols","find","symbol","description","state","getRouteChildStateMap","routes","childStates","areRouteChildStateMapsEqual","previous","next","previousKeys","nextKeys","is","areRecordsShallowEqual","areDescriptorSourcesEquivalent","navigation","options","areDescriptorSourceMapsEquivalent","previousDescriptor","nextDescriptor"],"sourceRoot":"../../../../../../../../src","sources":["shared/providers/stack/helpers/managed-stack-state/helpers/helpers.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ import { composeDescriptors } from "../../../../../utils/navigation/compose-descriptors";
4
+ import { syncRoutesWithRemoved } from "../../../../../utils/navigation/sync-routes-with-removed";
5
+ const haveSameRouteKeys = (previous, next) => {
6
+ if (previous.length !== next.length) {
7
+ return false;
8
+ }
9
+ return previous.every((route, index) => route?.key === next[index]?.key);
10
+ };
11
+ const alignRoutesWithLatest = (currentRoutes, currentDescriptors, nextRoutes, nextDescriptors) => {
12
+ if (currentRoutes.length === 0) {
13
+ return {
14
+ routes: nextRoutes,
15
+ descriptors: composeDescriptors(nextRoutes, nextDescriptors, currentDescriptors)
16
+ };
17
+ }
18
+ const nextRouteLookup = new Map();
19
+ for (const route of nextRoutes) {
20
+ nextRouteLookup.set(route.key, route);
21
+ }
22
+ let didChange = currentRoutes.length !== nextRoutes.length;
23
+ const alignedRoutes = currentRoutes.map(route => {
24
+ const nextRoute = nextRouteLookup.get(route.key);
25
+ if (!nextRoute) {
26
+ return route;
27
+ }
28
+ if (nextRoute !== route) {
29
+ didChange = true;
30
+ return nextRoute;
31
+ }
32
+ return route;
33
+ });
34
+ const routesResult = didChange ? alignedRoutes : currentRoutes;
35
+ return {
36
+ routes: routesResult,
37
+ descriptors: composeDescriptors(routesResult, nextDescriptors, currentDescriptors)
38
+ };
39
+ };
40
+ const acceptAlreadyClosingRouteRemovals = ({
41
+ current,
42
+ previousRoutesSnapshot,
43
+ nextRoutesSnapshot,
44
+ nextDescriptors,
45
+ closingRouteKeys
46
+ }) => {
47
+ const nextRouteKeys = new Set(nextRoutesSnapshot.map(route => route.key));
48
+ const acceptedRemovedKeys = new Set();
49
+ for (const route of previousRoutesSnapshot) {
50
+ if (nextRouteKeys.has(route.key)) {
51
+ continue;
52
+ }
53
+ if (!closingRouteKeys.has(route.key)) {
54
+ continue;
55
+ }
56
+ acceptedRemovedKeys.add(route.key);
57
+ closingRouteKeys.delete(route.key);
58
+ }
59
+ if (acceptedRemovedKeys.size === 0) {
60
+ return null;
61
+ }
62
+ const remainingClosingRoutes = current.routes.filter(route => {
63
+ if (nextRouteKeys.has(route.key)) {
64
+ return false;
65
+ }
66
+ if (acceptedRemovedKeys.has(route.key)) {
67
+ return false;
68
+ }
69
+ return closingRouteKeys.has(route.key);
70
+ });
71
+ const routes = [...nextRoutesSnapshot, ...remainingClosingRoutes];
72
+ const descriptors = {
73
+ ...nextDescriptors
74
+ };
75
+ for (const route of remainingClosingRoutes) {
76
+ const descriptor = current.sourceDescriptors[route.key];
77
+ if (descriptor) {
78
+ descriptors[route.key] = descriptor;
79
+ }
80
+ }
81
+ return {
82
+ routes,
83
+ descriptors
84
+ };
85
+ };
86
+ export const reconcileManagedRoutes = params => {
87
+ const {
88
+ current,
89
+ previousRoutesSnapshot,
90
+ nextRoutesSnapshot,
91
+ nextDescriptors,
92
+ closingRouteKeys
93
+ } = params;
94
+ const routeKeysUnchanged = haveSameRouteKeys(previousRoutesSnapshot, nextRoutesSnapshot);
95
+ if (routeKeysUnchanged) {
96
+ const result = alignRoutesWithLatest(current.routes, current.sourceDescriptors, nextRoutesSnapshot, nextDescriptors);
97
+ return {
98
+ routes: result.routes,
99
+ descriptors: result.descriptors
100
+ };
101
+ }
102
+ const acceptedRemoval = acceptAlreadyClosingRouteRemovals(params);
103
+ if (acceptedRemoval) {
104
+ return acceptedRemoval;
105
+ }
106
+ const result = syncRoutesWithRemoved({
107
+ prevRoutes: previousRoutesSnapshot.length > 0 ? previousRoutesSnapshot : current.routes,
108
+ prevDescriptors: current.sourceDescriptors,
109
+ nextRoutes: nextRoutesSnapshot,
110
+ nextDescriptors,
111
+ closingRouteKeys
112
+ });
113
+ return {
114
+ routes: result.routes,
115
+ descriptors: result.descriptors
116
+ };
117
+ };
118
+ //# sourceMappingURL=reconcile-managed-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["composeDescriptors","syncRoutesWithRemoved","haveSameRouteKeys","previous","next","length","every","route","index","key","alignRoutesWithLatest","currentRoutes","currentDescriptors","nextRoutes","nextDescriptors","routes","descriptors","nextRouteLookup","Map","set","didChange","alignedRoutes","map","nextRoute","get","routesResult","acceptAlreadyClosingRouteRemovals","current","previousRoutesSnapshot","nextRoutesSnapshot","closingRouteKeys","nextRouteKeys","Set","acceptedRemovedKeys","has","add","delete","size","remainingClosingRoutes","filter","descriptor","sourceDescriptors","reconcileManagedRoutes","params","routeKeysUnchanged","result","acceptedRemoval","prevRoutes","prevDescriptors"],"sourceRoot":"../../../../../../../../src","sources":["shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../../../../src","sources":["shared/providers/stack/helpers/managed-stack-state/helpers/types.ts"],"mappings":"","ignoreList":[]}