react-native-screen-transitions 3.4.0-alpha.6 → 3.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/README.md +136 -46
  2. package/lib/commonjs/blank-stack/navigators/create-blank-stack-navigator.js +27 -45
  3. package/lib/commonjs/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -1
  4. package/lib/commonjs/component-stack/navigators/create-component-stack-navigator.js +1 -1
  5. package/lib/commonjs/shared/components/create-boundary-component/components/boundary-target.js +41 -0
  6. package/lib/commonjs/shared/components/create-boundary-component/components/boundary-target.js.map +1 -0
  7. package/lib/commonjs/shared/components/create-boundary-component/create-boundary-component.js +193 -0
  8. package/lib/commonjs/shared/components/create-boundary-component/create-boundary-component.js.map +1 -0
  9. package/lib/commonjs/shared/components/create-boundary-component/helpers/resolve-pending-source-key.js +1 -1
  10. package/lib/commonjs/shared/components/create-boundary-component/helpers/resolve-pending-source-key.js.map +1 -1
  11. package/lib/commonjs/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js +53 -43
  12. package/lib/commonjs/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js.map +1 -1
  13. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-auto-source-measurement.js +7 -1
  14. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-auto-source-measurement.js.map +1 -1
  15. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.js +8 -26
  16. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.js.map +1 -1
  17. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-pending-destination-measurement.js +84 -2
  18. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-pending-destination-measurement.js.map +1 -1
  19. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-prepare-transition-measurement.js +67 -0
  20. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-prepare-transition-measurement.js.map +1 -0
  21. package/lib/commonjs/shared/components/create-boundary-component/index.js +27 -216
  22. package/lib/commonjs/shared/components/create-boundary-component/index.js.map +1 -1
  23. package/lib/commonjs/shared/components/create-boundary-component/providers/boundary-owner.provider.js +63 -0
  24. package/lib/commonjs/shared/components/create-boundary-component/providers/boundary-owner.provider.js.map +1 -0
  25. package/lib/commonjs/shared/components/create-transition-aware-component.js +37 -39
  26. package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
  27. package/lib/commonjs/shared/components/overlay/variations/float-overlay.js +1 -1
  28. package/lib/commonjs/shared/components/screen-container/hooks/use-content-layout.js +11 -9
  29. package/lib/commonjs/shared/components/screen-container/hooks/use-content-layout.js.map +1 -1
  30. package/lib/commonjs/shared/components/screen-container/index.js +8 -12
  31. package/lib/commonjs/shared/components/screen-container/index.js.map +1 -1
  32. package/lib/commonjs/shared/components/screen-container/layers/backdrop.js +11 -9
  33. package/lib/commonjs/shared/components/screen-container/layers/backdrop.js.map +1 -1
  34. package/lib/commonjs/shared/components/screen-container/layers/content.js +4 -4
  35. package/lib/commonjs/shared/components/screen-container/layers/content.js.map +1 -1
  36. package/lib/commonjs/shared/components/screen-container/layers/maybe-masked-navigation-container.js +4 -4
  37. package/lib/commonjs/shared/components/screen-container/layers/maybe-masked-navigation-container.js.map +1 -1
  38. package/lib/commonjs/shared/components/screen-container/layers/surface-container.js +4 -4
  39. package/lib/commonjs/shared/components/screen-container/layers/surface-container.js.map +1 -1
  40. package/lib/commonjs/shared/components/screen-lifecycle/index.js +3 -1
  41. package/lib/commonjs/shared/components/screen-lifecycle/index.js.map +1 -1
  42. package/lib/commonjs/shared/constants.js +18 -2
  43. package/lib/commonjs/shared/constants.js.map +1 -1
  44. package/lib/commonjs/shared/hooks/reanimated/use-animated-debounce.js +43 -0
  45. package/lib/commonjs/shared/hooks/reanimated/use-animated-debounce.js.map +1 -0
  46. package/lib/commonjs/shared/index.js +6 -0
  47. package/lib/commonjs/shared/index.js.map +1 -1
  48. package/lib/commonjs/shared/providers/gestures/handlers/use-handlers.js +7 -0
  49. package/lib/commonjs/shared/providers/gestures/handlers/use-handlers.js.map +1 -1
  50. package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state.js +23 -1
  51. package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state.js.map +1 -1
  52. package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js +3 -0
  53. package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
  54. package/lib/commonjs/shared/providers/screen/screen-composer.js +1 -1
  55. package/lib/commonjs/shared/providers/screen/screen-composer.js.map +1 -1
  56. package/lib/commonjs/shared/providers/screen/styles/helpers/build-resolved-style-map.js +144 -0
  57. package/lib/commonjs/shared/providers/screen/styles/helpers/build-resolved-style-map.js.map +1 -0
  58. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.js +28 -0
  59. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.js.map +1 -0
  60. package/lib/commonjs/shared/providers/screen/styles/helpers/split-normalized-style-maps.js +39 -0
  61. package/lib/commonjs/shared/providers/screen/styles/helpers/split-normalized-style-maps.js.map +1 -0
  62. package/lib/commonjs/shared/providers/screen/styles/index.js +25 -0
  63. package/lib/commonjs/shared/providers/screen/styles/index.js.map +1 -0
  64. package/lib/commonjs/shared/providers/screen/{styles.provider.js → styles/styles.provider.js} +37 -39
  65. package/lib/commonjs/shared/providers/screen/styles/styles.provider.js.map +1 -0
  66. package/lib/commonjs/shared/stores/animation.store.js +9 -3
  67. package/lib/commonjs/shared/stores/animation.store.js.map +1 -1
  68. package/lib/commonjs/shared/stores/bounds/internals/registry.js +18 -2
  69. package/lib/commonjs/shared/stores/bounds/internals/registry.js.map +1 -1
  70. package/lib/commonjs/shared/stores/bounds/internals/resolver.js +7 -48
  71. package/lib/commonjs/shared/stores/bounds/internals/resolver.js.map +1 -1
  72. package/lib/commonjs/shared/utils/animation/animate-to-progress.js +10 -0
  73. package/lib/commonjs/shared/utils/animation/animate-to-progress.js.map +1 -1
  74. package/lib/commonjs/shared/utils/bounds/helpers/compute-bounds-styles.js +6 -12
  75. package/lib/commonjs/shared/utils/bounds/helpers/compute-bounds-styles.js.map +1 -1
  76. package/lib/commonjs/shared/utils/bounds/helpers/style-composers.js +21 -10
  77. package/lib/commonjs/shared/utils/bounds/helpers/style-composers.js.map +1 -1
  78. package/lib/commonjs/shared/utils/bounds/zoom/build.js +158 -52
  79. package/lib/commonjs/shared/utils/bounds/zoom/build.js.map +1 -1
  80. package/lib/commonjs/shared/utils/bounds/zoom/config.js +3 -1
  81. package/lib/commonjs/shared/utils/bounds/zoom/config.js.map +1 -1
  82. package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js +27 -45
  83. package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -1
  84. package/lib/module/component-stack/navigators/create-component-stack-navigator.js +1 -1
  85. package/lib/module/shared/components/create-boundary-component/components/boundary-target.js +36 -0
  86. package/lib/module/shared/components/create-boundary-component/components/boundary-target.js.map +1 -0
  87. package/lib/module/shared/components/create-boundary-component/create-boundary-component.js +188 -0
  88. package/lib/module/shared/components/create-boundary-component/create-boundary-component.js.map +1 -0
  89. package/lib/module/shared/components/create-boundary-component/helpers/resolve-pending-source-key.js +1 -1
  90. package/lib/module/shared/components/create-boundary-component/helpers/resolve-pending-source-key.js.map +1 -1
  91. package/lib/module/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js +51 -41
  92. package/lib/module/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js.map +1 -1
  93. package/lib/module/shared/components/create-boundary-component/hooks/use-auto-source-measurement.js +7 -1
  94. package/lib/module/shared/components/create-boundary-component/hooks/use-auto-source-measurement.js.map +1 -1
  95. package/lib/module/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.js +8 -26
  96. package/lib/module/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.js.map +1 -1
  97. package/lib/module/shared/components/create-boundary-component/hooks/use-pending-destination-measurement.js +86 -4
  98. package/lib/module/shared/components/create-boundary-component/hooks/use-pending-destination-measurement.js.map +1 -1
  99. package/lib/module/shared/components/create-boundary-component/hooks/use-prepare-transition-measurement.js +62 -0
  100. package/lib/module/shared/components/create-boundary-component/hooks/use-prepare-transition-measurement.js.map +1 -0
  101. package/lib/module/shared/components/create-boundary-component/index.js +23 -215
  102. package/lib/module/shared/components/create-boundary-component/index.js.map +1 -1
  103. package/lib/module/shared/components/create-boundary-component/providers/boundary-owner.provider.js +56 -0
  104. package/lib/module/shared/components/create-boundary-component/providers/boundary-owner.provider.js.map +1 -0
  105. package/lib/module/shared/components/create-transition-aware-component.js +39 -41
  106. package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
  107. package/lib/module/shared/components/overlay/variations/float-overlay.js +1 -1
  108. package/lib/module/shared/components/overlay/variations/float-overlay.js.map +1 -1
  109. package/lib/module/shared/components/screen-container/hooks/use-content-layout.js +11 -9
  110. package/lib/module/shared/components/screen-container/hooks/use-content-layout.js.map +1 -1
  111. package/lib/module/shared/components/screen-container/index.js +8 -12
  112. package/lib/module/shared/components/screen-container/index.js.map +1 -1
  113. package/lib/module/shared/components/screen-container/layers/backdrop.js +11 -9
  114. package/lib/module/shared/components/screen-container/layers/backdrop.js.map +1 -1
  115. package/lib/module/shared/components/screen-container/layers/content.js +4 -4
  116. package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
  117. package/lib/module/shared/components/screen-container/layers/maybe-masked-navigation-container.js +4 -4
  118. package/lib/module/shared/components/screen-container/layers/maybe-masked-navigation-container.js.map +1 -1
  119. package/lib/module/shared/components/screen-container/layers/surface-container.js +4 -4
  120. package/lib/module/shared/components/screen-container/layers/surface-container.js.map +1 -1
  121. package/lib/module/shared/components/screen-lifecycle/index.js +3 -1
  122. package/lib/module/shared/components/screen-lifecycle/index.js.map +1 -1
  123. package/lib/module/shared/constants.js +17 -1
  124. package/lib/module/shared/constants.js.map +1 -1
  125. package/lib/module/shared/hooks/reanimated/use-animated-debounce.js +39 -0
  126. package/lib/module/shared/hooks/reanimated/use-animated-debounce.js.map +1 -0
  127. package/lib/module/shared/index.js +1 -1
  128. package/lib/module/shared/index.js.map +1 -1
  129. package/lib/module/shared/providers/gestures/handlers/use-handlers.js +7 -0
  130. package/lib/module/shared/providers/gestures/handlers/use-handlers.js.map +1 -1
  131. package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state.js +23 -1
  132. package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state.js.map +1 -1
  133. package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js +3 -0
  134. package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
  135. package/lib/module/shared/providers/screen/screen-composer.js +1 -1
  136. package/lib/module/shared/providers/screen/screen-composer.js.map +1 -1
  137. package/lib/module/shared/providers/screen/styles/helpers/build-resolved-style-map.js +139 -0
  138. package/lib/module/shared/providers/screen/styles/helpers/build-resolved-style-map.js.map +1 -0
  139. package/lib/module/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.js +23 -0
  140. package/lib/module/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.js.map +1 -0
  141. package/lib/module/shared/providers/screen/styles/helpers/split-normalized-style-maps.js +34 -0
  142. package/lib/module/shared/providers/screen/styles/helpers/split-normalized-style-maps.js.map +1 -0
  143. package/lib/module/shared/providers/screen/styles/index.js +4 -0
  144. package/lib/module/shared/providers/screen/styles/index.js.map +1 -0
  145. package/lib/module/shared/providers/screen/{styles.provider.js → styles/styles.provider.js} +38 -40
  146. package/lib/module/shared/providers/screen/styles/styles.provider.js.map +1 -0
  147. package/lib/module/shared/stores/animation.store.js +9 -3
  148. package/lib/module/shared/stores/animation.store.js.map +1 -1
  149. package/lib/module/shared/stores/bounds/internals/registry.js +18 -2
  150. package/lib/module/shared/stores/bounds/internals/registry.js.map +1 -1
  151. package/lib/module/shared/stores/bounds/internals/resolver.js +7 -48
  152. package/lib/module/shared/stores/bounds/internals/resolver.js.map +1 -1
  153. package/lib/module/shared/utils/animation/animate-to-progress.js +10 -0
  154. package/lib/module/shared/utils/animation/animate-to-progress.js.map +1 -1
  155. package/lib/module/shared/utils/bounds/helpers/compute-bounds-styles.js +7 -13
  156. package/lib/module/shared/utils/bounds/helpers/compute-bounds-styles.js.map +1 -1
  157. package/lib/module/shared/utils/bounds/helpers/style-composers.js +21 -10
  158. package/lib/module/shared/utils/bounds/helpers/style-composers.js.map +1 -1
  159. package/lib/module/shared/utils/bounds/zoom/build.js +159 -52
  160. package/lib/module/shared/utils/bounds/zoom/build.js.map +1 -1
  161. package/lib/module/shared/utils/bounds/zoom/config.js +2 -0
  162. package/lib/module/shared/utils/bounds/zoom/config.js.map +1 -1
  163. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts +9 -15
  164. package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts.map +1 -1
  165. package/lib/typescript/blank-stack/types.d.ts +6 -4
  166. package/lib/typescript/blank-stack/types.d.ts.map +1 -1
  167. package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts +1 -1
  168. package/lib/typescript/shared/components/create-boundary-component/components/boundary-target.d.ts +209 -0
  169. package/lib/typescript/shared/components/create-boundary-component/components/boundary-target.d.ts.map +1 -0
  170. package/lib/typescript/shared/components/create-boundary-component/create-boundary-component.d.ts +8 -0
  171. package/lib/typescript/shared/components/create-boundary-component/create-boundary-component.d.ts.map +1 -0
  172. package/lib/typescript/shared/components/create-boundary-component/helpers/resolve-pending-source-key.d.ts.map +1 -1
  173. package/lib/typescript/shared/components/create-boundary-component/hooks/helpers/measurement-rules.d.ts +16 -11
  174. package/lib/typescript/shared/components/create-boundary-component/hooks/helpers/measurement-rules.d.ts.map +1 -1
  175. package/lib/typescript/shared/components/create-boundary-component/hooks/use-auto-source-measurement.d.ts +3 -1
  176. package/lib/typescript/shared/components/create-boundary-component/hooks/use-auto-source-measurement.d.ts.map +1 -1
  177. package/lib/typescript/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.d.ts +2 -9
  178. package/lib/typescript/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.d.ts.map +1 -1
  179. package/lib/typescript/shared/components/create-boundary-component/hooks/use-pending-destination-measurement.d.ts +6 -1
  180. package/lib/typescript/shared/components/create-boundary-component/hooks/use-pending-destination-measurement.d.ts.map +1 -1
  181. package/lib/typescript/shared/components/create-boundary-component/hooks/use-prepare-transition-measurement.d.ts +12 -0
  182. package/lib/typescript/shared/components/create-boundary-component/hooks/use-prepare-transition-measurement.d.ts.map +1 -0
  183. package/lib/typescript/shared/components/create-boundary-component/index.d.ts +224 -14
  184. package/lib/typescript/shared/components/create-boundary-component/index.d.ts.map +1 -1
  185. package/lib/typescript/shared/components/create-boundary-component/providers/boundary-owner.provider.d.ts +35 -0
  186. package/lib/typescript/shared/components/create-boundary-component/providers/boundary-owner.provider.d.ts.map +1 -0
  187. package/lib/typescript/shared/components/create-boundary-component/types.d.ts +1 -1
  188. package/lib/typescript/shared/components/create-boundary-component/types.d.ts.map +1 -1
  189. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  190. package/lib/typescript/shared/components/screen-container/hooks/use-content-layout.d.ts.map +1 -1
  191. package/lib/typescript/shared/components/screen-container/index.d.ts.map +1 -1
  192. package/lib/typescript/shared/components/screen-container/layers/backdrop.d.ts.map +1 -1
  193. package/lib/typescript/shared/components/screen-container/layers/maybe-masked-navigation-container.d.ts.map +1 -1
  194. package/lib/typescript/shared/components/screen-lifecycle/index.d.ts.map +1 -1
  195. package/lib/typescript/shared/constants.d.ts +34 -0
  196. package/lib/typescript/shared/constants.d.ts.map +1 -1
  197. package/lib/typescript/shared/hooks/reanimated/use-animated-debounce.d.ts +13 -0
  198. package/lib/typescript/shared/hooks/reanimated/use-animated-debounce.d.ts.map +1 -0
  199. package/lib/typescript/shared/index.d.ts +210 -3
  200. package/lib/typescript/shared/index.d.ts.map +1 -1
  201. package/lib/typescript/shared/providers/gestures/handlers/use-handlers.d.ts.map +1 -1
  202. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state.d.ts +3 -0
  203. package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state.d.ts.map +1 -1
  204. package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts +3 -0
  205. package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts.map +1 -1
  206. package/lib/typescript/shared/providers/screen/styles/helpers/build-resolved-style-map.d.ts +11 -0
  207. package/lib/typescript/shared/providers/screen/styles/helpers/build-resolved-style-map.d.ts.map +1 -0
  208. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.d.ts +7 -0
  209. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.d.ts.map +1 -0
  210. package/lib/typescript/shared/providers/screen/styles/helpers/split-normalized-style-maps.d.ts +6 -0
  211. package/lib/typescript/shared/providers/screen/styles/helpers/split-normalized-style-maps.d.ts.map +1 -0
  212. package/lib/typescript/shared/providers/screen/styles/index.d.ts +2 -0
  213. package/lib/typescript/shared/providers/screen/styles/index.d.ts.map +1 -0
  214. package/lib/typescript/shared/providers/screen/{styles.provider.d.ts → styles/styles.provider.d.ts} +3 -5
  215. package/lib/typescript/shared/providers/screen/styles/styles.provider.d.ts.map +1 -0
  216. package/lib/typescript/shared/stores/animation.store.d.ts +5 -2
  217. package/lib/typescript/shared/stores/animation.store.d.ts.map +1 -1
  218. package/lib/typescript/shared/stores/bounds/internals/registry.d.ts.map +1 -1
  219. package/lib/typescript/shared/stores/bounds/internals/resolver.d.ts.map +1 -1
  220. package/lib/typescript/shared/stores/bounds/types.d.ts +0 -2
  221. package/lib/typescript/shared/stores/bounds/types.d.ts.map +1 -1
  222. package/lib/typescript/shared/types/animation.types.d.ts +14 -9
  223. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  224. package/lib/typescript/shared/types/bounds.types.d.ts +34 -1
  225. package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
  226. package/lib/typescript/shared/types/index.d.ts +1 -1
  227. package/lib/typescript/shared/types/index.d.ts.map +1 -1
  228. package/lib/typescript/shared/types/screen.types.d.ts +2 -4
  229. package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
  230. package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts +2 -1
  231. package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts.map +1 -1
  232. package/lib/typescript/shared/utils/bounds/helpers/compute-bounds-styles.d.ts +1 -11
  233. package/lib/typescript/shared/utils/bounds/helpers/compute-bounds-styles.d.ts.map +1 -1
  234. package/lib/typescript/shared/utils/bounds/helpers/style-composers.d.ts.map +1 -1
  235. package/lib/typescript/shared/utils/bounds/zoom/build.d.ts +1 -1
  236. package/lib/typescript/shared/utils/bounds/zoom/build.d.ts.map +1 -1
  237. package/lib/typescript/shared/utils/bounds/zoom/config.d.ts +2 -0
  238. package/lib/typescript/shared/utils/bounds/zoom/config.d.ts.map +1 -1
  239. package/package.json +1 -1
  240. package/src/blank-stack/navigators/create-blank-stack-navigator.tsx +37 -80
  241. package/src/blank-stack/types.ts +7 -4
  242. package/src/component-stack/navigators/create-component-stack-navigator.tsx +1 -1
  243. package/src/shared/components/create-boundary-component/components/boundary-target.tsx +47 -0
  244. package/src/shared/components/create-boundary-component/create-boundary-component.tsx +249 -0
  245. package/src/shared/components/create-boundary-component/helpers/resolve-pending-source-key.ts +5 -1
  246. package/src/shared/components/create-boundary-component/hooks/helpers/measurement-rules.ts +68 -59
  247. package/src/shared/components/create-boundary-component/hooks/use-auto-source-measurement.ts +19 -3
  248. package/src/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.ts +11 -44
  249. package/src/shared/components/create-boundary-component/hooks/use-pending-destination-measurement.ts +165 -6
  250. package/src/shared/components/create-boundary-component/hooks/use-prepare-transition-measurement.ts +107 -0
  251. package/src/shared/components/create-boundary-component/index.tsx +23 -254
  252. package/src/shared/components/create-boundary-component/providers/boundary-owner.provider.tsx +109 -0
  253. package/src/shared/components/create-boundary-component/types.ts +1 -2
  254. package/src/shared/components/create-transition-aware-component.tsx +43 -52
  255. package/src/shared/components/overlay/variations/float-overlay.tsx +1 -1
  256. package/src/shared/components/screen-container/hooks/use-content-layout.ts +10 -17
  257. package/src/shared/components/screen-container/index.tsx +10 -13
  258. package/src/shared/components/screen-container/layers/backdrop.tsx +10 -13
  259. package/src/shared/components/screen-container/layers/content.tsx +4 -4
  260. package/src/shared/components/screen-container/layers/maybe-masked-navigation-container.tsx +6 -4
  261. package/src/shared/components/screen-container/layers/surface-container.tsx +4 -4
  262. package/src/shared/components/screen-lifecycle/index.tsx +1 -4
  263. package/src/shared/constants.ts +12 -0
  264. package/src/shared/hooks/reanimated/use-animated-debounce.ts +56 -0
  265. package/src/shared/index.ts +1 -1
  266. package/src/shared/providers/gestures/handlers/use-handlers.ts +9 -0
  267. package/src/shared/providers/screen/animation/helpers/hydrate-transition-state.ts +27 -1
  268. package/src/shared/providers/screen/animation/helpers/use-build-transition-state.ts +6 -0
  269. package/src/shared/providers/screen/screen-composer.tsx +1 -1
  270. package/src/shared/providers/screen/styles/helpers/build-resolved-style-map.ts +185 -0
  271. package/src/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.ts +31 -0
  272. package/src/shared/providers/screen/styles/helpers/split-normalized-style-maps.ts +44 -0
  273. package/src/shared/providers/screen/styles/index.tsx +5 -0
  274. package/src/shared/providers/screen/{styles.provider.tsx → styles/styles.provider.tsx} +54 -56
  275. package/src/shared/stores/animation.store.ts +11 -2
  276. package/src/shared/stores/bounds/internals/registry.ts +24 -3
  277. package/src/shared/stores/bounds/internals/resolver.ts +6 -75
  278. package/src/shared/stores/bounds/types.ts +0 -2
  279. package/src/shared/types/animation.types.ts +16 -10
  280. package/src/shared/types/bounds.types.ts +34 -1
  281. package/src/shared/types/index.ts +0 -1
  282. package/src/shared/types/screen.types.ts +2 -4
  283. package/src/shared/utils/animation/animate-to-progress.ts +11 -1
  284. package/src/shared/utils/bounds/helpers/compute-bounds-styles.ts +3 -12
  285. package/src/shared/utils/bounds/helpers/style-composers.ts +11 -0
  286. package/src/shared/utils/bounds/zoom/build.ts +228 -100
  287. package/src/shared/utils/bounds/zoom/config.ts +2 -0
  288. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-deferred-measurement-trigger.js +0 -54
  289. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-deferred-measurement-trigger.js.map +0 -1
  290. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-group-active-measurement.js +0 -122
  291. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-group-active-measurement.js.map +0 -1
  292. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-group-active-source-measurement.js +0 -72
  293. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-group-active-source-measurement.js.map +0 -1
  294. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-layout-handler.js +0 -66
  295. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-layout-handler.js.map +0 -1
  296. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.js +0 -57
  297. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.js.map +0 -1
  298. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-scroll-settled-measurement.js +0 -53
  299. package/lib/commonjs/shared/components/create-boundary-component/hooks/use-scroll-settled-measurement.js.map +0 -1
  300. package/lib/commonjs/shared/components/screen-container/deferred-visibility-host.js +0 -45
  301. package/lib/commonjs/shared/components/screen-container/deferred-visibility-host.js.map +0 -1
  302. package/lib/commonjs/shared/hooks/animation/use-associated-style.js +0 -234
  303. package/lib/commonjs/shared/hooks/animation/use-associated-style.js.map +0 -1
  304. package/lib/commonjs/shared/providers/screen/helpers/resolve-interpolated-style-output.js +0 -50
  305. package/lib/commonjs/shared/providers/screen/helpers/resolve-interpolated-style-output.js.map +0 -1
  306. package/lib/commonjs/shared/providers/screen/styles.provider.js.map +0 -1
  307. package/lib/module/shared/components/create-boundary-component/hooks/use-deferred-measurement-trigger.js +0 -49
  308. package/lib/module/shared/components/create-boundary-component/hooks/use-deferred-measurement-trigger.js.map +0 -1
  309. package/lib/module/shared/components/create-boundary-component/hooks/use-group-active-measurement.js +0 -118
  310. package/lib/module/shared/components/create-boundary-component/hooks/use-group-active-measurement.js.map +0 -1
  311. package/lib/module/shared/components/create-boundary-component/hooks/use-group-active-source-measurement.js +0 -67
  312. package/lib/module/shared/components/create-boundary-component/hooks/use-group-active-source-measurement.js.map +0 -1
  313. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-layout-handler.js +0 -61
  314. package/lib/module/shared/components/create-boundary-component/hooks/use-initial-layout-handler.js.map +0 -1
  315. package/lib/module/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.js +0 -52
  316. package/lib/module/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.js.map +0 -1
  317. package/lib/module/shared/components/create-boundary-component/hooks/use-scroll-settled-measurement.js +0 -48
  318. package/lib/module/shared/components/create-boundary-component/hooks/use-scroll-settled-measurement.js.map +0 -1
  319. package/lib/module/shared/components/screen-container/deferred-visibility-host.js +0 -40
  320. package/lib/module/shared/components/screen-container/deferred-visibility-host.js.map +0 -1
  321. package/lib/module/shared/hooks/animation/use-associated-style.js +0 -229
  322. package/lib/module/shared/hooks/animation/use-associated-style.js.map +0 -1
  323. package/lib/module/shared/providers/screen/helpers/resolve-interpolated-style-output.js +0 -44
  324. package/lib/module/shared/providers/screen/helpers/resolve-interpolated-style-output.js.map +0 -1
  325. package/lib/module/shared/providers/screen/styles.provider.js.map +0 -1
  326. package/lib/typescript/shared/components/create-boundary-component/hooks/use-deferred-measurement-trigger.d.ts +0 -11
  327. package/lib/typescript/shared/components/create-boundary-component/hooks/use-deferred-measurement-trigger.d.ts.map +0 -1
  328. package/lib/typescript/shared/components/create-boundary-component/hooks/use-group-active-measurement.d.ts +0 -17
  329. package/lib/typescript/shared/components/create-boundary-component/hooks/use-group-active-measurement.d.ts.map +0 -1
  330. package/lib/typescript/shared/components/create-boundary-component/hooks/use-group-active-source-measurement.d.ts +0 -11
  331. package/lib/typescript/shared/components/create-boundary-component/hooks/use-group-active-source-measurement.d.ts.map +0 -1
  332. package/lib/typescript/shared/components/create-boundary-component/hooks/use-initial-layout-handler.d.ts +0 -10
  333. package/lib/typescript/shared/components/create-boundary-component/hooks/use-initial-layout-handler.d.ts.map +0 -1
  334. package/lib/typescript/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.d.ts +0 -12
  335. package/lib/typescript/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.d.ts.map +0 -1
  336. package/lib/typescript/shared/components/create-boundary-component/hooks/use-scroll-settled-measurement.d.ts +0 -10
  337. package/lib/typescript/shared/components/create-boundary-component/hooks/use-scroll-settled-measurement.d.ts.map +0 -1
  338. package/lib/typescript/shared/components/screen-container/deferred-visibility-host.d.ts +0 -14
  339. package/lib/typescript/shared/components/screen-container/deferred-visibility-host.d.ts.map +0 -1
  340. package/lib/typescript/shared/hooks/animation/use-associated-style.d.ts +0 -32
  341. package/lib/typescript/shared/hooks/animation/use-associated-style.d.ts.map +0 -1
  342. package/lib/typescript/shared/providers/screen/helpers/resolve-interpolated-style-output.d.ts +0 -14
  343. package/lib/typescript/shared/providers/screen/helpers/resolve-interpolated-style-output.d.ts.map +0 -1
  344. package/lib/typescript/shared/providers/screen/styles.provider.d.ts.map +0 -1
  345. package/src/shared/components/create-boundary-component/hooks/use-deferred-measurement-trigger.ts +0 -58
  346. package/src/shared/components/create-boundary-component/hooks/use-group-active-measurement.ts +0 -162
  347. package/src/shared/components/create-boundary-component/hooks/use-group-active-source-measurement.ts +0 -82
  348. package/src/shared/components/create-boundary-component/hooks/use-initial-layout-handler.ts +0 -92
  349. package/src/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.ts +0 -86
  350. package/src/shared/components/create-boundary-component/hooks/use-scroll-settled-measurement.ts +0 -49
  351. package/src/shared/components/screen-container/deferred-visibility-host.tsx +0 -44
  352. package/src/shared/hooks/animation/use-associated-style.ts +0 -297
  353. package/src/shared/providers/screen/helpers/resolve-interpolated-style-output.ts +0 -61
package/README.md CHANGED
@@ -17,15 +17,36 @@ Customizable screen transitions for React Native. Build gesture-driven, shared e
17
17
 
18
18
  ## What's New In 3.4
19
19
 
20
- - **Auto snap sizing** with `snapPoints: ["auto"]` and `layouts.content`
21
- - **Explicit deferred first frames** by returning `"defer"` from `screenStyleInterpolator`
22
- - **Compound bounds components** via `Transition.Boundary.View` and `Transition.Boundary.Pressable`
23
- - **Custom boundary factories** via `Transition.createBoundaryComponent(..., { alreadyAnimated: true })`
20
+ 3.4 introduces a newer, more explicit path for shared transitions and snap-driven layouts.
21
+ Use the notes below as the source of truth when migrating examples or generating docs.
22
+
23
+ ### Added / Expanded
24
+
25
+ - **Auto snap sizing** with `snapPoints: ["auto"]` and `current.layouts.content`
26
+ - **Compound bounds components** via `Transition.Boundary.View`, `Transition.Boundary.Trigger`, and `Transition.Boundary.Target`
27
+ - **`Transition.createBoundaryComponent`** for building custom boundary wrappers, including `alreadyAnimated` support
24
28
  - **Navigation-style bounds zoom** through `bounds({ id }).navigation.zoom()`
29
+ - **`navigationMaskEnabled`** for library-managed masked navigation transitions
25
30
  - **Ancestor targeting** in `useScreenGesture()` and `useScreenAnimation()`
26
31
  - **Gesture release tuning** with `gestureReleaseVelocityScale` and `gestureReleaseVelocityMax`
27
32
  - **Surface slot support** through `surfaceComponent` and the interpolator `surface` slot
33
+ - **Animated `props` support across all slots** via `{ style, props }` slot returns
28
34
  - **Optional first-screen animation** with `experimental_animateOnInitialMount`
35
+ - **`logicallySettled`** for choreography that should finish before a spring is fully at rest
36
+
37
+ ### Deprecated / Replaced
38
+
39
+ - **`sharedBoundTag` on transition-aware components is deprecated for new work.** Prefer `Transition.Boundary.*` for new shared transition flows.
40
+ - **`Transition.MaskedView` is deprecated for new work.** Prefer `Transition.Boundary.*` with `bounds({ id }).navigation.zoom()` and `navigationMaskEnabled` for library-managed shared navigation transitions.
41
+ - **`createComponentStackNavigator` is deprecated.** Prefer blank stack for embedded and independent flows.
42
+ - **`expandViaScrollView` was renamed to `sheetScrollGestureBehavior`.**
43
+ - **Flat interpolator keys are deprecated.** Use `content`, `backdrop`, and `surface` instead of `contentStyle`, `backdropStyle`, and `overlayStyle`.
44
+ - **Legacy interpolator accessors are deprecated.** Use `current.layouts` and `current.snapIndex` instead of top-level `layouts` and `snapIndex`.
45
+ - **If you saw older alpha docs using `backgroundComponent` / `background`, use `surfaceComponent` / `surface`.**
46
+
47
+ ### Removed
48
+
49
+ - Deprecated screen overlay mode and legacy overlay animation props were removed.
29
50
 
30
51
  ## When to Use This Library
31
52
 
@@ -103,6 +124,41 @@ export const Stack = withLayoutContext<
103
124
  >(Navigator);
104
125
  ```
105
126
 
127
+ ### 3. Static Config
128
+
129
+ Blank stack-specific navigator props follow React Navigation's custom navigator pattern.
130
+
131
+ For the dynamic API, pass them to `<Stack.Navigator>`:
132
+
133
+ ```tsx
134
+ const Stack = createBlankStackNavigator();
135
+
136
+ function App() {
137
+ return (
138
+ <Stack.Navigator independent enableNativeScreens={false}>
139
+ <Stack.Screen name="Home" component={HomeScreen} />
140
+ <Stack.Screen name="Detail" component={DetailScreen} />
141
+ </Stack.Navigator>
142
+ );
143
+ }
144
+ ```
145
+
146
+ For the static API, keep them in the same config object:
147
+
148
+ ```tsx
149
+ import { createBlankStackNavigator } from "react-native-screen-transitions/blank-stack";
150
+
151
+ const Stack = createBlankStackNavigator({
152
+ initialRouteName: "Home",
153
+ screens: {
154
+ Home: HomeScreen,
155
+ Detail: DetailScreen,
156
+ },
157
+ independent: true,
158
+ enableNativeScreens: false,
159
+ });
160
+ ```
161
+
106
162
  ---
107
163
 
108
164
  ## Presets
@@ -125,9 +181,9 @@ Use built-in presets for common transitions:
125
181
  | `ZoomIn()` | Scales in with fade |
126
182
  | `DraggableCard()` | Multi-directional drag with scaling |
127
183
  | `ElasticCard()` | Elastic drag with overlay |
128
- | `SharedIGImage({ sharedBoundTag })` | Instagram-style shared image |
129
- | `SharedAppleMusic({ sharedBoundTag })` | Apple Music-style shared element |
130
- | `SharedXImage({ sharedBoundTag })` | X (Twitter)-style image transition |
184
+ | `SharedIGImage({ sharedBoundTag })` | Legacy Instagram-style shared image preset |
185
+ | `SharedAppleMusic({ sharedBoundTag })` | Legacy Apple Music-style shared element preset |
186
+ | `SharedXImage({ sharedBoundTag })` | Legacy X (Twitter)-style image transition preset |
131
187
 
132
188
  ---
133
189
 
@@ -167,7 +223,7 @@ options={{
167
223
 
168
224
  ```tsx
169
225
  options={{
170
- screenStyleInterpolator: ({ progress, layouts: { screen } }) => {
226
+ screenStyleInterpolator: ({ progress, current: { layouts: { screen } } }) => {
171
227
  "worklet";
172
228
  return {
173
229
  content: {
@@ -190,7 +246,7 @@ options={{
190
246
 
191
247
  ```tsx
192
248
  options={{
193
- screenStyleInterpolator: ({ progress, layouts: { screen } }) => {
249
+ screenStyleInterpolator: ({ progress, current: { layouts: { screen } } }) => {
194
250
  "worklet";
195
251
  return {
196
252
  content: {
@@ -211,21 +267,25 @@ Your interpolator can return:
211
267
 
212
268
  ```tsx
213
269
  return {
214
- content: { style: { ... } }, // Main screen
215
- backdrop: { style: { ... } }, // Backdrop / blur / dimming
216
- surface: { style: { ... }, props: { ... } }, // Custom surface layer
217
- ["my-id"]: { style: { ... } }, // Specific element via styleId
270
+ content: { style: { ... }, props: { ... } }, // Main screen slot
271
+ backdrop: { style: { ... }, props: { ... } }, // Backdrop / blur / dimming
272
+ surface: { style: { ... }, props: { ... } }, // Custom surface layer
273
+ ["my-id"]: { style: { ... }, props: { ... } }, // Specific element via styleId
218
274
  };
219
275
  ```
220
276
 
221
- Return `"defer"` to hide the screen's visual subtree until you have a safe first frame:
277
+ Every slot supports animated `style` and animated `props`.
278
+ Use the shorthand style-only form when you only need styles, or the explicit
279
+ `{ style, props }` form when the wrapped component exposes animatable props.
280
+
281
+ Return `null`, `undefined`, or `{}` when you want an interpolator frame to apply no transition styles:
222
282
 
223
283
  ```tsx
224
284
  screenStyleInterpolator: ({ bounds }) => {
225
285
  "worklet";
226
286
 
227
287
  const snapshot = bounds.getSnapshot("hero");
228
- if (!snapshot) return "defer";
288
+ if (!snapshot) return null;
229
289
 
230
290
  return {
231
291
  content: {
@@ -390,18 +450,18 @@ Create multi-stop sheets that snap to defined positions. Works with any gesture
390
450
 
391
451
  ### Auto Snap Points
392
452
 
393
- When you use `"auto"`, the library measures the content height and exposes it in `layouts.content`:
453
+ When you use `"auto"`, the library measures the content height and exposes it in `current.layouts.content`:
394
454
 
395
455
  ```tsx
396
- screenStyleInterpolator: ({ layouts, snapIndex }) => {
456
+ screenStyleInterpolator: ({ current }) => {
397
457
  "worklet";
398
458
 
399
- const contentHeight = layouts.content?.height ?? 0;
459
+ const contentHeight = current.layouts.content?.height ?? 0;
400
460
 
401
461
  return {
402
462
  content: {
403
463
  style: {
404
- opacity: interpolate(snapIndex, [0, 1], [0.8, 1]),
464
+ opacity: interpolate(current.snapIndex, [0, 1], [0.8, 1]),
405
465
  },
406
466
  },
407
467
  "sheet-height-debug": {
@@ -484,16 +544,16 @@ function BottomSheet() {
484
544
  }
485
545
  ```
486
546
 
487
- The animated `snapIndex` is available in screen interpolators via `ScreenInterpolationProps`:
547
+ The animated snap point index is available via `current.snapIndex` in `ScreenInterpolationProps`:
488
548
 
489
549
  ```tsx
490
- screenStyleInterpolator: ({ snapIndex }) => {
550
+ screenStyleInterpolator: ({ current }) => {
491
551
  // snapIndex interpolates between snap point indices
492
552
  // e.g., 0.5 means halfway between snap point 0 and 1
493
553
  return {
494
554
  content: {
495
555
  style: {
496
- opacity: interpolate(snapIndex, [0, 1], [0.5, 1]),
556
+ opacity: interpolate(current.snapIndex, [0, 1], [0.5, 1]),
497
557
  },
498
558
  },
499
559
  };
@@ -524,17 +584,38 @@ transitionSpec: {
524
584
 
525
585
  ## Shared Elements (Bounds API)
526
586
 
527
- Animate elements between screens by tagging them. In 3.4, the recommended API is `Transition.Boundary.*` for explicit bounds ownership, while `sharedBoundTag` on transition-aware components still works for lighter setups.
587
+ Animate elements between screens by tagging them. In 3.4, the recommended and forward-compatible API is `Transition.Boundary.*` for explicit bounds ownership.
588
+
589
+ `sharedBoundTag` on transition-aware components is deprecated and retained for legacy flows and presets.
528
590
 
529
591
  ### 1. Tag the Source
530
592
 
531
593
  ```tsx
532
- <Transition.Boundary.Pressable
594
+ <Transition.Boundary.Trigger
533
595
  id="avatar"
534
596
  onPress={() => navigation.navigate("Profile")}
535
597
  >
536
598
  <Image source={avatar} style={{ width: 50, height: 50 }} />
537
- </Transition.Boundary.Pressable>
599
+ </Transition.Boundary.Trigger>
600
+ ```
601
+
602
+ If the boundary owner is larger than the visual element you want to match,
603
+ wrap the measured descendant in `Transition.Boundary.Target`:
604
+
605
+ ```tsx
606
+ <Transition.Boundary.Trigger
607
+ id="avatar"
608
+ onPress={() => navigation.navigate("Profile")}
609
+ style={styles.card}
610
+ >
611
+ <Transition.Boundary.Target>
612
+ <Image source={avatar} style={styles.image} />
613
+ </Transition.Boundary.Target>
614
+
615
+ <View style={styles.copy}>
616
+ <Text style={styles.title}>Profile</Text>
617
+ </View>
618
+ </Transition.Boundary.Trigger>
538
619
  ```
539
620
 
540
621
  ### 2. Tag the Destination
@@ -620,13 +701,14 @@ const TabBar = ({ focusedIndex, progress }) => {
620
701
 
621
702
  | Component | Description |
622
703
  | ----------------------- | -------------------------------------- |
623
- | `Transition.View` | Animated view with `sharedBoundTag` |
624
- | `Transition.Pressable` | Pressable that measures bounds |
704
+ | `Transition.View` | Animated view; `sharedBoundTag` usage is legacy/deprecated |
705
+ | `Transition.Pressable` | Pressable; `sharedBoundTag` usage is legacy/deprecated |
625
706
  | `Transition.ScrollView` | ScrollView with gesture coordination |
626
707
  | `Transition.FlatList` | FlatList with gesture coordination |
627
708
  | `Transition.Boundary.View` | Explicit bounds destination/source registration |
628
- | `Transition.Boundary.Pressable` | Pressable boundary that captures source bounds on press |
629
- | `Transition.MaskedView` | For reveal effects (requires native) |
709
+ | `Transition.Boundary.Trigger` | Pressable boundary owner that captures source bounds on press |
710
+ | `Transition.Boundary.Target` | Optional nested measurement target inside a boundary owner |
711
+ | `Transition.MaskedView` | Deprecated legacy reveal helper (requires native) |
630
712
 
631
713
  Helper exports:
632
714
 
@@ -723,30 +805,32 @@ The full `screenStyleInterpolator` receives these props:
723
805
  | ---------------- | -------------------------------------------------------- |
724
806
  | `progress` | Combined progress (0-2) |
725
807
  | `stackProgress` | Accumulated progress across entire stack |
726
- | `snapIndex` | Animated snap point index (-1 if no snap points) |
727
808
  | `focused` | Whether this screen is the topmost in the stack |
728
809
  | `current` | Current screen state |
729
810
  | `previous` | Previous screen state |
730
811
  | `next` | Next screen state |
731
812
  | `active` | Screen driving the transition |
732
813
  | `inactive` | Screen NOT driving the transition |
733
- | `layouts.screen` | Screen dimensions |
734
- | `layouts.content` | Measured content dimensions when available (`"auto"` snap points) |
735
814
  | `insets` | Safe area insets |
736
815
  | `bounds` | Shared element bounds function |
737
816
 
817
+ Prefer `current.snapIndex`, `current.layouts.screen`, and `current.layouts.content` for new code.
818
+
738
819
  ### Screen State Properties
739
820
 
740
821
  Each screen state (`current`, `previous`, `next`, `active`, `inactive`) contains:
741
822
 
742
823
  | Property | Description |
743
824
  | ----------- | ---------------------------------------- |
744
- | `progress` | Animation progress (0 or 1) |
745
- | `closing` | Whether closing (0 or 1) |
746
- | `entering` | Whether entering (0 or 1) |
747
- | `animating` | Whether animating (0 or 1) |
748
- | `gesture` | Gesture values (x, y, normalized values) |
749
- | `meta` | Custom metadata from options |
825
+ | `progress` | Animation progress (0 or 1) |
826
+ | `closing` | Whether closing (0 or 1) |
827
+ | `entering` | Whether entering (0 or 1) |
828
+ | `animating` | Whether animating (0 or 1) |
829
+ | `logicallySettled` | Whether choreography can treat the screen as done |
830
+ | `snapIndex` | Animated snap point index for this screen |
831
+ | `layouts` | Screen and measured content layouts |
832
+ | `gesture` | Gesture values (x, y, `normX`, `normY`, etc.) |
833
+ | `meta` | Custom metadata from options |
750
834
 
751
835
  ### Using `meta` for Conditional Logic
752
836
 
@@ -774,7 +858,9 @@ screenStyleInterpolator: ({ progress }) => {
774
858
  "worklet";
775
859
  return {
776
860
  "hero-image": {
777
- opacity: interpolate(progress, [0, 1], [0, 1]),
861
+ style: {
862
+ opacity: interpolate(progress, [0, 1], [0, 1]),
863
+ },
778
864
  },
779
865
  };
780
866
  };
@@ -789,13 +875,13 @@ screenStyleInterpolator: ({ progress }) => {
789
875
 
790
876
  ## Stack Types
791
877
 
792
- All three stacks share the same animation API. Choose based on your needs:
878
+ Blank stack and native stack are the primary APIs. Component stack remains available as a deprecated compatibility API.
793
879
 
794
880
  | Stack | Best For |
795
881
  | ------------------- | --------------------------------------------------------- |
796
882
  | **Blank Stack** | Most apps. Full control, all features. |
797
883
  | **Native Stack** | When you need native screen primitives. |
798
- | **Component Stack** | Embedded flows, isolated from React Navigation. *(Experimental)* |
884
+ | **Component Stack** | Legacy embedded-flow API. Prefer blank stack instead. |
799
885
 
800
886
  ### Blank Stack
801
887
 
@@ -821,11 +907,11 @@ import { createNativeStackNavigator } from "react-native-screen-transitions/nati
821
907
  />
822
908
  ```
823
909
 
824
- ### Component Stack (Experimental)
910
+ ### Component Stack (Deprecated)
825
911
 
826
- > **Note:** This API is experimental and may change based on community feedback.
912
+ > **Note:** Prefer blank stack for new work. It now covers the embedded and independent flow use case.
827
913
 
828
- Standalone navigator, not connected to React Navigation. Ideal for embedded flows.
914
+ Standalone navigator, not connected to React Navigation. Kept for compatibility with older integrations.
829
915
 
830
916
  ```tsx
831
917
  import { createComponentStackNavigator } from "react-native-screen-transitions/component-stack";
@@ -884,9 +970,13 @@ options={{
884
970
 
885
971
  ---
886
972
 
887
- ## Masked View Setup
973
+ ## Legacy Masked View Setup (Deprecated)
974
+
975
+ `Transition.MaskedView` and `sharedBoundTag` are deprecated for new work.
976
+
977
+ Prefer `Transition.Boundary.*` for explicit shared-element ownership, and prefer `bounds({ id }).navigation.zoom()` with `navigationMaskEnabled` when you want library-managed navigation-style masked transitions.
888
978
 
889
- Required for `SharedIGImage` and `SharedAppleMusic` presets. The masked view creates the "reveal" effect where content expands from the shared element.
979
+ This section is kept for compatibility with legacy presets such as `SharedIGImage` and `SharedAppleMusic`.
890
980
 
891
981
  > **Note**: Requires native code. Will not work in Expo Go.
892
982
 
@@ -52,39 +52,32 @@ function BlankStackNavigatorInner({
52
52
  })
53
53
  });
54
54
  }
55
- function createBlankStackNavigatorComponent({
56
- independent,
57
- enableNativeScreens
55
+ function BlankStackNavigator({
56
+ independent = false,
57
+ enableNativeScreens = true,
58
+ ...rest
58
59
  }) {
59
- function BlankStackNavigator(props) {
60
- const isNested = React.useContext(BlankStackContext);
61
- const navigator = /*#__PURE__*/(0, _jsxRuntime.jsx)(BlankStackNavigatorInner, {
62
- ...props,
63
- ...(!enableNativeScreens && {
64
- DISABLE_NATIVE_SCREENS: true
65
- }),
66
- DISABLE_NATIVE_SCREEN_CONTAINER: independent
67
- });
68
- if (!independent || isNested) {
69
- return navigator;
70
- }
71
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.NavigationIndependentTree, {
72
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.NavigationContainer, {
73
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BlankStackContext.Provider, {
74
- value: true,
75
- children: navigator
76
- })
77
- })
78
- });
60
+ const isNested = React.useContext(BlankStackContext);
61
+ const navigator = /*#__PURE__*/(0, _jsxRuntime.jsx)(BlankStackNavigatorInner, {
62
+ ...rest,
63
+ ...(!enableNativeScreens && {
64
+ DISABLE_NATIVE_SCREENS: true
65
+ }),
66
+ DISABLE_NATIVE_SCREEN_CONTAINER: independent
67
+ });
68
+ if (!independent || isNested) {
69
+ return navigator;
79
70
  }
80
- BlankStackNavigator.displayName = independent ? "IndependentBlankStackNavigator" : "BlankStackNavigator";
81
- return BlankStackNavigator;
71
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.NavigationIndependentTree, {
72
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.NavigationContainer, {
73
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BlankStackContext.Provider, {
74
+ value: true,
75
+ children: navigator
76
+ })
77
+ })
78
+ });
82
79
  }
83
- const BlankStackNavigator = createBlankStackNavigatorComponent({
84
- independent: false,
85
- enableNativeScreens: true
86
- });
87
-
80
+ BlankStackNavigator.displayName = "BlankStackNavigator";
88
81
  /**
89
82
  * Creates a blank stack navigator with gesture-driven transitions.
90
83
  *
@@ -92,26 +85,15 @@ const BlankStackNavigator = createBlankStackNavigatorComponent({
92
85
  * it participates in the current navigation tree and uses native screen
93
86
  * primitives on supported native platforms.
94
87
  *
95
- * Pass {@link BlankStackFactoryOptions} when you need embedded-flow behavior:
88
+ * Blank stack also accepts navigator-specific props for embedded-flow behavior:
96
89
  * - `independent: true` creates an isolated navigator for nested flows
97
90
  * - `enableNativeScreens: false` renders the stack with regular views instead
98
91
  * of `react-native-screens`
99
92
  *
100
- * These options are factory-only. Use screen options for per-screen transition
101
- * behavior, and use factory options when you need to change how the navigator
102
- * itself is hosted.
93
+ * In the dynamic API, pass these to `<Stack.Navigator />`.
94
+ * In the static API, pass them in the same config object as `screens`.
103
95
  */
104
-
105
96
  function createBlankStackNavigator(config) {
106
- const {
107
- independent = false,
108
- enableNativeScreens = true,
109
- ...staticConfig
110
- } = config ?? {};
111
- const Navigator = createBlankStackNavigatorComponent({
112
- independent,
113
- enableNativeScreens
114
- });
115
- return (0, _native.createNavigatorFactory)(Navigator)(config ? staticConfig : undefined);
97
+ return (0, _native.createNavigatorFactory)(BlankStackNavigator)(config);
116
98
  }
117
99
  //# sourceMappingURL=create-blank-stack-navigator.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_native","require","React","_interopRequireWildcard","_useTabPressReset","_stackView","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BlankStackContext","createContext","displayName","BlankStackNavigatorInner","id","initialRouteName","children","layout","screenListeners","screenOptions","screenLayout","DISABLE_NATIVE_SCREENS","DISABLE_NATIVE_SCREEN_CONTAINER","rest","state","describe","descriptors","navigation","NavigationContent","useNavigationBuilder","StackRouter","useTabPressReset","index","key","jsx","StackView","createBlankStackNavigatorComponent","independent","enableNativeScreens","BlankStackNavigator","props","isNested","useContext","navigator","NavigationIndependentTree","NavigationContainer","Provider","value","createBlankStackNavigator","config","staticConfig","Navigator","createNavigatorFactory","undefined"],"sourceRoot":"../../../../src","sources":["blank-stack/navigators/create-blank-stack-navigator.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_native","require","React","_interopRequireWildcard","_useTabPressReset","_stackView","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BlankStackContext","createContext","displayName","BlankStackNavigatorInner","id","initialRouteName","children","layout","screenListeners","screenOptions","screenLayout","DISABLE_NATIVE_SCREENS","DISABLE_NATIVE_SCREEN_CONTAINER","rest","state","describe","descriptors","navigation","NavigationContent","useNavigationBuilder","StackRouter","useTabPressReset","index","key","jsx","StackView","BlankStackNavigator","independent","enableNativeScreens","isNested","useContext","navigator","NavigationIndependentTree","NavigationContainer","Provider","value","createBlankStackNavigator","config","createNavigatorFactory"],"sourceRoot":"../../../../src","sources":["blank-stack/navigators/create-blank-stack-navigator.tsx"],"mappings":"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","ignoreList":[]}
@@ -80,7 +80,7 @@ function IsolatedComponentStackNavigator(props) {
80
80
  /**
81
81
  * @deprecated Component stack was originally introduced for independent,
82
82
  * embedded navigation flows. Blank stack now supports that use case directly
83
- * via `createBlankStackNavigator({ independent: true })`, with
83
+ * via navigator props such as `<BlankStack.Navigator independent />`, with
84
84
  * `enableNativeScreens` available when you need to switch between native
85
85
  * screens and regular views. Prefer blank stack for new work; component stack
86
86
  * will be removed in a future release.
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BoundaryTarget = void 0;
7
+ var _react = require("react");
8
+ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
9
+ var _boundaryOwner = require("../providers/boundary-owner.provider");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ const BoundaryTarget = exports.BoundaryTarget = /*#__PURE__*/(0, _react.memo)(function BoundaryTarget(props) {
13
+ const {
14
+ style,
15
+ ...rest
16
+ } = props;
17
+ const targetAnimatedRef = (0, _reactNativeReanimated.useAnimatedRef)();
18
+ const ownerContext = (0, _boundaryOwner.useBoundaryOwnerContext)();
19
+ const registerTargetRef = ownerContext?.registerTargetRef;
20
+ const unregisterTargetRef = ownerContext?.unregisterTargetRef;
21
+ const isActiveTarget = ownerContext?.activeTargetRef === targetAnimatedRef;
22
+ (0, _react.useLayoutEffect)(() => {
23
+ if (!registerTargetRef || !unregisterTargetRef) {
24
+ if (__DEV__) {
25
+ console.warn(_boundaryOwner.TARGET_OUTSIDE_OWNER_WARNING);
26
+ }
27
+ return;
28
+ }
29
+ registerTargetRef(targetAnimatedRef);
30
+ return () => {
31
+ unregisterTargetRef(targetAnimatedRef);
32
+ };
33
+ }, [registerTargetRef, unregisterTargetRef, targetAnimatedRef]);
34
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
35
+ ...rest,
36
+ ref: targetAnimatedRef,
37
+ style: [style, isActiveTarget ? ownerContext.associatedTargetStyles : undefined],
38
+ collapsable: false
39
+ });
40
+ });
41
+ //# sourceMappingURL=boundary-target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNativeReanimated","_interopRequireWildcard","_boundaryOwner","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BoundaryTarget","exports","memo","props","style","rest","targetAnimatedRef","useAnimatedRef","ownerContext","useBoundaryOwnerContext","registerTargetRef","unregisterTargetRef","isActiveTarget","activeTargetRef","useLayoutEffect","__DEV__","console","warn","TARGET_OUTSIDE_OWNER_WARNING","jsx","View","ref","associatedTargetStyles","undefined","collapsable"],"sourceRoot":"../../../../../../src","sources":["shared/components/create-boundary-component/components/boundary-target.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAG8C,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAE,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAIvC,MAAMkB,cAAc,GAAAC,OAAA,CAAAD,cAAA,gBAAG,IAAAE,WAAI,EAAC,SAASF,cAAcA,CACzDG,KAA0B,EACzB;EACD,MAAM;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGF,KAAK;EAChC,MAAMG,iBAAiB,GAAG,IAAAC,qCAAc,EAAO,CAAC;EAChD,MAAMC,YAAY,GAAG,IAAAC,sCAAuB,EAAC,CAAC;EAC9C,MAAMC,iBAAiB,GAAGF,YAAY,EAAEE,iBAAiB;EACzD,MAAMC,mBAAmB,GAAGH,YAAY,EAAEG,mBAAmB;EAC7D,MAAMC,cAAc,GAAGJ,YAAY,EAAEK,eAAe,KAAKP,iBAAiB;EAE1E,IAAAQ,sBAAe,EAAC,MAAM;IACrB,IAAI,CAACJ,iBAAiB,IAAI,CAACC,mBAAmB,EAAE;MAC/C,IAAII,OAAO,EAAE;QACZC,OAAO,CAACC,IAAI,CAACC,2CAA4B,CAAC;MAC3C;MACA;IACD;IAEAR,iBAAiB,CAACJ,iBAAiB,CAAC;IACpC,OAAO,MAAM;MACZK,mBAAmB,CAACL,iBAAiB,CAAC;IACvC,CAAC;EACF,CAAC,EAAE,CAACI,iBAAiB,EAAEC,mBAAmB,EAAEL,iBAAiB,CAAC,CAAC;EAE/D,oBACC,IAAA1B,WAAA,CAAAuC,GAAA,EAAC1C,sBAAA,CAAAc,OAAQ,CAAC6B,IAAI;IAAA,GACTf,IAAI;IACRgB,GAAG,EAAEf,iBAAkB;IACvBF,KAAK,EAAE,CACNA,KAAK,EACLQ,cAAc,GAAGJ,YAAY,CAACc,sBAAsB,GAAGC,SAAS,CAC/D;IACFC,WAAW,EAAE;EAAM,CACnB,CAAC;AAEJ,CAAC,CAAC","ignoreList":[]}