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
@@ -30,6 +30,10 @@ export default {
30
30
  export type { NativeStackAdapterOptions } from "./adapters/with-screen-transitions";
31
31
  export { withScreenTransitions } from "./adapters/with-screen-transitions";
32
32
  export { snapTo } from "./animation/snap-to";
33
+ export {
34
+ blockTransition,
35
+ unblockTransition,
36
+ } from "./animation/transition-blocking";
33
37
  export {
34
38
  NAVIGATION_MASK_CONTAINER_STYLE_ID,
35
39
  NAVIGATION_MASK_ELEMENT_STYLE_ID,
@@ -59,6 +63,8 @@ export type {
59
63
  BoundsNavigationAccessor,
60
64
  BoundsNavigationRevealOptions,
61
65
  BoundsNavigationRevealStyle,
66
+ BoundsNavigationZoomAxisResponse,
67
+ BoundsNavigationZoomDragOptions,
62
68
  BoundsNavigationZoomOpacityRange,
63
69
  BoundsNavigationZoomOpacityRanges,
64
70
  BoundsNavigationZoomOptions,
@@ -78,6 +78,8 @@ export const hydrateTransitionState = (
78
78
  out.gesture.normScale = s.gesture.normScale.get();
79
79
  out.gesture.focalX = s.gesture.focalX.get();
80
80
  out.gesture.focalY = s.gesture.focalY.get();
81
+ out.gesture.pinchOriginX = s.gesture.pinchOriginX.get();
82
+ out.gesture.pinchOriginY = s.gesture.pinchOriginY.get();
81
83
  out.gesture.rotation = s.gesture.rotation.get();
82
84
  out.gesture.raw.x = s.gesture.raw.x.get();
83
85
  out.gesture.raw.y = s.gesture.raw.y.get();
@@ -121,6 +123,12 @@ export const hydrateTransitionState = (
121
123
  handoff.focalY = useHandoffSnapshot
122
124
  ? s.gesture.internal.snapshot.focalY.get()
123
125
  : out.gesture.focalY;
126
+ handoff.pinchOriginX = useHandoffSnapshot
127
+ ? s.gesture.internal.snapshot.pinchOriginX.get()
128
+ : out.gesture.pinchOriginX;
129
+ handoff.pinchOriginY = useHandoffSnapshot
130
+ ? s.gesture.internal.snapshot.pinchOriginY.get()
131
+ : out.gesture.pinchOriginY;
124
132
  handoff.rotation = useHandoffSnapshot
125
133
  ? s.gesture.internal.snapshot.rotation.get()
126
134
  : out.gesture.rotation;
@@ -6,6 +6,7 @@ import type {
6
6
  import { type SharedValue, useSharedValue } from "react-native-reanimated";
7
7
  import { GestureStore } from "../../../../../stores/gesture.store";
8
8
  import { GestureActivationState } from "../../../../../types/gesture.types";
9
+ import type { Direction } from "../../../../../types/ownership.types";
9
10
  import { useDescriptorDerivations } from "../../../descriptors";
10
11
  import type { ScreenOptionsContextValue } from "../../../options";
11
12
  import { resolvePanRuntime } from "../../shared/runtime";
@@ -47,6 +48,7 @@ export const usePanActivation = ({
47
48
  const gestureActivationState = useSharedValue<GestureActivationState>(
48
49
  GestureActivationState.PENDING,
49
50
  );
51
+ const pendingDirection = useSharedValue<Direction | null>(null);
50
52
 
51
53
  const onTouchesDown = useCallback(
52
54
  (
@@ -61,6 +63,7 @@ export const usePanActivation = ({
61
63
 
62
64
  if (!participation.canTrackGesture) {
63
65
  gestureActivationState.set(GestureActivationState.FAILED);
66
+ pendingDirection.set(null);
64
67
  stateManager?.fail();
65
68
  return;
66
69
  }
@@ -68,8 +71,15 @@ export const usePanActivation = ({
68
71
  const firstTouch = event.changedTouches[0];
69
72
  initialTouch.set({ x: firstTouch.x, y: firstTouch.y });
70
73
  gestureActivationState.set(GestureActivationState.PENDING);
74
+ pendingDirection.set(null);
71
75
  },
72
- [gestureActivationState, initialTouch, runtime, screenOptions],
76
+ [
77
+ gestureActivationState,
78
+ initialTouch,
79
+ pendingDirection,
80
+ runtime,
81
+ screenOptions,
82
+ ],
73
83
  );
74
84
 
75
85
  const onTouchesMove = useCallback(
@@ -110,6 +120,7 @@ export const usePanActivation = ({
110
120
  }
111
121
 
112
122
  if (decision.action === "fail") {
123
+ pendingDirection.set(null);
113
124
  stateManager.fail();
114
125
  return;
115
126
  }
@@ -119,12 +130,9 @@ export const usePanActivation = ({
119
130
  }
120
131
 
121
132
  if (decision.direction) {
122
- const { gestures } = resolvedRuntime.stores;
123
- gestures.active.set(decision.direction);
124
- gestures.direction.set(decision.direction);
133
+ pendingDirection.set(decision.direction);
125
134
  }
126
135
 
127
- gestureCompositionOwner.set("pan");
128
136
  stateManager.activate();
129
137
  },
130
138
  [
@@ -134,6 +142,7 @@ export const usePanActivation = ({
134
142
  dimensions,
135
143
  gestureActivationState,
136
144
  initialTouch,
145
+ pendingDirection,
137
146
  runtime,
138
147
  screenOptions,
139
148
  scrollState,
@@ -142,7 +151,7 @@ export const usePanActivation = ({
142
151
  );
143
152
 
144
153
  return useMemo(
145
- () => ({ onTouchesDown, onTouchesMove }),
146
- [onTouchesDown, onTouchesMove],
154
+ () => ({ onTouchesDown, onTouchesMove, pendingDirection }),
155
+ [onTouchesDown, onTouchesMove, pendingDirection],
147
156
  );
148
157
  };
@@ -1,6 +1,7 @@
1
1
  import { useCallback, useMemo } from "react";
2
2
  import type { SharedValue } from "react-native-reanimated";
3
3
  import { useNavigationHelpers } from "../../../../../hooks/navigation/use-navigation-helpers";
4
+ import type { Direction } from "../../../../../types/ownership.types";
4
5
  import type { ScreenOptionsContextValue } from "../../../options";
5
6
  import { usePanGestureSensitivity } from "../../hooks/use-gesture-sensitivity";
6
7
  import { resolvePanRuntime } from "../../shared/runtime";
@@ -28,6 +29,7 @@ export const usePanBehavior = (
28
29
  screenOptions: ScreenOptionsContextValue,
29
30
  dimensions: GestureDimensions,
30
31
  gestureCompositionOwner: SharedValue<GestureCompositionOwner>,
32
+ pendingDirection: SharedValue<Direction | null>,
31
33
  ): PanBehavior => {
32
34
  const { dismissScreen, requestDismiss } = useNavigationHelpers();
33
35
  const { withSensitivity, resetSensitivity } =
@@ -38,16 +40,31 @@ export const usePanBehavior = (
38
40
  const latestRuntime = resolvePanRuntime(runtime.get(), screenOptions.get());
39
41
  if (gestureCompositionOwner.get() === "pinch") {
40
42
  clearPanTrackingValues(latestRuntime.stores.gestures);
43
+ pendingDirection.set(null);
41
44
  resetSensitivity();
42
45
  return;
43
46
  }
44
47
 
48
+ const direction = pendingDirection.get();
49
+ if (direction) {
50
+ latestRuntime.stores.gestures.active.set(direction);
51
+ latestRuntime.stores.gestures.direction.set(direction);
52
+ }
53
+ pendingDirection.set(null);
54
+ gestureCompositionOwner.set("pan");
55
+
45
56
  if (latestRuntime.participation.effectiveSnapPoints.hasSnapPoints) {
46
57
  primeSnapPanRelease(latestRuntime);
47
58
  }
48
59
  startPanBase(latestRuntime);
49
60
  resetSensitivity();
50
- }, [runtime, screenOptions, resetSensitivity, gestureCompositionOwner]);
61
+ }, [
62
+ runtime,
63
+ screenOptions,
64
+ resetSensitivity,
65
+ gestureCompositionOwner,
66
+ pendingDirection,
67
+ ]);
51
68
 
52
69
  const onUpdate = useCallback(
53
70
  (rawEvent: PanGestureEvent) => {
@@ -50,6 +50,7 @@ export const useBuildPanGesture = ({
50
50
  screenOptions,
51
51
  dimensions,
52
52
  gestureCompositionOwner,
53
+ activation.pendingDirection,
53
54
  );
54
55
 
55
56
  const panGesture = useMemo(() => {
@@ -4,10 +4,36 @@ import type {
4
4
  GestureTouchEvent,
5
5
  } from "react-native-gesture-handler";
6
6
  import type { SharedValue } from "react-native-reanimated";
7
+ import type { GestureStoreMap } from "../../../../../stores/gesture.store";
7
8
  import type { ScreenOptionsContextValue } from "../../../options";
8
9
  import { resolvePinchRuntime } from "../../shared/runtime";
9
10
  import type { GestureCompositionOwner, PinchGestureRuntime } from "../../types";
10
11
 
12
+ export const updateAbsolutePinchFocalPoint = (
13
+ event: GestureTouchEvent,
14
+ gestures: GestureStoreMap,
15
+ captureOrigin: boolean,
16
+ ) => {
17
+ "worklet";
18
+ const firstTouch = event.allTouches[0];
19
+ const secondTouch = event.allTouches[1];
20
+
21
+ if (!firstTouch || !secondTouch) {
22
+ return;
23
+ }
24
+
25
+ const focalX = (firstTouch.absoluteX + secondTouch.absoluteX) / 2;
26
+ const focalY = (firstTouch.absoluteY + secondTouch.absoluteY) / 2;
27
+
28
+ gestures.focalX.set(focalX);
29
+ gestures.focalY.set(focalY);
30
+
31
+ if (captureOrigin) {
32
+ gestures.pinchOriginX.set(focalX);
33
+ gestures.pinchOriginY.set(focalY);
34
+ }
35
+ };
36
+
11
37
  interface UsePinchActivationProps {
12
38
  runtime: SharedValue<PinchGestureRuntime>;
13
39
  screenOptions: ScreenOptionsContextValue;
@@ -25,10 +51,11 @@ export const usePinchActivation = ({
25
51
  stateManager: GestureStateManager | undefined,
26
52
  ) => {
27
53
  "worklet";
28
- const { participation, policy } = resolvePinchRuntime(
54
+ const latestRuntime = resolvePinchRuntime(
29
55
  runtime.get(),
30
56
  screenOptions.get(),
31
57
  );
58
+ const { participation, policy } = latestRuntime;
32
59
 
33
60
  if (!participation.canTrackGesture || !policy.enabled) {
34
61
  stateManager?.fail();
@@ -36,6 +63,11 @@ export const usePinchActivation = ({
36
63
  }
37
64
 
38
65
  if (event.numberOfTouches === 2) {
66
+ updateAbsolutePinchFocalPoint(
67
+ event,
68
+ latestRuntime.stores.gestures,
69
+ true,
70
+ );
39
71
  if (gestureCompositionOwner.get() === null) {
40
72
  gestureCompositionOwner.set("pinch");
41
73
  }
@@ -53,10 +85,11 @@ export const usePinchActivation = ({
53
85
  const onTouchesMove = useCallback(
54
86
  (event: GestureTouchEvent, stateManager: GestureStateManager) => {
55
87
  "worklet";
56
- const { participation, policy } = resolvePinchRuntime(
88
+ const latestRuntime = resolvePinchRuntime(
57
89
  runtime.get(),
58
90
  screenOptions.get(),
59
91
  );
92
+ const { participation, policy } = latestRuntime;
60
93
 
61
94
  if (!participation.canTrackGesture || !policy.enabled) {
62
95
  stateManager.fail();
@@ -64,6 +97,11 @@ export const usePinchActivation = ({
64
97
  }
65
98
 
66
99
  if (event.numberOfTouches === 2) {
100
+ updateAbsolutePinchFocalPoint(
101
+ event,
102
+ latestRuntime.stores.gestures,
103
+ false,
104
+ );
67
105
  if (gestureCompositionOwner.get() === null) {
68
106
  gestureCompositionOwner.set("pinch");
69
107
  }
@@ -13,10 +13,7 @@ import type {
13
13
  } from "../../types";
14
14
  import { resetPinchGestureValues } from "./pinch-reset";
15
15
 
16
- export const startPinchBase = (
17
- runtime: PinchGestureRuntime,
18
- event: PinchGestureEvent,
19
- ) => {
16
+ export const startPinchBase = (runtime: PinchGestureRuntime) => {
20
17
  "worklet";
21
18
  const {
22
19
  stores: { gestures, animations },
@@ -38,8 +35,6 @@ export const startPinchBase = (
38
35
  gestures.direction.set(null);
39
36
  gestures.velocity.set(0);
40
37
  clearTransformTrackingValues(gestures);
41
- gestures.focalX.set(event.focalX);
42
- gestures.focalY.set(event.focalY);
43
38
  gestures.internal.progressBaseline.set(animations.transitionProgress.get());
44
39
  };
45
40
 
@@ -56,13 +51,14 @@ export const trackPinchGesture = (
56
51
 
57
52
  gestures.scale.set(scale);
58
53
  gestures.normScale.set(normScale);
59
- gestures.focalX.set(event.focalX);
60
- gestures.focalY.set(event.focalY);
61
54
  gestures.raw.scale.set(rawScale);
62
55
  gestures.raw.normScale.set(rawNormScale);
63
- gestures.active.set(
64
- normScale < 0 ? "pinch-in" : normScale > 0 ? "pinch-out" : null,
65
- );
56
+
57
+ if (gestures.active.get() === null) {
58
+ gestures.active.set(
59
+ normScale < 0 ? "pinch-in" : normScale > 0 ? "pinch-out" : null,
60
+ );
61
+ }
66
62
 
67
63
  return {
68
64
  scale,
@@ -30,21 +30,18 @@ export const usePinchBehavior = (
30
30
  const { withSensitivity, resetSensitivity } =
31
31
  usePinchGestureSensitivity(screenOptions);
32
32
 
33
- const onStart = useCallback(
34
- (event: PinchGestureEvent) => {
35
- "worklet";
36
- const latestRuntime = resolvePinchRuntime(
37
- runtime.get(),
38
- screenOptions.get(),
39
- );
40
- if (latestRuntime.participation.effectiveSnapPoints.hasSnapPoints) {
41
- primeSnapPinchRelease(latestRuntime);
42
- }
43
- startPinchBase(latestRuntime, event);
44
- resetSensitivity();
45
- },
46
- [runtime, screenOptions, resetSensitivity],
47
- );
33
+ const onStart = useCallback(() => {
34
+ "worklet";
35
+ const latestRuntime = resolvePinchRuntime(
36
+ runtime.get(),
37
+ screenOptions.get(),
38
+ );
39
+ if (latestRuntime.participation.effectiveSnapPoints.hasSnapPoints) {
40
+ primeSnapPinchRelease(latestRuntime);
41
+ }
42
+ startPinchBase(latestRuntime);
43
+ resetSensitivity();
44
+ }, [runtime, screenOptions, resetSensitivity]);
48
45
 
49
46
  const onUpdate = useCallback(
50
47
  (rawEvent: PinchGestureEvent) => {
@@ -214,7 +214,12 @@ export const useScrollGestureCoordination = (
214
214
  }
215
215
 
216
216
  for (const pinchGesture of pinchGestures) {
217
- gesture = gesture.requireExternalGestureToFail({
217
+ // A pinch must remain possible after the first finger lands. Making
218
+ // native scrolling wait for it to fail therefore stalls ordinary
219
+ // one-finger scrolling until touch-up. Let both recognizers run:
220
+ // the ScrollView can begin immediately, while a second finger can
221
+ // still promote the screen gesture to a pinch.
222
+ gesture = gesture.simultaneousWithExternalGesture({
218
223
  current: pinchGesture as unknown as GestureType,
219
224
  });
220
225
  }
@@ -20,6 +20,8 @@ export const snapshotGestureHandoff = (
20
20
  snapshot.normScale.set(gestures.normScale.get());
21
21
  snapshot.focalX.set(gestures.focalX.get());
22
22
  snapshot.focalY.set(gestures.focalY.get());
23
+ snapshot.pinchOriginX.set(gestures.pinchOriginX.get());
24
+ snapshot.pinchOriginY.set(gestures.pinchOriginY.get());
23
25
  snapshot.rotation.set(gestures.rotation.get());
24
26
  snapshot.raw.x.set(gestures.raw.x.get());
25
27
  snapshot.raw.y.set(gestures.raw.y.get());
@@ -34,6 +34,8 @@ export const clearFocalPoint = (gestures: GestureStoreMap) => {
34
34
  "worklet";
35
35
  gestures.focalX.set(0);
36
36
  gestures.focalY.set(0);
37
+ gestures.pinchOriginX.set(0);
38
+ gestures.pinchOriginY.set(0);
37
39
  };
38
40
 
39
41
  export const clearRawTransformValues = (gestures: GestureStoreMap) => {
@@ -14,7 +14,7 @@ import { resolveScreenVisibilityGate } from "../helpers/visibility-gate";
14
14
  export const useMaybeBlockVisibility = (isFloatingOverlay?: boolean) => {
15
15
  const { height } = useWindowDimensions();
16
16
  const { currentScreenKey } = useDescriptorDerivations();
17
- const { entering, transitionProgress } =
17
+ const { closing, entering, progressAnimating, transitionProgress } =
18
18
  AnimationStore.getBag(currentScreenKey);
19
19
  const { pendingLifecycleStartBlockCount, pendingLifecycleRequestKind } =
20
20
  SystemStore.getBag(currentScreenKey);
@@ -49,6 +49,19 @@ export const useMaybeBlockVisibility = (isFloatingOverlay?: boolean) => {
49
49
  const animatedStyle = useAnimatedStyle(() => {
50
50
  "worklet";
51
51
  const offset = getVisibilityBlockOffset(height);
52
+ // Keep opacity out of normal rendering so effects such as Liquid Glass
53
+ // retain native compositing. Once closing has fully finished, hiding the
54
+ // outgoing screen lets the handoff settle before React removes its host.
55
+ const shouldHideClosedScreen =
56
+ closing.get() === 1 &&
57
+ transitionProgress.get() <= 0 &&
58
+ progressAnimating.get() === 0;
59
+
60
+ if (shouldHideClosedScreen) {
61
+ return {
62
+ opacity: 0,
63
+ };
64
+ }
52
65
 
53
66
  return {
54
67
  transform: [
@@ -71,5 +84,6 @@ export const useMaybeBlockVisibility = (isFloatingOverlay?: boolean) => {
71
84
  return {
72
85
  animatedStyle,
73
86
  animatedProps,
87
+ shouldBlockVisibility,
74
88
  };
75
89
  };
@@ -34,6 +34,7 @@ export type ScreenSlotContextValue = {
34
34
  localStylesMaps: SharedValue<LocalStyleLayers>;
35
35
  nextInterpolatorReady: SharedValue<number>;
36
36
  slotsMap: SharedValue<NormalizedTransitionInterpolatedStyle>;
37
+ visibilityBlocked: SharedValue<boolean>;
37
38
  };
38
39
 
39
40
  export const {
@@ -54,15 +55,16 @@ export const {
54
55
  localStylesMaps,
55
56
  ancestorStylesMap: parentContext?.slotsMap,
56
57
  });
57
- const { animatedStyle, animatedProps } =
58
+ const { animatedStyle, animatedProps, shouldBlockVisibility } =
58
59
  useMaybeBlockVisibility(isFloatingOverlay);
59
60
  const value = useMemo(
60
61
  () => ({
61
62
  localStylesMaps,
62
63
  nextInterpolatorReady,
63
64
  slotsMap,
65
+ visibilityBlocked: shouldBlockVisibility,
64
66
  }),
65
- [localStylesMaps, nextInterpolatorReady, slotsMap],
67
+ [localStylesMaps, nextInterpolatorReady, shouldBlockVisibility, slotsMap],
66
68
  );
67
69
 
68
70
  useLayoutEffect(() => {
@@ -33,7 +33,8 @@ export const registerScreenSlots = (
33
33
  if (
34
34
  previous?.localStylesMaps === slots.localStylesMaps &&
35
35
  previous.nextInterpolatorReady === slots.nextInterpolatorReady &&
36
- previous.slotsMap === slots.slotsMap
36
+ previous.slotsMap === slots.slotsMap &&
37
+ previous.visibilityBlocked === slots.visibilityBlocked
37
38
  ) {
38
39
  return;
39
40
  }
@@ -29,6 +29,8 @@ type GestureSnapshotStoreMap = {
29
29
  normScale: SharedValue<number>;
30
30
  focalX: SharedValue<number>;
31
31
  focalY: SharedValue<number>;
32
+ pinchOriginX: SharedValue<number>;
33
+ pinchOriginY: SharedValue<number>;
32
34
  rotation: SharedValue<number>;
33
35
  raw: GestureRawStoreMap;
34
36
  active: SharedValue<ActiveGesture | null>;
@@ -53,6 +55,8 @@ export type GestureStoreMap = {
53
55
  normScale: SharedValue<number>;
54
56
  focalX: SharedValue<number>;
55
57
  focalY: SharedValue<number>;
58
+ pinchOriginX: SharedValue<number>;
59
+ pinchOriginY: SharedValue<number>;
56
60
  rotation: SharedValue<number>;
57
61
  raw: GestureRawStoreMap;
58
62
  internal: GestureInternalStoreMap;
@@ -105,6 +109,8 @@ function createGestureBag(): GestureStoreMap {
105
109
  normScale,
106
110
  focalX: makeMutable(0),
107
111
  focalY: makeMutable(0),
112
+ pinchOriginX: makeMutable(0),
113
+ pinchOriginY: makeMutable(0),
108
114
  rotation: makeMutable(0),
109
115
  raw: {
110
116
  x: makeMutable(0),
@@ -130,6 +136,8 @@ function createGestureBag(): GestureStoreMap {
130
136
  normScale: makeMutable(0),
131
137
  focalX: makeMutable(0),
132
138
  focalY: makeMutable(0),
139
+ pinchOriginX: makeMutable(0),
140
+ pinchOriginY: makeMutable(0),
133
141
  rotation: makeMutable(0),
134
142
  raw: {
135
143
  x: makeMutable(0),
@@ -177,6 +185,8 @@ export const GestureStore = createStore<GestureStoreMap>({
177
185
  cancelAnimation(bag.normScale);
178
186
  cancelAnimation(bag.focalX);
179
187
  cancelAnimation(bag.focalY);
188
+ cancelAnimation(bag.pinchOriginX);
189
+ cancelAnimation(bag.pinchOriginY);
180
190
  cancelAnimation(bag.rotation);
181
191
  cancelAnimation(bag.raw.x);
182
192
  cancelAnimation(bag.raw.y);
@@ -198,6 +208,8 @@ export const GestureStore = createStore<GestureStoreMap>({
198
208
  cancelAnimation(bag.internal.snapshot.normScale);
199
209
  cancelAnimation(bag.internal.snapshot.focalX);
200
210
  cancelAnimation(bag.internal.snapshot.focalY);
211
+ cancelAnimation(bag.internal.snapshot.pinchOriginX);
212
+ cancelAnimation(bag.internal.snapshot.pinchOriginY);
201
213
  cancelAnimation(bag.internal.snapshot.rotation);
202
214
  cancelAnimation(bag.internal.snapshot.raw.x);
203
215
  cancelAnimation(bag.internal.snapshot.raw.y);
@@ -98,15 +98,21 @@ export const SystemStore = createStore<SystemStoreState, SystemStoreActions>({
98
98
 
99
99
  blockLifecycleStart() {
100
100
  "worklet";
101
- bag.pendingLifecycleStartBlockCount.set(
102
- bag.pendingLifecycleStartBlockCount.get() + 1,
101
+ bag.pendingLifecycleStartBlockCount.modify(
102
+ <T extends number>(count: T): T => {
103
+ "worklet";
104
+ return (count + 1) as T;
105
+ },
103
106
  );
104
107
  },
105
108
 
106
109
  unblockLifecycleStart() {
107
110
  "worklet";
108
- bag.pendingLifecycleStartBlockCount.set(
109
- Math.max(0, bag.pendingLifecycleStartBlockCount.get() - 1),
111
+ bag.pendingLifecycleStartBlockCount.modify(
112
+ <T extends number>(count: T): T => {
113
+ "worklet";
114
+ return Math.max(0, count - 1) as T;
115
+ },
110
116
  );
111
117
  },
112
118
 
@@ -306,9 +306,9 @@ export type BoundaryTeleportControl =
306
306
 
307
307
  export type TransitionSlotProps = Record<string, unknown> & {
308
308
  /**
309
- * Controls whether a portal-enabled boundary should attach for the current
310
- * interpolator frame. `false` detaches the portal while keeping hostName
311
- * ownership internal.
309
+ * Controls whether a handoff or clipping-escape boundary should attach for
310
+ * the current interpolator frame. `false` detaches the portal while keeping
311
+ * hostName ownership internal.
312
312
  */
313
313
  teleport?: BoundaryTeleportControl;
314
314
  };