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

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 (528) 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 +18 -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 +74 -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 +20 -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 +198 -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/teleport.js +23 -0
  37. package/lib/commonjs/shared/components/boundary/portal/teleport.js.map +1 -0
  38. package/lib/commonjs/shared/components/boundary/portal/utils/attachment.js +40 -0
  39. package/lib/commonjs/shared/components/boundary/portal/utils/attachment.js.map +1 -0
  40. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js +15 -0
  41. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js.map +1 -0
  42. package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js +71 -0
  43. package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js.map +1 -0
  44. package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js +16 -0
  45. package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js.map +1 -0
  46. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/providers/boundary-owner.provider.js +26 -25
  47. package/lib/commonjs/shared/components/boundary/providers/boundary-owner.provider.js.map +1 -0
  48. package/lib/commonjs/shared/components/boundary/types.js.map +1 -0
  49. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js +25 -0
  50. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js.map +1 -0
  51. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/utils/measured-bounds.js +19 -9
  52. package/lib/commonjs/shared/components/boundary/utils/measured-bounds.js.map +1 -0
  53. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js +105 -0
  54. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js.map +1 -0
  55. package/lib/commonjs/shared/components/boundary/utils/source-signals.js +48 -0
  56. package/lib/commonjs/shared/components/boundary/utils/source-signals.js.map +1 -0
  57. package/lib/commonjs/shared/components/create-transition-aware-component.js +8 -3
  58. package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
  59. package/lib/commonjs/shared/components/{integrations/masked-view.js → masked-view.js} +2 -2
  60. package/lib/commonjs/shared/components/masked-view.js.map +1 -0
  61. package/lib/commonjs/shared/components/screen-container/layers/content.js +9 -5
  62. package/lib/commonjs/shared/components/screen-container/layers/content.js.map +1 -1
  63. package/lib/commonjs/shared/configs/presets.js +6 -6
  64. package/lib/commonjs/shared/configs/presets.js.map +1 -1
  65. package/lib/commonjs/shared/hooks/navigation/use-stack.js +17 -2
  66. package/lib/commonjs/shared/hooks/navigation/use-stack.js.map +1 -1
  67. package/lib/commonjs/shared/index.js +4 -4
  68. package/lib/commonjs/shared/index.js.map +1 -1
  69. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js +4 -2
  70. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  71. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js +4 -13
  72. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  73. package/lib/commonjs/shared/providers/screen/animation/helpers/stack-progress.js +23 -12
  74. package/lib/commonjs/shared/providers/screen/animation/helpers/stack-progress.js.map +1 -1
  75. package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js +1 -0
  76. package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
  77. package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js +7 -3
  78. package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  79. package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +8 -1
  80. package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
  81. package/lib/commonjs/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js +21 -6
  82. package/lib/commonjs/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +1 -1
  83. package/lib/commonjs/shared/providers/screen/origin.provider.js +41 -0
  84. package/lib/commonjs/shared/providers/screen/origin.provider.js.map +1 -0
  85. package/lib/commonjs/shared/providers/screen/styles/constants.js +2 -0
  86. package/lib/commonjs/shared/providers/screen/styles/constants.js.map +1 -1
  87. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js +58 -0
  88. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js.map +1 -0
  89. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +7 -0
  90. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  91. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -1
  92. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  93. package/lib/commonjs/shared/providers/screen/styles/styles.provider.js +7 -5
  94. package/lib/commonjs/shared/providers/screen/styles/styles.provider.js.map +1 -1
  95. package/lib/commonjs/shared/stores/animation.store.js +2 -0
  96. package/lib/commonjs/shared/stores/animation.store.js.map +1 -1
  97. package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js +1 -10
  98. package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
  99. package/lib/commonjs/shared/stores/bounds/index.js.map +1 -1
  100. package/lib/commonjs/shared/stores/bounds/internals/entries.js.map +1 -1
  101. package/lib/commonjs/shared/stores/bounds/internals/links.js +36 -19
  102. package/lib/commonjs/shared/stores/bounds/internals/links.js.map +1 -1
  103. package/lib/commonjs/shared/stores/bounds/internals/resolver.js +6 -4
  104. package/lib/commonjs/shared/stores/bounds/internals/resolver.js.map +1 -1
  105. package/lib/commonjs/shared/stores/bounds/internals/state.js.map +1 -1
  106. package/lib/commonjs/shared/stores/scroll.store.js +54 -1
  107. package/lib/commonjs/shared/stores/scroll.store.js.map +1 -1
  108. package/lib/commonjs/shared/utils/bounds/helpers/create-bound-tag.js +38 -4
  109. package/lib/commonjs/shared/utils/bounds/helpers/create-bound-tag.js.map +1 -1
  110. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js +40 -87
  111. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  112. package/lib/commonjs/shared/utils/bounds/helpers/create-link-accessor.js +6 -67
  113. package/lib/commonjs/shared/utils/bounds/helpers/create-link-accessor.js.map +1 -1
  114. package/lib/commonjs/shared/utils/bounds/helpers/prepare-bound-styles.js +8 -12
  115. package/lib/commonjs/shared/utils/bounds/helpers/prepare-bound-styles.js.map +1 -1
  116. package/lib/commonjs/shared/utils/bounds/helpers/styles/composers.js +235 -68
  117. package/lib/commonjs/shared/utils/bounds/helpers/styles/composers.js.map +1 -1
  118. package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js +74 -4
  119. package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
  120. package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js +5 -9
  121. package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
  122. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js +5 -10
  123. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  124. package/lib/module/blank-stack/components/stack-view.js +3 -2
  125. package/lib/module/blank-stack/components/stack-view.js.map +1 -1
  126. package/lib/module/shared/components/{create-boundary-component → boundary}/components/boundary-target.js +21 -8
  127. package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -0
  128. package/lib/module/shared/components/{create-boundary-component → boundary}/create-boundary-component.js +20 -26
  129. package/lib/module/shared/components/boundary/create-boundary-component.js.map +1 -0
  130. package/lib/module/shared/components/boundary/hooks/use-boundary-presence.js.map +1 -0
  131. package/lib/module/shared/components/boundary/hooks/use-initial-destination-measurement.js +110 -0
  132. package/lib/module/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +1 -0
  133. package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.js +4 -5
  134. package/lib/module/shared/components/boundary/hooks/use-initial-source-measurement.js.map +1 -0
  135. package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.js +27 -23
  136. package/lib/module/shared/components/boundary/hooks/use-measurer.js.map +1 -0
  137. package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-refresh-boundary.js +10 -7
  138. package/lib/module/shared/components/boundary/hooks/use-refresh-boundary.js.map +1 -0
  139. package/lib/module/shared/components/{create-boundary-component → boundary}/index.js +8 -1
  140. package/lib/module/shared/components/boundary/index.js.map +1 -0
  141. package/lib/module/shared/components/boundary/portal/components/host.js +94 -0
  142. package/lib/module/shared/components/boundary/portal/components/host.js.map +1 -0
  143. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js +69 -0
  144. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js.map +1 -0
  145. package/lib/module/shared/components/boundary/portal/components/portal-provider.js +16 -0
  146. package/lib/module/shared/components/boundary/portal/components/portal-provider.js.map +1 -0
  147. package/lib/module/shared/components/boundary/portal/components/portal.js +193 -0
  148. package/lib/module/shared/components/boundary/portal/components/portal.js.map +1 -0
  149. package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js +69 -0
  150. package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js.map +1 -0
  151. package/lib/module/shared/components/boundary/portal/index.js +6 -0
  152. package/lib/module/shared/components/boundary/portal/index.js.map +1 -0
  153. package/lib/module/shared/components/boundary/portal/stores/host-bounds.store.js +40 -0
  154. package/lib/module/shared/components/boundary/portal/stores/host-bounds.store.js.map +1 -0
  155. package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js +126 -0
  156. package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js.map +1 -0
  157. package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js +53 -0
  158. package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -0
  159. package/lib/module/shared/components/boundary/portal/teleport.js +19 -0
  160. package/lib/module/shared/components/boundary/portal/teleport.js.map +1 -0
  161. package/lib/module/shared/components/boundary/portal/utils/attachment.js +35 -0
  162. package/lib/module/shared/components/boundary/portal/utils/attachment.js.map +1 -0
  163. package/lib/module/shared/components/boundary/portal/utils/naming.js +10 -0
  164. package/lib/module/shared/components/boundary/portal/utils/naming.js.map +1 -0
  165. package/lib/module/shared/components/boundary/portal/utils/offset-style.js +66 -0
  166. package/lib/module/shared/components/boundary/portal/utils/offset-style.js.map +1 -0
  167. package/lib/module/shared/components/boundary/portal/utils/teleport-control.js +11 -0
  168. package/lib/module/shared/components/boundary/portal/utils/teleport-control.js.map +1 -0
  169. package/lib/module/shared/components/boundary/providers/boundary-owner.provider.js +60 -0
  170. package/lib/module/shared/components/boundary/providers/boundary-owner.provider.js.map +1 -0
  171. package/lib/module/shared/components/boundary/types.js.map +1 -0
  172. package/lib/module/shared/components/boundary/utils/destination-signals.js +20 -0
  173. package/lib/module/shared/components/boundary/utils/destination-signals.js.map +1 -0
  174. package/lib/module/shared/components/{create-boundary-component → boundary}/utils/measured-bounds.js +16 -7
  175. package/lib/module/shared/components/boundary/utils/measured-bounds.js.map +1 -0
  176. package/lib/module/shared/components/boundary/utils/refresh-signals.js +100 -0
  177. package/lib/module/shared/components/boundary/utils/refresh-signals.js.map +1 -0
  178. package/lib/module/shared/components/boundary/utils/source-signals.js +43 -0
  179. package/lib/module/shared/components/boundary/utils/source-signals.js.map +1 -0
  180. package/lib/module/shared/components/create-transition-aware-component.js +8 -3
  181. package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
  182. package/lib/module/shared/components/{integrations/masked-view.js → masked-view.js} +2 -2
  183. package/lib/module/shared/components/masked-view.js.map +1 -0
  184. package/lib/module/shared/components/screen-container/layers/content.js +10 -6
  185. package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
  186. package/lib/module/shared/configs/presets.js +6 -6
  187. package/lib/module/shared/configs/presets.js.map +1 -1
  188. package/lib/module/shared/hooks/navigation/use-stack.js +19 -4
  189. package/lib/module/shared/hooks/navigation/use-stack.js.map +1 -1
  190. package/lib/module/shared/index.js +2 -2
  191. package/lib/module/shared/index.js.map +1 -1
  192. package/lib/module/shared/providers/helpers/measured-bounds-writes.js +4 -2
  193. package/lib/module/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  194. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js +5 -14
  195. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  196. package/lib/module/shared/providers/screen/animation/helpers/stack-progress.js +20 -10
  197. package/lib/module/shared/providers/screen/animation/helpers/stack-progress.js.map +1 -1
  198. package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js +1 -0
  199. package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
  200. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js +8 -4
  201. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  202. package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +8 -1
  203. package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
  204. package/lib/module/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js +20 -6
  205. package/lib/module/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +1 -1
  206. package/lib/module/shared/providers/screen/origin.provider.js +33 -0
  207. package/lib/module/shared/providers/screen/origin.provider.js.map +1 -0
  208. package/lib/module/shared/providers/screen/styles/constants.js +2 -0
  209. package/lib/module/shared/providers/screen/styles/constants.js.map +1 -1
  210. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js +53 -0
  211. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js.map +1 -0
  212. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +1 -0
  213. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  214. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -1
  215. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  216. package/lib/module/shared/providers/screen/styles/styles.provider.js +7 -5
  217. package/lib/module/shared/providers/screen/styles/styles.provider.js.map +1 -1
  218. package/lib/module/shared/stores/animation.store.js +2 -0
  219. package/lib/module/shared/stores/animation.store.js.map +1 -1
  220. package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js +1 -8
  221. package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
  222. package/lib/module/shared/stores/bounds/index.js.map +1 -1
  223. package/lib/module/shared/stores/bounds/internals/entries.js.map +1 -1
  224. package/lib/module/shared/stores/bounds/internals/links.js +36 -19
  225. package/lib/module/shared/stores/bounds/internals/links.js.map +1 -1
  226. package/lib/module/shared/stores/bounds/internals/resolver.js +6 -4
  227. package/lib/module/shared/stores/bounds/internals/resolver.js.map +1 -1
  228. package/lib/module/shared/stores/bounds/internals/state.js.map +1 -1
  229. package/lib/module/shared/stores/scroll.store.js +50 -0
  230. package/lib/module/shared/stores/scroll.store.js.map +1 -1
  231. package/lib/module/shared/types/animation.types.js.map +1 -1
  232. package/lib/module/shared/types/bounds.types.js.map +1 -1
  233. package/lib/module/shared/utils/bounds/helpers/create-bound-tag.js +36 -3
  234. package/lib/module/shared/utils/bounds/helpers/create-bound-tag.js.map +1 -1
  235. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js +42 -89
  236. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  237. package/lib/module/shared/utils/bounds/helpers/create-link-accessor.js +6 -67
  238. package/lib/module/shared/utils/bounds/helpers/create-link-accessor.js.map +1 -1
  239. package/lib/module/shared/utils/bounds/helpers/prepare-bound-styles.js +8 -13
  240. package/lib/module/shared/utils/bounds/helpers/prepare-bound-styles.js.map +1 -1
  241. package/lib/module/shared/utils/bounds/helpers/styles/composers.js +236 -69
  242. package/lib/module/shared/utils/bounds/helpers/styles/composers.js.map +1 -1
  243. package/lib/module/shared/utils/bounds/helpers/styles/compute.js +74 -4
  244. package/lib/module/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
  245. package/lib/module/shared/utils/bounds/navigation/reveal/build.js +5 -9
  246. package/lib/module/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
  247. package/lib/module/shared/utils/bounds/navigation/zoom/build.js +5 -10
  248. package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  249. package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
  250. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts.map +1 -0
  251. package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts.map +1 -0
  252. package/lib/typescript/shared/components/boundary/hooks/use-boundary-presence.d.ts.map +1 -0
  253. package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-initial-destination-measurement.d.ts +1 -4
  254. package/lib/typescript/shared/components/boundary/hooks/use-initial-destination-measurement.d.ts.map +1 -0
  255. package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.d.ts +0 -2
  256. package/lib/typescript/shared/components/boundary/hooks/use-initial-source-measurement.d.ts.map +1 -0
  257. package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.d.ts +4 -2
  258. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts.map +1 -0
  259. package/lib/typescript/shared/components/boundary/hooks/use-refresh-boundary.d.ts +10 -0
  260. package/lib/typescript/shared/components/boundary/hooks/use-refresh-boundary.d.ts.map +1 -0
  261. package/lib/typescript/shared/components/{create-boundary-component → boundary}/index.d.ts +8 -2
  262. package/lib/typescript/shared/components/boundary/index.d.ts.map +1 -0
  263. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts +7 -0
  264. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts.map +1 -0
  265. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts +9 -0
  266. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts.map +1 -0
  267. package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts +4 -0
  268. package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts.map +1 -0
  269. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts +19 -0
  270. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts.map +1 -0
  271. package/lib/typescript/shared/components/boundary/portal/hooks/use-host-measurement.d.ts +13 -0
  272. package/lib/typescript/shared/components/boundary/portal/hooks/use-host-measurement.d.ts.map +1 -0
  273. package/lib/typescript/shared/components/boundary/portal/index.d.ts +4 -0
  274. package/lib/typescript/shared/components/boundary/portal/index.d.ts.map +1 -0
  275. package/lib/typescript/shared/components/boundary/portal/stores/host-bounds.store.d.ts +9 -0
  276. package/lib/typescript/shared/components/boundary/portal/stores/host-bounds.store.d.ts.map +1 -0
  277. package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts +19 -0
  278. package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts.map +1 -0
  279. package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts +11 -0
  280. package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts.map +1 -0
  281. package/lib/typescript/shared/components/boundary/portal/teleport.d.ts +6 -0
  282. package/lib/typescript/shared/components/boundary/portal/teleport.d.ts.map +1 -0
  283. package/lib/typescript/shared/components/boundary/portal/utils/attachment.d.ts +21 -0
  284. package/lib/typescript/shared/components/boundary/portal/utils/attachment.d.ts.map +1 -0
  285. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts +3 -0
  286. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts.map +1 -0
  287. package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts +37 -0
  288. package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts.map +1 -0
  289. package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts +3 -0
  290. package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts.map +1 -0
  291. package/lib/typescript/shared/components/{create-boundary-component → boundary}/providers/boundary-owner.provider.d.ts +14 -6
  292. package/lib/typescript/shared/components/boundary/providers/boundary-owner.provider.d.ts.map +1 -0
  293. package/lib/typescript/shared/components/boundary/types.d.ts +78 -0
  294. package/lib/typescript/shared/components/boundary/types.d.ts.map +1 -0
  295. package/lib/typescript/shared/components/{create-boundary-component → boundary}/utils/destination-signals.d.ts +2 -3
  296. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts.map +1 -0
  297. package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts +12 -0
  298. package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts.map +1 -0
  299. package/lib/typescript/shared/components/{create-boundary-component → boundary}/utils/refresh-signals.d.ts +4 -3
  300. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts.map +1 -0
  301. package/lib/typescript/shared/components/{create-boundary-component → boundary}/utils/source-signals.d.ts +1 -2
  302. package/lib/typescript/shared/components/boundary/utils/source-signals.d.ts.map +1 -0
  303. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  304. package/lib/typescript/shared/components/masked-view.d.ts.map +1 -0
  305. package/lib/typescript/shared/components/screen-container/layers/content.d.ts.map +1 -1
  306. package/lib/typescript/shared/configs/presets.d.ts.map +1 -1
  307. package/lib/typescript/shared/hooks/navigation/use-stack.d.ts.map +1 -1
  308. package/lib/typescript/shared/index.d.ts +19 -17
  309. package/lib/typescript/shared/index.d.ts.map +1 -1
  310. package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts +3 -1
  311. package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts.map +1 -1
  312. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/types.d.ts +1 -0
  313. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/types.d.ts.map +1 -1
  314. package/lib/typescript/shared/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
  315. package/lib/typescript/shared/providers/screen/animation/helpers/stack-progress.d.ts +2 -1
  316. package/lib/typescript/shared/providers/screen/animation/helpers/stack-progress.d.ts.map +1 -1
  317. package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts +1 -0
  318. package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts.map +1 -1
  319. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  320. package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts +6 -1
  321. package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts.map +1 -1
  322. package/lib/typescript/shared/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts +9 -3
  323. package/lib/typescript/shared/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts.map +1 -1
  324. package/lib/typescript/shared/providers/screen/origin.provider.d.ts +11 -0
  325. package/lib/typescript/shared/providers/screen/origin.provider.d.ts.map +1 -0
  326. package/lib/typescript/shared/providers/screen/styles/constants.d.ts.map +1 -1
  327. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.d.ts +3 -0
  328. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.d.ts.map +1 -0
  329. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts +1 -0
  330. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts.map +1 -1
  331. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +1 -0
  332. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  333. package/lib/typescript/shared/providers/screen/styles/styles.provider.d.ts +1 -0
  334. package/lib/typescript/shared/providers/screen/styles/styles.provider.d.ts.map +1 -1
  335. package/lib/typescript/shared/stores/animation.store.d.ts +1 -0
  336. package/lib/typescript/shared/stores/animation.store.d.ts.map +1 -1
  337. package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts +1 -3
  338. package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts.map +1 -1
  339. package/lib/typescript/shared/stores/bounds/index.d.ts +1 -1
  340. package/lib/typescript/shared/stores/bounds/index.d.ts.map +1 -1
  341. package/lib/typescript/shared/stores/bounds/internals/entries.d.ts +2 -2
  342. package/lib/typescript/shared/stores/bounds/internals/entries.d.ts.map +1 -1
  343. package/lib/typescript/shared/stores/bounds/internals/links.d.ts +2 -2
  344. package/lib/typescript/shared/stores/bounds/internals/links.d.ts.map +1 -1
  345. package/lib/typescript/shared/stores/bounds/internals/resolver.d.ts.map +1 -1
  346. package/lib/typescript/shared/stores/bounds/internals/state.d.ts +4 -2
  347. package/lib/typescript/shared/stores/bounds/internals/state.d.ts.map +1 -1
  348. package/lib/typescript/shared/stores/bounds/types.d.ts +47 -12
  349. package/lib/typescript/shared/stores/bounds/types.d.ts.map +1 -1
  350. package/lib/typescript/shared/stores/scroll.store.d.ts +12 -1
  351. package/lib/typescript/shared/stores/scroll.store.d.ts.map +1 -1
  352. package/lib/typescript/shared/types/animation.types.d.ts +13 -2
  353. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  354. package/lib/typescript/shared/types/bounds.types.d.ts +10 -40
  355. package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
  356. package/lib/typescript/shared/types/index.d.ts +2 -2
  357. package/lib/typescript/shared/types/index.d.ts.map +1 -1
  358. package/lib/typescript/shared/utils/bounds/helpers/create-bound-tag.d.ts +2 -1
  359. package/lib/typescript/shared/utils/bounds/helpers/create-bound-tag.d.ts.map +1 -1
  360. package/lib/typescript/shared/utils/bounds/helpers/create-bounds-accessor-core.d.ts +7 -11
  361. package/lib/typescript/shared/utils/bounds/helpers/create-bounds-accessor-core.d.ts.map +1 -1
  362. package/lib/typescript/shared/utils/bounds/helpers/create-link-accessor.d.ts +0 -3
  363. package/lib/typescript/shared/utils/bounds/helpers/create-link-accessor.d.ts.map +1 -1
  364. package/lib/typescript/shared/utils/bounds/helpers/prepare-bound-styles.d.ts +7 -3
  365. package/lib/typescript/shared/utils/bounds/helpers/prepare-bound-styles.d.ts.map +1 -1
  366. package/lib/typescript/shared/utils/bounds/helpers/styles/composers.d.ts +3 -0
  367. package/lib/typescript/shared/utils/bounds/helpers/styles/composers.d.ts.map +1 -1
  368. package/lib/typescript/shared/utils/bounds/helpers/styles/compute.d.ts +1 -1
  369. package/lib/typescript/shared/utils/bounds/helpers/styles/compute.d.ts.map +1 -1
  370. package/lib/typescript/shared/utils/bounds/navigation/reveal/build.d.ts.map +1 -1
  371. package/lib/typescript/shared/utils/bounds/navigation/zoom/build.d.ts.map +1 -1
  372. package/lib/typescript/shared/utils/bounds/types/options.d.ts +93 -6
  373. package/lib/typescript/shared/utils/bounds/types/options.d.ts.map +1 -1
  374. package/package.json +8 -2
  375. package/src/blank-stack/components/stack-view.tsx +4 -3
  376. package/src/shared/components/{create-boundary-component → boundary}/components/boundary-target.tsx +28 -11
  377. package/src/shared/components/{create-boundary-component → boundary}/create-boundary-component.tsx +33 -31
  378. package/src/shared/components/boundary/hooks/use-initial-destination-measurement.ts +156 -0
  379. package/src/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.ts +5 -14
  380. package/src/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.ts +42 -46
  381. package/src/shared/components/{create-boundary-component → boundary}/hooks/use-refresh-boundary.ts +16 -11
  382. package/src/shared/components/{create-boundary-component → boundary}/index.tsx +12 -0
  383. package/src/shared/components/boundary/portal/components/host.tsx +114 -0
  384. package/src/shared/components/boundary/portal/components/portal-boundary-host.tsx +97 -0
  385. package/src/shared/components/boundary/portal/components/portal-provider.tsx +14 -0
  386. package/src/shared/components/boundary/portal/components/portal.tsx +283 -0
  387. package/src/shared/components/boundary/portal/hooks/use-host-measurement.ts +102 -0
  388. package/src/shared/components/boundary/portal/index.ts +3 -0
  389. package/src/shared/components/boundary/portal/stores/host-bounds.store.ts +45 -0
  390. package/src/shared/components/boundary/portal/stores/host-registry.store.ts +182 -0
  391. package/src/shared/components/boundary/portal/stores/portal-boundary-host.store.ts +91 -0
  392. package/src/shared/components/boundary/portal/teleport.ts +21 -0
  393. package/src/shared/components/boundary/portal/utils/attachment.ts +48 -0
  394. package/src/shared/components/boundary/portal/utils/naming.ts +10 -0
  395. package/src/shared/components/boundary/portal/utils/offset-style.ts +171 -0
  396. package/src/shared/components/boundary/portal/utils/teleport-control.ts +13 -0
  397. package/src/shared/components/{create-boundary-component → boundary}/providers/boundary-owner.provider.tsx +41 -33
  398. package/src/shared/components/boundary/types.ts +92 -0
  399. package/src/shared/components/boundary/utils/destination-signals.ts +31 -0
  400. package/src/shared/components/{create-boundary-component → boundary}/utils/measured-bounds.ts +34 -11
  401. package/src/shared/components/boundary/utils/refresh-signals.ts +175 -0
  402. package/src/shared/components/boundary/utils/source-signals.ts +63 -0
  403. package/src/shared/components/create-transition-aware-component.tsx +8 -3
  404. package/src/shared/components/{integrations/masked-view.tsx → masked-view.tsx} +2 -2
  405. package/src/shared/components/screen-container/layers/content.tsx +12 -7
  406. package/src/shared/configs/presets.ts +2 -6
  407. package/src/shared/hooks/navigation/use-stack.tsx +32 -1
  408. package/src/shared/index.ts +13 -5
  409. package/src/shared/providers/helpers/measured-bounds-writes.ts +11 -1
  410. package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/types.ts +1 -0
  411. package/src/shared/providers/screen/animation/helpers/pipeline.ts +13 -19
  412. package/src/shared/providers/screen/animation/helpers/stack-progress.ts +31 -16
  413. package/src/shared/providers/screen/animation/helpers/use-build-transition-state.ts +2 -0
  414. package/src/shared/providers/screen/descriptors/descriptors.provider.tsx +7 -3
  415. package/src/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.ts +16 -0
  416. package/src/shared/providers/screen/descriptors/helpers/get-ancestor-keys.ts +31 -6
  417. package/src/shared/providers/screen/origin.provider.tsx +38 -0
  418. package/src/shared/providers/screen/styles/constants.ts +2 -0
  419. package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.ts +74 -0
  420. package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/index.ts +1 -0
  421. package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +1 -0
  422. package/src/shared/providers/screen/styles/styles.provider.tsx +5 -3
  423. package/src/shared/stores/animation.store.ts +3 -0
  424. package/src/shared/stores/bounds/helpers/link-pairs.helpers.ts +1 -10
  425. package/src/shared/stores/bounds/index.ts +2 -4
  426. package/src/shared/stores/bounds/internals/entries.ts +4 -4
  427. package/src/shared/stores/bounds/internals/links.ts +52 -18
  428. package/src/shared/stores/bounds/internals/resolver.ts +5 -3
  429. package/src/shared/stores/bounds/internals/state.ts +5 -2
  430. package/src/shared/stores/bounds/types.ts +59 -15
  431. package/src/shared/stores/scroll.store.ts +68 -0
  432. package/src/shared/types/animation.types.ts +17 -2
  433. package/src/shared/types/bounds.types.ts +22 -60
  434. package/src/shared/types/index.ts +5 -0
  435. package/src/shared/utils/bounds/helpers/create-bound-tag.ts +46 -4
  436. package/src/shared/utils/bounds/helpers/create-bounds-accessor-core.ts +65 -116
  437. package/src/shared/utils/bounds/helpers/create-link-accessor.ts +10 -80
  438. package/src/shared/utils/bounds/helpers/prepare-bound-styles.ts +10 -13
  439. package/src/shared/utils/bounds/helpers/styles/composers.ts +269 -46
  440. package/src/shared/utils/bounds/helpers/styles/compute.ts +134 -2
  441. package/src/shared/utils/bounds/navigation/reveal/build.ts +5 -7
  442. package/src/shared/utils/bounds/navigation/zoom/build.ts +5 -8
  443. package/src/shared/utils/bounds/types/options.ts +105 -6
  444. package/lib/commonjs/shared/components/create-boundary-component/components/boundary-target.js.map +0 -1
  445. package/lib/commonjs/shared/components/create-boundary-component/create-boundary-component.js.map +0 -1
  446. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-boundary-presence.js.map +0 -1
  447. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js +0 -99
  448. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js.map +0 -1
  449. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-source-measurement.js.map +0 -1
  450. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-measurer.js.map +0 -1
  451. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-refresh-boundary.js.map +0 -1
  452. package/lib/commonjs/shared/components/create-boundary-component/index.js.map +0 -1
  453. package/lib/commonjs/shared/components/create-boundary-component/providers/boundary-owner.provider.js.map +0 -1
  454. package/lib/commonjs/shared/components/create-boundary-component/types.js.map +0 -1
  455. package/lib/commonjs/shared/components/create-boundary-component/utils/destination-signals.js +0 -75
  456. package/lib/commonjs/shared/components/create-boundary-component/utils/destination-signals.js.map +0 -1
  457. package/lib/commonjs/shared/components/create-boundary-component/utils/measured-bounds.js.map +0 -1
  458. package/lib/commonjs/shared/components/create-boundary-component/utils/refresh-signals.js +0 -103
  459. package/lib/commonjs/shared/components/create-boundary-component/utils/refresh-signals.js.map +0 -1
  460. package/lib/commonjs/shared/components/create-boundary-component/utils/source-signals.js +0 -52
  461. package/lib/commonjs/shared/components/create-boundary-component/utils/source-signals.js.map +0 -1
  462. package/lib/commonjs/shared/components/integrations/masked-view.js.map +0 -1
  463. package/lib/commonjs/shared/utils/bounds/helpers/create-interpolators.js +0 -68
  464. package/lib/commonjs/shared/utils/bounds/helpers/create-interpolators.js.map +0 -1
  465. package/lib/commonjs/shared/utils/bounds/helpers/styles/interpolate-link-style.js +0 -30
  466. package/lib/commonjs/shared/utils/bounds/helpers/styles/interpolate-link-style.js.map +0 -1
  467. package/lib/module/shared/components/create-boundary-component/components/boundary-target.js.map +0 -1
  468. package/lib/module/shared/components/create-boundary-component/create-boundary-component.js.map +0 -1
  469. package/lib/module/shared/components/create-boundary-component/hooks/use-boundary-presence.js.map +0 -1
  470. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js +0 -94
  471. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js.map +0 -1
  472. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-source-measurement.js.map +0 -1
  473. package/lib/module/shared/components/create-boundary-component/hooks/use-measurer.js.map +0 -1
  474. package/lib/module/shared/components/create-boundary-component/hooks/use-refresh-boundary.js.map +0 -1
  475. package/lib/module/shared/components/create-boundary-component/index.js.map +0 -1
  476. package/lib/module/shared/components/create-boundary-component/providers/boundary-owner.provider.js +0 -60
  477. package/lib/module/shared/components/create-boundary-component/providers/boundary-owner.provider.js.map +0 -1
  478. package/lib/module/shared/components/create-boundary-component/types.js.map +0 -1
  479. package/lib/module/shared/components/create-boundary-component/utils/destination-signals.js +0 -70
  480. package/lib/module/shared/components/create-boundary-component/utils/destination-signals.js.map +0 -1
  481. package/lib/module/shared/components/create-boundary-component/utils/measured-bounds.js.map +0 -1
  482. package/lib/module/shared/components/create-boundary-component/utils/refresh-signals.js +0 -98
  483. package/lib/module/shared/components/create-boundary-component/utils/refresh-signals.js.map +0 -1
  484. package/lib/module/shared/components/create-boundary-component/utils/source-signals.js +0 -47
  485. package/lib/module/shared/components/create-boundary-component/utils/source-signals.js.map +0 -1
  486. package/lib/module/shared/components/integrations/masked-view.js.map +0 -1
  487. package/lib/module/shared/utils/bounds/helpers/create-interpolators.js +0 -63
  488. package/lib/module/shared/utils/bounds/helpers/create-interpolators.js.map +0 -1
  489. package/lib/module/shared/utils/bounds/helpers/styles/interpolate-link-style.js +0 -26
  490. package/lib/module/shared/utils/bounds/helpers/styles/interpolate-link-style.js.map +0 -1
  491. package/lib/typescript/shared/components/create-boundary-component/components/boundary-target.d.ts.map +0 -1
  492. package/lib/typescript/shared/components/create-boundary-component/create-boundary-component.d.ts.map +0 -1
  493. package/lib/typescript/shared/components/create-boundary-component/hooks/use-boundary-presence.d.ts.map +0 -1
  494. package/lib/typescript/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.d.ts.map +0 -1
  495. package/lib/typescript/shared/components/create-boundary-component/hooks/use-initial-source-measurement.d.ts.map +0 -1
  496. package/lib/typescript/shared/components/create-boundary-component/hooks/use-measurer.d.ts.map +0 -1
  497. package/lib/typescript/shared/components/create-boundary-component/hooks/use-refresh-boundary.d.ts +0 -14
  498. package/lib/typescript/shared/components/create-boundary-component/hooks/use-refresh-boundary.d.ts.map +0 -1
  499. package/lib/typescript/shared/components/create-boundary-component/index.d.ts.map +0 -1
  500. package/lib/typescript/shared/components/create-boundary-component/providers/boundary-owner.provider.d.ts.map +0 -1
  501. package/lib/typescript/shared/components/create-boundary-component/types.d.ts +0 -37
  502. package/lib/typescript/shared/components/create-boundary-component/types.d.ts.map +0 -1
  503. package/lib/typescript/shared/components/create-boundary-component/utils/destination-signals.d.ts.map +0 -1
  504. package/lib/typescript/shared/components/create-boundary-component/utils/measured-bounds.d.ts +0 -8
  505. package/lib/typescript/shared/components/create-boundary-component/utils/measured-bounds.d.ts.map +0 -1
  506. package/lib/typescript/shared/components/create-boundary-component/utils/refresh-signals.d.ts.map +0 -1
  507. package/lib/typescript/shared/components/create-boundary-component/utils/source-signals.d.ts.map +0 -1
  508. package/lib/typescript/shared/components/integrations/masked-view.d.ts.map +0 -1
  509. package/lib/typescript/shared/utils/bounds/helpers/create-interpolators.d.ts +0 -14
  510. package/lib/typescript/shared/utils/bounds/helpers/create-interpolators.d.ts.map +0 -1
  511. package/lib/typescript/shared/utils/bounds/helpers/styles/interpolate-link-style.d.ts +0 -17
  512. package/lib/typescript/shared/utils/bounds/helpers/styles/interpolate-link-style.d.ts.map +0 -1
  513. package/src/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.ts +0 -130
  514. package/src/shared/components/create-boundary-component/types.ts +0 -48
  515. package/src/shared/components/create-boundary-component/utils/destination-signals.ts +0 -129
  516. package/src/shared/components/create-boundary-component/utils/refresh-signals.ts +0 -164
  517. package/src/shared/components/create-boundary-component/utils/source-signals.ts +0 -72
  518. package/src/shared/utils/bounds/helpers/create-interpolators.ts +0 -117
  519. package/src/shared/utils/bounds/helpers/styles/interpolate-link-style.ts +0 -43
  520. /package/lib/commonjs/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.js +0 -0
  521. /package/lib/commonjs/shared/components/{create-boundary-component → boundary}/types.js +0 -0
  522. /package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.js +0 -0
  523. /package/lib/module/shared/components/{create-boundary-component → boundary}/types.js +0 -0
  524. /package/lib/typescript/shared/components/{create-boundary-component → boundary}/components/boundary-target.d.ts +0 -0
  525. /package/lib/typescript/shared/components/{create-boundary-component → boundary}/create-boundary-component.d.ts +0 -0
  526. /package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.d.ts +0 -0
  527. /package/lib/typescript/shared/components/{integrations/masked-view.d.ts → masked-view.d.ts} +0 -0
  528. /package/src/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.ts +0 -0
@@ -1,16 +1,11 @@
1
1
  import type React from "react";
2
- import {
3
- createContext,
4
- type ReactNode,
5
- useCallback,
6
- useContext,
7
- useMemo,
8
- useRef,
9
- useState,
10
- } from "react";
2
+ import { type ReactNode, useCallback, useMemo, useRef, useState } from "react";
11
3
  import type { View } from "react-native";
12
4
  import type Animated from "react-native-reanimated";
13
5
  import type { AnimatedRef, StyleProps } from "react-native-reanimated";
6
+ import createProvider from "../../../utils/create-provider";
7
+ import { logger } from "../../../utils/logger";
8
+ import type { BoundaryPortal } from "../types";
14
9
 
15
10
  type BoundaryAssociatedStyle = React.ComponentProps<
16
11
  typeof Animated.View
@@ -21,56 +16,58 @@ interface BoundaryOwnerContextValue {
21
16
  registerTargetRef: (
22
17
  targetRef: AnimatedRef<View>,
23
18
  preparedStyles: StyleProps,
19
+ measurementRef?: AnimatedRef<View>,
24
20
  ) => void;
25
21
  unregisterTargetRef: (targetRef: AnimatedRef<View>) => void;
26
22
  activeTargetRef: AnimatedRef<View> | null;
27
23
  associatedTargetStyles?: BoundaryAssociatedStyle;
24
+ entryTag: string;
25
+ portal?: BoundaryPortal;
28
26
  }
29
27
 
30
28
  type BoundaryTargetEntry = {
31
29
  ref: AnimatedRef<View>;
30
+ /** Surface to measure — the portal placeholder when content can teleport. */
31
+ measurementRef: AnimatedRef<View>;
32
32
  preparedStyles: StyleProps;
33
33
  };
34
34
 
35
- const BoundaryOwnerContext = createContext<BoundaryOwnerContextValue | null>(
36
- null,
37
- );
38
-
35
+ // logger.warn prepends the library prefix.
39
36
  const MULTIPLE_TARGETS_WARNING =
40
- "[react-native-screen-transitions] Multiple Boundary.Target elements were rendered under the same boundary owner. The first registered target will be measured.";
37
+ "Multiple Boundary.Target elements were rendered under the same boundary owner. The first registered target will be measured.";
41
38
 
42
39
  export const TARGET_OUTSIDE_OWNER_WARNING =
43
- "[react-native-screen-transitions] Boundary.Target must be rendered inside a Boundary owner (Boundary.View, Boundary.Trigger, or a component created by createBoundaryComponent).";
40
+ "Boundary.Target must be rendered inside a Boundary owner (Boundary.View, Boundary.Trigger, or a component created by createBoundaryComponent).";
44
41
 
45
- export const BoundaryOwnerProvider = (props: {
42
+ interface BoundaryOwnerProps {
46
43
  value: BoundaryOwnerContextValue;
47
44
  children: ReactNode;
48
- }) => {
49
- const { value, children } = props;
50
-
51
- return (
52
- <BoundaryOwnerContext.Provider value={value}>
53
- {children}
54
- </BoundaryOwnerContext.Provider>
55
- );
56
- };
45
+ }
57
46
 
58
- export const useBoundaryOwnerContext = () => {
59
- return useContext(BoundaryOwnerContext);
60
- };
47
+ export const { BoundaryOwnerProvider, useBoundaryOwnerContext } =
48
+ createProvider("BoundaryOwner", { guarded: false })<
49
+ BoundaryOwnerProps,
50
+ BoundaryOwnerContextValue
51
+ >((props) => props);
61
52
 
62
53
  export const useBoundaryOwner = (params: {
63
54
  ownerRef: AnimatedRef<View>;
64
55
  associatedTargetStyles?: BoundaryAssociatedStyle;
56
+ entryTag: string;
57
+ portal?: BoundaryPortal;
65
58
  }) => {
66
- const { ownerRef, associatedTargetStyles } = params;
59
+ const { ownerRef, associatedTargetStyles, entryTag, portal } = params;
67
60
  const warnedAboutMultipleTargetsRef = useRef(false);
68
61
  const [targetEntry, setTargetEntry] = useState<BoundaryTargetEntry | null>(
69
62
  null,
70
63
  );
71
64
 
72
65
  const registerTargetRef = useCallback(
73
- (targetRef: AnimatedRef<View>, preparedStyles: StyleProps) => {
66
+ (
67
+ targetRef: AnimatedRef<View>,
68
+ preparedStyles: StyleProps,
69
+ measurementRef?: AnimatedRef<View>,
70
+ ) => {
74
71
  setTargetEntry((prev) => {
75
72
  if (prev?.ref === targetRef) {
76
73
  return prev;
@@ -82,10 +79,16 @@ export const useBoundaryOwner = (params: {
82
79
  !warnedAboutMultipleTargetsRef.current
83
80
  ) {
84
81
  warnedAboutMultipleTargetsRef.current = true;
85
- console.warn(MULTIPLE_TARGETS_WARNING);
82
+ logger.warn(MULTIPLE_TARGETS_WARNING);
86
83
  }
87
84
 
88
- return prev ?? { ref: targetRef, preparedStyles };
85
+ return (
86
+ prev ?? {
87
+ ref: targetRef,
88
+ measurementRef: measurementRef ?? targetRef,
89
+ preparedStyles,
90
+ }
91
+ );
89
92
  });
90
93
  },
91
94
  [],
@@ -102,6 +105,8 @@ export const useBoundaryOwner = (params: {
102
105
  unregisterTargetRef,
103
106
  activeTargetRef: targetEntry?.ref ?? null,
104
107
  associatedTargetStyles,
108
+ entryTag,
109
+ portal,
105
110
  }),
106
111
  [
107
112
  ownerRef,
@@ -109,13 +114,16 @@ export const useBoundaryOwner = (params: {
109
114
  unregisterTargetRef,
110
115
  targetEntry,
111
116
  associatedTargetStyles,
117
+ entryTag,
118
+ portal,
112
119
  ],
113
120
  );
114
121
 
115
122
  return {
116
123
  contextValue,
117
124
  hasActiveTarget: targetEntry !== null,
118
- measuredRef: targetEntry?.ref ?? ownerRef,
125
+ measuredRef: targetEntry?.measurementRef ?? ownerRef,
119
126
  targetPreparedStyles: targetEntry?.preparedStyles,
127
+ portal,
120
128
  };
121
129
  };
@@ -0,0 +1,92 @@
1
+ import type { ScreenPairKey } from "../../stores/bounds/types";
2
+ import type { BoundsOptions } from "../../utils/bounds/types/options";
3
+
4
+ export type BoundaryId = string | number;
5
+
6
+ export type BoundaryPortalAttachTarget = "current-screen" | "matched-screen";
7
+
8
+ /**
9
+ * Configures automatic portal attachment for a boundary target.
10
+ *
11
+ * `attachTo` selects where the portal physically renders. Independently of
12
+ * that choice, `Transition.Boundary.Host` marks the screen-local coordinate
13
+ * space the portal should render within.
14
+ *
15
+ * - `current-screen`: the portal attaches to this screen's active host — for a
16
+ * scroll-hosted screen, place `Transition.Boundary.Host` inside that
17
+ * ScrollView to make the content ride with it.
18
+ * - `matched-screen`: the portal attaches to the matched screen's active host
19
+ * for the whole transition (open and close), which avoids re-parenting
20
+ * flicker while keeping the source placeholder measured at home.
21
+ */
22
+ export type BoundaryPortalOptions = {
23
+ /**
24
+ * `current-screen` keeps the portal on this boundary's screen.
25
+ * `matched-screen` moves it to the matched screen once the
26
+ * source/destination link completes.
27
+ *
28
+ * @default "current-screen"
29
+ */
30
+ attachTo?: BoundaryPortalAttachTarget;
31
+ };
32
+
33
+ export type BoundaryPortal = boolean | BoundaryPortalOptions;
34
+
35
+ export type BoundaryConfigProps = Pick<
36
+ BoundsOptions,
37
+ "anchor" | "scaleMode" | "target" | "method"
38
+ >;
39
+
40
+ /**
41
+ * Boundary-specific props shared across all boundary component variants.
42
+ * These are the props that `createBoundaryComponent` extracts and handles
43
+ * internally, regardless of the underlying wrapped component.
44
+ */
45
+ export interface BoundaryOwnProps extends BoundaryConfigProps {
46
+ /**
47
+ * Optional group name for collection/list scenarios.
48
+ * When provided, concrete boundary entries use `group:id`, while transition
49
+ * links stay keyed by the member `id` inside the active screen pair.
50
+ */
51
+ group?: string;
52
+ /**
53
+ * Whether this boundary should participate in matching and measurement.
54
+ * @default true
55
+ */
56
+ enabled?: boolean;
57
+ /**
58
+ * Renders this boundary target through a layout-preserving portal when
59
+ * `react-native-teleport` is installed.
60
+ *
61
+ * The target keeps its measured layout space in the original tree. Once the
62
+ * active source/destination link for this boundary is complete, the screen
63
+ * portal layer can render a boundary-specific host and attach this target to
64
+ * it so the active matched target escapes local clipping.
65
+ *
66
+ * Use `true` to attach to the current screen host. Use
67
+ * `{ attachTo: "matched-screen" }` to attach to the matched screen host.
68
+ *
69
+ * @default false
70
+ */
71
+ portal?: BoundaryPortal;
72
+ id: BoundaryId;
73
+ }
74
+
75
+ /**
76
+ * Full props for a boundary component wrapping a component with props `P`.
77
+ * Omits `id` from the wrapped component's props (since boundary uses its own `id`).
78
+ */
79
+ export type BoundaryComponentProps<P extends object> = Omit<P, "id"> &
80
+ BoundaryOwnProps;
81
+
82
+ export type MeasureTarget =
83
+ | {
84
+ type: "source";
85
+ pairKey: ScreenPairKey;
86
+ }
87
+ | {
88
+ type: "destination";
89
+ pairKey: ScreenPairKey;
90
+ };
91
+
92
+ export type MeasureBoundary = (target: MeasureTarget) => void;
@@ -0,0 +1,31 @@
1
+ import type {
2
+ LinkPairsState,
3
+ ScreenPairKey,
4
+ } from "../../../stores/bounds/types";
5
+
6
+ export const getInitialDestinationMeasurePairKey = (params: {
7
+ enabled: boolean;
8
+ destinationPairKey?: ScreenPairKey;
9
+ ancestorDestinationPairKey?: ScreenPairKey;
10
+ linkId: string;
11
+ linkState?: LinkPairsState;
12
+ }): ScreenPairKey | null => {
13
+ "worklet";
14
+ const {
15
+ enabled,
16
+ destinationPairKey,
17
+ ancestorDestinationPairKey,
18
+ linkId,
19
+ linkState,
20
+ } = params;
21
+ const measurePairKey = destinationPairKey ?? ancestorDestinationPairKey;
22
+
23
+ if (!enabled || !measurePairKey) {
24
+ return null;
25
+ }
26
+
27
+ const hasDestination =
28
+ linkState?.[measurePairKey]?.links?.[linkId]?.destination;
29
+
30
+ return hasDestination ? null : measurePairKey;
31
+ };
@@ -4,17 +4,31 @@ import {
4
4
  type MeasuredDimensions,
5
5
  measure,
6
6
  } from "react-native-reanimated";
7
+ import {
8
+ clampScrollAxisOffset,
9
+ cloneScrollMetadataState,
10
+ } from "../../../stores/scroll.store";
7
11
  import type {
8
12
  ScrollGestureAxisState,
9
13
  ScrollGestureState,
14
+ ScrollMetadataState,
10
15
  } from "../../../types/gesture.types";
11
16
 
12
17
  const SCROLL_MEASUREMENT_EPSILON = 1;
13
18
 
14
- const getOverscrollDelta = (axisState: ScrollGestureAxisState): number => {
19
+ export type ScrollMeasuredDimensions = MeasuredDimensions & {
20
+ scroll?: ScrollMetadataState | null;
21
+ };
22
+
23
+ const getOverscrollDelta = (
24
+ axisState: ScrollGestureAxisState | null | undefined,
25
+ ): number => {
15
26
  "worklet";
16
- const maxOffset = Math.max(0, axisState.contentSize - axisState.layoutSize);
17
- const clampedOffset = Math.min(Math.max(axisState.offset, 0), maxOffset);
27
+ const clampedOffset = clampScrollAxisOffset(axisState);
28
+ if (!axisState || clampedOffset === null) {
29
+ return 0;
30
+ }
31
+
18
32
  const delta = axisState.offset - clampedOffset;
19
33
 
20
34
  return Math.abs(delta) > SCROLL_MEASUREMENT_EPSILON ? delta : 0;
@@ -22,7 +36,7 @@ const getOverscrollDelta = (axisState: ScrollGestureAxisState): number => {
22
36
 
23
37
  export const adjustedMeasuredBoundsForOverscrollDeltas = (
24
38
  measured: MeasuredDimensions,
25
- scrollState: ScrollGestureState | null,
39
+ scrollState: ScrollGestureState | ScrollMetadataState | null,
26
40
  ): MeasuredDimensions => {
27
41
  "worklet";
28
42
 
@@ -46,18 +60,15 @@ export const adjustedMeasuredBoundsForOverscrollDeltas = (
46
60
  };
47
61
  };
48
62
 
49
- export const applyVisibilityBlockOffset = (
63
+ export const normalizeMeasuredBoundsToOrigin = (
50
64
  measured: MeasuredDimensions,
51
- offset: number,
65
+ origin: MeasuredDimensions,
52
66
  ): MeasuredDimensions => {
53
67
  "worklet";
54
- if (offset === 0) {
55
- return measured;
56
- }
57
-
58
68
  return {
59
69
  ...measured,
60
- pageY: measured.pageY - offset,
70
+ pageX: measured.pageX - origin.pageX,
71
+ pageY: measured.pageY - origin.pageY,
61
72
  };
62
73
  };
63
74
 
@@ -95,3 +106,15 @@ export const measureWithOverscrollAwareness = (
95
106
 
96
107
  return adjustedMeasuredBoundsForOverscrollDeltas(measured, scrollState);
97
108
  };
109
+
110
+ export const attachScrollSnapshotToMeasuredBounds = (
111
+ measured: MeasuredDimensions,
112
+ scroll: ScrollMetadataState | null | undefined,
113
+ ): ScrollMeasuredDimensions => {
114
+ "worklet";
115
+
116
+ return {
117
+ ...measured,
118
+ scroll: cloneScrollMetadataState(scroll),
119
+ };
120
+ };
@@ -0,0 +1,175 @@
1
+ import type {
2
+ LinkPairsState,
3
+ ScreenPairKey,
4
+ } from "../../../stores/bounds/types";
5
+ import type { MeasureTarget } from "../types";
6
+
7
+ const SOURCE_SIGNAL_PREFIX = "source|";
8
+ const DESTINATION_SIGNAL_PREFIX = "destination|";
9
+
10
+ type RefreshBoundarySignal = MeasureTarget & {
11
+ signal: string;
12
+ };
13
+
14
+ const buildRefreshSignal = (
15
+ type: MeasureTarget["type"],
16
+ pairKey: ScreenPairKey,
17
+ key: string,
18
+ ): RefreshBoundarySignal => {
19
+ "worklet";
20
+ const prefix =
21
+ type === "source" ? SOURCE_SIGNAL_PREFIX : DESTINATION_SIGNAL_PREFIX;
22
+ return {
23
+ type,
24
+ pairKey,
25
+ signal: `${prefix}${pairKey}|${key}`,
26
+ };
27
+ };
28
+
29
+ const isMatchedScreenPortalDestinationRefresh = (
30
+ linkState: LinkPairsState | undefined,
31
+ pairKey: ScreenPairKey,
32
+ linkId: string,
33
+ ) => {
34
+ "worklet";
35
+
36
+ return (
37
+ linkState?.[pairKey]?.links?.[linkId]?.source?.portalAttachTarget ===
38
+ "matched-screen"
39
+ );
40
+ };
41
+
42
+ export const getRefreshBoundarySignal = (params: {
43
+ enabled: boolean;
44
+ currentScreenKey: string;
45
+ sourcePairKey?: ScreenPairKey;
46
+ destinationPairKey?: ScreenPairKey;
47
+ ancestorDestinationPairKey?: ScreenPairKey;
48
+ nextScreenKey?: string;
49
+ linkId: string;
50
+ group?: string;
51
+ shouldRefresh: boolean;
52
+ closing: boolean;
53
+ entering: boolean;
54
+ animating: boolean;
55
+ progress: number;
56
+ linkState?: LinkPairsState;
57
+ }): RefreshBoundarySignal | null => {
58
+ "worklet";
59
+ const {
60
+ enabled,
61
+ currentScreenKey,
62
+ sourcePairKey,
63
+ destinationPairKey,
64
+ ancestorDestinationPairKey,
65
+ nextScreenKey,
66
+ linkId,
67
+ group,
68
+ shouldRefresh,
69
+ closing,
70
+ entering,
71
+ animating,
72
+ progress,
73
+ linkState,
74
+ } = params;
75
+
76
+ if (!enabled) return null;
77
+
78
+ const canRefreshPreCloseDestination =
79
+ shouldRefresh && closing && !entering && !animating && progress >= 1;
80
+
81
+ const canRefreshSettledDestination = shouldRefresh && !closing && !entering;
82
+
83
+ // Guards:
84
+ // 1) A user may dismiss via back button, in this case, we should remeasure.
85
+ // 2) If a user drags during entering/closing animations we should NOT remeasure.
86
+ if (!canRefreshPreCloseDestination && !canRefreshSettledDestination) {
87
+ return null;
88
+ }
89
+
90
+ // Non group:
91
+ // Since in typical group flows we would need to know the src, we don't need to do that for
92
+ // single a->b flows. So we just trigger the destination refresh.
93
+ if (!group) {
94
+ const refreshDestinationPairKey =
95
+ destinationPairKey ??
96
+ (nextScreenKey ? undefined : ancestorDestinationPairKey);
97
+
98
+ if (!refreshDestinationPairKey) {
99
+ return null;
100
+ }
101
+
102
+ // NOTE:
103
+ // Matched-screen portals use the destination as the initial host/anchor.
104
+ // Once attached, the teleported source is the thing being animated, so a
105
+ // fresh destination measure would mix in a second coordinate basis. Signals were introduced for scroll view cases + group
106
+ // cases, but I can't find a case for where a live component ( matched-screen ) would need this complexity. I would just assume
107
+ // you would want this for a->b | b->a transitions.
108
+ if (
109
+ isMatchedScreenPortalDestinationRefresh(
110
+ linkState,
111
+ refreshDestinationPairKey,
112
+ linkId,
113
+ )
114
+ ) {
115
+ return null;
116
+ }
117
+
118
+ return buildRefreshSignal(
119
+ "destination",
120
+ refreshDestinationPairKey,
121
+ [currentScreenKey, closing ? "closing" : "settled"].join("|"),
122
+ );
123
+ }
124
+
125
+ // Source side:
126
+ // When the activeId changes, trigger a refresh to ensure the source bounds are captured.
127
+ if (sourcePairKey) {
128
+ const activeId = linkState?.[sourcePairKey]?.groups?.[group]?.activeId;
129
+
130
+ if (activeId !== linkId) {
131
+ return null;
132
+ }
133
+
134
+ return buildRefreshSignal(
135
+ "source",
136
+ sourcePairKey,
137
+ [group, linkId, closing ? "closing" : "settled"].join("|"),
138
+ );
139
+ }
140
+
141
+ const refreshDestinationPairKey =
142
+ destinationPairKey ??
143
+ (nextScreenKey ? undefined : ancestorDestinationPairKey);
144
+
145
+ if (!refreshDestinationPairKey) return null;
146
+
147
+ // Destination side:
148
+ // When the activeId changes, trigger a refresh to ensure the destination bounds are captured.
149
+ const activeId =
150
+ linkState?.[refreshDestinationPairKey]?.groups?.[group]?.activeId;
151
+
152
+ // Destination retargeting should only measure a concrete member that already
153
+ // participates in the pair. Missing members fall back to initialId at resolve.
154
+ if (activeId !== linkId) {
155
+ return null;
156
+ }
157
+
158
+ // NOTE:
159
+ // see above for explanation
160
+ if (
161
+ isMatchedScreenPortalDestinationRefresh(
162
+ linkState,
163
+ refreshDestinationPairKey,
164
+ linkId,
165
+ )
166
+ ) {
167
+ return null;
168
+ }
169
+
170
+ return buildRefreshSignal(
171
+ "destination",
172
+ refreshDestinationPairKey,
173
+ [group, linkId, closing ? "closing" : "settled"].join("|"),
174
+ );
175
+ };
@@ -0,0 +1,63 @@
1
+ import type {
2
+ LinkPairsState,
3
+ ScreenPairKey,
4
+ } from "../../../stores/bounds/types";
5
+
6
+ const SOURCE_SIGNAL_PREFIX = "source|";
7
+
8
+ type SourceCaptureSignal = {
9
+ pairKey: ScreenPairKey;
10
+ signal: string;
11
+ };
12
+
13
+ export const getInitialSourceCaptureSignal = (params: {
14
+ enabled: boolean;
15
+ sourcePairKey?: ScreenPairKey;
16
+ linkId: string;
17
+ group?: string;
18
+ shouldAutoMeasure: boolean;
19
+ linkState?: LinkPairsState;
20
+ }): SourceCaptureSignal | null => {
21
+ "worklet";
22
+ const {
23
+ enabled,
24
+ sourcePairKey,
25
+ linkId,
26
+ group,
27
+ shouldAutoMeasure,
28
+ linkState,
29
+ } = params;
30
+
31
+ if (!enabled || !sourcePairKey) {
32
+ return null;
33
+ }
34
+
35
+ // Trigger components capture on press. Passive Boundary.View sources wait for
36
+ // their destination side to attach, then capture into the same assigned pair.
37
+ if (!shouldAutoMeasure) {
38
+ return null;
39
+ }
40
+
41
+ const link = linkState?.[sourcePairKey]?.links?.[linkId];
42
+
43
+ if (!link?.destination || link.source) {
44
+ return null;
45
+ }
46
+
47
+ if (group) {
48
+ const activeId = linkState?.[sourcePairKey]?.groups?.[group]?.activeId;
49
+
50
+ // Passive grouped sources should not measure every mounted item. Once a
51
+ // group has an active id, only that concrete member can auto-capture.
52
+ if (activeId && activeId !== linkId) {
53
+ return null;
54
+ }
55
+ }
56
+
57
+ const signalParts = group ? [group, linkId] : [linkId];
58
+
59
+ return {
60
+ pairKey: sourcePairKey,
61
+ signal: `${SOURCE_SIGNAL_PREFIX}${sourcePairKey}|${signalParts.join("|")}`,
62
+ };
63
+ };
@@ -43,6 +43,8 @@ export function createTransitionAwareComponent<P extends object>(
43
43
  onScroll: userOnScroll,
44
44
  onMomentumScrollEnd: userOnMomentumScrollEnd,
45
45
  onScrollEndDrag: userOnScrollEndDrag,
46
+ children,
47
+ contentContainerStyle,
46
48
  ...scrollableProps
47
49
  } = props;
48
50
 
@@ -69,11 +71,11 @@ export function createTransitionAwareComponent<P extends object>(
69
71
  scrollHandler,
70
72
  userOnScroll ?? null,
71
73
  ]);
72
-
73
74
  const scrollableComponent = (
74
75
  <AnimatedComponent
75
76
  {...(scrollableProps as any)}
76
77
  ref={ref}
78
+ contentContainerStyle={contentContainerStyle}
77
79
  /**
78
80
  * Keep the scroll listener detached while the owning gesture screen is
79
81
  * closing. On iOS, a bounced ScrollView can keep sending native scroll
@@ -90,7 +92,9 @@ export function createTransitionAwareComponent<P extends object>(
90
92
  ? scrollableProps.scrollEventThrottle || 16
91
93
  : undefined
92
94
  }
93
- />
95
+ >
96
+ {children}
97
+ </AnimatedComponent>
94
98
  );
95
99
 
96
100
  const coordinatedScrollableComponent = nativeGesture ? (
@@ -119,6 +123,7 @@ export function createTransitionAwareComponent<P extends object>(
119
123
  styleId,
120
124
  onPress,
121
125
  remeasureOnFocus,
126
+ animatedProps: userAnimatedProps,
122
127
  ...rest
123
128
  } = props as any;
124
129
 
@@ -159,7 +164,7 @@ export function createTransitionAwareComponent<P extends object>(
159
164
  {...(rest as any)}
160
165
  ref={animatedRef}
161
166
  style={[style, associatedStyles]}
162
- animatedProps={associatedProps}
167
+ animatedProps={userAnimatedProps ?? associatedProps}
163
168
  onPress={captureActiveOnPress}
164
169
  onLayout={runOnUI(handleInitialLayout)}
165
170
  collapsable={!sharedBoundTag}
@@ -1,6 +1,6 @@
1
1
  import { type StyleProp, StyleSheet, View, type ViewStyle } from "react-native";
2
- import { CONTAINER_STYLE_ID, MASK_STYLE_ID } from "../../constants";
3
- import { createTransitionAwareComponent } from "../create-transition-aware-component";
2
+ import { CONTAINER_STYLE_ID, MASK_STYLE_ID } from "../constants";
3
+ import { createTransitionAwareComponent } from "./create-transition-aware-component";
4
4
 
5
5
  const TransitionView = createTransitionAwareComponent(View);
6
6
 
@@ -9,7 +9,9 @@ import Animated, {
9
9
  import { NO_PROPS, NO_STYLES } from "../../../constants";
10
10
  import { useDescriptors } from "../../../providers/screen/descriptors";
11
11
  import { useGestureContext } from "../../../providers/screen/gestures";
12
+ import { OriginProvider } from "../../../providers/screen/origin.provider";
12
13
  import { useScreenStyles } from "../../../providers/screen/styles";
14
+ import { ScreenFallbackHost } from "../../boundary/portal/components/host";
13
15
  import { useContentLayout } from "../hooks/use-content-layout";
14
16
  import { MaybeMaskedNavigationContainer } from "./maybe-masked-navigation-container";
15
17
  import { SurfaceContainer } from "./surface-container";
@@ -56,13 +58,16 @@ export const ContentLayer = memo(
56
58
  enabled={isNavigationMaskEnabled}
57
59
  >
58
60
  <SurfaceContainer pointerEvents={contentPointerEvents}>
59
- {hasAutoSnapPoint ? (
60
- <View collapsable={false} onLayout={handleContentLayout}>
61
- {children}
62
- </View>
63
- ) : (
64
- children
65
- )}
61
+ <OriginProvider>
62
+ {hasAutoSnapPoint ? (
63
+ <View collapsable={false} onLayout={handleContentLayout}>
64
+ {children}
65
+ </View>
66
+ ) : (
67
+ children
68
+ )}
69
+ <ScreenFallbackHost />
70
+ </OriginProvider>
66
71
  </SurfaceContainer>
67
72
  </MaybeMaskedNavigationContainer>
68
73
  </Animated.View>