react-native-screen-transitions 4.0.0-alpha.5 → 4.0.0-alpha.7

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 (287) hide show
  1. package/lib/commonjs/components/boundary/components/boundary-lifecycle.js +36 -0
  2. package/lib/commonjs/components/boundary/components/boundary-lifecycle.js.map +1 -0
  3. package/lib/commonjs/components/boundary/components/boundary-target.js +1 -0
  4. package/lib/commonjs/components/boundary/components/boundary-target.js.map +1 -1
  5. package/lib/commonjs/components/boundary/create-boundary-component.js +1 -0
  6. package/lib/commonjs/components/boundary/create-boundary-component.js.map +1 -1
  7. package/lib/commonjs/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +1 -13
  8. package/lib/commonjs/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
  9. package/lib/commonjs/components/boundary/hooks/lifecycles/use-refresh-boundary.js +9 -2
  10. package/lib/commonjs/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
  11. package/lib/commonjs/components/boundary/hooks/use-boundary-measurement.js +3 -2
  12. package/lib/commonjs/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  13. package/lib/commonjs/components/boundary/hooks/use-measurer.js +9 -2
  14. package/lib/commonjs/components/boundary/hooks/use-measurer.js.map +1 -1
  15. package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/host.js +5 -12
  16. package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -1
  17. package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +25 -43
  18. package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -1
  19. package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/local-measurement.js +13 -0
  20. package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/local-measurement.js.map +1 -0
  21. package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/offset-style.js +8 -31
  22. package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/offset-style.js.map +1 -1
  23. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +14 -19
  24. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -1
  25. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +3 -1
  26. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  27. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +19 -48
  28. package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -1
  29. package/lib/commonjs/components/boundary/portal/components/boundary-portal/index.js +6 -2
  30. package/lib/commonjs/components/boundary/portal/components/boundary-portal/index.js.map +1 -1
  31. package/lib/commonjs/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js +1 -1
  32. package/lib/commonjs/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -1
  33. package/lib/commonjs/components/boundary/providers/boundary-root.provider.js +19 -17
  34. package/lib/commonjs/components/boundary/providers/boundary-root.provider.js.map +1 -1
  35. package/lib/commonjs/components/boundary/utils/refresh-signals.js +19 -5
  36. package/lib/commonjs/components/boundary/utils/refresh-signals.js.map +1 -1
  37. package/lib/commonjs/components/screen-container/layers/backdrop.js +11 -7
  38. package/lib/commonjs/components/screen-container/layers/backdrop.js.map +1 -1
  39. package/lib/commonjs/components/screen-lifecycle/hooks/helpers/close-interception-rules.js +32 -0
  40. package/lib/commonjs/components/screen-lifecycle/hooks/helpers/close-interception-rules.js.map +1 -0
  41. package/lib/commonjs/components/screen-lifecycle/hooks/use-close-completion.js +27 -0
  42. package/lib/commonjs/components/screen-lifecycle/hooks/use-close-completion.js.map +1 -0
  43. package/lib/commonjs/components/screen-lifecycle/hooks/use-close-transition-intent.js +61 -86
  44. package/lib/commonjs/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
  45. package/lib/commonjs/components/screen-lifecycle/hooks/use-transition-start-controller.js +1 -5
  46. package/lib/commonjs/components/screen-lifecycle/hooks/use-transition-start-controller.js.map +1 -1
  47. package/lib/commonjs/components/screen-lifecycle/index.js +9 -6
  48. package/lib/commonjs/components/screen-lifecycle/index.js.map +1 -1
  49. package/lib/commonjs/hooks/navigation/use-navigation-helpers.js +30 -13
  50. package/lib/commonjs/hooks/navigation/use-navigation-helpers.js.map +1 -1
  51. package/lib/commonjs/providers/helpers/measured-bounds-writes.js +1 -2
  52. package/lib/commonjs/providers/helpers/measured-bounds-writes.js.map +1 -1
  53. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture-config.js +9 -2
  54. package/lib/commonjs/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
  55. package/lib/commonjs/providers/screen/gestures/pan/behavior/pan-lifecycle.js +4 -5
  56. package/lib/commonjs/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  57. package/lib/commonjs/providers/screen/gestures/pan/behavior/use-pan-behavior.js +2 -3
  58. package/lib/commonjs/providers/screen/gestures/pan/behavior/use-pan-behavior.js.map +1 -1
  59. package/lib/commonjs/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +4 -5
  60. package/lib/commonjs/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  61. package/lib/commonjs/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js +2 -3
  62. package/lib/commonjs/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js.map +1 -1
  63. package/lib/commonjs/providers/screen/gestures/shared/policy.js +9 -5
  64. package/lib/commonjs/providers/screen/gestures/shared/policy.js.map +1 -1
  65. package/lib/commonjs/providers/screen/styles/helpers/create-interpolator-scope.js +40 -0
  66. package/lib/commonjs/providers/screen/styles/helpers/create-interpolator-scope.js.map +1 -0
  67. package/lib/commonjs/providers/screen/styles/hooks/use-interpolated-style-maps.js +5 -10
  68. package/lib/commonjs/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  69. package/lib/commonjs/providers/stack/blank-stack-state/blank-stack-controller.js +7 -9
  70. package/lib/commonjs/providers/stack/blank-stack-state/blank-stack-controller.js.map +1 -1
  71. package/lib/commonjs/stores/bounds/internals/links.js +1 -1
  72. package/lib/commonjs/stores/bounds/internals/links.js.map +1 -1
  73. package/lib/commonjs/stores/system.store.js +1 -2
  74. package/lib/commonjs/stores/system.store.js.map +1 -1
  75. package/lib/commonjs/utils/animation/animate-to-progress.js +0 -22
  76. package/lib/commonjs/utils/animation/animate-to-progress.js.map +1 -1
  77. package/lib/commonjs/utils/navigation/close-action-replay.js +22 -0
  78. package/lib/commonjs/utils/navigation/close-action-replay.js.map +1 -0
  79. package/lib/module/components/boundary/components/boundary-lifecycle.js +32 -0
  80. package/lib/module/components/boundary/components/boundary-lifecycle.js.map +1 -0
  81. package/lib/module/components/boundary/components/boundary-target.js +1 -0
  82. package/lib/module/components/boundary/components/boundary-target.js.map +1 -1
  83. package/lib/module/components/boundary/create-boundary-component.js +1 -0
  84. package/lib/module/components/boundary/create-boundary-component.js.map +1 -1
  85. package/lib/module/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +1 -13
  86. package/lib/module/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
  87. package/lib/module/components/boundary/hooks/lifecycles/use-refresh-boundary.js +9 -2
  88. package/lib/module/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
  89. package/lib/module/components/boundary/hooks/use-boundary-measurement.js +3 -2
  90. package/lib/module/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  91. package/lib/module/components/boundary/hooks/use-measurer.js +9 -2
  92. package/lib/module/components/boundary/hooks/use-measurer.js.map +1 -1
  93. package/lib/module/components/boundary/portal/components/boundary-portal/components/host.js +5 -12
  94. package/lib/module/components/boundary/portal/components/boundary-portal/components/host.js.map +1 -1
  95. package/lib/module/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +27 -45
  96. package/lib/module/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -1
  97. package/lib/module/components/boundary/portal/components/boundary-portal/helpers/local-measurement.js +8 -0
  98. package/lib/module/components/boundary/portal/components/boundary-portal/helpers/local-measurement.js.map +1 -0
  99. package/lib/module/components/boundary/portal/components/boundary-portal/helpers/offset-style.js +8 -32
  100. package/lib/module/components/boundary/portal/components/boundary-portal/helpers/offset-style.js.map +1 -1
  101. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +15 -20
  102. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -1
  103. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +3 -1
  104. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  105. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +19 -48
  106. package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -1
  107. package/lib/module/components/boundary/portal/components/boundary-portal/index.js +6 -2
  108. package/lib/module/components/boundary/portal/components/boundary-portal/index.js.map +1 -1
  109. package/lib/module/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js +1 -1
  110. package/lib/module/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -1
  111. package/lib/module/components/boundary/providers/boundary-root.provider.js +20 -18
  112. package/lib/module/components/boundary/providers/boundary-root.provider.js.map +1 -1
  113. package/lib/module/components/boundary/utils/refresh-signals.js +19 -5
  114. package/lib/module/components/boundary/utils/refresh-signals.js.map +1 -1
  115. package/lib/module/components/screen-container/layers/backdrop.js +12 -8
  116. package/lib/module/components/screen-container/layers/backdrop.js.map +1 -1
  117. package/lib/module/components/screen-lifecycle/hooks/helpers/close-interception-rules.js +26 -0
  118. package/lib/module/components/screen-lifecycle/hooks/helpers/close-interception-rules.js.map +1 -0
  119. package/lib/module/components/screen-lifecycle/hooks/use-close-completion.js +22 -0
  120. package/lib/module/components/screen-lifecycle/hooks/use-close-completion.js.map +1 -0
  121. package/lib/module/components/screen-lifecycle/hooks/use-close-transition-intent.js +61 -85
  122. package/lib/module/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
  123. package/lib/module/components/screen-lifecycle/hooks/use-transition-start-controller.js +1 -5
  124. package/lib/module/components/screen-lifecycle/hooks/use-transition-start-controller.js.map +1 -1
  125. package/lib/module/components/screen-lifecycle/index.js +9 -6
  126. package/lib/module/components/screen-lifecycle/index.js.map +1 -1
  127. package/lib/module/hooks/navigation/use-navigation-helpers.js +30 -13
  128. package/lib/module/hooks/navigation/use-navigation-helpers.js.map +1 -1
  129. package/lib/module/providers/helpers/measured-bounds-writes.js +1 -2
  130. package/lib/module/providers/helpers/measured-bounds-writes.js.map +1 -1
  131. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture-config.js +9 -2
  132. package/lib/module/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
  133. package/lib/module/providers/screen/gestures/pan/behavior/pan-lifecycle.js +4 -5
  134. package/lib/module/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
  135. package/lib/module/providers/screen/gestures/pan/behavior/use-pan-behavior.js +2 -3
  136. package/lib/module/providers/screen/gestures/pan/behavior/use-pan-behavior.js.map +1 -1
  137. package/lib/module/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +4 -5
  138. package/lib/module/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
  139. package/lib/module/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js +2 -3
  140. package/lib/module/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js.map +1 -1
  141. package/lib/module/providers/screen/gestures/shared/policy.js +9 -5
  142. package/lib/module/providers/screen/gestures/shared/policy.js.map +1 -1
  143. package/lib/module/providers/screen/styles/helpers/create-interpolator-scope.js +35 -0
  144. package/lib/module/providers/screen/styles/helpers/create-interpolator-scope.js.map +1 -0
  145. package/lib/module/providers/screen/styles/hooks/use-interpolated-style-maps.js +5 -10
  146. package/lib/module/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  147. package/lib/module/providers/stack/blank-stack-state/blank-stack-controller.js +7 -9
  148. package/lib/module/providers/stack/blank-stack-state/blank-stack-controller.js.map +1 -1
  149. package/lib/module/stores/bounds/internals/links.js +1 -1
  150. package/lib/module/stores/bounds/internals/links.js.map +1 -1
  151. package/lib/module/stores/system.store.js +1 -2
  152. package/lib/module/stores/system.store.js.map +1 -1
  153. package/lib/module/utils/animation/animate-to-progress.js +0 -22
  154. package/lib/module/utils/animation/animate-to-progress.js.map +1 -1
  155. package/lib/module/utils/navigation/close-action-replay.js +16 -0
  156. package/lib/module/utils/navigation/close-action-replay.js.map +1 -0
  157. package/lib/typescript/components/boundary/components/boundary-lifecycle.d.ts +18 -0
  158. package/lib/typescript/components/boundary/components/boundary-lifecycle.d.ts.map +1 -0
  159. package/lib/typescript/components/boundary/components/boundary-target.d.ts.map +1 -1
  160. package/lib/typescript/components/boundary/create-boundary-component.d.ts.map +1 -1
  161. package/lib/typescript/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts +1 -2
  162. package/lib/typescript/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts.map +1 -1
  163. package/lib/typescript/components/boundary/hooks/lifecycles/use-refresh-boundary.d.ts.map +1 -1
  164. package/lib/typescript/components/boundary/hooks/use-boundary-measurement.d.ts +3 -2
  165. package/lib/typescript/components/boundary/hooks/use-boundary-measurement.d.ts.map +1 -1
  166. package/lib/typescript/components/boundary/hooks/use-measurer.d.ts +3 -2
  167. package/lib/typescript/components/boundary/hooks/use-measurer.d.ts.map +1 -1
  168. package/lib/typescript/components/boundary/portal/components/boundary-portal/components/host.d.ts.map +1 -1
  169. package/lib/typescript/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.d.ts +5 -1
  170. package/lib/typescript/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.d.ts.map +1 -1
  171. package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/local-measurement.d.ts +4 -0
  172. package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/local-measurement.d.ts.map +1 -0
  173. package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/offset-style.d.ts +4 -17
  174. package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/offset-style.d.ts.map +1 -1
  175. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts +3 -1
  176. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts.map +1 -1
  177. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts +3 -1
  178. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -1
  179. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts +5 -9
  180. package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts.map +1 -1
  181. package/lib/typescript/components/boundary/portal/components/boundary-portal/index.d.ts +3 -1
  182. package/lib/typescript/components/boundary/portal/components/boundary-portal/index.d.ts.map +1 -1
  183. package/lib/typescript/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts +2 -1
  184. package/lib/typescript/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts.map +1 -1
  185. package/lib/typescript/components/boundary/providers/boundary-root.provider.d.ts +2 -1
  186. package/lib/typescript/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
  187. package/lib/typescript/components/boundary/types.d.ts +6 -0
  188. package/lib/typescript/components/boundary/types.d.ts.map +1 -1
  189. package/lib/typescript/components/boundary/utils/refresh-signals.d.ts +1 -0
  190. package/lib/typescript/components/boundary/utils/refresh-signals.d.ts.map +1 -1
  191. package/lib/typescript/components/screen-container/layers/backdrop.d.ts.map +1 -1
  192. package/lib/typescript/components/screen-lifecycle/hooks/helpers/close-interception-rules.d.ts +28 -0
  193. package/lib/typescript/components/screen-lifecycle/hooks/helpers/close-interception-rules.d.ts.map +1 -0
  194. package/lib/typescript/components/screen-lifecycle/hooks/use-close-completion.d.ts +7 -0
  195. package/lib/typescript/components/screen-lifecycle/hooks/use-close-completion.d.ts.map +1 -0
  196. package/lib/typescript/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts +2 -7
  197. package/lib/typescript/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts.map +1 -1
  198. package/lib/typescript/components/screen-lifecycle/hooks/use-transition-start-controller.d.ts +1 -3
  199. package/lib/typescript/components/screen-lifecycle/hooks/use-transition-start-controller.d.ts.map +1 -1
  200. package/lib/typescript/components/screen-lifecycle/index.d.ts.map +1 -1
  201. package/lib/typescript/hooks/navigation/use-navigation-helpers.d.ts +1 -0
  202. package/lib/typescript/hooks/navigation/use-navigation-helpers.d.ts.map +1 -1
  203. package/lib/typescript/navigators/react-navigation/index.d.ts +1 -1
  204. package/lib/typescript/providers/screen/gestures/hooks/use-screen-gesture-config.d.ts.map +1 -1
  205. package/lib/typescript/providers/screen/gestures/pan/behavior/pan-lifecycle.d.ts +1 -1
  206. package/lib/typescript/providers/screen/gestures/pan/behavior/pan-lifecycle.d.ts.map +1 -1
  207. package/lib/typescript/providers/screen/gestures/pan/behavior/use-pan-behavior.d.ts.map +1 -1
  208. package/lib/typescript/providers/screen/gestures/pinch/behavior/pinch-lifecycle.d.ts +1 -1
  209. package/lib/typescript/providers/screen/gestures/pinch/behavior/pinch-lifecycle.d.ts.map +1 -1
  210. package/lib/typescript/providers/screen/gestures/pinch/behavior/use-pinch-behavior.d.ts.map +1 -1
  211. package/lib/typescript/providers/screen/gestures/shared/policy.d.ts +2 -1
  212. package/lib/typescript/providers/screen/gestures/shared/policy.d.ts.map +1 -1
  213. package/lib/typescript/providers/screen/gestures/types.d.ts +2 -0
  214. package/lib/typescript/providers/screen/gestures/types.d.ts.map +1 -1
  215. package/lib/typescript/providers/screen/styles/helpers/create-interpolator-scope.d.ts +9 -0
  216. package/lib/typescript/providers/screen/styles/helpers/create-interpolator-scope.d.ts.map +1 -0
  217. package/lib/typescript/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
  218. package/lib/typescript/providers/stack/blank-stack-state/blank-stack-controller.d.ts.map +1 -1
  219. package/lib/typescript/stores/system.store.d.ts +1 -2
  220. package/lib/typescript/stores/system.store.d.ts.map +1 -1
  221. package/lib/typescript/utils/animation/animate-to-progress.d.ts +1 -2
  222. package/lib/typescript/utils/animation/animate-to-progress.d.ts.map +1 -1
  223. package/lib/typescript/utils/navigation/close-action-replay.d.ts +4 -0
  224. package/lib/typescript/utils/navigation/close-action-replay.d.ts.map +1 -0
  225. package/package.json +1 -1
  226. package/src/components/boundary/components/boundary-lifecycle.tsx +53 -0
  227. package/src/components/boundary/components/boundary-target.tsx +1 -0
  228. package/src/components/boundary/create-boundary-component.tsx +1 -0
  229. package/src/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts +0 -14
  230. package/src/components/boundary/hooks/lifecycles/use-refresh-boundary.ts +13 -2
  231. package/src/components/boundary/hooks/use-boundary-measurement.ts +7 -2
  232. package/src/components/boundary/hooks/use-measurer.ts +11 -1
  233. package/src/components/boundary/portal/components/boundary-portal/components/host.tsx +13 -11
  234. package/src/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.tsx +44 -55
  235. package/src/components/boundary/portal/components/boundary-portal/helpers/local-measurement.ts +10 -0
  236. package/src/components/boundary/portal/components/boundary-portal/helpers/offset-style.ts +11 -55
  237. package/src/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.ts +20 -24
  238. package/src/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +6 -0
  239. package/src/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.ts +20 -68
  240. package/src/components/boundary/portal/components/boundary-portal/index.tsx +19 -3
  241. package/src/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.ts +3 -2
  242. package/src/components/boundary/providers/boundary-root.provider.tsx +29 -20
  243. package/src/components/boundary/types.ts +9 -0
  244. package/src/components/boundary/utils/refresh-signals.ts +39 -6
  245. package/src/components/screen-container/layers/backdrop.tsx +11 -7
  246. package/src/components/screen-lifecycle/hooks/helpers/close-interception-rules.ts +66 -0
  247. package/src/components/screen-lifecycle/hooks/use-close-completion.ts +25 -0
  248. package/src/components/screen-lifecycle/hooks/use-close-transition-intent.ts +68 -108
  249. package/src/components/screen-lifecycle/hooks/use-transition-start-controller.ts +0 -12
  250. package/src/components/screen-lifecycle/index.tsx +8 -4
  251. package/src/hooks/navigation/use-navigation-helpers.ts +40 -12
  252. package/src/providers/helpers/measured-bounds-writes.ts +1 -1
  253. package/src/providers/screen/gestures/hooks/use-screen-gesture-config.ts +9 -1
  254. package/src/providers/screen/gestures/pan/behavior/pan-lifecycle.ts +4 -6
  255. package/src/providers/screen/gestures/pan/behavior/use-pan-behavior.ts +1 -3
  256. package/src/providers/screen/gestures/pinch/behavior/pinch-lifecycle.ts +4 -6
  257. package/src/providers/screen/gestures/pinch/behavior/use-pinch-behavior.ts +2 -8
  258. package/src/providers/screen/gestures/shared/policy.ts +17 -6
  259. package/src/providers/screen/gestures/types.ts +2 -0
  260. package/src/providers/screen/styles/helpers/create-interpolator-scope.ts +45 -0
  261. package/src/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +8 -12
  262. package/src/providers/stack/blank-stack-state/blank-stack-controller.ts +7 -7
  263. package/src/stores/bounds/internals/links.ts +1 -1
  264. package/src/stores/system.store.ts +1 -2
  265. package/src/utils/animation/animate-to-progress.ts +0 -23
  266. package/src/utils/navigation/close-action-replay.ts +25 -0
  267. package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/active-pair.js +0 -30
  268. package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/active-pair.js.map +0 -1
  269. package/lib/commonjs/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.js +0 -47
  270. package/lib/commonjs/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.js.map +0 -1
  271. package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js +0 -21
  272. package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map +0 -1
  273. package/lib/module/components/boundary/portal/components/boundary-portal/helpers/active-pair.js +0 -25
  274. package/lib/module/components/boundary/portal/components/boundary-portal/helpers/active-pair.js.map +0 -1
  275. package/lib/module/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.js +0 -40
  276. package/lib/module/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.js.map +0 -1
  277. package/lib/module/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js +0 -16
  278. package/lib/module/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map +0 -1
  279. package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/active-pair.d.ts +0 -9
  280. package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/active-pair.d.ts.map +0 -1
  281. package/lib/typescript/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.d.ts +0 -9
  282. package/lib/typescript/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.d.ts.map +0 -1
  283. package/lib/typescript/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.d.ts +0 -2
  284. package/lib/typescript/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.d.ts.map +0 -1
  285. package/src/components/boundary/portal/components/boundary-portal/helpers/active-pair.ts +0 -36
  286. package/src/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.ts +0 -45
  287. package/src/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.tsx +0 -15
@@ -18,7 +18,6 @@ import type {
18
18
  } from "../../../../types/animation.types";
19
19
  import { logger } from "../../../../utils/logger";
20
20
  import { useScreenAnimationStore } from "../../animation";
21
- import { useBuildBoundsAccessor } from "../../animation/helpers/accessors/use-build-bounds-accessor";
22
21
  import { useBuildTransitionAccessor } from "../../animation/helpers/accessors/use-build-transition-accessor";
23
22
  import type { ScreenInterpolatorFrame } from "../../animation/helpers/pipeline";
24
23
  import { readScreenAnimationRevisions } from "../../animation/helpers/read-screen-animation-revisions";
@@ -29,6 +28,7 @@ import {
29
28
  useScreenOptionsStore,
30
29
  } from "../../options";
31
30
  import { collectInterpolatorSharedValues } from "../helpers/collect-interpolator-shared-values";
31
+ import { createInterpolatorScope } from "../helpers/create-interpolator-scope";
32
32
  import { normalizeSlots } from "../helpers/normalize-slots";
33
33
  import { resolveInterpolatorStyleHandoff } from "../helpers/resolve-interpolator-style-handoff";
34
34
  import type { LocalStyleLayers } from "../helpers/resolve-slot-styles";
@@ -54,7 +54,6 @@ type RunInterpolatorParams = {
54
54
  interpolator: ScreenStyleInterpolator | undefined;
55
55
  props: ScreenInterpolatorFrame;
56
56
  selectedFrame: SelectedInterpolatorFrame;
57
- bounds: Parameters<ScreenStyleInterpolator>[0]["bounds"];
58
57
  transition: Parameters<ScreenStyleInterpolator>[0]["transition"];
59
58
  };
60
59
 
@@ -76,7 +75,6 @@ const runInterpolator = ({
76
75
  interpolator,
77
76
  props,
78
77
  selectedFrame,
79
- bounds,
80
78
  transition,
81
79
  }: RunInterpolatorParams): InterpolatorResult | undefined => {
82
80
  "worklet";
@@ -86,12 +84,13 @@ const runInterpolator = ({
86
84
  }
87
85
 
88
86
  try {
89
- const raw = interpolator({
90
- ...props,
91
- ...selectedFrame,
92
- bounds,
93
- transition,
94
- });
87
+ const raw = interpolator(
88
+ createInterpolatorScope({
89
+ frame: props,
90
+ selectedFrame,
91
+ transition,
92
+ }),
93
+ );
95
94
 
96
95
  const rawStyleMap: TransitionInterpolatedStyle | undefined =
97
96
  typeof raw === "object" && raw != null ? raw : undefined;
@@ -154,7 +153,6 @@ export const useInterpolatedStylesMap = ({
154
153
  ancestorScreenAnimationSources,
155
154
  descendantScreenAnimationSources,
156
155
  } = useScreenAnimationStore();
157
- const boundsAccessor = useBuildBoundsAccessor();
158
156
  const transition = useBuildTransitionAccessor();
159
157
  const nextInterpolatorReady = useSharedValue(0);
160
158
 
@@ -271,7 +269,6 @@ export const useInterpolatedStylesMap = ({
271
269
  interpolator: currentInterpolator,
272
270
  props,
273
271
  selectedFrame: currentSelectedFrame,
274
- bounds: boundsAccessor,
275
272
  transition,
276
273
  });
277
274
 
@@ -309,7 +306,6 @@ export const useInterpolatedStylesMap = ({
309
306
  interpolator: nextInterpolator,
310
307
  props,
311
308
  selectedFrame: nextSelectedFrame,
312
- bounds: boundsAccessor,
313
309
  transition,
314
310
  });
315
311
 
@@ -1,9 +1,11 @@
1
+ import { StackActions } from "@react-navigation/native";
1
2
  import type { BlankStackProviderProps } from "../../../types/providers/blank-stack-provider.types";
2
3
  import type {
3
4
  BaseStackDescriptor,
4
5
  BaseStackNavigation,
5
6
  BaseStackRoute,
6
7
  } from "../../../types/stack.types";
8
+ import { dispatchCloseAction } from "../../../utils/navigation/close-action-replay";
7
9
  import { buildBlankStackState } from "./helpers/build-blank-stack-state";
8
10
  import { deriveBlankStackState } from "./helpers/derive-blank-stack-state";
9
11
  import type {
@@ -14,11 +16,6 @@ import type {
14
16
 
15
17
  export type { BlankStackController } from "./helpers/types";
16
18
 
17
- const createPopAction = () => ({
18
- type: "POP",
19
- payload: { count: 1 },
20
- });
21
-
22
19
  /**
23
20
  * Maintains the stack-local route snapshot used while blank stack transitions run.
24
21
  *
@@ -90,10 +87,13 @@ export const createBlankStackController = <
90
87
  const { state, navigation } = props;
91
88
 
92
89
  if (state.routes.some((candidate) => candidate.key === route.key)) {
93
- navigation.dispatch({
94
- ...createPopAction(),
90
+ const action = {
91
+ ...StackActions.pop(),
95
92
  source: route.key,
96
93
  target: state.key,
94
+ };
95
+ dispatchCloseAction(action, (closeAction) => {
96
+ navigation.dispatch(closeAction);
97
97
  });
98
98
  return;
99
99
  }
@@ -242,7 +242,7 @@ const writeDestination = (
242
242
 
243
243
  writePairLink(state, pairKey, linkKey, link);
244
244
 
245
- if (link.group) {
245
+ if (link.group && !state[pairKey]?.groups?.[link.group]) {
246
246
  writeGroup(state, pairKey, link.group, linkKey);
247
247
  }
248
248
  };
@@ -9,8 +9,7 @@ import { createStore } from "../utils/create-store";
9
9
  export enum LifecycleTransitionRequestKind {
10
10
  None = 0,
11
11
  Open = 1,
12
- BlankStackClose = 2,
13
- NativeClose = 3,
12
+ Close = 2,
14
13
  }
15
14
 
16
15
  type SystemStoreState = {
@@ -1,5 +1,4 @@
1
1
  import type { SharedValue } from "react-native-reanimated";
2
- import { scheduleOnRN } from "react-native-worklets";
3
2
  import { FALSE, TRUE } from "../../constants";
4
3
  import {
5
4
  type AnimationStoreMap,
@@ -17,7 +16,6 @@ interface AnimateToProgressProps {
17
16
  */
18
17
  target: "open" | "close" | number;
19
18
  spec?: TransitionSpec;
20
- onAnimationFinish?: (finished: boolean) => void;
21
19
  animations: AnimationStoreMap;
22
20
  targetProgress: SharedValue<number>;
23
21
  animationProgress: SharedValue<number>;
@@ -62,7 +60,6 @@ export const resolveAnimationProgressRange = (
62
60
  export const animateToProgress = ({
63
61
  target,
64
62
  spec,
65
- onAnimationFinish,
66
63
  animations,
67
64
  targetProgress,
68
65
  animationProgress,
@@ -112,10 +109,6 @@ export const animateToProgress = ({
112
109
  if (shouldClearEnteringOnFinish) {
113
110
  entering.set(FALSE);
114
111
  }
115
-
116
- if (onAnimationFinish) {
117
- scheduleOnRN(onAnimationFinish, true);
118
- }
119
112
  return;
120
113
  }
121
114
 
@@ -142,23 +135,7 @@ export const animateToProgress = ({
142
135
 
143
136
  if (isClosing) {
144
137
  progressAnimating.set(FALSE);
145
-
146
- if (onAnimationFinish) {
147
- // Paint the terminal UI-thread host/style state before React
148
- // removes the closing route and its native portal host.
149
- requestAnimationFrame(() => {
150
- "worklet";
151
- requestAnimationFrame(() => {
152
- "worklet";
153
- scheduleOnRN(onAnimationFinish, state.finished);
154
- });
155
- });
156
- }
157
138
  } else {
158
- if (onAnimationFinish) {
159
- scheduleOnRN(onAnimationFinish, state.finished);
160
- }
161
-
162
139
  // Delay clearing progress animation by one frame to ensure final frame is painted
163
140
  requestAnimationFrame(() => {
164
141
  progressAnimating.set(FALSE);
@@ -0,0 +1,25 @@
1
+ const CLOSE_ACTION_REPLAY = Symbol("screen-transition-close-action-replay");
2
+
3
+ type MarkedCloseAction = {
4
+ [CLOSE_ACTION_REPLAY]?: true;
5
+ };
6
+
7
+ export const isCloseActionReplay = (action: unknown): boolean =>
8
+ typeof action === "object" &&
9
+ action !== null &&
10
+ (action as MarkedCloseAction)[CLOSE_ACTION_REPLAY] === true;
11
+
12
+ /** Carries the terminal-removal bypass through React Navigation's action clones. */
13
+ export const dispatchCloseAction = <TAction extends object>(
14
+ action: TAction,
15
+ dispatch: (action: TAction) => void,
16
+ ) => {
17
+ const markedAction = action as TAction & MarkedCloseAction;
18
+ markedAction[CLOSE_ACTION_REPLAY] = true;
19
+
20
+ try {
21
+ dispatch(action);
22
+ } finally {
23
+ delete markedAction[CLOSE_ACTION_REPLAY];
24
+ }
25
+ };
@@ -1,30 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.hasActiveBoundaryPortalLink = void 0;
7
- var _linkPairs = require("../../../../../../stores/bounds/helpers/link-pairs.helpers");
8
- const hasActiveBoundaryPortalLink = ({
9
- boundaryId,
10
- pairsState,
11
- sourcePairKey
12
- }) => {
13
- "worklet";
14
-
15
- if (!sourcePairKey) {
16
- return false;
17
- }
18
- const pair = pairsState[sourcePairKey];
19
- const linkKey = (0, _linkPairs.getLinkKeyFromTag)(boundaryId);
20
- const link = pair?.links[linkKey];
21
- if (!link?.source) {
22
- return false;
23
- }
24
- if (link.group && pair.groups[link.group]?.activeId !== linkKey) {
25
- return false;
26
- }
27
- return true;
28
- };
29
- exports.hasActiveBoundaryPortalLink = hasActiveBoundaryPortalLink;
30
- //# sourceMappingURL=active-pair.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_linkPairs","require","hasActiveBoundaryPortalLink","boundaryId","pairsState","sourcePairKey","pair","linkKey","getLinkKeyFromTag","link","links","source","group","groups","activeId","exports"],"sourceRoot":"../../../../../../../../src","sources":["components/boundary/portal/components/boundary-portal/helpers/active-pair.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAYO,MAAMC,2BAA2B,GAAGA,CAAC;EAC3CC,UAAU;EACVC,UAAU;EACVC;AACkC,CAAC,KAAc;EACjD,SAAS;;EACT,IAAI,CAACA,aAAa,EAAE;IACnB,OAAO,KAAK;EACb;EAEA,MAAMC,IAAI,GAAGF,UAAU,CAACC,aAAa,CAAC;EACtC,MAAME,OAAO,GAAG,IAAAC,4BAAiB,EAACL,UAAU,CAAC;EAC7C,MAAMM,IAAI,GAAGH,IAAI,EAAEI,KAAK,CAACH,OAAO,CAAC;EAEjC,IAAI,CAACE,IAAI,EAAEE,MAAM,EAAE;IAClB,OAAO,KAAK;EACb;EAEA,IAAIF,IAAI,CAACG,KAAK,IAAIN,IAAI,CAACO,MAAM,CAACJ,IAAI,CAACG,KAAK,CAAC,EAAEE,QAAQ,KAAKP,OAAO,EAAE;IAChE,OAAO,KAAK;EACb;EAEA,OAAO,IAAI;AACZ,CAAC;AAACQ,OAAA,CAAAb,2BAAA,GAAAA,2BAAA","ignoreList":[]}
@@ -1,47 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.setPortalHostBounds = exports.getPortalHostBounds = exports.clearPortalHostBounds = void 0;
7
- var _reactNativeReanimated = require("react-native-reanimated");
8
- var _scroll = require("../../../../../../stores/scroll.store");
9
- const portalHostBounds = (0, _reactNativeReanimated.makeMutable)({});
10
- const getPortalHostBounds = hostKey => {
11
- "worklet";
12
-
13
- return portalHostBounds.get()[hostKey] ?? null;
14
- };
15
- exports.getPortalHostBounds = getPortalHostBounds;
16
- const setPortalHostBounds = (hostKey, bounds) => {
17
- "worklet";
18
-
19
- const nextBounds = {
20
- ...bounds,
21
- scroll: (0, _scroll.cloneScrollMetadataState)(bounds.scroll)
22
- };
23
- portalHostBounds.set(state => {
24
- "worklet";
25
-
26
- return {
27
- ...state,
28
- [hostKey]: nextBounds
29
- };
30
- });
31
- };
32
- exports.setPortalHostBounds = setPortalHostBounds;
33
- const clearPortalHostBounds = hostKey => {
34
- "worklet";
35
-
36
- portalHostBounds.set(state => {
37
- "worklet";
38
-
39
- const nextState = {
40
- ...state
41
- };
42
- delete nextState[hostKey];
43
- return nextState;
44
- });
45
- };
46
- exports.clearPortalHostBounds = clearPortalHostBounds;
47
- //# sourceMappingURL=host-bounds.store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNativeReanimated","require","_scroll","portalHostBounds","makeMutable","getPortalHostBounds","hostKey","get","exports","setPortalHostBounds","bounds","nextBounds","scroll","cloneScrollMetadataState","set","state","clearPortalHostBounds","nextState"],"sourceRoot":"../../../../../../../../src","sources":["components/boundary/portal/components/boundary-portal/stores/host-bounds.store.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AASA,MAAME,gBAAgB,GAAG,IAAAC,kCAAW,EAAwB,CAAC,CAAC,CAAC;AAExD,MAAMC,mBAAmB,GAAIC,OAAe,IAAK;EACvD,SAAS;;EACT,OAAOH,gBAAgB,CAACI,GAAG,CAAC,CAAC,CAACD,OAAO,CAAC,IAAI,IAAI;AAC/C,CAAC;AAACE,OAAA,CAAAH,mBAAA,GAAAA,mBAAA;AAEK,MAAMI,mBAAmB,GAAGA,CAClCH,OAAe,EACfI,MAAwB,KACpB;EACJ,SAAS;;EACT,MAAMC,UAA4B,GAAG;IACpC,GAAGD,MAAM;IACTE,MAAM,EAAE,IAAAC,gCAAwB,EAACH,MAAM,CAACE,MAAM;EAC/C,CAAC;EAEDT,gBAAgB,CAACW,GAAG,CAAEC,KAAK,IAAK;IAC/B,SAAS;;IACT,OAAO;MACN,GAAGA,KAAK;MACR,CAACT,OAAO,GAAGK;IACZ,CAAC;EACF,CAAC,CAAC;AACH,CAAC;AAACH,OAAA,CAAAC,mBAAA,GAAAA,mBAAA;AAEK,MAAMO,qBAAqB,GAAIV,OAAe,IAAK;EACzD,SAAS;;EACTH,gBAAgB,CAACW,GAAG,CAAEC,KAAK,IAAK;IAC/B,SAAS;;IACT,MAAME,SAAgC,GAAG;MAAE,GAAGF;IAAM,CAAC;IACrD,OAAOE,SAAS,CAACX,OAAO,CAAC;IACzB,OAAOW,SAAS;EACjB,CAAC,CAAC;AACH,CAAC;AAACT,OAAA,CAAAQ,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useBuildBoundsAccessor = void 0;
7
- var _react = require("react");
8
- var _bounds = require("../../../../../utils/bounds");
9
- var _animation = require("../../animation.provider");
10
- const useBuildBoundsAccessor = () => {
11
- const screenInterpolatorProps = (0, _animation.useScreenAnimationStore)(store => store.screenInterpolatorProps);
12
- return (0, _react.useMemo)(() => {
13
- return (0, _bounds.createBoundsAccessor)(() => {
14
- "worklet";
15
-
16
- return screenInterpolatorProps.get();
17
- });
18
- }, [screenInterpolatorProps]);
19
- };
20
- exports.useBuildBoundsAccessor = useBuildBoundsAccessor;
21
- //# sourceMappingURL=use-build-bounds-accessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_bounds","_animation","useBuildBoundsAccessor","screenInterpolatorProps","useScreenAnimationStore","store","useMemo","createBoundsAccessor","get","exports"],"sourceRoot":"../../../../../../../src","sources":["providers/screen/animation/helpers/accessors/use-build-bounds-accessor.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEO,MAAMG,sBAAsB,GAAGA,CAAA,KAAM;EAC3C,MAAMC,uBAAuB,GAAG,IAAAC,kCAAuB,EACrDC,KAAK,IAAKA,KAAK,CAACF,uBAClB,CAAC;EACD,OAAO,IAAAG,cAAO,EAAC,MAAM;IACpB,OAAO,IAAAC,4BAAoB,EAAC,MAAM;MACjC,SAAS;;MACT,OAAOJ,uBAAuB,CAACK,GAAG,CAAC,CAAC;IACrC,CAAC,CAAC;EACH,CAAC,EAAE,CAACL,uBAAuB,CAAC,CAAC;AAC9B,CAAC;AAACM,OAAA,CAAAP,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- import { getLinkKeyFromTag } from "../../../../../../stores/bounds/helpers/link-pairs.helpers";
4
- export const hasActiveBoundaryPortalLink = ({
5
- boundaryId,
6
- pairsState,
7
- sourcePairKey
8
- }) => {
9
- "worklet";
10
-
11
- if (!sourcePairKey) {
12
- return false;
13
- }
14
- const pair = pairsState[sourcePairKey];
15
- const linkKey = getLinkKeyFromTag(boundaryId);
16
- const link = pair?.links[linkKey];
17
- if (!link?.source) {
18
- return false;
19
- }
20
- if (link.group && pair.groups[link.group]?.activeId !== linkKey) {
21
- return false;
22
- }
23
- return true;
24
- };
25
- //# sourceMappingURL=active-pair.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getLinkKeyFromTag","hasActiveBoundaryPortalLink","boundaryId","pairsState","sourcePairKey","pair","linkKey","link","links","source","group","groups","activeId"],"sourceRoot":"../../../../../../../../src","sources":["components/boundary/portal/components/boundary-portal/helpers/active-pair.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,4DAA4D;AAY9F,OAAO,MAAMC,2BAA2B,GAAGA,CAAC;EAC3CC,UAAU;EACVC,UAAU;EACVC;AACkC,CAAC,KAAc;EACjD,SAAS;;EACT,IAAI,CAACA,aAAa,EAAE;IACnB,OAAO,KAAK;EACb;EAEA,MAAMC,IAAI,GAAGF,UAAU,CAACC,aAAa,CAAC;EACtC,MAAME,OAAO,GAAGN,iBAAiB,CAACE,UAAU,CAAC;EAC7C,MAAMK,IAAI,GAAGF,IAAI,EAAEG,KAAK,CAACF,OAAO,CAAC;EAEjC,IAAI,CAACC,IAAI,EAAEE,MAAM,EAAE;IAClB,OAAO,KAAK;EACb;EAEA,IAAIF,IAAI,CAACG,KAAK,IAAIL,IAAI,CAACM,MAAM,CAACJ,IAAI,CAACG,KAAK,CAAC,EAAEE,QAAQ,KAAKN,OAAO,EAAE;IAChE,OAAO,KAAK;EACb;EAEA,OAAO,IAAI;AACZ,CAAC","ignoreList":[]}
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- import { makeMutable } from "react-native-reanimated";
4
- import { cloneScrollMetadataState } from "../../../../../../stores/scroll.store";
5
- const portalHostBounds = makeMutable({});
6
- export const getPortalHostBounds = hostKey => {
7
- "worklet";
8
-
9
- return portalHostBounds.get()[hostKey] ?? null;
10
- };
11
- export const setPortalHostBounds = (hostKey, bounds) => {
12
- "worklet";
13
-
14
- const nextBounds = {
15
- ...bounds,
16
- scroll: cloneScrollMetadataState(bounds.scroll)
17
- };
18
- portalHostBounds.set(state => {
19
- "worklet";
20
-
21
- return {
22
- ...state,
23
- [hostKey]: nextBounds
24
- };
25
- });
26
- };
27
- export const clearPortalHostBounds = hostKey => {
28
- "worklet";
29
-
30
- portalHostBounds.set(state => {
31
- "worklet";
32
-
33
- const nextState = {
34
- ...state
35
- };
36
- delete nextState[hostKey];
37
- return nextState;
38
- });
39
- };
40
- //# sourceMappingURL=host-bounds.store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["makeMutable","cloneScrollMetadataState","portalHostBounds","getPortalHostBounds","hostKey","get","setPortalHostBounds","bounds","nextBounds","scroll","set","state","clearPortalHostBounds","nextState"],"sourceRoot":"../../../../../../../../src","sources":["components/boundary/portal/components/boundary-portal/stores/host-bounds.store.ts"],"mappings":";;AAAA,SAAkCA,WAAW,QAAQ,yBAAyB;AAC9E,SAASC,wBAAwB,QAAQ,uCAAuC;AAShF,MAAMC,gBAAgB,GAAGF,WAAW,CAAwB,CAAC,CAAC,CAAC;AAE/D,OAAO,MAAMG,mBAAmB,GAAIC,OAAe,IAAK;EACvD,SAAS;;EACT,OAAOF,gBAAgB,CAACG,GAAG,CAAC,CAAC,CAACD,OAAO,CAAC,IAAI,IAAI;AAC/C,CAAC;AAED,OAAO,MAAME,mBAAmB,GAAGA,CAClCF,OAAe,EACfG,MAAwB,KACpB;EACJ,SAAS;;EACT,MAAMC,UAA4B,GAAG;IACpC,GAAGD,MAAM;IACTE,MAAM,EAAER,wBAAwB,CAACM,MAAM,CAACE,MAAM;EAC/C,CAAC;EAEDP,gBAAgB,CAACQ,GAAG,CAAEC,KAAK,IAAK;IAC/B,SAAS;;IACT,OAAO;MACN,GAAGA,KAAK;MACR,CAACP,OAAO,GAAGI;IACZ,CAAC;EACF,CAAC,CAAC;AACH,CAAC;AAED,OAAO,MAAMI,qBAAqB,GAAIR,OAAe,IAAK;EACzD,SAAS;;EACTF,gBAAgB,CAACQ,GAAG,CAAEC,KAAK,IAAK;IAC/B,SAAS;;IACT,MAAME,SAAgC,GAAG;MAAE,GAAGF;IAAM,CAAC;IACrD,OAAOE,SAAS,CAACT,OAAO,CAAC;IACzB,OAAOS,SAAS;EACjB,CAAC,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- import { useMemo } from "react";
4
- import { createBoundsAccessor } from "../../../../../utils/bounds";
5
- import { useScreenAnimationStore } from "../../animation.provider";
6
- export const useBuildBoundsAccessor = () => {
7
- const screenInterpolatorProps = useScreenAnimationStore(store => store.screenInterpolatorProps);
8
- return useMemo(() => {
9
- return createBoundsAccessor(() => {
10
- "worklet";
11
-
12
- return screenInterpolatorProps.get();
13
- });
14
- }, [screenInterpolatorProps]);
15
- };
16
- //# sourceMappingURL=use-build-bounds-accessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useMemo","createBoundsAccessor","useScreenAnimationStore","useBuildBoundsAccessor","screenInterpolatorProps","store","get"],"sourceRoot":"../../../../../../../src","sources":["providers/screen/animation/helpers/accessors/use-build-bounds-accessor.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,oBAAoB,QAAQ,6BAA6B;AAClE,SAASC,uBAAuB,QAAQ,0BAA0B;AAElE,OAAO,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;EAC3C,MAAMC,uBAAuB,GAAGF,uBAAuB,CACrDG,KAAK,IAAKA,KAAK,CAACD,uBAClB,CAAC;EACD,OAAOJ,OAAO,CAAC,MAAM;IACpB,OAAOC,oBAAoB,CAAC,MAAM;MACjC,SAAS;;MACT,OAAOG,uBAAuB,CAACE,GAAG,CAAC,CAAC;IACrC,CAAC,CAAC;EACH,CAAC,EAAE,CAACF,uBAAuB,CAAC,CAAC;AAC9B,CAAC","ignoreList":[]}
@@ -1,9 +0,0 @@
1
- import type { LinkPairsState, ScreenPairKey } from "../../../../../../stores/bounds/types";
2
- type HasActiveBoundaryPortalLinkParams = {
3
- boundaryId: string;
4
- pairsState: LinkPairsState;
5
- sourcePairKey?: ScreenPairKey;
6
- };
7
- export declare const hasActiveBoundaryPortalLink: ({ boundaryId, pairsState, sourcePairKey, }: HasActiveBoundaryPortalLinkParams) => boolean;
8
- export {};
9
- //# sourceMappingURL=active-pair.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"active-pair.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/boundary/portal/components/boundary-portal/helpers/active-pair.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,cAAc,EACd,aAAa,EACb,MAAM,uCAAuC,CAAC;AAE/C,KAAK,iCAAiC,GAAG;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,4CAIzC,iCAAiC,KAAG,OAmBtC,CAAC"}
@@ -1,9 +0,0 @@
1
- import { type MeasuredDimensions } from "react-native-reanimated";
2
- import type { ScrollMetadataState } from "../../../../../../types/gesture.types";
3
- export type PortalHostBounds = MeasuredDimensions & {
4
- scroll?: ScrollMetadataState | null;
5
- };
6
- export declare const getPortalHostBounds: (hostKey: string) => PortalHostBounds | null;
7
- export declare const setPortalHostBounds: (hostKey: string, bounds: PortalHostBounds) => void;
8
- export declare const clearPortalHostBounds: (hostKey: string) => void;
9
- //# sourceMappingURL=host-bounds.store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-bounds.store.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/boundary/portal/components/boundary-portal/stores/host-bounds.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAe,MAAM,yBAAyB,CAAC;AAE/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG;IACnD,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACpC,CAAC;AAMF,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,4BAGlD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC/B,SAAS,MAAM,EACf,QAAQ,gBAAgB,SAexB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,SAQpD,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const useBuildBoundsAccessor: () => import("../../../../../types").BoundsAccessor;
2
- //# sourceMappingURL=use-build-bounds-accessor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-build-bounds-accessor.d.ts","sourceRoot":"","sources":["../../../../../../../src/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,sBAAsB,qDAUlC,CAAC"}
@@ -1,36 +0,0 @@
1
- import { getLinkKeyFromTag } from "../../../../../../stores/bounds/helpers/link-pairs.helpers";
2
- import type {
3
- LinkPairsState,
4
- ScreenPairKey,
5
- } from "../../../../../../stores/bounds/types";
6
-
7
- type HasActiveBoundaryPortalLinkParams = {
8
- boundaryId: string;
9
- pairsState: LinkPairsState;
10
- sourcePairKey?: ScreenPairKey;
11
- };
12
-
13
- export const hasActiveBoundaryPortalLink = ({
14
- boundaryId,
15
- pairsState,
16
- sourcePairKey,
17
- }: HasActiveBoundaryPortalLinkParams): boolean => {
18
- "worklet";
19
- if (!sourcePairKey) {
20
- return false;
21
- }
22
-
23
- const pair = pairsState[sourcePairKey];
24
- const linkKey = getLinkKeyFromTag(boundaryId);
25
- const link = pair?.links[linkKey];
26
-
27
- if (!link?.source) {
28
- return false;
29
- }
30
-
31
- if (link.group && pair.groups[link.group]?.activeId !== linkKey) {
32
- return false;
33
- }
34
-
35
- return true;
36
- };
@@ -1,45 +0,0 @@
1
- import { type MeasuredDimensions, makeMutable } from "react-native-reanimated";
2
- import { cloneScrollMetadataState } from "../../../../../../stores/scroll.store";
3
- import type { ScrollMetadataState } from "../../../../../../types/gesture.types";
4
-
5
- export type PortalHostBounds = MeasuredDimensions & {
6
- scroll?: ScrollMetadataState | null;
7
- };
8
-
9
- type PortalHostBoundsState = Record<string, PortalHostBounds | null>;
10
-
11
- const portalHostBounds = makeMutable<PortalHostBoundsState>({});
12
-
13
- export const getPortalHostBounds = (hostKey: string) => {
14
- "worklet";
15
- return portalHostBounds.get()[hostKey] ?? null;
16
- };
17
-
18
- export const setPortalHostBounds = (
19
- hostKey: string,
20
- bounds: PortalHostBounds,
21
- ) => {
22
- "worklet";
23
- const nextBounds: PortalHostBounds = {
24
- ...bounds,
25
- scroll: cloneScrollMetadataState(bounds.scroll),
26
- };
27
-
28
- portalHostBounds.set((state) => {
29
- "worklet";
30
- return {
31
- ...state,
32
- [hostKey]: nextBounds,
33
- };
34
- });
35
- };
36
-
37
- export const clearPortalHostBounds = (hostKey: string) => {
38
- "worklet";
39
- portalHostBounds.set((state) => {
40
- "worklet";
41
- const nextState: PortalHostBoundsState = { ...state };
42
- delete nextState[hostKey];
43
- return nextState;
44
- });
45
- };
@@ -1,15 +0,0 @@
1
- import { useMemo } from "react";
2
- import { createBoundsAccessor } from "../../../../../utils/bounds";
3
- import { useScreenAnimationStore } from "../../animation.provider";
4
-
5
- export const useBuildBoundsAccessor = () => {
6
- const screenInterpolatorProps = useScreenAnimationStore(
7
- (store) => store.screenInterpolatorProps,
8
- );
9
- return useMemo(() => {
10
- return createBoundsAccessor(() => {
11
- "worklet";
12
- return screenInterpolatorProps.get();
13
- });
14
- }, [screenInterpolatorProps]);
15
- };