react-native-screen-transitions 3.9.0-alpha.2 → 3.9.0-alpha.3

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 (421) hide show
  1. package/lib/commonjs/shared/components/boundary/components/boundary-target.js +14 -9
  2. package/lib/commonjs/shared/components/boundary/components/boundary-target.js.map +1 -1
  3. package/lib/commonjs/shared/components/boundary/create-boundary-component.js +66 -28
  4. package/lib/commonjs/shared/components/boundary/create-boundary-component.js.map +1 -1
  5. package/lib/commonjs/shared/components/boundary/hooks/{use-boundary-presence.js → lifecycles/use-boundary-presence.js} +8 -4
  6. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-boundary-presence.js.map +1 -0
  7. package/lib/commonjs/shared/components/boundary/hooks/{use-initial-destination-measurement.js → lifecycles/use-initial-destination-measurement.js} +27 -10
  8. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -0
  9. package/lib/commonjs/shared/components/boundary/hooks/{use-initial-source-measurement.js → lifecycles/use-initial-source-measurement.js} +5 -7
  10. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js.map +1 -0
  11. package/lib/commonjs/shared/components/boundary/hooks/{use-refresh-boundary.js → lifecycles/use-refresh-boundary.js} +4 -4
  12. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -0
  13. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js +14 -35
  14. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  15. package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js +5 -6
  16. package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js.map +1 -1
  17. package/lib/commonjs/shared/components/boundary/index.js +26 -29
  18. package/lib/commonjs/shared/components/boundary/index.js.map +1 -1
  19. package/lib/commonjs/shared/components/boundary/portal/components/boundary-local-portal-host.js +58 -0
  20. package/lib/commonjs/shared/components/boundary/portal/components/boundary-local-portal-host.js.map +1 -0
  21. package/lib/commonjs/shared/components/boundary/portal/components/host.js +20 -4
  22. package/lib/commonjs/shared/components/boundary/portal/components/host.js.map +1 -1
  23. package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js +53 -32
  24. package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js.map +1 -1
  25. package/lib/commonjs/shared/components/boundary/portal/components/portal.js +206 -96
  26. package/lib/commonjs/shared/components/boundary/portal/components/portal.js.map +1 -1
  27. package/lib/commonjs/shared/components/boundary/portal/hooks/use-host-measurement.js +14 -2
  28. package/lib/commonjs/shared/components/boundary/portal/hooks/use-host-measurement.js.map +1 -1
  29. package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js +5 -44
  30. package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js.map +1 -1
  31. package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js +37 -5
  32. package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -1
  33. package/lib/commonjs/shared/components/boundary/portal/teleport.js +15 -2
  34. package/lib/commonjs/shared/components/boundary/portal/teleport.js.map +1 -1
  35. package/lib/commonjs/shared/components/boundary/portal/utils/has-local-slot.js +18 -0
  36. package/lib/commonjs/shared/components/boundary/portal/utils/has-local-slot.js.map +1 -0
  37. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js +10 -3
  38. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js.map +1 -1
  39. package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js +28 -49
  40. package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js.map +1 -1
  41. package/lib/commonjs/shared/components/boundary/portal/utils/ownership.js +254 -0
  42. package/lib/commonjs/shared/components/boundary/portal/utils/ownership.js.map +1 -0
  43. package/lib/commonjs/shared/components/boundary/portal/utils/resolve-portal.js +38 -0
  44. package/lib/commonjs/shared/components/boundary/portal/utils/resolve-portal.js.map +1 -0
  45. package/lib/commonjs/shared/components/boundary/portal/utils/shallow-equal.js +29 -0
  46. package/lib/commonjs/shared/components/boundary/portal/utils/shallow-equal.js.map +1 -0
  47. package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js +10 -1
  48. package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js.map +1 -1
  49. package/lib/commonjs/shared/components/boundary/portal/utils/visible-host.js +25 -0
  50. package/lib/commonjs/shared/components/boundary/portal/utils/visible-host.js.map +1 -0
  51. package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js +6 -7
  52. package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
  53. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js +1 -22
  54. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js.map +1 -1
  55. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js +0 -21
  56. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js.map +1 -1
  57. package/lib/commonjs/shared/components/boundary/utils/source-signals.js +4 -9
  58. package/lib/commonjs/shared/components/boundary/utils/source-signals.js.map +1 -1
  59. package/lib/commonjs/shared/index.js.map +1 -1
  60. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js +6 -3
  61. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  62. package/lib/commonjs/shared/providers/screen/animation/helpers/derivations.js +1 -0
  63. package/lib/commonjs/shared/providers/screen/animation/helpers/derivations.js.map +1 -1
  64. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js +1 -0
  65. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  66. package/lib/commonjs/shared/providers/screen/styles/helpers/compose-slot-style.js +95 -0
  67. package/lib/commonjs/shared/providers/screen/styles/helpers/compose-slot-style.js.map +1 -0
  68. package/lib/commonjs/shared/providers/screen/styles/helpers/normalize-slots.js +30 -9
  69. package/lib/commonjs/shared/providers/screen/styles/helpers/normalize-slots.js.map +1 -1
  70. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +9 -3
  71. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  72. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.js +2 -0
  73. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.js.map +1 -1
  74. package/lib/commonjs/shared/providers/screen/styles/hooks/slot-resolvers.js +96 -0
  75. package/lib/commonjs/shared/providers/screen/styles/hooks/slot-resolvers.js.map +1 -0
  76. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +16 -3
  77. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  78. package/lib/commonjs/shared/providers/screen/styles/index.js +16 -3
  79. package/lib/commonjs/shared/providers/screen/styles/index.js.map +1 -1
  80. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js +22 -51
  81. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js.map +1 -1
  82. package/lib/commonjs/shared/providers/screen/styles/stores/slot-references.store.js +53 -0
  83. package/lib/commonjs/shared/providers/screen/styles/stores/slot-references.store.js.map +1 -0
  84. package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js +22 -2
  85. package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
  86. package/lib/commonjs/shared/stores/bounds/internals/entries.js +11 -4
  87. package/lib/commonjs/shared/stores/bounds/internals/entries.js.map +1 -1
  88. package/lib/commonjs/shared/stores/bounds/internals/links.js +134 -51
  89. package/lib/commonjs/shared/stores/bounds/internals/links.js.map +1 -1
  90. package/lib/commonjs/shared/stores/bounds/internals/resolver.js +1 -3
  91. package/lib/commonjs/shared/stores/bounds/internals/resolver.js.map +1 -1
  92. package/lib/commonjs/shared/stores/system.store.js +5 -0
  93. package/lib/commonjs/shared/stores/system.store.js.map +1 -1
  94. package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js +10 -69
  95. package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
  96. package/lib/commonjs/shared/utils/bounds/helpers/styles/local-transform.js +59 -0
  97. package/lib/commonjs/shared/utils/bounds/helpers/styles/local-transform.js.map +1 -0
  98. package/lib/module/shared/components/boundary/components/boundary-target.js +12 -7
  99. package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -1
  100. package/lib/module/shared/components/boundary/create-boundary-component.js +67 -29
  101. package/lib/module/shared/components/boundary/create-boundary-component.js.map +1 -1
  102. package/lib/module/shared/components/boundary/hooks/{use-boundary-presence.js → lifecycles/use-boundary-presence.js} +8 -4
  103. package/lib/module/shared/components/boundary/hooks/lifecycles/use-boundary-presence.js.map +1 -0
  104. package/lib/module/shared/components/boundary/hooks/{use-initial-destination-measurement.js → lifecycles/use-initial-destination-measurement.js} +27 -10
  105. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -0
  106. package/lib/module/shared/components/boundary/hooks/{use-initial-source-measurement.js → lifecycles/use-initial-source-measurement.js} +5 -7
  107. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js.map +1 -0
  108. package/lib/module/shared/components/boundary/hooks/{use-refresh-boundary.js → lifecycles/use-refresh-boundary.js} +4 -4
  109. package/lib/module/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -0
  110. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js +15 -36
  111. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  112. package/lib/module/shared/components/boundary/hooks/use-measurer.js +5 -6
  113. package/lib/module/shared/components/boundary/hooks/use-measurer.js.map +1 -1
  114. package/lib/module/shared/components/boundary/index.js +26 -29
  115. package/lib/module/shared/components/boundary/index.js.map +1 -1
  116. package/lib/module/shared/components/boundary/portal/components/boundary-local-portal-host.js +53 -0
  117. package/lib/module/shared/components/boundary/portal/components/boundary-local-portal-host.js.map +1 -0
  118. package/lib/module/shared/components/boundary/portal/components/host.js +21 -5
  119. package/lib/module/shared/components/boundary/portal/components/host.js.map +1 -1
  120. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js +53 -32
  121. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js.map +1 -1
  122. package/lib/module/shared/components/boundary/portal/components/portal.js +212 -102
  123. package/lib/module/shared/components/boundary/portal/components/portal.js.map +1 -1
  124. package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js +15 -3
  125. package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js.map +1 -1
  126. package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js +4 -41
  127. package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js.map +1 -1
  128. package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js +35 -4
  129. package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -1
  130. package/lib/module/shared/components/boundary/portal/teleport.js +16 -2
  131. package/lib/module/shared/components/boundary/portal/teleport.js.map +1 -1
  132. package/lib/module/shared/components/boundary/portal/utils/has-local-slot.js +13 -0
  133. package/lib/module/shared/components/boundary/portal/utils/has-local-slot.js.map +1 -0
  134. package/lib/module/shared/components/boundary/portal/utils/naming.js +8 -2
  135. package/lib/module/shared/components/boundary/portal/utils/naming.js.map +1 -1
  136. package/lib/module/shared/components/boundary/portal/utils/offset-style.js +29 -49
  137. package/lib/module/shared/components/boundary/portal/utils/offset-style.js.map +1 -1
  138. package/lib/module/shared/components/boundary/portal/utils/ownership.js +246 -0
  139. package/lib/module/shared/components/boundary/portal/utils/ownership.js.map +1 -0
  140. package/lib/module/shared/components/boundary/portal/utils/resolve-portal.js +33 -0
  141. package/lib/module/shared/components/boundary/portal/utils/resolve-portal.js.map +1 -0
  142. package/lib/module/shared/components/boundary/portal/utils/shallow-equal.js +24 -0
  143. package/lib/module/shared/components/boundary/portal/utils/shallow-equal.js.map +1 -0
  144. package/lib/module/shared/components/boundary/portal/utils/teleport-control.js +8 -0
  145. package/lib/module/shared/components/boundary/portal/utils/teleport-control.js.map +1 -1
  146. package/lib/module/shared/components/boundary/portal/utils/visible-host.js +20 -0
  147. package/lib/module/shared/components/boundary/portal/utils/visible-host.js.map +1 -0
  148. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js +6 -7
  149. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
  150. package/lib/module/shared/components/boundary/utils/destination-signals.js +2 -23
  151. package/lib/module/shared/components/boundary/utils/destination-signals.js.map +1 -1
  152. package/lib/module/shared/components/boundary/utils/refresh-signals.js +0 -21
  153. package/lib/module/shared/components/boundary/utils/refresh-signals.js.map +1 -1
  154. package/lib/module/shared/components/boundary/utils/source-signals.js +4 -9
  155. package/lib/module/shared/components/boundary/utils/source-signals.js.map +1 -1
  156. package/lib/module/shared/index.js.map +1 -1
  157. package/lib/module/shared/providers/helpers/measured-bounds-writes.js +6 -3
  158. package/lib/module/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  159. package/lib/module/shared/providers/screen/animation/helpers/derivations.js +1 -0
  160. package/lib/module/shared/providers/screen/animation/helpers/derivations.js.map +1 -1
  161. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js +1 -0
  162. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  163. package/lib/module/shared/providers/screen/styles/helpers/compose-slot-style.js +89 -0
  164. package/lib/module/shared/providers/screen/styles/helpers/compose-slot-style.js.map +1 -0
  165. package/lib/module/shared/providers/screen/styles/helpers/normalize-slots.js +30 -9
  166. package/lib/module/shared/providers/screen/styles/helpers/normalize-slots.js.map +1 -1
  167. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +9 -3
  168. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  169. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.js +2 -0
  170. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.js.map +1 -1
  171. package/lib/module/shared/providers/screen/styles/hooks/slot-resolvers.js +87 -0
  172. package/lib/module/shared/providers/screen/styles/hooks/slot-resolvers.js.map +1 -0
  173. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +16 -3
  174. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  175. package/lib/module/shared/providers/screen/styles/index.js +2 -1
  176. package/lib/module/shared/providers/screen/styles/index.js.map +1 -1
  177. package/lib/module/shared/providers/screen/styles/slot.provider.js +22 -47
  178. package/lib/module/shared/providers/screen/styles/slot.provider.js.map +1 -1
  179. package/lib/module/shared/providers/screen/styles/stores/slot-references.store.js +47 -0
  180. package/lib/module/shared/providers/screen/styles/stores/slot-references.store.js.map +1 -0
  181. package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js +19 -1
  182. package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
  183. package/lib/module/shared/stores/bounds/internals/entries.js +11 -4
  184. package/lib/module/shared/stores/bounds/internals/entries.js.map +1 -1
  185. package/lib/module/shared/stores/bounds/internals/links.js +135 -53
  186. package/lib/module/shared/stores/bounds/internals/links.js.map +1 -1
  187. package/lib/module/shared/stores/bounds/internals/resolver.js +1 -3
  188. package/lib/module/shared/stores/bounds/internals/resolver.js.map +1 -1
  189. package/lib/module/shared/stores/system.store.js +5 -0
  190. package/lib/module/shared/stores/system.store.js.map +1 -1
  191. package/lib/module/shared/types/animation.types.js.map +1 -1
  192. package/lib/module/shared/utils/bounds/helpers/styles/compute.js +10 -69
  193. package/lib/module/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
  194. package/lib/module/shared/utils/bounds/helpers/styles/local-transform.js +52 -0
  195. package/lib/module/shared/utils/bounds/helpers/styles/local-transform.js.map +1 -0
  196. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts +1 -2
  197. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts.map +1 -1
  198. package/lib/typescript/component-stack/components/component-screen.d.ts +1 -1
  199. package/lib/typescript/component-stack/components/component-screen.d.ts.map +1 -1
  200. package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts +1 -2
  201. package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts.map +1 -1
  202. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +1 -1
  203. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts.map +1 -1
  204. package/lib/typescript/native-stack/views/NativeStackView.d.ts +1 -2
  205. package/lib/typescript/native-stack/views/NativeStackView.d.ts.map +1 -1
  206. package/lib/typescript/native-stack/views/useHeaderConfigProps.d.ts +2 -2
  207. package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts +1 -1
  208. package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts.map +1 -1
  209. package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts +1 -1
  210. package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts.map +1 -1
  211. package/lib/typescript/shared/components/activity/variants/activity-container.d.ts +1 -1
  212. package/lib/typescript/shared/components/activity/variants/activity-container.d.ts.map +1 -1
  213. package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts +1 -1
  214. package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts.map +1 -1
  215. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts +1 -1
  216. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts.map +1 -1
  217. package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts +0 -1
  218. package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts.map +1 -1
  219. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-boundary-presence.d.ts +11 -0
  220. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-boundary-presence.d.ts.map +1 -0
  221. package/lib/typescript/shared/components/boundary/hooks/{use-initial-destination-measurement.d.ts → lifecycles/use-initial-destination-measurement.d.ts} +2 -2
  222. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts.map +1 -0
  223. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.d.ts +8 -0
  224. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.d.ts.map +1 -0
  225. package/lib/typescript/shared/components/boundary/hooks/{use-refresh-boundary.d.ts → lifecycles/use-refresh-boundary.d.ts} +2 -2
  226. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.d.ts.map +1 -0
  227. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts +5 -9
  228. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts.map +1 -1
  229. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts +4 -3
  230. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts.map +1 -1
  231. package/lib/typescript/shared/components/boundary/index.d.ts +35 -24
  232. package/lib/typescript/shared/components/boundary/index.d.ts.map +1 -1
  233. package/lib/typescript/shared/components/boundary/portal/components/boundary-local-portal-host.d.ts +8 -0
  234. package/lib/typescript/shared/components/boundary/portal/components/boundary-local-portal-host.d.ts.map +1 -0
  235. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts +2 -2
  236. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts.map +1 -1
  237. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts +2 -2
  238. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts.map +1 -1
  239. package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts +1 -1
  240. package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts.map +1 -1
  241. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts +4 -3
  242. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts.map +1 -1
  243. package/lib/typescript/shared/components/boundary/portal/hooks/use-host-measurement.d.ts.map +1 -1
  244. package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts +0 -7
  245. package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts.map +1 -1
  246. package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts +16 -1
  247. package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts.map +1 -1
  248. package/lib/typescript/shared/components/boundary/portal/teleport.d.ts +1 -1
  249. package/lib/typescript/shared/components/boundary/portal/teleport.d.ts.map +1 -1
  250. package/lib/typescript/shared/components/boundary/portal/utils/has-local-slot.d.ts +3 -0
  251. package/lib/typescript/shared/components/boundary/portal/utils/has-local-slot.d.ts.map +1 -0
  252. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts +2 -1
  253. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts.map +1 -1
  254. package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts +16 -32
  255. package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts.map +1 -1
  256. package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts +35 -0
  257. package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts.map +1 -0
  258. package/lib/typescript/shared/components/boundary/portal/utils/resolve-portal.d.ts +12 -0
  259. package/lib/typescript/shared/components/boundary/portal/utils/resolve-portal.d.ts.map +1 -0
  260. package/lib/typescript/shared/components/boundary/portal/utils/shallow-equal.d.ts +8 -0
  261. package/lib/typescript/shared/components/boundary/portal/utils/shallow-equal.d.ts.map +1 -0
  262. package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts +4 -0
  263. package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts.map +1 -1
  264. package/lib/typescript/shared/components/boundary/portal/utils/visible-host.d.ts +8 -0
  265. package/lib/typescript/shared/components/boundary/portal/utils/visible-host.d.ts.map +1 -0
  266. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts +7 -12
  267. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
  268. package/lib/typescript/shared/components/boundary/types.d.ts +9 -36
  269. package/lib/typescript/shared/components/boundary/types.d.ts.map +1 -1
  270. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts.map +1 -1
  271. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts.map +1 -1
  272. package/lib/typescript/shared/components/boundary/utils/source-signals.d.ts +0 -1
  273. package/lib/typescript/shared/components/boundary/utils/source-signals.d.ts.map +1 -1
  274. package/lib/typescript/shared/components/create-transition-aware-component.d.ts +6 -5
  275. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  276. package/lib/typescript/shared/components/masked-view.d.ts +1 -1
  277. package/lib/typescript/shared/components/masked-view.d.ts.map +1 -1
  278. package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts +1 -1
  279. package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts.map +1 -1
  280. package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts +1 -1
  281. package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts.map +1 -1
  282. package/lib/typescript/shared/components/scene-view.d.ts +1 -1
  283. package/lib/typescript/shared/components/scene-view.d.ts.map +1 -1
  284. package/lib/typescript/shared/components/screen-container/index.d.ts +1 -1
  285. package/lib/typescript/shared/components/screen-container/index.d.ts.map +1 -1
  286. package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts +1 -1
  287. package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts.map +1 -1
  288. package/lib/typescript/shared/components/screen-container/layers/content.d.ts +1 -1
  289. package/lib/typescript/shared/components/screen-container/layers/content.d.ts.map +1 -1
  290. package/lib/typescript/shared/components/screen-container/layers/maybe-masked-navigation-container.d.ts +1 -1
  291. package/lib/typescript/shared/components/screen-container/layers/maybe-masked-navigation-container.d.ts.map +1 -1
  292. package/lib/typescript/shared/components/screen-container/layers/surface-container.d.ts +1 -1
  293. package/lib/typescript/shared/components/screen-container/layers/surface-container.d.ts.map +1 -1
  294. package/lib/typescript/shared/hooks/navigation/use-stack.d.ts +1 -1
  295. package/lib/typescript/shared/hooks/navigation/use-stack.d.ts.map +1 -1
  296. package/lib/typescript/shared/index.d.ts +711 -667
  297. package/lib/typescript/shared/index.d.ts.map +1 -1
  298. package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts +3 -3
  299. package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts.map +1 -1
  300. package/lib/typescript/shared/providers/screen/animation/helpers/derivations.d.ts +1 -0
  301. package/lib/typescript/shared/providers/screen/animation/helpers/derivations.d.ts.map +1 -1
  302. package/lib/typescript/shared/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
  303. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts +1 -1
  304. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  305. package/lib/typescript/shared/providers/screen/screen-composer.d.ts +1 -1
  306. package/lib/typescript/shared/providers/screen/screen-composer.d.ts.map +1 -1
  307. package/lib/typescript/shared/providers/screen/styles/components/floating-overlay-layer.d.ts +1 -1
  308. package/lib/typescript/shared/providers/screen/styles/components/floating-overlay-layer.d.ts.map +1 -1
  309. package/lib/typescript/shared/providers/screen/styles/helpers/compose-slot-style.d.ts +4 -0
  310. package/lib/typescript/shared/providers/screen/styles/helpers/compose-slot-style.d.ts.map +1 -0
  311. package/lib/typescript/shared/providers/screen/styles/helpers/normalize-slots.d.ts.map +1 -1
  312. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts.map +1 -1
  313. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.d.ts +2 -1
  314. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.d.ts.map +1 -1
  315. package/lib/typescript/shared/providers/screen/styles/hooks/slot-resolvers.d.ts +11 -0
  316. package/lib/typescript/shared/providers/screen/styles/hooks/slot-resolvers.d.ts.map +1 -0
  317. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts +4 -1
  318. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
  319. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +2 -2
  320. package/lib/typescript/shared/providers/screen/styles/index.d.ts +2 -1
  321. package/lib/typescript/shared/providers/screen/styles/index.d.ts.map +1 -1
  322. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts +5 -10
  323. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts.map +1 -1
  324. package/lib/typescript/shared/providers/screen/styles/stores/slot-references.store.d.ts +6 -0
  325. package/lib/typescript/shared/providers/screen/styles/stores/slot-references.store.d.ts.map +1 -0
  326. package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts +2 -0
  327. package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts.map +1 -1
  328. package/lib/typescript/shared/stores/bounds/internals/entries.d.ts.map +1 -1
  329. package/lib/typescript/shared/stores/bounds/internals/links.d.ts +4 -3
  330. package/lib/typescript/shared/stores/bounds/internals/links.d.ts.map +1 -1
  331. package/lib/typescript/shared/stores/bounds/internals/resolver.d.ts.map +1 -1
  332. package/lib/typescript/shared/stores/bounds/types.d.ts +9 -20
  333. package/lib/typescript/shared/stores/bounds/types.d.ts.map +1 -1
  334. package/lib/typescript/shared/stores/system.store.d.ts +1 -0
  335. package/lib/typescript/shared/stores/system.store.d.ts.map +1 -1
  336. package/lib/typescript/shared/types/animation.types.d.ts +7 -1
  337. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  338. package/lib/typescript/shared/utils/bounds/helpers/styles/compute.d.ts.map +1 -1
  339. package/lib/typescript/shared/utils/bounds/helpers/styles/local-transform.d.ts +6 -0
  340. package/lib/typescript/shared/utils/bounds/helpers/styles/local-transform.d.ts.map +1 -0
  341. package/package.json +1 -1
  342. package/src/shared/components/boundary/components/boundary-target.tsx +21 -7
  343. package/src/shared/components/boundary/create-boundary-component.tsx +92 -28
  344. package/src/shared/components/boundary/hooks/{use-boundary-presence.ts → lifecycles/use-boundary-presence.ts} +16 -5
  345. package/src/shared/components/boundary/hooks/{use-initial-destination-measurement.ts → lifecycles/use-initial-destination-measurement.ts} +40 -13
  346. package/src/shared/components/boundary/hooks/{use-initial-source-measurement.ts → lifecycles/use-initial-source-measurement.ts} +7 -9
  347. package/src/shared/components/boundary/hooks/{use-refresh-boundary.ts → lifecycles/use-refresh-boundary.ts} +6 -6
  348. package/src/shared/components/boundary/hooks/use-boundary-measurement.ts +15 -45
  349. package/src/shared/components/boundary/hooks/use-measurer.ts +9 -14
  350. package/src/shared/components/boundary/index.tsx +55 -29
  351. package/src/shared/components/boundary/portal/components/boundary-local-portal-host.tsx +66 -0
  352. package/src/shared/components/boundary/portal/components/host.tsx +20 -5
  353. package/src/shared/components/boundary/portal/components/portal-boundary-host.tsx +67 -52
  354. package/src/shared/components/boundary/portal/components/portal.tsx +280 -119
  355. package/src/shared/components/boundary/portal/hooks/use-host-measurement.ts +23 -2
  356. package/src/shared/components/boundary/portal/stores/host-registry.store.ts +4 -51
  357. package/src/shared/components/boundary/portal/stores/portal-boundary-host.store.ts +59 -6
  358. package/src/shared/components/boundary/portal/teleport.ts +28 -3
  359. package/src/shared/components/boundary/portal/utils/has-local-slot.ts +16 -0
  360. package/src/shared/components/boundary/portal/utils/naming.ts +11 -1
  361. package/src/shared/components/boundary/portal/utils/offset-style.ts +37 -139
  362. package/src/shared/components/boundary/portal/utils/ownership.ts +371 -0
  363. package/src/shared/components/boundary/portal/utils/resolve-portal.ts +50 -0
  364. package/src/shared/components/boundary/portal/utils/shallow-equal.ts +25 -0
  365. package/src/shared/components/boundary/portal/utils/teleport-control.ts +12 -0
  366. package/src/shared/components/boundary/portal/utils/visible-host.ts +24 -0
  367. package/src/shared/components/boundary/providers/boundary-root.provider.tsx +9 -18
  368. package/src/shared/components/boundary/types.ts +9 -39
  369. package/src/shared/components/boundary/utils/destination-signals.ts +1 -32
  370. package/src/shared/components/boundary/utils/refresh-signals.ts +0 -41
  371. package/src/shared/components/boundary/utils/source-signals.ts +5 -17
  372. package/src/shared/index.ts +0 -5
  373. package/src/shared/providers/helpers/measured-bounds-writes.ts +6 -11
  374. package/src/shared/providers/screen/animation/helpers/derivations.ts +3 -0
  375. package/src/shared/providers/screen/animation/helpers/pipeline.ts +1 -0
  376. package/src/shared/providers/screen/styles/helpers/compose-slot-style.ts +129 -0
  377. package/src/shared/providers/screen/styles/helpers/normalize-slots.ts +45 -8
  378. package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/index.ts +14 -2
  379. package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.ts +3 -0
  380. package/src/shared/providers/screen/styles/hooks/slot-resolvers.tsx +111 -0
  381. package/src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +21 -3
  382. package/src/shared/providers/screen/styles/index.tsx +8 -3
  383. package/src/shared/providers/screen/styles/slot.provider.tsx +36 -54
  384. package/src/shared/providers/screen/styles/stores/slot-references.store.ts +71 -0
  385. package/src/shared/stores/bounds/helpers/link-pairs.helpers.ts +24 -1
  386. package/src/shared/stores/bounds/internals/entries.ts +13 -5
  387. package/src/shared/stores/bounds/internals/links.ts +167 -85
  388. package/src/shared/stores/bounds/internals/resolver.ts +0 -2
  389. package/src/shared/stores/bounds/types.ts +10 -22
  390. package/src/shared/stores/system.store.ts +6 -0
  391. package/src/shared/types/animation.types.ts +8 -1
  392. package/src/shared/utils/bounds/helpers/styles/compute.ts +22 -124
  393. package/src/shared/utils/bounds/helpers/styles/local-transform.ts +86 -0
  394. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-presence.js.map +0 -1
  395. package/lib/commonjs/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +0 -1
  396. package/lib/commonjs/shared/components/boundary/hooks/use-initial-source-measurement.js.map +0 -1
  397. package/lib/commonjs/shared/components/boundary/hooks/use-refresh-boundary.js.map +0 -1
  398. package/lib/commonjs/shared/components/boundary/portal/resolve-portal.js +0 -36
  399. package/lib/commonjs/shared/components/boundary/portal/resolve-portal.js.map +0 -1
  400. package/lib/commonjs/shared/components/boundary/portal/utils/attachment.js +0 -40
  401. package/lib/commonjs/shared/components/boundary/portal/utils/attachment.js.map +0 -1
  402. package/lib/module/shared/components/boundary/hooks/use-boundary-presence.js.map +0 -1
  403. package/lib/module/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +0 -1
  404. package/lib/module/shared/components/boundary/hooks/use-initial-source-measurement.js.map +0 -1
  405. package/lib/module/shared/components/boundary/hooks/use-refresh-boundary.js.map +0 -1
  406. package/lib/module/shared/components/boundary/portal/resolve-portal.js +0 -31
  407. package/lib/module/shared/components/boundary/portal/resolve-portal.js.map +0 -1
  408. package/lib/module/shared/components/boundary/portal/utils/attachment.js +0 -35
  409. package/lib/module/shared/components/boundary/portal/utils/attachment.js.map +0 -1
  410. package/lib/typescript/shared/components/boundary/hooks/use-boundary-presence.d.ts +0 -9
  411. package/lib/typescript/shared/components/boundary/hooks/use-boundary-presence.d.ts.map +0 -1
  412. package/lib/typescript/shared/components/boundary/hooks/use-initial-destination-measurement.d.ts.map +0 -1
  413. package/lib/typescript/shared/components/boundary/hooks/use-initial-source-measurement.d.ts +0 -9
  414. package/lib/typescript/shared/components/boundary/hooks/use-initial-source-measurement.d.ts.map +0 -1
  415. package/lib/typescript/shared/components/boundary/hooks/use-refresh-boundary.d.ts.map +0 -1
  416. package/lib/typescript/shared/components/boundary/portal/resolve-portal.d.ts +0 -14
  417. package/lib/typescript/shared/components/boundary/portal/resolve-portal.d.ts.map +0 -1
  418. package/lib/typescript/shared/components/boundary/portal/utils/attachment.d.ts +0 -21
  419. package/lib/typescript/shared/components/boundary/portal/utils/attachment.d.ts.map +0 -1
  420. package/src/shared/components/boundary/portal/resolve-portal.ts +0 -40
  421. package/src/shared/components/boundary/portal/utils/attachment.ts +0 -48
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.stripBoundsLocalTransform = exports.getBoundsLocalTransform = exports.attachBoundsLocalTransform = exports.BOUNDS_LOCAL_TRANSFORM_STYLE_KEY = void 0;
7
+ const BOUNDS_LOCAL_TRANSFORM_STYLE_KEY = exports.BOUNDS_LOCAL_TRANSFORM_STYLE_KEY = "__screenTransitionsBoundsLocalTransform";
8
+ const getTransformFromPreparedStyle = style => {
9
+ "worklet";
10
+
11
+ if (style === null || style === undefined || typeof style !== "object" || Array.isArray(style)) {
12
+ return undefined;
13
+ }
14
+ const transform = style.transform;
15
+ return Array.isArray(transform) ? transform : undefined;
16
+ };
17
+ const attachBoundsLocalTransform = (slotStyle, localStyle) => {
18
+ "worklet";
19
+
20
+ const localTransform = getTransformFromPreparedStyle(localStyle);
21
+ if (!localTransform?.length) {
22
+ return slotStyle;
23
+ }
24
+ const next = {};
25
+ const source = slotStyle;
26
+ for (const key in source) {
27
+ next[key] = source[key];
28
+ }
29
+ next[BOUNDS_LOCAL_TRANSFORM_STYLE_KEY] = localTransform;
30
+ return next;
31
+ };
32
+ exports.attachBoundsLocalTransform = attachBoundsLocalTransform;
33
+ const getBoundsLocalTransform = style => {
34
+ "worklet";
35
+
36
+ if (!style) {
37
+ return undefined;
38
+ }
39
+ return style[BOUNDS_LOCAL_TRANSFORM_STYLE_KEY];
40
+ };
41
+ exports.getBoundsLocalTransform = getBoundsLocalTransform;
42
+ const stripBoundsLocalTransform = style => {
43
+ "worklet";
44
+
45
+ if (style[BOUNDS_LOCAL_TRANSFORM_STYLE_KEY] === undefined) {
46
+ return style;
47
+ }
48
+ const rest = {};
49
+ const source = style;
50
+ for (const key in source) {
51
+ if (key === BOUNDS_LOCAL_TRANSFORM_STYLE_KEY) {
52
+ continue;
53
+ }
54
+ rest[key] = source[key];
55
+ }
56
+ return rest;
57
+ };
58
+ exports.stripBoundsLocalTransform = stripBoundsLocalTransform;
59
+ //# sourceMappingURL=local-transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BOUNDS_LOCAL_TRANSFORM_STYLE_KEY","exports","getTransformFromPreparedStyle","style","undefined","Array","isArray","transform","attachBoundsLocalTransform","slotStyle","localStyle","localTransform","length","next","source","key","getBoundsLocalTransform","stripBoundsLocalTransform","rest"],"sourceRoot":"../../../../../../../src","sources":["shared/utils/bounds/helpers/styles/local-transform.ts"],"mappings":";;;;;;AAEO,MAAMA,gCAAgC,GAAAC,OAAA,CAAAD,gCAAA,GAC5C,yCAAyC;AAM1C,MAAME,6BAA6B,GAClCC,KAAc,IACwB;EACtC,SAAS;;EAET,IACCA,KAAK,KAAK,IAAI,IACdA,KAAK,KAAKC,SAAS,IACnB,OAAOD,KAAK,KAAK,QAAQ,IACzBE,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,EACnB;IACD,OAAOC,SAAS;EACjB;EAEA,MAAMG,SAAS,GAAIJ,KAAK,CAA6BI,SAAS;EAE9D,OAAOF,KAAK,CAACC,OAAO,CAACC,SAAS,CAAC,GAC3BA,SAAS,GACVH,SAAS;AACb,CAAC;AAEM,MAAMI,0BAA0B,GAAGA,CACzCC,SAAqB,EACrBC,UAAyC,KACzB;EAChB,SAAS;;EACT,MAAMC,cAAc,GAAGT,6BAA6B,CAACQ,UAAU,CAAC;EAEhE,IAAI,CAACC,cAAc,EAAEC,MAAM,EAAE;IAC5B,OAAOH,SAAS;EACjB;EAEA,MAAMI,IAA6B,GAAG,CAAC,CAAC;EACxC,MAAMC,MAAM,GAAGL,SAAoC;EAEnD,KAAK,MAAMM,GAAG,IAAID,MAAM,EAAE;IACzBD,IAAI,CAACE,GAAG,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC;EACxB;EAEAF,IAAI,CAACb,gCAAgC,CAAC,GAAGW,cAAc;EAEvD,OAAOE,IAAI;AACZ,CAAC;AAACZ,OAAA,CAAAO,0BAAA,GAAAA,0BAAA;AAEK,MAAMQ,uBAAuB,GACnCb,KAA6B,IACS;EACtC,SAAS;;EACT,IAAI,CAACA,KAAK,EAAE;IACX,OAAOC,SAAS;EACjB;EAEA,OAAQD,KAAK,CAA+BH,gCAAgC,CAAC;AAC9E,CAAC;AAACC,OAAA,CAAAe,uBAAA,GAAAA,uBAAA;AAEK,MAAMC,yBAAyB,GAAId,KAAiB,IAAiB;EAC3E,SAAS;;EACT,IACEA,KAAK,CAA+BH,gCAAgC,CAAC,KACtEI,SAAS,EACR;IACD,OAAOD,KAAK;EACb;EAEA,MAAMe,IAA6B,GAAG,CAAC,CAAC;EACxC,MAAMJ,MAAM,GAAGX,KAAgC;EAE/C,KAAK,MAAMY,GAAG,IAAID,MAAM,EAAE;IACzB,IAAIC,GAAG,KAAKf,gCAAgC,EAAE;MAC7C;IACD;IAEAkB,IAAI,CAACH,GAAG,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC;EACxB;EAEA,OAAOG,IAAI;AACZ,CAAC;AAACjB,OAAA,CAAAgB,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { memo, useLayoutEffect, useMemo } from "react";
4
4
  import Animated, { useAnimatedRef } from "react-native-reanimated";
5
+ import { useComposedSlotStyles, useSlotLayoutStyles } from "../../../providers/screen/styles";
5
6
  import { prepareStyleForBounds } from "../../../utils/bounds/helpers/styles/styles";
6
7
  import { logger } from "../../../utils/logger";
7
8
  import { Portal } from "../portal/components/portal";
@@ -18,12 +19,15 @@ export const BoundaryTarget = /*#__PURE__*/memo(function BoundaryTarget(props) {
18
19
  const registerTargetRef = rootContext?.registerTargetRef;
19
20
  const unregisterTargetRef = rootContext?.unregisterTargetRef;
20
21
  const isActiveTarget = rootContext?.activeTargetRef === targetAnimatedRef;
22
+ const portalRuntime = rootContext?.portalRuntime;
23
+ const shouldApplyAssociatedStyleInline = isActiveTarget && portalRuntime?.enabled !== true;
24
+ const shouldApplyPortalLayoutStyle = isActiveTarget && portalRuntime?.enabled === true;
25
+ const associatedTargetStyles = useComposedSlotStyles(rootContext?.boundTag.tag, style);
26
+ const portalLayoutStyle = useSlotLayoutStyles(rootContext?.boundTag.tag);
21
27
  const preparedStyles = useMemo(() => prepareStyleForBounds(style), [style]);
22
- // Portal'd content can be teleported into another screen's host; measuring
23
- // it there would capture its CURRENT (destination) position as the source
24
- // bounds. The portal placeholder keeps the layout slot at home, so it is
25
- // the truthful measurement surface whenever a portal is configured.
26
- const measurementRef = rootContext?.portal ? placeholderAnimatedRef : targetAnimatedRef;
28
+ // Teleported content can render outside its layout slot. The placeholder is
29
+ // the truthful measurement surface whenever runtime portal behavior is active.
30
+ const measurementRef = portalRuntime?.enabled ? placeholderAnimatedRef : targetAnimatedRef;
27
31
  useLayoutEffect(() => {
28
32
  if (!registerTargetRef || !unregisterTargetRef) {
29
33
  if (__DEV__) {
@@ -38,12 +42,13 @@ export const BoundaryTarget = /*#__PURE__*/memo(function BoundaryTarget(props) {
38
42
  }, [registerTargetRef, unregisterTargetRef, targetAnimatedRef, preparedStyles, measurementRef]);
39
43
  return /*#__PURE__*/_jsx(Portal, {
40
44
  id: rootContext?.boundTag.tag,
41
- mode: rootContext?.portal,
45
+ handoff: portalRuntime?.handoff,
46
+ escapeClipping: portalRuntime?.escapeClipping,
42
47
  placeholderRef: placeholderAnimatedRef,
43
48
  children: /*#__PURE__*/_jsx(Animated.View, {
44
49
  ...rest,
45
50
  ref: targetAnimatedRef,
46
- style: [style, isActiveTarget ? rootContext.associatedTargetStyles : undefined],
51
+ style: [style, shouldApplyAssociatedStyleInline ? associatedTargetStyles : undefined, shouldApplyPortalLayoutStyle ? portalLayoutStyle : undefined],
47
52
  collapsable: false
48
53
  })
49
54
  });
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useLayoutEffect","useMemo","Animated","useAnimatedRef","prepareStyleForBounds","logger","Portal","TARGET_OUTSIDE_ROOT_WARNING","useBoundaryRootContext","jsx","_jsx","BoundaryTarget","props","style","rest","targetAnimatedRef","placeholderAnimatedRef","rootContext","registerTargetRef","unregisterTargetRef","isActiveTarget","activeTargetRef","preparedStyles","measurementRef","portal","__DEV__","warn","id","boundTag","tag","mode","placeholderRef","children","View","ref","associatedTargetStyles","undefined","collapsable"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/components/boundary-target.tsx"],"mappings":";;AACA,SAASA,IAAI,EAAEC,eAAe,EAAEC,OAAO,QAAQ,OAAO;AAEtD,OAAOC,QAAQ,IAAIC,cAAc,QAAQ,yBAAyB;AAClE,SAASC,qBAAqB,QAAQ,6CAA6C;AACnF,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,MAAM,QAAQ,6BAA6B;AACpD,SACCC,2BAA2B,EAC3BC,sBAAsB,QAChB,qCAAqC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAI7C,OAAO,MAAMC,cAAc,gBAAGZ,IAAI,CAAC,SAASY,cAAcA,CACzDC,KAA0B,EACzB;EACD,MAAM;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGF,KAAK;EAChC,MAAMG,iBAAiB,GAAGZ,cAAc,CAAO,CAAC;EAChD,MAAMa,sBAAsB,GAAGb,cAAc,CAAO,CAAC;EACrD,MAAMc,WAAW,GAAGT,sBAAsB,CAAC,CAAC;EAC5C,MAAMU,iBAAiB,GAAGD,WAAW,EAAEC,iBAAiB;EACxD,MAAMC,mBAAmB,GAAGF,WAAW,EAAEE,mBAAmB;EAC5D,MAAMC,cAAc,GAAGH,WAAW,EAAEI,eAAe,KAAKN,iBAAiB;EACzE,MAAMO,cAAc,GAAGrB,OAAO,CAAC,MAAMG,qBAAqB,CAACS,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAC3E;EACA;EACA;EACA;EACA,MAAMU,cAAc,GAAGN,WAAW,EAAEO,MAAM,GACvCR,sBAAsB,GACtBD,iBAAiB;EAEpBf,eAAe,CAAC,MAAM;IACrB,IAAI,CAACkB,iBAAiB,IAAI,CAACC,mBAAmB,EAAE;MAC/C,IAAIM,OAAO,EAAE;QACZpB,MAAM,CAACqB,IAAI,CAACnB,2BAA2B,CAAC;MACzC;MACA;IACD;IAEAW,iBAAiB,CAACH,iBAAiB,EAAEO,cAAc,EAAEC,cAAc,CAAC;IACpE,OAAO,MAAM;MACZJ,mBAAmB,CAACJ,iBAAiB,CAAC;IACvC,CAAC;EACF,CAAC,EAAE,CACFG,iBAAiB,EACjBC,mBAAmB,EACnBJ,iBAAiB,EACjBO,cAAc,EACdC,cAAc,CACd,CAAC;EAEF,oBACCb,IAAA,CAACJ,MAAM;IACNqB,EAAE,EAAEV,WAAW,EAAEW,QAAQ,CAACC,GAAI;IAC9BC,IAAI,EAAEb,WAAW,EAAEO,MAAO;IAC1BO,cAAc,EAAEf,sBAAuB;IAAAgB,QAAA,eAEvCtB,IAAA,CAACR,QAAQ,CAAC+B,IAAI;MAAA,GACTnB,IAAI;MACRoB,GAAG,EAAEnB,iBAAkB;MACvBF,KAAK,EAAE,CACNA,KAAK,EACLO,cAAc,GAAGH,WAAW,CAACkB,sBAAsB,GAAGC,SAAS,CAC9D;MACFC,WAAW,EAAE;IAAM,CACnB;EAAC,CACK,CAAC;AAEX,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["memo","useLayoutEffect","useMemo","Animated","useAnimatedRef","useComposedSlotStyles","useSlotLayoutStyles","prepareStyleForBounds","logger","Portal","TARGET_OUTSIDE_ROOT_WARNING","useBoundaryRootContext","jsx","_jsx","BoundaryTarget","props","style","rest","targetAnimatedRef","placeholderAnimatedRef","rootContext","registerTargetRef","unregisterTargetRef","isActiveTarget","activeTargetRef","portalRuntime","shouldApplyAssociatedStyleInline","enabled","shouldApplyPortalLayoutStyle","associatedTargetStyles","boundTag","tag","portalLayoutStyle","preparedStyles","measurementRef","__DEV__","warn","id","handoff","escapeClipping","placeholderRef","children","View","ref","undefined","collapsable"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/components/boundary-target.tsx"],"mappings":";;AACA,SAASA,IAAI,EAAEC,eAAe,EAAEC,OAAO,QAAQ,OAAO;AAEtD,OAAOC,QAAQ,IAAIC,cAAc,QAAQ,yBAAyB;AAClE,SACCC,qBAAqB,EACrBC,mBAAmB,QACb,kCAAkC;AACzC,SAASC,qBAAqB,QAAQ,6CAA6C;AACnF,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,MAAM,QAAQ,6BAA6B;AACpD,SACCC,2BAA2B,EAC3BC,sBAAsB,QAChB,qCAAqC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAI7C,OAAO,MAAMC,cAAc,gBAAGd,IAAI,CAAC,SAASc,cAAcA,CACzDC,KAA0B,EACzB;EACD,MAAM;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGF,KAAK;EAChC,MAAMG,iBAAiB,GAAGd,cAAc,CAAO,CAAC;EAChD,MAAMe,sBAAsB,GAAGf,cAAc,CAAO,CAAC;EACrD,MAAMgB,WAAW,GAAGT,sBAAsB,CAAC,CAAC;EAC5C,MAAMU,iBAAiB,GAAGD,WAAW,EAAEC,iBAAiB;EACxD,MAAMC,mBAAmB,GAAGF,WAAW,EAAEE,mBAAmB;EAC5D,MAAMC,cAAc,GAAGH,WAAW,EAAEI,eAAe,KAAKN,iBAAiB;EACzE,MAAMO,aAAa,GAAGL,WAAW,EAAEK,aAAa;EAChD,MAAMC,gCAAgC,GACrCH,cAAc,IAAIE,aAAa,EAAEE,OAAO,KAAK,IAAI;EAClD,MAAMC,4BAA4B,GACjCL,cAAc,IAAIE,aAAa,EAAEE,OAAO,KAAK,IAAI;EAClD,MAAME,sBAAsB,GAAGxB,qBAAqB,CACnDe,WAAW,EAAEU,QAAQ,CAACC,GAAG,EACzBf,KACD,CAAC;EACD,MAAMgB,iBAAiB,GAAG1B,mBAAmB,CAACc,WAAW,EAAEU,QAAQ,CAACC,GAAG,CAAC;EACxE,MAAME,cAAc,GAAG/B,OAAO,CAAC,MAAMK,qBAAqB,CAACS,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAC3E;EACA;EACA,MAAMkB,cAAc,GAAGT,aAAa,EAAEE,OAAO,GAC1CR,sBAAsB,GACtBD,iBAAiB;EAEpBjB,eAAe,CAAC,MAAM;IACrB,IAAI,CAACoB,iBAAiB,IAAI,CAACC,mBAAmB,EAAE;MAC/C,IAAIa,OAAO,EAAE;QACZ3B,MAAM,CAAC4B,IAAI,CAAC1B,2BAA2B,CAAC;MACzC;MACA;IACD;IAEAW,iBAAiB,CAACH,iBAAiB,EAAEe,cAAc,EAAEC,cAAc,CAAC;IACpE,OAAO,MAAM;MACZZ,mBAAmB,CAACJ,iBAAiB,CAAC;IACvC,CAAC;EACF,CAAC,EAAE,CACFG,iBAAiB,EACjBC,mBAAmB,EACnBJ,iBAAiB,EACjBe,cAAc,EACdC,cAAc,CACd,CAAC;EAEF,oBACCrB,IAAA,CAACJ,MAAM;IACN4B,EAAE,EAAEjB,WAAW,EAAEU,QAAQ,CAACC,GAAI;IAC9BO,OAAO,EAAEb,aAAa,EAAEa,OAAQ;IAChCC,cAAc,EAAEd,aAAa,EAAEc,cAAe;IAC9CC,cAAc,EAAErB,sBAAuB;IAAAsB,QAAA,eAEvC5B,IAAA,CAACV,QAAQ,CAACuC,IAAI;MAAA,GACTzB,IAAI;MACR0B,GAAG,EAAEzB,iBAAkB;MACvBF,KAAK,EAAE,CACNA,KAAK,EACLU,gCAAgC,GAAGG,sBAAsB,GAAGe,SAAS,EACrEhB,4BAA4B,GAAGI,iBAAiB,GAAGY,SAAS,CAC3D;MACFC,WAAW,EAAE;IAAM,CACnB;EAAC,CACK,CAAC;AAEX,CAAC,CAAC","ignoreList":[]}
@@ -1,18 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  import { forwardRef, memo, useImperativeHandle, useMemo } from "react";
4
- import Animated from "react-native-reanimated";
4
+ import Animated, { useAnimatedRef } from "react-native-reanimated";
5
5
  import { useDescriptorsStore } from "../../providers/screen/descriptors";
6
- import { useSlotStackingStyles, useSlotStyles } from "../../providers/screen/styles";
6
+ import { useComposedSlotStyles, useSlotStackingStyles } from "../../providers/screen/styles";
7
7
  import { createBoundTag } from "../../stores/bounds/helpers/link-pairs.helpers";
8
8
  import { useBoundaryMeasurement } from "./hooks/use-boundary-measurement";
9
- import { resolveBoundaryPortal } from "./portal/resolve-portal";
9
+ import { BoundaryLocalPortalHost } from "./portal/components/boundary-local-portal-host";
10
+ import { Portal } from "./portal/components/portal";
11
+ import { resolveBoundaryPortal } from "./portal/utils/resolve-portal";
10
12
  import { BoundaryRootProvider, useBoundaryRootState } from "./providers/boundary-root.provider";
11
- import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ const hasRenderableChildren = children => {
15
+ if (children === null || children === undefined || typeof children === "boolean") {
16
+ return false;
17
+ }
18
+ if (Array.isArray(children)) {
19
+ return children.some(hasRenderableChildren);
20
+ }
21
+ return true;
22
+ };
12
23
  export function createBoundaryComponent(Wrapped, options = {}) {
13
24
  const {
14
- alreadyAnimated = false,
15
- shouldAutoMeasure = false
25
+ alreadyAnimated = false
16
26
  } = options;
17
27
  const AnimatedComponent = alreadyAnimated ? Wrapped : Animated.createAnimatedComponent(Wrapped);
18
28
  const Inner = /*#__PURE__*/forwardRef((props, forwardedRef) => {
@@ -26,19 +36,26 @@ export function createBoundaryComponent(Wrapped, options = {}) {
26
36
  method,
27
37
  style,
28
38
  onPress,
29
- portal: portalProp,
39
+ handoff,
40
+ escapeClipping,
41
+ children,
30
42
  ...rest
31
43
  } = props;
32
44
  const boundTag = useMemo(() => createBoundTag(String(id), group), [id, group]);
33
- const portal = resolveBoundaryPortal(portalProp);
45
+ const portalRuntime = resolveBoundaryPortal({
46
+ handoff,
47
+ escapeClipping
48
+ });
34
49
  const currentScreenKey = useDescriptorsStore(s => s.derivations.currentScreenKey);
35
50
  const hasConfiguredInterpolator = useDescriptorsStore(s => s.derivations.hasConfiguredInterpolator);
36
51
  const runtimeEnabled = enabled && hasConfiguredInterpolator;
37
52
  // Associated slot styles attach whenever the boundary is enabled,
38
53
  // independent of whether an interpolator is configured for this transition.
39
54
  const shouldAttachAssociatedStyles = enabled;
40
- const associatedStyles = useSlotStyles(boundTag.tag);
55
+ const canPortalRoot = portalRuntime.enabled && hasRenderableChildren(children);
56
+ const associatedStyles = useComposedSlotStyles(boundTag.tag, style);
41
57
  const associatedStackingStyles = useSlotStackingStyles(boundTag.tag);
58
+ const rootPlaceholderRef = useAnimatedRef();
42
59
  const {
43
60
  ref,
44
61
  contextValue,
@@ -47,12 +64,10 @@ export function createBoundaryComponent(Wrapped, options = {}) {
47
64
  targetPreparedStyles
48
65
  } = useBoundaryRootState({
49
66
  boundTag,
50
- portal,
51
- associatedTargetStyles: shouldAttachAssociatedStyles ? associatedStyles : undefined
67
+ portalRuntime,
68
+ rootMeasurementRef: canPortalRoot ? rootPlaceholderRef : undefined
52
69
  });
53
- const {
54
- onPress: resolvedOnPress
55
- } = useBoundaryMeasurement({
70
+ useBoundaryMeasurement({
56
71
  boundTag,
57
72
  enabled,
58
73
  runtimeEnabled,
@@ -60,35 +75,58 @@ export function createBoundaryComponent(Wrapped, options = {}) {
60
75
  measuredRef,
61
76
  style,
62
77
  targetPreparedStyles,
63
- portal,
64
- shouldAutoMeasure,
78
+ handoff: portalRuntime.handoff,
79
+ escapeClipping: portalRuntime.escapeClipping,
65
80
  config: {
66
81
  anchor,
67
82
  scaleMode,
68
83
  target,
69
84
  method
70
- },
71
- onPress
85
+ }
72
86
  });
73
87
  useImperativeHandle(forwardedRef, () => ref.current, [ref]);
74
-
88
+ const shouldPortalRoot = canPortalRoot && !hasActiveTarget;
75
89
  // A nested active target takes the full associated style, so the root keeps
76
- // only its stacking context; otherwise the root wears the full style.
77
- const attachedStyle = shouldAttachAssociatedStyles ? hasActiveTarget ? associatedStackingStyles : associatedStyles : undefined;
90
+ // only its stacking context. Without a nested target, a portal'd root is the
91
+ // target, so its associated style is applied through the portal host instead
92
+ // of inline on the teleported element.
93
+ // Host-only handoff receivers still need the associated style: their local
94
+ // portal host is absolute-filled inside this root, so the root is the visual
95
+ // frame that animates the received payload.
96
+ const attachedStyle = shouldAttachAssociatedStyles ? hasActiveTarget ? associatedStackingStyles : shouldPortalRoot ? undefined : associatedStyles : undefined;
97
+ const pressProps = typeof onPress === "function" ? {
98
+ onPress
99
+ } : undefined;
100
+ const localPortalHost = /*#__PURE__*/_jsx(BoundaryLocalPortalHost, {
101
+ boundaryId: boundTag.tag,
102
+ enabled: enabled && portalRuntime.handoff,
103
+ screenKey: currentScreenKey
104
+ });
105
+ const canInjectLocalPortalHost = typeof children !== "function";
106
+ const renderBoundaryRoot = extraChildren => /*#__PURE__*/_jsxs(AnimatedComponent, {
107
+ ...rest,
108
+ ...pressProps,
109
+ ref: ref,
110
+ style: [style, attachedStyle],
111
+ collapsable: false,
112
+ children: [children, canInjectLocalPortalHost ? extraChildren : null]
113
+ });
114
+ const boundaryRoot = renderBoundaryRoot(shouldPortalRoot ? undefined : localPortalHost);
78
115
  return /*#__PURE__*/_jsx(BoundaryRootProvider, {
79
116
  value: contextValue,
80
- children: /*#__PURE__*/_jsx(AnimatedComponent, {
81
- ...rest,
82
- ref: ref,
83
- style: [style, attachedStyle],
84
- onPress: resolvedOnPress,
85
- collapsable: false
86
- })
117
+ children: shouldPortalRoot ? /*#__PURE__*/_jsx(Portal, {
118
+ id: boundTag.tag,
119
+ handoff: portalRuntime.handoff,
120
+ escapeClipping: portalRuntime.escapeClipping,
121
+ placeholderRef: rootPlaceholderRef,
122
+ placeholderChildren: portalRuntime.handoff ? localPortalHost : undefined,
123
+ children: boundaryRoot
124
+ }) : boundaryRoot
87
125
  });
88
126
  });
89
127
 
90
128
  // The HOC's runtime identity (animated + memoized forwardRef) is not
91
129
  // expressible against the public boundary props, so assert it here.
92
- return /*#__PURE__*/memo(Animated.createAnimatedComponent(Inner));
130
+ return /*#__PURE__*/memo(Inner);
93
131
  }
94
132
  //# sourceMappingURL=create-boundary-component.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","memo","useImperativeHandle","useMemo","Animated","useDescriptorsStore","useSlotStackingStyles","useSlotStyles","createBoundTag","useBoundaryMeasurement","resolveBoundaryPortal","BoundaryRootProvider","useBoundaryRootState","jsx","_jsx","createBoundaryComponent","Wrapped","options","alreadyAnimated","shouldAutoMeasure","AnimatedComponent","createAnimatedComponent","Inner","props","forwardedRef","enabled","group","id","anchor","scaleMode","target","method","style","onPress","portal","portalProp","rest","boundTag","String","currentScreenKey","s","derivations","hasConfiguredInterpolator","runtimeEnabled","shouldAttachAssociatedStyles","associatedStyles","tag","associatedStackingStyles","ref","contextValue","measuredRef","hasActiveTarget","targetPreparedStyles","associatedTargetStyles","undefined","resolvedOnPress","config","current","attachedStyle","value","children","collapsable"],"sourceRoot":"../../../../../src","sources":["shared/components/boundary/create-boundary-component.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","memo","useImperativeHandle","useMemo","Animated","useAnimatedRef","useDescriptorsStore","useComposedSlotStyles","useSlotStackingStyles","createBoundTag","useBoundaryMeasurement","BoundaryLocalPortalHost","Portal","resolveBoundaryPortal","BoundaryRootProvider","useBoundaryRootState","jsx","_jsx","jsxs","_jsxs","hasRenderableChildren","children","undefined","Array","isArray","some","createBoundaryComponent","Wrapped","options","alreadyAnimated","AnimatedComponent","createAnimatedComponent","Inner","props","forwardedRef","enabled","group","id","anchor","scaleMode","target","method","style","onPress","handoff","escapeClipping","rest","boundTag","String","portalRuntime","currentScreenKey","s","derivations","hasConfiguredInterpolator","runtimeEnabled","shouldAttachAssociatedStyles","canPortalRoot","associatedStyles","tag","associatedStackingStyles","rootPlaceholderRef","ref","contextValue","measuredRef","hasActiveTarget","targetPreparedStyles","rootMeasurementRef","config","current","shouldPortalRoot","attachedStyle","pressProps","localPortalHost","boundaryId","screenKey","canInjectLocalPortalHost","renderBoundaryRoot","extraChildren","collapsable","boundaryRoot","value","placeholderRef","placeholderChildren"],"sourceRoot":"../../../../../src","sources":["shared/components/boundary/create-boundary-component.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,13 +2,15 @@
2
2
 
3
3
  import { useLayoutEffect } from "react";
4
4
  import { runOnUI } from "react-native-reanimated";
5
- import { removeEntry, setEntry } from "../../../stores/bounds/internals/entries";
5
+ import { removeEntry, setEntry } from "../../../../stores/bounds/internals/entries";
6
6
  export const useBoundaryPresence = params => {
7
7
  const {
8
8
  enabled,
9
9
  boundTag,
10
10
  currentScreenKey,
11
- boundaryConfig
11
+ boundaryConfig,
12
+ handoff,
13
+ escapeClipping
12
14
  } = params;
13
15
  const {
14
16
  tag
@@ -16,11 +18,13 @@ export const useBoundaryPresence = params => {
16
18
  useLayoutEffect(() => {
17
19
  if (!enabled) return;
18
20
  runOnUI(setEntry)(tag, currentScreenKey, {
19
- boundaryConfig
21
+ boundaryConfig,
22
+ handoff: handoff ? true : null,
23
+ escapeClipping: escapeClipping ? true : null
20
24
  });
21
25
  return () => {
22
26
  runOnUI(removeEntry)(tag, currentScreenKey);
23
27
  };
24
- }, [enabled, tag, currentScreenKey, boundaryConfig]);
28
+ }, [enabled, tag, currentScreenKey, boundaryConfig, handoff, escapeClipping]);
25
29
  };
26
30
  //# sourceMappingURL=use-boundary-presence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useLayoutEffect","runOnUI","removeEntry","setEntry","useBoundaryPresence","params","enabled","boundTag","currentScreenKey","boundaryConfig","handoff","escapeClipping","tag"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/hooks/lifecycles/use-boundary-presence.ts"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,OAAO;AACvC,SAASC,OAAO,QAAQ,yBAAyB;AACjD,SACCC,WAAW,EACXC,QAAQ,QACF,6CAA6C;AAIpD,OAAO,MAAMC,mBAAmB,GAAIC,MAOnC,IAAK;EACL,MAAM;IACLC,OAAO;IACPC,QAAQ;IACRC,gBAAgB;IAChBC,cAAc;IACdC,OAAO;IACPC;EACD,CAAC,GAAGN,MAAM;EACV,MAAM;IAAEO;EAAI,CAAC,GAAGL,QAAQ;EAExBP,eAAe,CAAC,MAAM;IACrB,IAAI,CAACM,OAAO,EAAE;IAEdL,OAAO,CAACE,QAAQ,CAAC,CAACS,GAAG,EAAEJ,gBAAgB,EAAE;MACxCC,cAAc;MACdC,OAAO,EAAEA,OAAO,GAAG,IAAI,GAAG,IAAI;MAC9BC,cAAc,EAAEA,cAAc,GAAG,IAAI,GAAG;IACzC,CAAC,CAAC;IAEF,OAAO,MAAM;MACZV,OAAO,CAACC,WAAW,CAAC,CAACU,GAAG,EAAEJ,gBAAgB,CAAC;IAC5C,CAAC;EACF,CAAC,EAAE,CAACF,OAAO,EAAEM,GAAG,EAAEJ,gBAAgB,EAAEC,cAAc,EAAEC,OAAO,EAAEC,cAAc,CAAC,CAAC;AAC9E,CAAC","ignoreList":[]}
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  import { cancelAnimation, useAnimatedReaction, useSharedValue, withDelay, withTiming } from "react-native-reanimated";
4
- import { useDescriptorsStore } from "../../../providers/screen/descriptors";
5
- import { AnimationStore } from "../../../stores/animation.store";
6
- import { getDestination } from "../../../stores/bounds/internals/links";
7
- import { pairs } from "../../../stores/bounds/internals/state";
8
- import { LifecycleTransitionRequestKind, SystemStore } from "../../../stores/system.store";
9
- import { logger } from "../../../utils/logger";
10
- import { getInitialDestinationMeasurePairKey } from "../utils/destination-signals";
4
+ import { useDescriptorsStore } from "../../../../providers/screen/descriptors";
5
+ import { AnimationStore } from "../../../../stores/animation.store";
6
+ import { getSourceScreenKeyFromPairKey } from "../../../../stores/bounds/helpers/link-pairs.helpers";
7
+ import { getEntry } from "../../../../stores/bounds/internals/entries";
8
+ import { getDestination, getLink } from "../../../../stores/bounds/internals/links";
9
+ import { pairs } from "../../../../stores/bounds/internals/state";
10
+ import { LifecycleTransitionRequestKind, SystemStore } from "../../../../stores/system.store";
11
+ import { logger } from "../../../../utils/logger";
12
+ import { hasHandoffEscapeContinuation, usesEscapeClippingHost } from "../../portal/utils/ownership";
13
+ import { getInitialDestinationMeasurePairKey } from "../../utils/destination-signals";
11
14
  const VIEWPORT_RETRY_DELAY_MS = 100;
12
15
  /**
13
16
  * A destination that keeps failing its measurement guards must not hold the
@@ -21,6 +24,7 @@ export const useInitialDestinationMeasurement = ({
21
24
  measureBoundary
22
25
  }) => {
23
26
  const {
27
+ tag,
24
28
  linkKey,
25
29
  group
26
30
  } = boundTag;
@@ -73,9 +77,6 @@ export const useInitialDestinationMeasurement = ({
73
77
  "worklet";
74
78
 
75
79
  if (!measurePairKey) {
76
- releaseLifecycleStartBlock();
77
- viewportRetries.set(0);
78
- hasGivenUp.set(0);
79
80
  return;
80
81
  }
81
82
  const previousMeasurePairKey = previous?.[0];
@@ -97,6 +98,22 @@ export const useInitialDestinationMeasurement = ({
97
98
  });
98
99
  const destinationAttached = getDestination(measurePairKey, linkKey) !== null;
99
100
  if (destinationAttached) {
101
+ const linkState = pairs.get();
102
+ const link = getLink(measurePairKey, linkKey);
103
+ const sourceScreenKey = getSourceScreenKeyFromPairKey(measurePairKey);
104
+ const sourceEntry = getEntry(tag, sourceScreenKey);
105
+ const sourceEntryUsesDestinationEscapeHost = sourceEntry?.handoff === true && sourceEntry.escapeClipping === true;
106
+ const shouldWaitForEscapeClippingHost = usesEscapeClippingHost(link) || sourceEntryUsesDestinationEscapeHost || hasHandoffEscapeContinuation({
107
+ linkKey,
108
+ linkState,
109
+ sourceScreenKey
110
+ });
111
+ if (shouldWaitForEscapeClippingHost) {
112
+ // Screen-level escape has a second readiness phase after destination
113
+ // measurement: the host must commit before the transition starts, or
114
+ // the payload can disappear for a frame.
115
+ return;
116
+ }
100
117
  releaseLifecycleStartBlock();
101
118
  viewportRetries.set(0);
102
119
  return;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cancelAnimation","useAnimatedReaction","useSharedValue","withDelay","withTiming","useDescriptorsStore","AnimationStore","getSourceScreenKeyFromPairKey","getEntry","getDestination","getLink","pairs","LifecycleTransitionRequestKind","SystemStore","logger","hasHandoffEscapeContinuation","usesEscapeClippingHost","getInitialDestinationMeasurePairKey","VIEWPORT_RETRY_DELAY_MS","MAX_VIEWPORT_RETRIES","useInitialDestinationMeasurement","boundTag","enabled","measureBoundary","tag","linkKey","group","currentScreenKey","s","derivations","nextScreenKey","destinationPairKey","ancestorDestinationPairKey","destinationEnabled","progress","getValue","pendingLifecycleRequestKind","actions","blockLifecycleStart","unblockLifecycleStart","getBag","isBlockingLifecycleStart","retryToken","viewportRetries","hasGivenUp","releaseLifecycleStartBlock","get","set","retryTick","hasPendingOpenRequest","Open","isWaitingForOpenToStart","measurePairKey","linkId","linkState","undefined","previous","previousMeasurePairKey","previousRetryTick","shouldAttemptMeasure","type","pairKey","destinationAttached","link","sourceScreenKey","sourceEntry","sourceEntryUsesDestinationEscapeHost","handoff","escapeClipping","shouldWaitForEscapeClippingHost","warn","duration"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts"],"mappings":"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","ignoreList":[]}
@@ -1,15 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  import { useAnimatedReaction, useSharedValue } from "react-native-reanimated";
4
- import { useDescriptorsStore } from "../../../providers/screen/descriptors";
5
- import { pairs } from "../../../stores/bounds/internals/state";
6
- import { getInitialSourceCaptureSignal } from "../utils/source-signals";
4
+ import { useDescriptorsStore } from "../../../../providers/screen/descriptors";
5
+ import { pairs } from "../../../../stores/bounds/internals/state";
6
+ import { getInitialSourceCaptureSignal } from "../../utils/source-signals";
7
7
  export const useInitialSourceMeasurement = params => {
8
8
  const {
9
9
  enabled,
10
10
  measureBoundary,
11
- boundTag,
12
- shouldAutoMeasure
11
+ boundTag
13
12
  } = params;
14
13
  const sourcePairKey = useDescriptorsStore(s => s.derivations.sourcePairKey);
15
14
  const lastSourceCaptureSignal = useSharedValue(null);
@@ -21,8 +20,7 @@ export const useInitialSourceMeasurement = params => {
21
20
  sourcePairKey,
22
21
  linkId: boundTag.linkKey,
23
22
  group: boundTag.group,
24
- shouldAutoMeasure,
25
- linkState: shouldAutoMeasure && sourcePairKey ? pairs.get() : undefined
23
+ linkState: sourcePairKey ? pairs.get() : undefined
26
24
  });
27
25
  }, captureSignal => {
28
26
  "worklet";
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useAnimatedReaction","useSharedValue","useDescriptorsStore","pairs","getInitialSourceCaptureSignal","useInitialSourceMeasurement","params","enabled","measureBoundary","boundTag","sourcePairKey","s","derivations","lastSourceCaptureSignal","linkId","linkKey","group","linkState","get","undefined","captureSignal","set","signal","type","pairKey"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.ts"],"mappings":";;AAAA,SAASA,mBAAmB,EAAEC,cAAc,QAAQ,yBAAyB;AAC7E,SAASC,mBAAmB,QAAQ,0CAA0C;AAC9E,SAASC,KAAK,QAAQ,2CAA2C;AAGjE,SAASC,6BAA6B,QAAQ,4BAA4B;AAE1E,OAAO,MAAMC,2BAA2B,GAAIC,MAI3C,IAAK;EACL,MAAM;IAAEC,OAAO;IAAEC,eAAe;IAAEC;EAAS,CAAC,GAAGH,MAAM;EACrD,MAAMI,aAAa,GAAGR,mBAAmB,CAAES,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACF,aAAa,CAAC;EAC7E,MAAMG,uBAAuB,GAAGZ,cAAc,CAAgB,IAAI,CAAC;EAEnED,mBAAmB,CAClB,MAAM;IACL,SAAS;;IACT,OAAOI,6BAA6B,CAAC;MACpCG,OAAO;MACPG,aAAa;MACbI,MAAM,EAAEL,QAAQ,CAACM,OAAO;MACxBC,KAAK,EAAEP,QAAQ,CAACO,KAAK;MACrBC,SAAS,EAAEP,aAAa,GAAGP,KAAK,CAACe,GAAG,CAAC,CAAC,GAAGC;IAC1C,CAAC,CAAC;EACH,CAAC,EACAC,aAAa,IAAK;IAClB,SAAS;;IACT,IAAI,CAACb,OAAO,IAAI,CAACa,aAAa,EAAE;MAC/BP,uBAAuB,CAACQ,GAAG,CAAC,IAAI,CAAC;MACjC;IACD;IAEA,IAAIR,uBAAuB,CAACK,GAAG,CAAC,CAAC,KAAKE,aAAa,CAACE,MAAM,EAAE;MAC3D;IACD;IAEAT,uBAAuB,CAACQ,GAAG,CAACD,aAAa,CAACE,MAAM,CAAC;IACjDd,eAAe,CAAC;MACfe,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAEJ,aAAa,CAACI;IACxB,CAAC,CAAC;EACH,CACD,CAAC;AACF,CAAC","ignoreList":[]}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  import { useAnimatedReaction } from "react-native-reanimated";
4
- import { useDescriptorsStore } from "../../../providers/screen/descriptors";
5
- import { AnimationStore } from "../../../stores/animation.store";
6
- import { pairs } from "../../../stores/bounds/internals/state";
7
- import { getRefreshBoundarySignal } from "../utils/refresh-signals";
4
+ import { useDescriptorsStore } from "../../../../providers/screen/descriptors";
5
+ import { AnimationStore } from "../../../../stores/animation.store";
6
+ import { pairs } from "../../../../stores/bounds/internals/state";
7
+ import { getRefreshBoundarySignal } from "../../utils/refresh-signals";
8
8
  export const useRefreshBoundary = ({
9
9
  enabled,
10
10
  boundTag,
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useAnimatedReaction","useDescriptorsStore","AnimationStore","pairs","getRefreshBoundarySignal","useRefreshBoundary","enabled","boundTag","measureBoundary","linkKey","group","currentScreenKey","s","derivations","nextScreenKey","sourcePairKey","destinationPairKey","ancestorDestinationPairKey","refreshScreenKey","refreshWillAnimate","getValue","refreshClosing","refreshEntering","refreshAnimating","refreshProgress","linkId","shouldRefresh","get","closing","entering","animating","progress","linkState","refreshSignal","prevRefreshSignal","signal","type","pairKey"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/hooks/lifecycles/use-refresh-boundary.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,mBAAmB,QAAQ,0CAA0C;AAC9E,SAASC,cAAc,QAAQ,oCAAoC;AACnE,SAASC,KAAK,QAAQ,2CAA2C;AAGjE,SAASC,wBAAwB,QAAQ,6BAA6B;AAQtE,OAAO,MAAMC,kBAAkB,GAAGA,CAAC;EAClCC,OAAO;EACPC,QAAQ;EACRC;AACyB,CAAC,KAAK;EAC/B,MAAM;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGH,QAAQ;EACnC,MAAMI,gBAAgB,GAAGV,mBAAmB,CAC1CW,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACF,gBACtB,CAAC;EACD,MAAMG,aAAa,GAAGb,mBAAmB,CAAEW,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACC,aAAa,CAAC;EAC7E,MAAMC,aAAa,GAAGd,mBAAmB,CAAEW,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACE,aAAa,CAAC;EAC7E,MAAMC,kBAAkB,GAAGf,mBAAmB,CAC5CW,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACG,kBACtB,CAAC;EACD,MAAMC,0BAA0B,GAAGhB,mBAAmB,CACpDW,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACI,0BACtB,CAAC;EACD;EACA;EACA,MAAMC,gBAAgB,GAAGJ,aAAa,IAAIH,gBAAgB;EAC1D,MAAMQ,kBAAkB,GAAGjB,cAAc,CAACkB,QAAQ,CACjDF,gBAAgB,EAChB,aACD,CAAC;EACD,MAAMG,cAAc,GAAGnB,cAAc,CAACkB,QAAQ,CAACF,gBAAgB,EAAE,SAAS,CAAC;EAC3E,MAAMI,eAAe,GAAGpB,cAAc,CAACkB,QAAQ,CAACF,gBAAgB,EAAE,UAAU,CAAC;EAC7E,MAAMK,gBAAgB,GAAGrB,cAAc,CAACkB,QAAQ,CAC/CF,gBAAgB,EAChB,mBACD,CAAC;EACD,MAAMM,eAAe,GAAGtB,cAAc,CAACkB,QAAQ,CAC9CF,gBAAgB,EAChB,oBACD,CAAC;EAEDlB,mBAAmB,CAClB,MAAM;IACL,SAAS;;IACT,OAAOI,wBAAwB,CAAC;MAC/BE,OAAO;MACPK,gBAAgB;MAChBI,aAAa;MACbC,kBAAkB;MAClBC,0BAA0B;MAC1BH,aAAa;MACbW,MAAM,EAAEhB,OAAO;MACfC,KAAK;MACLgB,aAAa,EAAE,CAAC,CAACP,kBAAkB,CAACQ,GAAG,CAAC,CAAC;MACzCC,OAAO,EAAE,CAAC,CAACP,cAAc,CAACM,GAAG,CAAC,CAAC;MAC/BE,QAAQ,EAAE,CAAC,CAACP,eAAe,CAACK,GAAG,CAAC,CAAC;MACjCG,SAAS,EAAE,CAAC,CAACP,gBAAgB,CAACI,GAAG,CAAC,CAAC;MACnCI,QAAQ,EAAEP,eAAe,CAACG,GAAG,CAAC,CAAC;MAC/BK,SAAS,EAAE7B,KAAK,CAACwB,GAAG,CAAC;IACtB,CAAC,CAAC;EACH,CAAC,EACD,CAACM,aAAa,EAAEC,iBAAiB,KAAK;IACrC,SAAS;;IAET,IACC,CAACD,aAAa,IACdA,aAAa,CAACE,MAAM,KAAKD,iBAAiB,EAAEC,MAAM,EACjD;MACD;IACD;IAEA3B,eAAe,CAAC;MACf4B,IAAI,EAAEH,aAAa,CAACG,IAAI;MACxBC,OAAO,EAAEJ,aAAa,CAACI;IACxB,CAAC,CAAC;EACH,CACD,CAAC;AACF,CAAC","ignoreList":[]}
@@ -1,20 +1,16 @@
1
1
  "use strict";
2
2
 
3
- import { useCallback, useMemo } from "react";
4
- import { runOnUI } from "react-native-reanimated";
5
- import { createPendingPairKey } from "../../../stores/bounds/helpers/link-pairs.helpers";
3
+ import { useMemo } from "react";
6
4
  import { prepareStyleForBounds } from "../../../utils/bounds/helpers/styles/styles";
7
- import { resolvePortalHost } from "../portal/resolve-portal";
8
- import { useBoundaryPresence } from "./use-boundary-presence";
9
- import { useInitialDestinationMeasurement } from "./use-initial-destination-measurement";
10
- import { useInitialSourceMeasurement } from "./use-initial-source-measurement";
5
+ import { useBoundaryPresence } from "./lifecycles/use-boundary-presence";
6
+ import { useInitialDestinationMeasurement } from "./lifecycles/use-initial-destination-measurement";
7
+ import { useInitialSourceMeasurement } from "./lifecycles/use-initial-source-measurement";
8
+ import { useRefreshBoundary } from "./lifecycles/use-refresh-boundary";
11
9
  import { useMeasurer } from "./use-measurer";
12
- import { useRefreshBoundary } from "./use-refresh-boundary";
13
10
  /**
14
11
  * Owns the full measurement lifecycle for a boundary: builds the measurer,
15
12
  * registers presence, runs the initial source/destination + refresh reactions,
16
- * and returns the press-priority `onPress`. The component never touches the
17
- * measurer itself.
13
+ * and keeps the component itself away from the measurer.
18
14
  */
19
15
  export const useBoundaryMeasurement = ({
20
16
  boundTag,
@@ -24,10 +20,9 @@ export const useBoundaryMeasurement = ({
24
20
  measuredRef,
25
21
  style,
26
22
  targetPreparedStyles,
27
- portal,
28
- shouldAutoMeasure,
29
- config,
30
- onPress
23
+ handoff,
24
+ escapeClipping,
25
+ config
31
26
  }) => {
32
27
  const {
33
28
  anchor,
@@ -43,14 +38,14 @@ export const useBoundaryMeasurement = ({
43
38
  }), [anchor, scaleMode, target, method]);
44
39
  const rootPreparedStyles = useMemo(() => prepareStyleForBounds(style), [style]);
45
40
  const preparedStyles = targetPreparedStyles ?? rootPreparedStyles;
46
- const portalHost = resolvePortalHost(portal);
47
41
  const measureBoundary = useMeasurer({
48
42
  enabled,
49
43
  boundTag,
50
44
  currentScreenKey,
51
45
  preparedStyles,
52
46
  measuredAnimatedRef: measuredRef,
53
- portalHost
47
+ handoff,
48
+ escapeClipping
54
49
  });
55
50
 
56
51
  // Register/unregister this boundary in the presence map so source/destination
@@ -59,17 +54,14 @@ export const useBoundaryMeasurement = ({
59
54
  enabled: runtimeEnabled,
60
55
  boundTag,
61
56
  currentScreenKey,
62
- boundaryConfig
57
+ boundaryConfig,
58
+ handoff,
59
+ escapeClipping
63
60
  });
64
-
65
- // Passive auto-measurement only applies to non-pressable boundaries; pressable
66
- // ones capture their source on press (see handlePress below).
67
- const shouldPassivelyMeasureSource = shouldAutoMeasure && typeof onPress !== "function";
68
61
  useInitialSourceMeasurement({
69
62
  enabled: runtimeEnabled,
70
63
  measureBoundary,
71
- boundTag,
72
- shouldAutoMeasure: shouldPassivelyMeasureSource
64
+ boundTag
73
65
  });
74
66
  useInitialDestinationMeasurement({
75
67
  boundTag,
@@ -81,18 +73,5 @@ export const useBoundaryMeasurement = ({
81
73
  boundTag,
82
74
  measureBoundary
83
75
  });
84
- const handlePress = useCallback((...args) => {
85
- // Press path has priority: capture source before user onPress/navigation.
86
- runOnUI(measureBoundary)({
87
- type: "source",
88
- pairKey: createPendingPairKey(currentScreenKey)
89
- });
90
- if (typeof onPress === "function") {
91
- onPress(...args);
92
- }
93
- }, [measureBoundary, onPress, currentScreenKey]);
94
- return {
95
- onPress: typeof onPress === "function" ? handlePress : undefined
96
- };
97
76
  };
98
77
  //# sourceMappingURL=use-boundary-measurement.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useMemo","runOnUI","createPendingPairKey","prepareStyleForBounds","resolvePortalHost","useBoundaryPresence","useInitialDestinationMeasurement","useInitialSourceMeasurement","useMeasurer","useRefreshBoundary","useBoundaryMeasurement","boundTag","enabled","runtimeEnabled","currentScreenKey","measuredRef","style","targetPreparedStyles","portal","shouldAutoMeasure","config","onPress","anchor","scaleMode","target","method","boundaryConfig","rootPreparedStyles","preparedStyles","portalHost","measureBoundary","measuredAnimatedRef","shouldPassivelyMeasureSource","handlePress","args","type","pairKey","undefined"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-boundary-measurement.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAG5C,SAASC,OAAO,QAAQ,yBAAyB;AACjD,SAASC,oBAAoB,QAAQ,mDAAmD;AAExF,SAASC,qBAAqB,QAAQ,6CAA6C;AACnF,SAASC,iBAAiB,QAAQ,0BAA0B;AAE5D,SAASC,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,gCAAgC,QAAQ,uCAAuC;AACxF,SAASC,2BAA2B,QAAQ,kCAAkC;AAC9E,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,kBAAkB,QAAQ,wBAAwB;AAoB3D;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CAAC;EACtCC,QAAQ;EACRC,OAAO;EACPC,cAAc;EACdC,gBAAgB;EAChBC,WAAW;EACXC,KAAK;EACLC,oBAAoB;EACpBC,MAAM;EACNC,iBAAiB;EACjBC,MAAM;EACNC;AAC6B,CAAC,KAAK;EACnC,MAAM;IAAEC,MAAM;IAAEC,SAAS;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGL,MAAM;EACpD,MAAMM,cAAc,GAAG1B,OAAO,CAC7B,OAAO;IAAEsB,MAAM;IAAEC,SAAS;IAAEC,MAAM;IAAEC;EAAO,CAAC,CAAC,EAC7C,CAACH,MAAM,EAAEC,SAAS,EAAEC,MAAM,EAAEC,MAAM,CACnC,CAAC;EAED,MAAME,kBAAkB,GAAG3B,OAAO,CACjC,MAAMG,qBAAqB,CAACa,KAAK,CAAC,EAClC,CAACA,KAAK,CACP,CAAC;EACD,MAAMY,cAAc,GAAGX,oBAAoB,IAAIU,kBAAkB;EAEjE,MAAME,UAAU,GAAGzB,iBAAiB,CAACc,MAAM,CAAC;EAE5C,MAAMY,eAAe,GAAGtB,WAAW,CAAC;IACnCI,OAAO;IACPD,QAAQ;IACRG,gBAAgB;IAChBc,cAAc;IACdG,mBAAmB,EAAEhB,WAAW;IAChCc;EACD,CAAC,CAAC;;EAEF;EACA;EACAxB,mBAAmB,CAAC;IACnBO,OAAO,EAAEC,cAAc;IACvBF,QAAQ;IACRG,gBAAgB;IAChBY;EACD,CAAC,CAAC;;EAEF;EACA;EACA,MAAMM,4BAA4B,GACjCb,iBAAiB,IAAI,OAAOE,OAAO,KAAK,UAAU;EAEnDd,2BAA2B,CAAC;IAC3BK,OAAO,EAAEC,cAAc;IACvBiB,eAAe;IACfnB,QAAQ;IACRQ,iBAAiB,EAAEa;EACpB,CAAC,CAAC;EAEF1B,gCAAgC,CAAC;IAChCK,QAAQ;IACRC,OAAO,EAAEC,cAAc;IACvBiB;EACD,CAAC,CAAC;EAEFrB,kBAAkB,CAAC;IAClBG,OAAO,EAAEC,cAAc;IACvBF,QAAQ;IACRmB;EACD,CAAC,CAAC;EAEF,MAAMG,WAAW,GAAGlC,WAAW,CAC9B,CAAC,GAAGmC,IAAe,KAAK;IACvB;IACAjC,OAAO,CAAC6B,eAAe,CAAC,CAAC;MACxBK,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAElC,oBAAoB,CAACY,gBAAgB;IAC/C,CAAC,CAAC;IAEF,IAAI,OAAOO,OAAO,KAAK,UAAU,EAAE;MAClCA,OAAO,CAAC,GAAGa,IAAI,CAAC;IACjB;EACD,CAAC,EACD,CAACJ,eAAe,EAAET,OAAO,EAAEP,gBAAgB,CAC5C,CAAC;EAED,OAAO;IACNO,OAAO,EAAE,OAAOA,OAAO,KAAK,UAAU,GAAGY,WAAW,GAAGI;EACxD,CAAC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","prepareStyleForBounds","useBoundaryPresence","useInitialDestinationMeasurement","useInitialSourceMeasurement","useRefreshBoundary","useMeasurer","useBoundaryMeasurement","boundTag","enabled","runtimeEnabled","currentScreenKey","measuredRef","style","targetPreparedStyles","handoff","escapeClipping","config","anchor","scaleMode","target","method","boundaryConfig","rootPreparedStyles","preparedStyles","measureBoundary","measuredAnimatedRef"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-boundary-measurement.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAI/B,SAASC,qBAAqB,QAAQ,6CAA6C;AAEnF,SAASC,mBAAmB,QAAQ,oCAAoC;AACxE,SAASC,gCAAgC,QAAQ,kDAAkD;AACnG,SAASC,2BAA2B,QAAQ,6CAA6C;AACzF,SAASC,kBAAkB,QAAQ,mCAAmC;AACtE,SAASC,WAAW,QAAQ,gBAAgB;AAmB5C;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CAAC;EACtCC,QAAQ;EACRC,OAAO;EACPC,cAAc;EACdC,gBAAgB;EAChBC,WAAW;EACXC,KAAK;EACLC,oBAAoB;EACpBC,OAAO;EACPC,cAAc;EACdC;AAC6B,CAAC,KAAK;EACnC,MAAM;IAAEC,MAAM;IAAEC,SAAS;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGJ,MAAM;EACpD,MAAMK,cAAc,GAAGtB,OAAO,CAC7B,OAAO;IAAEkB,MAAM;IAAEC,SAAS;IAAEC,MAAM;IAAEC;EAAO,CAAC,CAAC,EAC7C,CAACH,MAAM,EAAEC,SAAS,EAAEC,MAAM,EAAEC,MAAM,CACnC,CAAC;EAED,MAAME,kBAAkB,GAAGvB,OAAO,CACjC,MAAMC,qBAAqB,CAACY,KAAK,CAAC,EAClC,CAACA,KAAK,CACP,CAAC;EACD,MAAMW,cAAc,GAAGV,oBAAoB,IAAIS,kBAAkB;EAEjE,MAAME,eAAe,GAAGnB,WAAW,CAAC;IACnCG,OAAO;IACPD,QAAQ;IACRG,gBAAgB;IAChBa,cAAc;IACdE,mBAAmB,EAAEd,WAAW;IAChCG,OAAO;IACPC;EACD,CAAC,CAAC;;EAEF;EACA;EACAd,mBAAmB,CAAC;IACnBO,OAAO,EAAEC,cAAc;IACvBF,QAAQ;IACRG,gBAAgB;IAChBW,cAAc;IACdP,OAAO;IACPC;EACD,CAAC,CAAC;EAEFZ,2BAA2B,CAAC;IAC3BK,OAAO,EAAEC,cAAc;IACvBe,eAAe;IACfjB;EACD,CAAC,CAAC;EAEFL,gCAAgC,CAAC;IAChCK,QAAQ;IACRC,OAAO,EAAEC,cAAc;IACvBe;EACD,CAAC,CAAC;EAEFpB,kBAAkB,CAAC;IAClBI,OAAO,EAAEC,cAAc;IACvBF,QAAQ;IACRiB;EACD,CAAC,CAAC;AACH,CAAC","ignoreList":[]}