react-native-screen-transitions 3.9.0-beta.1 → 3.9.0-beta.3

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 (479) hide show
  1. package/lib/commonjs/shared/adapters/with-screen-transitions/index.js +20 -4
  2. package/lib/commonjs/shared/adapters/with-screen-transitions/index.js.map +1 -1
  3. package/lib/commonjs/shared/animation/transition-blocking.js +71 -0
  4. package/lib/commonjs/shared/animation/transition-blocking.js.map +1 -0
  5. package/lib/commonjs/shared/components/boundary/components/boundary-target.js +33 -28
  6. package/lib/commonjs/shared/components/boundary/components/boundary-target.js.map +1 -1
  7. package/lib/commonjs/shared/components/boundary/create-boundary-component.js +30 -95
  8. package/lib/commonjs/shared/components/boundary/create-boundary-component.js.map +1 -1
  9. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +75 -51
  10. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
  11. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js +1 -0
  12. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  13. package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js +14 -2
  14. package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js.map +1 -1
  15. package/lib/commonjs/shared/components/boundary/hooks/use-register-target.js +32 -0
  16. package/lib/commonjs/shared/components/boundary/hooks/use-register-target.js.map +1 -0
  17. package/lib/commonjs/shared/components/boundary/index.js +1 -1
  18. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/components/host.js +41 -0
  19. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/components/host.js.map +1 -0
  20. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.js +14 -0
  21. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.js.map +1 -0
  22. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +224 -0
  23. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -0
  24. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/index.js +45 -0
  25. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/index.js.map +1 -0
  26. package/lib/commonjs/shared/components/boundary/portal/components/{host.js → boundary-portal/components/host.js} +20 -18
  27. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -0
  28. package/lib/commonjs/shared/components/boundary/portal/components/{portal-boundary-host.js → boundary-portal/components/portal-boundary-host.js} +13 -12
  29. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -0
  30. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js +51 -0
  31. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js.map +1 -0
  32. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js.map +1 -0
  33. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.js +14 -0
  34. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.js.map +1 -0
  35. package/lib/commonjs/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/offset-style.js +1 -1
  36. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.js.map +1 -0
  37. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +185 -0
  38. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -0
  39. package/lib/commonjs/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-host-measurement.js +23 -5
  40. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -0
  41. package/lib/commonjs/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-placeholder-styles.js +3 -6
  42. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.js.map +1 -0
  43. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/index.js +31 -0
  44. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/index.js.map +1 -0
  45. package/lib/commonjs/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-bounds.store.js +1 -1
  46. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.js.map +1 -0
  47. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.js.map +1 -0
  48. package/lib/commonjs/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/portal-boundary-host.store.js +7 -12
  49. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -0
  50. package/lib/commonjs/shared/components/boundary/portal/index.js +1 -8
  51. package/lib/commonjs/shared/components/boundary/portal/index.js.map +1 -1
  52. package/lib/commonjs/shared/components/boundary/portal/teleport.js +4 -3
  53. package/lib/commonjs/shared/components/boundary/portal/teleport.js.map +1 -1
  54. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js +1 -15
  55. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js.map +1 -1
  56. package/lib/commonjs/shared/components/boundary/portal/utils/ownership.js +19 -56
  57. package/lib/commonjs/shared/components/boundary/portal/utils/ownership.js.map +1 -1
  58. package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js +90 -23
  59. package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
  60. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js +41 -12
  61. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js.map +1 -1
  62. package/lib/commonjs/shared/components/boundary/utils/measured-bounds.js +36 -1
  63. package/lib/commonjs/shared/components/boundary/utils/measured-bounds.js.map +1 -1
  64. package/lib/commonjs/shared/components/screen-container/layers/content.js +1 -1
  65. package/lib/commonjs/shared/configs/presets.js +2 -2
  66. package/lib/commonjs/shared/configs/presets.js.map +1 -1
  67. package/lib/commonjs/shared/constants.js +4 -0
  68. package/lib/commonjs/shared/constants.js.map +1 -1
  69. package/lib/commonjs/shared/index.js +13 -0
  70. package/lib/commonjs/shared/index.js.map +1 -1
  71. package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js +4 -0
  72. package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
  73. package/lib/commonjs/shared/providers/screen/gestures/pan/activation/use-pan-activation.js +10 -10
  74. package/lib/commonjs/shared/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
  75. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js +10 -2
  76. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js.map +1 -1
  77. package/lib/commonjs/shared/providers/screen/gestures/pan/use-build-pan-gesture.js +1 -1
  78. package/lib/commonjs/shared/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
  79. package/lib/commonjs/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js +25 -3
  80. package/lib/commonjs/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js.map +1 -1
  81. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +4 -6
  82. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  83. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js +2 -2
  84. package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js.map +1 -1
  85. package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +6 -1
  86. package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
  87. package/lib/commonjs/shared/providers/screen/gestures/shared/snapshot.js +2 -0
  88. package/lib/commonjs/shared/providers/screen/gestures/shared/snapshot.js.map +1 -1
  89. package/lib/commonjs/shared/providers/screen/gestures/shared/values.js +2 -0
  90. package/lib/commonjs/shared/providers/screen/gestures/shared/values.js.map +1 -1
  91. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +13 -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/slot.provider.js +5 -3
  94. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js.map +1 -1
  95. package/lib/commonjs/shared/providers/screen/styles/stores/slot-references.store.js +1 -1
  96. package/lib/commonjs/shared/providers/screen/styles/stores/slot-references.store.js.map +1 -1
  97. package/lib/commonjs/shared/stores/gesture.store.js +8 -0
  98. package/lib/commonjs/shared/stores/gesture.store.js.map +1 -1
  99. package/lib/commonjs/shared/stores/system.store.js +10 -2
  100. package/lib/commonjs/shared/stores/system.store.js.map +1 -1
  101. package/lib/commonjs/shared/utils/animation/animate-to-progress.js +24 -7
  102. package/lib/commonjs/shared/utils/animation/animate-to-progress.js.map +1 -1
  103. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js +15 -9
  104. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  105. package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js +2 -2
  106. package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
  107. package/lib/commonjs/shared/utils/bounds/navigation/reveal/math.js +2 -1
  108. package/lib/commonjs/shared/utils/bounds/navigation/reveal/math.js.map +1 -1
  109. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js +178 -315
  110. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  111. package/lib/commonjs/shared/utils/bounds/navigation/zoom/config.js +12 -18
  112. package/lib/commonjs/shared/utils/bounds/navigation/zoom/config.js.map +1 -1
  113. package/lib/commonjs/shared/utils/bounds/navigation/zoom/drag.js +196 -0
  114. package/lib/commonjs/shared/utils/bounds/navigation/zoom/drag.js.map +1 -0
  115. package/lib/commonjs/shared/utils/bounds/navigation/zoom/helpers.js +94 -108
  116. package/lib/commonjs/shared/utils/bounds/navigation/zoom/helpers.js.map +1 -1
  117. package/lib/commonjs/shared/utils/bounds/navigation/zoom/mask.js +72 -0
  118. package/lib/commonjs/shared/utils/bounds/navigation/zoom/mask.js.map +1 -0
  119. package/lib/commonjs/shared/utils/bounds/navigation/zoom/targets.js +55 -0
  120. package/lib/commonjs/shared/utils/bounds/navigation/zoom/targets.js.map +1 -0
  121. package/lib/module/shared/adapters/with-screen-transitions/index.js +19 -5
  122. package/lib/module/shared/adapters/with-screen-transitions/index.js.map +1 -1
  123. package/lib/module/shared/animation/transition-blocking.js +66 -0
  124. package/lib/module/shared/animation/transition-blocking.js.map +1 -0
  125. package/lib/module/shared/components/boundary/components/boundary-target.js +35 -30
  126. package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -1
  127. package/lib/module/shared/components/boundary/create-boundary-component.js +32 -97
  128. package/lib/module/shared/components/boundary/create-boundary-component.js.map +1 -1
  129. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +79 -55
  130. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
  131. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js +1 -0
  132. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  133. package/lib/module/shared/components/boundary/hooks/use-measurer.js +15 -3
  134. package/lib/module/shared/components/boundary/hooks/use-measurer.js.map +1 -1
  135. package/lib/module/shared/components/boundary/hooks/use-register-target.js +27 -0
  136. package/lib/module/shared/components/boundary/hooks/use-register-target.js.map +1 -0
  137. package/lib/module/shared/components/boundary/index.js +1 -1
  138. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/components/host.js +36 -0
  139. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/components/host.js.map +1 -0
  140. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.js +9 -0
  141. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.js.map +1 -0
  142. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +219 -0
  143. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -0
  144. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/index.js +34 -0
  145. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/index.js.map +1 -0
  146. package/lib/module/shared/components/boundary/portal/components/{host.js → boundary-portal/components/host.js} +20 -18
  147. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -0
  148. package/lib/module/shared/components/boundary/portal/components/{portal-boundary-host.js → boundary-portal/components/portal-boundary-host.js} +13 -12
  149. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -0
  150. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js +46 -0
  151. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.js.map +1 -0
  152. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js.map +1 -0
  153. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.js +9 -0
  154. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.js.map +1 -0
  155. package/lib/module/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/offset-style.js +1 -1
  156. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.js.map +1 -0
  157. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +180 -0
  158. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -0
  159. package/lib/module/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-host-measurement.js +23 -5
  160. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -0
  161. package/lib/module/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-placeholder-styles.js +3 -6
  162. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.js.map +1 -0
  163. package/lib/module/shared/components/boundary/portal/components/boundary-portal/index.js +27 -0
  164. package/lib/module/shared/components/boundary/portal/components/boundary-portal/index.js.map +1 -0
  165. package/lib/module/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-bounds.store.js +1 -1
  166. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.js.map +1 -0
  167. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.js.map +1 -0
  168. package/lib/module/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/portal-boundary-host.store.js +5 -10
  169. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -0
  170. package/lib/module/shared/components/boundary/portal/index.js +1 -2
  171. package/lib/module/shared/components/boundary/portal/index.js.map +1 -1
  172. package/lib/module/shared/components/boundary/portal/teleport.js +3 -2
  173. package/lib/module/shared/components/boundary/portal/teleport.js.map +1 -1
  174. package/lib/module/shared/components/boundary/portal/utils/naming.js +0 -12
  175. package/lib/module/shared/components/boundary/portal/utils/naming.js.map +1 -1
  176. package/lib/module/shared/components/boundary/portal/utils/ownership.js +16 -52
  177. package/lib/module/shared/components/boundary/portal/utils/ownership.js.map +1 -1
  178. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js +87 -20
  179. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
  180. package/lib/module/shared/components/boundary/utils/destination-signals.js +39 -10
  181. package/lib/module/shared/components/boundary/utils/destination-signals.js.map +1 -1
  182. package/lib/module/shared/components/boundary/utils/measured-bounds.js +34 -0
  183. package/lib/module/shared/components/boundary/utils/measured-bounds.js.map +1 -1
  184. package/lib/module/shared/components/screen-container/layers/content.js +1 -1
  185. package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
  186. package/lib/module/shared/configs/presets.js +2 -2
  187. package/lib/module/shared/configs/presets.js.map +1 -1
  188. package/lib/module/shared/constants.js +4 -0
  189. package/lib/module/shared/constants.js.map +1 -1
  190. package/lib/module/shared/index.js +1 -0
  191. package/lib/module/shared/index.js.map +1 -1
  192. package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js +4 -0
  193. package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
  194. package/lib/module/shared/providers/screen/gestures/pan/activation/use-pan-activation.js +10 -10
  195. package/lib/module/shared/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
  196. package/lib/module/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js +10 -2
  197. package/lib/module/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js.map +1 -1
  198. package/lib/module/shared/providers/screen/gestures/pan/use-build-pan-gesture.js +1 -1
  199. package/lib/module/shared/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
  200. package/lib/module/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js +23 -2
  201. package/lib/module/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js.map +1 -1
  202. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +4 -6
  203. package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  204. package/lib/module/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js +2 -2
  205. package/lib/module/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js.map +1 -1
  206. package/lib/module/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +6 -1
  207. package/lib/module/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
  208. package/lib/module/shared/providers/screen/gestures/shared/snapshot.js +2 -0
  209. package/lib/module/shared/providers/screen/gestures/shared/snapshot.js.map +1 -1
  210. package/lib/module/shared/providers/screen/gestures/shared/values.js +2 -0
  211. package/lib/module/shared/providers/screen/gestures/shared/values.js.map +1 -1
  212. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +13 -1
  213. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  214. package/lib/module/shared/providers/screen/styles/slot.provider.js +5 -3
  215. package/lib/module/shared/providers/screen/styles/slot.provider.js.map +1 -1
  216. package/lib/module/shared/providers/screen/styles/stores/slot-references.store.js +1 -1
  217. package/lib/module/shared/providers/screen/styles/stores/slot-references.store.js.map +1 -1
  218. package/lib/module/shared/stores/gesture.store.js +8 -0
  219. package/lib/module/shared/stores/gesture.store.js.map +1 -1
  220. package/lib/module/shared/stores/system.store.js +10 -2
  221. package/lib/module/shared/stores/system.store.js.map +1 -1
  222. package/lib/module/shared/types/bounds.types.js +26 -0
  223. package/lib/module/shared/types/bounds.types.js.map +1 -1
  224. package/lib/module/shared/utils/animation/animate-to-progress.js +24 -7
  225. package/lib/module/shared/utils/animation/animate-to-progress.js.map +1 -1
  226. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js +15 -9
  227. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  228. package/lib/module/shared/utils/bounds/navigation/reveal/build.js +2 -2
  229. package/lib/module/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
  230. package/lib/module/shared/utils/bounds/navigation/reveal/math.js +2 -1
  231. package/lib/module/shared/utils/bounds/navigation/reveal/math.js.map +1 -1
  232. package/lib/module/shared/utils/bounds/navigation/zoom/build.js +182 -319
  233. package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  234. package/lib/module/shared/utils/bounds/navigation/zoom/config.js +11 -17
  235. package/lib/module/shared/utils/bounds/navigation/zoom/config.js.map +1 -1
  236. package/lib/module/shared/utils/bounds/navigation/zoom/drag.js +184 -0
  237. package/lib/module/shared/utils/bounds/navigation/zoom/drag.js.map +1 -0
  238. package/lib/module/shared/utils/bounds/navigation/zoom/helpers.js +91 -102
  239. package/lib/module/shared/utils/bounds/navigation/zoom/helpers.js.map +1 -1
  240. package/lib/module/shared/utils/bounds/navigation/zoom/mask.js +67 -0
  241. package/lib/module/shared/utils/bounds/navigation/zoom/mask.js.map +1 -0
  242. package/lib/module/shared/utils/bounds/navigation/zoom/targets.js +50 -0
  243. package/lib/module/shared/utils/bounds/navigation/zoom/targets.js.map +1 -0
  244. package/lib/typescript/shared/adapters/with-screen-transitions/index.d.ts +4 -1
  245. package/lib/typescript/shared/adapters/with-screen-transitions/index.d.ts.map +1 -1
  246. package/lib/typescript/shared/animation/transition-blocking.d.ts +33 -0
  247. package/lib/typescript/shared/animation/transition-blocking.d.ts.map +1 -0
  248. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts +3 -1
  249. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts.map +1 -1
  250. package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts.map +1 -1
  251. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts +2 -1
  252. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts.map +1 -1
  253. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts.map +1 -1
  254. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts.map +1 -1
  255. package/lib/typescript/shared/components/boundary/hooks/use-register-target.d.ts +10 -0
  256. package/lib/typescript/shared/components/boundary/hooks/use-register-target.d.ts.map +1 -0
  257. package/lib/typescript/shared/components/boundary/index.d.ts +2 -2
  258. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/components/host.d.ts +10 -0
  259. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/components/host.d.ts.map +1 -0
  260. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.d.ts +2 -0
  261. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.d.ts.map +1 -0
  262. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts +12 -0
  263. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts.map +1 -0
  264. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/index.d.ts +9 -0
  265. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/index.d.ts.map +1 -0
  266. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/host.d.ts.map +1 -0
  267. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.d.ts.map +1 -0
  268. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.d.ts +13 -0
  269. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.d.ts.map +1 -0
  270. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.d.ts +3 -0
  271. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.d.ts.map +1 -0
  272. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.d.ts +2 -0
  273. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.d.ts.map +1 -0
  274. package/lib/typescript/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/offset-style.d.ts +1 -1
  275. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/offset-style.d.ts.map +1 -0
  276. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts +12 -0
  277. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -0
  278. package/lib/typescript/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-host-measurement.d.ts +5 -1
  279. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts.map +1 -0
  280. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.d.ts +12 -0
  281. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.d.ts.map +1 -0
  282. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/index.d.ts +12 -0
  283. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/index.d.ts.map +1 -0
  284. package/lib/typescript/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-bounds.store.d.ts +1 -1
  285. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.d.ts.map +1 -0
  286. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/host-registry.store.d.ts.map +1 -0
  287. package/lib/typescript/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/portal-boundary-host.store.d.ts +3 -3
  288. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts.map +1 -0
  289. package/lib/typescript/shared/components/boundary/portal/index.d.ts +1 -2
  290. package/lib/typescript/shared/components/boundary/portal/index.d.ts.map +1 -1
  291. package/lib/typescript/shared/components/boundary/portal/teleport.d.ts +1 -0
  292. package/lib/typescript/shared/components/boundary/portal/teleport.d.ts.map +1 -1
  293. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts +0 -2
  294. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts.map +1 -1
  295. package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts +9 -10
  296. package/lib/typescript/shared/components/boundary/portal/utils/ownership.d.ts.map +1 -1
  297. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts +22 -21
  298. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
  299. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts +9 -2
  300. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts.map +1 -1
  301. package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts +8 -0
  302. package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts.map +1 -1
  303. package/lib/typescript/shared/constants.d.ts.map +1 -1
  304. package/lib/typescript/shared/index.d.ts +2 -1
  305. package/lib/typescript/shared/index.d.ts.map +1 -1
  306. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/index.d.ts.map +1 -1
  307. package/lib/typescript/shared/providers/screen/gestures/pan/activation/use-pan-activation.d.ts +2 -0
  308. package/lib/typescript/shared/providers/screen/gestures/pan/activation/use-pan-activation.d.ts.map +1 -1
  309. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.d.ts +2 -1
  310. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.d.ts.map +1 -1
  311. package/lib/typescript/shared/providers/screen/gestures/pan/use-build-pan-gesture.d.ts.map +1 -1
  312. package/lib/typescript/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.d.ts +2 -0
  313. package/lib/typescript/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.d.ts.map +1 -1
  314. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.d.ts +1 -1
  315. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.d.ts.map +1 -1
  316. package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.d.ts.map +1 -1
  317. package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.d.ts.map +1 -1
  318. package/lib/typescript/shared/providers/screen/gestures/shared/snapshot.d.ts.map +1 -1
  319. package/lib/typescript/shared/providers/screen/gestures/shared/values.d.ts.map +1 -1
  320. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +5 -0
  321. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  322. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts +1 -0
  323. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts.map +1 -1
  324. package/lib/typescript/shared/providers/screen/styles/stores/slot-references.store.d.ts.map +1 -1
  325. package/lib/typescript/shared/stores/gesture.store.d.ts +4 -0
  326. package/lib/typescript/shared/stores/gesture.store.d.ts.map +1 -1
  327. package/lib/typescript/shared/stores/system.store.d.ts.map +1 -1
  328. package/lib/typescript/shared/types/animation.types.d.ts +3 -3
  329. package/lib/typescript/shared/types/bounds.types.d.ts +122 -90
  330. package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
  331. package/lib/typescript/shared/types/gesture.types.d.ts +10 -0
  332. package/lib/typescript/shared/types/gesture.types.d.ts.map +1 -1
  333. package/lib/typescript/shared/types/index.d.ts +1 -1
  334. package/lib/typescript/shared/types/index.d.ts.map +1 -1
  335. package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts.map +1 -1
  336. package/lib/typescript/shared/utils/bounds/helpers/create-bounds-accessor-core.d.ts.map +1 -1
  337. package/lib/typescript/shared/utils/bounds/navigation/reveal/math.d.ts.map +1 -1
  338. package/lib/typescript/shared/utils/bounds/navigation/zoom/build.d.ts +1 -1
  339. package/lib/typescript/shared/utils/bounds/navigation/zoom/build.d.ts.map +1 -1
  340. package/lib/typescript/shared/utils/bounds/navigation/zoom/config.d.ts +7 -17
  341. package/lib/typescript/shared/utils/bounds/navigation/zoom/config.d.ts.map +1 -1
  342. package/lib/typescript/shared/utils/bounds/navigation/zoom/drag.d.ts +55 -0
  343. package/lib/typescript/shared/utils/bounds/navigation/zoom/drag.d.ts.map +1 -0
  344. package/lib/typescript/shared/utils/bounds/navigation/zoom/helpers.d.ts +31 -34
  345. package/lib/typescript/shared/utils/bounds/navigation/zoom/helpers.d.ts.map +1 -1
  346. package/lib/typescript/shared/utils/bounds/navigation/zoom/mask.d.ts +25 -0
  347. package/lib/typescript/shared/utils/bounds/navigation/zoom/mask.d.ts.map +1 -0
  348. package/lib/typescript/shared/utils/bounds/navigation/zoom/targets.d.ts +16 -0
  349. package/lib/typescript/shared/utils/bounds/navigation/zoom/targets.d.ts.map +1 -0
  350. package/lib/typescript/shared/utils/bounds/navigation/zoom/types.d.ts +1 -1
  351. package/lib/typescript/shared/utils/bounds/navigation/zoom/types.d.ts.map +1 -1
  352. package/lib/typescript/shared/utils/bounds/types/options.d.ts +6 -2
  353. package/lib/typescript/shared/utils/bounds/types/options.d.ts.map +1 -1
  354. package/package.json +1 -1
  355. package/src/shared/adapters/with-screen-transitions/index.tsx +30 -9
  356. package/src/shared/animation/transition-blocking.ts +79 -0
  357. package/src/shared/components/boundary/components/boundary-target.tsx +47 -43
  358. package/src/shared/components/boundary/create-boundary-component.tsx +35 -150
  359. package/src/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts +106 -81
  360. package/src/shared/components/boundary/hooks/use-boundary-measurement.ts +1 -0
  361. package/src/shared/components/boundary/hooks/use-measurer.ts +12 -4
  362. package/src/shared/components/boundary/hooks/use-register-target.ts +43 -0
  363. package/src/shared/components/boundary/index.tsx +2 -2
  364. package/src/shared/components/boundary/portal/components/boundary-content-portal/components/host.tsx +52 -0
  365. package/src/shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.ts +9 -0
  366. package/src/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts +317 -0
  367. package/src/shared/components/boundary/portal/components/boundary-content-portal/index.tsx +62 -0
  368. package/src/shared/components/boundary/portal/components/{host.tsx → boundary-portal/components/host.tsx} +17 -17
  369. package/src/shared/components/boundary/portal/components/{portal-boundary-host.tsx → boundary-portal/components/portal-boundary-host.tsx} +14 -13
  370. package/src/shared/components/boundary/portal/components/boundary-portal/components/portal-slot.tsx +79 -0
  371. package/src/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/has-local-slot.ts +1 -1
  372. package/src/shared/components/boundary/portal/components/boundary-portal/helpers/host-name.ts +10 -0
  373. package/src/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/offset-style.ts +2 -2
  374. package/src/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +254 -0
  375. package/src/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-host-measurement.ts +38 -8
  376. package/src/shared/components/boundary/portal/{hooks → components/boundary-portal/hooks}/use-placeholder-styles.ts +4 -15
  377. package/src/shared/components/boundary/portal/components/boundary-portal/index.tsx +35 -0
  378. package/src/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-bounds.store.ts +2 -2
  379. package/src/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/portal-boundary-host.store.ts +10 -15
  380. package/src/shared/components/boundary/portal/index.ts +1 -2
  381. package/src/shared/components/boundary/portal/teleport.ts +3 -2
  382. package/src/shared/components/boundary/portal/utils/naming.ts +0 -19
  383. package/src/shared/components/boundary/portal/utils/ownership.ts +32 -88
  384. package/src/shared/components/boundary/providers/boundary-root.provider.tsx +218 -78
  385. package/src/shared/components/boundary/utils/destination-signals.ts +38 -14
  386. package/src/shared/components/boundary/utils/measured-bounds.ts +48 -0
  387. package/src/shared/components/screen-container/layers/content.tsx +1 -1
  388. package/src/shared/configs/presets.ts +2 -2
  389. package/src/shared/constants.ts +4 -0
  390. package/src/shared/index.ts +6 -0
  391. package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/index.ts +8 -0
  392. package/src/shared/providers/screen/gestures/pan/activation/use-pan-activation.ts +16 -7
  393. package/src/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.ts +18 -1
  394. package/src/shared/providers/screen/gestures/pan/use-build-pan-gesture.ts +1 -0
  395. package/src/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.ts +40 -2
  396. package/src/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.ts +7 -11
  397. package/src/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.ts +12 -15
  398. package/src/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.ts +6 -1
  399. package/src/shared/providers/screen/gestures/shared/snapshot.ts +2 -0
  400. package/src/shared/providers/screen/gestures/shared/values.ts +2 -0
  401. package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +15 -1
  402. package/src/shared/providers/screen/styles/slot.provider.tsx +4 -2
  403. package/src/shared/providers/screen/styles/stores/slot-references.store.ts +2 -1
  404. package/src/shared/stores/gesture.store.ts +12 -0
  405. package/src/shared/stores/system.store.ts +10 -4
  406. package/src/shared/types/animation.types.ts +3 -3
  407. package/src/shared/types/bounds.types.ts +128 -92
  408. package/src/shared/types/gesture.types.ts +10 -0
  409. package/src/shared/types/index.ts +2 -0
  410. package/src/shared/utils/animation/animate-to-progress.ts +23 -7
  411. package/src/shared/utils/bounds/helpers/create-bounds-accessor-core.ts +18 -11
  412. package/src/shared/utils/bounds/navigation/reveal/build.ts +2 -2
  413. package/src/shared/utils/bounds/navigation/reveal/math.ts +2 -1
  414. package/src/shared/utils/bounds/navigation/zoom/build.ts +224 -412
  415. package/src/shared/utils/bounds/navigation/zoom/config.ts +15 -18
  416. package/src/shared/utils/bounds/navigation/zoom/drag.ts +327 -0
  417. package/src/shared/utils/bounds/navigation/zoom/helpers.ts +122 -184
  418. package/src/shared/utils/bounds/navigation/zoom/mask.ts +130 -0
  419. package/src/shared/utils/bounds/navigation/zoom/targets.ts +74 -0
  420. package/src/shared/utils/bounds/navigation/zoom/types.ts +1 -1
  421. package/src/shared/utils/bounds/types/options.ts +9 -2
  422. package/lib/commonjs/shared/components/boundary/portal/components/boundary-local-portal-host.js +0 -58
  423. package/lib/commonjs/shared/components/boundary/portal/components/boundary-local-portal-host.js.map +0 -1
  424. package/lib/commonjs/shared/components/boundary/portal/components/host.js.map +0 -1
  425. package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js.map +0 -1
  426. package/lib/commonjs/shared/components/boundary/portal/components/portal.js +0 -272
  427. package/lib/commonjs/shared/components/boundary/portal/components/portal.js.map +0 -1
  428. package/lib/commonjs/shared/components/boundary/portal/hooks/use-host-measurement.js.map +0 -1
  429. package/lib/commonjs/shared/components/boundary/portal/hooks/use-placeholder-styles.js.map +0 -1
  430. package/lib/commonjs/shared/components/boundary/portal/stores/host-bounds.store.js.map +0 -1
  431. package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js.map +0 -1
  432. package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +0 -1
  433. package/lib/commonjs/shared/components/boundary/portal/utils/has-local-slot.js.map +0 -1
  434. package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js.map +0 -1
  435. package/lib/commonjs/shared/utils/bounds/navigation/zoom/math.js +0 -25
  436. package/lib/commonjs/shared/utils/bounds/navigation/zoom/math.js.map +0 -1
  437. package/lib/module/shared/components/boundary/portal/components/boundary-local-portal-host.js +0 -53
  438. package/lib/module/shared/components/boundary/portal/components/boundary-local-portal-host.js.map +0 -1
  439. package/lib/module/shared/components/boundary/portal/components/host.js.map +0 -1
  440. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js.map +0 -1
  441. package/lib/module/shared/components/boundary/portal/components/portal.js +0 -267
  442. package/lib/module/shared/components/boundary/portal/components/portal.js.map +0 -1
  443. package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js.map +0 -1
  444. package/lib/module/shared/components/boundary/portal/hooks/use-placeholder-styles.js.map +0 -1
  445. package/lib/module/shared/components/boundary/portal/stores/host-bounds.store.js.map +0 -1
  446. package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js.map +0 -1
  447. package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +0 -1
  448. package/lib/module/shared/components/boundary/portal/utils/has-local-slot.js.map +0 -1
  449. package/lib/module/shared/components/boundary/portal/utils/offset-style.js.map +0 -1
  450. package/lib/module/shared/utils/bounds/navigation/zoom/math.js +0 -20
  451. package/lib/module/shared/utils/bounds/navigation/zoom/math.js.map +0 -1
  452. package/lib/typescript/shared/components/boundary/portal/components/boundary-local-portal-host.d.ts +0 -8
  453. package/lib/typescript/shared/components/boundary/portal/components/boundary-local-portal-host.d.ts.map +0 -1
  454. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts.map +0 -1
  455. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts.map +0 -1
  456. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts +0 -20
  457. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts.map +0 -1
  458. package/lib/typescript/shared/components/boundary/portal/hooks/use-host-measurement.d.ts.map +0 -1
  459. package/lib/typescript/shared/components/boundary/portal/hooks/use-placeholder-styles.d.ts +0 -17
  460. package/lib/typescript/shared/components/boundary/portal/hooks/use-placeholder-styles.d.ts.map +0 -1
  461. package/lib/typescript/shared/components/boundary/portal/stores/host-bounds.store.d.ts.map +0 -1
  462. package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts.map +0 -1
  463. package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts.map +0 -1
  464. package/lib/typescript/shared/components/boundary/portal/utils/has-local-slot.d.ts +0 -3
  465. package/lib/typescript/shared/components/boundary/portal/utils/has-local-slot.d.ts.map +0 -1
  466. package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts.map +0 -1
  467. package/lib/typescript/shared/utils/bounds/navigation/zoom/math.d.ts +0 -8
  468. package/lib/typescript/shared/utils/bounds/navigation/zoom/math.d.ts.map +0 -1
  469. package/src/shared/components/boundary/portal/components/boundary-local-portal-host.tsx +0 -66
  470. package/src/shared/components/boundary/portal/components/portal.tsx +0 -412
  471. package/src/shared/utils/bounds/navigation/zoom/math.ts +0 -25
  472. /package/lib/commonjs/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/has-local-slot.js +0 -0
  473. /package/lib/commonjs/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-registry.store.js +0 -0
  474. /package/lib/module/shared/components/boundary/portal/{utils → components/boundary-portal/helpers}/has-local-slot.js +0 -0
  475. /package/lib/module/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-registry.store.js +0 -0
  476. /package/lib/typescript/shared/components/boundary/portal/components/{host.d.ts → boundary-portal/components/host.d.ts} +0 -0
  477. /package/lib/typescript/shared/components/boundary/portal/components/{portal-boundary-host.d.ts → boundary-portal/components/portal-boundary-host.d.ts} +0 -0
  478. /package/lib/typescript/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-registry.store.d.ts +0 -0
  479. /package/src/shared/components/boundary/portal/{stores → components/boundary-portal/stores}/host-registry.store.ts +0 -0
@@ -1,26 +1,27 @@
1
1
  "use strict";
2
2
 
3
- import { cancelAnimation, useAnimatedReaction, useSharedValue, withDelay, withTiming } from "react-native-reanimated";
3
+ import { useCallback, useLayoutEffect } from "react";
4
+ import { cancelAnimation, runOnUI, useAnimatedReaction, useSharedValue, withDelay, withTiming } from "react-native-reanimated";
4
5
  import { useDescriptorsStore } from "../../../../providers/screen/descriptors";
5
6
  import { AnimationStore } from "../../../../stores/animation.store";
6
7
  import { getSourceScreenKeyFromPairKey } from "../../../../stores/bounds/helpers/link-pairs.helpers";
7
8
  import { getEntry } from "../../../../stores/bounds/internals/entries";
8
- import { getDestination, getLink } from "../../../../stores/bounds/internals/links";
9
+ import { getLink } from "../../../../stores/bounds/internals/links";
9
10
  import { pairs } from "../../../../stores/bounds/internals/state";
10
- import { LifecycleTransitionRequestKind, SystemStore } from "../../../../stores/system.store";
11
+ import { SystemStore } from "../../../../stores/system.store";
11
12
  import { logger } from "../../../../utils/logger";
12
- import { hasHandoffEscapeContinuation, usesEscapeClippingHost } from "../../portal/utils/ownership";
13
- import { getInitialDestinationMeasurePairKey } from "../../utils/destination-signals";
14
- const VIEWPORT_RETRY_DELAY_MS = 100;
13
+ import { getInitialDestinationMeasurementSignal } from "../../utils/destination-signals";
14
+ const HANDSHAKE_RETRY_DELAY_MS = 100;
15
15
  /**
16
- * A destination that keeps failing its measurement guards must not hold the
17
- * transition gate forever after this budget the block is released with a
18
- * warning so the open proceeds without that boundary.
16
+ * A destination whose initial handshake never completes must not hold the
17
+ * transition gate forever. After this budget, release the block with a warning
18
+ * so the open proceeds without that boundary.
19
19
  */
20
- const MAX_VIEWPORT_RETRIES = 20;
20
+ const MAX_HANDSHAKE_RETRIES = 20;
21
21
  export const useInitialDestinationMeasurement = ({
22
22
  boundTag,
23
23
  enabled,
24
+ escapeClipping,
24
25
  measureBoundary
25
26
  }) => {
26
27
  const {
@@ -33,9 +34,9 @@ export const useInitialDestinationMeasurement = ({
33
34
  const destinationPairKey = useDescriptorsStore(s => s.derivations.destinationPairKey);
34
35
  const ancestorDestinationPairKey = useDescriptorsStore(s => s.derivations.ancestorDestinationPairKey);
35
36
  const destinationEnabled = enabled && !nextScreenKey;
37
+ const initialDestinationPairKey = destinationPairKey ?? ancestorDestinationPairKey;
36
38
  const progress = AnimationStore.getValue(currentScreenKey, "transitionProgress");
37
39
  const {
38
- pendingLifecycleRequestKind,
39
40
  actions: {
40
41
  blockLifecycleStart,
41
42
  unblockLifecycleStart
@@ -43,93 +44,116 @@ export const useInitialDestinationMeasurement = ({
43
44
  } = SystemStore.getBag(currentScreenKey);
44
45
  const isBlockingLifecycleStart = useSharedValue(0);
45
46
  const retryToken = useSharedValue(0);
46
- const viewportRetries = useSharedValue(0);
47
+ const handshakeRetries = useSharedValue(0);
47
48
  const hasGivenUp = useSharedValue(0);
48
- const releaseLifecycleStartBlock = () => {
49
+ const releaseLifecycleStartBlock = useCallback(() => {
49
50
  "worklet";
50
51
 
51
52
  cancelAnimation(retryToken);
52
53
  if (!isBlockingLifecycleStart.get()) {
53
54
  return;
54
55
  }
55
- unblockLifecycleStart();
56
56
  isBlockingLifecycleStart.set(0);
57
- };
57
+ unblockLifecycleStart();
58
+ }, [isBlockingLifecycleStart, retryToken, unblockLifecycleStart]);
59
+ const claimLifecycleStartBlock = useCallback(() => {
60
+ "worklet";
61
+
62
+ // The progress check and block claim must share one UI-thread operation.
63
+ // Otherwise a JS-thread layout effect can observe zero, enqueue the block,
64
+ // and let the opening animation start before that block reaches the UI thread.
65
+ if (progress.get() > 0 || isBlockingLifecycleStart.get()) {
66
+ return;
67
+ }
68
+ blockLifecycleStart();
69
+ isBlockingLifecycleStart.set(1);
70
+ }, [blockLifecycleStart, isBlockingLifecycleStart, progress]);
71
+ useLayoutEffect(() => {
72
+ if (!destinationEnabled || !initialDestinationPairKey) {
73
+ return;
74
+ }
75
+ runOnUI(claimLifecycleStartBlock)();
76
+ return () => {
77
+ if (escapeClipping) {
78
+ // The portal host owns the release after this boundary hands off.
79
+ return;
80
+ }
81
+
82
+ // This is an abandonment fallback, not a second release. Run it on the UI
83
+ // runtime so it serializes with the handshake's guarded release.
84
+ runOnUI(releaseLifecycleStartBlock)();
85
+ };
86
+ }, [claimLifecycleStartBlock, destinationEnabled, escapeClipping, initialDestinationPairKey, releaseLifecycleStartBlock]);
58
87
  useAnimatedReaction(() => {
59
88
  "worklet";
60
89
 
61
90
  const retryTick = retryToken.get();
62
- const hasPendingOpenRequest = pendingLifecycleRequestKind.get() === LifecycleTransitionRequestKind.Open;
63
91
  const isWaitingForOpenToStart = progress.get() <= 0;
64
- if (!hasPendingOpenRequest || !isWaitingForOpenToStart) {
65
- return [0, retryTick];
66
- }
67
- const measurePairKey = getInitialDestinationMeasurePairKey({
68
- enabled: destinationEnabled,
92
+ const sourceScreenKey = initialDestinationPairKey ? getSourceScreenKeyFromPairKey(initialDestinationPairKey) : undefined;
93
+ const signal = getInitialDestinationMeasurementSignal({
94
+ enabled: destinationEnabled && isWaitingForOpenToStart && isBlockingLifecycleStart.get() > 0,
69
95
  destinationPairKey,
70
96
  ancestorDestinationPairKey,
71
97
  linkId: linkKey,
72
98
  group,
73
- linkState: destinationEnabled && (destinationPairKey || ancestorDestinationPairKey) ? pairs.get() : undefined
99
+ destinationPresent: getEntry(tag, currentScreenKey) !== null,
100
+ sourcePresent: sourceScreenKey !== undefined && getEntry(tag, sourceScreenKey) !== null,
101
+ linkState: initialDestinationPairKey ? pairs.get() : undefined
74
102
  });
75
- return [measurePairKey, retryTick];
76
- }, ([measurePairKey, retryTick], previous) => {
103
+ return [signal?.pairKey ?? null, signal?.action ?? null, retryTick];
104
+ }, ([measurePairKey, action, retryTick], previous) => {
77
105
  "worklet";
78
106
 
79
- if (!measurePairKey) {
107
+ if (!measurePairKey || !action) {
80
108
  return;
81
109
  }
82
110
  const previousMeasurePairKey = previous?.[0];
83
- const previousRetryTick = previous?.[1];
84
- const shouldAttemptMeasure = measurePairKey !== previousMeasurePairKey || retryTick !== previousRetryTick;
85
- if (!shouldAttemptMeasure) {
111
+ const previousAction = previous?.[1];
112
+ const previousRetryTick = previous?.[2];
113
+ const shouldHandleSignal = measurePairKey !== previousMeasurePairKey || action !== previousAction || retryTick !== previousRetryTick;
114
+ if (!shouldHandleSignal) {
86
115
  return;
87
116
  }
88
117
  if (hasGivenUp.get()) {
89
118
  return;
90
119
  }
91
- if (!isBlockingLifecycleStart.get()) {
92
- blockLifecycleStart();
93
- isBlockingLifecycleStart.set(1);
120
+ if (action === "release") {
121
+ releaseLifecycleStartBlock();
122
+ handshakeRetries.set(0);
123
+ return;
94
124
  }
95
- measureBoundary({
96
- type: "destination",
97
- pairKey: measurePairKey
98
- });
99
- const destinationAttached = getDestination(measurePairKey, linkKey) !== null;
100
- if (destinationAttached) {
101
- const linkState = pairs.get();
102
- const link = getLink(measurePairKey, linkKey);
103
- const sourceScreenKey = getSourceScreenKeyFromPairKey(measurePairKey);
104
- const sourceEntry = getEntry(tag, sourceScreenKey);
105
- const sourceEntryUsesDestinationEscapeHost = sourceEntry?.handoff === true && sourceEntry.escapeClipping === true;
106
- const shouldWaitForEscapeClippingHost = usesEscapeClippingHost(link) || sourceEntryUsesDestinationEscapeHost || hasHandoffEscapeContinuation({
107
- linkKey,
108
- linkState,
109
- sourceScreenKey
125
+ if (action === "measure") {
126
+ measureBoundary({
127
+ type: "destination",
128
+ pairKey: measurePairKey
110
129
  });
111
- if (shouldWaitForEscapeClippingHost) {
130
+ }
131
+ const link = getLink(measurePairKey, linkKey);
132
+ const linkComplete = !!link?.source && !!link.destination;
133
+ if (linkComplete || action === "complete") {
134
+ cancelAnimation(retryToken);
135
+ handshakeRetries.set(0);
136
+ if (escapeClipping) {
112
137
  // Screen-level escape has a second readiness phase after destination
113
- // measurement: the host must commit before the transition starts, or
138
+ // matching: the host must commit before the transition starts, or
114
139
  // the payload can disappear for a frame.
115
140
  return;
116
141
  }
117
142
  releaseLifecycleStartBlock();
118
- viewportRetries.set(0);
119
143
  return;
120
144
  }
121
- if (viewportRetries.get() >= MAX_VIEWPORT_RETRIES) {
145
+ if (handshakeRetries.get() >= MAX_HANDSHAKE_RETRIES) {
122
146
  hasGivenUp.set(1);
123
147
  releaseLifecycleStartBlock();
124
- logger.warn(`Destination boundary "${linkKey}" never produced a valid measurement after ${MAX_VIEWPORT_RETRIES} attempts; releasing the transition gate without it. The boundary is likely off-viewport (e.g. an inactive group member on a paged screen) or unmounted.`);
148
+ logger.warn(`Boundary "${linkKey}" never formed a complete source/destination link after ${MAX_HANDSHAKE_RETRIES} attempts; releasing the transition gate without it. One side is likely off-viewport or unmounted.`);
125
149
  return;
126
150
  }
127
151
 
128
- // Destination did not attach (malformed off-screen measurement); retry
129
- // after the retry token advances while the lifecycle stays blocked.
130
- viewportRetries.set(viewportRetries.get() + 1);
152
+ // Keep the lifecycle blocked while registration, measurement, or source
153
+ // attachment settles. The retry token also retries rejected destination bounds.
154
+ handshakeRetries.set(handshakeRetries.get() + 1);
131
155
  cancelAnimation(retryToken);
132
- retryToken.set(withDelay(VIEWPORT_RETRY_DELAY_MS, withTiming(retryToken.get() + 1, {
156
+ retryToken.set(withDelay(HANDSHAKE_RETRY_DELAY_MS, withTiming(retryToken.get() + 1, {
133
157
  duration: 0
134
158
  })));
135
159
  });
@@ -1 +1 @@
1
- {"version":3,"names":["cancelAnimation","useAnimatedReaction","useSharedValue","withDelay","withTiming","useDescriptorsStore","AnimationStore","getSourceScreenKeyFromPairKey","getEntry","getDestination","getLink","pairs","LifecycleTransitionRequestKind","SystemStore","logger","hasHandoffEscapeContinuation","usesEscapeClippingHost","getInitialDestinationMeasurePairKey","VIEWPORT_RETRY_DELAY_MS","MAX_VIEWPORT_RETRIES","useInitialDestinationMeasurement","boundTag","enabled","measureBoundary","tag","linkKey","group","currentScreenKey","s","derivations","nextScreenKey","destinationPairKey","ancestorDestinationPairKey","destinationEnabled","progress","getValue","pendingLifecycleRequestKind","actions","blockLifecycleStart","unblockLifecycleStart","getBag","isBlockingLifecycleStart","retryToken","viewportRetries","hasGivenUp","releaseLifecycleStartBlock","get","set","retryTick","hasPendingOpenRequest","Open","isWaitingForOpenToStart","measurePairKey","linkId","linkState","undefined","previous","previousMeasurePairKey","previousRetryTick","shouldAttemptMeasure","type","pairKey","destinationAttached","link","sourceScreenKey","sourceEntry","sourceEntryUsesDestinationEscapeHost","handoff","escapeClipping","shouldWaitForEscapeClippingHost","warn","duration"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useLayoutEffect","cancelAnimation","runOnUI","useAnimatedReaction","useSharedValue","withDelay","withTiming","useDescriptorsStore","AnimationStore","getSourceScreenKeyFromPairKey","getEntry","getLink","pairs","SystemStore","logger","getInitialDestinationMeasurementSignal","HANDSHAKE_RETRY_DELAY_MS","MAX_HANDSHAKE_RETRIES","useInitialDestinationMeasurement","boundTag","enabled","escapeClipping","measureBoundary","tag","linkKey","group","currentScreenKey","s","derivations","nextScreenKey","destinationPairKey","ancestorDestinationPairKey","destinationEnabled","initialDestinationPairKey","progress","getValue","actions","blockLifecycleStart","unblockLifecycleStart","getBag","isBlockingLifecycleStart","retryToken","handshakeRetries","hasGivenUp","releaseLifecycleStartBlock","get","set","claimLifecycleStartBlock","retryTick","isWaitingForOpenToStart","sourceScreenKey","undefined","signal","linkId","destinationPresent","sourcePresent","linkState","pairKey","action","measurePairKey","previous","previousMeasurePairKey","previousAction","previousRetryTick","shouldHandleSignal","type","link","linkComplete","source","destination","warn","duration"],"sourceRoot":"../../../../../../../src","sources":["shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts"],"mappings":"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","ignoreList":[]}
@@ -66,6 +66,7 @@ export const useBoundaryMeasurement = ({
66
66
  useInitialDestinationMeasurement({
67
67
  boundTag,
68
68
  enabled: runtimeEnabled,
69
+ escapeClipping,
69
70
  measureBoundary
70
71
  });
71
72
  useRefreshBoundary({
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","prepareStyleForBounds","useBoundaryPresence","useInitialDestinationMeasurement","useInitialSourceMeasurement","useRefreshBoundary","useMeasurer","useBoundaryMeasurement","boundTag","enabled","runtimeEnabled","currentScreenKey","measuredRef","style","targetPreparedStyles","handoff","escapeClipping","config","anchor","scaleMode","target","method","boundaryConfig","rootPreparedStyles","preparedStyles","measureBoundary","measuredAnimatedRef"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-boundary-measurement.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAI/B,SAASC,qBAAqB,QAAQ,6CAA6C;AAEnF,SAASC,mBAAmB,QAAQ,oCAAoC;AACxE,SAASC,gCAAgC,QAAQ,kDAAkD;AACnG,SAASC,2BAA2B,QAAQ,6CAA6C;AACzF,SAASC,kBAAkB,QAAQ,mCAAmC;AACtE,SAASC,WAAW,QAAQ,gBAAgB;AAmB5C;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CAAC;EACtCC,QAAQ;EACRC,OAAO;EACPC,cAAc;EACdC,gBAAgB;EAChBC,WAAW;EACXC,KAAK;EACLC,oBAAoB;EACpBC,OAAO;EACPC,cAAc;EACdC;AAC6B,CAAC,KAAK;EACnC,MAAM;IAAEC,MAAM;IAAEC,SAAS;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGJ,MAAM;EACpD,MAAMK,cAAc,GAAGtB,OAAO,CAC7B,OAAO;IAAEkB,MAAM;IAAEC,SAAS;IAAEC,MAAM;IAAEC;EAAO,CAAC,CAAC,EAC7C,CAACH,MAAM,EAAEC,SAAS,EAAEC,MAAM,EAAEC,MAAM,CACnC,CAAC;EAED,MAAME,kBAAkB,GAAGvB,OAAO,CACjC,MAAMC,qBAAqB,CAACY,KAAK,CAAC,EAClC,CAACA,KAAK,CACP,CAAC;EACD,MAAMW,cAAc,GAAGV,oBAAoB,IAAIS,kBAAkB;EAEjE,MAAME,eAAe,GAAGnB,WAAW,CAAC;IACnCG,OAAO;IACPD,QAAQ;IACRG,gBAAgB;IAChBa,cAAc;IACdE,mBAAmB,EAAEd,WAAW;IAChCG,OAAO;IACPC;EACD,CAAC,CAAC;;EAEF;EACA;EACAd,mBAAmB,CAAC;IACnBO,OAAO,EAAEC,cAAc;IACvBF,QAAQ;IACRG,gBAAgB;IAChBW,cAAc;IACdP,OAAO;IACPC;EACD,CAAC,CAAC;EAEFZ,2BAA2B,CAAC;IAC3BK,OAAO,EAAEC,cAAc;IACvBe,eAAe;IACfjB;EACD,CAAC,CAAC;EAEFL,gCAAgC,CAAC;IAChCK,QAAQ;IACRC,OAAO,EAAEC,cAAc;IACvBe;EACD,CAAC,CAAC;EAEFpB,kBAAkB,CAAC;IAClBI,OAAO,EAAEC,cAAc;IACvBF,QAAQ;IACRiB;EACD,CAAC,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","prepareStyleForBounds","useBoundaryPresence","useInitialDestinationMeasurement","useInitialSourceMeasurement","useRefreshBoundary","useMeasurer","useBoundaryMeasurement","boundTag","enabled","runtimeEnabled","currentScreenKey","measuredRef","style","targetPreparedStyles","handoff","escapeClipping","config","anchor","scaleMode","target","method","boundaryConfig","rootPreparedStyles","preparedStyles","measureBoundary","measuredAnimatedRef"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-boundary-measurement.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAI/B,SAASC,qBAAqB,QAAQ,6CAA6C;AAEnF,SAASC,mBAAmB,QAAQ,oCAAoC;AACxE,SAASC,gCAAgC,QAAQ,kDAAkD;AACnG,SAASC,2BAA2B,QAAQ,6CAA6C;AACzF,SAASC,kBAAkB,QAAQ,mCAAmC;AACtE,SAASC,WAAW,QAAQ,gBAAgB;AAmB5C;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CAAC;EACtCC,QAAQ;EACRC,OAAO;EACPC,cAAc;EACdC,gBAAgB;EAChBC,WAAW;EACXC,KAAK;EACLC,oBAAoB;EACpBC,OAAO;EACPC,cAAc;EACdC;AAC6B,CAAC,KAAK;EACnC,MAAM;IAAEC,MAAM;IAAEC,SAAS;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGJ,MAAM;EACpD,MAAMK,cAAc,GAAGtB,OAAO,CAC7B,OAAO;IAAEkB,MAAM;IAAEC,SAAS;IAAEC,MAAM;IAAEC;EAAO,CAAC,CAAC,EAC7C,CAACH,MAAM,EAAEC,SAAS,EAAEC,MAAM,EAAEC,MAAM,CACnC,CAAC;EAED,MAAME,kBAAkB,GAAGvB,OAAO,CACjC,MAAMC,qBAAqB,CAACY,KAAK,CAAC,EAClC,CAACA,KAAK,CACP,CAAC;EACD,MAAMW,cAAc,GAAGV,oBAAoB,IAAIS,kBAAkB;EAEjE,MAAME,eAAe,GAAGnB,WAAW,CAAC;IACnCG,OAAO;IACPD,QAAQ;IACRG,gBAAgB;IAChBa,cAAc;IACdE,mBAAmB,EAAEd,WAAW;IAChCG,OAAO;IACPC;EACD,CAAC,CAAC;;EAEF;EACA;EACAd,mBAAmB,CAAC;IACnBO,OAAO,EAAEC,cAAc;IACvBF,QAAQ;IACRG,gBAAgB;IAChBW,cAAc;IACdP,OAAO;IACPC;EACD,CAAC,CAAC;EAEFZ,2BAA2B,CAAC;IAC3BK,OAAO,EAAEC,cAAc;IACvBe,eAAe;IACfjB;EACD,CAAC,CAAC;EAEFL,gCAAgC,CAAC;IAChCK,QAAQ;IACRC,OAAO,EAAEC,cAAc;IACvBM,cAAc;IACdS;EACD,CAAC,CAAC;EAEFpB,kBAAkB,CAAC;IAClBI,OAAO,EAAEC,cAAc;IACvBF,QAAQ;IACRiB;EACD,CAAC,CAAC;AACH,CAAC","ignoreList":[]}
@@ -5,9 +5,11 @@ import { useWindowDimensions } from "react-native";
5
5
  import { measure } from "react-native-reanimated";
6
6
  import { applyMeasuredBoundsWrites } from "../../../providers/helpers/measured-bounds-writes";
7
7
  import { useOriginContext } from "../../../providers/screen/origin.provider";
8
+ import { useScreenSlots } from "../../../providers/screen/styles";
8
9
  import { ScrollStore } from "../../../stores/scroll.store";
9
10
  import { SystemStore } from "../../../stores/system.store";
10
- import { attachScrollSnapshotToMeasuredBounds, isMeasurementInViewport, measureWithOverscrollAwareness, normalizeMeasuredBoundsToOrigin } from "../utils/measured-bounds";
11
+ import { getVisibilityBlockOffset } from "../../../utils/visibility-block-offset";
12
+ import { attachScrollSnapshotToMeasuredBounds, isMeasurementInViewport, measureWithOverscrollAwareness, normalizeMeasuredBoundsWithVisibilityGate } from "../utils/measured-bounds";
11
13
  export const useMeasurer = ({
12
14
  enabled,
13
15
  boundTag,
@@ -27,6 +29,9 @@ export const useMeasurer = ({
27
29
  const {
28
30
  originRef
29
31
  } = useOriginContext();
32
+ const {
33
+ visibilityBlocked
34
+ } = useScreenSlots();
30
35
  return useCallback(target => {
31
36
  "worklet";
32
37
 
@@ -34,7 +39,14 @@ export const useMeasurer = ({
34
39
  const measured = measureWithOverscrollAwareness(measuredAnimatedRef, scrollState.get());
35
40
  const measuredOrigin = measure(originRef);
36
41
  if (!measured || !measuredOrigin) return;
37
- const normalizedMeasured = normalizeMeasuredBoundsToOrigin(measured, measuredOrigin);
42
+ const normalizedMeasured = normalizeMeasuredBoundsWithVisibilityGate({
43
+ measured,
44
+ origin: measuredOrigin,
45
+ visibilityBlocked: escapeClipping && visibilityBlocked.get(),
46
+ visibilityBlockOffset: getVisibilityBlockOffset(viewportHeight),
47
+ viewportWidth,
48
+ viewportHeight
49
+ });
38
50
 
39
51
  /**
40
52
  * - Destination Pass -
@@ -58,6 +70,6 @@ export const useMeasurer = ({
58
70
  handoff,
59
71
  escapeClipping
60
72
  });
61
- }, [enabled, boundTag, currentScreenKey, preparedStyles, measuredAnimatedRef, handoff, escapeClipping, viewportWidth, viewportHeight, scrollState, scrollMetadata, pendingLifecycleStartBlockCount, originRef]);
73
+ }, [enabled, boundTag, currentScreenKey, preparedStyles, measuredAnimatedRef, handoff, escapeClipping, viewportWidth, viewportHeight, scrollState, scrollMetadata, pendingLifecycleStartBlockCount, originRef, visibilityBlocked]);
62
74
  };
63
75
  //# sourceMappingURL=use-measurer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useWindowDimensions","measure","applyMeasuredBoundsWrites","useOriginContext","ScrollStore","SystemStore","attachScrollSnapshotToMeasuredBounds","isMeasurementInViewport","measureWithOverscrollAwareness","normalizeMeasuredBoundsToOrigin","useMeasurer","enabled","boundTag","currentScreenKey","preparedStyles","measuredAnimatedRef","handoff","escapeClipping","width","viewportWidth","height","viewportHeight","scrollState","getValue","scrollMetadata","pendingLifecycleStartBlockCount","originRef","target","measured","get","measuredOrigin","normalizedMeasured","shouldGuardDestinationViewport","group","viewportAllowsDestinationWrite","type","measuredWithScroll","entryTag","tag","linkId","linkKey","linkWrite"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-measurer.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAASC,mBAAmB,QAAQ,cAAc;AAClD,SAECC,OAAO,QAED,yBAAyB;AAChC,SAASC,yBAAyB,QAAQ,mDAAmD;AAC7F,SAASC,gBAAgB,QAAQ,2CAA2C;AAE5E,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,WAAW,QAAQ,8BAA8B;AAE1D,SACCC,oCAAoC,EACpCC,uBAAuB,EACvBC,8BAA8B,EAC9BC,+BAA+B,QACzB,0BAA0B;AAYjC,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAC3BC,OAAO;EACPC,QAAQ;EACRC,gBAAgB;EAChBC,cAAc;EACdC,mBAAmB;EACnBC,OAAO;EACPC;AACkB,CAAC,KAAsB;EACzC,MAAM;IAAEC,KAAK,EAAEC,aAAa;IAAEC,MAAM,EAAEC;EAAe,CAAC,GACrDrB,mBAAmB,CAAC,CAAC;EAEtB,MAAMsB,WAAW,GAAGlB,WAAW,CAACmB,QAAQ,CAACV,gBAAgB,EAAE,cAAc,CAAC;EAC1E,MAAMW,cAAc,GAAGpB,WAAW,CAACmB,QAAQ,CAACV,gBAAgB,EAAE,UAAU,CAAC;EACzE,MAAMY,+BAA+B,GAAGpB,WAAW,CAACkB,QAAQ,CAC3DV,gBAAgB,EAChB,iCACD,CAAC;EACD,MAAM;IAAEa;EAAU,CAAC,GAAGvB,gBAAgB,CAAC,CAAC;EAExC,OAAOJ,WAAW,CAChB4B,MAAM,IAAK;IACX,SAAS;;IACT,IAAI,CAAChB,OAAO,EAAE;IAEd,MAAMiB,QAAQ,GAAGpB,8BAA8B,CAC9CO,mBAAmB,EACnBO,WAAW,CAACO,GAAG,CAAC,CACjB,CAAC;IACD,MAAMC,cAAc,GAAG7B,OAAO,CAACyB,SAAS,CAAC;IAEzC,IAAI,CAACE,QAAQ,IAAI,CAACE,cAAc,EAAE;IAElC,MAAMC,kBAAkB,GAAGtB,+BAA+B,CACzDmB,QAAQ,EACRE,cACD,CAAC;;IAED;AACH;AACA;AACA;AACA;AACA;AACA;IACG,MAAME,8BAA8B,GACnCP,+BAA+B,CAACI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAACjB,QAAQ,CAACqB,KAAK;IAE9D,MAAMC,8BAA8B,GACnCP,MAAM,CAACQ,IAAI,KAAK,aAAa,IAC7B,CAACH,8BAA8B,IAC/BzB,uBAAuB,CACtBwB,kBAAkB,EAClBZ,aAAa,EACbE,cACD,CAAC;IAEF,IAAI,CAACa,8BAA8B,EAAE;IAErC,MAAME,kBAAkB,GAAG9B,oCAAoC,CAC9DyB,kBAAkB,EAClBP,cAAc,CAACK,GAAG,CAAC,CACpB,CAAC;IAED3B,yBAAyB,CAAC;MACzBmC,QAAQ,EAAEzB,QAAQ,CAAC0B,GAAG;MACtBC,MAAM,EAAE3B,QAAQ,CAAC4B,OAAO;MACxBP,KAAK,EAAErB,QAAQ,CAACqB,KAAK;MACrBpB,gBAAgB;MAChBe,QAAQ,EAAEQ,kBAAkB;MAC5BtB,cAAc;MACd2B,SAAS,EAAEd,MAAM;MACjBX,OAAO;MACPC;IACD,CAAC,CAAC;EACH,CAAC,EACD,CACCN,OAAO,EACPC,QAAQ,EACRC,gBAAgB,EAChBC,cAAc,EACdC,mBAAmB,EACnBC,OAAO,EACPC,cAAc,EACdE,aAAa,EACbE,cAAc,EACdC,WAAW,EACXE,cAAc,EACdC,+BAA+B,EAC/BC,SAAS,CAEX,CAAC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useWindowDimensions","measure","applyMeasuredBoundsWrites","useOriginContext","useScreenSlots","ScrollStore","SystemStore","getVisibilityBlockOffset","attachScrollSnapshotToMeasuredBounds","isMeasurementInViewport","measureWithOverscrollAwareness","normalizeMeasuredBoundsWithVisibilityGate","useMeasurer","enabled","boundTag","currentScreenKey","preparedStyles","measuredAnimatedRef","handoff","escapeClipping","width","viewportWidth","height","viewportHeight","scrollState","getValue","scrollMetadata","pendingLifecycleStartBlockCount","originRef","visibilityBlocked","target","measured","get","measuredOrigin","normalizedMeasured","origin","visibilityBlockOffset","shouldGuardDestinationViewport","group","viewportAllowsDestinationWrite","type","measuredWithScroll","entryTag","tag","linkId","linkKey","linkWrite"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-measurer.ts"],"mappings":";;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;AAC5E,SAASC,cAAc,QAAQ,kCAAkC;AAEjE,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,wBAAwB,QAAQ,wCAAwC;AAEjF,SACCC,oCAAoC,EACpCC,uBAAuB,EACvBC,8BAA8B,EAC9BC,yCAAyC,QACnC,0BAA0B;AAYjC,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAC3BC,OAAO;EACPC,QAAQ;EACRC,gBAAgB;EAChBC,cAAc;EACdC,mBAAmB;EACnBC,OAAO;EACPC;AACkB,CAAC,KAAsB;EACzC,MAAM;IAAEC,KAAK,EAAEC,aAAa;IAAEC,MAAM,EAAEC;EAAe,CAAC,GACrDvB,mBAAmB,CAAC,CAAC;EAEtB,MAAMwB,WAAW,GAAGnB,WAAW,CAACoB,QAAQ,CAACV,gBAAgB,EAAE,cAAc,CAAC;EAC1E,MAAMW,cAAc,GAAGrB,WAAW,CAACoB,QAAQ,CAACV,gBAAgB,EAAE,UAAU,CAAC;EACzE,MAAMY,+BAA+B,GAAGrB,WAAW,CAACmB,QAAQ,CAC3DV,gBAAgB,EAChB,iCACD,CAAC;EACD,MAAM;IAAEa;EAAU,CAAC,GAAGzB,gBAAgB,CAAC,CAAC;EACxC,MAAM;IAAE0B;EAAkB,CAAC,GAAGzB,cAAc,CAAC,CAAC;EAE9C,OAAOL,WAAW,CAChB+B,MAAM,IAAK;IACX,SAAS;;IACT,IAAI,CAACjB,OAAO,EAAE;IAEd,MAAMkB,QAAQ,GAAGrB,8BAA8B,CAC9CO,mBAAmB,EACnBO,WAAW,CAACQ,GAAG,CAAC,CACjB,CAAC;IACD,MAAMC,cAAc,GAAGhC,OAAO,CAAC2B,SAAS,CAAC;IAEzC,IAAI,CAACG,QAAQ,IAAI,CAACE,cAAc,EAAE;IAElC,MAAMC,kBAAkB,GAAGvB,yCAAyC,CAAC;MACpEoB,QAAQ;MACRI,MAAM,EAAEF,cAAc;MACtBJ,iBAAiB,EAAEV,cAAc,IAAIU,iBAAiB,CAACG,GAAG,CAAC,CAAC;MAC5DI,qBAAqB,EAAE7B,wBAAwB,CAACgB,cAAc,CAAC;MAC/DF,aAAa;MACbE;IACD,CAAC,CAAC;;IAEF;AACH;AACA;AACA;AACA;AACA;AACA;IACG,MAAMc,8BAA8B,GACnCV,+BAA+B,CAACK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAClB,QAAQ,CAACwB,KAAK;IAE9D,MAAMC,8BAA8B,GACnCT,MAAM,CAACU,IAAI,KAAK,aAAa,IAC7B,CAACH,8BAA8B,IAC/B5B,uBAAuB,CACtByB,kBAAkB,EAClBb,aAAa,EACbE,cACD,CAAC;IAEF,IAAI,CAACgB,8BAA8B,EAAE;IAErC,MAAME,kBAAkB,GAAGjC,oCAAoC,CAC9D0B,kBAAkB,EAClBR,cAAc,CAACM,GAAG,CAAC,CACpB,CAAC;IAED9B,yBAAyB,CAAC;MACzBwC,QAAQ,EAAE5B,QAAQ,CAAC6B,GAAG;MACtBC,MAAM,EAAE9B,QAAQ,CAAC+B,OAAO;MACxBP,KAAK,EAAExB,QAAQ,CAACwB,KAAK;MACrBvB,gBAAgB;MAChBgB,QAAQ,EAAEU,kBAAkB;MAC5BzB,cAAc;MACd8B,SAAS,EAAEhB,MAAM;MACjBZ,OAAO;MACPC;IACD,CAAC,CAAC;EACH,CAAC,EACD,CACCN,OAAO,EACPC,QAAQ,EACRC,gBAAgB,EAChBC,cAAc,EACdC,mBAAmB,EACnBC,OAAO,EACPC,cAAc,EACdE,aAAa,EACbE,cAAc,EACdC,WAAW,EACXE,cAAc,EACdC,+BAA+B,EAC/BC,SAAS,EACTC,iBAAiB,CAEnB,CAAC;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ import { useLayoutEffect } from "react";
4
+ import { logger } from "../../../utils/logger";
5
+ import { TARGET_OUTSIDE_ROOT_WARNING, useBoundaryRootContext } from "../providers/boundary-root.provider";
6
+ export const useRegisterTarget = ({
7
+ targetAnimatedRef,
8
+ preparedStyles,
9
+ measurementRef
10
+ }) => {
11
+ const rootContext = useBoundaryRootContext();
12
+ const registerTargetRef = rootContext?.registerTargetRef;
13
+ const unregisterTargetRef = rootContext?.unregisterTargetRef;
14
+ useLayoutEffect(() => {
15
+ if (!registerTargetRef || !unregisterTargetRef) {
16
+ if (__DEV__) {
17
+ logger.warn(TARGET_OUTSIDE_ROOT_WARNING);
18
+ }
19
+ return;
20
+ }
21
+ registerTargetRef(targetAnimatedRef, preparedStyles, measurementRef);
22
+ return () => {
23
+ unregisterTargetRef(targetAnimatedRef);
24
+ };
25
+ }, [registerTargetRef, unregisterTargetRef, targetAnimatedRef, preparedStyles, measurementRef]);
26
+ };
27
+ //# sourceMappingURL=use-register-target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useLayoutEffect","logger","TARGET_OUTSIDE_ROOT_WARNING","useBoundaryRootContext","useRegisterTarget","targetAnimatedRef","preparedStyles","measurementRef","rootContext","registerTargetRef","unregisterTargetRef","__DEV__","warn"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-register-target.ts"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,OAAO;AAGvC,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SACCC,2BAA2B,EAC3BC,sBAAsB,QAChB,qCAAqC;AAQ5C,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EACjCC,iBAAiB;EACjBC,cAAc;EACdC;AACoB,CAAC,KAAK;EAC1B,MAAMC,WAAW,GAAGL,sBAAsB,CAAC,CAAC;EAC5C,MAAMM,iBAAiB,GAAGD,WAAW,EAAEC,iBAAiB;EACxD,MAAMC,mBAAmB,GAAGF,WAAW,EAAEE,mBAAmB;EAC5DV,eAAe,CAAC,MAAM;IACrB,IAAI,CAACS,iBAAiB,IAAI,CAACC,mBAAmB,EAAE;MAC/C,IAAIC,OAAO,EAAE;QACZV,MAAM,CAACW,IAAI,CAACV,2BAA2B,CAAC;MACzC;MACA;IACD;IAEAO,iBAAiB,CAACJ,iBAAiB,EAAEC,cAAc,EAAEC,cAAc,CAAC;IACpE,OAAO,MAAM;MACZG,mBAAmB,CAACL,iBAAiB,CAAC;IACvC,CAAC;EACF,CAAC,EAAE,CACFI,iBAAiB,EACjBC,mBAAmB,EACnBL,iBAAiB,EACjBC,cAAc,EACdC,cAAc,CACd,CAAC;AACH,CAAC","ignoreList":[]}
@@ -39,7 +39,7 @@ Host.displayName = "Transition.Boundary.Host";
39
39
  * Use:
40
40
  * - `Boundary` for passive and pressable shared elements.
41
41
  * - `Boundary.Target` to measure a nested descendant instead of the root.
42
- * - `Boundary.Host` to make nested portal placement explicit.
42
+ * - `Boundary.Host` to make clipping-escape host placement explicit.
43
43
  */
44
44
 
45
45
  export const Boundary = Object.assign(BoundaryRoot, {
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ import { memo } from "react";
4
+ import { StyleSheet } from "react-native";
5
+ import Animated from "react-native-reanimated";
6
+ import { NativePortalHost, PORTAL_POINTER_EVENTS } from "../../../teleport";
7
+ import { createBoundaryContentPortalHostName } from "../helpers/host-name";
8
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const AnimatedPortalHost = NativePortalHost ? Animated.createAnimatedComponent(NativePortalHost) : null;
10
+ export const BoundaryContentPortalHost = /*#__PURE__*/memo(function BoundaryContentPortalHost({
11
+ boundaryId,
12
+ children,
13
+ enabled,
14
+ screenKey
15
+ }) {
16
+ if (!enabled || !AnimatedPortalHost) {
17
+ return /*#__PURE__*/_jsx(_Fragment, {
18
+ children: children
19
+ });
20
+ }
21
+ const portalHostName = createBoundaryContentPortalHostName(screenKey, boundaryId);
22
+ return /*#__PURE__*/_jsxs(_Fragment, {
23
+ children: [children, /*#__PURE__*/_jsx(AnimatedPortalHost, {
24
+ name: portalHostName,
25
+ pointerEvents: PORTAL_POINTER_EVENTS,
26
+ style: styles.host
27
+ })]
28
+ });
29
+ });
30
+ const styles = StyleSheet.create({
31
+ host: {
32
+ ...StyleSheet.absoluteFillObject,
33
+ overflow: "visible"
34
+ }
35
+ });
36
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","StyleSheet","Animated","NativePortalHost","PORTAL_POINTER_EVENTS","createBoundaryContentPortalHostName","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","AnimatedPortalHost","createAnimatedComponent","BoundaryContentPortalHost","boundaryId","children","enabled","screenKey","portalHostName","name","pointerEvents","style","styles","host","create","absoluteFillObject","overflow"],"sourceRoot":"../../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-content-portal/components/host.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAwB,OAAO;AAC5C,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,gBAAgB,EAAEC,qBAAqB,QAAQ,mBAAmB;AAC3E,SAASC,mCAAmC,QAAQ,sBAAsB;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE3E,MAAMC,kBAAkB,GAAGT,gBAAgB,GACxCD,QAAQ,CAACW,uBAAuB,CAACV,gBAAgB,CAAC,GAClD,IAAI;AASP,OAAO,MAAMW,yBAAyB,gBAAGd,IAAI,CAC5C,SAASc,yBAAyBA,CAAC;EAClCC,UAAU;EACVC,QAAQ;EACRC,OAAO;EACPC;AAC+B,CAAC,EAAE;EAClC,IAAI,CAACD,OAAO,IAAI,CAACL,kBAAkB,EAAE;IACpC,oBAAOH,IAAA,CAAAF,SAAA;MAAAS,QAAA,EAAGA;IAAQ,CAAG,CAAC;EACvB;EAEA,MAAMG,cAAc,GAAGd,mCAAmC,CACzDa,SAAS,EACTH,UACD,CAAC;EAED,oBACCJ,KAAA,CAAAJ,SAAA;IAAAS,QAAA,GACEA,QAAQ,eACTP,IAAA,CAACG,kBAAkB;MAClBQ,IAAI,EAAED,cAAe;MACrBE,aAAa,EAAEjB,qBAAsB;MACrCkB,KAAK,EAAEC,MAAM,CAACC;IAAK,CACnB,CAAC;EAAA,CACD,CAAC;AAEL,CACD,CAAC;AAED,MAAMD,MAAM,GAAGtB,UAAU,CAACwB,MAAM,CAAC;EAChCD,IAAI,EAAE;IACL,GAAGvB,UAAU,CAACyB,kBAAkB;IAChCC,QAAQ,EAAE;EACX;AACD,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ const BOUNDARY_CONTENT_PORTAL_HOST_NAME_SUFFIX = "-content-portal-host";
4
+ export const createBoundaryContentPortalHostName = (screenKey, boundaryId) => {
5
+ "worklet";
6
+
7
+ return `${screenKey}-${boundaryId}${BOUNDARY_CONTENT_PORTAL_HOST_NAME_SUFFIX}`;
8
+ };
9
+ //# sourceMappingURL=host-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BOUNDARY_CONTENT_PORTAL_HOST_NAME_SUFFIX","createBoundaryContentPortalHostName","screenKey","boundaryId"],"sourceRoot":"../../../../../../../../../src","sources":["shared/components/boundary/portal/components/boundary-content-portal/helpers/host-name.ts"],"mappings":";;AAAA,MAAMA,wCAAwC,GAAG,sBAAsB;AAEvE,OAAO,MAAMC,mCAAmC,GAAGA,CAClDC,SAAiB,EACjBC,UAAkB,KACd;EACJ,SAAS;;EACT,OAAO,GAAGD,SAAS,IAAIC,UAAU,GAAGH,wCAAwC,EAAE;AAC/E,CAAC","ignoreList":[]}