@amazon-devices/react-native-screens 2.0.1758683737

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +223 -0
  3. package/RNScreens.podspec +53 -0
  4. package/SystemBundles/8f5a820b958535e533acb38dbc0c72c1837721b9db075f4a1740e42b9fee3910.bundle +33668 -0
  5. package/SystemBundles/8f5a820b958535e533acb38dbc0c72c1837721b9db075f4a1740e42b9fee3910.map +1 -0
  6. package/SystemModules/amzn__react-native-screens.modules.txt +101 -0
  7. package/SystemModules/amzn__react-native-screens.private.modules.txt +244 -0
  8. package/SystemModules/keplerscript-system-bundle-config.json +7 -0
  9. package/THIRD_PARTY_NOTICES.txt +707 -0
  10. package/android/build.gradle +133 -0
  11. package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +49 -0
  12. package/android/src/main/AndroidManifest.xml +5 -0
  13. package/android/src/main/java/com/swmansion/rnscreens/CustomSearchView.kt +77 -0
  14. package/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt +7 -0
  15. package/android/src/main/java/com/swmansion/rnscreens/FragmentBackPressOverrider.kt +29 -0
  16. package/android/src/main/java/com/swmansion/rnscreens/FragmentHolder.kt +7 -0
  17. package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +21 -0
  18. package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +289 -0
  19. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt +372 -0
  20. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainerViewManager.kt +40 -0
  21. package/android/src/main/java/com/swmansion/rnscreens/ScreenEventDispatcher.kt +21 -0
  22. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragment.kt +331 -0
  23. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragmentWrapper.kt +22 -0
  24. package/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +336 -0
  25. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +282 -0
  26. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragmentWrapper.kt +15 -0
  27. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +398 -0
  28. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +204 -0
  29. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubview.kt +38 -0
  30. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +41 -0
  31. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackViewManager.kt +75 -0
  32. package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +186 -0
  33. package/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +296 -0
  34. package/android/src/main/java/com/swmansion/rnscreens/ScreensShadowNode.kt +19 -0
  35. package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +133 -0
  36. package/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt +178 -0
  37. package/android/src/main/java/com/swmansion/rnscreens/SearchViewFormatter.kt +67 -0
  38. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderAttachedEvent.kt +22 -0
  39. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderBackButtonClickedEvent.kt +22 -0
  40. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderDetachedEvent.kt +22 -0
  41. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt +26 -0
  42. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenAppearEvent.kt +18 -0
  43. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenDisappearEvent.kt +18 -0
  44. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenDismissedEvent.kt +20 -0
  45. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenTransitionProgressEvent.kt +32 -0
  46. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillAppearEvent.kt +18 -0
  47. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillDisappearEvent.kt +18 -0
  48. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarBlurEvent.kt +22 -0
  49. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarChangeTextEvent.kt +28 -0
  50. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarCloseEvent.kt +22 -0
  51. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarFocusEvent.kt +22 -0
  52. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarOpenEvent.kt +22 -0
  53. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarSearchButtonPressEvent.kt +24 -0
  54. package/android/src/main/java/com/swmansion/rnscreens/events/StackFinishTransitioningEvent.kt +18 -0
  55. package/android/src/main/java/com/swmansion/rnscreens/utils/DeviceUtils.kt +12 -0
  56. package/android/src/main/jni/CMakeLists.txt +72 -0
  57. package/android/src/main/jni/rnscreens.cpp +16 -0
  58. package/android/src/main/jni/rnscreens.h +28 -0
  59. package/android/src/main/res/base/anim/rns_default_enter_in.xml +18 -0
  60. package/android/src/main/res/base/anim/rns_default_enter_out.xml +19 -0
  61. package/android/src/main/res/base/anim/rns_default_exit_in.xml +17 -0
  62. package/android/src/main/res/base/anim/rns_default_exit_out.xml +18 -0
  63. package/android/src/main/res/base/anim/rns_fade_from_bottom.xml +14 -0
  64. package/android/src/main/res/base/anim/rns_fade_in.xml +7 -0
  65. package/android/src/main/res/base/anim/rns_fade_out.xml +7 -0
  66. package/android/src/main/res/base/anim/rns_fade_to_bottom.xml +15 -0
  67. package/android/src/main/res/base/anim/rns_no_animation_20.xml +6 -0
  68. package/android/src/main/res/base/anim/rns_no_animation_250.xml +7 -0
  69. package/android/src/main/res/base/anim/rns_no_animation_350.xml +6 -0
  70. package/android/src/main/res/base/anim/rns_no_animation_medium.xml +7 -0
  71. package/android/src/main/res/base/anim/rns_slide_in_from_bottom.xml +7 -0
  72. package/android/src/main/res/base/anim/rns_slide_in_from_left.xml +5 -0
  73. package/android/src/main/res/base/anim/rns_slide_in_from_right.xml +5 -0
  74. package/android/src/main/res/base/anim/rns_slide_out_to_bottom.xml +7 -0
  75. package/android/src/main/res/base/anim/rns_slide_out_to_left.xml +5 -0
  76. package/android/src/main/res/base/anim/rns_slide_out_to_right.xml +5 -0
  77. package/android/src/main/res/base/anim/rns_standard_accelerate_interpolator.xml +6 -0
  78. package/android/src/main/res/v33/anim-v33/rns_default_enter_in.xml +38 -0
  79. package/android/src/main/res/v33/anim-v33/rns_default_enter_out.xml +38 -0
  80. package/android/src/main/res/v33/anim-v33/rns_default_exit_in.xml +38 -0
  81. package/android/src/main/res/v33/anim-v33/rns_default_exit_out.xml +38 -0
  82. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +111 -0
  83. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +44 -0
  84. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +107 -0
  85. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +42 -0
  86. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerDelegate.java +31 -0
  87. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerInterface.java +17 -0
  88. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerDelegate.java +25 -0
  89. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerInterface.java +16 -0
  90. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +10 -0
  91. package/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h +41 -0
  92. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp +9 -0
  93. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h +30 -0
  94. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.cpp +14 -0
  95. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h +45 -0
  96. package/ios/RCTImageComponentView+RNSScreenStackHeaderConfig.h +11 -0
  97. package/ios/RCTImageComponentView+RNSScreenStackHeaderConfig.mm +14 -0
  98. package/ios/RNSConvert.h +36 -0
  99. package/ios/RNSConvert.mm +154 -0
  100. package/ios/RNSEnums.h +71 -0
  101. package/ios/RNSFullWindowOverlay.h +34 -0
  102. package/ios/RNSFullWindowOverlay.mm +241 -0
  103. package/ios/RNSScreen.h +144 -0
  104. package/ios/RNSScreen.mm +1599 -0
  105. package/ios/RNSScreenContainer.h +45 -0
  106. package/ios/RNSScreenContainer.mm +343 -0
  107. package/ios/RNSScreenNavigationContainer.h +16 -0
  108. package/ios/RNSScreenNavigationContainer.mm +66 -0
  109. package/ios/RNSScreenStack.h +37 -0
  110. package/ios/RNSScreenStack.mm +1111 -0
  111. package/ios/RNSScreenStackAnimator.h +8 -0
  112. package/ios/RNSScreenStackAnimator.mm +320 -0
  113. package/ios/RNSScreenStackHeaderConfig.h +74 -0
  114. package/ios/RNSScreenStackHeaderConfig.mm +967 -0
  115. package/ios/RNSScreenStackHeaderSubview.h +44 -0
  116. package/ios/RNSScreenStackHeaderSubview.mm +147 -0
  117. package/ios/RNSScreenWindowTraits.h +26 -0
  118. package/ios/RNSScreenWindowTraits.mm +266 -0
  119. package/ios/RNSSearchBar.h +43 -0
  120. package/ios/RNSSearchBar.mm +465 -0
  121. package/ios/RNScreens.xcodeproj/project.pbxproj +461 -0
  122. package/ios/UIViewController+RNScreens.h +9 -0
  123. package/ios/UIViewController+RNScreens.mm +78 -0
  124. package/ios/UIWindow+RNScreens.h +9 -0
  125. package/ios/UIWindow+RNScreens.mm +17 -0
  126. package/ios/events/RNSHeaderHeightChangeEvent.h +8 -0
  127. package/ios/events/RNSHeaderHeightChangeEvent.mm +44 -0
  128. package/ios/events/RNSScreenViewEvent.h +12 -0
  129. package/ios/events/RNSScreenViewEvent.mm +59 -0
  130. package/ios/utils/RNSUIBarButtonItem.h +5 -0
  131. package/ios/utils/RNSUIBarButtonItem.mm +22 -0
  132. package/kepler-compatibility.json +8 -0
  133. package/kepler-transformed-package-info.json +3 -0
  134. package/lib/commonjs/TransitionProgressContext.js +11 -0
  135. package/lib/commonjs/TransitionProgressContext.js.map +1 -0
  136. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +11 -0
  137. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -0
  138. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +33 -0
  139. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -0
  140. package/lib/commonjs/fabric/ScreenNativeComponent.js +70 -0
  141. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -0
  142. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +11 -0
  143. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -0
  144. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +31 -0
  145. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -0
  146. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +12 -0
  147. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -0
  148. package/lib/commonjs/fabric/ScreenStackNativeComponent.js +35 -0
  149. package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -0
  150. package/lib/commonjs/fabric/SearchBarNativeComponent.js +19 -0
  151. package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -0
  152. package/lib/commonjs/index.js +147 -0
  153. package/lib/commonjs/index.js.map +1 -0
  154. package/lib/commonjs/index.native.js +407 -0
  155. package/lib/commonjs/index.native.js.map +1 -0
  156. package/lib/commonjs/native-stack/index.js +49 -0
  157. package/lib/commonjs/native-stack/index.js.map +1 -0
  158. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +75 -0
  159. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -0
  160. package/lib/commonjs/native-stack/types.js +6 -0
  161. package/lib/commonjs/native-stack/types.js.map +1 -0
  162. package/lib/commonjs/native-stack/utils/AnimatedHeaderHeightContext.js +12 -0
  163. package/lib/commonjs/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -0
  164. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js +12 -0
  165. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -0
  166. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js +75 -0
  167. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js.map +1 -0
  168. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js +35 -0
  169. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -0
  170. package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js +19 -0
  171. package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -0
  172. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js +54 -0
  173. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -0
  174. package/lib/commonjs/native-stack/utils/useHeaderHeight.js +19 -0
  175. package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -0
  176. package/lib/commonjs/native-stack/views/FontProcessor.js +21 -0
  177. package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -0
  178. package/lib/commonjs/native-stack/views/HeaderConfig.js +141 -0
  179. package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -0
  180. package/lib/commonjs/native-stack/views/NativeStackView.js +354 -0
  181. package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -0
  182. package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js +12 -0
  183. package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js.map +1 -0
  184. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +101 -0
  185. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -0
  186. package/lib/commonjs/reanimated/ReanimatedScreen.js +22 -0
  187. package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -0
  188. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +47 -0
  189. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -0
  190. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js +12 -0
  191. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -0
  192. package/lib/commonjs/reanimated/index.js +28 -0
  193. package/lib/commonjs/reanimated/index.js.map +1 -0
  194. package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js +19 -0
  195. package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js.map +1 -0
  196. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js +19 -0
  197. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -0
  198. package/lib/commonjs/types.js +6 -0
  199. package/lib/commonjs/types.js.map +1 -0
  200. package/lib/commonjs/useTransitionProgress.js +19 -0
  201. package/lib/commonjs/useTransitionProgress.js.map +1 -0
  202. package/lib/commonjs/utils.js +21 -0
  203. package/lib/commonjs/utils.js.map +1 -0
  204. package/lib/module/TransitionProgressContext.js +3 -0
  205. package/lib/module/TransitionProgressContext.js.map +1 -0
  206. package/lib/module/fabric/FullWindowOverlayNativeComponent.js +4 -0
  207. package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -0
  208. package/lib/module/fabric/ScreenContainerNativeComponent.js +25 -0
  209. package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -0
  210. package/lib/module/fabric/ScreenNativeComponent.js +63 -0
  211. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -0
  212. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +4 -0
  213. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -0
  214. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +23 -0
  215. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -0
  216. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +7 -0
  217. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -0
  218. package/lib/module/fabric/ScreenStackNativeComponent.js +28 -0
  219. package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -0
  220. package/lib/module/fabric/SearchBarNativeComponent.js +10 -0
  221. package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -0
  222. package/lib/module/index.js +67 -0
  223. package/lib/module/index.js.map +1 -0
  224. package/lib/module/index.native.js +410 -0
  225. package/lib/module/index.native.js.map +1 -0
  226. package/lib/module/native-stack/index.js +22 -0
  227. package/lib/module/native-stack/index.js.map +1 -0
  228. package/lib/module/native-stack/navigators/createNativeStackNavigator.js +72 -0
  229. package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -0
  230. package/lib/module/native-stack/types.js +2 -0
  231. package/lib/module/native-stack/types.js.map +1 -0
  232. package/lib/module/native-stack/utils/AnimatedHeaderHeightContext.js +4 -0
  233. package/lib/module/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -0
  234. package/lib/module/native-stack/utils/HeaderHeightContext.js +4 -0
  235. package/lib/module/native-stack/utils/HeaderHeightContext.js.map +1 -0
  236. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js +68 -0
  237. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js.map +1 -0
  238. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js +29 -0
  239. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -0
  240. package/lib/module/native-stack/utils/useAnimatedHeaderHeight.js +10 -0
  241. package/lib/module/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -0
  242. package/lib/module/native-stack/utils/useBackPressSubscription.js +47 -0
  243. package/lib/module/native-stack/utils/useBackPressSubscription.js.map +1 -0
  244. package/lib/module/native-stack/utils/useHeaderHeight.js +10 -0
  245. package/lib/module/native-stack/utils/useHeaderHeight.js.map +1 -0
  246. package/lib/module/native-stack/views/FontProcessor.js +13 -0
  247. package/lib/module/native-stack/views/FontProcessor.js.map +1 -0
  248. package/lib/module/native-stack/views/HeaderConfig.js +132 -0
  249. package/lib/module/native-stack/views/HeaderConfig.js.map +1 -0
  250. package/lib/module/native-stack/views/NativeStackView.js +355 -0
  251. package/lib/module/native-stack/views/NativeStackView.js.map +1 -0
  252. package/lib/module/reanimated/ReanimatedHeaderHeightContext.js +5 -0
  253. package/lib/module/reanimated/ReanimatedHeaderHeightContext.js.map +1 -0
  254. package/lib/module/reanimated/ReanimatedNativeStackScreen.js +97 -0
  255. package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -0
  256. package/lib/module/reanimated/ReanimatedScreen.js +17 -0
  257. package/lib/module/reanimated/ReanimatedScreen.js.map +1 -0
  258. package/lib/module/reanimated/ReanimatedScreenProvider.js +40 -0
  259. package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -0
  260. package/lib/module/reanimated/ReanimatedTransitionProgressContext.js +5 -0
  261. package/lib/module/reanimated/ReanimatedTransitionProgressContext.js.map +1 -0
  262. package/lib/module/reanimated/index.js +4 -0
  263. package/lib/module/reanimated/index.js.map +1 -0
  264. package/lib/module/reanimated/useReanimatedHeaderHeight.js +10 -0
  265. package/lib/module/reanimated/useReanimatedHeaderHeight.js.map +1 -0
  266. package/lib/module/reanimated/useReanimatedTransitionProgress.js +10 -0
  267. package/lib/module/reanimated/useReanimatedTransitionProgress.js.map +1 -0
  268. package/lib/module/types.js +2 -0
  269. package/lib/module/types.js.map +1 -0
  270. package/lib/module/useTransitionProgress.js +10 -0
  271. package/lib/module/useTransitionProgress.js.map +1 -0
  272. package/lib/module/utils.js +14 -0
  273. package/lib/module/utils.js.map +1 -0
  274. package/lib/typescript/TransitionProgressContext.d.ts +9 -0
  275. package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts +7 -0
  276. package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts +5 -0
  277. package/lib/typescript/fabric/ScreenNativeComponent.d.ts +66 -0
  278. package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts +7 -0
  279. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +33 -0
  280. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +10 -0
  281. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +8 -0
  282. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +49 -0
  283. package/lib/typescript/index.d.ts +33 -0
  284. package/lib/typescript/index.native.d.ts +2 -0
  285. package/lib/typescript/native-stack/index.d.ts +19 -0
  286. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +6 -0
  287. package/lib/typescript/native-stack/types.d.ts +438 -0
  288. package/lib/typescript/native-stack/utils/AnimatedHeaderHeightContext.d.ts +4 -0
  289. package/lib/typescript/native-stack/utils/HeaderHeightContext.d.ts +3 -0
  290. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts +11 -0
  291. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +7 -0
  292. package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts +1 -0
  293. package/lib/typescript/native-stack/utils/useBackPressSubscription.d.ts +16 -0
  294. package/lib/typescript/native-stack/utils/useHeaderHeight.d.ts +1 -0
  295. package/lib/typescript/native-stack/views/FontProcessor.d.ts +1 -0
  296. package/lib/typescript/native-stack/views/HeaderConfig.d.ts +8 -0
  297. package/lib/typescript/native-stack/views/NativeStackView.d.ts +10 -0
  298. package/lib/typescript/reanimated/ReanimatedHeaderHeightContext.d.ts +4 -0
  299. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +5 -0
  300. package/lib/typescript/reanimated/ReanimatedScreen.d.ts +5 -0
  301. package/lib/typescript/reanimated/ReanimatedScreenProvider.d.ts +2 -0
  302. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts +9 -0
  303. package/lib/typescript/reanimated/index.d.ts +3 -0
  304. package/lib/typescript/reanimated/useReanimatedHeaderHeight.d.ts +3 -0
  305. package/lib/typescript/reanimated/useReanimatedTransitionProgress.d.ts +11 -0
  306. package/lib/typescript/types.d.ts +612 -0
  307. package/lib/typescript/useTransitionProgress.d.ts +5 -0
  308. package/lib/typescript/utils.d.ts +3 -0
  309. package/native-stack/README.md +814 -0
  310. package/native-stack/package.json +6 -0
  311. package/package.json +1 -0
  312. package/react-native.config.js +42 -0
  313. package/reanimated/package.json +6 -0
  314. package/src/TransitionProgressContext.tsx +12 -0
  315. package/src/fabric/FullWindowOverlayNativeComponent.ts +7 -0
  316. package/src/fabric/ScreenContainerNativeComponent.ts +28 -0
  317. package/src/fabric/ScreenNativeComponent.ts +158 -0
  318. package/src/fabric/ScreenNavigationContainerNativeComponent.ts +10 -0
  319. package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +61 -0
  320. package/src/fabric/ScreenStackHeaderSubviewNativeComponent.ts +22 -0
  321. package/src/fabric/ScreenStackNativeComponent.ts +33 -0
  322. package/src/fabric/SearchBarNativeComponent.ts +79 -0
  323. package/src/index.native.tsx +599 -0
  324. package/src/index.tsx +119 -0
  325. package/src/native-stack/index.tsx +27 -0
  326. package/src/native-stack/navigators/createNativeStackNavigator.tsx +107 -0
  327. package/src/native-stack/types.tsx +486 -0
  328. package/src/native-stack/utils/AnimatedHeaderHeightContext.tsx +8 -0
  329. package/src/native-stack/utils/HeaderHeightContext.tsx +5 -0
  330. package/src/native-stack/utils/SafeAreaProviderCompat.tsx +78 -0
  331. package/src/native-stack/utils/getDefaultHeaderHeight.tsx +41 -0
  332. package/src/native-stack/utils/useAnimatedHeaderHeight.tsx +15 -0
  333. package/src/native-stack/utils/useBackPressSubscription.tsx +66 -0
  334. package/src/native-stack/utils/useHeaderHeight.tsx +15 -0
  335. package/src/native-stack/views/FontProcessor.tsx +14 -0
  336. package/src/native-stack/views/HeaderConfig.tsx +187 -0
  337. package/src/native-stack/views/NativeStackView.tsx +466 -0
  338. package/src/reanimated/ReanimatedHeaderHeightContext.tsx +7 -0
  339. package/src/reanimated/ReanimatedNativeStackScreen.tsx +130 -0
  340. package/src/reanimated/ReanimatedScreen.tsx +25 -0
  341. package/src/reanimated/ReanimatedScreenProvider.tsx +42 -0
  342. package/src/reanimated/ReanimatedTransitionProgressContext.tsx +13 -0
  343. package/src/reanimated/index.tsx +3 -0
  344. package/src/reanimated/useReanimatedHeaderHeight.tsx +14 -0
  345. package/src/reanimated/useReanimatedTransitionProgress.tsx +14 -0
  346. package/src/types.tsx +699 -0
  347. package/src/useTransitionProgress.tsx +15 -0
  348. package/src/utils.ts +18 -0
  349. package/windows/README.md +25 -0
  350. package/windows/RNScreens/PropertySheet.props +16 -0
  351. package/windows/RNScreens/RNScreens.cpp +66 -0
  352. package/windows/RNScreens/RNScreens.def +3 -0
  353. package/windows/RNScreens/RNScreens.h +41 -0
  354. package/windows/RNScreens/RNScreens.idl +8 -0
  355. package/windows/RNScreens/RNScreens.vcxproj +187 -0
  356. package/windows/RNScreens/RNScreens.vcxproj.filters +52 -0
  357. package/windows/RNScreens/ReactPackageProvider.cpp +30 -0
  358. package/windows/RNScreens/ReactPackageProvider.h +17 -0
  359. package/windows/RNScreens/ReactPackageProvider.idl +9 -0
  360. package/windows/RNScreens/Screen.cpp +122 -0
  361. package/windows/RNScreens/Screen.h +64 -0
  362. package/windows/RNScreens/ScreenContainer.cpp +49 -0
  363. package/windows/RNScreens/ScreenContainer.h +23 -0
  364. package/windows/RNScreens/ScreenContainerViewManager.cpp +133 -0
  365. package/windows/RNScreens/ScreenContainerViewManager.h +78 -0
  366. package/windows/RNScreens/ScreenStack.cpp +65 -0
  367. package/windows/RNScreens/ScreenStack.h +23 -0
  368. package/windows/RNScreens/ScreenStackHeaderConfig.cpp +19 -0
  369. package/windows/RNScreens/ScreenStackHeaderConfig.h +14 -0
  370. package/windows/RNScreens/ScreenStackHeaderConfigViewManager.cpp +89 -0
  371. package/windows/RNScreens/ScreenStackHeaderConfigViewManager.h +62 -0
  372. package/windows/RNScreens/ScreenStackViewManager.cpp +132 -0
  373. package/windows/RNScreens/ScreenStackViewManager.h +78 -0
  374. package/windows/RNScreens/ScreenViewManager.cpp +154 -0
  375. package/windows/RNScreens/ScreenViewManager.h +78 -0
  376. package/windows/RNScreens/packages.config +4 -0
  377. package/windows/RNScreens/pch.cpp +1 -0
  378. package/windows/RNScreens/pch.h +9 -0
  379. package/windows/RNScreens62.sln +254 -0
  380. package/windows/RNScreens63.sln +225 -0
  381. package/windows/RNScreens65.sln +144 -0
@@ -0,0 +1,241 @@
1
+ #import <UIKit/UIKit.h>
2
+
3
+ #import "RNSFullWindowOverlay.h"
4
+
5
+ #ifdef RCT_NEW_ARCH_ENABLED
6
+ #import <React/RCTConversions.h>
7
+ #import <React/RCTFabricComponentsPlugins.h>
8
+ #import <React/RCTSurfaceTouchHandler.h>
9
+ #import <react/renderer/components/rnscreens/ComponentDescriptors.h>
10
+ #import <react/renderer/components/rnscreens/Props.h>
11
+ #import <react/renderer/components/rnscreens/RCTComponentViewHelpers.h>
12
+ #else
13
+ #import <React/RCTTouchHandler.h>
14
+ #endif // RCT_NEW_ARCH_ENABLED
15
+
16
+ @implementation RNSFullWindowOverlayContainer
17
+
18
+ - (instancetype)initWithFrame:(CGRect)frame
19
+ {
20
+ if (self = [super initWithFrame:frame]) {
21
+ self.accessibilityViewIsModal = YES;
22
+ }
23
+ return self;
24
+ }
25
+
26
+ - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
27
+ {
28
+ for (UIView *view in [self subviews]) {
29
+ if (view.userInteractionEnabled && [view pointInside:[self convertPoint:point toView:view] withEvent:event]) {
30
+ return YES;
31
+ }
32
+ }
33
+ return NO;
34
+ }
35
+
36
+ - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
37
+ {
38
+ BOOL canReceiveTouchEvents = ([self isUserInteractionEnabled] && ![self isHidden]);
39
+ if (!canReceiveTouchEvents) {
40
+ return nil;
41
+ }
42
+
43
+ // `hitSubview` is the topmost subview which was hit. The hit point can
44
+ // be outside the bounds of `view` (e.g., if -clipsToBounds is NO).
45
+ UIView *hitSubview = nil;
46
+ BOOL isPointInside = [self pointInside:point withEvent:event];
47
+ if (![self clipsToBounds] || isPointInside) {
48
+ // Take z-index into account when calculating the touch target.
49
+ NSArray<UIView *> *sortedSubviews = [self reactZIndexSortedSubviews];
50
+
51
+ // The default behaviour of UIKit is that if a view does not contain a point,
52
+ // then no subviews will be returned from hit testing, even if they contain
53
+ // the hit point. By doing hit testing directly on the subviews, we bypass
54
+ // the strict containment policy (i.e., UIKit guarantees that every ancestor
55
+ // of the hit view will return YES from -pointInside:withEvent:). See:
56
+ // - https://developer.apple.com/library/ios/qa/qa2013/qa1812.html
57
+ for (UIView *subview in [sortedSubviews reverseObjectEnumerator]) {
58
+ CGPoint convertedPoint = [subview convertPoint:point fromView:self];
59
+ hitSubview = [subview hitTest:convertedPoint withEvent:event];
60
+ if (hitSubview != nil) {
61
+ break;
62
+ }
63
+ }
64
+ }
65
+ return hitSubview;
66
+ }
67
+
68
+ @end
69
+
70
+ @implementation RNSFullWindowOverlay {
71
+ __weak RCTBridge *_bridge;
72
+ RNSFullWindowOverlayContainer *_container;
73
+ CGRect _reactFrame;
74
+ #ifdef RCT_NEW_ARCH_ENABLED
75
+ RCTSurfaceTouchHandler *_touchHandler;
76
+ #else
77
+ RCTTouchHandler *_touchHandler;
78
+ #endif // RCT_NEW_ARCH_ENABLED
79
+ }
80
+
81
+ #ifdef RCT_NEW_ARCH_ENABLED
82
+ - (instancetype)init
83
+ {
84
+ if (self = [super init]) {
85
+ static const auto defaultProps = std::make_shared<const react::RNSFullWindowOverlayProps>();
86
+ _props = defaultProps;
87
+ [self _initCommon];
88
+ }
89
+ return self;
90
+ }
91
+ #endif // RCT_NEW_ARCH_ENABLED
92
+
93
+ - (instancetype)initWithBridge:(RCTBridge *)bridge
94
+ {
95
+ if (self = [super init]) {
96
+ _bridge = bridge;
97
+ [self _initCommon];
98
+ }
99
+
100
+ return self;
101
+ }
102
+
103
+ - (void)_initCommon
104
+ {
105
+ _reactFrame = CGRectNull;
106
+ _container = self.container;
107
+ [self show];
108
+ }
109
+
110
+ - (void)addSubview:(UIView *)view
111
+ {
112
+ [_container addSubview:view];
113
+ }
114
+
115
+ - (RNSFullWindowOverlayContainer *)container
116
+ {
117
+ if (_container == nil) {
118
+ _container = [[RNSFullWindowOverlayContainer alloc] initWithFrame:_reactFrame];
119
+ }
120
+
121
+ return _container;
122
+ }
123
+
124
+ - (void)show
125
+ {
126
+ UIWindow *window = RCTSharedApplication().delegate.window;
127
+ [window addSubview:_container];
128
+ }
129
+
130
+ - (void)didMoveToSuperview
131
+ {
132
+ if (self.superview == nil) {
133
+ if (_container != nil) {
134
+ [_container removeFromSuperview];
135
+ [_touchHandler detachFromView:_container];
136
+ }
137
+ } else {
138
+ if (_container != nil) {
139
+ UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, _container);
140
+ }
141
+ if (_touchHandler == nil) {
142
+ #ifdef RCT_NEW_ARCH_ENABLED
143
+ _touchHandler = [RCTSurfaceTouchHandler new];
144
+ #else
145
+ _touchHandler = [[RCTTouchHandler alloc] initWithBridge:_bridge];
146
+ #endif
147
+ }
148
+ [_touchHandler attachToView:_container];
149
+ }
150
+ }
151
+
152
+ #ifdef RCT_NEW_ARCH_ENABLED
153
+ #pragma mark - Fabric Specific
154
+
155
+ // When the component unmounts we remove it from window's children,
156
+ // so when the component gets recycled we need to add it back.
157
+ - (void)maybeShow
158
+ {
159
+ UIWindow *window = RCTSharedApplication().delegate.window;
160
+ if (![[window subviews] containsObject:self]) {
161
+ [window addSubview:_container];
162
+ }
163
+ }
164
+
165
+ + (react::ComponentDescriptorProvider)componentDescriptorProvider
166
+ {
167
+ return react::concreteComponentDescriptorProvider<react::RNSFullWindowOverlayComponentDescriptor>();
168
+ }
169
+
170
+ - (void)prepareForRecycle
171
+ {
172
+ [_container removeFromSuperview];
173
+ // Due to view recycling we don't really want to set _container = nil
174
+ // as it won't be instantiated when the component appears for the second time.
175
+ // We could consider nulling in here & using container (lazy getter) everywhere else.
176
+ // _container = nil;
177
+ [super prepareForRecycle];
178
+ }
179
+
180
+ - (void)mountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
181
+ {
182
+ // When the component unmounts we remove it from window's children,
183
+ // so when the component gets recycled we need to add it back.
184
+ // As for now it is called here as we lack of method that is called
185
+ // just before component gets restored (from recycle pool).
186
+ [self maybeShow];
187
+ [self addSubview:childComponentView];
188
+ }
189
+
190
+ - (void)unmountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
191
+ {
192
+ [childComponentView removeFromSuperview];
193
+ }
194
+
195
+ - (void)updateLayoutMetrics:(react::LayoutMetrics const &)layoutMetrics
196
+ oldLayoutMetrics:(react::LayoutMetrics const &)oldLayoutMetrics
197
+ {
198
+ CGRect frame = RCTCGRectFromRect(layoutMetrics.frame);
199
+ _reactFrame = frame;
200
+ [_container setFrame:frame];
201
+ }
202
+
203
+ #else
204
+ #pragma mark - Paper specific
205
+
206
+ - (void)reactSetFrame:(CGRect)frame
207
+ {
208
+ _reactFrame = frame;
209
+ [_container setFrame:frame];
210
+ }
211
+
212
+ - (void)invalidate
213
+ {
214
+ [_container removeFromSuperview];
215
+ _container = nil;
216
+ }
217
+
218
+ #endif // RCT_NEW_ARCH_ENABLED
219
+
220
+ @end
221
+
222
+ #ifdef RCT_NEW_ARCH_ENABLED
223
+ Class<RCTComponentViewProtocol> RNSFullWindowOverlayCls(void)
224
+ {
225
+ return RNSFullWindowOverlay.class;
226
+ }
227
+ #endif // RCT_NEW_ARCH_ENABLED
228
+
229
+ @implementation RNSFullWindowOverlayManager
230
+
231
+ RCT_EXPORT_MODULE()
232
+
233
+ #ifdef RCT_NEW_ARCH_ENABLED
234
+ #else
235
+ - (UIView *)view
236
+ {
237
+ return [[RNSFullWindowOverlay alloc] initWithBridge:self.bridge];
238
+ }
239
+ #endif // RCT_NEW_ARCH_ENABLED
240
+
241
+ @end
@@ -0,0 +1,144 @@
1
+ #import <React/RCTComponent.h>
2
+ #import <React/RCTViewManager.h>
3
+
4
+ #import "RNSEnums.h"
5
+ #import "RNSScreenContainer.h"
6
+
7
+ #if RCT_NEW_ARCH_ENABLED
8
+ #import <React/RCTViewComponentView.h>
9
+ #else
10
+ #import <React/RCTView.h>
11
+ #endif // RCT_NEW_ARCH_ENABLED
12
+
13
+ NS_ASSUME_NONNULL_BEGIN
14
+
15
+ #ifdef RCT_NEW_ARCH_ENABLED
16
+ namespace react = facebook::react;
17
+ #endif // RCT_NEW_ARCH_ENABLED
18
+
19
+ @interface RCTConvert (RNSScreen)
20
+
21
+ + (RNSScreenStackPresentation)RNSScreenStackPresentation:(id)json;
22
+ + (RNSScreenStackAnimation)RNSScreenStackAnimation:(id)json;
23
+
24
+ #if !TARGET_OS_TV
25
+ + (RNSStatusBarStyle)RNSStatusBarStyle:(id)json;
26
+ + (UIStatusBarAnimation)UIStatusBarAnimation:(id)json;
27
+ + (UIInterfaceOrientationMask)UIInterfaceOrientationMask:(id)json;
28
+ #endif
29
+
30
+ @end
31
+
32
+ @class RNSScreenView;
33
+
34
+ @interface RNSScreen : UIViewController <RNSViewControllerDelegate>
35
+
36
+ - (instancetype)initWithView:(UIView *)view;
37
+ - (UIViewController *)findChildVCForConfigAndTrait:(RNSWindowTrait)trait includingModals:(BOOL)includingModals;
38
+ - (BOOL)hasNestedStack;
39
+ - (void)calculateAndNotifyHeaderHeightChangeIsModal:(BOOL)isModal;
40
+ - (void)notifyFinishTransitioning;
41
+ - (RNSScreenView *)screenView;
42
+ #ifdef RCT_NEW_ARCH_ENABLED
43
+ - (void)setViewToSnapshot:(UIView *)snapshot;
44
+ - (void)resetViewToScreen;
45
+ #endif
46
+
47
+ @end
48
+
49
+ @class RNSScreenStackHeaderConfig;
50
+
51
+ @interface RNSScreenView :
52
+ #ifdef RCT_NEW_ARCH_ENABLED
53
+ RCTViewComponentView
54
+ #else
55
+ RCTView
56
+ #endif
57
+
58
+ @property (nonatomic) BOOL fullScreenSwipeEnabled;
59
+ @property (nonatomic) BOOL gestureEnabled;
60
+ @property (nonatomic) BOOL hasStatusBarHiddenSet;
61
+ @property (nonatomic) BOOL hasStatusBarStyleSet;
62
+ @property (nonatomic) BOOL hasStatusBarAnimationSet;
63
+ @property (nonatomic) BOOL hasHomeIndicatorHiddenSet;
64
+ @property (nonatomic) BOOL hasOrientationSet;
65
+ @property (nonatomic) RNSScreenStackAnimation stackAnimation;
66
+ @property (nonatomic) RNSScreenStackPresentation stackPresentation;
67
+ @property (nonatomic) RNSScreenSwipeDirection swipeDirection;
68
+ @property (nonatomic) RNSScreenReplaceAnimation replaceAnimation;
69
+
70
+ @property (nonatomic, retain) NSNumber *transitionDuration;
71
+ @property (nonatomic, readonly) BOOL dismissed;
72
+ @property (nonatomic) BOOL hideKeyboardOnSwipe;
73
+ @property (nonatomic) BOOL customAnimationOnSwipe;
74
+ @property (nonatomic) BOOL preventNativeDismiss;
75
+ @property (nonatomic, retain) RNSScreen *controller;
76
+ @property (nonatomic, copy) NSDictionary *gestureResponseDistance;
77
+ @property (nonatomic) int activityState;
78
+ @property (weak, nonatomic) UIView<RNSScreenContainerDelegate> *reactSuperview;
79
+
80
+ #if !TARGET_OS_TV
81
+ @property (nonatomic) RNSStatusBarStyle statusBarStyle;
82
+ @property (nonatomic) UIStatusBarAnimation statusBarAnimation;
83
+ @property (nonatomic) UIInterfaceOrientationMask screenOrientation;
84
+ @property (nonatomic) BOOL statusBarHidden;
85
+ @property (nonatomic) BOOL homeIndicatorHidden;
86
+
87
+ // Props controlling UISheetPresentationController
88
+ @property (nonatomic) RNSScreenDetentType sheetAllowedDetents;
89
+ @property (nonatomic) RNSScreenDetentType sheetLargestUndimmedDetent;
90
+ @property (nonatomic) BOOL sheetGrabberVisible;
91
+ @property (nonatomic) CGFloat sheetCornerRadius;
92
+ @property (nonatomic) BOOL sheetExpandsWhenScrolledToEdge;
93
+ #endif // !TARGET_OS_TV
94
+
95
+ #ifdef RCT_NEW_ARCH_ENABLED
96
+ // we recreate the behavior of `reactSetFrame` on new architecture
97
+ @property (nonatomic) react::LayoutMetrics oldLayoutMetrics;
98
+ @property (nonatomic) react::LayoutMetrics newLayoutMetrics;
99
+ @property (weak, nonatomic) RNSScreenStackHeaderConfig *config;
100
+ @property (nonatomic, readonly) BOOL hasHeaderConfig;
101
+ #else
102
+ @property (nonatomic, copy) RCTDirectEventBlock onAppear;
103
+ @property (nonatomic, copy) RCTDirectEventBlock onDisappear;
104
+ @property (nonatomic, copy) RCTDirectEventBlock onDismissed;
105
+ @property (nonatomic, copy) RCTDirectEventBlock onHeaderHeightChange;
106
+ @property (nonatomic, copy) RCTDirectEventBlock onWillAppear;
107
+ @property (nonatomic, copy) RCTDirectEventBlock onWillDisappear;
108
+ @property (nonatomic, copy) RCTDirectEventBlock onNativeDismissCancelled;
109
+ @property (nonatomic, copy) RCTDirectEventBlock onTransitionProgress;
110
+ @property (nonatomic, copy) RCTDirectEventBlock onGestureCancel;
111
+ #endif // RCT_NEW_ARCH_ENABLED
112
+
113
+ - (void)notifyFinishTransitioning;
114
+ - (void)notifyHeaderHeightChange:(double)height;
115
+
116
+ #ifdef RCT_NEW_ARCH_ENABLED
117
+ - (void)notifyWillAppear;
118
+ - (void)notifyWillDisappear;
119
+ - (void)notifyAppear;
120
+ - (void)notifyDisappear;
121
+ - (void)updateBounds;
122
+ - (void)notifyDismissedWithCount:(int)dismissCount;
123
+ - (instancetype)initWithFrame:(CGRect)frame;
124
+ #endif
125
+
126
+ - (void)notifyTransitionProgress:(double)progress closing:(BOOL)closing goingForward:(BOOL)goingForward;
127
+ - (void)notifyDismissCancelledWithDismissCount:(int)dismissCount;
128
+ - (BOOL)isModal;
129
+ - (BOOL)isPresentedAsNativeModal;
130
+
131
+ /// Looks for header configuration in instance's `reactSubviews` and returns it. If not present returns `nil`.
132
+ - (RNSScreenStackHeaderConfig *_Nullable)findHeaderConfig;
133
+
134
+ @end
135
+
136
+ @interface UIView (RNSScreen)
137
+ - (UIViewController *)parentViewController;
138
+ @end
139
+
140
+ @interface RNSScreenManager : RCTViewManager
141
+
142
+ @end
143
+
144
+ NS_ASSUME_NONNULL_END