react-native-screen-transitions 3.9.0-beta.1 → 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 (330) 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/styles/hooks/use-maybe-block-visibility.js +2 -1
  69. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  70. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js +5 -3
  71. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js.map +1 -1
  72. package/lib/commonjs/shared/providers/screen/styles/stores/slot-references.store.js +1 -1
  73. package/lib/commonjs/shared/providers/screen/styles/stores/slot-references.store.js.map +1 -1
  74. package/lib/commonjs/shared/stores/system.store.js +10 -2
  75. package/lib/commonjs/shared/stores/system.store.js.map +1 -1
  76. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js +15 -9
  77. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  78. package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js +2 -2
  79. package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
  80. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js +3 -3
  81. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  82. package/lib/module/shared/adapters/with-screen-transitions/index.js +19 -5
  83. package/lib/module/shared/adapters/with-screen-transitions/index.js.map +1 -1
  84. package/lib/module/shared/animation/transition-blocking.js +66 -0
  85. package/lib/module/shared/animation/transition-blocking.js.map +1 -0
  86. package/lib/module/shared/components/boundary/components/boundary-target.js +32 -32
  87. package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -1
  88. package/lib/module/shared/components/boundary/create-boundary-component.js +32 -97
  89. package/lib/module/shared/components/boundary/create-boundary-component.js.map +1 -1
  90. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +72 -55
  91. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
  92. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js +1 -0
  93. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  94. package/lib/module/shared/components/boundary/hooks/use-measurer.js +15 -3
  95. package/lib/module/shared/components/boundary/hooks/use-measurer.js.map +1 -1
  96. package/lib/module/shared/components/boundary/hooks/use-register-target.js +27 -0
  97. package/lib/module/shared/components/boundary/hooks/use-register-target.js.map +1 -0
  98. package/lib/module/shared/components/boundary/index.js +1 -1
  99. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/components/host.js +35 -0
  100. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/components/host.js.map +1 -0
  101. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.js +9 -0
  102. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.js.map +1 -0
  103. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +189 -0
  104. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -0
  105. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/index.js +33 -0
  106. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/index.js.map +1 -0
  107. package/lib/module/shared/components/boundary/portal/components/{host.js → boundary-portal/components/host.js} +17 -16
  108. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -0
  109. package/lib/module/shared/components/boundary/portal/components/{portal-boundary-host.js → boundary-portal/components/portal-boundary-host.js} +11 -11
  110. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -0
  111. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js +47 -0
  112. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js.map +1 -0
  113. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js.map +1 -0
  114. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.js +9 -0
  115. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.js.map +1 -0
  116. package/lib/module/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/offset-style.js +1 -1
  117. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.js.map +1 -0
  118. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +179 -0
  119. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -0
  120. package/lib/module/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-host-measurement.js +23 -5
  121. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -0
  122. package/lib/module/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-placeholder-styles.js +3 -6
  123. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.js.map +1 -0
  124. package/lib/module/shared/components/boundary/portal/components/boundary-portal/index.js +29 -0
  125. package/lib/module/shared/components/boundary/portal/components/boundary-portal/index.js.map +1 -0
  126. package/lib/module/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-bounds.store.js +1 -1
  127. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.js.map +1 -0
  128. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.js.map +1 -0
  129. package/lib/module/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/portal-boundary-host.store.js +5 -10
  130. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -0
  131. package/lib/module/shared/components/boundary/portal/index.js +1 -2
  132. package/lib/module/shared/components/boundary/portal/index.js.map +1 -1
  133. package/lib/module/shared/components/boundary/portal/teleport.js +2 -2
  134. package/lib/module/shared/components/boundary/portal/utils/naming.js +0 -12
  135. package/lib/module/shared/components/boundary/portal/utils/naming.js.map +1 -1
  136. package/lib/module/shared/components/boundary/portal/utils/ownership.js +16 -52
  137. package/lib/module/shared/components/boundary/portal/utils/ownership.js.map +1 -1
  138. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js +74 -20
  139. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
  140. package/lib/module/shared/components/boundary/utils/destination-signals.js +39 -10
  141. package/lib/module/shared/components/boundary/utils/destination-signals.js.map +1 -1
  142. package/lib/module/shared/components/boundary/utils/measured-bounds.js +34 -0
  143. package/lib/module/shared/components/boundary/utils/measured-bounds.js.map +1 -1
  144. package/lib/module/shared/components/screen-container/layers/content.js +1 -1
  145. package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
  146. package/lib/module/shared/configs/presets.js +2 -2
  147. package/lib/module/shared/configs/presets.js.map +1 -1
  148. package/lib/module/shared/index.js +1 -0
  149. package/lib/module/shared/index.js.map +1 -1
  150. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -1
  151. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  152. package/lib/module/shared/providers/screen/styles/slot.provider.js +5 -3
  153. package/lib/module/shared/providers/screen/styles/slot.provider.js.map +1 -1
  154. package/lib/module/shared/providers/screen/styles/stores/slot-references.store.js +1 -1
  155. package/lib/module/shared/providers/screen/styles/stores/slot-references.store.js.map +1 -1
  156. package/lib/module/shared/stores/system.store.js +10 -2
  157. package/lib/module/shared/stores/system.store.js.map +1 -1
  158. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js +15 -9
  159. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  160. package/lib/module/shared/utils/bounds/navigation/reveal/build.js +2 -2
  161. package/lib/module/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
  162. package/lib/module/shared/utils/bounds/navigation/zoom/build.js +3 -3
  163. package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  164. package/lib/typescript/shared/adapters/with-screen-transitions/index.d.ts +4 -1
  165. package/lib/typescript/shared/adapters/with-screen-transitions/index.d.ts.map +1 -1
  166. package/lib/typescript/shared/animation/transition-blocking.d.ts +33 -0
  167. package/lib/typescript/shared/animation/transition-blocking.d.ts.map +1 -0
  168. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts.map +1 -1
  169. package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts.map +1 -1
  170. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts +2 -1
  171. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts.map +1 -1
  172. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts.map +1 -1
  173. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts.map +1 -1
  174. package/lib/typescript/shared/components/boundary/hooks/use-register-target.d.ts +10 -0
  175. package/lib/typescript/shared/components/boundary/hooks/use-register-target.d.ts.map +1 -0
  176. package/lib/typescript/shared/components/boundary/index.d.ts +2 -2
  177. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/components/host.d.ts +10 -0
  178. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/components/host.d.ts.map +1 -0
  179. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.d.ts +2 -0
  180. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.d.ts.map +1 -0
  181. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts +12 -0
  182. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts.map +1 -0
  183. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/index.d.ts +11 -0
  184. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/index.d.ts.map +1 -0
  185. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/host.d.ts.map +1 -0
  186. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.d.ts.map +1 -0
  187. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.d.ts +14 -0
  188. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.d.ts.map +1 -0
  189. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.d.ts +3 -0
  190. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.d.ts.map +1 -0
  191. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.d.ts +2 -0
  192. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.d.ts.map +1 -0
  193. package/lib/typescript/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/offset-style.d.ts +1 -1
  194. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.d.ts.map +1 -0
  195. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts +12 -0
  196. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -0
  197. package/lib/typescript/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-host-measurement.d.ts +5 -1
  198. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts.map +1 -0
  199. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.d.ts +12 -0
  200. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.d.ts.map +1 -0
  201. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/index.d.ts +13 -0
  202. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/index.d.ts.map +1 -0
  203. package/lib/typescript/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-bounds.store.d.ts +1 -1
  204. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.d.ts.map +1 -0
  205. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.d.ts.map +1 -0
  206. package/lib/typescript/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/portal-boundary-host.store.d.ts +3 -3
  207. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts.map +1 -0
  208. package/lib/typescript/shared/components/boundary/portal/index.d.ts +1 -2
  209. package/lib/typescript/shared/components/boundary/portal/index.d.ts.map +1 -1
  210. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts +0 -2
  211. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts.map +1 -1
  212. package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts +9 -10
  213. package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts.map +1 -1
  214. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts +21 -21
  215. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
  216. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts +9 -2
  217. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts.map +1 -1
  218. package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts +8 -0
  219. package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts.map +1 -1
  220. package/lib/typescript/shared/index.d.ts +1 -0
  221. package/lib/typescript/shared/index.d.ts.map +1 -1
  222. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +1 -0
  223. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  224. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts +1 -0
  225. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts.map +1 -1
  226. package/lib/typescript/shared/providers/screen/styles/stores/slot-references.store.d.ts.map +1 -1
  227. package/lib/typescript/shared/stores/system.store.d.ts.map +1 -1
  228. package/lib/typescript/shared/types/animation.types.d.ts +3 -3
  229. package/lib/typescript/shared/types/bounds.types.d.ts +7 -2
  230. package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
  231. package/lib/typescript/shared/utils/bounds/helpers/create-bounds-accessor-core.d.ts.map +1 -1
  232. package/lib/typescript/shared/utils/bounds/types/options.d.ts +6 -2
  233. package/lib/typescript/shared/utils/bounds/types/options.d.ts.map +1 -1
  234. package/package.json +1 -1
  235. package/src/shared/adapters/with-screen-transitions/index.tsx +30 -9
  236. package/src/shared/animation/transition-blocking.ts +79 -0
  237. package/src/shared/components/boundary/components/boundary-target.tsx +43 -50
  238. package/src/shared/components/boundary/create-boundary-component.tsx +35 -150
  239. package/src/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts +103 -81
  240. package/src/shared/components/boundary/hooks/use-boundary-measurement.ts +1 -0
  241. package/src/shared/components/boundary/hooks/use-measurer.ts +12 -4
  242. package/src/shared/components/boundary/hooks/use-register-target.ts +43 -0
  243. package/src/shared/components/boundary/index.tsx +2 -2
  244. package/src/shared/components/boundary/portal/components/boundary-content-portal/components/host.tsx +48 -0
  245. package/src/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.ts +9 -0
  246. package/src/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts +274 -0
  247. package/src/shared/components/boundary/portal/components/boundary-content-portal/index.tsx +59 -0
  248. package/src/shared/components/boundary/portal/components/{host.tsx → boundary-portal/components/host.tsx} +14 -15
  249. package/src/shared/components/boundary/portal/components/{portal-boundary-host.tsx → boundary-portal/components/portal-boundary-host.tsx} +12 -12
  250. package/src/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.tsx +80 -0
  251. package/src/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/has-local-slot.ts +1 -1
  252. package/src/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.ts +10 -0
  253. package/src/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/offset-style.ts +2 -2
  254. package/src/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +250 -0
  255. package/src/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-host-measurement.ts +38 -8
  256. package/src/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-placeholder-styles.ts +4 -15
  257. package/src/shared/components/boundary/portal/components/boundary-portal/index.tsx +38 -0
  258. package/src/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-bounds.store.ts +2 -2
  259. package/src/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/portal-boundary-host.store.ts +10 -15
  260. package/src/shared/components/boundary/portal/index.ts +1 -2
  261. package/src/shared/components/boundary/portal/teleport.ts +2 -2
  262. package/src/shared/components/boundary/portal/utils/naming.ts +0 -19
  263. package/src/shared/components/boundary/portal/utils/ownership.ts +32 -88
  264. package/src/shared/components/boundary/providers/boundary-root.provider.tsx +198 -78
  265. package/src/shared/components/boundary/utils/destination-signals.ts +38 -14
  266. package/src/shared/components/boundary/utils/measured-bounds.ts +48 -0
  267. package/src/shared/components/screen-container/layers/content.tsx +1 -1
  268. package/src/shared/configs/presets.ts +2 -2
  269. package/src/shared/index.ts +4 -0
  270. package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +1 -0
  271. package/src/shared/providers/screen/styles/slot.provider.tsx +4 -2
  272. package/src/shared/providers/screen/styles/stores/slot-references.store.ts +2 -1
  273. package/src/shared/stores/system.store.ts +10 -4
  274. package/src/shared/types/animation.types.ts +3 -3
  275. package/src/shared/types/bounds.types.ts +9 -2
  276. package/src/shared/utils/bounds/helpers/create-bounds-accessor-core.ts +18 -11
  277. package/src/shared/utils/bounds/navigation/reveal/build.ts +2 -2
  278. package/src/shared/utils/bounds/navigation/zoom/build.ts +3 -3
  279. package/src/shared/utils/bounds/types/options.ts +9 -2
  280. package/lib/commonjs/shared/components/boundary/portal/components/boundary-local-portal-host.js +0 -58
  281. package/lib/commonjs/shared/components/boundary/portal/components/boundary-local-portal-host.js.map +0 -1
  282. package/lib/commonjs/shared/components/boundary/portal/components/host.js.map +0 -1
  283. package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js.map +0 -1
  284. package/lib/commonjs/shared/components/boundary/portal/components/portal.js +0 -272
  285. package/lib/commonjs/shared/components/boundary/portal/components/portal.js.map +0 -1
  286. package/lib/commonjs/shared/components/boundary/portal/hooks/use-host-measurement.js.map +0 -1
  287. package/lib/commonjs/shared/components/boundary/portal/hooks/use-placeholder-styles.js.map +0 -1
  288. package/lib/commonjs/shared/components/boundary/portal/stores/host-bounds.store.js.map +0 -1
  289. package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js.map +0 -1
  290. package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +0 -1
  291. package/lib/commonjs/shared/components/boundary/portal/utils/has-local-slot.js.map +0 -1
  292. package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js.map +0 -1
  293. package/lib/module/shared/components/boundary/portal/components/boundary-local-portal-host.js +0 -53
  294. package/lib/module/shared/components/boundary/portal/components/boundary-local-portal-host.js.map +0 -1
  295. package/lib/module/shared/components/boundary/portal/components/host.js.map +0 -1
  296. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js.map +0 -1
  297. package/lib/module/shared/components/boundary/portal/components/portal.js +0 -267
  298. package/lib/module/shared/components/boundary/portal/components/portal.js.map +0 -1
  299. package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js.map +0 -1
  300. package/lib/module/shared/components/boundary/portal/hooks/use-placeholder-styles.js.map +0 -1
  301. package/lib/module/shared/components/boundary/portal/stores/host-bounds.store.js.map +0 -1
  302. package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js.map +0 -1
  303. package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +0 -1
  304. package/lib/module/shared/components/boundary/portal/utils/has-local-slot.js.map +0 -1
  305. package/lib/module/shared/components/boundary/portal/utils/offset-style.js.map +0 -1
  306. package/lib/typescript/shared/components/boundary/portal/components/boundary-local-portal-host.d.ts +0 -8
  307. package/lib/typescript/shared/components/boundary/portal/components/boundary-local-portal-host.d.ts.map +0 -1
  308. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts.map +0 -1
  309. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts.map +0 -1
  310. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts +0 -20
  311. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts.map +0 -1
  312. package/lib/typescript/shared/components/boundary/portal/hooks/use-host-measurement.d.ts.map +0 -1
  313. package/lib/typescript/shared/components/boundary/portal/hooks/use-placeholder-styles.d.ts +0 -17
  314. package/lib/typescript/shared/components/boundary/portal/hooks/use-placeholder-styles.d.ts.map +0 -1
  315. package/lib/typescript/shared/components/boundary/portal/stores/host-bounds.store.d.ts.map +0 -1
  316. package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts.map +0 -1
  317. package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts.map +0 -1
  318. package/lib/typescript/shared/components/boundary/portal/utils/has-local-slot.d.ts +0 -3
  319. package/lib/typescript/shared/components/boundary/portal/utils/has-local-slot.d.ts.map +0 -1
  320. package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts.map +0 -1
  321. package/src/shared/components/boundary/portal/components/boundary-local-portal-host.tsx +0 -66
  322. package/src/shared/components/boundary/portal/components/portal.tsx +0 -412
  323. /package/lib/commonjs/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/has-local-slot.js +0 -0
  324. /package/lib/commonjs/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-registry.store.js +0 -0
  325. /package/lib/module/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/has-local-slot.js +0 -0
  326. /package/lib/module/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-registry.store.js +0 -0
  327. /package/lib/typescript/shared/components/boundary/portal/components/{host.d.ts → boundary-portal/components/host.d.ts} +0 -0
  328. /package/lib/typescript/shared/components/boundary/portal/components/{portal-boundary-host.d.ts → boundary-portal/components/portal-boundary-host.d.ts} +0 -0
  329. /package/lib/typescript/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-registry.store.d.ts +0 -0
  330. /package/src/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-registry.store.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useLayoutEffect","useState","runOnJS","useAnimatedProps","useAnimatedReaction","useSharedValue","useDescriptorsStore","useScreenSlots","useRegisteredScreenSlots","AnimationStore","pairs","PORTAL_HOST_NAME_RESET_VALUE","canSwitchHandoffHostImmediately","isHandoffHostClosingComplete","resolveBoundaryPortalOwnership","shallowEqual","shouldAttachBoundaryPortal","resolveNextVisiblePortalHostName","createBoundaryContentPortalHostName","useBoundaryContentPortalAttachment","boundaryId","enabled","ownScreenSlots","sourcePairKey","s","derivations","currentScreenKey","ownership","setOwnership","styleOwnerScreenKey","ownerScreenKey","ownerScreenSlots","activeScreenSlots","nextInterpolatorReady","activeNextInterpolatorReady","slotsMap","activeSlotsMap","requestedPortalHostName","visiblePortalHostName","canSwitchPortalHostImmediately","targetScreenKey","hostScreenKey","settledHostScreenKey","settledHostProgress","getValue","settledHostAnimating","settledHostWillAnimate","settledHostClosing","handoffHostName","updatePortalOwnership","ownerPairKey","current","status","set","progressAnimating","get","progressSettled","willAnimate","handoff","isSettledHostClosingComplete","closing","isSettledHostReady","pairsState","signal","previousSignal","previousOwnerPairKey","undefined","canSwitchImmediately","hostName","slot","teleport","props","shouldTeleport","requestedName","visibleName","isInterpolatorReady","nextVisibleName","state","previousState","teleportProps","slotProps"],"sourceRoot":"../../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ import { memo } from "react";
4
+ import Animated from "react-native-reanimated";
5
+ import { isTeleportAvailable, NativePortal } from "../../teleport";
6
+ import { useBoundaryContentPortalAttachment } from "./hooks/use-boundary-content-portal-attachment";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export { BoundaryContentPortalHost } from "./components/host";
9
+ const AnimatedNativePortal = NativePortal ? Animated.createAnimatedComponent(NativePortal) : null;
10
+ export const BoundaryContentPortal = /*#__PURE__*/memo(function BoundaryContentPortal({
11
+ boundaryId,
12
+ children,
13
+ enabled,
14
+ pointerEvents
15
+ }) {
16
+ const shouldEnablePortal = enabled && boundaryId !== undefined;
17
+ const {
18
+ teleportProps
19
+ } = useBoundaryContentPortalAttachment({
20
+ boundaryId: boundaryId ?? "",
21
+ enabled: shouldEnablePortal
22
+ });
23
+ if (shouldEnablePortal && isTeleportAvailable && AnimatedNativePortal) {
24
+ return /*#__PURE__*/_jsx(AnimatedNativePortal, {
25
+ animatedProps: teleportProps,
26
+ name: boundaryId,
27
+ pointerEvents: pointerEvents,
28
+ children: children
29
+ });
30
+ }
31
+ return children;
32
+ });
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","Animated","isTeleportAvailable","NativePortal","useBoundaryContentPortalAttachment","jsx","_jsx","BoundaryContentPortalHost","AnimatedNativePortal","createAnimatedComponent","BoundaryContentPortal","boundaryId","children","enabled","pointerEvents","shouldEnablePortal","undefined","teleportProps","animatedProps","name"],"sourceRoot":"../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-content-portal/index.tsx"],"mappings":";;AAAA,SAGCA,IAAI,QAEE,OAAO;AAEd,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,mBAAmB,EAAEC,YAAY,QAAQ,gBAAgB;AAClE,SAASC,kCAAkC,QAAQ,gDAAgD;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEpG,SAASC,yBAAyB,QAAQ,mBAAmB;AAgB7D,MAAMC,oBAAoB,GAAGL,YAAY,GACtCF,QAAQ,CAACQ,uBAAuB,CAChCN,YACD,CAAC,GACA,IAAI;AAEP,OAAO,MAAMO,qBAAqB,gBAAGV,IAAI,CAAC,SAASU,qBAAqBA,CAAC;EACxEC,UAAU;EACVC,QAAQ;EACRC,OAAO;EACPC;AAC2B,CAAC,EAAE;EAC9B,MAAMC,kBAAkB,GAAGF,OAAO,IAAIF,UAAU,KAAKK,SAAS;EAC9D,MAAM;IAAEC;EAAc,CAAC,GAAGb,kCAAkC,CAAC;IAC5DO,UAAU,EAAEA,UAAU,IAAI,EAAE;IAC5BE,OAAO,EAAEE;EACV,CAAC,CAAC;EAEF,IAAIA,kBAAkB,IAAIb,mBAAmB,IAAIM,oBAAoB,EAAE;IACtE,oBACCF,IAAA,CAACE,oBAAoB;MACpBU,aAAa,EAAED,aAAc;MAC7BE,IAAI,EAAER,UAAW;MACjBG,aAAa,EAAEA,aAAc;MAAAF,QAAA,EAE5BA;IAAQ,CACY,CAAC;EAEzB;EAEA,OAAOA,QAAQ;AAChB,CAAC,CAAC","ignoreList":[]}
@@ -3,8 +3,9 @@
3
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
- import { useDescriptorsStore } from "../../../../providers/screen/descriptors";
7
- import { SystemStore } from "../../../../stores/system.store";
6
+ import { useDescriptorsStore } from "../../../../../../providers/screen/descriptors";
7
+ import { useScreenSlots } from "../../../../../../providers/screen/styles";
8
+ import { SystemStore } from "../../../../../../stores/system.store";
8
9
  import { useHostMeasurement } from "../hooks/use-host-measurement";
9
10
  import { registerHost, unregisterHost } from "../stores/host-registry.store";
10
11
  import { useActivePortalBoundaryHosts } from "../stores/portal-boundary-host.store";
@@ -17,7 +18,7 @@ function HostImpl({
17
18
  }) {
18
19
  const screenKey = useDescriptorsStore(s => s.derivations.currentScreenKey);
19
20
  const {
20
- drainLifecycleStartBlocks
21
+ unblockLifecycleStart
21
22
  } = SystemStore.getBag(screenKey).actions;
22
23
  const generatedHostKeyRef = useRef(null);
23
24
  if (generatedHostKeyRef.current === null) {
@@ -26,6 +27,9 @@ function HostImpl({
26
27
  const hostKey = fallback ? screenKey : generatedHostKeyRef.current;
27
28
  const capturesScroll = !fallback;
28
29
  const activeBoundaryHosts = useActivePortalBoundaryHosts(hostKey);
30
+ const {
31
+ visibilityBlocked
32
+ } = useScreenSlots();
29
33
  const {
30
34
  height: viewportHeight,
31
35
  width: viewportWidth
@@ -34,7 +38,10 @@ function HostImpl({
34
38
  capturesScroll,
35
39
  enabled: activeBoundaryHosts.length > 0,
36
40
  hostKey,
37
- screenKey
41
+ screenKey,
42
+ visibilityBlocked,
43
+ viewportHeight,
44
+ viewportWidth
38
45
  });
39
46
  useLayoutEffect(() => {
40
47
  registerHost({
@@ -48,23 +55,17 @@ function HostImpl({
48
55
  };
49
56
  }, [capturesScroll, fallback, hostKey, screenKey]);
50
57
  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
+ // Each destination boundary contributes one lifecycle start block. Release
59
+ // only this host's block so unrelated boundary and user blocks stay intact.
60
+ unblockLifecycleStart();
61
+ }, [unblockLifecycleStart]);
62
+ const boundaryHosts = measurement.canRenderHosts ? activeBoundaryHosts.map(host => /*#__PURE__*/_jsx(View, {
58
63
  pointerEvents: "none",
59
64
  style: [styles.boundaryHostViewport, {
60
65
  width: viewportWidth,
61
66
  height: viewportHeight
62
67
  }],
63
- onLayout: () => {
64
- if (list.length - 1 === idx) {
65
- handleUnblocking();
66
- }
67
- },
68
+ onLayout: handleUnblocking,
68
69
  children: /*#__PURE__*/_jsx(PortalBoundaryHost, {
69
70
  host: host,
70
71
  style: StyleSheet.absoluteFill
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useCallback","useLayoutEffect","useRef","StyleSheet","useWindowDimensions","View","Animated","useDescriptorsStore","useScreenSlots","SystemStore","useHostMeasurement","registerHost","unregisterHost","useActivePortalBoundaryHosts","PortalBoundaryHost","jsx","_jsx","nextHostId","HostImpl","fallback","style","screenKey","s","derivations","currentScreenKey","unblockLifecycleStart","getBag","actions","generatedHostKeyRef","current","hostKey","capturesScroll","activeBoundaryHosts","visibilityBlocked","height","viewportHeight","width","viewportWidth","measurement","enabled","length","handleUnblocking","boundaryHosts","canRenderHosts","map","host","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/boundary-portal/components/host.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,WAAW,EAAEC,eAAe,EAAEC,MAAM,QAAQ,OAAO;AAClE,SAECC,UAAU,EACVC,mBAAmB,EACnBC,IAAI,QAEE,cAAc;AACrB,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,mBAAmB,QAAQ,gDAAgD;AACpF,SAASC,cAAc,QAAQ,2CAA2C;AAC1E,SAASC,WAAW,QAAQ,uCAAuC;AACnE,SAASC,kBAAkB,QAAQ,+BAA+B;AAClE,SAASC,YAAY,EAAEC,cAAc,QAAQ,+BAA+B;AAC5E,SAASC,4BAA4B,QAAQ,sCAAsC;AACnF,SAASC,kBAAkB,QAAQ,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE5D,IAAIC,UAAU,GAAG,CAAC;AAUlB,SAASC,QAAQA,CAAC;EAAEC,QAAQ,GAAG,KAAK;EAAEC;AAAqB,CAAC,EAAE;EAC7D,MAAMC,SAAS,GAAGd,mBAAmB,CAAEe,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACC,gBAAgB,CAAC;EAC5E,MAAM;IAAEC;EAAsB,CAAC,GAAGhB,WAAW,CAACiB,MAAM,CAACL,SAAS,CAAC,CAACM,OAAO;EACvE,MAAMC,mBAAmB,GAAG1B,MAAM,CAAgB,IAAI,CAAC;EAEvD,IAAI0B,mBAAmB,CAACC,OAAO,KAAK,IAAI,EAAE;IACzCD,mBAAmB,CAACC,OAAO,GAAG,GAAGR,SAAS,SAASJ,UAAU,EAAE,EAAE;EAClE;EAEA,MAAMa,OAAO,GAAGX,QAAQ,GAAGE,SAAS,GAAGO,mBAAmB,CAACC,OAAO;EAClE,MAAME,cAAc,GAAG,CAACZ,QAAQ;EAChC,MAAMa,mBAAmB,GAAGnB,4BAA4B,CAACiB,OAAO,CAAC;EACjE,MAAM;IAAEG;EAAkB,CAAC,GAAGzB,cAAc,CAAC,CAAC;EAC9C,MAAM;IAAE0B,MAAM,EAAEC,cAAc;IAAEC,KAAK,EAAEC;EAAc,CAAC,GACrDjC,mBAAmB,CAAC,CAAC;EAEtB,MAAMkC,WAAW,GAAG5B,kBAAkB,CAAC;IACtCqB,cAAc;IACdQ,OAAO,EAAEP,mBAAmB,CAACQ,MAAM,GAAG,CAAC;IACvCV,OAAO;IACPT,SAAS;IACTY,iBAAiB;IACjBE,cAAc;IACdE;EACD,CAAC,CAAC;EAEFpC,eAAe,CAAC,MAAM;IACrBU,YAAY,CAAC;MACZoB,cAAc;MACdZ,QAAQ;MACRW,OAAO;MACPT;IACD,CAAC,CAAC;IAEF,OAAO,MAAM;MACZT,cAAc,CAACS,SAAS,EAAES,OAAO,CAAC;IACnC,CAAC;EACF,CAAC,EAAE,CAACC,cAAc,EAAEZ,QAAQ,EAAEW,OAAO,EAAET,SAAS,CAAC,CAAC;EAElD,MAAMoB,gBAAgB,GAAGzC,WAAW,CAAC,MAAM;IAC1C;IACA;IACAyB,qBAAqB,CAAC,CAAC;EACxB,CAAC,EAAE,CAACA,qBAAqB,CAAC,CAAC;EAE3B,MAAMiB,aAAa,GAAGJ,WAAW,CAACK,cAAc,GAC7CX,mBAAmB,CAACY,GAAG,CAAEC,IAAI,iBAC7B7B,IAAA,CAACX,IAAI;IAEJyC,aAAa,EAAC,MAAM;IACpB1B,KAAK,EAAE,CACN2B,MAAM,CAACC,oBAAoB,EAC3B;MAAEZ,KAAK,EAAEC,aAAa;MAAEH,MAAM,EAAEC;IAAe,CAAC,CAC/C;IACFc,QAAQ,EAAER,gBAAiB;IAAAS,QAAA,eAE3BlC,IAAA,CAACF,kBAAkB;MAAC+B,IAAI,EAAEA,IAAK;MAACzB,KAAK,EAAEjB,UAAU,CAACgD;IAAa,CAAE;EAAC,GAR7DN,IAAI,CAACO,cASL,CACN,CAAC,GACD,IAAI;EAEP,oBACCpC,IAAA,CAACV,QAAQ,CAACD,IAAI;IACbgD,GAAG,EAAEf,WAAW,CAACgB,OAAQ;IACzBR,aAAa,EAAC,MAAM;IACpB1B,KAAK,EAAE,CACN2B,MAAM,CAACF,IAAI,EACX;MAAET,KAAK,EAAEC,aAAa;MAAEH,MAAM,EAAEC;IAAe,CAAC,EAChDf,KAAK,CACJ;IACFmC,WAAW,EAAE,KAAM;IAAAL,QAAA,EAElBR;EAAa,CACA,CAAC;AAElB;AAEA,OAAO,MAAMc,IAAI,gBAAGzD,IAAI,CAAC,SAASyD,IAAIA,CAACC,KAAsB,EAAE;EAC9D,oBAAOzC,IAAA,CAACE,QAAQ;IAAA,GAAKuC;EAAK,CAAG,CAAC;AAC/B,CAAC,CAAC;AAEF,OAAO,MAAMC,kBAAkB,gBAAG3D,IAAI,CAAC,SAAS2D,kBAAkBA,CAAA,EAAG;EACpE,oBAAO1C,IAAA,CAACE,QAAQ;IAACC,QAAQ;EAAA,CAAE,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM4B,MAAM,GAAG5C,UAAU,CAACwD,MAAM,CAAC;EAChCd,IAAI,EAAE;IACLe,SAAS,EAAE,MAAM;IACjBC,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE,SAAS;IACnBC,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,MAAM,EAAE;EACT,CAAC;EACDjB,oBAAoB,EAAE;IACrBa,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE,SAAS;IACnBC,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE;EACN;AACD,CAAC,CAAC","ignoreList":[]}
@@ -3,15 +3,15 @@
3
3
  import { memo } from "react";
4
4
  import { StyleSheet } from "react-native";
5
5
  import Animated, { useAnimatedStyle } from "react-native-reanimated";
6
- import { NO_STYLES } from "../../../../constants";
7
- import { composeSlotStyleWithLocalTransform } from "../../../../providers/screen/styles/helpers/compose-slot-style";
8
- import { AnimationStore } from "../../../../stores/animation.store";
9
- import { getSourceScreenKeyFromPairKey } from "../../../../stores/bounds/helpers/link-pairs.helpers";
10
- import { getLink } from "../../../../stores/bounds/internals/links";
11
- import { getClampedScrollAxisDelta, ScrollStore } from "../../../../stores/scroll.store";
12
- import { NativePortalHost } from "../teleport";
13
- import { hasLocalSlot } from "../utils/has-local-slot";
14
- import { resolvePortalOffsetStyle } from "../utils/offset-style";
6
+ import { NO_STYLES } from "../../../../../../constants";
7
+ import { composeSlotStyleWithLocalTransform } from "../../../../../../providers/screen/styles/helpers/compose-slot-style";
8
+ import { AnimationStore } from "../../../../../../stores/animation.store";
9
+ import { getSourceScreenKeyFromPairKey } from "../../../../../../stores/bounds/helpers/link-pairs.helpers";
10
+ import { getLink } from "../../../../../../stores/bounds/internals/links";
11
+ import { getClampedScrollAxisDelta, ScrollStore } from "../../../../../../stores/scroll.store";
12
+ import { NativePortalHost } from "../../../teleport";
13
+ import { hasLocalSlot } from "../helpers/has-local-slot";
14
+ import { resolvePortalOffsetStyle } from "../helpers/offset-style";
15
15
  import { jsx as _jsx } from "react/jsx-runtime";
16
16
  const AnimatedPortalBoundaryHost = NativePortalHost ? Animated.createAnimatedComponent(NativePortalHost) : null;
17
17
  export const PortalBoundaryHost = /*#__PURE__*/memo(function PortalBoundaryHost({
@@ -28,7 +28,7 @@ export const PortalBoundaryHost = /*#__PURE__*/memo(function PortalBoundaryHost(
28
28
  const hostStyle = useAnimatedStyle(() => {
29
29
  "worklet";
30
30
 
31
- // Strict per-member lookup a fallback member's source rect would
31
+ // Strict per-member lookup - a fallback member's source rect would
32
32
  // misplace this host's teleported content.
33
33
  const link = getLink(host.pairKey, host.boundaryId);
34
34
  if (!link?.source || !link.destination) {
@@ -96,7 +96,7 @@ export const PortalBoundaryHost = /*#__PURE__*/memo(function PortalBoundaryHost(
96
96
  });
97
97
 
98
98
  // Without `react-native-teleport` no portal ever mounts a boundary host, so
99
- // this never renders the guard just narrows the nullable animated host.
99
+ // this never renders - the guard just narrows the nullable animated host.
100
100
  if (!AnimatedPortalBoundaryHost) {
101
101
  return null;
102
102
  }
@@ -0,0 +1 @@
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/boundary-portal/components/portal-boundary-host.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ import { memo } from "react";
4
+ import Animated, { runOnUI } from "react-native-reanimated";
5
+ import { logger } from "../../../../../../utils/logger";
6
+ import { isTeleportAvailable, NativePortal as TeleportPortal } from "../../../teleport";
7
+ import { usePlaceholderStyles } from "../hooks/use-placeholder-styles";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ const AnimatedNativePortal = TeleportPortal ? Animated.createAnimatedComponent(TeleportPortal) : null;
10
+ export const BoundaryPortalSlot = /*#__PURE__*/memo(function BoundaryPortalSlot({
11
+ id,
12
+ children,
13
+ enabled,
14
+ animatedProps,
15
+ pointerEvents,
16
+ placeholderRef
17
+ }) {
18
+ const isPortalEnabled = enabled && isTeleportAvailable;
19
+ if (__DEV__ && enabled && !id) {
20
+ logger.warnOnce("portal:missing-id", "A boundary portal was rendered without an id; rendering inline.");
21
+ }
22
+ const {
23
+ handleOnLayout,
24
+ placeholderStyle
25
+ } = usePlaceholderStyles();
26
+ if (isPortalEnabled && AnimatedNativePortal) {
27
+ return /*#__PURE__*/_jsx(Animated.View, {
28
+ ref: placeholderRef,
29
+ onLayout: ({
30
+ nativeEvent: {
31
+ layout
32
+ }
33
+ }) => runOnUI(handleOnLayout)(layout),
34
+ style: placeholderStyle,
35
+ pointerEvents: pointerEvents,
36
+ collapsable: false,
37
+ children: /*#__PURE__*/_jsx(AnimatedNativePortal, {
38
+ animatedProps: animatedProps,
39
+ name: id,
40
+ pointerEvents: pointerEvents,
41
+ children: children
42
+ })
43
+ });
44
+ }
45
+ return children;
46
+ });
47
+ //# sourceMappingURL=portal-slot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","Animated","runOnUI","logger","isTeleportAvailable","NativePortal","TeleportPortal","usePlaceholderStyles","jsx","_jsx","AnimatedNativePortal","createAnimatedComponent","BoundaryPortalSlot","id","children","enabled","animatedProps","pointerEvents","placeholderRef","isPortalEnabled","__DEV__","warnOnce","handleOnLayout","placeholderStyle","View","ref","onLayout","nativeEvent","layout","style","collapsable","name"],"sourceRoot":"../../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-portal/components/portal-slot.tsx"],"mappings":";;AAAA,SAGCA,IAAI,QAEE,OAAO;AAEd,OAAOC,QAAQ,IAAsBC,OAAO,QAAQ,yBAAyB;AAC7E,SAASC,MAAM,QAAQ,gCAAgC;AACvD,SACCC,mBAAmB,EACnBC,YAAY,IAAIC,cAAc,QACxB,mBAAmB;AAC1B,SAASC,oBAAoB,QAAQ,iCAAiC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASvE,MAAMC,oBAAoB,GAAGJ,cAAc,GACxCL,QAAQ,CAACU,uBAAuB,CAChCL,cACD,CAAC,GACA,IAAI;AAWP,OAAO,MAAMM,kBAAkB,gBAAGZ,IAAI,CAAC,SAASY,kBAAkBA,CAAC;EAClEC,EAAE;EACFC,QAAQ;EACRC,OAAO;EACPC,aAAa;EACbC,aAAa;EACbC;AACwB,CAAC,EAAE;EAC3B,MAAMC,eAAe,GAAGJ,OAAO,IAAIX,mBAAmB;EAEtD,IAAIgB,OAAO,IAAIL,OAAO,IAAI,CAACF,EAAE,EAAE;IAC9BV,MAAM,CAACkB,QAAQ,CACd,mBAAmB,EACnB,iEACD,CAAC;EACF;EAEA,MAAM;IAAEC,cAAc;IAAEC;EAAiB,CAAC,GAAGhB,oBAAoB,CAAC,CAAC;EAEnE,IAAIY,eAAe,IAAIT,oBAAoB,EAAE;IAC5C,oBACCD,IAAA,CAACR,QAAQ,CAACuB,IAAI;MACbC,GAAG,EAAEP,cAAe;MACpBQ,QAAQ,EAAEA,CAAC;QAAEC,WAAW,EAAE;UAAEC;QAAO;MAAE,CAAC,KACrC1B,OAAO,CAACoB,cAAc,CAAC,CAACM,MAAM,CAC9B;MACDC,KAAK,EAAEN,gBAAiB;MACxBN,aAAa,EAAEA,aAAc;MAC7Ba,WAAW,EAAE,KAAM;MAAAhB,QAAA,eAEnBL,IAAA,CAACC,oBAAoB;QACpBM,aAAa,EAAEA,aAAc;QAC7Be,IAAI,EAAElB,EAAG;QACTI,aAAa,EAAEA,aAAc;QAAAH,QAAA,EAE5BA;MAAQ,CACY;IAAC,CACT,CAAC;EAElB;EAEA,OAAOA,QAAQ;AAChB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["hasLocalSlot","localStylesMaps","slotId","index","length","undefined"],"sourceRoot":"../../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.ts"],"mappings":";;AAEA,OAAO,MAAMA,YAAY,GAAGA,CAC3BC,eAAiC,EACjCC,MAAc,KACV;EACJ,SAAS;;EAET,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGF,eAAe,CAACG,MAAM,EAAED,KAAK,EAAE,EAAE;IAC5D,IAAIF,eAAe,CAACE,KAAK,CAAC,GAAGD,MAAM,CAAC,KAAKG,SAAS,EAAE;MACnD,OAAO,IAAI;IACZ;EACD;EAEA,OAAO,KAAK;AACb,CAAC","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ const BOUNDARY_PORTAL_HOST_NAME_SUFFIX = "-portal-host";
4
+ export const createBoundaryPortalHostName = (hostKey, boundaryId, pairKey) => {
5
+ "worklet";
6
+
7
+ return `${hostKey}-${pairKey ? `${pairKey}-` : ""}${boundaryId}${BOUNDARY_PORTAL_HOST_NAME_SUFFIX}`;
8
+ };
9
+ //# sourceMappingURL=host-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BOUNDARY_PORTAL_HOST_NAME_SUFFIX","createBoundaryPortalHostName","hostKey","boundaryId","pairKey"],"sourceRoot":"../../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-portal/helpers/host-name.ts"],"mappings":";;AAAA,MAAMA,gCAAgC,GAAG,cAAc;AAEvD,OAAO,MAAMC,4BAA4B,GAAGA,CAC3CC,OAAe,EACfC,UAAkB,EAClBC,OAAuB,KACnB;EACJ,SAAS;;EACT,OAAO,GAAGF,OAAO,IAAIE,OAAO,GAAG,GAAGA,OAAO,GAAG,GAAG,EAAE,GAAGD,UAAU,GAAGH,gCAAgC,EAAE;AACpG,CAAC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { getClampedScrollAxisDelta } from "../../../../stores/scroll.store";
3
+ import { getClampedScrollAxisDelta } from "../../../../../../stores/scroll.store";
4
4
  import { getPortalHostBounds } from "../stores/host-bounds.store";
5
5
 
6
6
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getClampedScrollAxisDelta","getPortalHostBounds","resolvePortalOffsetStyle","bounds","hostKey","placement","landingShift","hostBounds","boundsScrollSnapshot","scroll","hostBoundsScrollSnapshot","alignHostToBoundsScroll","hostSnapshotDeltaX","hostSnapshotDeltaY","adjustedHostPageX","pageX","adjustedHostPageY","pageY","transform","translateY","y","translateX","x"],"sourceRoot":"../../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.ts"],"mappings":";;AACA,SAASA,yBAAyB,QAAQ,uCAAuC;AAEjF,SAASC,mBAAmB,QAAQ,6BAA6B;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgBA,OAAO,MAAMC,wBAAwB,GAAGA,CAAC;EACxCC,MAAM;EACNC,OAAO;EACPC,SAAS;EACTC;AAC+B,CAAC,KAAiB;EACjD,SAAS;;EACT,MAAMC,UAAU,GAAGN,mBAAmB,CAACG,OAAO,CAAC;EAC/C,MAAMI,oBAAoB,GAAGL,MAAM,CAACM,MAAM,IAAI,IAAI;EAClD,MAAMC,wBAAwB,GAAGH,UAAU,EAAEE,MAAM,IAAI,IAAI;;EAE3D;EACA;EACA;EACA,MAAME,uBAAuB,GAAGN,SAAS,KAAK,aAAa;EAE3D,MAAMO,kBAAkB,GAAGD,uBAAuB,GAC/CX,yBAAyB,CACzBQ,oBAAoB,EACpBE,wBAAwB,EACxB,YACD,CAAC,GACA,CAAC;EACJ,MAAMG,kBAAkB,GAAGF,uBAAuB,GAC/CX,yBAAyB,CACzBQ,oBAAoB,EACpBE,wBAAwB,EACxB,UACD,CAAC,GACA,CAAC;;EAEJ;EACA;EACA,MAAMI,iBAAiB,GAAGP,UAAU,GACjCA,UAAU,CAACQ,KAAK,GAAGH,kBAAkB,GACrC,CAAC;EACJ,MAAMI,iBAAiB,GAAGT,UAAU,GACjCA,UAAU,CAACU,KAAK,GAAGJ,kBAAkB,GACrC,CAAC;EAEJ,OAAO;IACNK,SAAS,EAAE,CACV;MAAEC,UAAU,EAAEhB,MAAM,CAACc,KAAK,GAAGD,iBAAiB,IAAIV,YAAY,EAAEc,CAAC,IAAI,CAAC;IAAE,CAAC,EACzE;MAAEC,UAAU,EAAElB,MAAM,CAACY,KAAK,GAAGD,iBAAiB,IAAIR,YAAY,EAAEgB,CAAC,IAAI,CAAC;IAAE,CAAC;EAE3E,CAAC;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useLayoutEffect, useRef, useState } from "react";
4
+ import { runOnJS, useAnimatedProps, useAnimatedReaction, useSharedValue } from "react-native-reanimated";
5
+ import { useDescriptorsStore } from "../../../../../../providers/screen/descriptors";
6
+ import { useScreenSlots } from "../../../../../../providers/screen/styles";
7
+ import { pairs } from "../../../../../../stores/bounds/internals/state";
8
+ import { PORTAL_HOST_NAME_RESET_VALUE } from "../../../utils/naming";
9
+ import { resolveBoundaryPortalOwnership } from "../../../utils/ownership";
10
+ import { shallowEqual } from "../../../utils/shallow-equal";
11
+ import { shouldAttachBoundaryPortal } from "../../../utils/teleport-control";
12
+ import { resolveNextVisiblePortalHostName } from "../../../utils/visible-host";
13
+ import { createBoundaryPortalHostName } from "../helpers/host-name";
14
+ import { useActiveHostKey } from "../stores/host-registry.store";
15
+ import { dropStalePortalBoundaryHosts, mountPortalBoundaryHost, unmountPortalBoundaryHostByName } from "../stores/portal-boundary-host.store";
16
+ export const useBoundaryPortalAttachment = ({
17
+ boundaryId,
18
+ enabled
19
+ }) => {
20
+ const sourcePairKey = useDescriptorsStore(s => s.derivations.sourcePairKey);
21
+ const currentScreenKey = useDescriptorsStore(s => s.derivations.currentScreenKey);
22
+ const {
23
+ localStylesMaps,
24
+ nextInterpolatorReady,
25
+ slotsMap
26
+ } = useScreenSlots();
27
+ const [ownership, setOwnership] = useState(null);
28
+ const requestedPortalHostName = useSharedValue(null);
29
+ const visiblePortalHostName = useSharedValue(null);
30
+ const mountedPortalBoundaryHostNamesRef = useRef(new Set());
31
+ const escapeHostKey = useActiveHostKey(enabled ? currentScreenKey : null);
32
+ const updatePortalOwnership = useCallback((hostScreenKey, ownerPairKey, ownerScreenKey) => {
33
+ if (hostScreenKey && ownerPairKey && ownerScreenKey) {
34
+ setOwnership(current => {
35
+ if (current?.hostScreenKey === hostScreenKey && current.ownerPairKey === ownerPairKey && current.ownerScreenKey === ownerScreenKey) {
36
+ return current;
37
+ }
38
+ return {
39
+ hostScreenKey,
40
+ ownerPairKey,
41
+ ownerScreenKey,
42
+ status: "complete"
43
+ };
44
+ });
45
+ return;
46
+ }
47
+ setOwnership(current => current ? null : current);
48
+ }, []);
49
+ const unmountOwnedPortalBoundaryHosts = useCallback(() => {
50
+ for (const portalHostName of mountedPortalBoundaryHostNamesRef.current) {
51
+ unmountPortalBoundaryHostByName(portalHostName);
52
+ }
53
+ mountedPortalBoundaryHostNamesRef.current.clear();
54
+ }, []);
55
+ useLayoutEffect(() => {
56
+ if (!enabled || !ownership || !escapeHostKey) {
57
+ requestedPortalHostName.set(null);
58
+ visiblePortalHostName.set(null);
59
+ unmountOwnedPortalBoundaryHosts();
60
+ return;
61
+ }
62
+ const portalHostName = createBoundaryPortalHostName(escapeHostKey, boundaryId, ownership.ownerPairKey);
63
+ mountPortalBoundaryHost({
64
+ boundaryId,
65
+ escapeClipping: true,
66
+ hostKey: escapeHostKey,
67
+ localStylesMaps,
68
+ pairKey: ownership.ownerPairKey,
69
+ portalHostName,
70
+ screenKey: currentScreenKey,
71
+ slotsMap
72
+ });
73
+ mountedPortalBoundaryHostNamesRef.current.add(portalHostName);
74
+
75
+ // Request the new receiver immediately, but keep the currently visible
76
+ // receiver until the new interpolator is ready. This avoids a no-host gap
77
+ // during rapid close/open retargets.
78
+ requestedPortalHostName.set(portalHostName);
79
+ }, [boundaryId, currentScreenKey, enabled, escapeHostKey, localStylesMaps, ownership, requestedPortalHostName, slotsMap, unmountOwnedPortalBoundaryHosts, visiblePortalHostName]);
80
+ useLayoutEffect(() => {
81
+ return () => {
82
+ requestedPortalHostName.set(null);
83
+ visiblePortalHostName.set(null);
84
+ unmountOwnedPortalBoundaryHosts();
85
+ };
86
+ }, [requestedPortalHostName, unmountOwnedPortalBoundaryHosts, visiblePortalHostName]);
87
+ useAnimatedReaction(() => {
88
+ "worklet";
89
+
90
+ if (!enabled || !sourcePairKey) {
91
+ return {
92
+ hostScreenKey: null,
93
+ ownerPairKey: sourcePairKey,
94
+ ownerScreenKey: null,
95
+ status: "clear"
96
+ };
97
+ }
98
+ return resolveBoundaryPortalOwnership({
99
+ boundaryId,
100
+ currentScreenKey,
101
+ handoff: false,
102
+ pairsState: pairs.get(),
103
+ sourcePairKey
104
+ });
105
+ }, (signal, previousSignal) => {
106
+ "worklet";
107
+
108
+ if (shallowEqual(previousSignal, signal)) {
109
+ return;
110
+ }
111
+ runOnJS(updatePortalOwnership)(signal.hostScreenKey, signal.ownerPairKey, signal.ownerScreenKey ?? undefined);
112
+ });
113
+ useAnimatedReaction(() => {
114
+ "worklet";
115
+
116
+ const slot = slotsMap.get()[boundaryId];
117
+ const teleport = slot?.props?.teleport;
118
+ const shouldTeleport = shouldAttachBoundaryPortal({
119
+ enabled,
120
+ teleport
121
+ });
122
+ const requestedName = requestedPortalHostName.get();
123
+ const visibleName = visiblePortalHostName.get();
124
+ const isInterpolatorReady = nextInterpolatorReady.get();
125
+ const nextVisibleName = resolveNextVisiblePortalHostName({
126
+ isInterpolatorReady: isInterpolatorReady === 1,
127
+ requestedName,
128
+ shouldTeleport,
129
+ visibleName
130
+ });
131
+ return {
132
+ isInterpolatorReady,
133
+ nextVisibleName,
134
+ requestedName,
135
+ shouldTeleport,
136
+ teleport,
137
+ visibleName
138
+ };
139
+ }, (state, previousState) => {
140
+ "worklet";
141
+
142
+ if (shallowEqual(previousState, state)) {
143
+ return;
144
+ }
145
+ if (state.nextVisibleName !== state.visibleName) {
146
+ visiblePortalHostName.set(state.nextVisibleName);
147
+ return;
148
+ }
149
+ if (state.visibleName && state.visibleName === state.requestedName) {
150
+ runOnJS(dropStalePortalBoundaryHosts)({
151
+ boundaryId,
152
+ keepPortalHostName: state.visibleName
153
+ });
154
+ }
155
+ });
156
+ const teleportProps = useAnimatedProps(() => {
157
+ "worklet";
158
+
159
+ const slot = slotsMap.get()[boundaryId];
160
+ const {
161
+ teleport,
162
+ ...slotProps
163
+ } = slot?.props ?? {};
164
+ const shouldTeleport = shouldAttachBoundaryPortal({
165
+ enabled,
166
+ teleport
167
+ });
168
+ const visibleName = visiblePortalHostName.get();
169
+ return {
170
+ ...slotProps,
171
+ hostName: shouldTeleport && visibleName ? visibleName : PORTAL_HOST_NAME_RESET_VALUE
172
+ };
173
+ });
174
+ return {
175
+ teleportProps,
176
+ visiblePortalHostName
177
+ };
178
+ };
179
+ //# sourceMappingURL=use-boundary-portal-attachment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useLayoutEffect","useRef","useState","runOnJS","useAnimatedProps","useAnimatedReaction","useSharedValue","useDescriptorsStore","useScreenSlots","pairs","PORTAL_HOST_NAME_RESET_VALUE","resolveBoundaryPortalOwnership","shallowEqual","shouldAttachBoundaryPortal","resolveNextVisiblePortalHostName","createBoundaryPortalHostName","useActiveHostKey","dropStalePortalBoundaryHosts","mountPortalBoundaryHost","unmountPortalBoundaryHostByName","useBoundaryPortalAttachment","boundaryId","enabled","sourcePairKey","s","derivations","currentScreenKey","localStylesMaps","nextInterpolatorReady","slotsMap","ownership","setOwnership","requestedPortalHostName","visiblePortalHostName","mountedPortalBoundaryHostNamesRef","Set","escapeHostKey","updatePortalOwnership","hostScreenKey","ownerPairKey","ownerScreenKey","current","status","unmountOwnedPortalBoundaryHosts","portalHostName","clear","set","escapeClipping","hostKey","pairKey","screenKey","add","handoff","pairsState","get","signal","previousSignal","undefined","slot","teleport","props","shouldTeleport","requestedName","visibleName","isInterpolatorReady","nextVisibleName","state","previousState","keepPortalHostName","teleportProps","slotProps","hostName"],"sourceRoot":"../../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts"],"mappings":"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","ignoreList":[]}
@@ -2,16 +2,20 @@
2
2
 
3
3
  import { useLayoutEffect, useState } from "react";
4
4
  import { cancelAnimation, measure, runOnJS, runOnUI, useAnimatedReaction, useAnimatedRef, useSharedValue, withDelay, withTiming } from "react-native-reanimated";
5
- import { useOriginContext } from "../../../../providers/screen/origin.provider";
6
- import { ScrollStore } from "../../../../stores/scroll.store";
7
- import { adjustedMeasuredBoundsForOverscrollDeltas, normalizeMeasuredBoundsToOrigin } from "../../utils/measured-bounds";
5
+ import { useOriginContext } from "../../../../../../providers/screen/origin.provider";
6
+ import { ScrollStore } from "../../../../../../stores/scroll.store";
7
+ import { getVisibilityBlockOffset } from "../../../../../../utils/visibility-block-offset";
8
+ import { adjustedMeasuredBoundsForOverscrollDeltas, isMeasurementInViewport, normalizeMeasuredBoundsWithVisibilityGate } from "../../../../utils/measured-bounds";
8
9
  import { clearPortalHostBounds, setPortalHostBounds } from "../stores/host-bounds.store";
9
10
  const HOST_MEASUREMENT_RETRY_DELAY_MS = 16;
10
11
  export const useHostMeasurement = ({
11
12
  capturesScroll,
12
13
  enabled,
13
14
  hostKey,
14
- screenKey
15
+ screenKey,
16
+ visibilityBlocked,
17
+ viewportHeight,
18
+ viewportWidth
15
19
  }) => {
16
20
  const hostRef = useAnimatedRef();
17
21
  const scrollMetadata = ScrollStore.getValue(screenKey, "metadata");
@@ -56,7 +60,21 @@ export const useHostMeasurement = ({
56
60
  // position instead; clamped scroll deltas share that basis.
57
61
  const currentScroll = scrollMetadata.get();
58
62
  const overscrollNormalized = capturesScroll ? adjustedMeasuredBoundsForOverscrollDeltas(measured, currentScroll) : measured;
59
- const normalizedMeasured = normalizeMeasuredBoundsToOrigin(overscrollNormalized, measuredOrigin);
63
+ const normalizedMeasured = normalizeMeasuredBoundsWithVisibilityGate({
64
+ measured: overscrollNormalized,
65
+ origin: measuredOrigin,
66
+ visibilityBlocked: visibilityBlocked.get(),
67
+ visibilityBlockOffset: getVisibilityBlockOffset(viewportHeight),
68
+ viewportWidth,
69
+ viewportHeight
70
+ });
71
+ if (!isMeasurementInViewport(normalizedMeasured, viewportWidth, viewportHeight)) {
72
+ cancelAnimation(retryToken);
73
+ retryToken.set(withDelay(HOST_MEASUREMENT_RETRY_DELAY_MS, withTiming(retryToken.get() + 1, {
74
+ duration: 0
75
+ })));
76
+ return;
77
+ }
60
78
  setPortalHostBounds(hostKey, {
61
79
  x: normalizedMeasured.x,
62
80
  y: normalizedMeasured.y,
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useLayoutEffect","useState","cancelAnimation","measure","runOnJS","runOnUI","useAnimatedReaction","useAnimatedRef","useSharedValue","withDelay","withTiming","useOriginContext","ScrollStore","getVisibilityBlockOffset","adjustedMeasuredBoundsForOverscrollDeltas","isMeasurementInViewport","normalizeMeasuredBoundsWithVisibilityGate","clearPortalHostBounds","setPortalHostBounds","HOST_MEASUREMENT_RETRY_DELAY_MS","useHostMeasurement","capturesScroll","enabled","hostKey","screenKey","visibilityBlocked","viewportHeight","viewportWidth","hostRef","scrollMetadata","getValue","canRenderHosts","setCanRenderHosts","originRef","hasMeasuredHost","retryToken","get","state","hasAlreadyMeasured","measured","measuredOrigin","set","duration","currentScroll","overscrollNormalized","normalizedMeasured","origin","visibilityBlockOffset","x","y","width","height","pageX","pageY","scroll"],"sourceRoot":"../../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.ts"],"mappings":"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","ignoreList":[]}
@@ -2,22 +2,19 @@
2
2
 
3
3
  import { useCallback } from "react";
4
4
  import { useAnimatedStyle, useSharedValue } from "react-native-reanimated";
5
- export const usePlaceholderStyles = ({
6
- visiblePortalHostName
7
- }) => {
5
+ export const usePlaceholderStyles = () => {
8
6
  const placeholderWidth = useSharedValue(0);
9
7
  const placeholderHeight = useSharedValue(0);
10
8
  // Pin the placeholder to its measured size while content lives in the host,
11
- // in the same UI frame the host name flips no commit in between. Until the
9
+ // in the same UI frame the host name flips - no commit in between. Until the
12
10
  // first layout lands (dims 0) sizing stays natural so an instant attach
13
11
  // cannot collapse the slot.
14
12
  const placeholderStyle = useAnimatedStyle(() => {
15
13
  "worklet";
16
14
 
17
- const isAttached = visiblePortalHostName.get() !== null;
18
15
  const width = placeholderWidth.get();
19
16
  const height = placeholderHeight.get();
20
- if (!isAttached || width === 0) {
17
+ if (width === 0) {
21
18
  return {
22
19
  width: "auto",
23
20
  height: "auto"
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useAnimatedStyle","useSharedValue","usePlaceholderStyles","placeholderWidth","placeholderHeight","placeholderStyle","width","get","height","handleOnLayout","layout","hasValidDimensions","set"],"sourceRoot":"../../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAASC,gBAAgB,EAAEC,cAAc,QAAQ,yBAAyB;AAE1E,OAAO,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;EACzC,MAAMC,gBAAgB,GAAGF,cAAc,CAAC,CAAC,CAAC;EAC1C,MAAMG,iBAAiB,GAAGH,cAAc,CAAC,CAAC,CAAC;EAC3C;EACA;EACA;EACA;EACA,MAAMI,gBAAgB,GAAGL,gBAAgB,CAAC,MAAM;IAC/C,SAAS;;IACT,MAAMM,KAAK,GAAGH,gBAAgB,CAACI,GAAG,CAAC,CAAC;IACpC,MAAMC,MAAM,GAAGJ,iBAAiB,CAACG,GAAG,CAAC,CAAC;IAEtC,IAAID,KAAK,KAAK,CAAC,EAAE;MAChB,OAAO;QAAEA,KAAK,EAAE,MAAM;QAAEE,MAAM,EAAE;MAAO,CAAC;IACzC;IAEA,OAAO;MAAEF,KAAK;MAAEE;IAAO,CAAC;EACzB,CAAC,CAAC;EAEF,MAAMC,cAAc,GAAGV,WAAW,CAChCW,MAAuB,IAAK;IAC5B,SAAS;;IACT,MAAM;MAAEJ,KAAK;MAAEE;IAAO,CAAC,GAAGE,MAAM;IAChC,IAAIJ,KAAK,KAAK,CAAC,IAAIE,MAAM,KAAK,CAAC,EAAE;MAChC;IACD;IAEA,MAAMG,kBAAkB,GACvBP,iBAAiB,CAACG,GAAG,CAAC,CAAC,KAAK,CAAC,IAAIJ,gBAAgB,CAACI,GAAG,CAAC,CAAC,KAAK,CAAC;IAE9D,IAAI,CAACI,kBAAkB,EAAE;MACxBR,gBAAgB,CAACS,GAAG,CAACN,KAAK,CAAC;MAC3BF,iBAAiB,CAACQ,GAAG,CAACJ,MAAM,CAAC;IAC9B;EACD,CAAC,EACD,CAACJ,iBAAiB,EAAED,gBAAgB,CACrC,CAAC;EAED,OAAO;IAAEE,gBAAgB;IAAEI;EAAe,CAAC;AAC5C,CAAC","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ import { memo } from "react";
4
+ import { BoundaryPortalSlot } from "./components/portal-slot";
5
+ import { useBoundaryPortalAttachment } from "./hooks/use-boundary-portal-attachment";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export const BoundaryPortal = /*#__PURE__*/memo(function BoundaryPortal({
8
+ boundaryId,
9
+ children,
10
+ enabled,
11
+ placeholderRef,
12
+ pointerEvents
13
+ }) {
14
+ const {
15
+ teleportProps
16
+ } = useBoundaryPortalAttachment({
17
+ boundaryId,
18
+ enabled
19
+ });
20
+ return /*#__PURE__*/_jsx(BoundaryPortalSlot, {
21
+ id: boundaryId,
22
+ enabled: enabled,
23
+ animatedProps: teleportProps,
24
+ placeholderRef: placeholderRef,
25
+ pointerEvents: pointerEvents,
26
+ children: children
27
+ });
28
+ });
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","BoundaryPortalSlot","useBoundaryPortalAttachment","jsx","_jsx","BoundaryPortal","boundaryId","children","enabled","placeholderRef","pointerEvents","teleportProps","id","animatedProps"],"sourceRoot":"../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-portal/index.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAwB,OAAO;AAG5C,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,2BAA2B,QAAQ,wCAAwC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUrF,OAAO,MAAMC,cAAc,gBAAGL,IAAI,CAAC,SAASK,cAAcA,CAAC;EAC1DC,UAAU;EACVC,QAAQ;EACRC,OAAO;EACPC,cAAc;EACdC;AACoB,CAAC,EAAE;EACvB,MAAM;IAAEC;EAAc,CAAC,GAAGT,2BAA2B,CAAC;IACrDI,UAAU;IACVE;EACD,CAAC,CAAC;EAEF,oBACCJ,IAAA,CAACH,kBAAkB;IAClBW,EAAE,EAAEN,UAAW;IACfE,OAAO,EAAEA,OAAQ;IACjBK,aAAa,EAAEF,aAAc;IAC7BF,cAAc,EAAEA,cAAe;IAC/BC,aAAa,EAAEA,aAAc;IAAAH,QAAA,EAE5BA;EAAQ,CACU,CAAC;AAEvB,CAAC,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { makeMutable } from "react-native-reanimated";
4
- import { cloneScrollMetadataState } from "../../../../stores/scroll.store";
4
+ import { cloneScrollMetadataState } from "../../../../../../stores/scroll.store";
5
5
  const portalHostBounds = makeMutable({});
6
6
  export const getPortalHostBounds = hostKey => {
7
7
  "worklet";