react-native-screen-transitions 3.9.0 → 3.10.0

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 (383) hide show
  1. package/lib/commonjs/shared/animation/snap-to.js +2 -0
  2. package/lib/commonjs/shared/animation/snap-to.js.map +1 -1
  3. package/lib/commonjs/shared/components/boundary/components/boundary-target.js +19 -20
  4. package/lib/commonjs/shared/components/boundary/components/boundary-target.js.map +1 -1
  5. package/lib/commonjs/shared/components/boundary/create-boundary-component.js +16 -2
  6. package/lib/commonjs/shared/components/boundary/create-boundary-component.js.map +1 -1
  7. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js +5 -0
  8. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
  9. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js +1 -3
  10. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  11. package/lib/commonjs/shared/components/boundary/index.js +4 -3
  12. package/lib/commonjs/shared/components/boundary/index.js.map +1 -1
  13. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +47 -187
  14. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  15. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/index.js +21 -13
  16. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/index.js.map +1 -1
  17. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/host.js +1 -12
  18. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -1
  19. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +40 -33
  20. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -1
  21. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.js +3 -4
  22. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.js.map +1 -1
  23. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +46 -130
  24. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  25. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/index.js +45 -9
  26. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/index.js.map +1 -1
  27. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.js.map +1 -1
  28. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js +2 -29
  29. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -1
  30. package/lib/commonjs/shared/components/boundary/portal/utils/handoff-target.js +33 -0
  31. package/lib/commonjs/shared/components/boundary/portal/utils/handoff-target.js.map +1 -0
  32. package/lib/commonjs/shared/components/boundary/portal/utils/resolve-portal.js +19 -15
  33. package/lib/commonjs/shared/components/boundary/portal/utils/resolve-portal.js.map +1 -1
  34. package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js +1 -10
  35. package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js.map +1 -1
  36. package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js +18 -36
  37. package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
  38. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js +7 -0
  39. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js.map +1 -1
  40. package/lib/commonjs/shared/components/boundary/utils/resolve-boundary-target.js +29 -0
  41. package/lib/commonjs/shared/components/boundary/utils/resolve-boundary-target.js.map +1 -0
  42. package/lib/commonjs/shared/components/masked-view.js +9 -1
  43. package/lib/commonjs/shared/components/masked-view.js.map +1 -1
  44. package/lib/commonjs/shared/components/screen-container/layers/backdrop.js +3 -1
  45. package/lib/commonjs/shared/components/screen-container/layers/backdrop.js.map +1 -1
  46. package/lib/commonjs/shared/components/screen-container/layers/maybe-masked-navigation-container.js +9 -1
  47. package/lib/commonjs/shared/components/screen-container/layers/maybe-masked-navigation-container.js.map +1 -1
  48. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-transition-start-controller.js +2 -0
  49. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-transition-start-controller.js.map +1 -1
  50. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js +4 -1
  51. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  52. package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js +2 -8
  53. package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
  54. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js +1 -0
  55. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  56. package/lib/commonjs/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js +37 -3
  57. package/lib/commonjs/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js.map +1 -1
  58. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +1 -0
  59. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  60. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-release.js +3 -2
  61. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-release.js.map +1 -1
  62. package/lib/commonjs/shared/providers/screen/gestures/types.js.map +1 -1
  63. package/lib/commonjs/shared/providers/screen/styles/helpers/transition-visual-state.js +42 -0
  64. package/lib/commonjs/shared/providers/screen/styles/helpers/transition-visual-state.js.map +1 -0
  65. package/lib/commonjs/shared/providers/screen/styles/helpers/visibility-gate.js +11 -5
  66. package/lib/commonjs/shared/providers/screen/styles/helpers/visibility-gate.js.map +1 -1
  67. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +23 -10
  68. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  69. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +10 -8
  70. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  71. package/lib/commonjs/shared/stores/bounds/internals/links.js +4 -4
  72. package/lib/commonjs/shared/stores/bounds/internals/links.js.map +1 -1
  73. package/lib/commonjs/shared/stores/scroll.store.js +20 -2
  74. package/lib/commonjs/shared/stores/scroll.store.js.map +1 -1
  75. package/lib/commonjs/shared/stores/system.store.js +2 -0
  76. package/lib/commonjs/shared/stores/system.store.js.map +1 -1
  77. package/lib/commonjs/shared/utils/animation/animate-to-progress.js +23 -1
  78. package/lib/commonjs/shared/utils/animation/animate-to-progress.js.map +1 -1
  79. package/lib/commonjs/shared/utils/animation/animate.js +14 -2
  80. package/lib/commonjs/shared/utils/animation/animate.js.map +1 -1
  81. package/lib/commonjs/shared/utils/animation/spring/spring.js +22 -2
  82. package/lib/commonjs/shared/utils/animation/spring/spring.js.map +1 -1
  83. package/lib/commonjs/shared/utils/animation/spring/springUtils.js +96 -0
  84. package/lib/commonjs/shared/utils/animation/spring/springUtils.js.map +1 -1
  85. package/lib/commonjs/shared/utils/animation/state.js +4 -0
  86. package/lib/commonjs/shared/utils/bounds/navigation/reveal/math.js +17 -5
  87. package/lib/commonjs/shared/utils/bounds/navigation/reveal/math.js.map +1 -1
  88. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js +44 -20
  89. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  90. package/lib/commonjs/shared/utils/bounds/navigation/zoom/drag.js +2 -31
  91. package/lib/commonjs/shared/utils/bounds/navigation/zoom/drag.js.map +1 -1
  92. package/lib/commonjs/shared/utils/bounds/navigation/zoom/helpers.js +3 -17
  93. package/lib/commonjs/shared/utils/bounds/navigation/zoom/helpers.js.map +1 -1
  94. package/lib/module/shared/animation/snap-to.js +2 -0
  95. package/lib/module/shared/animation/snap-to.js.map +1 -1
  96. package/lib/module/shared/components/boundary/components/boundary-target.js +19 -20
  97. package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -1
  98. package/lib/module/shared/components/boundary/create-boundary-component.js +17 -3
  99. package/lib/module/shared/components/boundary/create-boundary-component.js.map +1 -1
  100. package/lib/module/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js +5 -0
  101. package/lib/module/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
  102. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js +1 -3
  103. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  104. package/lib/module/shared/components/boundary/index.js +3 -2
  105. package/lib/module/shared/components/boundary/index.js.map +1 -1
  106. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +49 -189
  107. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  108. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/index.js +21 -13
  109. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/index.js.map +1 -1
  110. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/host.js +2 -13
  111. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -1
  112. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +43 -36
  113. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -1
  114. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.js +3 -4
  115. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.js.map +1 -1
  116. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +50 -134
  117. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  118. package/lib/module/shared/components/boundary/portal/components/boundary-portal/index.js +44 -9
  119. package/lib/module/shared/components/boundary/portal/components/boundary-portal/index.js.map +1 -1
  120. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.js.map +1 -1
  121. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js +1 -27
  122. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -1
  123. package/lib/module/shared/components/boundary/portal/utils/handoff-target.js +28 -0
  124. package/lib/module/shared/components/boundary/portal/utils/handoff-target.js.map +1 -0
  125. package/lib/module/shared/components/boundary/portal/utils/resolve-portal.js +19 -15
  126. package/lib/module/shared/components/boundary/portal/utils/resolve-portal.js.map +1 -1
  127. package/lib/module/shared/components/boundary/portal/utils/teleport-control.js +0 -8
  128. package/lib/module/shared/components/boundary/portal/utils/teleport-control.js.map +1 -1
  129. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js +19 -37
  130. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
  131. package/lib/module/shared/components/boundary/utils/refresh-signals.js +7 -0
  132. package/lib/module/shared/components/boundary/utils/refresh-signals.js.map +1 -1
  133. package/lib/module/shared/components/boundary/utils/resolve-boundary-target.js +24 -0
  134. package/lib/module/shared/components/boundary/utils/resolve-boundary-target.js.map +1 -0
  135. package/lib/module/shared/components/masked-view.js +10 -2
  136. package/lib/module/shared/components/masked-view.js.map +1 -1
  137. package/lib/module/shared/components/screen-container/layers/backdrop.js +3 -1
  138. package/lib/module/shared/components/screen-container/layers/backdrop.js.map +1 -1
  139. package/lib/module/shared/components/screen-container/layers/maybe-masked-navigation-container.js +10 -2
  140. package/lib/module/shared/components/screen-container/layers/maybe-masked-navigation-container.js.map +1 -1
  141. package/lib/module/shared/components/screen-lifecycle/hooks/use-transition-start-controller.js +2 -0
  142. package/lib/module/shared/components/screen-lifecycle/hooks/use-transition-start-controller.js.map +1 -1
  143. package/lib/module/shared/providers/helpers/measured-bounds-writes.js +4 -1
  144. package/lib/module/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  145. package/lib/module/shared/providers/screen/gestures/gestures.provider.js +2 -8
  146. package/lib/module/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
  147. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js +1 -0
  148. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  149. package/lib/module/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js +35 -2
  150. package/lib/module/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js.map +1 -1
  151. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +1 -0
  152. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  153. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-release.js +3 -2
  154. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-release.js.map +1 -1
  155. package/lib/module/shared/providers/screen/gestures/types.js.map +1 -1
  156. package/lib/module/shared/providers/screen/styles/helpers/transition-visual-state.js +35 -0
  157. package/lib/module/shared/providers/screen/styles/helpers/transition-visual-state.js.map +1 -0
  158. package/lib/module/shared/providers/screen/styles/helpers/visibility-gate.js +11 -5
  159. package/lib/module/shared/providers/screen/styles/helpers/visibility-gate.js.map +1 -1
  160. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +23 -10
  161. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  162. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +10 -8
  163. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  164. package/lib/module/shared/stores/bounds/internals/links.js +4 -4
  165. package/lib/module/shared/stores/bounds/internals/links.js.map +1 -1
  166. package/lib/module/shared/stores/scroll.store.js +17 -0
  167. package/lib/module/shared/stores/scroll.store.js.map +1 -1
  168. package/lib/module/shared/stores/system.store.js +2 -0
  169. package/lib/module/shared/stores/system.store.js.map +1 -1
  170. package/lib/module/shared/utils/animation/animate-to-progress.js +21 -0
  171. package/lib/module/shared/utils/animation/animate-to-progress.js.map +1 -1
  172. package/lib/module/shared/utils/animation/animate.js +14 -2
  173. package/lib/module/shared/utils/animation/animate.js.map +1 -1
  174. package/lib/module/shared/utils/animation/spring/spring.js +23 -3
  175. package/lib/module/shared/utils/animation/spring/spring.js.map +1 -1
  176. package/lib/module/shared/utils/animation/spring/springUtils.js +95 -0
  177. package/lib/module/shared/utils/animation/spring/springUtils.js.map +1 -1
  178. package/lib/module/shared/utils/animation/state.js +2 -0
  179. package/lib/module/shared/utils/bounds/navigation/reveal/math.js +16 -5
  180. package/lib/module/shared/utils/bounds/navigation/reveal/math.js.map +1 -1
  181. package/lib/module/shared/utils/bounds/navigation/zoom/build.js +46 -22
  182. package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  183. package/lib/module/shared/utils/bounds/navigation/zoom/drag.js +2 -30
  184. package/lib/module/shared/utils/bounds/navigation/zoom/drag.js.map +1 -1
  185. package/lib/module/shared/utils/bounds/navigation/zoom/helpers.js +4 -18
  186. package/lib/module/shared/utils/bounds/navigation/zoom/helpers.js.map +1 -1
  187. package/lib/typescript/shared/animation/snap-to.d.ts.map +1 -1
  188. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts +2 -1
  189. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts.map +1 -1
  190. package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts.map +1 -1
  191. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.d.ts.map +1 -1
  192. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts +3 -4
  193. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts.map +1 -1
  194. package/lib/typescript/shared/components/boundary/index.d.ts +6 -9
  195. package/lib/typescript/shared/components/boundary/index.d.ts.map +1 -1
  196. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts +1 -3
  197. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts.map +1 -1
  198. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/index.d.ts.map +1 -1
  199. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/host.d.ts.map +1 -1
  200. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.d.ts.map +1 -1
  201. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.d.ts +1 -10
  202. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.d.ts.map +1 -1
  203. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts +1 -3
  204. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -1
  205. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/index.d.ts +2 -2
  206. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/index.d.ts.map +1 -1
  207. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.d.ts +0 -1
  208. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.d.ts.map +1 -1
  209. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts +1 -10
  210. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts.map +1 -1
  211. package/lib/typescript/shared/components/boundary/portal/utils/handoff-target.d.ts +12 -0
  212. package/lib/typescript/shared/components/boundary/portal/utils/handoff-target.d.ts.map +1 -0
  213. package/lib/typescript/shared/components/boundary/portal/utils/resolve-portal.d.ts +2 -3
  214. package/lib/typescript/shared/components/boundary/portal/utils/resolve-portal.d.ts.map +1 -1
  215. package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts +0 -4
  216. package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts.map +1 -1
  217. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts +8 -12
  218. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
  219. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts +1 -0
  220. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts.map +1 -1
  221. package/lib/typescript/shared/components/boundary/utils/resolve-boundary-target.d.ts +12 -0
  222. package/lib/typescript/shared/components/boundary/utils/resolve-boundary-target.d.ts.map +1 -0
  223. package/lib/typescript/shared/components/masked-view.d.ts.map +1 -1
  224. package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts.map +1 -1
  225. package/lib/typescript/shared/components/screen-container/layers/maybe-masked-navigation-container.d.ts.map +1 -1
  226. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-transition-start-controller.d.ts.map +1 -1
  227. package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts.map +1 -1
  228. package/lib/typescript/shared/providers/screen/gestures/gestures.provider.d.ts.map +1 -1
  229. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.d.ts.map +1 -1
  230. package/lib/typescript/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.d.ts +2 -1
  231. package/lib/typescript/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.d.ts.map +1 -1
  232. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.d.ts.map +1 -1
  233. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-release.d.ts.map +1 -1
  234. package/lib/typescript/shared/providers/screen/gestures/types.d.ts +1 -9
  235. package/lib/typescript/shared/providers/screen/gestures/types.d.ts.map +1 -1
  236. package/lib/typescript/shared/providers/screen/styles/helpers/transition-visual-state.d.ts +18 -0
  237. package/lib/typescript/shared/providers/screen/styles/helpers/transition-visual-state.d.ts.map +1 -0
  238. package/lib/typescript/shared/providers/screen/styles/helpers/visibility-gate.d.ts +2 -2
  239. package/lib/typescript/shared/providers/screen/styles/helpers/visibility-gate.d.ts.map +1 -1
  240. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
  241. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  242. package/lib/typescript/shared/stores/bounds/internals/links.d.ts +1 -1
  243. package/lib/typescript/shared/stores/bounds/internals/links.d.ts.map +1 -1
  244. package/lib/typescript/shared/stores/scroll.store.d.ts +7 -0
  245. package/lib/typescript/shared/stores/scroll.store.d.ts.map +1 -1
  246. package/lib/typescript/shared/stores/system.store.d.ts +5 -0
  247. package/lib/typescript/shared/stores/system.store.d.ts.map +1 -1
  248. package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts +6 -1
  249. package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts.map +1 -1
  250. package/lib/typescript/shared/utils/animation/animate.d.ts +2 -2
  251. package/lib/typescript/shared/utils/animation/animate.d.ts.map +1 -1
  252. package/lib/typescript/shared/utils/animation/spring/spring.d.ts +2 -2
  253. package/lib/typescript/shared/utils/animation/spring/spring.d.ts.map +1 -1
  254. package/lib/typescript/shared/utils/animation/spring/springUtils.d.ts +3 -0
  255. package/lib/typescript/shared/utils/animation/spring/springUtils.d.ts.map +1 -1
  256. package/lib/typescript/shared/utils/animation/state.d.ts +6 -0
  257. package/lib/typescript/shared/utils/animation/state.d.ts.map +1 -1
  258. package/lib/typescript/shared/utils/bounds/navigation/reveal/math.d.ts +9 -0
  259. package/lib/typescript/shared/utils/bounds/navigation/reveal/math.d.ts.map +1 -1
  260. package/lib/typescript/shared/utils/bounds/navigation/zoom/build.d.ts.map +1 -1
  261. package/lib/typescript/shared/utils/bounds/navigation/zoom/drag.d.ts +2 -11
  262. package/lib/typescript/shared/utils/bounds/navigation/zoom/drag.d.ts.map +1 -1
  263. package/lib/typescript/shared/utils/bounds/navigation/zoom/helpers.d.ts +7 -4
  264. package/lib/typescript/shared/utils/bounds/navigation/zoom/helpers.d.ts.map +1 -1
  265. package/package.json +1 -1
  266. package/src/shared/animation/snap-to.ts +5 -0
  267. package/src/shared/components/boundary/components/boundary-target.tsx +37 -23
  268. package/src/shared/components/boundary/create-boundary-component.tsx +29 -3
  269. package/src/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.ts +11 -0
  270. package/src/shared/components/boundary/hooks/use-boundary-measurement.ts +3 -9
  271. package/src/shared/components/boundary/index.tsx +4 -8
  272. package/src/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts +73 -275
  273. package/src/shared/components/boundary/portal/components/boundary-content-portal/index.tsx +31 -12
  274. package/src/shared/components/boundary/portal/components/boundary-portal/components/host.tsx +2 -12
  275. package/src/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.tsx +64 -62
  276. package/src/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.ts +2 -9
  277. package/src/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +73 -186
  278. package/src/shared/components/boundary/portal/components/boundary-portal/index.tsx +72 -12
  279. package/src/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.ts +0 -1
  280. package/src/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.ts +2 -39
  281. package/src/shared/components/boundary/portal/utils/handoff-target.ts +48 -0
  282. package/src/shared/components/boundary/portal/utils/resolve-portal.ts +26 -18
  283. package/src/shared/components/boundary/portal/utils/teleport-control.ts +0 -12
  284. package/src/shared/components/boundary/providers/boundary-root.provider.tsx +28 -80
  285. package/src/shared/components/boundary/utils/refresh-signals.ts +8 -0
  286. package/src/shared/components/boundary/utils/resolve-boundary-target.tsx +39 -0
  287. package/src/shared/components/masked-view.tsx +20 -4
  288. package/src/shared/components/screen-container/layers/backdrop.tsx +3 -1
  289. package/src/shared/components/screen-container/layers/maybe-masked-navigation-container.tsx +14 -4
  290. package/src/shared/components/screen-lifecycle/hooks/use-transition-start-controller.ts +2 -0
  291. package/src/shared/providers/helpers/measured-bounds-writes.ts +1 -0
  292. package/src/shared/providers/screen/gestures/gestures.provider.tsx +2 -10
  293. package/src/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.ts +1 -0
  294. package/src/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.ts +74 -3
  295. package/src/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.ts +1 -0
  296. package/src/shared/providers/screen/gestures/pinch/behavior/pinch-release.ts +2 -4
  297. package/src/shared/providers/screen/gestures/types.ts +0 -14
  298. package/src/shared/providers/screen/styles/helpers/transition-visual-state.ts +44 -0
  299. package/src/shared/providers/screen/styles/helpers/visibility-gate.ts +17 -7
  300. package/src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +30 -15
  301. package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +14 -13
  302. package/src/shared/stores/bounds/internals/links.ts +13 -2
  303. package/src/shared/stores/scroll.store.ts +23 -0
  304. package/src/shared/stores/system.store.ts +8 -0
  305. package/src/shared/utils/animation/animate-to-progress.ts +59 -28
  306. package/src/shared/utils/animation/animate.ts +18 -2
  307. package/src/shared/utils/animation/spring/spring.ts +36 -1
  308. package/src/shared/utils/animation/spring/springUtils.ts +130 -0
  309. package/src/shared/utils/animation/state.ts +8 -0
  310. package/src/shared/utils/bounds/navigation/reveal/math.ts +21 -5
  311. package/src/shared/utils/bounds/navigation/zoom/build.ts +77 -23
  312. package/src/shared/utils/bounds/navigation/zoom/drag.ts +3 -42
  313. package/src/shared/utils/bounds/navigation/zoom/helpers.ts +9 -23
  314. package/lib/commonjs/shared/components/boundary/hooks/use-register-target.js +0 -32
  315. package/lib/commonjs/shared/components/boundary/hooks/use-register-target.js.map +0 -1
  316. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js +0 -51
  317. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js.map +0 -1
  318. package/lib/commonjs/shared/components/boundary/portal/utils/ownership.js +0 -220
  319. package/lib/commonjs/shared/components/boundary/portal/utils/ownership.js.map +0 -1
  320. package/lib/commonjs/shared/components/boundary/portal/utils/shallow-equal.js +0 -29
  321. package/lib/commonjs/shared/components/boundary/portal/utils/shallow-equal.js.map +0 -1
  322. package/lib/commonjs/shared/components/boundary/portal/utils/visible-host.js +0 -25
  323. package/lib/commonjs/shared/components/boundary/portal/utils/visible-host.js.map +0 -1
  324. package/lib/commonjs/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js +0 -64
  325. package/lib/commonjs/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js.map +0 -1
  326. package/lib/commonjs/shared/providers/screen/gestures/rotation/behavior/rotation-lifecycle.js +0 -21
  327. package/lib/commonjs/shared/providers/screen/gestures/rotation/behavior/rotation-lifecycle.js.map +0 -1
  328. package/lib/commonjs/shared/providers/screen/gestures/rotation/behavior/use-rotation-behavior.js +0 -29
  329. package/lib/commonjs/shared/providers/screen/gestures/rotation/behavior/use-rotation-behavior.js.map +0 -1
  330. package/lib/commonjs/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.js +0 -38
  331. package/lib/commonjs/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.js.map +0 -1
  332. package/lib/commonjs/shared/providers/screen/styles/helpers/opening-phase.js +0 -32
  333. package/lib/commonjs/shared/providers/screen/styles/helpers/opening-phase.js.map +0 -1
  334. package/lib/module/shared/components/boundary/hooks/use-register-target.js +0 -27
  335. package/lib/module/shared/components/boundary/hooks/use-register-target.js.map +0 -1
  336. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js +0 -46
  337. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js.map +0 -1
  338. package/lib/module/shared/components/boundary/portal/utils/ownership.js +0 -213
  339. package/lib/module/shared/components/boundary/portal/utils/ownership.js.map +0 -1
  340. package/lib/module/shared/components/boundary/portal/utils/shallow-equal.js +0 -24
  341. package/lib/module/shared/components/boundary/portal/utils/shallow-equal.js.map +0 -1
  342. package/lib/module/shared/components/boundary/portal/utils/visible-host.js +0 -20
  343. package/lib/module/shared/components/boundary/portal/utils/visible-host.js.map +0 -1
  344. package/lib/module/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js +0 -59
  345. package/lib/module/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js.map +0 -1
  346. package/lib/module/shared/providers/screen/gestures/rotation/behavior/rotation-lifecycle.js +0 -15
  347. package/lib/module/shared/providers/screen/gestures/rotation/behavior/rotation-lifecycle.js.map +0 -1
  348. package/lib/module/shared/providers/screen/gestures/rotation/behavior/use-rotation-behavior.js +0 -24
  349. package/lib/module/shared/providers/screen/gestures/rotation/behavior/use-rotation-behavior.js.map +0 -1
  350. package/lib/module/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.js +0 -33
  351. package/lib/module/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.js.map +0 -1
  352. package/lib/module/shared/providers/screen/styles/helpers/opening-phase.js +0 -26
  353. package/lib/module/shared/providers/screen/styles/helpers/opening-phase.js.map +0 -1
  354. package/lib/typescript/shared/components/boundary/hooks/use-register-target.d.ts +0 -10
  355. package/lib/typescript/shared/components/boundary/hooks/use-register-target.d.ts.map +0 -1
  356. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.d.ts +0 -13
  357. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.d.ts.map +0 -1
  358. package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts +0 -34
  359. package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts.map +0 -1
  360. package/lib/typescript/shared/components/boundary/portal/utils/shallow-equal.d.ts +0 -8
  361. package/lib/typescript/shared/components/boundary/portal/utils/shallow-equal.d.ts.map +0 -1
  362. package/lib/typescript/shared/components/boundary/portal/utils/visible-host.d.ts +0 -8
  363. package/lib/typescript/shared/components/boundary/portal/utils/visible-host.d.ts.map +0 -1
  364. package/lib/typescript/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.d.ts +0 -15
  365. package/lib/typescript/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.d.ts.map +0 -1
  366. package/lib/typescript/shared/providers/screen/gestures/rotation/behavior/rotation-lifecycle.d.ts +0 -4
  367. package/lib/typescript/shared/providers/screen/gestures/rotation/behavior/rotation-lifecycle.d.ts.map +0 -1
  368. package/lib/typescript/shared/providers/screen/gestures/rotation/behavior/use-rotation-behavior.d.ts +0 -5
  369. package/lib/typescript/shared/providers/screen/gestures/rotation/behavior/use-rotation-behavior.d.ts.map +0 -1
  370. package/lib/typescript/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.d.ts +0 -9
  371. package/lib/typescript/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.d.ts.map +0 -1
  372. package/lib/typescript/shared/providers/screen/styles/helpers/opening-phase.d.ts +0 -16
  373. package/lib/typescript/shared/providers/screen/styles/helpers/opening-phase.d.ts.map +0 -1
  374. package/src/shared/components/boundary/hooks/use-register-target.ts +0 -43
  375. package/src/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.tsx +0 -79
  376. package/src/shared/components/boundary/portal/utils/ownership.ts +0 -319
  377. package/src/shared/components/boundary/portal/utils/shallow-equal.ts +0 -25
  378. package/src/shared/components/boundary/portal/utils/visible-host.ts +0 -24
  379. package/src/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.ts +0 -88
  380. package/src/shared/providers/screen/gestures/rotation/behavior/rotation-lifecycle.ts +0 -19
  381. package/src/shared/providers/screen/gestures/rotation/behavior/use-rotation-behavior.ts +0 -47
  382. package/src/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.ts +0 -50
  383. package/src/shared/providers/screen/styles/helpers/opening-phase.ts +0 -25
@@ -2,6 +2,11 @@
2
2
 
3
3
  import { withTiming } from "react-native-reanimated";
4
4
  import { withInternalSpring } from "./spring";
5
+ const linearEasing = progress => {
6
+ "worklet";
7
+
8
+ return progress;
9
+ };
5
10
  export const isSpringAnimationConfig = config => {
6
11
  "worklet";
7
12
 
@@ -10,10 +15,17 @@ export const isSpringAnimationConfig = config => {
10
15
  }
11
16
  return "stiffness" in config || "damping" in config || "mass" in config || "velocity" in config || "overshootClamping" in config || "energyThreshold" in config || "dampingRatio" in config || "clamp" in config;
12
17
  };
13
- export const animate = (toValue, config, callback) => {
18
+ export const animate = (toValue, config, callback, animationProgress) => {
14
19
  "worklet";
15
20
 
16
21
  if (!isSpringAnimationConfig(config)) {
22
+ if (animationProgress) {
23
+ animationProgress.value.set(animationProgress.from);
24
+ animationProgress.value.set(withTiming(animationProgress.to, {
25
+ ...config,
26
+ easing: linearEasing
27
+ }));
28
+ }
17
29
  return withTiming(toValue, config, finished => {
18
30
  "worklet";
19
31
 
@@ -24,6 +36,6 @@ export const animate = (toValue, config, callback) => {
24
36
  });
25
37
  });
26
38
  }
27
- return withInternalSpring(toValue, config, callback);
39
+ return withInternalSpring(toValue, config, callback, animationProgress);
28
40
  };
29
41
  //# sourceMappingURL=animate.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["withTiming","withInternalSpring","isSpringAnimationConfig","config","animate","toValue","callback","finished","didFinish","settled"],"sourceRoot":"../../../../../src","sources":["shared/utils/animation/animate.ts"],"mappings":";;AACA,SAASA,UAAU,QAAQ,yBAAyB;AACpD,SAA4BC,kBAAkB,QAAQ,UAAU;AAShE,OAAO,MAAMC,uBAAuB,GACnCC,MAAyC,IACJ;EACrC,SAAS;;EACT,IAAI,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,EAAE;IAClD,OAAO,KAAK;EACb;EAEA,OACC,WAAW,IAAIA,MAAM,IACrB,SAAS,IAAIA,MAAM,IACnB,MAAM,IAAIA,MAAM,IAChB,UAAU,IAAIA,MAAM,IACpB,mBAAmB,IAAIA,MAAM,IAC7B,iBAAiB,IAAIA,MAAM,IAC3B,cAAc,IAAIA,MAAM,IACxB,OAAO,IAAIA,MAAM;AAEnB,CAAC;AAED,OAAO,MAAMC,OAAO,GAAGA,CACtBC,OAAe,EACfF,MAA8B,EAC9BG,QAAiC,KAC7B;EACJ,SAAS;;EAET,IAAI,CAACJ,uBAAuB,CAACC,MAAM,CAAC,EAAE;IACrC,OAAOH,UAAU,CAACK,OAAO,EAAEF,MAAM,EAAGI,QAAQ,IAAK;MAChD,SAAS;;MACT,MAAMC,SAAS,GAAGD,QAAQ,KAAK,IAAI;MACnCD,QAAQ,GAAG;QACVC,QAAQ,EAAEC,SAAS;QACnBC,OAAO,EAAED;MACV,CAAC,CAAC;IACH,CAAC,CAAC;EACH;EAEA,OAAOP,kBAAkB,CAACI,OAAO,EAAEF,MAAM,EAAEG,QAAQ,CAAC;AACrD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["withTiming","withInternalSpring","linearEasing","progress","isSpringAnimationConfig","config","animate","toValue","callback","animationProgress","value","set","from","to","easing","finished","didFinish","settled"],"sourceRoot":"../../../../../src","sources":["shared/utils/animation/animate.ts"],"mappings":";;AACA,SAASA,UAAU,QAAQ,yBAAyB;AACpD,SAA4BC,kBAAkB,QAAQ,UAAU;AAShE,MAAMC,YAAY,GAAIC,QAAgB,IAAK;EAC1C,SAAS;;EACT,OAAOA,QAAQ;AAChB,CAAC;AAED,OAAO,MAAMC,uBAAuB,GACnCC,MAAyC,IACJ;EACrC,SAAS;;EACT,IAAI,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,EAAE;IAClD,OAAO,KAAK;EACb;EAEA,OACC,WAAW,IAAIA,MAAM,IACrB,SAAS,IAAIA,MAAM,IACnB,MAAM,IAAIA,MAAM,IAChB,UAAU,IAAIA,MAAM,IACpB,mBAAmB,IAAIA,MAAM,IAC7B,iBAAiB,IAAIA,MAAM,IAC3B,cAAc,IAAIA,MAAM,IACxB,OAAO,IAAIA,MAAM;AAEnB,CAAC;AAED,OAAO,MAAMC,OAAO,GAAGA,CACtBC,OAAe,EACfF,MAA8B,EAC9BG,QAAiC,EACjCC,iBAA2C,KACvC;EACJ,SAAS;;EAET,IAAI,CAACL,uBAAuB,CAACC,MAAM,CAAC,EAAE;IACrC,IAAII,iBAAiB,EAAE;MACtBA,iBAAiB,CAACC,KAAK,CAACC,GAAG,CAACF,iBAAiB,CAACG,IAAI,CAAC;MACnDH,iBAAiB,CAACC,KAAK,CAACC,GAAG,CAC1BX,UAAU,CAACS,iBAAiB,CAACI,EAAE,EAAE;QAChC,GAAGR,MAAM;QACTS,MAAM,EAAEZ;MACT,CAAC,CACF,CAAC;IACF;IAEA,OAAOF,UAAU,CAACO,OAAO,EAAEF,MAAM,EAAGU,QAAQ,IAAK;MAChD,SAAS;;MACT,MAAMC,SAAS,GAAGD,QAAQ,KAAK,IAAI;MACnCP,QAAQ,GAAG;QACVO,QAAQ,EAAEC,SAAS;QACnBC,OAAO,EAAED;MACV,CAAC,CAAC;IACH,CAAC,CAAC;EACH;EAEA,OAAOf,kBAAkB,CAACM,OAAO,EAAEF,MAAM,EAAEG,QAAQ,EAAEC,iBAAiB,CAAC;AACxE,CAAC","ignoreList":[]}
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { calculateNewStiffnessToMatchDuration, checkIfConfigIsValid, criticallyDampedSpringCalculations, getEnergy, initialCalculations, isAnimationSettledCalculation, isAnimationTerminatingCalculation, safeMergeConfigs, scaleZetaToMatchClamps, underDampedSpringCalculations } from "./springUtils";
3
+ import { calculateNewStiffnessToMatchDuration, calculateSpringAnimationDuration, checkIfConfigIsValid, criticallyDampedSpringCalculations, getEnergy, initialCalculations, isAnimationSettledCalculation, isAnimationTerminatingCalculation, safeMergeConfigs, scaleZetaToMatchClamps, underDampedSpringCalculations } from "./springUtils";
4
4
  const REACT_NATIVE_RUNTIME_KIND = 1;
5
5
  const REDUCE_MOTION_SYSTEM = "system";
6
6
  const REDUCE_MOTION_ALWAYS = "always";
7
7
  const DEFAULT_SPRING_SETTLE_DISTANCE = 0.001;
8
+ const MAX_UNFINISHED_ANIMATION_PROGRESS = 1 - 1e-6;
8
9
  const DEFAULT_SPRING_CONFIG = {
9
10
  damping: 120,
10
11
  mass: 4,
@@ -30,7 +31,7 @@ const getReduceMotionForAnimation = config => {
30
31
  }
31
32
  return config === REDUCE_MOTION_ALWAYS;
32
33
  };
33
- const defineSpringAnimation = (_starting, factory) => {
34
+ const defineSpringAnimation = (_starting, factory, onReducedMotion) => {
34
35
  "worklet";
35
36
 
36
37
  const create = () => {
@@ -42,6 +43,7 @@ const defineSpringAnimation = (_starting, factory) => {
42
43
  "worklet";
43
44
 
44
45
  if (animation.reduceMotion) {
46
+ onReducedMotion?.();
45
47
  animation.current = animation.toValue;
46
48
  animation.onFrame = () => true;
47
49
  return;
@@ -74,9 +76,10 @@ const defineSpringAnimation = (_starting, factory) => {
74
76
  * to the native spring handoff behavior while keeping our own surface small and
75
77
  * easy to extend with callbacks tailored to the transition lifecycle.
76
78
  */
77
- export const withInternalSpring = (toValue, userConfig, callback) => {
79
+ export const withInternalSpring = (toValue, userConfig, callback, animationProgress) => {
78
80
  "worklet";
79
81
 
82
+ // biome-ignore format: Keep this Reanimated fork aligned with its upstream layout.
80
83
  return defineSpringAnimation(toValue, () => {
81
84
  "worklet";
82
85
 
@@ -115,6 +118,7 @@ export const withInternalSpring = (toValue, userConfig, callback) => {
115
118
  } = animation;
116
119
  if (config.skipAnimation) {
117
120
  animation.current = toValue;
121
+ animationProgress?.value.set(animationProgress.to);
118
122
  animation.lastTimestamp = 0;
119
123
  return true;
120
124
  }
@@ -124,6 +128,7 @@ export const withInternalSpring = (toValue, userConfig, callback) => {
124
128
  } = animation;
125
129
  const deltaTime = Math.min(Math.max(now - lastTimestamp, 0), 64);
126
130
  animation.lastTimestamp = now;
131
+ animation.animationProgressElapsed += deltaTime;
127
132
  const t = deltaTime / 1000;
128
133
  const v0 = velocity;
129
134
  const x0 = current - toValue;
@@ -153,6 +158,7 @@ export const withInternalSpring = (toValue, userConfig, callback) => {
153
158
  if (isAnimationTerminatingCalculation(animation, config)) {
154
159
  animation.velocity = 0;
155
160
  animation.current = toValue;
161
+ animationProgress?.value.set(animationProgress.to);
156
162
  settled = true;
157
163
  animation.settled = true;
158
164
  // clear lastTimestamp to avoid using stale value by the next spring animation that starts after this one
@@ -160,6 +166,11 @@ export const withInternalSpring = (toValue, userConfig, callback) => {
160
166
  return true;
161
167
  }
162
168
  notifySettled(animation);
169
+ if (animationProgress) {
170
+ const elapsedFraction = animation.animationProgressDuration <= 0 ? MAX_UNFINISHED_ANIMATION_PROGRESS : Math.min(animation.animationProgressElapsed / animation.animationProgressDuration, MAX_UNFINISHED_ANIMATION_PROGRESS);
171
+ const nextAnimationProgress = animationProgress.from + (animationProgress.to - animationProgress.from) * elapsedFraction;
172
+ animationProgress.value.set(nextAnimationProgress);
173
+ }
163
174
  return false;
164
175
  }
165
176
  function isTriggeredTwice(previousAnimation, animation) {
@@ -208,6 +219,9 @@ export const withInternalSpring = (toValue, userConfig, callback) => {
208
219
  }
209
220
  const initialEnergy = getEnergy(x0, config.velocity, config.stiffness, config.mass);
210
221
  animation.initialEnergy = initialEnergy;
222
+ animation.animationProgressElapsed = 0;
223
+ animation.animationProgressDuration = config.skipAnimation ? 0 : calculateSpringAnimationDuration(animation, config);
224
+ animationProgress?.value.set(animationProgress.from);
211
225
  animation.lastTimestamp = previousAnimation?.lastTimestamp || now;
212
226
  animation.startTimestamp = triggeredTwice ? previousAnimation?.startTimestamp || now : now;
213
227
  notifySettled(animation);
@@ -235,9 +249,15 @@ export const withInternalSpring = (toValue, userConfig, callback) => {
235
249
  omega0: 0,
236
250
  omega1: 0,
237
251
  initialEnergy: 0,
252
+ animationProgressElapsed: 0,
253
+ animationProgressDuration: 0,
238
254
  reduceMotion: getReduceMotionForAnimation(config.reduceMotion)
239
255
  };
240
256
  return animation;
257
+ }, () => {
258
+ "worklet";
259
+
260
+ animationProgress?.value.set(animationProgress.to);
241
261
  });
242
262
  };
243
263
  //# sourceMappingURL=spring.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["calculateNewStiffnessToMatchDuration","checkIfConfigIsValid","criticallyDampedSpringCalculations","getEnergy","initialCalculations","isAnimationSettledCalculation","isAnimationTerminatingCalculation","safeMergeConfigs","scaleZetaToMatchClamps","underDampedSpringCalculations","REACT_NATIVE_RUNTIME_KIND","REDUCE_MOTION_SYSTEM","REDUCE_MOTION_ALWAYS","DEFAULT_SPRING_SETTLE_DISTANCE","DEFAULT_SPRING_CONFIG","damping","mass","stiffness","duration","dampingRatio","overshootClamping","energyThreshold","velocity","reduceMotion","undefined","clamp","getRuntimeKind","globalThis","__RUNTIME_KIND","getReduceMotionForAnimation","config","defineSpringAnimation","_starting","factory","create","animation","baseOnStart","onStart","value","timestamp","previousAnimation","current","toValue","onFrame","__isAnimationDefinition","withInternalSpring","userConfig","callback","useDuration","skipAnimation","settleDistance","settled","notifySettled","finished","springOnFrame","now","lastTimestamp","deltaTime","Math","min","max","t","v0","x0","zeta","omega0","omega1","position","newPosition","newVelocity","isTriggeredTwice","startTimestamp","triggeredTwice","startValue","actualDuration","initialEnergy","didFinish"],"sourceRoot":"../../../../../../src","sources":["shared/utils/animation/spring/spring.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["calculateNewStiffnessToMatchDuration","calculateSpringAnimationDuration","checkIfConfigIsValid","criticallyDampedSpringCalculations","getEnergy","initialCalculations","isAnimationSettledCalculation","isAnimationTerminatingCalculation","safeMergeConfigs","scaleZetaToMatchClamps","underDampedSpringCalculations","REACT_NATIVE_RUNTIME_KIND","REDUCE_MOTION_SYSTEM","REDUCE_MOTION_ALWAYS","DEFAULT_SPRING_SETTLE_DISTANCE","MAX_UNFINISHED_ANIMATION_PROGRESS","DEFAULT_SPRING_CONFIG","damping","mass","stiffness","duration","dampingRatio","overshootClamping","energyThreshold","velocity","reduceMotion","undefined","clamp","getRuntimeKind","globalThis","__RUNTIME_KIND","getReduceMotionForAnimation","config","defineSpringAnimation","_starting","factory","onReducedMotion","create","animation","baseOnStart","onStart","value","timestamp","previousAnimation","current","toValue","onFrame","__isAnimationDefinition","withInternalSpring","userConfig","callback","animationProgress","useDuration","skipAnimation","settleDistance","settled","notifySettled","finished","springOnFrame","now","set","to","lastTimestamp","deltaTime","Math","min","max","animationProgressElapsed","t","v0","x0","zeta","omega0","omega1","position","newPosition","newVelocity","elapsedFraction","animationProgressDuration","nextAnimationProgress","from","isTriggeredTwice","startTimestamp","triggeredTwice","startValue","actualDuration","initialEnergy","didFinish"],"sourceRoot":"../../../../../../src","sources":["shared/utils/animation/spring/spring.ts"],"mappings":"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","ignoreList":[]}
@@ -261,6 +261,101 @@ export function underDampedSpringCalculations(animation, precalculatedValues) {
261
261
  velocity: underDampedVelocity
262
262
  };
263
263
  }
264
+ const MAX_SPRING_DURATION_SECONDS = 60;
265
+ const SPRING_DURATION_PRECISION_SECONDS = 0.0001;
266
+ const MAX_OVERSHOOT_DURATION_SAMPLES = 4096;
267
+ export function calculateSpringAnimationDuration(animation, config) {
268
+ "worklet";
269
+
270
+ const startPosition = animation.current;
271
+ const startVelocity = animation.velocity;
272
+ const x0 = startPosition - animation.toValue;
273
+ const stateAt = time => {
274
+ "worklet";
275
+
276
+ return animation.zeta < 1 ? underDampedSpringCalculations(animation, {
277
+ zeta: animation.zeta,
278
+ v0: startVelocity,
279
+ x0,
280
+ omega0: animation.omega0,
281
+ omega1: animation.omega1,
282
+ t: time
283
+ }) : criticallyDampedSpringCalculations(animation, {
284
+ v0: startVelocity,
285
+ x0,
286
+ omega0: animation.omega0,
287
+ t: time
288
+ });
289
+ };
290
+ const terminatesByEnergyAt = time => {
291
+ "worklet";
292
+
293
+ if (animation.initialEnergy === 0) {
294
+ return true;
295
+ }
296
+ const state = stateAt(time);
297
+ const energy = getEnergy(animation.toValue - state.position, state.velocity, config.stiffness, config.mass);
298
+ return energy / animation.initialEnergy <= config.energyThreshold;
299
+ };
300
+ if (terminatesByEnergyAt(0)) {
301
+ return 0;
302
+ }
303
+ let lowerBound = 0;
304
+ let upperBound = 1 / 60;
305
+ while (upperBound < MAX_SPRING_DURATION_SECONDS && !terminatesByEnergyAt(upperBound)) {
306
+ lowerBound = upperBound;
307
+ upperBound *= 2;
308
+ }
309
+ upperBound = Math.min(upperBound, MAX_SPRING_DURATION_SECONDS);
310
+ if (terminatesByEnergyAt(upperBound)) {
311
+ while (upperBound - lowerBound > SPRING_DURATION_PRECISION_SECONDS) {
312
+ const midpoint = (lowerBound + upperBound) / 2;
313
+ if (terminatesByEnergyAt(midpoint)) {
314
+ upperBound = midpoint;
315
+ } else {
316
+ lowerBound = midpoint;
317
+ }
318
+ }
319
+ }
320
+ const energyDuration = upperBound;
321
+ if (!config.overshootClamping || energyDuration === 0) {
322
+ return energyDuration * 1000;
323
+ }
324
+ const leftBound = animation.startValue >= 0 ? animation.toValue : animation.toValue + animation.startValue;
325
+ const rightBound = leftBound + Math.abs(animation.startValue);
326
+ const isOutsideBoundsAt = time => {
327
+ "worklet";
328
+
329
+ const {
330
+ position
331
+ } = stateAt(time);
332
+ return position < leftBound || position > rightBound;
333
+ };
334
+ const frequency = animation.zeta < 1 ? animation.omega1 : animation.omega0;
335
+ const sampleStep = frequency > 0 ? Math.min(1 / 240, Math.PI / (frequency * 8)) : 1 / 240;
336
+ const sampleCount = Math.min(MAX_OVERSHOOT_DURATION_SAMPLES, Math.max(1, Math.ceil(energyDuration / sampleStep)));
337
+ const effectiveStep = energyDuration / sampleCount;
338
+ let previousTime = 0;
339
+ for (let index = 1; index <= sampleCount; index += 1) {
340
+ const time = effectiveStep * index;
341
+ if (!isOutsideBoundsAt(time)) {
342
+ previousTime = time;
343
+ continue;
344
+ }
345
+ let crossingLowerBound = previousTime;
346
+ let crossingUpperBound = time;
347
+ while (crossingUpperBound - crossingLowerBound > SPRING_DURATION_PRECISION_SECONDS) {
348
+ const midpoint = (crossingLowerBound + crossingUpperBound) / 2;
349
+ if (isOutsideBoundsAt(midpoint)) {
350
+ crossingUpperBound = midpoint;
351
+ } else {
352
+ crossingLowerBound = midpoint;
353
+ }
354
+ }
355
+ return crossingUpperBound * 1000;
356
+ }
357
+ return energyDuration * 1000;
358
+ }
264
359
  export function isAnimationTerminatingCalculation(animation, config) {
265
360
  "worklet";
266
361
 
@@ -1 +1 @@
1
- {"version":3,"names":["checkIfConfigIsValid","config","errorMessage","forEach","prop","value","duration","clamp","min","max","console","warn","safeMergeConfigs","defaults","userConfig","filtered","Object","fromEntries","entries","filter","v","undefined","bisectRoot","func","precision","maxIterations","direction","idx","current","Math","abs","initialCalculations","stiffness","skipAnimation","zeta","omega0","omega1","useDuration","mass","m","dampingRatio","sqrt","damping","c","k","scaleZetaToMatchClamps","animation","toValue","startValue","toValueNum","Number","firstBound","secondBound","relativeExtremum1","relativeExtremum2","newZeta1","log","PI","newZeta2","zetaSatisfyingClamp","x","getEnergy","displacement","velocity","potentialEnergy","kineticEnergy","calculateNewStiffnessToMatchDuration","x0","v0","energyThreshold","threshold","targetDuration","energyDiffForStiffness","perceptualCoefficient","MILLISECONDS_IN_SECOND","settlingDuration","xtk","exp","vtk","e0","etk","energyFraction","EPSILON","criticallyDampedSpringCalculations","precalculatedValues","t","criticallyDampedEnvelope","criticallyDampedPosition","criticallyDampedVelocity","position","underDampedSpringCalculations","sin1","sin","cos1","cos","underDampedEnvelope","underDampedFrag1","underDampedPosition","underDampedVelocity","isAnimationTerminatingCalculation","initialEnergy","overshootClamping","leftBound","rightBound","currentEnergy","isAnimationSettledCalculation","distance","settleDistance","maxSettledEnergy"],"sourceRoot":"../../../../../../src","sources":["shared/utils/animation/spring/springUtils.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["checkIfConfigIsValid","config","errorMessage","forEach","prop","value","duration","clamp","min","max","console","warn","safeMergeConfigs","defaults","userConfig","filtered","Object","fromEntries","entries","filter","v","undefined","bisectRoot","func","precision","maxIterations","direction","idx","current","Math","abs","initialCalculations","stiffness","skipAnimation","zeta","omega0","omega1","useDuration","mass","m","dampingRatio","sqrt","damping","c","k","scaleZetaToMatchClamps","animation","toValue","startValue","toValueNum","Number","firstBound","secondBound","relativeExtremum1","relativeExtremum2","newZeta1","log","PI","newZeta2","zetaSatisfyingClamp","x","getEnergy","displacement","velocity","potentialEnergy","kineticEnergy","calculateNewStiffnessToMatchDuration","x0","v0","energyThreshold","threshold","targetDuration","energyDiffForStiffness","perceptualCoefficient","MILLISECONDS_IN_SECOND","settlingDuration","xtk","exp","vtk","e0","etk","energyFraction","EPSILON","criticallyDampedSpringCalculations","precalculatedValues","t","criticallyDampedEnvelope","criticallyDampedPosition","criticallyDampedVelocity","position","underDampedSpringCalculations","sin1","sin","cos1","cos","underDampedEnvelope","underDampedFrag1","underDampedPosition","underDampedVelocity","MAX_SPRING_DURATION_SECONDS","SPRING_DURATION_PRECISION_SECONDS","MAX_OVERSHOOT_DURATION_SAMPLES","calculateSpringAnimationDuration","startPosition","startVelocity","stateAt","time","terminatesByEnergyAt","initialEnergy","state","energy","lowerBound","upperBound","midpoint","energyDuration","overshootClamping","leftBound","rightBound","isOutsideBoundsAt","frequency","sampleStep","sampleCount","ceil","effectiveStep","previousTime","index","crossingLowerBound","crossingUpperBound","isAnimationTerminatingCalculation","currentEnergy","isAnimationSettledCalculation","distance","settleDistance","maxSettledEnergy"],"sourceRoot":"../../../../../../src","sources":["shared/utils/animation/spring/springUtils.ts"],"mappings":";;AAKA;AACA;;AA8BA,OAAO,SAASA,oBAAoBA,CAACC,MAA2B,EAAW;EAC1E,SAAS;;EACT,IAAIC,YAAY,GAAG,EAAE;EAEpB,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAClEC,OAAO,CAAEC,IAAI,IAAK;IACnB,MAAMC,KAAK,GAAGJ,MAAM,CAACG,IAAI,CAAC;IAC1B,IAAIC,KAAK,IAAI,CAAC,EAAE;MACfH,YAAY,IAAI,KAAKE,IAAI,sCAAsCC,KAAK,EAAE;IACvE;EACD,CAAC,CAAC;EAEF,IAAIJ,MAAM,CAACK,QAAQ,GAAG,CAAC,EAAE;IACxBJ,YAAY,IAAI,qCAAqCD,MAAM,CAACK,QAAQ,EAAE;EACvE;EAEA,IACCL,MAAM,CAACM,KAAK,EAAEC,GAAG,IACjBP,MAAM,CAACM,KAAK,EAAEE,GAAG,IACjBR,MAAM,CAACM,KAAK,CAACC,GAAG,GAAGP,MAAM,CAACM,KAAK,CAACE,GAAG,EAClC;IACDP,YAAY,IAAI,gEAAgED,MAAM,CAACM,KAAK,CAACC,GAAG,UAAUP,MAAM,CAACM,KAAK,CAACE,GAAG,IAAI;EAC/H;EAEA,IAAIP,YAAY,KAAK,EAAE,EAAE;IACxBQ,OAAO,CAACC,IAAI,CAAC,wBAAwBT,YAAY,EAAE,CAAC;EACrD;EAEA,OAAOA,YAAY,KAAK,EAAE;AAC3B;AAEA,OAAO,SAASU,gBAAgBA,CAC/BC,QAAiB,EACjBC,UAA6B,EACnB;EACV,SAAS;;EACT,IAAI,CAACA,UAAU,EAAE;IAChB,OAAOD,QAAQ;EAChB;EAEA,MAAME,QAAQ,GAAGC,MAAM,CAACC,WAAW,CAClCD,MAAM,CAACE,OAAO,CAACJ,UAAU,CAAC,CAACK,MAAM,CAAC,CAAC,GAAGC,CAAC,CAAC,KAAKA,CAAC,KAAKC,SAAS,CAC7D,CAAqB;EAErB,OAAO;IACN,GAAGR,QAAQ;IACX,GAAGE;EACJ,CAAC;AACF;AAEA,SAASO,UAAUA,CAAC;EACnBd,GAAG;EACHC,GAAG;EACHc,IAAI;EACJC,SAAS;EACTC,aAAa,GAAG;AAOjB,CAAC,EAAE;EACF,SAAS;;EACT,MAAMC,SAAS,GAAGH,IAAI,CAACd,GAAG,CAAC,IAAIc,IAAI,CAACf,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;EACjD,IAAImB,GAAG,GAAGF,aAAa;EACvB,IAAIG,OAAO,GAAG,CAACnB,GAAG,GAAGD,GAAG,IAAI,CAAC;EAC7B,OAAOqB,IAAI,CAACC,GAAG,CAACP,IAAI,CAACK,OAAO,CAAC,CAAC,GAAGJ,SAAS,IAAIG,GAAG,GAAG,CAAC,EAAE;IACtDA,GAAG,IAAI,CAAC;IAER,IAAIJ,IAAI,CAACK,OAAO,CAAC,GAAGF,SAAS,GAAG,CAAC,EAAE;MAClClB,GAAG,GAAGoB,OAAO;IACd,CAAC,MAAM;MACNnB,GAAG,GAAGmB,OAAO;IACd;IACAA,OAAO,GAAG,CAACpB,GAAG,GAAGC,GAAG,IAAI,CAAC;EAC1B;EACA,OAAOmB,OAAO;AACf;AAEA,OAAO,SAASG,mBAAmBA,CAClCC,SAAS,GAAG,CAAC,EACb/B,MAA+C,EAK9C;EACD,SAAS;;EAET,IAAIA,MAAM,CAACgC,aAAa,EAAE;IACzB,OAAO;MAAEC,IAAI,EAAE,CAAC;MAAEC,MAAM,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;EACzC;EAEA,IAAInC,MAAM,CAACoC,WAAW,EAAE;IACvB,MAAM;MAAEC,IAAI,EAAEC,CAAC;MAAEC,YAAY,EAAEN;IAAK,CAAC,GAAGjC,MAAM;;IAE9C;AACF;AACA;AACA;AACA;IACE,MAAMkC,MAAM,GAAGN,IAAI,CAACY,IAAI,CAACT,SAAS,GAAGO,CAAC,CAAC;IACvC,MAAMH,MAAM,GAAGF,IAAI,GAAG,CAAC,GAAGC,MAAM,GAAGN,IAAI,CAACY,IAAI,CAAC,CAAC,GAAGP,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC;IAE/D,OAAO;MAAEA,IAAI;MAAEC,MAAM;MAAEC;IAAO,CAAC;EAChC,CAAC,MAAM;IACN,MAAM;MAAEM,OAAO,EAAEC,CAAC;MAAEL,IAAI,EAAEC,CAAC;MAAEP,SAAS,EAAEY;IAAE,CAAC,GAAG3C,MAAM;IAEpD,MAAMiC,IAAI,GAAGS,CAAC,IAAI,CAAC,GAAGd,IAAI,CAACY,IAAI,CAACG,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,MAAMJ,MAAM,GAAGN,IAAI,CAACY,IAAI,CAACG,CAAC,GAAGL,CAAC,CAAC,CAAC,CAAC;IACjC,MAAMH,MAAM,GAAGF,IAAI,GAAG,CAAC,GAAGC,MAAM,GAAGN,IAAI,CAACY,IAAI,CAAC,CAAC,GAAGP,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;;IAEjE,OAAO;MAAEA,IAAI;MAAEC,MAAM;MAAEC;IAAO,CAAC;EAChC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASS,sBAAsBA,CACrCC,SAA0B,EAC1BvC,KAAqC,EAC5B;EACT,SAAS;;EACT,MAAM;IAAE2B,IAAI;IAAEa,OAAO;IAAEC;EAAW,CAAC,GAAGF,SAAS;EAC/C,MAAMG,UAAU,GAAGC,MAAM,CAACH,OAAO,CAAC;EAElC,IAAIC,UAAU,KAAK,CAAC,EAAE;IACrB,OAAOd,IAAI;EACZ;EAEA,MAAM,CAACiB,UAAU,EAAEC,WAAW,CAAC,GAC9BJ,UAAU,IAAI,CAAC,GAAG,CAACzC,KAAK,CAACC,GAAG,EAAED,KAAK,CAACE,GAAG,CAAC,GAAG,CAACF,KAAK,CAACE,GAAG,EAAEF,KAAK,CAACC,GAAG,CAAC;;EAElE;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAEC,MAAM6C,iBAAiB,GACtBD,WAAW,KAAK/B,SAAS,GACtBQ,IAAI,CAACC,GAAG,CAAC,CAACsB,WAAW,GAAGH,UAAU,IAAID,UAAU,CAAC,GACjD3B,SAAS;EAEb,MAAMiC,iBAAiB,GACtBH,UAAU,KAAK9B,SAAS,GACrBQ,IAAI,CAACC,GAAG,CAAC,CAACqB,UAAU,GAAGF,UAAU,IAAID,UAAU,CAAC,GAChD3B,SAAS;;EAEb;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAEC,MAAMkC,QAAQ,GACbF,iBAAiB,KAAKhC,SAAS,GAC5BQ,IAAI,CAACC,GAAG,CAACD,IAAI,CAAC2B,GAAG,CAACH,iBAAiB,CAAC,GAAGxB,IAAI,CAAC4B,EAAE,CAAC,GAC/CpC,SAAS;EAEb,MAAMqC,QAAQ,GACbJ,iBAAiB,KAAKjC,SAAS,GAC5BQ,IAAI,CAACC,GAAG,CAACD,IAAI,CAAC2B,GAAG,CAACF,iBAAiB,CAAC,IAAI,CAAC,GAAGzB,IAAI,CAAC4B,EAAE,CAAC,CAAC,GACrDpC,SAAS;EAEb,MAAMsC,mBAAmB,GAAG,CAACJ,QAAQ,EAAEG,QAAQ,CAAC,CAACvC,MAAM,CACrDyC,CAAqB,IAAkBA,CAAC,KAAKvC,SAC/C,CAAC;EACD;EACA;EACA,OAAOQ,IAAI,CAACpB,GAAG,CAAC,GAAGkD,mBAAmB,EAAEzB,IAAI,CAAC;AAC9C;AAEA,OAAO,SAAS2B,SAASA,CACxBC,YAAoB,EACpBC,QAAgB,EAChB/B,SAAiB,EACjBM,IAAY,EACX;EACD,SAAS;;EACT,MAAM0B,eAAe,GAAG,GAAG,GAAGhC,SAAS,GAAG8B,YAAY,IAAI,CAAC;EAC3D,MAAMG,aAAa,GAAG,GAAG,GAAG3B,IAAI,GAAGyB,QAAQ,IAAI,CAAC;EAChD,OAAOC,eAAe,GAAGC,aAAa;AACvC;;AAEA;AACA,OAAO,SAASC,oCAAoCA,CACnDC,EAAU,EACVlE,MAA+C,EAC/CmE,EAAU,EACT;EACD,SAAS;;EACT,IAAInE,MAAM,CAACgC,aAAa,EAAE;IACzB,OAAO,CAAC;EACT;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,MAAM;IACLO,YAAY,EAAEN,IAAI;IAClBmC,eAAe,EAAEC,SAAS;IAC1BhC,IAAI,EAAEC,CAAC;IACPjC,QAAQ,EAAEiE;EACX,CAAC,GAAGtE,MAAM;EAEV,MAAMuE,sBAAsB,GAAIxC,SAAiB,IAAK;IACrD,SAAS;;IACT,MAAMyC,qBAAqB,GAAG,GAAG;IACjC,MAAMC,sBAAsB,GAAG,IAAI;IAEnC,MAAMC,gBAAgB,GACpBJ,cAAc,GAAGE,qBAAqB,GAAIC,sBAAsB;IAClE,MAAMvC,MAAM,GAAGN,IAAI,CAACY,IAAI,CAACT,SAAS,GAAGO,CAAC,CAAC,GAAGL,IAAI;IAE9C,MAAM0C,GAAG,GACR,CAACT,EAAE,GAAG,CAACC,EAAE,GAAGD,EAAE,GAAGhC,MAAM,IAAIwC,gBAAgB,IAC3C9C,IAAI,CAACgD,GAAG,CAAC,CAAC1C,MAAM,GAAGwC,gBAAgB,CAAC;IAErC,MAAMG,GAAG,GACR,CAACX,EAAE,GAAG,CAACC,EAAE,GAAGD,EAAE,GAAGhC,MAAM,IAAIwC,gBAAgB,IAC1C9C,IAAI,CAACgD,GAAG,CAAC,CAAC1C,MAAM,GAAGwC,gBAAgB,CAAC,GACpC,CAACxC,MAAM,GACR,CAACiC,EAAE,GAAGD,EAAE,GAAGhC,MAAM,IAAIN,IAAI,CAACgD,GAAG,CAAC,CAAC1C,MAAM,GAAGwC,gBAAgB,CAAC;IAE1D,MAAMI,EAAE,GAAGlB,SAAS,CAACM,EAAE,EAAEC,EAAE,EAAEpC,SAAS,EAAEO,CAAC,CAAC;IAE1C,MAAMyC,GAAG,GAAGnB,SAAS,CAACe,GAAG,EAAEE,GAAG,EAAE9C,SAAS,EAAEO,CAAC,CAAC;IAE7C,MAAM0C,cAAc,GAAGD,GAAG,GAAGD,EAAE;IAE/B,OAAOE,cAAc,GAAGX,SAAS;EAClC,CAAC;EAED,MAAM9C,SAAS,GAAGvB,MAAM,CAACoE,eAAe,GAAG,IAAI,CAAC,CAAC;;EAEjD;EACA,OAAO/C,UAAU,CAAC;IACjBd,GAAG,EAAE0C,MAAM,CAACgC,OAAO;IACnBzE,GAAG,EAAE,GAAG,CAAC;IACTc,IAAI,EAAEiD,sBAAsB;IAC5BhD,SAAS;IACTC,aAAa,EAAE;EAChB,CAAC,CAAC;AACH;AAEA,OAAO,SAAS0D,kCAAkCA,CACjDrC,SAA+B,EAC/BsC,mBAKC,EACwC;EACzC,SAAS;;EACT,MAAM;IAAErC;EAAQ,CAAC,GAAGD,SAAS;EAE7B,MAAM;IAAEsB,EAAE;IAAED,EAAE;IAAEhC,MAAM;IAAEkD;EAAE,CAAC,GAAGD,mBAAmB;EAEjD,MAAME,wBAAwB,GAAGzD,IAAI,CAACgD,GAAG,CAAC,CAAC1C,MAAM,GAAGkD,CAAC,CAAC;EACtD,MAAME,wBAAwB,GAC7BxC,OAAO,GAAGuC,wBAAwB,IAAInB,EAAE,GAAG,CAACC,EAAE,GAAGjC,MAAM,GAAGgC,EAAE,IAAIkB,CAAC,CAAC;EAEnE,MAAMG,wBAAwB,GAC7BF,wBAAwB,GAAG,CAACnD,MAAM,IAAIgC,EAAE,GAAG,CAACC,EAAE,GAAGjC,MAAM,GAAGgC,EAAE,IAAIkB,CAAC,CAAC,GAClEC,wBAAwB,IAAIlB,EAAE,GAAGjC,MAAM,GAAGgC,EAAE,CAAC;EAE9C,OAAO;IACNsB,QAAQ,EAAEF,wBAAwB;IAClCxB,QAAQ,EAAEyB;EACX,CAAC;AACF;AAEA,OAAO,SAASE,6BAA6BA,CAC5C5C,SAA+B,EAC/BsC,mBAOC,EACwC;EACzC,SAAS;;EACT,MAAM;IAAErC;EAAQ,CAAC,GAAGD,SAAS;EAE7B,MAAM;IAAEZ,IAAI;IAAEmD,CAAC;IAAElD,MAAM;IAAEC,MAAM;IAAE+B,EAAE;IAAEC;EAAG,CAAC,GAAGgB,mBAAmB;EAE/D,MAAMO,IAAI,GAAG9D,IAAI,CAAC+D,GAAG,CAACxD,MAAM,GAAGiD,CAAC,CAAC;EACjC,MAAMQ,IAAI,GAAGhE,IAAI,CAACiE,GAAG,CAAC1D,MAAM,GAAGiD,CAAC,CAAC;;EAEjC;EACA,MAAMU,mBAAmB,GAAGlE,IAAI,CAACgD,GAAG,CAAC,CAAC3C,IAAI,GAAGC,MAAM,GAAGkD,CAAC,CAAC;EACxD,MAAMW,gBAAgB,GACrBD,mBAAmB,IAClBJ,IAAI,IAAI,CAACvB,EAAE,GAAGlC,IAAI,GAAGC,MAAM,GAAGgC,EAAE,IAAI/B,MAAM,CAAC,GAAG+B,EAAE,GAAG0B,IAAI,CAAC;EAE1D,MAAMI,mBAAmB,GAAGlD,OAAO,GAAGiD,gBAAgB;EACtD;EACA,MAAME,mBAAmB,GACxB,CAAChE,IAAI,GAAGC,MAAM,GAAG6D,gBAAgB,GACjCD,mBAAmB,IACjBF,IAAI,IAAIzB,EAAE,GAAGlC,IAAI,GAAGC,MAAM,GAAGgC,EAAE,CAAC,GAAG/B,MAAM,GAAG+B,EAAE,GAAGwB,IAAI,CAAC;EAEzD,OAAO;IAAEF,QAAQ,EAAEQ,mBAAmB;IAAElC,QAAQ,EAAEmC;EAAoB,CAAC;AACxE;AAEA,MAAMC,2BAA2B,GAAG,EAAE;AACtC,MAAMC,iCAAiC,GAAG,MAAM;AAChD,MAAMC,8BAA8B,GAAG,IAAI;AAE3C,OAAO,SAASC,gCAAgCA,CAC/CxD,SAA+B,EAC/B7C,MAA+C,EACtC;EACT,SAAS;;EACT,MAAMsG,aAAa,GAAGzD,SAAS,CAAClB,OAAO;EACvC,MAAM4E,aAAa,GAAG1D,SAAS,CAACiB,QAAQ;EACxC,MAAMI,EAAE,GAAGoC,aAAa,GAAGzD,SAAS,CAACC,OAAO;EAE5C,MAAM0D,OAAO,GAAIC,IAAY,IAAK;IACjC,SAAS;;IACT,OAAO5D,SAAS,CAACZ,IAAI,GAAG,CAAC,GACtBwD,6BAA6B,CAAC5C,SAAS,EAAE;MACzCZ,IAAI,EAAEY,SAAS,CAACZ,IAAI;MACpBkC,EAAE,EAAEoC,aAAa;MACjBrC,EAAE;MACFhC,MAAM,EAAEW,SAAS,CAACX,MAAM;MACxBC,MAAM,EAAEU,SAAS,CAACV,MAAM;MACxBiD,CAAC,EAAEqB;IACJ,CAAC,CAAC,GACDvB,kCAAkC,CAACrC,SAAS,EAAE;MAC9CsB,EAAE,EAAEoC,aAAa;MACjBrC,EAAE;MACFhC,MAAM,EAAEW,SAAS,CAACX,MAAM;MACxBkD,CAAC,EAAEqB;IACJ,CAAC,CAAC;EACL,CAAC;EAED,MAAMC,oBAAoB,GAAID,IAAY,IAAK;IAC9C,SAAS;;IACT,IAAI5D,SAAS,CAAC8D,aAAa,KAAK,CAAC,EAAE;MAClC,OAAO,IAAI;IACZ;IAEA,MAAMC,KAAK,GAAGJ,OAAO,CAACC,IAAI,CAAC;IAC3B,MAAMI,MAAM,GAAGjD,SAAS,CACvBf,SAAS,CAACC,OAAO,GAAG8D,KAAK,CAACpB,QAAQ,EAClCoB,KAAK,CAAC9C,QAAQ,EACd9D,MAAM,CAAC+B,SAAS,EAChB/B,MAAM,CAACqC,IACR,CAAC;IAED,OAAOwE,MAAM,GAAGhE,SAAS,CAAC8D,aAAa,IAAI3G,MAAM,CAACoE,eAAe;EAClE,CAAC;EAED,IAAIsC,oBAAoB,CAAC,CAAC,CAAC,EAAE;IAC5B,OAAO,CAAC;EACT;EAEA,IAAII,UAAU,GAAG,CAAC;EAClB,IAAIC,UAAU,GAAG,CAAC,GAAG,EAAE;EACvB,OACCA,UAAU,GAAGb,2BAA2B,IACxC,CAACQ,oBAAoB,CAACK,UAAU,CAAC,EAChC;IACDD,UAAU,GAAGC,UAAU;IACvBA,UAAU,IAAI,CAAC;EAChB;EACAA,UAAU,GAAGnF,IAAI,CAACrB,GAAG,CAACwG,UAAU,EAAEb,2BAA2B,CAAC;EAE9D,IAAIQ,oBAAoB,CAACK,UAAU,CAAC,EAAE;IACrC,OAAOA,UAAU,GAAGD,UAAU,GAAGX,iCAAiC,EAAE;MACnE,MAAMa,QAAQ,GAAG,CAACF,UAAU,GAAGC,UAAU,IAAI,CAAC;MAC9C,IAAIL,oBAAoB,CAACM,QAAQ,CAAC,EAAE;QACnCD,UAAU,GAAGC,QAAQ;MACtB,CAAC,MAAM;QACNF,UAAU,GAAGE,QAAQ;MACtB;IACD;EACD;EAEA,MAAMC,cAAc,GAAGF,UAAU;EACjC,IAAI,CAAC/G,MAAM,CAACkH,iBAAiB,IAAID,cAAc,KAAK,CAAC,EAAE;IACtD,OAAOA,cAAc,GAAG,IAAI;EAC7B;EAEA,MAAME,SAAS,GACdtE,SAAS,CAACE,UAAU,IAAI,CAAC,GACtBF,SAAS,CAACC,OAAO,GACjBD,SAAS,CAACC,OAAO,GAAGD,SAAS,CAACE,UAAU;EAC5C,MAAMqE,UAAU,GAAGD,SAAS,GAAGvF,IAAI,CAACC,GAAG,CAACgB,SAAS,CAACE,UAAU,CAAC;EAC7D,MAAMsE,iBAAiB,GAAIZ,IAAY,IAAK;IAC3C,SAAS;;IACT,MAAM;MAAEjB;IAAS,CAAC,GAAGgB,OAAO,CAACC,IAAI,CAAC;IAClC,OAAOjB,QAAQ,GAAG2B,SAAS,IAAI3B,QAAQ,GAAG4B,UAAU;EACrD,CAAC;EAED,MAAME,SAAS,GAAGzE,SAAS,CAACZ,IAAI,GAAG,CAAC,GAAGY,SAAS,CAACV,MAAM,GAAGU,SAAS,CAACX,MAAM;EAC1E,MAAMqF,UAAU,GACfD,SAAS,GAAG,CAAC,GAAG1F,IAAI,CAACrB,GAAG,CAAC,CAAC,GAAG,GAAG,EAAEqB,IAAI,CAAC4B,EAAE,IAAI8D,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;EACvE,MAAME,WAAW,GAAG5F,IAAI,CAACrB,GAAG,CAC3B6F,8BAA8B,EAC9BxE,IAAI,CAACpB,GAAG,CAAC,CAAC,EAAEoB,IAAI,CAAC6F,IAAI,CAACR,cAAc,GAAGM,UAAU,CAAC,CACnD,CAAC;EACD,MAAMG,aAAa,GAAGT,cAAc,GAAGO,WAAW;EAClD,IAAIG,YAAY,GAAG,CAAC;EAEpB,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,IAAIJ,WAAW,EAAEI,KAAK,IAAI,CAAC,EAAE;IACrD,MAAMnB,IAAI,GAAGiB,aAAa,GAAGE,KAAK;IAClC,IAAI,CAACP,iBAAiB,CAACZ,IAAI,CAAC,EAAE;MAC7BkB,YAAY,GAAGlB,IAAI;MACnB;IACD;IAEA,IAAIoB,kBAAkB,GAAGF,YAAY;IACrC,IAAIG,kBAAkB,GAAGrB,IAAI;IAC7B,OACCqB,kBAAkB,GAAGD,kBAAkB,GACvC1B,iCAAiC,EAChC;MACD,MAAMa,QAAQ,GAAG,CAACa,kBAAkB,GAAGC,kBAAkB,IAAI,CAAC;MAC9D,IAAIT,iBAAiB,CAACL,QAAQ,CAAC,EAAE;QAChCc,kBAAkB,GAAGd,QAAQ;MAC9B,CAAC,MAAM;QACNa,kBAAkB,GAAGb,QAAQ;MAC9B;IACD;IAEA,OAAOc,kBAAkB,GAAG,IAAI;EACjC;EAEA,OAAOb,cAAc,GAAG,IAAI;AAC7B;AAEA,OAAO,SAASc,iCAAiCA,CAChDlF,SAA+B,EAC/B7C,MAA+C,EACrC;EACV,SAAS;;EACT,MAAM;IAAE8C,OAAO;IAAEgB,QAAQ;IAAEf,UAAU;IAAEpB,OAAO;IAAEgF;EAAc,CAAC,GAAG9D,SAAS;EAE3E,IAAI7C,MAAM,CAACkH,iBAAiB,EAAE;IAC7B,MAAMC,SAAS,GAAGpE,UAAU,IAAI,CAAC,GAAGD,OAAO,GAAGA,OAAO,GAAGC,UAAU;IAClE,MAAMqE,UAAU,GAAGD,SAAS,GAAGvF,IAAI,CAACC,GAAG,CAACkB,UAAU,CAAC;IACnD,IAAIpB,OAAO,GAAGwF,SAAS,IAAIxF,OAAO,GAAGyF,UAAU,EAAE;MAChD,OAAO,IAAI;IACZ;EACD;EACA,MAAMY,aAAa,GAAGpE,SAAS,CAC9Bd,OAAO,GAAGnB,OAAO,EACjBmC,QAAQ,EACR9D,MAAM,CAAC+B,SAAS,EAChB/B,MAAM,CAACqC,IACR,CAAC;EAED,OACCsE,aAAa,KAAK,CAAC,IACnBqB,aAAa,GAAGrB,aAAa,IAAI3G,MAAM,CAACoE,eAAe;AAEzD;AAEA,OAAO,SAAS6D,6BAA6BA,CAC5CpF,SAA+B,EAC/B7C,MAA+C,EACrC;EACV,SAAS;;EACT,MAAM;IAAE8C,OAAO;IAAEgB,QAAQ;IAAEnC;EAAQ,CAAC,GAAGkB,SAAS;EAChD,MAAMqF,QAAQ,GAAGtG,IAAI,CAACpB,GAAG,CAAC,CAAC,EAAER,MAAM,CAACmI,cAAc,CAAC;EAEnD,IAAID,QAAQ,KAAK,CAAC,EAAE;IACnB,OAAOH,iCAAiC,CAAClF,SAAS,EAAE7C,MAAM,CAAC;EAC5D;EAEA,MAAMgI,aAAa,GAAGpE,SAAS,CAC9Bd,OAAO,GAAGnB,OAAO,EACjBmC,QAAQ,EACR9D,MAAM,CAAC+B,SAAS,EAChB/B,MAAM,CAACqC,IACR,CAAC;EACD,MAAM+F,gBAAgB,GAAGxE,SAAS,CACjCsE,QAAQ,EACR,CAAC,EACDlI,MAAM,CAAC+B,SAAS,EAChB/B,MAAM,CAACqC,IACR,CAAC;EAED,OAAO2F,aAAa,IAAII,gBAAgB;AACzC","ignoreList":[]}
@@ -1,2 +1,4 @@
1
1
  "use strict";
2
+
3
+ export {};
2
4
  //# sourceMappingURL=state.js.map
@@ -118,6 +118,18 @@ function getBoundsCenterY(bounds) {
118
118
 
119
119
  return bounds.pageY + bounds.height / 2;
120
120
  }
121
+ export function resolveRevealContentBaseTransformFromGeometry({
122
+ progress,
123
+ geometry
124
+ }) {
125
+ "worklet";
126
+
127
+ return {
128
+ translateX: mixUnit(geometry.tx, 0, progress),
129
+ translateY: mixUnit(geometry.ty, 0, progress),
130
+ scale: mixUnit(geometry.s, 1, progress)
131
+ };
132
+ }
121
133
  export function resolveRevealContentBaseTransform({
122
134
  progress,
123
135
  sourceBounds,
@@ -135,11 +147,10 @@ export function resolveRevealContentBaseTransform({
135
147
  anchor,
136
148
  scaleMode: "uniform"
137
149
  });
138
- return {
139
- translateX: mixUnit(geometry.tx, 0, progress),
140
- translateY: mixUnit(geometry.ty, 0, progress),
141
- scale: mixUnit(geometry.s, 1, progress)
142
- };
150
+ return resolveRevealContentBaseTransformFromGeometry({
151
+ geometry,
152
+ progress
153
+ });
143
154
  }
144
155
  export function resolveTrackedSourceElementTransform({
145
156
  sourceBounds,
@@ -1 +1 @@
1
- {"version":3,"names":["EPSILON","computeContentTransformGeometry","DRAG_DIRECTIONAL_SCALE_EXPONENT","DRAG_DIRECTIONAL_SCALE_MAX","DRAG_DIRECTIONAL_SCALE_MIN","clampUnit","value","Math","min","max","mixUnit","from","to","progress","interpolateClamped","inputStart","inputEnd","outputStart","outputEnd","resolveSafeScale","scale","abs","resolveUnitDragTranslation","translation","dimension","baseDistance","resolveRevealDirectionalDragScale","normalized","inverted","dismissalRelative","rawScale","oppositeDrag","resolveUniformScale","sourceWidth","sourceHeight","destinationWidth","destinationHeight","sx","sy","sourceAspect","destinationAspect","aspectDifference","resolveRevealGestureHandoff","rawDrag","maxSensitivity","clampedRawDrag","gestureSensitivity","releaseBoost","releaseSensitivity","gestureReleaseVelocityScale","resolveDismissScaleHandoff","releaseScale","targetScale","velocity","velocityDepth","closeProgress","easeIn","cos","PI","scaleProgress","baseScale","orbitDepth","orbitScale","sin","resolveAspectRatioMaskHeight","maskWidth","maskHeight","targetWidth","targetHeight","safeMaskWidth","safeMaskHeight","safeTargetWidth","safeTargetHeight","targetAspectHeight","getBoundsCenterX","bounds","pageX","width","getBoundsCenterY","pageY","height","resolveRevealContentBaseTransform","sourceBounds","destinationBounds","screenLayout","anchor","geometry","start","end","entering","dimensions","scaleMode","translateX","tx","translateY","ty","s","resolveTrackedSourceElementTransform","contentTranslateX","contentTranslateY","contentScale","parentScale","screenWidth","screenHeight","screenCenterX","screenCenterY","safeParentScale","safeSourceWidth","safeSourceHeight","sourceCenterX","sourceCenterY","destinationCenterX","destinationCenterY","trackedCenterX","trackedCenterY","scaleX","scaleY"],"sourceRoot":"../../../../../../../src","sources":["shared/utils/bounds/navigation/reveal/math.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["EPSILON","computeContentTransformGeometry","DRAG_DIRECTIONAL_SCALE_EXPONENT","DRAG_DIRECTIONAL_SCALE_MAX","DRAG_DIRECTIONAL_SCALE_MIN","clampUnit","value","Math","min","max","mixUnit","from","to","progress","interpolateClamped","inputStart","inputEnd","outputStart","outputEnd","resolveSafeScale","scale","abs","resolveUnitDragTranslation","translation","dimension","baseDistance","resolveRevealDirectionalDragScale","normalized","inverted","dismissalRelative","rawScale","oppositeDrag","resolveUniformScale","sourceWidth","sourceHeight","destinationWidth","destinationHeight","sx","sy","sourceAspect","destinationAspect","aspectDifference","resolveRevealGestureHandoff","rawDrag","maxSensitivity","clampedRawDrag","gestureSensitivity","releaseBoost","releaseSensitivity","gestureReleaseVelocityScale","resolveDismissScaleHandoff","releaseScale","targetScale","velocity","velocityDepth","closeProgress","easeIn","cos","PI","scaleProgress","baseScale","orbitDepth","orbitScale","sin","resolveAspectRatioMaskHeight","maskWidth","maskHeight","targetWidth","targetHeight","safeMaskWidth","safeMaskHeight","safeTargetWidth","safeTargetHeight","targetAspectHeight","getBoundsCenterX","bounds","pageX","width","getBoundsCenterY","pageY","height","resolveRevealContentBaseTransformFromGeometry","geometry","translateX","tx","translateY","ty","s","resolveRevealContentBaseTransform","sourceBounds","destinationBounds","screenLayout","anchor","start","end","entering","dimensions","scaleMode","resolveTrackedSourceElementTransform","contentTranslateX","contentTranslateY","contentScale","parentScale","screenWidth","screenHeight","screenCenterX","screenCenterY","safeParentScale","safeSourceWidth","safeSourceHeight","sourceCenterX","sourceCenterY","destinationCenterX","destinationCenterY","trackedCenterX","trackedCenterY","scaleX","scaleY"],"sourceRoot":"../../../../../../../src","sources":["shared/utils/bounds/navigation/reveal/math.ts"],"mappings":";;AACA,SAASA,OAAO,QAAQ,uBAAuB;AAE/C,SAASC,+BAA+B,QAAQ,wBAAwB;AAGxE,SACCC,+BAA+B,EAC/BC,0BAA0B,EAC1BC,0BAA0B,QACpB,UAAU;AAEjB,SAASC,SAASA,CAACC,KAAa,EAAE;EACjC,SAAS;;EACT,OAAOC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEH,KAAK,CAAC,CAAC;AACvC;AAEA,OAAO,SAASI,OAAOA,CAACC,IAAY,EAAEC,EAAU,EAAEC,QAAgB,EAAE;EACnE,SAAS;;EACT,OAAOF,IAAI,GAAG,CAACC,EAAE,GAAGD,IAAI,IAAIN,SAAS,CAACQ,QAAQ,CAAC;AAChD;AAEA,OAAO,SAASC,kBAAkBA,CACjCR,KAAa,EACbS,UAAkB,EAClBC,QAAgB,EAChBC,WAAmB,EACnBC,SAAiB,EAChB;EACD,SAAS;;EACT,OAAOR,OAAO,CACbO,WAAW,EACXC,SAAS,EACT,CAACZ,KAAK,GAAGS,UAAU,KAAKC,QAAQ,GAAGD,UAAU,CAC9C,CAAC;AACF;AAEA,OAAO,SAASI,gBAAgBA,CAACC,KAAa,EAAE;EAC/C,SAAS;;EACT,OAAOb,IAAI,CAACc,GAAG,CAACD,KAAK,CAAC,GAAGpB,OAAO,GAAGoB,KAAK,GAAG,CAAC;AAC7C;AAEA,OAAO,MAAME,0BAA0B,GAAGA,CACzCC,WAAmB,EACnBC,SAAiB,KACb;EACJ,SAAS;;EAET,MAAMC,YAAY,GAAGlB,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEe,SAAS,CAAC;EAE3C,IAAID,WAAW,GAAG,CAACE,YAAY,EAAE;IAChC,OAAO,CAACA,YAAY;EACrB;EAEA,IAAIF,WAAW,GAAGE,YAAY,EAAE;IAC/B,OAAOA,YAAY;EACpB;EAEA,OAAOF,WAAW;AACnB,CAAC;AAED,OAAO,SAASG,iCAAiCA,CAChDC,UAAkB,EAClBC,QAAiB,EAChB;EACD,SAAS;;EAET,MAAMC,iBAAiB,GAAGD,QAAQ,GAAG,CAACD,UAAU,GAAGA,UAAU;EAE7D,IAAIE,iBAAiB,IAAI,CAAC,EAAE;IAC3B,MAAMC,QAAQ,GAAGpB,OAAO,CAAC,CAAC,EAAEN,0BAA0B,EAAEyB,iBAAiB,CAAC;IAC1E,OAAOC,QAAQ,IAAI5B,+BAA+B;EACnD;EAEA,MAAM6B,YAAY,GAAGxB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACc,GAAG,CAACQ,iBAAiB,CAAC,CAAC;EAC7D,OAAOnB,OAAO,CAAC,CAAC,EAAEP,0BAA0B,EAAE4B,YAAY,CAAC;AAC5D;AAEA,OAAO,SAASC,mBAAmBA,CAAC;EACnCC,WAAW;EACXC,YAAY;EACZC,gBAAgB;EAChBC;AAMD,CAAC,EAAE;EACF,SAAS;;EAET,MAAMC,EAAE,GAAGJ,WAAW,GAAGE,gBAAgB;EACzC,MAAMG,EAAE,GAAGJ,YAAY,GAAGE,iBAAiB;EAE3C,MAAMG,YAAY,GAAGN,WAAW,GAAGC,YAAY;EAC/C,MAAMM,iBAAiB,GAAGL,gBAAgB,GAAGC,iBAAiB;EAC9D,MAAMK,gBAAgB,GAAGlC,IAAI,CAACc,GAAG,CAACkB,YAAY,GAAGC,iBAAiB,CAAC;EAEnE,OAAOC,gBAAgB,GAAG,GAAG,GAAGlC,IAAI,CAACE,GAAG,CAAC4B,EAAE,EAAEC,EAAE,CAAC,GAAG/B,IAAI,CAACC,GAAG,CAAC6B,EAAE,EAAEC,EAAE,CAAC;AACpE;AAEA,OAAO,SAASI,2BAA2BA,CAAC;EAC3CC,OAAO;EACPC;AAID,CAAC,EAAE;EACF,SAAS;;EAET,MAAMC,cAAc,GAAGxC,SAAS,CAACsC,OAAO,CAAC;EACzC,MAAMG,kBAAkB,GAAGpC,OAAO,CAACkC,cAAc,EAAE,GAAG,EAAEC,cAAc,CAAC;EAEvE,MAAME,YAAY,GAAGrC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAEmC,cAAc,CAAC;EAEpD,MAAMG,kBAAkB,GAAGlC,kBAAkB,CAC5CgC,kBAAkB,EAClB,IAAI,EACJ,GAAG,EACH,GAAG,EACH,CACD,CAAC;EAED,OAAO;IACNA,kBAAkB;IAClBG,2BAA2B,EAAEF,YAAY,GAAGC;EAC7C,CAAC;AACF;AAEA,OAAO,SAASE,0BAA0BA,CAAC;EAC1CrC,QAAQ;EACRsC,YAAY;EACZC,WAAW;EACXC,QAAQ;EACRC;AAOD,CAAC,EAAE;EACF,SAAS;;EAET,MAAMC,aAAa,GAAG,CAAC,GAAG1C,QAAQ;EAClC,MAAM2C,MAAM,GAAG,CAAC,GAAGjD,IAAI,CAACkD,GAAG,CAAElD,IAAI,CAACmD,EAAE,GAAG,CAAC,GAAIH,aAAa,CAAC;EAC1D,MAAMI,aAAa,GAAGH,MAAM,IAAI,CAAC;EACjC,MAAMI,SAAS,GAAGT,YAAY,GAAG,CAACC,WAAW,GAAGD,YAAY,IAAIQ,aAAa;EAE7E,MAAME,UAAU,GAAGP,aAAa,GAAGD,QAAQ;EAC3C,MAAMS,UAAU,GAAG,CAAC,GAAGD,UAAU,GAAGtD,IAAI,CAACwD,GAAG,CAACxD,IAAI,CAACmD,EAAE,GAAGH,aAAa,CAAC;EAErE,OAAOK,SAAS,GAAGE,UAAU;AAC9B;AAEA,OAAO,SAASE,4BAA4BA,CAAC;EAC5CC,SAAS;EACTC,UAAU;EACVC,WAAW;EACXC;AAMD,CAAC,EAAE;EACF,SAAS;;EAET,MAAMC,aAAa,GAAG9D,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEF,IAAI,CAACc,GAAG,CAAC4C,SAAS,CAAC,CAAC;EACtD,MAAMK,cAAc,GAAG/D,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEF,IAAI,CAACc,GAAG,CAAC6C,UAAU,CAAC,CAAC;EACxD,MAAMK,eAAe,GAAGhE,IAAI,CAACE,GAAG,CAACF,IAAI,CAACc,GAAG,CAAC8C,WAAW,CAAC,EAAEnE,OAAO,CAAC;EAChE,MAAMwE,gBAAgB,GAAGjE,IAAI,CAACE,GAAG,CAACF,IAAI,CAACc,GAAG,CAAC+C,YAAY,CAAC,EAAEpE,OAAO,CAAC;EAClE,MAAMyE,kBAAkB,GACvBJ,aAAa,IAAIG,gBAAgB,GAAGD,eAAe,CAAC;EAErD,OAAOhE,IAAI,CAACC,GAAG,CAAC8D,cAAc,EAAE/D,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEgE,kBAAkB,CAAC,CAAC;AACjE;AAEA,SAASC,gBAAgBA,CAACC,MAA0B,EAAE;EACrD,SAAS;;EACT,OAAOA,MAAM,CAACC,KAAK,GAAGD,MAAM,CAACE,KAAK,GAAG,CAAC;AACvC;AAEA,SAASC,gBAAgBA,CAACH,MAA0B,EAAE;EACrD,SAAS;;EACT,OAAOA,MAAM,CAACI,KAAK,GAAGJ,MAAM,CAACK,MAAM,GAAG,CAAC;AACxC;AAEA,OAAO,SAASC,6CAA6CA,CAAC;EAC7DpE,QAAQ;EACRqE;AAID,CAAC,EAAE;EACF,SAAS;;EAET,OAAO;IACNC,UAAU,EAAEzE,OAAO,CAACwE,QAAQ,CAACE,EAAE,EAAE,CAAC,EAAEvE,QAAQ,CAAC;IAC7CwE,UAAU,EAAE3E,OAAO,CAACwE,QAAQ,CAACI,EAAE,EAAE,CAAC,EAAEzE,QAAQ,CAAC;IAC7CO,KAAK,EAAEV,OAAO,CAACwE,QAAQ,CAACK,CAAC,EAAE,CAAC,EAAE1E,QAAQ;EACvC,CAAC;AACF;AAEA,OAAO,SAAS2E,iCAAiCA,CAAC;EACjD3E,QAAQ;EACR4E,YAAY;EACZC,iBAAiB;EACjBC,YAAY;EACZC;AAOD,CAAC,EAAE;EACF,SAAS;;EAET,MAAMV,QAAQ,GAAGjF,+BAA+B,CAAC;IAChD4F,KAAK,EAAEJ,YAAY;IACnBK,GAAG,EAAEJ,iBAAiB;IACtBK,QAAQ,EAAE,IAAI;IACdC,UAAU,EAAEL,YAAY;IACxBC,MAAM;IACNK,SAAS,EAAE;EACZ,CAAC,CAAC;EAEF,OAAOhB,6CAA6C,CAAC;IACpDC,QAAQ;IACRrE;EACD,CAAC,CAAC;AACH;AAEA,OAAO,SAASqF,oCAAoCA,CAAC;EACpDT,YAAY;EACZC,iBAAiB;EACjBS,iBAAiB;EACjBC,iBAAiB;EACjBC,YAAY;EACZC,WAAW;EACXC,WAAW;EACXC;AAUD,CAAC,EAAE;EACF,SAAS;;EAET,MAAMC,aAAa,GAAGF,WAAW,GAAG,CAAC;EACrC,MAAMG,aAAa,GAAGF,YAAY,GAAG,CAAC;EACtC,MAAMG,eAAe,GAAGpG,IAAI,CAACE,GAAG,CAACF,IAAI,CAACc,GAAG,CAACiF,WAAW,CAAC,EAAEtG,OAAO,CAAC;EAChE,MAAM4G,eAAe,GAAGrG,IAAI,CAACE,GAAG,CAACF,IAAI,CAACc,GAAG,CAACoE,YAAY,CAACZ,KAAK,CAAC,EAAE7E,OAAO,CAAC;EACvE,MAAM6G,gBAAgB,GAAGtG,IAAI,CAACE,GAAG,CAACF,IAAI,CAACc,GAAG,CAACoE,YAAY,CAACT,MAAM,CAAC,EAAEhF,OAAO,CAAC;EAEzE,MAAM8G,aAAa,GAAGpC,gBAAgB,CAACe,YAAY,CAAC;EACpD,MAAMsB,aAAa,GAAGjC,gBAAgB,CAACW,YAAY,CAAC;EACpD,MAAMuB,kBAAkB,GAAGtC,gBAAgB,CAACgB,iBAAiB,CAAC;EAC9D,MAAMuB,kBAAkB,GAAGnC,gBAAgB,CAACY,iBAAiB,CAAC;EAE9D,MAAMwB,cAAc,GACnBT,aAAa,GACb,CAACO,kBAAkB,GAAGP,aAAa,IAAIJ,YAAY,GACnDF,iBAAiB;EAClB,MAAMgB,cAAc,GACnBT,aAAa,GACb,CAACO,kBAAkB,GAAGP,aAAa,IAAIL,YAAY,GACnDD,iBAAiB;EAElB,OAAO;IACNjB,UAAU,EACT,CAAC+B,cAAc,GAAGT,aAAa,IAAIE,eAAe,GAClDF,aAAa,GACbK,aAAa;IACdzB,UAAU,EACT,CAAC8B,cAAc,GAAGT,aAAa,IAAIC,eAAe,GAClDD,aAAa,GACbK,aAAa;IACdK,MAAM,EACJ1B,iBAAiB,CAACb,KAAK,GAAGwB,YAAY,IACtCO,eAAe,GAAGD,eAAe,CAAC;IACpCU,MAAM,EACJ3B,iBAAiB,CAACV,MAAM,GAAGqB,YAAY,IACvCQ,gBAAgB,GAAGF,eAAe;EACrC,CAAC;AACF","ignoreList":[]}
@@ -2,11 +2,13 @@
2
2
 
3
3
  import { interpolate } from "react-native-reanimated";
4
4
  import { EPSILON, NAVIGATION_MASK_ELEMENT_STYLE_ID } from "../../../../constants";
5
+ import { getVisualScrollAxisDelta } from "../../../../stores/scroll.store";
5
6
  import { createBoundsAccessorCore } from "../../helpers/create-bounds-accessor-core";
7
+ import { computeContentTransformGeometry } from "../../helpers/geometry";
6
8
  import { getSourceBorderRadius } from "../helpers";
7
- import { resolveRevealContentBaseTransform } from "../reveal/math";
9
+ import { resolveRevealContentBaseTransformFromGeometry } from "../reveal/math";
8
10
  import { ZOOM_BACKDROP_MAX_OPACITY, ZOOM_BACKGROUND_SCALE, ZOOM_FOCUSED_ELEMENT_CLOSE_OPACITY_RANGE, ZOOM_FOCUSED_ELEMENT_OPEN_OPACITY_RANGE, ZOOM_SCREEN_A_FADE_END, ZOOM_SHARED_OPTIONS, ZOOM_UNFOCUSED_ELEMENT_CLOSE_OPACITY_RANGE, ZOOM_UNFOCUSED_ELEMENT_OPEN_OPACITY_RANGE } from "./config";
9
- import { resolveZoomDragState, resolveZoomTrackedGestureScale } from "./drag";
11
+ import { resolveZoomDragState } from "./drag";
10
12
  import { resolveZoomBackdropOpacity, resolveZoomPinchFocalOffset, resolveZoomTrackedSourceTransform } from "./helpers";
11
13
  import { resolveZoomNavigationMaskStyle, ZOOM_NAVIGATION_MASK_BORDER_RADIUS } from "./mask";
12
14
  import { getZoomContentAnchor, getZoomContentTarget, resolveZoomTrackingContentTarget } from "./targets";
@@ -72,25 +74,30 @@ export function buildZoomStyles({
72
74
  if (!trackingContentTarget) {
73
75
  return {};
74
76
  }
77
+ const isDismissing = active.gesture.dismissing === 1;
78
+ const dismissalTrackingGeometry = isDismissing ? computeContentTransformGeometry({
79
+ start: sourceBounds,
80
+ end: trackingContentTarget,
81
+ entering: true,
82
+ dimensions: screenLayout,
83
+ anchor: zoomContentAnchor,
84
+ scaleMode: "uniform"
85
+ }) : null;
86
+ const dismissalCollapsedContentScale = dismissalTrackingGeometry ? resolveRevealContentBaseTransformFromGeometry({
87
+ geometry: dismissalTrackingGeometry,
88
+ progress: 0
89
+ }).scale : 1;
75
90
  const drag = resolveZoomDragState({
76
91
  gesture: active.gesture,
77
92
  activeTransitionProgress,
78
93
  screenLayout,
79
- sourceBounds,
80
- trackingContentTarget,
94
+ collapsedContentScale: dismissalCollapsedContentScale,
81
95
  dragOptions: zoomOptions?.drag
82
96
  });
83
- const trackedGestureScale = resolveZoomTrackedGestureScale({
84
- drag,
85
- activeTransitionProgress,
86
- screenLayout,
87
- sourceBounds,
88
- trackingContentTarget
89
- });
90
97
  const focalGesture = drag.isDismissing ? active.gesture.handoff : active.gesture;
91
98
  const focalProgress = drag.isDismissing ? activeTransitionProgress : 1;
92
99
  const pinchFocalOffset = active.gesture.handoff.active === "pinch-in" ? resolveZoomPinchFocalOffset({
93
- gestureScale: drag.isDismissing ? focalGesture.scale : trackedGestureScale,
100
+ gestureScale: drag.isDismissing ? focalGesture.scale : drag.gestureScale,
94
101
  pinchOriginX: focalGesture.pinchOriginX,
95
102
  pinchOriginY: focalGesture.pinchOriginY,
96
103
  progress: focalProgress,
@@ -101,6 +108,11 @@ export function buildZoomStyles({
101
108
  y: 0
102
109
  };
103
110
  if (focused) {
111
+ const capturedSourceScroll = sourceBounds.scroll;
112
+ const liveSourceScroll = props.inactive?.layouts.scroll;
113
+ const sourceScrollWeight = keepFocusedVisible && (active.entering || active.closing) ? 1 - Math.min(Math.max(activeTransitionProgress, 0), 1) : 0;
114
+ const sourceScrollDeltaX = getVisualScrollAxisDelta(liveSourceScroll, capturedSourceScroll, "horizontal") * sourceScrollWeight;
115
+ const sourceScrollDeltaY = getVisualScrollAxisDelta(liveSourceScroll, capturedSourceScroll, "vertical") * sourceScrollWeight;
104
116
  const sourceBorderRadius = getSourceBorderRadius(link);
105
117
  const navigationMaskEnabled = current.options.navigationMaskEnabled;
106
118
  const backdropOpacity = resolveZoomBackdropOpacity({
@@ -121,8 +133,8 @@ export function buildZoomStyles({
121
133
  const contentBaseTranslateX = contentRaw.translateX;
122
134
  const contentBaseTranslateY = contentRaw.translateY;
123
135
  const contentBaseScale = contentRaw.scale;
124
- const contentTranslateX = contentBaseTranslateX + drag.dragX + pinchFocalOffset.x * contentBaseScale;
125
- const contentTranslateY = contentBaseTranslateY + drag.dragY + pinchFocalOffset.y * contentBaseScale;
136
+ const contentTranslateX = contentBaseTranslateX + drag.dragX + pinchFocalOffset.x * contentBaseScale - sourceScrollDeltaX;
137
+ const contentTranslateY = contentBaseTranslateY + drag.dragY + pinchFocalOffset.y * contentBaseScale - sourceScrollDeltaY;
126
138
  const contentScale = drag.isDismissing ? drag.dismissContentScale : contentBaseScale * drag.gestureScale;
127
139
  return {
128
140
  options: {
@@ -201,16 +213,29 @@ export function buildZoomStyles({
201
213
  }
202
214
  };
203
215
  }
204
- const trackedContentBaseScale = resolveRevealContentBaseTransform({
205
- progress: activeTransitionProgress,
206
- sourceBounds,
207
- destinationBounds: trackingContentTarget,
208
- screenLayout
216
+ const trackingGeometry = dismissalTrackingGeometry ?? computeContentTransformGeometry({
217
+ start: sourceBounds,
218
+ end: trackingContentTarget,
219
+ entering: true,
220
+ dimensions: screenLayout,
221
+ anchor: zoomContentAnchor,
222
+ scaleMode: "uniform"
223
+ });
224
+ const trackedContentBaseTransform = resolveRevealContentBaseTransformFromGeometry({
225
+ geometry: trackingGeometry,
226
+ progress: activeTransitionProgress
227
+ });
228
+ const collapsedContentScale = drag.isDismissing ? dismissalCollapsedContentScale : resolveRevealContentBaseTransformFromGeometry({
229
+ geometry: trackingGeometry,
230
+ progress: 0
209
231
  }).scale;
232
+ const trackedGestureScale = drag.isDismissing ? drag.dismissContentScale / trackedContentBaseTransform.scale : drag.gestureScale;
233
+ const trackedContentBaseScale = trackedContentBaseTransform.scale;
210
234
  const trackedDragX = drag.dragX + pinchFocalOffset.x * trackedContentBaseScale;
211
235
  const trackedDragY = drag.dragY + pinchFocalOffset.y * trackedContentBaseScale;
212
236
  const trackedSourceElement = resolveZoomTrackedSourceTransform({
213
- progress: activeTransitionProgress,
237
+ contentBaseTransform: trackedContentBaseTransform,
238
+ collapsedContentScale,
214
239
  sourceBounds,
215
240
  destinationBounds: trackingContentTarget,
216
241
  screenLayout,
@@ -218,8 +243,7 @@ export function buildZoomStyles({
218
243
  dragY: trackedDragY,
219
244
  gestureScale: trackedGestureScale,
220
245
  parentScale: unfocusedContentScale,
221
- rotation: drag.rotation,
222
- anchor: zoomContentAnchor
246
+ rotation: drag.rotation
223
247
  });
224
248
  return {
225
249
  content: unfocusedContent,