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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) 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 +18 -7
  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-refresh-boundary.js +5 -12
  14. package/lib/commonjs/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
  15. package/lib/commonjs/components/boundary/hooks/use-measurer.js +6 -13
  16. package/lib/commonjs/components/boundary/hooks/use-measurer.js.map +1 -1
  17. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +67 -0
  18. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -0
  19. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +44 -37
  20. package/lib/commonjs/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  21. package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/host.js +2 -2
  22. package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -1
  23. package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/active-pair.js +30 -0
  24. package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/active-pair.js.map +1 -0
  25. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +75 -0
  26. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -0
  27. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +17 -32
  28. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  29. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +10 -19
  30. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -1
  31. package/lib/commonjs/components/boundary/portal/utils/naming.js +8 -1
  32. package/lib/commonjs/components/boundary/portal/utils/naming.js.map +1 -1
  33. package/lib/commonjs/components/boundary/providers/boundary-root.provider.js +4 -5
  34. package/lib/commonjs/components/boundary/providers/boundary-root.provider.js.map +1 -1
  35. package/lib/commonjs/components/boundary/utils/measured-bounds.js +19 -31
  36. package/lib/commonjs/components/boundary/utils/measured-bounds.js.map +1 -1
  37. package/lib/commonjs/components/boundary/utils/refresh-signals.js +14 -20
  38. package/lib/commonjs/components/boundary/utils/refresh-signals.js.map +1 -1
  39. package/lib/commonjs/components/create-transition-aware-component.js +9 -30
  40. package/lib/commonjs/components/create-transition-aware-component.js.map +1 -1
  41. package/lib/commonjs/components/screen-container/hooks/use-backdrop-pointer-events.js +5 -9
  42. package/lib/commonjs/components/screen-container/hooks/use-backdrop-pointer-events.js.map +1 -1
  43. package/lib/commonjs/components/screen-container/hooks/use-content-layout.js +3 -8
  44. package/lib/commonjs/components/screen-container/hooks/use-content-layout.js.map +1 -1
  45. package/lib/commonjs/components/screen-container/layers/backdrop.js +7 -10
  46. package/lib/commonjs/components/screen-container/layers/backdrop.js.map +1 -1
  47. package/lib/commonjs/components/screen-container/layers/content.js +10 -16
  48. package/lib/commonjs/components/screen-container/layers/content.js.map +1 -1
  49. package/lib/commonjs/components/screen-container/layers/surface-container.js +1 -5
  50. package/lib/commonjs/components/screen-container/layers/surface-container.js.map +1 -1
  51. package/lib/commonjs/components/screen-lifecycle/hooks/use-close-transition-intent.js +10 -12
  52. package/lib/commonjs/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
  53. package/lib/commonjs/components/screen-lifecycle/hooks/use-open-transition-intent.js +2 -3
  54. package/lib/commonjs/components/screen-lifecycle/hooks/use-open-transition-intent.js.map +1 -1
  55. package/lib/commonjs/components/screen-lifecycle/hooks/use-transition-start-controller.js +5 -1
  56. package/lib/commonjs/components/screen-lifecycle/hooks/use-transition-start-controller.js.map +1 -1
  57. package/lib/commonjs/components/screen-lifecycle/index.js +2 -4
  58. package/lib/commonjs/components/screen-lifecycle/index.js.map +1 -1
  59. package/lib/commonjs/components/stack-view.js +69 -35
  60. package/lib/commonjs/components/stack-view.js.map +1 -1
  61. package/lib/commonjs/configs/presets.js +10 -10
  62. package/lib/commonjs/configs/presets.js.map +1 -1
  63. package/lib/commonjs/constants.js +1 -0
  64. package/lib/commonjs/constants.js.map +1 -1
  65. package/lib/commonjs/hooks/navigation/use-navigation-helpers.js +9 -8
  66. package/lib/commonjs/hooks/navigation/use-navigation-helpers.js.map +1 -1
  67. package/lib/commonjs/hooks/navigation/use-screen-state.js +1 -3
  68. package/lib/commonjs/hooks/navigation/use-screen-state.js.map +1 -1
  69. package/lib/commonjs/providers/screen/animation/animation.provider.js +7 -7
  70. package/lib/commonjs/providers/screen/animation/animation.provider.js.map +1 -1
  71. package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js +1 -3
  72. package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map +1 -1
  73. package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +1 -1
  74. package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +1 -1
  75. package/lib/commonjs/providers/screen/animation/helpers/hydrate-transition-state/index.js +4 -10
  76. package/lib/commonjs/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
  77. package/lib/commonjs/providers/screen/animation/helpers/pipeline.js +5 -7
  78. package/lib/commonjs/providers/screen/animation/helpers/pipeline.js.map +1 -1
  79. package/lib/commonjs/providers/screen/animation/index.js +2 -2
  80. package/lib/commonjs/providers/screen/animation/use-screen-animation.js +1 -1
  81. package/lib/commonjs/providers/screen/animation/use-screen-animation.js.map +1 -1
  82. package/lib/commonjs/providers/screen/descriptors/descriptors.provider.js +34 -42
  83. package/lib/commonjs/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  84. package/lib/commonjs/providers/screen/descriptors/index.js +0 -12
  85. package/lib/commonjs/providers/screen/descriptors/index.js.map +1 -1
  86. package/lib/commonjs/providers/screen/gestures/gestures.provider.js +7 -7
  87. package/lib/commonjs/providers/screen/gestures/gestures.provider.js.map +1 -1
  88. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture-config.js +3 -9
  89. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
  90. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture.js +1 -1
  91. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture.js.map +1 -1
  92. package/lib/commonjs/providers/screen/gestures/hooks/use-stable-runtime-config.js +1 -3
  93. package/lib/commonjs/providers/screen/gestures/hooks/use-stable-runtime-config.js.map +1 -1
  94. package/lib/commonjs/providers/screen/gestures/index.js +2 -2
  95. package/lib/commonjs/providers/screen/gestures/ownership/shadowing-claims.js +2 -2
  96. package/lib/commonjs/providers/screen/gestures/ownership/shadowing-claims.js.map +1 -1
  97. package/lib/commonjs/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js +8 -11
  98. package/lib/commonjs/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +1 -1
  99. package/lib/commonjs/providers/screen/gestures/pan/activation/use-pan-activation.js +2 -4
  100. package/lib/commonjs/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
  101. package/lib/commonjs/providers/screen/gestures/pan/behavior/pan-lifecycle.js +5 -8
  102. package/lib/commonjs/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  103. package/lib/commonjs/providers/screen/gestures/pan/behavior/pan-reset.js +10 -0
  104. package/lib/commonjs/providers/screen/gestures/pan/behavior/pan-reset.js.map +1 -1
  105. package/lib/commonjs/providers/screen/gestures/pan/use-build-pan-gesture.js +1 -1
  106. package/lib/commonjs/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
  107. package/lib/commonjs/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +8 -6
  108. package/lib/commonjs/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  109. package/lib/commonjs/providers/screen/gestures/pinch/behavior/pinch-reset.js +7 -0
  110. package/lib/commonjs/providers/screen/gestures/pinch/behavior/pinch-reset.js.map +1 -1
  111. package/lib/commonjs/providers/screen/gestures/pinch/use-build-pinch-gesture.js +1 -1
  112. package/lib/commonjs/providers/screen/gestures/pinch/use-build-pinch-gesture.js.map +1 -1
  113. package/lib/commonjs/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js +5 -5
  114. package/lib/commonjs/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js.map +1 -1
  115. package/lib/commonjs/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +2 -2
  116. package/lib/commonjs/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
  117. package/lib/commonjs/providers/screen/options/index.js +2 -2
  118. package/lib/commonjs/providers/screen/options/options.provider.js +4 -8
  119. package/lib/commonjs/providers/screen/options/options.provider.js.map +1 -1
  120. package/lib/commonjs/providers/screen/screen-composer.js +2 -0
  121. package/lib/commonjs/providers/screen/screen-composer.js.map +1 -1
  122. package/lib/commonjs/providers/screen/styles/constants.js +10 -4
  123. package/lib/commonjs/providers/screen/styles/constants.js.map +1 -1
  124. package/lib/commonjs/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js +93 -0
  125. package/lib/commonjs/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js.map +1 -0
  126. package/lib/commonjs/providers/screen/styles/helpers/resolve-slot-styles/index.js +48 -5
  127. package/lib/commonjs/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  128. package/lib/commonjs/providers/screen/styles/helpers/select-interpolator-frame.js +32 -0
  129. package/lib/commonjs/providers/screen/styles/helpers/select-interpolator-frame.js.map +1 -0
  130. package/lib/commonjs/providers/screen/styles/helpers/visibility-gate.js +14 -1
  131. package/lib/commonjs/providers/screen/styles/helpers/visibility-gate.js.map +1 -1
  132. package/lib/commonjs/providers/screen/styles/hooks/use-interpolated-style-maps.js +64 -40
  133. package/lib/commonjs/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  134. package/lib/commonjs/providers/screen/styles/hooks/use-maybe-block-visibility.js +1 -3
  135. package/lib/commonjs/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  136. package/lib/commonjs/providers/screen/styles/index.js +0 -6
  137. package/lib/commonjs/providers/screen/styles/index.js.map +1 -1
  138. package/lib/commonjs/providers/screen/styles/slot.provider.js +23 -19
  139. package/lib/commonjs/providers/screen/styles/slot.provider.js.map +1 -1
  140. package/lib/commonjs/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js +3 -11
  141. package/lib/commonjs/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js.map +1 -1
  142. package/lib/commonjs/providers/stack/blank-stack.provider.js +53 -49
  143. package/lib/commonjs/providers/stack/blank-stack.provider.js.map +1 -1
  144. package/lib/commonjs/providers/stack/core.provider.js +24 -45
  145. package/lib/commonjs/providers/stack/core.provider.js.map +1 -1
  146. package/lib/commonjs/providers/stack/direct.provider.js +46 -40
  147. package/lib/commonjs/providers/stack/direct.provider.js.map +1 -1
  148. package/lib/commonjs/stores/animation.store.js +19 -1
  149. package/lib/commonjs/stores/animation.store.js.map +1 -1
  150. package/lib/commonjs/types/stack.types.js.map +1 -1
  151. package/lib/commonjs/utils/animation/animate-to-progress.js +12 -11
  152. package/lib/commonjs/utils/animation/animate-to-progress.js.map +1 -1
  153. package/lib/commonjs/utils/bounds/helpers/create-bounds-accessor-core.js +6 -0
  154. package/lib/commonjs/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  155. package/lib/commonjs/utils/create-provider.js +61 -75
  156. package/lib/commonjs/utils/create-provider.js.map +1 -1
  157. package/lib/module/adapters/with-screen-transitions/context.js +3 -0
  158. package/lib/module/adapters/with-screen-transitions/context.js.map +1 -1
  159. package/lib/module/adapters/with-screen-transitions/stack-layout.js +14 -8
  160. package/lib/module/adapters/with-screen-transitions/stack-layout.js.map +1 -1
  161. package/lib/module/animation/snap-to.js +1 -0
  162. package/lib/module/animation/snap-to.js.map +1 -1
  163. package/lib/module/components/activity/variants/activity-screen.js +26 -10
  164. package/lib/module/components/activity/variants/activity-screen.js.map +1 -1
  165. package/lib/module/components/boundary/components/boundary-target.js +2 -2
  166. package/lib/module/components/boundary/components/boundary-target.js.map +1 -1
  167. package/lib/module/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +19 -7
  168. package/lib/module/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
  169. package/lib/module/components/boundary/hooks/lifecycles/use-refresh-boundary.js +5 -12
  170. package/lib/module/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
  171. package/lib/module/components/boundary/hooks/use-measurer.js +7 -14
  172. package/lib/module/components/boundary/hooks/use-measurer.js.map +1 -1
  173. package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +60 -0
  174. package/lib/module/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -0
  175. package/lib/module/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +44 -37
  176. package/lib/module/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
  177. package/lib/module/components/boundary/portal/components/boundary-portal/components/host.js +2 -2
  178. package/lib/module/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -1
  179. package/lib/module/components/boundary/portal/components/boundary-portal/helpers/active-pair.js +25 -0
  180. package/lib/module/components/boundary/portal/components/boundary-portal/helpers/active-pair.js.map +1 -0
  181. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +70 -0
  182. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -0
  183. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +17 -32
  184. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  185. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +13 -22
  186. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -1
  187. package/lib/module/components/boundary/portal/utils/naming.js +6 -0
  188. package/lib/module/components/boundary/portal/utils/naming.js.map +1 -1
  189. package/lib/module/components/boundary/providers/boundary-root.provider.js +3 -3
  190. package/lib/module/components/boundary/providers/boundary-root.provider.js.map +1 -1
  191. package/lib/module/components/boundary/utils/measured-bounds.js +17 -28
  192. package/lib/module/components/boundary/utils/measured-bounds.js.map +1 -1
  193. package/lib/module/components/boundary/utils/refresh-signals.js +14 -20
  194. package/lib/module/components/boundary/utils/refresh-signals.js.map +1 -1
  195. package/lib/module/components/create-transition-aware-component.js +10 -31
  196. package/lib/module/components/create-transition-aware-component.js.map +1 -1
  197. package/lib/module/components/screen-container/hooks/use-backdrop-pointer-events.js +8 -12
  198. package/lib/module/components/screen-container/hooks/use-backdrop-pointer-events.js.map +1 -1
  199. package/lib/module/components/screen-container/hooks/use-content-layout.js +4 -9
  200. package/lib/module/components/screen-container/hooks/use-content-layout.js.map +1 -1
  201. package/lib/module/components/screen-container/layers/backdrop.js +8 -11
  202. package/lib/module/components/screen-container/layers/backdrop.js.map +1 -1
  203. package/lib/module/components/screen-container/layers/content.js +12 -18
  204. package/lib/module/components/screen-container/layers/content.js.map +1 -1
  205. package/lib/module/components/screen-container/layers/surface-container.js +2 -6
  206. package/lib/module/components/screen-container/layers/surface-container.js.map +1 -1
  207. package/lib/module/components/screen-lifecycle/hooks/use-close-transition-intent.js +13 -15
  208. package/lib/module/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
  209. package/lib/module/components/screen-lifecycle/hooks/use-open-transition-intent.js +3 -4
  210. package/lib/module/components/screen-lifecycle/hooks/use-open-transition-intent.js.map +1 -1
  211. package/lib/module/components/screen-lifecycle/hooks/use-transition-start-controller.js +5 -1
  212. package/lib/module/components/screen-lifecycle/hooks/use-transition-start-controller.js.map +1 -1
  213. package/lib/module/components/screen-lifecycle/index.js +3 -5
  214. package/lib/module/components/screen-lifecycle/index.js.map +1 -1
  215. package/lib/module/components/stack-view.js +71 -37
  216. package/lib/module/components/stack-view.js.map +1 -1
  217. package/lib/module/configs/presets.js +10 -10
  218. package/lib/module/configs/presets.js.map +1 -1
  219. package/lib/module/constants.js +1 -0
  220. package/lib/module/constants.js.map +1 -1
  221. package/lib/module/hooks/navigation/use-navigation-helpers.js +9 -8
  222. package/lib/module/hooks/navigation/use-navigation-helpers.js.map +1 -1
  223. package/lib/module/hooks/navigation/use-screen-state.js +2 -4
  224. package/lib/module/hooks/navigation/use-screen-state.js.map +1 -1
  225. package/lib/module/providers/screen/animation/animation.provider.js +6 -5
  226. package/lib/module/providers/screen/animation/animation.provider.js.map +1 -1
  227. package/lib/module/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js +2 -4
  228. package/lib/module/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map +1 -1
  229. package/lib/module/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +2 -2
  230. package/lib/module/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +1 -1
  231. package/lib/module/providers/screen/animation/helpers/hydrate-transition-state/index.js +4 -10
  232. package/lib/module/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
  233. package/lib/module/providers/screen/animation/helpers/pipeline.js +6 -8
  234. package/lib/module/providers/screen/animation/helpers/pipeline.js.map +1 -1
  235. package/lib/module/providers/screen/animation/index.js +1 -1
  236. package/lib/module/providers/screen/animation/index.js.map +1 -1
  237. package/lib/module/providers/screen/animation/use-screen-animation.js +2 -2
  238. package/lib/module/providers/screen/animation/use-screen-animation.js.map +1 -1
  239. package/lib/module/providers/screen/descriptors/descriptors.provider.js +34 -40
  240. package/lib/module/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  241. package/lib/module/providers/screen/descriptors/index.js +1 -1
  242. package/lib/module/providers/screen/descriptors/index.js.map +1 -1
  243. package/lib/module/providers/screen/gestures/gestures.provider.js +6 -6
  244. package/lib/module/providers/screen/gestures/gestures.provider.js.map +1 -1
  245. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture-config.js +5 -11
  246. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
  247. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture.js +2 -2
  248. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture.js.map +1 -1
  249. package/lib/module/providers/screen/gestures/hooks/use-stable-runtime-config.js +2 -4
  250. package/lib/module/providers/screen/gestures/hooks/use-stable-runtime-config.js.map +1 -1
  251. package/lib/module/providers/screen/gestures/index.js +1 -1
  252. package/lib/module/providers/screen/gestures/index.js.map +1 -1
  253. package/lib/module/providers/screen/gestures/ownership/shadowing-claims.js +2 -2
  254. package/lib/module/providers/screen/gestures/ownership/shadowing-claims.js.map +1 -1
  255. package/lib/module/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js +10 -13
  256. package/lib/module/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +1 -1
  257. package/lib/module/providers/screen/gestures/pan/activation/use-pan-activation.js +3 -5
  258. package/lib/module/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
  259. package/lib/module/providers/screen/gestures/pan/behavior/pan-lifecycle.js +6 -9
  260. package/lib/module/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  261. package/lib/module/providers/screen/gestures/pan/behavior/pan-reset.js +10 -0
  262. package/lib/module/providers/screen/gestures/pan/behavior/pan-reset.js.map +1 -1
  263. package/lib/module/providers/screen/gestures/pan/use-build-pan-gesture.js +2 -2
  264. package/lib/module/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
  265. package/lib/module/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +9 -7
  266. package/lib/module/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  267. package/lib/module/providers/screen/gestures/pinch/behavior/pinch-reset.js +7 -0
  268. package/lib/module/providers/screen/gestures/pinch/behavior/pinch-reset.js.map +1 -1
  269. package/lib/module/providers/screen/gestures/pinch/use-build-pinch-gesture.js +2 -2
  270. package/lib/module/providers/screen/gestures/pinch/use-build-pinch-gesture.js.map +1 -1
  271. package/lib/module/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js +3 -3
  272. package/lib/module/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js.map +1 -1
  273. package/lib/module/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +4 -4
  274. package/lib/module/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
  275. package/lib/module/providers/screen/options/index.js +1 -1
  276. package/lib/module/providers/screen/options/index.js.map +1 -1
  277. package/lib/module/providers/screen/options/options.provider.js +3 -7
  278. package/lib/module/providers/screen/options/options.provider.js.map +1 -1
  279. package/lib/module/providers/screen/screen-composer.js +2 -0
  280. package/lib/module/providers/screen/screen-composer.js.map +1 -1
  281. package/lib/module/providers/screen/styles/constants.js +8 -3
  282. package/lib/module/providers/screen/styles/constants.js.map +1 -1
  283. package/lib/module/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js +88 -0
  284. package/lib/module/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js.map +1 -0
  285. package/lib/module/providers/screen/styles/helpers/resolve-slot-styles/index.js +49 -6
  286. package/lib/module/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  287. package/lib/module/providers/screen/styles/helpers/select-interpolator-frame.js +27 -0
  288. package/lib/module/providers/screen/styles/helpers/select-interpolator-frame.js.map +1 -0
  289. package/lib/module/providers/screen/styles/helpers/visibility-gate.js +12 -0
  290. package/lib/module/providers/screen/styles/helpers/visibility-gate.js.map +1 -1
  291. package/lib/module/providers/screen/styles/hooks/use-interpolated-style-maps.js +67 -43
  292. package/lib/module/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  293. package/lib/module/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -4
  294. package/lib/module/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  295. package/lib/module/providers/screen/styles/index.js +1 -1
  296. package/lib/module/providers/screen/styles/index.js.map +1 -1
  297. package/lib/module/providers/screen/styles/slot.provider.js +23 -18
  298. package/lib/module/providers/screen/styles/slot.provider.js.map +1 -1
  299. package/lib/module/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js +3 -11
  300. package/lib/module/providers/stack/blank-stack-state/helpers/build-blank-stack-state.js.map +1 -1
  301. package/lib/module/providers/stack/blank-stack.provider.js +50 -47
  302. package/lib/module/providers/stack/blank-stack.provider.js.map +1 -1
  303. package/lib/module/providers/stack/core.provider.js +22 -43
  304. package/lib/module/providers/stack/core.provider.js.map +1 -1
  305. package/lib/module/providers/stack/direct.provider.js +44 -41
  306. package/lib/module/providers/stack/direct.provider.js.map +1 -1
  307. package/lib/module/stores/animation.store.js +17 -0
  308. package/lib/module/stores/animation.store.js.map +1 -1
  309. package/lib/module/types/stack.types.js.map +1 -1
  310. package/lib/module/utils/animation/animate-to-progress.js +12 -11
  311. package/lib/module/utils/animation/animate-to-progress.js.map +1 -1
  312. package/lib/module/utils/bounds/helpers/create-bounds-accessor-core.js +6 -0
  313. package/lib/module/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  314. package/lib/module/utils/create-provider.js +62 -76
  315. package/lib/module/utils/create-provider.js.map +1 -1
  316. package/lib/typescript/adapters/with-screen-transitions/context.d.ts +2 -0
  317. package/lib/typescript/adapters/with-screen-transitions/context.d.ts.map +1 -1
  318. package/lib/typescript/adapters/with-screen-transitions/stack-layout.d.ts +1 -1
  319. package/lib/typescript/adapters/with-screen-transitions/stack-layout.d.ts.map +1 -1
  320. package/lib/typescript/animation/snap-to.d.ts.map +1 -1
  321. package/lib/typescript/components/activity/variants/activity-screen.d.ts +3 -2
  322. package/lib/typescript/components/activity/variants/activity-screen.d.ts.map +1 -1
  323. package/lib/typescript/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts.map +1 -1
  324. package/lib/typescript/components/boundary/hooks/lifecycles/use-refresh-boundary.d.ts.map +1 -1
  325. package/lib/typescript/components/boundary/hooks/use-measurer.d.ts +1 -1
  326. package/lib/typescript/components/boundary/hooks/use-measurer.d.ts.map +1 -1
  327. package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts +26 -0
  328. package/lib/typescript/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts.map +1 -0
  329. package/lib/typescript/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts.map +1 -1
  330. package/lib/typescript/components/boundary/portal/components/boundary-portal/components/host.d.ts.map +1 -1
  331. package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/active-pair.d.ts +9 -0
  332. package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/active-pair.d.ts.map +1 -0
  333. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts +17 -0
  334. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts.map +1 -0
  335. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -1
  336. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts +0 -1
  337. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts.map +1 -1
  338. package/lib/typescript/components/boundary/portal/utils/naming.d.ts +1 -0
  339. package/lib/typescript/components/boundary/portal/utils/naming.d.ts.map +1 -1
  340. package/lib/typescript/components/boundary/providers/boundary-root.provider.d.ts +1 -1
  341. package/lib/typescript/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
  342. package/lib/typescript/components/boundary/utils/measured-bounds.d.ts +1 -3
  343. package/lib/typescript/components/boundary/utils/measured-bounds.d.ts.map +1 -1
  344. package/lib/typescript/components/boundary/utils/refresh-signals.d.ts +0 -4
  345. package/lib/typescript/components/boundary/utils/refresh-signals.d.ts.map +1 -1
  346. package/lib/typescript/components/create-transition-aware-component.d.ts +0 -2
  347. package/lib/typescript/components/create-transition-aware-component.d.ts.map +1 -1
  348. package/lib/typescript/components/screen-container/hooks/use-backdrop-pointer-events.d.ts.map +1 -1
  349. package/lib/typescript/components/screen-container/hooks/use-content-layout.d.ts.map +1 -1
  350. package/lib/typescript/components/screen-container/layers/backdrop.d.ts.map +1 -1
  351. package/lib/typescript/components/screen-container/layers/content.d.ts.map +1 -1
  352. package/lib/typescript/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts.map +1 -1
  353. package/lib/typescript/components/screen-lifecycle/hooks/use-open-transition-intent.d.ts.map +1 -1
  354. package/lib/typescript/components/screen-lifecycle/hooks/use-transition-start-controller.d.ts.map +1 -1
  355. package/lib/typescript/components/screen-lifecycle/index.d.ts.map +1 -1
  356. package/lib/typescript/components/stack-view.d.ts +5 -1
  357. package/lib/typescript/components/stack-view.d.ts.map +1 -1
  358. package/lib/typescript/configs/index.d.ts +6 -6
  359. package/lib/typescript/configs/presets.d.ts +6 -6
  360. package/lib/typescript/configs/presets.d.ts.map +1 -1
  361. package/lib/typescript/constants.d.ts.map +1 -1
  362. package/lib/typescript/hooks/navigation/use-navigation-helpers.d.ts.map +1 -1
  363. package/lib/typescript/hooks/navigation/use-screen-state.d.ts.map +1 -1
  364. package/lib/typescript/index.d.ts +10 -18
  365. package/lib/typescript/index.d.ts.map +1 -1
  366. package/lib/typescript/providers/screen/animation/animation.provider.d.ts +4 -1
  367. package/lib/typescript/providers/screen/animation/animation.provider.d.ts.map +1 -1
  368. package/lib/typescript/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.d.ts.map +1 -1
  369. package/lib/typescript/providers/screen/animation/helpers/hydrate-transition-state/index.d.ts.map +1 -1
  370. package/lib/typescript/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
  371. package/lib/typescript/providers/screen/animation/index.d.ts +1 -1
  372. package/lib/typescript/providers/screen/animation/index.d.ts.map +1 -1
  373. package/lib/typescript/providers/screen/descriptors/descriptors.provider.d.ts +10 -11
  374. package/lib/typescript/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  375. package/lib/typescript/providers/screen/descriptors/index.d.ts +1 -1
  376. package/lib/typescript/providers/screen/descriptors/index.d.ts.map +1 -1
  377. package/lib/typescript/providers/screen/gestures/gestures.provider.d.ts +4 -1
  378. package/lib/typescript/providers/screen/gestures/gestures.provider.d.ts.map +1 -1
  379. package/lib/typescript/providers/screen/gestures/hooks/use-screen-gesture-config.d.ts.map +1 -1
  380. package/lib/typescript/providers/screen/gestures/hooks/use-stable-runtime-config.d.ts.map +1 -1
  381. package/lib/typescript/providers/screen/gestures/index.d.ts +1 -1
  382. package/lib/typescript/providers/screen/gestures/index.d.ts.map +1 -1
  383. package/lib/typescript/providers/screen/gestures/ownership/shadowing-claims.d.ts +2 -3
  384. package/lib/typescript/providers/screen/gestures/ownership/shadowing-claims.d.ts.map +1 -1
  385. package/lib/typescript/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.d.ts.map +1 -1
  386. package/lib/typescript/providers/screen/gestures/pan/activation/use-pan-activation.d.ts.map +1 -1
  387. package/lib/typescript/providers/screen/gestures/pan/behavior/pan-lifecycle.d.ts.map +1 -1
  388. package/lib/typescript/providers/screen/gestures/pan/behavior/pan-reset.d.ts +4 -1
  389. package/lib/typescript/providers/screen/gestures/pan/behavior/pan-reset.d.ts.map +1 -1
  390. package/lib/typescript/providers/screen/gestures/pinch/behavior/pinch-lifecycle.d.ts.map +1 -1
  391. package/lib/typescript/providers/screen/gestures/pinch/behavior/pinch-reset.d.ts +3 -1
  392. package/lib/typescript/providers/screen/gestures/pinch/behavior/pinch-reset.d.ts.map +1 -1
  393. package/lib/typescript/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.d.ts +1 -1
  394. package/lib/typescript/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.d.ts.map +1 -1
  395. package/lib/typescript/providers/screen/options/index.d.ts +1 -1
  396. package/lib/typescript/providers/screen/options/index.d.ts.map +1 -1
  397. package/lib/typescript/providers/screen/options/options.provider.d.ts +4 -1
  398. package/lib/typescript/providers/screen/options/options.provider.d.ts.map +1 -1
  399. package/lib/typescript/providers/screen/screen-composer.d.ts +3 -2
  400. package/lib/typescript/providers/screen/screen-composer.d.ts.map +1 -1
  401. package/lib/typescript/providers/screen/styles/constants.d.ts +1 -0
  402. package/lib/typescript/providers/screen/styles/constants.d.ts.map +1 -1
  403. package/lib/typescript/providers/screen/styles/helpers/resolve-interpolator-style-handoff.d.ts +12 -0
  404. package/lib/typescript/providers/screen/styles/helpers/resolve-interpolator-style-handoff.d.ts.map +1 -0
  405. package/lib/typescript/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts +5 -3
  406. package/lib/typescript/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts.map +1 -1
  407. package/lib/typescript/providers/screen/styles/helpers/select-interpolator-frame.d.ts +4 -0
  408. package/lib/typescript/providers/screen/styles/helpers/select-interpolator-frame.d.ts.map +1 -0
  409. package/lib/typescript/providers/screen/styles/helpers/visibility-gate.d.ts +10 -0
  410. package/lib/typescript/providers/screen/styles/helpers/visibility-gate.d.ts.map +1 -1
  411. package/lib/typescript/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts +10 -5
  412. package/lib/typescript/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
  413. package/lib/typescript/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +1 -1
  414. package/lib/typescript/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  415. package/lib/typescript/providers/screen/styles/index.d.ts +1 -1
  416. package/lib/typescript/providers/screen/styles/index.d.ts.map +1 -1
  417. package/lib/typescript/providers/screen/styles/slot.provider.d.ts +4 -1
  418. package/lib/typescript/providers/screen/styles/slot.provider.d.ts.map +1 -1
  419. package/lib/typescript/providers/stack/blank-stack-state/helpers/build-blank-stack-state.d.ts.map +1 -1
  420. package/lib/typescript/providers/stack/blank-stack.provider.d.ts +12 -6
  421. package/lib/typescript/providers/stack/blank-stack.provider.d.ts.map +1 -1
  422. package/lib/typescript/providers/stack/core.provider.d.ts +10 -8
  423. package/lib/typescript/providers/stack/core.provider.d.ts.map +1 -1
  424. package/lib/typescript/providers/stack/direct.provider.d.ts +11 -4
  425. package/lib/typescript/providers/stack/direct.provider.d.ts.map +1 -1
  426. package/lib/typescript/stores/animation.store.d.ts +1 -0
  427. package/lib/typescript/stores/animation.store.d.ts.map +1 -1
  428. package/lib/typescript/types/blank-stack.types.d.ts +1 -4
  429. package/lib/typescript/types/blank-stack.types.d.ts.map +1 -1
  430. package/lib/typescript/types/gesture.types.d.ts +11 -0
  431. package/lib/typescript/types/gesture.types.d.ts.map +1 -1
  432. package/lib/typescript/types/providers/blank-stack-provider.types.d.ts +12 -20
  433. package/lib/typescript/types/providers/blank-stack-provider.types.d.ts.map +1 -1
  434. package/lib/typescript/types/providers/direct-stack.types.d.ts +2 -1
  435. package/lib/typescript/types/providers/direct-stack.types.d.ts.map +1 -1
  436. package/lib/typescript/types/screen.types.d.ts +0 -30
  437. package/lib/typescript/types/screen.types.d.ts.map +1 -1
  438. package/lib/typescript/types/stack.types.d.ts +2 -4
  439. package/lib/typescript/types/stack.types.d.ts.map +1 -1
  440. package/lib/typescript/utils/animation/animate-to-progress.d.ts +3 -2
  441. package/lib/typescript/utils/animation/animate-to-progress.d.ts.map +1 -1
  442. package/lib/typescript/utils/bounds/helpers/create-bounds-accessor-core.d.ts.map +1 -1
  443. package/lib/typescript/utils/create-provider.d.ts +17 -9
  444. package/lib/typescript/utils/create-provider.d.ts.map +1 -1
  445. package/package.json +1 -1
  446. package/src/adapters/with-screen-transitions/context.tsx +5 -0
  447. package/src/adapters/with-screen-transitions/stack-layout.tsx +20 -7
  448. package/src/animation/snap-to.ts +1 -0
  449. package/src/components/activity/variants/activity-screen.tsx +46 -13
  450. package/src/components/boundary/components/boundary-target.tsx +2 -2
  451. package/src/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts +28 -14
  452. package/src/components/boundary/hooks/lifecycles/use-refresh-boundary.ts +7 -24
  453. package/src/components/boundary/hooks/use-measurer.ts +7 -16
  454. package/src/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.ts +103 -0
  455. package/src/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts +86 -61
  456. package/src/components/boundary/portal/components/boundary-portal/components/host.tsx +12 -14
  457. package/src/components/boundary/portal/components/boundary-portal/helpers/active-pair.ts +36 -0
  458. package/src/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.ts +114 -0
  459. package/src/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +9 -46
  460. package/src/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.ts +13 -20
  461. package/src/components/boundary/portal/utils/naming.ts +11 -0
  462. package/src/components/boundary/providers/boundary-root.provider.tsx +8 -11
  463. package/src/components/boundary/utils/measured-bounds.ts +29 -32
  464. package/src/components/boundary/utils/refresh-signals.ts +23 -26
  465. package/src/components/create-transition-aware-component.tsx +11 -36
  466. package/src/components/screen-container/hooks/use-backdrop-pointer-events.ts +10 -8
  467. package/src/components/screen-container/hooks/use-content-layout.ts +10 -10
  468. package/src/components/screen-container/layers/backdrop.tsx +20 -9
  469. package/src/components/screen-container/layers/content.tsx +20 -21
  470. package/src/components/screen-container/layers/surface-container.tsx +4 -4
  471. package/src/components/screen-lifecycle/hooks/use-close-transition-intent.ts +19 -9
  472. package/src/components/screen-lifecycle/hooks/use-open-transition-intent.ts +5 -2
  473. package/src/components/screen-lifecycle/hooks/use-transition-start-controller.ts +6 -0
  474. package/src/components/screen-lifecycle/index.tsx +3 -2
  475. package/src/components/stack-view.tsx +117 -56
  476. package/src/configs/presets.ts +13 -13
  477. package/src/constants.ts +1 -0
  478. package/src/hooks/navigation/use-navigation-helpers.ts +9 -8
  479. package/src/hooks/navigation/use-screen-state.ts +4 -2
  480. package/src/providers/screen/animation/animation.provider.tsx +170 -173
  481. package/src/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.tsx +4 -2
  482. package/src/providers/screen/animation/helpers/accessors/use-build-transition-accessor.ts +2 -2
  483. package/src/providers/screen/animation/helpers/hydrate-transition-state/index.ts +4 -21
  484. package/src/providers/screen/animation/helpers/pipeline.ts +6 -10
  485. package/src/providers/screen/animation/index.tsx +1 -1
  486. package/src/providers/screen/animation/use-screen-animation.tsx +2 -2
  487. package/src/providers/screen/descriptors/descriptors.provider.tsx +83 -72
  488. package/src/providers/screen/descriptors/index.tsx +0 -2
  489. package/src/providers/screen/gestures/gestures.provider.tsx +72 -63
  490. package/src/providers/screen/gestures/hooks/use-screen-gesture-config.ts +7 -8
  491. package/src/providers/screen/gestures/hooks/use-screen-gesture.ts +2 -2
  492. package/src/providers/screen/gestures/hooks/use-stable-runtime-config.ts +4 -2
  493. package/src/providers/screen/gestures/index.tsx +1 -1
  494. package/src/providers/screen/gestures/ownership/shadowing-claims.ts +3 -4
  495. package/src/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.ts +16 -8
  496. package/src/providers/screen/gestures/pan/activation/use-pan-activation.ts +7 -2
  497. package/src/providers/screen/gestures/pan/behavior/pan-lifecycle.ts +8 -16
  498. package/src/providers/screen/gestures/pan/behavior/pan-reset.ts +14 -0
  499. package/src/providers/screen/gestures/pan/use-build-pan-gesture.ts +2 -2
  500. package/src/providers/screen/gestures/pinch/behavior/pinch-lifecycle.ts +12 -11
  501. package/src/providers/screen/gestures/pinch/behavior/pinch-reset.ts +10 -0
  502. package/src/providers/screen/gestures/pinch/use-build-pinch-gesture.ts +2 -2
  503. package/src/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.tsx +4 -4
  504. package/src/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.ts +4 -4
  505. package/src/providers/screen/options/index.ts +1 -1
  506. package/src/providers/screen/options/options.provider.tsx +24 -28
  507. package/src/providers/screen/screen-composer.tsx +9 -2
  508. package/src/providers/screen/styles/constants.ts +8 -6
  509. package/src/providers/screen/styles/helpers/resolve-interpolator-style-handoff.ts +138 -0
  510. package/src/providers/screen/styles/helpers/resolve-slot-styles/index.ts +71 -4
  511. package/src/providers/screen/styles/helpers/select-interpolator-frame.ts +41 -0
  512. package/src/providers/screen/styles/helpers/visibility-gate.ts +25 -0
  513. package/src/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +99 -55
  514. package/src/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +4 -2
  515. package/src/providers/screen/styles/index.tsx +0 -1
  516. package/src/providers/screen/styles/slot.provider.tsx +62 -48
  517. package/src/providers/stack/blank-stack-state/helpers/build-blank-stack-state.ts +4 -17
  518. package/src/providers/stack/blank-stack.provider.tsx +66 -75
  519. package/src/providers/stack/core.provider.tsx +53 -79
  520. package/src/providers/stack/direct.provider.tsx +76 -57
  521. package/src/stores/animation.store.ts +19 -0
  522. package/src/types/blank-stack.types.ts +1 -4
  523. package/src/types/gesture.types.ts +11 -0
  524. package/src/types/providers/blank-stack-provider.types.ts +8 -22
  525. package/src/types/providers/direct-stack.types.ts +2 -1
  526. package/src/types/screen.types.ts +0 -32
  527. package/src/types/stack.types.ts +2 -4
  528. package/src/utils/animation/animate-to-progress.ts +18 -18
  529. package/src/utils/bounds/helpers/create-bounds-accessor-core.ts +7 -0
  530. package/src/utils/create-provider.tsx +105 -136
  531. package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/host-name.js +0 -14
  532. package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/host-name.js.map +0 -1
  533. package/lib/commonjs/components/boundary/portal/utils/handoff-target.js +0 -33
  534. package/lib/commonjs/components/boundary/portal/utils/handoff-target.js.map +0 -1
  535. package/lib/commonjs/hooks/use-stable-callback-value.js +0 -69
  536. package/lib/commonjs/hooks/use-stable-callback-value.js.map +0 -1
  537. package/lib/commonjs/providers/register-bounds.provider.js +0 -312
  538. package/lib/commonjs/providers/register-bounds.provider.js.map +0 -1
  539. package/lib/commonjs/providers/screen/origin.provider.js +0 -41
  540. package/lib/commonjs/providers/screen/origin.provider.js.map +0 -1
  541. package/lib/module/components/boundary/portal/components/boundary-portal/helpers/host-name.js +0 -9
  542. package/lib/module/components/boundary/portal/components/boundary-portal/helpers/host-name.js.map +0 -1
  543. package/lib/module/components/boundary/portal/utils/handoff-target.js +0 -28
  544. package/lib/module/components/boundary/portal/utils/handoff-target.js.map +0 -1
  545. package/lib/module/hooks/use-stable-callback-value.js +0 -64
  546. package/lib/module/hooks/use-stable-callback-value.js.map +0 -1
  547. package/lib/module/providers/register-bounds.provider.js +0 -308
  548. package/lib/module/providers/register-bounds.provider.js.map +0 -1
  549. package/lib/module/providers/screen/origin.provider.js +0 -33
  550. package/lib/module/providers/screen/origin.provider.js.map +0 -1
  551. package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/host-name.d.ts +0 -2
  552. package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/host-name.d.ts.map +0 -1
  553. package/lib/typescript/components/boundary/portal/utils/handoff-target.d.ts +0 -12
  554. package/lib/typescript/components/boundary/portal/utils/handoff-target.d.ts.map +0 -1
  555. package/lib/typescript/hooks/use-stable-callback-value.d.ts +0 -13
  556. package/lib/typescript/hooks/use-stable-callback-value.d.ts.map +0 -1
  557. package/lib/typescript/providers/register-bounds.provider.d.ts +0 -25
  558. package/lib/typescript/providers/register-bounds.provider.d.ts.map +0 -1
  559. package/lib/typescript/providers/screen/origin.provider.d.ts +0 -11
  560. package/lib/typescript/providers/screen/origin.provider.d.ts.map +0 -1
  561. package/src/components/boundary/portal/components/boundary-portal/helpers/host-name.ts +0 -10
  562. package/src/components/boundary/portal/utils/handoff-target.ts +0 -48
  563. package/src/hooks/use-stable-callback-value.ts +0 -72
  564. package/src/providers/register-bounds.provider.tsx +0 -401
  565. package/src/providers/screen/origin.provider.tsx +0 -38
@@ -1,308 +0,0 @@
1
- "use strict";
2
-
3
- import { useFocusEffect } from "@react-navigation/native";
4
- import { useCallback, useMemo, useRef } from "react";
5
- import { measure, useAnimatedReaction, useSharedValue } from "react-native-reanimated";
6
- import { scheduleOnRN, scheduleOnUI } from "react-native-worklets";
7
- import useStableCallback from "../hooks/use-stable-callback";
8
- import useStableCallbackValue from "../hooks/use-stable-callback-value";
9
- import { AnimationStore } from "../stores/animation.store";
10
- import { createPendingPairKey, createScreenPairKey } from "../stores/bounds/helpers/link-pairs.helpers";
11
- import { getEntry } from "../stores/bounds/internals/entries";
12
- import { getDestination, getSource } from "../stores/bounds/internals/links";
13
- import { prepareStyleForBounds } from "../utils/bounds/helpers/styles/styles";
14
- import createProvider from "../utils/create-provider";
15
- import { applyMeasuredBoundsWrites } from "./helpers/measured-bounds-writes";
16
- import { useDescriptorDerivations, useDescriptors } from "./screen/descriptors";
17
-
18
- /**
19
- * @deprecated Internal legacy provider for the old shared-bound-tag registration
20
- * path. Do not build new boundary behavior here; use the Transition.Boundary
21
- * measurement pipeline instead.
22
- */
23
- import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
24
- const getRouteParamId = route => {
25
- const params = route?.params;
26
- const rawId = params?.id;
27
- return typeof rawId === "string" ? rawId : null;
28
- };
29
- const matchesSelectionTag = (tag, selectedId) => {
30
- "worklet";
31
-
32
- if (!tag || !selectedId) return false;
33
- if (tag === selectedId) return true;
34
- if (tag.endsWith(`:${selectedId}`)) return true;
35
- if (tag.endsWith(`-${selectedId}`)) return true;
36
- return false;
37
- };
38
-
39
- /**
40
- * Handles initial layout measurement for destination elements.
41
- * Only measures if an animation is in progress (local or parent).
42
- */
43
- const useInitialLayoutHandler = params => {
44
- const {
45
- sharedBoundTag,
46
- currentScreenKey,
47
- ancestorKeys,
48
- maybeMeasureAndStore
49
- } = params;
50
- const isAnimating = AnimationStore.getValue(currentScreenKey, "progressAnimating");
51
-
52
- // Check if any ancestor is animating
53
- const ancestorAnimations = ancestorKeys.map(key => AnimationStore.getValue(key, "progressAnimating"));
54
- const hasMeasuredOnLayout = useSharedValue(false);
55
- return useCallback(() => {
56
- "worklet";
57
-
58
- if (!sharedBoundTag || hasMeasuredOnLayout.get()) return;
59
-
60
- // Check if current or any ancestor is animating
61
- let isAnyAnimating = isAnimating.get();
62
- for (let i = 0; i < ancestorAnimations.length; i++) {
63
- if (ancestorAnimations[i].get()) {
64
- isAnyAnimating = 1;
65
- break;
66
- }
67
- }
68
- if (!isAnyAnimating) return;
69
- maybeMeasureAndStore({
70
- shouldSetSource: false,
71
- shouldSetDestination: true
72
- });
73
- hasMeasuredOnLayout.set(true);
74
- }, [sharedBoundTag, hasMeasuredOnLayout, isAnimating, ancestorAnimations, maybeMeasureAndStore]);
75
- };
76
-
77
- /**
78
- * Measures non-pressable elements when screen becomes blurred.
79
- * Captures bounds right before transition starts.
80
- */
81
- const useBlurMeasurement = params => {
82
- const {
83
- current
84
- } = useDescriptors();
85
- const {
86
- enabled,
87
- sharedBoundTag,
88
- selectedRouteId,
89
- ancestorKeys,
90
- maybeMeasureAndStore
91
- } = params;
92
- const hasCapturedSource = useRef(false);
93
- const ancestorClosing = [current.route.key, ...ancestorKeys].map(key => AnimationStore.getValue(key, "closing"));
94
- const maybeMeasureOnBlur = useStableCallbackValue(() => {
95
- "worklet";
96
-
97
- if (!enabled) return;
98
- if (!matchesSelectionTag(sharedBoundTag, selectedRouteId)) return;
99
-
100
- //.some doesnt work here apparently... :-(
101
- for (const closing of ancestorClosing) {
102
- if (closing.get()) return;
103
- }
104
- maybeMeasureAndStore({
105
- shouldSetSource: true
106
- });
107
- });
108
- useFocusEffect(useCallback(() => {
109
- hasCapturedSource.current = false;
110
- if (!enabled) {
111
- return;
112
- }
113
- return () => {
114
- if (!sharedBoundTag || hasCapturedSource.current) return;
115
- scheduleOnUI(maybeMeasureOnBlur);
116
- };
117
- }, [enabled, sharedBoundTag, maybeMeasureOnBlur]));
118
- return {
119
- markSourceCaptured: () => {
120
- hasCapturedSource.current = true;
121
- }
122
- };
123
- };
124
-
125
- /**
126
- * Syncs child measurements when parent updates.
127
- */
128
- const useParentSyncReaction = params => {
129
- const {
130
- parentContext,
131
- maybeMeasureAndStore
132
- } = params;
133
- useAnimatedReaction(() => parentContext?.updateSignal.get(), value => {
134
- "worklet";
135
-
136
- if (value === 0 || value === undefined) return;
137
- maybeMeasureAndStore();
138
- });
139
- };
140
- let useRegisterBoundsContext;
141
- const registerBoundsBundle = createProvider("RegisterBounds", {
142
- guarded: false
143
- })(({
144
- style,
145
- onPress,
146
- sharedBoundTag,
147
- animatedRef,
148
- children
149
- }) => {
150
- const {
151
- current,
152
- next
153
- } = useDescriptors();
154
- const {
155
- ancestorKeys,
156
- previousScreenKey
157
- } = useDescriptorDerivations();
158
- const currentScreenKey = current.route.key;
159
- const selectedNextRouteId = getRouteParamId(next?.route);
160
-
161
- // Context & signals
162
- const parentContext = useRegisterBoundsContext();
163
- const ownSignal = useSharedValue(0);
164
- const updateSignal = parentContext?.updateSignal ?? ownSignal;
165
- const isAnimating = AnimationStore.getValue(currentScreenKey, "progressAnimating");
166
- const preparedStyles = useMemo(() => prepareStyleForBounds(style), [style]);
167
- const emitUpdate = useStableCallbackValue(() => {
168
- "worklet";
169
-
170
- const isRoot = !parentContext;
171
- if (isRoot) updateSignal.set(updateSignal.get() + 1);
172
- });
173
- const maybeMeasureAndStore = useStableCallbackValue(({
174
- onPress,
175
- shouldSetSource,
176
- shouldSetDestination
177
- } = {}) => {
178
- "worklet";
179
-
180
- if (!sharedBoundTag) {
181
- if (onPress) scheduleOnRN(onPress);
182
- return;
183
- }
184
- const sourcePairKey = createPendingPairKey(currentScreenKey);
185
- const destinationPairKey = previousScreenKey ? createScreenPairKey(previousScreenKey, currentScreenKey) : undefined;
186
- const pendingSourcePairKey = previousScreenKey ? createPendingPairKey(previousScreenKey) : undefined;
187
- if (shouldSetSource && isAnimating.get()) {
188
- const existing = getEntry(sharedBoundTag, currentScreenKey);
189
- if (existing?.bounds) {
190
- applyMeasuredBoundsWrites({
191
- entryTag: sharedBoundTag,
192
- linkId: sharedBoundTag,
193
- currentScreenKey,
194
- measured: existing.bounds,
195
- preparedStyles,
196
- linkWrite: {
197
- type: "source",
198
- pairKey: sourcePairKey
199
- }
200
- });
201
- }
202
- if (onPress) scheduleOnRN(onPress);
203
- return;
204
- }
205
- const hasPendingSource = pendingSourcePairKey ? getSource(pendingSourcePairKey, sharedBoundTag) !== null : false;
206
- const hasSource = getSource(sourcePairKey, sharedBoundTag) !== null || (destinationPairKey ? getSource(destinationPairKey, sharedBoundTag) !== null : false);
207
- const hasDestination = destinationPairKey ? getDestination(destinationPairKey, sharedBoundTag) !== null : false;
208
- const wantsSetSource = !!shouldSetSource;
209
- const wantsSetDestination = !!shouldSetDestination;
210
- const wantsSnapshotOnly = !wantsSetSource && !wantsSetDestination;
211
- const canSetSource = wantsSetSource;
212
- const canSetDestination = wantsSetDestination && (hasPendingSource || hasSource);
213
- const canSnapshotOnly = wantsSnapshotOnly && (hasPendingSource || hasSource || hasDestination);
214
- if (!canSetSource && !canSetDestination && !canSnapshotOnly) {
215
- if (onPress) scheduleOnRN(onPress);
216
- return;
217
- }
218
- const measured = measure(animatedRef);
219
- if (!measured) {
220
- if (onPress) scheduleOnRN(onPress);
221
- return;
222
- }
223
- emitUpdate();
224
- applyMeasuredBoundsWrites({
225
- entryTag: sharedBoundTag,
226
- linkId: sharedBoundTag,
227
- currentScreenKey,
228
- measured,
229
- preparedStyles,
230
- linkWrite: canSetSource ? {
231
- type: "source",
232
- pairKey: sourcePairKey
233
- } : canSetDestination && destinationPairKey ? {
234
- type: "destination",
235
- pairKey: destinationPairKey
236
- } : undefined
237
- });
238
- if (canSetSource && canSetDestination && destinationPairKey) {
239
- applyMeasuredBoundsWrites({
240
- entryTag: sharedBoundTag,
241
- linkId: sharedBoundTag,
242
- currentScreenKey,
243
- measured,
244
- preparedStyles,
245
- linkWrite: {
246
- type: "destination",
247
- pairKey: destinationPairKey
248
- }
249
- });
250
- }
251
- if (onPress) scheduleOnRN(onPress);
252
- });
253
- const handleInitialLayout = useInitialLayoutHandler({
254
- sharedBoundTag,
255
- currentScreenKey,
256
- ancestorKeys,
257
- maybeMeasureAndStore
258
- });
259
-
260
- // Side effects
261
- const {
262
- markSourceCaptured
263
- } = useBlurMeasurement({
264
- enabled: !onPress,
265
- sharedBoundTag,
266
- selectedRouteId: selectedNextRouteId,
267
- maybeMeasureAndStore,
268
- ancestorKeys
269
- });
270
- useParentSyncReaction({
271
- parentContext,
272
- maybeMeasureAndStore
273
- });
274
- const captureActiveOnPress = useStableCallback(() => {
275
- if (!sharedBoundTag) {
276
- onPress?.();
277
- return;
278
- }
279
- scheduleOnUI(maybeMeasureAndStore, {
280
- onPress,
281
- shouldSetSource: true
282
- });
283
- markSourceCaptured();
284
- });
285
- return {
286
- value: {
287
- updateSignal
288
- },
289
- children: /*#__PURE__*/_jsx(_Fragment, {
290
- children: children({
291
- handleInitialLayout,
292
- captureActiveOnPress
293
- })
294
- })
295
- };
296
- });
297
-
298
- /**
299
- * Legacy bounds registration provider used by transition-aware components.
300
- *
301
- * @deprecated Prefer the newer bounds system (`Transition.Boundary`, `bounds()`,
302
- * and navigation-style bounds helpers) for new code. This provider remains only
303
- * for backwards compatibility with the older shared-bound-tag registration path.
304
- */
305
- const RegisterBoundsProvider = registerBoundsBundle.RegisterBoundsProvider;
306
- useRegisterBoundsContext = registerBoundsBundle.useRegisterBoundsContext;
307
- export { RegisterBoundsProvider };
308
- //# sourceMappingURL=register-bounds.provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useFocusEffect","useCallback","useMemo","useRef","measure","useAnimatedReaction","useSharedValue","scheduleOnRN","scheduleOnUI","useStableCallback","useStableCallbackValue","AnimationStore","createPendingPairKey","createScreenPairKey","getEntry","getDestination","getSource","prepareStyleForBounds","createProvider","applyMeasuredBoundsWrites","useDescriptorDerivations","useDescriptors","Fragment","_Fragment","jsx","_jsx","getRouteParamId","route","params","rawId","id","matchesSelectionTag","tag","selectedId","endsWith","useInitialLayoutHandler","sharedBoundTag","currentScreenKey","ancestorKeys","maybeMeasureAndStore","isAnimating","getValue","ancestorAnimations","map","key","hasMeasuredOnLayout","get","isAnyAnimating","i","length","shouldSetSource","shouldSetDestination","set","useBlurMeasurement","current","enabled","selectedRouteId","hasCapturedSource","ancestorClosing","maybeMeasureOnBlur","closing","markSourceCaptured","useParentSyncReaction","parentContext","updateSignal","value","undefined","useRegisterBoundsContext","registerBoundsBundle","guarded","style","onPress","animatedRef","children","next","previousScreenKey","selectedNextRouteId","ownSignal","preparedStyles","emitUpdate","isRoot","sourcePairKey","destinationPairKey","pendingSourcePairKey","existing","bounds","entryTag","linkId","measured","linkWrite","type","pairKey","hasPendingSource","hasSource","hasDestination","wantsSetSource","wantsSetDestination","wantsSnapshotOnly","canSetSource","canSetDestination","canSnapshotOnly","handleInitialLayout","captureActiveOnPress","RegisterBoundsProvider"],"sourceRoot":"../../../src","sources":["providers/register-bounds.provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- import { StyleSheet } from "react-native";
4
- import Animated, { useAnimatedRef } from "react-native-reanimated";
5
- import createProvider from "../../utils/create-provider";
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- export const {
8
- OriginProvider,
9
- useOriginContext
10
- } = createProvider("Origin", {
11
- guarded: true
12
- })(({
13
- children
14
- }) => {
15
- const originRef = useAnimatedRef();
16
- return {
17
- value: {
18
- originRef
19
- },
20
- children: /*#__PURE__*/_jsx(Animated.View, {
21
- style: styles.container,
22
- collapsable: false,
23
- ref: originRef,
24
- children: children
25
- })
26
- };
27
- });
28
- const styles = StyleSheet.create({
29
- container: {
30
- flex: 1
31
- }
32
- });
33
- //# sourceMappingURL=origin.provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["StyleSheet","Animated","useAnimatedRef","createProvider","jsx","_jsx","OriginProvider","useOriginContext","guarded","children","originRef","value","View","style","styles","container","collapsable","ref","create","flex"],"sourceRoot":"../../../../src","sources":["providers/screen/origin.provider.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAmB,cAAc;AACpD,OAAOC,QAAQ,IAEdC,cAAc,QACR,yBAAyB;AAChC,OAAOC,cAAc,MAAM,6BAA6B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASzD,OAAO,MAAM;EAAEC,cAAc;EAAEC;AAAiB,CAAC,GAAGJ,cAAc,CAAC,QAAQ,EAAE;EAC5EK,OAAO,EAAE;AACV,CAAC,CAAC,CAAsB,CAAC;EAAEC;AAAS,CAAC,KAAK;EACzC,MAAMC,SAAS,GAAGR,cAAc,CAAO,CAAC;EAExC,OAAO;IACNS,KAAK,EAAE;MACND;IACD,CAAC;IACDD,QAAQ,eACPJ,IAAA,CAACJ,QAAQ,CAACW,IAAI;MACbC,KAAK,EAAEC,MAAM,CAACC,SAAU;MACxBC,WAAW,EAAE,KAAM;MACnBC,GAAG,EAAEP,SAAU;MAAAD,QAAA,EAEdA;IAAQ,CACK;EAEjB,CAAC;AACF,CAAC,CAAC;AAEF,MAAMK,MAAM,GAAGd,UAAU,CAACkB,MAAM,CAAC;EAChCH,SAAS,EAAE;IAAEI,IAAI,EAAE;EAAE;AACtB,CAAC,CAAC","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- export declare const createBoundaryPortalHostName: (hostKey: string, boundaryId: string, pairKey?: string | null) => string;
2
- //# sourceMappingURL=host-name.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-name.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/boundary/portal/components/boundary-portal/helpers/host-name.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4BAA4B,GACxC,SAAS,MAAM,EACf,YAAY,MAAM,EAClB,UAAU,MAAM,GAAG,IAAI,WAIvB,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { LinkPairsState, ScreenKey, ScreenPairKey } from "../../../../stores/bounds/types";
2
- type ResolveEnteringHandoffTargetParams = {
3
- animationProgress: number;
4
- boundaryId: string;
5
- currentScreenKey: ScreenKey;
6
- pairsState: LinkPairsState;
7
- sourcePairKey?: ScreenPairKey;
8
- };
9
- /** Resolve only the immediate A -> B entering handoff. */
10
- export declare const resolveEnteringHandoffTarget: ({ animationProgress, boundaryId, currentScreenKey, pairsState, sourcePairKey, }: ResolveEnteringHandoffTargetParams) => ScreenKey | null;
11
- export {};
12
- //# sourceMappingURL=handoff-target.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handoff-target.d.ts","sourceRoot":"","sources":["../../../../../../src/components/boundary/portal/utils/handoff-target.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,cAAc,EACd,SAAS,EACT,aAAa,EACb,MAAM,iCAAiC,CAAC;AAEzC,KAAK,kCAAkC,GAAG;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,4BAA4B,GAAI,iFAM1C,kCAAkC,KAAG,SAAS,GAAG,IAyBnD,CAAC"}
@@ -1,13 +0,0 @@
1
- type AnyFunction = (...args: Array<any>) => any;
2
- /** Creates a stable worklet callback that can be called from the UI runtime
3
- * @param callback The JavaScript or worklet function to be called
4
- * @returns A worklet function that can be safely called from the UI thread
5
- * @default Behavior:
6
- * - If passed a regular JS function, schedules it on the JS thread
7
- * - If passed a worklet function, calls it directly on the UI thread
8
- * @important The returned function maintains a stable reference and properly handles
9
- * thread execution based on the input callback type
10
- */
11
- export default function useStableCallbackValue<C extends AnyFunction>(callback?: C): (...args: Parameters<C>) => void;
12
- export {};
13
- //# sourceMappingURL=use-stable-callback-value.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-stable-callback-value.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-stable-callback-value.ts"],"names":[],"mappings":"AAQA,KAAK,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;AAkChD;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,CAAC,SAAS,WAAW,EACnE,QAAQ,CAAC,EAAE,CAAC,aAaD,UAAU,CAAC,CAAC,CAAC,UAMxB"}
@@ -1,25 +0,0 @@
1
- import { type ReactNode } from "react";
2
- import type { View } from "react-native";
3
- import { type AnimatedRef, type StyleProps } from "react-native-reanimated";
4
- interface RegisterBoundsRenderProps {
5
- handleInitialLayout: () => void;
6
- captureActiveOnPress: () => void;
7
- }
8
- interface RegisterBoundsProviderProps {
9
- sharedBoundTag?: string;
10
- animatedRef: AnimatedRef<View>;
11
- style: StyleProps;
12
- onPress?: ((...args: unknown[]) => void) | undefined;
13
- remeasureOnFocus?: boolean;
14
- children: (props: RegisterBoundsRenderProps) => ReactNode;
15
- }
16
- /**
17
- * Legacy bounds registration provider used by transition-aware components.
18
- *
19
- * @deprecated Prefer the newer bounds system (`Transition.Boundary`, `bounds()`,
20
- * and navigation-style bounds helpers) for new code. This provider remains only
21
- * for backwards compatibility with the older shared-bound-tag registration path.
22
- */
23
- declare const RegisterBoundsProvider: import("react").FC<RegisterBoundsProviderProps>;
24
- export { RegisterBoundsProvider };
25
- //# sourceMappingURL=register-bounds.provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register-bounds.provider.d.ts","sourceRoot":"","sources":["../../../src/providers/register-bounds.provider.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAgC,MAAM,OAAO,CAAC;AACrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACN,KAAK,WAAW,EAEhB,KAAK,UAAU,EAGf,MAAM,yBAAyB,CAAC;AA4BjC,UAAU,yBAAyB;IAClC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,oBAAoB,EAAE,MAAM,IAAI,CAAC;CACjC;AAED,UAAU,2BAA2B;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,SAAS,CAAC;CAC1D;AAqVD;;;;;;GAMG;AACH,QAAA,MAAM,sBAAsB,iDAA8C,CAAC;AAG3E,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -1,11 +0,0 @@
1
- import { type View } from "react-native";
2
- import { type AnimatedRef } from "react-native-reanimated";
3
- interface Props {
4
- children: React.ReactNode;
5
- }
6
- interface ContextValue {
7
- originRef: AnimatedRef<View>;
8
- }
9
- export declare const OriginProvider: import("react").FC<Props>, useOriginContext: () => ContextValue;
10
- export {};
11
- //# sourceMappingURL=origin.provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"origin.provider.d.ts","sourceRoot":"","sources":["../../../../src/providers/screen/origin.provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;AACrD,OAAiB,EAChB,KAAK,WAAW,EAEhB,MAAM,yBAAyB,CAAC;AAGjC,UAAU,KAAK;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AACD,UAAU,YAAY;IACrB,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,eAAO,MAAQ,cAAc,6BAAE,gBAAgB,oBAmB7C,CAAC"}
@@ -1,10 +0,0 @@
1
- const BOUNDARY_PORTAL_HOST_NAME_SUFFIX = "-portal-host";
2
-
3
- export const createBoundaryPortalHostName = (
4
- hostKey: string,
5
- boundaryId: string,
6
- pairKey?: string | null,
7
- ) => {
8
- "worklet";
9
- return `${hostKey}-${pairKey ? `${pairKey}-` : ""}${boundaryId}${BOUNDARY_PORTAL_HOST_NAME_SUFFIX}`;
10
- };
@@ -1,48 +0,0 @@
1
- import { getLinkKeyFromTag } from "../../../../stores/bounds/helpers/link-pairs.helpers";
2
- import type {
3
- LinkPairsState,
4
- ScreenKey,
5
- ScreenPairKey,
6
- } from "../../../../stores/bounds/types";
7
-
8
- type ResolveEnteringHandoffTargetParams = {
9
- animationProgress: number;
10
- boundaryId: string;
11
- currentScreenKey: ScreenKey;
12
- pairsState: LinkPairsState;
13
- sourcePairKey?: ScreenPairKey;
14
- };
15
-
16
- /** Resolve only the immediate A -> B entering handoff. */
17
- export const resolveEnteringHandoffTarget = ({
18
- animationProgress,
19
- boundaryId,
20
- currentScreenKey,
21
- pairsState,
22
- sourcePairKey,
23
- }: ResolveEnteringHandoffTargetParams): ScreenKey | null => {
24
- "worklet";
25
-
26
- if (!sourcePairKey || animationProgress <= 0) {
27
- return null;
28
- }
29
-
30
- const pair = pairsState[sourcePairKey];
31
- const linkKey = getLinkKeyFromTag(boundaryId);
32
- const link = pair?.links[linkKey];
33
-
34
- if (
35
- link?.status !== "complete" ||
36
- link.source.screenKey !== currentScreenKey ||
37
- !link.source.handoff ||
38
- !link.destination.handoff
39
- ) {
40
- return null;
41
- }
42
-
43
- if (link.group && pair.groups[link.group]?.activeId !== linkKey) {
44
- return null;
45
- }
46
-
47
- return link.destination.screenKey;
48
- };
@@ -1,72 +0,0 @@
1
- /**
2
- * Credit:
3
- * https://github.com/MatiPl01/react-native-sortables/blob/main/packages/react-native-sortables/src/integrations/reanimated/hooks/useStableCallbackValue.ts
4
- */
5
- import { useCallback, useEffect, useState } from "react";
6
- import { cancelAnimation, makeMutable } from "react-native-reanimated";
7
- import { isWorkletFunction, scheduleOnRN } from "react-native-worklets";
8
-
9
- type AnyFunction = (...args: Array<any>) => any;
10
-
11
- function useMutableValue<T>(initialValue: T) {
12
- const [mutable] = useState(() => makeMutable(initialValue));
13
-
14
- useEffect(() => {
15
- return () => {
16
- cancelAnimation(mutable);
17
- };
18
- }, [mutable]);
19
-
20
- return mutable;
21
- }
22
-
23
- // We cannot store a function as a SharedValue because reanimated will treat
24
- // it as an animation and will try to execute the animation when assigned
25
- // to the SharedValue. Since we want the function to be treated as a value,
26
- // we wrap it in an object and store the object in the SharedValue.
27
- type WrappedCallback<C extends AnyFunction> = {
28
- call: C;
29
- };
30
-
31
- const wrap = <C extends AnyFunction>(callback: C): WrappedCallback<C> => {
32
- if (isWorkletFunction(callback)) {
33
- return { call: callback };
34
- }
35
- return {
36
- call: ((...args: Parameters<C>) => {
37
- "worklet";
38
- scheduleOnRN(callback, ...args);
39
- }) as C,
40
- };
41
- };
42
-
43
- /** Creates a stable worklet callback that can be called from the UI runtime
44
- * @param callback The JavaScript or worklet function to be called
45
- * @returns A worklet function that can be safely called from the UI thread
46
- * @default Behavior:
47
- * - If passed a regular JS function, schedules it on the JS thread
48
- * - If passed a worklet function, calls it directly on the UI thread
49
- * @important The returned function maintains a stable reference and properly handles
50
- * thread execution based on the input callback type
51
- */
52
- export default function useStableCallbackValue<C extends AnyFunction>(
53
- callback?: C,
54
- ) {
55
- const stableCallback = useMutableValue<null | WrappedCallback<C>>(null);
56
-
57
- useEffect(() => {
58
- if (callback) {
59
- stableCallback.set(wrap(callback));
60
- } else {
61
- stableCallback.set(null);
62
- }
63
- }, [callback, stableCallback]);
64
-
65
- return useCallback(
66
- (...args: Parameters<C>) => {
67
- "worklet";
68
- stableCallback.get()?.call(...args);
69
- },
70
- [stableCallback],
71
- );
72
- }