react-native-screen-transitions 3.0.0-rc.2 → 3.0.0-rc.4

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 (241) hide show
  1. package/README.md +421 -371
  2. package/lib/commonjs/blank-stack/components/{Overlay.js → overlay.js} +7 -5
  3. package/lib/commonjs/blank-stack/components/overlay.js.map +1 -0
  4. package/lib/commonjs/blank-stack/components/{Screens.js → screens.js} +20 -17
  5. package/lib/commonjs/blank-stack/components/screens.js.map +1 -0
  6. package/lib/commonjs/blank-stack/components/stack-view.js +101 -0
  7. package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -0
  8. package/lib/commonjs/blank-stack/index.js +1 -8
  9. package/lib/commonjs/blank-stack/index.js.map +1 -1
  10. package/lib/commonjs/blank-stack/navigators/{createBlankStackNavigator.js → create-blank-stack-navigator.js} +3 -3
  11. package/lib/commonjs/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -0
  12. package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js +1 -11
  13. package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js.map +1 -1
  14. package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js +1 -12
  15. package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js.map +1 -1
  16. package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.js.map +1 -1
  17. package/lib/commonjs/blank-stack/utils/with-stack-navigation/index.js +49 -55
  18. package/lib/commonjs/blank-stack/utils/with-stack-navigation/index.js.map +1 -1
  19. package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_types.js → types.js} +1 -1
  20. package/lib/commonjs/blank-stack/utils/with-stack-navigation/types.js.map +1 -0
  21. package/lib/commonjs/native-stack/views/NativeStackView.native.js +110 -103
  22. package/lib/commonjs/native-stack/views/NativeStackView.native.js.map +1 -1
  23. package/lib/commonjs/shared/components/controllers/blank-stack-lifecycle.js +72 -0
  24. package/lib/commonjs/shared/components/controllers/blank-stack-lifecycle.js.map +1 -0
  25. package/lib/commonjs/shared/components/controllers/native-stack-lifecycle.js +79 -0
  26. package/lib/commonjs/shared/components/controllers/native-stack-lifecycle.js.map +1 -0
  27. package/lib/commonjs/shared/hooks/animation/use-screen-animation.js +49 -23
  28. package/lib/commonjs/shared/hooks/animation/use-screen-animation.js.map +1 -1
  29. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +11 -6
  30. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  31. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js +7 -7
  32. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  33. package/lib/commonjs/shared/providers/flags.provider.js +25 -0
  34. package/lib/commonjs/shared/providers/flags.provider.js.map +1 -0
  35. package/lib/commonjs/shared/providers/gestures.provider.js +32 -5
  36. package/lib/commonjs/shared/providers/gestures.provider.js.map +1 -1
  37. package/lib/commonjs/shared/providers/register-bounds.provider.js +72 -45
  38. package/lib/commonjs/shared/providers/register-bounds.provider.js.map +1 -1
  39. package/lib/commonjs/shared/providers/routes.provider.js +48 -0
  40. package/lib/commonjs/shared/providers/routes.provider.js.map +1 -0
  41. package/lib/commonjs/shared/providers/screen-transition.provider.js.map +1 -1
  42. package/lib/commonjs/shared/stores/bounds.store.js +91 -47
  43. package/lib/commonjs/shared/stores/bounds.store.js.map +1 -1
  44. package/lib/commonjs/shared/types/state.types.js +9 -0
  45. package/lib/commonjs/shared/types/state.types.js.map +1 -0
  46. package/lib/commonjs/shared/utils/animation/compute-stack-progress.js +20 -0
  47. package/lib/commonjs/shared/utils/animation/compute-stack-progress.js.map +1 -0
  48. package/lib/commonjs/shared/utils/animation/derivations.js +1 -1
  49. package/lib/commonjs/shared/utils/animation/start-screen-transition.js +11 -11
  50. package/lib/commonjs/shared/utils/animation/start-screen-transition.js.map +1 -1
  51. package/lib/commonjs/shared/utils/bounds/helpers/is-bounds-equal.js +1 -1
  52. package/lib/commonjs/shared/utils/bounds/helpers/is-bounds-equal.js.map +1 -1
  53. package/lib/commonjs/shared/utils/bounds/index.js +4 -5
  54. package/lib/commonjs/shared/utils/bounds/index.js.map +1 -1
  55. package/lib/commonjs/shared/utils/create-provider.js +20 -1
  56. package/lib/commonjs/shared/utils/create-provider.js.map +1 -1
  57. package/lib/commonjs/shared/utils/reset-stores-for-screen.js +2 -0
  58. package/lib/commonjs/shared/utils/reset-stores-for-screen.js.map +1 -1
  59. package/lib/module/blank-stack/components/{Overlay.js → overlay.js} +7 -5
  60. package/lib/module/blank-stack/components/overlay.js.map +1 -0
  61. package/lib/module/blank-stack/components/screens.js +61 -0
  62. package/lib/module/blank-stack/components/screens.js.map +1 -0
  63. package/lib/module/blank-stack/components/stack-view.js +96 -0
  64. package/lib/module/blank-stack/components/stack-view.js.map +1 -0
  65. package/lib/module/blank-stack/index.js +1 -2
  66. package/lib/module/blank-stack/index.js.map +1 -1
  67. package/lib/module/blank-stack/navigators/{createBlankStackNavigator.js → create-blank-stack-navigator.js} +2 -2
  68. package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -0
  69. package/lib/module/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js +1 -11
  70. package/lib/module/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js.map +1 -1
  71. package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js +1 -12
  72. package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js.map +1 -1
  73. package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.js.map +1 -1
  74. package/lib/module/blank-stack/utils/with-stack-navigation/index.js +48 -54
  75. package/lib/module/blank-stack/utils/with-stack-navigation/index.js.map +1 -1
  76. package/lib/module/blank-stack/utils/with-stack-navigation/types.js +4 -0
  77. package/lib/module/blank-stack/utils/with-stack-navigation/types.js.map +1 -0
  78. package/lib/module/native-stack/views/NativeStackView.native.js +109 -102
  79. package/lib/module/native-stack/views/NativeStackView.native.js.map +1 -1
  80. package/lib/module/shared/components/controllers/blank-stack-lifecycle.js +66 -0
  81. package/lib/module/shared/components/controllers/blank-stack-lifecycle.js.map +1 -0
  82. package/lib/module/shared/components/controllers/native-stack-lifecycle.js +73 -0
  83. package/lib/module/shared/components/controllers/native-stack-lifecycle.js.map +1 -0
  84. package/lib/module/shared/hooks/animation/use-screen-animation.js +49 -23
  85. package/lib/module/shared/hooks/animation/use-screen-animation.js.map +1 -1
  86. package/lib/module/shared/hooks/gestures/use-build-gestures.js +11 -6
  87. package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  88. package/lib/module/shared/hooks/gestures/use-scroll-registry.js +7 -7
  89. package/lib/module/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  90. package/lib/module/shared/providers/flags.provider.js +19 -0
  91. package/lib/module/shared/providers/flags.provider.js.map +1 -0
  92. package/lib/module/shared/providers/gestures.provider.js +31 -4
  93. package/lib/module/shared/providers/gestures.provider.js.map +1 -1
  94. package/lib/module/shared/providers/register-bounds.provider.js +72 -45
  95. package/lib/module/shared/providers/register-bounds.provider.js.map +1 -1
  96. package/lib/module/shared/providers/routes.provider.js +42 -0
  97. package/lib/module/shared/providers/routes.provider.js.map +1 -0
  98. package/lib/module/shared/providers/screen-transition.provider.js.map +1 -1
  99. package/lib/module/shared/stores/bounds.store.js +91 -47
  100. package/lib/module/shared/stores/bounds.store.js.map +1 -1
  101. package/lib/module/shared/types/state.types.js +5 -0
  102. package/lib/module/shared/types/state.types.js.map +1 -0
  103. package/lib/module/shared/utils/animation/compute-stack-progress.js +15 -0
  104. package/lib/module/shared/utils/animation/compute-stack-progress.js.map +1 -0
  105. package/lib/module/shared/utils/animation/derivations.js +1 -1
  106. package/lib/module/shared/utils/animation/start-screen-transition.js +11 -11
  107. package/lib/module/shared/utils/animation/start-screen-transition.js.map +1 -1
  108. package/lib/module/shared/utils/bounds/helpers/is-bounds-equal.js +1 -1
  109. package/lib/module/shared/utils/bounds/helpers/is-bounds-equal.js.map +1 -1
  110. package/lib/module/shared/utils/bounds/index.js +4 -5
  111. package/lib/module/shared/utils/bounds/index.js.map +1 -1
  112. package/lib/module/shared/utils/create-provider.js +20 -1
  113. package/lib/module/shared/utils/create-provider.js.map +1 -1
  114. package/lib/module/shared/utils/reset-stores-for-screen.js +2 -0
  115. package/lib/module/shared/utils/reset-stores-for-screen.js.map +1 -1
  116. package/lib/typescript/blank-stack/components/{Overlay.d.ts → overlay.d.ts} +1 -1
  117. package/lib/typescript/blank-stack/components/overlay.d.ts.map +1 -0
  118. package/lib/typescript/blank-stack/components/{Screens.d.ts → screens.d.ts} +1 -1
  119. package/lib/typescript/blank-stack/components/screens.d.ts.map +1 -0
  120. package/lib/typescript/blank-stack/components/stack-view.d.ts +3 -0
  121. package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -0
  122. package/lib/typescript/blank-stack/index.d.ts +1 -2
  123. package/lib/typescript/blank-stack/index.d.ts.map +1 -1
  124. package/lib/typescript/blank-stack/navigators/{createBlankStackNavigator.d.ts → create-blank-stack-navigator.d.ts} +1 -1
  125. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts.map +1 -0
  126. package/lib/typescript/blank-stack/types.d.ts +5 -39
  127. package/lib/typescript/blank-stack/types.d.ts.map +1 -1
  128. package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.d.ts.map +1 -1
  129. package/lib/typescript/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.d.ts.map +1 -1
  130. package/lib/typescript/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.d.ts +1 -1
  131. package/lib/typescript/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.d.ts.map +1 -1
  132. package/lib/typescript/blank-stack/utils/with-stack-navigation/index.d.ts +3 -5
  133. package/lib/typescript/blank-stack/utils/with-stack-navigation/index.d.ts.map +1 -1
  134. package/lib/typescript/blank-stack/utils/with-stack-navigation/{_types.d.ts → types.d.ts} +1 -1
  135. package/lib/typescript/blank-stack/utils/with-stack-navigation/types.d.ts.map +1 -0
  136. package/lib/typescript/native-stack/views/NativeStackView.native.d.ts.map +1 -1
  137. package/lib/typescript/shared/components/controllers/blank-stack-lifecycle.d.ts +8 -0
  138. package/lib/typescript/shared/components/controllers/blank-stack-lifecycle.d.ts.map +1 -0
  139. package/lib/typescript/shared/components/controllers/native-stack-lifecycle.d.ts +8 -0
  140. package/lib/typescript/shared/components/controllers/native-stack-lifecycle.d.ts.map +1 -0
  141. package/lib/typescript/shared/hooks/animation/use-screen-animation.d.ts.map +1 -1
  142. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts +2 -2
  143. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  144. package/lib/typescript/shared/index.d.ts +20 -20
  145. package/lib/typescript/shared/providers/flags.provider.d.ts +10 -0
  146. package/lib/typescript/shared/providers/flags.provider.d.ts.map +1 -0
  147. package/lib/typescript/shared/providers/gestures.provider.d.ts +8 -2
  148. package/lib/typescript/shared/providers/gestures.provider.d.ts.map +1 -1
  149. package/lib/typescript/shared/providers/register-bounds.provider.d.ts.map +1 -1
  150. package/lib/typescript/shared/providers/routes.provider.d.ts +19 -0
  151. package/lib/typescript/shared/providers/routes.provider.d.ts.map +1 -0
  152. package/lib/typescript/shared/providers/screen-transition.provider.d.ts +2 -2
  153. package/lib/typescript/shared/providers/screen-transition.provider.d.ts.map +1 -1
  154. package/lib/typescript/shared/stores/bounds.store.d.ts +23 -11
  155. package/lib/typescript/shared/stores/bounds.store.d.ts.map +1 -1
  156. package/lib/typescript/shared/types/animation.types.d.ts +12 -0
  157. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  158. package/lib/typescript/shared/types/bounds.types.d.ts +2 -2
  159. package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
  160. package/lib/typescript/shared/types/state.types.d.ts +3 -0
  161. package/lib/typescript/shared/types/state.types.d.ts.map +1 -0
  162. package/lib/typescript/shared/utils/animation/compute-stack-progress.d.ts +3 -0
  163. package/lib/typescript/shared/utils/animation/compute-stack-progress.d.ts.map +1 -0
  164. package/lib/typescript/shared/utils/animation/start-screen-transition.d.ts.map +1 -1
  165. package/lib/typescript/shared/utils/bounds/index.d.ts.map +1 -1
  166. package/lib/typescript/shared/utils/create-provider.d.ts +2 -2
  167. package/lib/typescript/shared/utils/create-provider.d.ts.map +1 -1
  168. package/lib/typescript/shared/utils/reset-stores-for-screen.d.ts.map +1 -1
  169. package/package.json +2 -1
  170. package/src/blank-stack/components/{Overlay.tsx → overlay.tsx} +4 -3
  171. package/src/blank-stack/components/{Screens.tsx → screens.tsx} +24 -20
  172. package/src/blank-stack/components/stack-view.tsx +115 -0
  173. package/src/blank-stack/index.ts +1 -2
  174. package/src/blank-stack/navigators/{createBlankStackNavigator.tsx → create-blank-stack-navigator.tsx} +1 -1
  175. package/src/blank-stack/types.ts +6 -31
  176. package/src/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.ts +1 -8
  177. package/src/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.tsx +1 -12
  178. package/src/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.tsx +1 -1
  179. package/src/blank-stack/utils/with-stack-navigation/index.tsx +42 -62
  180. package/src/native-stack/views/NativeStackView.native.tsx +121 -112
  181. package/src/shared/__tests__/bounds.store.test.ts +376 -167
  182. package/src/shared/__tests__/determine-dismissal.test.ts +2 -12
  183. package/src/shared/__tests__/geometry.test.ts +1 -1
  184. package/src/shared/__tests__/gesture.velocity.test.ts +2 -10
  185. package/src/shared/components/controllers/blank-stack-lifecycle.tsx +70 -0
  186. package/src/shared/components/controllers/native-stack-lifecycle.tsx +87 -0
  187. package/src/shared/hooks/animation/use-screen-animation.tsx +61 -30
  188. package/src/shared/hooks/gestures/use-build-gestures.tsx +16 -7
  189. package/src/shared/hooks/gestures/use-scroll-registry.tsx +7 -7
  190. package/src/shared/providers/flags.provider.tsx +21 -0
  191. package/src/shared/providers/gestures.provider.tsx +34 -5
  192. package/src/shared/providers/register-bounds.provider.tsx +86 -54
  193. package/src/shared/providers/routes.provider.tsx +54 -0
  194. package/src/shared/providers/screen-transition.provider.tsx +2 -2
  195. package/src/shared/stores/bounds.store.ts +90 -54
  196. package/src/shared/types/animation.types.ts +13 -0
  197. package/src/shared/types/bounds.types.ts +2 -2
  198. package/src/shared/types/state.types.ts +2 -0
  199. package/src/shared/utils/animation/compute-stack-progress.ts +16 -0
  200. package/src/shared/utils/animation/derivations.ts +1 -1
  201. package/src/shared/utils/animation/start-screen-transition.ts +13 -10
  202. package/src/shared/utils/bounds/helpers/is-bounds-equal.ts +1 -1
  203. package/src/shared/utils/bounds/index.ts +7 -10
  204. package/src/shared/utils/create-provider.tsx +35 -1
  205. package/src/shared/utils/reset-stores-for-screen.ts +2 -0
  206. package/lib/commonjs/blank-stack/components/Overlay.js.map +0 -1
  207. package/lib/commonjs/blank-stack/components/Screens.js.map +0 -1
  208. package/lib/commonjs/blank-stack/components/StackView.js +0 -93
  209. package/lib/commonjs/blank-stack/components/StackView.js.map +0 -1
  210. package/lib/commonjs/blank-stack/navigators/createBlankStackNavigator.js.map +0 -1
  211. package/lib/commonjs/blank-stack/utils/with-stack-navigation/_types.js.map +0 -1
  212. package/lib/commonjs/shared/components/controllers/screen-lifecycle.js +0 -142
  213. package/lib/commonjs/shared/components/controllers/screen-lifecycle.js.map +0 -1
  214. package/lib/commonjs/shared/hooks/gestures/use-parent-gesture-registry.js +0 -28
  215. package/lib/commonjs/shared/hooks/gestures/use-parent-gesture-registry.js.map +0 -1
  216. package/lib/module/blank-stack/components/Overlay.js.map +0 -1
  217. package/lib/module/blank-stack/components/Screens.js +0 -58
  218. package/lib/module/blank-stack/components/Screens.js.map +0 -1
  219. package/lib/module/blank-stack/components/StackView.js +0 -88
  220. package/lib/module/blank-stack/components/StackView.js.map +0 -1
  221. package/lib/module/blank-stack/navigators/createBlankStackNavigator.js.map +0 -1
  222. package/lib/module/blank-stack/utils/with-stack-navigation/_types.js +0 -4
  223. package/lib/module/blank-stack/utils/with-stack-navigation/_types.js.map +0 -1
  224. package/lib/module/shared/components/controllers/screen-lifecycle.js +0 -136
  225. package/lib/module/shared/components/controllers/screen-lifecycle.js.map +0 -1
  226. package/lib/module/shared/hooks/gestures/use-parent-gesture-registry.js +0 -23
  227. package/lib/module/shared/hooks/gestures/use-parent-gesture-registry.js.map +0 -1
  228. package/lib/typescript/blank-stack/components/Overlay.d.ts.map +0 -1
  229. package/lib/typescript/blank-stack/components/Screens.d.ts.map +0 -1
  230. package/lib/typescript/blank-stack/components/StackView.d.ts +0 -2
  231. package/lib/typescript/blank-stack/components/StackView.d.ts.map +0 -1
  232. package/lib/typescript/blank-stack/navigators/createBlankStackNavigator.d.ts.map +0 -1
  233. package/lib/typescript/blank-stack/utils/with-stack-navigation/_types.d.ts.map +0 -1
  234. package/lib/typescript/shared/components/controllers/screen-lifecycle.d.ts +0 -12
  235. package/lib/typescript/shared/components/controllers/screen-lifecycle.d.ts.map +0 -1
  236. package/lib/typescript/shared/hooks/gestures/use-parent-gesture-registry.d.ts +0 -6
  237. package/lib/typescript/shared/hooks/gestures/use-parent-gesture-registry.d.ts.map +0 -1
  238. package/src/blank-stack/components/StackView.tsx +0 -108
  239. package/src/shared/components/controllers/screen-lifecycle.tsx +0 -154
  240. package/src/shared/hooks/gestures/use-parent-gesture-registry.tsx +0 -18
  241. /package/src/blank-stack/utils/with-stack-navigation/{_types.ts → types.ts} +0 -0
@@ -1,18 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  import { makeMutable } from "react-native-reanimated";
4
- /**
5
- * Note on cleanup: We intentionally skip automatic cleanup of old links.
6
- * The linkStack grows by one entry per navigation, but `getActiveLink`
7
- * finds the correct link via screenKey matching regardless of stack size.
8
- * This is unlikely to cause performance issues in typical apps, but if
9
- * memory becomes a concern in apps with heavy navigation (hundreds of
10
- * transitions), we should consider implementing cleanup on screen unmount using
11
- * screenKey filtering.
12
- */
13
-
14
4
  const registry = makeMutable({});
15
- function registerOccurrence(tag, screenKey, bounds, styles = {}) {
5
+ function registerSnapshot(tag, screenKey, bounds, styles = {}, ancestorKeys) {
16
6
  "worklet";
17
7
 
18
8
  registry.modify(state => {
@@ -20,33 +10,32 @@ function registerOccurrence(tag, screenKey, bounds, styles = {}) {
20
10
 
21
11
  if (!state[tag]) {
22
12
  state[tag] = {
23
- occurrences: {},
13
+ snapshots: {},
24
14
  linkStack: []
25
15
  };
26
16
  }
27
- state[tag].occurrences[screenKey] = {
17
+ state[tag].snapshots[screenKey] = {
28
18
  bounds,
29
- styles
19
+ styles,
20
+ ancestorKeys
30
21
  };
31
22
  return state;
32
23
  });
33
24
  }
34
- function setLinkSource(tag, screenKey, bounds, styles = {}, parentScreenKey) {
25
+ function setLinkSource(tag, screenKey, bounds, styles = {}, ancestorKeys) {
35
26
  "worklet";
36
27
 
37
28
  registry.modify(state => {
38
29
  "worklet";
39
30
 
40
31
  if (!state[tag]) state[tag] = {
41
- occurrences: {},
32
+ snapshots: {},
42
33
  linkStack: []
43
34
  };
44
-
45
- // Push new link onto stack
46
35
  state[tag].linkStack.push({
47
36
  source: {
48
37
  screenKey,
49
- parentScreenKey,
38
+ ancestorKeys,
50
39
  bounds,
51
40
  styles
52
41
  },
@@ -55,7 +44,7 @@ function setLinkSource(tag, screenKey, bounds, styles = {}, parentScreenKey) {
55
44
  return state;
56
45
  });
57
46
  }
58
- function setLinkDestination(tag, screenKey, bounds, styles = {}, parentScreenKey) {
47
+ function setLinkDestination(tag, screenKey, bounds, styles = {}, ancestorKeys) {
59
48
  "worklet";
60
49
 
61
50
  registry.modify(state => {
@@ -69,7 +58,7 @@ function setLinkDestination(tag, screenKey, bounds, styles = {}, parentScreenKey
69
58
  if (stack[i].destination === null) {
70
59
  stack[i].destination = {
71
60
  screenKey,
72
- parentScreenKey,
61
+ ancestorKeys,
73
62
  bounds,
74
63
  styles
75
64
  };
@@ -79,20 +68,57 @@ function setLinkDestination(tag, screenKey, bounds, styles = {}, parentScreenKey
79
68
  return state;
80
69
  });
81
70
  }
82
- function getOccurrence(tag, key) {
71
+
72
+ /**
73
+ * Helper to check if a screen identifier matches a given key.
74
+ * Checks both direct screenKey match and ancestor chain.
75
+ */
76
+ function matchesScreenKey(identifier, key) {
83
77
  "worklet";
84
78
 
85
- return registry.value[tag]?.occurrences[key] ?? null;
79
+ if (!identifier) return false;
80
+
81
+ // Direct match
82
+ if (identifier.screenKey === key) return true;
83
+
84
+ // Check ancestor chain
85
+ return identifier.ancestorKeys?.includes(key) ?? false;
86
86
  }
87
87
 
88
- // Helper to check if a screen identifier matches a given key
89
- function matchesScreenKey(identifier, key) {
88
+ /**
89
+ * Get snapshot by tag and optional key.
90
+ * If key is provided, supports ancestor matching - if the key matches any ancestor
91
+ * of a stored snapshot, that snapshot will be returned.
92
+ * If key is omitted, returns the most recently registered snapshot.
93
+ */
94
+ function getSnapshot(tag, key) {
90
95
  "worklet";
91
96
 
92
- if (!identifier) return false;
93
- return identifier.screenKey === key || identifier.parentScreenKey === key;
97
+ const tagState = registry.value[tag];
98
+ if (!tagState) return null;
99
+
100
+ // Direct match in occurrences
101
+ if (tagState.snapshots[key]) {
102
+ const snap = tagState.snapshots[key];
103
+ return {
104
+ bounds: snap.bounds,
105
+ styles: snap.styles
106
+ };
107
+ }
108
+
109
+ // Ancestor match
110
+ for (const screenKey in tagState.snapshots) {
111
+ const snap = tagState.snapshots[screenKey];
112
+ if (snap.ancestorKeys?.includes(key)) {
113
+ return {
114
+ bounds: snap.bounds,
115
+ styles: snap.styles
116
+ };
117
+ }
118
+ }
119
+ return null;
94
120
  }
95
- function getActiveLink(tag, screenKey, isClosing) {
121
+ function getActiveLink(tag, screenKey) {
96
122
  "worklet";
97
123
 
98
124
  const stack = registry.value[tag]?.linkStack;
@@ -102,36 +128,54 @@ function getActiveLink(tag, screenKey, isClosing) {
102
128
 
103
129
  // If screenKey provided, find link involving that screen
104
130
  if (screenKey) {
105
- // When closing (backward nav), we want the link where this screen is the DESTINATION
106
- // When opening (forward nav), we want the link where this screen is the DESTINATION too
107
- // The source is always the "from" screen, destination is the "to" screen
108
-
109
- if (isClosing) {
110
- // Backward: find link where I am the destination (I'm going back to source)
111
- for (let i = stack.length - 1; i >= 0; i--) {
112
- const link = stack[i];
113
- if (matchesScreenKey(link.destination, screenKey)) {
114
- return link;
115
- }
116
- }
117
- }
118
-
119
- // Forward or fallback: find any link involving this screen
120
131
  for (let i = stack.length - 1; i >= 0; i--) {
121
132
  const link = stack[i];
122
- if (matchesScreenKey(link.source, screenKey) || matchesScreenKey(link.destination, screenKey)) {
133
+ if (!link.destination) continue;
134
+ const isSource = matchesScreenKey(link.source, screenKey);
135
+ const isDestination = matchesScreenKey(link.destination, screenKey);
136
+ if (isSource || isDestination) {
137
+ // If I match the source, I'm closing (going back to where I came from)
123
138
  return link;
124
139
  }
125
140
  }
126
141
  return null;
127
142
  }
128
- return stack[stack.length - 1] ?? null;
143
+ const lastLink = stack[stack.length - 1];
144
+ return lastLink ? lastLink : null;
145
+ }
146
+
147
+ /**
148
+ * Clear all snapshots and links for a screen across all tags.
149
+ * Called when a screen unmounts.
150
+ */
151
+ function clear(screenKey) {
152
+ "worklet";
153
+
154
+ registry.modify(state => {
155
+ "worklet";
156
+
157
+ for (const tag in state) {
158
+ // Remove snapshot
159
+ if (state[tag].snapshots[screenKey]) {
160
+ delete state[tag].snapshots[screenKey];
161
+ }
162
+
163
+ // Remove links involving this screen
164
+ state[tag].linkStack = state[tag].linkStack.filter(link => {
165
+ const sourceMatches = matchesScreenKey(link.source, screenKey);
166
+ const destMatches = matchesScreenKey(link.destination, screenKey);
167
+ return !sourceMatches && !destMatches;
168
+ });
169
+ }
170
+ return state;
171
+ });
129
172
  }
130
173
  export const BoundStore = {
131
- registerOccurrence,
174
+ registerSnapshot,
132
175
  setLinkSource,
133
176
  setLinkDestination,
134
177
  getActiveLink,
135
- getOccurrence
178
+ getSnapshot,
179
+ clear
136
180
  };
137
181
  //# sourceMappingURL=bounds.store.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["makeMutable","registry","registerOccurrence","tag","screenKey","bounds","styles","modify","state","occurrences","linkStack","setLinkSource","parentScreenKey","push","source","destination","setLinkDestination","stack","length","i","getOccurrence","key","value","matchesScreenKey","identifier","getActiveLink","isClosing","link","BoundStore"],"sourceRoot":"../../../../src","sources":["shared/stores/bounds.store.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["makeMutable","registry","registerSnapshot","tag","screenKey","bounds","styles","ancestorKeys","modify","state","snapshots","linkStack","setLinkSource","push","source","destination","setLinkDestination","stack","length","i","matchesScreenKey","identifier","key","includes","getSnapshot","tagState","value","snap","getActiveLink","link","isSource","isDestination","lastLink","clear","filter","sourceMatches","destMatches","BoundStore"],"sourceRoot":"../../../../src","sources":["shared/stores/bounds.store.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export const TRUE = 1;
4
+ export const FALSE = 0;
5
+ //# sourceMappingURL=state.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TRUE","FALSE"],"sourceRoot":"../../../../src","sources":["shared/types/state.types.ts"],"mappings":";;AAAA,OAAO,MAAMA,IAAI,GAAG,CAAC;AACrB,OAAO,MAAMC,KAAK,GAAG,CAAC","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ export const computeStackProgress = (stackAnimationValues, fallback = 0) => {
4
+ "worklet";
5
+
6
+ let computedStackProgress;
7
+ if (stackAnimationValues.length > 0) {
8
+ computedStackProgress = 0;
9
+ for (let i = 0; i < stackAnimationValues.length; i += 1) {
10
+ computedStackProgress += stackAnimationValues[i].progress.value;
11
+ }
12
+ }
13
+ return computedStackProgress ?? fallback;
14
+ };
15
+ //# sourceMappingURL=compute-stack-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["computeStackProgress","stackAnimationValues","fallback","computedStackProgress","length","i","progress","value"],"sourceRoot":"../../../../../src","sources":["shared/utils/animation/compute-stack-progress.ts"],"mappings":";;AAEA,OAAO,MAAMA,oBAAoB,GAAGA,CACnCC,oBAAyC,EACzCC,QAAgB,GAAG,CAAC,KAChB;EACJ,SAAS;;EACT,IAAIC,qBAAyC;EAC7C,IAAIF,oBAAoB,CAACG,MAAM,GAAG,CAAC,EAAE;IACpCD,qBAAqB,GAAG,CAAC;IACzB,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,oBAAoB,CAACG,MAAM,EAAEC,CAAC,IAAI,CAAC,EAAE;MACxDF,qBAAqB,IAAIF,oBAAoB,CAACI,CAAC,CAAC,CAACC,QAAQ,CAACC,KAAK;IAChE;EACD;EACA,OAAOJ,qBAAqB,IAAID,QAAQ;AACzC,CAAC","ignoreList":[]}
@@ -9,7 +9,7 @@ export const derivations = ({
9
9
  }) => {
10
10
  "worklet";
11
11
 
12
- // The combined progress
12
+ // The combined progress (current + next, 0-2 range)
13
13
  const progress = current.progress + (next?.progress ?? 0);
14
14
 
15
15
  // Whether the current screen is focused
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { runOnJS } from "react-native-reanimated";
4
+ import { FALSE, TRUE } from "../../types/state.types";
4
5
  import { animate } from "./animate";
5
6
  export const startScreenTransition = ({
6
7
  target,
@@ -24,26 +25,25 @@ export const startScreenTransition = ({
24
25
  closing
25
26
  } = animations;
26
27
  if (target === "close") {
27
- closing.value = 1;
28
+ closing.set(TRUE);
28
29
  }
29
30
  if (!config) {
30
- animating.value = 0;
31
- progress.value = value;
31
+ animating.set(FALSE);
32
+ progress.set(value);
32
33
  if (onAnimationFinish) {
33
34
  runOnJS(onAnimationFinish)(true);
34
35
  }
35
36
  return;
36
37
  }
37
- animating.value = 1;
38
- progress.value = animate(value, effectiveConfig, finished => {
38
+ animating.set(TRUE); //<-- Do not move this into the callback
39
+ progress.set(animate(value, effectiveConfig, finished => {
39
40
  "worklet";
40
41
 
41
- if (finished) {
42
- if (onAnimationFinish) {
43
- runOnJS(onAnimationFinish)(finished);
44
- }
45
- animating.value = 0;
42
+ if (!finished) return;
43
+ if (onAnimationFinish) {
44
+ runOnJS(onAnimationFinish)(finished);
46
45
  }
47
- });
46
+ animating.set(FALSE);
47
+ }));
48
48
  };
49
49
  //# sourceMappingURL=start-screen-transition.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["runOnJS","animate","startScreenTransition","target","spec","onAnimationFinish","animations","initialVelocity","value","config","open","close","isSpringConfig","effectiveConfig","velocity","progress","animating","closing","finished"],"sourceRoot":"../../../../../src","sources":["shared/utils/animation/start-screen-transition.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,yBAAyB;AAGjD,SAASC,OAAO,QAAQ,WAAW;AAWnC,OAAO,MAAMC,qBAAqB,GAAGA,CAAC;EACrCC,MAAM;EACNC,IAAI;EACJC,iBAAiB;EACjBC,UAAU;EACVC;AAC2B,CAAC,KAAK;EACjC,SAAS;;EACT,MAAMC,KAAK,GAAGL,MAAM,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;EACvC,MAAMM,MAAM,GAAGN,MAAM,KAAK,MAAM,GAAGC,IAAI,EAAEM,IAAI,GAAGN,IAAI,EAAEO,KAAK;EAE3D,MAAMC,cAAc,GACnB,CAAC,CAACH,MAAM,IAAI,EAAE,UAAU,IAAIA,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAIA,MAAM,CAAC;EAE7D,MAAMI,eAAe,GACpBD,cAAc,IAAI,OAAOL,eAAe,KAAK,QAAQ,GAClD;IAAE,GAAGE,MAAM;IAAEK,QAAQ,EAAEP;EAAgB,CAAC,GACxCE,MAAM;EAEV,MAAM;IAAEM,QAAQ;IAAEC,SAAS;IAAEC;EAAQ,CAAC,GAAGX,UAAU;EAEnD,IAAIH,MAAM,KAAK,OAAO,EAAE;IACvBc,OAAO,CAACT,KAAK,GAAG,CAAC;EAClB;EAEA,IAAI,CAACC,MAAM,EAAE;IACZO,SAAS,CAACR,KAAK,GAAG,CAAC;IACnBO,QAAQ,CAACP,KAAK,GAAGA,KAAK;IAEtB,IAAIH,iBAAiB,EAAE;MACtBL,OAAO,CAACK,iBAAiB,CAAC,CAAC,IAAI,CAAC;IACjC;IACA;EACD;EAEAW,SAAS,CAACR,KAAK,GAAG,CAAC;EAEnBO,QAAQ,CAACP,KAAK,GAAGP,OAAO,CAACO,KAAK,EAAEK,eAAe,EAAGK,QAAQ,IAAK;IAC9D,SAAS;;IACT,IAAIA,QAAQ,EAAE;MACb,IAAIb,iBAAiB,EAAE;QACtBL,OAAO,CAACK,iBAAiB,CAAC,CAACa,QAAQ,CAAC;MACrC;MACAF,SAAS,CAACR,KAAK,GAAG,CAAC;IACpB;EACD,CAAC,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["runOnJS","FALSE","TRUE","animate","startScreenTransition","target","spec","onAnimationFinish","animations","initialVelocity","value","config","open","close","isSpringConfig","effectiveConfig","velocity","progress","animating","closing","set","finished"],"sourceRoot":"../../../../../src","sources":["shared/utils/animation/start-screen-transition.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,yBAAyB;AAGjD,SAASC,KAAK,EAAEC,IAAI,QAAQ,yBAAyB;AACrD,SAASC,OAAO,QAAQ,WAAW;AAWnC,OAAO,MAAMC,qBAAqB,GAAGA,CAAC;EACrCC,MAAM;EACNC,IAAI;EACJC,iBAAiB;EACjBC,UAAU;EACVC;AAC2B,CAAC,KAAK;EACjC,SAAS;;EACT,MAAMC,KAAK,GAAGL,MAAM,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;EACvC,MAAMM,MAAM,GAAGN,MAAM,KAAK,MAAM,GAAGC,IAAI,EAAEM,IAAI,GAAGN,IAAI,EAAEO,KAAK;EAE3D,MAAMC,cAAc,GACnB,CAAC,CAACH,MAAM,IAAI,EAAE,UAAU,IAAIA,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAIA,MAAM,CAAC;EAE7D,MAAMI,eAAe,GACpBD,cAAc,IAAI,OAAOL,eAAe,KAAK,QAAQ,GAClD;IAAE,GAAGE,MAAM;IAAEK,QAAQ,EAAEP;EAAgB,CAAC,GACxCE,MAAM;EAEV,MAAM;IAAEM,QAAQ;IAAEC,SAAS;IAAEC;EAAQ,CAAC,GAAGX,UAAU;EAEnD,IAAIH,MAAM,KAAK,OAAO,EAAE;IACvBc,OAAO,CAACC,GAAG,CAAClB,IAAI,CAAC;EAClB;EAEA,IAAI,CAACS,MAAM,EAAE;IACZO,SAAS,CAACE,GAAG,CAACnB,KAAK,CAAC;IACpBgB,QAAQ,CAACG,GAAG,CAACV,KAAK,CAAC;IAEnB,IAAIH,iBAAiB,EAAE;MACtBP,OAAO,CAACO,iBAAiB,CAAC,CAAC,IAAI,CAAC;IACjC;IACA;EACD;EAEAW,SAAS,CAACE,GAAG,CAAClB,IAAI,CAAC,CAAC,CAAC;EACrBe,QAAQ,CAACG,GAAG,CACXjB,OAAO,CAACO,KAAK,EAAEK,eAAe,EAAGM,QAAQ,IAAK;IAC7C,SAAS;;IACT,IAAI,CAACA,QAAQ,EAAE;IAEf,IAAId,iBAAiB,EAAE;MACtBP,OAAO,CAACO,iBAAiB,CAAC,CAACc,QAAQ,CAAC;IACrC;IAEAH,SAAS,CAACE,GAAG,CAACnB,KAAK,CAAC;EACrB,CAAC,CACF,CAAC;AACF,CAAC","ignoreList":[]}
@@ -8,7 +8,7 @@ export const isBoundsEqual = ({
8
8
  }) => {
9
9
  "worklet";
10
10
 
11
- const existing = BoundStore.getOccurrence(sharedBoundTag, key)?.bounds;
11
+ const existing = BoundStore.getSnapshot(sharedBoundTag, key)?.bounds;
12
12
  return !!existing && existing.width === measured.width && existing.height === measured.height && existing.pageX === measured.pageX && existing.pageY === measured.pageY && existing.x === measured.x && existing.y === measured.y;
13
13
  };
14
14
  //# sourceMappingURL=is-bounds-equal.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BoundStore","isBoundsEqual","measured","key","sharedBoundTag","existing","getOccurrence","bounds","width","height","pageX","pageY","x","y"],"sourceRoot":"../../../../../../src","sources":["shared/utils/bounds/helpers/is-bounds-equal.ts"],"mappings":";;AACA,SAASA,UAAU,QAAQ,8BAA8B;AAEzD,OAAO,MAAMC,aAAa,GAAGA,CAAC;EAC7BC,QAAQ;EACRC,GAAG;EACHC;AAKD,CAAC,KAAK;EACL,SAAS;;EACT,MAAMC,QAAQ,GAAGL,UAAU,CAACM,aAAa,CAACF,cAAc,EAAED,GAAG,CAAC,EAAEI,MAAM;EACtE,OACC,CAAC,CAACF,QAAQ,IACVA,QAAQ,CAACG,KAAK,KAAKN,QAAQ,CAACM,KAAK,IACjCH,QAAQ,CAACI,MAAM,KAAKP,QAAQ,CAACO,MAAM,IACnCJ,QAAQ,CAACK,KAAK,KAAKR,QAAQ,CAACQ,KAAK,IACjCL,QAAQ,CAACM,KAAK,KAAKT,QAAQ,CAACS,KAAK,IACjCN,QAAQ,CAACO,CAAC,KAAKV,QAAQ,CAACU,CAAC,IACzBP,QAAQ,CAACQ,CAAC,KAAKX,QAAQ,CAACW,CAAC;AAE3B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["BoundStore","isBoundsEqual","measured","key","sharedBoundTag","existing","getSnapshot","bounds","width","height","pageX","pageY","x","y"],"sourceRoot":"../../../../../../src","sources":["shared/utils/bounds/helpers/is-bounds-equal.ts"],"mappings":";;AACA,SAASA,UAAU,QAAQ,8BAA8B;AAEzD,OAAO,MAAMC,aAAa,GAAGA,CAAC;EAC7BC,QAAQ;EACRC,GAAG;EACHC;AAKD,CAAC,KAAK;EACL,SAAS;;EACT,MAAMC,QAAQ,GAAGL,UAAU,CAACM,WAAW,CAACF,cAAc,EAAED,GAAG,CAAC,EAAEI,MAAM;EACpE,OACC,CAAC,CAACF,QAAQ,IACVA,QAAQ,CAACG,KAAK,KAAKN,QAAQ,CAACM,KAAK,IACjCH,QAAQ,CAACI,MAAM,KAAKP,QAAQ,CAACO,MAAM,IACnCJ,QAAQ,CAACK,KAAK,KAAKR,QAAQ,CAACQ,KAAK,IACjCL,QAAQ,CAACM,KAAK,KAAKT,QAAQ,CAACS,KAAK,IACjCN,QAAQ,CAACO,CAAC,KAAKV,QAAQ,CAACU,CAAC,IACzBP,QAAQ,CAACQ,CAAC,KAAKX,QAAQ,CAACW,CAAC;AAE3B,CAAC","ignoreList":[]}
@@ -9,11 +9,10 @@ const resolveBounds = props => {
9
9
 
10
10
  const entering = !props.next;
11
11
  const fullscreen = FULLSCREEN_DIMENSIONS(props.dimensions);
12
- const isClosing = props.current?.closing === 1;
13
12
  const isFullscreenTarget = props.computeOptions.target === "fullscreen";
14
13
 
15
14
  // Try exact match first (strict matching for nested stacks)
16
- let link = BoundStore.getActiveLink(props.id, props.current?.route.key, isClosing);
15
+ let link = BoundStore.getActiveLink(props.id, props.current?.route.key);
17
16
 
18
17
  // For fullscreen target, fall back to most recent link for this tag
19
18
  // (destination screen might not have a matching element)
@@ -145,13 +144,13 @@ export const createBounds = props => {
145
144
  dimensions: props.layouts.screen
146
145
  }, params);
147
146
  };
148
- const getOccurrence = (tag, key) => {
147
+ const getSnapshot = (tag, key) => {
149
148
  "worklet";
150
149
 
151
- return BoundStore.getOccurrence(tag, key);
150
+ return BoundStore.getSnapshot(tag, key);
152
151
  };
153
152
  return Object.assign(boundsFunction, {
154
- getOccurrence
153
+ getSnapshot
155
154
  });
156
155
  };
157
156
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["EMPTY_BOUND_HELPER_RESULT","EMPTY_BOUND_HELPER_RESULT_RAW","ENTER_RANGE","EXIT_RANGE","FULLSCREEN_DIMENSIONS","BoundStore","computeContentTransformGeometry","computeRelativeGeometry","composeContentStyle","composeSizeAbsolute","composeSizeRelative","composeTransformAbsolute","composeTransformRelative","resolveBounds","props","entering","next","fullscreen","dimensions","isClosing","current","closing","isFullscreenTarget","computeOptions","target","link","getActiveLink","id","route","key","source","start","end","destination","bounds","customTarget","computeBoundStyles","previous","progress","raw","ranges","method","geometry","anchor","scaleMode","common","isSize","isAbs","space","createBounds","boundsFunction","params","layouts","screen","getOccurrence","tag","Object","assign"],"sourceRoot":"../../../../../src","sources":["shared/utils/bounds/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["EMPTY_BOUND_HELPER_RESULT","EMPTY_BOUND_HELPER_RESULT_RAW","ENTER_RANGE","EXIT_RANGE","FULLSCREEN_DIMENSIONS","BoundStore","computeContentTransformGeometry","computeRelativeGeometry","composeContentStyle","composeSizeAbsolute","composeSizeRelative","composeTransformAbsolute","composeTransformRelative","resolveBounds","props","entering","next","fullscreen","dimensions","isFullscreenTarget","computeOptions","target","link","getActiveLink","id","current","route","key","source","start","end","destination","bounds","customTarget","computeBoundStyles","previous","progress","raw","ranges","method","geometry","anchor","scaleMode","common","isSize","isAbs","space","createBounds","boundsFunction","params","layouts","screen","getSnapshot","tag","Object","assign"],"sourceRoot":"../../../../../src","sources":["shared/utils/bounds/index.ts"],"mappings":"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","ignoreList":[]}
@@ -36,10 +36,29 @@ export default function createProvider(name, options) {
36
36
  }
37
37
  return context;
38
38
  };
39
+ const withProvider = Component => {
40
+ return function WithProviderWrapper(props) {
41
+ const {
42
+ enabled = true,
43
+ value
44
+ } = factory(props);
45
+ if (!value) {
46
+ throw new Error(`${name}Context value must be provided. You likely forgot to return it from the factory function.`);
47
+ }
48
+ const memoValue = useMemo(() => enabled ? value : null, [enabled, value]);
49
+ return /*#__PURE__*/_jsx(Context.Provider, {
50
+ value: memoValue,
51
+ children: /*#__PURE__*/_jsx(Component, {
52
+ ...value
53
+ })
54
+ });
55
+ };
56
+ };
39
57
  return {
40
58
  [`${name}Context`]: Context,
41
59
  [`${name}Provider`]: Provider,
42
- [`use${name}Context`]: useEnhancedContext
60
+ [`use${name}Context`]: useEnhancedContext,
61
+ [`with${name}Provider`]: withProvider
43
62
  };
44
63
  };
45
64
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","useMemo","jsx","_jsx","createProvider","name","options","factory","guarded","Context","displayName","Provider","props","children","enabled","value","Error","memoValue","useEnhancedContext","context"],"sourceRoot":"../../../../src","sources":["shared/utils/create-provider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,SAASA,aAAa,EAAkBC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE3E,eAAe,SAASC,cAAcA,CAGpCC,IAAkB,EAAEC,OAA+B,EAAE;EACtD,OACCC,OAIC,IACG;IACJ,MAAM;MAAEC,OAAO,GAAG;IAAK,CAAC,GAAGF,OAAO,IAAI,CAAC,CAAC;IAExC,MAAMG,OAAO,gBAAGV,aAAa,CAAsB,IAAI,CAAC;IACxDU,OAAO,CAACC,WAAW,GAAGL,IAAI;IAE1B,MAAMM,QAAiC,GAAIC,KAAK,IAAK;MACpD,MAAM;QACLC,QAAQ,GAAID,KAAK,CAA8BC,QAAQ;QACvDC,OAAO,GAAG,IAAI;QACdC;MACD,CAAC,GAAGR,OAAO,CAACK,KAAK,CAAC;MAElB,IAAI,CAACG,KAAK,EAAE;QACX,MAAM,IAAIC,KAAK,CACd,GAAGX,IAAI,2FACR,CAAC;MACF;MAEA,MAAMY,SAAS,GAAGhB,OAAO,CACxB,MAAOa,OAAO,GAAGC,KAAK,GAAG,IAAK,EAC9B,CAACD,OAAO,EAAEC,KAAK,CAChB,CAAC;MAED,oBAAOZ,IAAA,CAACM,OAAO,CAACE,QAAQ;QAACI,KAAK,EAAEE,SAAU;QAAAJ,QAAA,EAAEA;MAAQ,CAAmB,CAAC;IACzE,CAAC;IAED,MAAMK,kBAAkB,GAAGA,CAAA,KAA2B;MACrD,MAAMC,OAAO,GAAGnB,UAAU,CAACS,OAAO,CAAC;MAEnC,IAAID,OAAO,IAAIW,OAAO,KAAK,IAAI,EAAE;QAChC,MAAM,IAAIH,KAAK,CACd,GAAGX,IAAI,kCAAkCA,IAAI,UAC9C,CAAC;MACF;MAEA,OAAOc,OAAO;IACf,CAAC;IAED,OAAO;MACN,CAAC,GAAGd,IAAI,SAAS,GAAGI,OAAO;MAC3B,CAAC,GAAGJ,IAAI,UAAU,GAAGM,QAAQ;MAC7B,CAAC,MAAMN,IAAI,SAAS,GAAGa;IACxB,CAAC;EASF,CAAC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useMemo","jsx","_jsx","createProvider","name","options","factory","guarded","Context","displayName","Provider","props","children","enabled","value","Error","memoValue","useEnhancedContext","context","withProvider","Component","WithProviderWrapper"],"sourceRoot":"../../../../src","sources":["shared/utils/create-provider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,SAECA,aAAa,EAEbC,UAAU,EACVC,OAAO,QACD,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEf,eAAe,SAASC,cAAcA,CAGpCC,IAAkB,EAAEC,OAA+B,EAAE;EACtD,OACCC,OAIC,IACG;IACJ,MAAM;MAAEC,OAAO,GAAG;IAAK,CAAC,GAAGF,OAAO,IAAI,CAAC,CAAC;IAExC,MAAMG,OAAO,gBAAGV,aAAa,CAAsB,IAAI,CAAC;IACxDU,OAAO,CAACC,WAAW,GAAGL,IAAI;IAE1B,MAAMM,QAAiC,GAAIC,KAAK,IAAK;MACpD,MAAM;QACLC,QAAQ,GAAID,KAAK,CAA8BC,QAAQ;QACvDC,OAAO,GAAG,IAAI;QACdC;MACD,CAAC,GAAGR,OAAO,CAACK,KAAK,CAAC;MAElB,IAAI,CAACG,KAAK,EAAE;QACX,MAAM,IAAIC,KAAK,CACd,GAAGX,IAAI,2FACR,CAAC;MACF;MAEA,MAAMY,SAAS,GAAGhB,OAAO,CACxB,MAAOa,OAAO,GAAGC,KAAK,GAAG,IAAK,EAC9B,CAACD,OAAO,EAAEC,KAAK,CAChB,CAAC;MAED,oBAAOZ,IAAA,CAACM,OAAO,CAACE,QAAQ;QAACI,KAAK,EAAEE,SAAU;QAAAJ,QAAA,EAAEA;MAAQ,CAAmB,CAAC;IACzE,CAAC;IAED,MAAMK,kBAAkB,GAAGA,CAAA,KAA2B;MACrD,MAAMC,OAAO,GAAGnB,UAAU,CAACS,OAAO,CAAC;MAEnC,IAAID,OAAO,IAAIW,OAAO,KAAK,IAAI,EAAE;QAChC,MAAM,IAAIH,KAAK,CACd,GAAGX,IAAI,kCAAkCA,IAAI,UAC9C,CAAC;MACF;MAEA,OAAOc,OAAO;IACf,CAAC;IAED,MAAMC,YAAY,GAAIC,SAAsC,IAAK;MAChE,OAAO,SAASC,mBAAmBA,CAACV,KAAoB,EAAE;QACzD,MAAM;UAAEE,OAAO,GAAG,IAAI;UAAEC;QAAM,CAAC,GAAGR,OAAO,CAACK,KAAK,CAAC;QAEhD,IAAI,CAACG,KAAK,EAAE;UACX,MAAM,IAAIC,KAAK,CACd,GAAGX,IAAI,2FACR,CAAC;QACF;QAEA,MAAMY,SAAS,GAAGhB,OAAO,CACxB,MAAOa,OAAO,GAAGC,KAAK,GAAG,IAAK,EAC9B,CAACD,OAAO,EAAEC,KAAK,CAChB,CAAC;QAED,oBACCZ,IAAA,CAACM,OAAO,CAACE,QAAQ;UAACI,KAAK,EAAEE,SAAU;UAAAJ,QAAA,eAClCV,IAAA,CAACkB,SAAS;YAAA,GAAKN;UAAK,CAAG;QAAC,CACP,CAAC;MAErB,CAAC;IACF,CAAC;IAED,OAAO;MACN,CAAC,GAAGV,IAAI,SAAS,GAAGI,OAAO;MAC3B,CAAC,GAAGJ,IAAI,UAAU,GAAGM,QAAQ;MAC7B,CAAC,MAAMN,IAAI,SAAS,GAAGa,kBAAkB;MACzC,CAAC,OAAOb,IAAI,UAAU,GAAGe;IAC1B,CAAC;EAaF,CAAC;AACF","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { AnimationStore } from "../stores/animation.store";
4
+ import { BoundStore } from "../stores/bounds.store";
4
5
  import { GestureStore } from "../stores/gesture.store";
5
6
 
6
7
  /**
@@ -9,5 +10,6 @@ import { GestureStore } from "../stores/gesture.store";
9
10
  export const resetStoresForScreen = current => {
10
11
  AnimationStore.clear(current.route.key);
11
12
  GestureStore.clear(current.route.key);
13
+ BoundStore.clear(current.route.key);
12
14
  };
13
15
  //# sourceMappingURL=reset-stores-for-screen.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AnimationStore","GestureStore","resetStoresForScreen","current","clear","route","key"],"sourceRoot":"../../../../src","sources":["shared/utils/reset-stores-for-screen.ts"],"mappings":";;AACA,SAASA,cAAc,QAAQ,2BAA2B;AAC1D,SAASC,YAAY,QAAQ,yBAAyB;;AAEtD;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAIC,OAA6B,IAAK;EACtEH,cAAc,CAACI,KAAK,CAACD,OAAO,CAACE,KAAK,CAACC,GAAG,CAAC;EACvCL,YAAY,CAACG,KAAK,CAACD,OAAO,CAACE,KAAK,CAACC,GAAG,CAAC;AACtC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["AnimationStore","BoundStore","GestureStore","resetStoresForScreen","current","clear","route","key"],"sourceRoot":"../../../../src","sources":["shared/utils/reset-stores-for-screen.ts"],"mappings":";;AACA,SAASA,cAAc,QAAQ,2BAA2B;AAC1D,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,YAAY,QAAQ,yBAAyB;;AAEtD;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAIC,OAA6B,IAAK;EACtEJ,cAAc,CAACK,KAAK,CAACD,OAAO,CAACE,KAAK,CAACC,GAAG,CAAC;EACvCL,YAAY,CAACG,KAAK,CAACD,OAAO,CAACE,KAAK,CAACC,GAAG,CAAC;EACrCN,UAAU,CAACI,KAAK,CAACD,OAAO,CAACE,KAAK,CAACC,GAAG,CAAC;AACpC,CAAC","ignoreList":[]}
@@ -2,4 +2,4 @@ export declare const Overlay: {
2
2
  Float: () => import("react/jsx-runtime").JSX.Element | null;
3
3
  Screen: () => import("react/jsx-runtime").JSX.Element | null;
4
4
  };
5
- //# sourceMappingURL=Overlay.d.ts.map
5
+ //# sourceMappingURL=overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/overlay.tsx"],"names":[],"mappings":"AAuJA,eAAO,MAAM,OAAO;;;CAGnB,CAAC"}
@@ -11,4 +11,4 @@ interface ScreenProps {
11
11
  }
12
12
  export declare const Screen: ({ routeKey, index, routesLength, isPreloaded, activeScreensLimit, children, freezeOnBlur, shouldFreeze, }: ScreenProps) => import("react/jsx-runtime").JSX.Element;
13
13
  export {};
14
- //# sourceMappingURL=Screens.d.ts.map
14
+ //# sourceMappingURL=screens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/screens.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAWpC,UAAU,WAAW;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC3B;AAWD,eAAO,MAAM,MAAM,GAAI,2GASpB,WAAW,4CA2Db,CAAC"}
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ export declare const StackView: React.FC<import("../utils/with-stack-navigation/types").StackNavigationContextProps>;
3
+ //# sourceMappingURL=stack-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-view.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/stack-view.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkC/B,eAAO,MAAM,SAAS,sFAuErB,CAAC"}
@@ -1,4 +1,3 @@
1
- export { useOverlayAnimation } from "../blank-stack/hooks/use-overlay-animation";
2
- export { createBlankStackNavigator } from "../blank-stack/navigators/createBlankStackNavigator";
1
+ export { createBlankStackNavigator } from "../blank-stack/navigators/create-blank-stack-navigator";
3
2
  export type { BlankStackNavigationEventMap, BlankStackNavigationOptions, BlankStackNavigationProp, BlankStackNavigatorProps, BlankStackOptionsArgs, BlankStackOverlayProps, BlankStackScreenProps, } from "../blank-stack/types";
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blank-stack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qDAAqD,CAAC;AAChG,YAAY,EACX,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blank-stack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wDAAwD,CAAC;AACnG,YAAY,EACX,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,sBAAsB,CAAC"}
@@ -13,4 +13,4 @@ export declare function createBlankStackNavigator<const ParamList extends ParamL
13
13
  Navigator: typeof BlankStackNavigator;
14
14
  }, const Config extends StaticConfig<TypeBag> = StaticConfig<TypeBag>>(config?: Config): TypedNavigator<TypeBag, Config>;
15
15
  export {};
16
- //# sourceMappingURL=createBlankStackNavigator.d.ts.map
16
+ //# sourceMappingURL=create-blank-stack-navigator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-blank-stack-navigator.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/navigators/create-blank-stack-navigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAGlB,KAAK,oBAAoB,EAGzB,KAAK,YAAY,EACjB,KAAK,cAAc,EAEnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EACX,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,MAAM,UAAU,CAAC;AAElB,iBAAS,mBAAmB,CAAC,EAC5B,EAAE,EACF,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,eAAe,EACf,aAAa,EACb,YAAY,EACZ,GAAG,IAAI,EACP,EAAE,wBAAwB,2CAuD1B;AAED,wBAAgB,yBAAyB,CACxC,KAAK,CAAC,SAAS,SAAS,aAAa,EACrC,KAAK,CAAC,WAAW,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EACxD,KAAK,CAAC,OAAO,SAAS,oBAAoB,GAAG;IAC5C,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACvC,aAAa,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,EAAE,4BAA4B,CAAC;IACvC,cAAc,EAAE;SACd,SAAS,IAAI,MAAM,SAAS,GAAG,wBAAwB,CACvD,SAAS,EACT,SAAS,EACT,WAAW,CACX;KACD,CAAC;IACF,SAAS,EAAE,OAAO,mBAAmB,CAAC;CACtC,EACD,KAAK,CAAC,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,EACjE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAElD"}
@@ -2,44 +2,7 @@ import type { DefaultNavigatorOptions, Descriptor, NavigationHelpers, Navigation
2
2
  import type { DerivedValue } from "react-native-reanimated";
3
3
  import type { ScreenTransitionConfig } from "../shared";
4
4
  import type { OverlayInterpolationProps, ScreenInterpolationProps } from "../shared/types/animation.types";
5
- export type BlankStackNavigationEventMap = {
6
- /**
7
- * Event which fires when a transition animation starts.
8
- */
9
- transitionStart: {
10
- data: {
11
- closing: boolean;
12
- };
13
- };
14
- /**
15
- * Event which fires when a transition animation ends.
16
- */
17
- transitionEnd: {
18
- data: {
19
- closing: boolean;
20
- };
21
- };
22
- /**
23
- * Event which fires when a swipe back is canceled on iOS.
24
- */
25
- gestureCancel: {
26
- data: undefined;
27
- };
28
- /**
29
- * Event which fires when screen is in sheet presentation & it's detent changes.
30
- *
31
- * In payload it caries two fields:
32
- *
33
- * * `index` - current detent index in the `sheetAllowedDetents` array,
34
- * * `stable` - on Android `false` value means that the user is dragging the sheet or it is settling; on iOS it is always `true`.
35
- */
36
- sheetDetentChange: {
37
- data: {
38
- index: number;
39
- stable: boolean;
40
- };
41
- };
42
- };
5
+ export type BlankStackNavigationEventMap = {};
43
6
  export type BlankStackNavigationProp<ParamList extends ParamListBase, RouteName extends keyof ParamList = string, NavigatorID extends string | undefined = undefined> = NavigationProp<ParamList, RouteName, NavigatorID, StackNavigationState<ParamList>, BlankStackNavigationOptions, BlankStackNavigationEventMap> & StackActionHelpers<ParamList>;
44
7
  export type BlankStackScreenProps<ParamList extends ParamListBase, RouteName extends keyof ParamList = string, NavigatorID extends string | undefined = undefined> = {
45
8
  navigation: BlankStackNavigationProp<ParamList, RouteName, NavigatorID>;
@@ -63,6 +26,10 @@ export type BlankStackOverlayProps = {
63
26
  * Index of the focused route in the stack.
64
27
  */
65
28
  focusedIndex: number;
29
+ /**
30
+ * All routes currently in the stack.
31
+ */
32
+ routes: Route<string>[];
66
33
  /**
67
34
  * Options passed to the overlay component.
68
35
  */
@@ -89,7 +56,6 @@ export type BlankStackScreenTransitionConfig = ScreenTransitionConfig & {
89
56
  * Whether to detach the previous screen from the view hierarchy to save memory.
90
57
  * Set it to `false` if you need the previous screen to be seen through the active screen.
91
58
  * Only applicable if `detachInactiveScreens` isn't set to `false`.
92
- * Defaults to `false` for the last screen for modals, otherwise `true`.
93
59
  */
94
60
  detachPreviousScreen?: boolean;
95
61
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/blank-stack/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/blank-stack/types.ts"],"names":[],"mappings":"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"}