@amazon-devices/react-native-screens 2.0.9000000000 → 3.0.9000000000-rn-83

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 (685) hide show
  1. package/README.md +57 -18
  2. package/RNScreens.podspec +12 -30
  3. package/SystemBundles/d557bc3ccca761f329c4a0be9f40c5edeceaeb72783a7971e6e3dcf80a6bedb0.bundle +45130 -0
  4. package/SystemBundles/d557bc3ccca761f329c4a0be9f40c5edeceaeb72783a7971e6e3dcf80a6bedb0.map +13686 -0
  5. package/SystemModules/amzn__react-native-screens-3.modules.txt +158 -0
  6. package/SystemModules/amzn__react-native-screens-3.private.modules.txt +376 -0
  7. package/SystemModules/keplerscript-system-bundle-config.json +4 -4
  8. package/android/CMakeLists.txt +80 -0
  9. package/android/build.gradle +96 -17
  10. package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +61 -0
  11. package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +38 -25
  12. package/android/src/fabric/java/com/swmansion/rnscreens/NativeProxy.kt +53 -0
  13. package/android/src/main/cpp/NativeProxy.cpp +51 -0
  14. package/android/src/main/cpp/NativeProxy.h +35 -0
  15. package/android/src/main/cpp/OnLoad.cpp +8 -0
  16. package/android/src/main/cpp/jni-adapter.cpp +106 -0
  17. package/android/src/main/java/com/swmansion/rnscreens/CustomSearchView.kt +20 -10
  18. package/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt +69 -1
  19. package/android/src/main/java/com/swmansion/rnscreens/FragmentBackPressOverrider.kt +8 -8
  20. package/android/src/main/java/com/swmansion/rnscreens/InsetsObserverProxy.kt +104 -0
  21. package/android/src/main/java/com/swmansion/rnscreens/ModalScreenViewManager.kt +12 -0
  22. package/android/src/main/java/com/swmansion/rnscreens/NativeDismissalObserver.kt +12 -0
  23. package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +65 -7
  24. package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +327 -84
  25. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt +122 -72
  26. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainerViewManager.kt +27 -4
  27. package/android/src/main/java/com/swmansion/rnscreens/ScreenContentWrapper.kt +38 -0
  28. package/android/src/main/java/com/swmansion/rnscreens/ScreenContentWrapperManager.kt +25 -0
  29. package/android/src/main/java/com/swmansion/rnscreens/ScreenEventDispatcher.kt +10 -2
  30. package/android/src/main/java/com/swmansion/rnscreens/ScreenFooter.kt +299 -0
  31. package/android/src/main/java/com/swmansion/rnscreens/ScreenFooterManager.kt +25 -0
  32. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragment.kt +91 -67
  33. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragmentWrapper.kt +12 -1
  34. package/android/src/main/java/com/swmansion/rnscreens/ScreenModalFragment.kt +281 -0
  35. package/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +184 -81
  36. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +467 -80
  37. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragmentWrapper.kt +8 -1
  38. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +156 -124
  39. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigShadowNode.kt +25 -0
  40. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +159 -39
  41. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubview.kt +24 -9
  42. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +19 -13
  43. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackViewManager.kt +31 -28
  44. package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +276 -71
  45. package/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +124 -64
  46. package/android/src/main/java/com/swmansion/rnscreens/ScreensModule.kt +127 -0
  47. package/android/src/main/java/com/swmansion/rnscreens/ScreensShadowNode.kt +4 -2
  48. package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +160 -53
  49. package/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt +57 -32
  50. package/android/src/main/java/com/swmansion/rnscreens/SearchViewFormatter.kt +15 -10
  51. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetBehaviorExt.kt +42 -0
  52. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetDialogRootView.kt +104 -0
  53. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetDialogScreen.kt +26 -0
  54. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/DimmingFragment.kt +493 -0
  55. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/DimmingView.kt +66 -0
  56. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/GestureTransparentViewGroup.kt +24 -0
  57. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/SheetUtils.kt +135 -0
  58. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderAttachedEvent.kt +7 -8
  59. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderBackButtonClickedEvent.kt +8 -9
  60. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderDetachedEvent.kt +7 -8
  61. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt +9 -10
  62. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenAppearEvent.kt +4 -1
  63. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenDisappearEvent.kt +4 -1
  64. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenDismissedEvent.kt +8 -4
  65. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenTransitionProgressEvent.kt +13 -16
  66. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillAppearEvent.kt +4 -1
  67. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillDisappearEvent.kt +4 -1
  68. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarBlurEvent.kt +8 -9
  69. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarChangeTextEvent.kt +8 -11
  70. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarCloseEvent.kt +7 -8
  71. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarFocusEvent.kt +8 -9
  72. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarOpenEvent.kt +7 -8
  73. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarSearchButtonPressEvent.kt +12 -11
  74. package/android/src/main/java/com/swmansion/rnscreens/events/SheetDetentChangedEvent.kt +27 -0
  75. package/android/src/main/java/com/swmansion/rnscreens/events/StackFinishTransitioningEvent.kt +4 -1
  76. package/android/src/main/java/com/swmansion/rnscreens/ext/NumericExt.kt +12 -0
  77. package/android/src/main/java/com/swmansion/rnscreens/ext/ViewExt.kt +32 -0
  78. package/android/src/main/java/com/swmansion/rnscreens/utils/DeviceUtils.kt +1 -5
  79. package/android/src/main/java/com/swmansion/rnscreens/utils/PaddingBundle.kt +8 -0
  80. package/android/src/main/java/com/swmansion/rnscreens/utils/ScreenDummyLayoutHelper.kt +282 -0
  81. package/android/src/main/jni/CMakeLists.txt +35 -23
  82. package/android/src/main/jni/rnscreens.h +3 -0
  83. package/android/src/main/res/base/anim/rns_ios_from_left_background_close.xml +5 -0
  84. package/android/src/main/res/base/anim/rns_ios_from_left_background_open.xml +5 -0
  85. package/android/src/main/res/base/anim/rns_ios_from_left_foreground_close.xml +6 -0
  86. package/android/src/main/res/base/anim/rns_ios_from_left_foreground_open.xml +6 -0
  87. package/android/src/main/res/base/anim/rns_ios_from_right_background_close.xml +5 -0
  88. package/android/src/main/res/base/anim/rns_ios_from_right_background_open.xml +5 -0
  89. package/android/src/main/res/base/anim/rns_ios_from_right_foreground_close.xml +6 -0
  90. package/android/src/main/res/base/anim/rns_ios_from_right_foreground_open.xml +6 -0
  91. package/android/src/main/res/base/drawable/rns_rounder_top_corners_shape.xml +8 -0
  92. package/android/src/main/res/v33/anim-v33/rns_default_enter_in.xml +0 -1
  93. package/android/src/main/res/v33/anim-v33/rns_default_enter_out.xml +2 -2
  94. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerDelegate.java +25 -0
  95. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerInterface.java +16 -0
  96. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerDelegate.java +25 -0
  97. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerInterface.java +16 -0
  98. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerDelegate.java +25 -0
  99. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerInterface.java +16 -0
  100. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +16 -3
  101. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +7 -2
  102. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +6 -0
  103. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +2 -0
  104. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerDelegate.java +99 -0
  105. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerInterface.java +37 -0
  106. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +39 -0
  107. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +11 -2
  108. package/android/src/paper/java/com/swmansion/rnscreens/NativeProxy.kt +19 -0
  109. package/android/src/paper/java/com/swmansion/rnscreens/NativeScreensModuleSpec.java +36 -0
  110. package/common/cpp/react/renderer/components/rnscreens/FrameCorrectionModes.h +51 -0
  111. package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenComponentDescriptor.h +40 -0
  112. package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenShadowNode.cpp +16 -0
  113. package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenShadowNode.h +32 -0
  114. package/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h +55 -12
  115. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp +157 -0
  116. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h +31 -11
  117. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigComponentDescriptor.h +49 -0
  118. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigShadowNode.cpp +22 -0
  119. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigShadowNode.h +40 -0
  120. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigState.cpp +34 -0
  121. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigState.h +57 -0
  122. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewComponentDescriptor.h +27 -0
  123. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewShadowNode.cpp +8 -0
  124. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewShadowNode.h +31 -0
  125. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewState.cpp +15 -0
  126. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewState.h +39 -0
  127. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.cpp +23 -2
  128. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h +33 -8
  129. package/common/cpp/react/renderer/components/rnscreens/utils/RectUtil.h +36 -0
  130. package/cpp/RNSScreenRemovalListener.cpp +25 -0
  131. package/cpp/RNSScreenRemovalListener.h +20 -0
  132. package/cpp/RNScreensTurboModule.cpp +115 -0
  133. package/cpp/RNScreensTurboModule.h +40 -0
  134. package/gesture-handler/package.json +6 -0
  135. package/ios/RNSConvert.h +24 -4
  136. package/ios/RNSConvert.mm +180 -55
  137. package/ios/RNSEnums.h +48 -0
  138. package/ios/RNSFullWindowOverlay.mm +12 -2
  139. package/ios/RNSModalScreen.h +8 -0
  140. package/ios/RNSModalScreen.mm +65 -0
  141. package/ios/RNSModule.h +19 -0
  142. package/ios/RNSModule.mm +173 -0
  143. package/ios/RNSPercentDrivenInteractiveTransition.h +12 -0
  144. package/ios/RNSPercentDrivenInteractiveTransition.mm +69 -0
  145. package/ios/RNSScreen.h +24 -5
  146. package/ios/RNSScreen.mm +652 -173
  147. package/ios/RNSScreenContainer.mm +12 -1
  148. package/ios/RNSScreenContentWrapper.h +44 -0
  149. package/ios/RNSScreenContentWrapper.mm +67 -0
  150. package/ios/RNSScreenFooter.h +30 -0
  151. package/ios/RNSScreenFooter.mm +142 -0
  152. package/ios/RNSScreenNavigationContainer.mm +7 -0
  153. package/ios/RNSScreenStack.h +6 -0
  154. package/ios/RNSScreenStack.mm +333 -109
  155. package/ios/RNSScreenStackAnimator.h +15 -1
  156. package/ios/RNSScreenStackAnimator.mm +380 -115
  157. package/ios/RNSScreenStackHeaderConfig.h +74 -6
  158. package/ios/RNSScreenStackHeaderConfig.mm +338 -69
  159. package/ios/RNSScreenStackHeaderSubview.h +0 -7
  160. package/ios/RNSScreenStackHeaderSubview.mm +61 -24
  161. package/ios/RNSScreenWindowTraits.h +1 -1
  162. package/ios/RNSScreenWindowTraits.mm +24 -50
  163. package/ios/RNSSearchBar.h +5 -5
  164. package/ios/RNSSearchBar.mm +42 -11
  165. package/ios/events/RNSHeaderHeightChangeEvent.h +0 -1
  166. package/ios/events/RNSHeaderHeightChangeEvent.mm +15 -0
  167. package/ios/events/RNSScreenViewEvent.h +0 -1
  168. package/ios/utils/RCTSurfaceTouchHandler+RNSUtility.h +15 -0
  169. package/ios/utils/RCTSurfaceTouchHandler+RNSUtility.mm +14 -0
  170. package/ios/utils/RCTTouchHandler+RNSUtility.h +15 -0
  171. package/ios/utils/RCTTouchHandler+RNSUtility.mm +15 -0
  172. package/ios/utils/RNSDefines.h +7 -0
  173. package/ios/utils/RNSUIBarButtonItem.h +2 -0
  174. package/ios/utils/UINavigationBar+RNSUtility.h +37 -0
  175. package/ios/utils/UINavigationBar+RNSUtility.mm +44 -0
  176. package/ios/utils/UIView+RNSUtility.h +23 -0
  177. package/ios/utils/UIView+RNSUtility.mm +54 -0
  178. package/kepler-compatibility.json +2 -2
  179. package/lib/commonjs/TransitionProgressContext.js +2 -2
  180. package/lib/commonjs/TransitionProgressContext.js.map +1 -1
  181. package/lib/commonjs/components/DebugContainer.js +38 -0
  182. package/lib/commonjs/components/DebugContainer.js.map +1 -0
  183. package/lib/commonjs/components/DebugContainer.web.js +14 -0
  184. package/lib/commonjs/components/DebugContainer.web.js.map +1 -0
  185. package/lib/commonjs/components/FullWindowOverlay.js +31 -0
  186. package/lib/commonjs/components/FullWindowOverlay.js.map +1 -0
  187. package/lib/commonjs/components/FullWindowOverlay.web.js +9 -0
  188. package/lib/commonjs/components/FullWindowOverlay.web.js.map +1 -0
  189. package/lib/commonjs/components/Screen.js +286 -0
  190. package/lib/commonjs/components/Screen.js.map +1 -0
  191. package/lib/commonjs/components/Screen.web.js +48 -0
  192. package/lib/commonjs/components/Screen.web.js.map +1 -0
  193. package/lib/commonjs/components/ScreenContainer.js +32 -0
  194. package/lib/commonjs/components/ScreenContainer.js.map +1 -0
  195. package/lib/commonjs/components/ScreenContainer.web.js +10 -0
  196. package/lib/commonjs/components/ScreenContainer.web.js.map +1 -0
  197. package/lib/commonjs/components/ScreenContentWrapper.js +17 -0
  198. package/lib/commonjs/components/ScreenContentWrapper.js.map +1 -0
  199. package/lib/commonjs/components/ScreenContentWrapper.web.js +10 -0
  200. package/lib/commonjs/components/ScreenContentWrapper.web.js.map +1 -0
  201. package/lib/commonjs/components/ScreenFooter.js +25 -0
  202. package/lib/commonjs/components/ScreenFooter.js.map +1 -0
  203. package/lib/commonjs/components/ScreenFooter.web.js +11 -0
  204. package/lib/commonjs/components/ScreenFooter.web.js.map +1 -0
  205. package/lib/commonjs/components/ScreenStack.js +67 -0
  206. package/lib/commonjs/components/ScreenStack.js.map +1 -0
  207. package/lib/commonjs/components/ScreenStack.web.js +10 -0
  208. package/lib/commonjs/components/ScreenStack.web.js.map +1 -0
  209. package/lib/commonjs/components/ScreenStackHeaderConfig.js +100 -0
  210. package/lib/commonjs/components/ScreenStackHeaderConfig.js.map +1 -0
  211. package/lib/commonjs/components/ScreenStackHeaderConfig.web.js +39 -0
  212. package/lib/commonjs/components/ScreenStackHeaderConfig.web.js.map +1 -0
  213. package/lib/commonjs/components/ScreenStackItem.js +106 -0
  214. package/lib/commonjs/components/ScreenStackItem.js.map +1 -0
  215. package/lib/commonjs/components/SearchBar.js +67 -0
  216. package/lib/commonjs/components/SearchBar.js.map +1 -0
  217. package/lib/commonjs/components/SearchBar.web.js +10 -0
  218. package/lib/commonjs/components/SearchBar.web.js.map +1 -0
  219. package/lib/commonjs/components/helpers/DelayedFreeze.js +31 -0
  220. package/lib/commonjs/components/helpers/DelayedFreeze.js.map +1 -0
  221. package/lib/commonjs/components/helpers/usePrevious.js +16 -0
  222. package/lib/commonjs/components/helpers/usePrevious.js.map +1 -0
  223. package/lib/commonjs/contexts.js +11 -0
  224. package/lib/commonjs/contexts.js.map +1 -0
  225. package/lib/commonjs/core.js +40 -0
  226. package/lib/commonjs/core.js.map +1 -0
  227. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +17 -2
  228. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
  229. package/lib/commonjs/fabric/ModalScreenNativeComponent.js +14 -0
  230. package/lib/commonjs/fabric/ModalScreenNativeComponent.js.map +1 -0
  231. package/lib/commonjs/fabric/NativeScreensModule.js +10 -0
  232. package/lib/commonjs/fabric/NativeScreensModule.js.map +1 -0
  233. package/lib/commonjs/fabric/NativeScreensModule.web.js +8 -0
  234. package/lib/commonjs/fabric/NativeScreensModule.web.js.map +1 -0
  235. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +8 -11
  236. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -1
  237. package/lib/commonjs/fabric/ScreenContentWrapperNativeComponent.js +18 -0
  238. package/lib/commonjs/fabric/ScreenContentWrapperNativeComponent.js.map +1 -0
  239. package/lib/commonjs/fabric/ScreenFooterNativeComponent.js +10 -0
  240. package/lib/commonjs/fabric/ScreenFooterNativeComponent.js.map +1 -0
  241. package/lib/commonjs/fabric/ScreenNativeComponent.js +13 -15
  242. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
  243. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +3 -2
  244. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
  245. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +10 -9
  246. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  247. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +6 -3
  248. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  249. package/lib/commonjs/fabric/ScreenStackNativeComponent.js +8 -11
  250. package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
  251. package/lib/commonjs/fabric/SearchBarNativeComponent.js +5 -6
  252. package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
  253. package/lib/commonjs/gesture-handler/GestureDetectorProvider.js +19 -0
  254. package/lib/commonjs/gesture-handler/GestureDetectorProvider.js.map +1 -0
  255. package/lib/commonjs/gesture-handler/RNScreensTurboModule.js +8 -0
  256. package/lib/commonjs/gesture-handler/RNScreensTurboModule.js.map +1 -0
  257. package/lib/commonjs/gesture-handler/ScreenGestureDetector.js +200 -0
  258. package/lib/commonjs/gesture-handler/ScreenGestureDetector.js.map +1 -0
  259. package/lib/commonjs/gesture-handler/constraints.js +64 -0
  260. package/lib/commonjs/gesture-handler/constraints.js.map +1 -0
  261. package/lib/commonjs/gesture-handler/defaults.js +45 -0
  262. package/lib/commonjs/gesture-handler/defaults.js.map +1 -0
  263. package/lib/commonjs/gesture-handler/fabricUtils.js +66 -0
  264. package/lib/commonjs/gesture-handler/fabricUtils.js.map +1 -0
  265. package/lib/commonjs/gesture-handler/fabricUtils.web.js +17 -0
  266. package/lib/commonjs/gesture-handler/fabricUtils.web.js.map +1 -0
  267. package/lib/commonjs/gesture-handler/index.js +14 -0
  268. package/lib/commonjs/gesture-handler/index.js.map +1 -0
  269. package/lib/commonjs/index.js +157 -95
  270. package/lib/commonjs/index.js.map +1 -1
  271. package/lib/commonjs/native-stack/contexts/GHContext.js +12 -0
  272. package/lib/commonjs/native-stack/contexts/GHContext.js.map +1 -0
  273. package/lib/commonjs/native-stack/index.js +1 -1
  274. package/lib/commonjs/native-stack/index.js.map +1 -1
  275. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +24 -24
  276. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  277. package/lib/commonjs/native-stack/types.js.map +1 -1
  278. package/lib/commonjs/native-stack/utils/AnimatedHeaderHeightContext.js +1 -2
  279. package/lib/commonjs/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -1
  280. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js +1 -2
  281. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -1
  282. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js +1 -2
  283. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
  284. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  285. package/lib/commonjs/native-stack/utils/getStatusBarHeight.js +22 -0
  286. package/lib/commonjs/native-stack/utils/getStatusBarHeight.js.map +1 -0
  287. package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js +2 -3
  288. package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -1
  289. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js +5 -6
  290. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -1
  291. package/lib/commonjs/native-stack/utils/useHeaderHeight.js +2 -3
  292. package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -1
  293. package/lib/commonjs/native-stack/views/FontProcessor.js +2 -4
  294. package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -1
  295. package/lib/commonjs/native-stack/views/FooterComponent.js +17 -0
  296. package/lib/commonjs/native-stack/views/FooterComponent.js.map +1 -0
  297. package/lib/commonjs/native-stack/views/HeaderConfig.js +23 -15
  298. package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -1
  299. package/lib/commonjs/native-stack/views/NativeStackView.js +124 -56
  300. package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
  301. package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js +1 -2
  302. package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js.map +1 -1
  303. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +14 -21
  304. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
  305. package/lib/commonjs/reanimated/ReanimatedScreen.js +4 -4
  306. package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -1
  307. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +10 -18
  308. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -1
  309. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js +1 -2
  310. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
  311. package/lib/commonjs/reanimated/index.js +1 -1
  312. package/lib/commonjs/reanimated/index.js.map +1 -1
  313. package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js +4 -5
  314. package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js.map +1 -1
  315. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js +2 -3
  316. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -1
  317. package/lib/commonjs/types.js.map +1 -1
  318. package/lib/commonjs/useTransitionProgress.js +2 -3
  319. package/lib/commonjs/useTransitionProgress.js.map +1 -1
  320. package/lib/commonjs/utils.js +28 -6
  321. package/lib/commonjs/utils.js.map +1 -1
  322. package/lib/module/TransitionProgressContext.js +2 -0
  323. package/lib/module/TransitionProgressContext.js.map +1 -1
  324. package/lib/module/components/DebugContainer.js +30 -0
  325. package/lib/module/components/DebugContainer.js.map +1 -0
  326. package/lib/module/components/DebugContainer.web.js +6 -0
  327. package/lib/module/components/DebugContainer.web.js.map +1 -0
  328. package/lib/module/components/FullWindowOverlay.js +24 -0
  329. package/lib/module/components/FullWindowOverlay.js.map +1 -0
  330. package/lib/module/components/FullWindowOverlay.web.js +3 -0
  331. package/lib/module/components/FullWindowOverlay.web.js.map +1 -0
  332. package/lib/module/components/Screen.js +282 -0
  333. package/lib/module/components/Screen.js.map +1 -0
  334. package/lib/module/components/Screen.web.js +41 -0
  335. package/lib/module/components/Screen.web.js.map +1 -0
  336. package/lib/module/components/ScreenContainer.js +26 -0
  337. package/lib/module/components/ScreenContainer.js.map +1 -0
  338. package/lib/module/components/ScreenContainer.web.js +4 -0
  339. package/lib/module/components/ScreenContainer.web.js.map +1 -0
  340. package/lib/module/components/ScreenContentWrapper.js +10 -0
  341. package/lib/module/components/ScreenContentWrapper.js.map +1 -0
  342. package/lib/module/components/ScreenContentWrapper.web.js +4 -0
  343. package/lib/module/components/ScreenContentWrapper.web.js.map +1 -0
  344. package/lib/module/components/ScreenFooter.js +18 -0
  345. package/lib/module/components/ScreenFooter.js.map +1 -0
  346. package/lib/module/components/ScreenFooter.web.js +6 -0
  347. package/lib/module/components/ScreenFooter.web.js.map +1 -0
  348. package/lib/module/components/ScreenStack.js +63 -0
  349. package/lib/module/components/ScreenStack.js.map +1 -0
  350. package/lib/module/components/ScreenStack.web.js +4 -0
  351. package/lib/module/components/ScreenStack.web.js.map +1 -0
  352. package/lib/module/components/ScreenStackHeaderConfig.js +91 -0
  353. package/lib/module/components/ScreenStackHeaderConfig.js.map +1 -0
  354. package/lib/module/components/ScreenStackHeaderConfig.web.js +26 -0
  355. package/lib/module/components/ScreenStackHeaderConfig.web.js.map +1 -0
  356. package/lib/module/components/ScreenStackItem.js +98 -0
  357. package/lib/module/components/ScreenStackItem.js.map +1 -0
  358. package/lib/module/components/SearchBar.js +62 -0
  359. package/lib/module/components/SearchBar.js.map +1 -0
  360. package/lib/module/components/SearchBar.web.js +4 -0
  361. package/lib/module/components/SearchBar.web.js.map +1 -0
  362. package/lib/module/components/helpers/DelayedFreeze.js +24 -0
  363. package/lib/module/components/helpers/DelayedFreeze.js.map +1 -0
  364. package/lib/module/components/helpers/usePrevious.js +10 -0
  365. package/lib/module/components/helpers/usePrevious.js.map +1 -0
  366. package/lib/module/contexts.js +4 -0
  367. package/lib/module/contexts.js.map +1 -0
  368. package/lib/module/core.js +31 -0
  369. package/lib/module/core.js.map +1 -0
  370. package/lib/module/fabric/FullWindowOverlayNativeComponent.js +16 -0
  371. package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
  372. package/lib/module/fabric/ModalScreenNativeComponent.js +10 -0
  373. package/lib/module/fabric/ModalScreenNativeComponent.js.map +1 -0
  374. package/lib/module/fabric/NativeScreensModule.js +5 -0
  375. package/lib/module/fabric/NativeScreensModule.js.map +1 -0
  376. package/lib/module/fabric/NativeScreensModule.web.js +2 -0
  377. package/lib/module/fabric/NativeScreensModule.web.js.map +1 -0
  378. package/lib/module/fabric/ScreenContainerNativeComponent.js +3 -4
  379. package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -1
  380. package/lib/module/fabric/ScreenContentWrapperNativeComponent.js +10 -0
  381. package/lib/module/fabric/ScreenContentWrapperNativeComponent.js.map +1 -0
  382. package/lib/module/fabric/ScreenFooterNativeComponent.js +3 -0
  383. package/lib/module/fabric/ScreenFooterNativeComponent.js.map +1 -0
  384. package/lib/module/fabric/ScreenNativeComponent.js +8 -7
  385. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
  386. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +2 -0
  387. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
  388. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +8 -2
  389. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  390. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +5 -1
  391. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  392. package/lib/module/fabric/ScreenStackNativeComponent.js +3 -3
  393. package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
  394. package/lib/module/fabric/SearchBarNativeComponent.js +3 -1
  395. package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
  396. package/lib/module/gesture-handler/GestureDetectorProvider.js +12 -0
  397. package/lib/module/gesture-handler/GestureDetectorProvider.js.map +1 -0
  398. package/lib/module/gesture-handler/RNScreensTurboModule.js +2 -0
  399. package/lib/module/gesture-handler/RNScreensTurboModule.js.map +1 -0
  400. package/lib/module/gesture-handler/ScreenGestureDetector.js +193 -0
  401. package/lib/module/gesture-handler/ScreenGestureDetector.js.map +1 -0
  402. package/lib/module/gesture-handler/constraints.js +56 -0
  403. package/lib/module/gesture-handler/constraints.js.map +1 -0
  404. package/lib/module/gesture-handler/defaults.js +39 -0
  405. package/lib/module/gesture-handler/defaults.js.map +1 -0
  406. package/lib/module/gesture-handler/fabricUtils.js +61 -0
  407. package/lib/module/gesture-handler/fabricUtils.js.map +1 -0
  408. package/lib/module/gesture-handler/fabricUtils.web.js +10 -0
  409. package/lib/module/gesture-handler/fabricUtils.web.js.map +1 -0
  410. package/lib/module/gesture-handler/index.js +5 -0
  411. package/lib/module/gesture-handler/index.js.map +1 -0
  412. package/lib/module/index.js +29 -64
  413. package/lib/module/index.js.map +1 -1
  414. package/lib/module/native-stack/contexts/GHContext.js +6 -0
  415. package/lib/module/native-stack/contexts/GHContext.js.map +1 -0
  416. package/lib/module/native-stack/index.js.map +1 -1
  417. package/lib/module/native-stack/navigators/createNativeStackNavigator.js +22 -21
  418. package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  419. package/lib/module/native-stack/types.js.map +1 -1
  420. package/lib/module/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -1
  421. package/lib/module/native-stack/utils/HeaderHeightContext.js.map +1 -1
  422. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
  423. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  424. package/lib/module/native-stack/utils/getStatusBarHeight.js +16 -0
  425. package/lib/module/native-stack/utils/getStatusBarHeight.js.map +1 -0
  426. package/lib/module/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -1
  427. package/lib/module/native-stack/utils/useBackPressSubscription.js +4 -5
  428. package/lib/module/native-stack/utils/useBackPressSubscription.js.map +1 -1
  429. package/lib/module/native-stack/utils/useHeaderHeight.js.map +1 -1
  430. package/lib/module/native-stack/views/FontProcessor.js +2 -3
  431. package/lib/module/native-stack/views/FontProcessor.js.map +1 -1
  432. package/lib/module/native-stack/views/FooterComponent.js +10 -0
  433. package/lib/module/native-stack/views/FooterComponent.js.map +1 -0
  434. package/lib/module/native-stack/views/HeaderConfig.js +14 -6
  435. package/lib/module/native-stack/views/HeaderConfig.js.map +1 -1
  436. package/lib/module/native-stack/views/NativeStackView.js +118 -47
  437. package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
  438. package/lib/module/reanimated/ReanimatedHeaderHeightContext.js.map +1 -1
  439. package/lib/module/reanimated/ReanimatedNativeStackScreen.js +9 -13
  440. package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
  441. package/lib/module/reanimated/ReanimatedScreen.js +2 -3
  442. package/lib/module/reanimated/ReanimatedScreen.js.map +1 -1
  443. package/lib/module/reanimated/ReanimatedScreenProvider.js +8 -16
  444. package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -1
  445. package/lib/module/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
  446. package/lib/module/reanimated/index.js.map +1 -1
  447. package/lib/module/reanimated/useReanimatedHeaderHeight.js +1 -1
  448. package/lib/module/reanimated/useReanimatedHeaderHeight.js.map +1 -1
  449. package/lib/module/reanimated/useReanimatedTransitionProgress.js.map +1 -1
  450. package/lib/module/types.js.map +1 -1
  451. package/lib/module/useTransitionProgress.js.map +1 -1
  452. package/lib/module/utils.js +26 -5
  453. package/lib/module/utils.js.map +1 -1
  454. package/lib/typescript/TransitionProgressContext.d.ts +2 -1
  455. package/lib/typescript/TransitionProgressContext.d.ts.map +1 -0
  456. package/lib/typescript/components/DebugContainer.d.ts +15 -0
  457. package/lib/typescript/components/DebugContainer.d.ts.map +1 -0
  458. package/lib/typescript/components/DebugContainer.web.d.ts +4 -0
  459. package/lib/typescript/components/DebugContainer.web.d.ts.map +1 -0
  460. package/lib/typescript/components/FullWindowOverlay.d.ts +6 -0
  461. package/lib/typescript/components/FullWindowOverlay.d.ts.map +1 -0
  462. package/lib/typescript/components/FullWindowOverlay.web.d.ts +6 -0
  463. package/lib/typescript/components/FullWindowOverlay.web.d.ts.map +1 -0
  464. package/lib/typescript/components/Screen.d.ts +8 -0
  465. package/lib/typescript/components/Screen.d.ts.map +1 -0
  466. package/lib/typescript/components/Screen.web.d.ts +11 -0
  467. package/lib/typescript/components/Screen.web.d.ts.map +1 -0
  468. package/lib/typescript/components/ScreenContainer.d.ts +5 -0
  469. package/lib/typescript/components/ScreenContainer.d.ts.map +1 -0
  470. package/lib/typescript/components/ScreenContainer.web.d.ts +4 -0
  471. package/lib/typescript/components/ScreenContainer.web.d.ts.map +1 -0
  472. package/lib/typescript/components/ScreenContentWrapper.d.ts +5 -0
  473. package/lib/typescript/components/ScreenContentWrapper.d.ts.map +1 -0
  474. package/lib/typescript/components/ScreenContentWrapper.web.d.ts +4 -0
  475. package/lib/typescript/components/ScreenContentWrapper.web.d.ts.map +1 -0
  476. package/lib/typescript/components/ScreenFooter.d.ts +12 -0
  477. package/lib/typescript/components/ScreenFooter.d.ts.map +1 -0
  478. package/lib/typescript/components/ScreenFooter.web.d.ts +6 -0
  479. package/lib/typescript/components/ScreenFooter.web.d.ts.map +1 -0
  480. package/lib/typescript/components/ScreenStack.d.ts +5 -0
  481. package/lib/typescript/components/ScreenStack.d.ts.map +1 -0
  482. package/lib/typescript/components/ScreenStack.web.d.ts +4 -0
  483. package/lib/typescript/components/ScreenStack.web.d.ts.map +1 -0
  484. package/lib/typescript/components/ScreenStackHeaderConfig.d.ts +13 -0
  485. package/lib/typescript/components/ScreenStackHeaderConfig.d.ts.map +1 -0
  486. package/lib/typescript/components/ScreenStackHeaderConfig.web.d.ts +13 -0
  487. package/lib/typescript/components/ScreenStackHeaderConfig.web.d.ts.map +1 -0
  488. package/lib/typescript/components/ScreenStackItem.d.ts +11 -0
  489. package/lib/typescript/components/ScreenStackItem.d.ts.map +1 -0
  490. package/lib/typescript/components/SearchBar.d.ts +5 -0
  491. package/lib/typescript/components/SearchBar.d.ts.map +1 -0
  492. package/lib/typescript/components/SearchBar.web.d.ts +4 -0
  493. package/lib/typescript/components/SearchBar.web.d.ts.map +1 -0
  494. package/lib/typescript/components/helpers/DelayedFreeze.d.ts +8 -0
  495. package/lib/typescript/components/helpers/DelayedFreeze.d.ts.map +1 -0
  496. package/lib/typescript/components/helpers/usePrevious.d.ts +2 -0
  497. package/lib/typescript/components/helpers/usePrevious.d.ts.map +1 -0
  498. package/lib/typescript/contexts.d.ts +5 -0
  499. package/lib/typescript/contexts.d.ts.map +1 -0
  500. package/lib/typescript/core.d.ts +6 -0
  501. package/lib/typescript/core.d.ts.map +1 -0
  502. package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts +1 -1
  503. package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts.map +1 -0
  504. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts +76 -0
  505. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts.map +1 -0
  506. package/lib/typescript/fabric/NativeScreensModule.d.ts +6 -0
  507. package/lib/typescript/fabric/NativeScreensModule.d.ts.map +1 -0
  508. package/lib/typescript/fabric/NativeScreensModule.web.d.ts +3 -0
  509. package/lib/typescript/fabric/NativeScreensModule.web.d.ts.map +1 -0
  510. package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts +1 -0
  511. package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts.map +1 -0
  512. package/lib/typescript/fabric/ScreenContentWrapperNativeComponent.d.ts +6 -0
  513. package/lib/typescript/fabric/ScreenContentWrapperNativeComponent.d.ts.map +1 -0
  514. package/lib/typescript/fabric/ScreenFooterNativeComponent.d.ts +7 -0
  515. package/lib/typescript/fabric/ScreenFooterNativeComponent.d.ts.map +1 -0
  516. package/lib/typescript/fabric/ScreenNativeComponent.d.ts +34 -24
  517. package/lib/typescript/fabric/ScreenNativeComponent.d.ts.map +1 -0
  518. package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts +1 -1
  519. package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts.map +1 -0
  520. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +12 -2
  521. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -0
  522. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +2 -2
  523. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -0
  524. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +4 -2
  525. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts.map +1 -0
  526. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +17 -16
  527. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts.map +1 -0
  528. package/lib/typescript/gesture-handler/GestureDetectorProvider.d.ts +5 -0
  529. package/lib/typescript/gesture-handler/GestureDetectorProvider.d.ts.map +1 -0
  530. package/lib/typescript/gesture-handler/RNScreensTurboModule.d.ts +13 -0
  531. package/lib/typescript/gesture-handler/RNScreensTurboModule.d.ts.map +1 -0
  532. package/lib/typescript/gesture-handler/ScreenGestureDetector.d.ts +5 -0
  533. package/lib/typescript/gesture-handler/ScreenGestureDetector.d.ts.map +1 -0
  534. package/lib/typescript/gesture-handler/constraints.d.ts +6 -0
  535. package/lib/typescript/gesture-handler/constraints.d.ts.map +1 -0
  536. package/lib/typescript/gesture-handler/defaults.d.ts +20 -0
  537. package/lib/typescript/gesture-handler/defaults.d.ts.map +1 -0
  538. package/lib/typescript/gesture-handler/fabricUtils.d.ts +10 -0
  539. package/lib/typescript/gesture-handler/fabricUtils.d.ts.map +1 -0
  540. package/lib/typescript/gesture-handler/fabricUtils.web.d.ts +6 -0
  541. package/lib/typescript/gesture-handler/fabricUtils.web.d.ts.map +1 -0
  542. package/lib/typescript/gesture-handler/index.d.ts +2 -0
  543. package/lib/typescript/gesture-handler/index.d.ts.map +1 -0
  544. package/lib/typescript/index.d.ts +25 -31
  545. package/lib/typescript/index.d.ts.map +1 -0
  546. package/lib/typescript/native-stack/contexts/GHContext.d.ts +4 -0
  547. package/lib/typescript/native-stack/contexts/GHContext.d.ts.map +1 -0
  548. package/lib/typescript/native-stack/index.d.ts +1 -0
  549. package/lib/typescript/native-stack/index.d.ts.map +1 -0
  550. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +4 -0
  551. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts.map +1 -0
  552. package/lib/typescript/native-stack/types.d.ts +191 -33
  553. package/lib/typescript/native-stack/types.d.ts.map +1 -0
  554. package/lib/typescript/native-stack/utils/AnimatedHeaderHeightContext.d.ts +1 -0
  555. package/lib/typescript/native-stack/utils/AnimatedHeaderHeightContext.d.ts.map +1 -0
  556. package/lib/typescript/native-stack/utils/HeaderHeightContext.d.ts +1 -0
  557. package/lib/typescript/native-stack/utils/HeaderHeightContext.d.ts.map +1 -0
  558. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts +2 -1
  559. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts.map +1 -0
  560. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +3 -2
  561. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts.map +1 -0
  562. package/lib/typescript/native-stack/utils/getStatusBarHeight.d.ts +3 -0
  563. package/lib/typescript/native-stack/utils/getStatusBarHeight.d.ts.map +1 -0
  564. package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts +2 -1
  565. package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts.map +1 -0
  566. package/lib/typescript/native-stack/utils/useBackPressSubscription.d.ts +1 -0
  567. package/lib/typescript/native-stack/utils/useBackPressSubscription.d.ts.map +1 -0
  568. package/lib/typescript/native-stack/utils/useHeaderHeight.d.ts +1 -0
  569. package/lib/typescript/native-stack/utils/useHeaderHeight.d.ts.map +1 -0
  570. package/lib/typescript/native-stack/views/FontProcessor.d.ts +1 -0
  571. package/lib/typescript/native-stack/views/FontProcessor.d.ts.map +1 -0
  572. package/lib/typescript/native-stack/views/FooterComponent.d.ts +7 -0
  573. package/lib/typescript/native-stack/views/FooterComponent.d.ts.map +1 -0
  574. package/lib/typescript/native-stack/views/HeaderConfig.d.ts +4 -3
  575. package/lib/typescript/native-stack/views/HeaderConfig.d.ts.map +1 -0
  576. package/lib/typescript/native-stack/views/NativeStackView.d.ts +2 -1
  577. package/lib/typescript/native-stack/views/NativeStackView.d.ts.map +1 -0
  578. package/lib/typescript/reanimated/ReanimatedHeaderHeightContext.d.ts +1 -0
  579. package/lib/typescript/reanimated/ReanimatedHeaderHeightContext.d.ts.map +1 -0
  580. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +3 -3
  581. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts.map +1 -0
  582. package/lib/typescript/reanimated/ReanimatedScreen.d.ts +3 -3
  583. package/lib/typescript/reanimated/ReanimatedScreen.d.ts.map +1 -0
  584. package/lib/typescript/reanimated/ReanimatedScreenProvider.d.ts +1 -0
  585. package/lib/typescript/reanimated/ReanimatedScreenProvider.d.ts.map +1 -0
  586. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts +2 -1
  587. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts.map +1 -0
  588. package/lib/typescript/reanimated/index.d.ts +1 -0
  589. package/lib/typescript/reanimated/index.d.ts.map +1 -0
  590. package/lib/typescript/reanimated/useReanimatedHeaderHeight.d.ts +2 -3
  591. package/lib/typescript/reanimated/useReanimatedHeaderHeight.d.ts.map +1 -0
  592. package/lib/typescript/reanimated/useReanimatedTransitionProgress.d.ts +4 -9
  593. package/lib/typescript/reanimated/useReanimatedTransitionProgress.d.ts.map +1 -0
  594. package/lib/typescript/types.d.ts +187 -37
  595. package/lib/typescript/types.d.ts.map +1 -0
  596. package/lib/typescript/useTransitionProgress.d.ts +4 -3
  597. package/lib/typescript/useTransitionProgress.d.ts.map +1 -0
  598. package/lib/typescript/utils.d.ts +27 -1
  599. package/lib/typescript/utils.d.ts.map +1 -0
  600. package/native-stack/README.md +156 -108
  601. package/native-stack/package.json +4 -4
  602. package/oss-attribution/attribution.txt +77 -0
  603. package/oss-attribution/licenseInfos.json +27 -0
  604. package/package.json +196 -1
  605. package/react-native.config.js +19 -16
  606. package/reanimated/package.json +1 -1
  607. package/src/TransitionProgressContext.tsx +3 -1
  608. package/src/components/DebugContainer.tsx +46 -0
  609. package/src/components/DebugContainer.web.tsx +7 -0
  610. package/src/components/FullWindowOverlay.tsx +33 -0
  611. package/src/components/FullWindowOverlay.web.tsx +6 -0
  612. package/src/components/Screen.tsx +392 -0
  613. package/src/components/Screen.web.tsx +47 -0
  614. package/src/components/ScreenContainer.tsx +28 -0
  615. package/src/components/ScreenContainer.web.tsx +5 -0
  616. package/src/components/ScreenContentWrapper.tsx +9 -0
  617. package/src/components/ScreenContentWrapper.web.tsx +5 -0
  618. package/src/components/ScreenFooter.tsx +20 -0
  619. package/src/components/ScreenFooter.web.tsx +7 -0
  620. package/src/components/ScreenStack.tsx +112 -0
  621. package/src/components/ScreenStack.web.tsx +5 -0
  622. package/src/components/ScreenStackHeaderConfig.tsx +127 -0
  623. package/src/components/ScreenStackHeaderConfig.web.tsx +45 -0
  624. package/src/components/ScreenStackItem.tsx +174 -0
  625. package/src/components/SearchBar.tsx +105 -0
  626. package/src/components/SearchBar.web.tsx +5 -0
  627. package/src/components/helpers/DelayedFreeze.tsx +27 -0
  628. package/src/components/helpers/usePrevious.tsx +12 -0
  629. package/src/contexts.tsx +9 -0
  630. package/src/core.ts +45 -0
  631. package/src/fabric/FullWindowOverlayNativeComponent.ts +16 -0
  632. package/src/fabric/ModalScreenNativeComponent.ts +115 -0
  633. package/src/fabric/NativeScreensModule.ts +8 -0
  634. package/src/fabric/NativeScreensModule.web.ts +1 -0
  635. package/src/fabric/ScreenContainerNativeComponent.ts +3 -3
  636. package/src/fabric/ScreenContentWrapperNativeComponent.ts +14 -0
  637. package/src/fabric/ScreenFooterNativeComponent.ts +6 -0
  638. package/src/fabric/ScreenNativeComponent.ts +34 -23
  639. package/src/fabric/ScreenNavigationContainerNativeComponent.ts +3 -1
  640. package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +38 -2
  641. package/src/fabric/ScreenStackHeaderSubviewNativeComponent.ts +5 -1
  642. package/src/fabric/ScreenStackNativeComponent.ts +3 -2
  643. package/src/fabric/SearchBarNativeComponent.ts +17 -13
  644. package/src/gesture-handler/GestureDetectorProvider.tsx +16 -0
  645. package/src/gesture-handler/RNScreensTurboModule.ts +13 -0
  646. package/src/gesture-handler/ScreenGestureDetector.tsx +241 -0
  647. package/src/gesture-handler/constraints.ts +87 -0
  648. package/src/gesture-handler/defaults.ts +46 -0
  649. package/src/gesture-handler/fabricUtils.ts +86 -0
  650. package/src/gesture-handler/fabricUtils.web.ts +10 -0
  651. package/src/gesture-handler/index.tsx +4 -0
  652. package/src/index.tsx +49 -113
  653. package/src/native-stack/contexts/GHContext.tsx +9 -0
  654. package/src/native-stack/navigators/createNativeStackNavigator.tsx +6 -3
  655. package/src/native-stack/types.tsx +204 -31
  656. package/src/native-stack/utils/getDefaultHeaderHeight.tsx +2 -2
  657. package/src/native-stack/utils/getStatusBarHeight.tsx +22 -0
  658. package/src/native-stack/utils/useAnimatedHeaderHeight.tsx +1 -1
  659. package/src/native-stack/utils/useBackPressSubscription.tsx +3 -2
  660. package/src/native-stack/utils/useHeaderHeight.tsx +1 -1
  661. package/src/native-stack/views/FontProcessor.tsx +2 -2
  662. package/src/native-stack/views/FooterComponent.tsx +10 -0
  663. package/src/native-stack/views/HeaderConfig.tsx +22 -6
  664. package/src/native-stack/views/NativeStackView.tsx +141 -54
  665. package/src/reanimated/ReanimatedHeaderHeightContext.tsx +1 -1
  666. package/src/reanimated/ReanimatedNativeStackScreen.tsx +15 -13
  667. package/src/reanimated/ReanimatedScreen.tsx +4 -3
  668. package/src/reanimated/ReanimatedScreenProvider.tsx +3 -2
  669. package/src/reanimated/useReanimatedHeaderHeight.tsx +2 -2
  670. package/src/reanimated/useReanimatedTransitionProgress.tsx +1 -1
  671. package/src/types.tsx +213 -41
  672. package/src/useTransitionProgress.tsx +1 -1
  673. package/src/utils.ts +27 -5
  674. package/windows/README.md +4 -1
  675. package/windows/RNScreens/Screen.h +3 -1
  676. package/SystemBundles/3d72c1ccdc1866604203e2067a94f7ab2c45408da644bb242aa980ffea58a74d.bundle +0 -33190
  677. package/SystemBundles/3d72c1ccdc1866604203e2067a94f7ab2c45408da644bb242aa980ffea58a74d.map +0 -10181
  678. package/SystemModules/amzn__react-native-screens.modules.txt +0 -101
  679. package/SystemModules/amzn__react-native-screens.private.modules.txt +0 -243
  680. package/lib/commonjs/index.native.js +0 -409
  681. package/lib/commonjs/index.native.js.map +0 -1
  682. package/lib/module/index.native.js +0 -412
  683. package/lib/module/index.native.js.map +0 -1
  684. package/lib/typescript/index.native.d.ts +0 -2
  685. package/src/index.native.tsx +0 -601
@@ -11,17 +11,25 @@
11
11
  * Set up react-native-screens package to build for Kepler
12
12
  */
13
13
 
14
+ /* eslint-disable camelcase */
14
15
  import * as React from 'react';
15
- import { Animated, Platform, StyleSheet, View, ViewProps } from 'react-native';
16
+ // amznmod_react - add support for react 19
17
+ import {
18
+ Animated,
19
+ Platform,
20
+ StyleSheet,
21
+ View,
22
+ ViewProps,
23
+ ViewStyle,
24
+ } from 'react-native';
16
25
  // @ts-ignore Getting private component
17
- // eslint-disable-next-line import/no-named-as-default, import/default, import/no-named-as-default-member, import/namespace
26
+
18
27
  import AppContainer from 'react-native/Libraries/ReactNative/AppContainer';
19
28
  import warnOnce from 'warn-once';
20
- import {
21
- ScreenStack,
22
- StackPresentationTypes,
23
- ScreenContext,
24
- } from '@amazon-devices/react-native-screens';
29
+ import { StackPresentationTypes, ScreensRefsHolder } from '../../types';
30
+ import ScreenStack from '../../components/ScreenStack';
31
+ import ScreenContentWrapper from '../../components/ScreenContentWrapper';
32
+ import { ScreenContext } from '../../components/Screen';
25
33
  import {
26
34
  ParamListBase,
27
35
  StackActions,
@@ -33,7 +41,6 @@ import {
33
41
  // amznmod_react - change imports to kepler packages
34
42
  } from '@amazon-devices/react-navigation__native';
35
43
  import {
36
- Rect,
37
44
  useSafeAreaFrame,
38
45
  useSafeAreaInsets,
39
46
  // amznmod_react - change imports to kepler packages
@@ -46,26 +53,35 @@ import {
46
53
  import HeaderConfig from './HeaderConfig';
47
54
  import SafeAreaProviderCompat from '../utils/SafeAreaProviderCompat';
48
55
  import getDefaultHeaderHeight from '../utils/getDefaultHeaderHeight';
56
+ import getStatusBarHeight from '../utils/getStatusBarHeight';
49
57
  import HeaderHeightContext from '../utils/HeaderHeightContext';
50
58
  import AnimatedHeaderHeightContext from '../utils/AnimatedHeaderHeightContext';
59
+ import FooterComponent from './FooterComponent';
51
60
 
52
61
  const isAndroid = Platform.OS === 'android';
62
+ // amznmod_react - add isKepler flag
63
+ // @ts-ignore
64
+ const isKepler = Platform.OS === 'kepler';
53
65
 
54
- let Container = View;
66
+ let Container = ScreenContentWrapper;
55
67
 
56
68
  if (__DEV__) {
57
69
  const DebugContainer = (
58
- props: ViewProps & { stackPresentation: StackPresentationTypes }
70
+ props: ViewProps & { stackPresentation: StackPresentationTypes },
59
71
  ) => {
60
72
  const { stackPresentation, ...rest } = props;
61
- if (Platform.OS === 'ios' && stackPresentation !== 'push') {
73
+ if (
74
+ Platform.OS === 'ios' &&
75
+ stackPresentation !== 'push' &&
76
+ stackPresentation !== 'formSheet'
77
+ ) {
62
78
  return (
63
79
  <AppContainer>
64
- <View {...rest} />
80
+ <ScreenContentWrapper {...rest} />
65
81
  </AppContainer>
66
82
  );
67
83
  }
68
- return <View {...rest} />;
84
+ return <ScreenContentWrapper {...rest} />;
69
85
  };
70
86
  // @ts-ignore Wrong props
71
87
  Container = DebugContainer;
@@ -76,18 +92,21 @@ const MaybeNestedStack = ({
76
92
  route,
77
93
  stackPresentation,
78
94
  children,
95
+ internalScreenStyle,
79
96
  }: {
80
97
  options: NativeStackNavigationOptions;
81
98
  route: Route<string>;
82
99
  stackPresentation: StackPresentationTypes;
83
100
  children: React.ReactNode;
101
+ internalScreenStyle?: Pick<ViewStyle, 'backgroundColor'>;
84
102
  }) => {
85
103
  const { colors } = useTheme();
86
104
  const { headerShown = true, contentStyle } = options;
87
105
 
88
106
  const Screen = React.useContext(ScreenContext);
89
107
 
90
- const isHeaderInModal = isAndroid
108
+ // amznmod_react - return false for Modal on kepler because native component is not implemented yet
109
+ const isHeaderInModal = isAndroid || isKepler
91
110
  ? false
92
111
  : stackPresentation !== 'push' && headerShown === true;
93
112
 
@@ -98,7 +117,7 @@ const MaybeNestedStack = ({
98
117
  !isAndroid &&
99
118
  stackPresentation !== 'push' &&
100
119
  headerShownPreviousRef.current !== headerShown,
101
- `Dynamically changing 'headerShown' in modals will result in remounting the screen and losing all local state. See options for the screen '${route.name}'.`
120
+ `Dynamically changing 'headerShown' in modals will result in remounting the screen and losing all local state. See options for the screen '${route.name}'.`,
102
121
  );
103
122
 
104
123
  headerShownPreviousRef.current = headerShown;
@@ -107,7 +126,11 @@ const MaybeNestedStack = ({
107
126
  const content = (
108
127
  <Container
109
128
  style={[
110
- styles.container,
129
+ stackPresentation === 'formSheet'
130
+ ? Platform.OS === 'ios'
131
+ ? styles.absoluteFillNoBottom
132
+ : null
133
+ : styles.container,
111
134
  stackPresentation !== 'transparentModal' &&
112
135
  stackPresentation !== 'containedTransparentModal' && {
113
136
  backgroundColor: colors.background,
@@ -130,22 +153,26 @@ const MaybeNestedStack = ({
130
153
  const statusBarHeight = getStatusBarHeight(
131
154
  topInset,
132
155
  dimensions,
133
- isStatusBarTranslucent
156
+ isStatusBarTranslucent,
134
157
  );
135
158
 
136
- const isLargeHeader = options.headerLargeTitle ?? false;
159
+ const hasLargeHeader = options.headerLargeTitle ?? false;
137
160
 
138
161
  const headerHeight = getDefaultHeaderHeight(
139
162
  dimensions,
140
163
  statusBarHeight,
141
164
  stackPresentation,
142
- isLargeHeader
165
+ hasLargeHeader,
143
166
  );
144
167
 
145
168
  if (isHeaderInModal) {
146
169
  return (
147
170
  <ScreenStack style={styles.container}>
148
- <Screen enabled isNativeStack style={StyleSheet.absoluteFill}>
171
+ <Screen
172
+ enabled
173
+ isNativeStack
174
+ hasLargeHeader={hasLargeHeader}
175
+ style={[StyleSheet.absoluteFill, internalScreenStyle]}>
149
176
  <HeaderHeightContext.Provider value={headerHeight}>
150
177
  <HeaderConfig {...options} route={route} />
151
178
  {content}
@@ -159,7 +186,7 @@ const MaybeNestedStack = ({
159
186
 
160
187
  type NavigationRoute<
161
188
  ParamList extends ParamListBase,
162
- RouteName extends keyof ParamList
189
+ RouteName extends keyof ParamList,
163
190
  > = Route<Extract<RouteName, string>, ParamList[RouteName]> & {
164
191
  state?: NavigationState | PartialState<NavigationState>;
165
192
  };
@@ -170,26 +197,32 @@ const RouteView = ({
170
197
  index,
171
198
  navigation,
172
199
  stateKey,
200
+ screensRefs,
173
201
  }: {
174
202
  descriptors: NativeStackDescriptorMap;
175
203
  route: NavigationRoute<ParamListBase, string>;
176
204
  index: number;
177
205
  navigation: NativeStackNavigationHelpers;
178
206
  stateKey: string;
207
+ screensRefs: React.MutableRefObject<ScreensRefsHolder>;
179
208
  }) => {
180
209
  const { options, render: renderScene } = descriptors[route.key];
210
+
181
211
  const {
212
+ fullScreenSwipeShadowEnabled = true,
182
213
  gestureEnabled,
183
214
  headerShown,
184
215
  hideKeyboardOnSwipe,
185
216
  homeIndicatorHidden,
186
- sheetAllowedDetents = 'large',
187
- sheetLargestUndimmedDetent = 'all',
217
+ sheetLargestUndimmedDetentIndex = 'none',
188
218
  sheetGrabberVisible = false,
189
219
  sheetCornerRadius = -1.0,
220
+ sheetElevation = 24,
190
221
  sheetExpandsWhenScrolledToEdge = true,
222
+ sheetInitialDetentIndex = 0,
191
223
  nativeBackButtonDismissalEnabled = false,
192
224
  navigationBarColor,
225
+ navigationBarTranslucent,
193
226
  navigationBarHidden,
194
227
  replaceAnimation = 'pop',
195
228
  screenOrientation,
@@ -201,9 +234,12 @@ const RouteView = ({
201
234
  swipeDirection = 'horizontal',
202
235
  transitionDuration,
203
236
  freezeOnBlur,
237
+ unstable_sheetFooter = null,
238
+ contentStyle,
204
239
  } = options;
205
240
 
206
241
  let {
242
+ sheetAllowedDetents = [1.0],
207
243
  customAnimationOnSwipe,
208
244
  fullScreenSwipeEnabled,
209
245
  gestureResponseDistance,
@@ -211,6 +247,22 @@ const RouteView = ({
211
247
  stackPresentation = 'push',
212
248
  } = options;
213
249
 
250
+ // We take backgroundColor from contentStyle and apply it on Screen.
251
+ // This allows to workaround one issue with truncated
252
+ // content with formSheet presentation.
253
+ let internalScreenStyle;
254
+
255
+ if (stackPresentation === 'formSheet' && contentStyle) {
256
+ const flattenContentStyles = StyleSheet.flatten(contentStyle);
257
+ internalScreenStyle = {
258
+ backgroundColor: flattenContentStyles?.backgroundColor,
259
+ };
260
+ }
261
+
262
+ if (sheetAllowedDetents === 'fitToContents') {
263
+ sheetAllowedDetents = [-1];
264
+ }
265
+
214
266
  if (swipeDirection === 'vertical') {
215
267
  // for `vertical` direction to work, we need to set `fullScreenSwipeEnabled` to `true`
216
268
  // so the screen can be dismissed from any point on screen.
@@ -240,16 +292,16 @@ const RouteView = ({
240
292
  const statusBarHeight = getStatusBarHeight(
241
293
  topInset,
242
294
  dimensions,
243
- isStatusBarTranslucent
295
+ isStatusBarTranslucent,
244
296
  );
245
297
 
246
- const isLargeHeader = options.headerLargeTitle ?? false;
298
+ const hasLargeHeader = options.headerLargeTitle ?? false;
247
299
 
248
300
  const defaultHeaderHeight = getDefaultHeaderHeight(
249
301
  dimensions,
250
302
  statusBarHeight,
251
303
  stackPresentation,
252
- isLargeHeader
304
+ hasLargeHeader,
253
305
  );
254
306
 
255
307
  const parentHeaderHeight = React.useContext(HeaderHeightContext);
@@ -263,39 +315,53 @@ const RouteView = ({
263
315
  // We need to ensure the first retrieved header height will be cached and set in animatedHeaderHeight.
264
316
  // We're caching the header height here, as on iOS native side events are not always coming to the JS on first notify.
265
317
  // TODO: Check why first event is not being received once it is cached on the native side.
266
- const cachedAnimatedHeaderHeight = React.useRef(statusBarHeight);
318
+ const cachedAnimatedHeaderHeight = React.useRef(defaultHeaderHeight);
267
319
  const animatedHeaderHeight = React.useRef(
268
320
  // amznmod_react - change imports to kepler packages
269
321
  // @ts-ignore
270
322
  new Animated.Value(staticHeaderHeight, {
271
323
  useNativeDriver: true,
272
- })
324
+ }),
273
325
  ).current;
274
326
 
275
327
  const Screen = React.useContext(ScreenContext);
276
-
277
328
  const { dark } = useTheme();
329
+ // amznmod_react - add support for react 19
330
+ const screenRef = React.useRef<View | null>(null);
331
+ React.useEffect(() => {
332
+ screensRefs.current[route.key] = screenRef;
333
+ return () => {
334
+ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
335
+ delete screensRefs.current[route.key];
336
+ };
337
+ });
278
338
 
279
339
  return (
280
340
  <Screen
281
341
  key={route.key}
342
+ ref={screenRef}
282
343
  enabled
283
344
  isNativeStack
284
- style={StyleSheet.absoluteFill}
345
+ hasLargeHeader={hasLargeHeader}
346
+ style={[StyleSheet.absoluteFill, internalScreenStyle]}
285
347
  sheetAllowedDetents={sheetAllowedDetents}
286
- sheetLargestUndimmedDetent={sheetLargestUndimmedDetent}
348
+ sheetLargestUndimmedDetentIndex={sheetLargestUndimmedDetentIndex}
287
349
  sheetGrabberVisible={sheetGrabberVisible}
350
+ sheetInitialDetentIndex={sheetInitialDetentIndex}
288
351
  sheetCornerRadius={sheetCornerRadius}
352
+ sheetElevation={sheetElevation}
289
353
  sheetExpandsWhenScrolledToEdge={sheetExpandsWhenScrolledToEdge}
290
354
  customAnimationOnSwipe={customAnimationOnSwipe}
291
355
  freezeOnBlur={freezeOnBlur}
292
356
  fullScreenSwipeEnabled={fullScreenSwipeEnabled}
357
+ fullScreenSwipeShadowEnabled={fullScreenSwipeShadowEnabled}
293
358
  hideKeyboardOnSwipe={hideKeyboardOnSwipe}
294
359
  homeIndicatorHidden={homeIndicatorHidden}
295
360
  gestureEnabled={isAndroid ? false : gestureEnabled}
296
361
  gestureResponseDistance={gestureResponseDistance}
297
362
  nativeBackButtonDismissalEnabled={nativeBackButtonDismissalEnabled}
298
363
  navigationBarColor={navigationBarColor}
364
+ navigationBarTranslucent={navigationBarTranslucent}
299
365
  navigationBarHidden={navigationBarHidden}
300
366
  replaceAnimation={replaceAnimation}
301
367
  screenOrientation={screenOrientation}
@@ -374,6 +440,16 @@ const RouteView = ({
374
440
  target: stateKey,
375
441
  });
376
442
  }}
443
+ onSheetDetentChanged={e => {
444
+ navigation.emit({
445
+ type: 'sheetDetentChange',
446
+ target: route.key,
447
+ data: {
448
+ index: e.nativeEvent.index,
449
+ isStable: e.nativeEvent.isStable,
450
+ },
451
+ });
452
+ }}
377
453
  onGestureCancel={() => {
378
454
  navigation.emit({
379
455
  type: 'gestureCancel',
@@ -385,7 +461,8 @@ const RouteView = ({
385
461
  <MaybeNestedStack
386
462
  options={options}
387
463
  route={route}
388
- stackPresentation={stackPresentation}>
464
+ stackPresentation={stackPresentation}
465
+ internalScreenStyle={internalScreenStyle}>
389
466
  {renderScene()}
390
467
  </MaybeNestedStack>
391
468
  {/* HeaderConfig must not be first child of a Screen.
@@ -396,6 +473,9 @@ const RouteView = ({
396
473
  route={route}
397
474
  headerShown={isHeaderInPush}
398
475
  />
476
+ {stackPresentation === 'formSheet' && unstable_sheetFooter && (
477
+ <FooterComponent>{unstable_sheetFooter()}</FooterComponent>
478
+ )}
399
479
  </HeaderHeightContext.Provider>
400
480
  </AnimatedHeaderHeightContext.Provider>
401
481
  </Screen>
@@ -412,11 +492,24 @@ function NativeStackViewInner({
412
492
  state,
413
493
  navigation,
414
494
  descriptors,
415
- }: Props): JSX.Element {
495
+ // amznmod_react - add support for react 19
496
+ }: Props): React.JSX.Element {
416
497
  const { key, routes } = state;
417
498
 
499
+ const currentRouteKey = routes[state.index].key;
500
+ const { goBackGesture, transitionAnimation, screenEdgeGesture } =
501
+ descriptors[currentRouteKey].options;
502
+
503
+ const screensRefs = React.useRef<ScreensRefsHolder>({});
504
+
418
505
  return (
419
- <ScreenStack style={styles.container}>
506
+ <ScreenStack
507
+ style={styles.container}
508
+ goBackGesture={goBackGesture}
509
+ transitionAnimation={transitionAnimation}
510
+ screenEdgeGesture={screenEdgeGesture ?? false}
511
+ screensRefs={screensRefs}
512
+ currentScreenId={currentRouteKey}>
420
513
  {routes.map((route, index) => (
421
514
  <RouteView
422
515
  key={route.key}
@@ -425,6 +518,7 @@ function NativeStackViewInner({
425
518
  index={index}
426
519
  navigation={navigation}
427
520
  stateKey={key}
521
+ screensRefs={screensRefs}
428
522
  />
429
523
  ))}
430
524
  </ScreenStack>
@@ -439,28 +533,21 @@ export default function NativeStackView(props: Props) {
439
533
  );
440
534
  }
441
535
 
442
- function getStatusBarHeight(
443
- topInset: number,
444
- dimensions: Rect,
445
- isStatusBarTranslucent: boolean
446
- ) {
447
- if (Platform.OS === 'ios') {
448
- // It looks like some iOS devices don't have strictly set status bar height to 44.
449
- // Thus, if the top inset is higher than 50, then the device should have a dynamic island.
450
- // On models with Dynamic Island the status bar height is smaller than the safe area top inset by 5 pixels.
451
- // See https://developer.apple.com/forums/thread/662466 for more details about status bar height.
452
- const hasDynamicIsland = topInset > 50;
453
- return hasDynamicIsland ? topInset - 5 : topInset;
454
- } else if (Platform.OS === 'android') {
455
- // On Android we should also rely on frame's y-axis position, as topInset is 0 on visible status bar.
456
- return isStatusBarTranslucent ? topInset : dimensions.y;
457
- }
458
-
459
- return topInset;
460
- }
461
-
462
536
  const styles = StyleSheet.create({
463
537
  container: {
464
538
  flex: 1,
465
539
  },
540
+ absoluteFill: {
541
+ position: 'absolute',
542
+ top: 0,
543
+ left: 0,
544
+ right: 0,
545
+ bottom: 0,
546
+ },
547
+ absoluteFillNoBottom: {
548
+ position: 'absolute',
549
+ top: 0,
550
+ left: 0,
551
+ right: 0,
552
+ },
466
553
  });
@@ -3,5 +3,5 @@ import * as React from 'react';
3
3
  import Animated from 'react-native-reanimated';
4
4
 
5
5
  export default React.createContext<Animated.SharedValue<number> | undefined>(
6
- undefined
6
+ undefined,
7
7
  );
@@ -13,12 +13,12 @@
13
13
 
14
14
  import React from 'react';
15
15
  import { Platform } from 'react-native';
16
+ import { InnerScreen } from '../components/Screen';
16
17
  import {
17
18
  HeaderHeightChangeEventType,
18
- InnerScreen,
19
19
  ScreenProps,
20
20
  TransitionProgressEventType,
21
- } from '@amazon-devices/react-native-screens';
21
+ } from '../types';
22
22
 
23
23
  // @ts-ignore file to be used only if `react-native-reanimated` available in the project
24
24
  import Animated, { useEvent, useSharedValue } from 'react-native-reanimated';
@@ -29,10 +29,11 @@ import {
29
29
  // amznmod_react - change imports to kepler packages
30
30
  } from '@amazon-devices/react-native-safe-area-context';
31
31
  import getDefaultHeaderHeight from '../native-stack/utils/getDefaultHeaderHeight';
32
+ import getStatusBarHeight from '../native-stack/utils/getStatusBarHeight';
32
33
  import ReanimatedHeaderHeightContext from './ReanimatedHeaderHeightContext';
33
34
 
34
35
  const AnimatedScreen = Animated.createAnimatedComponent(
35
- InnerScreen as unknown as React.ComponentClass
36
+ InnerScreen as unknown as React.ComponentClass,
36
37
  );
37
38
 
38
39
  // We use prop added to global by reanimated since it seems safer than the one from RN. See:
@@ -45,23 +46,24 @@ const ReanimatedNativeStackScreen = React.forwardRef<
45
46
  ScreenProps
46
47
  >((props, ref) => {
47
48
  const { children, ...rest } = props;
48
- const { stackPresentation = 'push' } = rest;
49
+ const { stackPresentation = 'push', hasLargeHeader } = rest;
49
50
 
50
51
  const dimensions = useSafeAreaFrame();
51
52
  const topInset = useSafeAreaInsets().top;
52
- let statusBarHeight = topInset;
53
- const hasDynamicIsland = Platform.OS === 'ios' && topInset === 59;
54
- if (hasDynamicIsland) {
55
- // On models with Dynamic Island the status bar height is smaller than the safe area top inset.
56
- statusBarHeight = 54;
57
- }
53
+ const isStatusBarTranslucent = rest.statusBarTranslucent ?? false;
54
+ const statusBarHeight = getStatusBarHeight(
55
+ topInset,
56
+ dimensions,
57
+ isStatusBarTranslucent,
58
+ );
58
59
 
59
60
  // Default header height, normally used in `useHeaderHeight` hook.
60
61
  // Here, it is used for returning a default value for shared value.
61
62
  const defaultHeaderHeight = getDefaultHeaderHeight(
62
63
  dimensions,
63
64
  statusBarHeight,
64
- stackPresentation
65
+ stackPresentation,
66
+ hasLargeHeader,
65
67
  );
66
68
 
67
69
  const cachedHeaderHeight = React.useRef(defaultHeaderHeight);
@@ -91,7 +93,7 @@ const ReanimatedNativeStackScreen = React.forwardRef<
91
93
  ENABLE_FABRIC
92
94
  ? 'onTransitionProgress'
93
95
  : 'topTransitionProgress',
94
- ]
96
+ ],
95
97
  )}
96
98
  onHeaderHeightChangeReanimated={useEvent(
97
99
  (event: HeaderHeightChangeEventType) => {
@@ -108,7 +110,7 @@ const ReanimatedNativeStackScreen = React.forwardRef<
108
110
  : ENABLE_FABRIC
109
111
  ? 'onHeaderHeightChange'
110
112
  : 'topHeaderHeightChange',
111
- ]
113
+ ],
112
114
  )}
113
115
  {...rest}>
114
116
  <ReanimatedHeaderHeightContext.Provider value={headerHeight}>
@@ -1,11 +1,12 @@
1
1
  import React from 'react';
2
- import { InnerScreen, ScreenProps } from '@amazon-devices/react-native-screens';
2
+ import { InnerScreen } from '../components/Screen';
3
+ import { ScreenProps } from '../types';
3
4
 
4
5
  // @ts-ignore file to be used only if `react-native-reanimated` available in the project
5
6
  import Animated from 'react-native-reanimated';
6
7
 
7
8
  const AnimatedScreen = Animated.createAnimatedComponent(
8
- InnerScreen as unknown as React.ComponentClass
9
+ InnerScreen as unknown as React.ComponentClass,
9
10
  );
10
11
 
11
12
  const ReanimatedScreen = React.forwardRef<typeof AnimatedScreen, ScreenProps>(
@@ -17,7 +18,7 @@ const ReanimatedScreen = React.forwardRef<typeof AnimatedScreen, ScreenProps>(
17
18
  {...props}
18
19
  />
19
20
  );
20
- }
21
+ },
21
22
  );
22
23
 
23
24
  ReanimatedScreen.displayName = 'ReanimatedScreen';
@@ -1,6 +1,7 @@
1
1
  import React, { PropsWithChildren } from 'react';
2
2
  import { View } from 'react-native';
3
- import { ScreenProps, ScreenContext } from '@amazon-devices/react-native-screens';
3
+ import { ScreenContext } from '../components/Screen';
4
+ import { ScreenProps } from '../types';
4
5
  import ReanimatedNativeStackScreen from './ReanimatedNativeStackScreen';
5
6
  import AnimatedScreen from './ReanimatedScreen';
6
7
 
@@ -31,7 +32,7 @@ class ReanimatedScreenWrapper extends React.Component<ScreenProps> {
31
32
  }
32
33
 
33
34
  export default function ReanimatedScreenProvider(
34
- props: PropsWithChildren<unknown>
35
+ props: PropsWithChildren<unknown>,
35
36
  ) {
36
37
  return (
37
38
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -1,12 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import ReanimatedHeaderHeightContext from './ReanimatedHeaderHeightContext';
3
3
 
4
- export default function useReanimatedTransitionProgress() {
4
+ export default function useReanimatedHeaderHeight() {
5
5
  const height = React.useContext(ReanimatedHeaderHeightContext);
6
6
 
7
7
  if (height === undefined) {
8
8
  throw new Error(
9
- "Couldn't find the header height using Reanimated. Are you inside a screen in a navigator with a header and your NavigationContainer is wrapped in ReanimatedScreenProvider?"
9
+ "Couldn't find the header height using Reanimated. Are you inside a screen in a navigator with a header and your NavigationContainer is wrapped in ReanimatedScreenProvider?",
10
10
  );
11
11
  }
12
12
 
@@ -6,7 +6,7 @@ export default function useReanimatedTransitionProgress() {
6
6
 
7
7
  if (progress === undefined) {
8
8
  throw new Error(
9
- "Couldn't find values for reanimated transition progress. Are you inside a screen in Native Stack?"
9
+ "Couldn't find values for reanimated transition progress. Are you inside a screen in Native Stack?",
10
10
  );
11
11
  }
12
12