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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (485) hide show
  1. package/lib/commonjs/blank-stack/components/stack-view.js +2 -1
  2. package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -1
  3. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/components/boundary-target.js +21 -8
  4. package/lib/commonjs/shared/components/boundary/components/boundary-target.js.map +1 -0
  5. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/create-boundary-component.js +10 -24
  6. package/lib/commonjs/shared/components/boundary/create-boundary-component.js.map +1 -0
  7. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-presence.js.map +1 -0
  8. package/lib/commonjs/shared/components/boundary/hooks/use-initial-destination-measurement.js +115 -0
  9. package/lib/commonjs/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +1 -0
  10. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.js +4 -5
  11. package/lib/commonjs/shared/components/boundary/hooks/use-initial-source-measurement.js.map +1 -0
  12. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.js +26 -22
  13. package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js.map +1 -0
  14. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/hooks/use-refresh-boundary.js +10 -7
  15. package/lib/commonjs/shared/components/boundary/hooks/use-refresh-boundary.js.map +1 -0
  16. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/index.js +8 -1
  17. package/lib/commonjs/shared/components/boundary/index.js.map +1 -0
  18. package/lib/commonjs/shared/components/boundary/portal/components/host.js +99 -0
  19. package/lib/commonjs/shared/components/boundary/portal/components/host.js.map +1 -0
  20. package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js +68 -0
  21. package/lib/commonjs/shared/components/boundary/portal/components/portal-boundary-host.js.map +1 -0
  22. package/lib/commonjs/shared/components/boundary/portal/components/portal-provider.js +17 -0
  23. package/lib/commonjs/shared/components/boundary/portal/components/portal-provider.js.map +1 -0
  24. package/lib/commonjs/shared/components/boundary/portal/components/portal.js +195 -0
  25. package/lib/commonjs/shared/components/boundary/portal/components/portal.js.map +1 -0
  26. package/lib/commonjs/shared/components/boundary/portal/hooks/use-host-measurement.js +74 -0
  27. package/lib/commonjs/shared/components/boundary/portal/hooks/use-host-measurement.js.map +1 -0
  28. package/lib/commonjs/shared/components/boundary/portal/index.js +27 -0
  29. package/lib/commonjs/shared/components/boundary/portal/index.js.map +1 -0
  30. package/lib/commonjs/shared/components/boundary/portal/stores/host-bounds.store.js +47 -0
  31. package/lib/commonjs/shared/components/boundary/portal/stores/host-bounds.store.js.map +1 -0
  32. package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js +137 -0
  33. package/lib/commonjs/shared/components/boundary/portal/stores/host-registry.store.js.map +1 -0
  34. package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js +60 -0
  35. package/lib/commonjs/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -0
  36. package/lib/commonjs/shared/components/boundary/portal/utils/attachment.js +40 -0
  37. package/lib/commonjs/shared/components/boundary/portal/utils/attachment.js.map +1 -0
  38. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js +15 -0
  39. package/lib/commonjs/shared/components/boundary/portal/utils/naming.js.map +1 -0
  40. package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js +71 -0
  41. package/lib/commonjs/shared/components/boundary/portal/utils/offset-style.js.map +1 -0
  42. package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js +16 -0
  43. package/lib/commonjs/shared/components/boundary/portal/utils/teleport-control.js.map +1 -0
  44. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/providers/boundary-owner.provider.js +26 -25
  45. package/lib/commonjs/shared/components/boundary/providers/boundary-owner.provider.js.map +1 -0
  46. package/lib/commonjs/shared/components/boundary/types.js.map +1 -0
  47. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js +25 -0
  48. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js.map +1 -0
  49. package/lib/commonjs/shared/components/{create-boundary-component → boundary}/utils/measured-bounds.js +19 -9
  50. package/lib/commonjs/shared/components/boundary/utils/measured-bounds.js.map +1 -0
  51. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js +105 -0
  52. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js.map +1 -0
  53. package/lib/commonjs/shared/components/boundary/utils/source-signals.js +48 -0
  54. package/lib/commonjs/shared/components/boundary/utils/source-signals.js.map +1 -0
  55. package/lib/commonjs/shared/components/create-transition-aware-component.js +8 -3
  56. package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
  57. package/lib/commonjs/shared/components/{integrations/masked-view.js → masked-view.js} +2 -2
  58. package/lib/commonjs/shared/components/masked-view.js.map +1 -0
  59. package/lib/commonjs/shared/components/screen-container/layers/content.js +9 -5
  60. package/lib/commonjs/shared/components/screen-container/layers/content.js.map +1 -1
  61. package/lib/commonjs/shared/configs/presets.js +6 -6
  62. package/lib/commonjs/shared/configs/presets.js.map +1 -1
  63. package/lib/commonjs/shared/index.js +4 -4
  64. package/lib/commonjs/shared/index.js.map +1 -1
  65. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js +4 -2
  66. package/lib/commonjs/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  67. package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js +7 -3
  68. package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  69. package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +8 -1
  70. package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
  71. package/lib/commonjs/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js +21 -6
  72. package/lib/commonjs/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +1 -1
  73. package/lib/commonjs/shared/providers/screen/origin.provider.js +41 -0
  74. package/lib/commonjs/shared/providers/screen/origin.provider.js.map +1 -0
  75. package/lib/commonjs/shared/providers/screen/styles/constants.js +2 -0
  76. package/lib/commonjs/shared/providers/screen/styles/constants.js.map +1 -1
  77. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js +58 -0
  78. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js.map +1 -0
  79. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +7 -0
  80. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  81. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -1
  82. package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  83. package/lib/commonjs/shared/providers/screen/styles/styles.provider.js +7 -5
  84. package/lib/commonjs/shared/providers/screen/styles/styles.provider.js.map +1 -1
  85. package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js +1 -10
  86. package/lib/commonjs/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
  87. package/lib/commonjs/shared/stores/bounds/index.js.map +1 -1
  88. package/lib/commonjs/shared/stores/bounds/internals/entries.js.map +1 -1
  89. package/lib/commonjs/shared/stores/bounds/internals/links.js +36 -19
  90. package/lib/commonjs/shared/stores/bounds/internals/links.js.map +1 -1
  91. package/lib/commonjs/shared/stores/bounds/internals/resolver.js +6 -4
  92. package/lib/commonjs/shared/stores/bounds/internals/resolver.js.map +1 -1
  93. package/lib/commonjs/shared/stores/bounds/internals/state.js.map +1 -1
  94. package/lib/commonjs/shared/stores/scroll.store.js +54 -1
  95. package/lib/commonjs/shared/stores/scroll.store.js.map +1 -1
  96. package/lib/commonjs/shared/utils/bounds/helpers/create-bound-tag.js +38 -4
  97. package/lib/commonjs/shared/utils/bounds/helpers/create-bound-tag.js.map +1 -1
  98. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js +40 -87
  99. package/lib/commonjs/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  100. package/lib/commonjs/shared/utils/bounds/helpers/create-link-accessor.js +6 -67
  101. package/lib/commonjs/shared/utils/bounds/helpers/create-link-accessor.js.map +1 -1
  102. package/lib/commonjs/shared/utils/bounds/helpers/prepare-bound-styles.js +8 -12
  103. package/lib/commonjs/shared/utils/bounds/helpers/prepare-bound-styles.js.map +1 -1
  104. package/lib/commonjs/shared/utils/bounds/helpers/styles/composers.js +235 -68
  105. package/lib/commonjs/shared/utils/bounds/helpers/styles/composers.js.map +1 -1
  106. package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js +74 -4
  107. package/lib/commonjs/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
  108. package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js +5 -9
  109. package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
  110. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js +5 -10
  111. package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  112. package/lib/module/blank-stack/components/stack-view.js +3 -2
  113. package/lib/module/blank-stack/components/stack-view.js.map +1 -1
  114. package/lib/module/shared/components/{create-boundary-component → boundary}/components/boundary-target.js +21 -8
  115. package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -0
  116. package/lib/module/shared/components/{create-boundary-component → boundary}/create-boundary-component.js +11 -25
  117. package/lib/module/shared/components/boundary/create-boundary-component.js.map +1 -0
  118. package/lib/module/shared/components/boundary/hooks/use-boundary-presence.js.map +1 -0
  119. package/lib/module/shared/components/boundary/hooks/use-initial-destination-measurement.js +110 -0
  120. package/lib/module/shared/components/boundary/hooks/use-initial-destination-measurement.js.map +1 -0
  121. package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.js +4 -5
  122. package/lib/module/shared/components/boundary/hooks/use-initial-source-measurement.js.map +1 -0
  123. package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.js +27 -23
  124. package/lib/module/shared/components/boundary/hooks/use-measurer.js.map +1 -0
  125. package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-refresh-boundary.js +10 -7
  126. package/lib/module/shared/components/boundary/hooks/use-refresh-boundary.js.map +1 -0
  127. package/lib/module/shared/components/{create-boundary-component → boundary}/index.js +8 -1
  128. package/lib/module/shared/components/boundary/index.js.map +1 -0
  129. package/lib/module/shared/components/boundary/portal/components/host.js +94 -0
  130. package/lib/module/shared/components/boundary/portal/components/host.js.map +1 -0
  131. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js +63 -0
  132. package/lib/module/shared/components/boundary/portal/components/portal-boundary-host.js.map +1 -0
  133. package/lib/module/shared/components/boundary/portal/components/portal-provider.js +13 -0
  134. package/lib/module/shared/components/boundary/portal/components/portal-provider.js.map +1 -0
  135. package/lib/module/shared/components/boundary/portal/components/portal.js +190 -0
  136. package/lib/module/shared/components/boundary/portal/components/portal.js.map +1 -0
  137. package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js +69 -0
  138. package/lib/module/shared/components/boundary/portal/hooks/use-host-measurement.js.map +1 -0
  139. package/lib/module/shared/components/boundary/portal/index.js +6 -0
  140. package/lib/module/shared/components/boundary/portal/index.js.map +1 -0
  141. package/lib/module/shared/components/boundary/portal/stores/host-bounds.store.js +40 -0
  142. package/lib/module/shared/components/boundary/portal/stores/host-bounds.store.js.map +1 -0
  143. package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js +126 -0
  144. package/lib/module/shared/components/boundary/portal/stores/host-registry.store.js.map +1 -0
  145. package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js +53 -0
  146. package/lib/module/shared/components/boundary/portal/stores/portal-boundary-host.store.js.map +1 -0
  147. package/lib/module/shared/components/boundary/portal/utils/attachment.js +35 -0
  148. package/lib/module/shared/components/boundary/portal/utils/attachment.js.map +1 -0
  149. package/lib/module/shared/components/boundary/portal/utils/naming.js +10 -0
  150. package/lib/module/shared/components/boundary/portal/utils/naming.js.map +1 -0
  151. package/lib/module/shared/components/boundary/portal/utils/offset-style.js +66 -0
  152. package/lib/module/shared/components/boundary/portal/utils/offset-style.js.map +1 -0
  153. package/lib/module/shared/components/boundary/portal/utils/teleport-control.js +11 -0
  154. package/lib/module/shared/components/boundary/portal/utils/teleport-control.js.map +1 -0
  155. package/lib/module/shared/components/boundary/providers/boundary-owner.provider.js +60 -0
  156. package/lib/module/shared/components/boundary/providers/boundary-owner.provider.js.map +1 -0
  157. package/lib/module/shared/components/boundary/types.js.map +1 -0
  158. package/lib/module/shared/components/boundary/utils/destination-signals.js +20 -0
  159. package/lib/module/shared/components/boundary/utils/destination-signals.js.map +1 -0
  160. package/lib/module/shared/components/{create-boundary-component → boundary}/utils/measured-bounds.js +16 -7
  161. package/lib/module/shared/components/boundary/utils/measured-bounds.js.map +1 -0
  162. package/lib/module/shared/components/boundary/utils/refresh-signals.js +100 -0
  163. package/lib/module/shared/components/boundary/utils/refresh-signals.js.map +1 -0
  164. package/lib/module/shared/components/boundary/utils/source-signals.js +43 -0
  165. package/lib/module/shared/components/boundary/utils/source-signals.js.map +1 -0
  166. package/lib/module/shared/components/create-transition-aware-component.js +8 -3
  167. package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
  168. package/lib/module/shared/components/{integrations/masked-view.js → masked-view.js} +2 -2
  169. package/lib/module/shared/components/masked-view.js.map +1 -0
  170. package/lib/module/shared/components/screen-container/layers/content.js +10 -6
  171. package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
  172. package/lib/module/shared/configs/presets.js +6 -6
  173. package/lib/module/shared/configs/presets.js.map +1 -1
  174. package/lib/module/shared/index.js +2 -2
  175. package/lib/module/shared/index.js.map +1 -1
  176. package/lib/module/shared/providers/helpers/measured-bounds-writes.js +4 -2
  177. package/lib/module/shared/providers/helpers/measured-bounds-writes.js.map +1 -1
  178. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js +8 -4
  179. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  180. package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +8 -1
  181. package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
  182. package/lib/module/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js +20 -6
  183. package/lib/module/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +1 -1
  184. package/lib/module/shared/providers/screen/origin.provider.js +33 -0
  185. package/lib/module/shared/providers/screen/origin.provider.js.map +1 -0
  186. package/lib/module/shared/providers/screen/styles/constants.js +2 -0
  187. package/lib/module/shared/providers/screen/styles/constants.js.map +1 -1
  188. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js +53 -0
  189. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.js.map +1 -0
  190. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js +1 -0
  191. package/lib/module/shared/providers/screen/styles/helpers/resolve-slot-styles/index.js.map +1 -1
  192. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -1
  193. package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
  194. package/lib/module/shared/providers/screen/styles/styles.provider.js +7 -5
  195. package/lib/module/shared/providers/screen/styles/styles.provider.js.map +1 -1
  196. package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js +1 -8
  197. package/lib/module/shared/stores/bounds/helpers/link-pairs.helpers.js.map +1 -1
  198. package/lib/module/shared/stores/bounds/index.js.map +1 -1
  199. package/lib/module/shared/stores/bounds/internals/entries.js.map +1 -1
  200. package/lib/module/shared/stores/bounds/internals/links.js +36 -19
  201. package/lib/module/shared/stores/bounds/internals/links.js.map +1 -1
  202. package/lib/module/shared/stores/bounds/internals/resolver.js +6 -4
  203. package/lib/module/shared/stores/bounds/internals/resolver.js.map +1 -1
  204. package/lib/module/shared/stores/bounds/internals/state.js.map +1 -1
  205. package/lib/module/shared/stores/scroll.store.js +50 -0
  206. package/lib/module/shared/stores/scroll.store.js.map +1 -1
  207. package/lib/module/shared/types/animation.types.js.map +1 -1
  208. package/lib/module/shared/types/bounds.types.js.map +1 -1
  209. package/lib/module/shared/utils/bounds/helpers/create-bound-tag.js +36 -3
  210. package/lib/module/shared/utils/bounds/helpers/create-bound-tag.js.map +1 -1
  211. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js +42 -89
  212. package/lib/module/shared/utils/bounds/helpers/create-bounds-accessor-core.js.map +1 -1
  213. package/lib/module/shared/utils/bounds/helpers/create-link-accessor.js +6 -67
  214. package/lib/module/shared/utils/bounds/helpers/create-link-accessor.js.map +1 -1
  215. package/lib/module/shared/utils/bounds/helpers/prepare-bound-styles.js +8 -13
  216. package/lib/module/shared/utils/bounds/helpers/prepare-bound-styles.js.map +1 -1
  217. package/lib/module/shared/utils/bounds/helpers/styles/composers.js +236 -69
  218. package/lib/module/shared/utils/bounds/helpers/styles/composers.js.map +1 -1
  219. package/lib/module/shared/utils/bounds/helpers/styles/compute.js +74 -4
  220. package/lib/module/shared/utils/bounds/helpers/styles/compute.js.map +1 -1
  221. package/lib/module/shared/utils/bounds/navigation/reveal/build.js +5 -9
  222. package/lib/module/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
  223. package/lib/module/shared/utils/bounds/navigation/zoom/build.js +5 -10
  224. package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
  225. package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
  226. package/lib/typescript/shared/components/boundary/components/boundary-target.d.ts.map +1 -0
  227. package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts.map +1 -0
  228. package/lib/typescript/shared/components/boundary/hooks/use-boundary-presence.d.ts.map +1 -0
  229. package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-initial-destination-measurement.d.ts +1 -4
  230. package/lib/typescript/shared/components/boundary/hooks/use-initial-destination-measurement.d.ts.map +1 -0
  231. package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.d.ts +0 -2
  232. package/lib/typescript/shared/components/boundary/hooks/use-initial-source-measurement.d.ts.map +1 -0
  233. package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.d.ts +4 -2
  234. package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts.map +1 -0
  235. package/lib/typescript/shared/components/boundary/hooks/use-refresh-boundary.d.ts +10 -0
  236. package/lib/typescript/shared/components/boundary/hooks/use-refresh-boundary.d.ts.map +1 -0
  237. package/lib/typescript/shared/components/{create-boundary-component → boundary}/index.d.ts +8 -2
  238. package/lib/typescript/shared/components/boundary/index.d.ts.map +1 -0
  239. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts +7 -0
  240. package/lib/typescript/shared/components/boundary/portal/components/host.d.ts.map +1 -0
  241. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts +9 -0
  242. package/lib/typescript/shared/components/boundary/portal/components/portal-boundary-host.d.ts.map +1 -0
  243. package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts +4 -0
  244. package/lib/typescript/shared/components/boundary/portal/components/portal-provider.d.ts.map +1 -0
  245. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts +19 -0
  246. package/lib/typescript/shared/components/boundary/portal/components/portal.d.ts.map +1 -0
  247. package/lib/typescript/shared/components/boundary/portal/hooks/use-host-measurement.d.ts +13 -0
  248. package/lib/typescript/shared/components/boundary/portal/hooks/use-host-measurement.d.ts.map +1 -0
  249. package/lib/typescript/shared/components/boundary/portal/index.d.ts +4 -0
  250. package/lib/typescript/shared/components/boundary/portal/index.d.ts.map +1 -0
  251. package/lib/typescript/shared/components/boundary/portal/stores/host-bounds.store.d.ts +9 -0
  252. package/lib/typescript/shared/components/boundary/portal/stores/host-bounds.store.d.ts.map +1 -0
  253. package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts +19 -0
  254. package/lib/typescript/shared/components/boundary/portal/stores/host-registry.store.d.ts.map +1 -0
  255. package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts +11 -0
  256. package/lib/typescript/shared/components/boundary/portal/stores/portal-boundary-host.store.d.ts.map +1 -0
  257. package/lib/typescript/shared/components/boundary/portal/utils/attachment.d.ts +21 -0
  258. package/lib/typescript/shared/components/boundary/portal/utils/attachment.d.ts.map +1 -0
  259. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts +3 -0
  260. package/lib/typescript/shared/components/boundary/portal/utils/naming.d.ts.map +1 -0
  261. package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts +37 -0
  262. package/lib/typescript/shared/components/boundary/portal/utils/offset-style.d.ts.map +1 -0
  263. package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts +3 -0
  264. package/lib/typescript/shared/components/boundary/portal/utils/teleport-control.d.ts.map +1 -0
  265. package/lib/typescript/shared/components/{create-boundary-component → boundary}/providers/boundary-owner.provider.d.ts +14 -6
  266. package/lib/typescript/shared/components/boundary/providers/boundary-owner.provider.d.ts.map +1 -0
  267. package/lib/typescript/shared/components/boundary/types.d.ts +78 -0
  268. package/lib/typescript/shared/components/boundary/types.d.ts.map +1 -0
  269. package/lib/typescript/shared/components/{create-boundary-component → boundary}/utils/destination-signals.d.ts +2 -3
  270. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts.map +1 -0
  271. package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts +12 -0
  272. package/lib/typescript/shared/components/boundary/utils/measured-bounds.d.ts.map +1 -0
  273. package/lib/typescript/shared/components/{create-boundary-component → boundary}/utils/refresh-signals.d.ts +4 -3
  274. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts.map +1 -0
  275. package/lib/typescript/shared/components/{create-boundary-component → boundary}/utils/source-signals.d.ts +1 -2
  276. package/lib/typescript/shared/components/boundary/utils/source-signals.d.ts.map +1 -0
  277. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  278. package/lib/typescript/shared/components/masked-view.d.ts.map +1 -0
  279. package/lib/typescript/shared/components/screen-container/layers/content.d.ts.map +1 -1
  280. package/lib/typescript/shared/configs/presets.d.ts.map +1 -1
  281. package/lib/typescript/shared/index.d.ts +19 -17
  282. package/lib/typescript/shared/index.d.ts.map +1 -1
  283. package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts +3 -1
  284. package/lib/typescript/shared/providers/helpers/measured-bounds-writes.d.ts.map +1 -1
  285. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  286. package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts +6 -1
  287. package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts.map +1 -1
  288. package/lib/typescript/shared/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts +9 -3
  289. package/lib/typescript/shared/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts.map +1 -1
  290. package/lib/typescript/shared/providers/screen/origin.provider.d.ts +11 -0
  291. package/lib/typescript/shared/providers/screen/origin.provider.d.ts.map +1 -0
  292. package/lib/typescript/shared/providers/screen/styles/constants.d.ts.map +1 -1
  293. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.d.ts +3 -0
  294. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.d.ts.map +1 -0
  295. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts +1 -0
  296. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-slot-styles/index.d.ts.map +1 -1
  297. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +1 -0
  298. package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
  299. package/lib/typescript/shared/providers/screen/styles/styles.provider.d.ts +1 -0
  300. package/lib/typescript/shared/providers/screen/styles/styles.provider.d.ts.map +1 -1
  301. package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts +1 -3
  302. package/lib/typescript/shared/stores/bounds/helpers/link-pairs.helpers.d.ts.map +1 -1
  303. package/lib/typescript/shared/stores/bounds/index.d.ts +1 -1
  304. package/lib/typescript/shared/stores/bounds/index.d.ts.map +1 -1
  305. package/lib/typescript/shared/stores/bounds/internals/entries.d.ts +2 -2
  306. package/lib/typescript/shared/stores/bounds/internals/entries.d.ts.map +1 -1
  307. package/lib/typescript/shared/stores/bounds/internals/links.d.ts +2 -2
  308. package/lib/typescript/shared/stores/bounds/internals/links.d.ts.map +1 -1
  309. package/lib/typescript/shared/stores/bounds/internals/resolver.d.ts.map +1 -1
  310. package/lib/typescript/shared/stores/bounds/internals/state.d.ts +4 -2
  311. package/lib/typescript/shared/stores/bounds/internals/state.d.ts.map +1 -1
  312. package/lib/typescript/shared/stores/bounds/types.d.ts +47 -12
  313. package/lib/typescript/shared/stores/bounds/types.d.ts.map +1 -1
  314. package/lib/typescript/shared/stores/scroll.store.d.ts +12 -1
  315. package/lib/typescript/shared/stores/scroll.store.d.ts.map +1 -1
  316. package/lib/typescript/shared/types/animation.types.d.ts +13 -2
  317. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  318. package/lib/typescript/shared/types/bounds.types.d.ts +10 -40
  319. package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
  320. package/lib/typescript/shared/types/index.d.ts +2 -2
  321. package/lib/typescript/shared/types/index.d.ts.map +1 -1
  322. package/lib/typescript/shared/utils/bounds/helpers/create-bound-tag.d.ts +2 -1
  323. package/lib/typescript/shared/utils/bounds/helpers/create-bound-tag.d.ts.map +1 -1
  324. package/lib/typescript/shared/utils/bounds/helpers/create-bounds-accessor-core.d.ts +7 -11
  325. package/lib/typescript/shared/utils/bounds/helpers/create-bounds-accessor-core.d.ts.map +1 -1
  326. package/lib/typescript/shared/utils/bounds/helpers/create-link-accessor.d.ts +0 -3
  327. package/lib/typescript/shared/utils/bounds/helpers/create-link-accessor.d.ts.map +1 -1
  328. package/lib/typescript/shared/utils/bounds/helpers/prepare-bound-styles.d.ts +7 -3
  329. package/lib/typescript/shared/utils/bounds/helpers/prepare-bound-styles.d.ts.map +1 -1
  330. package/lib/typescript/shared/utils/bounds/helpers/styles/composers.d.ts +3 -0
  331. package/lib/typescript/shared/utils/bounds/helpers/styles/composers.d.ts.map +1 -1
  332. package/lib/typescript/shared/utils/bounds/helpers/styles/compute.d.ts +1 -1
  333. package/lib/typescript/shared/utils/bounds/helpers/styles/compute.d.ts.map +1 -1
  334. package/lib/typescript/shared/utils/bounds/navigation/reveal/build.d.ts.map +1 -1
  335. package/lib/typescript/shared/utils/bounds/navigation/zoom/build.d.ts.map +1 -1
  336. package/lib/typescript/shared/utils/bounds/types/options.d.ts +93 -6
  337. package/lib/typescript/shared/utils/bounds/types/options.d.ts.map +1 -1
  338. package/package.json +3 -2
  339. package/src/blank-stack/components/stack-view.tsx +4 -3
  340. package/src/shared/components/{create-boundary-component → boundary}/components/boundary-target.tsx +28 -11
  341. package/src/shared/components/{create-boundary-component → boundary}/create-boundary-component.tsx +20 -31
  342. package/src/shared/components/boundary/hooks/use-initial-destination-measurement.ts +156 -0
  343. package/src/shared/components/{create-boundary-component → boundary}/hooks/use-initial-source-measurement.ts +5 -14
  344. package/src/shared/components/{create-boundary-component → boundary}/hooks/use-measurer.ts +42 -46
  345. package/src/shared/components/{create-boundary-component → boundary}/hooks/use-refresh-boundary.ts +16 -11
  346. package/src/shared/components/{create-boundary-component → boundary}/index.tsx +12 -0
  347. package/src/shared/components/boundary/portal/components/host.tsx +114 -0
  348. package/src/shared/components/boundary/portal/components/portal-boundary-host.tsx +90 -0
  349. package/src/shared/components/boundary/portal/components/portal-provider.tsx +10 -0
  350. package/src/shared/components/boundary/portal/components/portal.tsx +278 -0
  351. package/src/shared/components/boundary/portal/hooks/use-host-measurement.ts +102 -0
  352. package/src/shared/components/boundary/portal/index.ts +3 -0
  353. package/src/shared/components/boundary/portal/stores/host-bounds.store.ts +45 -0
  354. package/src/shared/components/boundary/portal/stores/host-registry.store.ts +182 -0
  355. package/src/shared/components/boundary/portal/stores/portal-boundary-host.store.ts +91 -0
  356. package/src/shared/components/boundary/portal/utils/attachment.ts +48 -0
  357. package/src/shared/components/boundary/portal/utils/naming.ts +10 -0
  358. package/src/shared/components/boundary/portal/utils/offset-style.ts +171 -0
  359. package/src/shared/components/boundary/portal/utils/teleport-control.ts +13 -0
  360. package/src/shared/components/{create-boundary-component → boundary}/providers/boundary-owner.provider.tsx +41 -33
  361. package/src/shared/components/boundary/types.ts +92 -0
  362. package/src/shared/components/boundary/utils/destination-signals.ts +31 -0
  363. package/src/shared/components/{create-boundary-component → boundary}/utils/measured-bounds.ts +34 -11
  364. package/src/shared/components/boundary/utils/refresh-signals.ts +175 -0
  365. package/src/shared/components/boundary/utils/source-signals.ts +63 -0
  366. package/src/shared/components/create-transition-aware-component.tsx +8 -3
  367. package/src/shared/components/{integrations/masked-view.tsx → masked-view.tsx} +2 -2
  368. package/src/shared/components/screen-container/layers/content.tsx +12 -7
  369. package/src/shared/configs/presets.ts +2 -6
  370. package/src/shared/index.ts +13 -5
  371. package/src/shared/providers/helpers/measured-bounds-writes.ts +11 -1
  372. package/src/shared/providers/screen/descriptors/descriptors.provider.tsx +7 -3
  373. package/src/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.ts +16 -0
  374. package/src/shared/providers/screen/descriptors/helpers/get-ancestor-keys.ts +31 -6
  375. package/src/shared/providers/screen/origin.provider.tsx +38 -0
  376. package/src/shared/providers/screen/styles/constants.ts +2 -0
  377. package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/are-resettable-states-equal.ts +74 -0
  378. package/src/shared/providers/screen/styles/helpers/resolve-slot-styles/index.ts +1 -0
  379. package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +1 -0
  380. package/src/shared/providers/screen/styles/styles.provider.tsx +5 -3
  381. package/src/shared/stores/bounds/helpers/link-pairs.helpers.ts +1 -10
  382. package/src/shared/stores/bounds/index.ts +2 -4
  383. package/src/shared/stores/bounds/internals/entries.ts +4 -4
  384. package/src/shared/stores/bounds/internals/links.ts +52 -18
  385. package/src/shared/stores/bounds/internals/resolver.ts +5 -3
  386. package/src/shared/stores/bounds/internals/state.ts +5 -2
  387. package/src/shared/stores/bounds/types.ts +59 -15
  388. package/src/shared/stores/scroll.store.ts +68 -0
  389. package/src/shared/types/animation.types.ts +17 -2
  390. package/src/shared/types/bounds.types.ts +22 -60
  391. package/src/shared/types/index.ts +5 -0
  392. package/src/shared/utils/bounds/helpers/create-bound-tag.ts +46 -4
  393. package/src/shared/utils/bounds/helpers/create-bounds-accessor-core.ts +65 -116
  394. package/src/shared/utils/bounds/helpers/create-link-accessor.ts +10 -80
  395. package/src/shared/utils/bounds/helpers/prepare-bound-styles.ts +10 -13
  396. package/src/shared/utils/bounds/helpers/styles/composers.ts +269 -46
  397. package/src/shared/utils/bounds/helpers/styles/compute.ts +134 -2
  398. package/src/shared/utils/bounds/navigation/reveal/build.ts +5 -7
  399. package/src/shared/utils/bounds/navigation/zoom/build.ts +5 -8
  400. package/src/shared/utils/bounds/types/options.ts +105 -6
  401. package/lib/commonjs/shared/components/create-boundary-component/components/boundary-target.js.map +0 -1
  402. package/lib/commonjs/shared/components/create-boundary-component/create-boundary-component.js.map +0 -1
  403. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-boundary-presence.js.map +0 -1
  404. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js +0 -99
  405. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js.map +0 -1
  406. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-source-measurement.js.map +0 -1
  407. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-measurer.js.map +0 -1
  408. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-refresh-boundary.js.map +0 -1
  409. package/lib/commonjs/shared/components/create-boundary-component/index.js.map +0 -1
  410. package/lib/commonjs/shared/components/create-boundary-component/providers/boundary-owner.provider.js.map +0 -1
  411. package/lib/commonjs/shared/components/create-boundary-component/types.js.map +0 -1
  412. package/lib/commonjs/shared/components/create-boundary-component/utils/destination-signals.js +0 -75
  413. package/lib/commonjs/shared/components/create-boundary-component/utils/destination-signals.js.map +0 -1
  414. package/lib/commonjs/shared/components/create-boundary-component/utils/measured-bounds.js.map +0 -1
  415. package/lib/commonjs/shared/components/create-boundary-component/utils/refresh-signals.js +0 -103
  416. package/lib/commonjs/shared/components/create-boundary-component/utils/refresh-signals.js.map +0 -1
  417. package/lib/commonjs/shared/components/create-boundary-component/utils/source-signals.js +0 -52
  418. package/lib/commonjs/shared/components/create-boundary-component/utils/source-signals.js.map +0 -1
  419. package/lib/commonjs/shared/components/integrations/masked-view.js.map +0 -1
  420. package/lib/commonjs/shared/utils/bounds/helpers/create-interpolators.js +0 -68
  421. package/lib/commonjs/shared/utils/bounds/helpers/create-interpolators.js.map +0 -1
  422. package/lib/commonjs/shared/utils/bounds/helpers/styles/interpolate-link-style.js +0 -30
  423. package/lib/commonjs/shared/utils/bounds/helpers/styles/interpolate-link-style.js.map +0 -1
  424. package/lib/module/shared/components/create-boundary-component/components/boundary-target.js.map +0 -1
  425. package/lib/module/shared/components/create-boundary-component/create-boundary-component.js.map +0 -1
  426. package/lib/module/shared/components/create-boundary-component/hooks/use-boundary-presence.js.map +0 -1
  427. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js +0 -94
  428. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js.map +0 -1
  429. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-source-measurement.js.map +0 -1
  430. package/lib/module/shared/components/create-boundary-component/hooks/use-measurer.js.map +0 -1
  431. package/lib/module/shared/components/create-boundary-component/hooks/use-refresh-boundary.js.map +0 -1
  432. package/lib/module/shared/components/create-boundary-component/index.js.map +0 -1
  433. package/lib/module/shared/components/create-boundary-component/providers/boundary-owner.provider.js +0 -60
  434. package/lib/module/shared/components/create-boundary-component/providers/boundary-owner.provider.js.map +0 -1
  435. package/lib/module/shared/components/create-boundary-component/types.js.map +0 -1
  436. package/lib/module/shared/components/create-boundary-component/utils/destination-signals.js +0 -70
  437. package/lib/module/shared/components/create-boundary-component/utils/destination-signals.js.map +0 -1
  438. package/lib/module/shared/components/create-boundary-component/utils/measured-bounds.js.map +0 -1
  439. package/lib/module/shared/components/create-boundary-component/utils/refresh-signals.js +0 -98
  440. package/lib/module/shared/components/create-boundary-component/utils/refresh-signals.js.map +0 -1
  441. package/lib/module/shared/components/create-boundary-component/utils/source-signals.js +0 -47
  442. package/lib/module/shared/components/create-boundary-component/utils/source-signals.js.map +0 -1
  443. package/lib/module/shared/components/integrations/masked-view.js.map +0 -1
  444. package/lib/module/shared/utils/bounds/helpers/create-interpolators.js +0 -63
  445. package/lib/module/shared/utils/bounds/helpers/create-interpolators.js.map +0 -1
  446. package/lib/module/shared/utils/bounds/helpers/styles/interpolate-link-style.js +0 -26
  447. package/lib/module/shared/utils/bounds/helpers/styles/interpolate-link-style.js.map +0 -1
  448. package/lib/typescript/shared/components/create-boundary-component/components/boundary-target.d.ts.map +0 -1
  449. package/lib/typescript/shared/components/create-boundary-component/create-boundary-component.d.ts.map +0 -1
  450. package/lib/typescript/shared/components/create-boundary-component/hooks/use-boundary-presence.d.ts.map +0 -1
  451. package/lib/typescript/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.d.ts.map +0 -1
  452. package/lib/typescript/shared/components/create-boundary-component/hooks/use-initial-source-measurement.d.ts.map +0 -1
  453. package/lib/typescript/shared/components/create-boundary-component/hooks/use-measurer.d.ts.map +0 -1
  454. package/lib/typescript/shared/components/create-boundary-component/hooks/use-refresh-boundary.d.ts +0 -14
  455. package/lib/typescript/shared/components/create-boundary-component/hooks/use-refresh-boundary.d.ts.map +0 -1
  456. package/lib/typescript/shared/components/create-boundary-component/index.d.ts.map +0 -1
  457. package/lib/typescript/shared/components/create-boundary-component/providers/boundary-owner.provider.d.ts.map +0 -1
  458. package/lib/typescript/shared/components/create-boundary-component/types.d.ts +0 -37
  459. package/lib/typescript/shared/components/create-boundary-component/types.d.ts.map +0 -1
  460. package/lib/typescript/shared/components/create-boundary-component/utils/destination-signals.d.ts.map +0 -1
  461. package/lib/typescript/shared/components/create-boundary-component/utils/measured-bounds.d.ts +0 -8
  462. package/lib/typescript/shared/components/create-boundary-component/utils/measured-bounds.d.ts.map +0 -1
  463. package/lib/typescript/shared/components/create-boundary-component/utils/refresh-signals.d.ts.map +0 -1
  464. package/lib/typescript/shared/components/create-boundary-component/utils/source-signals.d.ts.map +0 -1
  465. package/lib/typescript/shared/components/integrations/masked-view.d.ts.map +0 -1
  466. package/lib/typescript/shared/utils/bounds/helpers/create-interpolators.d.ts +0 -14
  467. package/lib/typescript/shared/utils/bounds/helpers/create-interpolators.d.ts.map +0 -1
  468. package/lib/typescript/shared/utils/bounds/helpers/styles/interpolate-link-style.d.ts +0 -17
  469. package/lib/typescript/shared/utils/bounds/helpers/styles/interpolate-link-style.d.ts.map +0 -1
  470. package/src/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.ts +0 -130
  471. package/src/shared/components/create-boundary-component/types.ts +0 -48
  472. package/src/shared/components/create-boundary-component/utils/destination-signals.ts +0 -129
  473. package/src/shared/components/create-boundary-component/utils/refresh-signals.ts +0 -164
  474. package/src/shared/components/create-boundary-component/utils/source-signals.ts +0 -72
  475. package/src/shared/utils/bounds/helpers/create-interpolators.ts +0 -117
  476. package/src/shared/utils/bounds/helpers/styles/interpolate-link-style.ts +0 -43
  477. /package/lib/commonjs/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.js +0 -0
  478. /package/lib/commonjs/shared/components/{create-boundary-component → boundary}/types.js +0 -0
  479. /package/lib/module/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.js +0 -0
  480. /package/lib/module/shared/components/{create-boundary-component → boundary}/types.js +0 -0
  481. /package/lib/typescript/shared/components/{create-boundary-component → boundary}/components/boundary-target.d.ts +0 -0
  482. /package/lib/typescript/shared/components/{create-boundary-component → boundary}/create-boundary-component.d.ts +0 -0
  483. /package/lib/typescript/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.d.ts +0 -0
  484. /package/lib/typescript/shared/components/{integrations/masked-view.d.ts → masked-view.d.ts} +0 -0
  485. /package/src/shared/components/{create-boundary-component → boundary}/hooks/use-boundary-presence.ts +0 -0
@@ -1,13 +1,17 @@
1
- import type { MeasuredDimensions, StyleProps } from "react-native-reanimated";
1
+ import type { MeasuredDimensions } from "react-native-reanimated";
2
2
  import {
3
3
  NAVIGATION_MASK_CONTAINER_STYLE_ID,
4
4
  NAVIGATION_MASK_ELEMENT_STYLE_ID,
5
5
  } from "../constants";
6
- import type { MeasuredEntry } from "../stores/bounds";
6
+ import type { BoundsLink } from "../stores/bounds/types";
7
7
  import type {
8
- BoundId,
9
- BoundsOptions,
10
- BoundsOptionsResult,
8
+ BoundsComputeOptions,
9
+ BoundsIdentityInput,
10
+ BoundsMathResult,
11
+ BoundsMotion,
12
+ BoundsMotionFrame,
13
+ BoundsMotionTransform,
14
+ BoundsStyleResult,
11
15
  } from "../utils/bounds/types/options";
12
16
  import type {
13
17
  ScreenInterpolationProps,
@@ -16,6 +20,8 @@ import type {
16
20
  } from "./animation.types";
17
21
  import type { GestureProgressMode } from "./gesture.types";
18
22
 
23
+ export type { BoundsLink, BoundsLinkStatus } from "../stores/bounds/types";
24
+
19
25
  /**
20
26
  * Target style computation.
21
27
  * - "transform": translates and scales (scaleX/scaleY), no width/height size
@@ -25,24 +31,6 @@ import type { GestureProgressMode } from "./gesture.types";
25
31
  */
26
32
  export type BoundsMethod = "transform" | "size" | "content";
27
33
 
28
- export type BoundEntry = {
29
- bounds: MeasuredDimensions;
30
- styles: StyleProps;
31
- };
32
-
33
- export type BoundsLink = {
34
- id: string;
35
- source: BoundEntry | null;
36
- destination: BoundEntry | null;
37
- initialSource: BoundEntry | null;
38
- initialDestination: BoundEntry | null;
39
- compute: <T extends BoundsLinkComputeOptions>(
40
- options: T,
41
- ) => BoundsOptionsResult<T & { id: string }>;
42
- };
43
-
44
- export type BoundsLinkComputeOptions = Omit<BoundsOptions, "id" | "group">;
45
-
46
34
  export type BoundsNavigationZoomOptions = {
47
35
  target?: "bound" | "fullscreen" | MeasuredDimensions;
48
36
  debug?: boolean;
@@ -293,47 +281,21 @@ type BoundsBoundNavigationAccessor = {
293
281
  navigation: BoundsNavigationAccessor;
294
282
  };
295
283
 
296
- export type BoundsScopedAccessors = {
297
- getMeasured: (key?: string) => MeasuredEntry | null;
298
- /**
299
- * @deprecated Use `getMeasured` instead. `getSnapshot` will be removed in the next major version.
300
- */
301
- getSnapshot: (key?: string) => MeasuredEntry | null;
302
- getLink: () => BoundsLink | null;
303
- interpolateStyle: (property: keyof StyleProps, fallback?: number) => number;
304
- interpolateBounds: (
305
- property: keyof MeasuredDimensions,
306
- fallbackOrTargetKey?: number | string,
307
- fallback?: number,
308
- ) => number;
284
+ export type BoundsScopedAccessor = BoundsBoundNavigationAccessor & {
285
+ styles: (options?: BoundsComputeOptions) => BoundsStyleResult;
286
+ math: <T extends BoundsComputeOptions = BoundsComputeOptions>(
287
+ options?: T,
288
+ ) => BoundsMathResult<T>;
289
+ link: (id?: BoundsIdentityInput) => BoundsLink | null;
309
290
  };
310
291
 
311
- type BoundsCallResult<T extends BoundsOptions> = BoundsOptionsResult<T> &
312
- BoundsBoundNavigationAccessor &
313
- BoundsScopedAccessors;
314
-
315
- export type BoundsAccessor = {
316
- <T extends BoundsOptions>(options: T): BoundsCallResult<T>;
317
- getMeasured: (id: BoundId, key?: string) => MeasuredEntry | null;
318
- /**
319
- * @deprecated Use `getMeasured` instead. `getSnapshot` will be removed in the next major version.
320
- */
321
- getSnapshot: (id: BoundId, key?: string) => MeasuredEntry | null;
322
- getLink: (id: BoundId) => BoundsLink | null;
323
- interpolateStyle: (
324
- id: BoundId,
325
- property: keyof StyleProps,
326
- fallback?: number,
327
- ) => number;
328
- interpolateBounds: (
329
- id: BoundId,
330
- property: keyof MeasuredDimensions,
331
- fallbackOrTargetKey?: number | string,
332
- fallback?: number,
333
- ) => number;
334
- };
292
+ export type BoundsAccessor = (
293
+ options: BoundsIdentityInput,
294
+ ) => BoundsScopedAccessor;
335
295
 
336
296
  export type BoundsInterpolationProps = Omit<
337
297
  ScreenInterpolationProps,
338
298
  "bounds" | "transition"
339
299
  >;
300
+
301
+ export type { BoundsMotion, BoundsMotionFrame, BoundsMotionTransform };
@@ -2,6 +2,7 @@ export { FALSE, TRUE } from "../constants";
2
2
  export type {
3
3
  AnimatedViewStyle,
4
4
  AnimationConfig,
5
+ BoundaryTeleportControl,
5
6
  ScreenInterpolationProps,
6
7
  ScreenStyleInterpolator,
7
8
  ScreenTransitionAccessor,
@@ -11,12 +12,16 @@ export type {
11
12
  ScreenTransitionTarget,
12
13
  TransitionInterpolatedStyle,
13
14
  TransitionInterpolatorOptions,
15
+ TransitionSlotProps,
14
16
  TransitionSlotStyle,
15
17
  TransitionSpec,
16
18
  } from "./animation.types";
17
19
  export type {
18
20
  BoundsAccessor,
19
21
  BoundsMethod,
22
+ BoundsMotion,
23
+ BoundsMotionFrame,
24
+ BoundsMotionTransform,
20
25
  BoundsNavigationAccessor,
21
26
  BoundsNavigationRevealOptions,
22
27
  BoundsNavigationRevealStyle,
@@ -1,10 +1,51 @@
1
- import type { BoundId } from "../types/options";
1
+ import type {
2
+ BoundId,
3
+ BoundsIdentity,
4
+ BoundsIdentityInput,
5
+ } from "../types/options";
2
6
 
3
7
  type CreateBoundTagParams = {
4
8
  id?: BoundId;
5
9
  group?: string;
6
10
  };
7
11
 
12
+ const splitBoundTag = (id: BoundId): BoundsIdentity => {
13
+ "worklet";
14
+
15
+ const normalizedId = String(id);
16
+ const separatorIndex = normalizedId.indexOf(":");
17
+
18
+ if (separatorIndex <= 0 || separatorIndex >= normalizedId.length - 1) {
19
+ return { id };
20
+ }
21
+
22
+ return {
23
+ group: normalizedId.slice(0, separatorIndex),
24
+ id: normalizedId.slice(separatorIndex + 1),
25
+ };
26
+ };
27
+
28
+ export const normalizeBoundIdentity = (
29
+ identity: BoundsIdentityInput,
30
+ fallbackGroup?: string,
31
+ ): BoundsIdentity => {
32
+ "worklet";
33
+
34
+ const source =
35
+ typeof identity === "object"
36
+ ? identity
37
+ : ({
38
+ id: identity,
39
+ } satisfies BoundsIdentity);
40
+ const parsed = splitBoundTag(source.id);
41
+ const group = source.group || parsed.group || fallbackGroup;
42
+
43
+ return {
44
+ id: parsed.id,
45
+ group,
46
+ };
47
+ };
48
+
8
49
  /**
9
50
  * Creates a bound tag by formatting the given id and optional group
10
51
  * into a `group:id` string. If no group is provided, returns just the id.
@@ -17,11 +58,12 @@ export const createBoundTag = ({
17
58
 
18
59
  if (id == null || id === "") return undefined;
19
60
 
20
- const normalizedId = String(id);
61
+ const identity = normalizeBoundIdentity({ id, group });
62
+ const normalizedId = String(identity.id);
21
63
 
22
- if (!group) {
64
+ if (!identity.group) {
23
65
  return normalizedId;
24
66
  }
25
67
 
26
- return `${group}:${normalizedId}`;
68
+ return `${identity.group}:${normalizedId}`;
27
69
  };
@@ -1,35 +1,29 @@
1
1
  import type {
2
+ BoundsAccessor,
2
3
  BoundsInterpolationProps,
3
- BoundsScopedAccessors,
4
+ BoundsScopedAccessor,
4
5
  } from "../../../types/bounds.types";
5
- import type { BoundsOptions, BoundsOptionsResult } from "../types/options";
6
- import { createBoundTag } from "./create-bound-tag";
7
- import { createInterpolators } from "./create-interpolators";
6
+ import type {
7
+ BoundsComputeOptions,
8
+ BoundsIdentity,
9
+ BoundsIdentityInput,
10
+ BoundsMathResult,
11
+ BoundsStyleResult,
12
+ } from "../types/options";
13
+ import { createBoundTag, normalizeBoundIdentity } from "./create-bound-tag";
8
14
  import { createLinkAccessor } from "./create-link-accessor";
9
- import { prepareBoundStyles } from "./prepare-bound-styles";
10
-
11
- type BoundsComputeResult<T extends BoundsOptions> = BoundsOptionsResult<T> &
12
- BoundsScopedAccessors;
13
-
14
- type BoundsCompute = <T extends BoundsOptions>(
15
- options: T,
16
- ) => BoundsComputeResult<T>;
15
+ import { prepareBoundStyles, syncActiveGroupId } from "./prepare-bound-styles";
17
16
 
18
- type BoundsAccessorCore = BoundsCompute &
19
- ReturnType<typeof createLinkAccessor> &
20
- ReturnType<typeof createInterpolators>;
21
-
22
- type ExtendBoundsResultParams<T extends BoundsOptions> = {
23
- target: BoundsComputeResult<T>;
17
+ type ExtendBoundsResultParams = {
18
+ target: BoundsScopedAccessor;
19
+ identity: BoundsIdentity;
24
20
  props: BoundsInterpolationProps;
25
21
  tag: string | undefined;
26
22
  };
27
23
 
28
24
  type CreateBoundsAccessorCoreParams = {
29
25
  getProps: () => BoundsInterpolationProps;
30
- extendResult?: <T extends BoundsOptions>(
31
- params: ExtendBoundsResultParams<T>,
32
- ) => void;
26
+ extendResult?: (params: ExtendBoundsResultParams) => void;
33
27
  };
34
28
 
35
29
  const createBoundsAccessorParts = ({
@@ -38,124 +32,79 @@ const createBoundsAccessorParts = ({
38
32
  }: CreateBoundsAccessorCoreParams) => {
39
33
  "worklet";
40
34
 
41
- const { getMeasured, getSnapshot, getLink } = createLinkAccessor(getProps);
42
- const { interpolateStyle, interpolateBounds } = createInterpolators({
43
- getProps,
44
- getLink,
45
- });
35
+ const { getLink } = createLinkAccessor(getProps);
46
36
 
47
- const computeBounds = (<T extends BoundsOptions>(
48
- params?: T,
49
- ): BoundsComputeResult<T> => {
37
+ const createScopedBounds = ((
38
+ identity: BoundsIdentityInput,
39
+ ): BoundsScopedAccessor => {
50
40
  "worklet";
51
41
  const props = getProps();
52
- const options = (params ?? { id: "" }) as T;
53
- const tag = createBoundTag({
54
- id: options.id,
55
- group: options.group,
56
- });
57
-
58
- const computed = prepareBoundStyles({
42
+ const normalizedIdentity = normalizeBoundIdentity(identity);
43
+ const tag = createBoundTag(normalizedIdentity);
44
+ syncActiveGroupId({
59
45
  props,
60
- options,
61
- syncGroupActiveId: true,
46
+ id: normalizedIdentity.id,
47
+ group: normalizedIdentity.group,
62
48
  });
63
- const scopedTag = tag ?? "";
64
- const target = Object.isExtensible(computed) ? computed : { ...computed };
65
49
 
66
- Object.defineProperties(target, {
67
- getMeasured: {
68
- value: (key?: string) => {
69
- "worklet";
70
- return getMeasured(scopedTag, key);
71
- },
72
- enumerable: false,
73
- configurable: true,
74
- },
75
- getSnapshot: {
76
- value: (key?: string) => {
77
- "worklet";
78
- return getSnapshot(scopedTag, key);
79
- },
80
- enumerable: false,
81
- configurable: true,
50
+ const scoped: BoundsScopedAccessor = {
51
+ styles: (options?: BoundsComputeOptions): BoundsStyleResult => {
52
+ "worklet";
53
+ return prepareBoundStyles({
54
+ props,
55
+ options: {
56
+ ...options,
57
+ id: normalizedIdentity.id,
58
+ group: normalizedIdentity.group,
59
+ },
60
+ }) as BoundsStyleResult;
82
61
  },
83
- getLink: {
84
- value: () => {
85
- "worklet";
86
- return getLink(scopedTag);
87
- },
88
- enumerable: false,
89
- configurable: true,
62
+ math: <T extends BoundsComputeOptions = BoundsComputeOptions>(
63
+ options?: T,
64
+ ): BoundsMathResult<T> => {
65
+ "worklet";
66
+ return prepareBoundStyles({
67
+ props,
68
+ options: {
69
+ ...options,
70
+ id: normalizedIdentity.id,
71
+ group: normalizedIdentity.group,
72
+ raw: true,
73
+ },
74
+ }) as BoundsMathResult<T>;
90
75
  },
91
- interpolateStyle: {
92
- value: (
93
- property: Parameters<typeof interpolateStyle>[1],
94
- fallback?: number,
95
- ) => {
96
- "worklet";
97
- return interpolateStyle(scopedTag, property, fallback);
98
- },
99
- enumerable: false,
100
- configurable: true,
76
+ link: (id?: BoundsIdentityInput) => {
77
+ "worklet";
78
+ const linkIdentity =
79
+ id == null
80
+ ? normalizedIdentity
81
+ : normalizeBoundIdentity(id, normalizedIdentity.group);
82
+ const linkTag = createBoundTag(linkIdentity);
83
+ return getLink(linkTag ?? "");
101
84
  },
102
- interpolateBounds: {
103
- value: (
104
- property: Parameters<typeof interpolateBounds>[1],
105
- fallbackOrTargetKey?: Parameters<typeof interpolateBounds>[2],
106
- fallback?: number,
107
- ) => {
108
- "worklet";
109
- return interpolateBounds(
110
- scopedTag,
111
- property,
112
- fallbackOrTargetKey,
113
- fallback,
114
- );
115
- },
116
- enumerable: false,
117
- configurable: true,
118
- },
119
- });
85
+ } as BoundsScopedAccessor;
120
86
 
121
87
  extendResult?.({
122
- target: target as BoundsComputeResult<T>,
88
+ target: scoped,
89
+ identity: normalizedIdentity,
123
90
  props,
124
91
  tag,
125
92
  });
126
93
 
127
- return target as BoundsComputeResult<T>;
128
- }) as BoundsCompute;
94
+ return scoped;
95
+ }) as BoundsAccessor;
129
96
 
130
97
  return {
131
- computeBounds,
132
- getMeasured,
133
- getSnapshot,
134
- getLink,
135
- interpolateStyle,
136
- interpolateBounds,
98
+ createScopedBounds,
137
99
  };
138
100
  };
139
101
 
140
102
  export const createBoundsAccessorCore = (
141
103
  params: CreateBoundsAccessorCoreParams,
142
- ): BoundsAccessorCore => {
104
+ ): BoundsAccessor => {
143
105
  "worklet";
144
106
 
145
- const {
146
- computeBounds,
147
- getMeasured,
148
- getSnapshot,
149
- getLink,
150
- interpolateStyle,
151
- interpolateBounds,
152
- } = createBoundsAccessorParts(params);
107
+ const { createScopedBounds } = createBoundsAccessorParts(params);
153
108
 
154
- return Object.assign(computeBounds, {
155
- getMeasured,
156
- getSnapshot,
157
- getLink,
158
- interpolateStyle,
159
- interpolateBounds,
160
- }) as BoundsAccessorCore;
109
+ return createScopedBounds;
161
110
  };
@@ -1,107 +1,37 @@
1
- import { getEntry } from "../../../stores/bounds/internals/entries";
2
1
  import { getResolvedLink } from "../../../stores/bounds/internals/links";
3
- import type {
4
- MeasuredEntry,
5
- ResolvedTransitionPair,
6
- TagLink,
7
- } from "../../../stores/bounds/types";
8
2
  import type {
9
3
  BoundsInterpolationProps,
10
4
  BoundsLink,
11
- BoundsLinkComputeOptions,
12
5
  } from "../../../types/bounds.types";
13
- import type { BoundId, BoundsOptionsResult } from "../types/options";
14
- import { prepareBoundStyles } from "./prepare-bound-styles";
6
+ import type { BoundId } from "../types/options";
15
7
  import { resolveBoundsPairKey } from "./resolve-bounds-pair-key";
16
8
 
17
9
  type GetProps = () => BoundsInterpolationProps;
18
10
 
19
11
  export type LinkAccessor = {
20
- getMeasured: (tag: BoundId, key?: string) => MeasuredEntry | null;
21
- getSnapshot: (tag: BoundId, key?: string) => MeasuredEntry | null;
22
12
  getLink: (tag: BoundId) => BoundsLink | null;
23
13
  };
24
14
 
25
- const toResolvedPair = (link: TagLink): ResolvedTransitionPair => {
26
- "worklet";
27
- return {
28
- sourceBounds: link.source.bounds,
29
- destinationBounds: link.destination?.bounds ?? null,
30
- sourceStyles: link.source.styles,
31
- destinationStyles: link.destination?.styles ?? null,
32
- sourceScreenKey: link.source.screenKey,
33
- destinationScreenKey: link.destination?.screenKey ?? null,
34
- };
35
- };
36
-
37
15
  export const createLinkAccessor = (getProps: GetProps): LinkAccessor => {
38
16
  "worklet";
39
17
 
40
- const getMeasured = (tag: BoundId, key?: string): MeasuredEntry | null => {
41
- "worklet";
42
- if (!key) return null;
43
- const entry = getEntry(String(tag), key);
44
- return entry?.bounds ? (entry as MeasuredEntry) : null;
45
- };
46
-
47
- const getSnapshot = (tag: BoundId, key?: string): MeasuredEntry | null => {
48
- "worklet";
49
- return getMeasured(tag, key);
50
- };
51
-
52
18
  const getLink = (tag: BoundId): BoundsLink | null => {
53
19
  "worklet";
54
20
  const props = getProps();
55
21
  const stringTag = String(tag);
56
22
  const pairKey = resolveBoundsPairKey(props);
57
- const resolved = pairKey
58
- ? getResolvedLink(pairKey, stringTag)
59
- : { tag: stringTag, link: null };
60
- const selectedTag = resolved.tag;
61
- const link = resolved.link;
62
-
63
- if (!link) return null;
64
- const resolvedPair = toResolvedPair(link);
65
-
66
- return {
67
- id: selectedTag,
68
- source: link.source
69
- ? { bounds: link.source.bounds, styles: link.source.styles }
70
- : null,
71
- destination: link.destination
72
- ? { bounds: link.destination.bounds, styles: link.destination.styles }
73
- : null,
74
- initialSource: link.initialSource
75
- ? {
76
- bounds: link.initialSource.bounds,
77
- styles: link.initialSource.styles,
78
- }
79
- : null,
80
- initialDestination: link.initialDestination
81
- ? {
82
- bounds: link.initialDestination.bounds,
83
- styles: link.initialDestination.styles,
84
- }
85
- : null,
86
- compute: <T extends BoundsLinkComputeOptions>(
87
- computeOptions: T,
88
- ): BoundsOptionsResult<T & { id: string }> => {
89
- "worklet";
90
- return prepareBoundStyles({
91
- props,
92
- options: {
93
- ...computeOptions,
94
- id: selectedTag,
95
- } as T & { id: string },
96
- resolvedPair,
97
- });
98
- },
99
- };
23
+ if (!pairKey) return null;
24
+
25
+ const resolved = getResolvedLink(pairKey, stringTag);
26
+ return resolved.link
27
+ ? {
28
+ id: resolved.tag,
29
+ ...resolved.link,
30
+ }
31
+ : null;
100
32
  };
101
33
 
102
34
  return {
103
- getMeasured,
104
- getSnapshot,
105
35
  getLink,
106
36
  };
107
37
  };
@@ -1,5 +1,8 @@
1
1
  import { getEntry } from "../../../stores/bounds/internals/entries";
2
- import { setActiveGroupId } from "../../../stores/bounds/internals/links";
2
+ import {
3
+ getActiveGroupId,
4
+ setActiveGroupId,
5
+ } from "../../../stores/bounds/internals/links";
3
6
  import type { ResolvedTransitionPair } from "../../../stores/bounds/types";
4
7
  import type { BoundsInterpolationProps } from "../../../types/bounds.types";
5
8
  import { DEFAULT_BOUNDS_OPTIONS } from "../constants";
@@ -18,7 +21,6 @@ type ComputeResolvedBoundsStylesParams<T extends BoundsOptions> = {
18
21
  props: BaseInterpolatorProps;
19
22
  options: T;
20
23
  resolvedPair?: ResolvedTransitionPair;
21
- syncGroupActiveId?: boolean;
22
24
  };
23
25
 
24
26
  type BuildBoundsOptionsParams = {
@@ -55,7 +57,7 @@ const buildBoundsOptions = ({
55
57
  return resolved;
56
58
  };
57
59
 
58
- const syncActiveGroupId = (params: {
60
+ export const syncActiveGroupId = (params: {
59
61
  props: BoundsInterpolationProps;
60
62
  id?: BoundId;
61
63
  group?: string;
@@ -67,25 +69,19 @@ const syncActiveGroupId = (params: {
67
69
  const pairKey = resolveBoundsPairKey(props);
68
70
  if (!pairKey) return;
69
71
 
70
- setActiveGroupId(pairKey, group, String(id));
72
+ const activeId = String(id);
73
+ if (getActiveGroupId(pairKey, group) === activeId) return;
74
+
75
+ setActiveGroupId(pairKey, group, activeId);
71
76
  };
72
77
 
73
78
  export const prepareBoundStyles = <T extends BoundsOptions>({
74
79
  props,
75
80
  options,
76
81
  resolvedPair,
77
- syncGroupActiveId = false,
78
82
  }: ComputeResolvedBoundsStylesParams<T>): BoundsOptionsResult<T> => {
79
83
  "worklet";
80
84
 
81
- if (syncGroupActiveId) {
82
- syncActiveGroupId({
83
- props,
84
- id: options.id,
85
- group: options.group,
86
- });
87
- }
88
-
89
85
  const resolved = buildBoundsOptions({
90
86
  props,
91
87
  id: options.id,
@@ -101,6 +97,7 @@ export const prepareBoundStyles = <T extends BoundsOptions>({
101
97
  next: props.next,
102
98
  progress: resolved.progress ?? props.progress,
103
99
  dimensions: props.layouts.screen,
100
+ interpolationProps: props,
104
101
  },
105
102
  resolved,
106
103
  resolvedPair,