react-native-screen-transitions 4.0.0-alpha.2 → 4.0.0-alpha.4

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 (624) hide show
  1. package/lib/commonjs/adapters/with-screen-transitions/context.js +4 -0
  2. package/lib/commonjs/adapters/with-screen-transitions/context.js.map +1 -1
  3. package/lib/commonjs/adapters/with-screen-transitions/stack-layout.js +14 -8
  4. package/lib/commonjs/adapters/with-screen-transitions/stack-layout.js.map +1 -1
  5. package/lib/commonjs/animation/snap-to.js +1 -0
  6. package/lib/commonjs/animation/snap-to.js.map +1 -1
  7. package/lib/commonjs/components/activity/variants/activity-screen.js +26 -10
  8. package/lib/commonjs/components/activity/variants/activity-screen.js.map +1 -1
  9. package/lib/commonjs/components/boundary/components/boundary-target.js +1 -1
  10. package/lib/commonjs/components/boundary/components/boundary-target.js.map +1 -1
  11. package/lib/commonjs/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +29 -14
  12. package/lib/commonjs/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
  13. package/lib/commonjs/components/boundary/hooks/lifecycles/use-initial-source-measurement.js +3 -1
  14. package/lib/commonjs/components/boundary/hooks/lifecycles/use-initial-source-measurement.js.map +1 -1
  15. package/lib/commonjs/components/boundary/hooks/lifecycles/use-refresh-boundary.js +8 -17
  16. package/lib/commonjs/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
  17. package/lib/commonjs/components/boundary/hooks/use-boundary-measurement.js +5 -4
  18. package/lib/commonjs/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  19. package/lib/commonjs/components/boundary/hooks/use-measurer.js +6 -13
  20. package/lib/commonjs/components/boundary/hooks/use-measurer.js.map +1 -1
  21. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +67 -0
  22. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -0
  23. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +44 -37
  24. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  25. package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/host.js +2 -2
  26. package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -1
  27. package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/active-pair.js +30 -0
  28. package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/active-pair.js.map +1 -0
  29. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +75 -0
  30. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -0
  31. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +17 -32
  32. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  33. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +10 -19
  34. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -1
  35. package/lib/commonjs/components/boundary/portal/utils/naming.js +8 -1
  36. package/lib/commonjs/components/boundary/portal/utils/naming.js.map +1 -1
  37. package/lib/commonjs/components/boundary/providers/boundary-root.provider.js +4 -5
  38. package/lib/commonjs/components/boundary/providers/boundary-root.provider.js.map +1 -1
  39. package/lib/commonjs/components/boundary/utils/destination-signals.js +1 -3
  40. package/lib/commonjs/components/boundary/utils/destination-signals.js.map +1 -1
  41. package/lib/commonjs/components/boundary/utils/measured-bounds.js +19 -31
  42. package/lib/commonjs/components/boundary/utils/measured-bounds.js.map +1 -1
  43. package/lib/commonjs/components/boundary/utils/refresh-signals.js +16 -24
  44. package/lib/commonjs/components/boundary/utils/refresh-signals.js.map +1 -1
  45. package/lib/commonjs/components/create-transition-aware-component.js +9 -30
  46. package/lib/commonjs/components/create-transition-aware-component.js.map +1 -1
  47. package/lib/commonjs/components/screen-container/hooks/use-backdrop-pointer-events.js +5 -9
  48. package/lib/commonjs/components/screen-container/hooks/use-backdrop-pointer-events.js.map +1 -1
  49. package/lib/commonjs/components/screen-container/hooks/use-content-layout.js +3 -8
  50. package/lib/commonjs/components/screen-container/hooks/use-content-layout.js.map +1 -1
  51. package/lib/commonjs/components/screen-container/layers/backdrop.js +7 -10
  52. package/lib/commonjs/components/screen-container/layers/backdrop.js.map +1 -1
  53. package/lib/commonjs/components/screen-container/layers/content.js +10 -16
  54. package/lib/commonjs/components/screen-container/layers/content.js.map +1 -1
  55. package/lib/commonjs/components/screen-container/layers/surface-container.js +1 -5
  56. package/lib/commonjs/components/screen-container/layers/surface-container.js.map +1 -1
  57. package/lib/commonjs/components/screen-lifecycle/hooks/use-close-transition-intent.js +10 -12
  58. package/lib/commonjs/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
  59. package/lib/commonjs/components/screen-lifecycle/hooks/use-open-transition-intent.js +2 -3
  60. package/lib/commonjs/components/screen-lifecycle/hooks/use-open-transition-intent.js.map +1 -1
  61. package/lib/commonjs/components/screen-lifecycle/hooks/use-transition-start-controller.js +5 -1
  62. package/lib/commonjs/components/screen-lifecycle/hooks/use-transition-start-controller.js.map +1 -1
  63. package/lib/commonjs/components/screen-lifecycle/index.js +2 -4
  64. package/lib/commonjs/components/screen-lifecycle/index.js.map +1 -1
  65. package/lib/commonjs/components/stack-view.js +69 -35
  66. package/lib/commonjs/components/stack-view.js.map +1 -1
  67. package/lib/commonjs/configs/presets.js +10 -10
  68. package/lib/commonjs/configs/presets.js.map +1 -1
  69. package/lib/commonjs/constants.js +1 -0
  70. package/lib/commonjs/constants.js.map +1 -1
  71. package/lib/commonjs/hooks/navigation/use-navigation-helpers.js +9 -8
  72. package/lib/commonjs/hooks/navigation/use-navigation-helpers.js.map +1 -1
  73. package/lib/commonjs/hooks/navigation/use-screen-state.js +1 -3
  74. package/lib/commonjs/hooks/navigation/use-screen-state.js.map +1 -1
  75. package/lib/commonjs/providers/screen/animation/animation.provider.js +7 -7
  76. package/lib/commonjs/providers/screen/animation/animation.provider.js.map +1 -1
  77. package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js +1 -3
  78. package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map +1 -1
  79. package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +1 -1
  80. package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +1 -1
  81. package/lib/commonjs/providers/screen/animation/helpers/hydrate-transition-state/index.js +4 -10
  82. package/lib/commonjs/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
  83. package/lib/commonjs/providers/screen/animation/helpers/pipeline.js +5 -7
  84. package/lib/commonjs/providers/screen/animation/helpers/pipeline.js.map +1 -1
  85. package/lib/commonjs/providers/screen/animation/index.js +2 -2
  86. package/lib/commonjs/providers/screen/animation/use-screen-animation.js +1 -1
  87. package/lib/commonjs/providers/screen/animation/use-screen-animation.js.map +1 -1
  88. package/lib/commonjs/providers/screen/descriptors/descriptors.provider.js +35 -47
  89. package/lib/commonjs/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  90. package/lib/commonjs/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +1 -3
  91. package/lib/commonjs/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
  92. package/lib/commonjs/providers/screen/descriptors/helpers/get-ancestor-keys.js +3 -20
  93. package/lib/commonjs/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +1 -1
  94. package/lib/commonjs/providers/screen/descriptors/index.js +0 -12
  95. package/lib/commonjs/providers/screen/descriptors/index.js.map +1 -1
  96. package/lib/commonjs/providers/screen/gestures/gestures.provider.js +7 -7
  97. package/lib/commonjs/providers/screen/gestures/gestures.provider.js.map +1 -1
  98. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture-config.js +3 -9
  99. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
  100. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture.js +1 -1
  101. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture.js.map +1 -1
  102. package/lib/commonjs/providers/screen/gestures/hooks/use-stable-runtime-config.js +1 -3
  103. package/lib/commonjs/providers/screen/gestures/hooks/use-stable-runtime-config.js.map +1 -1
  104. package/lib/commonjs/providers/screen/gestures/index.js +2 -2
  105. package/lib/commonjs/providers/screen/gestures/ownership/shadowing-claims.js +2 -2
  106. package/lib/commonjs/providers/screen/gestures/ownership/shadowing-claims.js.map +1 -1
  107. package/lib/commonjs/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js +8 -11
  108. package/lib/commonjs/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +1 -1
  109. package/lib/commonjs/providers/screen/gestures/pan/activation/use-pan-activation.js +2 -4
  110. package/lib/commonjs/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
  111. package/lib/commonjs/providers/screen/gestures/pan/behavior/pan-lifecycle.js +5 -8
  112. package/lib/commonjs/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  113. package/lib/commonjs/providers/screen/gestures/pan/behavior/pan-reset.js +10 -0
  114. package/lib/commonjs/providers/screen/gestures/pan/behavior/pan-reset.js.map +1 -1
  115. package/lib/commonjs/providers/screen/gestures/pan/use-build-pan-gesture.js +1 -1
  116. package/lib/commonjs/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
  117. package/lib/commonjs/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +8 -6
  118. package/lib/commonjs/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  119. package/lib/commonjs/providers/screen/gestures/pinch/behavior/pinch-reset.js +7 -0
  120. package/lib/commonjs/providers/screen/gestures/pinch/behavior/pinch-reset.js.map +1 -1
  121. package/lib/commonjs/providers/screen/gestures/pinch/use-build-pinch-gesture.js +1 -1
  122. package/lib/commonjs/providers/screen/gestures/pinch/use-build-pinch-gesture.js.map +1 -1
  123. package/lib/commonjs/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js +5 -5
  124. package/lib/commonjs/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js.map +1 -1
  125. package/lib/commonjs/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +2 -2
  126. package/lib/commonjs/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
  127. package/lib/commonjs/providers/screen/options/index.js +2 -2
  128. package/lib/commonjs/providers/screen/options/options.provider.js +4 -8
  129. package/lib/commonjs/providers/screen/options/options.provider.js.map +1 -1
  130. package/lib/commonjs/providers/screen/screen-composer.js +2 -0
  131. package/lib/commonjs/providers/screen/screen-composer.js.map +1 -1
  132. package/lib/commonjs/providers/screen/styles/constants.js +10 -4
  133. package/lib/commonjs/providers/screen/styles/constants.js.map +1 -1
  134. package/lib/commonjs/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js +93 -0
  135. package/lib/commonjs/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js.map +1 -0
  136. package/lib/commonjs/providers/screen/styles/helpers/resolve-slot-styles/index.js +48 -5
  137. package/lib/commonjs/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  138. package/lib/commonjs/providers/screen/styles/helpers/select-interpolator-frame.js +32 -0
  139. package/lib/commonjs/providers/screen/styles/helpers/select-interpolator-frame.js.map +1 -0
  140. package/lib/commonjs/providers/screen/styles/helpers/visibility-gate.js +14 -1
  141. package/lib/commonjs/providers/screen/styles/helpers/visibility-gate.js.map +1 -1
  142. package/lib/commonjs/providers/screen/styles/hooks/use-interpolated-style-maps.js +64 -40
  143. package/lib/commonjs/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  144. package/lib/commonjs/providers/screen/styles/hooks/use-maybe-block-visibility.js +1 -3
  145. package/lib/commonjs/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  146. package/lib/commonjs/providers/screen/styles/index.js +0 -6
  147. package/lib/commonjs/providers/screen/styles/index.js.map +1 -1
  148. package/lib/commonjs/providers/screen/styles/slot.provider.js +23 -19
  149. package/lib/commonjs/providers/screen/styles/slot.provider.js.map +1 -1
  150. package/lib/commonjs/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js +3 -11
  151. package/lib/commonjs/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js.map +1 -1
  152. package/lib/commonjs/providers/stack/blank-stack.provider.js +53 -49
  153. package/lib/commonjs/providers/stack/blank-stack.provider.js.map +1 -1
  154. package/lib/commonjs/providers/stack/core.provider.js +24 -45
  155. package/lib/commonjs/providers/stack/core.provider.js.map +1 -1
  156. package/lib/commonjs/providers/stack/direct.provider.js +46 -40
  157. package/lib/commonjs/providers/stack/direct.provider.js.map +1 -1
  158. package/lib/commonjs/stores/animation.store.js +19 -1
  159. package/lib/commonjs/stores/animation.store.js.map +1 -1
  160. package/lib/commonjs/stores/bounds/internals/entries.js +17 -0
  161. package/lib/commonjs/stores/bounds/internals/entries.js.map +1 -1
  162. package/lib/commonjs/stores/bounds/internals/links.js +25 -0
  163. package/lib/commonjs/stores/bounds/internals/links.js.map +1 -1
  164. package/lib/commonjs/stores/bounds/internals/resolver.js +2 -12
  165. package/lib/commonjs/stores/bounds/internals/resolver.js.map +1 -1
  166. package/lib/commonjs/types/stack.types.js.map +1 -1
  167. package/lib/commonjs/utils/animation/animate-to-progress.js +12 -11
  168. package/lib/commonjs/utils/animation/animate-to-progress.js.map +1 -1
  169. package/lib/commonjs/utils/bounds/helpers/create-bounds-accessor-core.js +6 -0
  170. package/lib/commonjs/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  171. package/lib/commonjs/utils/bounds/helpers/create-link-accessor.js +2 -2
  172. package/lib/commonjs/utils/bounds/helpers/create-link-accessor.js.map +1 -1
  173. package/lib/commonjs/utils/create-provider.js +61 -75
  174. package/lib/commonjs/utils/create-provider.js.map +1 -1
  175. package/lib/module/adapters/with-screen-transitions/context.js +3 -0
  176. package/lib/module/adapters/with-screen-transitions/context.js.map +1 -1
  177. package/lib/module/adapters/with-screen-transitions/stack-layout.js +14 -8
  178. package/lib/module/adapters/with-screen-transitions/stack-layout.js.map +1 -1
  179. package/lib/module/animation/snap-to.js +1 -0
  180. package/lib/module/animation/snap-to.js.map +1 -1
  181. package/lib/module/components/activity/variants/activity-screen.js +26 -10
  182. package/lib/module/components/activity/variants/activity-screen.js.map +1 -1
  183. package/lib/module/components/boundary/components/boundary-target.js +2 -2
  184. package/lib/module/components/boundary/components/boundary-target.js.map +1 -1
  185. package/lib/module/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +32 -16
  186. package/lib/module/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
  187. package/lib/module/components/boundary/hooks/lifecycles/use-initial-source-measurement.js +3 -1
  188. package/lib/module/components/boundary/hooks/lifecycles/use-initial-source-measurement.js.map +1 -1
  189. package/lib/module/components/boundary/hooks/lifecycles/use-refresh-boundary.js +8 -17
  190. package/lib/module/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
  191. package/lib/module/components/boundary/hooks/use-boundary-measurement.js +5 -4
  192. package/lib/module/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  193. package/lib/module/components/boundary/hooks/use-measurer.js +7 -14
  194. package/lib/module/components/boundary/hooks/use-measurer.js.map +1 -1
  195. package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +60 -0
  196. package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -0
  197. package/lib/module/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +44 -37
  198. package/lib/module/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  199. package/lib/module/components/boundary/portal/components/boundary-portal/components/host.js +2 -2
  200. package/lib/module/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -1
  201. package/lib/module/components/boundary/portal/components/boundary-portal/helpers/active-pair.js +25 -0
  202. package/lib/module/components/boundary/portal/components/boundary-portal/helpers/active-pair.js.map +1 -0
  203. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +70 -0
  204. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -0
  205. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +17 -32
  206. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  207. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +13 -22
  208. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -1
  209. package/lib/module/components/boundary/portal/utils/naming.js +6 -0
  210. package/lib/module/components/boundary/portal/utils/naming.js.map +1 -1
  211. package/lib/module/components/boundary/providers/boundary-root.provider.js +3 -3
  212. package/lib/module/components/boundary/providers/boundary-root.provider.js.map +1 -1
  213. package/lib/module/components/boundary/utils/destination-signals.js +1 -3
  214. package/lib/module/components/boundary/utils/destination-signals.js.map +1 -1
  215. package/lib/module/components/boundary/utils/measured-bounds.js +17 -28
  216. package/lib/module/components/boundary/utils/measured-bounds.js.map +1 -1
  217. package/lib/module/components/boundary/utils/refresh-signals.js +16 -24
  218. package/lib/module/components/boundary/utils/refresh-signals.js.map +1 -1
  219. package/lib/module/components/create-transition-aware-component.js +10 -31
  220. package/lib/module/components/create-transition-aware-component.js.map +1 -1
  221. package/lib/module/components/screen-container/hooks/use-backdrop-pointer-events.js +8 -12
  222. package/lib/module/components/screen-container/hooks/use-backdrop-pointer-events.js.map +1 -1
  223. package/lib/module/components/screen-container/hooks/use-content-layout.js +4 -9
  224. package/lib/module/components/screen-container/hooks/use-content-layout.js.map +1 -1
  225. package/lib/module/components/screen-container/layers/backdrop.js +8 -11
  226. package/lib/module/components/screen-container/layers/backdrop.js.map +1 -1
  227. package/lib/module/components/screen-container/layers/content.js +12 -18
  228. package/lib/module/components/screen-container/layers/content.js.map +1 -1
  229. package/lib/module/components/screen-container/layers/surface-container.js +2 -6
  230. package/lib/module/components/screen-container/layers/surface-container.js.map +1 -1
  231. package/lib/module/components/screen-lifecycle/hooks/use-close-transition-intent.js +13 -15
  232. package/lib/module/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
  233. package/lib/module/components/screen-lifecycle/hooks/use-open-transition-intent.js +3 -4
  234. package/lib/module/components/screen-lifecycle/hooks/use-open-transition-intent.js.map +1 -1
  235. package/lib/module/components/screen-lifecycle/hooks/use-transition-start-controller.js +5 -1
  236. package/lib/module/components/screen-lifecycle/hooks/use-transition-start-controller.js.map +1 -1
  237. package/lib/module/components/screen-lifecycle/index.js +3 -5
  238. package/lib/module/components/screen-lifecycle/index.js.map +1 -1
  239. package/lib/module/components/stack-view.js +71 -37
  240. package/lib/module/components/stack-view.js.map +1 -1
  241. package/lib/module/configs/presets.js +10 -10
  242. package/lib/module/configs/presets.js.map +1 -1
  243. package/lib/module/constants.js +1 -0
  244. package/lib/module/constants.js.map +1 -1
  245. package/lib/module/hooks/navigation/use-navigation-helpers.js +9 -8
  246. package/lib/module/hooks/navigation/use-navigation-helpers.js.map +1 -1
  247. package/lib/module/hooks/navigation/use-screen-state.js +2 -4
  248. package/lib/module/hooks/navigation/use-screen-state.js.map +1 -1
  249. package/lib/module/providers/screen/animation/animation.provider.js +6 -5
  250. package/lib/module/providers/screen/animation/animation.provider.js.map +1 -1
  251. package/lib/module/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js +2 -4
  252. package/lib/module/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map +1 -1
  253. package/lib/module/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +2 -2
  254. package/lib/module/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +1 -1
  255. package/lib/module/providers/screen/animation/helpers/hydrate-transition-state/index.js +4 -10
  256. package/lib/module/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
  257. package/lib/module/providers/screen/animation/helpers/pipeline.js +6 -8
  258. package/lib/module/providers/screen/animation/helpers/pipeline.js.map +1 -1
  259. package/lib/module/providers/screen/animation/index.js +1 -1
  260. package/lib/module/providers/screen/animation/index.js.map +1 -1
  261. package/lib/module/providers/screen/animation/use-screen-animation.js +2 -2
  262. package/lib/module/providers/screen/animation/use-screen-animation.js.map +1 -1
  263. package/lib/module/providers/screen/descriptors/descriptors.provider.js +36 -46
  264. package/lib/module/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  265. package/lib/module/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +1 -3
  266. package/lib/module/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
  267. package/lib/module/providers/screen/descriptors/helpers/get-ancestor-keys.js +3 -19
  268. package/lib/module/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +1 -1
  269. package/lib/module/providers/screen/descriptors/index.js +1 -1
  270. package/lib/module/providers/screen/descriptors/index.js.map +1 -1
  271. package/lib/module/providers/screen/gestures/gestures.provider.js +6 -6
  272. package/lib/module/providers/screen/gestures/gestures.provider.js.map +1 -1
  273. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture-config.js +5 -11
  274. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
  275. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture.js +2 -2
  276. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture.js.map +1 -1
  277. package/lib/module/providers/screen/gestures/hooks/use-stable-runtime-config.js +2 -4
  278. package/lib/module/providers/screen/gestures/hooks/use-stable-runtime-config.js.map +1 -1
  279. package/lib/module/providers/screen/gestures/index.js +1 -1
  280. package/lib/module/providers/screen/gestures/index.js.map +1 -1
  281. package/lib/module/providers/screen/gestures/ownership/shadowing-claims.js +2 -2
  282. package/lib/module/providers/screen/gestures/ownership/shadowing-claims.js.map +1 -1
  283. package/lib/module/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js +10 -13
  284. package/lib/module/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +1 -1
  285. package/lib/module/providers/screen/gestures/pan/activation/use-pan-activation.js +3 -5
  286. package/lib/module/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
  287. package/lib/module/providers/screen/gestures/pan/behavior/pan-lifecycle.js +6 -9
  288. package/lib/module/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  289. package/lib/module/providers/screen/gestures/pan/behavior/pan-reset.js +10 -0
  290. package/lib/module/providers/screen/gestures/pan/behavior/pan-reset.js.map +1 -1
  291. package/lib/module/providers/screen/gestures/pan/use-build-pan-gesture.js +2 -2
  292. package/lib/module/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
  293. package/lib/module/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +9 -7
  294. package/lib/module/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  295. package/lib/module/providers/screen/gestures/pinch/behavior/pinch-reset.js +7 -0
  296. package/lib/module/providers/screen/gestures/pinch/behavior/pinch-reset.js.map +1 -1
  297. package/lib/module/providers/screen/gestures/pinch/use-build-pinch-gesture.js +2 -2
  298. package/lib/module/providers/screen/gestures/pinch/use-build-pinch-gesture.js.map +1 -1
  299. package/lib/module/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js +3 -3
  300. package/lib/module/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js.map +1 -1
  301. package/lib/module/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +4 -4
  302. package/lib/module/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
  303. package/lib/module/providers/screen/options/index.js +1 -1
  304. package/lib/module/providers/screen/options/index.js.map +1 -1
  305. package/lib/module/providers/screen/options/options.provider.js +3 -7
  306. package/lib/module/providers/screen/options/options.provider.js.map +1 -1
  307. package/lib/module/providers/screen/screen-composer.js +2 -0
  308. package/lib/module/providers/screen/screen-composer.js.map +1 -1
  309. package/lib/module/providers/screen/styles/constants.js +8 -3
  310. package/lib/module/providers/screen/styles/constants.js.map +1 -1
  311. package/lib/module/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js +88 -0
  312. package/lib/module/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js.map +1 -0
  313. package/lib/module/providers/screen/styles/helpers/resolve-slot-styles/index.js +49 -6
  314. package/lib/module/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  315. package/lib/module/providers/screen/styles/helpers/select-interpolator-frame.js +27 -0
  316. package/lib/module/providers/screen/styles/helpers/select-interpolator-frame.js.map +1 -0
  317. package/lib/module/providers/screen/styles/helpers/visibility-gate.js +12 -0
  318. package/lib/module/providers/screen/styles/helpers/visibility-gate.js.map +1 -1
  319. package/lib/module/providers/screen/styles/hooks/use-interpolated-style-maps.js +67 -43
  320. package/lib/module/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  321. package/lib/module/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -4
  322. package/lib/module/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  323. package/lib/module/providers/screen/styles/index.js +1 -1
  324. package/lib/module/providers/screen/styles/index.js.map +1 -1
  325. package/lib/module/providers/screen/styles/slot.provider.js +23 -18
  326. package/lib/module/providers/screen/styles/slot.provider.js.map +1 -1
  327. package/lib/module/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js +3 -11
  328. package/lib/module/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js.map +1 -1
  329. package/lib/module/providers/stack/blank-stack.provider.js +50 -47
  330. package/lib/module/providers/stack/blank-stack.provider.js.map +1 -1
  331. package/lib/module/providers/stack/core.provider.js +22 -43
  332. package/lib/module/providers/stack/core.provider.js.map +1 -1
  333. package/lib/module/providers/stack/direct.provider.js +44 -41
  334. package/lib/module/providers/stack/direct.provider.js.map +1 -1
  335. package/lib/module/stores/animation.store.js +17 -0
  336. package/lib/module/stores/animation.store.js.map +1 -1
  337. package/lib/module/stores/bounds/internals/entries.js +17 -1
  338. package/lib/module/stores/bounds/internals/entries.js.map +1 -1
  339. package/lib/module/stores/bounds/internals/links.js +25 -2
  340. package/lib/module/stores/bounds/internals/links.js.map +1 -1
  341. package/lib/module/stores/bounds/internals/resolver.js +3 -13
  342. package/lib/module/stores/bounds/internals/resolver.js.map +1 -1
  343. package/lib/module/types/stack.types.js.map +1 -1
  344. package/lib/module/utils/animation/animate-to-progress.js +12 -11
  345. package/lib/module/utils/animation/animate-to-progress.js.map +1 -1
  346. package/lib/module/utils/bounds/helpers/create-bounds-accessor-core.js +6 -0
  347. package/lib/module/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  348. package/lib/module/utils/bounds/helpers/create-link-accessor.js +3 -3
  349. package/lib/module/utils/bounds/helpers/create-link-accessor.js.map +1 -1
  350. package/lib/module/utils/create-provider.js +62 -76
  351. package/lib/module/utils/create-provider.js.map +1 -1
  352. package/lib/typescript/adapters/with-screen-transitions/context.d.ts +2 -0
  353. package/lib/typescript/adapters/with-screen-transitions/context.d.ts.map +1 -1
  354. package/lib/typescript/adapters/with-screen-transitions/stack-layout.d.ts +1 -1
  355. package/lib/typescript/adapters/with-screen-transitions/stack-layout.d.ts.map +1 -1
  356. package/lib/typescript/animation/snap-to.d.ts.map +1 -1
  357. package/lib/typescript/components/activity/variants/activity-screen.d.ts +3 -2
  358. package/lib/typescript/components/activity/variants/activity-screen.d.ts.map +1 -1
  359. package/lib/typescript/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts.map +1 -1
  360. package/lib/typescript/components/boundary/hooks/lifecycles/use-initial-source-measurement.d.ts.map +1 -1
  361. package/lib/typescript/components/boundary/hooks/lifecycles/use-refresh-boundary.d.ts.map +1 -1
  362. package/lib/typescript/components/boundary/hooks/use-boundary-measurement.d.ts.map +1 -1
  363. package/lib/typescript/components/boundary/hooks/use-measurer.d.ts +1 -1
  364. package/lib/typescript/components/boundary/hooks/use-measurer.d.ts.map +1 -1
  365. package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts +26 -0
  366. package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts.map +1 -0
  367. package/lib/typescript/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts.map +1 -1
  368. package/lib/typescript/components/boundary/portal/components/boundary-portal/components/host.d.ts.map +1 -1
  369. package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/active-pair.d.ts +9 -0
  370. package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/active-pair.d.ts.map +1 -0
  371. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts +17 -0
  372. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts.map +1 -0
  373. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -1
  374. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts +0 -1
  375. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts.map +1 -1
  376. package/lib/typescript/components/boundary/portal/utils/naming.d.ts +1 -0
  377. package/lib/typescript/components/boundary/portal/utils/naming.d.ts.map +1 -1
  378. package/lib/typescript/components/boundary/providers/boundary-root.provider.d.ts +1 -1
  379. package/lib/typescript/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
  380. package/lib/typescript/components/boundary/utils/destination-signals.d.ts +1 -2
  381. package/lib/typescript/components/boundary/utils/destination-signals.d.ts.map +1 -1
  382. package/lib/typescript/components/boundary/utils/measured-bounds.d.ts +1 -3
  383. package/lib/typescript/components/boundary/utils/measured-bounds.d.ts.map +1 -1
  384. package/lib/typescript/components/boundary/utils/refresh-signals.d.ts +0 -6
  385. package/lib/typescript/components/boundary/utils/refresh-signals.d.ts.map +1 -1
  386. package/lib/typescript/components/create-transition-aware-component.d.ts +0 -2
  387. package/lib/typescript/components/create-transition-aware-component.d.ts.map +1 -1
  388. package/lib/typescript/components/screen-container/hooks/use-backdrop-pointer-events.d.ts.map +1 -1
  389. package/lib/typescript/components/screen-container/hooks/use-content-layout.d.ts.map +1 -1
  390. package/lib/typescript/components/screen-container/layers/backdrop.d.ts.map +1 -1
  391. package/lib/typescript/components/screen-container/layers/content.d.ts.map +1 -1
  392. package/lib/typescript/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts.map +1 -1
  393. package/lib/typescript/components/screen-lifecycle/hooks/use-open-transition-intent.d.ts.map +1 -1
  394. package/lib/typescript/components/screen-lifecycle/hooks/use-transition-start-controller.d.ts.map +1 -1
  395. package/lib/typescript/components/screen-lifecycle/index.d.ts.map +1 -1
  396. package/lib/typescript/components/stack-view.d.ts +5 -1
  397. package/lib/typescript/components/stack-view.d.ts.map +1 -1
  398. package/lib/typescript/configs/index.d.ts +6 -6
  399. package/lib/typescript/configs/presets.d.ts +6 -6
  400. package/lib/typescript/configs/presets.d.ts.map +1 -1
  401. package/lib/typescript/constants.d.ts.map +1 -1
  402. package/lib/typescript/hooks/navigation/use-navigation-helpers.d.ts.map +1 -1
  403. package/lib/typescript/hooks/navigation/use-screen-state.d.ts.map +1 -1
  404. package/lib/typescript/index.d.ts +10 -18
  405. package/lib/typescript/index.d.ts.map +1 -1
  406. package/lib/typescript/providers/screen/animation/animation.provider.d.ts +4 -1
  407. package/lib/typescript/providers/screen/animation/animation.provider.d.ts.map +1 -1
  408. package/lib/typescript/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.d.ts.map +1 -1
  409. package/lib/typescript/providers/screen/animation/helpers/hydrate-transition-state/index.d.ts.map +1 -1
  410. package/lib/typescript/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
  411. package/lib/typescript/providers/screen/animation/index.d.ts +1 -1
  412. package/lib/typescript/providers/screen/animation/index.d.ts.map +1 -1
  413. package/lib/typescript/providers/screen/descriptors/descriptors.provider.d.ts +10 -11
  414. package/lib/typescript/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  415. package/lib/typescript/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts +1 -3
  416. package/lib/typescript/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts.map +1 -1
  417. package/lib/typescript/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts +0 -8
  418. package/lib/typescript/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts.map +1 -1
  419. package/lib/typescript/providers/screen/descriptors/index.d.ts +1 -1
  420. package/lib/typescript/providers/screen/descriptors/index.d.ts.map +1 -1
  421. package/lib/typescript/providers/screen/gestures/gestures.provider.d.ts +4 -1
  422. package/lib/typescript/providers/screen/gestures/gestures.provider.d.ts.map +1 -1
  423. package/lib/typescript/providers/screen/gestures/hooks/use-screen-gesture-config.d.ts.map +1 -1
  424. package/lib/typescript/providers/screen/gestures/hooks/use-stable-runtime-config.d.ts.map +1 -1
  425. package/lib/typescript/providers/screen/gestures/index.d.ts +1 -1
  426. package/lib/typescript/providers/screen/gestures/index.d.ts.map +1 -1
  427. package/lib/typescript/providers/screen/gestures/ownership/shadowing-claims.d.ts +2 -3
  428. package/lib/typescript/providers/screen/gestures/ownership/shadowing-claims.d.ts.map +1 -1
  429. package/lib/typescript/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.d.ts.map +1 -1
  430. package/lib/typescript/providers/screen/gestures/pan/activation/use-pan-activation.d.ts.map +1 -1
  431. package/lib/typescript/providers/screen/gestures/pan/behavior/pan-lifecycle.d.ts.map +1 -1
  432. package/lib/typescript/providers/screen/gestures/pan/behavior/pan-reset.d.ts +4 -1
  433. package/lib/typescript/providers/screen/gestures/pan/behavior/pan-reset.d.ts.map +1 -1
  434. package/lib/typescript/providers/screen/gestures/pinch/behavior/pinch-lifecycle.d.ts.map +1 -1
  435. package/lib/typescript/providers/screen/gestures/pinch/behavior/pinch-reset.d.ts +3 -1
  436. package/lib/typescript/providers/screen/gestures/pinch/behavior/pinch-reset.d.ts.map +1 -1
  437. package/lib/typescript/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.d.ts +1 -1
  438. package/lib/typescript/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.d.ts.map +1 -1
  439. package/lib/typescript/providers/screen/options/index.d.ts +1 -1
  440. package/lib/typescript/providers/screen/options/index.d.ts.map +1 -1
  441. package/lib/typescript/providers/screen/options/options.provider.d.ts +4 -1
  442. package/lib/typescript/providers/screen/options/options.provider.d.ts.map +1 -1
  443. package/lib/typescript/providers/screen/screen-composer.d.ts +3 -2
  444. package/lib/typescript/providers/screen/screen-composer.d.ts.map +1 -1
  445. package/lib/typescript/providers/screen/styles/constants.d.ts +1 -0
  446. package/lib/typescript/providers/screen/styles/constants.d.ts.map +1 -1
  447. package/lib/typescript/providers/screen/styles/helpers/resolve-interpolator-style-handoff.d.ts +12 -0
  448. package/lib/typescript/providers/screen/styles/helpers/resolve-interpolator-style-handoff.d.ts.map +1 -0
  449. package/lib/typescript/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts +5 -3
  450. package/lib/typescript/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts.map +1 -1
  451. package/lib/typescript/providers/screen/styles/helpers/select-interpolator-frame.d.ts +4 -0
  452. package/lib/typescript/providers/screen/styles/helpers/select-interpolator-frame.d.ts.map +1 -0
  453. package/lib/typescript/providers/screen/styles/helpers/visibility-gate.d.ts +10 -0
  454. package/lib/typescript/providers/screen/styles/helpers/visibility-gate.d.ts.map +1 -1
  455. package/lib/typescript/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts +10 -5
  456. package/lib/typescript/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
  457. package/lib/typescript/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +1 -1
  458. package/lib/typescript/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  459. package/lib/typescript/providers/screen/styles/index.d.ts +1 -1
  460. package/lib/typescript/providers/screen/styles/index.d.ts.map +1 -1
  461. package/lib/typescript/providers/screen/styles/slot.provider.d.ts +4 -1
  462. package/lib/typescript/providers/screen/styles/slot.provider.d.ts.map +1 -1
  463. package/lib/typescript/providers/stack/blank-stack-state/helpers/build-blank-stack-state.d.ts.map +1 -1
  464. package/lib/typescript/providers/stack/blank-stack.provider.d.ts +12 -6
  465. package/lib/typescript/providers/stack/blank-stack.provider.d.ts.map +1 -1
  466. package/lib/typescript/providers/stack/core.provider.d.ts +10 -8
  467. package/lib/typescript/providers/stack/core.provider.d.ts.map +1 -1
  468. package/lib/typescript/providers/stack/direct.provider.d.ts +11 -4
  469. package/lib/typescript/providers/stack/direct.provider.d.ts.map +1 -1
  470. package/lib/typescript/stores/animation.store.d.ts +1 -0
  471. package/lib/typescript/stores/animation.store.d.ts.map +1 -1
  472. package/lib/typescript/stores/bounds/internals/entries.d.ts +2 -1
  473. package/lib/typescript/stores/bounds/internals/entries.d.ts.map +1 -1
  474. package/lib/typescript/stores/bounds/internals/links.d.ts +3 -1
  475. package/lib/typescript/stores/bounds/internals/links.d.ts.map +1 -1
  476. package/lib/typescript/stores/bounds/internals/resolver.d.ts.map +1 -1
  477. package/lib/typescript/types/blank-stack.types.d.ts +1 -4
  478. package/lib/typescript/types/blank-stack.types.d.ts.map +1 -1
  479. package/lib/typescript/types/gesture.types.d.ts +11 -0
  480. package/lib/typescript/types/gesture.types.d.ts.map +1 -1
  481. package/lib/typescript/types/providers/blank-stack-provider.types.d.ts +12 -20
  482. package/lib/typescript/types/providers/blank-stack-provider.types.d.ts.map +1 -1
  483. package/lib/typescript/types/providers/direct-stack.types.d.ts +2 -1
  484. package/lib/typescript/types/providers/direct-stack.types.d.ts.map +1 -1
  485. package/lib/typescript/types/screen.types.d.ts +0 -30
  486. package/lib/typescript/types/screen.types.d.ts.map +1 -1
  487. package/lib/typescript/types/stack.types.d.ts +2 -4
  488. package/lib/typescript/types/stack.types.d.ts.map +1 -1
  489. package/lib/typescript/utils/animation/animate-to-progress.d.ts +3 -2
  490. package/lib/typescript/utils/animation/animate-to-progress.d.ts.map +1 -1
  491. package/lib/typescript/utils/bounds/helpers/create-bounds-accessor-core.d.ts.map +1 -1
  492. package/lib/typescript/utils/bounds/helpers/create-link-accessor.d.ts.map +1 -1
  493. package/lib/typescript/utils/create-provider.d.ts +17 -9
  494. package/lib/typescript/utils/create-provider.d.ts.map +1 -1
  495. package/package.json +1 -1
  496. package/src/adapters/with-screen-transitions/context.tsx +5 -0
  497. package/src/adapters/with-screen-transitions/stack-layout.tsx +20 -7
  498. package/src/animation/snap-to.ts +1 -0
  499. package/src/components/activity/variants/activity-screen.tsx +46 -13
  500. package/src/components/boundary/components/boundary-target.tsx +2 -2
  501. package/src/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts +62 -26
  502. package/src/components/boundary/hooks/lifecycles/use-initial-source-measurement.ts +6 -1
  503. package/src/components/boundary/hooks/lifecycles/use-refresh-boundary.ts +15 -33
  504. package/src/components/boundary/hooks/use-boundary-measurement.ts +5 -4
  505. package/src/components/boundary/hooks/use-measurer.ts +7 -16
  506. package/src/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.ts +103 -0
  507. package/src/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts +86 -61
  508. package/src/components/boundary/portal/components/boundary-portal/components/host.tsx +12 -14
  509. package/src/components/boundary/portal/components/boundary-portal/helpers/active-pair.ts +36 -0
  510. package/src/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.ts +114 -0
  511. package/src/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +9 -46
  512. package/src/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.ts +13 -20
  513. package/src/components/boundary/portal/utils/naming.ts +11 -0
  514. package/src/components/boundary/providers/boundary-root.provider.tsx +8 -11
  515. package/src/components/boundary/utils/destination-signals.ts +2 -6
  516. package/src/components/boundary/utils/measured-bounds.ts +29 -32
  517. package/src/components/boundary/utils/refresh-signals.ts +25 -36
  518. package/src/components/create-transition-aware-component.tsx +11 -36
  519. package/src/components/screen-container/hooks/use-backdrop-pointer-events.ts +10 -8
  520. package/src/components/screen-container/hooks/use-content-layout.ts +10 -10
  521. package/src/components/screen-container/layers/backdrop.tsx +20 -9
  522. package/src/components/screen-container/layers/content.tsx +20 -21
  523. package/src/components/screen-container/layers/surface-container.tsx +4 -4
  524. package/src/components/screen-lifecycle/hooks/use-close-transition-intent.ts +19 -9
  525. package/src/components/screen-lifecycle/hooks/use-open-transition-intent.ts +5 -2
  526. package/src/components/screen-lifecycle/hooks/use-transition-start-controller.ts +6 -0
  527. package/src/components/screen-lifecycle/index.tsx +3 -2
  528. package/src/components/stack-view.tsx +117 -56
  529. package/src/configs/presets.ts +13 -13
  530. package/src/constants.ts +1 -0
  531. package/src/hooks/navigation/use-navigation-helpers.ts +9 -8
  532. package/src/hooks/navigation/use-screen-state.ts +4 -2
  533. package/src/providers/screen/animation/animation.provider.tsx +170 -173
  534. package/src/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.tsx +4 -2
  535. package/src/providers/screen/animation/helpers/accessors/use-build-transition-accessor.ts +2 -2
  536. package/src/providers/screen/animation/helpers/hydrate-transition-state/index.ts +4 -21
  537. package/src/providers/screen/animation/helpers/pipeline.ts +6 -10
  538. package/src/providers/screen/animation/index.tsx +1 -1
  539. package/src/providers/screen/animation/use-screen-animation.tsx +2 -2
  540. package/src/providers/screen/descriptors/descriptors.provider.tsx +77 -73
  541. package/src/providers/screen/descriptors/helpers/derive-descriptor-derivations.ts +0 -4
  542. package/src/providers/screen/descriptors/helpers/get-ancestor-keys.ts +3 -30
  543. package/src/providers/screen/descriptors/index.tsx +0 -2
  544. package/src/providers/screen/gestures/gestures.provider.tsx +72 -63
  545. package/src/providers/screen/gestures/hooks/use-screen-gesture-config.ts +7 -8
  546. package/src/providers/screen/gestures/hooks/use-screen-gesture.ts +2 -2
  547. package/src/providers/screen/gestures/hooks/use-stable-runtime-config.ts +4 -2
  548. package/src/providers/screen/gestures/index.tsx +1 -1
  549. package/src/providers/screen/gestures/ownership/shadowing-claims.ts +3 -4
  550. package/src/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.ts +16 -8
  551. package/src/providers/screen/gestures/pan/activation/use-pan-activation.ts +7 -2
  552. package/src/providers/screen/gestures/pan/behavior/pan-lifecycle.ts +8 -16
  553. package/src/providers/screen/gestures/pan/behavior/pan-reset.ts +14 -0
  554. package/src/providers/screen/gestures/pan/use-build-pan-gesture.ts +2 -2
  555. package/src/providers/screen/gestures/pinch/behavior/pinch-lifecycle.ts +12 -11
  556. package/src/providers/screen/gestures/pinch/behavior/pinch-reset.ts +10 -0
  557. package/src/providers/screen/gestures/pinch/use-build-pinch-gesture.ts +2 -2
  558. package/src/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.tsx +4 -4
  559. package/src/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.ts +4 -4
  560. package/src/providers/screen/options/index.ts +1 -1
  561. package/src/providers/screen/options/options.provider.tsx +24 -28
  562. package/src/providers/screen/screen-composer.tsx +9 -2
  563. package/src/providers/screen/styles/constants.ts +8 -6
  564. package/src/providers/screen/styles/helpers/resolve-interpolator-style-handoff.ts +138 -0
  565. package/src/providers/screen/styles/helpers/resolve-slot-styles/index.ts +71 -4
  566. package/src/providers/screen/styles/helpers/select-interpolator-frame.ts +41 -0
  567. package/src/providers/screen/styles/helpers/visibility-gate.ts +25 -0
  568. package/src/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +99 -55
  569. package/src/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +4 -2
  570. package/src/providers/screen/styles/index.tsx +0 -1
  571. package/src/providers/screen/styles/slot.provider.tsx +62 -48
  572. package/src/providers/stack/blank-stack-state/helpers/build-blank-stack-state.ts +4 -17
  573. package/src/providers/stack/blank-stack.provider.tsx +66 -75
  574. package/src/providers/stack/core.provider.tsx +53 -79
  575. package/src/providers/stack/direct.provider.tsx +76 -57
  576. package/src/stores/animation.store.ts +19 -0
  577. package/src/stores/bounds/internals/entries.ts +27 -1
  578. package/src/stores/bounds/internals/links.ts +36 -0
  579. package/src/stores/bounds/internals/resolver.ts +7 -21
  580. package/src/types/blank-stack.types.ts +1 -4
  581. package/src/types/gesture.types.ts +11 -0
  582. package/src/types/providers/blank-stack-provider.types.ts +8 -22
  583. package/src/types/providers/direct-stack.types.ts +2 -1
  584. package/src/types/screen.types.ts +0 -32
  585. package/src/types/stack.types.ts +2 -4
  586. package/src/utils/animation/animate-to-progress.ts +18 -18
  587. package/src/utils/bounds/helpers/create-bounds-accessor-core.ts +7 -0
  588. package/src/utils/bounds/helpers/create-link-accessor.ts +9 -3
  589. package/src/utils/create-provider.tsx +105 -136
  590. package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/host-name.js +0 -14
  591. package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/host-name.js.map +0 -1
  592. package/lib/commonjs/components/boundary/portal/utils/handoff-target.js +0 -33
  593. package/lib/commonjs/components/boundary/portal/utils/handoff-target.js.map +0 -1
  594. package/lib/commonjs/hooks/use-stable-callback-value.js +0 -69
  595. package/lib/commonjs/hooks/use-stable-callback-value.js.map +0 -1
  596. package/lib/commonjs/providers/register-bounds.provider.js +0 -312
  597. package/lib/commonjs/providers/register-bounds.provider.js.map +0 -1
  598. package/lib/commonjs/providers/screen/origin.provider.js +0 -41
  599. package/lib/commonjs/providers/screen/origin.provider.js.map +0 -1
  600. package/lib/module/components/boundary/portal/components/boundary-portal/helpers/host-name.js +0 -9
  601. package/lib/module/components/boundary/portal/components/boundary-portal/helpers/host-name.js.map +0 -1
  602. package/lib/module/components/boundary/portal/utils/handoff-target.js +0 -28
  603. package/lib/module/components/boundary/portal/utils/handoff-target.js.map +0 -1
  604. package/lib/module/hooks/use-stable-callback-value.js +0 -64
  605. package/lib/module/hooks/use-stable-callback-value.js.map +0 -1
  606. package/lib/module/providers/register-bounds.provider.js +0 -308
  607. package/lib/module/providers/register-bounds.provider.js.map +0 -1
  608. package/lib/module/providers/screen/origin.provider.js +0 -33
  609. package/lib/module/providers/screen/origin.provider.js.map +0 -1
  610. package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/host-name.d.ts +0 -2
  611. package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/host-name.d.ts.map +0 -1
  612. package/lib/typescript/components/boundary/portal/utils/handoff-target.d.ts +0 -12
  613. package/lib/typescript/components/boundary/portal/utils/handoff-target.d.ts.map +0 -1
  614. package/lib/typescript/hooks/use-stable-callback-value.d.ts +0 -13
  615. package/lib/typescript/hooks/use-stable-callback-value.d.ts.map +0 -1
  616. package/lib/typescript/providers/register-bounds.provider.d.ts +0 -25
  617. package/lib/typescript/providers/register-bounds.provider.d.ts.map +0 -1
  618. package/lib/typescript/providers/screen/origin.provider.d.ts +0 -11
  619. package/lib/typescript/providers/screen/origin.provider.d.ts.map +0 -1
  620. package/src/components/boundary/portal/components/boundary-portal/helpers/host-name.ts +0 -10
  621. package/src/components/boundary/portal/utils/handoff-target.ts +0 -48
  622. package/src/hooks/use-stable-callback-value.ts +0 -72
  623. package/src/providers/register-bounds.provider.tsx +0 -401
  624. package/src/providers/screen/origin.provider.tsx +0 -38
@@ -47,15 +47,12 @@ export interface BaseStackDescriptor<
47
47
  route: TRoute;
48
48
  navigation: TNavigation;
49
49
  options: TOptions;
50
- activity?: StackSceneActivity;
51
50
  render?: () => React.JSX.Element | null;
52
51
  }
53
52
 
54
53
  export type StackDescriptorSource<
55
54
  TDescriptor extends BaseStackDescriptor = BaseStackDescriptor,
56
- > = Omit<TDescriptor, "activity"> & {
57
- activity?: StackSceneActivity;
58
- };
55
+ > = TDescriptor;
59
56
 
60
57
  /**
61
58
  * Base scene interface - route + descriptor pair.
@@ -64,6 +61,7 @@ export type StackDescriptorSource<
64
61
  export interface BaseStackScene<
65
62
  TDescriptor extends BaseStackDescriptor = BaseStackDescriptor,
66
63
  > {
64
+ activity: StackSceneActivity;
67
65
  route: TDescriptor["route"];
68
66
  descriptor: TDescriptor;
69
67
  previousDescriptor?: TDescriptor;
@@ -1,7 +1,10 @@
1
1
  import type { SharedValue } from "react-native-reanimated";
2
2
  import { scheduleOnRN } from "react-native-worklets";
3
3
  import { FALSE, TRUE } from "../../constants";
4
- import type { AnimationStoreMap } from "../../stores/animation.store";
4
+ import {
5
+ type AnimationStoreMap,
6
+ emitMotionStart,
7
+ } from "../../stores/animation.store";
5
8
  import type { TransitionSpec } from "../../types/animation.types";
6
9
  import { animate, isSpringAnimationConfig } from "./animate";
7
10
 
@@ -22,6 +25,7 @@ interface AnimateToProgressProps {
22
25
  markEntering?: boolean;
23
26
  /** Optional initial velocity for spring-based progress (units: progress/sec). */
24
27
  initialVelocity?: number;
28
+ isDragging?: SharedValue<number>;
25
29
  }
26
30
 
27
31
  const setTransitionLifecycleFlags = (
@@ -65,6 +69,7 @@ export const animateToProgress = ({
65
69
  emitWillAnimate = true,
66
70
  markEntering = true,
67
71
  initialVelocity,
72
+ isDragging,
68
73
  }: AnimateToProgressProps) => {
69
74
  "worklet";
70
75
 
@@ -83,15 +88,10 @@ export const animateToProgress = ({
83
88
  ? { ...config, velocity: initialVelocity }
84
89
  : config;
85
90
 
86
- const {
87
- transitionProgress,
88
- willAnimate,
89
- progressAnimating,
90
- progressSettled,
91
- entering,
92
- } = animations;
91
+ const { transitionProgress, progressAnimating, progressSettled, entering } =
92
+ animations;
93
93
 
94
- const startAnimation = () => {
94
+ const startAnimation = (activateMotion: boolean) => {
95
95
  "worklet";
96
96
  const { from: animationProgressFrom, to: animationProgressTo } =
97
97
  resolveAnimationProgressRange(transitionProgress.get(), value);
@@ -119,7 +119,9 @@ export const animateToProgress = ({
119
119
  return;
120
120
  }
121
121
 
122
- progressAnimating.set(TRUE); //<-- Do not move this into the callback
122
+ if (activateMotion) {
123
+ progressAnimating.set(TRUE);
124
+ }
123
125
  progressSettled.set(FALSE);
124
126
  transitionProgress.set(
125
127
  animate(
@@ -127,11 +129,10 @@ export const animateToProgress = ({
127
129
  effectiveConfig,
128
130
  (state) => {
129
131
  "worklet";
130
- if (state.settled) {
131
- progressSettled.set(TRUE);
132
- }
133
-
134
132
  if (!state.finished) return;
133
+ if (isDragging?.get()) return;
134
+
135
+ progressSettled.set(TRUE);
135
136
 
136
137
  animationProgress.set(animationProgressTo);
137
138
 
@@ -176,14 +177,13 @@ export const animateToProgress = ({
176
177
  if (emitWillAnimate) {
177
178
  setTransitionLifecycleFlags(animations, isClosing, markEntering);
178
179
 
179
- willAnimate.set(TRUE);
180
+ emitMotionStart(animations);
180
181
  requestAnimationFrame(() => {
181
182
  "worklet";
182
- willAnimate.set(FALSE);
183
- startAnimation();
183
+ startAnimation(false);
184
184
  });
185
185
  return;
186
186
  }
187
187
 
188
- startAnimation();
188
+ startAnimation(true);
189
189
  };
@@ -1,3 +1,4 @@
1
+ import { NO_STYLES } from "../../../constants";
1
2
  import type {
2
3
  BoundsAccessor,
3
4
  BoundsInterpolationProps,
@@ -64,6 +65,12 @@ const createBoundsAccessorParts = ({
64
65
  const scoped: BoundsScopedAccessor = {
65
66
  styles: (options?: BoundsComputeOptions): BoundsStyleResult => {
66
67
  "worklet";
68
+ // Keep the component at its base layout for pre-animation refresh
69
+ // measurement, then remove generated styles again after settlement.
70
+ if (!props.active.animating) {
71
+ return NO_STYLES;
72
+ }
73
+
67
74
  return prepareBoundStyles({
68
75
  props,
69
76
  options: {
@@ -1,10 +1,12 @@
1
- import { getResolvedLink } from "../../../stores/bounds/internals/links";
1
+ import {
2
+ getPairKeyForDestination,
3
+ getResolvedLink,
4
+ } from "../../../stores/bounds/internals/links";
2
5
  import type {
3
6
  BoundsInterpolationProps,
4
7
  BoundsLink,
5
8
  } from "../../../types/bounds.types";
6
9
  import type { BoundId } from "../types/options";
7
- import { resolveBoundsPairKey } from "./resolve-bounds-pair-key";
8
10
 
9
11
  type GetProps = () => BoundsInterpolationProps;
10
12
 
@@ -19,7 +21,11 @@ export const createLinkAccessor = (getProps: GetProps): LinkAccessor => {
19
21
  "worklet";
20
22
  const props = getProps();
21
23
  const stringTag = String(tag);
22
- const pairKey = resolveBoundsPairKey(props);
24
+ const destinationScreenKey =
25
+ props.next?.route.key ?? props.current?.route.key;
26
+ const pairKey = destinationScreenKey
27
+ ? getPairKeyForDestination(stringTag, destinationScreenKey)
28
+ : null;
23
29
  if (!pairKey) return null;
24
30
 
25
31
  const resolved = getResolvedLink(pairKey, stringTag);
@@ -2,6 +2,18 @@
2
2
  * THANK YOU @MatiPl01
3
3
  * https://github.com/MatiPl01/react-native-sortables/blob/main/packages/react-native-sortables/src/providers/utils/createProvider.tsx
4
4
  * SUPER COOL AMAZING UTILITY
5
+ *
6
+ * Store-only provider: values propagate exclusively through a subscription
7
+ * store read with `use${Name}Store(selector)`. There is intentionally no raw
8
+ * context channel, so consumers subscribe only to the values they render.
9
+ *
10
+ * Factories do not memoize what they return:
11
+ * - `value`: the store shallow-compares snapshots and keeps the previous
12
+ * object when the contents are unchanged. Derived object and array fields
13
+ * must still have stable identities.
14
+ * - `children`: passed-through children keep their identity across
15
+ * provider-local renders. Factories that wrap children should use a
16
+ * module-level memoized component for the wrapper.
5
17
  */
6
18
  import {
7
19
  createContext,
@@ -9,13 +21,10 @@ import {
9
21
  useCallback,
10
22
  useContext,
11
23
  useLayoutEffect,
12
- useMemo,
13
24
  useRef,
14
25
  useSyncExternalStore,
15
26
  } from "react";
16
27
 
17
- type InnerProviderComponent = React.FC<{ children: ReactNode }>;
18
-
19
28
  type ProviderSnapshot<
20
29
  ContextValue,
21
30
  Guarded extends boolean,
@@ -32,9 +41,8 @@ type ProviderStoreHook<ContextValue, Guarded extends boolean> = {
32
41
  ): Selected;
33
42
  };
34
43
 
35
- type ProviderOptionalStoreHook<ContextValue> = {
36
- (): ContextValue | null;
37
- <Selected>(selector: (value: ContextValue | null) => Selected): Selected;
44
+ export type ProviderFactoryInternals<ContextValue> = {
45
+ useParentStore: ProviderStoreHook<ContextValue, false>;
38
46
  };
39
47
 
40
48
  export interface ProviderStoreApi<ContextValue> {
@@ -53,6 +61,42 @@ const NullProviderStore: ProviderStoreApi<never> = {
53
61
  subscribe: () => () => {},
54
62
  };
55
63
 
64
+ const shallowEqual = (a: unknown, b: unknown): boolean => {
65
+ if (Object.is(a, b)) {
66
+ return true;
67
+ }
68
+
69
+ if (
70
+ typeof a !== "object" ||
71
+ a === null ||
72
+ typeof b !== "object" ||
73
+ b === null
74
+ ) {
75
+ return false;
76
+ }
77
+
78
+ const aKeys = Object.keys(a);
79
+ const bKeys = Object.keys(b);
80
+
81
+ if (aKeys.length !== bKeys.length) {
82
+ return false;
83
+ }
84
+
85
+ for (const key of aKeys) {
86
+ if (
87
+ !(key in b) ||
88
+ !Object.is(
89
+ (a as Record<string, unknown>)[key],
90
+ (b as Record<string, unknown>)[key],
91
+ )
92
+ ) {
93
+ return false;
94
+ }
95
+ }
96
+
97
+ return true;
98
+ };
99
+
56
100
  const createProviderStore = <ContextValue,>(
57
101
  initialSnapshot: ContextValue | null,
58
102
  ): MutableProviderStoreApi<ContextValue> => {
@@ -67,7 +111,7 @@ const createProviderStore = <ContextValue,>(
67
111
  }
68
112
  },
69
113
  setSnapshot: (nextSnapshot) => {
70
- if (Object.is(snapshot, nextSnapshot)) {
114
+ if (shallowEqual(snapshot, nextSnapshot)) {
71
115
  return false;
72
116
  }
73
117
 
@@ -88,36 +132,73 @@ export default function createProvider<
88
132
  Guarded extends boolean = true,
89
133
  >(name: ProviderName, options?: { guarded?: Guarded }) {
90
134
  return <ProviderProps extends object, ContextValue>(
91
- factory: (props: ProviderProps) => {
135
+ factory: (
136
+ props: ProviderProps,
137
+ internals: ProviderFactoryInternals<ContextValue>,
138
+ ) => {
92
139
  value?: ContextValue;
93
140
  enabled?: boolean;
94
- children?:
95
- | ReactNode
96
- | ((
97
- innerProvider: {
98
- [K in ProviderName as `${K}Provider`]: InnerProviderComponent;
99
- },
100
- ) => ReactNode);
141
+ children?: ReactNode;
101
142
  },
102
143
  ) => {
103
144
  const { guarded = true } = options ?? {};
104
145
  const providerDisplayName = `${name}Provider`;
105
- const innerProviderDisplayName = `${name}InnerProvider`;
106
-
107
- const Context = createContext<ContextValue | null>(null);
108
- Context.displayName = name;
109
146
 
110
147
  const StoreContext = createContext<ProviderStoreApi<ContextValue> | null>(
111
148
  null,
112
149
  );
113
150
  StoreContext.displayName = `${name}Store`;
114
151
 
152
+ const createStoreHook = (strict: boolean) => {
153
+ return <Selected,>(
154
+ selector?: (value: ContextValue | null) => Selected,
155
+ ): Selected | ContextValue | null => {
156
+ const store = useContext(StoreContext);
157
+ const resolvedStore =
158
+ store ?? (NullProviderStore as ProviderStoreApi<ContextValue>);
159
+ const selectorRef = useRef<typeof selector>(selector);
160
+ selectorRef.current = selector;
161
+
162
+ const getSelectedSnapshot = useCallback(() => {
163
+ if (strict && store === null) {
164
+ throw new Error(
165
+ `${name} store must be used within a ${name}Provider`,
166
+ );
167
+ }
168
+
169
+ const snapshot = resolvedStore.getSnapshot();
170
+
171
+ if (strict && snapshot === null) {
172
+ throw new Error(
173
+ `${name} store must be used within an enabled ${name}Provider`,
174
+ );
175
+ }
176
+
177
+ return selectorRef.current ? selectorRef.current(snapshot) : snapshot;
178
+ }, [resolvedStore, store]);
179
+
180
+ return useSyncExternalStore(
181
+ resolvedStore.subscribe,
182
+ getSelectedSnapshot,
183
+ getSelectedSnapshot,
184
+ );
185
+ };
186
+ };
187
+
188
+ const useStoreSelector = createStoreHook(guarded);
189
+ const factoryInternals: ProviderFactoryInternals<ContextValue> = {
190
+ useParentStore: createStoreHook(false) as ProviderStoreHook<
191
+ ContextValue,
192
+ false
193
+ >,
194
+ };
195
+
115
196
  const Provider: React.FC<ProviderProps> = (props) => {
116
197
  const {
117
198
  children = (props as { children?: ReactNode }).children,
118
199
  enabled = true,
119
200
  value,
120
- } = factory(props);
201
+ } = factory(props, factoryInternals);
121
202
 
122
203
  if (!value) {
123
204
  throw new Error(
@@ -125,23 +206,19 @@ export default function createProvider<
125
206
  );
126
207
  }
127
208
 
128
- const memoValue = useMemo(
129
- () => (enabled ? value : null),
130
- [enabled, value],
131
- );
132
-
209
+ const snapshotValue = enabled ? value : null;
133
210
  const storeRef = useRef<MutableProviderStoreApi<ContextValue> | null>(
134
211
  null,
135
212
  );
136
213
  const pendingNotifyRef = useRef(false);
137
214
 
138
215
  if (storeRef.current === null) {
139
- storeRef.current = createProviderStore<ContextValue>(memoValue);
216
+ storeRef.current = createProviderStore<ContextValue>(snapshotValue);
140
217
  }
141
218
  const store = storeRef.current;
142
219
 
143
220
  pendingNotifyRef.current =
144
- store.setSnapshot(memoValue) || pendingNotifyRef.current;
221
+ store.setSnapshot(snapshotValue) || pendingNotifyRef.current;
145
222
 
146
223
  useLayoutEffect(() => {
147
224
  if (!pendingNotifyRef.current) {
@@ -152,130 +229,22 @@ export default function createProvider<
152
229
  store.notify();
153
230
  });
154
231
 
155
- // Per-instance ref ensures InnerProvider reads latest value while keeping
156
- // a stable component reference.
157
- const valueRef = useRef<ContextValue | null>(memoValue);
158
- valueRef.current = memoValue;
159
-
160
- const InnerProvider = useMemo((): InnerProviderComponent => {
161
- const NamedInnerProvider: InnerProviderComponent = ({ children }) => (
162
- <StoreContext.Provider value={store}>
163
- <Context.Provider value={valueRef.current}>
164
- {children}
165
- </Context.Provider>
166
- </StoreContext.Provider>
167
- );
168
-
169
- NamedInnerProvider.displayName = innerProviderDisplayName;
170
-
171
- return NamedInnerProvider;
172
- }, [store]);
173
-
174
- if (typeof children === "function") {
175
- return children({
176
- [`${name}Provider`]: InnerProvider,
177
- } as { [K in ProviderName as `${K}Provider`]: InnerProviderComponent });
178
- }
179
-
180
232
  return (
181
- <StoreContext.Provider value={store}>
182
- <Context.Provider value={memoValue}>{children}</Context.Provider>
183
- </StoreContext.Provider>
233
+ <StoreContext.Provider value={store}>{children}</StoreContext.Provider>
184
234
  );
185
235
  };
186
236
  Provider.displayName = providerDisplayName;
187
237
 
188
- const useEnhancedContext = (): ContextValue | null => {
189
- const context = useContext(Context);
190
-
191
- if (guarded && context === null) {
192
- throw new Error(
193
- `${name} context must be used within a ${name}Provider`,
194
- );
195
- }
196
-
197
- return context;
198
- };
199
-
200
- const useStoreSelector = <Selected,>(
201
- selector?: (value: ContextValue | null) => Selected,
202
- ): Selected | ContextValue | null => {
203
- const store = useContext(StoreContext);
204
- const resolvedStore =
205
- store ?? (NullProviderStore as ProviderStoreApi<ContextValue>);
206
- const selectorRef = useRef<typeof selector>(selector);
207
- selectorRef.current = selector;
208
-
209
- const getSelectedSnapshot = useCallback(() => {
210
- if (guarded && store === null) {
211
- throw new Error(
212
- `${name} store must be used within a ${name}Provider`,
213
- );
214
- }
215
-
216
- const snapshot = resolvedStore.getSnapshot();
217
-
218
- if (guarded && snapshot === null) {
219
- throw new Error(
220
- `${name} store must be used within an enabled ${name}Provider`,
221
- );
222
- }
223
-
224
- return selectorRef.current ? selectorRef.current(snapshot) : snapshot;
225
- }, [resolvedStore, store]);
226
-
227
- return useSyncExternalStore(
228
- resolvedStore.subscribe,
229
- getSelectedSnapshot,
230
- getSelectedSnapshot,
231
- );
232
- };
233
-
234
- const useOptionalStoreSelector = <Selected,>(
235
- selector?: (value: ContextValue | null) => Selected,
236
- ): Selected | ContextValue | null => {
237
- const store = useContext(StoreContext);
238
- const resolvedStore =
239
- store ?? (NullProviderStore as ProviderStoreApi<ContextValue>);
240
- const selectorRef = useRef<typeof selector>(selector);
241
- selectorRef.current = selector;
242
-
243
- const getSelectedSnapshot = useCallback(() => {
244
- const snapshot = resolvedStore.getSnapshot();
245
- return selectorRef.current ? selectorRef.current(snapshot) : snapshot;
246
- }, [resolvedStore]);
247
-
248
- return useSyncExternalStore(
249
- resolvedStore.subscribe,
250
- getSelectedSnapshot,
251
- getSelectedSnapshot,
252
- );
253
- };
254
-
255
238
  return {
256
- [`${name}Context`]: Context,
257
- [`${name}StoreContext`]: StoreContext,
258
239
  [`${name}Provider`]: Provider,
259
- [`use${name}Context`]: useEnhancedContext,
260
240
  [`use${name}Store`]: useStoreSelector,
261
- [`use${name}OptionalStore`]: useOptionalStoreSelector,
262
241
  } as {
263
- [P in ProviderName as `${P}Context`]: React.Context<ContextValue>;
264
- } & {
265
- [P in ProviderName as `${P}StoreContext`]: React.Context<ProviderStoreApi<ContextValue> | null>;
266
- } & {
267
242
  [P in ProviderName as `${P}Provider`]: React.FC<ProviderProps>;
268
- } & {
269
- [P in ProviderName as `use${P}Context`]: () => Guarded extends true
270
- ? ContextValue
271
- : ContextValue | null;
272
243
  } & {
273
244
  [P in ProviderName as `use${P}Store`]: ProviderStoreHook<
274
245
  ContextValue,
275
246
  Guarded
276
247
  >;
277
- } & {
278
- [P in ProviderName as `use${P}OptionalStore`]: ProviderOptionalStoreHook<ContextValue>;
279
248
  };
280
249
  };
281
250
  }
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createBoundaryPortalHostName = void 0;
7
- const BOUNDARY_PORTAL_HOST_NAME_SUFFIX = "-portal-host";
8
- const createBoundaryPortalHostName = (hostKey, boundaryId, pairKey) => {
9
- "worklet";
10
-
11
- return `${hostKey}-${pairKey ? `${pairKey}-` : ""}${boundaryId}${BOUNDARY_PORTAL_HOST_NAME_SUFFIX}`;
12
- };
13
- exports.createBoundaryPortalHostName = createBoundaryPortalHostName;
14
- //# sourceMappingURL=host-name.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["BOUNDARY_PORTAL_HOST_NAME_SUFFIX","createBoundaryPortalHostName","hostKey","boundaryId","pairKey","exports"],"sourceRoot":"../../../../../../../../src","sources":["components/boundary/portal/components/boundary-portal/helpers/host-name.ts"],"mappings":";;;;;;AAAA,MAAMA,gCAAgC,GAAG,cAAc;AAEhD,MAAMC,4BAA4B,GAAGA,CAC3CC,OAAe,EACfC,UAAkB,EAClBC,OAAuB,KACnB;EACJ,SAAS;;EACT,OAAO,GAAGF,OAAO,IAAIE,OAAO,GAAG,GAAGA,OAAO,GAAG,GAAG,EAAE,GAAGD,UAAU,GAAGH,gCAAgC,EAAE;AACpG,CAAC;AAACK,OAAA,CAAAJ,4BAAA,GAAAA,4BAAA","ignoreList":[]}
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.resolveEnteringHandoffTarget = void 0;
7
- var _linkPairs = require("../../../../stores/bounds/helpers/link-pairs.helpers");
8
- /** Resolve only the immediate A -> B entering handoff. */
9
- const resolveEnteringHandoffTarget = ({
10
- animationProgress,
11
- boundaryId,
12
- currentScreenKey,
13
- pairsState,
14
- sourcePairKey
15
- }) => {
16
- "worklet";
17
-
18
- if (!sourcePairKey || animationProgress <= 0) {
19
- return null;
20
- }
21
- const pair = pairsState[sourcePairKey];
22
- const linkKey = (0, _linkPairs.getLinkKeyFromTag)(boundaryId);
23
- const link = pair?.links[linkKey];
24
- if (link?.status !== "complete" || link.source.screenKey !== currentScreenKey || !link.source.handoff || !link.destination.handoff) {
25
- return null;
26
- }
27
- if (link.group && pair.groups[link.group]?.activeId !== linkKey) {
28
- return null;
29
- }
30
- return link.destination.screenKey;
31
- };
32
- exports.resolveEnteringHandoffTarget = resolveEnteringHandoffTarget;
33
- //# sourceMappingURL=handoff-target.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_linkPairs","require","resolveEnteringHandoffTarget","animationProgress","boundaryId","currentScreenKey","pairsState","sourcePairKey","pair","linkKey","getLinkKeyFromTag","link","links","status","source","screenKey","handoff","destination","group","groups","activeId","exports"],"sourceRoot":"../../../../../../src","sources":["components/boundary/portal/utils/handoff-target.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAeA;AACO,MAAMC,4BAA4B,GAAGA,CAAC;EAC5CC,iBAAiB;EACjBC,UAAU;EACVC,gBAAgB;EAChBC,UAAU;EACVC;AACmC,CAAC,KAAuB;EAC3D,SAAS;;EAET,IAAI,CAACA,aAAa,IAAIJ,iBAAiB,IAAI,CAAC,EAAE;IAC7C,OAAO,IAAI;EACZ;EAEA,MAAMK,IAAI,GAAGF,UAAU,CAACC,aAAa,CAAC;EACtC,MAAME,OAAO,GAAG,IAAAC,4BAAiB,EAACN,UAAU,CAAC;EAC7C,MAAMO,IAAI,GAAGH,IAAI,EAAEI,KAAK,CAACH,OAAO,CAAC;EAEjC,IACCE,IAAI,EAAEE,MAAM,KAAK,UAAU,IAC3BF,IAAI,CAACG,MAAM,CAACC,SAAS,KAAKV,gBAAgB,IAC1C,CAACM,IAAI,CAACG,MAAM,CAACE,OAAO,IACpB,CAACL,IAAI,CAACM,WAAW,CAACD,OAAO,EACxB;IACD,OAAO,IAAI;EACZ;EAEA,IAAIL,IAAI,CAACO,KAAK,IAAIV,IAAI,CAACW,MAAM,CAACR,IAAI,CAACO,KAAK,CAAC,EAAEE,QAAQ,KAAKX,OAAO,EAAE;IAChE,OAAO,IAAI;EACZ;EAEA,OAAOE,IAAI,CAACM,WAAW,CAACF,SAAS;AAClC,CAAC;AAACM,OAAA,CAAAnB,4BAAA,GAAAA,4BAAA","ignoreList":[]}
@@ -1,69 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = useStableCallbackValue;
7
- var _react = require("react");
8
- var _reactNativeReanimated = require("react-native-reanimated");
9
- var _reactNativeWorklets = require("react-native-worklets");
10
- /**
11
- * Credit:
12
- * https://github.com/MatiPl01/react-native-sortables/blob/main/packages/react-native-sortables/src/integrations/reanimated/hooks/useStableCallbackValue.ts
13
- */
14
-
15
- function useMutableValue(initialValue) {
16
- const [mutable] = (0, _react.useState)(() => (0, _reactNativeReanimated.makeMutable)(initialValue));
17
- (0, _react.useEffect)(() => {
18
- return () => {
19
- (0, _reactNativeReanimated.cancelAnimation)(mutable);
20
- };
21
- }, [mutable]);
22
- return mutable;
23
- }
24
-
25
- // We cannot store a function as a SharedValue because reanimated will treat
26
- // it as an animation and will try to execute the animation when assigned
27
- // to the SharedValue. Since we want the function to be treated as a value,
28
- // we wrap it in an object and store the object in the SharedValue.
29
-
30
- const wrap = callback => {
31
- if ((0, _reactNativeWorklets.isWorkletFunction)(callback)) {
32
- return {
33
- call: callback
34
- };
35
- }
36
- return {
37
- call: (...args) => {
38
- "worklet";
39
-
40
- (0, _reactNativeWorklets.scheduleOnRN)(callback, ...args);
41
- }
42
- };
43
- };
44
-
45
- /** Creates a stable worklet callback that can be called from the UI runtime
46
- * @param callback The JavaScript or worklet function to be called
47
- * @returns A worklet function that can be safely called from the UI thread
48
- * @default Behavior:
49
- * - If passed a regular JS function, schedules it on the JS thread
50
- * - If passed a worklet function, calls it directly on the UI thread
51
- * @important The returned function maintains a stable reference and properly handles
52
- * thread execution based on the input callback type
53
- */
54
- function useStableCallbackValue(callback) {
55
- const stableCallback = useMutableValue(null);
56
- (0, _react.useEffect)(() => {
57
- if (callback) {
58
- stableCallback.set(wrap(callback));
59
- } else {
60
- stableCallback.set(null);
61
- }
62
- }, [callback, stableCallback]);
63
- return (0, _react.useCallback)((...args) => {
64
- "worklet";
65
-
66
- stableCallback.get()?.call(...args);
67
- }, [stableCallback]);
68
- }
69
- //# sourceMappingURL=use-stable-callback-value.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_reactNativeReanimated","_reactNativeWorklets","useMutableValue","initialValue","mutable","useState","makeMutable","useEffect","cancelAnimation","wrap","callback","isWorkletFunction","call","args","scheduleOnRN","useStableCallbackValue","stableCallback","set","useCallback","get"],"sourceRoot":"../../../src","sources":["hooks/use-stable-callback-value.ts"],"mappings":";;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AANA;AACA;AACA;AACA;;AAOA,SAASG,eAAeA,CAAIC,YAAe,EAAE;EAC5C,MAAM,CAACC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAM,IAAAC,kCAAW,EAACH,YAAY,CAAC,CAAC;EAE3D,IAAAI,gBAAS,EAAC,MAAM;IACf,OAAO,MAAM;MACZ,IAAAC,sCAAe,EAACJ,OAAO,CAAC;IACzB,CAAC;EACF,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,OAAOA,OAAO;AACf;;AAEA;AACA;AACA;AACA;;AAKA,MAAMK,IAAI,GAA2BC,QAAW,IAAyB;EACxE,IAAI,IAAAC,sCAAiB,EAACD,QAAQ,CAAC,EAAE;IAChC,OAAO;MAAEE,IAAI,EAAEF;IAAS,CAAC;EAC1B;EACA,OAAO;IACNE,IAAI,EAAGA,CAAC,GAAGC,IAAmB,KAAK;MAClC,SAAS;;MACT,IAAAC,iCAAY,EAACJ,QAAQ,EAAE,GAAGG,IAAI,CAAC;IAChC;EACD,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASE,sBAAsBA,CAC7CL,QAAY,EACX;EACD,MAAMM,cAAc,GAAGd,eAAe,CAA4B,IAAI,CAAC;EAEvE,IAAAK,gBAAS,EAAC,MAAM;IACf,IAAIG,QAAQ,EAAE;MACbM,cAAc,CAACC,GAAG,CAACR,IAAI,CAACC,QAAQ,CAAC,CAAC;IACnC,CAAC,MAAM;MACNM,cAAc,CAACC,GAAG,CAAC,IAAI,CAAC;IACzB;EACD,CAAC,EAAE,CAACP,QAAQ,EAAEM,cAAc,CAAC,CAAC;EAE9B,OAAO,IAAAE,kBAAW,EACjB,CAAC,GAAGL,IAAmB,KAAK;IAC3B,SAAS;;IACTG,cAAc,CAACG,GAAG,CAAC,CAAC,EAAEP,IAAI,CAAC,GAAGC,IAAI,CAAC;EACpC,CAAC,EACD,CAACG,cAAc,CAChB,CAAC;AACF","ignoreList":[]}