@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
@@ -0,0 +1,127 @@
1
+ 'use client';
2
+
3
+ import React from 'react';
4
+ import {
5
+ HeaderSubviewTypes,
6
+ ScreenStackHeaderConfigProps,
7
+ SearchBarProps,
8
+ } from '../types';
9
+ import {
10
+ Image,
11
+ ImageProps,
12
+ Platform,
13
+ StyleSheet,
14
+ View,
15
+ ViewProps,
16
+ } from 'react-native';
17
+
18
+ // Native components
19
+ import ScreenStackHeaderConfigNativeComponent from '../fabric/ScreenStackHeaderConfigNativeComponent';
20
+ import ScreenStackHeaderSubviewNativeComponent from '../fabric/ScreenStackHeaderSubviewNativeComponent';
21
+
22
+ export const ScreenStackHeaderSubview: React.ComponentType<
23
+ React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>
24
+ > = ScreenStackHeaderSubviewNativeComponent as any;
25
+
26
+ export const ScreenStackHeaderConfig = React.forwardRef<
27
+ View,
28
+ ScreenStackHeaderConfigProps
29
+ >((props, ref) => (
30
+ <ScreenStackHeaderConfigNativeComponent
31
+ {...props}
32
+ ref={ref}
33
+ style={styles.headerConfig}
34
+ pointerEvents="box-none"
35
+ />
36
+ ));
37
+
38
+ ScreenStackHeaderConfig.displayName = 'ScreenStackHeaderConfig';
39
+
40
+ export const ScreenStackHeaderBackButtonImage = (
41
+ props: ImageProps,
42
+ // amznmod_react - add support for react 19
43
+ ): React.JSX.Element => (
44
+ <ScreenStackHeaderSubview type="back" style={styles.headerSubview}>
45
+ <Image resizeMode="center" fadeDuration={0} {...props} />
46
+ </ScreenStackHeaderSubview>
47
+ );
48
+
49
+ export const ScreenStackHeaderRightView = (
50
+ props: React.PropsWithChildren<ViewProps>,
51
+ // amznmod_react - add support for react 19
52
+ ): React.JSX.Element => {
53
+ const { style, ...rest } = props;
54
+
55
+ return (
56
+ <ScreenStackHeaderSubview
57
+ {...rest}
58
+ type="right"
59
+ style={[styles.headerSubview, style]}
60
+ />
61
+ );
62
+ };
63
+
64
+ export const ScreenStackHeaderLeftView = (
65
+ props: React.PropsWithChildren<ViewProps>,
66
+ // amznmod_react - add support for react 19
67
+ ): React.JSX.Element => {
68
+ const { style, ...rest } = props;
69
+
70
+ return (
71
+ <ScreenStackHeaderSubview
72
+ {...rest}
73
+ type="left"
74
+ style={[styles.headerSubview, style]}
75
+ />
76
+ );
77
+ };
78
+
79
+ export const ScreenStackHeaderCenterView = (
80
+ props: React.PropsWithChildren<ViewProps>,
81
+ // amznmod_react - add support for react 19
82
+ ): React.JSX.Element => {
83
+ const { style, ...rest } = props;
84
+
85
+ return (
86
+ <ScreenStackHeaderSubview
87
+ {...rest}
88
+ type="center"
89
+ style={[styles.headerSubviewCenter, style]}
90
+ />
91
+ );
92
+ };
93
+
94
+ export const ScreenStackHeaderSearchBarView = (
95
+ props: React.PropsWithChildren<SearchBarProps>,
96
+ // amznmod_react - add support for react 19
97
+ ): React.JSX.Element => (
98
+ <ScreenStackHeaderSubview
99
+ {...props}
100
+ type="searchBar"
101
+ style={styles.headerSubview}
102
+ />
103
+ );
104
+
105
+ const styles = StyleSheet.create({
106
+ headerSubview: {
107
+ flexDirection: 'row',
108
+ alignItems: 'center',
109
+ justifyContent: 'center',
110
+ },
111
+ headerSubviewCenter: {
112
+ flexDirection: 'row',
113
+ alignItems: 'center',
114
+ justifyContent: 'center',
115
+ flexShrink: 1,
116
+ },
117
+ headerConfig: {
118
+ position: 'absolute',
119
+ top: '-100%',
120
+ width: '100%',
121
+ flexDirection: 'row',
122
+ justifyContent: 'space-between',
123
+ // We only want to center align the subviews on iOS.
124
+ // See https://github.com/software-mansion/react-native-screens/pull/2456
125
+ alignItems: Platform.OS === 'ios' ? 'center' : undefined,
126
+ },
127
+ });
@@ -0,0 +1,45 @@
1
+ import { Image, ImageProps, View, ViewProps } from 'react-native';
2
+ import React from 'react';
3
+ import {
4
+ HeaderSubviewTypes,
5
+ ScreenStackHeaderConfigProps,
6
+ SearchBarProps,
7
+ } from '../types';
8
+
9
+ export const ScreenStackHeaderBackButtonImage = (
10
+ props: ImageProps,
11
+ // amznmod_react - add support for react 19
12
+ ): React.JSX.Element => (
13
+ <View>
14
+ <Image resizeMode="center" fadeDuration={0} {...props} />
15
+ </View>
16
+ );
17
+
18
+ export const ScreenStackHeaderRightView = (
19
+ props: React.PropsWithChildren<ViewProps>,
20
+ // amznmod_react - add support for react 19
21
+ ): React.JSX.Element => <View {...props} />;
22
+
23
+ export const ScreenStackHeaderLeftView = (
24
+ props: React.PropsWithChildren<ViewProps>,
25
+ // amznmod_react - add support for react 19
26
+ ): React.JSX.Element => <View {...props} />;
27
+
28
+ export const ScreenStackHeaderCenterView = (
29
+ props: React.PropsWithChildren<ViewProps>,
30
+ // amznmod_react - add support for react 19
31
+ ): React.JSX.Element => <View {...props} />;
32
+
33
+ export const ScreenStackHeaderSearchBarView = (
34
+ props: React.PropsWithChildren<Omit<SearchBarProps, 'ref'>>,
35
+ // amznmod_react - add support for react 19
36
+ ): React.JSX.Element => <View {...props} />;
37
+
38
+ export const ScreenStackHeaderConfig = (
39
+ props: React.PropsWithChildren<ScreenStackHeaderConfigProps>,
40
+ // amznmod_react - add support for react 19
41
+ ): React.JSX.Element => <View {...props} />;
42
+
43
+ export const ScreenStackHeaderSubview: React.ComponentType<
44
+ React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>
45
+ > = View;
@@ -0,0 +1,174 @@
1
+ import * as React from 'react';
2
+ import {
3
+ Platform,
4
+ type StyleProp,
5
+ StyleSheet,
6
+ type ViewStyle,
7
+ View,
8
+ } from 'react-native';
9
+ import warnOnce from 'warn-once';
10
+
11
+ import DebugContainer from './DebugContainer';
12
+ import { ScreenProps, ScreenStackHeaderConfigProps } from '../types';
13
+ import { ScreenStackHeaderConfig } from './ScreenStackHeaderConfig';
14
+ import Screen from './Screen';
15
+ import ScreenStack from './ScreenStack';
16
+ import { RNSScreensRefContext } from '../contexts';
17
+ import { FooterComponent } from './ScreenFooter';
18
+
19
+ type Props = Omit<
20
+ ScreenProps,
21
+ 'enabled' | 'isNativeStack' | 'hasLargeHeader'
22
+ > & {
23
+ screenId: string;
24
+ headerConfig?: ScreenStackHeaderConfigProps;
25
+ contentStyle?: StyleProp<ViewStyle>;
26
+ };
27
+
28
+ function ScreenStackItem(
29
+ {
30
+ children,
31
+ headerConfig,
32
+ activityState,
33
+ shouldFreeze,
34
+ stackPresentation,
35
+ contentStyle,
36
+ style,
37
+ screenId,
38
+ // eslint-disable-next-line camelcase
39
+ unstable_sheetFooter,
40
+ ...rest
41
+ }: Props,
42
+ ref: React.ForwardedRef<View>,
43
+ ) {
44
+ const currentScreenRef = React.useRef<View | null>(null);
45
+ const screenRefs = React.useContext(RNSScreensRefContext);
46
+
47
+ React.useImperativeHandle(ref, () => currentScreenRef.current!);
48
+
49
+ const isHeaderInModal =
50
+ // amznmod_react - return false for Modal on kepler because native component is not implemented yet
51
+ // @ts-ignore
52
+ Platform.OS === 'android' || Platform.OS === 'kepler'
53
+ ? false
54
+ : stackPresentation !== 'push' && headerConfig?.hidden === false;
55
+
56
+ const headerHiddenPreviousRef = React.useRef(headerConfig?.hidden);
57
+
58
+ React.useEffect(() => {
59
+ warnOnce(
60
+ Platform.OS !== 'android' &&
61
+ stackPresentation !== 'push' &&
62
+ headerHiddenPreviousRef.current !== headerConfig?.hidden,
63
+ `Dynamically changing header's visibility in modals will result in remounting the screen and losing all local state.`,
64
+ );
65
+
66
+ headerHiddenPreviousRef.current = headerConfig?.hidden;
67
+ }, [headerConfig?.hidden, stackPresentation]);
68
+
69
+ const content = (
70
+ <>
71
+ <DebugContainer
72
+ style={[
73
+ stackPresentation === 'formSheet'
74
+ ? Platform.OS === 'ios'
75
+ ? styles.absolute
76
+ : null
77
+ : styles.container,
78
+ contentStyle,
79
+ ]}
80
+ stackPresentation={stackPresentation ?? 'push'}>
81
+ {children}
82
+ </DebugContainer>
83
+ {/**
84
+ * `HeaderConfig` needs to be the direct child of `Screen` without any intermediate `View`
85
+ * We don't render it conditionally based on visibility to make it possible to dynamically render a custom `header`
86
+ * Otherwise dynamically rendering a custom `header` leaves the native header visible
87
+ *
88
+ * https://github.com/software-mansion/react-native-screens/blob/main/guides/GUIDE_FOR_LIBRARY_AUTHORS.md#screenstackheaderconfig
89
+ *
90
+ * HeaderConfig must not be first child of a Screen.
91
+ * See https://github.com/software-mansion/react-native-screens/pull/1825
92
+ * for detailed explanation.
93
+ */}
94
+ <ScreenStackHeaderConfig {...headerConfig} />
95
+ {/* eslint-disable-next-line camelcase */}
96
+ {stackPresentation === 'formSheet' && unstable_sheetFooter && (
97
+ <FooterComponent>{unstable_sheetFooter()}</FooterComponent>
98
+ )}
99
+ </>
100
+ );
101
+
102
+ // We take backgroundColor from contentStyle and apply it on Screen.
103
+ // This allows to workaround one issue with truncated
104
+ // content with formSheet presentation.
105
+ let internalScreenStyle;
106
+
107
+ if (stackPresentation === 'formSheet' && contentStyle) {
108
+ const flattenContentStyles = StyleSheet.flatten(contentStyle);
109
+ internalScreenStyle = {
110
+ backgroundColor: flattenContentStyles?.backgroundColor,
111
+ };
112
+ }
113
+
114
+ return (
115
+ <Screen
116
+ ref={node => {
117
+ currentScreenRef.current = node;
118
+
119
+ if (screenRefs === null) {
120
+ console.warn(
121
+ 'Looks like RNSScreensRefContext is missing. Make sure the ScreenStack component is wrapped in it',
122
+ );
123
+ return;
124
+ }
125
+
126
+ const currentRefs = screenRefs.current;
127
+
128
+ if (node === null) {
129
+ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
130
+ delete currentRefs[screenId];
131
+ } else {
132
+ currentRefs[screenId] = { current: node };
133
+ }
134
+ }}
135
+ enabled
136
+ isNativeStack
137
+ activityState={activityState}
138
+ shouldFreeze={shouldFreeze}
139
+ stackPresentation={stackPresentation}
140
+ hasLargeHeader={headerConfig?.largeTitle ?? false}
141
+ style={[style, internalScreenStyle]}
142
+ {...rest}>
143
+ {isHeaderInModal ? (
144
+ <ScreenStack style={styles.container}>
145
+ <Screen
146
+ enabled
147
+ isNativeStack
148
+ activityState={activityState}
149
+ shouldFreeze={shouldFreeze}
150
+ hasLargeHeader={headerConfig?.largeTitle ?? false}
151
+ style={StyleSheet.absoluteFill}>
152
+ {content}
153
+ </Screen>
154
+ </ScreenStack>
155
+ ) : (
156
+ content
157
+ )}
158
+ </Screen>
159
+ );
160
+ }
161
+
162
+ export default React.forwardRef(ScreenStackItem);
163
+
164
+ const styles = StyleSheet.create({
165
+ container: {
166
+ flex: 1,
167
+ },
168
+ absolute: {
169
+ position: 'absolute',
170
+ top: 0,
171
+ start: 0,
172
+ end: 0,
173
+ },
174
+ });
@@ -0,0 +1,105 @@
1
+ 'use client';
2
+
3
+ import React from 'react';
4
+ import { SearchBarCommands, SearchBarProps } from '../types';
5
+ import { isSearchBarAvailableForCurrentPlatform } from '../utils';
6
+ import { View } from 'react-native';
7
+
8
+ // Native components
9
+ import SearchBarNativeComponent, {
10
+ Commands as SearchBarNativeCommands,
11
+ NativeProps as SearchBarNativeProps,
12
+ SearchBarEvent,
13
+ SearchButtonPressedEvent,
14
+ ChangeTextEvent,
15
+ } from '../fabric/SearchBarNativeComponent';
16
+ import { DirectEventHandler } from 'react-native/Libraries/Types/CodegenTypes';
17
+
18
+ // amznmod_react - add support for react 19
19
+ const NativeSearchBar: React.ComponentType<
20
+ SearchBarNativeProps & { ref?: React.RefObject<SearchBarCommands | null> | null }
21
+ > &
22
+ typeof NativeSearchBarCommands =
23
+ SearchBarNativeComponent as unknown as React.ComponentType<SearchBarNativeProps> &
24
+ SearchBarCommandsType;
25
+ const NativeSearchBarCommands: SearchBarCommandsType =
26
+ SearchBarNativeCommands as SearchBarCommandsType;
27
+
28
+ // amznmod_react - add support for react 19
29
+ type NativeSearchBarRef = React.ComponentRef<typeof NativeSearchBar>;
30
+
31
+ type SearchBarCommandsType = {
32
+ blur: (viewRef: NativeSearchBarRef) => void;
33
+ focus: (viewRef: NativeSearchBarRef) => void;
34
+ clearText: (viewRef: NativeSearchBarRef) => void;
35
+ toggleCancelButton: (viewRef: NativeSearchBarRef, flag: boolean) => void;
36
+ setText: (viewRef: NativeSearchBarRef, text: string) => void;
37
+ cancelSearch: (viewRef: NativeSearchBarRef) => void;
38
+ };
39
+
40
+ function SearchBar(props: SearchBarProps, ref: React.Ref<SearchBarCommands>) {
41
+ // amznmod_react - add support for react 19
42
+ const searchBarRef = React.useRef<SearchBarCommands>(null);
43
+
44
+ React.useImperativeHandle(ref, () => ({
45
+ blur: () => {
46
+ _callMethodWithRef(ref => NativeSearchBarCommands.blur(ref));
47
+ },
48
+ focus: () => {
49
+ _callMethodWithRef(ref => NativeSearchBarCommands.focus(ref));
50
+ },
51
+ toggleCancelButton: (flag: boolean) => {
52
+ _callMethodWithRef(ref =>
53
+ NativeSearchBarCommands.toggleCancelButton(ref, flag),
54
+ );
55
+ },
56
+ clearText: () => {
57
+ _callMethodWithRef(ref => NativeSearchBarCommands.clearText(ref));
58
+ },
59
+ setText: (text: string) => {
60
+ _callMethodWithRef(ref => NativeSearchBarCommands.setText(ref, text));
61
+ },
62
+ cancelSearch: () => {
63
+ _callMethodWithRef(ref => NativeSearchBarCommands.cancelSearch(ref));
64
+ },
65
+ }));
66
+
67
+ const _callMethodWithRef = React.useCallback(
68
+ (method: (ref: SearchBarCommands) => void) => {
69
+ const ref = searchBarRef.current;
70
+ if (ref) {
71
+ method(ref);
72
+ } else {
73
+ console.warn(
74
+ 'Reference to native search bar component has not been updated yet',
75
+ );
76
+ }
77
+ },
78
+ [searchBarRef],
79
+ );
80
+
81
+ if (!isSearchBarAvailableForCurrentPlatform) {
82
+ console.warn(
83
+ 'Importing SearchBar is only valid on iOS and Android devices.',
84
+ );
85
+ return View as unknown as React.ReactNode;
86
+ }
87
+
88
+ return (
89
+ <NativeSearchBar
90
+ ref={searchBarRef}
91
+ {...props}
92
+ onSearchFocus={props.onFocus as DirectEventHandler<SearchBarEvent>}
93
+ onSearchBlur={props.onBlur as DirectEventHandler<SearchBarEvent>}
94
+ onSearchButtonPress={
95
+ props.onSearchButtonPress as DirectEventHandler<SearchButtonPressedEvent>
96
+ }
97
+ onCancelButtonPress={
98
+ props.onCancelButtonPress as DirectEventHandler<SearchBarEvent>
99
+ }
100
+ onChangeText={props.onChangeText as DirectEventHandler<ChangeTextEvent>}
101
+ />
102
+ );
103
+ }
104
+
105
+ export default React.forwardRef<SearchBarCommands, SearchBarProps>(SearchBar);
@@ -0,0 +1,5 @@
1
+ import { View } from 'react-native';
2
+
3
+ const SearchBar = View;
4
+
5
+ export default SearchBar;
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import { Freeze } from 'react-freeze';
3
+
4
+ interface FreezeWrapperProps {
5
+ freeze: boolean;
6
+ children: React.ReactNode;
7
+ }
8
+
9
+ // This component allows one more render before freezing the screen.
10
+ // Allows activityState to reach the native side and useIsFocused to work correctly.
11
+ function DelayedFreeze({ freeze, children }: FreezeWrapperProps) {
12
+ // flag used for determining whether freeze should be enabled
13
+ const [freezeState, setFreezeState] = React.useState(false);
14
+
15
+ React.useEffect(() => {
16
+ const id = setImmediate(() => {
17
+ setFreezeState(freeze);
18
+ });
19
+ return () => {
20
+ clearImmediate(id);
21
+ };
22
+ }, [freeze]);
23
+
24
+ return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;
25
+ }
26
+
27
+ export default DelayedFreeze;
@@ -0,0 +1,12 @@
1
+ import { useEffect, useRef } from 'react';
2
+
3
+ export function usePrevious<T>(state: T): T | undefined {
4
+ // amznmod_react - add support for react 19
5
+ const ref = useRef<T>(undefined);
6
+
7
+ useEffect(() => {
8
+ ref.current = state;
9
+ });
10
+
11
+ return ref.current;
12
+ }
@@ -0,0 +1,9 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ import { GestureProviderProps, ScreensRefsHolder } from './types';
3
+
4
+ export const GHContext = React.createContext(
5
+ (props: PropsWithChildren<GestureProviderProps>) => <>{props.children}</>,
6
+ );
7
+
8
+ export const RNSScreensRefContext =
9
+ React.createContext<React.MutableRefObject<ScreensRefsHolder> | null>(null);
package/src/core.ts ADDED
@@ -0,0 +1,45 @@
1
+ 'use client';
2
+
3
+ import { Platform, UIManager } from 'react-native';
4
+
5
+ export const isNativePlatformSupported =
6
+ Platform.OS === 'ios' ||
7
+ Platform.OS === 'android' ||
8
+ Platform.OS === 'windows'||
9
+ // amznmod_react - add Kepler support
10
+ // @ts-ignore
11
+ Platform.OS === 'kepler';
12
+
13
+ let ENABLE_SCREENS = isNativePlatformSupported;
14
+
15
+ export function enableScreens(shouldEnableScreens = true) {
16
+ ENABLE_SCREENS = shouldEnableScreens;
17
+
18
+ if (!isNativePlatformSupported) {
19
+ return;
20
+ }
21
+
22
+ if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {
23
+ console.error(
24
+ `Screen native module hasn't been linked. Please check the react-native-screens README for more details`,
25
+ );
26
+ }
27
+ }
28
+
29
+ let ENABLE_FREEZE = false;
30
+
31
+ export function enableFreeze(shouldEnableReactFreeze = true) {
32
+ if (!isNativePlatformSupported) {
33
+ return;
34
+ }
35
+
36
+ ENABLE_FREEZE = shouldEnableReactFreeze;
37
+ }
38
+
39
+ export function screensEnabled() {
40
+ return ENABLE_SCREENS;
41
+ }
42
+
43
+ export function freezeEnabled() {
44
+ return ENABLE_FREEZE;
45
+ }
@@ -1,3 +1,19 @@
1
+ 'use client';
2
+ /*
3
+ * Portions of this file are copyright (c) 2025 Amazon.com, Inc. or its affiliates. All rights reserved.
4
+ *
5
+ * PORTIONS OF THIS FILE ARE AMAZON PROPRIETARY/CONFIDENTIAL. USE IS SUBJECT TO LICENSE TERMS.
6
+ *
7
+ * Amazon modifications are indicated by [amznmod_* comments].
8
+ */
9
+
10
+ /*
11
+ * Changelog:
12
+ * Set up react-native-screens package to build for Kepler
13
+ */
14
+
15
+
16
+ // amznmod_react - register component on Kepler
1
17
  // @ts-ignore
2
18
  import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
3
19
  import type { ViewProps } from 'react-native';
@@ -0,0 +1,115 @@
1
+ 'use client';
2
+
3
+ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
4
+ import type { ViewProps, ColorValue } from 'react-native';
5
+ import type {
6
+ DirectEventHandler,
7
+ WithDefault,
8
+ Int32,
9
+ Float,
10
+ Double,
11
+ } from 'react-native/Libraries/Types/CodegenTypes';
12
+
13
+ // eslint-disable-next-line @typescript-eslint/ban-types
14
+ type ScreenEvent = Readonly<{}>;
15
+
16
+ type ScreenDismissedEvent = Readonly<{
17
+ dismissCount: Int32;
18
+ }>;
19
+
20
+ type TransitionProgressEvent = Readonly<{
21
+ progress: Double;
22
+ closing: Int32;
23
+ goingForward: Int32;
24
+ }>;
25
+
26
+ type HeaderHeightChangeEvent = Readonly<{
27
+ headerHeight: Double;
28
+ }>;
29
+
30
+ type SheetDetentChangedEvent = Readonly<{
31
+ index: Int32;
32
+ isStable: boolean;
33
+ }>;
34
+
35
+ type GestureResponseDistanceType = Readonly<{
36
+ start: Float;
37
+ end: Float;
38
+ top: Float;
39
+ bottom: Float;
40
+ }>;
41
+
42
+ type StackPresentation =
43
+ | 'push'
44
+ | 'modal'
45
+ | 'transparentModal'
46
+ | 'fullScreenModal'
47
+ | 'formSheet'
48
+ | 'containedModal'
49
+ | 'containedTransparentModal';
50
+
51
+ type StackAnimation =
52
+ | 'default'
53
+ | 'flip'
54
+ | 'simple_push'
55
+ | 'none'
56
+ | 'fade'
57
+ | 'slide_from_right'
58
+ | 'slide_from_left'
59
+ | 'slide_from_bottom'
60
+ | 'fade_from_bottom'
61
+ | 'ios_from_right'
62
+ | 'ios_from_left';
63
+
64
+ type SwipeDirection = 'vertical' | 'horizontal';
65
+
66
+ type ReplaceAnimation = 'pop' | 'push';
67
+
68
+ export interface NativeProps extends ViewProps {
69
+ onAppear?: DirectEventHandler<ScreenEvent>;
70
+ onDisappear?: DirectEventHandler<ScreenEvent>;
71
+ onDismissed?: DirectEventHandler<ScreenDismissedEvent>;
72
+ onNativeDismissCancelled?: DirectEventHandler<ScreenDismissedEvent>;
73
+ onWillAppear?: DirectEventHandler<ScreenEvent>;
74
+ onWillDisappear?: DirectEventHandler<ScreenEvent>;
75
+ onHeaderHeightChange?: DirectEventHandler<HeaderHeightChangeEvent>;
76
+ onTransitionProgress?: DirectEventHandler<TransitionProgressEvent>;
77
+ onGestureCancel?: DirectEventHandler<ScreenEvent>;
78
+ onHeaderBackButtonClicked?: DirectEventHandler<ScreenEvent>;
79
+ onSheetDetentChanged?: DirectEventHandler<SheetDetentChangedEvent>;
80
+ sheetAllowedDetents?: number[];
81
+ sheetLargestUndimmedDetent?: WithDefault<Int32, -1>;
82
+ sheetGrabberVisible?: WithDefault<boolean, false>;
83
+ sheetCornerRadius?: WithDefault<Float, -1.0>;
84
+ sheetExpandsWhenScrolledToEdge?: WithDefault<boolean, false>;
85
+ sheetInitialDetent?: WithDefault<Int32, 0>;
86
+ sheetElevation?: WithDefault<Int32, 24>;
87
+ customAnimationOnSwipe?: boolean;
88
+ fullScreenSwipeEnabled?: boolean;
89
+ fullScreenSwipeShadowEnabled?: WithDefault<boolean, true>;
90
+ homeIndicatorHidden?: boolean;
91
+ preventNativeDismiss?: boolean;
92
+ gestureEnabled?: WithDefault<boolean, true>;
93
+ statusBarColor?: ColorValue;
94
+ statusBarHidden?: boolean;
95
+ screenOrientation?: string;
96
+ statusBarAnimation?: string;
97
+ statusBarStyle?: string;
98
+ statusBarTranslucent?: boolean;
99
+ gestureResponseDistance?: GestureResponseDistanceType;
100
+ stackPresentation?: WithDefault<StackPresentation, 'push'>;
101
+ stackAnimation?: WithDefault<StackAnimation, 'default'>;
102
+ transitionDuration?: WithDefault<Int32, 500>;
103
+ replaceAnimation?: WithDefault<ReplaceAnimation, 'pop'>;
104
+ swipeDirection?: WithDefault<SwipeDirection, 'horizontal'>;
105
+ hideKeyboardOnSwipe?: boolean;
106
+ activityState?: WithDefault<Float, -1.0>;
107
+ navigationBarColor?: ColorValue;
108
+ navigationBarTranslucent?: boolean;
109
+ navigationBarHidden?: boolean;
110
+ nativeBackButtonDismissalEnabled?: boolean;
111
+ }
112
+
113
+ export default codegenNativeComponent<NativeProps>('RNSModalScreen', {
114
+ interfaceOnly: true,
115
+ });