react-native-screen-transitions 1.2.0 → 2.0.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 (344) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +211 -156
  3. package/lib/commonjs/__tests__ /geometry.test.js +178 -0
  4. package/lib/commonjs/__tests__ /geometry.test.js.map +1 -0
  5. package/lib/commonjs/components/bounds-activator.js +33 -0
  6. package/lib/commonjs/components/bounds-activator.js.map +1 -0
  7. package/lib/commonjs/components/controllers/screen-lifecycle.js +66 -0
  8. package/lib/commonjs/components/controllers/screen-lifecycle.js.map +1 -0
  9. package/lib/commonjs/components/create-transition-aware-component.js +96 -0
  10. package/lib/commonjs/components/create-transition-aware-component.js.map +1 -0
  11. package/lib/commonjs/components/root-transition-aware.js +56 -0
  12. package/lib/commonjs/components/root-transition-aware.js.map +1 -0
  13. package/lib/commonjs/configs/index.js +12 -0
  14. package/lib/commonjs/configs/index.js.map +1 -0
  15. package/lib/commonjs/configs/presets.js +206 -0
  16. package/lib/commonjs/configs/presets.js.map +1 -0
  17. package/lib/commonjs/configs/specs.js +14 -0
  18. package/lib/commonjs/configs/specs.js.map +1 -0
  19. package/lib/commonjs/hooks/animation/use-associated-style.js +36 -0
  20. package/lib/commonjs/hooks/animation/use-associated-style.js.map +1 -0
  21. package/lib/commonjs/hooks/animation/use-screen-animation.js +120 -0
  22. package/lib/commonjs/hooks/animation/use-screen-animation.js.map +1 -0
  23. package/lib/commonjs/hooks/bounds/use-bound-measurer.js +52 -0
  24. package/lib/commonjs/hooks/bounds/use-bound-measurer.js.map +1 -0
  25. package/lib/commonjs/hooks/gestures/use-build-gestures.js +239 -0
  26. package/lib/commonjs/hooks/gestures/use-build-gestures.js.map +1 -0
  27. package/lib/commonjs/hooks/gestures/use-scroll-progress.js +57 -0
  28. package/lib/commonjs/hooks/gestures/use-scroll-progress.js.map +1 -0
  29. package/lib/commonjs/hooks/use-stable-callback.js +17 -0
  30. package/lib/commonjs/hooks/use-stable-callback.js.map +1 -0
  31. package/lib/commonjs/index.js +37 -0
  32. package/lib/commonjs/index.js.map +1 -0
  33. package/lib/commonjs/integrations/native-stack/navigators/createNativeStackNavigator.js +68 -0
  34. package/lib/commonjs/integrations/native-stack/navigators/createNativeStackNavigator.js.map +1 -0
  35. package/lib/commonjs/integrations/native-stack/utils/debounce.js +16 -0
  36. package/lib/commonjs/integrations/native-stack/utils/debounce.js.map +1 -0
  37. package/lib/commonjs/integrations/native-stack/utils/getModalRoutesKeys.js +17 -0
  38. package/lib/commonjs/integrations/native-stack/utils/getModalRoutesKeys.js.map +1 -0
  39. package/lib/commonjs/integrations/native-stack/utils/useAnimatedHeaderHeight.js +18 -0
  40. package/lib/commonjs/integrations/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -0
  41. package/lib/commonjs/integrations/native-stack/utils/useDismissedRouteError.js +22 -0
  42. package/lib/commonjs/integrations/native-stack/utils/useDismissedRouteError.js.map +1 -0
  43. package/lib/commonjs/integrations/native-stack/utils/useInvalidPreventRemoveError.js +25 -0
  44. package/lib/commonjs/integrations/native-stack/utils/useInvalidPreventRemoveError.js.map +1 -0
  45. package/lib/commonjs/integrations/native-stack/views/FontProcessor.js +10 -0
  46. package/lib/commonjs/integrations/native-stack/views/FontProcessor.js.map +1 -0
  47. package/lib/commonjs/integrations/native-stack/views/FontProcessor.native.js +18 -0
  48. package/lib/commonjs/integrations/native-stack/views/FontProcessor.native.js.map +1 -0
  49. package/lib/commonjs/integrations/native-stack/views/FooterComponent.js +17 -0
  50. package/lib/commonjs/integrations/native-stack/views/FooterComponent.js.map +1 -0
  51. package/lib/commonjs/integrations/native-stack/views/NativeStackView.js +138 -0
  52. package/lib/commonjs/integrations/native-stack/views/NativeStackView.js.map +1 -0
  53. package/lib/commonjs/integrations/native-stack/views/NativeStackView.native.js +497 -0
  54. package/lib/commonjs/integrations/native-stack/views/NativeStackView.native.js.map +1 -0
  55. package/lib/commonjs/integrations/native-stack/views/useHeaderConfigProps.js +203 -0
  56. package/lib/commonjs/integrations/native-stack/views/useHeaderConfigProps.js.map +1 -0
  57. package/lib/commonjs/package.json +1 -0
  58. package/lib/commonjs/providers/gestures.js +64 -0
  59. package/lib/commonjs/providers/gestures.js.map +1 -0
  60. package/lib/commonjs/providers/keys.js +35 -0
  61. package/lib/commonjs/providers/keys.js.map +1 -0
  62. package/lib/commonjs/stores/animations.js +39 -0
  63. package/lib/commonjs/stores/animations.js.map +1 -0
  64. package/lib/commonjs/stores/bounds.js +64 -0
  65. package/lib/commonjs/stores/bounds.js.map +1 -0
  66. package/lib/commonjs/stores/gestures.js +38 -0
  67. package/lib/commonjs/stores/gestures.js.map +1 -0
  68. package/lib/commonjs/stores/navigator-dismiss-state.js +23 -0
  69. package/lib/commonjs/stores/navigator-dismiss-state.js.map +1 -0
  70. package/lib/commonjs/stores/utils/reset-stores-for-screen.js +20 -0
  71. package/lib/commonjs/stores/utils/reset-stores-for-screen.js.map +1 -0
  72. package/lib/commonjs/types/animation.js +6 -0
  73. package/lib/commonjs/types/animation.js.map +1 -0
  74. package/lib/commonjs/types/bounds.js +6 -0
  75. package/lib/commonjs/types/bounds.js.map +1 -0
  76. package/lib/commonjs/types/core.js +6 -0
  77. package/lib/commonjs/types/core.js.map +1 -0
  78. package/lib/commonjs/types/gesture.js +2 -0
  79. package/lib/commonjs/types/gesture.js.map +1 -0
  80. package/lib/commonjs/types/navigator.js +6 -0
  81. package/lib/commonjs/types/navigator.js.map +1 -0
  82. package/lib/commonjs/types/utils.js +2 -0
  83. package/lib/commonjs/types/utils.js.map +1 -0
  84. package/lib/commonjs/utils/animation/animate.js +18 -0
  85. package/lib/commonjs/utils/animation/animate.js.map +1 -0
  86. package/lib/commonjs/utils/animation/run-transition.js +48 -0
  87. package/lib/commonjs/utils/animation/run-transition.js.map +1 -0
  88. package/lib/commonjs/utils/bounds/_types/builder.js +6 -0
  89. package/lib/commonjs/utils/bounds/_types/builder.js.map +1 -0
  90. package/lib/commonjs/utils/bounds/_types/geometry.js +2 -0
  91. package/lib/commonjs/utils/bounds/_types/geometry.js.map +1 -0
  92. package/lib/commonjs/utils/bounds/_types/get-bounds.js +6 -0
  93. package/lib/commonjs/utils/bounds/_types/get-bounds.js.map +1 -0
  94. package/lib/commonjs/utils/bounds/build-bound-styles.js +145 -0
  95. package/lib/commonjs/utils/bounds/build-bound-styles.js.map +1 -0
  96. package/lib/commonjs/utils/bounds/constants.js +31 -0
  97. package/lib/commonjs/utils/bounds/constants.js.map +1 -0
  98. package/lib/commonjs/utils/bounds/flatten-styles.js +27 -0
  99. package/lib/commonjs/utils/bounds/flatten-styles.js.map +1 -0
  100. package/lib/commonjs/utils/bounds/geometry.js +94 -0
  101. package/lib/commonjs/utils/bounds/geometry.js.map +1 -0
  102. package/lib/commonjs/utils/bounds/get-bounds.js +51 -0
  103. package/lib/commonjs/utils/bounds/get-bounds.js.map +1 -0
  104. package/lib/commonjs/utils/bounds/index.js +38 -0
  105. package/lib/commonjs/utils/bounds/index.js.map +1 -0
  106. package/lib/commonjs/utils/bounds/style-composers.js +199 -0
  107. package/lib/commonjs/utils/bounds/style-composers.js.map +1 -0
  108. package/lib/commonjs/utils/gesture/apply-gesture-activation-criteria.js +81 -0
  109. package/lib/commonjs/utils/gesture/apply-gesture-activation-criteria.js.map +1 -0
  110. package/lib/commonjs/utils/gesture/map-gesture-to-progress.js +17 -0
  111. package/lib/commonjs/utils/gesture/map-gesture-to-progress.js.map +1 -0
  112. package/lib/commonjs/utils/gesture/normalize-gesture-translation.js +21 -0
  113. package/lib/commonjs/utils/gesture/normalize-gesture-translation.js.map +1 -0
  114. package/lib/commonjs/utils/index.js +17 -0
  115. package/lib/commonjs/utils/index.js.map +1 -0
  116. package/lib/module/__tests__ /geometry.test.js +178 -0
  117. package/lib/module/__tests__ /geometry.test.js.map +1 -0
  118. package/lib/module/components/bounds-activator.js +28 -0
  119. package/lib/module/components/bounds-activator.js.map +1 -0
  120. package/lib/module/components/controllers/screen-lifecycle.js +60 -0
  121. package/lib/module/components/controllers/screen-lifecycle.js.map +1 -0
  122. package/lib/module/components/create-transition-aware-component.js +91 -0
  123. package/lib/module/components/create-transition-aware-component.js.map +1 -0
  124. package/lib/module/components/root-transition-aware.js +51 -0
  125. package/lib/module/components/root-transition-aware.js.map +1 -0
  126. package/lib/module/configs/index.js +5 -0
  127. package/lib/module/configs/index.js.map +1 -0
  128. package/lib/module/configs/presets.js +197 -0
  129. package/lib/module/configs/presets.js.map +1 -0
  130. package/lib/module/configs/specs.js +10 -0
  131. package/lib/module/configs/specs.js.map +1 -0
  132. package/lib/module/hooks/animation/use-associated-style.js +32 -0
  133. package/lib/module/hooks/animation/use-associated-style.js.map +1 -0
  134. package/lib/module/hooks/animation/use-screen-animation.js +115 -0
  135. package/lib/module/hooks/animation/use-screen-animation.js.map +1 -0
  136. package/lib/module/hooks/bounds/use-bound-measurer.js +47 -0
  137. package/lib/module/hooks/bounds/use-bound-measurer.js.map +1 -0
  138. package/lib/module/hooks/gestures/use-build-gestures.js +234 -0
  139. package/lib/module/hooks/gestures/use-build-gestures.js.map +1 -0
  140. package/lib/module/hooks/gestures/use-scroll-progress.js +52 -0
  141. package/lib/module/hooks/gestures/use-scroll-progress.js.map +1 -0
  142. package/lib/module/hooks/use-stable-callback.js +13 -0
  143. package/lib/module/hooks/use-stable-callback.js.map +1 -0
  144. package/lib/module/index.js +21 -0
  145. package/lib/module/index.js.map +1 -0
  146. package/lib/module/integrations/native-stack/navigators/createNativeStackNavigator.js +63 -0
  147. package/lib/module/integrations/native-stack/navigators/createNativeStackNavigator.js.map +1 -0
  148. package/lib/module/integrations/native-stack/utils/debounce.js +12 -0
  149. package/lib/module/integrations/native-stack/utils/debounce.js.map +1 -0
  150. package/lib/module/integrations/native-stack/utils/getModalRoutesKeys.js +12 -0
  151. package/lib/module/integrations/native-stack/utils/getModalRoutesKeys.js.map +1 -0
  152. package/lib/module/integrations/native-stack/utils/useAnimatedHeaderHeight.js +12 -0
  153. package/lib/module/integrations/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -0
  154. package/lib/module/integrations/native-stack/utils/useDismissedRouteError.js +17 -0
  155. package/lib/module/integrations/native-stack/utils/useDismissedRouteError.js.map +1 -0
  156. package/lib/module/integrations/native-stack/utils/useInvalidPreventRemoveError.js +20 -0
  157. package/lib/module/integrations/native-stack/utils/useInvalidPreventRemoveError.js.map +1 -0
  158. package/lib/module/integrations/native-stack/views/FontProcessor.js +6 -0
  159. package/lib/module/integrations/native-stack/views/FontProcessor.js.map +1 -0
  160. package/lib/module/integrations/native-stack/views/FontProcessor.native.js +12 -0
  161. package/lib/module/integrations/native-stack/views/FontProcessor.native.js.map +1 -0
  162. package/lib/module/integrations/native-stack/views/FooterComponent.js +13 -0
  163. package/lib/module/integrations/native-stack/views/FooterComponent.js.map +1 -0
  164. package/lib/module/integrations/native-stack/views/NativeStackView.js +133 -0
  165. package/lib/module/integrations/native-stack/views/NativeStackView.js.map +1 -0
  166. package/lib/module/integrations/native-stack/views/NativeStackView.native.js +492 -0
  167. package/lib/module/integrations/native-stack/views/NativeStackView.native.js.map +1 -0
  168. package/lib/module/integrations/native-stack/views/useHeaderConfigProps.js +199 -0
  169. package/lib/module/integrations/native-stack/views/useHeaderConfigProps.js.map +1 -0
  170. package/lib/module/providers/gestures.js +58 -0
  171. package/lib/module/providers/gestures.js.map +1 -0
  172. package/lib/module/providers/keys.js +29 -0
  173. package/lib/module/providers/keys.js.map +1 -0
  174. package/lib/module/stores/animations.js +33 -0
  175. package/lib/module/stores/animations.js.map +1 -0
  176. package/lib/module/stores/bounds.js +60 -0
  177. package/lib/module/stores/bounds.js.map +1 -0
  178. package/lib/module/stores/gestures.js +34 -0
  179. package/lib/module/stores/gestures.js.map +1 -0
  180. package/lib/module/stores/navigator-dismiss-state.js +19 -0
  181. package/lib/module/stores/navigator-dismiss-state.js.map +1 -0
  182. package/lib/module/stores/utils/reset-stores-for-screen.js +16 -0
  183. package/lib/module/stores/utils/reset-stores-for-screen.js.map +1 -0
  184. package/lib/module/types/animation.js +4 -0
  185. package/lib/module/types/animation.js.map +1 -0
  186. package/lib/module/types/bounds.js +4 -0
  187. package/lib/module/types/bounds.js.map +1 -0
  188. package/lib/module/types/core.js +4 -0
  189. package/lib/module/types/core.js.map +1 -0
  190. package/lib/module/types/gesture.js +2 -0
  191. package/lib/module/types/gesture.js.map +1 -0
  192. package/lib/module/types/navigator.js +4 -0
  193. package/lib/module/types/navigator.js.map +1 -0
  194. package/lib/module/types/utils.js +2 -0
  195. package/lib/module/types/utils.js.map +1 -0
  196. package/lib/module/utils/animation/animate.js +13 -0
  197. package/lib/module/utils/animation/animate.js.map +1 -0
  198. package/lib/module/utils/animation/run-transition.js +43 -0
  199. package/lib/module/utils/animation/run-transition.js.map +1 -0
  200. package/lib/module/utils/bounds/_types/builder.js +4 -0
  201. package/lib/module/utils/bounds/_types/builder.js.map +1 -0
  202. package/lib/module/utils/bounds/_types/geometry.js +2 -0
  203. package/lib/module/utils/bounds/_types/geometry.js.map +1 -0
  204. package/lib/module/utils/bounds/_types/get-bounds.js +4 -0
  205. package/lib/module/utils/bounds/_types/get-bounds.js.map +1 -0
  206. package/lib/module/utils/bounds/build-bound-styles.js +141 -0
  207. package/lib/module/utils/bounds/build-bound-styles.js.map +1 -0
  208. package/lib/module/utils/bounds/constants.js +26 -0
  209. package/lib/module/utils/bounds/constants.js.map +1 -0
  210. package/lib/module/utils/bounds/flatten-styles.js +23 -0
  211. package/lib/module/utils/bounds/flatten-styles.js.map +1 -0
  212. package/lib/module/utils/bounds/geometry.js +89 -0
  213. package/lib/module/utils/bounds/geometry.js.map +1 -0
  214. package/lib/module/utils/bounds/get-bounds.js +46 -0
  215. package/lib/module/utils/bounds/get-bounds.js.map +1 -0
  216. package/lib/module/utils/bounds/index.js +33 -0
  217. package/lib/module/utils/bounds/index.js.map +1 -0
  218. package/lib/module/utils/bounds/style-composers.js +191 -0
  219. package/lib/module/utils/bounds/style-composers.js.map +1 -0
  220. package/lib/module/utils/gesture/apply-gesture-activation-criteria.js +76 -0
  221. package/lib/module/utils/gesture/apply-gesture-activation-criteria.js.map +1 -0
  222. package/lib/module/utils/gesture/map-gesture-to-progress.js +12 -0
  223. package/lib/module/utils/gesture/map-gesture-to-progress.js.map +1 -0
  224. package/lib/module/utils/gesture/normalize-gesture-translation.js +16 -0
  225. package/lib/module/utils/gesture/normalize-gesture-translation.js.map +1 -0
  226. package/lib/module/utils/index.js +4 -0
  227. package/lib/module/utils/index.js.map +1 -0
  228. package/lib/typescript/components/bounds-activator.d.ts +8 -0
  229. package/lib/typescript/components/bounds-activator.d.ts.map +1 -0
  230. package/lib/typescript/components/controllers/screen-lifecycle.d.ts +6 -0
  231. package/lib/typescript/components/controllers/screen-lifecycle.d.ts.map +1 -0
  232. package/lib/typescript/components/create-transition-aware-component.d.ts +9 -0
  233. package/lib/typescript/components/create-transition-aware-component.d.ts.map +1 -0
  234. package/lib/typescript/components/root-transition-aware.d.ts +6 -0
  235. package/lib/typescript/components/root-transition-aware.d.ts.map +1 -0
  236. package/lib/typescript/configs/index.d.ts +3 -0
  237. package/lib/typescript/configs/index.d.ts.map +1 -0
  238. package/lib/typescript/configs/presets.d.ts +9 -0
  239. package/lib/typescript/configs/presets.d.ts.map +1 -0
  240. package/lib/typescript/configs/specs.d.ts +3 -0
  241. package/lib/typescript/configs/specs.d.ts.map +1 -0
  242. package/lib/typescript/hooks/animation/use-associated-style.d.ts +11 -0
  243. package/lib/typescript/hooks/animation/use-associated-style.d.ts.map +1 -0
  244. package/lib/typescript/hooks/animation/use-screen-animation.d.ts +7 -0
  245. package/lib/typescript/hooks/animation/use-screen-animation.d.ts.map +1 -0
  246. package/lib/typescript/hooks/bounds/use-bound-measurer.d.ts +18 -0
  247. package/lib/typescript/hooks/bounds/use-bound-measurer.d.ts.map +1 -0
  248. package/lib/typescript/hooks/gestures/use-build-gestures.d.ts +11 -0
  249. package/lib/typescript/hooks/gestures/use-build-gestures.d.ts.map +1 -0
  250. package/lib/typescript/hooks/gestures/use-scroll-progress.d.ts +14 -0
  251. package/lib/typescript/hooks/gestures/use-scroll-progress.d.ts.map +1 -0
  252. package/lib/typescript/hooks/use-stable-callback.d.ts +2 -0
  253. package/lib/typescript/hooks/use-stable-callback.d.ts.map +1 -0
  254. package/lib/typescript/index.d.ts +1275 -0
  255. package/lib/typescript/index.d.ts.map +1 -0
  256. package/lib/typescript/integrations/native-stack/navigators/createNativeStackNavigator.d.ts +16 -0
  257. package/lib/typescript/integrations/native-stack/navigators/createNativeStackNavigator.d.ts.map +1 -0
  258. package/lib/typescript/integrations/native-stack/utils/debounce.d.ts +2 -0
  259. package/lib/typescript/integrations/native-stack/utils/debounce.d.ts.map +1 -0
  260. package/lib/typescript/integrations/native-stack/utils/getModalRoutesKeys.d.ts +4 -0
  261. package/lib/typescript/integrations/native-stack/utils/getModalRoutesKeys.d.ts.map +1 -0
  262. package/lib/typescript/integrations/native-stack/utils/useAnimatedHeaderHeight.d.ts +5 -0
  263. package/lib/typescript/integrations/native-stack/utils/useAnimatedHeaderHeight.d.ts.map +1 -0
  264. package/lib/typescript/integrations/native-stack/utils/useDismissedRouteError.d.ts +6 -0
  265. package/lib/typescript/integrations/native-stack/utils/useDismissedRouteError.d.ts.map +1 -0
  266. package/lib/typescript/integrations/native-stack/utils/useInvalidPreventRemoveError.d.ts +3 -0
  267. package/lib/typescript/integrations/native-stack/utils/useInvalidPreventRemoveError.d.ts.map +1 -0
  268. package/lib/typescript/integrations/native-stack/views/FontProcessor.d.ts +2 -0
  269. package/lib/typescript/integrations/native-stack/views/FontProcessor.d.ts.map +1 -0
  270. package/lib/typescript/integrations/native-stack/views/FontProcessor.native.d.ts +2 -0
  271. package/lib/typescript/integrations/native-stack/views/FontProcessor.native.d.ts.map +1 -0
  272. package/lib/typescript/integrations/native-stack/views/FooterComponent.d.ts +7 -0
  273. package/lib/typescript/integrations/native-stack/views/FooterComponent.d.ts.map +1 -0
  274. package/lib/typescript/integrations/native-stack/views/NativeStackView.d.ts +11 -0
  275. package/lib/typescript/integrations/native-stack/views/NativeStackView.d.ts.map +1 -0
  276. package/lib/typescript/integrations/native-stack/views/NativeStackView.native.d.ts +11 -0
  277. package/lib/typescript/integrations/native-stack/views/NativeStackView.native.d.ts.map +1 -0
  278. package/lib/typescript/integrations/native-stack/views/useHeaderConfigProps.d.ts +44 -0
  279. package/lib/typescript/integrations/native-stack/views/useHeaderConfigProps.d.ts.map +1 -0
  280. package/lib/typescript/providers/gestures.d.ts +22 -0
  281. package/lib/typescript/providers/gestures.d.ts.map +1 -0
  282. package/lib/typescript/providers/keys.d.ts +16 -0
  283. package/lib/typescript/providers/keys.d.ts.map +1 -0
  284. package/lib/typescript/stores/animations.d.ts +17 -0
  285. package/lib/typescript/stores/animations.d.ts.map +1 -0
  286. package/lib/typescript/stores/bounds.d.ts +21 -0
  287. package/lib/typescript/stores/bounds.d.ts.map +1 -0
  288. package/lib/typescript/stores/gestures.d.ts +21 -0
  289. package/lib/typescript/stores/gestures.d.ts.map +1 -0
  290. package/lib/typescript/stores/navigator-dismiss-state.d.ts +7 -0
  291. package/lib/typescript/stores/navigator-dismiss-state.d.ts.map +1 -0
  292. package/lib/typescript/stores/utils/reset-stores-for-screen.d.ts +6 -0
  293. package/lib/typescript/stores/utils/reset-stores-for-screen.d.ts.map +1 -0
  294. package/lib/typescript/types/animation.d.ts +65 -0
  295. package/lib/typescript/types/animation.d.ts.map +1 -0
  296. package/lib/typescript/types/bounds.d.ts +73 -0
  297. package/lib/typescript/types/bounds.d.ts.map +1 -0
  298. package/lib/typescript/types/core.d.ts +47 -0
  299. package/lib/typescript/types/core.d.ts.map +1 -0
  300. package/lib/typescript/types/gesture.d.ts +28 -0
  301. package/lib/typescript/types/gesture.d.ts.map +1 -0
  302. package/lib/typescript/types/navigator.d.ts +683 -0
  303. package/lib/typescript/types/navigator.d.ts.map +1 -0
  304. package/lib/typescript/types/utils.d.ts +5 -0
  305. package/lib/typescript/types/utils.d.ts.map +1 -0
  306. package/lib/typescript/utils/animation/animate.d.ts +4 -0
  307. package/lib/typescript/utils/animation/animate.d.ts.map +1 -0
  308. package/lib/typescript/utils/animation/run-transition.d.ts +11 -0
  309. package/lib/typescript/utils/animation/run-transition.d.ts.map +1 -0
  310. package/lib/typescript/utils/bounds/_types/builder.d.ts +36 -0
  311. package/lib/typescript/utils/bounds/_types/builder.d.ts.map +1 -0
  312. package/lib/typescript/utils/bounds/_types/geometry.d.ts +16 -0
  313. package/lib/typescript/utils/bounds/_types/geometry.d.ts.map +1 -0
  314. package/lib/typescript/utils/bounds/_types/get-bounds.d.ts +10 -0
  315. package/lib/typescript/utils/bounds/_types/get-bounds.d.ts.map +1 -0
  316. package/lib/typescript/utils/bounds/build-bound-styles.d.ts +4 -0
  317. package/lib/typescript/utils/bounds/build-bound-styles.d.ts.map +1 -0
  318. package/lib/typescript/utils/bounds/constants.d.ts +7 -0
  319. package/lib/typescript/utils/bounds/constants.d.ts.map +1 -0
  320. package/lib/typescript/utils/bounds/flatten-styles.d.ts +2 -0
  321. package/lib/typescript/utils/bounds/flatten-styles.d.ts.map +1 -0
  322. package/lib/typescript/utils/bounds/geometry.d.ts +24 -0
  323. package/lib/typescript/utils/bounds/geometry.d.ts.map +1 -0
  324. package/lib/typescript/utils/bounds/get-bounds.d.ts +4 -0
  325. package/lib/typescript/utils/bounds/get-bounds.d.ts.map +1 -0
  326. package/lib/typescript/utils/bounds/index.d.ts +15 -0
  327. package/lib/typescript/utils/bounds/index.d.ts.map +1 -0
  328. package/lib/typescript/utils/bounds/style-composers.d.ts +40 -0
  329. package/lib/typescript/utils/bounds/style-composers.d.ts.map +1 -0
  330. package/lib/typescript/utils/gesture/apply-gesture-activation-criteria.d.ts +17 -0
  331. package/lib/typescript/utils/gesture/apply-gesture-activation-criteria.d.ts.map +1 -0
  332. package/lib/typescript/utils/gesture/map-gesture-to-progress.d.ts +5 -0
  333. package/lib/typescript/utils/gesture/map-gesture-to-progress.d.ts.map +1 -0
  334. package/lib/typescript/utils/gesture/normalize-gesture-translation.d.ts +6 -0
  335. package/lib/typescript/utils/gesture/normalize-gesture-translation.d.ts.map +1 -0
  336. package/lib/typescript/utils/index.d.ts +2 -0
  337. package/lib/typescript/utils/index.d.ts.map +1 -0
  338. package/package.json +67 -54
  339. package/dist/index.d.mts +0 -1513
  340. package/dist/index.d.ts +0 -1513
  341. package/dist/index.js +0 -1283
  342. package/dist/index.js.map +0 -1
  343. package/dist/index.mjs +0 -1279
  344. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports._useScreenAnimation = _useScreenAnimation;
7
+ exports.useScreenAnimation = useScreenAnimation;
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeReanimated = require("react-native-reanimated");
10
+ var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
11
+ var _keys = require("../../providers/keys");
12
+ var _animations = require("../../stores/animations");
13
+ var _bounds = require("../../stores/bounds");
14
+ var _gestures = require("../../stores/gestures");
15
+ var _bounds2 = require("../../utils/bounds");
16
+ const FALLBACK = Object.freeze({
17
+ progress: 0,
18
+ closing: 0,
19
+ animating: 0,
20
+ gesture: {
21
+ x: 0,
22
+ y: 0,
23
+ normalizedX: 0,
24
+ normalizedY: 0,
25
+ isDismissing: 0,
26
+ isDragging: 0
27
+ },
28
+ bounds: {},
29
+ route: {}
30
+ });
31
+ const useBuildScreenTransitionState = descriptor => {
32
+ const key = descriptor?.route.key;
33
+ if (!key) return undefined;
34
+ const progress = _animations.Animations.getAnimation(key, "progress");
35
+ const closing = _animations.Animations.getAnimation(key, "closing");
36
+ const animating = _animations.Animations.getAnimation(key, "animating");
37
+ const gesture = _gestures.Gestures.getRouteGestures(key);
38
+ const route = descriptor?.route;
39
+ return {
40
+ progress,
41
+ closing,
42
+ animating,
43
+ gesture,
44
+ route
45
+ };
46
+ };
47
+ const unwrap = (s, key) => {
48
+ "worklet";
49
+
50
+ return s && key ? {
51
+ progress: s.progress.value ?? 0,
52
+ closing: s.closing.value ?? 0,
53
+ animating: s.animating.value ?? 0,
54
+ gesture: {
55
+ x: s.gesture.x.value ?? 0,
56
+ y: s.gesture.y.value ?? 0,
57
+ normalizedX: s.gesture.normalizedX.value ?? 0,
58
+ normalizedY: s.gesture.normalizedY.value ?? 0,
59
+ isDismissing: s.gesture.isDismissing.value ?? 0,
60
+ isDragging: s.gesture.isDragging.value ?? 0
61
+ },
62
+ bounds: _bounds.Bounds.getBounds(key) ?? {},
63
+ route: s.route
64
+ } : undefined;
65
+ };
66
+ function _useScreenAnimation() {
67
+ const {
68
+ current: currentDescriptor,
69
+ next: nextDescriptor,
70
+ previous: previousDescriptor
71
+ } = (0, _keys.useKeys)();
72
+ const dimensions = (0, _reactNative.useWindowDimensions)();
73
+ const currentAnimation = useBuildScreenTransitionState(currentDescriptor);
74
+ const nextAnimation = useBuildScreenTransitionState(nextDescriptor);
75
+ const prevAnimation = useBuildScreenTransitionState(previousDescriptor);
76
+ const insets = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
77
+ const screenInterpolatorProps = (0, _reactNativeReanimated.useDerivedValue)(() => {
78
+ "worklet";
79
+
80
+ const previous = unwrap(prevAnimation, previousDescriptor?.route.key);
81
+ const next = unwrap(nextAnimation, nextDescriptor?.route.key);
82
+ const current = unwrap(currentAnimation, currentDescriptor?.route.key) ?? FALLBACK;
83
+ const progress = current.progress + (next?.progress ?? 0);
84
+ const focused = !next;
85
+ const activeBoundId = _bounds.Bounds.getActiveBoundId() || "";
86
+ const bounds = (0, _bounds2.buildBoundsAccessor)({
87
+ activeBoundId,
88
+ current,
89
+ previous,
90
+ next,
91
+ progress,
92
+ dimensions
93
+ });
94
+ return {
95
+ layouts: {
96
+ screen: dimensions
97
+ },
98
+ insets,
99
+ previous,
100
+ current,
101
+ next,
102
+ focused,
103
+ activeBoundId,
104
+ progress,
105
+ bounds
106
+ };
107
+ });
108
+ const screenStyleInterpolator = nextDescriptor?.options.screenStyleInterpolator || currentDescriptor?.options.screenStyleInterpolator;
109
+ return {
110
+ screenInterpolatorProps,
111
+ screenStyleInterpolator
112
+ };
113
+ }
114
+ function useScreenAnimation() {
115
+ const {
116
+ screenInterpolatorProps
117
+ } = _useScreenAnimation();
118
+ return (0, _reactNativeReanimated.useDerivedValue)(() => screenInterpolatorProps.value);
119
+ }
120
+ //# sourceMappingURL=use-screen-animation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_reactNativeReanimated","_reactNativeSafeAreaContext","_keys","_animations","_bounds","_gestures","_bounds2","FALLBACK","Object","freeze","progress","closing","animating","gesture","x","y","normalizedX","normalizedY","isDismissing","isDragging","bounds","route","useBuildScreenTransitionState","descriptor","key","undefined","Animations","getAnimation","Gestures","getRouteGestures","unwrap","s","value","Bounds","getBounds","_useScreenAnimation","current","currentDescriptor","next","nextDescriptor","previous","previousDescriptor","useKeys","dimensions","useWindowDimensions","currentAnimation","nextAnimation","prevAnimation","insets","useSafeAreaInsets","screenInterpolatorProps","useDerivedValue","focused","activeBoundId","getActiveBoundId","buildBoundsAccessor","layouts","screen","screenStyleInterpolator","options","useScreenAnimation"],"sourceRoot":"../../../../src","sources":["hooks/animation/use-screen-animation.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBoundMeasurer = void 0;
7
+ var _react = require("react");
8
+ var _reactNativeReanimated = require("react-native-reanimated");
9
+ var _keys = require("../../providers/keys");
10
+ var _bounds = require("../../stores/bounds");
11
+ var _flattenStyles = require("../../utils/bounds/flatten-styles");
12
+ var _useScreenAnimation = require("../animation/use-screen-animation");
13
+ const useBoundMeasurer = ({
14
+ sharedBoundTag,
15
+ animatedRef,
16
+ current,
17
+ style
18
+ }) => {
19
+ const {
20
+ previous
21
+ } = (0, _keys.useKeys)();
22
+ const interpolatorProps = (0, _useScreenAnimation.useScreenAnimation)();
23
+ const hasAlreadyMeasured = (0, _reactNativeReanimated.useSharedValue)(false);
24
+ const measureAndSet = (0, _react.useCallback)(() => {
25
+ "worklet";
26
+
27
+ if (!sharedBoundTag) return;
28
+ const measured = (0, _reactNativeReanimated.measure)(animatedRef);
29
+ if (measured) {
30
+ _bounds.Bounds.setBounds(current.route.key, sharedBoundTag, measured, (0, _flattenStyles.flattenStyle)(style));
31
+ }
32
+ }, [sharedBoundTag, animatedRef, current.route.key, style]);
33
+ const measureOnLayout = (0, _react.useCallback)(() => {
34
+ "worklet";
35
+
36
+ if (!sharedBoundTag || hasAlreadyMeasured.value) return;
37
+ const previousRouteKey = previous?.route.key;
38
+ if (!previousRouteKey) return;
39
+ const previousBounds = _bounds.Bounds.getBounds(previousRouteKey);
40
+ const hasPreviousBoundForTag = previousBounds[sharedBoundTag];
41
+ if (interpolatorProps.value.current.animating && hasPreviousBoundForTag) {
42
+ measureAndSet();
43
+ hasAlreadyMeasured.value = true;
44
+ }
45
+ }, [measureAndSet, interpolatorProps, sharedBoundTag, previous?.route.key, hasAlreadyMeasured]);
46
+ return {
47
+ measureAndSet,
48
+ measureOnLayout
49
+ };
50
+ };
51
+ exports.useBoundMeasurer = useBoundMeasurer;
52
+ //# sourceMappingURL=use-bound-measurer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNativeReanimated","_keys","_bounds","_flattenStyles","_useScreenAnimation","useBoundMeasurer","sharedBoundTag","animatedRef","current","style","previous","useKeys","interpolatorProps","useScreenAnimation","hasAlreadyMeasured","useSharedValue","measureAndSet","useCallback","measured","measure","Bounds","setBounds","route","key","flattenStyle","measureOnLayout","value","previousRouteKey","previousBounds","getBounds","hasPreviousBoundForTag","animating","exports"],"sourceRoot":"../../../../src","sources":["hooks/bounds/use-bound-measurer.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAD,OAAA;AAMA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,mBAAA,GAAAL,OAAA;AASO,MAAMM,gBAAgB,GAAGA,CAAC;EAChCC,cAAc;EACdC,WAAW;EACXC,OAAO;EACPC;AACuB,CAAC,KAAK;EAC7B,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAC,aAAO,EAAC,CAAC;EAC9B,MAAMC,iBAAiB,GAAG,IAAAC,sCAAkB,EAAC,CAAC;EAC9C,MAAMC,kBAAkB,GAAG,IAAAC,qCAAc,EAAC,KAAK,CAAC;EAEhD,MAAMC,aAAa,GAAG,IAAAC,kBAAW,EAAC,MAAM;IACvC,SAAS;;IACT,IAAI,CAACX,cAAc,EAAE;IACrB,MAAMY,QAAQ,GAAG,IAAAC,8BAAO,EAACZ,WAAW,CAAC;IACrC,IAAIW,QAAQ,EAAE;MACbE,cAAM,CAACC,SAAS,CACfb,OAAO,CAACc,KAAK,CAACC,GAAG,EACjBjB,cAAc,EACdY,QAAQ,EACR,IAAAM,2BAAY,EAACf,KAAK,CACnB,CAAC;IACF;EACD,CAAC,EAAE,CAACH,cAAc,EAAEC,WAAW,EAAEC,OAAO,CAACc,KAAK,CAACC,GAAG,EAAEd,KAAK,CAAC,CAAC;EAE3D,MAAMgB,eAAe,GAAG,IAAAR,kBAAW,EAAC,MAAM;IACzC,SAAS;;IACT,IAAI,CAACX,cAAc,IAAIQ,kBAAkB,CAACY,KAAK,EAAE;IAEjD,MAAMC,gBAAgB,GAAGjB,QAAQ,EAAEY,KAAK,CAACC,GAAG;IAC5C,IAAI,CAACI,gBAAgB,EAAE;IAEvB,MAAMC,cAAc,GAAGR,cAAM,CAACS,SAAS,CAACF,gBAAgB,CAAC;IACzD,MAAMG,sBAAsB,GAAGF,cAAc,CAACtB,cAAc,CAAC;IAE7D,IAAIM,iBAAiB,CAACc,KAAK,CAAClB,OAAO,CAACuB,SAAS,IAAID,sBAAsB,EAAE;MACxEd,aAAa,CAAC,CAAC;MACfF,kBAAkB,CAACY,KAAK,GAAG,IAAI;IAChC;EACD,CAAC,EAAE,CACFV,aAAa,EACbJ,iBAAiB,EACjBN,cAAc,EACdI,QAAQ,EAAEY,KAAK,CAACC,GAAG,EACnBT,kBAAkB,CAClB,CAAC;EAEF,OAAO;IACNE,aAAa;IACbS;EACD,CAAC;AACF,CAAC;AAACO,OAAA,CAAA3B,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBuildGestures = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeGestureHandler = require("react-native-gesture-handler");
10
+ var _reactNativeReanimated = require("react-native-reanimated");
11
+ var _keys = require("../../providers/keys");
12
+ var _animations = require("../../stores/animations");
13
+ var _gestures = require("../../stores/gestures");
14
+ var _navigatorDismissState = require("../../stores/navigator-dismiss-state");
15
+ var _animate = require("../../utils/animation/animate");
16
+ var _runTransition = require("../../utils/animation/run-transition");
17
+ var _applyGestureActivationCriteria = require("../../utils/gesture/apply-gesture-activation-criteria");
18
+ var _mapGestureToProgress = require("../../utils/gesture/map-gesture-to-progress");
19
+ const GESTURE_VELOCITY_IMPACT = 0.3;
20
+ const DEFAULT_GESTURE_RESPONSE_DISTANCE = 50;
21
+ const DEFAULT_GESTURE_DIRECTION = "horizontal";
22
+ const DEFAULT_GESTURE_ENABLED = false;
23
+ const DEFAULT_GESTURE_DRIVES_PROGRESS = true;
24
+ const useBuildGestures = ({
25
+ scrollProgress
26
+ }) => {
27
+ const dimensions = (0, _reactNative.useWindowDimensions)();
28
+ const {
29
+ current
30
+ } = (0, _keys.useKeys)();
31
+ const initialTouch = (0, _reactNativeReanimated.useSharedValue)({
32
+ x: 0,
33
+ y: 0
34
+ });
35
+ const gestures = _gestures.Gestures.getRouteGestures(current.route.key);
36
+ const animations = _animations.Animations.getAll(current.route.key);
37
+ const {
38
+ gestureDirection = DEFAULT_GESTURE_DIRECTION,
39
+ gestureEnabled = DEFAULT_GESTURE_ENABLED,
40
+ transitionSpec,
41
+ gestureVelocityImpact = GESTURE_VELOCITY_IMPACT,
42
+ gestureResponseDistance = DEFAULT_GESTURE_RESPONSE_DISTANCE,
43
+ gestureDrivesProgress = DEFAULT_GESTURE_DRIVES_PROGRESS
44
+ } = current.options;
45
+ const directions = Array.isArray(gestureDirection) ? gestureDirection : [gestureDirection];
46
+ const allowed = (0, _react.useMemo)(() => ({
47
+ bidirectional: directions.includes("bidirectional"),
48
+ vertical: directions.includes("vertical"),
49
+ verticalInverted: directions.includes("vertical-inverted"),
50
+ horizontal: directions.includes("horizontal"),
51
+ horizontalInverted: directions.includes("horizontal-inverted")
52
+ }), [directions]);
53
+ const nativeGesture = (0, _react.useMemo)(() => _reactNativeGestureHandler.Gesture.Native(), []);
54
+ const onTouchesDown = (0, _react.useCallback)(e => {
55
+ "worklet";
56
+
57
+ const firstTouch = e.changedTouches[0];
58
+ initialTouch.value = {
59
+ x: firstTouch.x,
60
+ y: firstTouch.y
61
+ };
62
+ }, [initialTouch]);
63
+ const onTouchesMove = (0, _react.useCallback)((e, manager) => {
64
+ "worklet";
65
+
66
+ const touch = e.changedTouches[0];
67
+ const deltaX = touch.x - initialTouch.value.x;
68
+ const deltaY = touch.y - initialTouch.value.y;
69
+ const isVerticalSwipe = Math.abs(deltaY) > Math.abs(deltaX);
70
+ const isHorizontalSwipe = Math.abs(deltaX) > Math.abs(deltaY);
71
+ const isSwipingDown = isVerticalSwipe && deltaY > 0;
72
+ const isSwipingUp = isVerticalSwipe && deltaY < 0;
73
+ const isSwipingRight = isHorizontalSwipe && deltaX > 0;
74
+ const isSwipingLeft = isHorizontalSwipe && deltaX < 0;
75
+ const minMovement = 5;
76
+ const hasEnoughMovement = Math.abs(deltaX) > minMovement || Math.abs(deltaY) > minMovement;
77
+ if (!hasEnoughMovement) return;
78
+ if (gestures.isDragging?.value) {
79
+ manager.activate();
80
+ return;
81
+ }
82
+ let shouldActivate = false;
83
+ if (allowed.vertical && isSwipingDown) {
84
+ shouldActivate = scrollProgress.value.y <= 0;
85
+ }
86
+ if (allowed.verticalInverted && isSwipingUp) {
87
+ const maxScrollableY = scrollProgress.value.contentHeight - scrollProgress.value.layoutHeight;
88
+ shouldActivate = scrollProgress.value.y >= maxScrollableY;
89
+ }
90
+ if (allowed.horizontal && isSwipingRight) {
91
+ shouldActivate = scrollProgress.value.x <= 0;
92
+ }
93
+ if (allowed.horizontalInverted && isSwipingLeft) {
94
+ const maxProgress = scrollProgress.value.contentWidth - scrollProgress.value.layoutWidth;
95
+ shouldActivate = scrollProgress.value.x >= maxProgress;
96
+ }
97
+ if (allowed.bidirectional) {
98
+ if (isSwipingDown) {
99
+ shouldActivate = scrollProgress.value.y >= 0;
100
+ } else if (isSwipingUp) {
101
+ shouldActivate = scrollProgress.value.y <= 0;
102
+ } else if (isSwipingRight || isSwipingLeft) {
103
+ shouldActivate = true;
104
+ }
105
+ }
106
+ if ((shouldActivate || gestures.isDragging?.value) && !gestures.isDismissing?.value) {
107
+ manager.activate();
108
+ } else {
109
+ manager.fail();
110
+ }
111
+ }, [initialTouch, scrollProgress, gestures, allowed]);
112
+ const onStart = (0, _react.useCallback)(() => {
113
+ "worklet";
114
+
115
+ gestures.isDragging.value = 1;
116
+ gestures.isDismissing.value = 0;
117
+ }, [gestures]);
118
+ const onUpdate = (0, _react.useCallback)(event => {
119
+ "worklet";
120
+
121
+ let gestureProgress = 0;
122
+ gestures.x.value = event.translationX;
123
+ gestures.y.value = event.translationY;
124
+ gestures.normalizedX.value = (0, _reactNativeReanimated.interpolate)(event.translationX, [-dimensions.width, dimensions.width], [-1, 1], "clamp");
125
+ gestures.normalizedY.value = (0, _reactNativeReanimated.interpolate)(event.translationY, [-dimensions.height, dimensions.height], [-1, 1], "clamp");
126
+ if (allowed.bidirectional) {
127
+ const distance = Math.sqrt(event.translationX ** 2 + event.translationY ** 2);
128
+ gestureProgress = (0, _mapGestureToProgress.mapGestureToProgress)(distance, dimensions.width);
129
+ } else {
130
+ let maxProgress = 0;
131
+ const allowedDown = allowed.vertical;
132
+ const allowedUp = allowed.verticalInverted;
133
+ const allowedRight = allowed.horizontal;
134
+ const allowedLeft = allowed.horizontalInverted;
135
+ if (allowedRight && event.translationX > 0) {
136
+ const currentProgress = (0, _mapGestureToProgress.mapGestureToProgress)(event.translationX, dimensions.width);
137
+ maxProgress = Math.max(maxProgress, currentProgress);
138
+ }
139
+ if (allowedLeft && event.translationX < 0) {
140
+ const currentProgress = (0, _mapGestureToProgress.mapGestureToProgress)(-event.translationX, dimensions.width);
141
+ maxProgress = Math.max(maxProgress, currentProgress);
142
+ }
143
+ if (allowedDown && event.translationY > 0) {
144
+ const currentProgress = (0, _mapGestureToProgress.mapGestureToProgress)(event.translationY, dimensions.height);
145
+ maxProgress = Math.max(maxProgress, currentProgress);
146
+ }
147
+ if (allowedUp && event.translationY < 0) {
148
+ const currentProgress = (0, _mapGestureToProgress.mapGestureToProgress)(-event.translationY, dimensions.height);
149
+ maxProgress = Math.max(maxProgress, currentProgress);
150
+ }
151
+ gestureProgress = maxProgress;
152
+ }
153
+ if (gestureDrivesProgress) {
154
+ animations.progress.value = 1 - gestureProgress;
155
+ }
156
+ }, [dimensions, gestures, animations, gestureDrivesProgress, allowed]);
157
+ const setNavigatorDismissal = (0, _react.useCallback)(() => {
158
+ const key = current.navigation.getState().key;
159
+ _navigatorDismissState.NavigatorDismissState.set(key, true);
160
+ }, [current]);
161
+ const handleDismiss = (0, _react.useCallback)(() => {
162
+ const key = current.navigation.getState().key;
163
+ current.navigation.goBack();
164
+ _navigatorDismissState.NavigatorDismissState.remove(key);
165
+ }, [current]);
166
+ const onEnd = (0, _react.useCallback)(event => {
167
+ "worklet";
168
+
169
+ const {
170
+ translationX,
171
+ translationY,
172
+ velocityX,
173
+ velocityY
174
+ } = event;
175
+
176
+ // reminder: we should make this into an option
177
+ const dismissThreshold = 0.5;
178
+ const finalX = translationX + velocityX * gestureVelocityImpact;
179
+ const finalY = translationY + velocityY * gestureVelocityImpact;
180
+ const diagonal = Math.sqrt(dimensions.width * dimensions.width + dimensions.height * dimensions.height);
181
+ let shouldDismiss = false;
182
+ const horizontalDistance = Math.abs(finalX);
183
+ const verticalDistance = Math.abs(finalY);
184
+ const crossAxisThreshold = diagonal * dismissThreshold * 0.7;
185
+ if (allowed.bidirectional) {
186
+ // For bidirectional, use the original distance-based logic
187
+ const finalDistance = Math.sqrt(finalX * finalX + finalY * finalY);
188
+ shouldDismiss = finalDistance > diagonal * dismissThreshold;
189
+ } else {
190
+ // Check primary direction dismissal
191
+ if (allowed.vertical && finalY > 0) {
192
+ shouldDismiss = verticalDistance > diagonal * dismissThreshold;
193
+ } else if (allowed.verticalInverted && finalY < 0) {
194
+ shouldDismiss = verticalDistance > diagonal * dismissThreshold;
195
+ } else if (allowed.horizontal && finalX > 0) {
196
+ shouldDismiss = horizontalDistance > diagonal * dismissThreshold;
197
+ } else if (allowed.horizontalInverted && finalX < 0) {
198
+ shouldDismiss = horizontalDistance > diagonal * dismissThreshold;
199
+ }
200
+
201
+ // Allow dismissal on perpendicular axis if movement is significant
202
+ if (!shouldDismiss) {
203
+ if ((allowed.vertical || allowed.verticalInverted) && horizontalDistance > crossAxisThreshold) {
204
+ shouldDismiss = true;
205
+ } else if ((allowed.horizontal || allowed.horizontalInverted) && verticalDistance > crossAxisThreshold) {
206
+ shouldDismiss = true;
207
+ }
208
+ }
209
+ }
210
+ gestures.isDismissing.value = Number(shouldDismiss);
211
+ if (gestures.isDismissing.value) {
212
+ (0, _reactNativeReanimated.runOnJS)(setNavigatorDismissal)();
213
+ }
214
+ (0, _runTransition.runTransition)({
215
+ target: gestures.isDismissing.value ? "close" : "open",
216
+ spec: transitionSpec,
217
+ onFinish: gestures.isDismissing.value ? handleDismiss : undefined,
218
+ animations
219
+ });
220
+ const spec = gestures.isDismissing.value ? transitionSpec?.close : transitionSpec?.open;
221
+ gestures.x.value = (0, _animate.animate)(0, spec);
222
+ gestures.y.value = (0, _animate.animate)(0, spec);
223
+ gestures.normalizedX.value = (0, _animate.animate)(0, spec);
224
+ gestures.normalizedY.value = (0, _animate.animate)(0, spec);
225
+ gestures.isDragging.value = 0;
226
+ }, [dimensions, animations, transitionSpec, gestureVelocityImpact, setNavigatorDismissal, handleDismiss, gestures, allowed]);
227
+ const panGesture = (0, _react.useMemo)(() => _reactNativeGestureHandler.Gesture.Pan().enabled(gestureEnabled).manualActivation(true).onTouchesDown(onTouchesDown).onTouchesMove(onTouchesMove).onStart(onStart).onUpdate(onUpdate).onEnd(onEnd).blocksExternalGesture(nativeGesture), [gestureEnabled, nativeGesture, onTouchesDown, onTouchesMove, onStart, onUpdate, onEnd]);
228
+ (0, _applyGestureActivationCriteria.applyGestureActivationCriteria)({
229
+ gestureDirection,
230
+ gestureResponseDistance,
231
+ panGesture
232
+ });
233
+ return {
234
+ panGesture,
235
+ nativeGesture
236
+ };
237
+ };
238
+ exports.useBuildGestures = useBuildGestures;
239
+ //# sourceMappingURL=use-build-gestures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_keys","_animations","_gestures","_navigatorDismissState","_animate","_runTransition","_applyGestureActivationCriteria","_mapGestureToProgress","GESTURE_VELOCITY_IMPACT","DEFAULT_GESTURE_RESPONSE_DISTANCE","DEFAULT_GESTURE_DIRECTION","DEFAULT_GESTURE_ENABLED","DEFAULT_GESTURE_DRIVES_PROGRESS","useBuildGestures","scrollProgress","dimensions","useWindowDimensions","current","useKeys","initialTouch","useSharedValue","x","y","gestures","Gestures","getRouteGestures","route","key","animations","Animations","getAll","gestureDirection","gestureEnabled","transitionSpec","gestureVelocityImpact","gestureResponseDistance","gestureDrivesProgress","options","directions","Array","isArray","allowed","useMemo","bidirectional","includes","vertical","verticalInverted","horizontal","horizontalInverted","nativeGesture","Gesture","Native","onTouchesDown","useCallback","e","firstTouch","changedTouches","value","onTouchesMove","manager","touch","deltaX","deltaY","isVerticalSwipe","Math","abs","isHorizontalSwipe","isSwipingDown","isSwipingUp","isSwipingRight","isSwipingLeft","minMovement","hasEnoughMovement","isDragging","activate","shouldActivate","maxScrollableY","contentHeight","layoutHeight","maxProgress","contentWidth","layoutWidth","isDismissing","fail","onStart","onUpdate","event","gestureProgress","translationX","translationY","normalizedX","interpolate","width","normalizedY","height","distance","sqrt","mapGestureToProgress","allowedDown","allowedUp","allowedRight","allowedLeft","currentProgress","max","progress","setNavigatorDismissal","navigation","getState","NavigatorDismissState","set","handleDismiss","goBack","remove","onEnd","velocityX","velocityY","dismissThreshold","finalX","finalY","diagonal","shouldDismiss","horizontalDistance","verticalDistance","crossAxisThreshold","finalDistance","Number","runOnJS","runTransition","target","spec","onFinish","undefined","close","open","animate","panGesture","Pan","enabled","manualActivation","blocksExternalGesture","applyGestureActivationCriteria","exports"],"sourceRoot":"../../../../src","sources":["hooks/gestures/use-build-gestures.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useScrollProgress = void 0;
7
+ var _react = require("react");
8
+ var _reactNativeReanimated = require("react-native-reanimated");
9
+ var _gestures = require("../../providers/gestures");
10
+ const useScrollProgress = props => {
11
+ const {
12
+ scrollProgress
13
+ } = (0, _gestures.useGestureContext)();
14
+ const scrollHandler = (0, _reactNativeReanimated.useAnimatedScrollHandler)({
15
+ onScroll: event => {
16
+ props.onScroll?.(event);
17
+ scrollProgress.modify(v => {
18
+ "worklet";
19
+
20
+ v.x = event.contentOffset.x;
21
+ v.y = event.contentOffset.y;
22
+ return v;
23
+ });
24
+ }
25
+ });
26
+ const onContentSizeChange = (0, _react.useCallback)((width, height) => {
27
+ props.onContentSizeChange?.(width, height);
28
+ scrollProgress.modify(v => {
29
+ "worklet";
30
+
31
+ v.contentWidth = width;
32
+ v.contentHeight = height;
33
+ return v;
34
+ });
35
+ }, [scrollProgress, props.onContentSizeChange]);
36
+ const onLayout = (0, _react.useCallback)(event => {
37
+ props.onLayout?.(event);
38
+ const {
39
+ width,
40
+ height
41
+ } = event.nativeEvent.layout;
42
+ scrollProgress.modify(v => {
43
+ "worklet";
44
+
45
+ v.layoutHeight = height;
46
+ v.layoutWidth = width;
47
+ return v;
48
+ });
49
+ }, [scrollProgress, props.onLayout]);
50
+ return {
51
+ scrollHandler,
52
+ onContentSizeChange,
53
+ onLayout
54
+ };
55
+ };
56
+ exports.useScrollProgress = useScrollProgress;
57
+ //# sourceMappingURL=use-scroll-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNativeReanimated","_gestures","useScrollProgress","props","scrollProgress","useGestureContext","scrollHandler","useAnimatedScrollHandler","onScroll","event","modify","v","x","contentOffset","y","onContentSizeChange","useCallback","width","height","contentWidth","contentHeight","onLayout","nativeEvent","layout","layoutHeight","layoutWidth","exports"],"sourceRoot":"../../../../src","sources":["hooks/gestures/use-scroll-progress.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AAQO,MAAMG,iBAAiB,GAAIC,KAA8B,IAAK;EACpE,MAAM;IAAEC;EAAe,CAAC,GAAG,IAAAC,2BAAiB,EAAC,CAAC;EAC9C,MAAMC,aAAa,GAAG,IAAAC,+CAAwB,EAAC;IAC9CC,QAAQ,EAAGC,KAAK,IAAK;MACpBN,KAAK,CAACK,QAAQ,GAAGC,KAAK,CAAC;MACvBL,cAAc,CAACM,MAAM,CAAEC,CAAC,IAAK;QAC5B,SAAS;;QACTA,CAAC,CAACC,CAAC,GAAGH,KAAK,CAACI,aAAa,CAACD,CAAC;QAC3BD,CAAC,CAACG,CAAC,GAAGL,KAAK,CAACI,aAAa,CAACC,CAAC;QAC3B,OAAOH,CAAC;MACT,CAAC,CAAC;IACH;EACD,CAAC,CAAC;EAEF,MAAMI,mBAAmB,GAAG,IAAAC,kBAAW,EACtC,CAACC,KAAa,EAAEC,MAAc,KAAK;IAClCf,KAAK,CAACY,mBAAmB,GAAGE,KAAK,EAAEC,MAAM,CAAC;IAE1Cd,cAAc,CAACM,MAAM,CAAEC,CAAC,IAAK;MAC5B,SAAS;;MACTA,CAAC,CAACQ,YAAY,GAAGF,KAAK;MACtBN,CAAC,CAACS,aAAa,GAAGF,MAAM;MACxB,OAAOP,CAAC;IACT,CAAC,CAAC;EACH,CAAC,EACD,CAACP,cAAc,EAAED,KAAK,CAACY,mBAAmB,CAC3C,CAAC;EAED,MAAMM,QAAQ,GAAG,IAAAL,kBAAW,EAC1BP,KAAwB,IAAK;IAC7BN,KAAK,CAACkB,QAAQ,GAAGZ,KAAK,CAAC;IACvB,MAAM;MAAEQ,KAAK;MAAEC;IAAO,CAAC,GAAGT,KAAK,CAACa,WAAW,CAACC,MAAM;IAClDnB,cAAc,CAACM,MAAM,CAAEC,CAAC,IAAK;MAC5B,SAAS;;MACTA,CAAC,CAACa,YAAY,GAAGN,MAAM;MACvBP,CAAC,CAACc,WAAW,GAAGR,KAAK;MACrB,OAAON,CAAC;IACT,CAAC,CAAC;EACH,CAAC,EACD,CAACP,cAAc,EAAED,KAAK,CAACkB,QAAQ,CAChC,CAAC;EAED,OAAO;IACNf,aAAa;IACbS,mBAAmB;IACnBM;EACD,CAAC;AACF,CAAC;AAACK,OAAA,CAAAxB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useStableCallback;
7
+ var _react = require("react");
8
+ function useStableCallback(callback) {
9
+ const callbackRef = (0, _react.useRef)(callback);
10
+ (0, _react.useEffect)(() => {
11
+ callbackRef.current = callback;
12
+ }, [callback]);
13
+ return (0, _react.useCallback)((...args) => {
14
+ callbackRef.current(...args);
15
+ }, []);
16
+ }
17
+ //# sourceMappingURL=use-stable-callback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","useStableCallback","callback","callbackRef","useRef","useEffect","current","useCallback","args"],"sourceRoot":"../../../src","sources":["hooks/use-stable-callback.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEe,SAASC,iBAAiBA,CACxCC,QAAW,EACV;EACD,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAACF,QAAQ,CAAC;EAEpC,IAAAG,gBAAS,EAAC,MAAM;IACfF,WAAW,CAACG,OAAO,GAAGJ,QAAQ;EAC/B,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,OAAO,IAAAK,kBAAW,EAAC,CAAC,GAAGC,IAAmB,KAAK;IAC9CL,WAAW,CAACG,OAAO,CAAC,GAAGE,IAAI,CAAC;EAC7B,CAAC,EAAE,EAAE,CAAC;AACP","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "createNativeStackNavigator", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _createNativeStackNavigator.createNativeStackNavigator;
10
+ }
11
+ });
12
+ exports.default = void 0;
13
+ Object.defineProperty(exports, "useScreenAnimation", {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _useScreenAnimation.useScreenAnimation;
17
+ }
18
+ });
19
+ var _reactNative = require("react-native");
20
+ var _createTransitionAwareComponent = require("./components/create-transition-aware-component");
21
+ var _configs = require("./configs");
22
+ var _useScreenAnimation = require("./hooks/animation/use-screen-animation");
23
+ var _createNativeStackNavigator = require("./integrations/native-stack/navigators/createNativeStackNavigator");
24
+ var _default = exports.default = {
25
+ View: (0, _createTransitionAwareComponent.createTransitionAwareComponent)(_reactNative.View),
26
+ Pressable: (0, _createTransitionAwareComponent.createTransitionAwareComponent)(_reactNative.Pressable),
27
+ ScrollView: (0, _createTransitionAwareComponent.createTransitionAwareComponent)(_reactNative.ScrollView, {
28
+ isScrollable: true
29
+ }),
30
+ FlatList: (0, _createTransitionAwareComponent.createTransitionAwareComponent)(_reactNative.FlatList, {
31
+ isScrollable: true
32
+ }),
33
+ presets: _configs.presets,
34
+ specs: _configs.specs,
35
+ createTransitionAwareComponent: _createTransitionAwareComponent.createTransitionAwareComponent
36
+ };
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_createTransitionAwareComponent","_configs","_useScreenAnimation","_createNativeStackNavigator","_default","exports","default","View","createTransitionAwareComponent","Pressable","ScrollView","isScrollable","FlatList","presets","specs"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,+BAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAgBA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,2BAAA,GAAAJ,OAAA;AAA+G,IAAAK,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAfhG;EACdC,IAAI,EAAE,IAAAC,8DAA8B,EAACD,iBAAI,CAAC;EAC1CE,SAAS,EAAE,IAAAD,8DAA8B,EAACC,sBAAS,CAAC;EACpDC,UAAU,EAAE,IAAAF,8DAA8B,EAACE,uBAAU,EAAE;IACtDC,YAAY,EAAE;EACf,CAAC,CAAC;EACFC,QAAQ,EAAE,IAAAJ,8DAA8B,EAACI,qBAAQ,EAAE;IAClDD,YAAY,EAAE;EACf,CAAC,CAAC;EACFE,OAAO,EAAPA,gBAAO;EACPC,KAAK,EAALA,cAAK;EACLN,8BAA8B,EAA9BA;AACD,CAAC","ignoreList":[]}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createNativeStackNavigator = createNativeStackNavigator;
7
+ var _native = require("@react-navigation/native");
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _NativeStackView = require("../views/NativeStackView");
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
+ function NativeStackNavigator({
13
+ id,
14
+ initialRouteName,
15
+ children,
16
+ layout,
17
+ screenListeners,
18
+ screenOptions,
19
+ screenLayout,
20
+ ...rest
21
+ }) {
22
+ const {
23
+ state,
24
+ describe,
25
+ descriptors,
26
+ navigation,
27
+ NavigationContent
28
+ } = (0, _native.useNavigationBuilder)(_native.StackRouter, {
29
+ id,
30
+ initialRouteName,
31
+ children,
32
+ layout,
33
+ screenListeners,
34
+ screenOptions,
35
+ screenLayout
36
+ });
37
+ React.useEffect(() =>
38
+ // @ts-expect-error: there may not be a tab navigator in parent
39
+ navigation?.addListener?.("tabPress", e => {
40
+ const isFocused = navigation.isFocused();
41
+
42
+ // Run the operation in the next frame so we're sure all listeners have been run
43
+ // This is necessary to know if preventDefault() has been called
44
+ requestAnimationFrame(() => {
45
+ if (state.index > 0 && isFocused && !e.defaultPrevented) {
46
+ // When user taps on already focused tab and we're inside the tab,
47
+ // reset the stack to replicate native behaviour
48
+ navigation.dispatch({
49
+ ..._native.StackActions.popToTop(),
50
+ target: state.key
51
+ });
52
+ }
53
+ });
54
+ }), [navigation, state.index, state.key]);
55
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(NavigationContent, {
56
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_NativeStackView.NativeStackView, {
57
+ ...rest,
58
+ state: state,
59
+ navigation: navigation,
60
+ descriptors: descriptors,
61
+ describe: describe
62
+ })
63
+ });
64
+ }
65
+ function createNativeStackNavigator(config) {
66
+ return (0, _native.createNavigatorFactory)(NativeStackNavigator)(config);
67
+ }
68
+ //# sourceMappingURL=createNativeStackNavigator.js.map