@amazon-devices/react-native-screens 2.0.1758683737

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 (381) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +223 -0
  3. package/RNScreens.podspec +53 -0
  4. package/SystemBundles/8f5a820b958535e533acb38dbc0c72c1837721b9db075f4a1740e42b9fee3910.bundle +33668 -0
  5. package/SystemBundles/8f5a820b958535e533acb38dbc0c72c1837721b9db075f4a1740e42b9fee3910.map +1 -0
  6. package/SystemModules/amzn__react-native-screens.modules.txt +101 -0
  7. package/SystemModules/amzn__react-native-screens.private.modules.txt +244 -0
  8. package/SystemModules/keplerscript-system-bundle-config.json +7 -0
  9. package/THIRD_PARTY_NOTICES.txt +707 -0
  10. package/android/build.gradle +133 -0
  11. package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +49 -0
  12. package/android/src/main/AndroidManifest.xml +5 -0
  13. package/android/src/main/java/com/swmansion/rnscreens/CustomSearchView.kt +77 -0
  14. package/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt +7 -0
  15. package/android/src/main/java/com/swmansion/rnscreens/FragmentBackPressOverrider.kt +29 -0
  16. package/android/src/main/java/com/swmansion/rnscreens/FragmentHolder.kt +7 -0
  17. package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +21 -0
  18. package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +289 -0
  19. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt +372 -0
  20. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainerViewManager.kt +40 -0
  21. package/android/src/main/java/com/swmansion/rnscreens/ScreenEventDispatcher.kt +21 -0
  22. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragment.kt +331 -0
  23. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragmentWrapper.kt +22 -0
  24. package/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +336 -0
  25. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +282 -0
  26. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragmentWrapper.kt +15 -0
  27. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +398 -0
  28. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +204 -0
  29. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubview.kt +38 -0
  30. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +41 -0
  31. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackViewManager.kt +75 -0
  32. package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +186 -0
  33. package/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +296 -0
  34. package/android/src/main/java/com/swmansion/rnscreens/ScreensShadowNode.kt +19 -0
  35. package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +133 -0
  36. package/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt +178 -0
  37. package/android/src/main/java/com/swmansion/rnscreens/SearchViewFormatter.kt +67 -0
  38. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderAttachedEvent.kt +22 -0
  39. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderBackButtonClickedEvent.kt +22 -0
  40. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderDetachedEvent.kt +22 -0
  41. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt +26 -0
  42. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenAppearEvent.kt +18 -0
  43. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenDisappearEvent.kt +18 -0
  44. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenDismissedEvent.kt +20 -0
  45. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenTransitionProgressEvent.kt +32 -0
  46. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillAppearEvent.kt +18 -0
  47. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillDisappearEvent.kt +18 -0
  48. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarBlurEvent.kt +22 -0
  49. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarChangeTextEvent.kt +28 -0
  50. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarCloseEvent.kt +22 -0
  51. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarFocusEvent.kt +22 -0
  52. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarOpenEvent.kt +22 -0
  53. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarSearchButtonPressEvent.kt +24 -0
  54. package/android/src/main/java/com/swmansion/rnscreens/events/StackFinishTransitioningEvent.kt +18 -0
  55. package/android/src/main/java/com/swmansion/rnscreens/utils/DeviceUtils.kt +12 -0
  56. package/android/src/main/jni/CMakeLists.txt +72 -0
  57. package/android/src/main/jni/rnscreens.cpp +16 -0
  58. package/android/src/main/jni/rnscreens.h +28 -0
  59. package/android/src/main/res/base/anim/rns_default_enter_in.xml +18 -0
  60. package/android/src/main/res/base/anim/rns_default_enter_out.xml +19 -0
  61. package/android/src/main/res/base/anim/rns_default_exit_in.xml +17 -0
  62. package/android/src/main/res/base/anim/rns_default_exit_out.xml +18 -0
  63. package/android/src/main/res/base/anim/rns_fade_from_bottom.xml +14 -0
  64. package/android/src/main/res/base/anim/rns_fade_in.xml +7 -0
  65. package/android/src/main/res/base/anim/rns_fade_out.xml +7 -0
  66. package/android/src/main/res/base/anim/rns_fade_to_bottom.xml +15 -0
  67. package/android/src/main/res/base/anim/rns_no_animation_20.xml +6 -0
  68. package/android/src/main/res/base/anim/rns_no_animation_250.xml +7 -0
  69. package/android/src/main/res/base/anim/rns_no_animation_350.xml +6 -0
  70. package/android/src/main/res/base/anim/rns_no_animation_medium.xml +7 -0
  71. package/android/src/main/res/base/anim/rns_slide_in_from_bottom.xml +7 -0
  72. package/android/src/main/res/base/anim/rns_slide_in_from_left.xml +5 -0
  73. package/android/src/main/res/base/anim/rns_slide_in_from_right.xml +5 -0
  74. package/android/src/main/res/base/anim/rns_slide_out_to_bottom.xml +7 -0
  75. package/android/src/main/res/base/anim/rns_slide_out_to_left.xml +5 -0
  76. package/android/src/main/res/base/anim/rns_slide_out_to_right.xml +5 -0
  77. package/android/src/main/res/base/anim/rns_standard_accelerate_interpolator.xml +6 -0
  78. package/android/src/main/res/v33/anim-v33/rns_default_enter_in.xml +38 -0
  79. package/android/src/main/res/v33/anim-v33/rns_default_enter_out.xml +38 -0
  80. package/android/src/main/res/v33/anim-v33/rns_default_exit_in.xml +38 -0
  81. package/android/src/main/res/v33/anim-v33/rns_default_exit_out.xml +38 -0
  82. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +111 -0
  83. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +44 -0
  84. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +107 -0
  85. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +42 -0
  86. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerDelegate.java +31 -0
  87. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerInterface.java +17 -0
  88. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerDelegate.java +25 -0
  89. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerInterface.java +16 -0
  90. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +10 -0
  91. package/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h +41 -0
  92. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp +9 -0
  93. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h +30 -0
  94. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.cpp +14 -0
  95. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h +45 -0
  96. package/ios/RCTImageComponentView+RNSScreenStackHeaderConfig.h +11 -0
  97. package/ios/RCTImageComponentView+RNSScreenStackHeaderConfig.mm +14 -0
  98. package/ios/RNSConvert.h +36 -0
  99. package/ios/RNSConvert.mm +154 -0
  100. package/ios/RNSEnums.h +71 -0
  101. package/ios/RNSFullWindowOverlay.h +34 -0
  102. package/ios/RNSFullWindowOverlay.mm +241 -0
  103. package/ios/RNSScreen.h +144 -0
  104. package/ios/RNSScreen.mm +1599 -0
  105. package/ios/RNSScreenContainer.h +45 -0
  106. package/ios/RNSScreenContainer.mm +343 -0
  107. package/ios/RNSScreenNavigationContainer.h +16 -0
  108. package/ios/RNSScreenNavigationContainer.mm +66 -0
  109. package/ios/RNSScreenStack.h +37 -0
  110. package/ios/RNSScreenStack.mm +1111 -0
  111. package/ios/RNSScreenStackAnimator.h +8 -0
  112. package/ios/RNSScreenStackAnimator.mm +320 -0
  113. package/ios/RNSScreenStackHeaderConfig.h +74 -0
  114. package/ios/RNSScreenStackHeaderConfig.mm +967 -0
  115. package/ios/RNSScreenStackHeaderSubview.h +44 -0
  116. package/ios/RNSScreenStackHeaderSubview.mm +147 -0
  117. package/ios/RNSScreenWindowTraits.h +26 -0
  118. package/ios/RNSScreenWindowTraits.mm +266 -0
  119. package/ios/RNSSearchBar.h +43 -0
  120. package/ios/RNSSearchBar.mm +465 -0
  121. package/ios/RNScreens.xcodeproj/project.pbxproj +461 -0
  122. package/ios/UIViewController+RNScreens.h +9 -0
  123. package/ios/UIViewController+RNScreens.mm +78 -0
  124. package/ios/UIWindow+RNScreens.h +9 -0
  125. package/ios/UIWindow+RNScreens.mm +17 -0
  126. package/ios/events/RNSHeaderHeightChangeEvent.h +8 -0
  127. package/ios/events/RNSHeaderHeightChangeEvent.mm +44 -0
  128. package/ios/events/RNSScreenViewEvent.h +12 -0
  129. package/ios/events/RNSScreenViewEvent.mm +59 -0
  130. package/ios/utils/RNSUIBarButtonItem.h +5 -0
  131. package/ios/utils/RNSUIBarButtonItem.mm +22 -0
  132. package/kepler-compatibility.json +8 -0
  133. package/kepler-transformed-package-info.json +3 -0
  134. package/lib/commonjs/TransitionProgressContext.js +11 -0
  135. package/lib/commonjs/TransitionProgressContext.js.map +1 -0
  136. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +11 -0
  137. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -0
  138. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +33 -0
  139. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -0
  140. package/lib/commonjs/fabric/ScreenNativeComponent.js +70 -0
  141. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -0
  142. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +11 -0
  143. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -0
  144. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +31 -0
  145. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -0
  146. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +12 -0
  147. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -0
  148. package/lib/commonjs/fabric/ScreenStackNativeComponent.js +35 -0
  149. package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -0
  150. package/lib/commonjs/fabric/SearchBarNativeComponent.js +19 -0
  151. package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -0
  152. package/lib/commonjs/index.js +147 -0
  153. package/lib/commonjs/index.js.map +1 -0
  154. package/lib/commonjs/index.native.js +407 -0
  155. package/lib/commonjs/index.native.js.map +1 -0
  156. package/lib/commonjs/native-stack/index.js +49 -0
  157. package/lib/commonjs/native-stack/index.js.map +1 -0
  158. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +75 -0
  159. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -0
  160. package/lib/commonjs/native-stack/types.js +6 -0
  161. package/lib/commonjs/native-stack/types.js.map +1 -0
  162. package/lib/commonjs/native-stack/utils/AnimatedHeaderHeightContext.js +12 -0
  163. package/lib/commonjs/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -0
  164. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js +12 -0
  165. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -0
  166. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js +75 -0
  167. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js.map +1 -0
  168. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js +35 -0
  169. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -0
  170. package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js +19 -0
  171. package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -0
  172. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js +54 -0
  173. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -0
  174. package/lib/commonjs/native-stack/utils/useHeaderHeight.js +19 -0
  175. package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -0
  176. package/lib/commonjs/native-stack/views/FontProcessor.js +21 -0
  177. package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -0
  178. package/lib/commonjs/native-stack/views/HeaderConfig.js +141 -0
  179. package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -0
  180. package/lib/commonjs/native-stack/views/NativeStackView.js +354 -0
  181. package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -0
  182. package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js +12 -0
  183. package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js.map +1 -0
  184. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +101 -0
  185. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -0
  186. package/lib/commonjs/reanimated/ReanimatedScreen.js +22 -0
  187. package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -0
  188. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +47 -0
  189. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -0
  190. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js +12 -0
  191. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -0
  192. package/lib/commonjs/reanimated/index.js +28 -0
  193. package/lib/commonjs/reanimated/index.js.map +1 -0
  194. package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js +19 -0
  195. package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js.map +1 -0
  196. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js +19 -0
  197. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -0
  198. package/lib/commonjs/types.js +6 -0
  199. package/lib/commonjs/types.js.map +1 -0
  200. package/lib/commonjs/useTransitionProgress.js +19 -0
  201. package/lib/commonjs/useTransitionProgress.js.map +1 -0
  202. package/lib/commonjs/utils.js +21 -0
  203. package/lib/commonjs/utils.js.map +1 -0
  204. package/lib/module/TransitionProgressContext.js +3 -0
  205. package/lib/module/TransitionProgressContext.js.map +1 -0
  206. package/lib/module/fabric/FullWindowOverlayNativeComponent.js +4 -0
  207. package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -0
  208. package/lib/module/fabric/ScreenContainerNativeComponent.js +25 -0
  209. package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -0
  210. package/lib/module/fabric/ScreenNativeComponent.js +63 -0
  211. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -0
  212. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +4 -0
  213. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -0
  214. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +23 -0
  215. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -0
  216. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +7 -0
  217. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -0
  218. package/lib/module/fabric/ScreenStackNativeComponent.js +28 -0
  219. package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -0
  220. package/lib/module/fabric/SearchBarNativeComponent.js +10 -0
  221. package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -0
  222. package/lib/module/index.js +67 -0
  223. package/lib/module/index.js.map +1 -0
  224. package/lib/module/index.native.js +410 -0
  225. package/lib/module/index.native.js.map +1 -0
  226. package/lib/module/native-stack/index.js +22 -0
  227. package/lib/module/native-stack/index.js.map +1 -0
  228. package/lib/module/native-stack/navigators/createNativeStackNavigator.js +72 -0
  229. package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -0
  230. package/lib/module/native-stack/types.js +2 -0
  231. package/lib/module/native-stack/types.js.map +1 -0
  232. package/lib/module/native-stack/utils/AnimatedHeaderHeightContext.js +4 -0
  233. package/lib/module/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -0
  234. package/lib/module/native-stack/utils/HeaderHeightContext.js +4 -0
  235. package/lib/module/native-stack/utils/HeaderHeightContext.js.map +1 -0
  236. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js +68 -0
  237. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js.map +1 -0
  238. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js +29 -0
  239. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -0
  240. package/lib/module/native-stack/utils/useAnimatedHeaderHeight.js +10 -0
  241. package/lib/module/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -0
  242. package/lib/module/native-stack/utils/useBackPressSubscription.js +47 -0
  243. package/lib/module/native-stack/utils/useBackPressSubscription.js.map +1 -0
  244. package/lib/module/native-stack/utils/useHeaderHeight.js +10 -0
  245. package/lib/module/native-stack/utils/useHeaderHeight.js.map +1 -0
  246. package/lib/module/native-stack/views/FontProcessor.js +13 -0
  247. package/lib/module/native-stack/views/FontProcessor.js.map +1 -0
  248. package/lib/module/native-stack/views/HeaderConfig.js +132 -0
  249. package/lib/module/native-stack/views/HeaderConfig.js.map +1 -0
  250. package/lib/module/native-stack/views/NativeStackView.js +355 -0
  251. package/lib/module/native-stack/views/NativeStackView.js.map +1 -0
  252. package/lib/module/reanimated/ReanimatedHeaderHeightContext.js +5 -0
  253. package/lib/module/reanimated/ReanimatedHeaderHeightContext.js.map +1 -0
  254. package/lib/module/reanimated/ReanimatedNativeStackScreen.js +97 -0
  255. package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -0
  256. package/lib/module/reanimated/ReanimatedScreen.js +17 -0
  257. package/lib/module/reanimated/ReanimatedScreen.js.map +1 -0
  258. package/lib/module/reanimated/ReanimatedScreenProvider.js +40 -0
  259. package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -0
  260. package/lib/module/reanimated/ReanimatedTransitionProgressContext.js +5 -0
  261. package/lib/module/reanimated/ReanimatedTransitionProgressContext.js.map +1 -0
  262. package/lib/module/reanimated/index.js +4 -0
  263. package/lib/module/reanimated/index.js.map +1 -0
  264. package/lib/module/reanimated/useReanimatedHeaderHeight.js +10 -0
  265. package/lib/module/reanimated/useReanimatedHeaderHeight.js.map +1 -0
  266. package/lib/module/reanimated/useReanimatedTransitionProgress.js +10 -0
  267. package/lib/module/reanimated/useReanimatedTransitionProgress.js.map +1 -0
  268. package/lib/module/types.js +2 -0
  269. package/lib/module/types.js.map +1 -0
  270. package/lib/module/useTransitionProgress.js +10 -0
  271. package/lib/module/useTransitionProgress.js.map +1 -0
  272. package/lib/module/utils.js +14 -0
  273. package/lib/module/utils.js.map +1 -0
  274. package/lib/typescript/TransitionProgressContext.d.ts +9 -0
  275. package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts +7 -0
  276. package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts +5 -0
  277. package/lib/typescript/fabric/ScreenNativeComponent.d.ts +66 -0
  278. package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts +7 -0
  279. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +33 -0
  280. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +10 -0
  281. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +8 -0
  282. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +49 -0
  283. package/lib/typescript/index.d.ts +33 -0
  284. package/lib/typescript/index.native.d.ts +2 -0
  285. package/lib/typescript/native-stack/index.d.ts +19 -0
  286. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +6 -0
  287. package/lib/typescript/native-stack/types.d.ts +438 -0
  288. package/lib/typescript/native-stack/utils/AnimatedHeaderHeightContext.d.ts +4 -0
  289. package/lib/typescript/native-stack/utils/HeaderHeightContext.d.ts +3 -0
  290. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts +11 -0
  291. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +7 -0
  292. package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts +1 -0
  293. package/lib/typescript/native-stack/utils/useBackPressSubscription.d.ts +16 -0
  294. package/lib/typescript/native-stack/utils/useHeaderHeight.d.ts +1 -0
  295. package/lib/typescript/native-stack/views/FontProcessor.d.ts +1 -0
  296. package/lib/typescript/native-stack/views/HeaderConfig.d.ts +8 -0
  297. package/lib/typescript/native-stack/views/NativeStackView.d.ts +10 -0
  298. package/lib/typescript/reanimated/ReanimatedHeaderHeightContext.d.ts +4 -0
  299. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +5 -0
  300. package/lib/typescript/reanimated/ReanimatedScreen.d.ts +5 -0
  301. package/lib/typescript/reanimated/ReanimatedScreenProvider.d.ts +2 -0
  302. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts +9 -0
  303. package/lib/typescript/reanimated/index.d.ts +3 -0
  304. package/lib/typescript/reanimated/useReanimatedHeaderHeight.d.ts +3 -0
  305. package/lib/typescript/reanimated/useReanimatedTransitionProgress.d.ts +11 -0
  306. package/lib/typescript/types.d.ts +612 -0
  307. package/lib/typescript/useTransitionProgress.d.ts +5 -0
  308. package/lib/typescript/utils.d.ts +3 -0
  309. package/native-stack/README.md +814 -0
  310. package/native-stack/package.json +6 -0
  311. package/package.json +1 -0
  312. package/react-native.config.js +42 -0
  313. package/reanimated/package.json +6 -0
  314. package/src/TransitionProgressContext.tsx +12 -0
  315. package/src/fabric/FullWindowOverlayNativeComponent.ts +7 -0
  316. package/src/fabric/ScreenContainerNativeComponent.ts +28 -0
  317. package/src/fabric/ScreenNativeComponent.ts +158 -0
  318. package/src/fabric/ScreenNavigationContainerNativeComponent.ts +10 -0
  319. package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +61 -0
  320. package/src/fabric/ScreenStackHeaderSubviewNativeComponent.ts +22 -0
  321. package/src/fabric/ScreenStackNativeComponent.ts +33 -0
  322. package/src/fabric/SearchBarNativeComponent.ts +79 -0
  323. package/src/index.native.tsx +599 -0
  324. package/src/index.tsx +119 -0
  325. package/src/native-stack/index.tsx +27 -0
  326. package/src/native-stack/navigators/createNativeStackNavigator.tsx +107 -0
  327. package/src/native-stack/types.tsx +486 -0
  328. package/src/native-stack/utils/AnimatedHeaderHeightContext.tsx +8 -0
  329. package/src/native-stack/utils/HeaderHeightContext.tsx +5 -0
  330. package/src/native-stack/utils/SafeAreaProviderCompat.tsx +78 -0
  331. package/src/native-stack/utils/getDefaultHeaderHeight.tsx +41 -0
  332. package/src/native-stack/utils/useAnimatedHeaderHeight.tsx +15 -0
  333. package/src/native-stack/utils/useBackPressSubscription.tsx +66 -0
  334. package/src/native-stack/utils/useHeaderHeight.tsx +15 -0
  335. package/src/native-stack/views/FontProcessor.tsx +14 -0
  336. package/src/native-stack/views/HeaderConfig.tsx +187 -0
  337. package/src/native-stack/views/NativeStackView.tsx +466 -0
  338. package/src/reanimated/ReanimatedHeaderHeightContext.tsx +7 -0
  339. package/src/reanimated/ReanimatedNativeStackScreen.tsx +130 -0
  340. package/src/reanimated/ReanimatedScreen.tsx +25 -0
  341. package/src/reanimated/ReanimatedScreenProvider.tsx +42 -0
  342. package/src/reanimated/ReanimatedTransitionProgressContext.tsx +13 -0
  343. package/src/reanimated/index.tsx +3 -0
  344. package/src/reanimated/useReanimatedHeaderHeight.tsx +14 -0
  345. package/src/reanimated/useReanimatedTransitionProgress.tsx +14 -0
  346. package/src/types.tsx +699 -0
  347. package/src/useTransitionProgress.tsx +15 -0
  348. package/src/utils.ts +18 -0
  349. package/windows/README.md +25 -0
  350. package/windows/RNScreens/PropertySheet.props +16 -0
  351. package/windows/RNScreens/RNScreens.cpp +66 -0
  352. package/windows/RNScreens/RNScreens.def +3 -0
  353. package/windows/RNScreens/RNScreens.h +41 -0
  354. package/windows/RNScreens/RNScreens.idl +8 -0
  355. package/windows/RNScreens/RNScreens.vcxproj +187 -0
  356. package/windows/RNScreens/RNScreens.vcxproj.filters +52 -0
  357. package/windows/RNScreens/ReactPackageProvider.cpp +30 -0
  358. package/windows/RNScreens/ReactPackageProvider.h +17 -0
  359. package/windows/RNScreens/ReactPackageProvider.idl +9 -0
  360. package/windows/RNScreens/Screen.cpp +122 -0
  361. package/windows/RNScreens/Screen.h +64 -0
  362. package/windows/RNScreens/ScreenContainer.cpp +49 -0
  363. package/windows/RNScreens/ScreenContainer.h +23 -0
  364. package/windows/RNScreens/ScreenContainerViewManager.cpp +133 -0
  365. package/windows/RNScreens/ScreenContainerViewManager.h +78 -0
  366. package/windows/RNScreens/ScreenStack.cpp +65 -0
  367. package/windows/RNScreens/ScreenStack.h +23 -0
  368. package/windows/RNScreens/ScreenStackHeaderConfig.cpp +19 -0
  369. package/windows/RNScreens/ScreenStackHeaderConfig.h +14 -0
  370. package/windows/RNScreens/ScreenStackHeaderConfigViewManager.cpp +89 -0
  371. package/windows/RNScreens/ScreenStackHeaderConfigViewManager.h +62 -0
  372. package/windows/RNScreens/ScreenStackViewManager.cpp +132 -0
  373. package/windows/RNScreens/ScreenStackViewManager.h +78 -0
  374. package/windows/RNScreens/ScreenViewManager.cpp +154 -0
  375. package/windows/RNScreens/ScreenViewManager.h +78 -0
  376. package/windows/RNScreens/packages.config +4 -0
  377. package/windows/RNScreens/pch.cpp +1 -0
  378. package/windows/RNScreens/pch.h +9 -0
  379. package/windows/RNScreens62.sln +254 -0
  380. package/windows/RNScreens63.sln +225 -0
  381. package/windows/RNScreens65.sln +144 -0
@@ -0,0 +1,354 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = NativeStackView;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _AppContainer = _interopRequireDefault(require("react-native/Libraries/ReactNative/AppContainer"));
10
+ var _warnOnce = _interopRequireDefault(require("warn-once"));
11
+ var _reactNativeScreens = require("@amazon-devices/react-native-screens");
12
+ var _reactNavigation__native = require("@amazon-devices/react-navigation__native");
13
+ var _reactNativeSafeAreaContext = require("@amazon-devices/react-native-safe-area-context");
14
+ var _HeaderConfig = _interopRequireDefault(require("./HeaderConfig"));
15
+ var _SafeAreaProviderCompat = _interopRequireDefault(require("../utils/SafeAreaProviderCompat"));
16
+ var _getDefaultHeaderHeight = _interopRequireDefault(require("../utils/getDefaultHeaderHeight"));
17
+ var _HeaderHeightContext = _interopRequireDefault(require("../utils/HeaderHeightContext"));
18
+ var _AnimatedHeaderHeightContext = _interopRequireDefault(require("../utils/AnimatedHeaderHeightContext"));
19
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /*
23
+ * Portions of this file are copyright (c) 2023 Amazon.com, Inc. or its affiliates. All rights reserved.
24
+ *
25
+ * PORTIONS OF THIS FILE ARE AMAZON PROPRIETARY/CONFIDENTIAL. USE IS SUBJECT TO LICENSE TERMS.
26
+ *
27
+ * Amazon modifications are indicated by [amznmod_* comments].
28
+ */ /*
29
+ * Changelog:
30
+ * Set up react-native-screens package to build for Kepler
31
+ */ // @ts-ignore Getting private component
32
+ // eslint-disable-next-line import/no-named-as-default, import/default, import/no-named-as-default-member, import/namespace
33
+ const isAndroid = _reactNative.Platform.OS === 'android';
34
+ let Container = _reactNative.View;
35
+ if (__DEV__) {
36
+ const DebugContainer = props => {
37
+ const {
38
+ stackPresentation,
39
+ ...rest
40
+ } = props;
41
+ if (_reactNative.Platform.OS === 'ios' && stackPresentation !== 'push') {
42
+ return /*#__PURE__*/React.createElement(_AppContainer.default, null, /*#__PURE__*/React.createElement(_reactNative.View, rest));
43
+ }
44
+ return /*#__PURE__*/React.createElement(_reactNative.View, rest);
45
+ };
46
+ // @ts-ignore Wrong props
47
+ Container = DebugContainer;
48
+ }
49
+ const MaybeNestedStack = ({
50
+ options,
51
+ route,
52
+ stackPresentation,
53
+ children
54
+ }) => {
55
+ var _options$statusBarTra, _options$headerLargeT;
56
+ const {
57
+ colors
58
+ } = (0, _reactNavigation__native.useTheme)();
59
+ const {
60
+ headerShown = true,
61
+ contentStyle
62
+ } = options;
63
+ const Screen = React.useContext(_reactNativeScreens.ScreenContext);
64
+ const isHeaderInModal = isAndroid ? false : stackPresentation !== 'push' && headerShown === true;
65
+ const headerShownPreviousRef = React.useRef(headerShown);
66
+ React.useEffect(() => {
67
+ (0, _warnOnce.default)(!isAndroid && stackPresentation !== 'push' && headerShownPreviousRef.current !== headerShown, `Dynamically changing 'headerShown' in modals will result in remounting the screen and losing all local state. See options for the screen '${route.name}'.`);
68
+ headerShownPreviousRef.current = headerShown;
69
+ }, [headerShown, stackPresentation, route.name]);
70
+ const content = /*#__PURE__*/React.createElement(Container, {
71
+ style: [styles.container, stackPresentation !== 'transparentModal' && stackPresentation !== 'containedTransparentModal' && {
72
+ backgroundColor: colors.background
73
+ }, contentStyle]
74
+ // @ts-ignore Wrong props passed to View
75
+ ,
76
+ stackPresentation: stackPresentation
77
+ // This view must *not* be flattened.
78
+ // See https://github.com/software-mansion/react-native-screens/pull/1825
79
+ // for detailed explanation.
80
+ ,
81
+ collapsable: false
82
+ }, children);
83
+ const dimensions = (0, _reactNativeSafeAreaContext.useSafeAreaFrame)();
84
+ const topInset = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)().top;
85
+ const isStatusBarTranslucent = (_options$statusBarTra = options.statusBarTranslucent) !== null && _options$statusBarTra !== void 0 ? _options$statusBarTra : false;
86
+ const statusBarHeight = getStatusBarHeight(topInset, dimensions, isStatusBarTranslucent);
87
+ const isLargeHeader = (_options$headerLargeT = options.headerLargeTitle) !== null && _options$headerLargeT !== void 0 ? _options$headerLargeT : false;
88
+ const headerHeight = (0, _getDefaultHeaderHeight.default)(dimensions, statusBarHeight, stackPresentation, isLargeHeader);
89
+ if (isHeaderInModal) {
90
+ return /*#__PURE__*/React.createElement(_reactNativeScreens.ScreenStack, {
91
+ style: styles.container
92
+ }, /*#__PURE__*/React.createElement(Screen, {
93
+ enabled: true,
94
+ isNativeStack: true,
95
+ style: _reactNative.StyleSheet.absoluteFill
96
+ }, /*#__PURE__*/React.createElement(_HeaderHeightContext.default.Provider, {
97
+ value: headerHeight
98
+ }, /*#__PURE__*/React.createElement(_HeaderConfig.default, _extends({}, options, {
99
+ route: route
100
+ })), content)));
101
+ }
102
+ return content;
103
+ };
104
+ const RouteView = ({
105
+ descriptors,
106
+ route,
107
+ index,
108
+ navigation,
109
+ stateKey
110
+ }) => {
111
+ var _options$statusBarTra2, _options$headerLargeT2;
112
+ const {
113
+ options,
114
+ render: renderScene
115
+ } = descriptors[route.key];
116
+ const {
117
+ gestureEnabled,
118
+ headerShown,
119
+ hideKeyboardOnSwipe,
120
+ homeIndicatorHidden,
121
+ sheetAllowedDetents = 'large',
122
+ sheetLargestUndimmedDetent = 'all',
123
+ sheetGrabberVisible = false,
124
+ sheetCornerRadius = -1.0,
125
+ sheetExpandsWhenScrolledToEdge = true,
126
+ nativeBackButtonDismissalEnabled = false,
127
+ navigationBarColor,
128
+ navigationBarHidden,
129
+ replaceAnimation = 'pop',
130
+ screenOrientation,
131
+ statusBarAnimation,
132
+ statusBarColor,
133
+ statusBarHidden,
134
+ statusBarStyle,
135
+ statusBarTranslucent,
136
+ swipeDirection = 'horizontal',
137
+ transitionDuration,
138
+ freezeOnBlur
139
+ } = options;
140
+ let {
141
+ customAnimationOnSwipe,
142
+ fullScreenSwipeEnabled,
143
+ gestureResponseDistance,
144
+ stackAnimation,
145
+ stackPresentation = 'push'
146
+ } = options;
147
+ if (swipeDirection === 'vertical') {
148
+ // for `vertical` direction to work, we need to set `fullScreenSwipeEnabled` to `true`
149
+ // so the screen can be dismissed from any point on screen.
150
+ // `customAnimationOnSwipe` needs to be set to `true` so the `stackAnimation` set by user can be used,
151
+ // otherwise `simple_push` will be used.
152
+ // Also, the default animation for this direction seems to be `slide_from_bottom`.
153
+ if (fullScreenSwipeEnabled === undefined) {
154
+ fullScreenSwipeEnabled = true;
155
+ }
156
+ if (customAnimationOnSwipe === undefined) {
157
+ customAnimationOnSwipe = true;
158
+ }
159
+ if (stackAnimation === undefined) {
160
+ stackAnimation = 'slide_from_bottom';
161
+ }
162
+ }
163
+ if (index === 0) {
164
+ // first screen should always be treated as `push`, it resolves problems with no header animation
165
+ // for navigator with first screen as `modal` and the next as `push`
166
+ stackPresentation = 'push';
167
+ }
168
+ const dimensions = (0, _reactNativeSafeAreaContext.useSafeAreaFrame)();
169
+ const topInset = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)().top;
170
+ const isStatusBarTranslucent = (_options$statusBarTra2 = options.statusBarTranslucent) !== null && _options$statusBarTra2 !== void 0 ? _options$statusBarTra2 : false;
171
+ const statusBarHeight = getStatusBarHeight(topInset, dimensions, isStatusBarTranslucent);
172
+ const isLargeHeader = (_options$headerLargeT2 = options.headerLargeTitle) !== null && _options$headerLargeT2 !== void 0 ? _options$headerLargeT2 : false;
173
+ const defaultHeaderHeight = (0, _getDefaultHeaderHeight.default)(dimensions, statusBarHeight, stackPresentation, isLargeHeader);
174
+ const parentHeaderHeight = React.useContext(_HeaderHeightContext.default);
175
+ const isHeaderInPush = isAndroid ? headerShown : stackPresentation === 'push' && headerShown !== false;
176
+ const staticHeaderHeight = isHeaderInPush !== false ? defaultHeaderHeight : parentHeaderHeight !== null && parentHeaderHeight !== void 0 ? parentHeaderHeight : 0;
177
+
178
+ // We need to ensure the first retrieved header height will be cached and set in animatedHeaderHeight.
179
+ // We're caching the header height here, as on iOS native side events are not always coming to the JS on first notify.
180
+ // TODO: Check why first event is not being received once it is cached on the native side.
181
+ const cachedAnimatedHeaderHeight = React.useRef(statusBarHeight);
182
+ const animatedHeaderHeight = React.useRef(
183
+ // amznmod_react - change imports to kepler packages
184
+ // @ts-ignore
185
+ new _reactNative.Animated.Value(staticHeaderHeight, {
186
+ useNativeDriver: true
187
+ })).current;
188
+ const Screen = React.useContext(_reactNativeScreens.ScreenContext);
189
+ const {
190
+ dark
191
+ } = (0, _reactNavigation__native.useTheme)();
192
+ return /*#__PURE__*/React.createElement(Screen, {
193
+ key: route.key,
194
+ enabled: true,
195
+ isNativeStack: true,
196
+ style: _reactNative.StyleSheet.absoluteFill,
197
+ sheetAllowedDetents: sheetAllowedDetents,
198
+ sheetLargestUndimmedDetent: sheetLargestUndimmedDetent,
199
+ sheetGrabberVisible: sheetGrabberVisible,
200
+ sheetCornerRadius: sheetCornerRadius,
201
+ sheetExpandsWhenScrolledToEdge: sheetExpandsWhenScrolledToEdge,
202
+ customAnimationOnSwipe: customAnimationOnSwipe,
203
+ freezeOnBlur: freezeOnBlur,
204
+ fullScreenSwipeEnabled: fullScreenSwipeEnabled,
205
+ hideKeyboardOnSwipe: hideKeyboardOnSwipe,
206
+ homeIndicatorHidden: homeIndicatorHidden,
207
+ gestureEnabled: isAndroid ? false : gestureEnabled,
208
+ gestureResponseDistance: gestureResponseDistance,
209
+ nativeBackButtonDismissalEnabled: nativeBackButtonDismissalEnabled,
210
+ navigationBarColor: navigationBarColor,
211
+ navigationBarHidden: navigationBarHidden,
212
+ replaceAnimation: replaceAnimation,
213
+ screenOrientation: screenOrientation,
214
+ stackAnimation: stackAnimation,
215
+ stackPresentation: stackPresentation,
216
+ statusBarAnimation: statusBarAnimation,
217
+ statusBarColor: statusBarColor,
218
+ statusBarHidden: statusBarHidden,
219
+ statusBarStyle: statusBarStyle !== null && statusBarStyle !== void 0 ? statusBarStyle : dark ? 'light' : 'dark',
220
+ statusBarTranslucent: statusBarTranslucent,
221
+ swipeDirection: swipeDirection,
222
+ transitionDuration: transitionDuration,
223
+ onHeaderBackButtonClicked: () => {
224
+ navigation.dispatch({
225
+ ..._reactNavigation__native.StackActions.pop(),
226
+ source: route.key,
227
+ target: stateKey
228
+ });
229
+ },
230
+ onWillAppear: () => {
231
+ navigation.emit({
232
+ type: 'transitionStart',
233
+ data: {
234
+ closing: false
235
+ },
236
+ target: route.key
237
+ });
238
+ },
239
+ onWillDisappear: () => {
240
+ navigation.emit({
241
+ type: 'transitionStart',
242
+ data: {
243
+ closing: true
244
+ },
245
+ target: route.key
246
+ });
247
+ },
248
+ onAppear: () => {
249
+ navigation.emit({
250
+ type: 'appear',
251
+ target: route.key
252
+ });
253
+ navigation.emit({
254
+ type: 'transitionEnd',
255
+ data: {
256
+ closing: false
257
+ },
258
+ target: route.key
259
+ });
260
+ },
261
+ onDisappear: () => {
262
+ navigation.emit({
263
+ type: 'transitionEnd',
264
+ data: {
265
+ closing: true
266
+ },
267
+ target: route.key
268
+ });
269
+ },
270
+ onHeaderHeightChange: e => {
271
+ const headerHeight = e.nativeEvent.headerHeight;
272
+ if (cachedAnimatedHeaderHeight.current !== headerHeight) {
273
+ // Currently, we're setting value by Animated#setValue, because we want to cache animated value.
274
+ // Also, in React Native 0.72 there was a bug on Fabric causing a large delay between the screen transition,
275
+ // which should not occur.
276
+ // TODO: Check if it's possible to replace animated#setValue to Animated#event.
277
+ animatedHeaderHeight.setValue(headerHeight);
278
+ cachedAnimatedHeaderHeight.current = headerHeight;
279
+ }
280
+ },
281
+ onDismissed: e => {
282
+ navigation.emit({
283
+ type: 'dismiss',
284
+ target: route.key
285
+ });
286
+ const dismissCount = e.nativeEvent.dismissCount > 0 ? e.nativeEvent.dismissCount : 1;
287
+ navigation.dispatch({
288
+ ..._reactNavigation__native.StackActions.pop(dismissCount),
289
+ source: route.key,
290
+ target: stateKey
291
+ });
292
+ },
293
+ onGestureCancel: () => {
294
+ navigation.emit({
295
+ type: 'gestureCancel',
296
+ target: route.key
297
+ });
298
+ }
299
+ }, /*#__PURE__*/React.createElement(_AnimatedHeaderHeightContext.default.Provider, {
300
+ value: animatedHeaderHeight
301
+ }, /*#__PURE__*/React.createElement(_HeaderHeightContext.default.Provider, {
302
+ value: staticHeaderHeight
303
+ }, /*#__PURE__*/React.createElement(MaybeNestedStack, {
304
+ options: options,
305
+ route: route,
306
+ stackPresentation: stackPresentation
307
+ }, renderScene()), /*#__PURE__*/React.createElement(_HeaderConfig.default, _extends({}, options, {
308
+ route: route,
309
+ headerShown: isHeaderInPush
310
+ })))));
311
+ };
312
+ function NativeStackViewInner({
313
+ state,
314
+ navigation,
315
+ descriptors
316
+ }) {
317
+ const {
318
+ key,
319
+ routes
320
+ } = state;
321
+ return /*#__PURE__*/React.createElement(_reactNativeScreens.ScreenStack, {
322
+ style: styles.container
323
+ }, routes.map((route, index) => /*#__PURE__*/React.createElement(RouteView, {
324
+ key: route.key,
325
+ descriptors: descriptors,
326
+ route: route,
327
+ index: index,
328
+ navigation: navigation,
329
+ stateKey: key
330
+ })));
331
+ }
332
+ function NativeStackView(props) {
333
+ return /*#__PURE__*/React.createElement(_SafeAreaProviderCompat.default, null, /*#__PURE__*/React.createElement(NativeStackViewInner, props));
334
+ }
335
+ function getStatusBarHeight(topInset, dimensions, isStatusBarTranslucent) {
336
+ if (_reactNative.Platform.OS === 'ios') {
337
+ // It looks like some iOS devices don't have strictly set status bar height to 44.
338
+ // Thus, if the top inset is higher than 50, then the device should have a dynamic island.
339
+ // On models with Dynamic Island the status bar height is smaller than the safe area top inset by 5 pixels.
340
+ // See https://developer.apple.com/forums/thread/662466 for more details about status bar height.
341
+ const hasDynamicIsland = topInset > 50;
342
+ return hasDynamicIsland ? topInset - 5 : topInset;
343
+ } else if (_reactNative.Platform.OS === 'android') {
344
+ // On Android we should also rely on frame's y-axis position, as topInset is 0 on visible status bar.
345
+ return isStatusBarTranslucent ? topInset : dimensions.y;
346
+ }
347
+ return topInset;
348
+ }
349
+ const styles = _reactNative.StyleSheet.create({
350
+ container: {
351
+ flex: 1
352
+ }
353
+ });
354
+ //# sourceMappingURL=NativeStackView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_AppContainer","_interopRequireDefault","_warnOnce","_reactNativeScreens","_reactNavigation__native","_reactNativeSafeAreaContext","_HeaderConfig","_SafeAreaProviderCompat","_getDefaultHeaderHeight","_HeaderHeightContext","_AnimatedHeaderHeightContext","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","isAndroid","Platform","OS","Container","View","__DEV__","DebugContainer","props","stackPresentation","rest","createElement","MaybeNestedStack","options","route","children","_options$statusBarTra","_options$headerLargeT","colors","useTheme","headerShown","contentStyle","Screen","useContext","ScreenContext","isHeaderInModal","headerShownPreviousRef","useRef","useEffect","warnOnce","current","name","content","style","styles","container","backgroundColor","background","collapsable","dimensions","useSafeAreaFrame","topInset","useSafeAreaInsets","top","isStatusBarTranslucent","statusBarTranslucent","statusBarHeight","getStatusBarHeight","isLargeHeader","headerLargeTitle","headerHeight","getDefaultHeaderHeight","ScreenStack","enabled","isNativeStack","StyleSheet","absoluteFill","Provider","value","RouteView","descriptors","index","navigation","stateKey","_options$statusBarTra2","_options$headerLargeT2","render","renderScene","key","gestureEnabled","hideKeyboardOnSwipe","homeIndicatorHidden","sheetAllowedDetents","sheetLargestUndimmedDetent","sheetGrabberVisible","sheetCornerRadius","sheetExpandsWhenScrolledToEdge","nativeBackButtonDismissalEnabled","navigationBarColor","navigationBarHidden","replaceAnimation","screenOrientation","statusBarAnimation","statusBarColor","statusBarHidden","statusBarStyle","swipeDirection","transitionDuration","freezeOnBlur","customAnimationOnSwipe","fullScreenSwipeEnabled","gestureResponseDistance","stackAnimation","undefined","defaultHeaderHeight","parentHeaderHeight","HeaderHeightContext","isHeaderInPush","staticHeaderHeight","cachedAnimatedHeaderHeight","animatedHeaderHeight","Animated","Value","useNativeDriver","dark","onHeaderBackButtonClicked","dispatch","StackActions","pop","source","target","onWillAppear","emit","type","data","closing","onWillDisappear","onAppear","onDisappear","onHeaderHeightChange","nativeEvent","setValue","onDismissed","dismissCount","onGestureCancel","NativeStackViewInner","state","routes","map","NativeStackView","hasDynamicIsland","y","create","flex"],"sources":["NativeStackView.tsx"],"sourcesContent":["/*\n * Portions of this file are copyright (c) 2023 Amazon.com, Inc. or its affiliates. All rights reserved.\n *\n * PORTIONS OF THIS FILE ARE AMAZON PROPRIETARY/CONFIDENTIAL. USE IS SUBJECT TO LICENSE TERMS.\n *\n * Amazon modifications are indicated by [amznmod_* comments].\n */\n\n/*\n * Changelog:\n * Set up react-native-screens package to build for Kepler\n */\n\nimport * as React from 'react';\nimport { Animated, Platform, StyleSheet, View, ViewProps } from 'react-native';\n// @ts-ignore Getting private component\n// eslint-disable-next-line import/no-named-as-default, import/default, import/no-named-as-default-member, import/namespace\nimport AppContainer from 'react-native/Libraries/ReactNative/AppContainer';\nimport warnOnce from 'warn-once';\nimport {\n ScreenStack,\n StackPresentationTypes,\n ScreenContext,\n} from '@amazon-devices/react-native-screens';\nimport {\n ParamListBase,\n StackActions,\n StackNavigationState,\n useTheme,\n Route,\n NavigationState,\n PartialState,\n// amznmod_react - change imports to kepler packages\n} from '@amazon-devices/react-navigation__native';\nimport {\n Rect,\n useSafeAreaFrame,\n useSafeAreaInsets,\n// amznmod_react - change imports to kepler packages\n} from '@amazon-devices/react-native-safe-area-context';\nimport {\n NativeStackDescriptorMap,\n NativeStackNavigationHelpers,\n NativeStackNavigationOptions,\n} from '../types';\nimport HeaderConfig from './HeaderConfig';\nimport SafeAreaProviderCompat from '../utils/SafeAreaProviderCompat';\nimport getDefaultHeaderHeight from '../utils/getDefaultHeaderHeight';\nimport HeaderHeightContext from '../utils/HeaderHeightContext';\nimport AnimatedHeaderHeightContext from '../utils/AnimatedHeaderHeightContext';\n\nconst isAndroid = Platform.OS === 'android';\n\nlet Container = View;\n\nif (__DEV__) {\n const DebugContainer = (\n props: ViewProps & { stackPresentation: StackPresentationTypes }\n ) => {\n const { stackPresentation, ...rest } = props;\n if (Platform.OS === 'ios' && stackPresentation !== 'push') {\n return (\n <AppContainer>\n <View {...rest} />\n </AppContainer>\n );\n }\n return <View {...rest} />;\n };\n // @ts-ignore Wrong props\n Container = DebugContainer;\n}\n\nconst MaybeNestedStack = ({\n options,\n route,\n stackPresentation,\n children,\n}: {\n options: NativeStackNavigationOptions;\n route: Route<string>;\n stackPresentation: StackPresentationTypes;\n children: React.ReactNode;\n}) => {\n const { colors } = useTheme();\n const { headerShown = true, contentStyle } = options;\n\n const Screen = React.useContext(ScreenContext);\n\n const isHeaderInModal = isAndroid\n ? false\n : stackPresentation !== 'push' && headerShown === true;\n\n const headerShownPreviousRef = React.useRef(headerShown);\n\n React.useEffect(() => {\n warnOnce(\n !isAndroid &&\n stackPresentation !== 'push' &&\n headerShownPreviousRef.current !== headerShown,\n `Dynamically changing 'headerShown' in modals will result in remounting the screen and losing all local state. See options for the screen '${route.name}'.`\n );\n\n headerShownPreviousRef.current = headerShown;\n }, [headerShown, stackPresentation, route.name]);\n\n const content = (\n <Container\n style={[\n styles.container,\n stackPresentation !== 'transparentModal' &&\n stackPresentation !== 'containedTransparentModal' && {\n backgroundColor: colors.background,\n },\n contentStyle,\n ]}\n // @ts-ignore Wrong props passed to View\n stackPresentation={stackPresentation}\n // This view must *not* be flattened.\n // See https://github.com/software-mansion/react-native-screens/pull/1825\n // for detailed explanation.\n collapsable={false}>\n {children}\n </Container>\n );\n\n const dimensions = useSafeAreaFrame();\n const topInset = useSafeAreaInsets().top;\n const isStatusBarTranslucent = options.statusBarTranslucent ?? false;\n const statusBarHeight = getStatusBarHeight(\n topInset,\n dimensions,\n isStatusBarTranslucent\n );\n\n const isLargeHeader = options.headerLargeTitle ?? false;\n\n const headerHeight = getDefaultHeaderHeight(\n dimensions,\n statusBarHeight,\n stackPresentation,\n isLargeHeader\n );\n\n if (isHeaderInModal) {\n return (\n <ScreenStack style={styles.container}>\n <Screen enabled isNativeStack style={StyleSheet.absoluteFill}>\n <HeaderHeightContext.Provider value={headerHeight}>\n <HeaderConfig {...options} route={route} />\n {content}\n </HeaderHeightContext.Provider>\n </Screen>\n </ScreenStack>\n );\n }\n return content;\n};\n\ntype NavigationRoute<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList\n> = Route<Extract<RouteName, string>, ParamList[RouteName]> & {\n state?: NavigationState | PartialState<NavigationState>;\n};\n\nconst RouteView = ({\n descriptors,\n route,\n index,\n navigation,\n stateKey,\n}: {\n descriptors: NativeStackDescriptorMap;\n route: NavigationRoute<ParamListBase, string>;\n index: number;\n navigation: NativeStackNavigationHelpers;\n stateKey: string;\n}) => {\n const { options, render: renderScene } = descriptors[route.key];\n const {\n gestureEnabled,\n headerShown,\n hideKeyboardOnSwipe,\n homeIndicatorHidden,\n sheetAllowedDetents = 'large',\n sheetLargestUndimmedDetent = 'all',\n sheetGrabberVisible = false,\n sheetCornerRadius = -1.0,\n sheetExpandsWhenScrolledToEdge = true,\n nativeBackButtonDismissalEnabled = false,\n navigationBarColor,\n navigationBarHidden,\n replaceAnimation = 'pop',\n screenOrientation,\n statusBarAnimation,\n statusBarColor,\n statusBarHidden,\n statusBarStyle,\n statusBarTranslucent,\n swipeDirection = 'horizontal',\n transitionDuration,\n freezeOnBlur,\n } = options;\n\n let {\n customAnimationOnSwipe,\n fullScreenSwipeEnabled,\n gestureResponseDistance,\n stackAnimation,\n stackPresentation = 'push',\n } = options;\n\n if (swipeDirection === 'vertical') {\n // for `vertical` direction to work, we need to set `fullScreenSwipeEnabled` to `true`\n // so the screen can be dismissed from any point on screen.\n // `customAnimationOnSwipe` needs to be set to `true` so the `stackAnimation` set by user can be used,\n // otherwise `simple_push` will be used.\n // Also, the default animation for this direction seems to be `slide_from_bottom`.\n if (fullScreenSwipeEnabled === undefined) {\n fullScreenSwipeEnabled = true;\n }\n if (customAnimationOnSwipe === undefined) {\n customAnimationOnSwipe = true;\n }\n if (stackAnimation === undefined) {\n stackAnimation = 'slide_from_bottom';\n }\n }\n\n if (index === 0) {\n // first screen should always be treated as `push`, it resolves problems with no header animation\n // for navigator with first screen as `modal` and the next as `push`\n stackPresentation = 'push';\n }\n\n const dimensions = useSafeAreaFrame();\n const topInset = useSafeAreaInsets().top;\n const isStatusBarTranslucent = options.statusBarTranslucent ?? false;\n const statusBarHeight = getStatusBarHeight(\n topInset,\n dimensions,\n isStatusBarTranslucent\n );\n\n const isLargeHeader = options.headerLargeTitle ?? false;\n\n const defaultHeaderHeight = getDefaultHeaderHeight(\n dimensions,\n statusBarHeight,\n stackPresentation,\n isLargeHeader\n );\n\n const parentHeaderHeight = React.useContext(HeaderHeightContext);\n const isHeaderInPush = isAndroid\n ? headerShown\n : stackPresentation === 'push' && headerShown !== false;\n\n const staticHeaderHeight =\n isHeaderInPush !== false ? defaultHeaderHeight : parentHeaderHeight ?? 0;\n\n // We need to ensure the first retrieved header height will be cached and set in animatedHeaderHeight.\n // We're caching the header height here, as on iOS native side events are not always coming to the JS on first notify.\n // TODO: Check why first event is not being received once it is cached on the native side.\n const cachedAnimatedHeaderHeight = React.useRef(statusBarHeight);\n const animatedHeaderHeight = React.useRef(\n // amznmod_react - change imports to kepler packages\n // @ts-ignore\n new Animated.Value(staticHeaderHeight, {\n useNativeDriver: true,\n })\n ).current;\n\n const Screen = React.useContext(ScreenContext);\n\n const { dark } = useTheme();\n\n return (\n <Screen\n key={route.key}\n enabled\n isNativeStack\n style={StyleSheet.absoluteFill}\n sheetAllowedDetents={sheetAllowedDetents}\n sheetLargestUndimmedDetent={sheetLargestUndimmedDetent}\n sheetGrabberVisible={sheetGrabberVisible}\n sheetCornerRadius={sheetCornerRadius}\n sheetExpandsWhenScrolledToEdge={sheetExpandsWhenScrolledToEdge}\n customAnimationOnSwipe={customAnimationOnSwipe}\n freezeOnBlur={freezeOnBlur}\n fullScreenSwipeEnabled={fullScreenSwipeEnabled}\n hideKeyboardOnSwipe={hideKeyboardOnSwipe}\n homeIndicatorHidden={homeIndicatorHidden}\n gestureEnabled={isAndroid ? false : gestureEnabled}\n gestureResponseDistance={gestureResponseDistance}\n nativeBackButtonDismissalEnabled={nativeBackButtonDismissalEnabled}\n navigationBarColor={navigationBarColor}\n navigationBarHidden={navigationBarHidden}\n replaceAnimation={replaceAnimation}\n screenOrientation={screenOrientation}\n stackAnimation={stackAnimation}\n stackPresentation={stackPresentation}\n statusBarAnimation={statusBarAnimation}\n statusBarColor={statusBarColor}\n statusBarHidden={statusBarHidden}\n statusBarStyle={statusBarStyle ?? (dark ? 'light' : 'dark')}\n statusBarTranslucent={statusBarTranslucent}\n swipeDirection={swipeDirection}\n transitionDuration={transitionDuration}\n onHeaderBackButtonClicked={() => {\n navigation.dispatch({\n ...StackActions.pop(),\n source: route.key,\n target: stateKey,\n });\n }}\n onWillAppear={() => {\n navigation.emit({\n type: 'transitionStart',\n data: { closing: false },\n target: route.key,\n });\n }}\n onWillDisappear={() => {\n navigation.emit({\n type: 'transitionStart',\n data: { closing: true },\n target: route.key,\n });\n }}\n onAppear={() => {\n navigation.emit({\n type: 'appear',\n target: route.key,\n });\n navigation.emit({\n type: 'transitionEnd',\n data: { closing: false },\n target: route.key,\n });\n }}\n onDisappear={() => {\n navigation.emit({\n type: 'transitionEnd',\n data: { closing: true },\n target: route.key,\n });\n }}\n onHeaderHeightChange={e => {\n const headerHeight = e.nativeEvent.headerHeight;\n\n if (cachedAnimatedHeaderHeight.current !== headerHeight) {\n // Currently, we're setting value by Animated#setValue, because we want to cache animated value.\n // Also, in React Native 0.72 there was a bug on Fabric causing a large delay between the screen transition,\n // which should not occur.\n // TODO: Check if it's possible to replace animated#setValue to Animated#event.\n animatedHeaderHeight.setValue(headerHeight);\n cachedAnimatedHeaderHeight.current = headerHeight;\n }\n }}\n onDismissed={e => {\n navigation.emit({\n type: 'dismiss',\n target: route.key,\n });\n\n const dismissCount =\n e.nativeEvent.dismissCount > 0 ? e.nativeEvent.dismissCount : 1;\n\n navigation.dispatch({\n ...StackActions.pop(dismissCount),\n source: route.key,\n target: stateKey,\n });\n }}\n onGestureCancel={() => {\n navigation.emit({\n type: 'gestureCancel',\n target: route.key,\n });\n }}>\n <AnimatedHeaderHeightContext.Provider value={animatedHeaderHeight}>\n <HeaderHeightContext.Provider value={staticHeaderHeight}>\n <MaybeNestedStack\n options={options}\n route={route}\n stackPresentation={stackPresentation}>\n {renderScene()}\n </MaybeNestedStack>\n {/* HeaderConfig must not be first child of a Screen.\n See https://github.com/software-mansion/react-native-screens/pull/1825\n for detailed explanation */}\n <HeaderConfig\n {...options}\n route={route}\n headerShown={isHeaderInPush}\n />\n </HeaderHeightContext.Provider>\n </AnimatedHeaderHeightContext.Provider>\n </Screen>\n );\n};\n\ntype Props = {\n state: StackNavigationState<ParamListBase>;\n navigation: NativeStackNavigationHelpers;\n descriptors: NativeStackDescriptorMap;\n};\n\nfunction NativeStackViewInner({\n state,\n navigation,\n descriptors,\n}: Props): JSX.Element {\n const { key, routes } = state;\n\n return (\n <ScreenStack style={styles.container}>\n {routes.map((route, index) => (\n <RouteView\n key={route.key}\n descriptors={descriptors}\n route={route}\n index={index}\n navigation={navigation}\n stateKey={key}\n />\n ))}\n </ScreenStack>\n );\n}\n\nexport default function NativeStackView(props: Props) {\n return (\n <SafeAreaProviderCompat>\n <NativeStackViewInner {...props} />\n </SafeAreaProviderCompat>\n );\n}\n\nfunction getStatusBarHeight(\n topInset: number,\n dimensions: Rect,\n isStatusBarTranslucent: boolean\n) {\n if (Platform.OS === 'ios') {\n // It looks like some iOS devices don't have strictly set status bar height to 44.\n // Thus, if the top inset is higher than 50, then the device should have a dynamic island.\n // On models with Dynamic Island the status bar height is smaller than the safe area top inset by 5 pixels.\n // See https://developer.apple.com/forums/thread/662466 for more details about status bar height.\n const hasDynamicIsland = topInset > 50;\n return hasDynamicIsland ? topInset - 5 : topInset;\n } else if (Platform.OS === 'android') {\n // On Android we should also rely on frame's y-axis position, as topInset is 0 on visible status bar.\n return isStatusBarTranslucent ? topInset : dimensions.y;\n }\n\n return topInset;\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
9
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
+ // @ts-ignore file to be used only if `react-native-reanimated` available in the project
11
+ var _default = exports.default = /*#__PURE__*/React.createContext(undefined);
12
+ //# sourceMappingURL=ReanimatedHeaderHeightContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_default","exports","createContext","undefined"],"sources":["ReanimatedHeaderHeightContext.tsx"],"sourcesContent":["import * as React from 'react';\n// @ts-ignore file to be used only if `react-native-reanimated` available in the project\nimport Animated from 'react-native-reanimated';\n\nexport default React.createContext<Animated.SharedValue<number> | undefined>(\n undefined\n);\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA+B,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAC/B;AAAA,IAAAW,QAAA,GAAAC,OAAA,CAAAf,OAAA,gBAGeT,KAAK,CAACyB,aAAa,CAChCC,SACF,CAAC","ignoreList":[]}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeScreens = require("@amazon-devices/react-native-screens");
10
+ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
11
+ var _ReanimatedTransitionProgressContext = _interopRequireDefault(require("./ReanimatedTransitionProgressContext"));
12
+ var _reactNativeSafeAreaContext = require("@amazon-devices/react-native-safe-area-context");
13
+ var _getDefaultHeaderHeight = _interopRequireDefault(require("../native-stack/utils/getDefaultHeaderHeight"));
14
+ var _ReanimatedHeaderHeightContext = _interopRequireDefault(require("./ReanimatedHeaderHeightContext"));
15
+ var _global;
16
+ /*
17
+ * Portions of this file are copyright (c) 2023 Amazon.com, Inc. or its affiliates. All rights reserved.
18
+ *
19
+ * PORTIONS OF THIS FILE ARE AMAZON PROPRIETARY/CONFIDENTIAL. USE IS SUBJECT TO LICENSE TERMS.
20
+ *
21
+ * Amazon modifications are indicated by [amznmod_* comments].
22
+ */
23
+ /*
24
+ * Changelog:
25
+ * Set up react-native-screens package to build for Kepler
26
+ */
27
+ // @ts-ignore file to be used only if `react-native-reanimated` available in the project
28
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
29
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
30
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
31
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
32
+ const AnimatedScreen = _reactNativeReanimated.default.createAnimatedComponent(_reactNativeScreens.InnerScreen);
33
+
34
+ // We use prop added to global by reanimated since it seems safer than the one from RN. See:
35
+ // https://github.com/software-mansion/react-native-reanimated/blob/3fe8b35b05e82b2f2aefda1fb97799cf81e4b7bb/src/reanimated2/UpdateProps.ts#L46
36
+ // @ts-expect-error nativeFabricUIManager is not yet included in the RN types
37
+ const ENABLE_FABRIC = !!((_global = global) !== null && _global !== void 0 && _global._IS_FABRIC);
38
+ const ReanimatedNativeStackScreen = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
39
+ const {
40
+ children,
41
+ ...rest
42
+ } = props;
43
+ const {
44
+ stackPresentation = 'push'
45
+ } = rest;
46
+ const dimensions = (0, _reactNativeSafeAreaContext.useSafeAreaFrame)();
47
+ const topInset = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)().top;
48
+ let statusBarHeight = topInset;
49
+ const hasDynamicIsland = _reactNative.Platform.OS === 'ios' && topInset === 59;
50
+ if (hasDynamicIsland) {
51
+ // On models with Dynamic Island the status bar height is smaller than the safe area top inset.
52
+ statusBarHeight = 54;
53
+ }
54
+
55
+ // Default header height, normally used in `useHeaderHeight` hook.
56
+ // Here, it is used for returning a default value for shared value.
57
+ const defaultHeaderHeight = (0, _getDefaultHeaderHeight.default)(dimensions, statusBarHeight, stackPresentation);
58
+ const cachedHeaderHeight = _react.default.useRef(defaultHeaderHeight);
59
+ const headerHeight = (0, _reactNativeReanimated.useSharedValue)(defaultHeaderHeight);
60
+ const progress = (0, _reactNativeReanimated.useSharedValue)(0);
61
+ const closing = (0, _reactNativeReanimated.useSharedValue)(0);
62
+ const goingForward = (0, _reactNativeReanimated.useSharedValue)(0);
63
+ return /*#__PURE__*/_react.default.createElement(AnimatedScreen
64
+ // @ts-ignore some problems with ref and onTransitionProgressReanimated being "fake" prop for parsing of `useEvent` return value
65
+ , _extends({
66
+ ref: ref,
67
+ onTransitionProgressReanimated: (0, _reactNativeReanimated.useEvent)(event => {
68
+ 'worklet';
69
+
70
+ progress.value = event.progress;
71
+ closing.value = event.closing;
72
+ goingForward.value = event.goingForward;
73
+ }, [
74
+ // This should not be necessary, but is not properly managed by `react-native-reanimated`
75
+ // @ts-ignore wrong type
76
+ _reactNative.Platform.OS === 'android' ? 'onTransitionProgress' :
77
+ // for some reason there is a difference in required event name between architectures
78
+ ENABLE_FABRIC ? 'onTransitionProgress' : 'topTransitionProgress']),
79
+ onHeaderHeightChangeReanimated: (0, _reactNativeReanimated.useEvent)(event => {
80
+ 'worklet';
81
+
82
+ if (event.headerHeight !== cachedHeaderHeight.current) {
83
+ headerHeight.value = event.headerHeight;
84
+ cachedHeaderHeight.current = event.headerHeight;
85
+ }
86
+ }, [
87
+ // @ts-ignore wrong type
88
+ _reactNative.Platform.OS === 'android' ? 'onHeaderHeightChange' : ENABLE_FABRIC ? 'onHeaderHeightChange' : 'topHeaderHeightChange'])
89
+ }, rest), /*#__PURE__*/_react.default.createElement(_ReanimatedHeaderHeightContext.default.Provider, {
90
+ value: headerHeight
91
+ }, /*#__PURE__*/_react.default.createElement(_ReanimatedTransitionProgressContext.default.Provider, {
92
+ value: {
93
+ progress,
94
+ closing,
95
+ goingForward
96
+ }
97
+ }, children)));
98
+ });
99
+ ReanimatedNativeStackScreen.displayName = 'ReanimatedNativeStackScreen';
100
+ var _default = exports.default = ReanimatedNativeStackScreen;
101
+ //# sourceMappingURL=ReanimatedNativeStackScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeScreens","_reactNativeReanimated","_interopRequireWildcard","_ReanimatedTransitionProgressContext","_reactNativeSafeAreaContext","_getDefaultHeaderHeight","_ReanimatedHeaderHeightContext","_global","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","AnimatedScreen","Animated","createAnimatedComponent","InnerScreen","ENABLE_FABRIC","global","_IS_FABRIC","ReanimatedNativeStackScreen","React","forwardRef","props","ref","children","rest","stackPresentation","dimensions","useSafeAreaFrame","topInset","useSafeAreaInsets","top","statusBarHeight","hasDynamicIsland","Platform","OS","defaultHeaderHeight","getDefaultHeaderHeight","cachedHeaderHeight","useRef","headerHeight","useSharedValue","progress","closing","goingForward","createElement","onTransitionProgressReanimated","useEvent","event","value","onHeaderHeightChangeReanimated","current","Provider","displayName","_default","exports"],"sources":["ReanimatedNativeStackScreen.tsx"],"sourcesContent":["/*\n * Portions of this file are copyright (c) 2023 Amazon.com, Inc. or its affiliates. All rights reserved.\n *\n * PORTIONS OF THIS FILE ARE AMAZON PROPRIETARY/CONFIDENTIAL. USE IS SUBJECT TO LICENSE TERMS.\n *\n * Amazon modifications are indicated by [amznmod_* comments].\n */\n\n/*\n * Changelog:\n * Set up react-native-screens package to build for Kepler\n */\n\nimport React from 'react';\nimport { Platform } from 'react-native';\nimport {\n HeaderHeightChangeEventType,\n InnerScreen,\n ScreenProps,\n TransitionProgressEventType,\n} from '@amazon-devices/react-native-screens';\n\n// @ts-ignore file to be used only if `react-native-reanimated` available in the project\nimport Animated, { useEvent, useSharedValue } from 'react-native-reanimated';\nimport ReanimatedTransitionProgressContext from './ReanimatedTransitionProgressContext';\nimport {\n useSafeAreaFrame,\n useSafeAreaInsets,\n// amznmod_react - change imports to kepler packages\n} from '@amazon-devices/react-native-safe-area-context';\nimport getDefaultHeaderHeight from '../native-stack/utils/getDefaultHeaderHeight';\nimport ReanimatedHeaderHeightContext from './ReanimatedHeaderHeightContext';\n\nconst AnimatedScreen = Animated.createAnimatedComponent(\n InnerScreen as unknown as React.ComponentClass\n);\n\n// We use prop added to global by reanimated since it seems safer than the one from RN. See:\n// https://github.com/software-mansion/react-native-reanimated/blob/3fe8b35b05e82b2f2aefda1fb97799cf81e4b7bb/src/reanimated2/UpdateProps.ts#L46\n// @ts-expect-error nativeFabricUIManager is not yet included in the RN types\nconst ENABLE_FABRIC = !!global?._IS_FABRIC;\n\nconst ReanimatedNativeStackScreen = React.forwardRef<\n typeof AnimatedScreen,\n ScreenProps\n>((props, ref) => {\n const { children, ...rest } = props;\n const { stackPresentation = 'push' } = rest;\n\n const dimensions = useSafeAreaFrame();\n const topInset = useSafeAreaInsets().top;\n let statusBarHeight = topInset;\n const hasDynamicIsland = Platform.OS === 'ios' && topInset === 59;\n if (hasDynamicIsland) {\n // On models with Dynamic Island the status bar height is smaller than the safe area top inset.\n statusBarHeight = 54;\n }\n\n // Default header height, normally used in `useHeaderHeight` hook.\n // Here, it is used for returning a default value for shared value.\n const defaultHeaderHeight = getDefaultHeaderHeight(\n dimensions,\n statusBarHeight,\n stackPresentation\n );\n\n const cachedHeaderHeight = React.useRef(defaultHeaderHeight);\n const headerHeight = useSharedValue(defaultHeaderHeight);\n\n const progress = useSharedValue(0);\n const closing = useSharedValue(0);\n const goingForward = useSharedValue(0);\n\n return (\n <AnimatedScreen\n // @ts-ignore some problems with ref and onTransitionProgressReanimated being \"fake\" prop for parsing of `useEvent` return value\n ref={ref}\n onTransitionProgressReanimated={useEvent(\n (event: TransitionProgressEventType) => {\n 'worklet';\n progress.value = event.progress;\n closing.value = event.closing;\n goingForward.value = event.goingForward;\n },\n [\n // This should not be necessary, but is not properly managed by `react-native-reanimated`\n // @ts-ignore wrong type\n Platform.OS === 'android'\n ? 'onTransitionProgress'\n : // for some reason there is a difference in required event name between architectures\n ENABLE_FABRIC\n ? 'onTransitionProgress'\n : 'topTransitionProgress',\n ]\n )}\n onHeaderHeightChangeReanimated={useEvent(\n (event: HeaderHeightChangeEventType) => {\n 'worklet';\n if (event.headerHeight !== cachedHeaderHeight.current) {\n headerHeight.value = event.headerHeight;\n cachedHeaderHeight.current = event.headerHeight;\n }\n },\n [\n // @ts-ignore wrong type\n Platform.OS === 'android'\n ? 'onHeaderHeightChange'\n : ENABLE_FABRIC\n ? 'onHeaderHeightChange'\n : 'topHeaderHeightChange',\n ]\n )}\n {...rest}>\n <ReanimatedHeaderHeightContext.Provider value={headerHeight}>\n <ReanimatedTransitionProgressContext.Provider\n value={{\n progress,\n closing,\n goingForward,\n }}>\n {children}\n </ReanimatedTransitionProgressContext.Provider>\n </ReanimatedHeaderHeightContext.Provider>\n </AnimatedScreen>\n );\n});\n\nReanimatedNativeStackScreen.displayName = 'ReanimatedNativeStackScreen';\n\nexport default ReanimatedNativeStackScreen;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNativeScreens = require("@amazon-devices/react-native-screens");
9
+ var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } // @ts-ignore file to be used only if `react-native-reanimated` available in the project
12
+ const AnimatedScreen = _reactNativeReanimated.default.createAnimatedComponent(_reactNativeScreens.InnerScreen);
13
+ const ReanimatedScreen = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
14
+ return /*#__PURE__*/_react.default.createElement(AnimatedScreen
15
+ // @ts-ignore some problems with ref and onTransitionProgressReanimated being "fake" prop for parsing of `useEvent` return value
16
+ , _extends({
17
+ ref: ref
18
+ }, props));
19
+ });
20
+ ReanimatedScreen.displayName = 'ReanimatedScreen';
21
+ var _default = exports.default = ReanimatedScreen;
22
+ //# sourceMappingURL=ReanimatedScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNativeScreens","_reactNativeReanimated","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","AnimatedScreen","Animated","createAnimatedComponent","InnerScreen","ReanimatedScreen","React","forwardRef","props","ref","createElement","displayName","_default","exports"],"sources":["ReanimatedScreen.tsx"],"sourcesContent":["import React from 'react';\nimport { InnerScreen, ScreenProps } from '@amazon-devices/react-native-screens';\n\n// @ts-ignore file to be used only if `react-native-reanimated` available in the project\nimport Animated from 'react-native-reanimated';\n\nconst AnimatedScreen = Animated.createAnimatedComponent(\n InnerScreen as unknown as React.ComponentClass\n);\n\nconst ReanimatedScreen = React.forwardRef<typeof AnimatedScreen, ScreenProps>(\n (props, ref) => {\n return (\n <AnimatedScreen\n // @ts-ignore some problems with ref and onTransitionProgressReanimated being \"fake\" prop for parsing of `useEvent` return value\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nReanimatedScreen.displayName = 'ReanimatedScreen';\n\nexport default ReanimatedScreen;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AAGA,IAAAE,sBAAA,GAAAH,sBAAA,CAAAC,OAAA;AAA+C,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA,KAD/C;AAGA,MAAMO,cAAc,GAAGC,8BAAQ,CAACC,uBAAuB,CACrDC,+BACF,CAAC;AAED,MAAMC,gBAAgB,gBAAGC,cAAK,CAACC,UAAU,CACvC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACd,oBACE5B,MAAA,CAAAO,OAAA,CAAAsB,aAAA,CAACT;EACC;EAAA,EAAAZ,QAAA;IACAoB,GAAG,EAAEA;EAAI,GACLD,KAAK,CACV,CAAC;AAEN,CACF,CAAC;AAEDH,gBAAgB,CAACM,WAAW,GAAG,kBAAkB;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAzB,OAAA,GAEnCiB,gBAAgB","ignoreList":[]}