react-native-screen-transitions 3.8.0-alpha.0 → 3.8.0-beta.1

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 (404) hide show
  1. package/lib/commonjs/shared/animation/snap-to.js +1 -1
  2. package/lib/commonjs/shared/animation/snap-to.js.map +1 -1
  3. package/lib/commonjs/shared/components/activity/variants/activity-screen.js +10 -2
  4. package/lib/commonjs/shared/components/activity/variants/activity-screen.js.map +1 -1
  5. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js +2 -2
  6. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js.map +1 -1
  7. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-measurer.js +1 -1
  8. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-measurer.js.map +1 -1
  9. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-refresh-boundary.js +1 -1
  10. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-refresh-boundary.js.map +1 -1
  11. package/lib/commonjs/shared/components/create-transition-aware-component.js +7 -5
  12. package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
  13. package/lib/commonjs/shared/components/overlay/variations/float-overlay.js +9 -6
  14. package/lib/commonjs/shared/components/overlay/variations/float-overlay.js.map +1 -1
  15. package/lib/commonjs/shared/components/screen-container/hooks/use-content-layout.js +2 -2
  16. package/lib/commonjs/shared/components/screen-container/hooks/use-content-layout.js.map +1 -1
  17. package/lib/commonjs/shared/components/screen-container/layers/backdrop.js +1 -1
  18. package/lib/commonjs/shared/components/screen-container/layers/backdrop.js.map +1 -1
  19. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-open-transition-intent.js +2 -2
  20. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-open-transition-intent.js.map +1 -1
  21. package/lib/commonjs/shared/configs/presets.js +5 -8
  22. package/lib/commonjs/shared/configs/presets.js.map +1 -1
  23. package/lib/commonjs/shared/constants.js +18 -2
  24. package/lib/commonjs/shared/constants.js.map +1 -1
  25. package/lib/commonjs/shared/providers/screen/animation/helpers/build-screen-transition-options.js +2 -8
  26. package/lib/commonjs/shared/providers/screen/animation/helpers/build-screen-transition-options.js.map +1 -1
  27. package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/gesture-progress.js +26 -31
  28. package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/gesture-progress.js.map +1 -1
  29. package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js +30 -4
  30. package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
  31. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js +3 -3
  32. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  33. package/lib/commonjs/shared/providers/screen/animation/helpers/stack-progress.js +3 -3
  34. package/lib/commonjs/shared/providers/screen/animation/helpers/stack-progress.js.map +1 -1
  35. package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js +4 -2
  36. package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
  37. package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js +7 -8
  38. package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
  39. package/lib/commonjs/shared/providers/screen/gestures/hooks/use-stable-runtime-config.js +3 -7
  40. package/lib/commonjs/shared/providers/screen/gestures/hooks/use-stable-runtime-config.js.map +1 -1
  41. package/lib/commonjs/shared/providers/screen/gestures/pan/activation/pan-activation-decision.js +8 -2
  42. package/lib/commonjs/shared/providers/screen/gestures/pan/activation/pan-activation-decision.js.map +1 -1
  43. package/lib/commonjs/shared/providers/screen/gestures/pan/activation/use-pan-activation.js +7 -4
  44. package/lib/commonjs/shared/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
  45. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js +20 -36
  46. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  47. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-release.js +12 -21
  48. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-release.js.map +1 -1
  49. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-reset.js +40 -39
  50. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-reset.js.map +1 -1
  51. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js +11 -21
  52. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js.map +1 -1
  53. package/lib/commonjs/shared/providers/screen/gestures/pan/use-build-pan-gesture.js +4 -11
  54. package/lib/commonjs/shared/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
  55. package/lib/commonjs/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js +12 -10
  56. package/lib/commonjs/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js.map +1 -1
  57. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +13 -10
  58. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  59. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-release.js +15 -11
  60. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-release.js.map +1 -1
  61. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-reset.js +28 -23
  62. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-reset.js.map +1 -1
  63. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js +3 -3
  64. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js.map +1 -1
  65. package/lib/commonjs/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.js +4 -11
  66. package/lib/commonjs/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.js.map +1 -1
  67. package/lib/commonjs/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js +12 -10
  68. package/lib/commonjs/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js.map +1 -1
  69. package/lib/commonjs/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.js +3 -10
  70. package/lib/commonjs/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.js.map +1 -1
  71. package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/index.js +7 -0
  72. package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/index.js.map +1 -1
  73. package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js +40 -0
  74. package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js.map +1 -0
  75. package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.js +51 -13
  76. package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.js.map +1 -1
  77. package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +74 -6
  78. package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
  79. package/lib/commonjs/shared/providers/screen/gestures/shared/physics.js +23 -23
  80. package/lib/commonjs/shared/providers/screen/gestures/shared/physics.js.map +1 -1
  81. package/lib/commonjs/shared/providers/screen/gestures/shared/policy.js +0 -11
  82. package/lib/commonjs/shared/providers/screen/gestures/shared/policy.js.map +1 -1
  83. package/lib/commonjs/shared/providers/screen/gestures/shared/reset.js +17 -10
  84. package/lib/commonjs/shared/providers/screen/gestures/shared/reset.js.map +1 -1
  85. package/lib/commonjs/shared/providers/screen/gestures/shared/snap-points.js +6 -7
  86. package/lib/commonjs/shared/providers/screen/gestures/shared/snap-points.js.map +1 -1
  87. package/lib/commonjs/shared/providers/screen/gestures/shared/snapshot.js +32 -0
  88. package/lib/commonjs/shared/providers/screen/gestures/shared/snapshot.js.map +1 -0
  89. package/lib/commonjs/shared/providers/screen/gestures/shared/values.js +65 -0
  90. package/lib/commonjs/shared/providers/screen/gestures/shared/values.js.map +1 -0
  91. package/lib/commonjs/shared/providers/screen/gestures/types.js +1 -1
  92. package/lib/commonjs/shared/providers/screen/options/helpers.js +1 -19
  93. package/lib/commonjs/shared/providers/screen/options/helpers.js.map +1 -1
  94. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +8 -8
  95. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  96. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -2
  97. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  98. package/lib/commonjs/shared/stores/animation.store.js +6 -6
  99. package/lib/commonjs/shared/stores/animation.store.js.map +1 -1
  100. package/lib/commonjs/shared/stores/gesture.store.js +56 -0
  101. package/lib/commonjs/shared/stores/gesture.store.js.map +1 -1
  102. package/lib/commonjs/shared/stores/scroll.store.js +49 -5
  103. package/lib/commonjs/shared/stores/scroll.store.js.map +1 -1
  104. package/lib/commonjs/shared/types/gesture.types.js +18 -0
  105. package/lib/commonjs/shared/types/gesture.types.js.map +1 -1
  106. package/lib/commonjs/shared/utils/animation/animate-to-progress.js +3 -3
  107. package/lib/commonjs/shared/utils/animation/animate-to-progress.js.map +1 -1
  108. package/lib/commonjs/shared/utils/animation/spring/spring.js +7 -3
  109. package/lib/commonjs/shared/utils/animation/spring/spring.js.map +1 -1
  110. package/lib/commonjs/shared/utils/bounds/helpers/prepare-bound-styles.js +1 -1
  111. package/lib/commonjs/shared/utils/bounds/helpers/prepare-bound-styles.js.map +1 -1
  112. package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js +39 -34
  113. package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
  114. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js +37 -28
  115. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  116. package/lib/module/shared/animation/snap-to.js +1 -1
  117. package/lib/module/shared/animation/snap-to.js.map +1 -1
  118. package/lib/module/shared/components/activity/variants/activity-screen.js +10 -2
  119. package/lib/module/shared/components/activity/variants/activity-screen.js.map +1 -1
  120. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js +2 -2
  121. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js.map +1 -1
  122. package/lib/module/shared/components/create-boundary-component/hooks/use-measurer.js +1 -1
  123. package/lib/module/shared/components/create-boundary-component/hooks/use-measurer.js.map +1 -1
  124. package/lib/module/shared/components/create-boundary-component/hooks/use-refresh-boundary.js +1 -1
  125. package/lib/module/shared/components/create-boundary-component/hooks/use-refresh-boundary.js.map +1 -1
  126. package/lib/module/shared/components/create-transition-aware-component.js +8 -6
  127. package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
  128. package/lib/module/shared/components/overlay/variations/float-overlay.js +9 -6
  129. package/lib/module/shared/components/overlay/variations/float-overlay.js.map +1 -1
  130. package/lib/module/shared/components/screen-container/hooks/use-content-layout.js +2 -2
  131. package/lib/module/shared/components/screen-container/hooks/use-content-layout.js.map +1 -1
  132. package/lib/module/shared/components/screen-container/layers/backdrop.js +1 -1
  133. package/lib/module/shared/components/screen-container/layers/backdrop.js.map +1 -1
  134. package/lib/module/shared/components/screen-lifecycle/hooks/use-open-transition-intent.js +2 -2
  135. package/lib/module/shared/components/screen-lifecycle/hooks/use-open-transition-intent.js.map +1 -1
  136. package/lib/module/shared/configs/presets.js +5 -8
  137. package/lib/module/shared/configs/presets.js.map +1 -1
  138. package/lib/module/shared/constants.js +17 -1
  139. package/lib/module/shared/constants.js.map +1 -1
  140. package/lib/module/shared/providers/screen/animation/helpers/build-screen-transition-options.js +2 -8
  141. package/lib/module/shared/providers/screen/animation/helpers/build-screen-transition-options.js.map +1 -1
  142. package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/gesture-progress.js +25 -30
  143. package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/gesture-progress.js.map +1 -1
  144. package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js +31 -5
  145. package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
  146. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js +3 -3
  147. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  148. package/lib/module/shared/providers/screen/animation/helpers/stack-progress.js +3 -3
  149. package/lib/module/shared/providers/screen/animation/helpers/stack-progress.js.map +1 -1
  150. package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js +4 -2
  151. package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
  152. package/lib/module/shared/providers/screen/gestures/gestures.provider.js +7 -8
  153. package/lib/module/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
  154. package/lib/module/shared/providers/screen/gestures/hooks/use-stable-runtime-config.js +3 -7
  155. package/lib/module/shared/providers/screen/gestures/hooks/use-stable-runtime-config.js.map +1 -1
  156. package/lib/module/shared/providers/screen/gestures/pan/activation/pan-activation-decision.js +8 -2
  157. package/lib/module/shared/providers/screen/gestures/pan/activation/pan-activation-decision.js.map +1 -1
  158. package/lib/module/shared/providers/screen/gestures/pan/activation/use-pan-activation.js +7 -4
  159. package/lib/module/shared/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
  160. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js +20 -36
  161. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  162. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-release.js +12 -21
  163. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-release.js.map +1 -1
  164. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-reset.js +42 -41
  165. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-reset.js.map +1 -1
  166. package/lib/module/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js +11 -21
  167. package/lib/module/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js.map +1 -1
  168. package/lib/module/shared/providers/screen/gestures/pan/use-build-pan-gesture.js +4 -11
  169. package/lib/module/shared/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
  170. package/lib/module/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js +12 -10
  171. package/lib/module/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js.map +1 -1
  172. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +13 -10
  173. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  174. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-release.js +16 -12
  175. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-release.js.map +1 -1
  176. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-reset.js +30 -25
  177. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-reset.js.map +1 -1
  178. package/lib/module/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js +3 -3
  179. package/lib/module/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js.map +1 -1
  180. package/lib/module/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.js +4 -11
  181. package/lib/module/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.js.map +1 -1
  182. package/lib/module/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js +12 -10
  183. package/lib/module/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js.map +1 -1
  184. package/lib/module/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.js +3 -10
  185. package/lib/module/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.js.map +1 -1
  186. package/lib/module/shared/providers/screen/gestures/scroll-coordination/index.js +1 -0
  187. package/lib/module/shared/providers/screen/gestures/scroll-coordination/index.js.map +1 -1
  188. package/lib/module/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js +33 -0
  189. package/lib/module/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js.map +1 -0
  190. package/lib/module/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.js +48 -12
  191. package/lib/module/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.js.map +1 -1
  192. package/lib/module/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +76 -8
  193. package/lib/module/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
  194. package/lib/module/shared/providers/screen/gestures/shared/physics.js +21 -22
  195. package/lib/module/shared/providers/screen/gestures/shared/physics.js.map +1 -1
  196. package/lib/module/shared/providers/screen/gestures/shared/policy.js +1 -12
  197. package/lib/module/shared/providers/screen/gestures/shared/policy.js.map +1 -1
  198. package/lib/module/shared/providers/screen/gestures/shared/reset.js +17 -8
  199. package/lib/module/shared/providers/screen/gestures/shared/reset.js.map +1 -1
  200. package/lib/module/shared/providers/screen/gestures/shared/snap-points.js +6 -7
  201. package/lib/module/shared/providers/screen/gestures/shared/snap-points.js.map +1 -1
  202. package/lib/module/shared/providers/screen/gestures/shared/snapshot.js +27 -0
  203. package/lib/module/shared/providers/screen/gestures/shared/snapshot.js.map +1 -0
  204. package/lib/module/shared/providers/screen/gestures/shared/values.js +54 -0
  205. package/lib/module/shared/providers/screen/gestures/shared/values.js.map +1 -0
  206. package/lib/module/shared/providers/screen/gestures/types.js +1 -1
  207. package/lib/module/shared/providers/screen/options/helpers.js +2 -20
  208. package/lib/module/shared/providers/screen/options/helpers.js.map +1 -1
  209. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +8 -8
  210. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  211. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -2
  212. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  213. package/lib/module/shared/stores/animation.store.js +6 -6
  214. package/lib/module/shared/stores/animation.store.js.map +1 -1
  215. package/lib/module/shared/stores/gesture.store.js +56 -0
  216. package/lib/module/shared/stores/gesture.store.js.map +1 -1
  217. package/lib/module/shared/stores/scroll.store.js +49 -5
  218. package/lib/module/shared/stores/scroll.store.js.map +1 -1
  219. package/lib/module/shared/types/animation.types.js.map +1 -1
  220. package/lib/module/shared/types/gesture.types.js +23 -0
  221. package/lib/module/shared/types/gesture.types.js.map +1 -1
  222. package/lib/module/shared/utils/animation/animate-to-progress.js +3 -3
  223. package/lib/module/shared/utils/animation/animate-to-progress.js.map +1 -1
  224. package/lib/module/shared/utils/animation/spring/spring.js +7 -3
  225. package/lib/module/shared/utils/animation/spring/spring.js.map +1 -1
  226. package/lib/module/shared/utils/bounds/helpers/prepare-bound-styles.js +1 -1
  227. package/lib/module/shared/utils/bounds/helpers/prepare-bound-styles.js.map +1 -1
  228. package/lib/module/shared/utils/bounds/navigation/reveal/build.js +39 -34
  229. package/lib/module/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
  230. package/lib/module/shared/utils/bounds/navigation/zoom/build.js +37 -28
  231. package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  232. package/lib/typescript/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.d.ts.map +1 -1
  233. package/lib/typescript/shared/components/create-boundary-component/hooks/use-refresh-boundary.d.ts.map +1 -1
  234. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  235. package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts.map +1 -1
  236. package/lib/typescript/shared/configs/presets.d.ts.map +1 -1
  237. package/lib/typescript/shared/constants.d.ts +1 -2
  238. package/lib/typescript/shared/constants.d.ts.map +1 -1
  239. package/lib/typescript/shared/index.d.ts +1 -1
  240. package/lib/typescript/shared/index.d.ts.map +1 -1
  241. package/lib/typescript/shared/providers/screen/animation/helpers/build-screen-transition-options.d.ts.map +1 -1
  242. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/gesture-progress.d.ts +7 -3
  243. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/gesture-progress.d.ts.map +1 -1
  244. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/index.d.ts.map +1 -1
  245. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/types.d.ts +4 -2
  246. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/types.d.ts.map +1 -1
  247. package/lib/typescript/shared/providers/screen/animation/helpers/stack-progress.d.ts +1 -1
  248. package/lib/typescript/shared/providers/screen/animation/helpers/stack-progress.d.ts.map +1 -1
  249. package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts +4 -3
  250. package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts.map +1 -1
  251. package/lib/typescript/shared/providers/screen/gestures/gestures.provider.d.ts.map +1 -1
  252. package/lib/typescript/shared/providers/screen/gestures/hooks/use-stable-runtime-config.d.ts.map +1 -1
  253. package/lib/typescript/shared/providers/screen/gestures/pan/activation/pan-activation-decision.d.ts.map +1 -1
  254. package/lib/typescript/shared/providers/screen/gestures/pan/activation/use-pan-activation.d.ts +3 -3
  255. package/lib/typescript/shared/providers/screen/gestures/pan/activation/use-pan-activation.d.ts.map +1 -1
  256. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.d.ts +2 -2
  257. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.d.ts.map +1 -1
  258. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-release.d.ts.map +1 -1
  259. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-reset.d.ts +3 -12
  260. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-reset.d.ts.map +1 -1
  261. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.d.ts +2 -2
  262. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.d.ts.map +1 -1
  263. package/lib/typescript/shared/providers/screen/gestures/pan/use-build-pan-gesture.d.ts +3 -3
  264. package/lib/typescript/shared/providers/screen/gestures/pan/use-build-pan-gesture.d.ts.map +1 -1
  265. package/lib/typescript/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.d.ts +3 -3
  266. package/lib/typescript/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.d.ts.map +1 -1
  267. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.d.ts.map +1 -1
  268. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-release.d.ts.map +1 -1
  269. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-reset.d.ts.map +1 -1
  270. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.d.ts +2 -2
  271. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.d.ts.map +1 -1
  272. package/lib/typescript/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.d.ts +3 -3
  273. package/lib/typescript/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.d.ts.map +1 -1
  274. package/lib/typescript/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.d.ts +3 -3
  275. package/lib/typescript/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.d.ts.map +1 -1
  276. package/lib/typescript/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.d.ts +3 -3
  277. package/lib/typescript/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.d.ts.map +1 -1
  278. package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/index.d.ts +1 -0
  279. package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/index.d.ts.map +1 -1
  280. package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.d.ts +12 -0
  281. package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.d.ts.map +1 -0
  282. package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.d.ts +5 -1
  283. package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.d.ts.map +1 -1
  284. package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.d.ts +4 -0
  285. package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.d.ts.map +1 -1
  286. package/lib/typescript/shared/providers/screen/gestures/shared/physics.d.ts +3 -3
  287. package/lib/typescript/shared/providers/screen/gestures/shared/physics.d.ts.map +1 -1
  288. package/lib/typescript/shared/providers/screen/gestures/shared/policy.d.ts +1 -3
  289. package/lib/typescript/shared/providers/screen/gestures/shared/policy.d.ts.map +1 -1
  290. package/lib/typescript/shared/providers/screen/gestures/shared/reset.d.ts +7 -4
  291. package/lib/typescript/shared/providers/screen/gestures/shared/reset.d.ts.map +1 -1
  292. package/lib/typescript/shared/providers/screen/gestures/shared/snap-points.d.ts.map +1 -1
  293. package/lib/typescript/shared/providers/screen/gestures/shared/snapshot.d.ts +7 -0
  294. package/lib/typescript/shared/providers/screen/gestures/shared/snapshot.d.ts.map +1 -0
  295. package/lib/typescript/shared/providers/screen/gestures/shared/values.d.ts +9 -0
  296. package/lib/typescript/shared/providers/screen/gestures/shared/values.d.ts.map +1 -0
  297. package/lib/typescript/shared/providers/screen/gestures/types.d.ts +6 -13
  298. package/lib/typescript/shared/providers/screen/gestures/types.d.ts.map +1 -1
  299. package/lib/typescript/shared/providers/screen/options/helpers.d.ts.map +1 -1
  300. package/lib/typescript/shared/providers/screen/options/types.d.ts +0 -2
  301. package/lib/typescript/shared/providers/screen/options/types.d.ts.map +1 -1
  302. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  303. package/lib/typescript/shared/stores/animation.store.d.ts +4 -4
  304. package/lib/typescript/shared/stores/animation.store.d.ts.map +1 -1
  305. package/lib/typescript/shared/stores/gesture.store.d.ts +23 -0
  306. package/lib/typescript/shared/stores/gesture.store.d.ts.map +1 -1
  307. package/lib/typescript/shared/stores/scroll.store.d.ts +15 -8
  308. package/lib/typescript/shared/stores/scroll.store.d.ts.map +1 -1
  309. package/lib/typescript/shared/types/animation.types.d.ts +8 -0
  310. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  311. package/lib/typescript/shared/types/bounds.types.d.ts +12 -8
  312. package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
  313. package/lib/typescript/shared/types/gesture.types.d.ts +64 -14
  314. package/lib/typescript/shared/types/gesture.types.d.ts.map +1 -1
  315. package/lib/typescript/shared/types/index.d.ts +1 -1
  316. package/lib/typescript/shared/types/index.d.ts.map +1 -1
  317. package/lib/typescript/shared/types/screen.types.d.ts +33 -9
  318. package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
  319. package/lib/typescript/shared/utils/animation/spring/spring.d.ts.map +1 -1
  320. package/lib/typescript/shared/utils/bounds/navigation/reveal/build.d.ts.map +1 -1
  321. package/lib/typescript/shared/utils/bounds/navigation/zoom/build.d.ts.map +1 -1
  322. package/lib/typescript/shared/utils/bounds/types/options.d.ts +8 -0
  323. package/lib/typescript/shared/utils/bounds/types/options.d.ts.map +1 -1
  324. package/package.json +1 -1
  325. package/src/shared/animation/snap-to.ts +1 -1
  326. package/src/shared/components/activity/variants/activity-screen.tsx +8 -2
  327. package/src/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.ts +5 -2
  328. package/src/shared/components/create-boundary-component/hooks/use-measurer.ts +1 -1
  329. package/src/shared/components/create-boundary-component/hooks/use-refresh-boundary.ts +4 -1
  330. package/src/shared/components/create-transition-aware-component.tsx +14 -6
  331. package/src/shared/components/overlay/variations/float-overlay.tsx +11 -5
  332. package/src/shared/components/screen-container/hooks/use-content-layout.ts +2 -2
  333. package/src/shared/components/screen-container/layers/backdrop.tsx +1 -1
  334. package/src/shared/components/screen-lifecycle/hooks/use-open-transition-intent.ts +2 -2
  335. package/src/shared/configs/presets.ts +6 -8
  336. package/src/shared/constants.ts +16 -6
  337. package/src/shared/index.ts +6 -0
  338. package/src/shared/providers/screen/animation/helpers/build-screen-transition-options.ts +2 -17
  339. package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/gesture-progress.ts +54 -53
  340. package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/index.ts +74 -8
  341. package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/types.ts +4 -2
  342. package/src/shared/providers/screen/animation/helpers/pipeline.ts +3 -3
  343. package/src/shared/providers/screen/animation/helpers/stack-progress.ts +3 -3
  344. package/src/shared/providers/screen/animation/helpers/use-build-transition-state.ts +8 -4
  345. package/src/shared/providers/screen/gestures/gestures.provider.tsx +8 -10
  346. package/src/shared/providers/screen/gestures/hooks/use-stable-runtime-config.ts +2 -5
  347. package/src/shared/providers/screen/gestures/pan/activation/pan-activation-decision.ts +11 -2
  348. package/src/shared/providers/screen/gestures/pan/activation/use-pan-activation.ts +9 -7
  349. package/src/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.ts +25 -38
  350. package/src/shared/providers/screen/gestures/pan/behavior/pan-release.ts +23 -25
  351. package/src/shared/providers/screen/gestures/pan/behavior/pan-reset.ts +45 -77
  352. package/src/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.ts +12 -20
  353. package/src/shared/providers/screen/gestures/pan/use-build-pan-gesture.ts +5 -11
  354. package/src/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.ts +14 -16
  355. package/src/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.ts +13 -9
  356. package/src/shared/providers/screen/gestures/pinch/behavior/pinch-release.ts +31 -16
  357. package/src/shared/providers/screen/gestures/pinch/behavior/pinch-reset.ts +32 -41
  358. package/src/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.ts +4 -4
  359. package/src/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.ts +5 -10
  360. package/src/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.ts +14 -13
  361. package/src/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.ts +4 -9
  362. package/src/shared/providers/screen/gestures/scroll-coordination/index.ts +1 -0
  363. package/src/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.tsx +43 -0
  364. package/src/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.ts +59 -4
  365. package/src/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.ts +130 -8
  366. package/src/shared/providers/screen/gestures/shared/physics.ts +15 -32
  367. package/src/shared/providers/screen/gestures/shared/policy.ts +0 -15
  368. package/src/shared/providers/screen/gestures/shared/reset.ts +33 -11
  369. package/src/shared/providers/screen/gestures/shared/snap-points.ts +8 -7
  370. package/src/shared/providers/screen/gestures/shared/snapshot.ts +33 -0
  371. package/src/shared/providers/screen/gestures/shared/values.ts +52 -0
  372. package/src/shared/providers/screen/gestures/types.ts +6 -13
  373. package/src/shared/providers/screen/options/helpers.ts +0 -44
  374. package/src/shared/providers/screen/options/types.ts +0 -2
  375. package/src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +8 -8
  376. package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +3 -2
  377. package/src/shared/stores/animation.store.ts +8 -8
  378. package/src/shared/stores/gesture.store.ts +81 -0
  379. package/src/shared/stores/scroll.store.ts +80 -7
  380. package/src/shared/types/animation.types.ts +9 -0
  381. package/src/shared/types/bounds.types.ts +12 -8
  382. package/src/shared/types/gesture.types.ts +66 -15
  383. package/src/shared/types/index.ts +6 -0
  384. package/src/shared/types/screen.types.ts +33 -8
  385. package/src/shared/utils/animation/animate-to-progress.ts +3 -3
  386. package/src/shared/utils/animation/spring/spring.ts +7 -3
  387. package/src/shared/utils/bounds/helpers/prepare-bound-styles.ts +1 -1
  388. package/src/shared/utils/bounds/navigation/reveal/build.ts +42 -46
  389. package/src/shared/utils/bounds/navigation/zoom/build.ts +36 -33
  390. package/src/shared/utils/bounds/types/options.ts +9 -0
  391. package/lib/commonjs/shared/providers/screen/gestures/hooks/use-gesture-builder-state.js +0 -32
  392. package/lib/commonjs/shared/providers/screen/gestures/hooks/use-gesture-builder-state.js.map +0 -1
  393. package/lib/commonjs/shared/utils/gesture-progress-mode.js +0 -50
  394. package/lib/commonjs/shared/utils/gesture-progress-mode.js.map +0 -1
  395. package/lib/module/shared/providers/screen/gestures/hooks/use-gesture-builder-state.js +0 -27
  396. package/lib/module/shared/providers/screen/gestures/hooks/use-gesture-builder-state.js.map +0 -1
  397. package/lib/module/shared/utils/gesture-progress-mode.js +0 -42
  398. package/lib/module/shared/utils/gesture-progress-mode.js.map +0 -1
  399. package/lib/typescript/shared/providers/screen/gestures/hooks/use-gesture-builder-state.d.ts +0 -21
  400. package/lib/typescript/shared/providers/screen/gestures/hooks/use-gesture-builder-state.d.ts.map +0 -1
  401. package/lib/typescript/shared/utils/gesture-progress-mode.d.ts +0 -14
  402. package/lib/typescript/shared/utils/gesture-progress-mode.d.ts.map +0 -1
  403. package/src/shared/providers/screen/gestures/hooks/use-gesture-builder-state.ts +0 -31
  404. package/src/shared/utils/gesture-progress-mode.ts +0 -67
@@ -16,11 +16,11 @@ import type {
16
16
  } from "../../../types/animation.types";
17
17
  import type {
18
18
  GestureDirections,
19
- GestureProgressMode,
20
19
  ResolvedGestureActivationArea,
21
20
  ScrollGestureAxis,
22
21
  ScrollGestureAxisState,
23
22
  ScrollGestureState,
23
+ ScrollMetadataState,
24
24
  SnapPanDirectionConfig,
25
25
  SnapPinchDirectionConfig,
26
26
  } from "../../../types/gesture.types";
@@ -48,14 +48,14 @@ export type RotationGestureEvent =
48
48
  | GestureUpdateEvent<RotationGestureHandlerEventPayload>
49
49
  | GestureStateChangeEvent<RotationGestureHandlerEventPayload>;
50
50
 
51
- /** Gesture that initiated the current simultaneous gesture composition. */
52
- export type GestureCompositionActivation = "pan" | "pinch" | null;
51
+ /** Gesture that owns navigation release for the current simultaneous composition. */
52
+ export type GestureCompositionOwner = "pan" | "pinch" | null;
53
53
 
54
54
  export type {
55
- GestureProgressMode,
56
55
  ScrollGestureAxis,
57
56
  ScrollGestureAxisState,
58
57
  ScrollGestureState,
58
+ ScrollMetadataState,
59
59
  };
60
60
 
61
61
  export type DirectionClaim = {
@@ -112,7 +112,6 @@ export interface PanGesturePolicy {
112
112
  gestureDirection: NonNullable<ScreenTransitionConfig["gestureDirection"]>;
113
113
  panActivationDirections: GestureDirections;
114
114
  snapAxisDirections: SnapPanDirectionConfig;
115
- gestureProgressMode: GestureProgressMode;
116
115
  gestureSensitivity: NonNullable<ScreenTransitionConfig["gestureSensitivity"]>;
117
116
  gestureVelocityImpact: number;
118
117
  gestureSnapVelocityImpact: number;
@@ -132,7 +131,6 @@ export interface PinchGesturePolicy {
132
131
  snapDirections: SnapPinchDirectionConfig;
133
132
  pinchInEnabled: boolean;
134
133
  pinchOutEnabled: boolean;
135
- gestureProgressMode: GestureProgressMode;
136
134
  gestureSensitivity: NonNullable<ScreenTransitionConfig["gestureSensitivity"]>;
137
135
  gestureSnapVelocityImpact: number;
138
136
  gestureSnapLocked: boolean;
@@ -152,8 +150,6 @@ export interface GestureRuntime<TPolicy extends GesturePolicy> {
152
150
  participation: ScreenGestureParticipation;
153
151
  policy: TPolicy;
154
152
  stores: GestureRuntimeStores;
155
- gestureProgressBaseline: SharedValue<number>;
156
- lockedSnapPoint: SharedValue<number>;
157
153
  }
158
154
 
159
155
  export type PanGestureRuntime = GestureRuntime<PanGesturePolicy>;
@@ -185,7 +181,6 @@ export interface PanReleaseResult {
185
181
  shouldDismiss: boolean;
186
182
  initialVelocity: number;
187
183
  commitProgress?: number;
188
- resetNormalizedValuesImmediately?: boolean;
189
184
  transitionSpec: TransitionSpec | undefined;
190
185
  resetSpec: AnimationConfig | undefined;
191
186
  }
@@ -198,10 +193,7 @@ export interface PanReleasePlan {
198
193
  resetVelocityY: number;
199
194
  resetVelocityNormX: number;
200
195
  resetVelocityNormY: number;
201
- releaseVelocity: number;
202
- resetNormalizedValues: boolean;
203
- resetNormalizedValuesImmediately: boolean;
204
- preserveRawValues: boolean;
196
+ handoffVelocity: number;
205
197
  commitProgress?: number;
206
198
  transitionSpec: TransitionSpec | undefined;
207
199
  resetSpec: AnimationConfig | undefined;
@@ -211,6 +203,7 @@ export interface PinchReleaseResult {
211
203
  target: number;
212
204
  shouldDismiss: boolean;
213
205
  initialVelocity: number;
206
+ handoffVelocity: number;
214
207
  commitProgress?: number;
215
208
  resetValuesImmediately?: boolean;
216
209
  transitionSpec: TransitionSpec | undefined;
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  DEFAULT_GESTURE_ACTIVATION_AREA,
3
3
  DEFAULT_GESTURE_DIRECTION,
4
- DEFAULT_GESTURE_PROGRESS_MODE,
5
4
  DEFAULT_GESTURE_RELEASE_VELOCITY_SCALE,
6
5
  DEFAULT_GESTURE_SENSITIVITY,
7
6
  DEFAULT_GESTURE_SNAP_LOCKED,
@@ -20,11 +19,6 @@ import type {
20
19
  TransitionInterpolatedStyle,
21
20
  } from "../../../types";
22
21
  import type { BackdropBehavior } from "../../../types/screen.types";
23
- import {
24
- gestureProgressModeDrivesProgress,
25
- isGestureProgressMode,
26
- resolveGestureProgressMode,
27
- } from "../../../utils/gesture-progress-mode";
28
22
  import { resolveSheetScrollGestureBehavior } from "../../../utils/resolve-screen-transition-options";
29
23
  import type {
30
24
  RequiredScreenOption,
@@ -186,25 +180,6 @@ const resolveBackdropBehaviorOption = (
186
180
  : fallback;
187
181
  };
188
182
 
189
- const resolveGestureProgressModeOption = (
190
- gestureProgressMode: unknown,
191
- gestureDrivesProgress: unknown,
192
- fallback: RequiredScreenOption<"gestureProgressMode">,
193
- ): RequiredScreenOption<"gestureProgressMode"> => {
194
- "worklet";
195
- if (isGestureProgressMode(gestureProgressMode)) {
196
- return gestureProgressMode;
197
- }
198
-
199
- return resolveGestureProgressMode({
200
- gestureDrivesProgress:
201
- typeof gestureDrivesProgress === "boolean"
202
- ? gestureDrivesProgress
203
- : undefined,
204
- fallback,
205
- });
206
- };
207
-
208
183
  const areGestureActivationAreasEqual = (
209
184
  left: RequiredScreenOption<"gestureActivationArea">,
210
185
  right: RequiredScreenOption<"gestureActivationArea">,
@@ -282,8 +257,6 @@ const areScreenOptionsEqual = (
282
257
  left.gestureSnapVelocityImpact === right.gestureSnapVelocityImpact &&
283
258
  left.gestureReleaseVelocityScale === right.gestureReleaseVelocityScale &&
284
259
  left.gestureResponseDistance === right.gestureResponseDistance &&
285
- left.gestureProgressMode === right.gestureProgressMode &&
286
- left.gestureDrivesProgress === right.gestureDrivesProgress &&
287
260
  areGestureActivationAreasEqual(
288
261
  left.gestureActivationArea,
289
262
  right.gestureActivationArea,
@@ -299,12 +272,6 @@ const areScreenOptionsEqual = (
299
272
  export const resolveBaseScreenOptions = (
300
273
  options: ScreenTransitionConfig,
301
274
  ): ScreenOptionsSnapshot => {
302
- const gestureProgressMode = resolveGestureProgressModeOption(
303
- options.gestureProgressMode,
304
- options.gestureDrivesProgress,
305
- DEFAULT_GESTURE_PROGRESS_MODE,
306
- );
307
-
308
275
  return {
309
276
  navigationMaskEnabled: resolveBooleanOption(
310
277
  options.navigationMaskEnabled,
@@ -339,9 +306,6 @@ export const resolveBaseScreenOptions = (
339
306
  options.gestureResponseDistance,
340
307
  undefined,
341
308
  ),
342
- gestureProgressMode,
343
- gestureDrivesProgress:
344
- gestureProgressModeDrivesProgress(gestureProgressMode),
345
309
  gestureActivationArea: resolveGestureActivationAreaOption(
346
310
  options.gestureActivationArea,
347
311
  DEFAULT_GESTURE_ACTIVATION_AREA,
@@ -384,11 +348,6 @@ export const syncScreenOptionsOverrides = (
384
348
  "worklet";
385
349
  const options = raw?.options;
386
350
  const base = screenOptions.get().baseOptions;
387
- const gestureProgressMode = resolveGestureProgressModeOption(
388
- options?.gestureProgressMode,
389
- options?.gestureDrivesProgress,
390
- base.gestureProgressMode,
391
- );
392
351
 
393
352
  const next: ScreenOptionsState = {
394
353
  navigationMaskEnabled: base.navigationMaskEnabled,
@@ -421,9 +380,6 @@ export const syncScreenOptionsOverrides = (
421
380
  options?.gestureResponseDistance,
422
381
  base.gestureResponseDistance,
423
382
  ),
424
- gestureProgressMode,
425
- gestureDrivesProgress:
426
- gestureProgressModeDrivesProgress(gestureProgressMode),
427
383
  gestureActivationArea: resolveGestureActivationAreaOption(
428
384
  options?.gestureActivationArea,
429
385
  base.gestureActivationArea,
@@ -18,8 +18,6 @@ export type ScreenOptionsSnapshot = {
18
18
  gestureSnapVelocityImpact: RequiredScreenOption<"gestureSnapVelocityImpact">;
19
19
  gestureReleaseVelocityScale: RequiredScreenOption<"gestureReleaseVelocityScale">;
20
20
  gestureResponseDistance: OptionalScreenOption<"gestureResponseDistance">;
21
- gestureProgressMode: RequiredScreenOption<"gestureProgressMode">;
22
- gestureDrivesProgress: RequiredScreenOption<"gestureDrivesProgress">;
23
21
  gestureActivationArea: RequiredScreenOption<"gestureActivationArea">;
24
22
  gestureSnapLocked: RequiredScreenOption<"gestureSnapLocked">;
25
23
  sheetScrollGestureBehavior: RequiredScreenOption<"sheetScrollGestureBehavior">;
@@ -197,19 +197,19 @@ export const useInterpolatedStylesMap = () => {
197
197
  const interpolatorOptionsOwner =
198
198
  isInGestureMode || !nextInterpolator ? "current" : "next";
199
199
 
200
- let effectiveProgress = progress;
201
- let effectiveNext = next;
200
+ let selectedProgress = progress;
201
+ let selectedNext = next;
202
202
 
203
203
  if (isInGestureMode) {
204
- effectiveProgress = current.progress;
205
- effectiveNext = undefined;
204
+ selectedProgress = current.progress;
205
+ selectedNext = undefined;
206
206
  }
207
207
 
208
208
  const currentResult = runInterpolator({
209
209
  interpolator: currentInterpolator,
210
210
  props,
211
- progress: effectiveProgress,
212
- next: effectiveNext,
211
+ progress: selectedProgress,
212
+ next: selectedNext,
213
213
  bounds: boundsAccessor,
214
214
  transition,
215
215
  shouldDeferStyleBuckets,
@@ -233,8 +233,8 @@ export const useInterpolatedStylesMap = () => {
233
233
  const nextResult = runInterpolator({
234
234
  interpolator: nextInterpolator,
235
235
  props,
236
- progress: effectiveProgress,
237
- next: effectiveNext,
236
+ progress: selectedProgress,
237
+ next: selectedNext,
238
238
  bounds: boundsAccessor,
239
239
  transition,
240
240
  shouldDeferStyleBuckets,
@@ -14,7 +14,8 @@ import { resolveScreenVisibilityGate } from "../helpers/visibility-gate";
14
14
  export const useMaybeBlockVisibility = (isFloatingOverlay?: boolean) => {
15
15
  const { height } = useWindowDimensions();
16
16
  const { currentScreenKey } = useDescriptorDerivations();
17
- const { entering, progress } = AnimationStore.getBag(currentScreenKey);
17
+ const { entering, transitionProgress } =
18
+ AnimationStore.getBag(currentScreenKey);
18
19
 
19
20
  const { pendingLifecycleStartBlockCount, pendingLifecycleRequestKind } =
20
21
  SystemStore.getBag(currentScreenKey);
@@ -40,7 +41,7 @@ export const useMaybeBlockVisibility = (isFloatingOverlay?: boolean) => {
40
41
  hasVisibilityGateOpened: hasVisibilityGateOpened.get(),
41
42
  pendingLifecycleStartBlockCount: pendingLifecycleStartBlockCount.get(),
42
43
  pendingLifecycleRequestKind: pendingLifecycleRequestKind.get(),
43
- progress: progress.get(),
44
+ progress: transitionProgress.get(),
44
45
  entering: entering.get(),
45
46
  });
46
47
  },
@@ -6,8 +6,8 @@ import {
6
6
  import { createStore } from "../utils/create-store";
7
7
 
8
8
  export type AnimationStoreMap = {
9
- progress: SharedValue<number>;
10
- effectiveProgress: SharedValue<number>;
9
+ transitionProgress: SharedValue<number>;
10
+ visualProgress: SharedValue<number>;
11
11
  willAnimate: SharedValue<number>;
12
12
  progressAnimating: SharedValue<number>;
13
13
  progressSettled: SharedValue<number>;
@@ -17,8 +17,8 @@ export type AnimationStoreMap = {
17
17
 
18
18
  function createAnimationBag(): AnimationStoreMap {
19
19
  return {
20
- progress: makeMutable(0),
21
- effectiveProgress: makeMutable(0),
20
+ transitionProgress: makeMutable(0),
21
+ visualProgress: makeMutable(0),
22
22
  willAnimate: makeMutable(0),
23
23
  closing: makeMutable(0),
24
24
  progressAnimating: makeMutable(0),
@@ -29,14 +29,14 @@ function createAnimationBag(): AnimationStoreMap {
29
29
 
30
30
  /**
31
31
  * Route-keyed screen transition state for the public animation lifecycle.
32
- * `progress` tracks committed transition progress; `effectiveProgress` tracks
33
- * the hydrated progress after live gesture policy is applied.
32
+ * `transitionProgress` tracks committed transition progress; `visualProgress`
33
+ * tracks hydrated progress after live gestures are applied.
34
34
  */
35
35
  export const AnimationStore = createStore<AnimationStoreMap>({
36
36
  createBag: createAnimationBag,
37
37
  disposeBag: (bag) => {
38
- cancelAnimation(bag.progress);
39
- cancelAnimation(bag.effectiveProgress);
38
+ cancelAnimation(bag.transitionProgress);
39
+ cancelAnimation(bag.visualProgress);
40
40
  cancelAnimation(bag.willAnimate);
41
41
  cancelAnimation(bag.progressAnimating);
42
42
  cancelAnimation(bag.progressSettled);
@@ -19,6 +19,30 @@ type GestureRawStoreMap = {
19
19
  rotation: SharedValue<number>;
20
20
  };
21
21
 
22
+ type GestureSnapshotStoreMap = {
23
+ x: SharedValue<number>;
24
+ y: SharedValue<number>;
25
+ normX: SharedValue<number>;
26
+ normY: SharedValue<number>;
27
+ velocity: SharedValue<number>;
28
+ scale: SharedValue<number>;
29
+ normScale: SharedValue<number>;
30
+ focalX: SharedValue<number>;
31
+ focalY: SharedValue<number>;
32
+ rotation: SharedValue<number>;
33
+ raw: GestureRawStoreMap;
34
+ active: SharedValue<ActiveGesture | null>;
35
+ direction: SharedValue<ResolvedPanGestureDirection | null>;
36
+ };
37
+
38
+ type GestureInternalStoreMap = {
39
+ progressBaseline: SharedValue<number>;
40
+ progressDeltaX: SharedValue<number>;
41
+ progressDeltaY: SharedValue<number>;
42
+ lockedSnapPoint: SharedValue<number | null>;
43
+ snapshot: GestureSnapshotStoreMap;
44
+ };
45
+
22
46
  export type GestureStoreMap = {
23
47
  x: SharedValue<number>;
24
48
  y: SharedValue<number>;
@@ -31,6 +55,7 @@ export type GestureStoreMap = {
31
55
  focalY: SharedValue<number>;
32
56
  rotation: SharedValue<number>;
33
57
  raw: GestureRawStoreMap;
58
+ internal: GestureInternalStoreMap;
34
59
  dismissing: SharedValue<number>;
35
60
  dragging: SharedValue<number>;
36
61
  settling: SharedValue<number>;
@@ -57,6 +82,10 @@ export type GestureStoreMap = {
57
82
  };
58
83
 
59
84
  function createGestureBag(): GestureStoreMap {
85
+ const progressBaseline = makeMutable(0);
86
+ const progressDeltaX = makeMutable(0);
87
+ const progressDeltaY = makeMutable(0);
88
+ const lockedSnapPoint = makeMutable<number | null>(null);
60
89
  const normX = makeMutable(0);
61
90
  const normY = makeMutable(0);
62
91
  const scale = makeMutable(1);
@@ -86,6 +115,35 @@ function createGestureBag(): GestureStoreMap {
86
115
  normScale: makeMutable(0),
87
116
  rotation: makeMutable(0),
88
117
  },
118
+ internal: {
119
+ progressBaseline,
120
+ progressDeltaX,
121
+ progressDeltaY,
122
+ lockedSnapPoint,
123
+ snapshot: {
124
+ x: makeMutable(0),
125
+ y: makeMutable(0),
126
+ normX: makeMutable(0),
127
+ normY: makeMutable(0),
128
+ velocity: makeMutable(0),
129
+ scale: makeMutable(1),
130
+ normScale: makeMutable(0),
131
+ focalX: makeMutable(0),
132
+ focalY: makeMutable(0),
133
+ rotation: makeMutable(0),
134
+ raw: {
135
+ x: makeMutable(0),
136
+ y: makeMutable(0),
137
+ normX: makeMutable(0),
138
+ normY: makeMutable(0),
139
+ scale: makeMutable(1),
140
+ normScale: makeMutable(0),
141
+ rotation: makeMutable(0),
142
+ },
143
+ active: makeMutable<ActiveGesture | null>(null),
144
+ direction: makeMutable<ResolvedPanGestureDirection | null>(null),
145
+ },
146
+ },
89
147
  dismissing,
90
148
  dragging,
91
149
  settling,
@@ -127,6 +185,29 @@ export const GestureStore = createStore<GestureStoreMap>({
127
185
  cancelAnimation(bag.raw.scale);
128
186
  cancelAnimation(bag.raw.normScale);
129
187
  cancelAnimation(bag.raw.rotation);
188
+ cancelAnimation(bag.internal.progressBaseline);
189
+ cancelAnimation(bag.internal.progressDeltaX);
190
+ cancelAnimation(bag.internal.progressDeltaY);
191
+ cancelAnimation(bag.internal.lockedSnapPoint);
192
+ cancelAnimation(bag.internal.snapshot.x);
193
+ cancelAnimation(bag.internal.snapshot.y);
194
+ cancelAnimation(bag.internal.snapshot.normX);
195
+ cancelAnimation(bag.internal.snapshot.normY);
196
+ cancelAnimation(bag.internal.snapshot.velocity);
197
+ cancelAnimation(bag.internal.snapshot.scale);
198
+ cancelAnimation(bag.internal.snapshot.normScale);
199
+ cancelAnimation(bag.internal.snapshot.focalX);
200
+ cancelAnimation(bag.internal.snapshot.focalY);
201
+ cancelAnimation(bag.internal.snapshot.rotation);
202
+ cancelAnimation(bag.internal.snapshot.raw.x);
203
+ cancelAnimation(bag.internal.snapshot.raw.y);
204
+ cancelAnimation(bag.internal.snapshot.raw.normX);
205
+ cancelAnimation(bag.internal.snapshot.raw.normY);
206
+ cancelAnimation(bag.internal.snapshot.raw.scale);
207
+ cancelAnimation(bag.internal.snapshot.raw.normScale);
208
+ cancelAnimation(bag.internal.snapshot.raw.rotation);
209
+ cancelAnimation(bag.internal.snapshot.active);
210
+ cancelAnimation(bag.internal.snapshot.direction);
130
211
  cancelAnimation(bag.dismissing);
131
212
  cancelAnimation(bag.dragging);
132
213
  cancelAnimation(bag.settling);
@@ -3,23 +3,96 @@ import {
3
3
  makeMutable,
4
4
  type SharedValue,
5
5
  } from "react-native-reanimated";
6
- import type { ScrollGestureState } from "../types/gesture.types";
6
+ import type {
7
+ ScrollGestureAxis,
8
+ ScrollGestureState,
9
+ ScrollMetadataState,
10
+ } from "../types/gesture.types";
11
+ import type { ScreenKey } from "../types/screen.types";
7
12
  import { createStore } from "../utils/create-store";
8
13
 
9
14
  export type ScrollStoreMap = {
10
- state: SharedValue<ScrollGestureState | null>;
15
+ coordination: SharedValue<ScrollGestureState | null>;
16
+ metadata: SharedValue<ScrollMetadataState | null>;
17
+ };
18
+
19
+ const metadataWriters: Record<
20
+ ScreenKey,
21
+ Partial<Record<ScrollGestureAxis, string>>
22
+ > = {};
23
+
24
+ let nextMetadataWriterId = 0;
25
+
26
+ const createMetadataWriterId = () => {
27
+ nextMetadataWriterId += 1;
28
+ return `scroll-metadata-${nextMetadataWriterId}`;
29
+ };
30
+
31
+ const claimMetadataWriter = (
32
+ routeKey: ScreenKey,
33
+ axis: ScrollGestureAxis,
34
+ writerId: string,
35
+ ): boolean => {
36
+ const writers = metadataWriters[routeKey] ?? {};
37
+ metadataWriters[routeKey] = writers;
38
+
39
+ if (!writers[axis]) {
40
+ writers[axis] = writerId;
41
+ }
42
+
43
+ return writers[axis] === writerId;
44
+ };
45
+
46
+ const releaseMetadataWriter = (
47
+ routeKey: ScreenKey,
48
+ axis: ScrollGestureAxis,
49
+ writerId: string,
50
+ ): boolean => {
51
+ const writers = metadataWriters[routeKey];
52
+ if (!writers || writers[axis] !== writerId) return false;
53
+
54
+ delete writers[axis];
55
+
56
+ if (!writers.vertical && !writers.horizontal) {
57
+ delete metadataWriters[routeKey];
58
+ }
59
+
60
+ return true;
61
+ };
62
+
63
+ const hasMetadataWriters = (routeKey: ScreenKey): boolean => {
64
+ const writers = metadataWriters[routeKey];
65
+ return Boolean(writers?.vertical || writers?.horizontal);
66
+ };
67
+
68
+ const clearMetadataWriters = (routeKey: ScreenKey) => {
69
+ delete metadataWriters[routeKey];
11
70
  };
12
71
 
13
72
  /**
14
73
  * Route-keyed scroll geometry used by gesture activation and bounds measurement.
15
- * The state tracks coordinated ScrollView offsets and dimensions so consumers
16
- * can reason about overscroll without coupling to a specific scroll component.
74
+ * Coordination tracks gesture-owner scoped ScrollView offsets and dimensions;
75
+ * metadata tracks screen-scoped scroll values exposed to animation consumers.
17
76
  */
18
- export const ScrollStore = createStore<ScrollStoreMap>({
77
+ const scrollStore = createStore<ScrollStoreMap>({
19
78
  createBag: () => ({
20
- state: makeMutable<ScrollGestureState | null>(null),
79
+ coordination: makeMutable<ScrollGestureState | null>(null),
80
+ metadata: makeMutable<ScrollMetadataState | null>(null),
21
81
  }),
22
82
  disposeBag: (bag) => {
23
- cancelAnimation(bag.state);
83
+ cancelAnimation(bag.coordination);
84
+ cancelAnimation(bag.metadata);
24
85
  },
25
86
  });
87
+
88
+ export const ScrollStore = {
89
+ ...scrollStore,
90
+ createMetadataWriterId,
91
+ claimMetadataWriter,
92
+ releaseMetadataWriter,
93
+ hasMetadataWriters,
94
+ clearBag(routeKey: ScreenKey) {
95
+ clearMetadataWriters(routeKey);
96
+ scrollStore.clearBag(routeKey);
97
+ },
98
+ };
@@ -48,6 +48,15 @@ export type ScreenTransitionState = {
48
48
  */
49
49
  progress: number;
50
50
 
51
+ /**
52
+ * Transition progress without live gesture contribution.
53
+ *
54
+ * `progress` is always the visual progress, including live pan or pinch
55
+ * movement. Use `transitionProgress` when an interpolator needs the committed
56
+ * transition progress as if the current gesture were not active.
57
+ */
58
+ transitionProgress: number;
59
+
51
60
  /**
52
61
  * Whether this screen is in the process of being dismissed.
53
62
  * - `0`: Screen is opening or active
@@ -98,11 +98,13 @@ export type BoundsNavigationZoomOptions = {
98
98
  */
99
99
  velocityDepth?: number;
100
100
  /**
101
- * Whether gesture displacement should drive transition progress or remain as
102
- * freeform gesture values. Zoom defaults to `"freeform"` so drag can move the
103
- * content without owning the whole screen progress.
101
+ * Deprecated compatibility option.
104
102
  *
105
- * @default "freeform"
103
+ * Gesture movement now always contributes to `progress`; use `transitionProgress`
104
+ * when a recipe needs transition progress without live gesture contribution.
105
+ * The zoom helper no longer reads this option.
106
+ *
107
+ * @deprecated Use `transitionProgress` from interpolation state instead.
106
108
  */
107
109
  gestureProgressMode?: GestureProgressMode;
108
110
  /**
@@ -224,11 +226,13 @@ export type BoundsNavigationRevealOptions = {
224
226
  */
225
227
  velocityDepth?: number;
226
228
  /**
227
- * Whether gesture displacement should drive transition progress or remain as
228
- * freeform gesture values. Reveal defaults to `"freeform"` so drag can move
229
- * the masked container without owning the whole screen progress.
229
+ * Deprecated compatibility option.
230
+ *
231
+ * Gesture movement now always contributes to `progress`; use `transitionProgress`
232
+ * when a recipe needs transition progress without live gesture contribution.
233
+ * The reveal helper no longer reads this option.
230
234
  *
231
- * @default "freeform"
235
+ * @deprecated Use `transitionProgress` from interpolation state instead.
232
236
  */
233
237
  gestureProgressMode?: GestureProgressMode;
234
238
  /**
@@ -20,18 +20,35 @@ export type GestureProgressMode = "progress-driven" | "freeform";
20
20
 
21
21
  export type SnapPanAxis = "horizontal" | "vertical";
22
22
 
23
+ /**
24
+ * Axis reported by a transition-aware scrollable.
25
+ */
23
26
  export type ScrollGestureAxis = "vertical" | "horizontal";
24
27
 
28
+ /**
29
+ * Scroll geometry for one axis of a transition-aware scrollable.
30
+ */
25
31
  export type ScrollGestureAxisState = {
26
32
  offset: number;
27
33
  contentSize: number;
28
34
  layoutSize: number;
35
+ isTouched: boolean;
29
36
  };
30
37
 
38
+ /**
39
+ * Scroll metadata exposed through screen transition layouts.
40
+ */
41
+ export type ScrollMetadataState = {
42
+ vertical: ScrollGestureAxisState | null;
43
+ horizontal: ScrollGestureAxisState | null;
44
+ };
45
+
46
+ /**
47
+ * Scroll geometry used by gesture coordination.
48
+ */
31
49
  export type ScrollGestureState = {
32
50
  vertical: ScrollGestureAxisState;
33
51
  horizontal: ScrollGestureAxisState;
34
- isTouched: boolean;
35
52
  };
36
53
 
37
54
  export type SnapPanAxisConfig = {
@@ -117,6 +134,36 @@ export type RawGestureValues = {
117
134
  rotation: number;
118
135
  };
119
136
 
137
+ /**
138
+ * Gesture values used when a release hands off into a dismiss animation.
139
+ *
140
+ * These match live gesture values while a screen is not dismissing, then read
141
+ * from the release snapshot while dismissal is in flight.
142
+ */
143
+ export type GestureHandoffValues = {
144
+ x: number;
145
+ y: number;
146
+ normX: number;
147
+ normY: number;
148
+ velocity: number;
149
+ scale: number;
150
+ normScale: number;
151
+ focalX: number;
152
+ focalY: number;
153
+ rotation: number;
154
+ raw: RawGestureValues;
155
+ /**
156
+ * The gesture associated with the handoff values.
157
+ */
158
+ active: ActiveGesture | null;
159
+ /**
160
+ * The pan direction associated with the handoff values.
161
+ *
162
+ * @deprecated Use `active` instead.
163
+ */
164
+ direction: ResolvedPanGestureDirection | null;
165
+ };
166
+
120
167
  export type GestureValues = {
121
168
  /**
122
169
  * The live horizontal translation of the gesture.
@@ -137,9 +184,6 @@ export type GestureValues = {
137
184
  /**
138
185
  * A 0-1 scalar derived from the pan velocity magnitude, normalized against
139
186
  * a screen-relative full-flick threshold.
140
- *
141
- * This is live while dragging, frozen at release during dismiss animations,
142
- * and reset to 0 while idle or settling from a cancelled gesture.
143
187
  */
144
188
  velocity: number;
145
189
  /**
@@ -166,6 +210,24 @@ export type GestureValues = {
166
210
  * Physical gesture values before `gestureSensitivity` is applied.
167
211
  */
168
212
  raw: RawGestureValues;
213
+ /**
214
+ * The gesture that is currently active.
215
+ */
216
+ active: ActiveGesture | null;
217
+ /**
218
+ * The initial pan direction that activated the gesture.
219
+ *
220
+ * @deprecated Use `active` instead.
221
+ */
222
+ direction: ResolvedPanGestureDirection | null;
223
+ /**
224
+ * Gesture values latched at the release boundary for animation handoff.
225
+ *
226
+ * While dragging, these values match the live gesture values. During a
227
+ * dismissing release, they read from the release snapshot so live gesture
228
+ * values can reset without breaking handoff animations.
229
+ */
230
+ handoff: GestureHandoffValues;
169
231
  /**
170
232
  * A flag indicating if the screen is in the process of dismissing (0 or 1).
171
233
  */
@@ -178,17 +240,6 @@ export type GestureValues = {
178
240
  * A flag indicating if released gesture values are animating back to neutral.
179
241
  */
180
242
  settling: number;
181
- /**
182
- * The gesture that is currently active.
183
- */
184
- active: ActiveGesture | null;
185
- /**
186
- * The initial pan direction that activated the gesture.
187
- *
188
- * @deprecated Use `active` instead.
189
- */
190
- direction: ResolvedPanGestureDirection | null;
191
-
192
243
  /** @deprecated Use `normX` instead. */
193
244
  normalizedX: number;
194
245
  /** @deprecated Use `normY` instead. */