react-native-screen-transitions 3.9.0-beta.0 → 3.9.0-beta.2

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 (350) hide show
  1. package/lib/commonjs/shared/adapters/with-screen-transitions/index.js +20 -4
  2. package/lib/commonjs/shared/adapters/with-screen-transitions/index.js.map +1 -1
  3. package/lib/commonjs/shared/animation/transition-blocking.js +71 -0
  4. package/lib/commonjs/shared/animation/transition-blocking.js.map +1 -0
  5. package/lib/commonjs/shared/components/boundary/components/boundary-target.js +30 -30
  6. package/lib/commonjs/shared/components/boundary/components/boundary-target.js.map +1 -1
  7. package/lib/commonjs/shared/components/boundary/create-boundary-component.js +30 -95
  8. package/lib/commonjs/shared/components/boundary/create-boundary-component.js.map +1 -1
  9. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +68 -51
  10. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
  11. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js +1 -0
  12. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  13. package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js +14 -2
  14. package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js.map +1 -1
  15. package/lib/commonjs/shared/components/boundary/hooks/use-register-target.js +32 -0
  16. package/lib/commonjs/shared/components/boundary/hooks/use-register-target.js.map +1 -0
  17. package/lib/commonjs/shared/components/boundary/index.js +1 -1
  18. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/components/host.js +40 -0
  19. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/components/host.js.map +1 -0
  20. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.js +14 -0
  21. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.js.map +1 -0
  22. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +194 -0
  23. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -0
  24. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/index.js +44 -0
  25. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/index.js.map +1 -0
  26. package/lib/commonjs/shared/components/boundary/portal/components/{host.js → boundary-portal/components/host.js} +17 -16
  27. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -0
  28. package/lib/commonjs/shared/components/boundary/portal/components/{portal-boundary-host.js → boundary-portal/components/portal-boundary-host.js} +11 -11
  29. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -0
  30. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js +52 -0
  31. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js.map +1 -0
  32. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js.map +1 -0
  33. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.js +14 -0
  34. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.js.map +1 -0
  35. package/lib/commonjs/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/offset-style.js +1 -1
  36. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.js.map +1 -0
  37. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +184 -0
  38. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -0
  39. package/lib/commonjs/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-host-measurement.js +23 -5
  40. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -0
  41. package/lib/commonjs/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-placeholder-styles.js +3 -6
  42. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.js.map +1 -0
  43. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/index.js +33 -0
  44. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/index.js.map +1 -0
  45. package/lib/commonjs/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-bounds.store.js +1 -1
  46. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.js.map +1 -0
  47. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.js.map +1 -0
  48. package/lib/commonjs/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/portal-boundary-host.store.js +7 -12
  49. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -0
  50. package/lib/commonjs/shared/components/boundary/portal/index.js +1 -8
  51. package/lib/commonjs/shared/components/boundary/portal/index.js.map +1 -1
  52. package/lib/commonjs/shared/components/boundary/portal/teleport.js +2 -2
  53. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js +1 -15
  54. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js.map +1 -1
  55. package/lib/commonjs/shared/components/boundary/portal/utils/ownership.js +19 -56
  56. package/lib/commonjs/shared/components/boundary/portal/utils/ownership.js.map +1 -1
  57. package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js +77 -23
  58. package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
  59. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js +41 -12
  60. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js.map +1 -1
  61. package/lib/commonjs/shared/components/boundary/utils/measured-bounds.js +36 -1
  62. package/lib/commonjs/shared/components/boundary/utils/measured-bounds.js.map +1 -1
  63. package/lib/commonjs/shared/components/screen-container/layers/content.js +1 -1
  64. package/lib/commonjs/shared/configs/presets.js +2 -2
  65. package/lib/commonjs/shared/configs/presets.js.map +1 -1
  66. package/lib/commonjs/shared/index.js +13 -0
  67. package/lib/commonjs/shared/index.js.map +1 -1
  68. package/lib/commonjs/shared/providers/screen/animation/helpers/read-screen-animation-revisions.js +6 -1
  69. package/lib/commonjs/shared/providers/screen/animation/helpers/read-screen-animation-revisions.js.map +1 -1
  70. package/lib/commonjs/shared/providers/screen/styles/helpers/collect-interpolator-shared-values.js +50 -0
  71. package/lib/commonjs/shared/providers/screen/styles/helpers/collect-interpolator-shared-values.js.map +1 -0
  72. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +7 -1
  73. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  74. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -1
  75. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  76. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js +5 -3
  77. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js.map +1 -1
  78. package/lib/commonjs/shared/providers/screen/styles/stores/slot-references.store.js +1 -1
  79. package/lib/commonjs/shared/providers/screen/styles/stores/slot-references.store.js.map +1 -1
  80. package/lib/commonjs/shared/stores/system.store.js +10 -2
  81. package/lib/commonjs/shared/stores/system.store.js.map +1 -1
  82. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js +15 -9
  83. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  84. package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js +2 -2
  85. package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
  86. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js +3 -3
  87. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  88. package/lib/module/shared/adapters/with-screen-transitions/index.js +19 -5
  89. package/lib/module/shared/adapters/with-screen-transitions/index.js.map +1 -1
  90. package/lib/module/shared/animation/transition-blocking.js +66 -0
  91. package/lib/module/shared/animation/transition-blocking.js.map +1 -0
  92. package/lib/module/shared/components/boundary/components/boundary-target.js +32 -32
  93. package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -1
  94. package/lib/module/shared/components/boundary/create-boundary-component.js +32 -97
  95. package/lib/module/shared/components/boundary/create-boundary-component.js.map +1 -1
  96. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +72 -55
  97. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
  98. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js +1 -0
  99. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  100. package/lib/module/shared/components/boundary/hooks/use-measurer.js +15 -3
  101. package/lib/module/shared/components/boundary/hooks/use-measurer.js.map +1 -1
  102. package/lib/module/shared/components/boundary/hooks/use-register-target.js +27 -0
  103. package/lib/module/shared/components/boundary/hooks/use-register-target.js.map +1 -0
  104. package/lib/module/shared/components/boundary/index.js +1 -1
  105. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/components/host.js +35 -0
  106. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/components/host.js.map +1 -0
  107. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.js +9 -0
  108. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.js.map +1 -0
  109. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +189 -0
  110. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -0
  111. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/index.js +33 -0
  112. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/index.js.map +1 -0
  113. package/lib/module/shared/components/boundary/portal/components/{host.js → boundary-portal/components/host.js} +17 -16
  114. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -0
  115. package/lib/module/shared/components/boundary/portal/components/{portal-boundary-host.js → boundary-portal/components/portal-boundary-host.js} +11 -11
  116. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -0
  117. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js +47 -0
  118. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js.map +1 -0
  119. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js.map +1 -0
  120. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.js +9 -0
  121. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.js.map +1 -0
  122. package/lib/module/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/offset-style.js +1 -1
  123. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.js.map +1 -0
  124. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +179 -0
  125. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -0
  126. package/lib/module/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-host-measurement.js +23 -5
  127. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -0
  128. package/lib/module/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-placeholder-styles.js +3 -6
  129. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.js.map +1 -0
  130. package/lib/module/shared/components/boundary/portal/components/boundary-portal/index.js +29 -0
  131. package/lib/module/shared/components/boundary/portal/components/boundary-portal/index.js.map +1 -0
  132. package/lib/module/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-bounds.store.js +1 -1
  133. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.js.map +1 -0
  134. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.js.map +1 -0
  135. package/lib/module/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/portal-boundary-host.store.js +5 -10
  136. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -0
  137. package/lib/module/shared/components/boundary/portal/index.js +1 -2
  138. package/lib/module/shared/components/boundary/portal/index.js.map +1 -1
  139. package/lib/module/shared/components/boundary/portal/teleport.js +2 -2
  140. package/lib/module/shared/components/boundary/portal/utils/naming.js +0 -12
  141. package/lib/module/shared/components/boundary/portal/utils/naming.js.map +1 -1
  142. package/lib/module/shared/components/boundary/portal/utils/ownership.js +16 -52
  143. package/lib/module/shared/components/boundary/portal/utils/ownership.js.map +1 -1
  144. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js +74 -20
  145. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
  146. package/lib/module/shared/components/boundary/utils/destination-signals.js +39 -10
  147. package/lib/module/shared/components/boundary/utils/destination-signals.js.map +1 -1
  148. package/lib/module/shared/components/boundary/utils/measured-bounds.js +34 -0
  149. package/lib/module/shared/components/boundary/utils/measured-bounds.js.map +1 -1
  150. package/lib/module/shared/components/screen-container/layers/content.js +1 -1
  151. package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
  152. package/lib/module/shared/configs/presets.js +2 -2
  153. package/lib/module/shared/configs/presets.js.map +1 -1
  154. package/lib/module/shared/index.js +1 -0
  155. package/lib/module/shared/index.js.map +1 -1
  156. package/lib/module/shared/providers/screen/animation/helpers/read-screen-animation-revisions.js +6 -1
  157. package/lib/module/shared/providers/screen/animation/helpers/read-screen-animation-revisions.js.map +1 -1
  158. package/lib/module/shared/providers/screen/styles/helpers/collect-interpolator-shared-values.js +45 -0
  159. package/lib/module/shared/providers/screen/styles/helpers/collect-interpolator-shared-values.js.map +1 -0
  160. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +7 -1
  161. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  162. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -1
  163. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  164. package/lib/module/shared/providers/screen/styles/slot.provider.js +5 -3
  165. package/lib/module/shared/providers/screen/styles/slot.provider.js.map +1 -1
  166. package/lib/module/shared/providers/screen/styles/stores/slot-references.store.js +1 -1
  167. package/lib/module/shared/providers/screen/styles/stores/slot-references.store.js.map +1 -1
  168. package/lib/module/shared/stores/system.store.js +10 -2
  169. package/lib/module/shared/stores/system.store.js.map +1 -1
  170. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js +15 -9
  171. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  172. package/lib/module/shared/utils/bounds/navigation/reveal/build.js +2 -2
  173. package/lib/module/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
  174. package/lib/module/shared/utils/bounds/navigation/zoom/build.js +3 -3
  175. package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  176. package/lib/typescript/shared/adapters/with-screen-transitions/index.d.ts +4 -1
  177. package/lib/typescript/shared/adapters/with-screen-transitions/index.d.ts.map +1 -1
  178. package/lib/typescript/shared/animation/transition-blocking.d.ts +33 -0
  179. package/lib/typescript/shared/animation/transition-blocking.d.ts.map +1 -0
  180. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts.map +1 -1
  181. package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts.map +1 -1
  182. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts +2 -1
  183. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts.map +1 -1
  184. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts.map +1 -1
  185. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts.map +1 -1
  186. package/lib/typescript/shared/components/boundary/hooks/use-register-target.d.ts +10 -0
  187. package/lib/typescript/shared/components/boundary/hooks/use-register-target.d.ts.map +1 -0
  188. package/lib/typescript/shared/components/boundary/index.d.ts +2 -2
  189. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/components/host.d.ts +10 -0
  190. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/components/host.d.ts.map +1 -0
  191. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.d.ts +2 -0
  192. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.d.ts.map +1 -0
  193. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts +12 -0
  194. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts.map +1 -0
  195. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/index.d.ts +11 -0
  196. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/index.d.ts.map +1 -0
  197. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/host.d.ts.map +1 -0
  198. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.d.ts.map +1 -0
  199. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.d.ts +14 -0
  200. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.d.ts.map +1 -0
  201. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.d.ts +3 -0
  202. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.d.ts.map +1 -0
  203. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.d.ts +2 -0
  204. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.d.ts.map +1 -0
  205. package/lib/typescript/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/offset-style.d.ts +1 -1
  206. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.d.ts.map +1 -0
  207. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts +12 -0
  208. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -0
  209. package/lib/typescript/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-host-measurement.d.ts +5 -1
  210. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts.map +1 -0
  211. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.d.ts +12 -0
  212. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.d.ts.map +1 -0
  213. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/index.d.ts +13 -0
  214. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/index.d.ts.map +1 -0
  215. package/lib/typescript/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-bounds.store.d.ts +1 -1
  216. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.d.ts.map +1 -0
  217. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.d.ts.map +1 -0
  218. package/lib/typescript/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/portal-boundary-host.store.d.ts +3 -3
  219. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts.map +1 -0
  220. package/lib/typescript/shared/components/boundary/portal/index.d.ts +1 -2
  221. package/lib/typescript/shared/components/boundary/portal/index.d.ts.map +1 -1
  222. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts +0 -2
  223. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts.map +1 -1
  224. package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts +9 -10
  225. package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts.map +1 -1
  226. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts +21 -21
  227. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
  228. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts +9 -2
  229. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts.map +1 -1
  230. package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts +8 -0
  231. package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts.map +1 -1
  232. package/lib/typescript/shared/index.d.ts +1 -0
  233. package/lib/typescript/shared/index.d.ts.map +1 -1
  234. package/lib/typescript/shared/providers/screen/animation/helpers/read-screen-animation-revisions.d.ts +4 -1
  235. package/lib/typescript/shared/providers/screen/animation/helpers/read-screen-animation-revisions.d.ts.map +1 -1
  236. package/lib/typescript/shared/providers/screen/styles/helpers/collect-interpolator-shared-values.d.ts +4 -0
  237. package/lib/typescript/shared/providers/screen/styles/helpers/collect-interpolator-shared-values.d.ts.map +1 -0
  238. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
  239. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +1 -0
  240. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  241. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts +1 -0
  242. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts.map +1 -1
  243. package/lib/typescript/shared/providers/screen/styles/stores/slot-references.store.d.ts.map +1 -1
  244. package/lib/typescript/shared/stores/system.store.d.ts.map +1 -1
  245. package/lib/typescript/shared/types/animation.types.d.ts +3 -3
  246. package/lib/typescript/shared/types/bounds.types.d.ts +7 -2
  247. package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
  248. package/lib/typescript/shared/utils/bounds/helpers/create-bounds-accessor-core.d.ts.map +1 -1
  249. package/lib/typescript/shared/utils/bounds/types/options.d.ts +6 -2
  250. package/lib/typescript/shared/utils/bounds/types/options.d.ts.map +1 -1
  251. package/package.json +1 -1
  252. package/src/shared/adapters/with-screen-transitions/index.tsx +30 -9
  253. package/src/shared/animation/transition-blocking.ts +79 -0
  254. package/src/shared/components/boundary/components/boundary-target.tsx +43 -50
  255. package/src/shared/components/boundary/create-boundary-component.tsx +35 -150
  256. package/src/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts +103 -81
  257. package/src/shared/components/boundary/hooks/use-boundary-measurement.ts +1 -0
  258. package/src/shared/components/boundary/hooks/use-measurer.ts +12 -4
  259. package/src/shared/components/boundary/hooks/use-register-target.ts +43 -0
  260. package/src/shared/components/boundary/index.tsx +2 -2
  261. package/src/shared/components/boundary/portal/components/boundary-content-portal/components/host.tsx +48 -0
  262. package/src/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.ts +9 -0
  263. package/src/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts +274 -0
  264. package/src/shared/components/boundary/portal/components/boundary-content-portal/index.tsx +59 -0
  265. package/src/shared/components/boundary/portal/components/{host.tsx → boundary-portal/components/host.tsx} +14 -15
  266. package/src/shared/components/boundary/portal/components/{portal-boundary-host.tsx → boundary-portal/components/portal-boundary-host.tsx} +12 -12
  267. package/src/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.tsx +80 -0
  268. package/src/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/has-local-slot.ts +1 -1
  269. package/src/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.ts +10 -0
  270. package/src/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/offset-style.ts +2 -2
  271. package/src/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +250 -0
  272. package/src/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-host-measurement.ts +38 -8
  273. package/src/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-placeholder-styles.ts +4 -15
  274. package/src/shared/components/boundary/portal/components/boundary-portal/index.tsx +38 -0
  275. package/src/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-bounds.store.ts +2 -2
  276. package/src/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/portal-boundary-host.store.ts +10 -15
  277. package/src/shared/components/boundary/portal/index.ts +1 -2
  278. package/src/shared/components/boundary/portal/teleport.ts +2 -2
  279. package/src/shared/components/boundary/portal/utils/naming.ts +0 -19
  280. package/src/shared/components/boundary/portal/utils/ownership.ts +32 -88
  281. package/src/shared/components/boundary/providers/boundary-root.provider.tsx +198 -78
  282. package/src/shared/components/boundary/utils/destination-signals.ts +38 -14
  283. package/src/shared/components/boundary/utils/measured-bounds.ts +48 -0
  284. package/src/shared/components/screen-container/layers/content.tsx +1 -1
  285. package/src/shared/configs/presets.ts +2 -2
  286. package/src/shared/index.ts +4 -0
  287. package/src/shared/providers/screen/animation/helpers/read-screen-animation-revisions.ts +14 -0
  288. package/src/shared/providers/screen/styles/helpers/collect-interpolator-shared-values.ts +75 -0
  289. package/src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +11 -0
  290. package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +1 -0
  291. package/src/shared/providers/screen/styles/slot.provider.tsx +4 -2
  292. package/src/shared/providers/screen/styles/stores/slot-references.store.ts +2 -1
  293. package/src/shared/stores/system.store.ts +10 -4
  294. package/src/shared/types/animation.types.ts +3 -3
  295. package/src/shared/types/bounds.types.ts +9 -2
  296. package/src/shared/utils/bounds/helpers/create-bounds-accessor-core.ts +18 -11
  297. package/src/shared/utils/bounds/navigation/reveal/build.ts +2 -2
  298. package/src/shared/utils/bounds/navigation/zoom/build.ts +3 -3
  299. package/src/shared/utils/bounds/types/options.ts +9 -2
  300. package/lib/commonjs/shared/components/boundary/portal/components/boundary-local-portal-host.js +0 -58
  301. package/lib/commonjs/shared/components/boundary/portal/components/boundary-local-portal-host.js.map +0 -1
  302. package/lib/commonjs/shared/components/boundary/portal/components/host.js.map +0 -1
  303. package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js.map +0 -1
  304. package/lib/commonjs/shared/components/boundary/portal/components/portal.js +0 -272
  305. package/lib/commonjs/shared/components/boundary/portal/components/portal.js.map +0 -1
  306. package/lib/commonjs/shared/components/boundary/portal/hooks/use-host-measurement.js.map +0 -1
  307. package/lib/commonjs/shared/components/boundary/portal/hooks/use-placeholder-styles.js.map +0 -1
  308. package/lib/commonjs/shared/components/boundary/portal/stores/host-bounds.store.js.map +0 -1
  309. package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js.map +0 -1
  310. package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +0 -1
  311. package/lib/commonjs/shared/components/boundary/portal/utils/has-local-slot.js.map +0 -1
  312. package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js.map +0 -1
  313. package/lib/module/shared/components/boundary/portal/components/boundary-local-portal-host.js +0 -53
  314. package/lib/module/shared/components/boundary/portal/components/boundary-local-portal-host.js.map +0 -1
  315. package/lib/module/shared/components/boundary/portal/components/host.js.map +0 -1
  316. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js.map +0 -1
  317. package/lib/module/shared/components/boundary/portal/components/portal.js +0 -267
  318. package/lib/module/shared/components/boundary/portal/components/portal.js.map +0 -1
  319. package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js.map +0 -1
  320. package/lib/module/shared/components/boundary/portal/hooks/use-placeholder-styles.js.map +0 -1
  321. package/lib/module/shared/components/boundary/portal/stores/host-bounds.store.js.map +0 -1
  322. package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js.map +0 -1
  323. package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +0 -1
  324. package/lib/module/shared/components/boundary/portal/utils/has-local-slot.js.map +0 -1
  325. package/lib/module/shared/components/boundary/portal/utils/offset-style.js.map +0 -1
  326. package/lib/typescript/shared/components/boundary/portal/components/boundary-local-portal-host.d.ts +0 -8
  327. package/lib/typescript/shared/components/boundary/portal/components/boundary-local-portal-host.d.ts.map +0 -1
  328. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts.map +0 -1
  329. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts.map +0 -1
  330. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts +0 -20
  331. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts.map +0 -1
  332. package/lib/typescript/shared/components/boundary/portal/hooks/use-host-measurement.d.ts.map +0 -1
  333. package/lib/typescript/shared/components/boundary/portal/hooks/use-placeholder-styles.d.ts +0 -17
  334. package/lib/typescript/shared/components/boundary/portal/hooks/use-placeholder-styles.d.ts.map +0 -1
  335. package/lib/typescript/shared/components/boundary/portal/stores/host-bounds.store.d.ts.map +0 -1
  336. package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts.map +0 -1
  337. package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts.map +0 -1
  338. package/lib/typescript/shared/components/boundary/portal/utils/has-local-slot.d.ts +0 -3
  339. package/lib/typescript/shared/components/boundary/portal/utils/has-local-slot.d.ts.map +0 -1
  340. package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts.map +0 -1
  341. package/src/shared/components/boundary/portal/components/boundary-local-portal-host.tsx +0 -66
  342. package/src/shared/components/boundary/portal/components/portal.tsx +0 -412
  343. /package/lib/commonjs/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/has-local-slot.js +0 -0
  344. /package/lib/commonjs/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-registry.store.js +0 -0
  345. /package/lib/module/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/has-local-slot.js +0 -0
  346. /package/lib/module/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-registry.store.js +0 -0
  347. /package/lib/typescript/shared/components/boundary/portal/components/{host.d.ts → boundary-portal/components/host.d.ts} +0 -0
  348. /package/lib/typescript/shared/components/boundary/portal/components/{portal-boundary-host.d.ts → boundary-portal/components/portal-boundary-host.d.ts} +0 -0
  349. /package/lib/typescript/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-registry.store.d.ts +0 -0
  350. /package/src/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-registry.store.ts +0 -0
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["forwardRef","memo","Animated","BoundaryContentPortalHost","BoundaryPortal","BoundaryRootProvider","jsx","_jsx","createBoundaryComponent","Wrapped","options","alreadyAnimated","AnimatedComponent","createAnimatedComponent","Inner","props","forwardedRef","enabled","group","id","anchor","scaleMode","target","method","style","handoff","escapeClipping","children","rest","config","root","boundaryId","boundTag","tag","shouldRenderBoundaryRootThroughPortal","placeholderRef","rootEscapePlaceholderRef","ref","attachedStyle","collapsable","shouldRenderHandoffHost","screenKey","currentScreenKey"],"sourceRoot":"../../../../../src","sources":["shared/components/boundary/create-boundary-component.tsx"],"mappings":";;AAAA,SAA6BA,UAAU,EAAEC,IAAI,QAAQ,OAAO;AAC5D,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,yBAAyB,QAAQ,6CAA6C;AACvF,SAASC,cAAc,QAAQ,qCAAqC;AACpE,SAASC,oBAAoB,QAAQ,oCAAoC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO1E,OAAO,SAASC,uBAAuBA,CACtCC,OAAyB,EACzBC,OAAuC,GAAG,CAAC,CAAC,EAC3C;EACD,MAAM;IAAEC,eAAe,GAAG;EAAM,CAAC,GAAGD,OAAO;EAC3C,MAAME,iBAAiB,GAAGD,eAAe,GACtCF,OAAO,GACPP,QAAQ,CAACW,uBAAuB,CAACJ,OAAO,CAAC;EAE5C,MAAMK,KAAK,gBAAGd,UAAU,CAGtB,CAACe,KAAK,EAAEC,YAAY,KAAK;IAC1B,MAAM;MACLC,OAAO,GAAG,IAAI;MACdC,KAAK;MACLC,EAAE;MACFC,MAAM;MACNC,SAAS;MACTC,MAAM;MACNC,MAAM;MACNC,KAAK;MACLC,OAAO;MACPC,cAAc;MACdC,QAAQ;MACR,GAAGC;IACJ,CAAC,GAAGb,KAAY;IAEhB,oBACCR,IAAA,CAACF,oBAAoB;MACpBwB,MAAM,EAAE;QAAET,MAAM;QAAEC,SAAS;QAAEC,MAAM;QAAEC;MAAO,CAAE;MAC9CN,OAAO,EAAEA,OAAQ;MACjBS,cAAc,EAAEA,cAAe;MAC/BV,YAAY,EAAEA,YAAa;MAC3BE,KAAK,EAAEA,KAAM;MACbO,OAAO,EAAEA,OAAQ;MACjBN,EAAE,EAAEA,EAAG;MACPK,KAAK,EAAEA,KAAM;MAAAG,QAAA,EAEXG,IAAI,iBACLvB,IAAA,CAACH,cAAc;QACd2B,UAAU,EAAED,IAAI,CAACE,QAAQ,CAACC,GAAI;QAC9BhB,OAAO,EAAEa,IAAI,CAACI,qCAAsC;QACpDC,cAAc,EAAEL,IAAI,CAACM,wBAAyB;QAAAT,QAAA,eAE9CpB,IAAA,CAACK,iBAAiB;UAAA,GACbgB,IAAI;UACRS,GAAG,EAAEP,IAAI,CAACO,GAAI;UACdb,KAAK,EAAE,CAACA,KAAK,EAAEM,IAAI,CAACQ,aAAa,CAAE;UACnCC,WAAW,EAAE,KAAM;UAAAZ,QAAA,eAEnBpB,IAAA,CAACJ,yBAAyB;YACzB4B,UAAU,EAAED,IAAI,CAACE,QAAQ,CAACC,GAAI;YAC9BhB,OAAO,EAAEa,IAAI,CAACU,uBAAwB;YACtCC,SAAS,EAAEX,IAAI,CAACY,gBAAiB;YAAAf,QAAA,EAEhCA;UAAQ,CACiB;QAAC,CACV;MAAC,CACL;IAChB,CACoB,CAAC;EAEzB,CAAC,CAAC;;EAEF;EACA;EACA,oBAAO1B,IAAI,CAACa,KAAK,CAAC;AAMnB","ignoreList":[]}
@@ -1,26 +1,27 @@
1
1
  "use strict";
2
2
 
3
- import { cancelAnimation, useAnimatedReaction, useSharedValue, withDelay, withTiming } from "react-native-reanimated";
3
+ import { useCallback, useLayoutEffect } from "react";
4
+ import { cancelAnimation, runOnUI, useAnimatedReaction, useSharedValue, withDelay, withTiming } from "react-native-reanimated";
4
5
  import { useDescriptorsStore } from "../../../../providers/screen/descriptors";
5
6
  import { AnimationStore } from "../../../../stores/animation.store";
6
7
  import { getSourceScreenKeyFromPairKey } from "../../../../stores/bounds/helpers/link-pairs.helpers";
7
8
  import { getEntry } from "../../../../stores/bounds/internals/entries";
8
- import { getDestination, getLink } from "../../../../stores/bounds/internals/links";
9
+ import { getLink } from "../../../../stores/bounds/internals/links";
9
10
  import { pairs } from "../../../../stores/bounds/internals/state";
10
- import { LifecycleTransitionRequestKind, SystemStore } from "../../../../stores/system.store";
11
+ import { SystemStore } from "../../../../stores/system.store";
11
12
  import { logger } from "../../../../utils/logger";
12
- import { hasHandoffEscapeContinuation, usesEscapeClippingHost } from "../../portal/utils/ownership";
13
- import { getInitialDestinationMeasurePairKey } from "../../utils/destination-signals";
14
- const VIEWPORT_RETRY_DELAY_MS = 100;
13
+ import { getInitialDestinationMeasurementSignal } from "../../utils/destination-signals";
14
+ const HANDSHAKE_RETRY_DELAY_MS = 100;
15
15
  /**
16
- * A destination that keeps failing its measurement guards must not hold the
17
- * transition gate forever after this budget the block is released with a
18
- * warning so the open proceeds without that boundary.
16
+ * A destination whose initial handshake never completes must not hold the
17
+ * transition gate forever. After this budget, release the block with a warning
18
+ * so the open proceeds without that boundary.
19
19
  */
20
- const MAX_VIEWPORT_RETRIES = 20;
20
+ const MAX_HANDSHAKE_RETRIES = 20;
21
21
  export const useInitialDestinationMeasurement = ({
22
22
  boundTag,
23
23
  enabled,
24
+ escapeClipping,
24
25
  measureBoundary
25
26
  }) => {
26
27
  const {
@@ -33,9 +34,9 @@ export const useInitialDestinationMeasurement = ({
33
34
  const destinationPairKey = useDescriptorsStore(s => s.derivations.destinationPairKey);
34
35
  const ancestorDestinationPairKey = useDescriptorsStore(s => s.derivations.ancestorDestinationPairKey);
35
36
  const destinationEnabled = enabled && !nextScreenKey;
37
+ const initialDestinationPairKey = destinationPairKey ?? ancestorDestinationPairKey;
36
38
  const progress = AnimationStore.getValue(currentScreenKey, "transitionProgress");
37
39
  const {
38
- pendingLifecycleRequestKind,
39
40
  actions: {
40
41
  blockLifecycleStart,
41
42
  unblockLifecycleStart
@@ -43,93 +44,109 @@ export const useInitialDestinationMeasurement = ({
43
44
  } = SystemStore.getBag(currentScreenKey);
44
45
  const isBlockingLifecycleStart = useSharedValue(0);
45
46
  const retryToken = useSharedValue(0);
46
- const viewportRetries = useSharedValue(0);
47
+ const handshakeRetries = useSharedValue(0);
47
48
  const hasGivenUp = useSharedValue(0);
48
- const releaseLifecycleStartBlock = () => {
49
+ const releaseLifecycleStartBlock = useCallback(() => {
49
50
  "worklet";
50
51
 
51
52
  cancelAnimation(retryToken);
52
53
  if (!isBlockingLifecycleStart.get()) {
53
54
  return;
54
55
  }
55
- unblockLifecycleStart();
56
56
  isBlockingLifecycleStart.set(0);
57
- };
57
+ unblockLifecycleStart();
58
+ }, [isBlockingLifecycleStart, retryToken, unblockLifecycleStart]);
59
+ useLayoutEffect(() => {
60
+ if (!destinationEnabled || !initialDestinationPairKey || progress.get() > 0 || isBlockingLifecycleStart.get()) {
61
+ return;
62
+ }
63
+
64
+ // Boundary layout effects run before the parent screen's open intent. Claim
65
+ // this boundary's startup block before the transition controller can consume
66
+ // the request; the UI-thread handshake below releases it once matching is done.
67
+ blockLifecycleStart();
68
+ isBlockingLifecycleStart.set(1);
69
+ return () => {
70
+ if (escapeClipping) {
71
+ // The portal host owns the release after this boundary hands off.
72
+ return;
73
+ }
74
+
75
+ // This is an abandonment fallback, not a second release. Run it on the UI
76
+ // runtime so it serializes with the handshake's guarded release.
77
+ runOnUI(releaseLifecycleStartBlock)();
78
+ };
79
+ }, [blockLifecycleStart, destinationEnabled, escapeClipping, initialDestinationPairKey, isBlockingLifecycleStart, progress, releaseLifecycleStartBlock]);
58
80
  useAnimatedReaction(() => {
59
81
  "worklet";
60
82
 
61
83
  const retryTick = retryToken.get();
62
- const hasPendingOpenRequest = pendingLifecycleRequestKind.get() === LifecycleTransitionRequestKind.Open;
63
84
  const isWaitingForOpenToStart = progress.get() <= 0;
64
- if (!hasPendingOpenRequest || !isWaitingForOpenToStart) {
65
- return [0, retryTick];
66
- }
67
- const measurePairKey = getInitialDestinationMeasurePairKey({
68
- enabled: destinationEnabled,
85
+ const sourceScreenKey = initialDestinationPairKey ? getSourceScreenKeyFromPairKey(initialDestinationPairKey) : undefined;
86
+ const signal = getInitialDestinationMeasurementSignal({
87
+ enabled: destinationEnabled && isWaitingForOpenToStart && isBlockingLifecycleStart.get() > 0,
69
88
  destinationPairKey,
70
89
  ancestorDestinationPairKey,
71
90
  linkId: linkKey,
72
91
  group,
73
- linkState: destinationEnabled && (destinationPairKey || ancestorDestinationPairKey) ? pairs.get() : undefined
92
+ destinationPresent: getEntry(tag, currentScreenKey) !== null,
93
+ sourcePresent: sourceScreenKey !== undefined && getEntry(tag, sourceScreenKey) !== null,
94
+ linkState: initialDestinationPairKey ? pairs.get() : undefined
74
95
  });
75
- return [measurePairKey, retryTick];
76
- }, ([measurePairKey, retryTick], previous) => {
96
+ return [signal?.pairKey ?? null, signal?.action ?? null, retryTick];
97
+ }, ([measurePairKey, action, retryTick], previous) => {
77
98
  "worklet";
78
99
 
79
- if (!measurePairKey) {
100
+ if (!measurePairKey || !action) {
80
101
  return;
81
102
  }
82
103
  const previousMeasurePairKey = previous?.[0];
83
- const previousRetryTick = previous?.[1];
84
- const shouldAttemptMeasure = measurePairKey !== previousMeasurePairKey || retryTick !== previousRetryTick;
85
- if (!shouldAttemptMeasure) {
104
+ const previousAction = previous?.[1];
105
+ const previousRetryTick = previous?.[2];
106
+ const shouldHandleSignal = measurePairKey !== previousMeasurePairKey || action !== previousAction || retryTick !== previousRetryTick;
107
+ if (!shouldHandleSignal) {
86
108
  return;
87
109
  }
88
110
  if (hasGivenUp.get()) {
89
111
  return;
90
112
  }
91
- if (!isBlockingLifecycleStart.get()) {
92
- blockLifecycleStart();
93
- isBlockingLifecycleStart.set(1);
113
+ if (action === "release") {
114
+ releaseLifecycleStartBlock();
115
+ handshakeRetries.set(0);
116
+ return;
94
117
  }
95
- measureBoundary({
96
- type: "destination",
97
- pairKey: measurePairKey
98
- });
99
- const destinationAttached = getDestination(measurePairKey, linkKey) !== null;
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
118
+ if (action === "measure") {
119
+ measureBoundary({
120
+ type: "destination",
121
+ pairKey: measurePairKey
110
122
  });
111
- if (shouldWaitForEscapeClippingHost) {
123
+ }
124
+ const link = getLink(measurePairKey, linkKey);
125
+ const linkComplete = !!link?.source && !!link.destination;
126
+ if (linkComplete || action === "complete") {
127
+ cancelAnimation(retryToken);
128
+ handshakeRetries.set(0);
129
+ if (escapeClipping) {
112
130
  // Screen-level escape has a second readiness phase after destination
113
- // measurement: the host must commit before the transition starts, or
131
+ // matching: the host must commit before the transition starts, or
114
132
  // the payload can disappear for a frame.
115
133
  return;
116
134
  }
117
135
  releaseLifecycleStartBlock();
118
- viewportRetries.set(0);
119
136
  return;
120
137
  }
121
- if (viewportRetries.get() >= MAX_VIEWPORT_RETRIES) {
138
+ if (handshakeRetries.get() >= MAX_HANDSHAKE_RETRIES) {
122
139
  hasGivenUp.set(1);
123
140
  releaseLifecycleStartBlock();
124
- logger.warn(`Destination boundary "${linkKey}" never produced a valid measurement after ${MAX_VIEWPORT_RETRIES} attempts; releasing the transition gate without it. The boundary is likely off-viewport (e.g. an inactive group member on a paged screen) or unmounted.`);
141
+ logger.warn(`Boundary "${linkKey}" never formed a complete source/destination link after ${MAX_HANDSHAKE_RETRIES} attempts; releasing the transition gate without it. One side is likely off-viewport or unmounted.`);
125
142
  return;
126
143
  }
127
144
 
128
- // Destination did not attach (malformed off-screen measurement); retry
129
- // after the retry token advances while the lifecycle stays blocked.
130
- viewportRetries.set(viewportRetries.get() + 1);
145
+ // Keep the lifecycle blocked while registration, measurement, or source
146
+ // attachment settles. The retry token also retries rejected destination bounds.
147
+ handshakeRetries.set(handshakeRetries.get() + 1);
131
148
  cancelAnimation(retryToken);
132
- retryToken.set(withDelay(VIEWPORT_RETRY_DELAY_MS, withTiming(retryToken.get() + 1, {
149
+ retryToken.set(withDelay(HANDSHAKE_RETRY_DELAY_MS, withTiming(retryToken.get() + 1, {
133
150
  duration: 0
134
151
  })));
135
152
  });
@@ -1 +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
+ {"version":3,"names":["useCallback","useLayoutEffect","cancelAnimation","runOnUI","useAnimatedReaction","useSharedValue","withDelay","withTiming","useDescriptorsStore","AnimationStore","getSourceScreenKeyFromPairKey","getEntry","getLink","pairs","SystemStore","logger","getInitialDestinationMeasurementSignal","HANDSHAKE_RETRY_DELAY_MS","MAX_HANDSHAKE_RETRIES","useInitialDestinationMeasurement","boundTag","enabled","escapeClipping","measureBoundary","tag","linkKey","group","currentScreenKey","s","derivations","nextScreenKey","destinationPairKey","ancestorDestinationPairKey","destinationEnabled","initialDestinationPairKey","progress","getValue","actions","blockLifecycleStart","unblockLifecycleStart","getBag","isBlockingLifecycleStart","retryToken","handshakeRetries","hasGivenUp","releaseLifecycleStartBlock","get","set","retryTick","isWaitingForOpenToStart","sourceScreenKey","undefined","signal","linkId","destinationPresent","sourcePresent","linkState","pairKey","action","measurePairKey","previous","previousMeasurePairKey","previousAction","previousRetryTick","shouldHandleSignal","type","link","linkComplete","source","destination","warn","duration"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts"],"mappings":"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","ignoreList":[]}
@@ -66,6 +66,7 @@ export const useBoundaryMeasurement = ({
66
66
  useInitialDestinationMeasurement({
67
67
  boundTag,
68
68
  enabled: runtimeEnabled,
69
+ escapeClipping,
69
70
  measureBoundary
70
71
  });
71
72
  useRefreshBoundary({
@@ -1 +1 @@
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":[]}
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;IACvBM,cAAc;IACdS;EACD,CAAC,CAAC;EAEFpB,kBAAkB,CAAC;IAClBI,OAAO,EAAEC,cAAc;IACvBF,QAAQ;IACRiB;EACD,CAAC,CAAC;AACH,CAAC","ignoreList":[]}
@@ -5,9 +5,11 @@ import { useWindowDimensions } from "react-native";
5
5
  import { measure } from "react-native-reanimated";
6
6
  import { applyMeasuredBoundsWrites } from "../../../providers/helpers/measured-bounds-writes";
7
7
  import { useOriginContext } from "../../../providers/screen/origin.provider";
8
+ import { useScreenSlots } from "../../../providers/screen/styles";
8
9
  import { ScrollStore } from "../../../stores/scroll.store";
9
10
  import { SystemStore } from "../../../stores/system.store";
10
- import { attachScrollSnapshotToMeasuredBounds, isMeasurementInViewport, measureWithOverscrollAwareness, normalizeMeasuredBoundsToOrigin } from "../utils/measured-bounds";
11
+ import { getVisibilityBlockOffset } from "../../../utils/visibility-block-offset";
12
+ import { attachScrollSnapshotToMeasuredBounds, isMeasurementInViewport, measureWithOverscrollAwareness, normalizeMeasuredBoundsWithVisibilityGate } from "../utils/measured-bounds";
11
13
  export const useMeasurer = ({
12
14
  enabled,
13
15
  boundTag,
@@ -27,6 +29,9 @@ export const useMeasurer = ({
27
29
  const {
28
30
  originRef
29
31
  } = useOriginContext();
32
+ const {
33
+ visibilityBlocked
34
+ } = useScreenSlots();
30
35
  return useCallback(target => {
31
36
  "worklet";
32
37
 
@@ -34,7 +39,14 @@ export const useMeasurer = ({
34
39
  const measured = measureWithOverscrollAwareness(measuredAnimatedRef, scrollState.get());
35
40
  const measuredOrigin = measure(originRef);
36
41
  if (!measured || !measuredOrigin) return;
37
- const normalizedMeasured = normalizeMeasuredBoundsToOrigin(measured, measuredOrigin);
42
+ const normalizedMeasured = normalizeMeasuredBoundsWithVisibilityGate({
43
+ measured,
44
+ origin: measuredOrigin,
45
+ visibilityBlocked: escapeClipping && visibilityBlocked.get(),
46
+ visibilityBlockOffset: getVisibilityBlockOffset(viewportHeight),
47
+ viewportWidth,
48
+ viewportHeight
49
+ });
38
50
 
39
51
  /**
40
52
  * - Destination Pass -
@@ -58,6 +70,6 @@ export const useMeasurer = ({
58
70
  handoff,
59
71
  escapeClipping
60
72
  });
61
- }, [enabled, boundTag, currentScreenKey, preparedStyles, measuredAnimatedRef, handoff, escapeClipping, viewportWidth, viewportHeight, scrollState, scrollMetadata, pendingLifecycleStartBlockCount, originRef]);
73
+ }, [enabled, boundTag, currentScreenKey, preparedStyles, measuredAnimatedRef, handoff, escapeClipping, viewportWidth, viewportHeight, scrollState, scrollMetadata, pendingLifecycleStartBlockCount, originRef, visibilityBlocked]);
62
74
  };
63
75
  //# sourceMappingURL=use-measurer.js.map
@@ -1 +1 @@
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
+ {"version":3,"names":["useCallback","useWindowDimensions","measure","applyMeasuredBoundsWrites","useOriginContext","useScreenSlots","ScrollStore","SystemStore","getVisibilityBlockOffset","attachScrollSnapshotToMeasuredBounds","isMeasurementInViewport","measureWithOverscrollAwareness","normalizeMeasuredBoundsWithVisibilityGate","useMeasurer","enabled","boundTag","currentScreenKey","preparedStyles","measuredAnimatedRef","handoff","escapeClipping","width","viewportWidth","height","viewportHeight","scrollState","getValue","scrollMetadata","pendingLifecycleStartBlockCount","originRef","visibilityBlocked","target","measured","get","measuredOrigin","normalizedMeasured","origin","visibilityBlockOffset","shouldGuardDestinationViewport","group","viewportAllowsDestinationWrite","type","measuredWithScroll","entryTag","tag","linkId","linkKey","linkWrite"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-measurer.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ import { useLayoutEffect } from "react";
4
+ import { logger } from "../../../utils/logger";
5
+ import { TARGET_OUTSIDE_ROOT_WARNING, useBoundaryRootContext } from "../providers/boundary-root.provider";
6
+ export const useRegisterTarget = ({
7
+ targetAnimatedRef,
8
+ preparedStyles,
9
+ measurementRef
10
+ }) => {
11
+ const rootContext = useBoundaryRootContext();
12
+ const registerTargetRef = rootContext?.registerTargetRef;
13
+ const unregisterTargetRef = rootContext?.unregisterTargetRef;
14
+ useLayoutEffect(() => {
15
+ if (!registerTargetRef || !unregisterTargetRef) {
16
+ if (__DEV__) {
17
+ logger.warn(TARGET_OUTSIDE_ROOT_WARNING);
18
+ }
19
+ return;
20
+ }
21
+ registerTargetRef(targetAnimatedRef, preparedStyles, measurementRef);
22
+ return () => {
23
+ unregisterTargetRef(targetAnimatedRef);
24
+ };
25
+ }, [registerTargetRef, unregisterTargetRef, targetAnimatedRef, preparedStyles, measurementRef]);
26
+ };
27
+ //# sourceMappingURL=use-register-target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useLayoutEffect","logger","TARGET_OUTSIDE_ROOT_WARNING","useBoundaryRootContext","useRegisterTarget","targetAnimatedRef","preparedStyles","measurementRef","rootContext","registerTargetRef","unregisterTargetRef","__DEV__","warn"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-register-target.ts"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,OAAO;AAGvC,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SACCC,2BAA2B,EAC3BC,sBAAsB,QAChB,qCAAqC;AAQ5C,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EACjCC,iBAAiB;EACjBC,cAAc;EACdC;AACoB,CAAC,KAAK;EAC1B,MAAMC,WAAW,GAAGL,sBAAsB,CAAC,CAAC;EAC5C,MAAMM,iBAAiB,GAAGD,WAAW,EAAEC,iBAAiB;EACxD,MAAMC,mBAAmB,GAAGF,WAAW,EAAEE,mBAAmB;EAC5DV,eAAe,CAAC,MAAM;IACrB,IAAI,CAACS,iBAAiB,IAAI,CAACC,mBAAmB,EAAE;MAC/C,IAAIC,OAAO,EAAE;QACZV,MAAM,CAACW,IAAI,CAACV,2BAA2B,CAAC;MACzC;MACA;IACD;IAEAO,iBAAiB,CAACJ,iBAAiB,EAAEC,cAAc,EAAEC,cAAc,CAAC;IACpE,OAAO,MAAM;MACZG,mBAAmB,CAACL,iBAAiB,CAAC;IACvC,CAAC;EACF,CAAC,EAAE,CACFI,iBAAiB,EACjBC,mBAAmB,EACnBL,iBAAiB,EACjBC,cAAc,EACdC,cAAc,CACd,CAAC;AACH,CAAC","ignoreList":[]}
@@ -39,7 +39,7 @@ Host.displayName = "Transition.Boundary.Host";
39
39
  * Use:
40
40
  * - `Boundary` for passive and pressable shared elements.
41
41
  * - `Boundary.Target` to measure a nested descendant instead of the root.
42
- * - `Boundary.Host` to make nested portal placement explicit.
42
+ * - `Boundary.Host` to make clipping-escape host placement explicit.
43
43
  */
44
44
 
45
45
  export const Boundary = Object.assign(BoundaryRoot, {
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ import { memo } from "react";
4
+ import { StyleSheet } from "react-native";
5
+ import Animated from "react-native-reanimated";
6
+ import { NativePortalHost } from "../../../teleport";
7
+ import { createBoundaryContentPortalHostName } from "../helpers/host-name";
8
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const AnimatedPortalHost = NativePortalHost ? Animated.createAnimatedComponent(NativePortalHost) : null;
10
+ export const BoundaryContentPortalHost = /*#__PURE__*/memo(function BoundaryContentPortalHost({
11
+ boundaryId,
12
+ children,
13
+ enabled,
14
+ screenKey
15
+ }) {
16
+ if (!enabled || !AnimatedPortalHost) {
17
+ return /*#__PURE__*/_jsx(_Fragment, {
18
+ children: children
19
+ });
20
+ }
21
+ const portalHostName = createBoundaryContentPortalHostName(screenKey, boundaryId);
22
+ return /*#__PURE__*/_jsxs(_Fragment, {
23
+ children: [children, /*#__PURE__*/_jsx(AnimatedPortalHost, {
24
+ name: portalHostName,
25
+ style: styles.host
26
+ })]
27
+ });
28
+ });
29
+ const styles = StyleSheet.create({
30
+ host: {
31
+ ...StyleSheet.absoluteFillObject,
32
+ overflow: "visible"
33
+ }
34
+ });
35
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","StyleSheet","Animated","NativePortalHost","createBoundaryContentPortalHostName","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","AnimatedPortalHost","createAnimatedComponent","BoundaryContentPortalHost","boundaryId","children","enabled","screenKey","portalHostName","name","style","styles","host","create","absoluteFillObject","overflow"],"sourceRoot":"../../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-content-portal/components/host.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAwB,OAAO;AAC5C,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,gBAAgB,QAAQ,mBAAmB;AACpD,SAASC,mCAAmC,QAAQ,sBAAsB;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE3E,MAAMC,kBAAkB,GAAGR,gBAAgB,GACxCD,QAAQ,CAACU,uBAAuB,CAACT,gBAAgB,CAAC,GAClD,IAAI;AASP,OAAO,MAAMU,yBAAyB,gBAAGb,IAAI,CAC5C,SAASa,yBAAyBA,CAAC;EAClCC,UAAU;EACVC,QAAQ;EACRC,OAAO;EACPC;AAC+B,CAAC,EAAE;EAClC,IAAI,CAACD,OAAO,IAAI,CAACL,kBAAkB,EAAE;IACpC,oBAAOH,IAAA,CAAAF,SAAA;MAAAS,QAAA,EAAGA;IAAQ,CAAG,CAAC;EACvB;EAEA,MAAMG,cAAc,GAAGd,mCAAmC,CACzDa,SAAS,EACTH,UACD,CAAC;EAED,oBACCJ,KAAA,CAAAJ,SAAA;IAAAS,QAAA,GACEA,QAAQ,eACTP,IAAA,CAACG,kBAAkB;MAACQ,IAAI,EAAED,cAAe;MAACE,KAAK,EAAEC,MAAM,CAACC;IAAK,CAAE,CAAC;EAAA,CAC/D,CAAC;AAEL,CACD,CAAC;AAED,MAAMD,MAAM,GAAGpB,UAAU,CAACsB,MAAM,CAAC;EAChCD,IAAI,EAAE;IACL,GAAGrB,UAAU,CAACuB,kBAAkB;IAChCC,QAAQ,EAAE;EACX;AACD,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ const BOUNDARY_CONTENT_PORTAL_HOST_NAME_SUFFIX = "-content-portal-host";
4
+ export const createBoundaryContentPortalHostName = (screenKey, boundaryId) => {
5
+ "worklet";
6
+
7
+ return `${screenKey}-${boundaryId}${BOUNDARY_CONTENT_PORTAL_HOST_NAME_SUFFIX}`;
8
+ };
9
+ //# sourceMappingURL=host-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BOUNDARY_CONTENT_PORTAL_HOST_NAME_SUFFIX","createBoundaryContentPortalHostName","screenKey","boundaryId"],"sourceRoot":"../../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.ts"],"mappings":";;AAAA,MAAMA,wCAAwC,GAAG,sBAAsB;AAEvE,OAAO,MAAMC,mCAAmC,GAAGA,CAClDC,SAAiB,EACjBC,UAAkB,KACd;EACJ,SAAS;;EACT,OAAO,GAAGD,SAAS,IAAIC,UAAU,GAAGH,wCAAwC,EAAE;AAC/E,CAAC","ignoreList":[]}