react-native-screen-transitions 3.11.3 → 3.13.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. package/lib/commonjs/blank-stack/components/stack-view.js +1 -2
  2. package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -1
  3. package/lib/commonjs/component-stack/components/stack-view.js +1 -2
  4. package/lib/commonjs/component-stack/components/stack-view.js.map +1 -1
  5. package/lib/commonjs/native-stack/views/NativeStackView.native.js +2 -3
  6. package/lib/commonjs/native-stack/views/NativeStackView.native.js.map +1 -1
  7. package/lib/commonjs/shared/adapters/with-screen-transitions/stack-layout.js +1 -1
  8. package/lib/commonjs/shared/adapters/with-screen-transitions/stack-layout.js.map +1 -1
  9. package/lib/commonjs/shared/components/activity/variants/activity-screen.js +1 -1
  10. package/lib/commonjs/shared/components/activity/variants/activity-screen.js.map +1 -1
  11. package/lib/commonjs/shared/components/boundary/components/boundary-lifecycle.js +0 -3
  12. package/lib/commonjs/shared/components/boundary/components/boundary-lifecycle.js.map +1 -1
  13. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-boundary-measurement-request.js +69 -0
  14. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-boundary-measurement-request.js.map +1 -0
  15. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-boundary-presence.js +11 -10
  16. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-boundary-presence.js.map +1 -1
  17. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js +3 -19
  18. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  19. package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js +6 -16
  20. package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js.map +1 -1
  21. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +27 -1
  22. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -1
  23. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +32 -11
  24. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  25. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +8 -1
  26. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -1
  27. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/attachment.js +19 -0
  28. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/attachment.js.map +1 -0
  29. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/host-readiness.js +18 -0
  30. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/host-readiness.js.map +1 -0
  31. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/local-measurement.js +22 -1
  32. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/local-measurement.js.map +1 -1
  33. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +10 -10
  34. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -1
  35. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +18 -6
  36. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  37. package/lib/commonjs/shared/components/overlay/helpers/create-overlay-interpolator-frame.js +30 -0
  38. package/lib/commonjs/shared/components/overlay/helpers/create-overlay-interpolator-frame.js.map +1 -0
  39. package/lib/commonjs/shared/components/overlay/helpers/get-active-overlay.js +40 -22
  40. package/lib/commonjs/shared/components/overlay/helpers/get-active-overlay.js.map +1 -1
  41. package/lib/commonjs/shared/components/overlay/helpers/retain-ready-overlay-resources.js +21 -0
  42. package/lib/commonjs/shared/components/overlay/helpers/retain-ready-overlay-resources.js.map +1 -0
  43. package/lib/commonjs/shared/components/overlay/helpers/run-overlay-slot-interpolator.js +41 -0
  44. package/lib/commonjs/shared/components/overlay/helpers/run-overlay-slot-interpolator.js.map +1 -0
  45. package/lib/commonjs/shared/components/overlay/hooks/use-overlay-slot.js +85 -0
  46. package/lib/commonjs/shared/components/overlay/hooks/use-overlay-slot.js.map +1 -0
  47. package/lib/commonjs/shared/components/overlay/variations/float-overlay.js +14 -65
  48. package/lib/commonjs/shared/components/overlay/variations/float-overlay.js.map +1 -1
  49. package/lib/commonjs/shared/components/overlay/variations/overlay-host.js +89 -16
  50. package/lib/commonjs/shared/components/overlay/variations/overlay-host.js.map +1 -1
  51. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js +4 -1
  52. package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
  53. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js +4 -0
  54. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  55. package/lib/commonjs/shared/providers/screen/animation/animation.provider.js +14 -8
  56. package/lib/commonjs/shared/providers/screen/animation/animation.provider.js.map +1 -1
  57. package/lib/commonjs/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +6 -8
  58. package/lib/commonjs/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +1 -1
  59. package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js +5 -1
  60. package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
  61. package/lib/commonjs/shared/providers/screen/animation/helpers/interpolator-participation.js +9 -0
  62. package/lib/commonjs/shared/providers/screen/animation/helpers/interpolator-participation.js.map +1 -0
  63. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js +13 -2
  64. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  65. package/lib/commonjs/shared/providers/screen/animation/use-screen-animation.js +8 -2
  66. package/lib/commonjs/shared/providers/screen/animation/use-screen-animation.js.map +1 -1
  67. package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js +40 -8
  68. package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  69. package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +2 -0
  70. package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
  71. package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-structural-ancestor-keys.js +12 -0
  72. package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-structural-ancestor-keys.js.map +1 -0
  73. package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js +9 -5
  74. package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
  75. package/lib/commonjs/shared/providers/screen/gestures/hooks/use-screen-gesture-config.js +1 -3
  76. package/lib/commonjs/shared/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
  77. package/lib/commonjs/shared/providers/screen/gestures/ownership/{use-walk-up-and-register-shadowing-claims.js → gesture-ownership-bridge.js} +36 -50
  78. package/lib/commonjs/shared/providers/screen/gestures/ownership/gesture-ownership-bridge.js.map +1 -0
  79. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js +1 -0
  80. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  81. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-release.js +9 -2
  82. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-release.js.map +1 -1
  83. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js +1 -0
  84. package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js.map +1 -1
  85. package/lib/commonjs/shared/providers/screen/styles/constants.js +3 -1
  86. package/lib/commonjs/shared/providers/screen/styles/constants.js.map +1 -1
  87. package/lib/commonjs/shared/providers/screen/styles/helpers/transition-visual-state.js +20 -1
  88. package/lib/commonjs/shared/providers/screen/styles/helpers/transition-visual-state.js.map +1 -1
  89. package/lib/commonjs/shared/providers/screen/styles/helpers/visibility-block-ownership.js +19 -0
  90. package/lib/commonjs/shared/providers/screen/styles/helpers/visibility-block-ownership.js.map +1 -0
  91. package/lib/commonjs/shared/providers/screen/styles/hooks/slot-resolvers.js +14 -15
  92. package/lib/commonjs/shared/providers/screen/styles/hooks/slot-resolvers.js.map +1 -1
  93. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +34 -11
  94. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  95. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +35 -15
  96. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  97. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js +31 -33
  98. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js.map +1 -1
  99. package/lib/commonjs/shared/providers/stack/blank-stack-state/helpers/resolve-presented-index.js +18 -0
  100. package/lib/commonjs/shared/providers/stack/blank-stack-state/helpers/resolve-presented-index.js.map +1 -0
  101. package/lib/commonjs/shared/providers/stack/blank-stack.provider.js +2 -1
  102. package/lib/commonjs/shared/providers/stack/blank-stack.provider.js.map +1 -1
  103. package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js +11 -1
  104. package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
  105. package/lib/commonjs/shared/stores/bounds/internals/clear.js +6 -0
  106. package/lib/commonjs/shared/stores/bounds/internals/clear.js.map +1 -1
  107. package/lib/commonjs/shared/stores/bounds/internals/coordinator.js +298 -0
  108. package/lib/commonjs/shared/stores/bounds/internals/coordinator.js.map +1 -0
  109. package/lib/commonjs/shared/stores/bounds/internals/entries.js +0 -27
  110. package/lib/commonjs/shared/stores/bounds/internals/entries.js.map +1 -1
  111. package/lib/commonjs/shared/stores/bounds/internals/links.js +22 -32
  112. package/lib/commonjs/shared/stores/bounds/internals/links.js.map +1 -1
  113. package/lib/commonjs/shared/stores/bounds/internals/screen-graph.js +45 -0
  114. package/lib/commonjs/shared/stores/bounds/internals/screen-graph.js.map +1 -0
  115. package/lib/commonjs/shared/stores/bounds/internals/state.js +4 -1
  116. package/lib/commonjs/shared/stores/bounds/internals/state.js.map +1 -1
  117. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js +7 -3
  118. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  119. package/lib/commonjs/shared/utils/bounds/helpers/create-link-accessor.js +11 -0
  120. package/lib/commonjs/shared/utils/bounds/helpers/create-link-accessor.js.map +1 -1
  121. package/lib/commonjs/shared/utils/bounds/helpers/prepare-bound-styles.js +6 -2
  122. package/lib/commonjs/shared/utils/bounds/helpers/prepare-bound-styles.js.map +1 -1
  123. package/lib/commonjs/shared/utils/bounds/helpers/resolve-bounds-pair-key.js.map +1 -1
  124. package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js +11 -5
  125. package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
  126. package/lib/commonjs/shared/utils/create-provider.js +119 -10
  127. package/lib/commonjs/shared/utils/create-provider.js.map +1 -1
  128. package/lib/module/blank-stack/components/stack-view.js +1 -2
  129. package/lib/module/blank-stack/components/stack-view.js.map +1 -1
  130. package/lib/module/component-stack/components/stack-view.js +1 -2
  131. package/lib/module/component-stack/components/stack-view.js.map +1 -1
  132. package/lib/module/native-stack/views/NativeStackView.native.js +2 -3
  133. package/lib/module/native-stack/views/NativeStackView.native.js.map +1 -1
  134. package/lib/module/shared/adapters/with-screen-transitions/stack-layout.js +1 -1
  135. package/lib/module/shared/adapters/with-screen-transitions/stack-layout.js.map +1 -1
  136. package/lib/module/shared/components/activity/variants/activity-screen.js +1 -1
  137. package/lib/module/shared/components/activity/variants/activity-screen.js.map +1 -1
  138. package/lib/module/shared/components/boundary/components/boundary-lifecycle.js +0 -3
  139. package/lib/module/shared/components/boundary/components/boundary-lifecycle.js.map +1 -1
  140. package/lib/module/shared/components/boundary/hooks/lifecycles/use-boundary-measurement-request.js +64 -0
  141. package/lib/module/shared/components/boundary/hooks/lifecycles/use-boundary-measurement-request.js.map +1 -0
  142. package/lib/module/shared/components/boundary/hooks/lifecycles/use-boundary-presence.js +11 -10
  143. package/lib/module/shared/components/boundary/hooks/lifecycles/use-boundary-presence.js.map +1 -1
  144. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js +3 -19
  145. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  146. package/lib/module/shared/components/boundary/hooks/use-measurer.js +6 -16
  147. package/lib/module/shared/components/boundary/hooks/use-measurer.js.map +1 -1
  148. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +24 -0
  149. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -1
  150. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +33 -12
  151. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  152. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +8 -1
  153. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -1
  154. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/attachment.js +14 -0
  155. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/attachment.js.map +1 -0
  156. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/host-readiness.js +13 -0
  157. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/host-readiness.js.map +1 -0
  158. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/local-measurement.js +19 -0
  159. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/local-measurement.js.map +1 -1
  160. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +10 -10
  161. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -1
  162. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +18 -6
  163. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  164. package/lib/module/shared/components/overlay/helpers/create-overlay-interpolator-frame.js +25 -0
  165. package/lib/module/shared/components/overlay/helpers/create-overlay-interpolator-frame.js.map +1 -0
  166. package/lib/module/shared/components/overlay/helpers/get-active-overlay.js +37 -21
  167. package/lib/module/shared/components/overlay/helpers/get-active-overlay.js.map +1 -1
  168. package/lib/module/shared/components/overlay/helpers/retain-ready-overlay-resources.js +17 -0
  169. package/lib/module/shared/components/overlay/helpers/retain-ready-overlay-resources.js.map +1 -0
  170. package/lib/module/shared/components/overlay/helpers/run-overlay-slot-interpolator.js +36 -0
  171. package/lib/module/shared/components/overlay/helpers/run-overlay-slot-interpolator.js.map +1 -0
  172. package/lib/module/shared/components/overlay/hooks/use-overlay-slot.js +80 -0
  173. package/lib/module/shared/components/overlay/hooks/use-overlay-slot.js.map +1 -0
  174. package/lib/module/shared/components/overlay/variations/float-overlay.js +15 -66
  175. package/lib/module/shared/components/overlay/variations/float-overlay.js.map +1 -1
  176. package/lib/module/shared/components/overlay/variations/overlay-host.js +90 -18
  177. package/lib/module/shared/components/overlay/variations/overlay-host.js.map +1 -1
  178. package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js +4 -1
  179. package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
  180. package/lib/module/shared/providers/helpers/measured-bounds-writes.js +4 -0
  181. package/lib/module/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  182. package/lib/module/shared/providers/screen/animation/animation.provider.js +14 -8
  183. package/lib/module/shared/providers/screen/animation/animation.provider.js.map +1 -1
  184. package/lib/module/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +6 -8
  185. package/lib/module/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +1 -1
  186. package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js +5 -1
  187. package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
  188. package/lib/module/shared/providers/screen/animation/helpers/interpolator-participation.js +4 -0
  189. package/lib/module/shared/providers/screen/animation/helpers/interpolator-participation.js.map +1 -0
  190. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js +13 -2
  191. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  192. package/lib/module/shared/providers/screen/animation/use-screen-animation.js +8 -2
  193. package/lib/module/shared/providers/screen/animation/use-screen-animation.js.map +1 -1
  194. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js +41 -9
  195. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  196. package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +2 -0
  197. package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
  198. package/lib/module/shared/providers/screen/descriptors/helpers/derive-structural-ancestor-keys.js +7 -0
  199. package/lib/module/shared/providers/screen/descriptors/helpers/derive-structural-ancestor-keys.js.map +1 -0
  200. package/lib/module/shared/providers/screen/gestures/gestures.provider.js +10 -6
  201. package/lib/module/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
  202. package/lib/module/shared/providers/screen/gestures/hooks/use-screen-gesture-config.js +1 -3
  203. package/lib/module/shared/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
  204. package/lib/module/shared/providers/screen/gestures/ownership/{use-walk-up-and-register-shadowing-claims.js → gesture-ownership-bridge.js} +35 -49
  205. package/lib/module/shared/providers/screen/gestures/ownership/gesture-ownership-bridge.js.map +1 -0
  206. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js +1 -0
  207. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  208. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-release.js +9 -2
  209. package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-release.js.map +1 -1
  210. package/lib/module/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js +1 -0
  211. package/lib/module/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js.map +1 -1
  212. package/lib/module/shared/providers/screen/styles/constants.js +3 -1
  213. package/lib/module/shared/providers/screen/styles/constants.js.map +1 -1
  214. package/lib/module/shared/providers/screen/styles/helpers/transition-visual-state.js +18 -0
  215. package/lib/module/shared/providers/screen/styles/helpers/transition-visual-state.js.map +1 -1
  216. package/lib/module/shared/providers/screen/styles/helpers/visibility-block-ownership.js +14 -0
  217. package/lib/module/shared/providers/screen/styles/helpers/visibility-block-ownership.js.map +1 -0
  218. package/lib/module/shared/providers/screen/styles/hooks/slot-resolvers.js +14 -15
  219. package/lib/module/shared/providers/screen/styles/hooks/slot-resolvers.js.map +1 -1
  220. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +35 -12
  221. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  222. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +35 -15
  223. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  224. package/lib/module/shared/providers/screen/styles/slot.provider.js +30 -33
  225. package/lib/module/shared/providers/screen/styles/slot.provider.js.map +1 -1
  226. package/lib/module/shared/providers/stack/blank-stack-state/helpers/resolve-presented-index.js +14 -0
  227. package/lib/module/shared/providers/stack/blank-stack-state/helpers/resolve-presented-index.js.map +1 -0
  228. package/lib/module/shared/providers/stack/blank-stack.provider.js +2 -1
  229. package/lib/module/shared/providers/stack/blank-stack.provider.js.map +1 -1
  230. package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js +9 -0
  231. package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
  232. package/lib/module/shared/stores/bounds/internals/clear.js +7 -1
  233. package/lib/module/shared/stores/bounds/internals/clear.js.map +1 -1
  234. package/lib/module/shared/stores/bounds/internals/coordinator.js +286 -0
  235. package/lib/module/shared/stores/bounds/internals/coordinator.js.map +1 -0
  236. package/lib/module/shared/stores/bounds/internals/entries.js +1 -27
  237. package/lib/module/shared/stores/bounds/internals/entries.js.map +1 -1
  238. package/lib/module/shared/stores/bounds/internals/links.js +24 -32
  239. package/lib/module/shared/stores/bounds/internals/links.js.map +1 -1
  240. package/lib/module/shared/stores/bounds/internals/screen-graph.js +39 -0
  241. package/lib/module/shared/stores/bounds/internals/screen-graph.js.map +1 -0
  242. package/lib/module/shared/stores/bounds/internals/state.js +3 -0
  243. package/lib/module/shared/stores/bounds/internals/state.js.map +1 -1
  244. package/lib/module/shared/types/animation.types.js.map +1 -1
  245. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js +7 -3
  246. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  247. package/lib/module/shared/utils/bounds/helpers/create-link-accessor.js +11 -0
  248. package/lib/module/shared/utils/bounds/helpers/create-link-accessor.js.map +1 -1
  249. package/lib/module/shared/utils/bounds/helpers/prepare-bound-styles.js +6 -2
  250. package/lib/module/shared/utils/bounds/helpers/prepare-bound-styles.js.map +1 -1
  251. package/lib/module/shared/utils/bounds/helpers/resolve-bounds-pair-key.js.map +1 -1
  252. package/lib/module/shared/utils/bounds/helpers/styles/compute.js +11 -5
  253. package/lib/module/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
  254. package/lib/module/shared/utils/create-provider.js +119 -10
  255. package/lib/module/shared/utils/create-provider.js.map +1 -1
  256. package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
  257. package/lib/typescript/blank-stack/types.d.ts +1 -1
  258. package/lib/typescript/blank-stack/types.d.ts.map +1 -1
  259. package/lib/typescript/component-stack/components/stack-view.d.ts.map +1 -1
  260. package/lib/typescript/component-stack/types.d.ts +1 -1
  261. package/lib/typescript/component-stack/types.d.ts.map +1 -1
  262. package/lib/typescript/native-stack/types.d.ts +1 -1
  263. package/lib/typescript/native-stack/types.d.ts.map +1 -1
  264. package/lib/typescript/native-stack/views/NativeStackView.native.d.ts.map +1 -1
  265. package/lib/typescript/native-stack/views/useHeaderConfigProps.d.ts +1 -1
  266. package/lib/typescript/shared/components/boundary/components/boundary-lifecycle.d.ts.map +1 -1
  267. package/lib/typescript/shared/components/boundary/hooks/lifecycles/{use-initial-source-measurement.d.ts → use-boundary-measurement-request.d.ts} +4 -3
  268. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-boundary-measurement-request.d.ts.map +1 -0
  269. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-boundary-presence.d.ts.map +1 -1
  270. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts +1 -3
  271. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts.map +1 -1
  272. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts.map +1 -1
  273. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts +12 -0
  274. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts.map +1 -1
  275. package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts.map +1 -1
  276. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.d.ts.map +1 -1
  277. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/attachment.d.ts +8 -0
  278. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/attachment.d.ts.map +1 -0
  279. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/host-readiness.d.ts +6 -0
  280. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/host-readiness.d.ts.map +1 -0
  281. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/local-measurement.d.ts +4 -1
  282. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/local-measurement.d.ts.map +1 -1
  283. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts +2 -3
  284. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts.map +1 -1
  285. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -1
  286. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.d.ts +2 -2
  287. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts +1 -1
  288. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts.map +1 -1
  289. package/lib/typescript/shared/components/boundary/types.d.ts +1 -1
  290. package/lib/typescript/shared/components/boundary/types.d.ts.map +1 -1
  291. package/lib/typescript/shared/components/create-transition-aware-component.d.ts +5 -6
  292. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  293. package/lib/typescript/shared/components/overlay/helpers/create-overlay-interpolator-frame.d.ts +7 -0
  294. package/lib/typescript/shared/components/overlay/helpers/create-overlay-interpolator-frame.d.ts.map +1 -0
  295. package/lib/typescript/shared/components/overlay/helpers/get-active-overlay.d.ts +17 -7
  296. package/lib/typescript/shared/components/overlay/helpers/get-active-overlay.d.ts.map +1 -1
  297. package/lib/typescript/shared/components/overlay/helpers/retain-ready-overlay-resources.d.ts +11 -0
  298. package/lib/typescript/shared/components/overlay/helpers/retain-ready-overlay-resources.d.ts.map +1 -0
  299. package/lib/typescript/shared/components/overlay/helpers/run-overlay-slot-interpolator.d.ts +8 -0
  300. package/lib/typescript/shared/components/overlay/helpers/run-overlay-slot-interpolator.d.ts.map +1 -0
  301. package/lib/typescript/shared/components/overlay/hooks/use-overlay-slot.d.ts +15 -0
  302. package/lib/typescript/shared/components/overlay/hooks/use-overlay-slot.d.ts.map +1 -0
  303. package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts +1 -1
  304. package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts.map +1 -1
  305. package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts +7 -6
  306. package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts.map +1 -1
  307. package/lib/typescript/shared/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts.map +1 -1
  308. package/lib/typescript/shared/index.d.ts +658 -710
  309. package/lib/typescript/shared/index.d.ts.map +1 -1
  310. package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts.map +1 -1
  311. package/lib/typescript/shared/providers/screen/animation/animation.provider.d.ts +4 -0
  312. package/lib/typescript/shared/providers/screen/animation/animation.provider.d.ts.map +1 -1
  313. package/lib/typescript/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.d.ts +4 -1
  314. package/lib/typescript/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.d.ts.map +1 -1
  315. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/index.d.ts.map +1 -1
  316. package/lib/typescript/shared/providers/screen/animation/helpers/interpolator-participation.d.ts +3 -0
  317. package/lib/typescript/shared/providers/screen/animation/helpers/interpolator-participation.d.ts.map +1 -0
  318. package/lib/typescript/shared/providers/screen/animation/helpers/pipeline.d.ts +2 -1
  319. package/lib/typescript/shared/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
  320. package/lib/typescript/shared/providers/screen/animation/use-screen-animation.d.ts.map +1 -1
  321. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  322. package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts +4 -0
  323. package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts.map +1 -1
  324. package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-structural-ancestor-keys.d.ts +5 -0
  325. package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-structural-ancestor-keys.d.ts.map +1 -0
  326. package/lib/typescript/shared/providers/screen/gestures/gestures.provider.d.ts.map +1 -1
  327. package/lib/typescript/shared/providers/screen/gestures/hooks/use-screen-gesture-config.d.ts +2 -2
  328. package/lib/typescript/shared/providers/screen/gestures/hooks/use-screen-gesture-config.d.ts.map +1 -1
  329. package/lib/typescript/shared/providers/screen/gestures/ownership/gesture-ownership-bridge.d.ts +3 -0
  330. package/lib/typescript/shared/providers/screen/gestures/ownership/gesture-ownership-bridge.d.ts.map +1 -0
  331. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.d.ts.map +1 -1
  332. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-release.d.ts.map +1 -1
  333. package/lib/typescript/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.d.ts.map +1 -1
  334. package/lib/typescript/shared/providers/screen/gestures/types.d.ts +1 -0
  335. package/lib/typescript/shared/providers/screen/gestures/types.d.ts.map +1 -1
  336. package/lib/typescript/shared/providers/screen/styles/constants.d.ts.map +1 -1
  337. package/lib/typescript/shared/providers/screen/styles/helpers/transition-visual-state.d.ts +7 -0
  338. package/lib/typescript/shared/providers/screen/styles/helpers/transition-visual-state.d.ts.map +1 -1
  339. package/lib/typescript/shared/providers/screen/styles/helpers/visibility-block-ownership.d.ts +10 -0
  340. package/lib/typescript/shared/providers/screen/styles/helpers/visibility-block-ownership.d.ts.map +1 -0
  341. package/lib/typescript/shared/providers/screen/styles/hooks/slot-resolvers.d.ts +4 -4
  342. package/lib/typescript/shared/providers/screen/styles/hooks/slot-resolvers.d.ts.map +1 -1
  343. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts +1 -1
  344. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
  345. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +10 -4
  346. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  347. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts +6 -5
  348. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts.map +1 -1
  349. package/lib/typescript/shared/providers/stack/blank-stack-state/helpers/resolve-presented-index.d.ts +3 -0
  350. package/lib/typescript/shared/providers/stack/blank-stack-state/helpers/resolve-presented-index.d.ts.map +1 -0
  351. package/lib/typescript/shared/providers/stack/blank-stack.provider.d.ts.map +1 -1
  352. package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts +1 -0
  353. package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts.map +1 -1
  354. package/lib/typescript/shared/stores/bounds/internals/clear.d.ts.map +1 -1
  355. package/lib/typescript/shared/stores/bounds/internals/coordinator.d.ts +36 -0
  356. package/lib/typescript/shared/stores/bounds/internals/coordinator.d.ts.map +1 -0
  357. package/lib/typescript/shared/stores/bounds/internals/entries.d.ts +1 -2
  358. package/lib/typescript/shared/stores/bounds/internals/entries.d.ts.map +1 -1
  359. package/lib/typescript/shared/stores/bounds/internals/links.d.ts +1 -3
  360. package/lib/typescript/shared/stores/bounds/internals/links.d.ts.map +1 -1
  361. package/lib/typescript/shared/stores/bounds/internals/screen-graph.d.ts +5 -0
  362. package/lib/typescript/shared/stores/bounds/internals/screen-graph.d.ts.map +1 -0
  363. package/lib/typescript/shared/stores/bounds/internals/state.d.ts +3 -1
  364. package/lib/typescript/shared/stores/bounds/internals/state.d.ts.map +1 -1
  365. package/lib/typescript/shared/stores/bounds/types.d.ts +13 -1
  366. package/lib/typescript/shared/stores/bounds/types.d.ts.map +1 -1
  367. package/lib/typescript/shared/types/animation.types.d.ts +8 -0
  368. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  369. package/lib/typescript/shared/types/index.d.ts +1 -1
  370. package/lib/typescript/shared/types/index.d.ts.map +1 -1
  371. package/lib/typescript/shared/types/overlay.types.d.ts +26 -11
  372. package/lib/typescript/shared/types/overlay.types.d.ts.map +1 -1
  373. package/lib/typescript/shared/types/screen.types.d.ts +11 -2
  374. package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
  375. package/lib/typescript/shared/utils/bounds/helpers/create-bounds-accessor-core.d.ts.map +1 -1
  376. package/lib/typescript/shared/utils/bounds/helpers/create-link-accessor.d.ts.map +1 -1
  377. package/lib/typescript/shared/utils/bounds/helpers/prepare-bound-styles.d.ts.map +1 -1
  378. package/lib/typescript/shared/utils/bounds/helpers/resolve-bounds-pair-key.d.ts.map +1 -1
  379. package/lib/typescript/shared/utils/bounds/helpers/styles/compute.d.ts.map +1 -1
  380. package/lib/typescript/shared/utils/create-provider.d.ts +21 -6
  381. package/lib/typescript/shared/utils/create-provider.d.ts.map +1 -1
  382. package/package.json +1 -1
  383. package/src/blank-stack/components/stack-view.tsx +1 -4
  384. package/src/blank-stack/types.ts +8 -2
  385. package/src/component-stack/components/stack-view.tsx +1 -4
  386. package/src/component-stack/types.ts +8 -2
  387. package/src/native-stack/types.ts +8 -2
  388. package/src/native-stack/views/NativeStackView.native.tsx +3 -9
  389. package/src/shared/adapters/with-screen-transitions/stack-layout.tsx +1 -1
  390. package/src/shared/components/activity/variants/activity-screen.tsx +1 -1
  391. package/src/shared/components/boundary/components/boundary-lifecycle.tsx +0 -6
  392. package/src/shared/components/boundary/hooks/lifecycles/use-boundary-measurement-request.ts +102 -0
  393. package/src/shared/components/boundary/hooks/lifecycles/use-boundary-presence.ts +20 -11
  394. package/src/shared/components/boundary/hooks/use-boundary-measurement.ts +3 -22
  395. package/src/shared/components/boundary/hooks/use-measurer.ts +5 -20
  396. package/src/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.ts +40 -0
  397. package/src/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts +75 -22
  398. package/src/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.tsx +10 -1
  399. package/src/shared/components/boundary/portal/components/boundary-portal/helpers/attachment.ts +19 -0
  400. package/src/shared/components/boundary/portal/components/boundary-portal/helpers/host-readiness.ts +14 -0
  401. package/src/shared/components/boundary/portal/components/boundary-portal/helpers/local-measurement.ts +36 -1
  402. package/src/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.ts +22 -13
  403. package/src/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +26 -9
  404. package/src/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.ts +1 -1
  405. package/src/shared/components/boundary/types.ts +1 -1
  406. package/src/shared/components/overlay/helpers/create-overlay-interpolator-frame.ts +29 -0
  407. package/src/shared/components/overlay/helpers/get-active-overlay.ts +62 -20
  408. package/src/shared/components/overlay/helpers/retain-ready-overlay-resources.ts +38 -0
  409. package/src/shared/components/overlay/helpers/run-overlay-slot-interpolator.ts +48 -0
  410. package/src/shared/components/overlay/hooks/use-overlay-slot.ts +103 -0
  411. package/src/shared/components/overlay/variations/float-overlay.tsx +22 -64
  412. package/src/shared/components/overlay/variations/overlay-host.tsx +135 -28
  413. package/src/shared/components/screen-lifecycle/hooks/use-close-transition-intent.ts +5 -1
  414. package/src/shared/index.ts +1 -0
  415. package/src/shared/providers/helpers/measured-bounds-writes.ts +5 -0
  416. package/src/shared/providers/screen/animation/animation.provider.tsx +31 -12
  417. package/src/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.ts +15 -9
  418. package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/index.ts +18 -3
  419. package/src/shared/providers/screen/animation/helpers/interpolator-participation.ts +6 -0
  420. package/src/shared/providers/screen/animation/helpers/pipeline.ts +54 -32
  421. package/src/shared/providers/screen/animation/use-screen-animation.tsx +12 -2
  422. package/src/shared/providers/screen/descriptors/descriptors.provider.tsx +80 -14
  423. package/src/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.ts +6 -0
  424. package/src/shared/providers/screen/descriptors/helpers/derive-structural-ancestor-keys.ts +13 -0
  425. package/src/shared/providers/screen/gestures/gestures.provider.tsx +18 -7
  426. package/src/shared/providers/screen/gestures/hooks/use-screen-gesture-config.ts +4 -4
  427. package/src/shared/providers/screen/gestures/ownership/{use-walk-up-and-register-shadowing-claims.ts → gesture-ownership-bridge.tsx} +44 -54
  428. package/src/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.ts +1 -0
  429. package/src/shared/providers/screen/gestures/pan/behavior/pan-release.ts +12 -2
  430. package/src/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.ts +1 -0
  431. package/src/shared/providers/screen/gestures/types.ts +1 -0
  432. package/src/shared/providers/screen/styles/constants.ts +2 -0
  433. package/src/shared/providers/screen/styles/helpers/transition-visual-state.ts +26 -0
  434. package/src/shared/providers/screen/styles/helpers/visibility-block-ownership.ts +16 -0
  435. package/src/shared/providers/screen/styles/hooks/slot-resolvers.tsx +17 -5
  436. package/src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +51 -12
  437. package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +40 -15
  438. package/src/shared/providers/screen/styles/slot.provider.tsx +60 -70
  439. package/src/shared/providers/stack/blank-stack-state/helpers/resolve-presented-index.ts +22 -0
  440. package/src/shared/providers/stack/blank-stack.provider.tsx +6 -1
  441. package/src/shared/stores/bounds/helpers/link-pairs.helpers.ts +12 -0
  442. package/src/shared/stores/bounds/internals/clear.ts +12 -1
  443. package/src/shared/stores/bounds/internals/coordinator.ts +403 -0
  444. package/src/shared/stores/bounds/internals/entries.ts +1 -38
  445. package/src/shared/stores/bounds/internals/links.ts +28 -38
  446. package/src/shared/stores/bounds/internals/screen-graph.ts +45 -0
  447. package/src/shared/stores/bounds/internals/state.ts +10 -1
  448. package/src/shared/stores/bounds/types.ts +19 -1
  449. package/src/shared/types/animation.types.ts +8 -0
  450. package/src/shared/types/index.ts +1 -1
  451. package/src/shared/types/overlay.types.ts +41 -14
  452. package/src/shared/types/screen.types.ts +12 -2
  453. package/src/shared/utils/bounds/helpers/create-bounds-accessor-core.ts +8 -3
  454. package/src/shared/utils/bounds/helpers/create-link-accessor.ts +11 -0
  455. package/src/shared/utils/bounds/helpers/prepare-bound-styles.ts +3 -2
  456. package/src/shared/utils/bounds/helpers/resolve-bounds-pair-key.ts +0 -1
  457. package/src/shared/utils/bounds/helpers/styles/compute.ts +12 -5
  458. package/src/shared/utils/create-provider.tsx +221 -19
  459. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +0 -177
  460. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +0 -1
  461. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js +0 -49
  462. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js.map +0 -1
  463. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js +0 -69
  464. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +0 -1
  465. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js +0 -68
  466. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js.map +0 -1
  467. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js +0 -97
  468. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js.map +0 -1
  469. package/lib/commonjs/shared/components/boundary/utils/source-signals.js +0 -43
  470. package/lib/commonjs/shared/components/boundary/utils/source-signals.js.map +0 -1
  471. package/lib/commonjs/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js +0 -29
  472. package/lib/commonjs/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +0 -1
  473. package/lib/commonjs/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +0 -1
  474. package/lib/commonjs/shared/providers/screen/styles/components/floating-overlay-layer.js +0 -28
  475. package/lib/commonjs/shared/providers/screen/styles/components/floating-overlay-layer.js.map +0 -1
  476. package/lib/commonjs/shared/providers/screen/styles/stores/slot-references.store.js +0 -53
  477. package/lib/commonjs/shared/providers/screen/styles/stores/slot-references.store.js.map +0 -1
  478. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +0 -173
  479. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +0 -1
  480. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js +0 -44
  481. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js.map +0 -1
  482. package/lib/module/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js +0 -64
  483. package/lib/module/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +0 -1
  484. package/lib/module/shared/components/boundary/utils/destination-signals.js +0 -63
  485. package/lib/module/shared/components/boundary/utils/destination-signals.js.map +0 -1
  486. package/lib/module/shared/components/boundary/utils/refresh-signals.js +0 -92
  487. package/lib/module/shared/components/boundary/utils/refresh-signals.js.map +0 -1
  488. package/lib/module/shared/components/boundary/utils/source-signals.js +0 -38
  489. package/lib/module/shared/components/boundary/utils/source-signals.js.map +0 -1
  490. package/lib/module/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js +0 -25
  491. package/lib/module/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +0 -1
  492. package/lib/module/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +0 -1
  493. package/lib/module/shared/providers/screen/styles/components/floating-overlay-layer.js +0 -24
  494. package/lib/module/shared/providers/screen/styles/components/floating-overlay-layer.js.map +0 -1
  495. package/lib/module/shared/providers/screen/styles/stores/slot-references.store.js +0 -47
  496. package/lib/module/shared/providers/screen/styles/stores/slot-references.store.js.map +0 -1
  497. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts +0 -10
  498. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts.map +0 -1
  499. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.d.ts.map +0 -1
  500. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.d.ts +0 -10
  501. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.d.ts.map +0 -1
  502. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts +0 -16
  503. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts.map +0 -1
  504. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts +0 -19
  505. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts.map +0 -1
  506. package/lib/typescript/shared/components/boundary/utils/source-signals.d.ts +0 -14
  507. package/lib/typescript/shared/components/boundary/utils/source-signals.d.ts.map +0 -1
  508. package/lib/typescript/shared/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts +0 -6
  509. package/lib/typescript/shared/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts.map +0 -1
  510. package/lib/typescript/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.d.ts +0 -14
  511. package/lib/typescript/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.d.ts.map +0 -1
  512. package/lib/typescript/shared/providers/screen/styles/components/floating-overlay-layer.d.ts +0 -7
  513. package/lib/typescript/shared/providers/screen/styles/components/floating-overlay-layer.d.ts.map +0 -1
  514. package/lib/typescript/shared/providers/screen/styles/stores/slot-references.store.d.ts +0 -6
  515. package/lib/typescript/shared/providers/screen/styles/stores/slot-references.store.d.ts.map +0 -1
  516. package/src/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts +0 -267
  517. package/src/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.ts +0 -51
  518. package/src/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.ts +0 -90
  519. package/src/shared/components/boundary/utils/destination-signals.ts +0 -75
  520. package/src/shared/components/boundary/utils/refresh-signals.ts +0 -164
  521. package/src/shared/components/boundary/utils/source-signals.ts +0 -51
  522. package/src/shared/providers/screen/descriptors/helpers/get-ancestor-keys.ts +0 -28
  523. package/src/shared/providers/screen/styles/components/floating-overlay-layer.tsx +0 -29
  524. package/src/shared/providers/screen/styles/stores/slot-references.store.ts +0 -72
@@ -30,9 +30,9 @@ const findShadowedDirections = (
30
30
  ) => {
31
31
  const shadowedDirections: Direction[] = [];
32
32
 
33
- for (const dir of DIRECTIONS) {
34
- if (claimedDirections[dir] && ancestorDirections[dir]) {
35
- shadowedDirections.push(dir);
33
+ for (const direction of DIRECTIONS) {
34
+ if (claimedDirections[direction] && ancestorDirections[direction]) {
35
+ shadowedDirections.push(direction);
36
36
  }
37
37
  }
38
38
 
@@ -70,8 +70,8 @@ const registerShadowingClaims = (
70
70
 
71
71
  for (const { ancestor, directions } of shadowedAncestors) {
72
72
  const newClaims = { ...ancestor.childDirectionClaims.get() };
73
- for (const dir of directions) {
74
- newClaims[dir] = { routeKey: currentScreenKey, isDismissing };
73
+ for (const direction of directions) {
74
+ newClaims[direction] = { routeKey: currentScreenKey, isDismissing };
75
75
  }
76
76
  ancestor.childDirectionClaims.set(newClaims);
77
77
  }
@@ -86,10 +86,9 @@ const clearShadowingClaims = (
86
86
  const newClaims = { ...currentClaims };
87
87
  let needsUpdate = false;
88
88
 
89
- for (const dir of directions) {
90
- // Only remove claims written by this screen; a newer descendant may own it now.
91
- if (currentClaims[dir]?.routeKey === currentScreenKey) {
92
- newClaims[dir] = null;
89
+ for (const direction of directions) {
90
+ if (currentClaims[direction]?.routeKey === currentScreenKey) {
91
+ newClaims[direction] = null;
93
92
  needsUpdate = true;
94
93
  }
95
94
  }
@@ -121,51 +120,32 @@ const getDescriptorClaimedDirections = (
121
120
  }).participation.claimedDirections;
122
121
  };
123
122
 
124
- /**
125
- * Registers this screen with ancestors that claim the same direction.
126
- *
127
- * Example, when C is top-most:
128
- * A claims vertical
129
- * └─ B claims horizontal
130
- * └─ C claims vertical
131
- *
132
- * C walks up the tree and writes itself into A.childDirectionClaims.vertical.
133
- * B is skipped because it does not claim vertical.
134
- */
135
- export function useWalkUpAndRegisterShadowingClaims(
136
- claimedDirections: ClaimedDirections,
137
- ): void {
138
- const parentContext = useGestureStore();
123
+ const requireGestureContext = (
124
+ gestureContext: GestureContextType | null,
125
+ ): GestureContextType => {
126
+ if (!gestureContext) {
127
+ throw new Error(
128
+ "GestureOwnershipBridge must be rendered within a ScreenGestureProvider",
129
+ );
130
+ }
131
+
132
+ return gestureContext;
133
+ };
134
+
135
+ function ActiveGestureOwnershipBridge() {
136
+ const gestureContext = requireGestureContext(useGestureStore());
139
137
  const previous = useDescriptorsStore((store) => store.previous);
140
- const isTopMostScreen = useDescriptorsStore(
141
- (store) => store.derivations.isTopMostScreen,
142
- );
143
- const currentScreenKey = useDescriptorsStore(
144
- (store) => store.derivations.currentScreenKey,
145
- );
146
138
  const isCurrentScreenClosing = useBlankStackStore(
147
- (store) => store?.scenesByKey[currentScreenKey]?.activity === "closing",
139
+ (store) =>
140
+ store?.scenesByKey[gestureContext.routeKey]?.activity === "closing",
148
141
  );
149
-
150
- /*
151
- * We want to calculate effective claimed directions as claimedDirections is not enough for us.
152
- * What this solves is lingering claimed directions when a screen is closing.
153
- *
154
- * Overlay claims horizontal
155
- * └─ A has no local horizontal claim
156
- * └─ B claims horizontal (closing)
157
- * └─ C claims horizontal (closing)
158
- *
159
- * Closing screens are still mounted, so they can still block parent gestures.
160
- * But they cannot receive touches anymore.
161
- *
162
- * So when B/C are closing and the user is really touching A, B/C should not
163
- * keep blocking the parent with their own gesture config.
164
- *
165
- * A closing screen should act like the visible screen underneath it:
166
- * - if the screen underneath claims the gesture, keep blocking the parent
167
- * - if the screen underneath does not claim it, let the parent handle it
168
- */
142
+ const {
143
+ claimedDirections,
144
+ gestureContext: parentContext,
145
+ routeKey: currentScreenKey,
146
+ } = gestureContext;
147
+ // A retained closing screen cannot receive touches, so its ownership must
148
+ // mirror the visible screen underneath instead of blocking an ancestor.
169
149
  const effectiveClaimedDirections = useMemo(
170
150
  () =>
171
151
  resolveShadowingClaimDirections({
@@ -178,14 +158,13 @@ export function useWalkUpAndRegisterShadowingClaims(
178
158
  }),
179
159
  [isCurrentScreenClosing, claimedDirections, previous, parentContext],
180
160
  );
181
-
182
161
  const shadowedAncestors = useMemo(
183
162
  () => findShadowedAncestors(parentContext, effectiveClaimedDirections),
184
163
  [parentContext, effectiveClaimedDirections],
185
164
  );
186
165
 
187
166
  useLayoutEffect(() => {
188
- if (!isTopMostScreen || !shadowedAncestors.length) {
167
+ if (!shadowedAncestors.length) {
189
168
  return;
190
169
  }
191
170
 
@@ -194,5 +173,16 @@ export function useWalkUpAndRegisterShadowingClaims(
194
173
  return () => {
195
174
  clearShadowingClaims(shadowedAncestors, currentScreenKey);
196
175
  };
197
- }, [shadowedAncestors, currentScreenKey, isTopMostScreen]);
176
+ }, [shadowedAncestors, currentScreenKey]);
177
+
178
+ return null;
179
+ }
180
+
181
+ /** Keeps gesture ownership subscriptions attached only to participating screens. */
182
+ export function GestureOwnershipBridge() {
183
+ const isTopMostScreen = useDescriptorsStore(
184
+ (store) => store.derivations.isTopMostScreen,
185
+ );
186
+
187
+ return isTopMostScreen ? <ActiveGestureOwnershipBridge /> : null;
198
188
  }
@@ -109,6 +109,7 @@ export const finalizePanRelease = (
109
109
  : {
110
110
  target: animations.transitionProgress.get(),
111
111
  shouldDismiss: false,
112
+ isCancelled: true,
112
113
  initialVelocity: 0,
113
114
  transitionSpec: undefined,
114
115
  resetSpec: policy.transitionSpec?.open,
@@ -1,4 +1,5 @@
1
1
  import { clamp } from "react-native-reanimated";
2
+ import { EPSILON } from "../../../../../constants";
2
3
  import {
3
4
  getPanSnapAxisConfigForDirection,
4
5
  isResolvedPanGestureDirection,
@@ -111,6 +112,7 @@ const buildInactivePanSnapRelease = (
111
112
  return {
112
113
  target: stores.animations.transitionProgress.get(),
113
114
  shouldDismiss: false,
115
+ isCancelled: true,
114
116
  initialVelocity: 0,
115
117
  transitionSpec: policy.transitionSpec,
116
118
  resetSpec: policy.transitionSpec?.open,
@@ -146,6 +148,7 @@ export const resolvePanRelease = (
146
148
  return {
147
149
  target: shouldDismiss ? 0 : 1,
148
150
  shouldDismiss,
151
+ isCancelled: !shouldDismiss,
149
152
  initialVelocity: getPanReleaseProgressVelocity({
150
153
  animations,
151
154
  shouldDismiss,
@@ -205,9 +208,16 @@ export const resolveSnapPanRelease = (
205
208
  const shouldDismiss = participation.canDismiss && result.shouldDismiss;
206
209
  const target = shouldDismiss ? 0 : result.targetProgress;
207
210
 
211
+ // Compare against the gesture's starting snap so only true snap-backs lose velocity.
212
+ const initialTarget = policy.gestureSnapLocked
213
+ ? (runtime.stores.gestures.internal.lockedSnapPoint.get() ??
214
+ runtime.stores.system.targetProgress.get())
215
+ : runtime.stores.system.targetProgress.get();
216
+
208
217
  return {
209
218
  target,
210
219
  shouldDismiss,
220
+ isCancelled: !shouldDismiss && Math.abs(target - initialTarget) <= EPSILON,
211
221
  initialVelocity: getProgressVelocityTowardTarget({
212
222
  handoffVelocity: getPanReleaseHandoffVelocity(
213
223
  axisVelocity,
@@ -238,7 +248,7 @@ export const buildPanReleasePlan = (
238
248
  "worklet";
239
249
  const { policy } = runtime;
240
250
  const releaseVelocityScale = Math.max(0, policy.gestureReleaseVelocityScale);
241
- const resetVelocityScale = releaseVelocityScale;
251
+ const resetVelocityScale = release.isCancelled ? 0 : releaseVelocityScale;
242
252
  const resetVelocityX =
243
253
  resetVelocityScale === 0 ? 0 : rawEvent.velocityX * resetVelocityScale;
244
254
  const resetVelocityY =
@@ -264,7 +274,7 @@ export const buildPanReleasePlan = (
264
274
  return {
265
275
  target: release.target,
266
276
  shouldDismiss: release.shouldDismiss,
267
- progressVelocity: release.initialVelocity,
277
+ progressVelocity: release.isCancelled ? 0 : release.initialVelocity,
268
278
  resetVelocityX,
269
279
  resetVelocityY,
270
280
  resetVelocityNormX: resetVelocityX / Math.max(1, dimensions.width),
@@ -97,6 +97,7 @@ export const usePanBehavior = (
97
97
  ? {
98
98
  target: latestRuntime.stores.animations.transitionProgress.get(),
99
99
  shouldDismiss: false,
100
+ isCancelled: true,
100
101
  initialVelocity: 0,
101
102
  transitionSpec: undefined,
102
103
  resetSpec: latestRuntime.policy.transitionSpec?.open,
@@ -172,6 +172,7 @@ export interface PinchTrackState {
172
172
  export interface PanReleaseResult {
173
173
  target: number;
174
174
  shouldDismiss: boolean;
175
+ isCancelled: boolean;
175
176
  initialVelocity: number;
176
177
  commitProgress?: number;
177
178
  transitionSpec: TransitionSpec | undefined;
@@ -62,9 +62,11 @@ export const STYLE_RESET_VALUES: Record<string, unknown> = {
62
62
  export const PROP_RESET_VALUES: Record<string, unknown> = {
63
63
  hostName: PORTAL_HOST_NAME_RESET_VALUE,
64
64
  pointerEvents: "auto",
65
+ teleport: false,
65
66
  };
66
67
 
67
68
  const RESERVED_STYLE_SLOT_IDS = {
69
+ overlay: true,
68
70
  content: true,
69
71
  backdrop: true,
70
72
  surface: true,
@@ -42,3 +42,29 @@ export const hasCloseTransitionFinished = ({
42
42
  "worklet";
43
43
  return !!closing && animationProgress === 0;
44
44
  };
45
+
46
+ export const isScreenInterpolatorReady = ({
47
+ hasInterpolator,
48
+ opening,
49
+ closing,
50
+ pendingLifecycleStartBlockCount,
51
+ animationProgress,
52
+ }: {
53
+ hasInterpolator: boolean;
54
+ opening: boolean;
55
+ closing: number;
56
+ pendingLifecycleStartBlockCount: number;
57
+ animationProgress: number;
58
+ }) => {
59
+ "worklet";
60
+
61
+ return (
62
+ hasInterpolator &&
63
+ !isOpenTransitionBlocked({
64
+ opening,
65
+ pendingLifecycleStartBlockCount,
66
+ animationProgress,
67
+ }) &&
68
+ !hasCloseTransitionFinished({ closing, animationProgress })
69
+ );
70
+ };
@@ -0,0 +1,16 @@
1
+ type VisibilityBlockOwnershipParams = {
2
+ localBlocked: boolean;
3
+ ancestorBlocked: boolean;
4
+ };
5
+
6
+ export const resolveVisibilityBlockOwnership = ({
7
+ localBlocked,
8
+ ancestorBlocked,
9
+ }: VisibilityBlockOwnershipParams) => {
10
+ "worklet";
11
+
12
+ return {
13
+ appliesOffset: localBlocked && !ancestorBlocked,
14
+ effectiveBlocked: localBlocked || ancestorBlocked,
15
+ };
16
+ };
@@ -1,3 +1,4 @@
1
+ import { useRoute } from "@react-navigation/native";
1
2
  import { useMemo } from "react";
2
3
  import { useAnimatedProps, useAnimatedStyle } from "react-native-reanimated";
3
4
  import { NO_PROPS, NO_STYLES } from "../../../../constants";
@@ -7,8 +8,19 @@ import {
7
8
  } from "../helpers/compose-slot-style";
8
9
  import { useScreenSlots } from "../slot.provider";
9
10
 
11
+ const useCurrentScreenSlotsMap = () => {
12
+ const route = useRoute();
13
+ const slotsMap = useScreenSlots(route.key, (store) => store.slotsMap);
14
+
15
+ if (!slotsMap) {
16
+ throw new Error(`ScreenSlot store for route "${route.key}" was not found`);
17
+ }
18
+
19
+ return slotsMap;
20
+ };
21
+
10
22
  export const useSlotStyles = (slotId: string | undefined) => {
11
- const { slotsMap } = useScreenSlots();
23
+ const slotsMap = useCurrentScreenSlotsMap();
12
24
 
13
25
  return useAnimatedStyle(() => {
14
26
  const slot = slotId ? slotsMap.get()[slotId] : undefined;
@@ -26,7 +38,7 @@ export const useComposedSlotStyles = (
26
38
  slotId: string | undefined,
27
39
  style: unknown,
28
40
  ) => {
29
- const { slotsMap } = useScreenSlots();
41
+ const slotsMap = useCurrentScreenSlotsMap();
30
42
  const localTransform = useMemo(
31
43
  () => getLocalTransformForSlotComposition(style),
32
44
  [style],
@@ -50,7 +62,7 @@ export const useComposedSlotStyles = (
50
62
  * target takes the full associated style. Yields `NO_STYLES` when neither is set.
51
63
  */
52
64
  export const useSlotStackingStyles = (slotId: string | undefined) => {
53
- const { slotsMap } = useScreenSlots();
65
+ const slotsMap = useCurrentScreenSlotsMap();
54
66
 
55
67
  return useAnimatedStyle(() => {
56
68
  const baseStyle = slotId ? slotsMap.get()[slotId]?.style : undefined;
@@ -66,7 +78,7 @@ export const useSlotStackingStyles = (slotId: string | undefined) => {
66
78
  };
67
79
 
68
80
  export const useSlotLayoutStyles = (slotId: string | undefined) => {
69
- const { slotsMap } = useScreenSlots();
81
+ const slotsMap = useCurrentScreenSlotsMap();
70
82
 
71
83
  return useAnimatedStyle(() => {
72
84
  const baseStyle = slotId ? slotsMap.get()[slotId]?.style : undefined;
@@ -103,7 +115,7 @@ export const useSlotLayoutStyles = (slotId: string | undefined) => {
103
115
  };
104
116
 
105
117
  export const useSlotProps = (slotId: string | undefined) => {
106
- const { slotsMap } = useScreenSlots();
118
+ const slotsMap = useCurrentScreenSlotsMap();
107
119
 
108
120
  return useAnimatedProps(() => {
109
121
  return (slotId ? slotsMap.get()[slotId]?.props : undefined) ?? NO_PROPS;
@@ -40,6 +40,7 @@ import { stripInterpolatorOptions } from "../helpers/strip-interpolator-options"
40
40
  import {
41
41
  hasCloseTransitionFinished,
42
42
  isOpenTransitionBlocked,
43
+ isScreenInterpolatorReady,
43
44
  } from "../helpers/transition-visual-state";
44
45
  import { resolveInitialDestinationStyleGate } from "../helpers/visibility-gate";
45
46
 
@@ -144,17 +145,59 @@ export const useInterpolatedStylesMap = ({
144
145
  (s) => s.derivations.destinationPairKey,
145
146
  );
146
147
  const screenOptions = useScreenOptionsStore();
147
- const {
148
+ const screenInterpolatorProps = useScreenAnimationStore(
149
+ (store) => store.screenInterpolatorProps,
150
+ );
151
+ const screenInterpolatorPropsRevision = useScreenAnimationStore(
152
+ (store) => store.screenInterpolatorPropsRevision,
153
+ );
154
+ const selectedInterpolatorOptions = useScreenAnimationStore(
155
+ (store) => store.selectedInterpolatorOptions,
156
+ );
157
+ const nextInterpolator = useScreenAnimationStore(
158
+ (store) => store.nextInterpolator,
159
+ );
160
+ const currentInterpolator = useScreenAnimationStore(
161
+ (store) => store.currentInterpolator,
162
+ );
163
+ const ancestorScreenAnimationSources = useScreenAnimationStore(
164
+ (store) => store.ancestorScreenAnimationSources,
165
+ );
166
+ const descendantScreenAnimationSources = useScreenAnimationStore(
167
+ (store) => store.descendantScreenAnimationSources,
168
+ );
169
+ const transition = useBuildTransitionAccessor({
148
170
  screenInterpolatorProps,
149
171
  screenInterpolatorPropsRevision,
150
- selectedInterpolatorOptions,
151
- nextInterpolator,
152
- currentInterpolator,
153
172
  ancestorScreenAnimationSources,
154
173
  descendantScreenAnimationSources,
155
- } = useScreenAnimationStore();
156
- const transition = useBuildTransitionAccessor();
157
- const nextInterpolatorReady = useSharedValue(0);
174
+ });
175
+ const hasCurrentInterpolator = !!currentInterpolator;
176
+ const { closing: currentClosing, entering: currentEntering } =
177
+ AnimationStore.getBag(currentScreenKey);
178
+ const {
179
+ animationProgress: currentAnimationProgress,
180
+ pendingLifecycleRequestKind: currentPendingLifecycleRequestKind,
181
+ pendingLifecycleStartBlockCount: currentPendingLifecycleStartBlockCount,
182
+ } = SystemStore.getBag(currentScreenKey);
183
+ const interpolatorReady = useDerivedValue<number>(() => {
184
+ "worklet";
185
+ const isPendingOpen =
186
+ currentPendingLifecycleRequestKind.get() ===
187
+ LifecycleTransitionRequestKind.Open;
188
+ const opening = isPendingOpen || !!currentEntering.get();
189
+
190
+ return isScreenInterpolatorReady({
191
+ hasInterpolator: hasCurrentInterpolator,
192
+ opening,
193
+ closing: currentClosing.get(),
194
+ pendingLifecycleStartBlockCount:
195
+ currentPendingLifecycleStartBlockCount.get(),
196
+ animationProgress: currentAnimationProgress.get(),
197
+ })
198
+ ? 1
199
+ : 0;
200
+ });
158
201
 
159
202
  // In some cases, a user may want to use external shared values to drive animations in the interpoaltor.
160
203
  // We can now support this by collecting those shared values and reading them here to trigger an update.
@@ -249,10 +292,6 @@ export const useInterpolatedStylesMap = ({
249
292
  !nextInterpolator ||
250
293
  isOpeningBlocked ||
251
294
  hasCloseFinished;
252
- const nextReady = currentOwnsInterpolator ? 0 : 1;
253
-
254
- nextInterpolatorReady.set(nextReady);
255
-
256
295
  const interpolatorOptionsOwner = currentOwnsInterpolator
257
296
  ? "current"
258
297
  : "next";
@@ -328,7 +367,7 @@ export const useInterpolatedStylesMap = ({
328
367
  });
329
368
 
330
369
  return {
370
+ interpolatorReady,
331
371
  localStylesMaps,
332
- nextInterpolatorReady,
333
372
  };
334
373
  };
@@ -1,5 +1,6 @@
1
1
  import { useWindowDimensions } from "react-native";
2
2
  import {
3
+ type SharedValue,
3
4
  useAnimatedProps,
4
5
  useAnimatedReaction,
5
6
  useAnimatedStyle,
@@ -10,9 +11,18 @@ import { SystemStore } from "../../../../stores/system.store";
10
11
  import { getVisibilityBlockOffset } from "../../../../utils/visibility-block-offset";
11
12
  import { useDescriptorsStore } from "../../descriptors";
12
13
  import { hasCloseTransitionFinished } from "../helpers/transition-visual-state";
14
+ import { resolveVisibilityBlockOwnership } from "../helpers/visibility-block-ownership";
13
15
  import { resolveScreenVisibilityGate } from "../helpers/visibility-gate";
14
16
 
15
- export const useMaybeBlockVisibility = (isFloatingOverlay?: boolean) => {
17
+ type Params = {
18
+ ancestorVisibilityBlocked: SharedValue<boolean> | null;
19
+ isFloatingOverlay?: boolean;
20
+ };
21
+
22
+ export const useMaybeBlockVisibility = ({
23
+ ancestorVisibilityBlocked,
24
+ isFloatingOverlay,
25
+ }: Params) => {
16
26
  const { height } = useWindowDimensions();
17
27
  const currentScreenKey = useDescriptorsStore(
18
28
  (store) => store.derivations.currentScreenKey,
@@ -25,29 +35,39 @@ export const useMaybeBlockVisibility = (isFloatingOverlay?: boolean) => {
25
35
  } = SystemStore.getBag(currentScreenKey);
26
36
 
27
37
  const hasVisibilityGateOpened = useSharedValue(false);
28
- const shouldBlockVisibility = useSharedValue(!isFloatingOverlay);
38
+ const localVisibilityBlocked = useSharedValue(!isFloatingOverlay);
39
+ const effectiveVisibilityBlocked = useSharedValue(!isFloatingOverlay);
29
40
 
30
41
  useAnimatedReaction(
31
42
  () => {
32
43
  "worklet";
33
44
 
34
- return resolveScreenVisibilityGate({
35
- isFloatingOverlay,
36
- hasVisibilityGateOpened: hasVisibilityGateOpened.get(),
37
- pendingLifecycleStartBlockCount: pendingLifecycleStartBlockCount.get(),
38
- pendingLifecycleRequestKind: pendingLifecycleRequestKind.get(),
39
- animationProgress: animationProgress.get(),
40
- entering: entering.get(),
41
- });
45
+ return {
46
+ gate: resolveScreenVisibilityGate({
47
+ isFloatingOverlay,
48
+ hasVisibilityGateOpened: hasVisibilityGateOpened.get(),
49
+ pendingLifecycleStartBlockCount:
50
+ pendingLifecycleStartBlockCount.get(),
51
+ pendingLifecycleRequestKind: pendingLifecycleRequestKind.get(),
52
+ animationProgress: animationProgress.get(),
53
+ entering: entering.get(),
54
+ }),
55
+ ancestorBlocked: ancestorVisibilityBlocked?.get() ?? false,
56
+ };
42
57
  },
43
- (gate) => {
58
+ ({ gate, ancestorBlocked }) => {
44
59
  "worklet";
45
60
 
46
61
  if (gate.shouldOpenGate) {
47
62
  hasVisibilityGateOpened.set(true);
48
63
  }
49
64
 
50
- shouldBlockVisibility.set(gate.shouldBlock);
65
+ const ownership = resolveVisibilityBlockOwnership({
66
+ localBlocked: gate.shouldBlock,
67
+ ancestorBlocked,
68
+ });
69
+ localVisibilityBlocked.set(gate.shouldBlock);
70
+ effectiveVisibilityBlocked.set(ownership.effectiveBlocked);
51
71
  },
52
72
  );
53
73
 
@@ -66,10 +86,15 @@ export const useMaybeBlockVisibility = (isFloatingOverlay?: boolean) => {
66
86
  };
67
87
  }
68
88
 
89
+ const ownership = resolveVisibilityBlockOwnership({
90
+ localBlocked: localVisibilityBlocked.get(),
91
+ ancestorBlocked: ancestorVisibilityBlocked?.get() ?? false,
92
+ });
93
+
69
94
  return {
70
95
  transform: [
71
96
  {
72
- translateY: shouldBlockVisibility.get() ? offset : 0,
97
+ translateY: ownership.appliesOffset ? offset : 0,
73
98
  },
74
99
  ],
75
100
  };
@@ -78,7 +103,7 @@ export const useMaybeBlockVisibility = (isFloatingOverlay?: boolean) => {
78
103
  const animatedProps = useAnimatedProps(() => {
79
104
  "worklet";
80
105
  return {
81
- pointerEvents: shouldBlockVisibility.get()
106
+ pointerEvents: effectiveVisibilityBlocked.get()
82
107
  ? ("none" as const)
83
108
  : ("box-none" as const),
84
109
  };
@@ -87,6 +112,6 @@ export const useMaybeBlockVisibility = (isFloatingOverlay?: boolean) => {
87
112
  return {
88
113
  animatedStyle,
89
114
  animatedProps,
90
- shouldBlockVisibility,
115
+ visibilityBlocked: effectiveVisibilityBlocked,
91
116
  };
92
117
  };