react-native-screen-transitions 3.9.0-alpha.2 → 3.9.0-beta.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 (475) 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 +78 -27
  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 +195 -121
  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/hooks/use-placeholder-styles.js +57 -0
  30. package/lib/commonjs/shared/components/boundary/portal/hooks/use-placeholder-styles.js.map +1 -0
  31. package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js +5 -44
  32. package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js.map +1 -1
  33. package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js +37 -5
  34. package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -1
  35. package/lib/commonjs/shared/components/boundary/portal/teleport.js +15 -2
  36. package/lib/commonjs/shared/components/boundary/portal/teleport.js.map +1 -1
  37. package/lib/commonjs/shared/components/boundary/portal/utils/has-local-slot.js +18 -0
  38. package/lib/commonjs/shared/components/boundary/portal/utils/has-local-slot.js.map +1 -0
  39. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js +10 -3
  40. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js.map +1 -1
  41. package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js +28 -48
  42. package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js.map +1 -1
  43. package/lib/commonjs/shared/components/boundary/portal/utils/ownership.js +254 -0
  44. package/lib/commonjs/shared/components/boundary/portal/utils/ownership.js.map +1 -0
  45. package/lib/commonjs/shared/components/boundary/portal/utils/resolve-portal.js +38 -0
  46. package/lib/commonjs/shared/components/boundary/portal/utils/resolve-portal.js.map +1 -0
  47. package/lib/commonjs/shared/components/boundary/portal/utils/shallow-equal.js +29 -0
  48. package/lib/commonjs/shared/components/boundary/portal/utils/shallow-equal.js.map +1 -0
  49. package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js +10 -1
  50. package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js.map +1 -1
  51. package/lib/commonjs/shared/components/boundary/portal/utils/visible-host.js +25 -0
  52. package/lib/commonjs/shared/components/boundary/portal/utils/visible-host.js.map +1 -0
  53. package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js +6 -7
  54. package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
  55. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js +1 -22
  56. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js.map +1 -1
  57. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js +0 -21
  58. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js.map +1 -1
  59. package/lib/commonjs/shared/components/boundary/utils/source-signals.js +4 -9
  60. package/lib/commonjs/shared/components/boundary/utils/source-signals.js.map +1 -1
  61. package/lib/commonjs/shared/components/masked-view.js +5 -0
  62. package/lib/commonjs/shared/components/masked-view.js.map +1 -1
  63. package/lib/commonjs/shared/components/screen-container/layers/backdrop.js +18 -8
  64. package/lib/commonjs/shared/components/screen-container/layers/backdrop.js.map +1 -1
  65. package/lib/commonjs/shared/components/screen-container/layers/content.js +34 -16
  66. package/lib/commonjs/shared/components/screen-container/layers/content.js.map +1 -1
  67. package/lib/commonjs/shared/components/screen-container/layers/render-component.js +10 -0
  68. package/lib/commonjs/shared/components/screen-container/layers/render-component.js.map +1 -0
  69. package/lib/commonjs/shared/components/screen-container/layers/surface-container.js +5 -3
  70. package/lib/commonjs/shared/components/screen-container/layers/surface-container.js.map +1 -1
  71. package/lib/commonjs/shared/index.js +4 -0
  72. package/lib/commonjs/shared/index.js.map +1 -1
  73. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js +6 -3
  74. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  75. package/lib/commonjs/shared/providers/register-bounds.provider.js +6 -0
  76. package/lib/commonjs/shared/providers/register-bounds.provider.js.map +1 -1
  77. package/lib/commonjs/shared/providers/screen/animation/helpers/derivations.js +1 -0
  78. package/lib/commonjs/shared/providers/screen/animation/helpers/derivations.js.map +1 -1
  79. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js +1 -0
  80. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  81. package/lib/commonjs/shared/providers/screen/styles/helpers/compose-slot-style.js +95 -0
  82. package/lib/commonjs/shared/providers/screen/styles/helpers/compose-slot-style.js.map +1 -0
  83. package/lib/commonjs/shared/providers/screen/styles/helpers/normalize-slots.js +30 -9
  84. package/lib/commonjs/shared/providers/screen/styles/helpers/normalize-slots.js.map +1 -1
  85. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +9 -3
  86. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  87. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.js +2 -0
  88. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.js.map +1 -1
  89. package/lib/commonjs/shared/providers/screen/styles/hooks/slot-resolvers.js +96 -0
  90. package/lib/commonjs/shared/providers/screen/styles/hooks/slot-resolvers.js.map +1 -0
  91. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +16 -3
  92. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  93. package/lib/commonjs/shared/providers/screen/styles/index.js +16 -3
  94. package/lib/commonjs/shared/providers/screen/styles/index.js.map +1 -1
  95. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js +22 -51
  96. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js.map +1 -1
  97. package/lib/commonjs/shared/providers/screen/styles/stores/slot-references.store.js +53 -0
  98. package/lib/commonjs/shared/providers/screen/styles/stores/slot-references.store.js.map +1 -0
  99. package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js +22 -2
  100. package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
  101. package/lib/commonjs/shared/stores/bounds/internals/entries.js +11 -4
  102. package/lib/commonjs/shared/stores/bounds/internals/entries.js.map +1 -1
  103. package/lib/commonjs/shared/stores/bounds/internals/links.js +134 -51
  104. package/lib/commonjs/shared/stores/bounds/internals/links.js.map +1 -1
  105. package/lib/commonjs/shared/stores/bounds/internals/resolver.js +1 -3
  106. package/lib/commonjs/shared/stores/bounds/internals/resolver.js.map +1 -1
  107. package/lib/commonjs/shared/stores/system.store.js +5 -0
  108. package/lib/commonjs/shared/stores/system.store.js.map +1 -1
  109. package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js +10 -69
  110. package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
  111. package/lib/commonjs/shared/utils/bounds/helpers/styles/local-transform.js +59 -0
  112. package/lib/commonjs/shared/utils/bounds/helpers/styles/local-transform.js.map +1 -0
  113. package/lib/module/shared/components/boundary/components/boundary-target.js +12 -7
  114. package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -1
  115. package/lib/module/shared/components/boundary/create-boundary-component.js +67 -29
  116. package/lib/module/shared/components/boundary/create-boundary-component.js.map +1 -1
  117. package/lib/module/shared/components/boundary/hooks/{use-boundary-presence.js → lifecycles/use-boundary-presence.js} +8 -4
  118. package/lib/module/shared/components/boundary/hooks/lifecycles/use-boundary-presence.js.map +1 -0
  119. package/lib/module/shared/components/boundary/hooks/{use-initial-destination-measurement.js → lifecycles/use-initial-destination-measurement.js} +27 -10
  120. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -0
  121. package/lib/module/shared/components/boundary/hooks/{use-initial-source-measurement.js → lifecycles/use-initial-source-measurement.js} +5 -7
  122. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js.map +1 -0
  123. package/lib/module/shared/components/boundary/hooks/{use-refresh-boundary.js → lifecycles/use-refresh-boundary.js} +4 -4
  124. package/lib/module/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -0
  125. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js +15 -36
  126. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  127. package/lib/module/shared/components/boundary/hooks/use-measurer.js +5 -6
  128. package/lib/module/shared/components/boundary/hooks/use-measurer.js.map +1 -1
  129. package/lib/module/shared/components/boundary/index.js +26 -29
  130. package/lib/module/shared/components/boundary/index.js.map +1 -1
  131. package/lib/module/shared/components/boundary/portal/components/boundary-local-portal-host.js +53 -0
  132. package/lib/module/shared/components/boundary/portal/components/boundary-local-portal-host.js.map +1 -0
  133. package/lib/module/shared/components/boundary/portal/components/host.js +21 -5
  134. package/lib/module/shared/components/boundary/portal/components/host.js.map +1 -1
  135. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js +79 -28
  136. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js.map +1 -1
  137. package/lib/module/shared/components/boundary/portal/components/portal.js +201 -127
  138. package/lib/module/shared/components/boundary/portal/components/portal.js.map +1 -1
  139. package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js +15 -3
  140. package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js.map +1 -1
  141. package/lib/module/shared/components/boundary/portal/hooks/use-placeholder-styles.js +52 -0
  142. package/lib/module/shared/components/boundary/portal/hooks/use-placeholder-styles.js.map +1 -0
  143. package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js +4 -41
  144. package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js.map +1 -1
  145. package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js +35 -4
  146. package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -1
  147. package/lib/module/shared/components/boundary/portal/teleport.js +16 -2
  148. package/lib/module/shared/components/boundary/portal/teleport.js.map +1 -1
  149. package/lib/module/shared/components/boundary/portal/utils/has-local-slot.js +13 -0
  150. package/lib/module/shared/components/boundary/portal/utils/has-local-slot.js.map +1 -0
  151. package/lib/module/shared/components/boundary/portal/utils/naming.js +8 -2
  152. package/lib/module/shared/components/boundary/portal/utils/naming.js.map +1 -1
  153. package/lib/module/shared/components/boundary/portal/utils/offset-style.js +29 -48
  154. package/lib/module/shared/components/boundary/portal/utils/offset-style.js.map +1 -1
  155. package/lib/module/shared/components/boundary/portal/utils/ownership.js +246 -0
  156. package/lib/module/shared/components/boundary/portal/utils/ownership.js.map +1 -0
  157. package/lib/module/shared/components/boundary/portal/utils/resolve-portal.js +33 -0
  158. package/lib/module/shared/components/boundary/portal/utils/resolve-portal.js.map +1 -0
  159. package/lib/module/shared/components/boundary/portal/utils/shallow-equal.js +24 -0
  160. package/lib/module/shared/components/boundary/portal/utils/shallow-equal.js.map +1 -0
  161. package/lib/module/shared/components/boundary/portal/utils/teleport-control.js +8 -0
  162. package/lib/module/shared/components/boundary/portal/utils/teleport-control.js.map +1 -1
  163. package/lib/module/shared/components/boundary/portal/utils/visible-host.js +20 -0
  164. package/lib/module/shared/components/boundary/portal/utils/visible-host.js.map +1 -0
  165. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js +6 -7
  166. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
  167. package/lib/module/shared/components/boundary/utils/destination-signals.js +2 -23
  168. package/lib/module/shared/components/boundary/utils/destination-signals.js.map +1 -1
  169. package/lib/module/shared/components/boundary/utils/refresh-signals.js +0 -21
  170. package/lib/module/shared/components/boundary/utils/refresh-signals.js.map +1 -1
  171. package/lib/module/shared/components/boundary/utils/source-signals.js +4 -9
  172. package/lib/module/shared/components/boundary/utils/source-signals.js.map +1 -1
  173. package/lib/module/shared/components/masked-view.js +5 -0
  174. package/lib/module/shared/components/masked-view.js.map +1 -1
  175. package/lib/module/shared/components/screen-container/layers/backdrop.js +19 -9
  176. package/lib/module/shared/components/screen-container/layers/backdrop.js.map +1 -1
  177. package/lib/module/shared/components/screen-container/layers/content.js +35 -17
  178. package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
  179. package/lib/module/shared/components/screen-container/layers/render-component.js +6 -0
  180. package/lib/module/shared/components/screen-container/layers/render-component.js.map +1 -0
  181. package/lib/module/shared/components/screen-container/layers/surface-container.js +5 -3
  182. package/lib/module/shared/components/screen-container/layers/surface-container.js.map +1 -1
  183. package/lib/module/shared/index.js +4 -0
  184. package/lib/module/shared/index.js.map +1 -1
  185. package/lib/module/shared/providers/helpers/measured-bounds-writes.js +6 -3
  186. package/lib/module/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  187. package/lib/module/shared/providers/register-bounds.provider.js +6 -0
  188. package/lib/module/shared/providers/register-bounds.provider.js.map +1 -1
  189. package/lib/module/shared/providers/screen/animation/helpers/derivations.js +1 -0
  190. package/lib/module/shared/providers/screen/animation/helpers/derivations.js.map +1 -1
  191. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js +1 -0
  192. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  193. package/lib/module/shared/providers/screen/styles/helpers/compose-slot-style.js +89 -0
  194. package/lib/module/shared/providers/screen/styles/helpers/compose-slot-style.js.map +1 -0
  195. package/lib/module/shared/providers/screen/styles/helpers/normalize-slots.js +30 -9
  196. package/lib/module/shared/providers/screen/styles/helpers/normalize-slots.js.map +1 -1
  197. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +9 -3
  198. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  199. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.js +2 -0
  200. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.js.map +1 -1
  201. package/lib/module/shared/providers/screen/styles/hooks/slot-resolvers.js +87 -0
  202. package/lib/module/shared/providers/screen/styles/hooks/slot-resolvers.js.map +1 -0
  203. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +16 -3
  204. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  205. package/lib/module/shared/providers/screen/styles/index.js +2 -1
  206. package/lib/module/shared/providers/screen/styles/index.js.map +1 -1
  207. package/lib/module/shared/providers/screen/styles/slot.provider.js +22 -47
  208. package/lib/module/shared/providers/screen/styles/slot.provider.js.map +1 -1
  209. package/lib/module/shared/providers/screen/styles/stores/slot-references.store.js +47 -0
  210. package/lib/module/shared/providers/screen/styles/stores/slot-references.store.js.map +1 -0
  211. package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js +19 -1
  212. package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
  213. package/lib/module/shared/stores/bounds/internals/entries.js +11 -4
  214. package/lib/module/shared/stores/bounds/internals/entries.js.map +1 -1
  215. package/lib/module/shared/stores/bounds/internals/links.js +135 -53
  216. package/lib/module/shared/stores/bounds/internals/links.js.map +1 -1
  217. package/lib/module/shared/stores/bounds/internals/resolver.js +1 -3
  218. package/lib/module/shared/stores/bounds/internals/resolver.js.map +1 -1
  219. package/lib/module/shared/stores/system.store.js +5 -0
  220. package/lib/module/shared/stores/system.store.js.map +1 -1
  221. package/lib/module/shared/types/animation.types.js.map +1 -1
  222. package/lib/module/shared/utils/bounds/helpers/styles/compute.js +10 -69
  223. package/lib/module/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
  224. package/lib/module/shared/utils/bounds/helpers/styles/local-transform.js +52 -0
  225. package/lib/module/shared/utils/bounds/helpers/styles/local-transform.js.map +1 -0
  226. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts +1 -2
  227. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts.map +1 -1
  228. package/lib/typescript/component-stack/components/component-screen.d.ts +1 -1
  229. package/lib/typescript/component-stack/components/component-screen.d.ts.map +1 -1
  230. package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts +1 -2
  231. package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts.map +1 -1
  232. package/lib/typescript/component-stack/types.d.ts +26 -0
  233. package/lib/typescript/component-stack/types.d.ts.map +1 -1
  234. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +1 -1
  235. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts.map +1 -1
  236. package/lib/typescript/native-stack/views/NativeStackView.d.ts +1 -2
  237. package/lib/typescript/native-stack/views/NativeStackView.d.ts.map +1 -1
  238. package/lib/typescript/native-stack/views/useHeaderConfigProps.d.ts +2 -2
  239. package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts +1 -1
  240. package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts.map +1 -1
  241. package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts +1 -1
  242. package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts.map +1 -1
  243. package/lib/typescript/shared/components/activity/variants/activity-container.d.ts +1 -1
  244. package/lib/typescript/shared/components/activity/variants/activity-container.d.ts.map +1 -1
  245. package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts +1 -1
  246. package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts.map +1 -1
  247. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts +1 -1
  248. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts.map +1 -1
  249. package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts +0 -1
  250. package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts.map +1 -1
  251. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-boundary-presence.d.ts +11 -0
  252. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-boundary-presence.d.ts.map +1 -0
  253. package/lib/typescript/shared/components/boundary/hooks/{use-initial-destination-measurement.d.ts → lifecycles/use-initial-destination-measurement.d.ts} +2 -2
  254. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts.map +1 -0
  255. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.d.ts +8 -0
  256. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.d.ts.map +1 -0
  257. package/lib/typescript/shared/components/boundary/hooks/{use-refresh-boundary.d.ts → lifecycles/use-refresh-boundary.d.ts} +2 -2
  258. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.d.ts.map +1 -0
  259. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts +5 -9
  260. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts.map +1 -1
  261. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts +4 -3
  262. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts.map +1 -1
  263. package/lib/typescript/shared/components/boundary/index.d.ts +35 -24
  264. package/lib/typescript/shared/components/boundary/index.d.ts.map +1 -1
  265. package/lib/typescript/shared/components/boundary/portal/components/boundary-local-portal-host.d.ts +8 -0
  266. package/lib/typescript/shared/components/boundary/portal/components/boundary-local-portal-host.d.ts.map +1 -0
  267. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts +2 -2
  268. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts.map +1 -1
  269. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts +2 -2
  270. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts.map +1 -1
  271. package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts +1 -1
  272. package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts.map +1 -1
  273. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts +4 -3
  274. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts.map +1 -1
  275. package/lib/typescript/shared/components/boundary/portal/hooks/use-host-measurement.d.ts.map +1 -1
  276. package/lib/typescript/shared/components/boundary/portal/hooks/use-placeholder-styles.d.ts +17 -0
  277. package/lib/typescript/shared/components/boundary/portal/hooks/use-placeholder-styles.d.ts.map +1 -0
  278. package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts +0 -7
  279. package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts.map +1 -1
  280. package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts +16 -1
  281. package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts.map +1 -1
  282. package/lib/typescript/shared/components/boundary/portal/teleport.d.ts +1 -1
  283. package/lib/typescript/shared/components/boundary/portal/teleport.d.ts.map +1 -1
  284. package/lib/typescript/shared/components/boundary/portal/utils/has-local-slot.d.ts +3 -0
  285. package/lib/typescript/shared/components/boundary/portal/utils/has-local-slot.d.ts.map +1 -0
  286. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts +2 -1
  287. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts.map +1 -1
  288. package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts +23 -30
  289. package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts.map +1 -1
  290. package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts +35 -0
  291. package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts.map +1 -0
  292. package/lib/typescript/shared/components/boundary/portal/utils/resolve-portal.d.ts +12 -0
  293. package/lib/typescript/shared/components/boundary/portal/utils/resolve-portal.d.ts.map +1 -0
  294. package/lib/typescript/shared/components/boundary/portal/utils/shallow-equal.d.ts +8 -0
  295. package/lib/typescript/shared/components/boundary/portal/utils/shallow-equal.d.ts.map +1 -0
  296. package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts +4 -0
  297. package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts.map +1 -1
  298. package/lib/typescript/shared/components/boundary/portal/utils/visible-host.d.ts +8 -0
  299. package/lib/typescript/shared/components/boundary/portal/utils/visible-host.d.ts.map +1 -0
  300. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts +7 -12
  301. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
  302. package/lib/typescript/shared/components/boundary/types.d.ts +9 -36
  303. package/lib/typescript/shared/components/boundary/types.d.ts.map +1 -1
  304. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts.map +1 -1
  305. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts.map +1 -1
  306. package/lib/typescript/shared/components/boundary/utils/source-signals.d.ts +0 -1
  307. package/lib/typescript/shared/components/boundary/utils/source-signals.d.ts.map +1 -1
  308. package/lib/typescript/shared/components/create-transition-aware-component.d.ts +6 -5
  309. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  310. package/lib/typescript/shared/components/masked-view.d.ts +5 -1
  311. package/lib/typescript/shared/components/masked-view.d.ts.map +1 -1
  312. package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts +1 -1
  313. package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts.map +1 -1
  314. package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts +1 -1
  315. package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts.map +1 -1
  316. package/lib/typescript/shared/components/scene-view.d.ts +1 -1
  317. package/lib/typescript/shared/components/scene-view.d.ts.map +1 -1
  318. package/lib/typescript/shared/components/screen-container/index.d.ts +1 -1
  319. package/lib/typescript/shared/components/screen-container/index.d.ts.map +1 -1
  320. package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts +1 -1
  321. package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts.map +1 -1
  322. package/lib/typescript/shared/components/screen-container/layers/content.d.ts +1 -1
  323. package/lib/typescript/shared/components/screen-container/layers/content.d.ts.map +1 -1
  324. package/lib/typescript/shared/components/screen-container/layers/maybe-masked-navigation-container.d.ts +1 -1
  325. package/lib/typescript/shared/components/screen-container/layers/maybe-masked-navigation-container.d.ts.map +1 -1
  326. package/lib/typescript/shared/components/screen-container/layers/render-component.d.ts +3 -0
  327. package/lib/typescript/shared/components/screen-container/layers/render-component.d.ts.map +1 -0
  328. package/lib/typescript/shared/components/screen-container/layers/surface-container.d.ts +1 -1
  329. package/lib/typescript/shared/components/screen-container/layers/surface-container.d.ts.map +1 -1
  330. package/lib/typescript/shared/hooks/navigation/use-stack.d.ts +1 -1
  331. package/lib/typescript/shared/hooks/navigation/use-stack.d.ts.map +1 -1
  332. package/lib/typescript/shared/index.d.ts +731 -683
  333. package/lib/typescript/shared/index.d.ts.map +1 -1
  334. package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts +3 -3
  335. package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts.map +1 -1
  336. package/lib/typescript/shared/providers/register-bounds.provider.d.ts.map +1 -1
  337. package/lib/typescript/shared/providers/screen/animation/helpers/derivations.d.ts +1 -0
  338. package/lib/typescript/shared/providers/screen/animation/helpers/derivations.d.ts.map +1 -1
  339. package/lib/typescript/shared/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
  340. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts +1 -1
  341. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  342. package/lib/typescript/shared/providers/screen/screen-composer.d.ts +1 -1
  343. package/lib/typescript/shared/providers/screen/screen-composer.d.ts.map +1 -1
  344. package/lib/typescript/shared/providers/screen/styles/components/floating-overlay-layer.d.ts +1 -1
  345. package/lib/typescript/shared/providers/screen/styles/components/floating-overlay-layer.d.ts.map +1 -1
  346. package/lib/typescript/shared/providers/screen/styles/helpers/compose-slot-style.d.ts +4 -0
  347. package/lib/typescript/shared/providers/screen/styles/helpers/compose-slot-style.d.ts.map +1 -0
  348. package/lib/typescript/shared/providers/screen/styles/helpers/normalize-slots.d.ts.map +1 -1
  349. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts.map +1 -1
  350. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.d.ts +2 -1
  351. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.d.ts.map +1 -1
  352. package/lib/typescript/shared/providers/screen/styles/hooks/slot-resolvers.d.ts +11 -0
  353. package/lib/typescript/shared/providers/screen/styles/hooks/slot-resolvers.d.ts.map +1 -0
  354. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts +4 -1
  355. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
  356. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +3 -3
  357. package/lib/typescript/shared/providers/screen/styles/index.d.ts +2 -1
  358. package/lib/typescript/shared/providers/screen/styles/index.d.ts.map +1 -1
  359. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts +5 -10
  360. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts.map +1 -1
  361. package/lib/typescript/shared/providers/screen/styles/stores/slot-references.store.d.ts +6 -0
  362. package/lib/typescript/shared/providers/screen/styles/stores/slot-references.store.d.ts.map +1 -0
  363. package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts +2 -0
  364. package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts.map +1 -1
  365. package/lib/typescript/shared/stores/bounds/internals/entries.d.ts.map +1 -1
  366. package/lib/typescript/shared/stores/bounds/internals/links.d.ts +4 -3
  367. package/lib/typescript/shared/stores/bounds/internals/links.d.ts.map +1 -1
  368. package/lib/typescript/shared/stores/bounds/internals/resolver.d.ts.map +1 -1
  369. package/lib/typescript/shared/stores/bounds/types.d.ts +9 -20
  370. package/lib/typescript/shared/stores/bounds/types.d.ts.map +1 -1
  371. package/lib/typescript/shared/stores/system.store.d.ts +1 -0
  372. package/lib/typescript/shared/stores/system.store.d.ts.map +1 -1
  373. package/lib/typescript/shared/types/animation.types.d.ts +7 -1
  374. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  375. package/lib/typescript/shared/types/index.d.ts +1 -1
  376. package/lib/typescript/shared/types/index.d.ts.map +1 -1
  377. package/lib/typescript/shared/types/screen.types.d.ts +99 -4
  378. package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
  379. package/lib/typescript/shared/utils/bounds/helpers/styles/compute.d.ts.map +1 -1
  380. package/lib/typescript/shared/utils/bounds/helpers/styles/local-transform.d.ts +6 -0
  381. package/lib/typescript/shared/utils/bounds/helpers/styles/local-transform.d.ts.map +1 -0
  382. package/lib/typescript/shared/utils/bounds/types/options.d.ts +2 -0
  383. package/lib/typescript/shared/utils/bounds/types/options.d.ts.map +1 -1
  384. package/package.json +1 -1
  385. package/src/component-stack/types.ts +26 -0
  386. package/src/shared/components/boundary/components/boundary-target.tsx +21 -7
  387. package/src/shared/components/boundary/create-boundary-component.tsx +92 -28
  388. package/src/shared/components/boundary/hooks/{use-boundary-presence.ts → lifecycles/use-boundary-presence.ts} +16 -5
  389. package/src/shared/components/boundary/hooks/{use-initial-destination-measurement.ts → lifecycles/use-initial-destination-measurement.ts} +40 -13
  390. package/src/shared/components/boundary/hooks/{use-initial-source-measurement.ts → lifecycles/use-initial-source-measurement.ts} +7 -9
  391. package/src/shared/components/boundary/hooks/{use-refresh-boundary.ts → lifecycles/use-refresh-boundary.ts} +6 -6
  392. package/src/shared/components/boundary/hooks/use-boundary-measurement.ts +15 -45
  393. package/src/shared/components/boundary/hooks/use-measurer.ts +9 -14
  394. package/src/shared/components/boundary/index.tsx +55 -29
  395. package/src/shared/components/boundary/portal/components/boundary-local-portal-host.tsx +66 -0
  396. package/src/shared/components/boundary/portal/components/host.tsx +20 -5
  397. package/src/shared/components/boundary/portal/components/portal-boundary-host.tsx +112 -46
  398. package/src/shared/components/boundary/portal/components/portal.tsx +263 -134
  399. package/src/shared/components/boundary/portal/hooks/use-host-measurement.ts +23 -2
  400. package/src/shared/components/boundary/portal/hooks/use-placeholder-styles.ts +55 -0
  401. package/src/shared/components/boundary/portal/stores/host-registry.store.ts +4 -51
  402. package/src/shared/components/boundary/portal/stores/portal-boundary-host.store.ts +59 -6
  403. package/src/shared/components/boundary/portal/teleport.ts +28 -3
  404. package/src/shared/components/boundary/portal/utils/has-local-slot.ts +16 -0
  405. package/src/shared/components/boundary/portal/utils/naming.ts +11 -1
  406. package/src/shared/components/boundary/portal/utils/offset-style.ts +42 -137
  407. package/src/shared/components/boundary/portal/utils/ownership.ts +371 -0
  408. package/src/shared/components/boundary/portal/utils/resolve-portal.ts +50 -0
  409. package/src/shared/components/boundary/portal/utils/shallow-equal.ts +25 -0
  410. package/src/shared/components/boundary/portal/utils/teleport-control.ts +12 -0
  411. package/src/shared/components/boundary/portal/utils/visible-host.ts +24 -0
  412. package/src/shared/components/boundary/providers/boundary-root.provider.tsx +9 -18
  413. package/src/shared/components/boundary/types.ts +9 -39
  414. package/src/shared/components/boundary/utils/destination-signals.ts +1 -32
  415. package/src/shared/components/boundary/utils/refresh-signals.ts +0 -41
  416. package/src/shared/components/boundary/utils/source-signals.ts +5 -17
  417. package/src/shared/components/masked-view.tsx +4 -0
  418. package/src/shared/components/screen-container/layers/backdrop.tsx +31 -10
  419. package/src/shared/components/screen-container/layers/content.tsx +61 -22
  420. package/src/shared/components/screen-container/layers/render-component.ts +9 -0
  421. package/src/shared/components/screen-container/layers/surface-container.tsx +5 -4
  422. package/src/shared/index.ts +9 -5
  423. package/src/shared/providers/helpers/measured-bounds-writes.ts +6 -11
  424. package/src/shared/providers/register-bounds.provider.tsx +5 -0
  425. package/src/shared/providers/screen/animation/helpers/derivations.ts +3 -0
  426. package/src/shared/providers/screen/animation/helpers/pipeline.ts +1 -0
  427. package/src/shared/providers/screen/styles/helpers/compose-slot-style.ts +129 -0
  428. package/src/shared/providers/screen/styles/helpers/normalize-slots.ts +45 -8
  429. package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/index.ts +14 -2
  430. package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.ts +3 -0
  431. package/src/shared/providers/screen/styles/hooks/slot-resolvers.tsx +111 -0
  432. package/src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +21 -3
  433. package/src/shared/providers/screen/styles/index.tsx +8 -3
  434. package/src/shared/providers/screen/styles/slot.provider.tsx +36 -54
  435. package/src/shared/providers/screen/styles/stores/slot-references.store.ts +71 -0
  436. package/src/shared/stores/bounds/helpers/link-pairs.helpers.ts +24 -1
  437. package/src/shared/stores/bounds/internals/entries.ts +13 -5
  438. package/src/shared/stores/bounds/internals/links.ts +167 -85
  439. package/src/shared/stores/bounds/internals/resolver.ts +0 -2
  440. package/src/shared/stores/bounds/types.ts +10 -22
  441. package/src/shared/stores/system.store.ts +6 -0
  442. package/src/shared/types/animation.types.ts +8 -1
  443. package/src/shared/types/index.ts +5 -0
  444. package/src/shared/types/screen.types.ts +111 -4
  445. package/src/shared/utils/bounds/helpers/styles/compute.ts +22 -124
  446. package/src/shared/utils/bounds/helpers/styles/local-transform.ts +86 -0
  447. package/src/shared/utils/bounds/types/options.ts +2 -0
  448. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-presence.js.map +0 -1
  449. package/lib/commonjs/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +0 -1
  450. package/lib/commonjs/shared/components/boundary/hooks/use-initial-source-measurement.js.map +0 -1
  451. package/lib/commonjs/shared/components/boundary/hooks/use-refresh-boundary.js.map +0 -1
  452. package/lib/commonjs/shared/components/boundary/portal/resolve-portal.js +0 -36
  453. package/lib/commonjs/shared/components/boundary/portal/resolve-portal.js.map +0 -1
  454. package/lib/commonjs/shared/components/boundary/portal/utils/attachment.js +0 -40
  455. package/lib/commonjs/shared/components/boundary/portal/utils/attachment.js.map +0 -1
  456. package/lib/module/shared/components/boundary/hooks/use-boundary-presence.js.map +0 -1
  457. package/lib/module/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +0 -1
  458. package/lib/module/shared/components/boundary/hooks/use-initial-source-measurement.js.map +0 -1
  459. package/lib/module/shared/components/boundary/hooks/use-refresh-boundary.js.map +0 -1
  460. package/lib/module/shared/components/boundary/portal/resolve-portal.js +0 -31
  461. package/lib/module/shared/components/boundary/portal/resolve-portal.js.map +0 -1
  462. package/lib/module/shared/components/boundary/portal/utils/attachment.js +0 -35
  463. package/lib/module/shared/components/boundary/portal/utils/attachment.js.map +0 -1
  464. package/lib/typescript/shared/components/boundary/hooks/use-boundary-presence.d.ts +0 -9
  465. package/lib/typescript/shared/components/boundary/hooks/use-boundary-presence.d.ts.map +0 -1
  466. package/lib/typescript/shared/components/boundary/hooks/use-initial-destination-measurement.d.ts.map +0 -1
  467. package/lib/typescript/shared/components/boundary/hooks/use-initial-source-measurement.d.ts +0 -9
  468. package/lib/typescript/shared/components/boundary/hooks/use-initial-source-measurement.d.ts.map +0 -1
  469. package/lib/typescript/shared/components/boundary/hooks/use-refresh-boundary.d.ts.map +0 -1
  470. package/lib/typescript/shared/components/boundary/portal/resolve-portal.d.ts +0 -14
  471. package/lib/typescript/shared/components/boundary/portal/resolve-portal.d.ts.map +0 -1
  472. package/lib/typescript/shared/components/boundary/portal/utils/attachment.d.ts +0 -21
  473. package/lib/typescript/shared/components/boundary/portal/utils/attachment.d.ts.map +0 -1
  474. package/src/shared/components/boundary/portal/resolve-portal.ts +0 -40
  475. package/src/shared/components/boundary/portal/utils/attachment.ts +0 -48
@@ -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":[]}
@@ -7,7 +7,6 @@ import { applyMeasuredBoundsWrites } from "../../../providers/helpers/measured-b
7
7
  import { useOriginContext } from "../../../providers/screen/origin.provider";
8
8
  import { ScrollStore } from "../../../stores/scroll.store";
9
9
  import { SystemStore } from "../../../stores/system.store";
10
- import { getActiveScrollHost } from "../portal/stores/host-registry.store";
11
10
  import { attachScrollSnapshotToMeasuredBounds, isMeasurementInViewport, measureWithOverscrollAwareness, normalizeMeasuredBoundsToOrigin } from "../utils/measured-bounds";
12
11
  export const useMeasurer = ({
13
12
  enabled,
@@ -15,7 +14,8 @@ export const useMeasurer = ({
15
14
  currentScreenKey,
16
15
  preparedStyles,
17
16
  measuredAnimatedRef,
18
- portalHost
17
+ handoff,
18
+ escapeClipping
19
19
  }) => {
20
20
  const {
21
21
  width: viewportWidth,
@@ -47,7 +47,6 @@ export const useMeasurer = ({
47
47
  const viewportAllowsDestinationWrite = target.type !== "destination" || !shouldGuardDestinationViewport || isMeasurementInViewport(normalizedMeasured, viewportWidth, viewportHeight);
48
48
  if (!viewportAllowsDestinationWrite) return;
49
49
  const measuredWithScroll = attachScrollSnapshotToMeasuredBounds(normalizedMeasured, scrollMetadata.get());
50
- const sourceHost = target.type === "source" ? getActiveScrollHost(currentScreenKey) ?? undefined : undefined;
51
50
  applyMeasuredBoundsWrites({
52
51
  entryTag: boundTag.tag,
53
52
  linkId: boundTag.linkKey,
@@ -56,9 +55,9 @@ export const useMeasurer = ({
56
55
  measured: measuredWithScroll,
57
56
  preparedStyles,
58
57
  linkWrite: target,
59
- portalHost,
60
- sourceHost
58
+ handoff,
59
+ escapeClipping
61
60
  });
62
- }, [enabled, boundTag, currentScreenKey, preparedStyles, measuredAnimatedRef, portalHost, viewportWidth, viewportHeight, scrollState, scrollMetadata, pendingLifecycleStartBlockCount, originRef]);
61
+ }, [enabled, boundTag, currentScreenKey, preparedStyles, measuredAnimatedRef, handoff, escapeClipping, viewportWidth, viewportHeight, scrollState, scrollMetadata, pendingLifecycleStartBlockCount, originRef]);
63
62
  };
64
63
  //# sourceMappingURL=use-measurer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useWindowDimensions","measure","applyMeasuredBoundsWrites","useOriginContext","ScrollStore","SystemStore","getActiveScrollHost","attachScrollSnapshotToMeasuredBounds","isMeasurementInViewport","measureWithOverscrollAwareness","normalizeMeasuredBoundsToOrigin","useMeasurer","enabled","boundTag","currentScreenKey","preparedStyles","measuredAnimatedRef","portalHost","width","viewportWidth","height","viewportHeight","scrollState","getValue","scrollMetadata","pendingLifecycleStartBlockCount","originRef","target","measured","get","measuredOrigin","normalizedMeasured","shouldGuardDestinationViewport","group","viewportAllowsDestinationWrite","type","measuredWithScroll","sourceHost","undefined","entryTag","tag","linkId","linkKey","linkWrite"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-measurer.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAASC,mBAAmB,QAAQ,cAAc;AAClD,SAECC,OAAO,QAED,yBAAyB;AAChC,SAASC,yBAAyB,QAAQ,mDAAmD;AAC7F,SAASC,gBAAgB,QAAQ,2CAA2C;AAK5E,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,mBAAmB,QAAQ,sCAAsC;AAE1E,SACCC,oCAAoC,EACpCC,uBAAuB,EACvBC,8BAA8B,EAC9BC,+BAA+B,QACzB,0BAA0B;AAWjC,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAC3BC,OAAO;EACPC,QAAQ;EACRC,gBAAgB;EAChBC,cAAc;EACdC,mBAAmB;EACnBC;AACkB,CAAC,KAAsB;EACzC,MAAM;IAAEC,KAAK,EAAEC,aAAa;IAAEC,MAAM,EAAEC;EAAe,CAAC,GACrDrB,mBAAmB,CAAC,CAAC;EAEtB,MAAMsB,WAAW,GAAGlB,WAAW,CAACmB,QAAQ,CAACT,gBAAgB,EAAE,cAAc,CAAC;EAC1E,MAAMU,cAAc,GAAGpB,WAAW,CAACmB,QAAQ,CAACT,gBAAgB,EAAE,UAAU,CAAC;EACzE,MAAMW,+BAA+B,GAAGpB,WAAW,CAACkB,QAAQ,CAC3DT,gBAAgB,EAChB,iCACD,CAAC;EACD,MAAM;IAAEY;EAAU,CAAC,GAAGvB,gBAAgB,CAAC,CAAC;EAExC,OAAOJ,WAAW,CAChB4B,MAAM,IAAK;IACX,SAAS;;IACT,IAAI,CAACf,OAAO,EAAE;IAEd,MAAMgB,QAAQ,GAAGnB,8BAA8B,CAC9CO,mBAAmB,EACnBM,WAAW,CAACO,GAAG,CAAC,CACjB,CAAC;IACD,MAAMC,cAAc,GAAG7B,OAAO,CAACyB,SAAS,CAAC;IAEzC,IAAI,CAACE,QAAQ,IAAI,CAACE,cAAc,EAAE;IAElC,MAAMC,kBAAkB,GAAGrB,+BAA+B,CACzDkB,QAAQ,EACRE,cACD,CAAC;;IAED;AACH;AACA;AACA;AACA;AACA;AACA;IACG,MAAME,8BAA8B,GACnCP,+BAA+B,CAACI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAChB,QAAQ,CAACoB,KAAK;IAE9D,MAAMC,8BAA8B,GACnCP,MAAM,CAACQ,IAAI,KAAK,aAAa,IAC7B,CAACH,8BAA8B,IAC/BxB,uBAAuB,CACtBuB,kBAAkB,EAClBZ,aAAa,EACbE,cACD,CAAC;IAEF,IAAI,CAACa,8BAA8B,EAAE;IAErC,MAAME,kBAAkB,GAAG7B,oCAAoC,CAC9DwB,kBAAkB,EAClBP,cAAc,CAACK,GAAG,CAAC,CACpB,CAAC;IACD,MAAMQ,UAAU,GACfV,MAAM,CAACQ,IAAI,KAAK,QAAQ,GACpB7B,mBAAmB,CAACQ,gBAAgB,CAAC,IAAIwB,SAAS,GACnDA,SAAS;IAEbpC,yBAAyB,CAAC;MACzBqC,QAAQ,EAAE1B,QAAQ,CAAC2B,GAAG;MACtBC,MAAM,EAAE5B,QAAQ,CAAC6B,OAAO;MACxBT,KAAK,EAAEpB,QAAQ,CAACoB,KAAK;MACrBnB,gBAAgB;MAChBc,QAAQ,EAAEQ,kBAAkB;MAC5BrB,cAAc;MACd4B,SAAS,EAAEhB,MAAM;MACjBV,UAAU;MACVoB;IACD,CAAC,CAAC;EACH,CAAC,EACD,CACCzB,OAAO,EACPC,QAAQ,EACRC,gBAAgB,EAChBC,cAAc,EACdC,mBAAmB,EACnBC,UAAU,EACVE,aAAa,EACbE,cAAc,EACdC,WAAW,EACXE,cAAc,EACdC,+BAA+B,EAC/BC,SAAS,CAEX,CAAC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useWindowDimensions","measure","applyMeasuredBoundsWrites","useOriginContext","ScrollStore","SystemStore","attachScrollSnapshotToMeasuredBounds","isMeasurementInViewport","measureWithOverscrollAwareness","normalizeMeasuredBoundsToOrigin","useMeasurer","enabled","boundTag","currentScreenKey","preparedStyles","measuredAnimatedRef","handoff","escapeClipping","width","viewportWidth","height","viewportHeight","scrollState","getValue","scrollMetadata","pendingLifecycleStartBlockCount","originRef","target","measured","get","measuredOrigin","normalizedMeasured","shouldGuardDestinationViewport","group","viewportAllowsDestinationWrite","type","measuredWithScroll","entryTag","tag","linkId","linkKey","linkWrite"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-measurer.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAASC,mBAAmB,QAAQ,cAAc;AAClD,SAECC,OAAO,QAED,yBAAyB;AAChC,SAASC,yBAAyB,QAAQ,mDAAmD;AAC7F,SAASC,gBAAgB,QAAQ,2CAA2C;AAE5E,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,WAAW,QAAQ,8BAA8B;AAE1D,SACCC,oCAAoC,EACpCC,uBAAuB,EACvBC,8BAA8B,EAC9BC,+BAA+B,QACzB,0BAA0B;AAYjC,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAC3BC,OAAO;EACPC,QAAQ;EACRC,gBAAgB;EAChBC,cAAc;EACdC,mBAAmB;EACnBC,OAAO;EACPC;AACkB,CAAC,KAAsB;EACzC,MAAM;IAAEC,KAAK,EAAEC,aAAa;IAAEC,MAAM,EAAEC;EAAe,CAAC,GACrDrB,mBAAmB,CAAC,CAAC;EAEtB,MAAMsB,WAAW,GAAGlB,WAAW,CAACmB,QAAQ,CAACV,gBAAgB,EAAE,cAAc,CAAC;EAC1E,MAAMW,cAAc,GAAGpB,WAAW,CAACmB,QAAQ,CAACV,gBAAgB,EAAE,UAAU,CAAC;EACzE,MAAMY,+BAA+B,GAAGpB,WAAW,CAACkB,QAAQ,CAC3DV,gBAAgB,EAChB,iCACD,CAAC;EACD,MAAM;IAAEa;EAAU,CAAC,GAAGvB,gBAAgB,CAAC,CAAC;EAExC,OAAOJ,WAAW,CAChB4B,MAAM,IAAK;IACX,SAAS;;IACT,IAAI,CAAChB,OAAO,EAAE;IAEd,MAAMiB,QAAQ,GAAGpB,8BAA8B,CAC9CO,mBAAmB,EACnBO,WAAW,CAACO,GAAG,CAAC,CACjB,CAAC;IACD,MAAMC,cAAc,GAAG7B,OAAO,CAACyB,SAAS,CAAC;IAEzC,IAAI,CAACE,QAAQ,IAAI,CAACE,cAAc,EAAE;IAElC,MAAMC,kBAAkB,GAAGtB,+BAA+B,CACzDmB,QAAQ,EACRE,cACD,CAAC;;IAED;AACH;AACA;AACA;AACA;AACA;AACA;IACG,MAAME,8BAA8B,GACnCP,+BAA+B,CAACI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAACjB,QAAQ,CAACqB,KAAK;IAE9D,MAAMC,8BAA8B,GACnCP,MAAM,CAACQ,IAAI,KAAK,aAAa,IAC7B,CAACH,8BAA8B,IAC/BzB,uBAAuB,CACtBwB,kBAAkB,EAClBZ,aAAa,EACbE,cACD,CAAC;IAEF,IAAI,CAACa,8BAA8B,EAAE;IAErC,MAAME,kBAAkB,GAAG9B,oCAAoC,CAC9DyB,kBAAkB,EAClBP,cAAc,CAACK,GAAG,CAAC,CACpB,CAAC;IAED3B,yBAAyB,CAAC;MACzBmC,QAAQ,EAAEzB,QAAQ,CAAC0B,GAAG;MACtBC,MAAM,EAAE3B,QAAQ,CAAC4B,OAAO;MACxBP,KAAK,EAAErB,QAAQ,CAACqB,KAAK;MACrBpB,gBAAgB;MAChBe,QAAQ,EAAEQ,kBAAkB;MAC5BtB,cAAc;MACd2B,SAAS,EAAEd,MAAM;MACjBX,OAAO;MACPC;IACD,CAAC,CAAC;EACH,CAAC,EACD,CACCN,OAAO,EACPC,QAAQ,EACRC,gBAAgB,EAChBC,cAAc,EACdC,mBAAmB,EACnBC,OAAO,EACPC,cAAc,EACdE,aAAa,EACbE,cAAc,EACdC,WAAW,EACXE,cAAc,EACdC,+BAA+B,EAC/BC,SAAS,CAEX,CAAC;AACF,CAAC","ignoreList":[]}
@@ -1,54 +1,51 @@
1
1
  "use strict";
2
2
 
3
+ import { forwardRef } from "react";
3
4
  import { Pressable, View } from "react-native";
4
5
  import { BoundaryTarget } from "./components/boundary-target";
5
6
  import { createBoundaryComponent } from "./create-boundary-component";
6
7
  import { Host } from "./portal";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
7
9
  export { createBoundaryComponent };
8
- const BoundaryView = createBoundaryComponent(View, {
9
- shouldAutoMeasure: true
10
+ const BoundaryPrimitive = /*#__PURE__*/forwardRef((props, ref) => {
11
+ const Component = "onPress" in props ? Pressable : View;
12
+ return /*#__PURE__*/_jsx(Component, {
13
+ ...props,
14
+ ref: ref
15
+ });
10
16
  });
17
+ BoundaryPrimitive.displayName = "Transition.Boundary.Primitive";
18
+ const BoundaryRoot = createBoundaryComponent(BoundaryPrimitive);
19
+ const BoundaryView = createBoundaryComponent(View);
11
20
  const BoundaryTrigger = createBoundaryComponent(Pressable);
21
+ BoundaryRoot.displayName = "Transition.Boundary";
12
22
  BoundaryView.displayName = "Transition.Boundary.View";
13
23
  BoundaryTrigger.displayName = "Transition.Boundary.Trigger";
14
24
  BoundaryTarget.displayName = "Transition.Boundary.Target";
15
25
  Host.displayName = "Transition.Boundary.Host";
16
26
 
17
27
  /**
18
- * Shared-boundary components.
28
+ * Shared-boundary component with static helpers.
19
29
  *
20
30
  * How measurement works:
21
- * 1. Source screen captures bounds for a tag.
22
- * 2. Destination screen captures bounds for the same tag.
23
- * 3. The link is updated as layout changes (group-active + scroll-settled paths).
31
+ * 1. Destination screen captures bounds for a tag.
32
+ * 2. Source screen captures bounds for the same concrete pair.
33
+ * 3. The link is updated as layout changes.
24
34
  *
25
- * Trigger behavior:
26
- * - When a boundary has `onPress` (typically `Boundary.Trigger`), source
27
- * measurement runs before the user callback. This gives navigation transitions
28
- * fresh source geometry on the first frame.
35
+ * Runtime primitive:
36
+ * - With an `onPress` handler, the root renders as a Pressable.
37
+ * - Without an `onPress` handler, the root renders as a View.
29
38
  *
30
39
  * Use:
31
- * - `Boundary.View` for passive/shared elements.
32
- * - `Boundary.Trigger` for tappable elements that start navigation.
40
+ * - `Boundary` for passive and pressable shared elements.
33
41
  * - `Boundary.Target` to measure a nested descendant instead of the root.
34
42
  * - `Boundary.Host` to make nested portal placement explicit.
35
43
  */
36
- export const Boundary = {
37
- /**
38
- * Passive boundary wrapper (no built-in press semantics).
39
- */
40
- View: BoundaryView,
41
- /**
42
- * Pressable boundary wrapper with press-priority source capture.
43
- */
44
- Trigger: BoundaryTrigger,
45
- /**
46
- * Optional nested measurement override inside a boundary root.
47
- */
44
+
45
+ export const Boundary = Object.assign(BoundaryRoot, {
48
46
  Target: BoundaryTarget,
49
- /**
50
- * Explicit portal host for scrollable or otherwise clipped coordinate spaces.
51
- */
52
- Host: Host
53
- };
47
+ Host,
48
+ View: BoundaryView,
49
+ Trigger: BoundaryTrigger
50
+ });
54
51
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Pressable","View","BoundaryTarget","createBoundaryComponent","Host","BoundaryView","shouldAutoMeasure","BoundaryTrigger","displayName","Boundary","Trigger","Target"],"sourceRoot":"../../../../../src","sources":["shared/components/boundary/index.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,IAAI,QAAQ,cAAc;AAC9C,SAASC,cAAc,QAAQ,8BAA8B;AAC7D,SAASC,uBAAuB,QAAQ,6BAA6B;AACrE,SAASC,IAAI,QAAQ,UAAU;AAO/B,SAASD,uBAAuB;AAEhC,MAAME,YAAY,GAAGF,uBAAuB,CAACF,IAAI,EAAE;EAClDK,iBAAiB,EAAE;AACpB,CAAC,CAAC;AACF,MAAMC,eAAe,GAAGJ,uBAAuB,CAACH,SAAS,CAAC;AAC1DK,YAAY,CAACG,WAAW,GAAG,0BAA0B;AACrDD,eAAe,CAACC,WAAW,GAAG,6BAA6B;AAC3DN,cAAc,CAACM,WAAW,GAAG,4BAA4B;AACzDJ,IAAI,CAACI,WAAW,GAAG,0BAA0B;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,QAAQ,GAAG;EACvB;AACD;AACA;EACCR,IAAI,EAAEI,YAAY;EAClB;AACD;AACA;EACCK,OAAO,EAAEH,eAAe;EACxB;AACD;AACA;EACCI,MAAM,EAAET,cAAc;EACtB;AACD;AACA;EACCE,IAAI,EAAEA;AACP,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","Pressable","View","BoundaryTarget","createBoundaryComponent","Host","jsx","_jsx","BoundaryPrimitive","props","ref","Component","displayName","BoundaryRoot","BoundaryView","BoundaryTrigger","Boundary","Object","assign","Target","Trigger"],"sourceRoot":"../../../../../src","sources":["shared/components/boundary/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SACCC,SAAS,EAETC,IAAI,QAEE,cAAc;AACrB,SAASC,cAAc,QAAQ,8BAA8B;AAC7D,SAASC,uBAAuB,QAAQ,6BAA6B;AACrE,SAASC,IAAI,QAAQ,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGhC,SAASH,uBAAuB;AAOhC,MAAMI,iBAAiB,gBAAGR,UAAU,CACnC,CAACS,KAAK,EAAEC,GAAG,KAAK;EACf,MAAMC,SAAS,GAAG,SAAS,IAAIF,KAAK,GAAGR,SAAS,GAAGC,IAAI;EAEvD,oBAAOK,IAAA,CAACI,SAAS;IAAA,GAAMF,KAAK;IAAUC,GAAG,EAAEA;EAAW,CAAE,CAAC;AAC1D,CACD,CAAC;AAEDF,iBAAiB,CAACI,WAAW,GAAG,+BAA+B;AAE/D,MAAMC,YAAY,GAAGT,uBAAuB,CAACI,iBAAiB,CAAC;AAC/D,MAAMM,YAAY,GAAGV,uBAAuB,CAACF,IAAI,CAAC;AAClD,MAAMa,eAAe,GAAGX,uBAAuB,CAACH,SAAS,CAAC;AAC1DY,YAAY,CAACD,WAAW,GAAG,qBAAqB;AAChDE,YAAY,CAACF,WAAW,GAAG,0BAA0B;AACrDG,eAAe,CAACH,WAAW,GAAG,6BAA6B;AAC3DT,cAAc,CAACS,WAAW,GAAG,4BAA4B;AACzDP,IAAI,CAACO,WAAW,GAAG,0BAA0B;;AAI7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAsBA,OAAO,MAAMI,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAACL,YAAY,EAAE;EACnDM,MAAM,EAAEhB,cAAc;EACtBE,IAAI;EACJH,IAAI,EAAEY,YAAY;EAClBM,OAAO,EAAEL;AACV,CAAC,CAAsB","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ import { memo, useCallback, useLayoutEffect } from "react";
4
+ import { StyleSheet, View } from "react-native";
5
+ import Animated from "react-native-reanimated";
6
+ import { SystemStore } from "../../../../stores/system.store";
7
+ import { NativePortalHost } from "../teleport";
8
+ import { createBoundaryLocalPortalHostName } from "../utils/naming";
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ const AnimatedPortalHost = NativePortalHost ? Animated.createAnimatedComponent(NativePortalHost) : null;
11
+ export const BoundaryLocalPortalHost = /*#__PURE__*/memo(function BoundaryLocalPortalHost({
12
+ boundaryId,
13
+ enabled,
14
+ screenKey
15
+ }) {
16
+ const {
17
+ drainLifecycleStartBlocks
18
+ } = SystemStore.getBag(screenKey).actions;
19
+ const handleLayout = useCallback(() => {
20
+ drainLifecycleStartBlocks();
21
+ }, [drainLifecycleStartBlocks]);
22
+ useLayoutEffect(() => {
23
+ if (!enabled || !AnimatedPortalHost) {
24
+ return;
25
+ }
26
+ drainLifecycleStartBlocks();
27
+ }, [enabled, drainLifecycleStartBlocks]);
28
+ if (!enabled || !AnimatedPortalHost) {
29
+ return null;
30
+ }
31
+ const portalHostName = createBoundaryLocalPortalHostName(screenKey, boundaryId);
32
+ return /*#__PURE__*/_jsx(View, {
33
+ pointerEvents: "none",
34
+ style: styles.hostWrapper,
35
+ onLayout: handleLayout,
36
+ collapsable: false,
37
+ children: /*#__PURE__*/_jsx(AnimatedPortalHost, {
38
+ name: portalHostName,
39
+ style: styles.host
40
+ })
41
+ });
42
+ });
43
+ const styles = StyleSheet.create({
44
+ host: {
45
+ ...StyleSheet.absoluteFillObject,
46
+ overflow: "visible"
47
+ },
48
+ hostWrapper: {
49
+ ...StyleSheet.absoluteFillObject,
50
+ overflow: "visible"
51
+ }
52
+ });
53
+ //# sourceMappingURL=boundary-local-portal-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useCallback","useLayoutEffect","StyleSheet","View","Animated","SystemStore","NativePortalHost","createBoundaryLocalPortalHostName","jsx","_jsx","AnimatedPortalHost","createAnimatedComponent","BoundaryLocalPortalHost","boundaryId","enabled","screenKey","drainLifecycleStartBlocks","getBag","actions","handleLayout","portalHostName","pointerEvents","style","styles","hostWrapper","onLayout","collapsable","children","name","host","create","absoluteFillObject","overflow"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-local-portal-host.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,WAAW,EAAEC,eAAe,QAAQ,OAAO;AAC1D,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,WAAW,QAAQ,iCAAiC;AAC7D,SAASC,gBAAgB,QAAQ,aAAa;AAC9C,SAASC,iCAAiC,QAAQ,iBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEpE,MAAMC,kBAAkB,GAAGJ,gBAAgB,GACxCF,QAAQ,CAACO,uBAAuB,CAACL,gBAAgB,CAAC,GAClD,IAAI;AAQP,OAAO,MAAMM,uBAAuB,gBAAGb,IAAI,CAAC,SAASa,uBAAuBA,CAAC;EAC5EC,UAAU;EACVC,OAAO;EACPC;AAC6B,CAAC,EAAE;EAChC,MAAM;IAAEC;EAA0B,CAAC,GAAGX,WAAW,CAACY,MAAM,CAACF,SAAS,CAAC,CAACG,OAAO;EAC3E,MAAMC,YAAY,GAAGnB,WAAW,CAAC,MAAM;IACtCgB,yBAAyB,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACA,yBAAyB,CAAC,CAAC;EAE/Bf,eAAe,CAAC,MAAM;IACrB,IAAI,CAACa,OAAO,IAAI,CAACJ,kBAAkB,EAAE;MACpC;IACD;IAEAM,yBAAyB,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACF,OAAO,EAAEE,yBAAyB,CAAC,CAAC;EAExC,IAAI,CAACF,OAAO,IAAI,CAACJ,kBAAkB,EAAE;IACpC,OAAO,IAAI;EACZ;EAEA,MAAMU,cAAc,GAAGb,iCAAiC,CACvDQ,SAAS,EACTF,UACD,CAAC;EAED,oBACCJ,IAAA,CAACN,IAAI;IACJkB,aAAa,EAAC,MAAM;IACpBC,KAAK,EAAEC,MAAM,CAACC,WAAY;IAC1BC,QAAQ,EAAEN,YAAa;IACvBO,WAAW,EAAE,KAAM;IAAAC,QAAA,eAEnBlB,IAAA,CAACC,kBAAkB;MAACkB,IAAI,EAAER,cAAe;MAACE,KAAK,EAAEC,MAAM,CAACM;IAAK,CAAE;EAAC,CAC3D,CAAC;AAET,CAAC,CAAC;AAEF,MAAMN,MAAM,GAAGrB,UAAU,CAAC4B,MAAM,CAAC;EAChCD,IAAI,EAAE;IACL,GAAG3B,UAAU,CAAC6B,kBAAkB;IAChCC,QAAQ,EAAE;EACX,CAAC;EACDR,WAAW,EAAE;IACZ,GAAGtB,UAAU,CAAC6B,kBAAkB;IAChCC,QAAQ,EAAE;EACX;AACD,CAAC,CAAC","ignoreList":[]}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import { memo, useLayoutEffect, useRef } from "react";
3
+ import { memo, useCallback, useLayoutEffect, useRef } from "react";
4
4
  import { StyleSheet, useWindowDimensions, View } from "react-native";
5
5
  import Animated from "react-native-reanimated";
6
6
  import { useDescriptorsStore } from "../../../../providers/screen/descriptors";
7
+ import { SystemStore } from "../../../../stores/system.store";
7
8
  import { useHostMeasurement } from "../hooks/use-host-measurement";
8
9
  import { registerHost, unregisterHost } from "../stores/host-registry.store";
9
10
  import { useActivePortalBoundaryHosts } from "../stores/portal-boundary-host.store";
@@ -15,6 +16,9 @@ function HostImpl({
15
16
  style
16
17
  }) {
17
18
  const screenKey = useDescriptorsStore(s => s.derivations.currentScreenKey);
19
+ const {
20
+ drainLifecycleStartBlocks
21
+ } = SystemStore.getBag(screenKey).actions;
18
22
  const generatedHostKeyRef = useRef(null);
19
23
  if (generatedHostKeyRef.current === null) {
20
24
  generatedHostKeyRef.current = `${screenKey}-host-${nextHostId++}`;
@@ -43,20 +47,32 @@ function HostImpl({
43
47
  unregisterHost(screenKey, hostKey);
44
48
  };
45
49
  }, [capturesScroll, fallback, hostKey, screenKey]);
46
- const boundaryHosts = measurement.canRenderHosts ? activeBoundaryHosts.map(host => /*#__PURE__*/_jsx(View, {
47
- pointerEvents: "box-none",
50
+ const handleUnblocking = useCallback(() => {
51
+ // Screen-level escape keeps the open transition gated until portal hosts
52
+ // have committed layout. A screen may render more than one portal boundary
53
+ // host for the same lifecycle request, so the final host layout drains the
54
+ // outstanding start blocks for this screen.
55
+ drainLifecycleStartBlocks();
56
+ }, [drainLifecycleStartBlocks]);
57
+ const boundaryHosts = measurement.canRenderHosts ? activeBoundaryHosts.map((host, idx, list) => /*#__PURE__*/_jsx(View, {
58
+ pointerEvents: "none",
48
59
  style: [styles.boundaryHostViewport, {
49
60
  width: viewportWidth,
50
61
  height: viewportHeight
51
62
  }],
63
+ onLayout: () => {
64
+ if (list.length - 1 === idx) {
65
+ handleUnblocking();
66
+ }
67
+ },
52
68
  children: /*#__PURE__*/_jsx(PortalBoundaryHost, {
53
69
  host: host,
54
70
  style: StyleSheet.absoluteFill
55
71
  })
56
- }, host.boundaryId)) : null;
72
+ }, host.portalHostName)) : null;
57
73
  return /*#__PURE__*/_jsx(Animated.View, {
58
74
  ref: measurement.hostRef,
59
- pointerEvents: "box-none",
75
+ pointerEvents: "none",
60
76
  style: [styles.host, {
61
77
  width: viewportWidth,
62
78
  height: viewportHeight
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useLayoutEffect","useRef","StyleSheet","useWindowDimensions","View","Animated","useDescriptorsStore","useHostMeasurement","registerHost","unregisterHost","useActivePortalBoundaryHosts","PortalBoundaryHost","jsx","_jsx","nextHostId","HostImpl","fallback","style","screenKey","s","derivations","currentScreenKey","generatedHostKeyRef","current","hostKey","capturesScroll","activeBoundaryHosts","height","viewportHeight","width","viewportWidth","measurement","enabled","length","boundaryHosts","canRenderHosts","map","host","pointerEvents","styles","boundaryHostViewport","children","absoluteFill","boundaryId","ref","hostRef","collapsable","Host","props","ScreenFallbackHost","create","elevation","left","overflow","position","top","zIndex"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/host.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","useCallback","useLayoutEffect","useRef","StyleSheet","useWindowDimensions","View","Animated","useDescriptorsStore","SystemStore","useHostMeasurement","registerHost","unregisterHost","useActivePortalBoundaryHosts","PortalBoundaryHost","jsx","_jsx","nextHostId","HostImpl","fallback","style","screenKey","s","derivations","currentScreenKey","drainLifecycleStartBlocks","getBag","actions","generatedHostKeyRef","current","hostKey","capturesScroll","activeBoundaryHosts","height","viewportHeight","width","viewportWidth","measurement","enabled","length","handleUnblocking","boundaryHosts","canRenderHosts","map","host","idx","list","pointerEvents","styles","boundaryHostViewport","onLayout","children","absoluteFill","portalHostName","ref","hostRef","collapsable","Host","props","ScreenFallbackHost","create","elevation","left","overflow","position","top","zIndex"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/host.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  import { memo } from "react";
4
+ import { StyleSheet } from "react-native";
4
5
  import Animated, { useAnimatedStyle } from "react-native-reanimated";
5
6
  import { NO_STYLES } from "../../../../constants";
7
+ import { composeSlotStyleWithLocalTransform } from "../../../../providers/screen/styles/helpers/compose-slot-style";
6
8
  import { AnimationStore } from "../../../../stores/animation.store";
7
9
  import { getSourceScreenKeyFromPairKey } from "../../../../stores/bounds/helpers/link-pairs.helpers";
8
10
  import { getLink } from "../../../../stores/bounds/internals/links";
9
- import { GestureStore } from "../../../../stores/gesture.store";
10
- import { ScrollStore } from "../../../../stores/scroll.store";
11
+ import { getClampedScrollAxisDelta, ScrollStore } from "../../../../stores/scroll.store";
11
12
  import { NativePortalHost } from "../teleport";
12
- import { createPortalBoundaryHostName } from "../utils/naming";
13
+ import { hasLocalSlot } from "../utils/has-local-slot";
13
14
  import { resolvePortalOffsetStyle } from "../utils/offset-style";
14
15
  import { jsx as _jsx } from "react/jsx-runtime";
15
16
  const AnimatedPortalBoundaryHost = NativePortalHost ? Animated.createAnimatedComponent(NativePortalHost) : null;
@@ -17,12 +18,13 @@ export const PortalBoundaryHost = /*#__PURE__*/memo(function PortalBoundaryHost(
17
18
  host,
18
19
  style
19
20
  }) {
20
- const hostName = createPortalBoundaryHostName(host.hostKey, host.boundaryId);
21
- const hostClosing = AnimationStore.getValue(host.screenKey, "closing");
22
- const hostProgress = AnimationStore.getValue(host.screenKey, "transitionProgress");
23
- const hostGestureDismissing = GestureStore.getValue(host.screenKey, "dismissing");
24
- const hostScrollMetadata = ScrollStore.getValue(host.screenKey, "metadata");
21
+ // Cross-screen landing-rect scroll tracking: the flight interpolates toward
22
+ // the source rect stored at measure time, but the source screen stays
23
+ // scrollable while the pair closes (destination pointer events are
24
+ // released). These are read per-frame so the landing point follows the
25
+ // live source scroll instead of the stale snapshot.
25
26
  const sourceScrollMetadata = ScrollStore.getValue(getSourceScreenKeyFromPairKey(host.pairKey), "metadata");
27
+ const hostVisualProgress = AnimationStore.getValue(host.screenKey, "visualProgress");
26
28
  const hostStyle = useAnimatedStyle(() => {
27
29
  "worklet";
28
30
 
@@ -32,38 +34,87 @@ export const PortalBoundaryHost = /*#__PURE__*/memo(function PortalBoundaryHost(
32
34
  if (!link?.source || !link.destination) {
33
35
  return NO_STYLES;
34
36
  }
35
-
36
- // Make the coordinate case explicit before resolving the host offset.
37
- // The resolver owns the math; this component decides which screen/scroll
38
- // relationship the active portal is in.
37
+ const sourceBounds = link.source.bounds;
39
38
  const isCrossScreenPortal = link.source.screenKey !== host.screenKey;
40
- const isHostClosing = hostClosing.get() === 1 || hostGestureDismissing.get() === 1;
41
- const placement = !isCrossScreenPortal ? "same-screen" : isHostClosing ? "cross-screen-close" : "cross-screen-open";
39
+ let landingShift;
40
+ if (isCrossScreenPortal) {
41
+ // Weight by distance-to-landing so the destination end of the flight
42
+ // stays pinned: no correction while the content sits over the
43
+ // destination rect (progress 1), full correction at touchdown on the
44
+ // source rect (progress 0).
45
+ const landingWeight = 1 - Math.min(Math.max(hostVisualProgress.get(), 0), 1);
46
+ if (landingWeight > 0) {
47
+ const liveScroll = sourceScrollMetadata.get();
48
+ const capturedScroll = sourceBounds.scroll ?? null;
42
49
 
43
- // A source that originated inside its own scroll host moves with that
44
- // ScrollView while this portal stays attached over here. Shifting the
45
- // source rect by the clamped source scroll travel keeps the return
46
- // landing point on the live placeholder, so the close detach is seamless.
47
- const trackSourceScroll = isCrossScreenPortal && link.source.sourceHost?.capturesScroll === true;
50
+ // Scroll offset grows as content moves up/left, so the rect's
51
+ // on-screen position shifts by the negative delta.
52
+ landingShift = {
53
+ x: -getClampedScrollAxisDelta(liveScroll, capturedScroll, "horizontal") * landingWeight,
54
+ y: -getClampedScrollAxisDelta(liveScroll, capturedScroll, "vertical") * landingWeight
55
+ };
56
+ }
57
+ }
48
58
  return resolvePortalOffsetStyle({
49
- bounds: link.source.bounds,
50
- hostCurrentScroll: placement === "cross-screen-close" ? hostScrollMetadata.get() : null,
59
+ bounds: sourceBounds,
51
60
  hostKey: host.hostKey,
52
- placement,
53
- sourceCurrentScroll: trackSourceScroll ? sourceScrollMetadata.get() : null,
54
- hostProgress: hostProgress.get(),
55
- trackSourceScroll
61
+ placement: isCrossScreenPortal ? "cross-screen" : "same-screen",
62
+ landingShift
56
63
  });
57
64
  });
65
+ const contentFrameStyle = useAnimatedStyle(() => {
66
+ "worklet";
67
+
68
+ const link = getLink(host.pairKey, host.boundaryId);
69
+ if (!link?.source || !link.destination) {
70
+ return NO_STYLES;
71
+ }
72
+ const sourceBounds = link.source.bounds;
73
+ return {
74
+ height: sourceBounds.height,
75
+ width: sourceBounds.width
76
+ };
77
+ });
78
+ const slotStyle = useAnimatedStyle(() => {
79
+ "worklet";
80
+
81
+ // `slotsMap` is the resolved map: it may contain real interpolator output,
82
+ // inherited styles, or resolver-created reset patches for slots that just
83
+ // disappeared. Normal components need those reset patches so stale styles
84
+ // clear correctly.
85
+ //
86
+ // A screen-level portal host is different. It is only the temporary visual
87
+ // receiver for teleported content, not the original component that needs a
88
+ // cleanup frame. If the current local interpolator layers did not emit this
89
+ // boundary id, any resolved style here is cleanup/stale residue and should
90
+ // not be drawn by the host.
91
+ if (host.escapeClipping && !hasLocalSlot(host.localStylesMaps.get(), host.boundaryId)) {
92
+ return NO_STYLES;
93
+ }
94
+ const slot = host.slotsMap.get()[host.boundaryId];
95
+ return composeSlotStyleWithLocalTransform(slot?.style ?? NO_STYLES, undefined, slot?.boundsLocalTransform);
96
+ });
58
97
 
59
98
  // Without `react-native-teleport` no portal ever mounts a boundary host, so
60
99
  // this never renders — the guard just narrows the nullable animated host.
61
100
  if (!AnimatedPortalBoundaryHost) {
62
101
  return null;
63
102
  }
64
- return /*#__PURE__*/_jsx(AnimatedPortalBoundaryHost, {
65
- name: hostName,
66
- style: [style, hostStyle]
103
+ return /*#__PURE__*/_jsx(Animated.View, {
104
+ pointerEvents: "none",
105
+ style: [style, hostStyle],
106
+ collapsable: false,
107
+ children: /*#__PURE__*/_jsx(AnimatedPortalBoundaryHost, {
108
+ name: host.portalHostName,
109
+ style: [styles.content, contentFrameStyle, slotStyle]
110
+ })
67
111
  });
68
112
  });
113
+ const styles = StyleSheet.create({
114
+ content: {
115
+ left: 0,
116
+ position: "absolute",
117
+ top: 0
118
+ }
119
+ });
69
120
  //# sourceMappingURL=portal-boundary-host.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["memo","Animated","useAnimatedStyle","NO_STYLES","AnimationStore","getSourceScreenKeyFromPairKey","getLink","GestureStore","ScrollStore","NativePortalHost","createPortalBoundaryHostName","resolvePortalOffsetStyle","jsx","_jsx","AnimatedPortalBoundaryHost","createAnimatedComponent","PortalBoundaryHost","host","style","hostName","hostKey","boundaryId","hostClosing","getValue","screenKey","hostProgress","hostGestureDismissing","hostScrollMetadata","sourceScrollMetadata","pairKey","hostStyle","link","source","destination","isCrossScreenPortal","isHostClosing","get","placement","trackSourceScroll","sourceHost","capturesScroll","bounds","hostCurrentScroll","sourceCurrentScroll","name"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/portal-boundary-host.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","StyleSheet","Animated","useAnimatedStyle","NO_STYLES","composeSlotStyleWithLocalTransform","AnimationStore","getSourceScreenKeyFromPairKey","getLink","getClampedScrollAxisDelta","ScrollStore","NativePortalHost","hasLocalSlot","resolvePortalOffsetStyle","jsx","_jsx","AnimatedPortalBoundaryHost","createAnimatedComponent","PortalBoundaryHost","host","style","sourceScrollMetadata","getValue","pairKey","hostVisualProgress","screenKey","hostStyle","link","boundaryId","source","destination","sourceBounds","bounds","isCrossScreenPortal","landingShift","landingWeight","Math","min","max","get","liveScroll","capturedScroll","scroll","x","y","hostKey","placement","contentFrameStyle","height","width","slotStyle","escapeClipping","localStylesMaps","slot","slotsMap","undefined","boundsLocalTransform","View","pointerEvents","collapsable","children","name","portalHostName","styles","content","create","left","position","top"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/portal-boundary-host.tsx"],"mappings":"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","ignoreList":[]}