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
@@ -1 +1 @@
1
- {"version":3,"file":"managed-stack.types.d.ts","sourceRoot":"","sources":["../../../../../src/shared/types/providers/managed-stack.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EACX,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,cAAc,EACd,MAAM,gBAAgB,CAAC;AAExB;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CACjC,WAAW,SAAS,mBAAmB,GAAG,mBAAmB,EAC7D,WAAW,SAAS,mBAAmB,GAAG,mBAAmB;IAE7D,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,KAAK,WAAW,CAAC;CAC7E;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,gBAAgB,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/D,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB,CACvC,WAAW,SAAS,mBAAmB,GAAG,mBAAmB;IAE7D,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,sBAAsB,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAClC,WAAW,SAAS,mBAAmB,GAAG,mBAAmB;IAE7D,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,mBAAmB,EAAE,wBAAwB,CAAC;IAC9C,WAAW,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;CAClD"}
1
+ {"version":3,"file":"managed-stack.types.d.ts","sourceRoot":"","sources":["../../../../../src/shared/types/providers/managed-stack.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EACX,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,MAAM,gBAAgB,CAAC;AAExB;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CACjC,WAAW,SAAS,mBAAmB,GAAG,mBAAmB,EAC7D,WAAW,SAAS,mBAAmB,GAAG,mBAAmB;IAE7D,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;IAChE,QAAQ,EAAE,CACT,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,EAC3B,WAAW,EAAE,OAAO,KAChB,qBAAqB,CAAC,WAAW,CAAC,CAAC;CACxC;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACxC,gBAAgB,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,KAAK,IAAI,CAAC;CAC/D;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB,CACvC,WAAW,SAAS,mBAAmB,GAAG,mBAAmB;IAE7D,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAClC,WAAW,SAAS,mBAAmB,GAAG,mBAAmB;IAE7D,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,mBAAmB,EAAE,wBAAwB,CAAC;IAC9C,WAAW,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;CAClD"}
@@ -28,6 +28,30 @@ export type GestureTracking = "auto" | "never" | "always";
28
28
  */
29
29
  export type SnapPoint = number | "auto";
30
30
  export type BackdropBehavior = "block" | "passthrough" | "dismiss" | "collapse";
31
+ /**
32
+ * Controls how an inactive screen is retained after it is no longer active.
33
+ *
34
+ * - `keep`
35
+ * keep inactive screen mounted, attached, visible, not interactive
36
+ * RNS: activityState=1, visible=true
37
+ * React Activity: mode="visible"
38
+ *
39
+ * - `freeze`
40
+ * keep last painted UI visible but stop/suspend inactive work where platform allows
41
+ * RNS: activityState=1, visible=true, maybe freezeOnBlur/shouldFreeze later
42
+ * React Activity: mode="hidden" with paint preserved
43
+ *
44
+ * - `detach`
45
+ * remove inactive screen from native/view presentation after safe paint
46
+ * RNS: activityState=0, visible=false
47
+ * React Activity: mode="hidden" + display none, or equivalent
48
+ *
49
+ * - `unmount`
50
+ * actually remove React subtree when the inactive screen is safe to remove
51
+ * RNS native: only after safe paint for non-nested screens
52
+ * web: return null
53
+ */
54
+ export type InactiveBehavior = "keep" | "freeze" | "detach" | "unmount";
31
55
  export type TransitionAwareProps<T extends object> = AnimatedProps<T> & {
32
56
  /**
33
57
  * Connects this component to custom animated styles defined in screenStyleInterpolator.
@@ -1 +1 @@
1
- {"version":3,"file":"screen.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/screen.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screen.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/screen.types.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export interface BaseStackRoute {
15
15
  name: string;
16
16
  params?: object;
17
17
  }
18
+ export type StackSceneActivity = "active" | "inert" | "inactive" | "closing";
18
19
  /**
19
20
  * Base navigation interface - minimal contract for gesture handling.
20
21
  * Both React Navigation helpers and ComponentNavigation satisfy this.
@@ -39,8 +40,12 @@ export interface BaseStackDescriptor<TRoute extends BaseStackRoute = BaseStackRo
39
40
  route: TRoute;
40
41
  navigation: TNavigation;
41
42
  options: TOptions;
43
+ activity?: StackSceneActivity;
42
44
  render?: () => React.JSX.Element | null;
43
45
  }
46
+ export type StackDescriptorSource<TDescriptor extends BaseStackDescriptor = BaseStackDescriptor> = Omit<TDescriptor, "activity"> & {
47
+ activity?: StackSceneActivity;
48
+ };
44
49
  /**
45
50
  * Base scene interface - route + descriptor pair.
46
51
  * Used by all stack views to iterate over screens.
@@ -48,6 +53,8 @@ export interface BaseStackDescriptor<TRoute extends BaseStackRoute = BaseStackRo
48
53
  export interface BaseStackScene<TDescriptor extends BaseStackDescriptor = BaseStackDescriptor> {
49
54
  route: TDescriptor["route"];
50
55
  descriptor: TDescriptor;
56
+ previousDescriptor?: TDescriptor;
57
+ nextDescriptor?: TDescriptor;
51
58
  }
52
59
  /**
53
60
  * Base state interface - routes array with index.
@@ -1 +1 @@
1
- {"version":3,"file":"stack.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/stack.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,MAAM;QACf,MAAM,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC/B,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,MAAM,IAAI,CAAC;IACxD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CACnC,MAAM,SAAS,cAAc,GAAG,cAAc,EAC9C,WAAW,SAAS,mBAAmB,GAAG,mBAAmB,EAC7D,QAAQ,SAAS,sBAAsB,GAAG,sBAAsB;IAEhE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;CACxC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc,CAC9B,WAAW,SAAS,mBAAmB,GAAG,mBAAmB;IAE7D,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,UAAU,EAAE,WAAW,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc,CAC9B,MAAM,SAAS,cAAc,GAAG,cAAc;IAE9C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,CACxB,WAAW,SAAS,mBAAmB,GAAG,mBAAmB,IAC1D;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;CAC3B,CAAC;AAEF,oBAAY,SAAS;IACpB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,SAAS,cAAc;CACvB"}
1
+ {"version":3,"file":"stack.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/stack.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAE7E;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,MAAM;QACf,MAAM,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC/B,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,MAAM,IAAI,CAAC;IACxD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CACnC,MAAM,SAAS,cAAc,GAAG,cAAc,EAC9C,WAAW,SAAS,mBAAmB,GAAG,mBAAmB,EAC7D,QAAQ,SAAS,sBAAsB,GAAG,sBAAsB;IAEhE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,MAAM,qBAAqB,CAChC,WAAW,SAAS,mBAAmB,GAAG,mBAAmB,IAC1D,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG;IACnC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,cAAc,CAC9B,WAAW,SAAS,mBAAmB,GAAG,mBAAmB;IAE7D,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,UAAU,EAAE,WAAW,CAAC;IACxB,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,cAAc,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc,CAC9B,MAAM,SAAS,cAAc,GAAG,cAAc;IAE9C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,CACxB,WAAW,SAAS,mBAAmB,GAAG,mBAAmB,IAC1D;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;CAC3B,CAAC;AAEF,oBAAY,SAAS;IACpB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,SAAS,cAAc;CACvB"}
@@ -4,15 +4,29 @@
4
4
  * SUPER COOL AMAZING UTILITY
5
5
  */
6
6
  import { type ReactNode } from "react";
7
- type InnerProviderComponent = (props: {
7
+ type InnerProviderComponent = React.FC<{
8
8
  children: ReactNode;
9
- }) => ReactNode;
9
+ }>;
10
+ type ProviderSnapshot<ContextValue, Guarded extends boolean> = Guarded extends true ? ContextValue : ContextValue | null;
11
+ type ProviderSelector<ContextValue, Guarded extends boolean, Selected> = (value: ProviderSnapshot<ContextValue, Guarded>) => Selected;
12
+ type ProviderStoreHook<ContextValue, Guarded extends boolean> = {
13
+ (): ProviderSnapshot<ContextValue, Guarded>;
14
+ <Selected>(selector: ProviderSelector<ContextValue, Guarded, Selected>): Selected;
15
+ };
16
+ type ProviderOptionalStoreHook<ContextValue> = {
17
+ (): ContextValue | null;
18
+ <Selected>(selector: (value: ContextValue | null) => Selected): Selected;
19
+ };
20
+ export interface ProviderStoreApi<ContextValue> {
21
+ getSnapshot: () => ContextValue | null;
22
+ subscribe: (listener: () => void) => () => void;
23
+ }
10
24
  export default function createProvider<ProviderName extends string, Guarded extends boolean = true>(name: ProviderName, options?: {
11
25
  guarded?: Guarded;
12
26
  }): <ProviderProps extends object, ContextValue>(factory: (props: ProviderProps) => {
13
27
  value?: ContextValue;
14
28
  enabled?: boolean;
15
29
  children?: ReactNode | ((innerProvider: { [K in ProviderName as `${K}Provider`]: InnerProviderComponent; }) => ReactNode);
16
- }) => { [P in ProviderName as `${P}Context`]: React.Context<ContextValue>; } & { [P in ProviderName as `${P}Provider`]: React.FC<ProviderProps>; } & { [P in ProviderName as `use${P}Context`]: () => Guarded extends true ? ContextValue : ContextValue | null; };
30
+ }) => { [P in ProviderName as `${P}Context`]: React.Context<ContextValue>; } & { [P in ProviderName as `${P}StoreContext`]: React.Context<ProviderStoreApi<ContextValue> | null>; } & { [P in ProviderName as `${P}Provider`]: React.FC<ProviderProps>; } & { [P in ProviderName as `use${P}Context`]: () => Guarded extends true ? ContextValue : ContextValue | null; } & { [P in ProviderName as `use${P}Store`]: ProviderStoreHook<ContextValue, Guarded>; } & { [P in ProviderName as `use${P}OptionalStore`]: ProviderOptionalStoreHook<ContextValue>; };
17
31
  export {};
18
32
  //# sourceMappingURL=create-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-provider.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/create-provider.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAEN,KAAK,SAAS,EAId,MAAM,OAAO,CAAC;AAEf,KAAK,sBAAsB,GAAG,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,KAAK,SAAS,CAAC;AAE5E,MAAM,CAAC,OAAO,UAAU,cAAc,CACrC,YAAY,SAAS,MAAM,EAC3B,OAAO,SAAS,OAAO,GAAG,IAAI,EAC7B,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,IAC5C,aAAa,SAAS,MAAM,EAAE,YAAY,EACjD,SAAS,CAAC,KAAK,EAAE,aAAa,KAAK;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EACN,SAAS,GACT,CAAC,CACD,aAAa,EAAE,GACb,CAAC,IAAI,YAAY,IAAI,GAAG,CAAC,UAAU,GAAG,sBAAsB,GAC7D,KACI,SAAS,CAAC,CAAC;CACnB,KAiEI,GACH,CAAC,IAAI,YAAY,IAAI,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GACjE,GAAG,GACF,CAAC,IAAI,YAAY,IAAI,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,GAC9D,GAAG,GACF,CAAC,IAAI,YAAY,IAAI,MAAM,CAAC,SAAS,GAAG,MAAM,OAAO,SAAS,IAAI,GAChE,YAAY,GACZ,YAAY,GAAG,IAAI,GACtB,CAEF"}
1
+ {"version":3,"file":"create-provider.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/create-provider.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAEN,KAAK,SAAS,EAOd,MAAM,OAAO,CAAC;AAEf,KAAK,sBAAsB,GAAG,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAEhE,KAAK,gBAAgB,CACpB,YAAY,EACZ,OAAO,SAAS,OAAO,IACpB,OAAO,SAAS,IAAI,GAAG,YAAY,GAAG,YAAY,GAAG,IAAI,CAAC;AAE9D,KAAK,gBAAgB,CAAC,YAAY,EAAE,OAAO,SAAS,OAAO,EAAE,QAAQ,IAAI,CACxE,KAAK,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,KAC1C,QAAQ,CAAC;AAEd,KAAK,iBAAiB,CAAC,YAAY,EAAE,OAAO,SAAS,OAAO,IAAI;IAC/D,IAAI,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC,QAAQ,EACR,QAAQ,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,GACzD,QAAQ,CAAC;CACZ,CAAC;AAEF,KAAK,yBAAyB,CAAC,YAAY,IAAI;IAC9C,IAAI,YAAY,GAAG,IAAI,CAAC;IACxB,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,KAAK,QAAQ,GAAG,QAAQ,CAAC;CACzE,CAAC;AAEF,MAAM,WAAW,gBAAgB,CAAC,YAAY;IAC7C,WAAW,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;CAChD;AA2CD,MAAM,CAAC,OAAO,UAAU,cAAc,CACrC,YAAY,SAAS,MAAM,EAC3B,OAAO,SAAS,OAAO,GAAG,IAAI,EAC7B,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,IAC5C,aAAa,SAAS,MAAM,EAAE,YAAY,EACjD,SAAS,CAAC,KAAK,EAAE,aAAa,KAAK;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EACN,SAAS,GACT,CAAC,CACD,aAAa,EAAE,GACb,CAAC,IAAI,YAAY,IAAI,GAAG,CAAC,UAAU,GAAG,sBAAsB,GAC7D,KACI,SAAS,CAAC,CAAC;CACnB,KAiKI,GACH,CAAC,IAAI,YAAY,IAAI,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GACjE,GAAG,GACF,CAAC,IAAI,YAAY,IAAI,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,GAC/F,GAAG,GACF,CAAC,IAAI,YAAY,IAAI,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,GAC9D,GAAG,GACF,CAAC,IAAI,YAAY,IAAI,MAAM,CAAC,SAAS,GAAG,MAAM,OAAO,SAAS,IAAI,GAChE,YAAY,GACZ,YAAY,GAAG,IAAI,GACtB,GAAG,GACF,CAAC,IAAI,YAAY,IAAI,MAAM,CAAC,OAAO,GAAG,iBAAiB,CACvD,YAAY,EACZ,OAAO,CACP,GACD,GAAG,GACF,CAAC,IAAI,YAAY,IAAI,MAAM,CAAC,eAAe,GAAG,yBAAyB,CAAC,YAAY,CAAC,GACtF,CAEF"}
@@ -5,6 +5,7 @@ interface SceneWithKey {
5
5
  descriptor: unknown;
6
6
  }
7
7
  type IsRouteClosing = (routeKey: string) => boolean;
8
+ type GetRouteClosingOrder = (routeKey: string) => number | undefined;
8
9
  /**
9
10
  * Resolves previous/next descriptors while accounting for routes that are
10
11
  * visually closing.
@@ -18,7 +19,7 @@ type IsRouteClosing = (routeKey: string) => boolean;
18
19
  * - If there is no non-closing neighbor above/below, we fall back to the first
19
20
  * closing neighbor (needed for normal back transitions).
20
21
  */
21
- export declare function resolveSceneNeighbors<T extends SceneWithKey>(scenes: T[], sceneIndex: number, isRouteClosing: IsRouteClosing): {
22
+ export declare function resolveSceneNeighbors<T extends SceneWithKey>(scenes: T[], sceneIndex: number, isRouteClosing: IsRouteClosing, getRouteClosingOrder?: GetRouteClosingOrder): {
22
23
  previousDescriptor: T["descriptor"] | undefined;
23
24
  nextDescriptor: T["descriptor"] | undefined;
24
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-scene-neighbors.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/navigation/resolve-scene-neighbors.ts"],"names":[],"mappings":"AAAA,UAAU,YAAY;IACrB,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;CACpB;AAED,KAAK,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;AAyBpD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,YAAY,EAC3D,MAAM,EAAE,CAAC,EAAE,EACX,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,cAAc,GAC5B;IACF,kBAAkB,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IAChD,cAAc,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;CAC5C,CAmDA"}
1
+ {"version":3,"file":"resolve-scene-neighbors.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/navigation/resolve-scene-neighbors.ts"],"names":[],"mappings":"AAAA,UAAU,YAAY;IACrB,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;CACpB;AAED,KAAK,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;AACpD,KAAK,oBAAoB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAyBrE;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,YAAY,EAC3D,MAAM,EAAE,CAAC,EAAE,EACX,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,cAAc,EAC9B,oBAAoB,CAAC,EAAE,oBAAoB,GACzC;IACF,kBAAkB,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IAChD,cAAc,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;CAC5C,CAsDA"}
@@ -1,11 +1,12 @@
1
1
  import type { useClosingRouteKeys } from "../../hooks/navigation/use-closing-route-keys";
2
2
  import type { RouteWithKey } from "../../types/stack.types";
3
+ type ClosingRouteKeys = Set<string> | ReturnType<typeof useClosingRouteKeys>;
3
4
  type SyncRoutesWithRemovedParams<Route extends RouteWithKey, DescriptorMap extends Record<string, unknown>> = {
4
5
  prevRoutes: Route[];
5
6
  prevDescriptors: DescriptorMap;
6
7
  nextRoutes: Route[];
7
8
  nextDescriptors: DescriptorMap;
8
- closingRouteKeys: ReturnType<typeof useClosingRouteKeys>;
9
+ closingRouteKeys: ClosingRouteKeys;
9
10
  };
10
11
  /**
11
12
  * Synchronizes routes while handling removed routes that may still be animating out.
@@ -1 +1 @@
1
- {"version":3,"file":"sync-routes-with-removed.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/navigation/sync-routes-with-removed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,KAAK,2BAA2B,CAC/B,KAAK,SAAS,YAAY,EAC1B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC1C;IACH,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,eAAe,EAAE,aAAa,CAAC;IAC/B,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,eAAe,EAAE,aAAa,CAAC;IAC/B,gBAAgB,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;CACzD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GACjC,KAAK,SAAS,YAAY,EAC1B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5C,iFAMC,2BAA2B,CAAC,KAAK,EAAE,aAAa,CAAC,KAAG;IACtD,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,EAAE,aAAa,CAAC;CAoE3B,CAAC"}
1
+ {"version":3,"file":"sync-routes-with-removed.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/navigation/sync-routes-with-removed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,KAAK,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE7E,KAAK,2BAA2B,CAC/B,KAAK,SAAS,YAAY,EAC1B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC1C;IACH,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,eAAe,EAAE,aAAa,CAAC;IAC/B,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,eAAe,EAAE,aAAa,CAAC;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;CACnC,CAAC;AA+BF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GACjC,KAAK,SAAS,YAAY,EAC1B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5C,iFAMC,2BAA2B,CAAC,KAAK,EAAE,aAAa,CAAC,KAAG;IACtD,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,EAAE,aAAa,CAAC;CAoE3B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const getVisibilityBlockOffset: (viewportHeight: number) => number;
2
+ //# sourceMappingURL=visibility-block-offset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibility-block-offset.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/visibility-block-offset.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,GAAI,gBAAgB,MAAM,KAAG,MAGjE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-screen-transitions",
3
- "version": "3.6.0",
3
+ "version": "3.7.0-alpha.0",
4
4
  "description": "Easy screen transitions for React Native and Expo",
5
5
  "author": "Ed",
6
6
  "license": "MIT",
@@ -9,6 +9,16 @@
9
9
  "url": "https://github.com/eds2002/react-native-screen-transitions.git",
10
10
  "directory": "packages/react-native-screen-transitions"
11
11
  },
12
+ "funding": [
13
+ {
14
+ "type": "github",
15
+ "url": "https://github.com/sponsors/eds2002"
16
+ },
17
+ {
18
+ "type": "individual",
19
+ "url": "https://buymeacoffee.com/trpfsu"
20
+ }
21
+ ],
12
22
  "main": "lib/commonjs/shared/index.js",
13
23
  "module": "lib/module/shared/index.js",
14
24
  "types": "lib/typescript/shared/index.d.ts",
@@ -1,72 +1,78 @@
1
- import { Fragment } from "react";
2
- import { NativeScreen } from "../../shared/components/native-screen";
3
- import { NativeScreenContainer } from "../../shared/components/native-screen-container";
1
+ import {
2
+ NavigationContext,
3
+ NavigationRouteContext,
4
+ } from "@react-navigation/native";
5
+ import { Fragment, memo } from "react";
6
+ import {
7
+ ActivityContainer,
8
+ ActivityScreen,
9
+ } from "../../shared/components/activity";
4
10
  import { Overlay } from "../../shared/components/overlay";
5
- import { SceneView } from "../../shared/components/scene-view";
6
11
  import { ScreenComposer } from "../../shared/providers/screen/screen-composer";
7
12
  import { withStackCore } from "../../shared/providers/stack/core.provider";
8
13
  import { withManagedStack } from "../../shared/providers/stack/managed.provider";
9
- import { resolveSceneNeighbors } from "../../shared/utils/navigation/resolve-scene-neighbors";
10
- import { isFabric } from "../../shared/utils/platform";
14
+ import type { BaseStackScene } from "../../shared/types/stack.types";
11
15
  import type {
12
16
  BlankStackDescriptor,
13
17
  BlankStackNavigationHelpers,
14
18
  } from "../types";
15
19
 
20
+ interface BlankSceneRowProps {
21
+ scene: BaseStackScene<BlankStackDescriptor>;
22
+ paintDriverRouteKey?: string;
23
+ }
24
+
25
+ const BlankSceneRow = memo(function BlankSceneRow({
26
+ scene,
27
+ paintDriverRouteKey,
28
+ }: BlankSceneRowProps) {
29
+ const descriptor = scene.descriptor;
30
+ const route = scene.route;
31
+
32
+ return (
33
+ <NavigationContext.Provider value={descriptor.navigation}>
34
+ <NavigationRouteContext.Provider value={route}>
35
+ <ActivityScreen
36
+ activity={descriptor.activity}
37
+ inactiveBehavior={descriptor.options.inactiveBehavior}
38
+ paintDriverRouteKey={paintDriverRouteKey}
39
+ hasNestedState={"state" in route}
40
+ >
41
+ <ScreenComposer
42
+ previous={scene.previousDescriptor}
43
+ current={descriptor}
44
+ next={scene.nextDescriptor}
45
+ >
46
+ {descriptor.render?.()}
47
+ </ScreenComposer>
48
+ </ActivityScreen>
49
+ </NavigationRouteContext.Provider>
50
+ </NavigationContext.Provider>
51
+ );
52
+ });
53
+
16
54
  export const StackView = withStackCore(
17
- { TRANSITIONS_ALWAYS_ON: true, DISABLE_NATIVE_SCREENS: true },
55
+ { TRANSITIONS_ALWAYS_ON: true, DISABLE_NATIVE_SCREENS: false },
18
56
  withManagedStack<BlankStackDescriptor, BlankStackNavigationHelpers>(
19
- ({
20
- descriptors,
21
- focusedIndex,
22
- scenes,
23
- shouldShowFloatOverlay,
24
- closingRouteMap,
25
- }) => {
26
- const isRouteClosing = (routeKey: string) =>
27
- Boolean(closingRouteMap.current[routeKey]);
28
-
57
+ ({ scenes, shouldShowFloatOverlay }) => {
29
58
  return (
30
59
  <Fragment>
31
60
  {shouldShowFloatOverlay ? <Overlay.Float /> : null}
32
61
 
33
- <NativeScreenContainer>
34
- {scenes.map((scene, sceneIndex) => {
35
- const descriptor = scene.descriptor;
62
+ <ActivityContainer>
63
+ {scenes.map((scene, index) => {
36
64
  const route = scene.route;
37
- const isFocused = focusedIndex === sceneIndex;
38
- const isBelowFocused = focusedIndex - 1 === sceneIndex;
39
-
40
- const { previousDescriptor, nextDescriptor } =
41
- resolveSceneNeighbors(scenes, sceneIndex, isRouteClosing);
42
-
43
- const isPreloaded = descriptors[route.key] === undefined;
65
+ const paintDriverRouteKey = scenes[index + 2]?.route.key;
44
66
 
45
- // On Fabric, when screen is frozen, animated and reanimated values are not updated
46
- // due to component being unmounted. To avoid this, we don't freeze the previous screen there
47
- const shouldFreeze = isFabric()
48
- ? !isPreloaded && !isFocused && !isBelowFocused
49
- : !isPreloaded && !isFocused;
50
67
  return (
51
- <NativeScreen
68
+ <BlankSceneRow
52
69
  key={route.key}
53
- isPreloaded={isPreloaded}
54
- index={sceneIndex}
55
- routeKey={route.key}
56
- shouldFreeze={shouldFreeze}
57
- freezeOnBlur={descriptor.options.freezeOnBlur}
58
- >
59
- <ScreenComposer
60
- previous={previousDescriptor}
61
- current={descriptor}
62
- next={nextDescriptor}
63
- >
64
- <SceneView key={route.key} descriptor={descriptor} />
65
- </ScreenComposer>
66
- </NativeScreen>
70
+ scene={scene}
71
+ paintDriverRouteKey={paintDriverRouteKey}
72
+ />
67
73
  );
68
74
  })}
69
- </NativeScreenContainer>
75
+ </ActivityContainer>
70
76
  </Fragment>
71
77
  );
72
78
  },
@@ -8,4 +8,5 @@ export type {
8
8
  BlankStackOptionsArgs,
9
9
  BlankStackOverlayProps,
10
10
  BlankStackScreenProps,
11
+ InactiveBehavior,
11
12
  } from "../blank-stack/types";
@@ -28,7 +28,6 @@ type BlankStackNavigatorInnerProps = Omit<
28
28
  keyof BlankStackFactoryOptions
29
29
  > & {
30
30
  DISABLE_NATIVE_SCREENS?: boolean;
31
- DISABLE_NATIVE_SCREEN_CONTAINER?: boolean;
32
31
  };
33
32
 
34
33
  const BlankStackContext = React.createContext<boolean>(false);
@@ -42,8 +41,6 @@ function BlankStackNavigatorInner({
42
41
  screenListeners,
43
42
  screenOptions,
44
43
  screenLayout,
45
- DISABLE_NATIVE_SCREENS,
46
- DISABLE_NATIVE_SCREEN_CONTAINER,
47
44
  ...rest
48
45
  }: BlankStackNavigatorInnerProps) {
49
46
  const { state, describe, descriptors, navigation, NavigationContent } =
@@ -69,8 +66,6 @@ function BlankStackNavigatorInner({
69
66
  <NavigationContent>
70
67
  <StackView
71
68
  {...rest}
72
- DISABLE_NATIVE_SCREENS={DISABLE_NATIVE_SCREENS}
73
- DISABLE_NATIVE_SCREEN_CONTAINER={DISABLE_NATIVE_SCREEN_CONTAINER}
74
69
  state={state}
75
70
  navigation={navigation}
76
71
  descriptors={descriptors}
@@ -81,19 +76,18 @@ function BlankStackNavigatorInner({
81
76
  }
82
77
 
83
78
  function BlankStackNavigator({
79
+ enableNativeScreens,
84
80
  independent = false,
85
- enableNativeScreens = true,
81
+ nativeScreens,
86
82
  ...rest
87
83
  }: BlankStackNavigatorProps) {
88
84
  const isNested = React.useContext(BlankStackContext);
85
+ const nativeScreensEnabled = nativeScreens ?? enableNativeScreens ?? true;
89
86
 
90
87
  const navigator = (
91
88
  <BlankStackNavigatorInner
92
89
  {...rest}
93
- {...(!enableNativeScreens && {
94
- DISABLE_NATIVE_SCREENS: true,
95
- })}
96
- DISABLE_NATIVE_SCREEN_CONTAINER={independent}
90
+ DISABLE_NATIVE_SCREENS={!nativeScreensEnabled}
97
91
  />
98
92
  );
99
93
 
@@ -137,14 +131,12 @@ type BlankStackTypeBag<
137
131
  * Creates a blank stack navigator with gesture-driven transitions.
138
132
  *
139
133
  * By default, blank stack behaves like the existing top-level blank stack:
140
- * it participates in the current navigation tree and uses native screen
141
- * primitives on supported native platforms.
134
+ * it participates in the current navigation tree and renders screens with
135
+ * react-native-screens.
142
136
  *
143
137
  * Blank stack also accepts navigator-specific props for embedded-flow behavior:
138
+ * - `nativeScreens: false` renders blank-stack screens as regular React Native views
144
139
  * - `independent: true` creates an isolated navigator for nested flows
145
- * - `enableNativeScreens: false` renders the stack with regular views instead
146
- * of `react-native-screens`
147
- *
148
140
  * In the dynamic API, pass these to `<Stack.Navigator />`.
149
141
  * In the static API, pass them in the same config object as `screens`.
150
142
  */
@@ -10,8 +10,11 @@ import type {
10
10
  StackRouterOptions,
11
11
  Theme,
12
12
  } from "@react-navigation/native";
13
- import type { ScreenTransitionConfig } from "../shared";
13
+ import type { InactiveBehavior, ScreenTransitionConfig } from "../shared";
14
14
  import type { OverlayProps } from "../shared/types/overlay.types";
15
+ import type { StackSceneActivity } from "../shared/types/stack.types";
16
+
17
+ export type { InactiveBehavior } from "../shared";
15
18
 
16
19
  export type BlankStackNavigationEventMap = {};
17
20
 
@@ -60,6 +63,24 @@ export type BlankStackNavigationHelpers = NavigationHelpers<
60
63
  * The exported name is kept for backward compatibility.
61
64
  */
62
65
  export interface BlankStackFactoryOptions {
66
+ /**
67
+ * Controls whether blank-stack screens are rendered with react-native-screens.
68
+ *
69
+ * When enabled, inactive presentation state is backed by
70
+ * `ScreenContainer`/`Screen.activityState`. Set this to `false` to render
71
+ * screens as regular React Native views.
72
+ *
73
+ * @default true
74
+ */
75
+ nativeScreens?: boolean;
76
+
77
+ /**
78
+ * Enables react-native-screens for blank-stack screen retention.
79
+ *
80
+ * @deprecated Use `nativeScreens` instead.
81
+ */
82
+ enableNativeScreens?: boolean;
83
+
63
84
  /**
64
85
  * Creates an isolated navigation tree for embedded flows.
65
86
  *
@@ -68,22 +89,10 @@ export interface BlankStackFactoryOptions {
68
89
  *
69
90
  * When enabled, the navigator:
70
91
  * - wraps itself in `NavigationIndependentTree` + `NavigationContainer`
71
- * - skips the shared native `ScreenContainer`
72
92
  *
73
93
  * Leave this disabled for normal top-level app stacks.
74
94
  */
75
95
  independent?: boolean;
76
- /**
77
- * Enables native screen primitives on supported native platforms.
78
- *
79
- * Use this when you want the embedded blank stack to keep `react-native-screens`
80
- * behavior such as native activity state and freezing.
81
- *
82
- * Set this to `false` when you want the blank stack to render with regular
83
- * views instead of native screen primitives. This is useful for embedded
84
- * flows where plain views are a better fit than native screen layering.
85
- */
86
- enableNativeScreens?: boolean;
87
96
  }
88
97
 
89
98
  /**
@@ -94,24 +103,28 @@ export type BlankStackOverlayProps = OverlayProps<
94
103
  BlankStackNavigationProp<ParamListBase>
95
104
  >;
96
105
 
97
- type BlankStackScreenTransitionConfig = ScreenTransitionConfig & {
98
- /**
99
- * Whether to detach the previous screen from the view hierarchy to save memory.
100
- * Set it to `false` if you need the previous screen to be seen through the active screen.
101
- * Only applicable if `detachInactiveScreens` isn't set to `false`.
102
- */
103
- detachPreviousScreen?: boolean;
104
- };
105
-
106
- export type BlankStackNavigationOptions = BlankStackScreenTransitionConfig & {
106
+ export type BlankStackNavigationOptions = ScreenTransitionConfig & {
107
107
  /**
108
- * Whether inactive screens should be suspended from re-rendering. Defaults to `false`.
109
- * Defaults to `true` when `enableFreeze()` is run at the top of the application.
110
- * Requires `react-native-screens` version >=3.16.0.
108
+ * Controls how inactive blank-stack screens are retained after they are no
109
+ * longer active.
110
+ *
111
+ * For a stack shaped as A(inactive), B(inert), C(active):
112
+ *
113
+ * - `keep`: keeps A mounted, attached, visible, and non-interactive.
114
+ * - `freeze`: keeps A's last painted UI visible and asks the platform to
115
+ * stop or suspend inactive work where possible.
116
+ * - `detach`: removes A from native/view presentation after the screen that
117
+ * exposes it has safely painted.
118
+ * - `unmount`: removes A's React subtree after safe paint when the route has
119
+ * no nested navigation state.
111
120
  *
112
- * Only supported on iOS and Android.
121
+ * On web, or when native screens are disabled, `keep`, `freeze`, and
122
+ * `detach` currently have no meaningful retention effect. This will change
123
+ * once the implementation can use React 19.2's Activity component.
124
+ *
125
+ * @default "detach" on native, "unmount" on web
113
126
  */
114
- freezeOnBlur?: boolean;
127
+ inactiveBehavior?: InactiveBehavior;
115
128
  };
116
129
 
117
130
  export type BlankStackNavigatorProps = DefaultNavigatorOptions<
@@ -129,4 +142,6 @@ export type BlankStackDescriptor = Descriptor<
129
142
  BlankStackNavigationOptions,
130
143
  BlankStackNavigationProp<ParamListBase>,
131
144
  RouteProp<ParamListBase>
132
- >;
145
+ > & {
146
+ activity: StackSceneActivity;
147
+ };
@@ -5,7 +5,6 @@ import { ScreenComposer } from "../../shared/providers/screen/screen-composer";
5
5
  import { withStackCore } from "../../shared/providers/stack/core.provider";
6
6
  import { withManagedStack } from "../../shared/providers/stack/managed.provider";
7
7
  import { StackType } from "../../shared/types/stack.types";
8
- import { resolveSceneNeighbors } from "../../shared/utils/navigation/resolve-scene-neighbors";
9
8
  import type {
10
9
  ComponentStackDescriptor,
11
10
  ComponentStackNavigationHelpers,
@@ -15,27 +14,21 @@ import { ComponentScreen } from "./component-screen";
15
14
  export const StackView = withStackCore(
16
15
  { TRANSITIONS_ALWAYS_ON: true, STACK_TYPE: StackType.COMPONENT },
17
16
  withManagedStack<ComponentStackDescriptor, ComponentStackNavigationHelpers>(
18
- ({ scenes, shouldShowFloatOverlay, closingRouteMap }) => {
19
- const isRouteClosing = (routeKey: string) =>
20
- Boolean(closingRouteMap.current[routeKey]);
21
-
17
+ ({ scenes, shouldShowFloatOverlay }) => {
22
18
  return (
23
19
  <Fragment>
24
20
  {shouldShowFloatOverlay ? <Overlay.Float /> : null}
25
21
 
26
- {scenes.map((scene, sceneIndex) => {
22
+ {scenes.map((scene) => {
27
23
  const descriptor = scene.descriptor;
28
24
  const route = scene.route;
29
25
 
30
- const { previousDescriptor, nextDescriptor } =
31
- resolveSceneNeighbors(scenes, sceneIndex, isRouteClosing);
32
-
33
26
  return (
34
27
  <ComponentScreen key={route.key} routeKey={route.key}>
35
28
  <ScreenComposer
36
- previous={previousDescriptor}
29
+ previous={scene.previousDescriptor}
37
30
  current={descriptor}
38
- next={nextDescriptor}
31
+ next={scene.nextDescriptor}
39
32
  >
40
33
  <SceneView key={route.key} descriptor={descriptor} />
41
34
  </ScreenComposer>
@@ -99,7 +99,7 @@ function IsolatedComponentStackNavigator(props: ComponentStackNavigatorProps) {
99
99
  * @deprecated Component stack was originally introduced for independent,
100
100
  * embedded navigation flows. Blank stack now supports that use case directly
101
101
  * via navigator props such as `<BlankStack.Navigator independent />`, with
102
- * `enableNativeScreens` available when you need to switch between native
102
+ * `nativeScreens` available when you need to switch between native
103
103
  * screens and regular views. Prefer blank stack for new work; component stack
104
104
  * will be removed in a future release.
105
105
  */
@@ -62,6 +62,11 @@ function NativeStackNavigator({
62
62
  );
63
63
  }
64
64
 
65
+ /**
66
+ * @deprecated The bundled native-stack integration is deprecated and will be removed in a future major release.
67
+ * Use `@react-navigation/native-stack` or Expo Router's native stack with
68
+ * `withScreenTransitions` from `react-native-screen-transitions` instead.
69
+ */
65
70
  export function createNativeStackNavigator<
66
71
  const ParamList extends ParamListBase,
67
72
  const NavigatorID extends string | undefined = undefined,