react-native-screen-transitions 3.0.0-rc.1 → 3.0.0-rc.3

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 (233) hide show
  1. package/README.md +421 -371
  2. package/lib/commonjs/blank-stack/components/{Overlay.js → overlay.js} +11 -12
  3. package/lib/commonjs/blank-stack/components/overlay.js.map +1 -0
  4. package/lib/commonjs/blank-stack/components/{Screens.js → screens.js} +8 -10
  5. package/lib/commonjs/blank-stack/components/screens.js.map +1 -0
  6. package/lib/commonjs/blank-stack/components/stack-view.js +95 -0
  7. package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -0
  8. package/lib/commonjs/blank-stack/hooks/use-overlay-animation.js +2 -3
  9. package/lib/commonjs/blank-stack/hooks/use-overlay-animation.js.map +1 -1
  10. package/lib/commonjs/blank-stack/index.js +1 -8
  11. package/lib/commonjs/blank-stack/index.js.map +1 -1
  12. package/lib/commonjs/blank-stack/navigators/{createBlankStackNavigator.js → create-blank-stack-navigator.js} +3 -3
  13. package/lib/commonjs/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -0
  14. package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/are-descriptors-equal.js.map +1 -0
  15. package/lib/{module/blank-stack/utils/with-stack-navigation/_utils → commonjs/blank-stack/utils/with-stack-navigation/helpers}/calculate-active-screens-limit.js.map +1 -1
  16. package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js +15 -0
  17. package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js.map +1 -0
  18. package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/have-same-route-keys.js.map +1 -0
  19. package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/routes-are-identical.js.map +1 -0
  20. package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-closing-route-keys.js +1 -12
  21. package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js.map +1 -0
  22. package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-previous.js.map +1 -0
  23. package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-stack-navigation-state.js +4 -4
  24. package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.js.map +1 -0
  25. package/lib/commonjs/blank-stack/utils/with-stack-navigation/index.js +50 -56
  26. package/lib/commonjs/blank-stack/utils/with-stack-navigation/index.js.map +1 -1
  27. package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_types.js → types.js} +1 -1
  28. package/lib/commonjs/blank-stack/utils/with-stack-navigation/types.js.map +1 -0
  29. package/lib/commonjs/shared/configs/presets.js +8 -2
  30. package/lib/commonjs/shared/configs/presets.js.map +1 -1
  31. package/lib/commonjs/shared/hooks/animation/use-screen-animation.js +42 -21
  32. package/lib/commonjs/shared/hooks/animation/use-screen-animation.js.map +1 -1
  33. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  34. package/lib/commonjs/shared/providers/flags.provider.js +25 -0
  35. package/lib/commonjs/shared/providers/flags.provider.js.map +1 -0
  36. package/lib/commonjs/shared/providers/register-bounds.provider.js +71 -45
  37. package/lib/commonjs/shared/providers/register-bounds.provider.js.map +1 -1
  38. package/lib/commonjs/shared/stores/bounds.store.js +91 -47
  39. package/lib/commonjs/shared/stores/bounds.store.js.map +1 -1
  40. package/lib/commonjs/shared/utils/bounds/helpers/is-bounds-equal.js +1 -1
  41. package/lib/commonjs/shared/utils/bounds/helpers/is-bounds-equal.js.map +1 -1
  42. package/lib/commonjs/shared/utils/bounds/index.js +4 -5
  43. package/lib/commonjs/shared/utils/bounds/index.js.map +1 -1
  44. package/lib/commonjs/shared/utils/create-provider.js +20 -1
  45. package/lib/commonjs/shared/utils/create-provider.js.map +1 -1
  46. package/lib/commonjs/shared/utils/reset-stores-for-screen.js +2 -0
  47. package/lib/commonjs/shared/utils/reset-stores-for-screen.js.map +1 -1
  48. package/lib/module/blank-stack/components/{Overlay.js → overlay.js} +11 -12
  49. package/lib/module/blank-stack/components/overlay.js.map +1 -0
  50. package/lib/module/blank-stack/components/{Screens.js → screens.js} +8 -10
  51. package/lib/module/blank-stack/components/screens.js.map +1 -0
  52. package/lib/module/blank-stack/components/stack-view.js +90 -0
  53. package/lib/module/blank-stack/components/stack-view.js.map +1 -0
  54. package/lib/module/blank-stack/hooks/use-overlay-animation.js +2 -3
  55. package/lib/module/blank-stack/hooks/use-overlay-animation.js.map +1 -1
  56. package/lib/module/blank-stack/index.js +1 -2
  57. package/lib/module/blank-stack/index.js.map +1 -1
  58. package/lib/module/blank-stack/navigators/{createBlankStackNavigator.js → create-blank-stack-navigator.js} +2 -2
  59. package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -0
  60. package/lib/module/blank-stack/utils/with-stack-navigation/helpers/are-descriptors-equal.js.map +1 -0
  61. package/lib/module/blank-stack/utils/with-stack-navigation/helpers/calculate-active-screens-limit.js.map +1 -0
  62. package/lib/module/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js +10 -0
  63. package/lib/module/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js.map +1 -0
  64. package/lib/module/blank-stack/utils/with-stack-navigation/helpers/have-same-route-keys.js.map +1 -0
  65. package/lib/module/blank-stack/utils/with-stack-navigation/helpers/routes-are-identical.js.map +1 -0
  66. package/lib/module/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-closing-route-keys.js +1 -12
  67. package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js.map +1 -0
  68. package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-previous.js.map +1 -0
  69. package/lib/module/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-stack-navigation-state.js +4 -4
  70. package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.js.map +1 -0
  71. package/lib/module/blank-stack/utils/with-stack-navigation/index.js +49 -55
  72. package/lib/module/blank-stack/utils/with-stack-navigation/index.js.map +1 -1
  73. package/lib/module/blank-stack/utils/with-stack-navigation/types.js +4 -0
  74. package/lib/module/blank-stack/utils/with-stack-navigation/types.js.map +1 -0
  75. package/lib/module/shared/configs/presets.js +8 -2
  76. package/lib/module/shared/configs/presets.js.map +1 -1
  77. package/lib/module/shared/hooks/animation/use-screen-animation.js +42 -21
  78. package/lib/module/shared/hooks/animation/use-screen-animation.js.map +1 -1
  79. package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  80. package/lib/module/shared/providers/flags.provider.js +19 -0
  81. package/lib/module/shared/providers/flags.provider.js.map +1 -0
  82. package/lib/module/shared/providers/register-bounds.provider.js +71 -45
  83. package/lib/module/shared/providers/register-bounds.provider.js.map +1 -1
  84. package/lib/module/shared/stores/bounds.store.js +91 -47
  85. package/lib/module/shared/stores/bounds.store.js.map +1 -1
  86. package/lib/module/shared/utils/bounds/helpers/is-bounds-equal.js +1 -1
  87. package/lib/module/shared/utils/bounds/helpers/is-bounds-equal.js.map +1 -1
  88. package/lib/module/shared/utils/bounds/index.js +4 -5
  89. package/lib/module/shared/utils/bounds/index.js.map +1 -1
  90. package/lib/module/shared/utils/create-provider.js +20 -1
  91. package/lib/module/shared/utils/create-provider.js.map +1 -1
  92. package/lib/module/shared/utils/reset-stores-for-screen.js +2 -0
  93. package/lib/module/shared/utils/reset-stores-for-screen.js.map +1 -1
  94. package/lib/typescript/blank-stack/components/{Overlay.d.ts → overlay.d.ts} +1 -1
  95. package/lib/typescript/blank-stack/components/overlay.d.ts.map +1 -0
  96. package/lib/typescript/blank-stack/components/{Screens.d.ts → screens.d.ts} +1 -1
  97. package/lib/typescript/blank-stack/components/{Screens.d.ts.map → screens.d.ts.map} +1 -1
  98. package/lib/typescript/blank-stack/components/stack-view.d.ts +3 -0
  99. package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -0
  100. package/lib/typescript/blank-stack/index.d.ts +1 -2
  101. package/lib/typescript/blank-stack/index.d.ts.map +1 -1
  102. package/lib/typescript/blank-stack/navigators/{createBlankStackNavigator.d.ts → create-blank-stack-navigator.d.ts} +1 -1
  103. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts.map +1 -0
  104. package/lib/typescript/blank-stack/types.d.ts +23 -105
  105. package/lib/typescript/blank-stack/types.d.ts.map +1 -1
  106. package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/are-descriptors-equal.d.ts.map +1 -0
  107. package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/calculate-active-screens-limit.d.ts.map +1 -0
  108. package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.d.ts.map +1 -0
  109. package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/have-same-route-keys.d.ts.map +1 -0
  110. package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/routes-are-identical.d.ts.map +1 -0
  111. package/lib/typescript/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-closing-route-keys.d.ts.map +1 -1
  112. package/lib/typescript/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-previous.d.ts.map +1 -1
  113. package/lib/typescript/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-stack-navigation-state.d.ts +1 -1
  114. package/lib/typescript/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.d.ts.map +1 -0
  115. package/lib/typescript/blank-stack/utils/with-stack-navigation/index.d.ts +3 -5
  116. package/lib/typescript/blank-stack/utils/with-stack-navigation/index.d.ts.map +1 -1
  117. package/lib/typescript/blank-stack/utils/with-stack-navigation/{_types.d.ts → types.d.ts} +1 -1
  118. package/lib/typescript/blank-stack/utils/with-stack-navigation/types.d.ts.map +1 -0
  119. package/lib/typescript/native-stack/types.d.ts +7 -1
  120. package/lib/typescript/native-stack/types.d.ts.map +1 -1
  121. package/lib/typescript/shared/configs/index.d.ts.map +1 -1
  122. package/lib/typescript/shared/configs/presets.d.ts.map +1 -1
  123. package/lib/typescript/shared/hooks/animation/use-screen-animation.d.ts.map +1 -1
  124. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  125. package/lib/typescript/shared/index.d.ts +32 -32
  126. package/lib/typescript/shared/index.d.ts.map +1 -1
  127. package/lib/typescript/shared/providers/flags.provider.d.ts +10 -0
  128. package/lib/typescript/shared/providers/flags.provider.d.ts.map +1 -0
  129. package/lib/typescript/shared/providers/register-bounds.provider.d.ts.map +1 -1
  130. package/lib/typescript/shared/stores/bounds.store.d.ts +23 -11
  131. package/lib/typescript/shared/stores/bounds.store.d.ts.map +1 -1
  132. package/lib/typescript/shared/types/bounds.types.d.ts +2 -2
  133. package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
  134. package/lib/typescript/shared/types/core.types.d.ts +0 -4
  135. package/lib/typescript/shared/types/core.types.d.ts.map +1 -1
  136. package/lib/typescript/shared/utils/bounds/index.d.ts.map +1 -1
  137. package/lib/typescript/shared/utils/create-provider.d.ts +2 -2
  138. package/lib/typescript/shared/utils/create-provider.d.ts.map +1 -1
  139. package/lib/typescript/shared/utils/reset-stores-for-screen.d.ts.map +1 -1
  140. package/package.json +2 -1
  141. package/src/blank-stack/components/{Overlay.tsx → overlay.tsx} +9 -12
  142. package/src/blank-stack/components/{Screens.tsx → screens.tsx} +7 -9
  143. package/src/blank-stack/components/stack-view.tsx +104 -0
  144. package/src/blank-stack/hooks/use-overlay-animation.tsx +11 -11
  145. package/src/blank-stack/index.ts +1 -2
  146. package/src/blank-stack/navigators/{createBlankStackNavigator.tsx → create-blank-stack-navigator.tsx} +1 -1
  147. package/src/blank-stack/types.ts +31 -109
  148. package/src/blank-stack/utils/with-stack-navigation/{_utils → helpers}/compose-descriptors.ts +1 -8
  149. package/src/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-closing-route-keys.tsx +1 -12
  150. package/src/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-stack-navigation-state.tsx +5 -5
  151. package/src/blank-stack/utils/with-stack-navigation/index.tsx +43 -63
  152. package/src/native-stack/types.ts +8 -1
  153. package/src/shared/__tests__/bounds.store.test.ts +398 -167
  154. package/src/shared/__tests__/determine-dismissal.test.ts +2 -12
  155. package/src/shared/__tests__/geometry.test.ts +1 -1
  156. package/src/shared/__tests__/gesture.velocity.test.ts +2 -10
  157. package/src/shared/configs/presets.ts +8 -2
  158. package/src/shared/hooks/animation/use-screen-animation.tsx +65 -31
  159. package/src/shared/hooks/gestures/use-build-gestures.tsx +4 -1
  160. package/src/shared/providers/flags.provider.tsx +21 -0
  161. package/src/shared/providers/register-bounds.provider.tsx +85 -54
  162. package/src/shared/stores/bounds.store.ts +90 -54
  163. package/src/shared/types/bounds.types.ts +2 -2
  164. package/src/shared/types/core.types.ts +4 -6
  165. package/src/shared/utils/bounds/helpers/is-bounds-equal.ts +1 -1
  166. package/src/shared/utils/bounds/index.ts +7 -10
  167. package/src/shared/utils/create-provider.tsx +35 -1
  168. package/src/shared/utils/reset-stores-for-screen.ts +2 -0
  169. package/lib/commonjs/blank-stack/components/Overlay.js.map +0 -1
  170. package/lib/commonjs/blank-stack/components/Screens.js.map +0 -1
  171. package/lib/commonjs/blank-stack/components/StackView.js +0 -93
  172. package/lib/commonjs/blank-stack/components/StackView.js.map +0 -1
  173. package/lib/commonjs/blank-stack/navigators/createBlankStackNavigator.js.map +0 -1
  174. package/lib/commonjs/blank-stack/utils/with-stack-navigation/_hooks/use-closing-route-keys.js.map +0 -1
  175. package/lib/commonjs/blank-stack/utils/with-stack-navigation/_hooks/use-previous.js.map +0 -1
  176. package/lib/commonjs/blank-stack/utils/with-stack-navigation/_hooks/use-stack-navigation-state.js.map +0 -1
  177. package/lib/commonjs/blank-stack/utils/with-stack-navigation/_types.js.map +0 -1
  178. package/lib/commonjs/blank-stack/utils/with-stack-navigation/_utils/are-descriptors-equal.js.map +0 -1
  179. package/lib/commonjs/blank-stack/utils/with-stack-navigation/_utils/calculate-active-screens-limit.js.map +0 -1
  180. package/lib/commonjs/blank-stack/utils/with-stack-navigation/_utils/compose-descriptors.js +0 -25
  181. package/lib/commonjs/blank-stack/utils/with-stack-navigation/_utils/compose-descriptors.js.map +0 -1
  182. package/lib/commonjs/blank-stack/utils/with-stack-navigation/_utils/have-same-route-keys.js.map +0 -1
  183. package/lib/commonjs/blank-stack/utils/with-stack-navigation/_utils/routes-are-identical.js.map +0 -1
  184. package/lib/module/blank-stack/components/Overlay.js.map +0 -1
  185. package/lib/module/blank-stack/components/Screens.js.map +0 -1
  186. package/lib/module/blank-stack/components/StackView.js +0 -88
  187. package/lib/module/blank-stack/components/StackView.js.map +0 -1
  188. package/lib/module/blank-stack/navigators/createBlankStackNavigator.js.map +0 -1
  189. package/lib/module/blank-stack/utils/with-stack-navigation/_hooks/use-closing-route-keys.js.map +0 -1
  190. package/lib/module/blank-stack/utils/with-stack-navigation/_hooks/use-previous.js.map +0 -1
  191. package/lib/module/blank-stack/utils/with-stack-navigation/_hooks/use-stack-navigation-state.js.map +0 -1
  192. package/lib/module/blank-stack/utils/with-stack-navigation/_types.js +0 -4
  193. package/lib/module/blank-stack/utils/with-stack-navigation/_types.js.map +0 -1
  194. package/lib/module/blank-stack/utils/with-stack-navigation/_utils/are-descriptors-equal.js.map +0 -1
  195. package/lib/module/blank-stack/utils/with-stack-navigation/_utils/compose-descriptors.js +0 -20
  196. package/lib/module/blank-stack/utils/with-stack-navigation/_utils/compose-descriptors.js.map +0 -1
  197. package/lib/module/blank-stack/utils/with-stack-navigation/_utils/have-same-route-keys.js.map +0 -1
  198. package/lib/module/blank-stack/utils/with-stack-navigation/_utils/routes-are-identical.js.map +0 -1
  199. package/lib/typescript/blank-stack/components/Overlay.d.ts.map +0 -1
  200. package/lib/typescript/blank-stack/components/StackView.d.ts +0 -2
  201. package/lib/typescript/blank-stack/components/StackView.d.ts.map +0 -1
  202. package/lib/typescript/blank-stack/navigators/createBlankStackNavigator.d.ts.map +0 -1
  203. package/lib/typescript/blank-stack/utils/with-stack-navigation/_hooks/use-stack-navigation-state.d.ts.map +0 -1
  204. package/lib/typescript/blank-stack/utils/with-stack-navigation/_types.d.ts.map +0 -1
  205. package/lib/typescript/blank-stack/utils/with-stack-navigation/_utils/are-descriptors-equal.d.ts.map +0 -1
  206. package/lib/typescript/blank-stack/utils/with-stack-navigation/_utils/calculate-active-screens-limit.d.ts.map +0 -1
  207. package/lib/typescript/blank-stack/utils/with-stack-navigation/_utils/compose-descriptors.d.ts.map +0 -1
  208. package/lib/typescript/blank-stack/utils/with-stack-navigation/_utils/have-same-route-keys.d.ts.map +0 -1
  209. package/lib/typescript/blank-stack/utils/with-stack-navigation/_utils/routes-are-identical.d.ts.map +0 -1
  210. package/src/blank-stack/components/StackView.tsx +0 -108
  211. /package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_utils → helpers}/are-descriptors-equal.js +0 -0
  212. /package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_utils → helpers}/calculate-active-screens-limit.js +0 -0
  213. /package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_utils → helpers}/have-same-route-keys.js +0 -0
  214. /package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_utils → helpers}/routes-are-identical.js +0 -0
  215. /package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-previous.js +0 -0
  216. /package/lib/module/blank-stack/utils/with-stack-navigation/{_utils → helpers}/are-descriptors-equal.js +0 -0
  217. /package/lib/module/blank-stack/utils/with-stack-navigation/{_utils → helpers}/calculate-active-screens-limit.js +0 -0
  218. /package/lib/module/blank-stack/utils/with-stack-navigation/{_utils → helpers}/have-same-route-keys.js +0 -0
  219. /package/lib/module/blank-stack/utils/with-stack-navigation/{_utils → helpers}/routes-are-identical.js +0 -0
  220. /package/lib/module/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-previous.js +0 -0
  221. /package/lib/typescript/blank-stack/utils/with-stack-navigation/{_utils → helpers}/are-descriptors-equal.d.ts +0 -0
  222. /package/lib/typescript/blank-stack/utils/with-stack-navigation/{_utils → helpers}/calculate-active-screens-limit.d.ts +0 -0
  223. /package/lib/typescript/blank-stack/utils/with-stack-navigation/{_utils → helpers}/compose-descriptors.d.ts +0 -0
  224. /package/lib/typescript/blank-stack/utils/with-stack-navigation/{_utils → helpers}/have-same-route-keys.d.ts +0 -0
  225. /package/lib/typescript/blank-stack/utils/with-stack-navigation/{_utils → helpers}/routes-are-identical.d.ts +0 -0
  226. /package/lib/typescript/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-closing-route-keys.d.ts +0 -0
  227. /package/lib/typescript/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-previous.d.ts +0 -0
  228. /package/src/blank-stack/utils/with-stack-navigation/{_utils → helpers}/are-descriptors-equal.ts +0 -0
  229. /package/src/blank-stack/utils/with-stack-navigation/{_utils → helpers}/calculate-active-screens-limit.ts +0 -0
  230. /package/src/blank-stack/utils/with-stack-navigation/{_utils → helpers}/have-same-route-keys.ts +0 -0
  231. /package/src/blank-stack/utils/with-stack-navigation/{_utils → helpers}/routes-are-identical.ts +0 -0
  232. /package/src/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-previous.tsx +0 -0
  233. /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":[]}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"Screens.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/Screens.tsx"],"names":[],"mappings":"AACA,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;AAUD,eAAO,MAAM,MAAM,GAAI,2GASpB,WAAW,4CAuDb,CAAC"}
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;AAUD,eAAO,MAAM,MAAM,GAAI,2GASpB,WAAW,4CAsDb,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;AAiC/B,eAAO,MAAM,SAAS,sFA6DrB,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"}
@@ -1,9 +1,7 @@
1
1
  import type { DefaultNavigatorOptions, Descriptor, NavigationHelpers, NavigationProp, ParamListBase, Route, RouteProp, StackActionHelpers, StackNavigationState, StackRouterOptions, Theme } from "@react-navigation/native";
2
2
  import type { DerivedValue } from "react-native-reanimated";
3
- import type { EdgeInsets } from "react-native-safe-area-context";
4
- import type { ScreenProps } from "react-native-screens";
5
- import type { OverlayInterpolationProps, ScreenInterpolationProps, ScreenStyleInterpolator, TransitionSpec } from "../shared/types/animation.types";
6
- import type { GestureActivationArea, GestureDirection } from "../shared/types/gesture.types";
3
+ import type { ScreenTransitionConfig } from "../shared";
4
+ import type { OverlayInterpolationProps, ScreenInterpolationProps } from "../shared/types/animation.types";
7
5
  export type BlankStackNavigationEventMap = {
8
6
  /**
9
7
  * Event which fires when a transition animation starts.
@@ -58,30 +56,29 @@ export type BlankStackScene = {
58
56
  export type BlankStackNavigationConfig = {};
59
57
  export type BlankStackOverlayProps = {
60
58
  /**
61
- * Options for the back button.
59
+ * Route of the currently focused screen in the stack.
62
60
  */
63
- back?: {
64
- /**
65
- * Title of the previous screen.
66
- */
67
- title: string;
68
- };
61
+ focusedRoute: Route<string>;
69
62
  /**
70
- * Route object for the current screen.
63
+ * Index of the focused route in the stack.
71
64
  */
72
- route: Route<string>;
65
+ focusedIndex: number;
73
66
  /**
74
- * Route object for the currently focused screen in the stack.
67
+ * All routes currently in the stack.
75
68
  */
76
- focusedRoute: Route<string>;
69
+ routes: Route<string>[];
77
70
  /**
78
- * Navigation prop for the overlay.
71
+ * Options passed to the overlay component.
79
72
  */
80
- navigation: BlankStackNavigationProp<ParamListBase>;
73
+ overlayOptions?: {
74
+ title?: string;
75
+ subtitle?: string;
76
+ [key: string]: unknown;
77
+ };
81
78
  /**
82
- * Safe area insets for the screen.
79
+ * Navigation prop for the overlay.
83
80
  */
84
- insets: EdgeInsets;
81
+ navigation: BlankStackNavigationProp<ParamListBase>;
85
82
  /**
86
83
  * Animation values for the overlay.
87
84
  */
@@ -90,32 +87,8 @@ export type BlankStackOverlayProps = {
90
87
  * Animation values for the screen.
91
88
  */
92
89
  screenAnimation: DerivedValue<ScreenInterpolationProps>;
93
- /**
94
- * Index of the active route
95
- */
96
- focusedIndex: number;
97
90
  };
98
- export type BlankStackScreenTransitionConfig = {
99
- /**
100
- * The user-provided function to calculate styles based on animation progress.
101
- */
102
- screenStyleInterpolator?: ScreenStyleInterpolator;
103
- /**
104
- * The Reanimated animation config for opening and closing transitions.
105
- */
106
- transitionSpec?: TransitionSpec;
107
- /**
108
- * Whether the gesture is enabled.
109
- */
110
- gestureEnabled?: boolean;
111
- /**
112
- * The direction of the swipe gesture used to dismiss the screen.
113
- */
114
- gestureDirection?: GestureDirection | GestureDirection[];
115
- /**
116
- * How much the gesture's final velocity impacts the dismiss decision.
117
- */
118
- gestureVelocityImpact?: number;
91
+ export type BlankStackScreenTransitionConfig = ScreenTransitionConfig & {
119
92
  /**
120
93
  * Whether to detach the previous screen from the view hierarchy to save memory.
121
94
  * Set it to `false` if you need the previous screen to be seen through the active screen.
@@ -123,18 +96,6 @@ export type BlankStackScreenTransitionConfig = {
123
96
  * Defaults to `false` for the last screen for modals, otherwise `true`.
124
97
  */
125
98
  detachPreviousScreen?: boolean;
126
- /**
127
- * Distance threshold for gesture recognition throughout the screen.
128
- */
129
- gestureResponseDistance?: number;
130
- /**
131
- * Whether the gesture drives the progress.
132
- */
133
- gestureDrivesProgress?: boolean;
134
- /**
135
- * The area of the screen where the gesture is activated.
136
- */
137
- gestureActivationArea?: GestureActivationArea;
138
99
  };
139
100
  export type BlankStackNavigationOptions = BlankStackScreenTransitionConfig & {
140
101
  /**
@@ -154,56 +115,13 @@ export type BlankStackNavigationOptions = BlankStackScreenTransitionConfig & {
154
115
  */
155
116
  overlayShown?: boolean;
156
117
  /**
157
- * Whether the home indicator should prefer to stay hidden on this screen. Defaults to `false`.
158
- *
159
- * @platform ios
160
- */
161
- autoHideHomeIndicator?: boolean;
162
- /**
163
- * Whether the keyboard should hide when swiping to the previous screen. Defaults to `false`.
164
- *
165
- * @platform ios
118
+ * Options passed to the overlay component.
166
119
  */
167
- keyboardHandlingEnabled?: boolean;
168
- /**
169
- * Sets the visibility of the navigation bar. Defaults to `false`.
170
- *
171
- * @platform android
172
- */
173
- navigationBarHidden?: boolean;
174
- /**
175
- * Sets the status bar animation (similar to the `StatusBar` component).
176
- * On Android, setting either `fade` or `slide` will set the transition of status bar color. On iOS, this option applies to appereance animation of the status bar.
177
- * Requires setting `View controller-based status bar appearance -> YES` (or removing the config) in your `Info.plist` file.
178
- *
179
- * Defaults to `fade` on iOS and `none` on Android.
180
- *
181
- * Only supported on Android and iOS.
182
- *
183
- * @platform android, ios
184
- */
185
- statusBarAnimation?: ScreenProps["statusBarAnimation"];
186
- /**
187
- * Whether the status bar should be hidden on this screen.
188
- * Requires setting `View controller-based status bar appearance -> YES` in your Info.plist file.
189
- *
190
- * Only supported on Android and iOS.
191
- *
192
- * @platform android, ios
193
- */
194
- statusBarHidden?: boolean;
195
- /**
196
- * Sets the status bar color (similar to the `StatusBar` component).
197
- * Requires setting `View controller-based status bar appearance -> YES` (or removing the config) in your `Info.plist` file.
198
- * `auto` and `inverted` are supported only on iOS. On Android, they will fallback to `light`.
199
- *
200
- * Defaults to `auto` on iOS and `light` on Android.
201
- *
202
- * Only supported on Android and iOS.
203
- *
204
- * @platform android, ios
205
- */
206
- statusBarStyle?: ScreenProps["statusBarStyle"];
120
+ overlayOptions?: {
121
+ title?: string;
122
+ subtitle?: string;
123
+ [key: string]: unknown;
124
+ };
207
125
  /**
208
126
  * Whether inactive screens should be suspended from re-rendering. Defaults to `false`.
209
127
  * Defaults to `true` when `enableFreeze()` is run at the top of the application.