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
@@ -2,10 +2,6 @@ import type {
2
2
  ScreenTransitionConfig,
3
3
  ScreenTransitionOptions,
4
4
  } from "../../../../types";
5
- import {
6
- gestureProgressModeDrivesProgress,
7
- resolveGestureProgressMode,
8
- } from "../../../../utils/gesture-progress-mode";
9
5
  import { resolveSheetScrollGestureBehavior } from "../../../../utils/resolve-screen-transition-options";
10
6
 
11
7
  export const buildScreenTransitionOptions = (
@@ -14,15 +10,6 @@ export const buildScreenTransitionOptions = (
14
10
  const hasSheetScrollGestureBehavior =
15
11
  options.sheetScrollGestureBehavior !== undefined ||
16
12
  options.expandViaScrollView !== undefined;
17
- const hasGestureProgressMode =
18
- options.gestureProgressMode !== undefined ||
19
- options.gestureDrivesProgress !== undefined;
20
- const gestureProgressMode = hasGestureProgressMode
21
- ? resolveGestureProgressMode({
22
- gestureProgressMode: options.gestureProgressMode,
23
- gestureDrivesProgress: options.gestureDrivesProgress,
24
- })
25
- : undefined;
26
13
 
27
14
  return {
28
15
  navigationMaskEnabled: options.navigationMaskEnabled,
@@ -34,10 +21,8 @@ export const buildScreenTransitionOptions = (
34
21
  gestureSnapVelocityImpact: options.gestureSnapVelocityImpact,
35
22
  gestureReleaseVelocityScale: options.gestureReleaseVelocityScale,
36
23
  gestureResponseDistance: options.gestureResponseDistance,
37
- gestureProgressMode,
38
- gestureDrivesProgress: gestureProgressMode
39
- ? gestureProgressModeDrivesProgress(gestureProgressMode)
40
- : undefined,
24
+ gestureProgressMode: options.gestureProgressMode,
25
+ gestureDrivesProgress: options.gestureDrivesProgress,
41
26
  gestureActivationArea: options.gestureActivationArea,
42
27
  gestureSnapLocked: options.gestureSnapLocked,
43
28
  sheetScrollGestureBehavior: hasSheetScrollGestureBehavior
@@ -1,15 +1,9 @@
1
1
  import { clamp } from "react-native-reanimated";
2
- import {
3
- DEFAULT_GESTURE_DIRECTION,
4
- DEFAULT_GESTURE_PROGRESS_MODE,
5
- EPSILON,
6
- } from "../../../../../constants";
7
- import type { ScreenTransitionOptions } from "../../../../../types/animation.types";
2
+ import { DEFAULT_GESTURE_DIRECTION, EPSILON } from "../../../../../constants";
8
3
  import type {
9
4
  GestureDirectionOption,
10
5
  GestureValues,
11
6
  } from "../../../../../types/gesture.types";
12
- import { resolveGestureProgressModeFromOptions } from "../../../../../utils/gesture-progress-mode";
13
7
  import {
14
8
  getPanActivationDirections,
15
9
  getPanSnapAxisConfigForDirection,
@@ -20,9 +14,15 @@ import {
20
14
  } from "../../../gestures/shared/directions";
21
15
  import type { SnapBounds } from "./types";
22
16
 
23
- const resolvePanGestureDrivenProgress = (
24
- baseProgress: number,
17
+ type PanProgressDelta = {
18
+ x: number;
19
+ y: number;
20
+ };
21
+
22
+ const resolvePanGestureAffectedProgress = (
23
+ transitionProgress: number,
25
24
  gesture: GestureValues,
25
+ progressDelta: PanProgressDelta,
26
26
  gestureDirection: GestureDirectionOption,
27
27
  hasSnapPoints: boolean,
28
28
  snapBounds: SnapBounds | null,
@@ -39,14 +39,18 @@ const resolvePanGestureDrivenProgress = (
39
39
  : null;
40
40
 
41
41
  if (!activeAxis || !snapBounds) {
42
- return baseProgress;
42
+ return transitionProgress;
43
43
  }
44
44
 
45
45
  const axisValue =
46
- activeAxis.axis === "horizontal" ? gesture.normX : gesture.normY;
47
- const progressDelta = activeAxis.config.progressSign * axisValue;
46
+ activeAxis.axis === "horizontal" ? progressDelta.x : progressDelta.y;
47
+ const signedProgressDelta = activeAxis.config.progressSign * axisValue;
48
48
 
49
- return clamp(baseProgress + progressDelta, snapBounds.min, snapBounds.max);
49
+ return clamp(
50
+ transitionProgress + signedProgressDelta,
51
+ snapBounds.min,
52
+ snapBounds.max,
53
+ );
50
54
  }
51
55
 
52
56
  const directions = getPanActivationDirections({
@@ -55,27 +59,27 @@ const resolvePanGestureDrivenProgress = (
55
59
  });
56
60
  let progressOffset = 0;
57
61
 
58
- if (directions.horizontal && gesture.normX > 0) {
59
- progressOffset = Math.max(progressOffset, gesture.normX);
62
+ if (directions.horizontal && progressDelta.x > 0) {
63
+ progressOffset = Math.max(progressOffset, progressDelta.x);
60
64
  }
61
65
 
62
- if (directions.horizontalInverted && gesture.normX < 0) {
63
- progressOffset = Math.max(progressOffset, -gesture.normX);
66
+ if (directions.horizontalInverted && progressDelta.x < 0) {
67
+ progressOffset = Math.max(progressOffset, -progressDelta.x);
64
68
  }
65
69
 
66
- if (directions.vertical && gesture.normY > 0) {
67
- progressOffset = Math.max(progressOffset, gesture.normY);
70
+ if (directions.vertical && progressDelta.y > 0) {
71
+ progressOffset = Math.max(progressOffset, progressDelta.y);
68
72
  }
69
73
 
70
- if (directions.verticalInverted && gesture.normY < 0) {
71
- progressOffset = Math.max(progressOffset, -gesture.normY);
74
+ if (directions.verticalInverted && progressDelta.y < 0) {
75
+ progressOffset = Math.max(progressOffset, -progressDelta.y);
72
76
  }
73
77
 
74
- return clamp(baseProgress - progressOffset, 0, baseProgress);
78
+ return clamp(transitionProgress - progressOffset, 0, transitionProgress);
75
79
  };
76
80
 
77
- const resolvePinchGestureDrivenProgress = (
78
- baseProgress: number,
81
+ const resolvePinchGestureAffectedProgress = (
82
+ transitionProgress: number,
79
83
  gesture: GestureValues,
80
84
  gestureDirection: GestureDirectionOption,
81
85
  hasSnapPoints: boolean,
@@ -90,13 +94,13 @@ const resolvePinchGestureDrivenProgress = (
90
94
  : null;
91
95
 
92
96
  if (!pinchDirection) {
93
- return baseProgress;
97
+ return transitionProgress;
94
98
  }
95
99
 
96
100
  if (hasSnapPoints) {
97
101
  const snapDirections = getSnapPinchDirectionConfig(gestureDirection);
98
102
  if (!snapDirections || !snapBounds) {
99
- return baseProgress;
103
+ return transitionProgress;
100
104
  }
101
105
 
102
106
  const progressDelta =
@@ -104,39 +108,35 @@ const resolvePinchGestureDrivenProgress = (
104
108
  ? -Math.abs(gesture.normScale)
105
109
  : Math.abs(gesture.normScale);
106
110
 
107
- return clamp(baseProgress + progressDelta, snapBounds.min, snapBounds.max);
111
+ return clamp(
112
+ transitionProgress + progressDelta,
113
+ snapBounds.min,
114
+ snapBounds.max,
115
+ );
108
116
  }
109
117
 
110
118
  const pinchDirections = getPinchGestureDirections(gestureDirection);
111
119
  if (!pinchDirections.includes(pinchDirection)) {
112
- return baseProgress;
120
+ return transitionProgress;
113
121
  }
114
122
 
115
- return clamp(baseProgress - Math.abs(gesture.normScale), 0, baseProgress);
123
+ return clamp(
124
+ transitionProgress - Math.abs(gesture.normScale),
125
+ 0,
126
+ transitionProgress,
127
+ );
116
128
  };
117
129
 
118
- export const resolveGestureDrivenProgress = (
119
- baseProgress: number,
130
+ export const resolveGestureAffectedProgress = (
131
+ transitionProgress: number,
120
132
  gesture: GestureValues,
121
- options: ScreenTransitionOptions,
122
- effectiveOptions: ScreenTransitionOptions | undefined,
133
+ panProgressDelta: PanProgressDelta,
134
+ gestureDirection: GestureDirectionOption | undefined,
123
135
  snapBounds: SnapBounds | null,
124
136
  ) => {
125
137
  "worklet";
126
- const gestureProgressMode = resolveGestureProgressModeFromOptions(
127
- effectiveOptions,
128
- options,
129
- DEFAULT_GESTURE_PROGRESS_MODE,
130
- );
131
-
132
- if (gestureProgressMode === "freeform") {
133
- return baseProgress;
134
- }
135
-
136
- const gestureDirection =
137
- effectiveOptions?.gestureDirection ??
138
- options.gestureDirection ??
139
- DEFAULT_GESTURE_DIRECTION;
138
+ const resolvedGestureDirection =
139
+ gestureDirection ?? DEFAULT_GESTURE_DIRECTION;
140
140
 
141
141
  const hasSnapPoints = snapBounds !== null;
142
142
 
@@ -145,19 +145,20 @@ export const resolveGestureDrivenProgress = (
145
145
  gesture.active === "pinch-out" ||
146
146
  Math.abs(gesture.normScale) > EPSILON
147
147
  ) {
148
- return resolvePinchGestureDrivenProgress(
149
- baseProgress,
148
+ return resolvePinchGestureAffectedProgress(
149
+ transitionProgress,
150
150
  gesture,
151
- gestureDirection,
151
+ resolvedGestureDirection,
152
152
  hasSnapPoints,
153
153
  snapBounds,
154
154
  );
155
155
  }
156
156
 
157
- return resolvePanGestureDrivenProgress(
158
- baseProgress,
157
+ return resolvePanGestureAffectedProgress(
158
+ transitionProgress,
159
159
  gesture,
160
- gestureDirection,
160
+ panProgressDelta,
161
+ resolvedGestureDirection,
161
162
  hasSnapPoints,
162
163
  snapBounds,
163
164
  );
@@ -4,7 +4,7 @@ import type {
4
4
  TransitionInterpolatorOptions,
5
5
  } from "../../../../../types/animation.types";
6
6
  import type { Layout } from "../../../../../types/screen.types";
7
- import { resolveGestureDrivenProgress } from "./gesture-progress";
7
+ import { resolveGestureAffectedProgress } from "./gesture-progress";
8
8
  import {
9
9
  computeAnimatedSnapIndex,
10
10
  computeTargetSnapIndex,
@@ -58,13 +58,14 @@ export const hydrateTransitionState = (
58
58
  ) => {
59
59
  "worklet";
60
60
  const out = s.unwrapped;
61
- const baseProgress = s.progress.get();
61
+ const transitionProgress = s.transitionProgress.get();
62
62
  const options = mergeTransitionOptions(
63
63
  s.options,
64
64
  effectiveOptions,
65
65
  s.optionsSlot,
66
66
  );
67
67
  const canDismiss = options.gestureEnabled !== false;
68
+ out.transitionProgress = transitionProgress;
68
69
  out.willAnimate = s.willAnimate.get();
69
70
  out.closing = s.closing.get();
70
71
  out.entering = s.entering.get();
@@ -90,11 +91,74 @@ export const hydrateTransitionState = (
90
91
  out.gesture.settling = s.gesture.settling.get();
91
92
  out.gesture.active = s.gesture.active.get();
92
93
  out.gesture.direction = s.gesture.direction.get();
93
- out.progress = resolveGestureDrivenProgress(
94
- baseProgress,
94
+ const handoff = out.gesture.handoff;
95
+ const useHandoffSnapshot = out.gesture.dismissing;
96
+
97
+ handoff.x = useHandoffSnapshot
98
+ ? s.gesture.internal.snapshot.x.get()
99
+ : out.gesture.x;
100
+ handoff.y = useHandoffSnapshot
101
+ ? s.gesture.internal.snapshot.y.get()
102
+ : out.gesture.y;
103
+ handoff.normX = useHandoffSnapshot
104
+ ? s.gesture.internal.snapshot.normX.get()
105
+ : out.gesture.normX;
106
+ handoff.normY = useHandoffSnapshot
107
+ ? s.gesture.internal.snapshot.normY.get()
108
+ : out.gesture.normY;
109
+ handoff.velocity = useHandoffSnapshot
110
+ ? s.gesture.internal.snapshot.velocity.get()
111
+ : out.gesture.velocity;
112
+ handoff.scale = useHandoffSnapshot
113
+ ? s.gesture.internal.snapshot.scale.get()
114
+ : out.gesture.scale;
115
+ handoff.normScale = useHandoffSnapshot
116
+ ? s.gesture.internal.snapshot.normScale.get()
117
+ : out.gesture.normScale;
118
+ handoff.focalX = useHandoffSnapshot
119
+ ? s.gesture.internal.snapshot.focalX.get()
120
+ : out.gesture.focalX;
121
+ handoff.focalY = useHandoffSnapshot
122
+ ? s.gesture.internal.snapshot.focalY.get()
123
+ : out.gesture.focalY;
124
+ handoff.rotation = useHandoffSnapshot
125
+ ? s.gesture.internal.snapshot.rotation.get()
126
+ : out.gesture.rotation;
127
+ handoff.raw.x = useHandoffSnapshot
128
+ ? s.gesture.internal.snapshot.raw.x.get()
129
+ : out.gesture.raw.x;
130
+ handoff.raw.y = useHandoffSnapshot
131
+ ? s.gesture.internal.snapshot.raw.y.get()
132
+ : out.gesture.raw.y;
133
+ handoff.raw.normX = useHandoffSnapshot
134
+ ? s.gesture.internal.snapshot.raw.normX.get()
135
+ : out.gesture.raw.normX;
136
+ handoff.raw.normY = useHandoffSnapshot
137
+ ? s.gesture.internal.snapshot.raw.normY.get()
138
+ : out.gesture.raw.normY;
139
+ handoff.raw.scale = useHandoffSnapshot
140
+ ? s.gesture.internal.snapshot.raw.scale.get()
141
+ : out.gesture.raw.scale;
142
+ handoff.raw.normScale = useHandoffSnapshot
143
+ ? s.gesture.internal.snapshot.raw.normScale.get()
144
+ : out.gesture.raw.normScale;
145
+ handoff.raw.rotation = useHandoffSnapshot
146
+ ? s.gesture.internal.snapshot.raw.rotation.get()
147
+ : out.gesture.raw.rotation;
148
+ handoff.active = useHandoffSnapshot
149
+ ? s.gesture.internal.snapshot.active.get()
150
+ : out.gesture.active;
151
+ handoff.direction = useHandoffSnapshot
152
+ ? s.gesture.internal.snapshot.direction.get()
153
+ : out.gesture.direction;
154
+ out.progress = resolveGestureAffectedProgress(
155
+ transitionProgress,
95
156
  out.gesture,
96
- s.options,
97
- effectiveOptions,
157
+ {
158
+ x: s.gesture.internal.progressDeltaX.get(),
159
+ y: s.gesture.internal.progressDeltaY.get(),
160
+ },
161
+ effectiveOptions?.gestureDirection ?? s.options.gestureDirection,
98
162
  getResolvedSnapBounds(
99
163
  s.sortedNumericSnapPoints,
100
164
  s.hasAutoSnapPoint ? s.resolvedAutoSnapPoint.get() : null,
@@ -104,8 +168,8 @@ export const hydrateTransitionState = (
104
168
 
105
169
  // Unsure where else to place this if im being honest.
106
170
  // I think for here is fine
107
- if (s.effectiveProgress.get() !== out.progress) {
108
- s.effectiveProgress.set(out.progress);
171
+ if (s.visualProgress.get() !== out.progress) {
172
+ s.visualProgress.set(out.progress);
109
173
  }
110
174
 
111
175
  const hasResidualGestureValues =
@@ -149,6 +213,8 @@ export const hydrateTransitionState = (
149
213
  out.layouts.content = undefined;
150
214
  }
151
215
 
216
+ out.layouts.scroll = s.scrollMetadata.get() ?? undefined;
217
+
152
218
  const autoSnapPoint = s.resolvedAutoSnapPoint.get();
153
219
  const resolvedAutoSnap =
154
220
  s.hasAutoSnapPoint && autoSnapPoint > 0 ? autoSnapPoint : null;
@@ -4,12 +4,13 @@ import type {
4
4
  ScreenTransitionOptions,
5
5
  ScreenTransitionState,
6
6
  } from "../../../../../types/animation.types";
7
+ import type { ScrollMetadataState } from "../../../../../types/gesture.types";
7
8
  import type { Layout } from "../../../../../types/screen.types";
8
9
  import type { BaseStackRoute } from "../../../../../types/stack.types";
9
10
 
10
11
  export type BuiltState = {
11
- progress: SharedValue<number>;
12
- effectiveProgress: SharedValue<number>;
12
+ transitionProgress: SharedValue<number>;
13
+ visualProgress: SharedValue<number>;
13
14
  willAnimate: SharedValue<number>;
14
15
  closing: SharedValue<number>;
15
16
  progressAnimating: SharedValue<number>;
@@ -23,6 +24,7 @@ export type BuiltState = {
23
24
  targetProgress: SharedValue<number>;
24
25
  resolvedAutoSnapPoint: SharedValue<number>;
25
26
  measuredContentLayout: SharedValue<Layout | null>;
27
+ scrollMetadata: SharedValue<ScrollMetadataState | null>;
26
28
  contentLayoutSlot: Layout;
27
29
  hasAutoSnapPoint: boolean;
28
30
  sortedNumericSnapPoints: number[];
@@ -78,9 +78,9 @@ export function useScreenAnimationPipeline(): ScreenAnimationPipeline {
78
78
 
79
79
  const currentRouteKey = currDescriptor?.route?.key;
80
80
  const currentIndex = routeKeys.indexOf(currentRouteKey);
81
- const effectiveProgressValues = useMemo(() => {
81
+ const visualProgressValues = useMemo(() => {
82
82
  return routeKeys.map((routeKey) =>
83
- AnimationStore.getValue(routeKey, "effectiveProgress"),
83
+ AnimationStore.getValue(routeKey, "visualProgress"),
84
84
  );
85
85
  }, [routeKeys]);
86
86
 
@@ -143,7 +143,7 @@ export function useScreenAnimationPipeline(): ScreenAnimationPipeline {
143
143
 
144
144
  frame.stackProgress = deriveStackProgress(
145
145
  routeKeys,
146
- effectiveProgressValues,
146
+ visualProgressValues,
147
147
  currentIndex,
148
148
  frame.progress,
149
149
  currentRouteKey,
@@ -2,7 +2,7 @@ import type { SharedValue } from "react-native-reanimated";
2
2
 
3
3
  export const deriveStackProgress = (
4
4
  routeKeys: string[],
5
- effectiveProgressValues: SharedValue<number>[],
5
+ visualProgressValues: SharedValue<number>[],
6
6
  currentIndex: number,
7
7
  fallbackProgress: number,
8
8
  currentRouteKey: string | undefined,
@@ -14,14 +14,14 @@ export const deriveStackProgress = (
14
14
  if (currentIndex < 0) return fallbackProgress;
15
15
 
16
16
  let total = 0;
17
- for (let i = currentIndex; i < effectiveProgressValues.length; i++) {
17
+ for (let i = currentIndex; i < visualProgressValues.length; i++) {
18
18
  const routeKey = routeKeys[i];
19
19
  if (routeKey === currentRouteKey) {
20
20
  total += currentProgress;
21
21
  } else if (routeKey === nextRouteKey && nextProgress !== undefined) {
22
22
  total += nextProgress;
23
23
  } else {
24
- total += effectiveProgressValues[i].get();
24
+ total += visualProgressValues[i].get();
25
25
  }
26
26
  }
27
27
 
@@ -6,11 +6,13 @@ import {
6
6
  GestureStore,
7
7
  type GestureStoreMap,
8
8
  } from "../../../../stores/gesture.store";
9
+ import { ScrollStore } from "../../../../stores/scroll.store";
9
10
  import { SystemStore } from "../../../../stores/system.store";
10
11
  import type {
11
12
  BaseStackRoute,
12
13
  Layout,
13
14
  ScreenTransitionState,
15
+ ScrollMetadataState,
14
16
  } from "../../../../types";
15
17
  import type { ScreenTransitionOptions } from "../../../../types/animation.types";
16
18
  import type { BaseDescriptor } from "../../descriptors";
@@ -18,8 +20,8 @@ import { buildScreenTransitionOptions } from "./build-screen-transition-options"
18
20
  import { toPlainRoute, toPlainValue } from "./worklet";
19
21
 
20
22
  type BuiltState = {
21
- progress: SharedValue<number>;
22
- effectiveProgress: SharedValue<number>;
23
+ transitionProgress: SharedValue<number>;
24
+ visualProgress: SharedValue<number>;
23
25
  willAnimate: SharedValue<number>;
24
26
  closing: SharedValue<number>;
25
27
  progressAnimating: SharedValue<number>;
@@ -33,6 +35,7 @@ type BuiltState = {
33
35
  targetProgress: SharedValue<number>;
34
36
  resolvedAutoSnapPoint: SharedValue<number>;
35
37
  measuredContentLayout: SharedValue<Layout | null>;
38
+ scrollMetadata: SharedValue<ScrollMetadataState | null>;
36
39
  contentLayoutSlot: Layout;
37
40
  hasAutoSnapPoint: boolean;
38
41
  sortedNumericSnapPoints: number[];
@@ -62,8 +65,8 @@ export const useBuildTransitionState = (
62
65
  const transitionOptions = buildScreenTransitionOptions(descriptor.options);
63
66
 
64
67
  return {
65
- progress: AnimationStore.getValue(key, "progress"),
66
- effectiveProgress: AnimationStore.getValue(key, "effectiveProgress"),
68
+ transitionProgress: AnimationStore.getValue(key, "transitionProgress"),
69
+ visualProgress: AnimationStore.getValue(key, "visualProgress"),
67
70
  willAnimate: AnimationStore.getValue(key, "willAnimate"),
68
71
  closing: AnimationStore.getValue(key, "closing"),
69
72
  entering: AnimationStore.getValue(key, "entering"),
@@ -72,6 +75,7 @@ export const useBuildTransitionState = (
72
75
  targetProgress: SystemStore.getValue(key, "targetProgress"),
73
76
  resolvedAutoSnapPoint: SystemStore.getValue(key, "resolvedAutoSnapPoint"),
74
77
  measuredContentLayout: SystemStore.getValue(key, "measuredContentLayout"),
78
+ scrollMetadata: ScrollStore.getValue(key, "metadata"),
75
79
  contentLayoutSlot: { width: 0, height: 0 },
76
80
  hasAutoSnapPoint: snapPoints?.includes("auto") ?? false,
77
81
  sortedNumericSnapPoints,
@@ -11,7 +11,7 @@ import { useBuildPinchGesture } from "./pinch/use-build-pinch-gesture";
11
11
  import { useBuildRotationGesture } from "./rotation/use-build-rotation-gesture";
12
12
  import {
13
13
  type DirectionClaimMap,
14
- type GestureCompositionActivation,
14
+ type GestureCompositionOwner,
15
15
  type GestureContextType,
16
16
  NO_DIRECTION_CLAIMS,
17
17
  } from "./types";
@@ -31,34 +31,32 @@ export const {
31
31
  const gestureConfig = useScreenGestureConfig();
32
32
  const { currentScreenKey } = useDescriptorDerivations();
33
33
 
34
- const scrollState = ScrollStore.getValue(currentScreenKey, "state");
34
+ const scrollState = ScrollStore.getValue(currentScreenKey, "coordination");
35
35
 
36
36
  // Ancestors read this before activating. If a nested screen claims the same
37
37
  // direction, it writes here so the ancestor can fail and let it take priority.
38
38
  const childDirectionClaims =
39
39
  useSharedValue<DirectionClaimMap>(NO_DIRECTION_CLAIMS);
40
40
 
41
- // Pinch gestures should be simultaneous with pan gestures, but pan gestures should not be simultaneous with pinch gestures.
42
- // Since we're using manual gestures, if pinch tries to become activated while pan is already active,
43
- // the pinch gesture will be cancelled and the pan gesture will continue to be active.
44
- const gestureCompositionActivation =
45
- useSharedValue<GestureCompositionActivation>(null);
41
+ // The first gesture to activate owns navigation release. Other gestures may
42
+ // still join as companion trackers during the same simultaneous composition.
43
+ const gestureCompositionOwner = useSharedValue<GestureCompositionOwner>(null);
46
44
 
47
45
  const panGesture = useBuildPanGesture({
48
46
  scrollState,
49
47
  gestureConfig,
50
48
  childDirectionClaims,
51
- gestureCompositionActivation,
49
+ gestureCompositionOwner,
52
50
  });
53
51
 
54
52
  const pinchGesture = useBuildPinchGesture({
55
53
  gestureConfig,
56
- gestureCompositionActivation,
54
+ gestureCompositionOwner,
57
55
  });
58
56
 
59
57
  const rotationGesture = useBuildRotationGesture({
60
58
  gestureConfig,
61
- gestureCompositionActivation,
59
+ gestureCompositionOwner,
62
60
  });
63
61
 
64
62
  const detectorGesture = useMemo(
@@ -15,8 +15,7 @@ export function useStableRuntimeConfig<TPolicy extends GesturePolicy>(
15
15
  runtimeConfigInput: RuntimeConfigInput<TPolicy>,
16
16
  ): SharedValue<GestureRuntime<TPolicy>> {
17
17
  const { currentScreenKey } = useDescriptorDerivations();
18
- const { participation, policy, gestureProgressBaseline, lockedSnapPoint } =
19
- runtimeConfigInput;
18
+ const { participation, policy } = runtimeConfigInput;
20
19
 
21
20
  const stores = useMemo(() => {
22
21
  return {
@@ -31,10 +30,8 @@ export function useStableRuntimeConfig<TPolicy extends GesturePolicy>(
31
30
  participation,
32
31
  policy,
33
32
  stores,
34
- gestureProgressBaseline,
35
- lockedSnapPoint,
36
33
  };
37
- }, [participation, policy, stores, gestureProgressBaseline, lockedSnapPoint]);
34
+ }, [participation, policy, stores]);
38
35
  const stableRuntimeConfig = useSharedValue(runtimeConfig);
39
36
 
40
37
  useLayoutEffect(() => {
@@ -246,7 +246,7 @@ const resolveSnapScrollExpansionDecision = (
246
246
  });
247
247
 
248
248
  const canExpandMore =
249
- animations.progress.get() < resolvedMaxSnapPoint - EPSILON &&
249
+ animations.transitionProgress.get() < resolvedMaxSnapPoint - EPSILON &&
250
250
  system.targetProgress.get() < resolvedMaxSnapPoint - EPSILON;
251
251
 
252
252
  if (canExpandMore) {
@@ -280,13 +280,22 @@ const resolveDismissingDecision = (
280
280
  );
281
281
  };
282
282
 
283
+ const isVerticalDirection = (direction: Direction) => {
284
+ "worklet";
285
+ return direction === "vertical" || direction === "vertical-inverted";
286
+ };
287
+
283
288
  const resolveUntouchedScrollDecision = (
284
289
  scrollState: ScrollGestureState | null,
285
290
  swipeDirection: Direction,
286
291
  nextActivationState: GestureActivationState,
287
292
  ): PanActivationDecision | null => {
288
293
  "worklet";
289
- if (scrollState?.isTouched ?? false) {
294
+ const axisState = isVerticalDirection(swipeDirection)
295
+ ? scrollState?.vertical
296
+ : scrollState?.horizontal;
297
+
298
+ if (axisState?.isTouched ?? false) {
290
299
  return null;
291
300
  }
292
301
 
@@ -11,7 +11,7 @@ import type { ScreenOptionsContextValue } from "../../../options";
11
11
  import { resolvePanRuntime } from "../../shared/runtime";
12
12
  import type {
13
13
  DirectionClaimMap,
14
- GestureCompositionActivation,
14
+ GestureCompositionOwner,
15
15
  GestureDimensions,
16
16
  PanGestureRuntime,
17
17
  ScrollGestureState,
@@ -24,7 +24,7 @@ interface UsePanActivationProps {
24
24
  runtime: SharedValue<PanGestureRuntime>;
25
25
  screenOptions: ScreenOptionsContextValue;
26
26
  dimensions: GestureDimensions;
27
- gestureCompositionActivation: SharedValue<GestureCompositionActivation>;
27
+ gestureCompositionOwner: SharedValue<GestureCompositionOwner>;
28
28
  }
29
29
 
30
30
  export const usePanActivation = ({
@@ -33,7 +33,7 @@ export const usePanActivation = ({
33
33
  runtime,
34
34
  screenOptions,
35
35
  dimensions,
36
- gestureCompositionActivation,
36
+ gestureCompositionOwner,
37
37
  }: UsePanActivationProps) => {
38
38
  const { currentScreenKey, parentScreenKey } = useDescriptorDerivations();
39
39
 
@@ -82,10 +82,12 @@ export const usePanActivation = ({
82
82
  screenOptions.get(),
83
83
  );
84
84
 
85
+ // If another gesture owns this composition, let pan join as a
86
+ // companion tracker instead of running normal pan activation gates.
85
87
  if (
86
- gestureCompositionActivation.get() === "pinch" &&
88
+ gestureCompositionOwner.get() !== null &&
87
89
  resolvedRuntime.participation.canTrackGesture &&
88
- event.numberOfTouches === 2
90
+ resolvedRuntime.policy.enabled
89
91
  ) {
90
92
  stateManager.activate();
91
93
  return;
@@ -122,7 +124,7 @@ export const usePanActivation = ({
122
124
  gestures.direction.set(decision.direction);
123
125
  }
124
126
 
125
- gestureCompositionActivation.set("pan");
127
+ gestureCompositionOwner.set("pan");
126
128
  stateManager.activate();
127
129
  },
128
130
  [
@@ -135,7 +137,7 @@ export const usePanActivation = ({
135
137
  runtime,
136
138
  screenOptions,
137
139
  scrollState,
138
- gestureCompositionActivation,
140
+ gestureCompositionOwner,
139
141
  ],
140
142
  );
141
143