react-native-screen-transitions 3.9.0-beta.3 → 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 (420) 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 +42 -35
  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/configs/index.js +2 -1
  51. package/lib/commonjs/shared/configs/index.js.map +1 -1
  52. package/lib/commonjs/shared/configs/specs.js +23 -1
  53. package/lib/commonjs/shared/configs/specs.js.map +1 -1
  54. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js +4 -1
  55. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  56. package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js +2 -8
  57. package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
  58. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js +1 -0
  59. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  60. package/lib/commonjs/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js +37 -3
  61. package/lib/commonjs/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js.map +1 -1
  62. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +1 -0
  63. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  64. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-release.js +3 -2
  65. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-release.js.map +1 -1
  66. package/lib/commonjs/shared/providers/screen/gestures/types.js.map +1 -1
  67. package/lib/commonjs/shared/providers/screen/styles/helpers/transition-visual-state.js +42 -0
  68. package/lib/commonjs/shared/providers/screen/styles/helpers/transition-visual-state.js.map +1 -0
  69. package/lib/commonjs/shared/providers/screen/styles/helpers/visibility-gate.js +11 -5
  70. package/lib/commonjs/shared/providers/screen/styles/helpers/visibility-gate.js.map +1 -1
  71. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +23 -10
  72. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  73. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +10 -8
  74. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  75. package/lib/commonjs/shared/stores/bounds/internals/links.js +4 -4
  76. package/lib/commonjs/shared/stores/bounds/internals/links.js.map +1 -1
  77. package/lib/commonjs/shared/stores/scroll.store.js +20 -2
  78. package/lib/commonjs/shared/stores/scroll.store.js.map +1 -1
  79. package/lib/commonjs/shared/stores/system.store.js +2 -0
  80. package/lib/commonjs/shared/stores/system.store.js.map +1 -1
  81. package/lib/commonjs/shared/utils/animation/animate-to-progress.js +23 -1
  82. package/lib/commonjs/shared/utils/animation/animate-to-progress.js.map +1 -1
  83. package/lib/commonjs/shared/utils/animation/animate.js +14 -2
  84. package/lib/commonjs/shared/utils/animation/animate.js.map +1 -1
  85. package/lib/commonjs/shared/utils/animation/spring/spring.js +22 -2
  86. package/lib/commonjs/shared/utils/animation/spring/spring.js.map +1 -1
  87. package/lib/commonjs/shared/utils/animation/spring/springUtils.js +96 -0
  88. package/lib/commonjs/shared/utils/animation/spring/springUtils.js.map +1 -1
  89. package/lib/commonjs/shared/utils/animation/state.js +4 -0
  90. package/lib/commonjs/shared/utils/bounds/navigation/reveal/math.js +20 -6
  91. package/lib/commonjs/shared/utils/bounds/navigation/reveal/math.js.map +1 -1
  92. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js +51 -20
  93. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  94. package/lib/commonjs/shared/utils/bounds/navigation/zoom/config.js +4 -3
  95. package/lib/commonjs/shared/utils/bounds/navigation/zoom/config.js.map +1 -1
  96. package/lib/commonjs/shared/utils/bounds/navigation/zoom/drag.js +2 -31
  97. package/lib/commonjs/shared/utils/bounds/navigation/zoom/drag.js.map +1 -1
  98. package/lib/commonjs/shared/utils/bounds/navigation/zoom/helpers.js +2 -13
  99. package/lib/commonjs/shared/utils/bounds/navigation/zoom/helpers.js.map +1 -1
  100. package/lib/commonjs/shared/utils/bounds/navigation/zoom/mask.js +3 -2
  101. package/lib/commonjs/shared/utils/bounds/navigation/zoom/mask.js.map +1 -1
  102. package/lib/commonjs/shared/utils/bounds/navigation/zoom/targets.js +36 -1
  103. package/lib/commonjs/shared/utils/bounds/navigation/zoom/targets.js.map +1 -1
  104. package/lib/module/shared/animation/snap-to.js +2 -0
  105. package/lib/module/shared/animation/snap-to.js.map +1 -1
  106. package/lib/module/shared/components/boundary/components/boundary-target.js +19 -20
  107. package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -1
  108. package/lib/module/shared/components/boundary/create-boundary-component.js +17 -3
  109. package/lib/module/shared/components/boundary/create-boundary-component.js.map +1 -1
  110. package/lib/module/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js +5 -0
  111. package/lib/module/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
  112. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js +1 -3
  113. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  114. package/lib/module/shared/components/boundary/index.js +3 -2
  115. package/lib/module/shared/components/boundary/index.js.map +1 -1
  116. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +49 -189
  117. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  118. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/index.js +21 -13
  119. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/index.js.map +1 -1
  120. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/host.js +2 -13
  121. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -1
  122. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +45 -38
  123. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -1
  124. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.js +3 -4
  125. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.js.map +1 -1
  126. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +50 -134
  127. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  128. package/lib/module/shared/components/boundary/portal/components/boundary-portal/index.js +44 -9
  129. package/lib/module/shared/components/boundary/portal/components/boundary-portal/index.js.map +1 -1
  130. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.js.map +1 -1
  131. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js +1 -27
  132. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -1
  133. package/lib/module/shared/components/boundary/portal/utils/handoff-target.js +28 -0
  134. package/lib/module/shared/components/boundary/portal/utils/handoff-target.js.map +1 -0
  135. package/lib/module/shared/components/boundary/portal/utils/resolve-portal.js +19 -15
  136. package/lib/module/shared/components/boundary/portal/utils/resolve-portal.js.map +1 -1
  137. package/lib/module/shared/components/boundary/portal/utils/teleport-control.js +0 -8
  138. package/lib/module/shared/components/boundary/portal/utils/teleport-control.js.map +1 -1
  139. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js +19 -37
  140. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
  141. package/lib/module/shared/components/boundary/utils/refresh-signals.js +7 -0
  142. package/lib/module/shared/components/boundary/utils/refresh-signals.js.map +1 -1
  143. package/lib/module/shared/components/boundary/utils/resolve-boundary-target.js +24 -0
  144. package/lib/module/shared/components/boundary/utils/resolve-boundary-target.js.map +1 -0
  145. package/lib/module/shared/components/masked-view.js +10 -2
  146. package/lib/module/shared/components/masked-view.js.map +1 -1
  147. package/lib/module/shared/components/screen-container/layers/backdrop.js +3 -1
  148. package/lib/module/shared/components/screen-container/layers/backdrop.js.map +1 -1
  149. package/lib/module/shared/components/screen-container/layers/maybe-masked-navigation-container.js +10 -2
  150. package/lib/module/shared/components/screen-container/layers/maybe-masked-navigation-container.js.map +1 -1
  151. package/lib/module/shared/components/screen-lifecycle/hooks/use-transition-start-controller.js +2 -0
  152. package/lib/module/shared/components/screen-lifecycle/hooks/use-transition-start-controller.js.map +1 -1
  153. package/lib/module/shared/configs/index.js +3 -2
  154. package/lib/module/shared/configs/index.js.map +1 -1
  155. package/lib/module/shared/configs/specs.js +22 -0
  156. package/lib/module/shared/configs/specs.js.map +1 -1
  157. package/lib/module/shared/providers/helpers/measured-bounds-writes.js +4 -1
  158. package/lib/module/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  159. package/lib/module/shared/providers/screen/gestures/gestures.provider.js +2 -8
  160. package/lib/module/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
  161. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js +1 -0
  162. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  163. package/lib/module/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js +35 -2
  164. package/lib/module/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js.map +1 -1
  165. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +1 -0
  166. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  167. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-release.js +3 -2
  168. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-release.js.map +1 -1
  169. package/lib/module/shared/providers/screen/gestures/types.js.map +1 -1
  170. package/lib/module/shared/providers/screen/styles/helpers/transition-visual-state.js +35 -0
  171. package/lib/module/shared/providers/screen/styles/helpers/transition-visual-state.js.map +1 -0
  172. package/lib/module/shared/providers/screen/styles/helpers/visibility-gate.js +11 -5
  173. package/lib/module/shared/providers/screen/styles/helpers/visibility-gate.js.map +1 -1
  174. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +23 -10
  175. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  176. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +10 -8
  177. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  178. package/lib/module/shared/stores/bounds/internals/links.js +4 -4
  179. package/lib/module/shared/stores/bounds/internals/links.js.map +1 -1
  180. package/lib/module/shared/stores/scroll.store.js +17 -0
  181. package/lib/module/shared/stores/scroll.store.js.map +1 -1
  182. package/lib/module/shared/stores/system.store.js +2 -0
  183. package/lib/module/shared/stores/system.store.js.map +1 -1
  184. package/lib/module/shared/utils/animation/animate-to-progress.js +21 -0
  185. package/lib/module/shared/utils/animation/animate-to-progress.js.map +1 -1
  186. package/lib/module/shared/utils/animation/animate.js +14 -2
  187. package/lib/module/shared/utils/animation/animate.js.map +1 -1
  188. package/lib/module/shared/utils/animation/spring/spring.js +23 -3
  189. package/lib/module/shared/utils/animation/spring/spring.js.map +1 -1
  190. package/lib/module/shared/utils/animation/spring/springUtils.js +95 -0
  191. package/lib/module/shared/utils/animation/spring/springUtils.js.map +1 -1
  192. package/lib/module/shared/utils/animation/state.js +2 -0
  193. package/lib/module/shared/utils/bounds/navigation/reveal/math.js +19 -6
  194. package/lib/module/shared/utils/bounds/navigation/reveal/math.js.map +1 -1
  195. package/lib/module/shared/utils/bounds/navigation/zoom/build.js +54 -23
  196. package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  197. package/lib/module/shared/utils/bounds/navigation/zoom/config.js +4 -3
  198. package/lib/module/shared/utils/bounds/navigation/zoom/config.js.map +1 -1
  199. package/lib/module/shared/utils/bounds/navigation/zoom/drag.js +2 -30
  200. package/lib/module/shared/utils/bounds/navigation/zoom/drag.js.map +1 -1
  201. package/lib/module/shared/utils/bounds/navigation/zoom/helpers.js +3 -14
  202. package/lib/module/shared/utils/bounds/navigation/zoom/helpers.js.map +1 -1
  203. package/lib/module/shared/utils/bounds/navigation/zoom/mask.js +3 -2
  204. package/lib/module/shared/utils/bounds/navigation/zoom/mask.js.map +1 -1
  205. package/lib/module/shared/utils/bounds/navigation/zoom/targets.js +35 -1
  206. package/lib/module/shared/utils/bounds/navigation/zoom/targets.js.map +1 -1
  207. package/lib/typescript/shared/animation/snap-to.d.ts.map +1 -1
  208. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts +2 -1
  209. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts.map +1 -1
  210. package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts.map +1 -1
  211. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.d.ts.map +1 -1
  212. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts +3 -4
  213. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts.map +1 -1
  214. package/lib/typescript/shared/components/boundary/index.d.ts +6 -9
  215. package/lib/typescript/shared/components/boundary/index.d.ts.map +1 -1
  216. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts +1 -3
  217. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts.map +1 -1
  218. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/index.d.ts.map +1 -1
  219. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/host.d.ts.map +1 -1
  220. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.d.ts.map +1 -1
  221. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.d.ts +1 -10
  222. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.d.ts.map +1 -1
  223. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts +1 -3
  224. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -1
  225. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/index.d.ts +2 -2
  226. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/index.d.ts.map +1 -1
  227. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.d.ts +0 -1
  228. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.d.ts.map +1 -1
  229. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts +1 -10
  230. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts.map +1 -1
  231. package/lib/typescript/shared/components/boundary/portal/utils/handoff-target.d.ts +12 -0
  232. package/lib/typescript/shared/components/boundary/portal/utils/handoff-target.d.ts.map +1 -0
  233. package/lib/typescript/shared/components/boundary/portal/utils/resolve-portal.d.ts +2 -3
  234. package/lib/typescript/shared/components/boundary/portal/utils/resolve-portal.d.ts.map +1 -1
  235. package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts +0 -4
  236. package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts.map +1 -1
  237. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts +8 -12
  238. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
  239. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts +1 -0
  240. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts.map +1 -1
  241. package/lib/typescript/shared/components/boundary/utils/resolve-boundary-target.d.ts +12 -0
  242. package/lib/typescript/shared/components/boundary/utils/resolve-boundary-target.d.ts.map +1 -0
  243. package/lib/typescript/shared/components/masked-view.d.ts.map +1 -1
  244. package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts.map +1 -1
  245. package/lib/typescript/shared/components/screen-container/layers/maybe-masked-navigation-container.d.ts.map +1 -1
  246. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-transition-start-controller.d.ts.map +1 -1
  247. package/lib/typescript/shared/configs/index.d.ts +16 -0
  248. package/lib/typescript/shared/configs/index.d.ts.map +1 -1
  249. package/lib/typescript/shared/configs/specs.d.ts +19 -0
  250. package/lib/typescript/shared/configs/specs.d.ts.map +1 -1
  251. package/lib/typescript/shared/index.d.ts +16 -0
  252. package/lib/typescript/shared/index.d.ts.map +1 -1
  253. package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts.map +1 -1
  254. package/lib/typescript/shared/providers/screen/gestures/gestures.provider.d.ts.map +1 -1
  255. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.d.ts.map +1 -1
  256. package/lib/typescript/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.d.ts +2 -1
  257. package/lib/typescript/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.d.ts.map +1 -1
  258. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.d.ts.map +1 -1
  259. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-release.d.ts.map +1 -1
  260. package/lib/typescript/shared/providers/screen/gestures/types.d.ts +1 -9
  261. package/lib/typescript/shared/providers/screen/gestures/types.d.ts.map +1 -1
  262. package/lib/typescript/shared/providers/screen/styles/helpers/transition-visual-state.d.ts +18 -0
  263. package/lib/typescript/shared/providers/screen/styles/helpers/transition-visual-state.d.ts.map +1 -0
  264. package/lib/typescript/shared/providers/screen/styles/helpers/visibility-gate.d.ts +2 -2
  265. package/lib/typescript/shared/providers/screen/styles/helpers/visibility-gate.d.ts.map +1 -1
  266. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
  267. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  268. package/lib/typescript/shared/stores/bounds/internals/links.d.ts +1 -1
  269. package/lib/typescript/shared/stores/bounds/internals/links.d.ts.map +1 -1
  270. package/lib/typescript/shared/stores/scroll.store.d.ts +7 -0
  271. package/lib/typescript/shared/stores/scroll.store.d.ts.map +1 -1
  272. package/lib/typescript/shared/stores/system.store.d.ts +5 -0
  273. package/lib/typescript/shared/stores/system.store.d.ts.map +1 -1
  274. package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts +6 -1
  275. package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts.map +1 -1
  276. package/lib/typescript/shared/utils/animation/animate.d.ts +2 -2
  277. package/lib/typescript/shared/utils/animation/animate.d.ts.map +1 -1
  278. package/lib/typescript/shared/utils/animation/spring/spring.d.ts +2 -2
  279. package/lib/typescript/shared/utils/animation/spring/spring.d.ts.map +1 -1
  280. package/lib/typescript/shared/utils/animation/spring/springUtils.d.ts +3 -0
  281. package/lib/typescript/shared/utils/animation/spring/springUtils.d.ts.map +1 -1
  282. package/lib/typescript/shared/utils/animation/state.d.ts +6 -0
  283. package/lib/typescript/shared/utils/animation/state.d.ts.map +1 -1
  284. package/lib/typescript/shared/utils/bounds/navigation/reveal/math.d.ts +12 -1
  285. package/lib/typescript/shared/utils/bounds/navigation/reveal/math.d.ts.map +1 -1
  286. package/lib/typescript/shared/utils/bounds/navigation/zoom/build.d.ts.map +1 -1
  287. package/lib/typescript/shared/utils/bounds/navigation/zoom/config.d.ts +2 -2
  288. package/lib/typescript/shared/utils/bounds/navigation/zoom/config.d.ts.map +1 -1
  289. package/lib/typescript/shared/utils/bounds/navigation/zoom/drag.d.ts +2 -11
  290. package/lib/typescript/shared/utils/bounds/navigation/zoom/drag.d.ts.map +1 -1
  291. package/lib/typescript/shared/utils/bounds/navigation/zoom/helpers.d.ts +7 -2
  292. package/lib/typescript/shared/utils/bounds/navigation/zoom/helpers.d.ts.map +1 -1
  293. package/lib/typescript/shared/utils/bounds/navigation/zoom/mask.d.ts +3 -1
  294. package/lib/typescript/shared/utils/bounds/navigation/zoom/mask.d.ts.map +1 -1
  295. package/lib/typescript/shared/utils/bounds/navigation/zoom/targets.d.ts +6 -0
  296. package/lib/typescript/shared/utils/bounds/navigation/zoom/targets.d.ts.map +1 -1
  297. package/package.json +2 -2
  298. package/src/shared/animation/snap-to.ts +5 -0
  299. package/src/shared/components/boundary/components/boundary-target.tsx +37 -23
  300. package/src/shared/components/boundary/create-boundary-component.tsx +29 -3
  301. package/src/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.ts +11 -0
  302. package/src/shared/components/boundary/hooks/use-boundary-measurement.ts +3 -9
  303. package/src/shared/components/boundary/index.tsx +4 -8
  304. package/src/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts +73 -275
  305. package/src/shared/components/boundary/portal/components/boundary-content-portal/index.tsx +31 -12
  306. package/src/shared/components/boundary/portal/components/boundary-portal/components/host.tsx +2 -12
  307. package/src/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.tsx +66 -64
  308. package/src/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.ts +2 -9
  309. package/src/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +73 -186
  310. package/src/shared/components/boundary/portal/components/boundary-portal/index.tsx +72 -12
  311. package/src/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.ts +0 -1
  312. package/src/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.ts +2 -39
  313. package/src/shared/components/boundary/portal/utils/handoff-target.ts +48 -0
  314. package/src/shared/components/boundary/portal/utils/resolve-portal.ts +26 -18
  315. package/src/shared/components/boundary/portal/utils/teleport-control.ts +0 -12
  316. package/src/shared/components/boundary/providers/boundary-root.provider.tsx +28 -80
  317. package/src/shared/components/boundary/utils/refresh-signals.ts +8 -0
  318. package/src/shared/components/boundary/utils/resolve-boundary-target.tsx +39 -0
  319. package/src/shared/components/masked-view.tsx +20 -4
  320. package/src/shared/components/screen-container/layers/backdrop.tsx +3 -1
  321. package/src/shared/components/screen-container/layers/maybe-masked-navigation-container.tsx +14 -4
  322. package/src/shared/components/screen-lifecycle/hooks/use-transition-start-controller.ts +2 -0
  323. package/src/shared/configs/index.ts +2 -1
  324. package/src/shared/configs/specs.ts +23 -0
  325. package/src/shared/providers/helpers/measured-bounds-writes.ts +1 -0
  326. package/src/shared/providers/screen/gestures/gestures.provider.tsx +2 -10
  327. package/src/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.ts +1 -0
  328. package/src/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.ts +74 -3
  329. package/src/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.ts +1 -0
  330. package/src/shared/providers/screen/gestures/pinch/behavior/pinch-release.ts +2 -4
  331. package/src/shared/providers/screen/gestures/types.ts +0 -14
  332. package/src/shared/providers/screen/styles/helpers/transition-visual-state.ts +44 -0
  333. package/src/shared/providers/screen/styles/helpers/visibility-gate.ts +17 -7
  334. package/src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +30 -15
  335. package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +14 -13
  336. package/src/shared/stores/bounds/internals/links.ts +13 -2
  337. package/src/shared/stores/scroll.store.ts +23 -0
  338. package/src/shared/stores/system.store.ts +8 -0
  339. package/src/shared/utils/animation/animate-to-progress.ts +59 -28
  340. package/src/shared/utils/animation/animate.ts +18 -2
  341. package/src/shared/utils/animation/spring/spring.ts +36 -1
  342. package/src/shared/utils/animation/spring/springUtils.ts +130 -0
  343. package/src/shared/utils/animation/state.ts +8 -0
  344. package/src/shared/utils/bounds/navigation/reveal/math.ts +25 -5
  345. package/src/shared/utils/bounds/navigation/zoom/build.ts +85 -23
  346. package/src/shared/utils/bounds/navigation/zoom/config.ts +4 -3
  347. package/src/shared/utils/bounds/navigation/zoom/drag.ts +3 -42
  348. package/src/shared/utils/bounds/navigation/zoom/helpers.ts +9 -18
  349. package/src/shared/utils/bounds/navigation/zoom/mask.ts +4 -1
  350. package/src/shared/utils/bounds/navigation/zoom/targets.ts +59 -1
  351. package/lib/commonjs/shared/components/boundary/hooks/use-register-target.js +0 -32
  352. package/lib/commonjs/shared/components/boundary/hooks/use-register-target.js.map +0 -1
  353. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js +0 -51
  354. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js.map +0 -1
  355. package/lib/commonjs/shared/components/boundary/portal/utils/ownership.js +0 -217
  356. package/lib/commonjs/shared/components/boundary/portal/utils/ownership.js.map +0 -1
  357. package/lib/commonjs/shared/components/boundary/portal/utils/shallow-equal.js +0 -29
  358. package/lib/commonjs/shared/components/boundary/portal/utils/shallow-equal.js.map +0 -1
  359. package/lib/commonjs/shared/components/boundary/portal/utils/visible-host.js +0 -25
  360. package/lib/commonjs/shared/components/boundary/portal/utils/visible-host.js.map +0 -1
  361. package/lib/commonjs/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js +0 -64
  362. package/lib/commonjs/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js.map +0 -1
  363. package/lib/commonjs/shared/providers/screen/gestures/rotation/behavior/rotation-lifecycle.js +0 -21
  364. package/lib/commonjs/shared/providers/screen/gestures/rotation/behavior/rotation-lifecycle.js.map +0 -1
  365. package/lib/commonjs/shared/providers/screen/gestures/rotation/behavior/use-rotation-behavior.js +0 -29
  366. package/lib/commonjs/shared/providers/screen/gestures/rotation/behavior/use-rotation-behavior.js.map +0 -1
  367. package/lib/commonjs/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.js +0 -38
  368. package/lib/commonjs/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.js.map +0 -1
  369. package/lib/commonjs/shared/providers/screen/styles/helpers/opening-phase.js +0 -32
  370. package/lib/commonjs/shared/providers/screen/styles/helpers/opening-phase.js.map +0 -1
  371. package/lib/module/shared/components/boundary/hooks/use-register-target.js +0 -27
  372. package/lib/module/shared/components/boundary/hooks/use-register-target.js.map +0 -1
  373. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js +0 -46
  374. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js.map +0 -1
  375. package/lib/module/shared/components/boundary/portal/utils/ownership.js +0 -210
  376. package/lib/module/shared/components/boundary/portal/utils/ownership.js.map +0 -1
  377. package/lib/module/shared/components/boundary/portal/utils/shallow-equal.js +0 -24
  378. package/lib/module/shared/components/boundary/portal/utils/shallow-equal.js.map +0 -1
  379. package/lib/module/shared/components/boundary/portal/utils/visible-host.js +0 -20
  380. package/lib/module/shared/components/boundary/portal/utils/visible-host.js.map +0 -1
  381. package/lib/module/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js +0 -59
  382. package/lib/module/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js.map +0 -1
  383. package/lib/module/shared/providers/screen/gestures/rotation/behavior/rotation-lifecycle.js +0 -15
  384. package/lib/module/shared/providers/screen/gestures/rotation/behavior/rotation-lifecycle.js.map +0 -1
  385. package/lib/module/shared/providers/screen/gestures/rotation/behavior/use-rotation-behavior.js +0 -24
  386. package/lib/module/shared/providers/screen/gestures/rotation/behavior/use-rotation-behavior.js.map +0 -1
  387. package/lib/module/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.js +0 -33
  388. package/lib/module/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.js.map +0 -1
  389. package/lib/module/shared/providers/screen/styles/helpers/opening-phase.js +0 -26
  390. package/lib/module/shared/providers/screen/styles/helpers/opening-phase.js.map +0 -1
  391. package/lib/typescript/shared/components/boundary/hooks/use-register-target.d.ts +0 -10
  392. package/lib/typescript/shared/components/boundary/hooks/use-register-target.d.ts.map +0 -1
  393. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.d.ts +0 -13
  394. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.d.ts.map +0 -1
  395. package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts +0 -34
  396. package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts.map +0 -1
  397. package/lib/typescript/shared/components/boundary/portal/utils/shallow-equal.d.ts +0 -8
  398. package/lib/typescript/shared/components/boundary/portal/utils/shallow-equal.d.ts.map +0 -1
  399. package/lib/typescript/shared/components/boundary/portal/utils/visible-host.d.ts +0 -8
  400. package/lib/typescript/shared/components/boundary/portal/utils/visible-host.d.ts.map +0 -1
  401. package/lib/typescript/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.d.ts +0 -15
  402. package/lib/typescript/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.d.ts.map +0 -1
  403. package/lib/typescript/shared/providers/screen/gestures/rotation/behavior/rotation-lifecycle.d.ts +0 -4
  404. package/lib/typescript/shared/providers/screen/gestures/rotation/behavior/rotation-lifecycle.d.ts.map +0 -1
  405. package/lib/typescript/shared/providers/screen/gestures/rotation/behavior/use-rotation-behavior.d.ts +0 -5
  406. package/lib/typescript/shared/providers/screen/gestures/rotation/behavior/use-rotation-behavior.d.ts.map +0 -1
  407. package/lib/typescript/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.d.ts +0 -9
  408. package/lib/typescript/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.d.ts.map +0 -1
  409. package/lib/typescript/shared/providers/screen/styles/helpers/opening-phase.d.ts +0 -16
  410. package/lib/typescript/shared/providers/screen/styles/helpers/opening-phase.d.ts.map +0 -1
  411. package/src/shared/components/boundary/hooks/use-register-target.ts +0 -43
  412. package/src/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.tsx +0 -79
  413. package/src/shared/components/boundary/portal/utils/ownership.ts +0 -315
  414. package/src/shared/components/boundary/portal/utils/shallow-equal.ts +0 -25
  415. package/src/shared/components/boundary/portal/utils/visible-host.ts +0 -24
  416. package/src/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.ts +0 -88
  417. package/src/shared/providers/screen/gestures/rotation/behavior/rotation-lifecycle.ts +0 -19
  418. package/src/shared/providers/screen/gestures/rotation/behavior/use-rotation-behavior.ts +0 -47
  419. package/src/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.ts +0 -50
  420. package/src/shared/providers/screen/styles/helpers/opening-phase.ts +0 -25
@@ -3,9 +3,12 @@ import {
3
3
  EPSILON,
4
4
  NAVIGATION_MASK_ELEMENT_STYLE_ID,
5
5
  } from "../../../../constants";
6
+ import { getVisualScrollAxisDelta } from "../../../../stores/scroll.store";
7
+ import type { ScrollMetadataState } from "../../../../types/gesture.types";
6
8
  import { createBoundsAccessorCore } from "../../helpers/create-bounds-accessor-core";
9
+ import { computeContentTransformGeometry } from "../../helpers/geometry";
7
10
  import { getSourceBorderRadius } from "../helpers";
8
- import { resolveRevealContentBaseTransform } from "../reveal/math";
11
+ import { resolveRevealContentBaseTransformFromGeometry } from "../reveal/math";
9
12
  import {
10
13
  ZOOM_BACKDROP_MAX_OPACITY,
11
14
  ZOOM_BACKGROUND_SCALE,
@@ -16,7 +19,7 @@ import {
16
19
  ZOOM_UNFOCUSED_ELEMENT_CLOSE_OPACITY_RANGE,
17
20
  ZOOM_UNFOCUSED_ELEMENT_OPEN_OPACITY_RANGE,
18
21
  } from "./config";
19
- import { resolveZoomDragState, resolveZoomTrackedGestureScale } from "./drag";
22
+ import { resolveZoomDragState } from "./drag";
20
23
  import {
21
24
  resolveZoomBackdropOpacity,
22
25
  resolveZoomPinchFocalOffset,
@@ -27,6 +30,7 @@ import {
27
30
  ZOOM_NAVIGATION_MASK_BORDER_RADIUS,
28
31
  } from "./mask";
29
32
  import {
33
+ getZoomContentAnchor,
30
34
  getZoomContentTarget,
31
35
  resolveZoomTrackingContentTarget,
32
36
  } from "./targets";
@@ -91,6 +95,11 @@ export function buildZoomStyles({
91
95
  screenLayout,
92
96
  link,
93
97
  });
98
+ const zoomContentAnchor = getZoomContentAnchor({
99
+ explicitTarget: target,
100
+ screenLayout,
101
+ link,
102
+ });
94
103
  const trackingContentTarget = resolveZoomTrackingContentTarget({
95
104
  contentTarget: zoomContentTarget,
96
105
  link,
@@ -101,23 +110,31 @@ export function buildZoomStyles({
101
110
  return {};
102
111
  }
103
112
 
113
+ const isDismissing = active.gesture.dismissing === 1;
114
+ const dismissalTrackingGeometry = isDismissing
115
+ ? computeContentTransformGeometry({
116
+ start: sourceBounds,
117
+ end: trackingContentTarget,
118
+ entering: true,
119
+ dimensions: screenLayout,
120
+ anchor: zoomContentAnchor,
121
+ scaleMode: "uniform",
122
+ })
123
+ : null;
124
+ const dismissalCollapsedContentScale = dismissalTrackingGeometry
125
+ ? resolveRevealContentBaseTransformFromGeometry({
126
+ geometry: dismissalTrackingGeometry,
127
+ progress: 0,
128
+ }).scale
129
+ : 1;
104
130
  const drag = resolveZoomDragState({
105
131
  gesture: active.gesture,
106
132
  activeTransitionProgress,
107
133
  screenLayout,
108
- sourceBounds,
109
- trackingContentTarget,
134
+ collapsedContentScale: dismissalCollapsedContentScale,
110
135
  dragOptions: zoomOptions?.drag,
111
136
  });
112
137
 
113
- const trackedGestureScale = resolveZoomTrackedGestureScale({
114
- drag,
115
- activeTransitionProgress,
116
- screenLayout,
117
- sourceBounds,
118
- trackingContentTarget,
119
- });
120
-
121
138
  const focalGesture = drag.isDismissing
122
139
  ? active.gesture.handoff
123
140
  : active.gesture;
@@ -128,7 +145,7 @@ export function buildZoomStyles({
128
145
  ? resolveZoomPinchFocalOffset({
129
146
  gestureScale: drag.isDismissing
130
147
  ? focalGesture.scale
131
- : trackedGestureScale,
148
+ : drag.gestureScale,
132
149
  pinchOriginX: focalGesture.pinchOriginX,
133
150
  pinchOriginY: focalGesture.pinchOriginY,
134
151
  progress: focalProgress,
@@ -138,6 +155,28 @@ export function buildZoomStyles({
138
155
  : { x: 0, y: 0 };
139
156
 
140
157
  if (focused) {
158
+ const capturedSourceScroll = (
159
+ sourceBounds as typeof sourceBounds & {
160
+ scroll?: ScrollMetadataState | null;
161
+ }
162
+ ).scroll;
163
+ const liveSourceScroll = props.inactive?.layouts.scroll;
164
+ const sourceScrollWeight =
165
+ keepFocusedVisible && (active.entering || active.closing)
166
+ ? 1 - Math.min(Math.max(activeTransitionProgress, 0), 1)
167
+ : 0;
168
+ const sourceScrollDeltaX =
169
+ getVisualScrollAxisDelta(
170
+ liveSourceScroll,
171
+ capturedSourceScroll,
172
+ "horizontal",
173
+ ) * sourceScrollWeight;
174
+ const sourceScrollDeltaY =
175
+ getVisualScrollAxisDelta(
176
+ liveSourceScroll,
177
+ capturedSourceScroll,
178
+ "vertical",
179
+ ) * sourceScrollWeight;
141
180
  const sourceBorderRadius = getSourceBorderRadius(link);
142
181
  const navigationMaskEnabled = current.options.navigationMaskEnabled;
143
182
  const backdropOpacity = resolveZoomBackdropOpacity({
@@ -149,7 +188,7 @@ export function buildZoomStyles({
149
188
 
150
189
  const contentRaw = scopedBounds.values({
151
190
  scaleMode: ZOOM_SHARED_OPTIONS.scaleMode,
152
- anchor: target === "bound" ? "center" : ZOOM_SHARED_OPTIONS.anchor,
191
+ anchor: zoomContentAnchor,
153
192
  method: "content",
154
193
  target: zoomContentTarget,
155
194
  progress: transitionProgress,
@@ -173,11 +212,13 @@ export function buildZoomStyles({
173
212
  const contentTranslateX =
174
213
  contentBaseTranslateX +
175
214
  drag.dragX +
176
- pinchFocalOffset.x * contentBaseScale;
215
+ pinchFocalOffset.x * contentBaseScale -
216
+ sourceScrollDeltaX;
177
217
  const contentTranslateY =
178
218
  contentBaseTranslateY +
179
219
  drag.dragY +
180
- pinchFocalOffset.y * contentBaseScale;
220
+ pinchFocalOffset.y * contentBaseScale -
221
+ sourceScrollDeltaY;
181
222
  const contentScale = drag.isDismissing
182
223
  ? drag.dismissContentScale
183
224
  : contentBaseScale * drag.gestureScale;
@@ -222,6 +263,7 @@ export function buildZoomStyles({
222
263
  sourceBorderRadius,
223
264
  expandedBorderRadius,
224
265
  active,
266
+ anchor: zoomContentAnchor,
225
267
  })
226
268
  : {},
227
269
  };
@@ -270,19 +312,39 @@ export function buildZoomStyles({
270
312
  };
271
313
  }
272
314
 
273
- const trackedContentBaseScale = resolveRevealContentBaseTransform({
274
- progress: activeTransitionProgress,
275
- sourceBounds,
276
- destinationBounds: trackingContentTarget,
277
- screenLayout,
278
- }).scale;
315
+ const trackingGeometry =
316
+ dismissalTrackingGeometry ??
317
+ computeContentTransformGeometry({
318
+ start: sourceBounds,
319
+ end: trackingContentTarget,
320
+ entering: true,
321
+ dimensions: screenLayout,
322
+ anchor: zoomContentAnchor,
323
+ scaleMode: "uniform",
324
+ });
325
+ const trackedContentBaseTransform =
326
+ resolveRevealContentBaseTransformFromGeometry({
327
+ geometry: trackingGeometry,
328
+ progress: activeTransitionProgress,
329
+ });
330
+ const collapsedContentScale = drag.isDismissing
331
+ ? dismissalCollapsedContentScale
332
+ : resolveRevealContentBaseTransformFromGeometry({
333
+ geometry: trackingGeometry,
334
+ progress: 0,
335
+ }).scale;
336
+ const trackedGestureScale = drag.isDismissing
337
+ ? drag.dismissContentScale / trackedContentBaseTransform.scale
338
+ : drag.gestureScale;
339
+ const trackedContentBaseScale = trackedContentBaseTransform.scale;
279
340
  const trackedDragX =
280
341
  drag.dragX + pinchFocalOffset.x * trackedContentBaseScale;
281
342
  const trackedDragY =
282
343
  drag.dragY + pinchFocalOffset.y * trackedContentBaseScale;
283
344
 
284
345
  const trackedSourceElement = resolveZoomTrackedSourceTransform({
285
- progress: activeTransitionProgress,
346
+ contentBaseTransform: trackedContentBaseTransform,
347
+ collapsedContentScale,
286
348
  sourceBounds,
287
349
  destinationBounds: trackingContentTarget,
288
350
  screenLayout,
@@ -9,10 +9,11 @@ export const ZOOM_BACKGROUND_SCALE = 0.9375;
9
9
  export const ZOOM_BACKDROP_MAX_OPACITY = 0.45;
10
10
  // Geometry-aligned native frames reach their darkest point around here.
11
11
  export const ZOOM_SCREEN_A_FADE_END = 0.54;
12
- // Open uses a tight owner handoff after red has traveled about one quarter.
13
- export const ZOOM_FOCUSED_ELEMENT_OPEN_OPACITY_RANGE = [0, 0.4, 0, 1] as const;
12
+ // Native starts revealing the destination immediately while the source begins
13
+ // handing ownership over in the first tenth of the opening travel.
14
+ export const ZOOM_FOCUSED_ELEMENT_OPEN_OPACITY_RANGE = [0, 0.28, 0, 1] as const;
14
15
  export const ZOOM_UNFOCUSED_ELEMENT_OPEN_OPACITY_RANGE = [
15
- 1.27, 1.4, 1, 0,
16
+ 1.08, 1.32, 1, 0,
16
17
  ] as const;
17
18
  // On close, red is prepared behind opaque blue before blue fades away.
18
19
  export const ZOOM_FOCUSED_ELEMENT_CLOSE_OPACITY_RANGE = [
@@ -1,11 +1,9 @@
1
- import type { MeasuredDimensions } from "react-native-reanimated";
2
1
  import { EPSILON } from "../../../../constants";
3
2
  import type {
4
3
  BoundsInterpolationProps,
5
4
  BoundsNavigationZoomDragOptions,
6
5
  } from "../../../../types/bounds.types";
7
6
  import type { Layout } from "../../../../types/screen.types";
8
- import { resolveRevealContentBaseTransform } from "../reveal/math";
9
7
  import { ZOOM_DISMISS_VELOCITY_DEPTH } from "./config";
10
8
 
11
9
  const ZOOM_DRAG_SCALE_EXPONENT = 2;
@@ -169,15 +167,13 @@ export function resolveZoomDragState({
169
167
  gesture,
170
168
  activeTransitionProgress,
171
169
  screenLayout,
172
- sourceBounds,
173
- trackingContentTarget,
170
+ collapsedContentScale,
174
171
  dragOptions,
175
172
  }: {
176
173
  gesture: ZoomGesture;
177
174
  activeTransitionProgress: number;
178
175
  screenLayout: Layout;
179
- sourceBounds: MeasuredDimensions;
180
- trackingContentTarget: MeasuredDimensions;
176
+ collapsedContentScale: number;
181
177
  dragOptions?: BoundsNavigationZoomDragOptions;
182
178
  }): ZoomDragState {
183
179
  "worklet";
@@ -266,16 +262,10 @@ export function resolveZoomDragState({
266
262
  let dismissContentScale = gestureScale;
267
263
 
268
264
  if (isDismissing) {
269
- const targetContentScale = resolveRevealContentBaseTransform({
270
- progress: 0,
271
- sourceBounds,
272
- destinationBounds: trackingContentTarget,
273
- screenLayout,
274
- }).scale;
275
265
  dismissContentScale = resolveZoomDismissContentScale({
276
266
  transitionRemaining: activeTransitionProgress,
277
267
  releaseScale: gestureScale,
278
- targetScale: targetContentScale,
268
+ targetScale: collapsedContentScale,
279
269
  velocity: gestureHandoff.velocity,
280
270
  velocityDepth:
281
271
  ZOOM_DISMISS_VELOCITY_DEPTH *
@@ -296,32 +286,3 @@ export function resolveZoomDragState({
296
286
  rotation,
297
287
  };
298
288
  }
299
-
300
- export function resolveZoomTrackedGestureScale({
301
- drag,
302
- activeTransitionProgress,
303
- screenLayout,
304
- sourceBounds,
305
- trackingContentTarget,
306
- }: {
307
- drag: ZoomDragState;
308
- activeTransitionProgress: number;
309
- screenLayout: Layout;
310
- sourceBounds: MeasuredDimensions;
311
- trackingContentTarget: MeasuredDimensions;
312
- }) {
313
- "worklet";
314
-
315
- if (!drag.isDismissing) {
316
- return drag.gestureScale;
317
- }
318
-
319
- const trackedContentBaseScale = resolveRevealContentBaseTransform({
320
- progress: activeTransitionProgress,
321
- sourceBounds,
322
- destinationBounds: trackingContentTarget,
323
- screenLayout,
324
- }).scale;
325
-
326
- return drag.dismissContentScale / trackedContentBaseScale;
327
- }
@@ -1,10 +1,7 @@
1
1
  import type { MeasuredDimensions } from "react-native-reanimated";
2
2
  import { EPSILON } from "../../../../constants";
3
3
  import type { Layout } from "../../../../types/screen.types";
4
- import {
5
- resolveRevealContentBaseTransform,
6
- resolveTrackedSourceElementTransform,
7
- } from "../reveal/math";
4
+ import { resolveTrackedSourceElementTransform } from "../reveal/math";
8
5
 
9
6
  export function resolveZoomBackdropOpacity({
10
7
  transitionProgress,
@@ -64,20 +61,26 @@ export function resolveZoomPinchFocalOffset({
64
61
  }
65
62
 
66
63
  export function resolveZoomTrackedSourceTransform({
67
- progress,
68
64
  sourceBounds,
69
65
  destinationBounds,
70
66
  screenLayout,
67
+ contentBaseTransform,
68
+ collapsedContentScale,
71
69
  dragX,
72
70
  dragY,
73
71
  gestureScale,
74
72
  parentScale,
75
73
  rotation = 0,
76
74
  }: {
77
- progress: number;
78
75
  sourceBounds: MeasuredDimensions;
79
76
  destinationBounds: MeasuredDimensions;
80
77
  screenLayout: Layout;
78
+ contentBaseTransform: {
79
+ translateX: number;
80
+ translateY: number;
81
+ scale: number;
82
+ };
83
+ collapsedContentScale: number;
81
84
  dragX: number;
82
85
  dragY: number;
83
86
  gestureScale: number;
@@ -86,18 +89,6 @@ export function resolveZoomTrackedSourceTransform({
86
89
  }) {
87
90
  "worklet";
88
91
 
89
- const contentBaseTransform = resolveRevealContentBaseTransform({
90
- progress,
91
- sourceBounds,
92
- destinationBounds,
93
- screenLayout,
94
- });
95
- const collapsedContentScale = resolveRevealContentBaseTransform({
96
- progress: 0,
97
- sourceBounds,
98
- destinationBounds,
99
- screenLayout,
100
- }).scale;
101
92
  const contentScale = contentBaseTransform.scale * gestureScale;
102
93
  const safeCollapsedContentScale = Math.max(
103
94
  Math.abs(collapsedContentScale),
@@ -9,6 +9,7 @@ import type {
9
9
  BoundsScopedAccessor,
10
10
  } from "../../../../types/bounds.types";
11
11
  import type { Layout } from "../../../../types/screen.types";
12
+ import type { BoundsAnchor } from "../../types/options";
12
13
  import { toNumber } from "../helpers";
13
14
  import { DRAG_MASK_HEIGHT_COLLAPSE_END } from "../reveal/config";
14
15
  import {
@@ -36,6 +37,7 @@ interface ZoomNavigationMaskStyleProps {
36
37
  sourceBorderRadius: number;
37
38
  expandedBorderRadius: number;
38
39
  active: ScreenTransitionState;
40
+ anchor: BoundsAnchor;
39
41
  }
40
42
 
41
43
  export function resolveZoomNavigationMaskStyle({
@@ -49,12 +51,13 @@ export function resolveZoomNavigationMaskStyle({
49
51
  sourceBorderRadius,
50
52
  expandedBorderRadius,
51
53
  active,
54
+ anchor,
52
55
  }: ZoomNavigationMaskStyleProps): TransitionSlotStyle {
53
56
  "worklet";
54
57
 
55
58
  const maskRaw = scopedBounds.values({
56
59
  scaleMode: ZOOM_SHARED_OPTIONS.scaleMode,
57
- anchor: ZOOM_SHARED_OPTIONS.anchor,
60
+ anchor,
58
61
  method: "size",
59
62
  space: "absolute",
60
63
  target: "fullscreen",
@@ -4,6 +4,7 @@ import type {
4
4
  BoundsNavigationZoomOptions,
5
5
  } from "../../../../types/bounds.types";
6
6
  import type { Layout } from "../../../../types/screen.types";
7
+ import type { BoundsAnchor } from "../../types/options";
7
8
 
8
9
  type ZoomContentTarget = Exclude<
9
10
  BoundsNavigationZoomOptions["target"],
@@ -27,11 +28,36 @@ export function getZoomContentTarget({
27
28
 
28
29
  const sourceBounds = link.source?.bounds;
29
30
  const screenWidth = screenLayout.width;
31
+ const screenHeight = screenLayout.height;
30
32
 
31
- if (!sourceBounds || sourceBounds.width <= 0 || screenWidth <= 0) {
33
+ if (
34
+ !sourceBounds ||
35
+ sourceBounds.width <= 0 ||
36
+ sourceBounds.height <= 0 ||
37
+ screenWidth <= 0 ||
38
+ screenHeight <= 0
39
+ ) {
32
40
  return "fullscreen";
33
41
  }
34
42
 
43
+ const sourceAspectRatio = sourceBounds.width / sourceBounds.height;
44
+ const screenAspectRatio = screenWidth / screenHeight;
45
+
46
+ // Zoom keeps one edge of the virtual destination attached to the source.
47
+ // A wide source fills the destination width and follows its top edge. A
48
+ // narrow source fills the destination height instead, so it follows the
49
+ // destination's leading edge rather than taking a long vertical path.
50
+ if (sourceAspectRatio < screenAspectRatio) {
51
+ return {
52
+ x: 0,
53
+ y: 0,
54
+ pageX: 0,
55
+ pageY: 0,
56
+ width: (sourceBounds.width / sourceBounds.height) * screenHeight,
57
+ height: screenHeight,
58
+ };
59
+ }
60
+
35
61
  const height = (sourceBounds.height / sourceBounds.width) * screenWidth;
36
62
 
37
63
  return {
@@ -44,6 +70,38 @@ export function getZoomContentTarget({
44
70
  };
45
71
  }
46
72
 
73
+ export function getZoomContentAnchor({
74
+ explicitTarget,
75
+ screenLayout,
76
+ link,
77
+ }: {
78
+ explicitTarget: BoundsNavigationZoomOptions["target"];
79
+ screenLayout: Layout;
80
+ link: BoundsLink;
81
+ }): BoundsAnchor {
82
+ "worklet";
83
+
84
+ if (explicitTarget !== undefined) {
85
+ return explicitTarget === "bound" ? "center" : "top";
86
+ }
87
+
88
+ const sourceBounds = link.source?.bounds;
89
+ if (
90
+ !sourceBounds ||
91
+ sourceBounds.width <= 0 ||
92
+ sourceBounds.height <= 0 ||
93
+ screenLayout.width <= 0 ||
94
+ screenLayout.height <= 0
95
+ ) {
96
+ return "top";
97
+ }
98
+
99
+ return sourceBounds.width / sourceBounds.height <
100
+ screenLayout.width / screenLayout.height
101
+ ? "leading"
102
+ : "top";
103
+ }
104
+
47
105
  export function resolveZoomTrackingContentTarget({
48
106
  contentTarget,
49
107
  link,
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useRegisterTarget = void 0;
7
- var _react = require("react");
8
- var _logger = require("../../../utils/logger");
9
- var _boundaryRoot = require("../providers/boundary-root.provider");
10
- const useRegisterTarget = ({
11
- targetAnimatedRef,
12
- preparedStyles,
13
- measurementRef
14
- }) => {
15
- const rootContext = (0, _boundaryRoot.useBoundaryRootContext)();
16
- const registerTargetRef = rootContext?.registerTargetRef;
17
- const unregisterTargetRef = rootContext?.unregisterTargetRef;
18
- (0, _react.useLayoutEffect)(() => {
19
- if (!registerTargetRef || !unregisterTargetRef) {
20
- if (__DEV__) {
21
- _logger.logger.warn(_boundaryRoot.TARGET_OUTSIDE_ROOT_WARNING);
22
- }
23
- return;
24
- }
25
- registerTargetRef(targetAnimatedRef, preparedStyles, measurementRef);
26
- return () => {
27
- unregisterTargetRef(targetAnimatedRef);
28
- };
29
- }, [registerTargetRef, unregisterTargetRef, targetAnimatedRef, preparedStyles, measurementRef]);
30
- };
31
- exports.useRegisterTarget = useRegisterTarget;
32
- //# sourceMappingURL=use-register-target.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_logger","_boundaryRoot","useRegisterTarget","targetAnimatedRef","preparedStyles","measurementRef","rootContext","useBoundaryRootContext","registerTargetRef","unregisterTargetRef","useLayoutEffect","__DEV__","logger","warn","TARGET_OUTSIDE_ROOT_WARNING","exports"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-register-target.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AAWO,MAAMG,iBAAiB,GAAGA,CAAC;EACjCC,iBAAiB;EACjBC,cAAc;EACdC;AACoB,CAAC,KAAK;EAC1B,MAAMC,WAAW,GAAG,IAAAC,oCAAsB,EAAC,CAAC;EAC5C,MAAMC,iBAAiB,GAAGF,WAAW,EAAEE,iBAAiB;EACxD,MAAMC,mBAAmB,GAAGH,WAAW,EAAEG,mBAAmB;EAC5D,IAAAC,sBAAe,EAAC,MAAM;IACrB,IAAI,CAACF,iBAAiB,IAAI,CAACC,mBAAmB,EAAE;MAC/C,IAAIE,OAAO,EAAE;QACZC,cAAM,CAACC,IAAI,CAACC,yCAA2B,CAAC;MACzC;MACA;IACD;IAEAN,iBAAiB,CAACL,iBAAiB,EAAEC,cAAc,EAAEC,cAAc,CAAC;IACpE,OAAO,MAAM;MACZI,mBAAmB,CAACN,iBAAiB,CAAC;IACvC,CAAC;EACF,CAAC,EAAE,CACFK,iBAAiB,EACjBC,mBAAmB,EACnBN,iBAAiB,EACjBC,cAAc,EACdC,cAAc,CACd,CAAC;AACH,CAAC;AAACU,OAAA,CAAAb,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -1,51 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.BoundaryPortalSlot = void 0;
7
- var _react = require("react");
8
- var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
9
- var _logger = require("../../../../../../utils/logger");
10
- var _teleport = require("../../../teleport");
11
- var _usePlaceholderStyles = require("../hooks/use-placeholder-styles");
12
- var _jsxRuntime = require("react/jsx-runtime");
13
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
- const AnimatedNativePortal = _teleport.NativePortal ? _reactNativeReanimated.default.createAnimatedComponent(_teleport.NativePortal) : null;
15
- const BoundaryPortalSlot = exports.BoundaryPortalSlot = /*#__PURE__*/(0, _react.memo)(function BoundaryPortalSlot({
16
- id,
17
- children,
18
- enabled,
19
- animatedProps,
20
- placeholderRef
21
- }) {
22
- const isPortalEnabled = enabled && _teleport.isTeleportAvailable;
23
- if (__DEV__ && enabled && !id) {
24
- _logger.logger.warnOnce("portal:missing-id", "A boundary portal was rendered without an id; rendering inline.");
25
- }
26
- const {
27
- handleOnLayout,
28
- placeholderStyle
29
- } = (0, _usePlaceholderStyles.usePlaceholderStyles)();
30
- if (isPortalEnabled && AnimatedNativePortal) {
31
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
32
- ref: placeholderRef,
33
- onLayout: ({
34
- nativeEvent: {
35
- layout
36
- }
37
- }) => (0, _reactNativeReanimated.runOnUI)(handleOnLayout)(layout),
38
- style: placeholderStyle,
39
- pointerEvents: _teleport.PORTAL_POINTER_EVENTS,
40
- collapsable: false,
41
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedNativePortal, {
42
- animatedProps: animatedProps,
43
- name: id,
44
- pointerEvents: _teleport.PORTAL_POINTER_EVENTS,
45
- children: children
46
- })
47
- });
48
- }
49
- return children;
50
- });
51
- //# sourceMappingURL=portal-slot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_reactNativeReanimated","_interopRequireWildcard","_logger","_teleport","_usePlaceholderStyles","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AnimatedNativePortal","TeleportPortal","Animated","createAnimatedComponent","BoundaryPortalSlot","exports","memo","id","children","enabled","animatedProps","placeholderRef","isPortalEnabled","isTeleportAvailable","__DEV__","logger","warnOnce","handleOnLayout","placeholderStyle","usePlaceholderStyles","jsx","View","ref","onLayout","nativeEvent","layout","runOnUI","style","pointerEvents","PORTAL_POINTER_EVENTS","collapsable","name"],"sourceRoot":"../../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-portal/components/portal-slot.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAOA,IAAAC,sBAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAKA,IAAAK,qBAAA,GAAAL,OAAA;AAAuE,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAE,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAK,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AASvE,MAAMkB,oBAAoB,GAAGC,sBAAc,GACxCC,8BAAQ,CAACC,uBAAuB,CAChCF,sBACD,CAAC,GACA,IAAI;AAUA,MAAMG,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,gBAAG,IAAAE,WAAI,EAAC,SAASF,kBAAkBA,CAAC;EAClEG,EAAE;EACFC,QAAQ;EACRC,OAAO;EACPC,aAAa;EACbC;AACwB,CAAC,EAAE;EAC3B,MAAMC,eAAe,GAAGH,OAAO,IAAII,6BAAmB;EAEtD,IAAIC,OAAO,IAAIL,OAAO,IAAI,CAACF,EAAE,EAAE;IAC9BQ,cAAM,CAACC,QAAQ,CACd,mBAAmB,EACnB,iEACD,CAAC;EACF;EAEA,MAAM;IAAEC,cAAc;IAAEC;EAAiB,CAAC,GAAG,IAAAC,0CAAoB,EAAC,CAAC;EAEnE,IAAIP,eAAe,IAAIZ,oBAAoB,EAAE;IAC5C,oBACC,IAAApB,WAAA,CAAAwC,GAAA,EAAC7C,sBAAA,CAAAgB,OAAQ,CAAC8B,IAAI;MACbC,GAAG,EAAEX,cAAe;MACpBY,QAAQ,EAAEA,CAAC;QAAEC,WAAW,EAAE;UAAEC;QAAO;MAAE,CAAC,KACrC,IAAAC,8BAAO,EAACT,cAAc,CAAC,CAACQ,MAAM,CAC9B;MACDE,KAAK,EAAET,gBAAiB;MACxBU,aAAa,EAAEC,+BAAsB;MACrCC,WAAW,EAAE,KAAM;MAAAtB,QAAA,eAEnB,IAAA5B,WAAA,CAAAwC,GAAA,EAACpB,oBAAoB;QACpBU,aAAa,EAAEA,aAAc;QAC7BqB,IAAI,EAAExB,EAAG;QACTqB,aAAa,EAAEC,+BAAsB;QAAArB,QAAA,EAEpCA;MAAQ,CACY;IAAC,CACT,CAAC;EAElB;EAEA,OAAOA,QAAQ;AAChB,CAAC,CAAC","ignoreList":[]}