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
@@ -6,8 +6,14 @@ import {
6
6
  normalizeGestureTranslation,
7
7
  resolveGestureVelocity,
8
8
  } from "../../shared/physics";
9
+ import { snapshotGestureHandoff } from "../../shared/snapshot";
10
+ import {
11
+ clearFocalPoint,
12
+ clearPanTrackingValues,
13
+ clearTransformTrackingValues,
14
+ } from "../../shared/values";
9
15
  import type {
10
- GestureCompositionActivation,
16
+ GestureCompositionOwner,
11
17
  GestureDimensions,
12
18
  PanGestureEvent,
13
19
  PanGestureRuntime,
@@ -21,7 +27,6 @@ export const startPanBase = (runtime: PanGestureRuntime) => {
21
27
  "worklet";
22
28
  const {
23
29
  stores: { gestures, animations },
24
- gestureProgressBaseline,
25
30
  } = runtime;
26
31
 
27
32
  const wasSettling = gestures.settling.get();
@@ -38,24 +43,10 @@ export const startPanBase = (runtime: PanGestureRuntime) => {
38
43
  gestures.dragging.set(TRUE);
39
44
  gestures.dismissing.set(0);
40
45
  gestures.settling.set(0);
41
- gestures.x.set(0);
42
- gestures.y.set(0);
43
- gestures.normX.set(0);
44
- gestures.normY.set(0);
45
- gestures.velocity.set(0);
46
- gestures.scale.set(1);
47
- gestures.normScale.set(0);
48
- gestures.focalX.set(0);
49
- gestures.focalY.set(0);
50
- gestures.rotation.set(0);
51
- gestures.raw.x.set(0);
52
- gestures.raw.y.set(0);
53
- gestures.raw.normX.set(0);
54
- gestures.raw.normY.set(0);
55
- gestures.raw.scale.set(1);
56
- gestures.raw.normScale.set(0);
57
- gestures.raw.rotation.set(0);
58
- gestureProgressBaseline.set(animations.progress.get());
46
+ clearPanTrackingValues(gestures);
47
+ clearTransformTrackingValues(gestures);
48
+ clearFocalPoint(gestures);
49
+ gestures.internal.progressBaseline.set(animations.transitionProgress.get());
59
50
  };
60
51
 
61
52
  export const trackPanGesture = (
@@ -87,6 +78,8 @@ export const trackPanGesture = (
87
78
  gestures.y.set(y);
88
79
  gestures.normX.set(normX);
89
80
  gestures.normY.set(normY);
81
+ gestures.internal.progressDeltaX.set(normX);
82
+ gestures.internal.progressDeltaY.set(normY);
90
83
  gestures.velocity.set(velocity);
91
84
  gestures.raw.x.set(rawX);
92
85
  gestures.raw.y.set(rawY);
@@ -109,7 +102,7 @@ export const finalizePanRelease = (
109
102
  dimensions: GestureDimensions,
110
103
  rawEvent: PanGestureEvent,
111
104
  requestDismiss?: () => void,
112
- gestureCompositionActivation?: SharedValue<GestureCompositionActivation>,
105
+ gestureCompositionOwner?: SharedValue<GestureCompositionOwner>,
113
106
  ) => {
114
107
  "worklet";
115
108
  const {
@@ -118,18 +111,15 @@ export const finalizePanRelease = (
118
111
  } = runtime;
119
112
 
120
113
  const canDriveRelease =
121
- !gestureCompositionActivation ||
122
- gestureCompositionActivation.get() === "pan";
114
+ !gestureCompositionOwner || gestureCompositionOwner.get() === "pan";
123
115
 
124
116
  const plan = buildPanReleasePlan(
125
117
  canDriveRelease
126
118
  ? release
127
119
  : {
128
- target: animations.progress.get(),
120
+ target: animations.transitionProgress.get(),
129
121
  shouldDismiss: false,
130
122
  initialVelocity: 0,
131
- resetNormalizedValuesImmediately:
132
- policy.gestureProgressMode === "progress-driven",
133
123
  transitionSpec: undefined,
134
124
  resetSpec: policy.transitionSpec?.open,
135
125
  },
@@ -139,22 +129,19 @@ export const finalizePanRelease = (
139
129
  );
140
130
 
141
131
  if (typeof plan.commitProgress === "number") {
142
- animations.progress.set(plan.commitProgress);
132
+ animations.transitionProgress.set(plan.commitProgress);
143
133
  system.targetProgress.set(plan.commitProgress);
144
134
  }
145
135
 
136
+ if (canDriveRelease && plan.shouldDismiss) {
137
+ snapshotGestureHandoff(gestures, {
138
+ velocity: plan.handoffVelocity,
139
+ });
140
+ }
141
+
146
142
  resetPanGestureValues({
147
- spec: plan.resetSpec,
143
+ plan,
148
144
  gestures,
149
- shouldDismiss: plan.shouldDismiss,
150
- velocityX: plan.resetVelocityX,
151
- velocityY: plan.resetVelocityY,
152
- velocityNormX: plan.resetVelocityNormX,
153
- velocityNormY: plan.resetVelocityNormY,
154
- releaseVelocity: plan.releaseVelocity,
155
- resetNormalizedValues: plan.resetNormalizedValues,
156
- resetNormalizedValuesImmediately: plan.resetNormalizedValuesImmediately,
157
- preserveRawValues: plan.preserveRawValues,
158
145
  updateLifecycle: canDriveRelease,
159
146
  });
160
147
 
@@ -163,7 +150,7 @@ export const finalizePanRelease = (
163
150
  }
164
151
 
165
152
  const progressAlreadyAtTarget =
166
- Math.abs(animations.progress.get() - plan.target) <= EPSILON;
153
+ Math.abs(animations.transitionProgress.get() - plan.target) <= EPSILON;
167
154
 
168
155
  if (!plan.shouldDismiss && progressAlreadyAtTarget) {
169
156
  system.targetProgress.set(plan.target);
@@ -96,7 +96,7 @@ const getPanSnapReleaseProgress = ({
96
96
  const axisDimension = isHorizontal ? dimensions.width : dimensions.height;
97
97
  const axisProgress = axisTranslation / Math.max(1, axisDimension);
98
98
  const progress =
99
- runtime.gestureProgressBaseline.get() +
99
+ runtime.stores.gestures.internal.progressBaseline.get() +
100
100
  activeAxis.config.progressSign * axisProgress;
101
101
 
102
102
  return clamp(progress, minSnapPoint, maxSnapPoint);
@@ -109,7 +109,7 @@ const buildInactivePanSnapRelease = (
109
109
  const { policy, stores } = runtime;
110
110
 
111
111
  return {
112
- target: stores.animations.progress.get(),
112
+ target: stores.animations.transitionProgress.get(),
113
113
  shouldDismiss: false,
114
114
  initialVelocity: 0,
115
115
  transitionSpec: policy.transitionSpec,
@@ -152,7 +152,6 @@ export const resolvePanRelease = (
152
152
  event,
153
153
  dimensions,
154
154
  directions: policy.panActivationDirections,
155
- gestureReleaseVelocityScale: policy.gestureReleaseVelocityScale,
156
155
  }),
157
156
  transitionSpec: policy.transitionSpec,
158
157
  resetSpec: shouldDismiss
@@ -167,7 +166,7 @@ export const resolveSnapPanRelease = (
167
166
  dimensions: GestureDimensions,
168
167
  ): PanReleaseResult => {
169
168
  "worklet";
170
- const { participation, policy, lockedSnapPoint } = runtime;
169
+ const { participation, policy } = runtime;
171
170
  const activeAxis = resolveActivePanSnapAxis(runtime);
172
171
 
173
172
  if (!activeAxis) {
@@ -192,7 +191,10 @@ export const resolveSnapPanRelease = (
192
191
  const result = determineSnapTarget({
193
192
  currentProgress,
194
193
  snapPoints: policy.gestureSnapLocked
195
- ? [lockedSnapPoint.get()]
194
+ ? [
195
+ runtime.stores.gestures.internal.lockedSnapPoint.get() ??
196
+ resolvedMaxSnapPoint,
197
+ ]
196
198
  : resolvedSnapPoints,
197
199
  velocity: snapVelocity,
198
200
  dimension: axisDimension,
@@ -210,14 +212,11 @@ export const resolveSnapPanRelease = (
210
212
  handoffVelocity: getPanReleaseHandoffVelocity(
211
213
  axisVelocity,
212
214
  axisDimension,
213
- policy.gestureReleaseVelocityScale,
214
215
  ),
215
216
  target,
216
217
  currentProgress,
217
218
  }),
218
219
  commitProgress: currentProgress,
219
- resetNormalizedValuesImmediately:
220
- policy.gestureProgressMode === "progress-driven",
221
220
  transitionSpec: resolveGestureSnapTransitionSpec({
222
221
  transitionSpec: policy.transitionSpec,
223
222
  shouldDismiss,
@@ -238,40 +237,39 @@ export const buildPanReleasePlan = (
238
237
  ): PanReleasePlan => {
239
238
  "worklet";
240
239
  const { policy } = runtime;
241
- const progressDriven = policy.gestureProgressMode === "progress-driven";
242
240
  const releaseVelocityScale = Math.max(0, policy.gestureReleaseVelocityScale);
243
- const resetUsesReleaseVelocity = !release.shouldDismiss || !progressDriven;
244
- const resetVelocityFactor = resetUsesReleaseVelocity ? 1 : 0;
245
- const resetVelocityScale = releaseVelocityScale * resetVelocityFactor;
241
+ const resetVelocityScale = releaseVelocityScale;
246
242
  const resetVelocityX =
247
243
  resetVelocityScale === 0 ? 0 : rawEvent.velocityX * resetVelocityScale;
248
244
  const resetVelocityY =
249
245
  resetVelocityScale === 0 ? 0 : rawEvent.velocityY * resetVelocityScale;
250
- const releaseVelocityNormX =
251
- rawEvent.velocityX / Math.max(1, dimensions.width);
252
- const releaseVelocityNormY =
253
- rawEvent.velocityY / Math.max(1, dimensions.height);
254
- const releaseVelocity = release.shouldDismiss
246
+ const handoffVelocityNormX = getPanReleaseHandoffVelocity(
247
+ rawEvent.velocityX,
248
+ dimensions.width,
249
+ releaseVelocityScale,
250
+ );
251
+ const handoffVelocityNormY = getPanReleaseHandoffVelocity(
252
+ rawEvent.velocityY,
253
+ dimensions.height,
254
+ releaseVelocityScale,
255
+ );
256
+ const handoffVelocity = release.shouldDismiss
255
257
  ? resolvePanReleaseVelocity(
256
258
  runtime,
257
- releaseVelocityNormX,
258
- releaseVelocityNormY,
259
+ handoffVelocityNormX,
260
+ handoffVelocityNormY,
259
261
  )
260
262
  : 0;
261
263
 
262
264
  return {
263
265
  target: release.target,
264
266
  shouldDismiss: release.shouldDismiss,
265
- progressVelocity: progressDriven ? release.initialVelocity : 0,
267
+ progressVelocity: release.initialVelocity,
266
268
  resetVelocityX,
267
269
  resetVelocityY,
268
270
  resetVelocityNormX: resetVelocityX / Math.max(1, dimensions.width),
269
271
  resetVelocityNormY: resetVelocityY / Math.max(1, dimensions.height),
270
- releaseVelocity,
271
- resetNormalizedValues: !release.shouldDismiss || progressDriven,
272
- resetNormalizedValuesImmediately:
273
- release.resetNormalizedValuesImmediately === true,
274
- preserveRawValues: release.shouldDismiss,
272
+ handoffVelocity,
275
273
  commitProgress: release.commitProgress,
276
274
  transitionSpec: release.transitionSpec,
277
275
  resetSpec: release.resetSpec,
@@ -1,105 +1,73 @@
1
- import { EPSILON, FALSE, TRUE } from "../../../../../constants";
1
+ import { FALSE, TRUE } from "../../../../../constants";
2
2
  import type { GestureStoreMap } from "../../../../../stores/gesture.store";
3
- import type { AnimationConfig } from "../../../../../types/animation.types";
3
+ import { animateMany } from "../../shared/reset";
4
4
  import {
5
- animateResetValue,
6
- clearGestureSettlingIfResting,
7
- getGestureResetSpec,
8
- } from "../../shared/reset";
5
+ clearPanProgressDeltaValues,
6
+ clearRawPanValues,
7
+ } from "../../shared/values";
8
+ import type { PanReleasePlan } from "../../types";
9
9
 
10
10
  interface ResetPanGestureValuesProps {
11
- spec?: AnimationConfig;
11
+ plan: PanReleasePlan;
12
12
  gestures: GestureStoreMap;
13
- shouldDismiss: boolean;
14
- velocityX?: number;
15
- velocityY?: number;
16
- velocityNormX?: number;
17
- velocityNormY?: number;
18
- releaseVelocity?: number;
19
- resetNormalizedValues?: boolean;
20
- resetNormalizedValuesImmediately?: boolean;
21
- preserveRawValues?: boolean;
22
13
  updateLifecycle?: boolean;
23
14
  }
24
15
 
25
- const clearPanSettlingIfResting = (gestures: GestureStoreMap) => {
26
- "worklet";
27
-
28
- clearGestureSettlingIfResting(
29
- gestures,
30
- !gestures.dragging.get() &&
31
- !gestures.dismissing.get() &&
32
- Math.abs(gestures.x.get()) <= EPSILON &&
33
- Math.abs(gestures.y.get()) <= EPSILON &&
34
- Math.abs(gestures.normX.get()) <= EPSILON &&
35
- Math.abs(gestures.normY.get()) <= EPSILON,
36
- );
37
- };
38
-
39
16
  export const resetPanGestureValues = ({
40
- spec,
17
+ plan,
41
18
  gestures,
42
- shouldDismiss,
43
- velocityX,
44
- velocityY,
45
- velocityNormX,
46
- velocityNormY,
47
- releaseVelocity,
48
- resetNormalizedValues = true,
49
- resetNormalizedValuesImmediately = false,
50
- preserveRawValues = shouldDismiss,
51
19
  updateLifecycle = true,
52
20
  }: ResetPanGestureValuesProps) => {
53
21
  "worklet";
54
- const clearSettlingIfNeeded = () => {
22
+ const finishPanReset = () => {
55
23
  "worklet";
56
- if (updateLifecycle) {
57
- clearPanSettlingIfResting(gestures);
24
+ if (!updateLifecycle || plan.shouldDismiss) {
25
+ return;
58
26
  }
27
+
28
+ gestures.active.set(null);
29
+ gestures.direction.set(null);
30
+ gestures.settling.set(FALSE);
59
31
  };
60
32
 
61
- if (!preserveRawValues) {
62
- gestures.raw.x.set(0);
63
- gestures.raw.y.set(0);
64
- gestures.raw.normX.set(0);
65
- gestures.raw.normY.set(0);
66
- }
33
+ clearRawPanValues(gestures);
67
34
 
68
35
  if (updateLifecycle) {
69
36
  gestures.dragging.set(FALSE);
70
- gestures.dismissing.set(shouldDismiss ? TRUE : FALSE);
71
- gestures.settling.set(shouldDismiss ? FALSE : TRUE);
37
+ gestures.dismissing.set(plan.shouldDismiss ? TRUE : FALSE);
38
+ gestures.settling.set(plan.shouldDismiss ? FALSE : TRUE);
72
39
  }
73
- gestures.velocity.set(shouldDismiss ? (releaseVelocity ?? 0) : 0);
74
40
 
75
- animateResetValue(gestures.x, 0, getGestureResetSpec(spec, velocityX), () =>
76
- clearSettlingIfNeeded(),
77
- );
78
- animateResetValue(gestures.y, 0, getGestureResetSpec(spec, velocityY), () =>
79
- clearSettlingIfNeeded(),
80
- );
41
+ gestures.velocity.set(0);
81
42
 
82
- if (!resetNormalizedValues) {
83
- return;
84
- }
43
+ const progressDeltaWasCommitted = typeof plan.commitProgress === "number";
85
44
 
86
- if (resetNormalizedValuesImmediately) {
87
- gestures.normX.set(0);
88
- gestures.normY.set(0);
89
- clearSettlingIfNeeded();
90
- return;
45
+ if (progressDeltaWasCommitted) {
46
+ clearPanProgressDeltaValues(gestures);
91
47
  }
92
48
 
93
- animateResetValue(
94
- gestures.normX,
95
- 0,
96
- getGestureResetSpec(spec, velocityNormX),
97
- () => clearSettlingIfNeeded(),
98
- );
99
- animateResetValue(
100
- gestures.normY,
101
- 0,
102
- getGestureResetSpec(spec, velocityNormY),
103
- () => clearSettlingIfNeeded(),
49
+ animateMany(
50
+ [
51
+ { value: gestures.x, toValue: 0, velocity: plan.resetVelocityX },
52
+ { value: gestures.y, toValue: 0, velocity: plan.resetVelocityY },
53
+ { value: gestures.normX, toValue: 0, velocity: plan.resetVelocityNormX },
54
+ { value: gestures.normY, toValue: 0, velocity: plan.resetVelocityNormY },
55
+ ...(progressDeltaWasCommitted
56
+ ? []
57
+ : [
58
+ {
59
+ value: gestures.internal.progressDeltaX,
60
+ toValue: 0,
61
+ velocity: plan.resetVelocityNormX,
62
+ },
63
+ {
64
+ value: gestures.internal.progressDeltaY,
65
+ toValue: 0,
66
+ velocity: plan.resetVelocityNormY,
67
+ },
68
+ ]),
69
+ ],
70
+ plan.resetSpec,
71
+ finishPanReset,
104
72
  );
105
73
  };
@@ -4,8 +4,9 @@ import { useNavigationHelpers } from "../../../../../hooks/navigation/use-naviga
4
4
  import type { ScreenOptionsContextValue } from "../../../options";
5
5
  import { usePanGestureSensitivity } from "../../hooks/use-gesture-sensitivity";
6
6
  import { resolvePanRuntime } from "../../shared/runtime";
7
+ import { clearPanTrackingValues } from "../../shared/values";
7
8
  import type {
8
- GestureCompositionActivation,
9
+ GestureCompositionOwner,
9
10
  GestureDimensions,
10
11
  PanBehavior,
11
12
  PanGestureEvent,
@@ -26,7 +27,7 @@ export const usePanBehavior = (
26
27
  runtime: SharedValue<PanGestureRuntime>,
27
28
  screenOptions: ScreenOptionsContextValue,
28
29
  dimensions: GestureDimensions,
29
- gestureCompositionActivation: SharedValue<GestureCompositionActivation>,
30
+ gestureCompositionOwner: SharedValue<GestureCompositionOwner>,
30
31
  ): PanBehavior => {
31
32
  const { dismissScreen, requestDismiss } = useNavigationHelpers();
32
33
  const { withSensitivity, resetSensitivity } =
@@ -35,17 +36,8 @@ export const usePanBehavior = (
35
36
  const onStart = useCallback(() => {
36
37
  "worklet";
37
38
  const latestRuntime = resolvePanRuntime(runtime.get(), screenOptions.get());
38
- if (gestureCompositionActivation.get() === "pinch") {
39
- const { gestures } = latestRuntime.stores;
40
- gestures.x.set(0);
41
- gestures.y.set(0);
42
- gestures.normX.set(0);
43
- gestures.normY.set(0);
44
- gestures.velocity.set(0);
45
- gestures.raw.x.set(0);
46
- gestures.raw.y.set(0);
47
- gestures.raw.normX.set(0);
48
- gestures.raw.normY.set(0);
39
+ if (gestureCompositionOwner.get() === "pinch") {
40
+ clearPanTrackingValues(latestRuntime.stores.gestures);
49
41
  resetSensitivity();
50
42
  return;
51
43
  }
@@ -55,7 +47,7 @@ export const usePanBehavior = (
55
47
  }
56
48
  startPanBase(latestRuntime);
57
49
  resetSensitivity();
58
- }, [runtime, screenOptions, resetSensitivity, gestureCompositionActivation]);
50
+ }, [runtime, screenOptions, resetSensitivity, gestureCompositionOwner]);
59
51
 
60
52
  const onUpdate = useCallback(
61
53
  (rawEvent: PanGestureEvent) => {
@@ -86,7 +78,7 @@ export const usePanBehavior = (
86
78
 
87
79
  const release = !latestRuntime.policy.enabled
88
80
  ? {
89
- target: latestRuntime.stores.animations.progress.get(),
81
+ target: latestRuntime.stores.animations.transitionProgress.get(),
90
82
  shouldDismiss: false,
91
83
  initialVelocity: 0,
92
84
  transitionSpec: undefined,
@@ -95,7 +87,7 @@ export const usePanBehavior = (
95
87
  : latestRuntime.participation.effectiveSnapPoints.hasSnapPoints
96
88
  ? resolveSnapPanRelease(event, latestRuntime, dimensions)
97
89
  : resolvePanRelease(event, latestRuntime, dimensions);
98
- const isPanComposition = gestureCompositionActivation.get() === "pan";
90
+ const isPanCompositionOwner = gestureCompositionOwner.get() === "pan";
99
91
 
100
92
  finalizePanRelease(
101
93
  release,
@@ -104,11 +96,11 @@ export const usePanBehavior = (
104
96
  dimensions,
105
97
  rawEvent,
106
98
  requestDismiss,
107
- gestureCompositionActivation,
99
+ gestureCompositionOwner,
108
100
  );
109
101
 
110
- if (isPanComposition) {
111
- gestureCompositionActivation.set(null);
102
+ if (isPanCompositionOwner) {
103
+ gestureCompositionOwner.set(null);
112
104
  }
113
105
  },
114
106
  [
@@ -118,7 +110,7 @@ export const usePanBehavior = (
118
110
  dismissScreen,
119
111
  requestDismiss,
120
112
  withSensitivity,
121
- gestureCompositionActivation,
113
+ gestureCompositionOwner,
122
114
  ],
123
115
  );
124
116
 
@@ -3,11 +3,10 @@ import { useWindowDimensions } from "react-native";
3
3
  import { Gesture } from "react-native-gesture-handler";
4
4
  import type { SharedValue } from "react-native-reanimated";
5
5
  import { useScreenOptionsContext } from "../../options";
6
- import { useGestureBuilderState } from "../hooks/use-gesture-builder-state";
7
6
  import { useStableRuntimeConfig } from "../hooks/use-stable-runtime-config";
8
7
  import type {
9
8
  DirectionClaimMap,
10
- GestureCompositionActivation,
9
+ GestureCompositionOwner,
11
10
  PanGesture,
12
11
  ScreenGestureConfig,
13
12
  ScrollGestureState,
@@ -19,27 +18,22 @@ interface UseBuildPanGestureProps {
19
18
  scrollState: SharedValue<ScrollGestureState | null>;
20
19
  gestureConfig: ScreenGestureConfig;
21
20
  childDirectionClaims: SharedValue<DirectionClaimMap>;
22
- gestureCompositionActivation: SharedValue<GestureCompositionActivation>;
21
+ gestureCompositionOwner: SharedValue<GestureCompositionOwner>;
23
22
  }
24
23
 
25
24
  export const useBuildPanGesture = ({
26
25
  scrollState,
27
26
  gestureConfig,
28
27
  childDirectionClaims,
29
- gestureCompositionActivation,
28
+ gestureCompositionOwner,
30
29
  }: UseBuildPanGestureProps): PanGesture => {
31
30
  const dimensions = useWindowDimensions();
32
31
  const { participation, pan: policy } = gestureConfig;
33
32
  const screenOptions = useScreenOptionsContext();
34
33
 
35
- const { gestureProgressBaseline, lockedSnapPoint } =
36
- useGestureBuilderState(participation);
37
-
38
34
  const runtime = useStableRuntimeConfig({
39
35
  participation,
40
36
  policy,
41
- gestureProgressBaseline,
42
- lockedSnapPoint,
43
37
  });
44
38
 
45
39
  const activation = usePanActivation({
@@ -48,14 +42,14 @@ export const useBuildPanGesture = ({
48
42
  runtime,
49
43
  screenOptions,
50
44
  dimensions,
51
- gestureCompositionActivation,
45
+ gestureCompositionOwner,
52
46
  });
53
47
 
54
48
  const behavior = usePanBehavior(
55
49
  runtime,
56
50
  screenOptions,
57
51
  dimensions,
58
- gestureCompositionActivation,
52
+ gestureCompositionOwner,
59
53
  );
60
54
 
61
55
  const panGesture = useMemo(() => {
@@ -6,21 +6,18 @@ import type {
6
6
  import type { SharedValue } from "react-native-reanimated";
7
7
  import type { ScreenOptionsContextValue } from "../../../options";
8
8
  import { resolvePinchRuntime } from "../../shared/runtime";
9
- import type {
10
- GestureCompositionActivation,
11
- PinchGestureRuntime,
12
- } from "../../types";
9
+ import type { GestureCompositionOwner, PinchGestureRuntime } from "../../types";
13
10
 
14
11
  interface UsePinchActivationProps {
15
12
  runtime: SharedValue<PinchGestureRuntime>;
16
13
  screenOptions: ScreenOptionsContextValue;
17
- gestureCompositionActivation: SharedValue<GestureCompositionActivation>;
14
+ gestureCompositionOwner: SharedValue<GestureCompositionOwner>;
18
15
  }
19
16
 
20
17
  export const usePinchActivation = ({
21
18
  runtime,
22
19
  screenOptions,
23
- gestureCompositionActivation,
20
+ gestureCompositionOwner,
24
21
  }: UsePinchActivationProps) => {
25
22
  const onTouchesDown = useCallback(
26
23
  (
@@ -33,18 +30,15 @@ export const usePinchActivation = ({
33
30
  screenOptions.get(),
34
31
  );
35
32
 
36
- if (gestureCompositionActivation.get() === "pan") {
37
- stateManager?.fail();
38
- return;
39
- }
40
-
41
33
  if (!participation.canTrackGesture || !policy.enabled) {
42
34
  stateManager?.fail();
43
35
  return;
44
36
  }
45
37
 
46
38
  if (event.numberOfTouches === 2) {
47
- gestureCompositionActivation.set("pinch");
39
+ if (gestureCompositionOwner.get() === null) {
40
+ gestureCompositionOwner.set("pinch");
41
+ }
48
42
  stateManager?.activate();
49
43
  return;
50
44
  }
@@ -53,7 +47,7 @@ export const usePinchActivation = ({
53
47
  stateManager?.fail();
54
48
  }
55
49
  },
56
- [runtime, screenOptions, gestureCompositionActivation],
50
+ [runtime, screenOptions, gestureCompositionOwner],
57
51
  );
58
52
 
59
53
  const onTouchesMove = useCallback(
@@ -70,14 +64,18 @@ export const usePinchActivation = ({
70
64
  }
71
65
 
72
66
  if (event.numberOfTouches === 2) {
73
- gestureCompositionActivation.set("pinch");
67
+ if (gestureCompositionOwner.get() === null) {
68
+ gestureCompositionOwner.set("pinch");
69
+ }
74
70
  stateManager.activate();
75
71
  return;
76
72
  }
77
73
 
78
- stateManager.fail();
74
+ if (event.numberOfTouches > 2) {
75
+ stateManager.fail();
76
+ }
79
77
  },
80
- [runtime, screenOptions, gestureCompositionActivation],
78
+ [runtime, screenOptions, gestureCompositionOwner],
81
79
  );
82
80
 
83
81
  return useMemo(
@@ -3,6 +3,8 @@ import { EPSILON, FALSE, TRUE } from "../../../../../constants";
3
3
  import { animateToProgress } from "../../../../../utils/animation/animate-to-progress";
4
4
  import { emit } from "../../../../../utils/animation/emit";
5
5
  import { normalizePinchScale } from "../../shared/physics";
6
+ import { snapshotGestureHandoff } from "../../shared/snapshot";
7
+ import { clearTransformTrackingValues } from "../../shared/values";
6
8
  import type {
7
9
  PinchGestureEvent,
8
10
  PinchGestureRuntime,
@@ -18,7 +20,6 @@ export const startPinchBase = (
18
20
  "worklet";
19
21
  const {
20
22
  stores: { gestures, animations },
21
- gestureProgressBaseline,
22
23
  } = runtime;
23
24
 
24
25
  const wasSettling = gestures.settling.get();
@@ -36,15 +37,10 @@ export const startPinchBase = (
36
37
  gestures.active.set(null);
37
38
  gestures.direction.set(null);
38
39
  gestures.velocity.set(0);
39
- gestures.scale.set(1);
40
- gestures.normScale.set(0);
41
- gestures.rotation.set(0);
42
- gestures.raw.scale.set(1);
43
- gestures.raw.normScale.set(0);
44
- gestures.raw.rotation.set(0);
40
+ clearTransformTrackingValues(gestures);
45
41
  gestures.focalX.set(event.focalX);
46
42
  gestures.focalY.set(event.focalY);
47
- gestureProgressBaseline.set(animations.progress.get());
43
+ gestures.internal.progressBaseline.set(animations.transitionProgress.get());
48
44
  };
49
45
 
50
46
  export const trackPinchGesture = (
@@ -60,6 +56,8 @@ export const trackPinchGesture = (
60
56
 
61
57
  gestures.scale.set(scale);
62
58
  gestures.normScale.set(normScale);
59
+ gestures.focalX.set(event.focalX);
60
+ gestures.focalY.set(event.focalY);
63
61
  gestures.raw.scale.set(rawScale);
64
62
  gestures.raw.normScale.set(rawNormScale);
65
63
  gestures.active.set(
@@ -84,10 +82,16 @@ export const finalizePinchRelease = (
84
82
  } = runtime;
85
83
 
86
84
  if (typeof release.commitProgress === "number") {
87
- animations.progress.set(release.commitProgress);
85
+ animations.transitionProgress.set(release.commitProgress);
88
86
  system.targetProgress.set(release.commitProgress);
89
87
  }
90
88
 
89
+ if (release.shouldDismiss) {
90
+ snapshotGestureHandoff(gestures, {
91
+ velocity: release.handoffVelocity,
92
+ });
93
+ }
94
+
91
95
  resetPinchGestureValues({
92
96
  spec: release.resetSpec,
93
97
  gestures,