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
@@ -1,4 +1,4 @@
1
- import { useMemo } from "react";
1
+ import { useLayoutEffect, useMemo, useState } from "react";
2
2
  import type { LayoutChangeEvent } from "react-native";
3
3
  import { Gesture, type GestureType } from "react-native-gesture-handler";
4
4
  import {
@@ -9,13 +9,23 @@ import {
9
9
  import { useSharedValueState } from "../../../../hooks/reanimated/use-shared-value-state";
10
10
  import useStableCallback from "../../../../hooks/use-stable-callback";
11
11
  import { AnimationStore } from "../../../../stores/animation.store";
12
+ import { ScrollStore } from "../../../../stores/scroll.store";
12
13
  import { useGestureContext } from "../gestures.provider";
13
14
  import type {
14
15
  ScrollGestureAxis,
15
16
  ScrollGestureAxisState,
16
17
  ScrollGestureState,
18
+ ScrollMetadataState,
17
19
  } from "../types";
18
- import { updateScrollGestureAxisState } from "./update-scroll-gesture-state";
20
+ import {
21
+ useScrollMetadataOwnerContext,
22
+ useScrollMetadataOwnerProviderValue,
23
+ } from "./scroll-metadata-owner";
24
+ import {
25
+ clearScrollMetadataAxisState,
26
+ updateScrollGestureAxisState,
27
+ updateScrollMetadataAxisState,
28
+ } from "./update-scroll-gesture-state";
19
29
  import { walkUpScrollGestureCoordination } from "./walk-up-scroll-gesture-coordination";
20
30
 
21
31
  interface ScrollGestureCoordinationProps {
@@ -41,6 +51,31 @@ const modifyScrollGestureAxisState = (
41
51
  });
42
52
  };
43
53
 
54
+ const modifyScrollMetadataAxisState = (
55
+ scrollState: SharedValue<ScrollMetadataState | null>,
56
+ axis: ScrollGestureAxis,
57
+ patch: ScrollGesturePatch,
58
+ ) => {
59
+ "worklet";
60
+
61
+ scrollState.modify(<T extends ScrollMetadataState | null>(state: T): T => {
62
+ "worklet";
63
+ return updateScrollMetadataAxisState(state, axis, patch) as T;
64
+ });
65
+ };
66
+
67
+ const clearScrollMetadataAxis = (
68
+ scrollState: SharedValue<ScrollMetadataState | null>,
69
+ axis: ScrollGestureAxis,
70
+ ) => {
71
+ "worklet";
72
+
73
+ scrollState.modify(<T extends ScrollMetadataState | null>(state: T): T => {
74
+ "worklet";
75
+ return clearScrollMetadataAxisState(state, axis) as T;
76
+ });
77
+ };
78
+
44
79
  /**
45
80
  * Returns scroll handlers and a native gesture for ScrollView coordination.
46
81
  *
@@ -56,11 +91,63 @@ export const useScrollGestureCoordination = (
56
91
  const context = useGestureContext();
57
92
  const scrollDirection = props.direction ?? "vertical";
58
93
 
94
+ const metadataOwnerContext = useScrollMetadataOwnerContext();
95
+ const metadataOwnerProviderValue =
96
+ useScrollMetadataOwnerProviderValue(scrollDirection);
97
+ const isFirstMetadataWriterInTree = !metadataOwnerContext[scrollDirection];
98
+ const [metadataWriterId] = useState(() =>
99
+ ScrollStore.createMetadataWriterId(),
100
+ );
101
+ const [writesMetadata, setWritesMetadata] = useState(false);
102
+
59
103
  const { scrollStates, panGestures, pinchGestures, ownerRouteKeys } = useMemo(
60
104
  () => walkUpScrollGestureCoordination(context, scrollDirection),
61
105
  [context, scrollDirection],
62
106
  );
63
107
 
108
+ const routeKey = context?.routeKey;
109
+ const metadataState = useMemo(
110
+ () => (routeKey ? ScrollStore.getValue(routeKey, "metadata") : null),
111
+ [routeKey],
112
+ );
113
+
114
+ useLayoutEffect(() => {
115
+ if (!routeKey || !isFirstMetadataWriterInTree) {
116
+ setWritesMetadata(false);
117
+ return;
118
+ }
119
+
120
+ const claimed = ScrollStore.claimMetadataWriter(
121
+ routeKey,
122
+ scrollDirection,
123
+ metadataWriterId,
124
+ );
125
+ setWritesMetadata(claimed);
126
+
127
+ return () => {
128
+ const released = ScrollStore.releaseMetadataWriter(
129
+ routeKey,
130
+ scrollDirection,
131
+ metadataWriterId,
132
+ );
133
+
134
+ if (!released || !metadataState) return;
135
+
136
+ if (!ScrollStore.hasMetadataWriters(routeKey)) {
137
+ metadataState.set(null);
138
+ return;
139
+ }
140
+
141
+ clearScrollMetadataAxis(metadataState, scrollDirection);
142
+ };
143
+ }, [
144
+ routeKey,
145
+ scrollDirection,
146
+ isFirstMetadataWriterInTree,
147
+ metadataState,
148
+ metadataWriterId,
149
+ ]);
150
+
64
151
  const ownerClosingValues = useMemo(
65
152
  () =>
66
153
  ownerRouteKeys.map((routeKey) =>
@@ -92,6 +179,12 @@ export const useScrollGestureCoordination = (
92
179
  isTouched: true,
93
180
  });
94
181
  }
182
+
183
+ if (writesMetadata && metadataState) {
184
+ modifyScrollMetadataAxisState(metadataState, scrollDirection, {
185
+ isTouched: true,
186
+ });
187
+ }
95
188
  };
96
189
 
97
190
  const clearIsTouched = () => {
@@ -101,6 +194,12 @@ export const useScrollGestureCoordination = (
101
194
  isTouched: false,
102
195
  });
103
196
  }
197
+
198
+ if (writesMetadata && metadataState) {
199
+ modifyScrollMetadataAxisState(metadataState, scrollDirection, {
200
+ isTouched: false,
201
+ });
202
+ }
104
203
  };
105
204
 
106
205
  let gesture = Gesture.Native()
@@ -121,12 +220,17 @@ export const useScrollGestureCoordination = (
121
220
  }
122
221
 
123
222
  return gesture;
124
- }, [panGestures, pinchGestures, scrollStates, scrollDirection]);
223
+ }, [
224
+ panGestures,
225
+ pinchGestures,
226
+ scrollStates,
227
+ scrollDirection,
228
+ writesMetadata,
229
+ metadataState,
230
+ ]);
125
231
 
126
232
  const scrollHandler = useAnimatedScrollHandler({
127
233
  onScroll: (event) => {
128
- if (scrollStates.length === 0) return;
129
-
130
234
  const offset =
131
235
  scrollDirection === "horizontal"
132
236
  ? event.contentOffset.x
@@ -135,7 +239,14 @@ export const useScrollGestureCoordination = (
135
239
  for (const scrollState of scrollStates) {
136
240
  modifyScrollGestureAxisState(scrollState, scrollDirection, {
137
241
  offset,
138
- isTouched: scrollState.get()?.isTouched ?? true,
242
+ isTouched: scrollState.get()?.[scrollDirection].isTouched ?? true,
243
+ });
244
+ }
245
+
246
+ if (writesMetadata && metadataState) {
247
+ modifyScrollMetadataAxisState(metadataState, scrollDirection, {
248
+ offset,
249
+ isTouched: metadataState.get()?.[scrollDirection]?.isTouched ?? true,
139
250
  });
140
251
  }
141
252
  },
@@ -144,7 +255,6 @@ export const useScrollGestureCoordination = (
144
255
  const onContentSizeChange = useStableCallback(
145
256
  (width: number, height: number) => {
146
257
  props.onContentSizeChange?.(width, height);
147
- if (scrollStates.length === 0) return;
148
258
 
149
259
  const contentSize = scrollDirection === "horizontal" ? width : height;
150
260
 
@@ -153,12 +263,17 @@ export const useScrollGestureCoordination = (
153
263
  contentSize,
154
264
  });
155
265
  }
266
+
267
+ if (writesMetadata && metadataState) {
268
+ modifyScrollMetadataAxisState(metadataState, scrollDirection, {
269
+ contentSize,
270
+ });
271
+ }
156
272
  },
157
273
  );
158
274
 
159
275
  const onLayout = useStableCallback((event: LayoutChangeEvent) => {
160
276
  props.onLayout?.(event);
161
- if (scrollStates.length === 0) return;
162
277
 
163
278
  const { width, height } = event.nativeEvent.layout;
164
279
  const layoutSize = scrollDirection === "horizontal" ? width : height;
@@ -168,6 +283,12 @@ export const useScrollGestureCoordination = (
168
283
  layoutSize,
169
284
  });
170
285
  }
286
+
287
+ if (writesMetadata && metadataState) {
288
+ modifyScrollMetadataAxisState(metadataState, scrollDirection, {
289
+ layoutSize,
290
+ });
291
+ }
171
292
  });
172
293
 
173
294
  return {
@@ -176,5 +297,6 @@ export const useScrollGestureCoordination = (
176
297
  onContentSizeChange,
177
298
  onLayout,
178
299
  nativeGesture,
300
+ metadataOwnerProviderValue,
179
301
  };
180
302
  };
@@ -10,7 +10,6 @@ interface CalculateProgressProps {
10
10
  event: PanGestureEvent;
11
11
  dimensions: { width: number; height: number };
12
12
  directions: GestureDirections;
13
- gestureReleaseVelocityScale?: number;
14
13
  }
15
14
 
16
15
  type GestureAxisCandidate = {
@@ -32,25 +31,28 @@ export const toProgressVelocity = (
32
31
  };
33
32
 
34
33
  /**
35
- * Converts normalized pan velocity into a 0-1 scalar for interpolators.
34
+ * Converts normalized gesture velocity into a 0-1 scalar for interpolators.
36
35
  *
37
36
  * `1` means the velocity reached or exceeded the library's full-velocity
38
37
  * threshold, not a physical maximum for the device.
39
38
  */
39
+ export const resolveGestureVelocityMagnitude = (velocity: number) => {
40
+ "worklet";
41
+
42
+ return Math.min(
43
+ 1,
44
+ Math.abs(velocity) / FULL_GESTURE_VELOCITY_PROGRESS_PER_SECOND,
45
+ );
46
+ };
47
+
40
48
  export const resolveGestureVelocity = (
41
49
  velocityNormX: number,
42
50
  velocityNormY: number,
43
51
  ) => {
44
52
  "worklet";
45
53
 
46
- const dominantVelocity = Math.max(
47
- Math.abs(velocityNormX),
48
- Math.abs(velocityNormY),
49
- );
50
-
51
- return Math.min(
52
- 1,
53
- dominantVelocity / FULL_GESTURE_VELOCITY_PROGRESS_PER_SECOND,
54
+ return resolveGestureVelocityMagnitude(
55
+ Math.max(Math.abs(velocityNormX), Math.abs(velocityNormY)),
54
56
  );
55
57
  };
56
58
 
@@ -85,7 +87,6 @@ const getPanAxisCandidate = (
85
87
  translationTowardDismiss: number,
86
88
  velocityTowardDismiss: number,
87
89
  screenSize: number,
88
- gestureReleaseVelocityScale?: number,
89
90
  ): GestureAxisCandidate | null => {
90
91
  "worklet";
91
92
  if (!isEnabled || translationTowardDismiss <= 0) {
@@ -97,7 +98,6 @@ const getPanAxisCandidate = (
97
98
  velocityContribution: getPanReleaseHandoffVelocity(
98
99
  velocityTowardDismiss,
99
100
  screenSize,
100
- gestureReleaseVelocityScale,
101
101
  ),
102
102
  };
103
103
  };
@@ -116,11 +116,7 @@ const collectPanAxisCandidates = ({
116
116
  event,
117
117
  dimensions,
118
118
  directions,
119
- gestureReleaseVelocityScale,
120
- }: Pick<
121
- CalculateProgressProps,
122
- "event" | "dimensions" | "directions" | "gestureReleaseVelocityScale"
123
- >) => {
119
+ }: Pick<CalculateProgressProps, "event" | "dimensions" | "directions">) => {
124
120
  "worklet";
125
121
  const candidates: GestureAxisCandidate[] = [];
126
122
 
@@ -131,7 +127,6 @@ const collectPanAxisCandidates = ({
131
127
  event.translationX,
132
128
  event.velocityX,
133
129
  dimensions.width,
134
- gestureReleaseVelocityScale,
135
130
  ),
136
131
  );
137
132
  pushPanAxisCandidate(
@@ -141,7 +136,6 @@ const collectPanAxisCandidates = ({
141
136
  -event.translationX,
142
137
  -event.velocityX,
143
138
  dimensions.width,
144
- gestureReleaseVelocityScale,
145
139
  ),
146
140
  );
147
141
  pushPanAxisCandidate(
@@ -151,7 +145,6 @@ const collectPanAxisCandidates = ({
151
145
  event.translationY,
152
146
  event.velocityY,
153
147
  dimensions.height,
154
- gestureReleaseVelocityScale,
155
148
  ),
156
149
  );
157
150
  pushPanAxisCandidate(
@@ -161,7 +154,6 @@ const collectPanAxisCandidates = ({
161
154
  -event.translationY,
162
155
  -event.velocityY,
163
156
  dimensions.height,
164
- gestureReleaseVelocityScale,
165
157
  ),
166
158
  );
167
159
 
@@ -190,21 +182,15 @@ const getDominantPanCandidateVelocity = (
190
182
  const getFallbackPanReleaseVelocityMagnitude = ({
191
183
  event,
192
184
  dimensions,
193
- gestureReleaseVelocityScale,
194
- }: Pick<
195
- CalculateProgressProps,
196
- "event" | "dimensions" | "gestureReleaseVelocityScale"
197
- >) => {
185
+ }: Pick<CalculateProgressProps, "event" | "dimensions">) => {
198
186
  "worklet";
199
187
  const normalizedVelocityX = getPanReleaseHandoffVelocity(
200
188
  event.velocityX,
201
189
  dimensions.width,
202
- gestureReleaseVelocityScale,
203
190
  );
204
191
  const normalizedVelocityY = getPanReleaseHandoffVelocity(
205
192
  event.velocityY,
206
193
  dimensions.height,
207
- gestureReleaseVelocityScale,
208
194
  );
209
195
 
210
196
  return Math.max(Math.abs(normalizedVelocityX), Math.abs(normalizedVelocityY));
@@ -232,11 +218,10 @@ export const getPanReleaseProgressVelocity = ({
232
218
  event,
233
219
  dimensions,
234
220
  directions,
235
- gestureReleaseVelocityScale,
236
221
  }: CalculateProgressProps) => {
237
222
  "worklet";
238
223
 
239
- const currentProgress = animations.progress.get();
224
+ const currentProgress = animations.transitionProgress.get();
240
225
  const targetProgress = shouldDismiss ? 0 : 1;
241
226
  const progressDelta = targetProgress - currentProgress;
242
227
 
@@ -247,7 +232,6 @@ export const getPanReleaseProgressVelocity = ({
247
232
  event,
248
233
  dimensions,
249
234
  directions,
250
- gestureReleaseVelocityScale,
251
235
  }),
252
236
  );
253
237
  const progressVelocityMagnitude =
@@ -255,7 +239,6 @@ export const getPanReleaseProgressVelocity = ({
255
239
  getFallbackPanReleaseVelocityMagnitude({
256
240
  event,
257
241
  dimensions,
258
- gestureReleaseVelocityScale,
259
242
  });
260
243
 
261
244
  return progressDirection * progressVelocityMagnitude;
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  DEFAULT_GESTURE_ACTIVATION_AREA,
3
3
  DEFAULT_GESTURE_DIRECTION,
4
- DEFAULT_GESTURE_PROGRESS_MODE,
5
4
  DEFAULT_GESTURE_RELEASE_VELOCITY_SCALE,
6
5
  DEFAULT_GESTURE_SENSITIVITY,
7
6
  DEFAULT_GESTURE_SNAP_LOCKED,
@@ -15,7 +14,6 @@ import type {
15
14
  GestureDirectionActivationArea,
16
15
  GestureDirectionEntry,
17
16
  GestureDirectionOption,
18
- GestureProgressMode,
19
17
  ResolvedGestureActivationArea,
20
18
  } from "../../../../types/gesture.types";
21
19
  import type {
@@ -24,7 +22,6 @@ import type {
24
22
  SheetScrollGestureBehavior,
25
23
  SnapPoint,
26
24
  } from "../../../../types/screen.types";
27
- import { resolveGestureProgressMode } from "../../../../utils/gesture-progress-mode";
28
25
  import { computeClaimedDirections } from "../ownership/compute-claimed-directions";
29
26
  import { resolveOwnership } from "../ownership/resolve-ownership";
30
27
  import type {
@@ -49,9 +46,7 @@ export type GesturePolicyOptions = {
49
46
  expandViaScrollView?: boolean;
50
47
  gestureActivationArea?: GestureActivationArea;
51
48
  gestureDirection?: GestureDirectionOption;
52
- gestureDrivesProgress?: boolean;
53
49
  gestureEnabled?: boolean;
54
- gestureProgressMode?: GestureProgressMode;
55
50
  gestureTracking?: GestureTracking;
56
51
  gestureReleaseVelocityScale?: number;
57
52
  gestureResponseDistance?: number;
@@ -155,19 +150,9 @@ const resolveGestureActivationArea = (
155
150
  );
156
151
  };
157
152
 
158
- function resolveGestureProgressModePolicy(options: GesturePolicyOptions) {
159
- "worklet";
160
- return resolveGestureProgressMode({
161
- gestureProgressMode: options.gestureProgressMode,
162
- gestureDrivesProgress: options.gestureDrivesProgress,
163
- fallback: DEFAULT_GESTURE_PROGRESS_MODE,
164
- });
165
- }
166
-
167
153
  const resolveCommonGesturePolicy = (options: GesturePolicyOptions) => {
168
154
  "worklet";
169
155
  return {
170
- gestureProgressMode: resolveGestureProgressModePolicy(options),
171
156
  gestureSensitivity:
172
157
  options.gestureSensitivity ?? DEFAULT_GESTURE_SENSITIVITY,
173
158
  gestureSnapVelocityImpact:
@@ -1,6 +1,4 @@
1
1
  import type { SharedValue } from "react-native-reanimated";
2
- import { FALSE } from "../../../../constants";
3
- import type { GestureStoreMap } from "../../../../stores/gesture.store";
4
2
  import type { AnimationConfig } from "../../../../types/animation.types";
5
3
  import {
6
4
  animate,
@@ -10,12 +8,18 @@ import {
10
8
 
11
9
  type ResetSpringSpec = SpringAnimationConfig & { velocity?: number };
12
10
 
11
+ type AnimateManyJob = {
12
+ value: SharedValue<number>;
13
+ toValue: number;
14
+ velocity?: number;
15
+ };
16
+
13
17
  const isResetSpringSpec = (spec?: AnimationConfig): spec is ResetSpringSpec => {
14
18
  "worklet";
15
19
  return isSpringAnimationConfig(spec);
16
20
  };
17
21
 
18
- export const getGestureResetSpec = (
22
+ const getGestureResetSpec = (
19
23
  spec?: AnimationConfig,
20
24
  velocity?: number,
21
25
  ): AnimationConfig | undefined => {
@@ -34,7 +38,7 @@ export const getGestureResetSpec = (
34
38
  return { ...resetSpec, velocity };
35
39
  };
36
40
 
37
- export const animateResetValue = (
41
+ const animateResetValue = (
38
42
  value: SharedValue<number>,
39
43
  toValue: number,
40
44
  config: AnimationConfig | undefined,
@@ -51,16 +55,34 @@ export const animateResetValue = (
51
55
  );
52
56
  };
53
57
 
54
- export const clearGestureSettlingIfResting = (
55
- gestures: GestureStoreMap,
56
- isResting: boolean,
58
+ export const animateMany = (
59
+ jobs: AnimateManyJob[],
60
+ spec: AnimationConfig | undefined,
61
+ onFinished: () => void,
57
62
  ) => {
58
63
  "worklet";
59
- if (!isResting) {
64
+ let pendingJobs = jobs.length;
65
+
66
+ if (pendingJobs === 0) {
67
+ onFinished();
60
68
  return;
61
69
  }
62
70
 
63
- gestures.active.set(null);
64
- gestures.direction.set(null);
65
- gestures.settling.set(FALSE);
71
+ const finishJob = () => {
72
+ "worklet";
73
+ pendingJobs -= 1;
74
+
75
+ if (pendingJobs === 0) {
76
+ onFinished();
77
+ }
78
+ };
79
+
80
+ for (const job of jobs) {
81
+ animateResetValue(
82
+ job.value,
83
+ job.toValue,
84
+ getGestureResetSpec(spec, job.velocity),
85
+ finishJob,
86
+ );
87
+ }
66
88
  };
@@ -232,19 +232,20 @@ export const primeRuntimeSnapPoint = (
232
232
  "worklet";
233
233
  const {
234
234
  policy,
235
- stores: { animations },
236
- lockedSnapPoint,
235
+ stores: { animations, gestures },
237
236
  } = runtime;
238
237
 
239
- const { resolvedSnapPoints, resolvedMaxSnapPoint } =
240
- resolveRuntimeGestureSnapPoints(runtime);
238
+ const { resolvedSnapPoints } = resolveRuntimeGestureSnapPoints(runtime);
241
239
 
242
240
  if (policy.gestureSnapLocked) {
243
- lockedSnapPoint.set(
244
- findNearestSnapPoint(animations.progress.get(), resolvedSnapPoints),
241
+ gestures.internal.lockedSnapPoint.set(
242
+ findNearestSnapPoint(
243
+ animations.transitionProgress.get(),
244
+ resolvedSnapPoints,
245
+ ),
245
246
  );
246
247
  return;
247
248
  }
248
249
 
249
- lockedSnapPoint.set(resolvedMaxSnapPoint);
250
+ gestures.internal.lockedSnapPoint.set(null);
250
251
  };
@@ -0,0 +1,33 @@
1
+ import type { GestureStoreMap } from "../../../../stores/gesture.store";
2
+
3
+ type SnapshotGestureHandoffOptions = {
4
+ velocity?: number;
5
+ };
6
+
7
+ export const snapshotGestureHandoff = (
8
+ gestures: GestureStoreMap,
9
+ options?: SnapshotGestureHandoffOptions,
10
+ ) => {
11
+ "worklet";
12
+ const snapshot = gestures.internal.snapshot;
13
+
14
+ snapshot.x.set(gestures.x.get());
15
+ snapshot.y.set(gestures.y.get());
16
+ snapshot.normX.set(gestures.normX.get());
17
+ snapshot.normY.set(gestures.normY.get());
18
+ snapshot.velocity.set(options?.velocity ?? gestures.velocity.get());
19
+ snapshot.scale.set(gestures.scale.get());
20
+ snapshot.normScale.set(gestures.normScale.get());
21
+ snapshot.focalX.set(gestures.focalX.get());
22
+ snapshot.focalY.set(gestures.focalY.get());
23
+ snapshot.rotation.set(gestures.rotation.get());
24
+ snapshot.raw.x.set(gestures.raw.x.get());
25
+ snapshot.raw.y.set(gestures.raw.y.get());
26
+ snapshot.raw.normX.set(gestures.raw.normX.get());
27
+ snapshot.raw.normY.set(gestures.raw.normY.get());
28
+ snapshot.raw.scale.set(gestures.raw.scale.get());
29
+ snapshot.raw.normScale.set(gestures.raw.normScale.get());
30
+ snapshot.raw.rotation.set(gestures.raw.rotation.get());
31
+ snapshot.active.set(gestures.active.get());
32
+ snapshot.direction.set(gestures.direction.get());
33
+ };
@@ -0,0 +1,52 @@
1
+ import type { GestureStoreMap } from "../../../../stores/gesture.store";
2
+
3
+ export const clearRawPanValues = (gestures: GestureStoreMap) => {
4
+ "worklet";
5
+ gestures.raw.x.set(0);
6
+ gestures.raw.y.set(0);
7
+ gestures.raw.normX.set(0);
8
+ gestures.raw.normY.set(0);
9
+ };
10
+
11
+ export const clearPanProgressDeltaValues = (gestures: GestureStoreMap) => {
12
+ "worklet";
13
+ gestures.internal.progressDeltaX.set(0);
14
+ gestures.internal.progressDeltaY.set(0);
15
+ };
16
+
17
+ export const clearPanProgressValues = (gestures: GestureStoreMap) => {
18
+ "worklet";
19
+ gestures.x.set(0);
20
+ gestures.y.set(0);
21
+ gestures.normX.set(0);
22
+ gestures.normY.set(0);
23
+ clearPanProgressDeltaValues(gestures);
24
+ };
25
+
26
+ export const clearPanTrackingValues = (gestures: GestureStoreMap) => {
27
+ "worklet";
28
+ clearPanProgressValues(gestures);
29
+ clearRawPanValues(gestures);
30
+ gestures.velocity.set(0);
31
+ };
32
+
33
+ export const clearFocalPoint = (gestures: GestureStoreMap) => {
34
+ "worklet";
35
+ gestures.focalX.set(0);
36
+ gestures.focalY.set(0);
37
+ };
38
+
39
+ export const clearRawTransformValues = (gestures: GestureStoreMap) => {
40
+ "worklet";
41
+ gestures.raw.scale.set(1);
42
+ gestures.raw.normScale.set(0);
43
+ gestures.raw.rotation.set(0);
44
+ };
45
+
46
+ export const clearTransformTrackingValues = (gestures: GestureStoreMap) => {
47
+ "worklet";
48
+ gestures.scale.set(1);
49
+ gestures.normScale.set(0);
50
+ gestures.rotation.set(0);
51
+ clearRawTransformValues(gestures);
52
+ };