@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
@@ -20,13 +20,6 @@ NS_ASSUME_NONNULL_BEGIN
20
20
 
21
21
  @property (nonatomic, weak) UIView *reactSuperview;
22
22
 
23
- @property (nonatomic, weak) RCTBridge *bridge;
24
-
25
- #ifdef RCT_NEW_ARCH_ENABLED
26
- #else
27
- - (instancetype)initWithBridge:(RCTBridge *)bridge;
28
- #endif // RCT_NEW_ARCH_ENABLED
29
-
30
23
  @end
31
24
 
32
25
  @interface RNSScreenStackHeaderSubviewManager : RCTViewManager
@@ -1,5 +1,7 @@
1
1
  #import "RNSScreenStackHeaderSubview.h"
2
2
  #import "RNSConvert.h"
3
+ #import "RNSDefines.h"
4
+ #import "RNSScreenStackHeaderConfig.h"
3
5
 
4
6
  #ifdef RCT_NEW_ARCH_ENABLED
5
7
  #import <react/renderer/components/rnscreens/ComponentDescriptors.h>
@@ -8,24 +10,65 @@
8
10
 
9
11
  #import <React/RCTConversions.h>
10
12
  #import <React/RCTFabricComponentsPlugins.h>
13
+
14
+ #import <rnscreens/RNSScreenStackHeaderSubviewComponentDescriptor.h>
11
15
  #endif // RCT_NEW_ARCH_ENABLED
12
16
 
13
17
  #ifdef RCT_NEW_ARCH_ENABLED
14
18
  namespace react = facebook::react;
15
19
  #endif // RCT_NEW_ARCH_ENABLED
16
20
 
17
- @interface RCTBridge (Private)
18
- + (RCTBridge *)currentBridge;
19
- @end
20
-
21
21
  @implementation RNSScreenStackHeaderSubview
22
22
 
23
23
  #pragma mark - Common
24
24
 
25
+ - (nullable RNSScreenStackHeaderConfig *)getHeaderConfig
26
+ {
27
+ RNSScreenStackHeaderConfig *headerConfig = (RNSScreenStackHeaderConfig *_Nullable)self.reactSuperview;
28
+ #ifndef NDEBUG
29
+ if (headerConfig != nil && ![headerConfig isKindOfClass:[RNSScreenStackHeaderConfig class]]) {
30
+ RCTLogError(@"[RNScreens] Invalid view type, expecting RNSScreenStackHeaderConfig, got: %@", headerConfig);
31
+ return nil;
32
+ }
33
+ #endif
34
+ return headerConfig;
35
+ }
36
+
37
+ // We're forcing the navigation controller's view to re-layout
38
+ // see: https://github.com/software-mansion/react-native-screens/pull/2385
39
+ - (void)layoutNavigationBar
40
+ {
41
+ // If we're not attached yet, we should not layout the navigation bar,
42
+ // because the layout flow won't reach us & we will clear "isLayoutDirty" flags
43
+ // on view above us, causing subsequent layout request to not reach us.
44
+ if (self.window == nil) {
45
+ return;
46
+ }
47
+
48
+ RNSScreenStackHeaderConfig *headerConfig = [self getHeaderConfig];
49
+ UINavigationController *navctr = headerConfig.screenView.reactViewController.navigationController;
50
+
51
+ UIView *toLayoutView = navctr.navigationBar;
52
+
53
+ // TODO: It is possible, that this needs to be called only on old architecture.
54
+ // Make sure that Test432 keeps working.
55
+ [toLayoutView setNeedsLayout];
56
+
57
+ // TODO: Determine why this must be called & deferring layout to next "update cycle"
58
+ // is not sufficient. See Test2552 and Test432. (Talking Paper here).
59
+ [toLayoutView layoutIfNeeded];
60
+ }
61
+
25
62
  #ifdef RCT_NEW_ARCH_ENABLED
26
63
 
27
64
  #pragma mark - Fabric specific
28
65
 
66
+ // Needed because of this: https://github.com/facebook/react-native/pull/37274
67
+ + (void)load
68
+ {
69
+ [super load];
70
+ }
71
+
29
72
  - (instancetype)initWithFrame:(CGRect)frame
30
73
  {
31
74
  if (self = [super initWithFrame:frame]) {
@@ -56,6 +99,8 @@ namespace react = facebook::react;
56
99
  return react::concreteComponentDescriptorProvider<react::RNSScreenStackHeaderSubviewComponentDescriptor>();
57
100
  }
58
101
 
102
+ RNS_IGNORE_SUPER_CALL_BEGIN
103
+ // System layouts the subviews.
59
104
  - (void)updateLayoutMetrics:(const react::LayoutMetrics &)layoutMetrics
60
105
  oldLayoutMetrics:(const react::LayoutMetrics &)oldLayoutMetrics
61
106
  {
@@ -72,37 +117,29 @@ namespace react = facebook::react;
72
117
  self);
73
118
  } else {
74
119
  self.bounds = CGRect{CGPointZero, frame.size};
120
+ [self layoutNavigationBar];
75
121
  }
76
122
  }
123
+ RNS_IGNORE_SUPER_CALL_BEGIN
77
124
 
78
- #else
79
- #pragma mark - Paper specific
80
-
81
- - (instancetype)initWithBridge:(RCTBridge *)bridge
125
+ + (BOOL)shouldBeRecycled
82
126
  {
83
- if (self = [super init]) {
84
- _bridge = bridge;
85
- }
86
- return self;
127
+ return NO;
87
128
  }
88
129
 
130
+ #else // RCT_NEW_ARCH_ENABLED
131
+ #pragma mark - Paper specific
132
+
89
133
  - (void)reactSetFrame:(CGRect)frame
90
134
  {
91
135
  // Block any attempt to set coordinates on RNSScreenStackHeaderSubview. This
92
136
  // makes UINavigationBar the only one to control the position of header content.
93
- [super reactSetFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
137
+ if (!CGSizeEqualToSize(frame.size, self.frame.size)) {
138
+ [super reactSetFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
139
+ [self layoutNavigationBar];
140
+ }
94
141
  }
95
-
96
- #endif // RCT_NEW_ARCH_ENABLED
97
-
98
- - (RCTBridge *)bridge
99
- {
100
- #ifdef RCT_NEW_ARCH_ENABLED
101
- return [RCTBridge currentBridge];
102
- #else
103
- return _bridge;
104
142
  #endif // RCT_NEW_ARCH_ENABLED
105
- }
106
143
 
107
144
  @end
108
145
 
@@ -116,7 +153,7 @@ RCT_EXPORT_VIEW_PROPERTY(type, RNSScreenStackHeaderSubviewType)
116
153
  #else
117
154
  - (UIView *)view
118
155
  {
119
- return [[RNSScreenStackHeaderSubview alloc] initWithBridge:self.bridge];
156
+ return [RNSScreenStackHeaderSubview new];
120
157
  }
121
158
  #endif
122
159
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  + (void)updateWindowTraits;
6
6
 
7
- #if !TARGET_OS_TV
7
+ #if !TARGET_OS_TV && !TARGET_OS_VISION
8
8
  + (void)assertViewControllerBasedStatusBarAppearenceSet;
9
9
  #endif
10
10
  + (void)updateStatusBarAppearance;
@@ -4,7 +4,7 @@
4
4
 
5
5
  @implementation RNSScreenWindowTraits
6
6
 
7
- #if !TARGET_OS_TV
7
+ #if !TARGET_OS_TV && !TARGET_OS_VISION
8
8
  + (void)assertViewControllerBasedStatusBarAppearenceSet
9
9
  {
10
10
  static dispatch_once_t once;
@@ -22,21 +22,10 @@
22
22
 
23
23
  + (void)updateStatusBarAppearance
24
24
  {
25
- #if !TARGET_OS_TV
25
+ #if !TARGET_OS_TV && !TARGET_OS_VISION
26
26
  [UIView animateWithDuration:0.4
27
27
  animations:^{ // duration based on "Programming iOS 13" p. 311 implementation
28
- #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
29
- __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
30
- if (@available(iOS 13, *)) {
31
- UIWindow *firstWindow = [[[UIApplication sharedApplication] windows] firstObject];
32
- if (firstWindow != nil) {
33
- [[firstWindow rootViewController] setNeedsStatusBarAppearanceUpdate];
34
- }
35
- } else
36
- #endif
37
- {
38
- [UIApplication.sharedApplication.keyWindow.rootViewController setNeedsStatusBarAppearanceUpdate];
39
- }
28
+ [RCTKeyWindow().rootViewController setNeedsStatusBarAppearanceUpdate];
40
29
  }];
41
30
  #endif
42
31
  }
@@ -44,21 +33,7 @@
44
33
  + (void)updateHomeIndicatorAutoHidden
45
34
  {
46
35
  #if !TARGET_OS_TV
47
-
48
- #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
49
- __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
50
- if (@available(iOS 13, *)) {
51
- UIWindow *firstWindow = [[[UIApplication sharedApplication] windows] firstObject];
52
- if (firstWindow != nil) {
53
- [[firstWindow rootViewController] setNeedsUpdateOfHomeIndicatorAutoHidden];
54
- }
55
- } else
56
- #endif
57
- {
58
- if (@available(iOS 11.0, *)) {
59
- [UIApplication.sharedApplication.keyWindow.rootViewController setNeedsUpdateOfHomeIndicatorAutoHidden];
60
- }
61
- }
36
+ [RCTKeyWindow().rootViewController setNeedsUpdateOfHomeIndicatorAutoHidden];
62
37
  #endif
63
38
  }
64
39
 
@@ -134,21 +109,10 @@
134
109
 
135
110
  + (void)enforceDesiredDeviceOrientation
136
111
  {
137
- #if !TARGET_OS_TV
112
+ #if !TARGET_OS_TV && !TARGET_OS_VISION
138
113
  dispatch_async(dispatch_get_main_queue(), ^{
139
- UIInterfaceOrientationMask orientationMask = UIInterfaceOrientationMaskAllButUpsideDown;
140
- #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
141
- __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
142
- if (@available(iOS 13, *)) {
143
- UIWindow *firstWindow = [[[UIApplication sharedApplication] windows] firstObject];
144
- if (firstWindow != nil) {
145
- orientationMask = [firstWindow rootViewController].supportedInterfaceOrientations;
146
- }
147
- } else
148
- #endif
149
- {
150
- orientationMask = UIApplication.sharedApplication.keyWindow.rootViewController.supportedInterfaceOrientations;
151
- }
114
+ UIInterfaceOrientationMask orientationMask = [RCTKeyWindow().rootViewController supportedInterfaceOrientations];
115
+
152
116
  UIInterfaceOrientation currentDeviceOrientation =
153
117
  [RNSScreenWindowTraits interfaceOrientationFromDeviceOrientation:[[UIDevice currentDevice] orientation]];
154
118
  UIInterfaceOrientation currentInterfaceOrientation = [RNSScreenWindowTraits interfaceOrientation];
@@ -178,7 +142,21 @@
178
142
  __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_16_0
179
143
  if (@available(iOS 16.0, *)) {
180
144
  NSArray *array = [[[UIApplication sharedApplication] connectedScenes] allObjects];
181
- UIWindowScene *scene = (UIWindowScene *)array[0];
145
+
146
+ // when an app supports multiple scenes (e.g. CarPlay), it is possible that
147
+ // UIWindowScene is not the first scene, or it may not be present at all
148
+ UIWindowScene *scene = nil;
149
+ for (id connectedScene in array) {
150
+ if ([connectedScene isKindOfClass:[UIWindowScene class]]) {
151
+ scene = connectedScene;
152
+ break;
153
+ }
154
+ }
155
+
156
+ if (scene == nil) {
157
+ return;
158
+ }
159
+
182
160
  UIWindowSceneGeometryPreferencesIOS *geometryPreferences =
183
161
  [[UIWindowSceneGeometryPreferencesIOS alloc] initWithInterfaceOrientations:orientationMask];
184
162
  [scene requestGeometryUpdateWithPreferences:geometryPreferences
@@ -211,7 +189,7 @@
211
189
  [RNSScreenWindowTraits updateHomeIndicatorAutoHidden];
212
190
  }
213
191
 
214
- #if !TARGET_OS_TV
192
+ #if !TARGET_OS_TV && !TARGET_OS_VISION
215
193
  // based on
216
194
  // https://stackoverflow.com/questions/57965701/statusbarorientation-was-deprecated-in-ios-13-0-when-attempting-to-get-app-ori/61249908#61249908
217
195
  + (UIInterfaceOrientation)interfaceOrientation
@@ -219,11 +197,7 @@
219
197
  #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
220
198
  __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
221
199
  if (@available(iOS 13.0, *)) {
222
- UIWindow *firstWindow = [[[UIApplication sharedApplication] windows] firstObject];
223
- if (firstWindow == nil) {
224
- return UIInterfaceOrientationUnknown;
225
- }
226
- UIWindowScene *windowScene = firstWindow.windowScene;
200
+ UIWindowScene *windowScene = RCTKeyWindow().windowScene;
227
201
  if (windowScene == nil) {
228
202
  return UIInterfaceOrientationUnknown;
229
203
  }
@@ -29,11 +29,11 @@
29
29
 
30
30
  #ifdef RCT_NEW_ARCH_ENABLED
31
31
  #else
32
- @property (nonatomic, copy) RCTBubblingEventBlock onChangeText;
33
- @property (nonatomic, copy) RCTBubblingEventBlock onCancelButtonPress;
34
- @property (nonatomic, copy) RCTBubblingEventBlock onSearchButtonPress;
35
- @property (nonatomic, copy) RCTBubblingEventBlock onFocus;
36
- @property (nonatomic, copy) RCTBubblingEventBlock onBlur;
32
+ @property (nonatomic, copy) RCTDirectEventBlock onChangeText;
33
+ @property (nonatomic, copy) RCTDirectEventBlock onCancelButtonPress;
34
+ @property (nonatomic, copy) RCTDirectEventBlock onSearchButtonPress;
35
+ @property (nonatomic, copy) RCTDirectEventBlock onSearchFocus;
36
+ @property (nonatomic, copy) RCTDirectEventBlock onSearchBlur;
37
37
  #endif
38
38
 
39
39
  @end
@@ -37,6 +37,13 @@ namespace react = facebook::react;
37
37
  }
38
38
 
39
39
  #ifdef RCT_NEW_ARCH_ENABLED
40
+
41
+ // Needed because of this: https://github.com/facebook/react-native/pull/37274
42
+ + (void)load
43
+ {
44
+ [super load];
45
+ }
46
+
40
47
  - (instancetype)init
41
48
  {
42
49
  if (self = [super init]) {
@@ -50,7 +57,13 @@ namespace react = facebook::react;
50
57
 
51
58
  - (void)initCommonProps
52
59
  {
60
+ #if !TARGET_OS_TV
53
61
  _controller = [[UISearchController alloc] initWithSearchResultsController:nil];
62
+ #else
63
+ // on TVOS UISearchController must contain searchResultsController.
64
+ _controller = [[UISearchController alloc] initWithSearchResultsController:[UIViewController new]];
65
+ #endif
66
+
54
67
  _controller.searchBar.delegate = self;
55
68
  _hideWhenScrolling = YES;
56
69
  _placement = RNSSearchBarPlacementStacked;
@@ -61,11 +74,11 @@ namespace react = facebook::react;
61
74
  #ifdef RCT_NEW_ARCH_ENABLED
62
75
  if (_eventEmitter != nullptr) {
63
76
  std::dynamic_pointer_cast<const react::RNSSearchBarEventEmitter>(_eventEmitter)
64
- ->onFocus(react::RNSSearchBarEventEmitter::OnFocus{});
77
+ ->onSearchFocus(react::RNSSearchBarEventEmitter::OnSearchFocus{});
65
78
  }
66
79
  #else
67
- if (self.onFocus) {
68
- self.onFocus(@{});
80
+ if (self.onSearchFocus) {
81
+ self.onSearchFocus(@{});
69
82
  }
70
83
  #endif
71
84
  }
@@ -75,11 +88,11 @@ namespace react = facebook::react;
75
88
  #ifdef RCT_NEW_ARCH_ENABLED
76
89
  if (_eventEmitter != nullptr) {
77
90
  std::dynamic_pointer_cast<const react::RNSSearchBarEventEmitter>(_eventEmitter)
78
- ->onBlur(react::RNSSearchBarEventEmitter::OnBlur{});
91
+ ->onSearchBlur(react::RNSSearchBarEventEmitter::OnSearchBlur{});
79
92
  }
80
93
  #else
81
- if (self.onBlur) {
82
- self.onBlur(@{});
94
+ if (self.onSearchBlur) {
95
+ self.onSearchBlur(@{});
83
96
  }
84
97
  #endif
85
98
  }
@@ -304,6 +317,14 @@ namespace react = facebook::react;
304
317
  [_controller.searchBar setText:text];
305
318
  }
306
319
 
320
+ - (void)cancelSearch
321
+ {
322
+ #if !TARGET_OS_TV
323
+ [self searchBarCancelButtonClicked:_controller.searchBar];
324
+ _controller.active = NO;
325
+ #endif
326
+ }
327
+
307
328
  #pragma mark-- Fabric specific
308
329
 
309
330
  #ifdef RCT_NEW_ARCH_ENABLED
@@ -330,9 +351,11 @@ namespace react = facebook::react;
330
351
  [self setPlaceholder:RCTNSStringFromStringNilIfEmpty(newScreenProps.placeholder)];
331
352
  }
332
353
 
354
+ #if !TARGET_OS_VISION
333
355
  if (oldScreenProps.autoCapitalize != newScreenProps.autoCapitalize) {
334
356
  [self setAutoCapitalize:[RNSConvert UITextAutocapitalizationTypeFromCppEquivalent:newScreenProps.autoCapitalize]];
335
357
  }
358
+ #endif
336
359
 
337
360
  if (oldScreenProps.tintColor != newScreenProps.tintColor) {
338
361
  [self setTintColor:RCTUIColorFromSharedColor(newScreenProps.tintColor)];
@@ -398,11 +421,11 @@ RCT_EXPORT_VIEW_PROPERTY(textColor, UIColor)
398
421
  RCT_EXPORT_VIEW_PROPERTY(cancelButtonText, NSString)
399
422
  RCT_EXPORT_VIEW_PROPERTY(placement, RNSSearchBarPlacement)
400
423
 
401
- RCT_EXPORT_VIEW_PROPERTY(onChangeText, RCTBubblingEventBlock)
402
- RCT_EXPORT_VIEW_PROPERTY(onCancelButtonPress, RCTBubblingEventBlock)
403
- RCT_EXPORT_VIEW_PROPERTY(onSearchButtonPress, RCTBubblingEventBlock)
404
- RCT_EXPORT_VIEW_PROPERTY(onFocus, RCTBubblingEventBlock)
405
- RCT_EXPORT_VIEW_PROPERTY(onBlur, RCTBubblingEventBlock)
424
+ RCT_EXPORT_VIEW_PROPERTY(onChangeText, RCTDirectEventBlock)
425
+ RCT_EXPORT_VIEW_PROPERTY(onCancelButtonPress, RCTDirectEventBlock)
426
+ RCT_EXPORT_VIEW_PROPERTY(onSearchButtonPress, RCTDirectEventBlock)
427
+ RCT_EXPORT_VIEW_PROPERTY(onSearchFocus, RCTDirectEventBlock)
428
+ RCT_EXPORT_VIEW_PROPERTY(onSearchBlur, RCTDirectEventBlock)
406
429
 
407
430
  #ifndef RCT_NEW_ARCH_ENABLED
408
431
 
@@ -446,6 +469,14 @@ RCT_EXPORT_METHOD(setText : (NSNumber *_Nonnull)reactTag text : (NSString *)text
446
469
  }];
447
470
  }
448
471
 
472
+ RCT_EXPORT_METHOD(cancelSearch : (NSNumber *_Nonnull)reactTag)
473
+ {
474
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) {
475
+ RNSSearchBar *searchBar = viewRegistry[reactTag];
476
+ [searchBar cancelSearch];
477
+ }];
478
+ }
479
+
449
480
  #endif /* !RCT_NEW_ARCH_ENABLED */
450
481
 
451
482
  @end
@@ -1,4 +1,3 @@
1
- #import <React/RCTBridge+Private.h>
2
1
  #import <React/RCTEventDispatcherProtocol.h>
3
2
 
4
3
  @interface RNSHeaderHeightChangeEvent : NSObject <RCTEvent>
@@ -31,6 +31,21 @@ RCT_NOT_IMPLEMENTED(-(instancetype)init)
31
31
  return body;
32
32
  }
33
33
 
34
+ - (BOOL)canCoalesce
35
+ {
36
+ return YES;
37
+ }
38
+
39
+ - (uint16_t)coalescingKey
40
+ {
41
+ return _headerHeight;
42
+ }
43
+
44
+ - (id<RCTEvent>)coalesceWithEvent:(id<RCTEvent>)newEvent
45
+ {
46
+ return newEvent;
47
+ }
48
+
34
49
  + (NSString *)moduleDotMethod
35
50
  {
36
51
  return @"RCTEventEmitter.receiveEvent";
@@ -1,4 +1,3 @@
1
- #import <React/RCTBridge+Private.h>
2
1
  #import <React/RCTEventDispatcherProtocol.h>
3
2
 
4
3
  @interface RNSScreenViewEvent : NSObject <RCTEvent>
@@ -0,0 +1,15 @@
1
+ #ifdef RCT_NEW_ARCH_ENABLED
2
+
3
+ #import <React/RCTSurfaceTouchHandler.h>
4
+
5
+ NS_ASSUME_NONNULL_BEGIN
6
+
7
+ @interface RCTSurfaceTouchHandler (RNSUtility)
8
+
9
+ - (void)rnscreens_cancelTouches;
10
+
11
+ @end
12
+
13
+ NS_ASSUME_NONNULL_END
14
+
15
+ #endif // RCT_NEW_ARCH_ENABLED
@@ -0,0 +1,14 @@
1
+ #ifdef RCT_NEW_ARCH_ENABLED
2
+ #import "RCTSurfaceTouchHandler+RNSUtility.h"
3
+
4
+ @implementation RCTSurfaceTouchHandler (RNSUtility)
5
+
6
+ - (void)rnscreens_cancelTouches
7
+ {
8
+ [self setEnabled:NO];
9
+ [self setEnabled:YES];
10
+ [self reset];
11
+ }
12
+
13
+ @end
14
+ #endif // RCT_NEW_ARCH_ENABLED
@@ -0,0 +1,15 @@
1
+ #ifndef RCT_NEW_ARCH_ENABLED
2
+
3
+ #import <React/RCTTouchHandler.h>
4
+
5
+ NS_ASSUME_NONNULL_BEGIN
6
+
7
+ @interface RCTTouchHandler (RNSUtility)
8
+
9
+ - (void)rnscreens_cancelTouches;
10
+
11
+ @end
12
+
13
+ NS_ASSUME_NONNULL_END
14
+
15
+ #endif // !RCT_NEW_ARCH_ENABLED
@@ -0,0 +1,15 @@
1
+ #ifndef RCT_NEW_ARCH_ENABLED
2
+ #import "RCTTouchHandler+RNSUtility.h"
3
+
4
+ @implementation RCTTouchHandler (RNSUtility)
5
+
6
+ - (void)rnscreens_cancelTouches
7
+ {
8
+ [self setEnabled:NO];
9
+ [self setEnabled:YES];
10
+ [self reset];
11
+ }
12
+
13
+ @end
14
+
15
+ #endif // !RCT_NEW_ARCH_ENABLED
@@ -0,0 +1,7 @@
1
+ #pragma once
2
+
3
+ #define RNS_IGNORE_SUPER_CALL_BEGIN \
4
+ _Pragma("clang diagnostic push") \
5
+ _Pragma("clang diagnostic ignored \"-Wobjc-missing-super-calls\"")
6
+
7
+ #define RNS_IGNORE_SUPER_CALL_END _Pragma("clang diagnostic pop")
@@ -1,3 +1,5 @@
1
+ #import <UIKit/UIKit.h>
2
+
1
3
  @interface RNSUIBarButtonItem : UIBarButtonItem
2
4
 
3
5
  @property (nonatomic) BOOL menuHidden;
@@ -0,0 +1,37 @@
1
+ #import <UIKit/UIKit.h>
2
+
3
+ NS_ASSUME_NONNULL_BEGIN
4
+
5
+ @interface UINavigationBar (RNSUtility)
6
+
7
+ /**
8
+ * Aims to find main content view of the `UINavigationBar`.
9
+ *
10
+ * This method relies on internal iOS implementation details (see the implementation)
11
+ * and might need patches specific to future iOS versions, in case the view hierarchy inside
12
+ * the navigation bar changes.
13
+ *
14
+ * Tested to work reliably on iOS 18.0, 17.5, 15.5.
15
+ *
16
+ * @returns `_UINavigationBarContentView` view mounted directly under the navigation bar itself
17
+ */
18
+ - (nullable UIView *)rnscreens_findContentView;
19
+
20
+ /**
21
+ * Aims to find the back button wrapper view of the `UINavigationBar`. This is the view that contains
22
+ * the back button itself alongside all the margin / padding used to position the back button by the system.
23
+ *
24
+ * This method relies on internal iOS implementation details (see the implementation)
25
+ * and might need patches specific to future iOS versions, in case the view hierarchy inside
26
+ * the navigation bar changes.
27
+ *
28
+ * Tested to work reliably on iOS 18.0, 17.5, 15.5.
29
+ *
30
+ * @returns `_UIButtonBarButton` view, if present and mounted in anticipated place;
31
+ * if the back button is not present, this method returns `nil`.
32
+ */
33
+ - (nullable UIView *)rnscreens_findBackButtonWrapperView;
34
+
35
+ @end
36
+
37
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,44 @@
1
+ #import "UINavigationBar+RNSUtility.h"
2
+
3
+ @implementation UINavigationBar (RNSUtility)
4
+
5
+ - (nullable UIView *)rnscreens_findContentView
6
+ {
7
+ // Class names taken from iOS 17.5, tested on iPhone 15 Pro
8
+ static Class ContentViewClass = NSClassFromString(@"_UINavigationBarContentView");
9
+
10
+ // Fast path
11
+ if (self.subviews.count > 1 && [self.subviews[1] isKindOfClass:ContentViewClass]) {
12
+ return self.subviews[1];
13
+ }
14
+
15
+ for (UIView *subview in self.subviews) {
16
+ if ([subview isKindOfClass:ContentViewClass]) {
17
+ return subview;
18
+ }
19
+ }
20
+
21
+ return nil;
22
+ }
23
+
24
+ - (nullable UIView *)rnscreens_findBackButtonWrapperView
25
+ {
26
+ // Class names taken from iOS 17.5, tested on iPhone 15 Pro
27
+ static Class BarButtonViewClass = NSClassFromString(@"_UIButtonBarButton");
28
+
29
+ UIView *contentView = self.rnscreens_findContentView;
30
+
31
+ if (contentView == nil) {
32
+ return nil;
33
+ }
34
+
35
+ for (UIView *subview in contentView.subviews) {
36
+ if ([subview isKindOfClass:BarButtonViewClass]) {
37
+ return subview;
38
+ }
39
+ }
40
+
41
+ return nil;
42
+ }
43
+
44
+ @end
@@ -0,0 +1,23 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ #ifdef RCT_NEW_ARCH_ENABLED
4
+ #import <React/RCTSurfaceTouchHandler.h>
5
+ #else
6
+ #import <React/RCTTouchHandler.h>
7
+ #endif // RCT_NEW_ARCH_ENABLED
8
+
9
+ #ifdef RCT_NEW_ARCH_ENABLED
10
+ #define RNS_TOUCH_HANDLER_ARCH_TYPE RCTSurfaceTouchHandler
11
+ #else
12
+ #define RNS_TOUCH_HANDLER_ARCH_TYPE RCTTouchHandler
13
+ #endif // RCT_NEW_ARCH_ENABLED
14
+
15
+ NS_ASSUME_NONNULL_BEGIN
16
+
17
+ @interface UIView (RNSUtility)
18
+
19
+ - (nullable RNS_TOUCH_HANDLER_ARCH_TYPE *)rnscreens_findTouchHandlerInAncestorChain;
20
+
21
+ @end
22
+
23
+ NS_ASSUME_NONNULL_END