react-native-screen-transitions 3.9.0-alpha.0 → 3.9.0-alpha.2

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 (344) hide show
  1. package/lib/commonjs/shared/components/boundary/components/boundary-target.js +10 -10
  2. package/lib/commonjs/shared/components/boundary/components/boundary-target.js.map +1 -1
  3. package/lib/commonjs/shared/components/boundary/create-boundary-component.js +45 -101
  4. package/lib/commonjs/shared/components/boundary/create-boundary-component.js.map +1 -1
  5. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js +103 -0
  6. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -0
  7. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-presence.js +7 -4
  8. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-presence.js.map +1 -1
  9. package/lib/commonjs/shared/components/boundary/hooks/use-initial-destination-measurement.js +24 -14
  10. package/lib/commonjs/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +1 -1
  11. package/lib/commonjs/shared/components/boundary/hooks/use-initial-source-measurement.js +3 -4
  12. package/lib/commonjs/shared/components/boundary/hooks/use-initial-source-measurement.js.map +1 -1
  13. package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js +6 -8
  14. package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js.map +1 -1
  15. package/lib/commonjs/shared/components/boundary/hooks/use-refresh-boundary.js +6 -3
  16. package/lib/commonjs/shared/components/boundary/hooks/use-refresh-boundary.js.map +1 -1
  17. package/lib/commonjs/shared/components/boundary/index.js +2 -2
  18. package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js +8 -2
  19. package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js.map +1 -1
  20. package/lib/commonjs/shared/components/boundary/portal/components/portal-provider.js +5 -2
  21. package/lib/commonjs/shared/components/boundary/portal/components/portal-provider.js.map +1 -1
  22. package/lib/commonjs/shared/components/boundary/portal/components/portal.js +10 -7
  23. package/lib/commonjs/shared/components/boundary/portal/components/portal.js.map +1 -1
  24. package/lib/commonjs/shared/components/boundary/portal/resolve-portal.js +36 -0
  25. package/lib/commonjs/shared/components/boundary/portal/resolve-portal.js.map +1 -0
  26. package/lib/commonjs/shared/components/boundary/portal/teleport.js +23 -0
  27. package/lib/commonjs/shared/components/boundary/portal/teleport.js.map +1 -0
  28. package/lib/commonjs/shared/components/boundary/providers/{boundary-owner.provider.js → boundary-root.provider.js} +21 -23
  29. package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js.map +1 -0
  30. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js +33 -2
  31. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js.map +1 -1
  32. package/lib/commonjs/shared/components/create-transition-aware-component.js +2 -20
  33. package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
  34. package/lib/commonjs/shared/components/overlay/variations/float-overlay.js +1 -1
  35. package/lib/commonjs/shared/components/overlay/variations/float-overlay.js.map +1 -1
  36. package/lib/commonjs/shared/components/screen-container/layers/backdrop.js +2 -14
  37. package/lib/commonjs/shared/components/screen-container/layers/backdrop.js.map +1 -1
  38. package/lib/commonjs/shared/components/screen-container/layers/content.js +4 -16
  39. package/lib/commonjs/shared/components/screen-container/layers/content.js.map +1 -1
  40. package/lib/commonjs/shared/components/screen-container/layers/maybe-masked-navigation-container.js +4 -15
  41. package/lib/commonjs/shared/components/screen-container/layers/maybe-masked-navigation-container.js.map +1 -1
  42. package/lib/commonjs/shared/components/screen-container/layers/surface-container.js +4 -16
  43. package/lib/commonjs/shared/components/screen-container/layers/surface-container.js.map +1 -1
  44. package/lib/commonjs/shared/hooks/navigation/use-stack.js +17 -2
  45. package/lib/commonjs/shared/hooks/navigation/use-stack.js.map +1 -1
  46. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js +142 -33
  47. package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  48. package/lib/commonjs/shared/providers/screen/animation/helpers/stack-progress.js +23 -12
  49. package/lib/commonjs/shared/providers/screen/animation/helpers/stack-progress.js.map +1 -1
  50. package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js +1 -0
  51. package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
  52. package/lib/commonjs/shared/providers/screen/screen-composer.js +1 -1
  53. package/lib/commonjs/shared/providers/screen/screen-composer.js.map +1 -1
  54. package/lib/commonjs/shared/providers/screen/styles/helpers/opening-phase.js +32 -0
  55. package/lib/commonjs/shared/providers/screen/styles/helpers/opening-phase.js.map +1 -0
  56. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +7 -8
  57. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  58. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.js.map +1 -1
  59. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/slot-state.js +1 -20
  60. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/slot-state.js.map +1 -1
  61. package/lib/commonjs/shared/providers/screen/styles/helpers/visibility-gate.js +1 -11
  62. package/lib/commonjs/shared/providers/screen/styles/helpers/visibility-gate.js.map +1 -1
  63. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +23 -36
  64. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  65. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +1 -19
  66. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  67. package/lib/commonjs/shared/providers/screen/styles/hooks/use-resolved-slot-style-map.js +8 -3
  68. package/lib/commonjs/shared/providers/screen/styles/hooks/use-resolved-slot-style-map.js.map +1 -1
  69. package/lib/commonjs/shared/providers/screen/styles/index.js +25 -7
  70. package/lib/commonjs/shared/providers/screen/styles/index.js.map +1 -1
  71. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js +103 -0
  72. package/lib/commonjs/shared/providers/screen/styles/slot.provider.js.map +1 -0
  73. package/lib/commonjs/shared/stores/animation.store.js +2 -0
  74. package/lib/commonjs/shared/stores/animation.store.js.map +1 -1
  75. package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js +16 -1
  76. package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
  77. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js +8 -1
  78. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  79. package/lib/commonjs/shared/utils/bounds/navigation/zoom/helpers.js +59 -0
  80. package/lib/commonjs/shared/utils/bounds/navigation/zoom/helpers.js.map +1 -1
  81. package/lib/commonjs/shared/utils/logger.js +11 -0
  82. package/lib/commonjs/shared/utils/logger.js.map +1 -1
  83. package/lib/module/shared/components/boundary/components/boundary-target.js +10 -10
  84. package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -1
  85. package/lib/module/shared/components/boundary/create-boundary-component.js +47 -103
  86. package/lib/module/shared/components/boundary/create-boundary-component.js.map +1 -1
  87. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js +98 -0
  88. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -0
  89. package/lib/module/shared/components/boundary/hooks/use-boundary-presence.js +7 -4
  90. package/lib/module/shared/components/boundary/hooks/use-boundary-presence.js.map +1 -1
  91. package/lib/module/shared/components/boundary/hooks/use-initial-destination-measurement.js +24 -14
  92. package/lib/module/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +1 -1
  93. package/lib/module/shared/components/boundary/hooks/use-initial-source-measurement.js +3 -4
  94. package/lib/module/shared/components/boundary/hooks/use-initial-source-measurement.js.map +1 -1
  95. package/lib/module/shared/components/boundary/hooks/use-measurer.js +6 -8
  96. package/lib/module/shared/components/boundary/hooks/use-measurer.js.map +1 -1
  97. package/lib/module/shared/components/boundary/hooks/use-refresh-boundary.js +6 -3
  98. package/lib/module/shared/components/boundary/hooks/use-refresh-boundary.js.map +1 -1
  99. package/lib/module/shared/components/boundary/index.js +2 -2
  100. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js +8 -2
  101. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js.map +1 -1
  102. package/lib/module/shared/components/boundary/portal/components/portal-provider.js +4 -1
  103. package/lib/module/shared/components/boundary/portal/components/portal-provider.js.map +1 -1
  104. package/lib/module/shared/components/boundary/portal/components/portal.js +11 -8
  105. package/lib/module/shared/components/boundary/portal/components/portal.js.map +1 -1
  106. package/lib/module/shared/components/boundary/portal/resolve-portal.js +31 -0
  107. package/lib/module/shared/components/boundary/portal/resolve-portal.js.map +1 -0
  108. package/lib/module/shared/components/boundary/portal/teleport.js +19 -0
  109. package/lib/module/shared/components/boundary/portal/teleport.js.map +1 -0
  110. package/lib/module/shared/components/boundary/providers/{boundary-owner.provider.js → boundary-root.provider.js} +18 -20
  111. package/lib/module/shared/components/boundary/providers/boundary-root.provider.js.map +1 -0
  112. package/lib/module/shared/components/boundary/utils/destination-signals.js +33 -2
  113. package/lib/module/shared/components/boundary/utils/destination-signals.js.map +1 -1
  114. package/lib/module/shared/components/create-transition-aware-component.js +4 -22
  115. package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
  116. package/lib/module/shared/components/overlay/variations/float-overlay.js +2 -2
  117. package/lib/module/shared/components/overlay/variations/float-overlay.js.map +1 -1
  118. package/lib/module/shared/components/screen-container/layers/backdrop.js +4 -16
  119. package/lib/module/shared/components/screen-container/layers/backdrop.js.map +1 -1
  120. package/lib/module/shared/components/screen-container/layers/content.js +4 -16
  121. package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
  122. package/lib/module/shared/components/screen-container/layers/maybe-masked-navigation-container.js +5 -16
  123. package/lib/module/shared/components/screen-container/layers/maybe-masked-navigation-container.js.map +1 -1
  124. package/lib/module/shared/components/screen-container/layers/surface-container.js +4 -16
  125. package/lib/module/shared/components/screen-container/layers/surface-container.js.map +1 -1
  126. package/lib/module/shared/hooks/navigation/use-stack.js +19 -4
  127. package/lib/module/shared/hooks/navigation/use-stack.js.map +1 -1
  128. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js +144 -35
  129. package/lib/module/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
  130. package/lib/module/shared/providers/screen/animation/helpers/stack-progress.js +20 -10
  131. package/lib/module/shared/providers/screen/animation/helpers/stack-progress.js.map +1 -1
  132. package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js +1 -0
  133. package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
  134. package/lib/module/shared/providers/screen/screen-composer.js +2 -2
  135. package/lib/module/shared/providers/screen/screen-composer.js.map +1 -1
  136. package/lib/module/shared/providers/screen/styles/helpers/opening-phase.js +26 -0
  137. package/lib/module/shared/providers/screen/styles/helpers/opening-phase.js.map +1 -0
  138. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +7 -8
  139. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  140. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.js.map +1 -1
  141. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/slot-state.js +0 -18
  142. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/slot-state.js.map +1 -1
  143. package/lib/module/shared/providers/screen/styles/helpers/visibility-gate.js +0 -9
  144. package/lib/module/shared/providers/screen/styles/helpers/visibility-gate.js.map +1 -1
  145. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +22 -35
  146. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  147. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +1 -19
  148. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  149. package/lib/module/shared/providers/screen/styles/hooks/use-resolved-slot-style-map.js +9 -4
  150. package/lib/module/shared/providers/screen/styles/hooks/use-resolved-slot-style-map.js.map +1 -1
  151. package/lib/module/shared/providers/screen/styles/index.js +1 -1
  152. package/lib/module/shared/providers/screen/styles/index.js.map +1 -1
  153. package/lib/module/shared/providers/screen/styles/slot.provider.js +91 -0
  154. package/lib/module/shared/providers/screen/styles/slot.provider.js.map +1 -0
  155. package/lib/module/shared/stores/animation.store.js +2 -0
  156. package/lib/module/shared/stores/animation.store.js.map +1 -1
  157. package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js +14 -0
  158. package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
  159. package/lib/module/shared/utils/bounds/navigation/zoom/build.js +9 -2
  160. package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  161. package/lib/module/shared/utils/bounds/navigation/zoom/helpers.js +58 -0
  162. package/lib/module/shared/utils/bounds/navigation/zoom/helpers.js.map +1 -1
  163. package/lib/module/shared/utils/logger.js +11 -0
  164. package/lib/module/shared/utils/logger.js.map +1 -1
  165. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts +2 -1
  166. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts.map +1 -1
  167. package/lib/typescript/component-stack/components/component-screen.d.ts +1 -1
  168. package/lib/typescript/component-stack/components/component-screen.d.ts.map +1 -1
  169. package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts +2 -1
  170. package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts.map +1 -1
  171. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +1 -1
  172. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts.map +1 -1
  173. package/lib/typescript/native-stack/views/NativeStackView.d.ts +2 -1
  174. package/lib/typescript/native-stack/views/NativeStackView.d.ts.map +1 -1
  175. package/lib/typescript/native-stack/views/useHeaderConfigProps.d.ts +2 -2
  176. package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts +1 -1
  177. package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts.map +1 -1
  178. package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts +1 -1
  179. package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts.map +1 -1
  180. package/lib/typescript/shared/components/activity/variants/activity-container.d.ts +1 -1
  181. package/lib/typescript/shared/components/activity/variants/activity-container.d.ts.map +1 -1
  182. package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts +1 -1
  183. package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts.map +1 -1
  184. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts +1 -1
  185. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts.map +1 -1
  186. package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts.map +1 -1
  187. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts +32 -0
  188. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts.map +1 -0
  189. package/lib/typescript/shared/components/boundary/hooks/use-boundary-presence.d.ts +2 -1
  190. package/lib/typescript/shared/components/boundary/hooks/use-boundary-presence.d.ts.map +1 -1
  191. package/lib/typescript/shared/components/boundary/hooks/use-initial-destination-measurement.d.ts +3 -2
  192. package/lib/typescript/shared/components/boundary/hooks/use-initial-destination-measurement.d.ts.map +1 -1
  193. package/lib/typescript/shared/components/boundary/hooks/use-initial-source-measurement.d.ts +2 -2
  194. package/lib/typescript/shared/components/boundary/hooks/use-initial-source-measurement.d.ts.map +1 -1
  195. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts +3 -5
  196. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts.map +1 -1
  197. package/lib/typescript/shared/components/boundary/hooks/use-refresh-boundary.d.ts +3 -3
  198. package/lib/typescript/shared/components/boundary/hooks/use-refresh-boundary.d.ts.map +1 -1
  199. package/lib/typescript/shared/components/boundary/index.d.ts +7 -211
  200. package/lib/typescript/shared/components/boundary/index.d.ts.map +1 -1
  201. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts +2 -2
  202. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts.map +1 -1
  203. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts +1 -1
  204. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts.map +1 -1
  205. package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts +1 -1
  206. package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts.map +1 -1
  207. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts +1 -1
  208. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts.map +1 -1
  209. package/lib/typescript/shared/components/boundary/portal/resolve-portal.d.ts +14 -0
  210. package/lib/typescript/shared/components/boundary/portal/resolve-portal.d.ts.map +1 -0
  211. package/lib/typescript/shared/components/boundary/portal/teleport.d.ts +6 -0
  212. package/lib/typescript/shared/components/boundary/portal/teleport.d.ts.map +1 -0
  213. package/lib/typescript/shared/components/boundary/providers/{boundary-owner.provider.d.ts → boundary-root.provider.d.ts} +12 -14
  214. package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts.map +1 -0
  215. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts +1 -0
  216. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts.map +1 -1
  217. package/lib/typescript/shared/components/create-transition-aware-component.d.ts +5 -6
  218. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  219. package/lib/typescript/shared/components/masked-view.d.ts +1 -1
  220. package/lib/typescript/shared/components/masked-view.d.ts.map +1 -1
  221. package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts +1 -1
  222. package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts.map +1 -1
  223. package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts +1 -1
  224. package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts.map +1 -1
  225. package/lib/typescript/shared/components/scene-view.d.ts +1 -1
  226. package/lib/typescript/shared/components/scene-view.d.ts.map +1 -1
  227. package/lib/typescript/shared/components/screen-container/index.d.ts +1 -1
  228. package/lib/typescript/shared/components/screen-container/index.d.ts.map +1 -1
  229. package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts +1 -1
  230. package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts.map +1 -1
  231. package/lib/typescript/shared/components/screen-container/layers/content.d.ts +1 -1
  232. package/lib/typescript/shared/components/screen-container/layers/content.d.ts.map +1 -1
  233. package/lib/typescript/shared/components/screen-container/layers/maybe-masked-navigation-container.d.ts +1 -1
  234. package/lib/typescript/shared/components/screen-container/layers/maybe-masked-navigation-container.d.ts.map +1 -1
  235. package/lib/typescript/shared/components/screen-container/layers/surface-container.d.ts +1 -1
  236. package/lib/typescript/shared/components/screen-container/layers/surface-container.d.ts.map +1 -1
  237. package/lib/typescript/shared/hooks/navigation/use-stack.d.ts +1 -1
  238. package/lib/typescript/shared/hooks/navigation/use-stack.d.ts.map +1 -1
  239. package/lib/typescript/shared/index.d.ts +663 -919
  240. package/lib/typescript/shared/index.d.ts.map +1 -1
  241. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/types.d.ts +1 -0
  242. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/types.d.ts.map +1 -1
  243. package/lib/typescript/shared/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
  244. package/lib/typescript/shared/providers/screen/animation/helpers/stack-progress.d.ts +2 -1
  245. package/lib/typescript/shared/providers/screen/animation/helpers/stack-progress.d.ts.map +1 -1
  246. package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts +1 -0
  247. package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts.map +1 -1
  248. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts +1 -1
  249. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  250. package/lib/typescript/shared/providers/screen/screen-composer.d.ts +1 -1
  251. package/lib/typescript/shared/providers/screen/screen-composer.d.ts.map +1 -1
  252. package/lib/typescript/shared/providers/screen/styles/components/floating-overlay-layer.d.ts +1 -1
  253. package/lib/typescript/shared/providers/screen/styles/components/floating-overlay-layer.d.ts.map +1 -1
  254. package/lib/typescript/shared/providers/screen/styles/helpers/opening-phase.d.ts +16 -0
  255. package/lib/typescript/shared/providers/screen/styles/helpers/opening-phase.d.ts.map +1 -0
  256. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts +3 -4
  257. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts.map +1 -1
  258. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.d.ts.map +1 -1
  259. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/slot-state.d.ts +0 -1
  260. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/slot-state.d.ts.map +1 -1
  261. package/lib/typescript/shared/providers/screen/styles/helpers/visibility-gate.d.ts +0 -1
  262. package/lib/typescript/shared/providers/screen/styles/helpers/visibility-gate.d.ts.map +1 -1
  263. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts +0 -5
  264. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
  265. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +2 -3
  266. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  267. package/lib/typescript/shared/providers/screen/styles/hooks/use-resolved-slot-style-map.d.ts.map +1 -1
  268. package/lib/typescript/shared/providers/screen/styles/index.d.ts +1 -1
  269. package/lib/typescript/shared/providers/screen/styles/index.d.ts.map +1 -1
  270. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts +23 -0
  271. package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts.map +1 -0
  272. package/lib/typescript/shared/stores/animation.store.d.ts +1 -0
  273. package/lib/typescript/shared/stores/animation.store.d.ts.map +1 -1
  274. package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts +6 -1
  275. package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts.map +1 -1
  276. package/lib/typescript/shared/stores/bounds/types.d.ts +13 -0
  277. package/lib/typescript/shared/stores/bounds/types.d.ts.map +1 -1
  278. package/lib/typescript/shared/utils/bounds/navigation/zoom/build.d.ts.map +1 -1
  279. package/lib/typescript/shared/utils/bounds/navigation/zoom/helpers.d.ts +9 -0
  280. package/lib/typescript/shared/utils/bounds/navigation/zoom/helpers.d.ts.map +1 -1
  281. package/lib/typescript/shared/utils/logger.d.ts +6 -0
  282. package/lib/typescript/shared/utils/logger.d.ts.map +1 -1
  283. package/package.json +6 -1
  284. package/src/shared/components/boundary/components/boundary-target.tsx +12 -12
  285. package/src/shared/components/boundary/create-boundary-component.tsx +59 -142
  286. package/src/shared/components/boundary/hooks/use-boundary-measurement.ts +127 -0
  287. package/src/shared/components/boundary/hooks/use-boundary-presence.ts +7 -5
  288. package/src/shared/components/boundary/hooks/use-initial-destination-measurement.ts +27 -11
  289. package/src/shared/components/boundary/hooks/use-initial-source-measurement.ts +5 -5
  290. package/src/shared/components/boundary/hooks/use-measurer.ts +11 -14
  291. package/src/shared/components/boundary/hooks/use-refresh-boundary.ts +5 -5
  292. package/src/shared/components/boundary/index.tsx +2 -2
  293. package/src/shared/components/boundary/portal/components/portal-boundary-host.tsx +10 -3
  294. package/src/shared/components/boundary/portal/components/portal-provider.tsx +5 -1
  295. package/src/shared/components/boundary/portal/components/portal.tsx +15 -10
  296. package/src/shared/components/boundary/portal/resolve-portal.ts +40 -0
  297. package/src/shared/components/boundary/portal/teleport.ts +21 -0
  298. package/src/shared/components/boundary/providers/{boundary-owner.provider.tsx → boundary-root.provider.tsx} +27 -32
  299. package/src/shared/components/boundary/utils/destination-signals.ts +53 -2
  300. package/src/shared/components/create-transition-aware-component.tsx +3 -25
  301. package/src/shared/components/overlay/variations/float-overlay.tsx +3 -3
  302. package/src/shared/components/screen-container/layers/backdrop.tsx +4 -17
  303. package/src/shared/components/screen-container/layers/content.tsx +4 -16
  304. package/src/shared/components/screen-container/layers/maybe-masked-navigation-container.tsx +8 -18
  305. package/src/shared/components/screen-container/layers/surface-container.tsx +4 -17
  306. package/src/shared/hooks/navigation/use-stack.tsx +32 -1
  307. package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/types.ts +1 -0
  308. package/src/shared/providers/screen/animation/helpers/pipeline.ts +253 -77
  309. package/src/shared/providers/screen/animation/helpers/stack-progress.ts +31 -16
  310. package/src/shared/providers/screen/animation/helpers/use-build-transition-state.ts +2 -0
  311. package/src/shared/providers/screen/screen-composer.tsx +3 -3
  312. package/src/shared/providers/screen/styles/helpers/opening-phase.ts +25 -0
  313. package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/index.ts +8 -10
  314. package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/materialize-slot.ts +0 -1
  315. package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/slot-state.ts +0 -24
  316. package/src/shared/providers/screen/styles/helpers/visibility-gate.ts +0 -12
  317. package/src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +29 -37
  318. package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +0 -18
  319. package/src/shared/providers/screen/styles/hooks/use-resolved-slot-style-map.tsx +17 -4
  320. package/src/shared/providers/screen/styles/index.tsx +8 -4
  321. package/src/shared/providers/screen/styles/slot.provider.tsx +111 -0
  322. package/src/shared/stores/animation.store.ts +3 -0
  323. package/src/shared/stores/bounds/helpers/link-pairs.helpers.ts +17 -0
  324. package/src/shared/stores/bounds/types.ts +14 -0
  325. package/src/shared/utils/bounds/navigation/zoom/build.ts +9 -1
  326. package/src/shared/utils/bounds/navigation/zoom/helpers.ts +96 -0
  327. package/src/shared/utils/logger.ts +12 -0
  328. package/lib/commonjs/shared/components/boundary/providers/boundary-owner.provider.js.map +0 -1
  329. package/lib/commonjs/shared/providers/screen/styles/helpers/preserve-animated-props-only.js +0 -26
  330. package/lib/commonjs/shared/providers/screen/styles/helpers/preserve-animated-props-only.js.map +0 -1
  331. package/lib/commonjs/shared/providers/screen/styles/styles.provider.js +0 -61
  332. package/lib/commonjs/shared/providers/screen/styles/styles.provider.js.map +0 -1
  333. package/lib/module/shared/components/boundary/providers/boundary-owner.provider.js.map +0 -1
  334. package/lib/module/shared/providers/screen/styles/helpers/preserve-animated-props-only.js +0 -21
  335. package/lib/module/shared/providers/screen/styles/helpers/preserve-animated-props-only.js.map +0 -1
  336. package/lib/module/shared/providers/screen/styles/styles.provider.js +0 -53
  337. package/lib/module/shared/providers/screen/styles/styles.provider.js.map +0 -1
  338. package/lib/typescript/shared/components/boundary/providers/boundary-owner.provider.d.ts.map +0 -1
  339. package/lib/typescript/shared/providers/screen/styles/helpers/preserve-animated-props-only.d.ts +0 -3
  340. package/lib/typescript/shared/providers/screen/styles/helpers/preserve-animated-props-only.d.ts.map +0 -1
  341. package/lib/typescript/shared/providers/screen/styles/styles.provider.d.ts +0 -14
  342. package/lib/typescript/shared/providers/screen/styles/styles.provider.d.ts.map +0 -1
  343. package/src/shared/providers/screen/styles/helpers/preserve-animated-props-only.ts +0 -22
  344. package/src/shared/providers/screen/styles/styles.provider.tsx +0 -60
@@ -5,7 +5,7 @@ import Animated, { useAnimatedRef } from "react-native-reanimated";
5
5
  import { prepareStyleForBounds } from "../../../utils/bounds/helpers/styles/styles";
6
6
  import { logger } from "../../../utils/logger";
7
7
  import { Portal } from "../portal/components/portal";
8
- import { TARGET_OUTSIDE_OWNER_WARNING, useBoundaryOwnerContext } from "../providers/boundary-owner.provider";
8
+ import { TARGET_OUTSIDE_ROOT_WARNING, useBoundaryRootContext } from "../providers/boundary-root.provider";
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  export const BoundaryTarget = /*#__PURE__*/memo(function BoundaryTarget(props) {
11
11
  const {
@@ -14,20 +14,20 @@ export const BoundaryTarget = /*#__PURE__*/memo(function BoundaryTarget(props) {
14
14
  } = props;
15
15
  const targetAnimatedRef = useAnimatedRef();
16
16
  const placeholderAnimatedRef = useAnimatedRef();
17
- const ownerContext = useBoundaryOwnerContext();
18
- const registerTargetRef = ownerContext?.registerTargetRef;
19
- const unregisterTargetRef = ownerContext?.unregisterTargetRef;
20
- const isActiveTarget = ownerContext?.activeTargetRef === targetAnimatedRef;
17
+ const rootContext = useBoundaryRootContext();
18
+ const registerTargetRef = rootContext?.registerTargetRef;
19
+ const unregisterTargetRef = rootContext?.unregisterTargetRef;
20
+ const isActiveTarget = rootContext?.activeTargetRef === targetAnimatedRef;
21
21
  const preparedStyles = useMemo(() => prepareStyleForBounds(style), [style]);
22
22
  // Portal'd content can be teleported into another screen's host; measuring
23
23
  // it there would capture its CURRENT (destination) position as the source
24
24
  // bounds. The portal placeholder keeps the layout slot at home, so it is
25
25
  // the truthful measurement surface whenever a portal is configured.
26
- const measurementRef = ownerContext?.portal ? placeholderAnimatedRef : targetAnimatedRef;
26
+ const measurementRef = rootContext?.portal ? placeholderAnimatedRef : targetAnimatedRef;
27
27
  useLayoutEffect(() => {
28
28
  if (!registerTargetRef || !unregisterTargetRef) {
29
29
  if (__DEV__) {
30
- logger.warn(TARGET_OUTSIDE_OWNER_WARNING);
30
+ logger.warn(TARGET_OUTSIDE_ROOT_WARNING);
31
31
  }
32
32
  return;
33
33
  }
@@ -37,13 +37,13 @@ export const BoundaryTarget = /*#__PURE__*/memo(function BoundaryTarget(props) {
37
37
  };
38
38
  }, [registerTargetRef, unregisterTargetRef, targetAnimatedRef, preparedStyles, measurementRef]);
39
39
  return /*#__PURE__*/_jsx(Portal, {
40
- id: ownerContext?.entryTag,
41
- mode: ownerContext?.portal,
40
+ id: rootContext?.boundTag.tag,
41
+ mode: rootContext?.portal,
42
42
  placeholderRef: placeholderAnimatedRef,
43
43
  children: /*#__PURE__*/_jsx(Animated.View, {
44
44
  ...rest,
45
45
  ref: targetAnimatedRef,
46
- style: [style, isActiveTarget ? ownerContext.associatedTargetStyles : undefined],
46
+ style: [style, isActiveTarget ? rootContext.associatedTargetStyles : undefined],
47
47
  collapsable: false
48
48
  })
49
49
  });
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useLayoutEffect","useMemo","Animated","useAnimatedRef","prepareStyleForBounds","logger","Portal","TARGET_OUTSIDE_OWNER_WARNING","useBoundaryOwnerContext","jsx","_jsx","BoundaryTarget","props","style","rest","targetAnimatedRef","placeholderAnimatedRef","ownerContext","registerTargetRef","unregisterTargetRef","isActiveTarget","activeTargetRef","preparedStyles","measurementRef","portal","__DEV__","warn","id","entryTag","mode","placeholderRef","children","View","ref","associatedTargetStyles","undefined","collapsable"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/components/boundary-target.tsx"],"mappings":";;AACA,SAASA,IAAI,EAAEC,eAAe,EAAEC,OAAO,QAAQ,OAAO;AAEtD,OAAOC,QAAQ,IAAIC,cAAc,QAAQ,yBAAyB;AAClE,SAASC,qBAAqB,QAAQ,6CAA6C;AACnF,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,MAAM,QAAQ,6BAA6B;AACpD,SACCC,4BAA4B,EAC5BC,uBAAuB,QACjB,sCAAsC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAI9C,OAAO,MAAMC,cAAc,gBAAGZ,IAAI,CAAC,SAASY,cAAcA,CACzDC,KAA0B,EACzB;EACD,MAAM;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGF,KAAK;EAChC,MAAMG,iBAAiB,GAAGZ,cAAc,CAAO,CAAC;EAChD,MAAMa,sBAAsB,GAAGb,cAAc,CAAO,CAAC;EACrD,MAAMc,YAAY,GAAGT,uBAAuB,CAAC,CAAC;EAC9C,MAAMU,iBAAiB,GAAGD,YAAY,EAAEC,iBAAiB;EACzD,MAAMC,mBAAmB,GAAGF,YAAY,EAAEE,mBAAmB;EAC7D,MAAMC,cAAc,GAAGH,YAAY,EAAEI,eAAe,KAAKN,iBAAiB;EAC1E,MAAMO,cAAc,GAAGrB,OAAO,CAAC,MAAMG,qBAAqB,CAACS,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAC3E;EACA;EACA;EACA;EACA,MAAMU,cAAc,GAAGN,YAAY,EAAEO,MAAM,GACxCR,sBAAsB,GACtBD,iBAAiB;EAEpBf,eAAe,CAAC,MAAM;IACrB,IAAI,CAACkB,iBAAiB,IAAI,CAACC,mBAAmB,EAAE;MAC/C,IAAIM,OAAO,EAAE;QACZpB,MAAM,CAACqB,IAAI,CAACnB,4BAA4B,CAAC;MAC1C;MACA;IACD;IAEAW,iBAAiB,CAACH,iBAAiB,EAAEO,cAAc,EAAEC,cAAc,CAAC;IACpE,OAAO,MAAM;MACZJ,mBAAmB,CAACJ,iBAAiB,CAAC;IACvC,CAAC;EACF,CAAC,EAAE,CACFG,iBAAiB,EACjBC,mBAAmB,EACnBJ,iBAAiB,EACjBO,cAAc,EACdC,cAAc,CACd,CAAC;EAEF,oBACCb,IAAA,CAACJ,MAAM;IACNqB,EAAE,EAAEV,YAAY,EAAEW,QAAS;IAC3BC,IAAI,EAAEZ,YAAY,EAAEO,MAAO;IAC3BM,cAAc,EAAEd,sBAAuB;IAAAe,QAAA,eAEvCrB,IAAA,CAACR,QAAQ,CAAC8B,IAAI;MAAA,GACTlB,IAAI;MACRmB,GAAG,EAAElB,iBAAkB;MACvBF,KAAK,EAAE,CACNA,KAAK,EACLO,cAAc,GAAGH,YAAY,CAACiB,sBAAsB,GAAGC,SAAS,CAC/D;MACFC,WAAW,EAAE;IAAM,CACnB;EAAC,CACK,CAAC;AAEX,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["memo","useLayoutEffect","useMemo","Animated","useAnimatedRef","prepareStyleForBounds","logger","Portal","TARGET_OUTSIDE_ROOT_WARNING","useBoundaryRootContext","jsx","_jsx","BoundaryTarget","props","style","rest","targetAnimatedRef","placeholderAnimatedRef","rootContext","registerTargetRef","unregisterTargetRef","isActiveTarget","activeTargetRef","preparedStyles","measurementRef","portal","__DEV__","warn","id","boundTag","tag","mode","placeholderRef","children","View","ref","associatedTargetStyles","undefined","collapsable"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/components/boundary-target.tsx"],"mappings":";;AACA,SAASA,IAAI,EAAEC,eAAe,EAAEC,OAAO,QAAQ,OAAO;AAEtD,OAAOC,QAAQ,IAAIC,cAAc,QAAQ,yBAAyB;AAClE,SAASC,qBAAqB,QAAQ,6CAA6C;AACnF,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,MAAM,QAAQ,6BAA6B;AACpD,SACCC,2BAA2B,EAC3BC,sBAAsB,QAChB,qCAAqC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAI7C,OAAO,MAAMC,cAAc,gBAAGZ,IAAI,CAAC,SAASY,cAAcA,CACzDC,KAA0B,EACzB;EACD,MAAM;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGF,KAAK;EAChC,MAAMG,iBAAiB,GAAGZ,cAAc,CAAO,CAAC;EAChD,MAAMa,sBAAsB,GAAGb,cAAc,CAAO,CAAC;EACrD,MAAMc,WAAW,GAAGT,sBAAsB,CAAC,CAAC;EAC5C,MAAMU,iBAAiB,GAAGD,WAAW,EAAEC,iBAAiB;EACxD,MAAMC,mBAAmB,GAAGF,WAAW,EAAEE,mBAAmB;EAC5D,MAAMC,cAAc,GAAGH,WAAW,EAAEI,eAAe,KAAKN,iBAAiB;EACzE,MAAMO,cAAc,GAAGrB,OAAO,CAAC,MAAMG,qBAAqB,CAACS,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAC3E;EACA;EACA;EACA;EACA,MAAMU,cAAc,GAAGN,WAAW,EAAEO,MAAM,GACvCR,sBAAsB,GACtBD,iBAAiB;EAEpBf,eAAe,CAAC,MAAM;IACrB,IAAI,CAACkB,iBAAiB,IAAI,CAACC,mBAAmB,EAAE;MAC/C,IAAIM,OAAO,EAAE;QACZpB,MAAM,CAACqB,IAAI,CAACnB,2BAA2B,CAAC;MACzC;MACA;IACD;IAEAW,iBAAiB,CAACH,iBAAiB,EAAEO,cAAc,EAAEC,cAAc,CAAC;IACpE,OAAO,MAAM;MACZJ,mBAAmB,CAACJ,iBAAiB,CAAC;IACvC,CAAC;EACF,CAAC,EAAE,CACFG,iBAAiB,EACjBC,mBAAmB,EACnBJ,iBAAiB,EACjBO,cAAc,EACdC,cAAc,CACd,CAAC;EAEF,oBACCb,IAAA,CAACJ,MAAM;IACNqB,EAAE,EAAEV,WAAW,EAAEW,QAAQ,CAACC,GAAI;IAC9BC,IAAI,EAAEb,WAAW,EAAEO,MAAO;IAC1BO,cAAc,EAAEf,sBAAuB;IAAAgB,QAAA,eAEvCtB,IAAA,CAACR,QAAQ,CAAC+B,IAAI;MAAA,GACTnB,IAAI;MACRoB,GAAG,EAAEnB,iBAAkB;MACvBF,KAAK,EAAE,CACNA,KAAK,EACLO,cAAc,GAAGH,WAAW,CAACkB,sBAAsB,GAAGC,SAAS,CAC9D;MACFC,WAAW,EAAE;IAAM,CACnB;EAAC,CACK,CAAC;AAEX,CAAC,CAAC","ignoreList":[]}
@@ -1,18 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import { forwardRef, memo, useCallback, useImperativeHandle, useMemo } from "react";
4
- import Animated, { runOnUI, useAnimatedRef, useAnimatedStyle } from "react-native-reanimated";
5
- import { NO_STYLES } from "../../constants";
3
+ import { forwardRef, memo, useImperativeHandle, useMemo } from "react";
4
+ import Animated from "react-native-reanimated";
6
5
  import { useDescriptorsStore } from "../../providers/screen/descriptors";
7
- import { useScreenStyles } from "../../providers/screen/styles";
8
- import { createPendingPairKey } from "../../stores/bounds/helpers/link-pairs.helpers";
9
- import { prepareStyleForBounds } from "../../utils/bounds/helpers/styles/styles";
10
- import { useBoundaryPresence } from "./hooks/use-boundary-presence";
11
- import { useInitialDestinationMeasurement } from "./hooks/use-initial-destination-measurement";
12
- import { useInitialSourceMeasurement } from "./hooks/use-initial-source-measurement";
13
- import { useMeasurer } from "./hooks/use-measurer";
14
- import { useRefreshBoundary } from "./hooks/use-refresh-boundary";
15
- import { BoundaryOwnerProvider, useBoundaryOwner } from "./providers/boundary-owner.provider";
6
+ import { useSlotStackingStyles, useSlotStyles } from "../../providers/screen/styles";
7
+ import { createBoundTag } from "../../stores/bounds/helpers/link-pairs.helpers";
8
+ import { useBoundaryMeasurement } from "./hooks/use-boundary-measurement";
9
+ import { resolveBoundaryPortal } from "./portal/resolve-portal";
10
+ import { BoundaryRootProvider, useBoundaryRootState } from "./providers/boundary-root.provider";
16
11
  import { jsx as _jsx } from "react/jsx-runtime";
17
12
  export function createBoundaryComponent(Wrapped, options = {}) {
18
13
  const {
@@ -21,7 +16,6 @@ export function createBoundaryComponent(Wrapped, options = {}) {
21
16
  } = options;
22
17
  const AnimatedComponent = alreadyAnimated ? Wrapped : Animated.createAnimatedComponent(Wrapped);
23
18
  const Inner = /*#__PURE__*/forwardRef((props, forwardedRef) => {
24
- const ownerRef = useAnimatedRef();
25
19
  const {
26
20
  enabled = true,
27
21
  group,
@@ -32,119 +26,69 @@ export function createBoundaryComponent(Wrapped, options = {}) {
32
26
  method,
33
27
  style,
34
28
  onPress,
35
- portal,
29
+ portal: portalProp,
36
30
  ...rest
37
31
  } = props;
38
- const linkId = String(id);
39
- const entryTag = group ? `${group}:${linkId}` : linkId;
32
+ const boundTag = useMemo(() => createBoundTag(String(id), group), [id, group]);
33
+ const portal = resolveBoundaryPortal(portalProp);
40
34
  const currentScreenKey = useDescriptorsStore(s => s.derivations.currentScreenKey);
41
35
  const hasConfiguredInterpolator = useDescriptorsStore(s => s.derivations.hasConfiguredInterpolator);
42
36
  const runtimeEnabled = enabled && hasConfiguredInterpolator;
43
- const boundaryConfig = useMemo(() => {
44
- return {
45
- anchor,
46
- scaleMode,
47
- target,
48
- method
49
- };
50
- }, [anchor, scaleMode, target, method]);
51
- const ownerPreparedStyles = useMemo(() => prepareStyleForBounds(style), [style]);
52
- const {
53
- stylesMap
54
- } = useScreenStyles();
55
- const associatedStyles = useAnimatedStyle(() => {
56
- "worklet";
57
-
58
- return stylesMap.get()[entryTag]?.style ?? NO_STYLES;
59
- });
60
- const associatedStackingStyles = useAnimatedStyle(() => {
61
- "worklet";
62
-
63
- const baseStyle = stylesMap.get()[entryTag]?.style;
64
- const zIndex = baseStyle?.zIndex ?? 0;
65
- const elevation = baseStyle?.elevation ?? 0;
66
- if (zIndex === 0 && elevation === 0) {
67
- return NO_STYLES;
68
- }
69
- return {
70
- zIndex,
71
- elevation
72
- };
73
- });
37
+ // Associated slot styles attach whenever the boundary is enabled,
38
+ // independent of whether an interpolator is configured for this transition.
39
+ const shouldAttachAssociatedStyles = enabled;
40
+ const associatedStyles = useSlotStyles(boundTag.tag);
41
+ const associatedStackingStyles = useSlotStackingStyles(boundTag.tag);
74
42
  const {
43
+ ref,
75
44
  contextValue,
76
45
  measuredRef,
77
46
  hasActiveTarget,
78
47
  targetPreparedStyles
79
- } = useBoundaryOwner({
80
- ownerRef,
81
- associatedTargetStyles: runtimeEnabled ? associatedStyles : undefined,
82
- entryTag,
83
- portal
48
+ } = useBoundaryRootState({
49
+ boundTag,
50
+ portal,
51
+ associatedTargetStyles: shouldAttachAssociatedStyles ? associatedStyles : undefined
84
52
  });
85
- const preparedStyles = targetPreparedStyles ?? ownerPreparedStyles;
86
- const portalHost = typeof portal === "object" ? portal.attachTo ?? "current-screen" : portal ? "current-screen" : undefined;
87
- const measureBoundary = useMeasurer({
53
+ const {
54
+ onPress: resolvedOnPress
55
+ } = useBoundaryMeasurement({
56
+ boundTag,
88
57
  enabled,
89
- entryTag,
90
- linkId,
91
- group,
58
+ runtimeEnabled,
92
59
  currentScreenKey,
93
- preparedStyles,
94
- measuredAnimatedRef: measuredRef,
95
- portalHost
60
+ measuredRef,
61
+ style,
62
+ targetPreparedStyles,
63
+ portal,
64
+ shouldAutoMeasure,
65
+ config: {
66
+ anchor,
67
+ scaleMode,
68
+ target,
69
+ method
70
+ },
71
+ onPress
96
72
  });
73
+ useImperativeHandle(forwardedRef, () => ref.current, [ref]);
97
74
 
98
- // Register/unregister this boundary in the presence map so source/destination
99
- // matching can resolve across concrete screen keys.
100
- useBoundaryPresence({
101
- enabled: runtimeEnabled,
102
- entryTag,
103
- currentScreenKey,
104
- boundaryConfig
105
- });
106
- const shouldPassivelyMeasureSource = shouldAutoMeasure && typeof onPress !== "function";
107
- useInitialSourceMeasurement({
108
- enabled: runtimeEnabled,
109
- measureBoundary,
110
- linkId,
111
- group,
112
- shouldAutoMeasure: shouldPassivelyMeasureSource
113
- });
114
- useInitialDestinationMeasurement({
115
- linkId,
116
- enabled: runtimeEnabled,
117
- measureBoundary
118
- });
119
- useRefreshBoundary({
120
- enabled: runtimeEnabled,
121
- linkId,
122
- group,
123
- measureBoundary
124
- });
125
- const handlePress = useCallback((...args) => {
126
- // Press path has priority: capture source before user onPress/navigation.
127
- runOnUI(measureBoundary)({
128
- type: "source",
129
- pairKey: createPendingPairKey(currentScreenKey)
130
- });
131
- if (typeof onPress === "function") {
132
- onPress(...args);
133
- }
134
- }, [measureBoundary, onPress, currentScreenKey]);
135
- const resolvedOnPress = typeof onPress === "function" ? handlePress : undefined;
136
- useImperativeHandle(forwardedRef, () => ownerRef.current, [ownerRef]);
137
- return /*#__PURE__*/_jsx(BoundaryOwnerProvider, {
75
+ // A nested active target takes the full associated style, so the root keeps
76
+ // only its stacking context; otherwise the root wears the full style.
77
+ const attachedStyle = shouldAttachAssociatedStyles ? hasActiveTarget ? associatedStackingStyles : associatedStyles : undefined;
78
+ return /*#__PURE__*/_jsx(BoundaryRootProvider, {
138
79
  value: contextValue,
139
80
  children: /*#__PURE__*/_jsx(AnimatedComponent, {
140
81
  ...rest,
141
- ref: ownerRef,
142
- style: [style, runtimeEnabled ? hasActiveTarget ? associatedStackingStyles : associatedStyles : undefined],
82
+ ref: ref,
83
+ style: [style, attachedStyle],
143
84
  onPress: resolvedOnPress,
144
85
  collapsable: false
145
86
  })
146
87
  });
147
88
  });
89
+
90
+ // The HOC's runtime identity (animated + memoized forwardRef) is not
91
+ // expressible against the public boundary props, so assert it here.
148
92
  return /*#__PURE__*/memo(Animated.createAnimatedComponent(Inner));
149
93
  }
150
94
  //# sourceMappingURL=create-boundary-component.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","memo","useCallback","useImperativeHandle","useMemo","Animated","runOnUI","useAnimatedRef","useAnimatedStyle","NO_STYLES","useDescriptorsStore","useScreenStyles","createPendingPairKey","prepareStyleForBounds","useBoundaryPresence","useInitialDestinationMeasurement","useInitialSourceMeasurement","useMeasurer","useRefreshBoundary","BoundaryOwnerProvider","useBoundaryOwner","jsx","_jsx","createBoundaryComponent","Wrapped","options","alreadyAnimated","shouldAutoMeasure","AnimatedComponent","createAnimatedComponent","Inner","props","forwardedRef","ownerRef","enabled","group","id","anchor","scaleMode","target","method","style","onPress","portal","rest","linkId","String","entryTag","currentScreenKey","s","derivations","hasConfiguredInterpolator","runtimeEnabled","boundaryConfig","ownerPreparedStyles","stylesMap","associatedStyles","get","associatedStackingStyles","baseStyle","zIndex","elevation","contextValue","measuredRef","hasActiveTarget","targetPreparedStyles","associatedTargetStyles","undefined","preparedStyles","portalHost","attachTo","measureBoundary","measuredAnimatedRef","shouldPassivelyMeasureSource","handlePress","args","type","pairKey","resolvedOnPress","current","value","children","ref","collapsable"],"sourceRoot":"../../../../../src","sources":["shared/components/boundary/create-boundary-component.tsx"],"mappings":";;AAAA,SAECA,UAAU,EACVC,IAAI,EACJC,WAAW,EACXC,mBAAmB,EACnBC,OAAO,QACD,OAAO;AAEd,OAAOC,QAAQ,IACdC,OAAO,EACPC,cAAc,EACdC,gBAAgB,QACV,yBAAyB;AAChC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,mBAAmB,QAAQ,oCAAoC;AACxE,SAASC,eAAe,QAAQ,+BAA+B;AAC/D,SAASC,oBAAoB,QAAQ,gDAAgD;AACrF,SAASC,qBAAqB,QAAQ,0CAA0C;AAChF,SAASC,mBAAmB,QAAQ,+BAA+B;AACnE,SAASC,gCAAgC,QAAQ,6CAA6C;AAC9F,SAASC,2BAA2B,QAAQ,wCAAwC;AACpF,SAASC,WAAW,QAAQ,sBAAsB;AAClD,SAASC,kBAAkB,QAAQ,8BAA8B;AACjE,SACCC,qBAAqB,EACrBC,gBAAgB,QACV,qCAAqC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ7C,OAAO,SAASC,uBAAuBA,CACtCC,OAAyB,EACzBC,OAAuC,GAAG,CAAC,CAAC,EAC3C;EACD,MAAM;IAAEC,eAAe,GAAG,KAAK;IAAEC,iBAAiB,GAAG;EAAM,CAAC,GAAGF,OAAO;EACtE,MAAMG,iBAAiB,GAAGF,eAAe,GACtCF,OAAO,GACPnB,QAAQ,CAACwB,uBAAuB,CAACL,OAAO,CAAC;EAE5C,MAAMM,KAAK,gBAAG9B,UAAU,CAGtB,CAAC+B,KAAK,EAAEC,YAAY,KAAK;IAC1B,MAAMC,QAAQ,GAAG1B,cAAc,CAAO,CAAC;IACvC,MAAM;MACL2B,OAAO,GAAG,IAAI;MACdC,KAAK;MACLC,EAAE;MACFC,MAAM;MACNC,SAAS;MACTC,MAAM;MACNC,MAAM;MACNC,KAAK;MACLC,OAAO;MACPC,MAAM;MACN,GAAGC;IACJ,CAAC,GAAGb,KAAY;IAEhB,MAAMc,MAAM,GAAGC,MAAM,CAACV,EAAE,CAAC;IACzB,MAAMW,QAAQ,GAAGZ,KAAK,GAAG,GAAGA,KAAK,IAAIU,MAAM,EAAE,GAAGA,MAAM;IAEtD,MAAMG,gBAAgB,GAAGtC,mBAAmB,CAC1CuC,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACF,gBACtB,CAAC;IACD,MAAMG,yBAAyB,GAAGzC,mBAAmB,CACnDuC,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACC,yBACtB,CAAC;IAED,MAAMC,cAAc,GAAGlB,OAAO,IAAIiB,yBAAyB;IAC3D,MAAME,cAAc,GAAGjD,OAAO,CAAsB,MAAM;MACzD,OAAO;QACNiC,MAAM;QACNC,SAAS;QACTC,MAAM;QACNC;MACD,CAAC;IACF,CAAC,EAAE,CAACH,MAAM,EAAEC,SAAS,EAAEC,MAAM,EAAEC,MAAM,CAAC,CAAC;IAEvC,MAAMc,mBAAmB,GAAGlD,OAAO,CAClC,MAAMS,qBAAqB,CAAC4B,KAAK,CAAC,EAClC,CAACA,KAAK,CACP,CAAC;IACD,MAAM;MAAEc;IAAU,CAAC,GAAG5C,eAAe,CAAC,CAAC;IAEvC,MAAM6C,gBAAgB,GAAGhD,gBAAgB,CAAC,MAAM;MAC/C,SAAS;;MACT,OAAO+C,SAAS,CAACE,GAAG,CAAC,CAAC,CAACV,QAAQ,CAAC,EAAEN,KAAK,IAAIhC,SAAS;IACrD,CAAC,CAAC;IAEF,MAAMiD,wBAAwB,GAAGlD,gBAAgB,CAAC,MAAM;MACvD,SAAS;;MACT,MAAMmD,SAAS,GAAGJ,SAAS,CAACE,GAAG,CAAC,CAAC,CAACV,QAAQ,CAAC,EAAEN,KAAK;MAClD,MAAMmB,MAAM,GAAGD,SAAS,EAAEC,MAAM,IAAI,CAAC;MACrC,MAAMC,SAAS,GAAGF,SAAS,EAAEE,SAAS,IAAI,CAAC;MAE3C,IAAID,MAAM,KAAK,CAAC,IAAIC,SAAS,KAAK,CAAC,EAAE;QACpC,OAAOpD,SAAS;MACjB;MAEA,OAAO;QAAEmD,MAAM;QAAEC;MAAU,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM;MAAEC,YAAY;MAAEC,WAAW;MAAEC,eAAe;MAAEC;IAAqB,CAAC,GACzE7C,gBAAgB,CAAC;MAChBa,QAAQ;MACRiC,sBAAsB,EAAEd,cAAc,GAAGI,gBAAgB,GAAGW,SAAS;MACrEpB,QAAQ;MACRJ;IACD,CAAC,CAAC;IAEH,MAAMyB,cAAc,GAAGH,oBAAoB,IAAIX,mBAAmB;IAElE,MAAMe,UAAU,GACf,OAAO1B,MAAM,KAAK,QAAQ,GACtBA,MAAM,CAAC2B,QAAQ,IAAI,gBAAgB,GACpC3B,MAAM,GACL,gBAAgB,GAChBwB,SAAS;IAEd,MAAMI,eAAe,GAAGtD,WAAW,CAAC;MACnCiB,OAAO;MACPa,QAAQ;MACRF,MAAM;MACNV,KAAK;MACLa,gBAAgB;MAChBoB,cAAc;MACdI,mBAAmB,EAAET,WAAW;MAChCM;IACD,CAAC,CAAC;;IAEF;IACA;IACAvD,mBAAmB,CAAC;MACnBoB,OAAO,EAAEkB,cAAc;MACvBL,QAAQ;MACRC,gBAAgB;MAChBK;IACD,CAAC,CAAC;IAEF,MAAMoB,4BAA4B,GACjC9C,iBAAiB,IAAI,OAAOe,OAAO,KAAK,UAAU;IAEnD1B,2BAA2B,CAAC;MAC3BkB,OAAO,EAAEkB,cAAc;MACvBmB,eAAe;MACf1B,MAAM;MACNV,KAAK;MACLR,iBAAiB,EAAE8C;IACpB,CAAC,CAAC;IAEF1D,gCAAgC,CAAC;MAChC8B,MAAM;MACNX,OAAO,EAAEkB,cAAc;MACvBmB;IACD,CAAC,CAAC;IAEFrD,kBAAkB,CAAC;MAClBgB,OAAO,EAAEkB,cAAc;MACvBP,MAAM;MACNV,KAAK;MACLoC;IACD,CAAC,CAAC;IAEF,MAAMG,WAAW,GAAGxE,WAAW,CAC9B,CAAC,GAAGyE,IAAe,KAAK;MACvB;MACArE,OAAO,CAACiE,eAAe,CAAC,CAAC;QACxBK,IAAI,EAAE,QAAQ;QACdC,OAAO,EAAEjE,oBAAoB,CAACoC,gBAAgB;MAC/C,CAAC,CAAC;MAEF,IAAI,OAAON,OAAO,KAAK,UAAU,EAAE;QAClCA,OAAO,CAAC,GAAGiC,IAAI,CAAC;MACjB;IACD,CAAC,EACD,CAACJ,eAAe,EAAE7B,OAAO,EAAEM,gBAAgB,CAC5C,CAAC;IAED,MAAM8B,eAAe,GACpB,OAAOpC,OAAO,KAAK,UAAU,GAAGgC,WAAW,GAAGP,SAAS;IAExDhE,mBAAmB,CAAC6B,YAAY,EAAE,MAAMC,QAAQ,CAAC8C,OAAc,EAAE,CAChE9C,QAAQ,CACR,CAAC;IAEF,oBACCX,IAAA,CAACH,qBAAqB;MAAC6D,KAAK,EAAElB,YAAa;MAAAmB,QAAA,eAC1C3D,IAAA,CAACM,iBAAiB;QAAA,GACbgB,IAAI;QACRsC,GAAG,EAAEjD,QAAS;QACdQ,KAAK,EAAE,CACNA,KAAK,EACLW,cAAc,GACXY,eAAe,GACdN,wBAAwB,GACxBF,gBAAgB,GACjBW,SAAS,CACX;QACFzB,OAAO,EAAEoC,eAAgB;QACzBK,WAAW,EAAE;MAAM,CACnB;IAAC,CACoB,CAAC;EAE1B,CAAC,CAAC;EAEF,oBAAOlF,IAAI,CACVI,QAAQ,CAACwB,uBAAuB,CAACC,KAAK,CACvC,CAAC;AAMF","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","memo","useImperativeHandle","useMemo","Animated","useDescriptorsStore","useSlotStackingStyles","useSlotStyles","createBoundTag","useBoundaryMeasurement","resolveBoundaryPortal","BoundaryRootProvider","useBoundaryRootState","jsx","_jsx","createBoundaryComponent","Wrapped","options","alreadyAnimated","shouldAutoMeasure","AnimatedComponent","createAnimatedComponent","Inner","props","forwardedRef","enabled","group","id","anchor","scaleMode","target","method","style","onPress","portal","portalProp","rest","boundTag","String","currentScreenKey","s","derivations","hasConfiguredInterpolator","runtimeEnabled","shouldAttachAssociatedStyles","associatedStyles","tag","associatedStackingStyles","ref","contextValue","measuredRef","hasActiveTarget","targetPreparedStyles","associatedTargetStyles","undefined","resolvedOnPress","config","current","attachedStyle","value","children","collapsable"],"sourceRoot":"../../../../../src","sources":["shared/components/boundary/create-boundary-component.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useMemo } from "react";
4
+ import { runOnUI } from "react-native-reanimated";
5
+ import { createPendingPairKey } from "../../../stores/bounds/helpers/link-pairs.helpers";
6
+ import { prepareStyleForBounds } from "../../../utils/bounds/helpers/styles/styles";
7
+ import { resolvePortalHost } from "../portal/resolve-portal";
8
+ import { useBoundaryPresence } from "./use-boundary-presence";
9
+ import { useInitialDestinationMeasurement } from "./use-initial-destination-measurement";
10
+ import { useInitialSourceMeasurement } from "./use-initial-source-measurement";
11
+ import { useMeasurer } from "./use-measurer";
12
+ import { useRefreshBoundary } from "./use-refresh-boundary";
13
+ /**
14
+ * Owns the full measurement lifecycle for a boundary: builds the measurer,
15
+ * registers presence, runs the initial source/destination + refresh reactions,
16
+ * and returns the press-priority `onPress`. The component never touches the
17
+ * measurer itself.
18
+ */
19
+ export const useBoundaryMeasurement = ({
20
+ boundTag,
21
+ enabled,
22
+ runtimeEnabled,
23
+ currentScreenKey,
24
+ measuredRef,
25
+ style,
26
+ targetPreparedStyles,
27
+ portal,
28
+ shouldAutoMeasure,
29
+ config,
30
+ onPress
31
+ }) => {
32
+ const {
33
+ anchor,
34
+ scaleMode,
35
+ target,
36
+ method
37
+ } = config;
38
+ const boundaryConfig = useMemo(() => ({
39
+ anchor,
40
+ scaleMode,
41
+ target,
42
+ method
43
+ }), [anchor, scaleMode, target, method]);
44
+ const rootPreparedStyles = useMemo(() => prepareStyleForBounds(style), [style]);
45
+ const preparedStyles = targetPreparedStyles ?? rootPreparedStyles;
46
+ const portalHost = resolvePortalHost(portal);
47
+ const measureBoundary = useMeasurer({
48
+ enabled,
49
+ boundTag,
50
+ currentScreenKey,
51
+ preparedStyles,
52
+ measuredAnimatedRef: measuredRef,
53
+ portalHost
54
+ });
55
+
56
+ // Register/unregister this boundary in the presence map so source/destination
57
+ // matching can resolve across concrete screen keys.
58
+ useBoundaryPresence({
59
+ enabled: runtimeEnabled,
60
+ boundTag,
61
+ currentScreenKey,
62
+ boundaryConfig
63
+ });
64
+
65
+ // Passive auto-measurement only applies to non-pressable boundaries; pressable
66
+ // ones capture their source on press (see handlePress below).
67
+ const shouldPassivelyMeasureSource = shouldAutoMeasure && typeof onPress !== "function";
68
+ useInitialSourceMeasurement({
69
+ enabled: runtimeEnabled,
70
+ measureBoundary,
71
+ boundTag,
72
+ shouldAutoMeasure: shouldPassivelyMeasureSource
73
+ });
74
+ useInitialDestinationMeasurement({
75
+ boundTag,
76
+ enabled: runtimeEnabled,
77
+ measureBoundary
78
+ });
79
+ useRefreshBoundary({
80
+ enabled: runtimeEnabled,
81
+ boundTag,
82
+ measureBoundary
83
+ });
84
+ const handlePress = useCallback((...args) => {
85
+ // Press path has priority: capture source before user onPress/navigation.
86
+ runOnUI(measureBoundary)({
87
+ type: "source",
88
+ pairKey: createPendingPairKey(currentScreenKey)
89
+ });
90
+ if (typeof onPress === "function") {
91
+ onPress(...args);
92
+ }
93
+ }, [measureBoundary, onPress, currentScreenKey]);
94
+ return {
95
+ onPress: typeof onPress === "function" ? handlePress : undefined
96
+ };
97
+ };
98
+ //# sourceMappingURL=use-boundary-measurement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useMemo","runOnUI","createPendingPairKey","prepareStyleForBounds","resolvePortalHost","useBoundaryPresence","useInitialDestinationMeasurement","useInitialSourceMeasurement","useMeasurer","useRefreshBoundary","useBoundaryMeasurement","boundTag","enabled","runtimeEnabled","currentScreenKey","measuredRef","style","targetPreparedStyles","portal","shouldAutoMeasure","config","onPress","anchor","scaleMode","target","method","boundaryConfig","rootPreparedStyles","preparedStyles","portalHost","measureBoundary","measuredAnimatedRef","shouldPassivelyMeasureSource","handlePress","args","type","pairKey","undefined"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-boundary-measurement.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAG5C,SAASC,OAAO,QAAQ,yBAAyB;AACjD,SAASC,oBAAoB,QAAQ,mDAAmD;AAExF,SAASC,qBAAqB,QAAQ,6CAA6C;AACnF,SAASC,iBAAiB,QAAQ,0BAA0B;AAE5D,SAASC,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,gCAAgC,QAAQ,uCAAuC;AACxF,SAASC,2BAA2B,QAAQ,kCAAkC;AAC9E,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,kBAAkB,QAAQ,wBAAwB;AAoB3D;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CAAC;EACtCC,QAAQ;EACRC,OAAO;EACPC,cAAc;EACdC,gBAAgB;EAChBC,WAAW;EACXC,KAAK;EACLC,oBAAoB;EACpBC,MAAM;EACNC,iBAAiB;EACjBC,MAAM;EACNC;AAC6B,CAAC,KAAK;EACnC,MAAM;IAAEC,MAAM;IAAEC,SAAS;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGL,MAAM;EACpD,MAAMM,cAAc,GAAG1B,OAAO,CAC7B,OAAO;IAAEsB,MAAM;IAAEC,SAAS;IAAEC,MAAM;IAAEC;EAAO,CAAC,CAAC,EAC7C,CAACH,MAAM,EAAEC,SAAS,EAAEC,MAAM,EAAEC,MAAM,CACnC,CAAC;EAED,MAAME,kBAAkB,GAAG3B,OAAO,CACjC,MAAMG,qBAAqB,CAACa,KAAK,CAAC,EAClC,CAACA,KAAK,CACP,CAAC;EACD,MAAMY,cAAc,GAAGX,oBAAoB,IAAIU,kBAAkB;EAEjE,MAAME,UAAU,GAAGzB,iBAAiB,CAACc,MAAM,CAAC;EAE5C,MAAMY,eAAe,GAAGtB,WAAW,CAAC;IACnCI,OAAO;IACPD,QAAQ;IACRG,gBAAgB;IAChBc,cAAc;IACdG,mBAAmB,EAAEhB,WAAW;IAChCc;EACD,CAAC,CAAC;;EAEF;EACA;EACAxB,mBAAmB,CAAC;IACnBO,OAAO,EAAEC,cAAc;IACvBF,QAAQ;IACRG,gBAAgB;IAChBY;EACD,CAAC,CAAC;;EAEF;EACA;EACA,MAAMM,4BAA4B,GACjCb,iBAAiB,IAAI,OAAOE,OAAO,KAAK,UAAU;EAEnDd,2BAA2B,CAAC;IAC3BK,OAAO,EAAEC,cAAc;IACvBiB,eAAe;IACfnB,QAAQ;IACRQ,iBAAiB,EAAEa;EACpB,CAAC,CAAC;EAEF1B,gCAAgC,CAAC;IAChCK,QAAQ;IACRC,OAAO,EAAEC,cAAc;IACvBiB;EACD,CAAC,CAAC;EAEFrB,kBAAkB,CAAC;IAClBG,OAAO,EAAEC,cAAc;IACvBF,QAAQ;IACRmB;EACD,CAAC,CAAC;EAEF,MAAMG,WAAW,GAAGlC,WAAW,CAC9B,CAAC,GAAGmC,IAAe,KAAK;IACvB;IACAjC,OAAO,CAAC6B,eAAe,CAAC,CAAC;MACxBK,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAElC,oBAAoB,CAACY,gBAAgB;IAC/C,CAAC,CAAC;IAEF,IAAI,OAAOO,OAAO,KAAK,UAAU,EAAE;MAClCA,OAAO,CAAC,GAAGa,IAAI,CAAC;IACjB;EACD,CAAC,EACD,CAACJ,eAAe,EAAET,OAAO,EAAEP,gBAAgB,CAC5C,CAAC;EAED,OAAO;IACNO,OAAO,EAAE,OAAOA,OAAO,KAAK,UAAU,GAAGY,WAAW,GAAGI;EACxD,CAAC;AACF,CAAC","ignoreList":[]}
@@ -6,18 +6,21 @@ import { removeEntry, setEntry } from "../../../stores/bounds/internals/entries"
6
6
  export const useBoundaryPresence = params => {
7
7
  const {
8
8
  enabled,
9
- entryTag,
9
+ boundTag,
10
10
  currentScreenKey,
11
11
  boundaryConfig
12
12
  } = params;
13
+ const {
14
+ tag
15
+ } = boundTag;
13
16
  useLayoutEffect(() => {
14
17
  if (!enabled) return;
15
- runOnUI(setEntry)(entryTag, currentScreenKey, {
18
+ runOnUI(setEntry)(tag, currentScreenKey, {
16
19
  boundaryConfig
17
20
  });
18
21
  return () => {
19
- runOnUI(removeEntry)(entryTag, currentScreenKey);
22
+ runOnUI(removeEntry)(tag, currentScreenKey);
20
23
  };
21
- }, [enabled, entryTag, currentScreenKey, boundaryConfig]);
24
+ }, [enabled, tag, currentScreenKey, boundaryConfig]);
22
25
  };
23
26
  //# sourceMappingURL=use-boundary-presence.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useLayoutEffect","runOnUI","removeEntry","setEntry","useBoundaryPresence","params","enabled","entryTag","currentScreenKey","boundaryConfig"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-boundary-presence.ts"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,OAAO;AACvC,SAASC,OAAO,QAAQ,yBAAyB;AACjD,SACCC,WAAW,EACXC,QAAQ,QACF,0CAA0C;AAGjD,OAAO,MAAMC,mBAAmB,GAAIC,MAKnC,IAAK;EACL,MAAM;IAAEC,OAAO;IAAEC,QAAQ;IAAEC,gBAAgB;IAAEC;EAAe,CAAC,GAAGJ,MAAM;EAEtEL,eAAe,CAAC,MAAM;IACrB,IAAI,CAACM,OAAO,EAAE;IAEdL,OAAO,CAACE,QAAQ,CAAC,CAACI,QAAQ,EAAEC,gBAAgB,EAAE;MAC7CC;IACD,CAAC,CAAC;IAEF,OAAO,MAAM;MACZR,OAAO,CAACC,WAAW,CAAC,CAACK,QAAQ,EAAEC,gBAAgB,CAAC;IACjD,CAAC;EACF,CAAC,EAAE,CAACF,OAAO,EAAEC,QAAQ,EAAEC,gBAAgB,EAAEC,cAAc,CAAC,CAAC;AAC1D,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useLayoutEffect","runOnUI","removeEntry","setEntry","useBoundaryPresence","params","enabled","boundTag","currentScreenKey","boundaryConfig","tag"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-boundary-presence.ts"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,OAAO;AACvC,SAASC,OAAO,QAAQ,yBAAyB;AACjD,SACCC,WAAW,EACXC,QAAQ,QACF,0CAA0C;AAIjD,OAAO,MAAMC,mBAAmB,GAAIC,MAKnC,IAAK;EACL,MAAM;IAAEC,OAAO;IAAEC,QAAQ;IAAEC,gBAAgB;IAAEC;EAAe,CAAC,GAAGJ,MAAM;EACtE,MAAM;IAAEK;EAAI,CAAC,GAAGH,QAAQ;EAExBP,eAAe,CAAC,MAAM;IACrB,IAAI,CAACM,OAAO,EAAE;IAEdL,OAAO,CAACE,QAAQ,CAAC,CAACO,GAAG,EAAEF,gBAAgB,EAAE;MACxCC;IACD,CAAC,CAAC;IAEF,OAAO,MAAM;MACZR,OAAO,CAACC,WAAW,CAAC,CAACQ,GAAG,EAAEF,gBAAgB,CAAC;IAC5C,CAAC;EACF,CAAC,EAAE,CAACF,OAAO,EAAEI,GAAG,EAAEF,gBAAgB,EAAEC,cAAc,CAAC,CAAC;AACrD,CAAC","ignoreList":[]}
@@ -8,7 +8,7 @@ import { pairs } from "../../../stores/bounds/internals/state";
8
8
  import { LifecycleTransitionRequestKind, SystemStore } from "../../../stores/system.store";
9
9
  import { logger } from "../../../utils/logger";
10
10
  import { getInitialDestinationMeasurePairKey } from "../utils/destination-signals";
11
- const VIEWPORT_RETRY_DELAY_MS = 16;
11
+ const VIEWPORT_RETRY_DELAY_MS = 100;
12
12
  /**
13
13
  * A destination that keeps failing its measurement guards must not hold the
14
14
  * transition gate forever — after this budget the block is released with a
@@ -16,24 +16,27 @@ const VIEWPORT_RETRY_DELAY_MS = 16;
16
16
  */
17
17
  const MAX_VIEWPORT_RETRIES = 20;
18
18
  export const useInitialDestinationMeasurement = ({
19
- linkId,
19
+ boundTag,
20
20
  enabled,
21
21
  measureBoundary
22
22
  }) => {
23
+ const {
24
+ linkKey,
25
+ group
26
+ } = boundTag;
23
27
  const currentScreenKey = useDescriptorsStore(s => s.derivations.currentScreenKey);
24
28
  const nextScreenKey = useDescriptorsStore(s => s.derivations.nextScreenKey);
25
29
  const destinationPairKey = useDescriptorsStore(s => s.derivations.destinationPairKey);
26
30
  const ancestorDestinationPairKey = useDescriptorsStore(s => s.derivations.ancestorDestinationPairKey);
27
31
  const destinationEnabled = enabled && !nextScreenKey;
28
32
  const progress = AnimationStore.getValue(currentScreenKey, "transitionProgress");
29
- const system = SystemStore.getBag(currentScreenKey);
30
- const {
31
- pendingLifecycleRequestKind
32
- } = system;
33
33
  const {
34
- blockLifecycleStart,
35
- unblockLifecycleStart
36
- } = system.actions;
34
+ pendingLifecycleRequestKind,
35
+ actions: {
36
+ blockLifecycleStart,
37
+ unblockLifecycleStart
38
+ }
39
+ } = SystemStore.getBag(currentScreenKey);
37
40
  const isBlockingLifecycleStart = useSharedValue(0);
38
41
  const retryToken = useSharedValue(0);
39
42
  const viewportRetries = useSharedValue(0);
@@ -61,11 +64,12 @@ export const useInitialDestinationMeasurement = ({
61
64
  enabled: destinationEnabled,
62
65
  destinationPairKey,
63
66
  ancestorDestinationPairKey,
64
- linkId,
67
+ linkId: linkKey,
68
+ group,
65
69
  linkState: destinationEnabled && (destinationPairKey || ancestorDestinationPairKey) ? pairs.get() : undefined
66
70
  });
67
71
  return [measurePairKey, retryTick];
68
- }, ([measurePairKey]) => {
72
+ }, ([measurePairKey, retryTick], previous) => {
69
73
  "worklet";
70
74
 
71
75
  if (!measurePairKey) {
@@ -74,6 +78,12 @@ export const useInitialDestinationMeasurement = ({
74
78
  hasGivenUp.set(0);
75
79
  return;
76
80
  }
81
+ const previousMeasurePairKey = previous?.[0];
82
+ const previousRetryTick = previous?.[1];
83
+ const shouldAttemptMeasure = measurePairKey !== previousMeasurePairKey || retryTick !== previousRetryTick;
84
+ if (!shouldAttemptMeasure) {
85
+ return;
86
+ }
77
87
  if (hasGivenUp.get()) {
78
88
  return;
79
89
  }
@@ -85,7 +95,7 @@ export const useInitialDestinationMeasurement = ({
85
95
  type: "destination",
86
96
  pairKey: measurePairKey
87
97
  });
88
- const destinationAttached = getDestination(measurePairKey, linkId) !== null;
98
+ const destinationAttached = getDestination(measurePairKey, linkKey) !== null;
89
99
  if (destinationAttached) {
90
100
  releaseLifecycleStartBlock();
91
101
  viewportRetries.set(0);
@@ -94,12 +104,12 @@ export const useInitialDestinationMeasurement = ({
94
104
  if (viewportRetries.get() >= MAX_VIEWPORT_RETRIES) {
95
105
  hasGivenUp.set(1);
96
106
  releaseLifecycleStartBlock();
97
- logger.warn(`Destination boundary "${linkId}" never produced a valid measurement after ${MAX_VIEWPORT_RETRIES} attempts; releasing the transition gate without it. The boundary is likely off-viewport (e.g. an inactive group member on a paged screen) or unmounted.`);
107
+ logger.warn(`Destination boundary "${linkKey}" never produced a valid measurement after ${MAX_VIEWPORT_RETRIES} attempts; releasing the transition gate without it. The boundary is likely off-viewport (e.g. an inactive group member on a paged screen) or unmounted.`);
98
108
  return;
99
109
  }
100
110
 
101
111
  // Destination did not attach (malformed off-screen measurement); retry
102
- // on the next tick while the lifecycle stays blocked.
112
+ // after the retry token advances while the lifecycle stays blocked.
103
113
  viewportRetries.set(viewportRetries.get() + 1);
104
114
  cancelAnimation(retryToken);
105
115
  retryToken.set(withDelay(VIEWPORT_RETRY_DELAY_MS, withTiming(retryToken.get() + 1, {
@@ -1 +1 @@
1
- {"version":3,"names":["cancelAnimation","useAnimatedReaction","useSharedValue","withDelay","withTiming","useDescriptorsStore","AnimationStore","getDestination","pairs","LifecycleTransitionRequestKind","SystemStore","logger","getInitialDestinationMeasurePairKey","VIEWPORT_RETRY_DELAY_MS","MAX_VIEWPORT_RETRIES","useInitialDestinationMeasurement","linkId","enabled","measureBoundary","currentScreenKey","s","derivations","nextScreenKey","destinationPairKey","ancestorDestinationPairKey","destinationEnabled","progress","getValue","system","getBag","pendingLifecycleRequestKind","blockLifecycleStart","unblockLifecycleStart","actions","isBlockingLifecycleStart","retryToken","viewportRetries","hasGivenUp","releaseLifecycleStartBlock","get","set","retryTick","hasPendingOpenRequest","Open","isWaitingForOpenToStart","measurePairKey","linkState","undefined","type","pairKey","destinationAttached","warn","duration"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-initial-destination-measurement.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["cancelAnimation","useAnimatedReaction","useSharedValue","withDelay","withTiming","useDescriptorsStore","AnimationStore","getDestination","pairs","LifecycleTransitionRequestKind","SystemStore","logger","getInitialDestinationMeasurePairKey","VIEWPORT_RETRY_DELAY_MS","MAX_VIEWPORT_RETRIES","useInitialDestinationMeasurement","boundTag","enabled","measureBoundary","linkKey","group","currentScreenKey","s","derivations","nextScreenKey","destinationPairKey","ancestorDestinationPairKey","destinationEnabled","progress","getValue","pendingLifecycleRequestKind","actions","blockLifecycleStart","unblockLifecycleStart","getBag","isBlockingLifecycleStart","retryToken","viewportRetries","hasGivenUp","releaseLifecycleStartBlock","get","set","retryTick","hasPendingOpenRequest","Open","isWaitingForOpenToStart","measurePairKey","linkId","linkState","undefined","previous","previousMeasurePairKey","previousRetryTick","shouldAttemptMeasure","type","pairKey","destinationAttached","warn","duration"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-initial-destination-measurement.ts"],"mappings":"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","ignoreList":[]}
@@ -8,8 +8,7 @@ export const useInitialSourceMeasurement = params => {
8
8
  const {
9
9
  enabled,
10
10
  measureBoundary,
11
- linkId,
12
- group,
11
+ boundTag,
13
12
  shouldAutoMeasure
14
13
  } = params;
15
14
  const sourcePairKey = useDescriptorsStore(s => s.derivations.sourcePairKey);
@@ -20,8 +19,8 @@ export const useInitialSourceMeasurement = params => {
20
19
  return getInitialSourceCaptureSignal({
21
20
  enabled,
22
21
  sourcePairKey,
23
- linkId,
24
- group,
22
+ linkId: boundTag.linkKey,
23
+ group: boundTag.group,
25
24
  shouldAutoMeasure,
26
25
  linkState: shouldAutoMeasure && sourcePairKey ? pairs.get() : undefined
27
26
  });
@@ -1 +1 @@
1
- {"version":3,"names":["useAnimatedReaction","useSharedValue","useDescriptorsStore","pairs","getInitialSourceCaptureSignal","useInitialSourceMeasurement","params","enabled","measureBoundary","linkId","group","shouldAutoMeasure","sourcePairKey","s","derivations","lastSourceCaptureSignal","linkState","get","undefined","captureSignal","set","signal","type","pairKey"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-initial-source-measurement.ts"],"mappings":";;AAAA,SAASA,mBAAmB,EAAEC,cAAc,QAAQ,yBAAyB;AAC7E,SAASC,mBAAmB,QAAQ,uCAAuC;AAC3E,SAASC,KAAK,QAAQ,wCAAwC;AAE9D,SAASC,6BAA6B,QAAQ,yBAAyB;AAEvE,OAAO,MAAMC,2BAA2B,GAAIC,MAM3C,IAAK;EACL,MAAM;IAAEC,OAAO;IAAEC,eAAe;IAAEC,MAAM;IAAEC,KAAK;IAAEC;EAAkB,CAAC,GAAGL,MAAM;EAC7E,MAAMM,aAAa,GAAGV,mBAAmB,CAAEW,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACF,aAAa,CAAC;EAC7E,MAAMG,uBAAuB,GAAGd,cAAc,CAAgB,IAAI,CAAC;EAEnED,mBAAmB,CAClB,MAAM;IACL,SAAS;;IACT,OAAOI,6BAA6B,CAAC;MACpCG,OAAO;MACPK,aAAa;MACbH,MAAM;MACNC,KAAK;MACLC,iBAAiB;MACjBK,SAAS,EAAEL,iBAAiB,IAAIC,aAAa,GAAGT,KAAK,CAACc,GAAG,CAAC,CAAC,GAAGC;IAC/D,CAAC,CAAC;EACH,CAAC,EACAC,aAAa,IAAK;IAClB,SAAS;;IACT,IAAI,CAACZ,OAAO,IAAI,CAACY,aAAa,EAAE;MAC/BJ,uBAAuB,CAACK,GAAG,CAAC,IAAI,CAAC;MACjC;IACD;IAEA,IAAIL,uBAAuB,CAACE,GAAG,CAAC,CAAC,KAAKE,aAAa,CAACE,MAAM,EAAE;MAC3D;IACD;IAEAN,uBAAuB,CAACK,GAAG,CAACD,aAAa,CAACE,MAAM,CAAC;IACjDb,eAAe,CAAC;MACfc,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAEJ,aAAa,CAACI;IACxB,CAAC,CAAC;EACH,CACD,CAAC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useAnimatedReaction","useSharedValue","useDescriptorsStore","pairs","getInitialSourceCaptureSignal","useInitialSourceMeasurement","params","enabled","measureBoundary","boundTag","shouldAutoMeasure","sourcePairKey","s","derivations","lastSourceCaptureSignal","linkId","linkKey","group","linkState","get","undefined","captureSignal","set","signal","type","pairKey"],"sourceRoot":"../../../../../../src","sources":["shared/components/boundary/hooks/use-initial-source-measurement.ts"],"mappings":";;AAAA,SAASA,mBAAmB,EAAEC,cAAc,QAAQ,yBAAyB;AAC7E,SAASC,mBAAmB,QAAQ,uCAAuC;AAC3E,SAASC,KAAK,QAAQ,wCAAwC;AAG9D,SAASC,6BAA6B,QAAQ,yBAAyB;AAEvE,OAAO,MAAMC,2BAA2B,GAAIC,MAK3C,IAAK;EACL,MAAM;IAAEC,OAAO;IAAEC,eAAe;IAAEC,QAAQ;IAAEC;EAAkB,CAAC,GAAGJ,MAAM;EACxE,MAAMK,aAAa,GAAGT,mBAAmB,CAAEU,CAAC,IAAKA,CAAC,CAACC,WAAW,CAACF,aAAa,CAAC;EAC7E,MAAMG,uBAAuB,GAAGb,cAAc,CAAgB,IAAI,CAAC;EAEnED,mBAAmB,CAClB,MAAM;IACL,SAAS;;IACT,OAAOI,6BAA6B,CAAC;MACpCG,OAAO;MACPI,aAAa;MACbI,MAAM,EAAEN,QAAQ,CAACO,OAAO;MACxBC,KAAK,EAAER,QAAQ,CAACQ,KAAK;MACrBP,iBAAiB;MACjBQ,SAAS,EAAER,iBAAiB,IAAIC,aAAa,GAAGR,KAAK,CAACgB,GAAG,CAAC,CAAC,GAAGC;IAC/D,CAAC,CAAC;EACH,CAAC,EACAC,aAAa,IAAK;IAClB,SAAS;;IACT,IAAI,CAACd,OAAO,IAAI,CAACc,aAAa,EAAE;MAC/BP,uBAAuB,CAACQ,GAAG,CAAC,IAAI,CAAC;MACjC;IACD;IAEA,IAAIR,uBAAuB,CAACK,GAAG,CAAC,CAAC,KAAKE,aAAa,CAACE,MAAM,EAAE;MAC3D;IACD;IAEAT,uBAAuB,CAACQ,GAAG,CAACD,aAAa,CAACE,MAAM,CAAC;IACjDf,eAAe,CAAC;MACfgB,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAEJ,aAAa,CAACI;IACxB,CAAC,CAAC;EACH,CACD,CAAC;AACF,CAAC","ignoreList":[]}
@@ -11,9 +11,7 @@ import { getActiveScrollHost } from "../portal/stores/host-registry.store";
11
11
  import { attachScrollSnapshotToMeasuredBounds, isMeasurementInViewport, measureWithOverscrollAwareness, normalizeMeasuredBoundsToOrigin } from "../utils/measured-bounds";
12
12
  export const useMeasurer = ({
13
13
  enabled,
14
- entryTag,
15
- linkId,
16
- group,
14
+ boundTag,
17
15
  currentScreenKey,
18
16
  preparedStyles,
19
17
  measuredAnimatedRef,
@@ -45,15 +43,15 @@ export const useMeasurer = ({
45
43
  * and malformed off-screen destination measurements should keep the
46
44
  * lifecycle blocked until a valid retry lands.
47
45
  */
48
- const shouldGuardDestinationViewport = pendingLifecycleStartBlockCount.get() > 0 || !!group;
46
+ const shouldGuardDestinationViewport = pendingLifecycleStartBlockCount.get() > 0 || !!boundTag.group;
49
47
  const viewportAllowsDestinationWrite = target.type !== "destination" || !shouldGuardDestinationViewport || isMeasurementInViewport(normalizedMeasured, viewportWidth, viewportHeight);
50
48
  if (!viewportAllowsDestinationWrite) return;
51
49
  const measuredWithScroll = attachScrollSnapshotToMeasuredBounds(normalizedMeasured, scrollMetadata.get());
52
50
  const sourceHost = target.type === "source" ? getActiveScrollHost(currentScreenKey) ?? undefined : undefined;
53
51
  applyMeasuredBoundsWrites({
54
- entryTag,
55
- linkId,
56
- group,
52
+ entryTag: boundTag.tag,
53
+ linkId: boundTag.linkKey,
54
+ group: boundTag.group,
57
55
  currentScreenKey,
58
56
  measured: measuredWithScroll,
59
57
  preparedStyles,
@@ -61,6 +59,6 @@ export const useMeasurer = ({
61
59
  portalHost,
62
60
  sourceHost
63
61
  });
64
- }, [enabled, entryTag, linkId, group, currentScreenKey, preparedStyles, measuredAnimatedRef, portalHost, viewportWidth, viewportHeight, scrollState, scrollMetadata, pendingLifecycleStartBlockCount, originRef]);
62
+ }, [enabled, boundTag, currentScreenKey, preparedStyles, measuredAnimatedRef, portalHost, viewportWidth, viewportHeight, scrollState, scrollMetadata, pendingLifecycleStartBlockCount, originRef]);
65
63
  };
66
64
  //# sourceMappingURL=use-measurer.js.map