react-native-screen-transitions 3.4.0-alpha.3 → 3.4.0-alpha.5

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 (328) hide show
  1. package/lib/commonjs/component-stack/components/component-screen.js +1 -1
  2. package/lib/commonjs/component-stack/components/component-screen.js.map +1 -1
  3. package/lib/commonjs/shared/animation/snap-to.js +6 -3
  4. package/lib/commonjs/shared/animation/snap-to.js.map +1 -1
  5. package/lib/commonjs/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js +1 -1
  6. package/lib/commonjs/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js.map +1 -1
  7. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-group-active-measurement.js +47 -4
  8. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-group-active-measurement.js.map +1 -1
  9. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-layout-handler.js +2 -2
  10. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-layout-handler.js.map +1 -1
  11. package/lib/commonjs/shared/components/create-boundary-component/index.js +6 -6
  12. package/lib/commonjs/shared/components/create-boundary-component/index.js.map +1 -1
  13. package/lib/commonjs/shared/components/native-screen.js +3 -3
  14. package/lib/commonjs/shared/components/native-screen.js.map +1 -1
  15. package/lib/commonjs/shared/components/screen-container/deferred-visibility-host.js +1 -1
  16. package/lib/commonjs/shared/components/screen-container/deferred-visibility-host.js.map +1 -1
  17. package/lib/commonjs/shared/components/screen-container/hooks/use-content-layout.js +18 -14
  18. package/lib/commonjs/shared/components/screen-container/hooks/use-content-layout.js.map +1 -1
  19. package/lib/commonjs/shared/components/screen-container/layers/backdrop.js +8 -5
  20. package/lib/commonjs/shared/components/screen-container/layers/backdrop.js.map +1 -1
  21. package/lib/commonjs/shared/components/screen-container/layers/content.js +12 -28
  22. package/lib/commonjs/shared/components/screen-container/layers/content.js.map +1 -1
  23. package/lib/commonjs/shared/components/screen-container/layers/maybe-masked-navigation-container.js +17 -4
  24. package/lib/commonjs/shared/components/screen-container/layers/maybe-masked-navigation-container.js.map +1 -1
  25. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-close-transition/helpers/reset-stores-for-screen.js +4 -2
  26. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-close-transition/helpers/reset-stores-for-screen.js.map +1 -1
  27. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-close-transition/index.js +6 -1
  28. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-close-transition/index.js.map +1 -1
  29. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-open-transition.js +13 -11
  30. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-open-transition.js.map +1 -1
  31. package/lib/commonjs/shared/components/screen-lifecycle/index.js +5 -3
  32. package/lib/commonjs/shared/components/screen-lifecycle/index.js.map +1 -1
  33. package/lib/commonjs/shared/configs/presets.js +3 -4
  34. package/lib/commonjs/shared/configs/presets.js.map +1 -1
  35. package/lib/commonjs/shared/constants.js +16 -2
  36. package/lib/commonjs/shared/constants.js.map +1 -1
  37. package/lib/commonjs/shared/hooks/animation/use-associated-style.js +2 -2
  38. package/lib/commonjs/shared/hooks/animation/use-associated-style.js.map +1 -1
  39. package/lib/commonjs/shared/providers/gestures/handlers/use-handlers.js +12 -9
  40. package/lib/commonjs/shared/providers/gestures/handlers/use-handlers.js.map +1 -1
  41. package/lib/commonjs/shared/providers/gestures/helpers/gesture-physics.js +3 -2
  42. package/lib/commonjs/shared/providers/gestures/helpers/gesture-physics.js.map +1 -1
  43. package/lib/commonjs/shared/providers/gestures/helpers/gesture-reset.js +7 -5
  44. package/lib/commonjs/shared/providers/gestures/helpers/gesture-reset.js.map +1 -1
  45. package/lib/commonjs/shared/providers/gestures/helpers/gesture-snap-points.js +5 -5
  46. package/lib/commonjs/shared/providers/gestures/helpers/gesture-snap-points.js.map +1 -1
  47. package/lib/commonjs/shared/providers/gestures/helpers/gesture-targets.js +9 -6
  48. package/lib/commonjs/shared/providers/gestures/helpers/gesture-targets.js.map +1 -1
  49. package/lib/commonjs/shared/providers/gestures/helpers/register-direction-claims.js +1 -1
  50. package/lib/commonjs/shared/providers/gestures/helpers/register-direction-claims.js.map +1 -1
  51. package/lib/commonjs/shared/providers/gestures/use-build-gestures.js +1 -1
  52. package/lib/commonjs/shared/providers/gestures/use-build-gestures.js.map +1 -1
  53. package/lib/commonjs/shared/providers/register-bounds.provider.js +5 -5
  54. package/lib/commonjs/shared/providers/register-bounds.provider.js.map +1 -1
  55. package/lib/commonjs/shared/providers/screen/animation/helpers/has-transitions-enabled.js +17 -0
  56. package/lib/commonjs/shared/providers/screen/animation/helpers/has-transitions-enabled.js.map +1 -0
  57. package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state.js +72 -0
  58. package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state.js.map +1 -0
  59. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js +22 -108
  60. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  61. package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js +42 -0
  62. package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -0
  63. package/lib/commonjs/shared/providers/screen/helpers/resolve-interpolated-style-output.js +17 -3
  64. package/lib/commonjs/shared/providers/screen/helpers/resolve-interpolated-style-output.js.map +1 -1
  65. package/lib/commonjs/shared/providers/screen/styles.provider.js +4 -1
  66. package/lib/commonjs/shared/providers/screen/styles.provider.js.map +1 -1
  67. package/lib/commonjs/shared/providers/stack/direct.provider.js +1 -1
  68. package/lib/commonjs/shared/providers/stack/direct.provider.js.map +1 -1
  69. package/lib/commonjs/shared/providers/stack/helpers/use-processed-routes.js +1 -1
  70. package/lib/commonjs/shared/providers/stack/helpers/use-processed-routes.js.map +1 -1
  71. package/lib/commonjs/shared/stores/animation.store.js +12 -40
  72. package/lib/commonjs/shared/stores/animation.store.js.map +1 -1
  73. package/lib/commonjs/shared/stores/gesture.store.js +13 -33
  74. package/lib/commonjs/shared/stores/gesture.store.js.map +1 -1
  75. package/lib/commonjs/shared/stores/system.store.js +31 -0
  76. package/lib/commonjs/shared/stores/system.store.js.map +1 -0
  77. package/lib/commonjs/shared/types/bounds.types.js +1 -3
  78. package/lib/commonjs/shared/types/bounds.types.js.map +1 -1
  79. package/lib/commonjs/shared/utils/animation/animate-to-progress.js +2 -2
  80. package/lib/commonjs/shared/utils/animation/animate-to-progress.js.map +1 -1
  81. package/lib/commonjs/shared/utils/bounds/helpers/compute-bounds-styles.js.map +1 -1
  82. package/lib/commonjs/shared/utils/bounds/index.js +23 -50
  83. package/lib/commonjs/shared/utils/bounds/index.js.map +1 -1
  84. package/lib/commonjs/shared/utils/bounds/zoom/build.js +108 -362
  85. package/lib/commonjs/shared/utils/bounds/zoom/build.js.map +1 -1
  86. package/lib/commonjs/shared/utils/bounds/zoom/config.js +15 -101
  87. package/lib/commonjs/shared/utils/bounds/zoom/config.js.map +1 -1
  88. package/lib/commonjs/shared/utils/bounds/zoom/math.js +154 -0
  89. package/lib/commonjs/shared/utils/bounds/zoom/math.js.map +1 -0
  90. package/lib/commonjs/shared/utils/bounds/zoom/types.js +1 -3
  91. package/lib/commonjs/shared/utils/bounds/zoom/types.js.map +1 -1
  92. package/lib/commonjs/shared/utils/create-store.js +54 -0
  93. package/lib/commonjs/shared/utils/create-store.js.map +1 -0
  94. package/lib/module/component-stack/components/component-screen.js +1 -1
  95. package/lib/module/component-stack/components/component-screen.js.map +1 -1
  96. package/lib/module/shared/animation/snap-to.js +6 -3
  97. package/lib/module/shared/animation/snap-to.js.map +1 -1
  98. package/lib/module/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js +1 -1
  99. package/lib/module/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js.map +1 -1
  100. package/lib/module/shared/components/create-boundary-component/hooks/use-group-active-measurement.js +48 -5
  101. package/lib/module/shared/components/create-boundary-component/hooks/use-group-active-measurement.js.map +1 -1
  102. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-layout-handler.js +2 -2
  103. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-layout-handler.js.map +1 -1
  104. package/lib/module/shared/components/create-boundary-component/index.js +6 -6
  105. package/lib/module/shared/components/create-boundary-component/index.js.map +1 -1
  106. package/lib/module/shared/components/native-screen.js +3 -3
  107. package/lib/module/shared/components/native-screen.js.map +1 -1
  108. package/lib/module/shared/components/screen-container/deferred-visibility-host.js +2 -2
  109. package/lib/module/shared/components/screen-container/deferred-visibility-host.js.map +1 -1
  110. package/lib/module/shared/components/screen-container/hooks/use-content-layout.js +18 -14
  111. package/lib/module/shared/components/screen-container/hooks/use-content-layout.js.map +1 -1
  112. package/lib/module/shared/components/screen-container/layers/backdrop.js +8 -5
  113. package/lib/module/shared/components/screen-container/layers/backdrop.js.map +1 -1
  114. package/lib/module/shared/components/screen-container/layers/content.js +13 -29
  115. package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
  116. package/lib/module/shared/components/screen-container/layers/maybe-masked-navigation-container.js +19 -6
  117. package/lib/module/shared/components/screen-container/layers/maybe-masked-navigation-container.js.map +1 -1
  118. package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition/helpers/reset-stores-for-screen.js +4 -2
  119. package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition/helpers/reset-stores-for-screen.js.map +1 -1
  120. package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition/index.js +6 -1
  121. package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition/index.js.map +1 -1
  122. package/lib/module/shared/components/screen-lifecycle/hooks/use-open-transition.js +13 -11
  123. package/lib/module/shared/components/screen-lifecycle/hooks/use-open-transition.js.map +1 -1
  124. package/lib/module/shared/components/screen-lifecycle/index.js +5 -3
  125. package/lib/module/shared/components/screen-lifecycle/index.js.map +1 -1
  126. package/lib/module/shared/configs/presets.js +3 -4
  127. package/lib/module/shared/configs/presets.js.map +1 -1
  128. package/lib/module/shared/constants.js +16 -2
  129. package/lib/module/shared/constants.js.map +1 -1
  130. package/lib/module/shared/hooks/animation/use-associated-style.js +2 -2
  131. package/lib/module/shared/hooks/animation/use-associated-style.js.map +1 -1
  132. package/lib/module/shared/providers/gestures/handlers/use-handlers.js +12 -9
  133. package/lib/module/shared/providers/gestures/handlers/use-handlers.js.map +1 -1
  134. package/lib/module/shared/providers/gestures/helpers/gesture-physics.js +3 -2
  135. package/lib/module/shared/providers/gestures/helpers/gesture-physics.js.map +1 -1
  136. package/lib/module/shared/providers/gestures/helpers/gesture-reset.js +7 -5
  137. package/lib/module/shared/providers/gestures/helpers/gesture-reset.js.map +1 -1
  138. package/lib/module/shared/providers/gestures/helpers/gesture-snap-points.js +5 -5
  139. package/lib/module/shared/providers/gestures/helpers/gesture-snap-points.js.map +1 -1
  140. package/lib/module/shared/providers/gestures/helpers/gesture-targets.js +9 -6
  141. package/lib/module/shared/providers/gestures/helpers/gesture-targets.js.map +1 -1
  142. package/lib/module/shared/providers/gestures/helpers/register-direction-claims.js +1 -1
  143. package/lib/module/shared/providers/gestures/helpers/register-direction-claims.js.map +1 -1
  144. package/lib/module/shared/providers/gestures/use-build-gestures.js +1 -1
  145. package/lib/module/shared/providers/gestures/use-build-gestures.js.map +1 -1
  146. package/lib/module/shared/providers/register-bounds.provider.js +5 -5
  147. package/lib/module/shared/providers/register-bounds.provider.js.map +1 -1
  148. package/lib/module/shared/providers/screen/animation/helpers/has-transitions-enabled.js +12 -0
  149. package/lib/module/shared/providers/screen/animation/helpers/has-transitions-enabled.js.map +1 -0
  150. package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state.js +67 -0
  151. package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state.js.map +1 -0
  152. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js +22 -108
  153. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  154. package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js +37 -0
  155. package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -0
  156. package/lib/module/shared/providers/screen/helpers/resolve-interpolated-style-output.js +15 -2
  157. package/lib/module/shared/providers/screen/helpers/resolve-interpolated-style-output.js.map +1 -1
  158. package/lib/module/shared/providers/screen/styles.provider.js +5 -2
  159. package/lib/module/shared/providers/screen/styles.provider.js.map +1 -1
  160. package/lib/module/shared/providers/stack/direct.provider.js +1 -1
  161. package/lib/module/shared/providers/stack/direct.provider.js.map +1 -1
  162. package/lib/module/shared/providers/stack/helpers/use-processed-routes.js +1 -1
  163. package/lib/module/shared/providers/stack/helpers/use-processed-routes.js.map +1 -1
  164. package/lib/module/shared/stores/animation.store.js +12 -40
  165. package/lib/module/shared/stores/animation.store.js.map +1 -1
  166. package/lib/module/shared/stores/gesture.store.js +13 -33
  167. package/lib/module/shared/stores/gesture.store.js.map +1 -1
  168. package/lib/module/shared/stores/system.store.js +27 -0
  169. package/lib/module/shared/stores/system.store.js.map +1 -0
  170. package/lib/module/shared/types/bounds.types.js +9 -1
  171. package/lib/module/shared/types/bounds.types.js.map +1 -1
  172. package/lib/module/shared/utils/animation/animate-to-progress.js +2 -2
  173. package/lib/module/shared/utils/animation/animate-to-progress.js.map +1 -1
  174. package/lib/module/shared/utils/bounds/helpers/compute-bounds-styles.js.map +1 -1
  175. package/lib/module/shared/utils/bounds/index.js +23 -50
  176. package/lib/module/shared/utils/bounds/index.js.map +1 -1
  177. package/lib/module/shared/utils/bounds/zoom/build.js +101 -355
  178. package/lib/module/shared/utils/bounds/zoom/build.js.map +1 -1
  179. package/lib/module/shared/utils/bounds/zoom/config.js +12 -98
  180. package/lib/module/shared/utils/bounds/zoom/config.js.map +1 -1
  181. package/lib/module/shared/utils/bounds/zoom/math.js +136 -0
  182. package/lib/module/shared/utils/bounds/zoom/math.js.map +1 -0
  183. package/lib/module/shared/utils/bounds/zoom/types.js +1 -1
  184. package/lib/module/shared/utils/bounds/zoom/types.js.map +1 -1
  185. package/lib/module/shared/utils/create-store.js +50 -0
  186. package/lib/module/shared/utils/create-store.js.map +1 -0
  187. package/lib/typescript/shared/animation/snap-to.d.ts.map +1 -1
  188. package/lib/typescript/shared/components/create-boundary-component/hooks/use-group-active-measurement.d.ts +1 -2
  189. package/lib/typescript/shared/components/create-boundary-component/hooks/use-group-active-measurement.d.ts.map +1 -1
  190. package/lib/typescript/shared/components/create-boundary-component/hooks/use-initial-layout-handler.d.ts.map +1 -1
  191. package/lib/typescript/shared/components/create-boundary-component/index.d.ts.map +1 -1
  192. package/lib/typescript/shared/components/native-screen.d.ts.map +1 -1
  193. package/lib/typescript/shared/components/screen-container/hooks/use-content-layout.d.ts.map +1 -1
  194. package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts.map +1 -1
  195. package/lib/typescript/shared/components/screen-container/layers/content.d.ts.map +1 -1
  196. package/lib/typescript/shared/components/screen-container/layers/maybe-masked-navigation-container.d.ts.map +1 -1
  197. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-close-transition/helpers/reset-stores-for-screen.d.ts.map +1 -1
  198. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-close-transition/index.d.ts +2 -1
  199. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-close-transition/index.d.ts.map +1 -1
  200. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-open-transition.d.ts +2 -1
  201. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-open-transition.d.ts.map +1 -1
  202. package/lib/typescript/shared/components/screen-lifecycle/index.d.ts.map +1 -1
  203. package/lib/typescript/shared/configs/presets.d.ts.map +1 -1
  204. package/lib/typescript/shared/constants.d.ts.map +1 -1
  205. package/lib/typescript/shared/hooks/animation/use-associated-style.d.ts.map +1 -1
  206. package/lib/typescript/shared/index.d.ts +3 -3
  207. package/lib/typescript/shared/index.d.ts.map +1 -1
  208. package/lib/typescript/shared/providers/gestures/handlers/use-handlers.d.ts.map +1 -1
  209. package/lib/typescript/shared/providers/gestures/helpers/gesture-physics.d.ts.map +1 -1
  210. package/lib/typescript/shared/providers/gestures/helpers/gesture-reset.d.ts.map +1 -1
  211. package/lib/typescript/shared/providers/gestures/helpers/gesture-snap-points.d.ts +2 -2
  212. package/lib/typescript/shared/providers/gestures/helpers/gesture-snap-points.d.ts.map +1 -1
  213. package/lib/typescript/shared/providers/gestures/helpers/gesture-targets.d.ts.map +1 -1
  214. package/lib/typescript/shared/providers/gestures/use-build-gestures.d.ts.map +1 -1
  215. package/lib/typescript/shared/providers/register-bounds.provider.d.ts.map +1 -1
  216. package/lib/typescript/shared/providers/screen/animation/helpers/has-transitions-enabled.d.ts +8 -0
  217. package/lib/typescript/shared/providers/screen/animation/helpers/has-transitions-enabled.d.ts.map +1 -0
  218. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state.d.ts +22 -0
  219. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state.d.ts.map +1 -0
  220. package/lib/typescript/shared/providers/screen/animation/helpers/pipeline.d.ts +4 -2
  221. package/lib/typescript/shared/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
  222. package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts +21 -0
  223. package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts.map +1 -0
  224. package/lib/typescript/shared/providers/screen/helpers/resolve-interpolated-style-output.d.ts +6 -2
  225. package/lib/typescript/shared/providers/screen/helpers/resolve-interpolated-style-output.d.ts.map +1 -1
  226. package/lib/typescript/shared/providers/screen/styles.provider.d.ts.map +1 -1
  227. package/lib/typescript/shared/stores/animation.store.d.ts +10 -17
  228. package/lib/typescript/shared/stores/animation.store.d.ts.map +1 -1
  229. package/lib/typescript/shared/stores/gesture.store.d.ts +24 -14
  230. package/lib/typescript/shared/stores/gesture.store.d.ts.map +1 -1
  231. package/lib/typescript/shared/stores/system.store.d.ts +27 -0
  232. package/lib/typescript/shared/stores/system.store.d.ts.map +1 -0
  233. package/lib/typescript/shared/types/animation.types.d.ts +38 -9
  234. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  235. package/lib/typescript/shared/types/bounds.types.d.ts +14 -42
  236. package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
  237. package/lib/typescript/shared/types/index.d.ts +2 -2
  238. package/lib/typescript/shared/types/index.d.ts.map +1 -1
  239. package/lib/typescript/shared/types/screen.types.d.ts +11 -0
  240. package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
  241. package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts +3 -1
  242. package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts.map +1 -1
  243. package/lib/typescript/shared/utils/bounds/helpers/compute-bounds-styles.d.ts.map +1 -1
  244. package/lib/typescript/shared/utils/bounds/index.d.ts +2 -3
  245. package/lib/typescript/shared/utils/bounds/index.d.ts.map +1 -1
  246. package/lib/typescript/shared/utils/bounds/zoom/build.d.ts +2 -3
  247. package/lib/typescript/shared/utils/bounds/zoom/build.d.ts.map +1 -1
  248. package/lib/typescript/shared/utils/bounds/zoom/config.d.ts +15 -41
  249. package/lib/typescript/shared/utils/bounds/zoom/config.d.ts.map +1 -1
  250. package/lib/typescript/shared/utils/bounds/zoom/math.d.ts +44 -0
  251. package/lib/typescript/shared/utils/bounds/zoom/math.d.ts.map +1 -0
  252. package/lib/typescript/shared/utils/bounds/zoom/types.d.ts +8 -13
  253. package/lib/typescript/shared/utils/bounds/zoom/types.d.ts.map +1 -1
  254. package/lib/typescript/shared/utils/create-store.d.ts +14 -0
  255. package/lib/typescript/shared/utils/create-store.d.ts.map +1 -0
  256. package/package.json +1 -1
  257. package/src/component-stack/components/component-screen.tsx +1 -1
  258. package/src/shared/animation/snap-to.ts +10 -4
  259. package/src/shared/components/create-boundary-component/hooks/helpers/measurement-rules.ts +1 -1
  260. package/src/shared/components/create-boundary-component/hooks/use-group-active-measurement.ts +82 -10
  261. package/src/shared/components/create-boundary-component/hooks/use-initial-layout-handler.ts +2 -5
  262. package/src/shared/components/create-boundary-component/index.tsx +6 -12
  263. package/src/shared/components/native-screen.tsx +3 -9
  264. package/src/shared/components/screen-container/deferred-visibility-host.tsx +2 -2
  265. package/src/shared/components/screen-container/hooks/use-content-layout.ts +42 -43
  266. package/src/shared/components/screen-container/layers/backdrop.tsx +12 -6
  267. package/src/shared/components/screen-container/layers/content.tsx +17 -49
  268. package/src/shared/components/screen-container/layers/maybe-masked-navigation-container.tsx +26 -5
  269. package/src/shared/components/screen-lifecycle/hooks/use-close-transition/helpers/reset-stores-for-screen.ts +4 -2
  270. package/src/shared/components/screen-lifecycle/hooks/use-close-transition/index.ts +8 -0
  271. package/src/shared/components/screen-lifecycle/hooks/use-open-transition.ts +21 -10
  272. package/src/shared/components/screen-lifecycle/index.tsx +8 -2
  273. package/src/shared/configs/presets.ts +8 -7
  274. package/src/shared/constants.ts +14 -0
  275. package/src/shared/hooks/animation/use-associated-style.ts +2 -8
  276. package/src/shared/index.ts +2 -0
  277. package/src/shared/providers/gestures/handlers/use-handlers.ts +13 -10
  278. package/src/shared/providers/gestures/helpers/gesture-physics.ts +4 -2
  279. package/src/shared/providers/gestures/helpers/gesture-reset.ts +9 -5
  280. package/src/shared/providers/gestures/helpers/gesture-snap-points.ts +12 -10
  281. package/src/shared/providers/gestures/helpers/gesture-targets.ts +14 -6
  282. package/src/shared/providers/gestures/helpers/register-direction-claims.ts +1 -1
  283. package/src/shared/providers/gestures/use-build-gestures.ts +1 -3
  284. package/src/shared/providers/register-bounds.provider.tsx +5 -11
  285. package/src/shared/providers/screen/animation/helpers/has-transitions-enabled.ts +14 -0
  286. package/src/shared/providers/screen/animation/helpers/hydrate-transition-state.ts +108 -0
  287. package/src/shared/providers/screen/animation/helpers/pipeline.ts +37 -199
  288. package/src/shared/providers/screen/animation/helpers/use-build-transition-state.ts +77 -0
  289. package/src/shared/providers/screen/helpers/resolve-interpolated-style-output.ts +24 -4
  290. package/src/shared/providers/screen/styles.provider.tsx +5 -1
  291. package/src/shared/providers/stack/direct.provider.tsx +1 -1
  292. package/src/shared/providers/stack/helpers/use-processed-routes.ts +1 -1
  293. package/src/shared/stores/animation.store.ts +11 -61
  294. package/src/shared/stores/gesture.store.ts +25 -45
  295. package/src/shared/stores/system.store.ts +44 -0
  296. package/src/shared/types/animation.types.ts +41 -9
  297. package/src/shared/types/bounds.types.ts +25 -25
  298. package/src/shared/types/index.ts +2 -0
  299. package/src/shared/types/screen.types.ts +12 -0
  300. package/src/shared/utils/animation/animate-to-progress.ts +4 -2
  301. package/src/shared/utils/bounds/helpers/compute-bounds-styles.ts +0 -1
  302. package/src/shared/utils/bounds/index.ts +26 -75
  303. package/src/shared/utils/bounds/zoom/build.ts +179 -502
  304. package/src/shared/utils/bounds/zoom/config.ts +14 -164
  305. package/src/shared/utils/bounds/zoom/math.ts +193 -0
  306. package/src/shared/utils/bounds/zoom/types.ts +15 -17
  307. package/src/shared/utils/create-store.ts +62 -0
  308. package/lib/commonjs/shared/utils/bounds/types/frame-props.js +0 -6
  309. package/lib/commonjs/shared/utils/bounds/types/frame-props.js.map +0 -1
  310. package/lib/commonjs/shared/utils/bounds/zoom/accessor.js +0 -54
  311. package/lib/commonjs/shared/utils/bounds/zoom/accessor.js.map +0 -1
  312. package/lib/commonjs/shared/utils/bounds/zoom/index.js +0 -20
  313. package/lib/commonjs/shared/utils/bounds/zoom/index.js.map +0 -1
  314. package/lib/module/shared/utils/bounds/types/frame-props.js +0 -4
  315. package/lib/module/shared/utils/bounds/types/frame-props.js.map +0 -1
  316. package/lib/module/shared/utils/bounds/zoom/accessor.js +0 -49
  317. package/lib/module/shared/utils/bounds/zoom/accessor.js.map +0 -1
  318. package/lib/module/shared/utils/bounds/zoom/index.js +0 -5
  319. package/lib/module/shared/utils/bounds/zoom/index.js.map +0 -1
  320. package/lib/typescript/shared/utils/bounds/types/frame-props.d.ts +0 -5
  321. package/lib/typescript/shared/utils/bounds/types/frame-props.d.ts.map +0 -1
  322. package/lib/typescript/shared/utils/bounds/zoom/accessor.d.ts +0 -17
  323. package/lib/typescript/shared/utils/bounds/zoom/accessor.d.ts.map +0 -1
  324. package/lib/typescript/shared/utils/bounds/zoom/index.d.ts +0 -3
  325. package/lib/typescript/shared/utils/bounds/zoom/index.d.ts.map +0 -1
  326. package/src/shared/utils/bounds/types/frame-props.ts +0 -5
  327. package/src/shared/utils/bounds/zoom/accessor.ts +0 -69
  328. package/src/shared/utils/bounds/zoom/index.ts +0 -2
@@ -0,0 +1,44 @@
1
+ import {
2
+ cancelAnimation,
3
+ makeMutable,
4
+ type SharedValue,
5
+ } from "react-native-reanimated";
6
+ import type { Layout } from "../types/screen.types";
7
+ import { createStore } from "../utils/create-store";
8
+
9
+ export type SystemStoreMap = {
10
+ targetProgress: SharedValue<number>;
11
+
12
+ /**
13
+ * Resolved fraction (contentHeight / screenHeight) for the 'auto' snap point. -1 = not yet measured.
14
+ */
15
+ resolvedAutoSnapPoint: SharedValue<number>;
16
+
17
+ /**
18
+ * Intrinsic measured content layout from the screen container wrapper.
19
+ */
20
+ measuredContentLayout: SharedValue<Layout | null>;
21
+ };
22
+
23
+ function createSystemBag(): SystemStoreMap {
24
+ return {
25
+ targetProgress: makeMutable(1),
26
+ resolvedAutoSnapPoint: makeMutable(-1),
27
+ measuredContentLayout: makeMutable<Layout | null>(null),
28
+ };
29
+ }
30
+
31
+ /**
32
+ * Route-keyed internal engine state that should not be treated as public screen
33
+ * animation data. These values support runtime measurement and orchestration,
34
+ * such as resolved auto snap points, measured content layout, and the current
35
+ * animation target progress. This could possibly grow in the future.
36
+ */
37
+ export const SystemStore = createStore<SystemStoreMap>({
38
+ createBag: createSystemBag,
39
+ disposeBag: (bag) => {
40
+ cancelAnimation(bag.targetProgress);
41
+ cancelAnimation(bag.resolvedAutoSnapPoint);
42
+ cancelAnimation(bag.measuredContentLayout);
43
+ },
44
+ });
@@ -77,6 +77,33 @@ export type ScreenTransitionState = {
77
77
  * The route object for this screen.
78
78
  */
79
79
  route: BaseStackRoute;
80
+
81
+ /**
82
+ * Layout measurements for this specific screen.
83
+ */
84
+ layouts: {
85
+ /**
86
+ * The `width` and `height` of the screen container.
87
+ */
88
+ screen: Layout;
89
+ /**
90
+ * The intrinsic measured content wrapper layout when available.
91
+ *
92
+ * This is currently populated for the measured screen-container path used by
93
+ * auto snap-point sizing. It is undefined until a real measurement exists.
94
+ */
95
+ content?: Layout;
96
+ };
97
+
98
+ /**
99
+ * Animated index of this screen's current snap point.
100
+ * Interpolates between indices during gestures/animations.
101
+ * - Returns -1 if no snap points are defined
102
+ * - Returns 0 when at or below first snap point
103
+ * - Returns fractional values between snap points (e.g., 1.5 = halfway between snap 1 and 2)
104
+ * - Returns length-1 when at or above last snap point
105
+ */
106
+ snapIndex: number;
80
107
  };
81
108
 
82
109
  export interface ScreenInterpolationProps {
@@ -97,6 +124,8 @@ export interface ScreenInterpolationProps {
97
124
 
98
125
  /**
99
126
  * Layout measurements for the screen.
127
+ *
128
+ * @deprecated Use `current.layouts` instead.
100
129
  */
101
130
  layouts: {
102
131
  /**
@@ -142,11 +171,8 @@ export interface ScreenInterpolationProps {
142
171
 
143
172
  /**
144
173
  * Animated index of the current snap point.
145
- * Interpolates between indices during gestures/animations.
146
- * - Returns -1 if no snap points are defined
147
- * - Returns 0 when at or below first snap point
148
- * - Returns fractional values between snap points (e.g., 1.5 = halfway between snap 1 and 2)
149
- * - Returns length-1 when at or above last snap point
174
+ *
175
+ * @deprecated Use `current.snapIndex` instead.
150
176
  */
151
177
  snapIndex: number;
152
178
 
@@ -168,13 +194,19 @@ export interface ScreenInterpolationProps {
168
194
  }
169
195
 
170
196
  /**
171
- * Returning `null` explicitly defers rendering of the screen's visual subtree
172
- * for the current frame. Returning an object applies transition styles
173
- * immediately.
197
+ * Explicit signal for hiding a screen's visual subtree until the interpolator
198
+ * becomes ready for the current transition frame.
199
+ */
200
+ export type DeferredScreenStyleSignal = "defer";
201
+
202
+ /**
203
+ * Returning `'defer'` explicitly hides the screen's visual subtree until the
204
+ * transition is ready. Returning `null`, `undefined`, or `{}` applies no
205
+ * transition styles for the current frame.
174
206
  */
175
207
  export type ScreenStyleInterpolator = (
176
208
  props: ScreenInterpolationProps,
177
- ) => TransitionInterpolatedStyle | null;
209
+ ) => TransitionInterpolatedStyle | DeferredScreenStyleSignal | null | undefined;
178
210
 
179
211
  /**
180
212
  * Animated style properties with full autocomplete.
@@ -1,13 +1,19 @@
1
1
  import type { MeasuredDimensions, StyleProps } from "react-native-reanimated";
2
+ import {
3
+ NAVIGATION_MASK_CONTAINER_STYLE_ID,
4
+ NAVIGATION_MASK_ELEMENT_STYLE_ID,
5
+ } from "../constants";
2
6
  import type { Snapshot } from "../stores/bounds";
3
7
  import type {
4
8
  BoundId,
5
- BoundsAnchor,
6
9
  BoundsOptions,
7
10
  BoundsOptionsResult,
8
- BoundsScaleMode,
9
11
  } from "../utils/bounds/types/options";
10
- import type { TransitionInterpolatedStyle } from "./animation.types";
12
+ import type {
13
+ ScreenInterpolationProps,
14
+ TransitionInterpolatedStyle,
15
+ TransitionSlotStyle,
16
+ } from "./animation.types";
11
17
 
12
18
  /**
13
19
  * Target style computation.
@@ -29,32 +35,19 @@ export type BoundsLink = {
29
35
  };
30
36
 
31
37
  export type BoundsNavigationZoomOptions = {
32
- anchor?: BoundsAnchor;
33
- scaleMode?: BoundsScaleMode;
34
38
  target?: "bound" | "fullscreen" | MeasuredDimensions;
35
- mask?: {
36
- borderRadius?: number | "auto" | { from?: number; to?: number };
37
- borderTopLeftRadius?: number | "auto" | { from?: number; to?: number };
38
- borderTopRightRadius?: number | "auto" | { from?: number; to?: number };
39
- borderBottomLeftRadius?: number | "auto" | { from?: number; to?: number };
40
- borderBottomRightRadius?: number | "auto" | { from?: number; to?: number };
41
- borderCurve?: "circular" | "continuous";
42
- outset?:
43
- | number
44
- | { top?: number; right?: number; bottom?: number; left?: number };
45
- };
46
- motion?: {
47
- dragResistance?: number;
48
- dragDirectionalScaleMin?: number;
49
- };
50
- /**
51
- * @deprecated Use `mask.borderRadius` instead.
52
- */
53
- maskBorderRadius?: number;
39
+ DEBUG?: boolean;
40
+ borderRadius?: number;
41
+ };
42
+
43
+ export type BoundsNavigationZoomStyle = TransitionInterpolatedStyle & {
44
+ content?: TransitionSlotStyle;
45
+ [NAVIGATION_MASK_CONTAINER_STYLE_ID]?: TransitionSlotStyle;
46
+ [NAVIGATION_MASK_ELEMENT_STYLE_ID]?: TransitionSlotStyle;
54
47
  };
55
48
 
56
49
  export type BoundsNavigationAccessor = {
57
- zoom: (options?: BoundsNavigationZoomOptions) => TransitionInterpolatedStyle;
50
+ zoom: (options?: BoundsNavigationZoomOptions) => BoundsNavigationZoomStyle;
58
51
  };
59
52
 
60
53
  type BoundsBoundNavigationAccessor = {
@@ -80,3 +73,10 @@ export type BoundsAccessor = {
80
73
  fallback?: number,
81
74
  ) => number;
82
75
  };
76
+
77
+ export type BoundsInterpolationProps = Omit<
78
+ ScreenInterpolationProps,
79
+ "bounds"
80
+ > & {
81
+ navigationMaskEnabled?: boolean;
82
+ };
@@ -2,6 +2,7 @@ export { FALSE, TRUE } from "../constants";
2
2
  export type {
3
3
  AnimatedViewStyle,
4
4
  AnimationConfig,
5
+ DeferredScreenStyleSignal,
5
6
  ScreenInterpolationProps,
6
7
  ScreenStyleInterpolator,
7
8
  ScreenTransitionState,
@@ -14,6 +15,7 @@ export type {
14
15
  BoundsMethod,
15
16
  BoundsNavigationAccessor,
16
17
  BoundsNavigationZoomOptions,
18
+ BoundsNavigationZoomStyle,
17
19
  } from "./bounds.types";
18
20
  export type {
19
21
  ActivationArea,
@@ -202,6 +202,18 @@ export type ScreenTransitionConfig = {
202
202
  */
203
203
  experimental_enableHighRefreshRate?: boolean;
204
204
 
205
+ /**
206
+ * Animates the first screen in a navigator from its closed state on initial mount
207
+ * instead of snapping directly to its settled progress.
208
+ *
209
+ * Useful for launch/onboarding flows where the initial screen should participate
210
+ * in the same transition system as pushed screens.
211
+ *
212
+ * @experimental This API may change in future versions.
213
+ * @default false
214
+ */
215
+ experimental_animateOnInitialMount?: boolean;
216
+
205
217
  /**
206
218
  * Describes heights where a screen can rest, as fractions of screen height,
207
219
  * or `'auto'` to snap to the intrinsic height of the screen content.
@@ -1,4 +1,4 @@
1
- import { runOnJS } from "react-native-reanimated";
1
+ import { runOnJS, type SharedValue } from "react-native-reanimated";
2
2
  import { FALSE, TRUE } from "../../constants";
3
3
  import type { AnimationStoreMap } from "../../stores/animation.store";
4
4
  import type { TransitionSpec } from "../../types/animation.types";
@@ -15,6 +15,7 @@ interface AnimateToProgressProps {
15
15
  spec?: TransitionSpec;
16
16
  onAnimationFinish?: (finished: boolean) => void;
17
17
  animations: AnimationStoreMap;
18
+ targetProgress: SharedValue<number>;
18
19
  /** Optional initial velocity for spring-based progress (units: progress/sec). */
19
20
  initialVelocity?: number;
20
21
  }
@@ -24,6 +25,7 @@ export const animateToProgress = ({
24
25
  spec,
25
26
  onAnimationFinish,
26
27
  animations,
28
+ targetProgress,
27
29
  initialVelocity,
28
30
  }: AnimateToProgressProps) => {
29
31
  "worklet";
@@ -44,7 +46,7 @@ export const animateToProgress = ({
44
46
  ? { ...config, velocity: initialVelocity }
45
47
  : config;
46
48
 
47
- const { progress, animating, closing, entering, targetProgress } = animations;
49
+ const { progress, animating, closing, entering } = animations;
48
50
 
49
51
  targetProgress.set(value);
50
52
 
@@ -1,6 +1,5 @@
1
1
  import type { MeasuredDimensions } from "react-native-reanimated";
2
2
  import {
3
- EMPTY_BOUND_HELPER_RESULT,
4
3
  EMPTY_BOUND_HELPER_RESULT_RAW,
5
4
  ENTER_RANGE,
6
5
  EXIT_RANGE,
@@ -1,14 +1,17 @@
1
1
  import { BoundStore, type ResolvedTransitionPair } from "../../stores/bounds";
2
2
  import type { ScreenInterpolationProps } from "../../types/animation.types";
3
- import type { BoundsAccessor } from "../../types/bounds.types";
3
+ import type {
4
+ BoundsAccessor,
5
+ BoundsInterpolationProps,
6
+ BoundsNavigationZoomOptions,
7
+ } from "../../types/bounds.types";
4
8
  import { buildBoundsOptions } from "./helpers/build-bounds-options";
5
9
  import { computeBoundStyles } from "./helpers/compute-bounds-styles";
6
10
  import { createInterpolators } from "./helpers/interpolators";
7
11
  import { createLinkAccessor } from "./helpers/link-accessor";
8
12
  import { resolveBoundTag } from "./helpers/resolve-bound-tag";
9
- import type { BoundsFrameProps } from "./types/frame-props";
10
13
  import type { BoundsOptions } from "./types/options";
11
- import { createZoomAccessor } from "./zoom";
14
+ import { buildZoomStyles } from "./zoom/build";
12
15
 
13
16
  const syncGroupActiveMember = (group?: string, id?: string | number) => {
14
17
  "worklet";
@@ -22,7 +25,7 @@ const syncGroupActiveMember = (group?: string, id?: string | number) => {
22
25
  };
23
26
 
24
27
  export const createBoundsAccessor = (
25
- getProps: () => BoundsFrameProps,
28
+ getProps: () => BoundsInterpolationProps,
26
29
  ): BoundsAccessor => {
27
30
  "worklet";
28
31
 
@@ -49,90 +52,38 @@ export const createBoundsAccessor = (
49
52
  const computeElementBoundsStyles = (params?: BoundsOptions) => {
50
53
  "worklet";
51
54
  const props = getProps();
52
- syncGroupActiveMember(params?.group, params?.id);
55
+ const id = params?.id;
56
+ const group = params?.group;
57
+ syncGroupActiveMember(group, id);
53
58
 
54
59
  const resolved = buildBoundsOptions({
55
60
  props,
56
- id: params?.id,
57
- group: params?.group,
61
+ id,
62
+ group,
58
63
  overrides: params,
59
64
  mode: "style",
60
65
  resolveBoundTag,
61
66
  });
62
67
 
63
68
  const computed = computeForResolvedOptions(resolved, props);
64
-
65
- const zoomBaseOptions = {
66
- anchor: params?.anchor,
67
- scaleMode: params?.scaleMode,
68
- target: params?.target,
69
- };
70
- let cachedNavigationPairProps: BoundsFrameProps | undefined;
71
- let cachedNavigationPairTag = "";
72
- let cachedNavigationPair: ResolvedTransitionPair | undefined;
73
-
74
- const resolveNavigationPair = (
75
- tag: string,
76
- frameProps: BoundsFrameProps,
77
- ): ResolvedTransitionPair | undefined => {
78
- "worklet";
79
- if (!tag) return undefined;
80
-
81
- if (
82
- cachedNavigationPairProps === frameProps &&
83
- cachedNavigationPairTag === tag
84
- ) {
85
- return cachedNavigationPair;
86
- }
87
-
88
- const nextPair = BoundStore.resolveTransitionPair(tag, {
89
- currentScreenKey: frameProps.current?.route.key,
90
- previousScreenKey: frameProps.previous?.route.key,
91
- nextScreenKey: frameProps.next?.route.key,
92
- entering: !frameProps.next,
93
- });
94
-
95
- cachedNavigationPairProps = frameProps;
96
- cachedNavigationPairTag = tag;
97
- cachedNavigationPair = nextPair;
98
-
99
- return nextPair;
100
- };
101
-
102
- const navigation = createZoomAccessor({
103
- id: params?.id,
104
- group: params?.group,
105
- getProps,
106
- resolveBoundTag,
107
- zoomBaseOptions,
108
- computeRaw: (overrides, frameProps) =>
109
- (() => {
110
- const currentProps = frameProps ?? getProps();
111
- const resolvedNavigationOptions = buildBoundsOptions({
112
- props: currentProps,
113
- id: params?.id,
114
- group: params?.group,
115
- overrides,
116
- mode: "navigation",
117
- resolveBoundTag,
118
- });
119
- const resolvedPair = resolveNavigationPair(
120
- String(resolvedNavigationOptions.id),
121
- currentProps,
122
- );
123
-
124
- return computeForResolvedOptions(
125
- resolvedNavigationOptions,
126
- currentProps,
127
- resolvedPair,
128
- ) as Record<string, unknown>;
129
- })(),
130
- });
69
+ // Navigation helpers are intentionally opinionated. Only the resolved
70
+ // tag from `id`/`group` is allowed to flow into `navigation.zoom()`;
71
+ // base bounds overrides like `target`, `anchor`, or `scaleMode` must not.
72
+ const navigationTag = resolveBoundTag({ id, group });
131
73
 
132
74
  const target = Object.isExtensible(computed) ? computed : { ...computed };
133
75
 
134
76
  Object.defineProperty(target, "navigation", {
135
- value: navigation,
77
+ value: {
78
+ zoom: (options?: BoundsNavigationZoomOptions) => {
79
+ "worklet";
80
+ return buildZoomStyles({
81
+ props: getProps(),
82
+ resolvedTag: navigationTag,
83
+ zoomOptions: options,
84
+ });
85
+ },
86
+ },
136
87
  enumerable: false,
137
88
  configurable: true,
138
89
  });