react-native-screen-transitions 3.8.0-beta.1 → 3.9.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (485) hide show
  1. package/lib/commonjs/blank-stack/components/stack-view.js +2 -1
  2. package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -1
  3. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/components/boundary-target.js +21 -8
  4. package/lib/commonjs/shared/components/boundary/components/boundary-target.js.map +1 -0
  5. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/create-boundary-component.js +10 -24
  6. package/lib/commonjs/shared/components/boundary/create-boundary-component.js.map +1 -0
  7. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-presence.js.map +1 -0
  8. package/lib/commonjs/shared/components/boundary/hooks/use-initial-destination-measurement.js +115 -0
  9. package/lib/commonjs/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +1 -0
  10. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.js +4 -5
  11. package/lib/commonjs/shared/components/boundary/hooks/use-initial-source-measurement.js.map +1 -0
  12. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.js +26 -22
  13. package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js.map +1 -0
  14. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/hooks/use-refresh-boundary.js +10 -7
  15. package/lib/commonjs/shared/components/boundary/hooks/use-refresh-boundary.js.map +1 -0
  16. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/index.js +8 -1
  17. package/lib/commonjs/shared/components/boundary/index.js.map +1 -0
  18. package/lib/commonjs/shared/components/boundary/portal/components/host.js +99 -0
  19. package/lib/commonjs/shared/components/boundary/portal/components/host.js.map +1 -0
  20. package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js +68 -0
  21. package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js.map +1 -0
  22. package/lib/commonjs/shared/components/boundary/portal/components/portal-provider.js +17 -0
  23. package/lib/commonjs/shared/components/boundary/portal/components/portal-provider.js.map +1 -0
  24. package/lib/commonjs/shared/components/boundary/portal/components/portal.js +195 -0
  25. package/lib/commonjs/shared/components/boundary/portal/components/portal.js.map +1 -0
  26. package/lib/commonjs/shared/components/boundary/portal/hooks/use-host-measurement.js +74 -0
  27. package/lib/commonjs/shared/components/boundary/portal/hooks/use-host-measurement.js.map +1 -0
  28. package/lib/commonjs/shared/components/boundary/portal/index.js +27 -0
  29. package/lib/commonjs/shared/components/boundary/portal/index.js.map +1 -0
  30. package/lib/commonjs/shared/components/boundary/portal/stores/host-bounds.store.js +47 -0
  31. package/lib/commonjs/shared/components/boundary/portal/stores/host-bounds.store.js.map +1 -0
  32. package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js +137 -0
  33. package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js.map +1 -0
  34. package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js +60 -0
  35. package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -0
  36. package/lib/commonjs/shared/components/boundary/portal/utils/attachment.js +40 -0
  37. package/lib/commonjs/shared/components/boundary/portal/utils/attachment.js.map +1 -0
  38. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js +15 -0
  39. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js.map +1 -0
  40. package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js +71 -0
  41. package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js.map +1 -0
  42. package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js +16 -0
  43. package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js.map +1 -0
  44. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/providers/boundary-owner.provider.js +26 -25
  45. package/lib/commonjs/shared/components/boundary/providers/boundary-owner.provider.js.map +1 -0
  46. package/lib/commonjs/shared/components/boundary/types.js.map +1 -0
  47. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js +25 -0
  48. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js.map +1 -0
  49. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/utils/measured-bounds.js +19 -9
  50. package/lib/commonjs/shared/components/boundary/utils/measured-bounds.js.map +1 -0
  51. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js +105 -0
  52. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js.map +1 -0
  53. package/lib/commonjs/shared/components/boundary/utils/source-signals.js +48 -0
  54. package/lib/commonjs/shared/components/boundary/utils/source-signals.js.map +1 -0
  55. package/lib/commonjs/shared/components/create-transition-aware-component.js +8 -3
  56. package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
  57. package/lib/commonjs/shared/components/{integrations/masked-view.js → masked-view.js} +2 -2
  58. package/lib/commonjs/shared/components/masked-view.js.map +1 -0
  59. package/lib/commonjs/shared/components/screen-container/layers/content.js +9 -5
  60. package/lib/commonjs/shared/components/screen-container/layers/content.js.map +1 -1
  61. package/lib/commonjs/shared/configs/presets.js +6 -6
  62. package/lib/commonjs/shared/configs/presets.js.map +1 -1
  63. package/lib/commonjs/shared/index.js +4 -4
  64. package/lib/commonjs/shared/index.js.map +1 -1
  65. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js +4 -2
  66. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  67. package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js +7 -3
  68. package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  69. package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +8 -1
  70. package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
  71. package/lib/commonjs/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js +21 -6
  72. package/lib/commonjs/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +1 -1
  73. package/lib/commonjs/shared/providers/screen/origin.provider.js +41 -0
  74. package/lib/commonjs/shared/providers/screen/origin.provider.js.map +1 -0
  75. package/lib/commonjs/shared/providers/screen/styles/constants.js +2 -0
  76. package/lib/commonjs/shared/providers/screen/styles/constants.js.map +1 -1
  77. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js +58 -0
  78. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js.map +1 -0
  79. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +7 -0
  80. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  81. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -1
  82. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  83. package/lib/commonjs/shared/providers/screen/styles/styles.provider.js +7 -5
  84. package/lib/commonjs/shared/providers/screen/styles/styles.provider.js.map +1 -1
  85. package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js +1 -10
  86. package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
  87. package/lib/commonjs/shared/stores/bounds/index.js.map +1 -1
  88. package/lib/commonjs/shared/stores/bounds/internals/entries.js.map +1 -1
  89. package/lib/commonjs/shared/stores/bounds/internals/links.js +36 -19
  90. package/lib/commonjs/shared/stores/bounds/internals/links.js.map +1 -1
  91. package/lib/commonjs/shared/stores/bounds/internals/resolver.js +6 -4
  92. package/lib/commonjs/shared/stores/bounds/internals/resolver.js.map +1 -1
  93. package/lib/commonjs/shared/stores/bounds/internals/state.js.map +1 -1
  94. package/lib/commonjs/shared/stores/scroll.store.js +54 -1
  95. package/lib/commonjs/shared/stores/scroll.store.js.map +1 -1
  96. package/lib/commonjs/shared/utils/bounds/helpers/create-bound-tag.js +38 -4
  97. package/lib/commonjs/shared/utils/bounds/helpers/create-bound-tag.js.map +1 -1
  98. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js +40 -87
  99. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  100. package/lib/commonjs/shared/utils/bounds/helpers/create-link-accessor.js +6 -67
  101. package/lib/commonjs/shared/utils/bounds/helpers/create-link-accessor.js.map +1 -1
  102. package/lib/commonjs/shared/utils/bounds/helpers/prepare-bound-styles.js +8 -12
  103. package/lib/commonjs/shared/utils/bounds/helpers/prepare-bound-styles.js.map +1 -1
  104. package/lib/commonjs/shared/utils/bounds/helpers/styles/composers.js +235 -68
  105. package/lib/commonjs/shared/utils/bounds/helpers/styles/composers.js.map +1 -1
  106. package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js +74 -4
  107. package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
  108. package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js +5 -9
  109. package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
  110. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js +5 -10
  111. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  112. package/lib/module/blank-stack/components/stack-view.js +3 -2
  113. package/lib/module/blank-stack/components/stack-view.js.map +1 -1
  114. package/lib/module/shared/components/{create-boundary-component → boundary}/components/boundary-target.js +21 -8
  115. package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -0
  116. package/lib/module/shared/components/{create-boundary-component → boundary}/create-boundary-component.js +11 -25
  117. package/lib/module/shared/components/boundary/create-boundary-component.js.map +1 -0
  118. package/lib/module/shared/components/boundary/hooks/use-boundary-presence.js.map +1 -0
  119. package/lib/module/shared/components/boundary/hooks/use-initial-destination-measurement.js +110 -0
  120. package/lib/module/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +1 -0
  121. package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.js +4 -5
  122. package/lib/module/shared/components/boundary/hooks/use-initial-source-measurement.js.map +1 -0
  123. package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.js +27 -23
  124. package/lib/module/shared/components/boundary/hooks/use-measurer.js.map +1 -0
  125. package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-refresh-boundary.js +10 -7
  126. package/lib/module/shared/components/boundary/hooks/use-refresh-boundary.js.map +1 -0
  127. package/lib/module/shared/components/{create-boundary-component → boundary}/index.js +8 -1
  128. package/lib/module/shared/components/boundary/index.js.map +1 -0
  129. package/lib/module/shared/components/boundary/portal/components/host.js +94 -0
  130. package/lib/module/shared/components/boundary/portal/components/host.js.map +1 -0
  131. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js +63 -0
  132. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js.map +1 -0
  133. package/lib/module/shared/components/boundary/portal/components/portal-provider.js +13 -0
  134. package/lib/module/shared/components/boundary/portal/components/portal-provider.js.map +1 -0
  135. package/lib/module/shared/components/boundary/portal/components/portal.js +190 -0
  136. package/lib/module/shared/components/boundary/portal/components/portal.js.map +1 -0
  137. package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js +69 -0
  138. package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js.map +1 -0
  139. package/lib/module/shared/components/boundary/portal/index.js +6 -0
  140. package/lib/module/shared/components/boundary/portal/index.js.map +1 -0
  141. package/lib/module/shared/components/boundary/portal/stores/host-bounds.store.js +40 -0
  142. package/lib/module/shared/components/boundary/portal/stores/host-bounds.store.js.map +1 -0
  143. package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js +126 -0
  144. package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js.map +1 -0
  145. package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js +53 -0
  146. package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -0
  147. package/lib/module/shared/components/boundary/portal/utils/attachment.js +35 -0
  148. package/lib/module/shared/components/boundary/portal/utils/attachment.js.map +1 -0
  149. package/lib/module/shared/components/boundary/portal/utils/naming.js +10 -0
  150. package/lib/module/shared/components/boundary/portal/utils/naming.js.map +1 -0
  151. package/lib/module/shared/components/boundary/portal/utils/offset-style.js +66 -0
  152. package/lib/module/shared/components/boundary/portal/utils/offset-style.js.map +1 -0
  153. package/lib/module/shared/components/boundary/portal/utils/teleport-control.js +11 -0
  154. package/lib/module/shared/components/boundary/portal/utils/teleport-control.js.map +1 -0
  155. package/lib/module/shared/components/boundary/providers/boundary-owner.provider.js +60 -0
  156. package/lib/module/shared/components/boundary/providers/boundary-owner.provider.js.map +1 -0
  157. package/lib/module/shared/components/boundary/types.js.map +1 -0
  158. package/lib/module/shared/components/boundary/utils/destination-signals.js +20 -0
  159. package/lib/module/shared/components/boundary/utils/destination-signals.js.map +1 -0
  160. package/lib/module/shared/components/{create-boundary-component → boundary}/utils/measured-bounds.js +16 -7
  161. package/lib/module/shared/components/boundary/utils/measured-bounds.js.map +1 -0
  162. package/lib/module/shared/components/boundary/utils/refresh-signals.js +100 -0
  163. package/lib/module/shared/components/boundary/utils/refresh-signals.js.map +1 -0
  164. package/lib/module/shared/components/boundary/utils/source-signals.js +43 -0
  165. package/lib/module/shared/components/boundary/utils/source-signals.js.map +1 -0
  166. package/lib/module/shared/components/create-transition-aware-component.js +8 -3
  167. package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
  168. package/lib/module/shared/components/{integrations/masked-view.js → masked-view.js} +2 -2
  169. package/lib/module/shared/components/masked-view.js.map +1 -0
  170. package/lib/module/shared/components/screen-container/layers/content.js +10 -6
  171. package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
  172. package/lib/module/shared/configs/presets.js +6 -6
  173. package/lib/module/shared/configs/presets.js.map +1 -1
  174. package/lib/module/shared/index.js +2 -2
  175. package/lib/module/shared/index.js.map +1 -1
  176. package/lib/module/shared/providers/helpers/measured-bounds-writes.js +4 -2
  177. package/lib/module/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  178. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js +8 -4
  179. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  180. package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +8 -1
  181. package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
  182. package/lib/module/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js +20 -6
  183. package/lib/module/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +1 -1
  184. package/lib/module/shared/providers/screen/origin.provider.js +33 -0
  185. package/lib/module/shared/providers/screen/origin.provider.js.map +1 -0
  186. package/lib/module/shared/providers/screen/styles/constants.js +2 -0
  187. package/lib/module/shared/providers/screen/styles/constants.js.map +1 -1
  188. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js +53 -0
  189. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js.map +1 -0
  190. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +1 -0
  191. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  192. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -1
  193. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  194. package/lib/module/shared/providers/screen/styles/styles.provider.js +7 -5
  195. package/lib/module/shared/providers/screen/styles/styles.provider.js.map +1 -1
  196. package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js +1 -8
  197. package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
  198. package/lib/module/shared/stores/bounds/index.js.map +1 -1
  199. package/lib/module/shared/stores/bounds/internals/entries.js.map +1 -1
  200. package/lib/module/shared/stores/bounds/internals/links.js +36 -19
  201. package/lib/module/shared/stores/bounds/internals/links.js.map +1 -1
  202. package/lib/module/shared/stores/bounds/internals/resolver.js +6 -4
  203. package/lib/module/shared/stores/bounds/internals/resolver.js.map +1 -1
  204. package/lib/module/shared/stores/bounds/internals/state.js.map +1 -1
  205. package/lib/module/shared/stores/scroll.store.js +50 -0
  206. package/lib/module/shared/stores/scroll.store.js.map +1 -1
  207. package/lib/module/shared/types/animation.types.js.map +1 -1
  208. package/lib/module/shared/types/bounds.types.js.map +1 -1
  209. package/lib/module/shared/utils/bounds/helpers/create-bound-tag.js +36 -3
  210. package/lib/module/shared/utils/bounds/helpers/create-bound-tag.js.map +1 -1
  211. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js +42 -89
  212. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  213. package/lib/module/shared/utils/bounds/helpers/create-link-accessor.js +6 -67
  214. package/lib/module/shared/utils/bounds/helpers/create-link-accessor.js.map +1 -1
  215. package/lib/module/shared/utils/bounds/helpers/prepare-bound-styles.js +8 -13
  216. package/lib/module/shared/utils/bounds/helpers/prepare-bound-styles.js.map +1 -1
  217. package/lib/module/shared/utils/bounds/helpers/styles/composers.js +236 -69
  218. package/lib/module/shared/utils/bounds/helpers/styles/composers.js.map +1 -1
  219. package/lib/module/shared/utils/bounds/helpers/styles/compute.js +74 -4
  220. package/lib/module/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
  221. package/lib/module/shared/utils/bounds/navigation/reveal/build.js +5 -9
  222. package/lib/module/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
  223. package/lib/module/shared/utils/bounds/navigation/zoom/build.js +5 -10
  224. package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  225. package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
  226. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts.map +1 -0
  227. package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts.map +1 -0
  228. package/lib/typescript/shared/components/boundary/hooks/use-boundary-presence.d.ts.map +1 -0
  229. package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-initial-destination-measurement.d.ts +1 -4
  230. package/lib/typescript/shared/components/boundary/hooks/use-initial-destination-measurement.d.ts.map +1 -0
  231. package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.d.ts +0 -2
  232. package/lib/typescript/shared/components/boundary/hooks/use-initial-source-measurement.d.ts.map +1 -0
  233. package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.d.ts +4 -2
  234. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts.map +1 -0
  235. package/lib/typescript/shared/components/boundary/hooks/use-refresh-boundary.d.ts +10 -0
  236. package/lib/typescript/shared/components/boundary/hooks/use-refresh-boundary.d.ts.map +1 -0
  237. package/lib/typescript/shared/components/{create-boundary-component → boundary}/index.d.ts +8 -2
  238. package/lib/typescript/shared/components/boundary/index.d.ts.map +1 -0
  239. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts +7 -0
  240. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts.map +1 -0
  241. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts +9 -0
  242. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts.map +1 -0
  243. package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts +4 -0
  244. package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts.map +1 -0
  245. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts +19 -0
  246. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts.map +1 -0
  247. package/lib/typescript/shared/components/boundary/portal/hooks/use-host-measurement.d.ts +13 -0
  248. package/lib/typescript/shared/components/boundary/portal/hooks/use-host-measurement.d.ts.map +1 -0
  249. package/lib/typescript/shared/components/boundary/portal/index.d.ts +4 -0
  250. package/lib/typescript/shared/components/boundary/portal/index.d.ts.map +1 -0
  251. package/lib/typescript/shared/components/boundary/portal/stores/host-bounds.store.d.ts +9 -0
  252. package/lib/typescript/shared/components/boundary/portal/stores/host-bounds.store.d.ts.map +1 -0
  253. package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts +19 -0
  254. package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts.map +1 -0
  255. package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts +11 -0
  256. package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts.map +1 -0
  257. package/lib/typescript/shared/components/boundary/portal/utils/attachment.d.ts +21 -0
  258. package/lib/typescript/shared/components/boundary/portal/utils/attachment.d.ts.map +1 -0
  259. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts +3 -0
  260. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts.map +1 -0
  261. package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts +37 -0
  262. package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts.map +1 -0
  263. package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts +3 -0
  264. package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts.map +1 -0
  265. package/lib/typescript/shared/components/{create-boundary-component → boundary}/providers/boundary-owner.provider.d.ts +14 -6
  266. package/lib/typescript/shared/components/boundary/providers/boundary-owner.provider.d.ts.map +1 -0
  267. package/lib/typescript/shared/components/boundary/types.d.ts +78 -0
  268. package/lib/typescript/shared/components/boundary/types.d.ts.map +1 -0
  269. package/lib/typescript/shared/components/{create-boundary-component → boundary}/utils/destination-signals.d.ts +2 -3
  270. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts.map +1 -0
  271. package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts +12 -0
  272. package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts.map +1 -0
  273. package/lib/typescript/shared/components/{create-boundary-component → boundary}/utils/refresh-signals.d.ts +4 -3
  274. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts.map +1 -0
  275. package/lib/typescript/shared/components/{create-boundary-component → boundary}/utils/source-signals.d.ts +1 -2
  276. package/lib/typescript/shared/components/boundary/utils/source-signals.d.ts.map +1 -0
  277. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  278. package/lib/typescript/shared/components/masked-view.d.ts.map +1 -0
  279. package/lib/typescript/shared/components/screen-container/layers/content.d.ts.map +1 -1
  280. package/lib/typescript/shared/configs/presets.d.ts.map +1 -1
  281. package/lib/typescript/shared/index.d.ts +19 -17
  282. package/lib/typescript/shared/index.d.ts.map +1 -1
  283. package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts +3 -1
  284. package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts.map +1 -1
  285. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  286. package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts +6 -1
  287. package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts.map +1 -1
  288. package/lib/typescript/shared/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts +9 -3
  289. package/lib/typescript/shared/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts.map +1 -1
  290. package/lib/typescript/shared/providers/screen/origin.provider.d.ts +11 -0
  291. package/lib/typescript/shared/providers/screen/origin.provider.d.ts.map +1 -0
  292. package/lib/typescript/shared/providers/screen/styles/constants.d.ts.map +1 -1
  293. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.d.ts +3 -0
  294. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.d.ts.map +1 -0
  295. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts +1 -0
  296. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts.map +1 -1
  297. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +1 -0
  298. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  299. package/lib/typescript/shared/providers/screen/styles/styles.provider.d.ts +1 -0
  300. package/lib/typescript/shared/providers/screen/styles/styles.provider.d.ts.map +1 -1
  301. package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts +1 -3
  302. package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts.map +1 -1
  303. package/lib/typescript/shared/stores/bounds/index.d.ts +1 -1
  304. package/lib/typescript/shared/stores/bounds/index.d.ts.map +1 -1
  305. package/lib/typescript/shared/stores/bounds/internals/entries.d.ts +2 -2
  306. package/lib/typescript/shared/stores/bounds/internals/entries.d.ts.map +1 -1
  307. package/lib/typescript/shared/stores/bounds/internals/links.d.ts +2 -2
  308. package/lib/typescript/shared/stores/bounds/internals/links.d.ts.map +1 -1
  309. package/lib/typescript/shared/stores/bounds/internals/resolver.d.ts.map +1 -1
  310. package/lib/typescript/shared/stores/bounds/internals/state.d.ts +4 -2
  311. package/lib/typescript/shared/stores/bounds/internals/state.d.ts.map +1 -1
  312. package/lib/typescript/shared/stores/bounds/types.d.ts +47 -12
  313. package/lib/typescript/shared/stores/bounds/types.d.ts.map +1 -1
  314. package/lib/typescript/shared/stores/scroll.store.d.ts +12 -1
  315. package/lib/typescript/shared/stores/scroll.store.d.ts.map +1 -1
  316. package/lib/typescript/shared/types/animation.types.d.ts +13 -2
  317. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  318. package/lib/typescript/shared/types/bounds.types.d.ts +10 -40
  319. package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
  320. package/lib/typescript/shared/types/index.d.ts +2 -2
  321. package/lib/typescript/shared/types/index.d.ts.map +1 -1
  322. package/lib/typescript/shared/utils/bounds/helpers/create-bound-tag.d.ts +2 -1
  323. package/lib/typescript/shared/utils/bounds/helpers/create-bound-tag.d.ts.map +1 -1
  324. package/lib/typescript/shared/utils/bounds/helpers/create-bounds-accessor-core.d.ts +7 -11
  325. package/lib/typescript/shared/utils/bounds/helpers/create-bounds-accessor-core.d.ts.map +1 -1
  326. package/lib/typescript/shared/utils/bounds/helpers/create-link-accessor.d.ts +0 -3
  327. package/lib/typescript/shared/utils/bounds/helpers/create-link-accessor.d.ts.map +1 -1
  328. package/lib/typescript/shared/utils/bounds/helpers/prepare-bound-styles.d.ts +7 -3
  329. package/lib/typescript/shared/utils/bounds/helpers/prepare-bound-styles.d.ts.map +1 -1
  330. package/lib/typescript/shared/utils/bounds/helpers/styles/composers.d.ts +3 -0
  331. package/lib/typescript/shared/utils/bounds/helpers/styles/composers.d.ts.map +1 -1
  332. package/lib/typescript/shared/utils/bounds/helpers/styles/compute.d.ts +1 -1
  333. package/lib/typescript/shared/utils/bounds/helpers/styles/compute.d.ts.map +1 -1
  334. package/lib/typescript/shared/utils/bounds/navigation/reveal/build.d.ts.map +1 -1
  335. package/lib/typescript/shared/utils/bounds/navigation/zoom/build.d.ts.map +1 -1
  336. package/lib/typescript/shared/utils/bounds/types/options.d.ts +93 -6
  337. package/lib/typescript/shared/utils/bounds/types/options.d.ts.map +1 -1
  338. package/package.json +3 -2
  339. package/src/blank-stack/components/stack-view.tsx +4 -3
  340. package/src/shared/components/{create-boundary-component → boundary}/components/boundary-target.tsx +28 -11
  341. package/src/shared/components/{create-boundary-component → boundary}/create-boundary-component.tsx +20 -31
  342. package/src/shared/components/boundary/hooks/use-initial-destination-measurement.ts +156 -0
  343. package/src/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.ts +5 -14
  344. package/src/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.ts +42 -46
  345. package/src/shared/components/{create-boundary-component → boundary}/hooks/use-refresh-boundary.ts +16 -11
  346. package/src/shared/components/{create-boundary-component → boundary}/index.tsx +12 -0
  347. package/src/shared/components/boundary/portal/components/host.tsx +114 -0
  348. package/src/shared/components/boundary/portal/components/portal-boundary-host.tsx +90 -0
  349. package/src/shared/components/boundary/portal/components/portal-provider.tsx +10 -0
  350. package/src/shared/components/boundary/portal/components/portal.tsx +278 -0
  351. package/src/shared/components/boundary/portal/hooks/use-host-measurement.ts +102 -0
  352. package/src/shared/components/boundary/portal/index.ts +3 -0
  353. package/src/shared/components/boundary/portal/stores/host-bounds.store.ts +45 -0
  354. package/src/shared/components/boundary/portal/stores/host-registry.store.ts +182 -0
  355. package/src/shared/components/boundary/portal/stores/portal-boundary-host.store.ts +91 -0
  356. package/src/shared/components/boundary/portal/utils/attachment.ts +48 -0
  357. package/src/shared/components/boundary/portal/utils/naming.ts +10 -0
  358. package/src/shared/components/boundary/portal/utils/offset-style.ts +171 -0
  359. package/src/shared/components/boundary/portal/utils/teleport-control.ts +13 -0
  360. package/src/shared/components/{create-boundary-component → boundary}/providers/boundary-owner.provider.tsx +41 -33
  361. package/src/shared/components/boundary/types.ts +92 -0
  362. package/src/shared/components/boundary/utils/destination-signals.ts +31 -0
  363. package/src/shared/components/{create-boundary-component → boundary}/utils/measured-bounds.ts +34 -11
  364. package/src/shared/components/boundary/utils/refresh-signals.ts +175 -0
  365. package/src/shared/components/boundary/utils/source-signals.ts +63 -0
  366. package/src/shared/components/create-transition-aware-component.tsx +8 -3
  367. package/src/shared/components/{integrations/masked-view.tsx → masked-view.tsx} +2 -2
  368. package/src/shared/components/screen-container/layers/content.tsx +12 -7
  369. package/src/shared/configs/presets.ts +2 -6
  370. package/src/shared/index.ts +13 -5
  371. package/src/shared/providers/helpers/measured-bounds-writes.ts +11 -1
  372. package/src/shared/providers/screen/descriptors/descriptors.provider.tsx +7 -3
  373. package/src/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.ts +16 -0
  374. package/src/shared/providers/screen/descriptors/helpers/get-ancestor-keys.ts +31 -6
  375. package/src/shared/providers/screen/origin.provider.tsx +38 -0
  376. package/src/shared/providers/screen/styles/constants.ts +2 -0
  377. package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.ts +74 -0
  378. package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/index.ts +1 -0
  379. package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +1 -0
  380. package/src/shared/providers/screen/styles/styles.provider.tsx +5 -3
  381. package/src/shared/stores/bounds/helpers/link-pairs.helpers.ts +1 -10
  382. package/src/shared/stores/bounds/index.ts +2 -4
  383. package/src/shared/stores/bounds/internals/entries.ts +4 -4
  384. package/src/shared/stores/bounds/internals/links.ts +52 -18
  385. package/src/shared/stores/bounds/internals/resolver.ts +5 -3
  386. package/src/shared/stores/bounds/internals/state.ts +5 -2
  387. package/src/shared/stores/bounds/types.ts +59 -15
  388. package/src/shared/stores/scroll.store.ts +68 -0
  389. package/src/shared/types/animation.types.ts +17 -2
  390. package/src/shared/types/bounds.types.ts +22 -60
  391. package/src/shared/types/index.ts +5 -0
  392. package/src/shared/utils/bounds/helpers/create-bound-tag.ts +46 -4
  393. package/src/shared/utils/bounds/helpers/create-bounds-accessor-core.ts +65 -116
  394. package/src/shared/utils/bounds/helpers/create-link-accessor.ts +10 -80
  395. package/src/shared/utils/bounds/helpers/prepare-bound-styles.ts +10 -13
  396. package/src/shared/utils/bounds/helpers/styles/composers.ts +269 -46
  397. package/src/shared/utils/bounds/helpers/styles/compute.ts +134 -2
  398. package/src/shared/utils/bounds/navigation/reveal/build.ts +5 -7
  399. package/src/shared/utils/bounds/navigation/zoom/build.ts +5 -8
  400. package/src/shared/utils/bounds/types/options.ts +105 -6
  401. package/lib/commonjs/shared/components/create-boundary-component/components/boundary-target.js.map +0 -1
  402. package/lib/commonjs/shared/components/create-boundary-component/create-boundary-component.js.map +0 -1
  403. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-boundary-presence.js.map +0 -1
  404. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js +0 -99
  405. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js.map +0 -1
  406. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-source-measurement.js.map +0 -1
  407. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-measurer.js.map +0 -1
  408. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-refresh-boundary.js.map +0 -1
  409. package/lib/commonjs/shared/components/create-boundary-component/index.js.map +0 -1
  410. package/lib/commonjs/shared/components/create-boundary-component/providers/boundary-owner.provider.js.map +0 -1
  411. package/lib/commonjs/shared/components/create-boundary-component/types.js.map +0 -1
  412. package/lib/commonjs/shared/components/create-boundary-component/utils/destination-signals.js +0 -75
  413. package/lib/commonjs/shared/components/create-boundary-component/utils/destination-signals.js.map +0 -1
  414. package/lib/commonjs/shared/components/create-boundary-component/utils/measured-bounds.js.map +0 -1
  415. package/lib/commonjs/shared/components/create-boundary-component/utils/refresh-signals.js +0 -103
  416. package/lib/commonjs/shared/components/create-boundary-component/utils/refresh-signals.js.map +0 -1
  417. package/lib/commonjs/shared/components/create-boundary-component/utils/source-signals.js +0 -52
  418. package/lib/commonjs/shared/components/create-boundary-component/utils/source-signals.js.map +0 -1
  419. package/lib/commonjs/shared/components/integrations/masked-view.js.map +0 -1
  420. package/lib/commonjs/shared/utils/bounds/helpers/create-interpolators.js +0 -68
  421. package/lib/commonjs/shared/utils/bounds/helpers/create-interpolators.js.map +0 -1
  422. package/lib/commonjs/shared/utils/bounds/helpers/styles/interpolate-link-style.js +0 -30
  423. package/lib/commonjs/shared/utils/bounds/helpers/styles/interpolate-link-style.js.map +0 -1
  424. package/lib/module/shared/components/create-boundary-component/components/boundary-target.js.map +0 -1
  425. package/lib/module/shared/components/create-boundary-component/create-boundary-component.js.map +0 -1
  426. package/lib/module/shared/components/create-boundary-component/hooks/use-boundary-presence.js.map +0 -1
  427. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js +0 -94
  428. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js.map +0 -1
  429. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-source-measurement.js.map +0 -1
  430. package/lib/module/shared/components/create-boundary-component/hooks/use-measurer.js.map +0 -1
  431. package/lib/module/shared/components/create-boundary-component/hooks/use-refresh-boundary.js.map +0 -1
  432. package/lib/module/shared/components/create-boundary-component/index.js.map +0 -1
  433. package/lib/module/shared/components/create-boundary-component/providers/boundary-owner.provider.js +0 -60
  434. package/lib/module/shared/components/create-boundary-component/providers/boundary-owner.provider.js.map +0 -1
  435. package/lib/module/shared/components/create-boundary-component/types.js.map +0 -1
  436. package/lib/module/shared/components/create-boundary-component/utils/destination-signals.js +0 -70
  437. package/lib/module/shared/components/create-boundary-component/utils/destination-signals.js.map +0 -1
  438. package/lib/module/shared/components/create-boundary-component/utils/measured-bounds.js.map +0 -1
  439. package/lib/module/shared/components/create-boundary-component/utils/refresh-signals.js +0 -98
  440. package/lib/module/shared/components/create-boundary-component/utils/refresh-signals.js.map +0 -1
  441. package/lib/module/shared/components/create-boundary-component/utils/source-signals.js +0 -47
  442. package/lib/module/shared/components/create-boundary-component/utils/source-signals.js.map +0 -1
  443. package/lib/module/shared/components/integrations/masked-view.js.map +0 -1
  444. package/lib/module/shared/utils/bounds/helpers/create-interpolators.js +0 -63
  445. package/lib/module/shared/utils/bounds/helpers/create-interpolators.js.map +0 -1
  446. package/lib/module/shared/utils/bounds/helpers/styles/interpolate-link-style.js +0 -26
  447. package/lib/module/shared/utils/bounds/helpers/styles/interpolate-link-style.js.map +0 -1
  448. package/lib/typescript/shared/components/create-boundary-component/components/boundary-target.d.ts.map +0 -1
  449. package/lib/typescript/shared/components/create-boundary-component/create-boundary-component.d.ts.map +0 -1
  450. package/lib/typescript/shared/components/create-boundary-component/hooks/use-boundary-presence.d.ts.map +0 -1
  451. package/lib/typescript/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.d.ts.map +0 -1
  452. package/lib/typescript/shared/components/create-boundary-component/hooks/use-initial-source-measurement.d.ts.map +0 -1
  453. package/lib/typescript/shared/components/create-boundary-component/hooks/use-measurer.d.ts.map +0 -1
  454. package/lib/typescript/shared/components/create-boundary-component/hooks/use-refresh-boundary.d.ts +0 -14
  455. package/lib/typescript/shared/components/create-boundary-component/hooks/use-refresh-boundary.d.ts.map +0 -1
  456. package/lib/typescript/shared/components/create-boundary-component/index.d.ts.map +0 -1
  457. package/lib/typescript/shared/components/create-boundary-component/providers/boundary-owner.provider.d.ts.map +0 -1
  458. package/lib/typescript/shared/components/create-boundary-component/types.d.ts +0 -37
  459. package/lib/typescript/shared/components/create-boundary-component/types.d.ts.map +0 -1
  460. package/lib/typescript/shared/components/create-boundary-component/utils/destination-signals.d.ts.map +0 -1
  461. package/lib/typescript/shared/components/create-boundary-component/utils/measured-bounds.d.ts +0 -8
  462. package/lib/typescript/shared/components/create-boundary-component/utils/measured-bounds.d.ts.map +0 -1
  463. package/lib/typescript/shared/components/create-boundary-component/utils/refresh-signals.d.ts.map +0 -1
  464. package/lib/typescript/shared/components/create-boundary-component/utils/source-signals.d.ts.map +0 -1
  465. package/lib/typescript/shared/components/integrations/masked-view.d.ts.map +0 -1
  466. package/lib/typescript/shared/utils/bounds/helpers/create-interpolators.d.ts +0 -14
  467. package/lib/typescript/shared/utils/bounds/helpers/create-interpolators.d.ts.map +0 -1
  468. package/lib/typescript/shared/utils/bounds/helpers/styles/interpolate-link-style.d.ts +0 -17
  469. package/lib/typescript/shared/utils/bounds/helpers/styles/interpolate-link-style.d.ts.map +0 -1
  470. package/src/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.ts +0 -130
  471. package/src/shared/components/create-boundary-component/types.ts +0 -48
  472. package/src/shared/components/create-boundary-component/utils/destination-signals.ts +0 -129
  473. package/src/shared/components/create-boundary-component/utils/refresh-signals.ts +0 -164
  474. package/src/shared/components/create-boundary-component/utils/source-signals.ts +0 -72
  475. package/src/shared/utils/bounds/helpers/create-interpolators.ts +0 -117
  476. package/src/shared/utils/bounds/helpers/styles/interpolate-link-style.ts +0 -43
  477. /package/lib/commonjs/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.js +0 -0
  478. /package/lib/commonjs/shared/components/{create-boundary-component → boundary}/types.js +0 -0
  479. /package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.js +0 -0
  480. /package/lib/module/shared/components/{create-boundary-component → boundary}/types.js +0 -0
  481. /package/lib/typescript/shared/components/{create-boundary-component → boundary}/components/boundary-target.d.ts +0 -0
  482. /package/lib/typescript/shared/components/{create-boundary-component → boundary}/create-boundary-component.d.ts +0 -0
  483. /package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.d.ts +0 -0
  484. /package/lib/typescript/shared/components/{integrations/masked-view.d.ts → masked-view.d.ts} +0 -0
  485. /package/src/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.ts +0 -0
@@ -2,12 +2,13 @@
2
2
 
3
3
  import { useCallback } from "react";
4
4
  import { useWindowDimensions } from "react-native";
5
- import { setEntry } from "../../../stores/bounds/internals/entries";
6
- import { setDestination, setSource } from "../../../stores/bounds/internals/links";
5
+ import { measure } from "react-native-reanimated";
6
+ import { applyMeasuredBoundsWrites } from "../../../providers/helpers/measured-bounds-writes";
7
+ import { useOriginContext } from "../../../providers/screen/origin.provider";
7
8
  import { ScrollStore } from "../../../stores/scroll.store";
8
9
  import { SystemStore } from "../../../stores/system.store";
9
- import { getVisibilityBlockOffset } from "../../../utils/visibility-block-offset";
10
- import { applyVisibilityBlockOffset, isMeasurementInViewport, measureWithOverscrollAwareness } from "../utils/measured-bounds";
10
+ import { getActiveScrollHost } from "../portal/stores/host-registry.store";
11
+ import { attachScrollSnapshotToMeasuredBounds, isMeasurementInViewport, measureWithOverscrollAwareness, normalizeMeasuredBoundsToOrigin } from "../utils/measured-bounds";
11
12
  export const useMeasurer = ({
12
13
  enabled,
13
14
  entryTag,
@@ -15,25 +16,27 @@ export const useMeasurer = ({
15
16
  group,
16
17
  currentScreenKey,
17
18
  preparedStyles,
18
- measuredAnimatedRef
19
+ measuredAnimatedRef,
20
+ portalHost
19
21
  }) => {
20
22
  const {
21
23
  width: viewportWidth,
22
24
  height: viewportHeight
23
25
  } = useWindowDimensions();
24
26
  const scrollState = ScrollStore.getValue(currentScreenKey, "coordination");
27
+ const scrollMetadata = ScrollStore.getValue(currentScreenKey, "metadata");
25
28
  const pendingLifecycleStartBlockCount = SystemStore.getValue(currentScreenKey, "pendingLifecycleStartBlockCount");
29
+ const {
30
+ originRef
31
+ } = useOriginContext();
26
32
  return useCallback(target => {
27
33
  "worklet";
28
34
 
29
35
  if (!enabled) return;
30
36
  const measured = measureWithOverscrollAwareness(measuredAnimatedRef, scrollState.get());
31
- if (!measured) return;
32
-
33
- // Source boundaries do not need offset correction. Only destination
34
- // captures can measure while the visibility gate is still blocked.
35
- const shouldAdjustBlockedDestination = target.type === "destination" && pendingLifecycleStartBlockCount.get() > 0;
36
- const normalizedMeasured = shouldAdjustBlockedDestination ? applyVisibilityBlockOffset(measured, getVisibilityBlockOffset(viewportHeight)) : measured;
37
+ const measuredOrigin = measure(originRef);
38
+ if (!measured || !measuredOrigin) return;
39
+ const normalizedMeasured = normalizeMeasuredBoundsToOrigin(measured, measuredOrigin);
37
40
 
38
41
  /**
39
42
  * - Destination Pass -
@@ -45,18 +48,19 @@ export const useMeasurer = ({
45
48
  const shouldGuardDestinationViewport = pendingLifecycleStartBlockCount.get() > 0 || !!group;
46
49
  const viewportAllowsDestinationWrite = target.type !== "destination" || !shouldGuardDestinationViewport || isMeasurementInViewport(normalizedMeasured, viewportWidth, viewportHeight);
47
50
  if (!viewportAllowsDestinationWrite) return;
48
-
49
- // Set the bounds entry on every measure to avoid any stale measurements
50
- // for the public read API.
51
- setEntry(entryTag, currentScreenKey, {
52
- bounds: normalizedMeasured
51
+ const measuredWithScroll = attachScrollSnapshotToMeasuredBounds(normalizedMeasured, scrollMetadata.get());
52
+ const sourceHost = target.type === "source" ? getActiveScrollHost(currentScreenKey) ?? undefined : undefined;
53
+ applyMeasuredBoundsWrites({
54
+ entryTag,
55
+ linkId,
56
+ group,
57
+ currentScreenKey,
58
+ measured: measuredWithScroll,
59
+ preparedStyles,
60
+ linkWrite: target,
61
+ portalHost,
62
+ sourceHost
53
63
  });
54
- if (target.type === "source") {
55
- setSource(target.pairKey, linkId, currentScreenKey, normalizedMeasured, preparedStyles, group);
56
- }
57
- if (target.type === "destination") {
58
- setDestination(target.pairKey, linkId, currentScreenKey, normalizedMeasured, preparedStyles, group);
59
- }
60
- }, [enabled, entryTag, linkId, group, currentScreenKey, preparedStyles, measuredAnimatedRef, viewportWidth, viewportHeight, scrollState, pendingLifecycleStartBlockCount]);
64
+ }, [enabled, entryTag, linkId, group, currentScreenKey, preparedStyles, measuredAnimatedRef, portalHost, viewportWidth, viewportHeight, scrollState, scrollMetadata, pendingLifecycleStartBlockCount, originRef]);
61
65
  };
62
66
  //# sourceMappingURL=use-measurer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useWindowDimensions","measure","applyMeasuredBoundsWrites","useOriginContext","ScrollStore","SystemStore","getActiveScrollHost","attachScrollSnapshotToMeasuredBounds","isMeasurementInViewport","measureWithOverscrollAwareness","normalizeMeasuredBoundsToOrigin","useMeasurer","enabled","entryTag","linkId","group","currentScreenKey","preparedStyles","measuredAnimatedRef","portalHost","width","viewportWidth","height","viewportHeight","scrollState","getValue","scrollMetadata","pendingLifecycleStartBlockCount","originRef","target","measured","get","measuredOrigin","normalizedMeasured","shouldGuardDestinationViewport","viewportAllowsDestinationWrite","type","measuredWithScroll","sourceHost","undefined","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;AAC1D,SAASC,mBAAmB,QAAQ,sCAAsC;AAE1E,SACCC,oCAAoC,EACpCC,uBAAuB,EACvBC,8BAA8B,EAC9BC,+BAA+B,QACzB,0BAA0B;AAajC,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAC3BC,OAAO;EACPC,QAAQ;EACRC,MAAM;EACNC,KAAK;EACLC,gBAAgB;EAChBC,cAAc;EACdC,mBAAmB;EACnBC;AACkB,CAAC,KAAsB;EACzC,MAAM;IAAEC,KAAK,EAAEC,aAAa;IAAEC,MAAM,EAAEC;EAAe,CAAC,GACrDvB,mBAAmB,CAAC,CAAC;EAEtB,MAAMwB,WAAW,GAAGpB,WAAW,CAACqB,QAAQ,CAACT,gBAAgB,EAAE,cAAc,CAAC;EAC1E,MAAMU,cAAc,GAAGtB,WAAW,CAACqB,QAAQ,CAACT,gBAAgB,EAAE,UAAU,CAAC;EACzE,MAAMW,+BAA+B,GAAGtB,WAAW,CAACoB,QAAQ,CAC3DT,gBAAgB,EAChB,iCACD,CAAC;EACD,MAAM;IAAEY;EAAU,CAAC,GAAGzB,gBAAgB,CAAC,CAAC;EAExC,OAAOJ,WAAW,CAChB8B,MAAM,IAAK;IACX,SAAS;;IACT,IAAI,CAACjB,OAAO,EAAE;IAEd,MAAMkB,QAAQ,GAAGrB,8BAA8B,CAC9CS,mBAAmB,EACnBM,WAAW,CAACO,GAAG,CAAC,CACjB,CAAC;IACD,MAAMC,cAAc,GAAG/B,OAAO,CAAC2B,SAAS,CAAC;IAEzC,IAAI,CAACE,QAAQ,IAAI,CAACE,cAAc,EAAE;IAElC,MAAMC,kBAAkB,GAAGvB,+BAA+B,CACzDoB,QAAQ,EACRE,cACD,CAAC;;IAED;AACH;AACA;AACA;AACA;AACA;AACA;IACG,MAAME,8BAA8B,GACnCP,+BAA+B,CAACI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAChB,KAAK;IAErD,MAAMoB,8BAA8B,GACnCN,MAAM,CAACO,IAAI,KAAK,aAAa,IAC7B,CAACF,8BAA8B,IAC/B1B,uBAAuB,CACtByB,kBAAkB,EAClBZ,aAAa,EACbE,cACD,CAAC;IAEF,IAAI,CAACY,8BAA8B,EAAE;IAErC,MAAME,kBAAkB,GAAG9B,oCAAoC,CAC9D0B,kBAAkB,EAClBP,cAAc,CAACK,GAAG,CAAC,CACpB,CAAC;IACD,MAAMO,UAAU,GACfT,MAAM,CAACO,IAAI,KAAK,QAAQ,GACpB9B,mBAAmB,CAACU,gBAAgB,CAAC,IAAIuB,SAAS,GACnDA,SAAS;IAEbrC,yBAAyB,CAAC;MACzBW,QAAQ;MACRC,MAAM;MACNC,KAAK;MACLC,gBAAgB;MAChBc,QAAQ,EAAEO,kBAAkB;MAC5BpB,cAAc;MACduB,SAAS,EAAEX,MAAM;MACjBV,UAAU;MACVmB;IACD,CAAC,CAAC;EACH,CAAC,EACD,CACC1B,OAAO,EACPC,QAAQ,EACRC,MAAM,EACNC,KAAK,EACLC,gBAAgB,EAChBC,cAAc,EACdC,mBAAmB,EACnBC,UAAU,EACVE,aAAa,EACbE,cAAc,EACdC,WAAW,EACXE,cAAc,EACdC,+BAA+B,EAC/BC,SAAS,CAEX,CAAC;AACF,CAAC","ignoreList":[]}
@@ -1,19 +1,21 @@
1
1
  "use strict";
2
2
 
3
3
  import { useAnimatedReaction } from "react-native-reanimated";
4
+ import { useDescriptorsStore } from "../../../providers/screen/descriptors";
4
5
  import { AnimationStore } from "../../../stores/animation.store";
5
6
  import { pairs } from "../../../stores/bounds/internals/state";
6
7
  import { getRefreshBoundarySignal } from "../utils/refresh-signals";
7
8
  export const useRefreshBoundary = ({
8
9
  enabled,
9
- currentScreenKey,
10
- preferredSourceScreenKey,
11
- nextScreenKey,
12
10
  linkId,
13
11
  group,
14
- ancestorScreenKeys,
15
12
  measureBoundary
16
13
  }) => {
14
+ const currentScreenKey = useDescriptorsStore(s => s.derivations.currentScreenKey);
15
+ const nextScreenKey = useDescriptorsStore(s => s.derivations.nextScreenKey);
16
+ const sourcePairKey = useDescriptorsStore(s => s.derivations.sourcePairKey);
17
+ const destinationPairKey = useDescriptorsStore(s => s.derivations.destinationPairKey);
18
+ const ancestorDestinationPairKey = useDescriptorsStore(s => s.derivations.ancestorDestinationPairKey);
17
19
  // Source-side boundaries refresh from the next screen's lifecycle pulse.
18
20
  // Destination-side boundaries have no next screen, so they refresh from self.
19
21
  const refreshScreenKey = nextScreenKey ?? currentScreenKey;
@@ -28,17 +30,18 @@ export const useRefreshBoundary = ({
28
30
  return getRefreshBoundarySignal({
29
31
  enabled,
30
32
  currentScreenKey,
31
- preferredSourceScreenKey,
33
+ sourcePairKey,
34
+ destinationPairKey,
35
+ ancestorDestinationPairKey,
32
36
  nextScreenKey,
33
37
  linkId,
34
38
  group,
35
- ancestorScreenKeys,
36
39
  shouldRefresh: !!refreshWillAnimate.get(),
37
40
  closing: !!refreshClosing.get(),
38
41
  entering: !!refreshEntering.get(),
39
42
  animating: !!refreshAnimating.get(),
40
43
  progress: refreshProgress.get(),
41
- linkState: group || ancestorScreenKeys.length ? pairs.get() : undefined
44
+ linkState: pairs.get()
42
45
  });
43
46
  }, (refreshSignal, prevRefreshSignal) => {
44
47
  "worklet";
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useAnimatedReaction","useDescriptorsStore","AnimationStore","pairs","getRefreshBoundarySignal","useRefreshBoundary","enabled","linkId","group","measureBoundary","currentScreenKey","s","derivations","nextScreenKey","sourcePairKey","destinationPairKey","ancestorDestinationPairKey","refreshScreenKey","refreshWillAnimate","getValue","refreshClosing","refreshEntering","refreshAnimating","refreshProgress","shouldRefresh","get","closing","entering","animating","progress","linkState","refreshSignal","prevRefreshSignal","signal","type","pairKey"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-refresh-boundary.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,mBAAmB,QAAQ,uCAAuC;AAC3E,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SAASC,KAAK,QAAQ,wCAAwC;AAE9D,SAASC,wBAAwB,QAAQ,0BAA0B;AASnE,OAAO,MAAMC,kBAAkB,GAAGA,CAAC;EAClCC,OAAO;EACPC,MAAM;EACNC,KAAK;EACLC;AACyB,CAAC,KAAK;EAC/B,MAAMC,gBAAgB,GAAGT,mBAAmB,CAC1CU,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACF,gBACtB,CAAC;EACD,MAAMG,aAAa,GAAGZ,mBAAmB,CAAEU,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACC,aAAa,CAAC;EAC7E,MAAMC,aAAa,GAAGb,mBAAmB,CAAEU,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACE,aAAa,CAAC;EAC7E,MAAMC,kBAAkB,GAAGd,mBAAmB,CAC5CU,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACG,kBACtB,CAAC;EACD,MAAMC,0BAA0B,GAAGf,mBAAmB,CACpDU,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACI,0BACtB,CAAC;EACD;EACA;EACA,MAAMC,gBAAgB,GAAGJ,aAAa,IAAIH,gBAAgB;EAC1D,MAAMQ,kBAAkB,GAAGhB,cAAc,CAACiB,QAAQ,CACjDF,gBAAgB,EAChB,aACD,CAAC;EACD,MAAMG,cAAc,GAAGlB,cAAc,CAACiB,QAAQ,CAACF,gBAAgB,EAAE,SAAS,CAAC;EAC3E,MAAMI,eAAe,GAAGnB,cAAc,CAACiB,QAAQ,CAACF,gBAAgB,EAAE,UAAU,CAAC;EAC7E,MAAMK,gBAAgB,GAAGpB,cAAc,CAACiB,QAAQ,CAC/CF,gBAAgB,EAChB,mBACD,CAAC;EACD,MAAMM,eAAe,GAAGrB,cAAc,CAACiB,QAAQ,CAC9CF,gBAAgB,EAChB,oBACD,CAAC;EAEDjB,mBAAmB,CAClB,MAAM;IACL,SAAS;;IACT,OAAOI,wBAAwB,CAAC;MAC/BE,OAAO;MACPI,gBAAgB;MAChBI,aAAa;MACbC,kBAAkB;MAClBC,0BAA0B;MAC1BH,aAAa;MACbN,MAAM;MACNC,KAAK;MACLgB,aAAa,EAAE,CAAC,CAACN,kBAAkB,CAACO,GAAG,CAAC,CAAC;MACzCC,OAAO,EAAE,CAAC,CAACN,cAAc,CAACK,GAAG,CAAC,CAAC;MAC/BE,QAAQ,EAAE,CAAC,CAACN,eAAe,CAACI,GAAG,CAAC,CAAC;MACjCG,SAAS,EAAE,CAAC,CAACN,gBAAgB,CAACG,GAAG,CAAC,CAAC;MACnCI,QAAQ,EAAEN,eAAe,CAACE,GAAG,CAAC,CAAC;MAC/BK,SAAS,EAAE3B,KAAK,CAACsB,GAAG,CAAC;IACtB,CAAC,CAAC;EACH,CAAC,EACD,CAACM,aAAa,EAAEC,iBAAiB,KAAK;IACrC,SAAS;;IAET,IACC,CAACD,aAAa,IACdA,aAAa,CAACE,MAAM,KAAKD,iBAAiB,EAAEC,MAAM,EACjD;MACD;IACD;IAEAxB,eAAe,CAAC;MACfyB,IAAI,EAAEH,aAAa,CAACG,IAAI;MACxBC,OAAO,EAAEJ,aAAa,CAACI;IACxB,CAAC,CAAC;EACH,CACD,CAAC;AACF,CAAC","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  import { Pressable, View } from "react-native";
4
4
  import { BoundaryTarget } from "./components/boundary-target";
5
5
  import { createBoundaryComponent } from "./create-boundary-component";
6
+ import { Host } from "./portal";
6
7
  export { createBoundaryComponent };
7
8
  const BoundaryView = createBoundaryComponent(View, {
8
9
  shouldAutoMeasure: true
@@ -11,6 +12,7 @@ const BoundaryTrigger = createBoundaryComponent(Pressable);
11
12
  BoundaryView.displayName = "Transition.Boundary.View";
12
13
  BoundaryTrigger.displayName = "Transition.Boundary.Trigger";
13
14
  BoundaryTarget.displayName = "Transition.Boundary.Target";
15
+ Host.displayName = "Transition.Boundary.Host";
14
16
 
15
17
  /**
16
18
  * Shared-boundary components.
@@ -29,6 +31,7 @@ BoundaryTarget.displayName = "Transition.Boundary.Target";
29
31
  * - `Boundary.View` for passive/shared elements.
30
32
  * - `Boundary.Trigger` for tappable elements that start navigation.
31
33
  * - `Boundary.Target` to measure a nested descendant instead of the owner.
34
+ * - `Boundary.Host` to make nested portal placement explicit.
32
35
  */
33
36
  export const Boundary = {
34
37
  /**
@@ -42,6 +45,10 @@ export const Boundary = {
42
45
  /**
43
46
  * Optional nested measurement override inside a boundary owner.
44
47
  */
45
- Target: BoundaryTarget
48
+ Target: BoundaryTarget,
49
+ /**
50
+ * Explicit portal host for scrollable or otherwise clipped coordinate spaces.
51
+ */
52
+ Host: Host
46
53
  };
47
54
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Pressable","View","BoundaryTarget","createBoundaryComponent","Host","BoundaryView","shouldAutoMeasure","BoundaryTrigger","displayName","Boundary","Trigger","Target"],"sourceRoot":"../../../../../src","sources":["shared/components/boundary/index.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,IAAI,QAAQ,cAAc;AAC9C,SAASC,cAAc,QAAQ,8BAA8B;AAC7D,SAASC,uBAAuB,QAAQ,6BAA6B;AACrE,SAASC,IAAI,QAAQ,UAAU;AAO/B,SAASD,uBAAuB;AAEhC,MAAME,YAAY,GAAGF,uBAAuB,CAACF,IAAI,EAAE;EAClDK,iBAAiB,EAAE;AACpB,CAAC,CAAC;AACF,MAAMC,eAAe,GAAGJ,uBAAuB,CAACH,SAAS,CAAC;AAC1DK,YAAY,CAACG,WAAW,GAAG,0BAA0B;AACrDD,eAAe,CAACC,WAAW,GAAG,6BAA6B;AAC3DN,cAAc,CAACM,WAAW,GAAG,4BAA4B;AACzDJ,IAAI,CAACI,WAAW,GAAG,0BAA0B;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,QAAQ,GAAG;EACvB;AACD;AACA;EACCR,IAAI,EAAEI,YAAY;EAClB;AACD;AACA;EACCK,OAAO,EAAEH,eAAe;EACxB;AACD;AACA;EACCI,MAAM,EAAET,cAAc;EACtB;AACD;AACA;EACCE,IAAI,EAAEA;AACP,CAAC","ignoreList":[]}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ import { memo, useLayoutEffect, useRef } from "react";
4
+ import { StyleSheet, useWindowDimensions, View } from "react-native";
5
+ import Animated from "react-native-reanimated";
6
+ import { useDescriptorsStore } from "../../../../providers/screen/descriptors";
7
+ import { useHostMeasurement } from "../hooks/use-host-measurement";
8
+ import { registerHost, unregisterHost } from "../stores/host-registry.store";
9
+ import { useActivePortalBoundaryHosts } from "../stores/portal-boundary-host.store";
10
+ import { PortalBoundaryHost } from "./portal-boundary-host";
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ let nextHostId = 0;
13
+ function HostImpl({
14
+ fallback = false,
15
+ style
16
+ }) {
17
+ const screenKey = useDescriptorsStore(s => s.derivations.currentScreenKey);
18
+ const generatedHostKeyRef = useRef(null);
19
+ if (generatedHostKeyRef.current === null) {
20
+ generatedHostKeyRef.current = `${screenKey}-host-${nextHostId++}`;
21
+ }
22
+ const hostKey = fallback ? screenKey : generatedHostKeyRef.current;
23
+ const capturesScroll = !fallback;
24
+ const activeBoundaryHosts = useActivePortalBoundaryHosts(hostKey);
25
+ const {
26
+ height: viewportHeight,
27
+ width: viewportWidth
28
+ } = useWindowDimensions();
29
+ const measurement = useHostMeasurement({
30
+ capturesScroll,
31
+ enabled: activeBoundaryHosts.length > 0,
32
+ hostKey,
33
+ screenKey
34
+ });
35
+ useLayoutEffect(() => {
36
+ registerHost({
37
+ capturesScroll,
38
+ fallback,
39
+ hostKey,
40
+ screenKey
41
+ });
42
+ return () => {
43
+ unregisterHost(screenKey, hostKey);
44
+ };
45
+ }, [capturesScroll, fallback, hostKey, screenKey]);
46
+ const boundaryHosts = measurement.canRenderHosts ? activeBoundaryHosts.map(host => /*#__PURE__*/_jsx(View, {
47
+ pointerEvents: "box-none",
48
+ style: [styles.boundaryHostViewport, {
49
+ width: viewportWidth,
50
+ height: viewportHeight
51
+ }],
52
+ children: /*#__PURE__*/_jsx(PortalBoundaryHost, {
53
+ host: host,
54
+ style: StyleSheet.absoluteFill
55
+ })
56
+ }, host.boundaryId)) : null;
57
+ return /*#__PURE__*/_jsx(Animated.View, {
58
+ ref: measurement.hostRef,
59
+ pointerEvents: "box-none",
60
+ style: [styles.host, {
61
+ width: viewportWidth,
62
+ height: viewportHeight
63
+ }, style],
64
+ collapsable: false,
65
+ children: boundaryHosts
66
+ });
67
+ }
68
+ export const Host = /*#__PURE__*/memo(function Host(props) {
69
+ return /*#__PURE__*/_jsx(HostImpl, {
70
+ ...props
71
+ });
72
+ });
73
+ export const ScreenFallbackHost = /*#__PURE__*/memo(function ScreenFallbackHost() {
74
+ return /*#__PURE__*/_jsx(HostImpl, {
75
+ fallback: true
76
+ });
77
+ });
78
+ const styles = StyleSheet.create({
79
+ host: {
80
+ elevation: 999999,
81
+ left: 0,
82
+ overflow: "visible",
83
+ position: "absolute",
84
+ top: 0,
85
+ zIndex: 999999
86
+ },
87
+ boundaryHostViewport: {
88
+ left: 0,
89
+ overflow: "visible",
90
+ position: "absolute",
91
+ top: 0
92
+ }
93
+ });
94
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useLayoutEffect","useRef","StyleSheet","useWindowDimensions","View","Animated","useDescriptorsStore","useHostMeasurement","registerHost","unregisterHost","useActivePortalBoundaryHosts","PortalBoundaryHost","jsx","_jsx","nextHostId","HostImpl","fallback","style","screenKey","s","derivations","currentScreenKey","generatedHostKeyRef","current","hostKey","capturesScroll","activeBoundaryHosts","height","viewportHeight","width","viewportWidth","measurement","enabled","length","boundaryHosts","canRenderHosts","map","host","pointerEvents","styles","boundaryHostViewport","children","absoluteFill","boundaryId","ref","hostRef","collapsable","Host","props","ScreenFallbackHost","create","elevation","left","overflow","position","top","zIndex"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/host.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ import { memo } from "react";
4
+ import Animated, { useAnimatedStyle } from "react-native-reanimated";
5
+ import { PortalHost as NativePortalHost } from "react-native-teleport";
6
+ import { NO_STYLES } from "../../../../constants";
7
+ import { AnimationStore } from "../../../../stores/animation.store";
8
+ import { getSourceScreenKeyFromPairKey } from "../../../../stores/bounds/helpers/link-pairs.helpers";
9
+ import { getLink } from "../../../../stores/bounds/internals/links";
10
+ import { GestureStore } from "../../../../stores/gesture.store";
11
+ import { ScrollStore } from "../../../../stores/scroll.store";
12
+ import { createPortalBoundaryHostName } from "../utils/naming";
13
+ import { resolvePortalOffsetStyle } from "../utils/offset-style";
14
+ import { jsx as _jsx } from "react/jsx-runtime";
15
+ const AnimatedPortalBoundaryHost = Animated.createAnimatedComponent(NativePortalHost);
16
+ export const PortalBoundaryHost = /*#__PURE__*/memo(function PortalBoundaryHost({
17
+ host,
18
+ style
19
+ }) {
20
+ const hostName = createPortalBoundaryHostName(host.hostKey, host.boundaryId);
21
+ const hostClosing = AnimationStore.getValue(host.screenKey, "closing");
22
+ const hostProgress = AnimationStore.getValue(host.screenKey, "transitionProgress");
23
+ const hostGestureDismissing = GestureStore.getValue(host.screenKey, "dismissing");
24
+ const hostScrollMetadata = ScrollStore.getValue(host.screenKey, "metadata");
25
+ const sourceScrollMetadata = ScrollStore.getValue(getSourceScreenKeyFromPairKey(host.pairKey), "metadata");
26
+ const hostStyle = useAnimatedStyle(() => {
27
+ "worklet";
28
+
29
+ // Strict per-member lookup — a fallback member's source rect would
30
+ // misplace this host's teleported content.
31
+ const link = getLink(host.pairKey, host.boundaryId);
32
+ if (!link?.source || !link.destination) {
33
+ return NO_STYLES;
34
+ }
35
+
36
+ // Make the coordinate case explicit before resolving the host offset.
37
+ // The resolver owns the math; this component decides which screen/scroll
38
+ // relationship the active portal is in.
39
+ const isCrossScreenPortal = link.source.screenKey !== host.screenKey;
40
+ const isHostClosing = hostClosing.get() === 1 || hostGestureDismissing.get() === 1;
41
+ const placement = !isCrossScreenPortal ? "same-screen" : isHostClosing ? "cross-screen-close" : "cross-screen-open";
42
+
43
+ // A source that originated inside its own scroll host moves with that
44
+ // ScrollView while this portal stays attached over here. Shifting the
45
+ // source rect by the clamped source scroll travel keeps the return
46
+ // landing point on the live placeholder, so the close detach is seamless.
47
+ const trackSourceScroll = isCrossScreenPortal && link.source.sourceHost?.capturesScroll === true;
48
+ return resolvePortalOffsetStyle({
49
+ bounds: link.source.bounds,
50
+ hostCurrentScroll: placement === "cross-screen-close" ? hostScrollMetadata.get() : null,
51
+ hostKey: host.hostKey,
52
+ placement,
53
+ sourceCurrentScroll: trackSourceScroll ? sourceScrollMetadata.get() : null,
54
+ hostProgress: hostProgress.get(),
55
+ trackSourceScroll
56
+ });
57
+ });
58
+ return /*#__PURE__*/_jsx(AnimatedPortalBoundaryHost, {
59
+ name: hostName,
60
+ style: [style, hostStyle]
61
+ });
62
+ });
63
+ //# sourceMappingURL=portal-boundary-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","Animated","useAnimatedStyle","PortalHost","NativePortalHost","NO_STYLES","AnimationStore","getSourceScreenKeyFromPairKey","getLink","GestureStore","ScrollStore","createPortalBoundaryHostName","resolvePortalOffsetStyle","jsx","_jsx","AnimatedPortalBoundaryHost","createAnimatedComponent","PortalBoundaryHost","host","style","hostName","hostKey","boundaryId","hostClosing","getValue","screenKey","hostProgress","hostGestureDismissing","hostScrollMetadata","sourceScrollMetadata","pairKey","hostStyle","link","source","destination","isCrossScreenPortal","isHostClosing","get","placement","trackSourceScroll","sourceHost","capturesScroll","bounds","hostCurrentScroll","sourceCurrentScroll","name"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/portal-boundary-host.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import { memo } from "react";
4
+ import { PortalProvider as NativePortalProvider } from "react-native-teleport";
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ export const PortalProvider = /*#__PURE__*/memo(function PortalProvider({
7
+ children
8
+ }) {
9
+ return /*#__PURE__*/_jsx(NativePortalProvider, {
10
+ children: children
11
+ });
12
+ });
13
+ //# sourceMappingURL=portal-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","PortalProvider","NativePortalProvider","jsx","_jsx","children"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/portal-provider.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,cAAc,IAAIC,oBAAoB,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/E,OAAO,MAAMH,cAAc,gBAAGD,IAAI,CAAC,SAASC,cAAcA,CAAC;EAC1DI;AAGD,CAAC,EAAE;EACF,oBAAOD,IAAA,CAACF,oBAAoB;IAAAG,QAAA,EAAEA;EAAQ,CAAuB,CAAC;AAC/D,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+
3
+ import { memo, useCallback, useLayoutEffect, useState } from "react";
4
+ import Animated, { runOnJS, useAnimatedProps, useAnimatedReaction, useAnimatedStyle, useSharedValue } from "react-native-reanimated";
5
+ import { Portal as NativePortal } from "react-native-teleport";
6
+ import { useDescriptorsStore } from "../../../../providers/screen/descriptors";
7
+ import { useScreenStyles } from "../../../../providers/screen/styles";
8
+ import { AnimationStore } from "../../../../stores/animation.store";
9
+ import { getLinkKeyFromTag } from "../../../../stores/bounds/helpers/link-pairs.helpers";
10
+ import { getLink } from "../../../../stores/bounds/internals/links";
11
+ import { pairs } from "../../../../stores/bounds/internals/state";
12
+ import { createTransitionAwareComponent } from "../../../create-transition-aware-component";
13
+ import { getHostCapturesScroll, useActiveHostKey } from "../stores/host-registry.store";
14
+ import { mountPortalBoundaryHost, unmountPortalBoundaryHost } from "../stores/portal-boundary-host.store";
15
+ import { resolvePortalAttachmentTargets } from "../utils/attachment";
16
+ import { createPortalBoundaryHostName, PORTAL_HOST_NAME_RESET_VALUE } from "../utils/naming";
17
+ import { isTeleportEnabled } from "../utils/teleport-control";
18
+ import { jsx as _jsx } from "react/jsx-runtime";
19
+ const TransitionAwareTeleport = createTransitionAwareComponent(NativePortal);
20
+ export const Portal = /*#__PURE__*/memo(function Portal({
21
+ id = "my-id",
22
+ children,
23
+ mode = false,
24
+ placeholderRef
25
+ }) {
26
+ const isPortalEnabled = !!mode;
27
+ const portalAttachTarget = !mode || mode === true ? "current-screen" : mode.attachTo ?? "current-screen";
28
+ const {
29
+ stylesMap
30
+ } = useScreenStyles();
31
+ const sourcePairKey = useDescriptorsStore(s => s.derivations.sourcePairKey);
32
+ const currentScreenKey = useDescriptorsStore(s => s.derivations.currentScreenKey);
33
+ const nextScreenKey = useDescriptorsStore(s => s.derivations.nextScreenKey);
34
+ const [attachment, setAttachment] = useState(PORTAL_HOST_NAME_RESET_VALUE);
35
+ const attachedHostName = useSharedValue(PORTAL_HOST_NAME_RESET_VALUE);
36
+ const placeholderWidth = useSharedValue(0);
37
+ const placeholderHeight = useSharedValue(0);
38
+ const {
39
+ progressScreenKey,
40
+ targetScreenKey
41
+ } = resolvePortalAttachmentTargets({
42
+ attachment,
43
+ currentScreenKey,
44
+ nextScreenKey,
45
+ portalAttachTarget,
46
+ sourcePairKey
47
+ });
48
+ const activeHostKey = useActiveHostKey(targetScreenKey);
49
+ const activeHostCapturesScroll = activeHostKey ? getHostCapturesScroll(activeHostKey) : false;
50
+ const progress = AnimationStore.getValue(progressScreenKey ?? "", "transitionProgress");
51
+ const closing = AnimationStore.getValue(progressScreenKey ?? "", "closing");
52
+ const updatePortalAttachment = useCallback((matchedScreenKey, pairKey) => {
53
+ if (matchedScreenKey && pairKey) {
54
+ setAttachment(current => {
55
+ if (current?.matchedScreenKey === matchedScreenKey && current.pairKey === pairKey) {
56
+ return current;
57
+ }
58
+ return {
59
+ matchedScreenKey,
60
+ pairKey
61
+ };
62
+ });
63
+ return;
64
+ }
65
+ setAttachment(current => current ? null : current);
66
+ }, []);
67
+ useLayoutEffect(() => {
68
+ if (!isPortalEnabled || !attachment || !activeHostKey || !targetScreenKey) {
69
+ attachedHostName.set(PORTAL_HOST_NAME_RESET_VALUE);
70
+ return;
71
+ }
72
+ mountPortalBoundaryHost({
73
+ boundaryId: id,
74
+ capturesScroll: activeHostCapturesScroll,
75
+ hostKey: activeHostKey,
76
+ pairKey: attachment.pairKey,
77
+ screenKey: targetScreenKey
78
+ });
79
+
80
+ // The native registry parks portals whose host has not registered yet and
81
+ // re-parents the moment it does, so the host name can be handed over
82
+ // immediately — ordering belongs to the registry, not to frame counting.
83
+ // hostName rides animated props, so the handover needs no React commit.
84
+ attachedHostName.set(createPortalBoundaryHostName(activeHostKey, id));
85
+ }, [activeHostKey, activeHostCapturesScroll, attachedHostName, attachment, id, isPortalEnabled, targetScreenKey]);
86
+ useLayoutEffect(() => {
87
+ return () => {
88
+ attachedHostName.set(PORTAL_HOST_NAME_RESET_VALUE);
89
+ unmountPortalBoundaryHost(id);
90
+ };
91
+ }, [attachedHostName, id]);
92
+ useAnimatedReaction(() => {
93
+ "worklet";
94
+
95
+ if (!isPortalEnabled || !sourcePairKey) {
96
+ return null;
97
+ }
98
+ pairs.get();
99
+ // Strict per-member lookup: getResolvedLink's group fallback borrows
100
+ // the initial member's link for style resolution, which would make
101
+ // every inactive group member's portal see a "complete" link and
102
+ // attach. A portal may only teleport on its OWN member's link.
103
+ const link = getLink(sourcePairKey, id);
104
+ if (link?.status !== "complete") {
105
+ return null;
106
+ }
107
+
108
+ // Grouped portals teleport only while their member is the group's
109
+ // active id — retargeting detaches the previous member (its content
110
+ // returns home) and attaches the new one. Exactly one grouped member
111
+ // is teleported at a time.
112
+ if (link.group) {
113
+ const activeId = pairs.get()[sourcePairKey]?.groups?.[link.group]?.activeId;
114
+ if (activeId && activeId !== getLinkKeyFromTag(id)) {
115
+ return null;
116
+ }
117
+ }
118
+ return link.destination.screenKey;
119
+ }, (matchedScreenKey, previousMatchedScreenKey) => {
120
+ "worklet";
121
+
122
+ if (matchedScreenKey === previousMatchedScreenKey) {
123
+ return;
124
+ }
125
+ runOnJS(updatePortalAttachment)(matchedScreenKey, sourcePairKey);
126
+ });
127
+ const teleportProps = useAnimatedProps(() => {
128
+ "worklet";
129
+
130
+ // Opening waits for the destination transition to start so content is not
131
+ // re-parented before the host is visually ready. Closing stays attached
132
+ // through progress 0 so the final frame can land in the matched host.
133
+ const attachThreshold = closing.get() === 1 ? 0 : 0.001;
134
+ const {
135
+ teleport,
136
+ ...slotProps
137
+ } = stylesMap.get()[id]?.props ?? {};
138
+ const shouldTeleport = isTeleportEnabled(teleport);
139
+ return {
140
+ // Preserve portal slot props from the interpolator while keeping
141
+ // hostName owned by the attachment gate below.
142
+ ...slotProps,
143
+ hostName: shouldTeleport && progress.get() >= attachThreshold ? attachedHostName.get() : PORTAL_HOST_NAME_RESET_VALUE
144
+ };
145
+ });
146
+
147
+ // Pin the placeholder to its measured size while content lives in the host,
148
+ // in the same UI frame the host name flips — no commit in between. Until the
149
+ // first layout lands (dims 0) sizing stays natural so an instant attach
150
+ // cannot collapse the slot.
151
+ const placeholderStyle = useAnimatedStyle(() => {
152
+ "worklet";
153
+
154
+ const hostName = attachedHostName.get();
155
+ const isAttached = hostName !== null;
156
+ const width = placeholderWidth.get();
157
+ const height = placeholderHeight.get();
158
+ if (!isAttached || width === 0) {
159
+ return {
160
+ width: "auto",
161
+ height: "auto"
162
+ };
163
+ }
164
+ return {
165
+ width,
166
+ height
167
+ };
168
+ });
169
+ if (isPortalEnabled) {
170
+ return /*#__PURE__*/_jsx(Animated.View, {
171
+ ref: placeholderRef,
172
+ onLayout: event => {
173
+ placeholderWidth.set(event.nativeEvent.layout.width);
174
+ placeholderHeight.set(event.nativeEvent.layout.height);
175
+ },
176
+ style: placeholderStyle,
177
+ collapsable: false,
178
+ children: /*#__PURE__*/_jsx(TransitionAwareTeleport, {
179
+ animatedProps: teleportProps,
180
+ name: id,
181
+ children: /*#__PURE__*/_jsx(Animated.View, {
182
+ style: placeholderStyle,
183
+ children: children
184
+ })
185
+ })
186
+ });
187
+ }
188
+ return children;
189
+ });
190
+ //# sourceMappingURL=portal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useCallback","useLayoutEffect","useState","Animated","runOnJS","useAnimatedProps","useAnimatedReaction","useAnimatedStyle","useSharedValue","Portal","NativePortal","useDescriptorsStore","useScreenStyles","AnimationStore","getLinkKeyFromTag","getLink","pairs","createTransitionAwareComponent","getHostCapturesScroll","useActiveHostKey","mountPortalBoundaryHost","unmountPortalBoundaryHost","resolvePortalAttachmentTargets","createPortalBoundaryHostName","PORTAL_HOST_NAME_RESET_VALUE","isTeleportEnabled","jsx","_jsx","TransitionAwareTeleport","id","children","mode","placeholderRef","isPortalEnabled","portalAttachTarget","attachTo","stylesMap","sourcePairKey","s","derivations","currentScreenKey","nextScreenKey","attachment","setAttachment","attachedHostName","placeholderWidth","placeholderHeight","progressScreenKey","targetScreenKey","activeHostKey","activeHostCapturesScroll","progress","getValue","closing","updatePortalAttachment","matchedScreenKey","pairKey","current","set","boundaryId","capturesScroll","hostKey","screenKey","get","link","status","group","activeId","groups","destination","previousMatchedScreenKey","teleportProps","attachThreshold","teleport","slotProps","props","shouldTeleport","hostName","placeholderStyle","isAttached","width","height","View","ref","onLayout","event","nativeEvent","layout","style","collapsable","animatedProps","name"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/portal/components/portal.tsx"],"mappings":";;AAAA,SAGCA,IAAI,EAEJC,WAAW,EACXC,eAAe,EACfC,QAAQ,QACF,OAAO;AAEd,OAAOC,QAAQ,IAEdC,OAAO,EACPC,gBAAgB,EAChBC,mBAAmB,EACnBC,gBAAgB,EAChBC,cAAc,QACR,yBAAyB;AAChC,SAASC,MAAM,IAAIC,YAAY,QAAQ,uBAAuB;AAC9D,SAASC,mBAAmB,QAAQ,0CAA0C;AAC9E,SAASC,eAAe,QAAQ,qCAAqC;AACrE,SAASC,cAAc,QAAQ,oCAAoC;AACnE,SAASC,iBAAiB,QAAQ,sDAAsD;AACxF,SAASC,OAAO,QAAQ,2CAA2C;AACnE,SAASC,KAAK,QAAQ,2CAA2C;AACjE,SAASC,8BAA8B,QAAQ,4CAA4C;AAE3F,SACCC,qBAAqB,EACrBC,gBAAgB,QACV,+BAA+B;AACtC,SACCC,uBAAuB,EACvBC,yBAAyB,QACnB,sCAAsC;AAC7C,SAECC,8BAA8B,QACxB,qBAAqB;AAC5B,SACCC,4BAA4B,EAC5BC,4BAA4B,QACtB,iBAAiB;AACxB,SAASC,iBAAiB,QAAQ,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAS9D,MAAMC,uBAAuB,GAAGX,8BAA8B,CAC7DP,YACD,CAAC;AAeD,OAAO,MAAMD,MAAM,gBAAGV,IAAI,CAAC,SAASU,MAAMA,CAAC;EAC1CoB,EAAE,GAAG,OAAO;EACZC,QAAQ;EACRC,IAAI,GAAG,KAAK;EACZC;AACY,CAAC,EAAE;EACf,MAAMC,eAAe,GAAG,CAAC,CAACF,IAAI;EAC9B,MAAMG,kBAA8C,GACnD,CAACH,IAAI,IAAIA,IAAI,KAAK,IAAI,GACnB,gBAAgB,GACfA,IAAI,CAACI,QAAQ,IAAI,gBAAiB;EACvC,MAAM;IAAEC;EAAU,CAAC,GAAGxB,eAAe,CAAC,CAAC;EACvC,MAAMyB,aAAa,GAAG1B,mBAAmB,CAAE2B,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACF,aAAa,CAAC;EAC7E,MAAMG,gBAAgB,GAAG7B,mBAAmB,CAC1C2B,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACC,gBACtB,CAAC;EAED,MAAMC,aAAa,GAAG9B,mBAAmB,CAAE2B,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACE,aAAa,CAAC;EAE7E,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGzC,QAAQ,CAC3CsB,4BACD,CAAC;EACD,MAAMoB,gBAAgB,GAAGpC,cAAc,CACtCgB,4BACD,CAAC;EACD,MAAMqB,gBAAgB,GAAGrC,cAAc,CAAC,CAAC,CAAC;EAC1C,MAAMsC,iBAAiB,GAAGtC,cAAc,CAAC,CAAC,CAAC;EAE3C,MAAM;IAAEuC,iBAAiB;IAAEC;EAAgB,CAAC,GAAG1B,8BAA8B,CAC5E;IACCoB,UAAU;IACVF,gBAAgB;IAChBC,aAAa;IACbP,kBAAkB;IAClBG;EACD,CACD,CAAC;EACD,MAAMY,aAAa,GAAG9B,gBAAgB,CAAC6B,eAAe,CAAC;EACvD,MAAME,wBAAwB,GAAGD,aAAa,GAC3C/B,qBAAqB,CAAC+B,aAAa,CAAC,GACpC,KAAK;EACR,MAAME,QAAQ,GAAGtC,cAAc,CAACuC,QAAQ,CACvCL,iBAAiB,IAAI,EAAE,EACvB,oBACD,CAAC;EACD,MAAMM,OAAO,GAAGxC,cAAc,CAACuC,QAAQ,CAACL,iBAAiB,IAAI,EAAE,EAAE,SAAS,CAAC;EAE3E,MAAMO,sBAAsB,GAAGtD,WAAW,CACzC,CAACuD,gBAA+B,EAAEC,OAAgB,KAAK;IACtD,IAAID,gBAAgB,IAAIC,OAAO,EAAE;MAChCb,aAAa,CAAEc,OAAO,IAAK;QAC1B,IACCA,OAAO,EAAEF,gBAAgB,KAAKA,gBAAgB,IAC9CE,OAAO,CAACD,OAAO,KAAKA,OAAO,EAC1B;UACD,OAAOC,OAAO;QACf;QAEA,OAAO;UACNF,gBAAgB;UAChBC;QACD,CAAC;MACF,CAAC,CAAC;MACF;IACD;IAEAb,aAAa,CAAEc,OAAO,IAAMA,OAAO,GAAG,IAAI,GAAGA,OAAQ,CAAC;EACvD,CAAC,EACD,EACD,CAAC;EAEDxD,eAAe,CAAC,MAAM;IACrB,IAAI,CAACgC,eAAe,IAAI,CAACS,UAAU,IAAI,CAACO,aAAa,IAAI,CAACD,eAAe,EAAE;MAC1EJ,gBAAgB,CAACc,GAAG,CAAClC,4BAA4B,CAAC;MAClD;IACD;IAEAJ,uBAAuB,CAAC;MACvBuC,UAAU,EAAE9B,EAAE;MACd+B,cAAc,EAAEV,wBAAwB;MACxCW,OAAO,EAAEZ,aAAa;MACtBO,OAAO,EAAEd,UAAU,CAACc,OAAO;MAC3BM,SAAS,EAAEd;IACZ,CAAC,CAAC;;IAEF;IACA;IACA;IACA;IACAJ,gBAAgB,CAACc,GAAG,CAACnC,4BAA4B,CAAC0B,aAAa,EAAEpB,EAAE,CAAC,CAAC;EACtE,CAAC,EAAE,CACFoB,aAAa,EACbC,wBAAwB,EACxBN,gBAAgB,EAChBF,UAAU,EACVb,EAAE,EACFI,eAAe,EACfe,eAAe,CACf,CAAC;EAEF/C,eAAe,CAAC,MAAM;IACrB,OAAO,MAAM;MACZ2C,gBAAgB,CAACc,GAAG,CAAClC,4BAA4B,CAAC;MAClDH,yBAAyB,CAACQ,EAAE,CAAC;IAC9B,CAAC;EACF,CAAC,EAAE,CAACe,gBAAgB,EAAEf,EAAE,CAAC,CAAC;EAE1BvB,mBAAmB,CAClB,MAAM;IACL,SAAS;;IACT,IAAI,CAAC2B,eAAe,IAAI,CAACI,aAAa,EAAE;MACvC,OAAO,IAAI;IACZ;IAEArB,KAAK,CAAC+C,GAAG,CAAC,CAAC;IACX;IACA;IACA;IACA;IACA,MAAMC,IAAI,GAAGjD,OAAO,CAACsB,aAAa,EAAER,EAAE,CAAC;IAEvC,IAAImC,IAAI,EAAEC,MAAM,KAAK,UAAU,EAAE;MAChC,OAAO,IAAI;IACZ;;IAEA;IACA;IACA;IACA;IACA,IAAID,IAAI,CAACE,KAAK,EAAE;MACf,MAAMC,QAAQ,GACbnD,KAAK,CAAC+C,GAAG,CAAC,CAAC,CAAC1B,aAAa,CAAC,EAAE+B,MAAM,GAAGJ,IAAI,CAACE,KAAK,CAAC,EAAEC,QAAQ;MAE3D,IAAIA,QAAQ,IAAIA,QAAQ,KAAKrD,iBAAiB,CAACe,EAAE,CAAC,EAAE;QACnD,OAAO,IAAI;MACZ;IACD;IAEA,OAAOmC,IAAI,CAACK,WAAW,CAACP,SAAS;EAClC,CAAC,EACD,CAACP,gBAAgB,EAAEe,wBAAwB,KAAK;IAC/C,SAAS;;IACT,IAAIf,gBAAgB,KAAKe,wBAAwB,EAAE;MAClD;IACD;IAEAlE,OAAO,CAACkD,sBAAsB,CAAC,CAACC,gBAAgB,EAAElB,aAAa,CAAC;EACjE,CACD,CAAC;EAED,MAAMkC,aAAa,GAAGlE,gBAAgB,CAAC,MAAM;IAC5C,SAAS;;IAET;IACA;IACA;IACA,MAAMmE,eAAe,GAAGnB,OAAO,CAACU,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;IACvD,MAAM;MAAEU,QAAQ;MAAE,GAAGC;IAAU,CAAC,GAAGtC,SAAS,CAAC2B,GAAG,CAAC,CAAC,CAAClC,EAAE,CAAC,EAAE8C,KAAK,IAAI,CAAC,CAAC;IACnE,MAAMC,cAAc,GAAGnD,iBAAiB,CAACgD,QAAQ,CAAC;IAElD,OAAO;MACN;MACA;MACA,GAAGC,SAAS;MACZG,QAAQ,EACPD,cAAc,IAAIzB,QAAQ,CAACY,GAAG,CAAC,CAAC,IAAIS,eAAe,GAChD5B,gBAAgB,CAACmB,GAAG,CAAC,CAAC,GACtBvC;IACL,CAAC;EACF,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA,MAAMsD,gBAAgB,GAAGvE,gBAAgB,CAAC,MAAM;IAC/C,SAAS;;IACT,MAAMsE,QAAQ,GAAGjC,gBAAgB,CAACmB,GAAG,CAAC,CAAC;IACvC,MAAMgB,UAAU,GAAGF,QAAQ,KAAK,IAAI;IACpC,MAAMG,KAAK,GAAGnC,gBAAgB,CAACkB,GAAG,CAAC,CAAC;IACpC,MAAMkB,MAAM,GAAGnC,iBAAiB,CAACiB,GAAG,CAAC,CAAC;IAEtC,IAAI,CAACgB,UAAU,IAAIC,KAAK,KAAK,CAAC,EAAE;MAC/B,OAAO;QAAEA,KAAK,EAAE,MAAM;QAAEC,MAAM,EAAE;MAAO,CAAC;IACzC;IAEA,OAAO;MAAED,KAAK;MAAEC;IAAO,CAAC;EACzB,CAAC,CAAC;EAEF,IAAIhD,eAAe,EAAE;IACpB,oBACCN,IAAA,CAACxB,QAAQ,CAAC+E,IAAI;MACbC,GAAG,EAAEnD,cAAe;MACpBoD,QAAQ,EAAGC,KAAK,IAAK;QACpBxC,gBAAgB,CAACa,GAAG,CAAC2B,KAAK,CAACC,WAAW,CAACC,MAAM,CAACP,KAAK,CAAC;QACpDlC,iBAAiB,CAACY,GAAG,CAAC2B,KAAK,CAACC,WAAW,CAACC,MAAM,CAACN,MAAM,CAAC;MACvD,CAAE;MACFO,KAAK,EAAEV,gBAAiB;MACxBW,WAAW,EAAE,KAAM;MAAA3D,QAAA,eAEnBH,IAAA,CAACC,uBAAuB;QAAC8D,aAAa,EAAEnB,aAAc;QAACoB,IAAI,EAAE9D,EAAG;QAAAC,QAAA,eAC/DH,IAAA,CAACxB,QAAQ,CAAC+E,IAAI;UAACM,KAAK,EAAEV,gBAAiB;UAAAhD,QAAA,EAAEA;QAAQ,CAAgB;MAAC,CAC1C;IAAC,CACZ,CAAC;EAElB;EAEA,OAAOA,QAAQ;AAChB,CAAC,CAAC","ignoreList":[]}