@amazon-devices/react-native-screens 2.0.1758683737 → 3.0.9000000000

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 (673) hide show
  1. package/README.md +57 -18
  2. package/RNScreens.podspec +12 -30
  3. package/SystemBundles/31d5b6b69618249f6233b73a1de7c4d890c86be7ccb031ce7cf2dcc41783f9f7.bundle +45301 -0
  4. package/SystemBundles/31d5b6b69618249f6233b73a1de7c4d890c86be7ccb031ce7cf2dcc41783f9f7.map +13711 -0
  5. package/SystemModules/amzn__react-native-screens-3.modules.txt +158 -0
  6. package/SystemModules/amzn__react-native-screens-3.private.modules.txt +377 -0
  7. package/SystemModules/keplerscript-system-bundle-config.json +4 -4
  8. package/THIRD_PARTY_NOTICES.txt +1 -684
  9. package/android/CMakeLists.txt +80 -0
  10. package/android/build.gradle +96 -17
  11. package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +61 -0
  12. package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +38 -25
  13. package/android/src/fabric/java/com/swmansion/rnscreens/NativeProxy.kt +53 -0
  14. package/android/src/main/cpp/NativeProxy.cpp +51 -0
  15. package/android/src/main/cpp/NativeProxy.h +35 -0
  16. package/android/src/main/cpp/OnLoad.cpp +8 -0
  17. package/android/src/main/cpp/jni-adapter.cpp +106 -0
  18. package/android/src/main/java/com/swmansion/rnscreens/CustomSearchView.kt +20 -10
  19. package/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt +69 -1
  20. package/android/src/main/java/com/swmansion/rnscreens/FragmentBackPressOverrider.kt +8 -8
  21. package/android/src/main/java/com/swmansion/rnscreens/InsetsObserverProxy.kt +104 -0
  22. package/android/src/main/java/com/swmansion/rnscreens/ModalScreenViewManager.kt +12 -0
  23. package/android/src/main/java/com/swmansion/rnscreens/NativeDismissalObserver.kt +12 -0
  24. package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +65 -7
  25. package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +327 -84
  26. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt +122 -72
  27. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainerViewManager.kt +27 -4
  28. package/android/src/main/java/com/swmansion/rnscreens/ScreenContentWrapper.kt +38 -0
  29. package/android/src/main/java/com/swmansion/rnscreens/ScreenContentWrapperManager.kt +25 -0
  30. package/android/src/main/java/com/swmansion/rnscreens/ScreenEventDispatcher.kt +10 -2
  31. package/android/src/main/java/com/swmansion/rnscreens/ScreenFooter.kt +299 -0
  32. package/android/src/main/java/com/swmansion/rnscreens/ScreenFooterManager.kt +25 -0
  33. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragment.kt +91 -67
  34. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragmentWrapper.kt +12 -1
  35. package/android/src/main/java/com/swmansion/rnscreens/ScreenModalFragment.kt +281 -0
  36. package/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +184 -81
  37. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +467 -80
  38. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragmentWrapper.kt +8 -1
  39. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +156 -124
  40. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigShadowNode.kt +25 -0
  41. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +159 -39
  42. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubview.kt +24 -9
  43. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +19 -13
  44. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackViewManager.kt +31 -28
  45. package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +276 -71
  46. package/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +124 -64
  47. package/android/src/main/java/com/swmansion/rnscreens/ScreensModule.kt +127 -0
  48. package/android/src/main/java/com/swmansion/rnscreens/ScreensShadowNode.kt +4 -2
  49. package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +160 -53
  50. package/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt +57 -32
  51. package/android/src/main/java/com/swmansion/rnscreens/SearchViewFormatter.kt +15 -10
  52. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetBehaviorExt.kt +42 -0
  53. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetDialogRootView.kt +104 -0
  54. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetDialogScreen.kt +26 -0
  55. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/DimmingFragment.kt +493 -0
  56. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/DimmingView.kt +66 -0
  57. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/GestureTransparentViewGroup.kt +24 -0
  58. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/SheetUtils.kt +135 -0
  59. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderAttachedEvent.kt +7 -8
  60. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderBackButtonClickedEvent.kt +8 -9
  61. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderDetachedEvent.kt +7 -8
  62. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt +9 -10
  63. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenAppearEvent.kt +4 -1
  64. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenDisappearEvent.kt +4 -1
  65. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenDismissedEvent.kt +8 -4
  66. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenTransitionProgressEvent.kt +13 -16
  67. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillAppearEvent.kt +4 -1
  68. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillDisappearEvent.kt +4 -1
  69. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarBlurEvent.kt +8 -9
  70. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarChangeTextEvent.kt +8 -11
  71. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarCloseEvent.kt +7 -8
  72. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarFocusEvent.kt +8 -9
  73. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarOpenEvent.kt +7 -8
  74. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarSearchButtonPressEvent.kt +12 -11
  75. package/android/src/main/java/com/swmansion/rnscreens/events/SheetDetentChangedEvent.kt +27 -0
  76. package/android/src/main/java/com/swmansion/rnscreens/events/StackFinishTransitioningEvent.kt +4 -1
  77. package/android/src/main/java/com/swmansion/rnscreens/ext/NumericExt.kt +12 -0
  78. package/android/src/main/java/com/swmansion/rnscreens/ext/ViewExt.kt +32 -0
  79. package/android/src/main/java/com/swmansion/rnscreens/utils/DeviceUtils.kt +1 -5
  80. package/android/src/main/java/com/swmansion/rnscreens/utils/PaddingBundle.kt +8 -0
  81. package/android/src/main/java/com/swmansion/rnscreens/utils/ScreenDummyLayoutHelper.kt +282 -0
  82. package/android/src/main/jni/CMakeLists.txt +35 -23
  83. package/android/src/main/jni/rnscreens.h +3 -0
  84. package/android/src/main/res/base/anim/rns_ios_from_left_background_close.xml +5 -0
  85. package/android/src/main/res/base/anim/rns_ios_from_left_background_open.xml +5 -0
  86. package/android/src/main/res/base/anim/rns_ios_from_left_foreground_close.xml +6 -0
  87. package/android/src/main/res/base/anim/rns_ios_from_left_foreground_open.xml +6 -0
  88. package/android/src/main/res/base/anim/rns_ios_from_right_background_close.xml +5 -0
  89. package/android/src/main/res/base/anim/rns_ios_from_right_background_open.xml +5 -0
  90. package/android/src/main/res/base/anim/rns_ios_from_right_foreground_close.xml +6 -0
  91. package/android/src/main/res/base/anim/rns_ios_from_right_foreground_open.xml +6 -0
  92. package/android/src/main/res/base/drawable/rns_rounder_top_corners_shape.xml +8 -0
  93. package/android/src/main/res/v33/anim-v33/rns_default_enter_in.xml +0 -1
  94. package/android/src/main/res/v33/anim-v33/rns_default_enter_out.xml +2 -2
  95. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerDelegate.java +25 -0
  96. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerInterface.java +16 -0
  97. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerDelegate.java +25 -0
  98. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerInterface.java +16 -0
  99. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerDelegate.java +25 -0
  100. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerInterface.java +16 -0
  101. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +16 -3
  102. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +7 -2
  103. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +6 -0
  104. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +2 -0
  105. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerDelegate.java +99 -0
  106. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerInterface.java +37 -0
  107. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +39 -0
  108. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +11 -2
  109. package/android/src/paper/java/com/swmansion/rnscreens/NativeProxy.kt +19 -0
  110. package/android/src/paper/java/com/swmansion/rnscreens/NativeScreensModuleSpec.java +36 -0
  111. package/common/cpp/react/renderer/components/rnscreens/FrameCorrectionModes.h +51 -0
  112. package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenComponentDescriptor.h +40 -0
  113. package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenShadowNode.cpp +16 -0
  114. package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenShadowNode.h +32 -0
  115. package/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h +55 -12
  116. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp +157 -0
  117. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h +31 -11
  118. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigComponentDescriptor.h +49 -0
  119. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigShadowNode.cpp +22 -0
  120. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigShadowNode.h +40 -0
  121. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigState.cpp +34 -0
  122. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigState.h +57 -0
  123. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewComponentDescriptor.h +27 -0
  124. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewShadowNode.cpp +8 -0
  125. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewShadowNode.h +31 -0
  126. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewState.cpp +15 -0
  127. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewState.h +39 -0
  128. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.cpp +23 -2
  129. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h +33 -8
  130. package/common/cpp/react/renderer/components/rnscreens/utils/RectUtil.h +36 -0
  131. package/cpp/RNSScreenRemovalListener.cpp +25 -0
  132. package/cpp/RNSScreenRemovalListener.h +20 -0
  133. package/cpp/RNScreensTurboModule.cpp +115 -0
  134. package/cpp/RNScreensTurboModule.h +40 -0
  135. package/gesture-handler/package.json +6 -0
  136. package/ios/RNSConvert.h +24 -4
  137. package/ios/RNSConvert.mm +180 -55
  138. package/ios/RNSEnums.h +48 -0
  139. package/ios/RNSFullWindowOverlay.mm +12 -2
  140. package/ios/RNSModalScreen.h +8 -0
  141. package/ios/RNSModalScreen.mm +65 -0
  142. package/ios/RNSModule.h +19 -0
  143. package/ios/RNSModule.mm +173 -0
  144. package/ios/RNSPercentDrivenInteractiveTransition.h +12 -0
  145. package/ios/RNSPercentDrivenInteractiveTransition.mm +69 -0
  146. package/ios/RNSScreen.h +24 -5
  147. package/ios/RNSScreen.mm +652 -173
  148. package/ios/RNSScreenContainer.mm +12 -1
  149. package/ios/RNSScreenContentWrapper.h +44 -0
  150. package/ios/RNSScreenContentWrapper.mm +67 -0
  151. package/ios/RNSScreenFooter.h +30 -0
  152. package/ios/RNSScreenFooter.mm +142 -0
  153. package/ios/RNSScreenNavigationContainer.mm +7 -0
  154. package/ios/RNSScreenStack.h +6 -0
  155. package/ios/RNSScreenStack.mm +333 -109
  156. package/ios/RNSScreenStackAnimator.h +15 -1
  157. package/ios/RNSScreenStackAnimator.mm +380 -115
  158. package/ios/RNSScreenStackHeaderConfig.h +74 -6
  159. package/ios/RNSScreenStackHeaderConfig.mm +338 -69
  160. package/ios/RNSScreenStackHeaderSubview.h +0 -7
  161. package/ios/RNSScreenStackHeaderSubview.mm +61 -24
  162. package/ios/RNSScreenWindowTraits.h +1 -1
  163. package/ios/RNSScreenWindowTraits.mm +24 -50
  164. package/ios/RNSSearchBar.h +5 -5
  165. package/ios/RNSSearchBar.mm +42 -11
  166. package/ios/events/RNSHeaderHeightChangeEvent.h +0 -1
  167. package/ios/events/RNSHeaderHeightChangeEvent.mm +15 -0
  168. package/ios/events/RNSScreenViewEvent.h +0 -1
  169. package/ios/utils/RCTSurfaceTouchHandler+RNSUtility.h +15 -0
  170. package/ios/utils/RCTSurfaceTouchHandler+RNSUtility.mm +14 -0
  171. package/ios/utils/RCTTouchHandler+RNSUtility.h +15 -0
  172. package/ios/utils/RCTTouchHandler+RNSUtility.mm +15 -0
  173. package/ios/utils/RNSDefines.h +7 -0
  174. package/ios/utils/RNSUIBarButtonItem.h +2 -0
  175. package/ios/utils/UINavigationBar+RNSUtility.h +37 -0
  176. package/ios/utils/UINavigationBar+RNSUtility.mm +44 -0
  177. package/ios/utils/UIView+RNSUtility.h +23 -0
  178. package/ios/utils/UIView+RNSUtility.mm +54 -0
  179. package/kepler-compatibility.json +2 -4
  180. package/lib/commonjs/TransitionProgressContext.js +1 -0
  181. package/lib/commonjs/TransitionProgressContext.js.map +1 -1
  182. package/lib/commonjs/components/DebugContainer.js +39 -0
  183. package/lib/commonjs/components/DebugContainer.js.map +1 -0
  184. package/lib/commonjs/components/DebugContainer.web.js +15 -0
  185. package/lib/commonjs/components/DebugContainer.web.js.map +1 -0
  186. package/lib/commonjs/components/FullWindowOverlay.js +31 -0
  187. package/lib/commonjs/components/FullWindowOverlay.js.map +1 -0
  188. package/lib/commonjs/components/FullWindowOverlay.web.js +9 -0
  189. package/lib/commonjs/components/FullWindowOverlay.web.js.map +1 -0
  190. package/lib/commonjs/components/Screen.js +286 -0
  191. package/lib/commonjs/components/Screen.js.map +1 -0
  192. package/lib/commonjs/components/Screen.web.js +47 -0
  193. package/lib/commonjs/components/Screen.web.js.map +1 -0
  194. package/lib/commonjs/components/ScreenContainer.js +32 -0
  195. package/lib/commonjs/components/ScreenContainer.js.map +1 -0
  196. package/lib/commonjs/components/ScreenContainer.web.js +10 -0
  197. package/lib/commonjs/components/ScreenContainer.web.js.map +1 -0
  198. package/lib/commonjs/components/ScreenContentWrapper.js +17 -0
  199. package/lib/commonjs/components/ScreenContentWrapper.js.map +1 -0
  200. package/lib/commonjs/components/ScreenContentWrapper.web.js +10 -0
  201. package/lib/commonjs/components/ScreenContentWrapper.web.js.map +1 -0
  202. package/lib/commonjs/components/ScreenFooter.js +25 -0
  203. package/lib/commonjs/components/ScreenFooter.js.map +1 -0
  204. package/lib/commonjs/components/ScreenFooter.web.js +11 -0
  205. package/lib/commonjs/components/ScreenFooter.web.js.map +1 -0
  206. package/lib/commonjs/components/ScreenStack.js +67 -0
  207. package/lib/commonjs/components/ScreenStack.js.map +1 -0
  208. package/lib/commonjs/components/ScreenStack.web.js +10 -0
  209. package/lib/commonjs/components/ScreenStack.web.js.map +1 -0
  210. package/lib/commonjs/components/ScreenStackHeaderConfig.js +90 -0
  211. package/lib/commonjs/components/ScreenStackHeaderConfig.js.map +1 -0
  212. package/lib/commonjs/components/ScreenStackHeaderConfig.web.js +27 -0
  213. package/lib/commonjs/components/ScreenStackHeaderConfig.web.js.map +1 -0
  214. package/lib/commonjs/components/ScreenStackItem.js +107 -0
  215. package/lib/commonjs/components/ScreenStackItem.js.map +1 -0
  216. package/lib/commonjs/components/SearchBar.js +63 -0
  217. package/lib/commonjs/components/SearchBar.js.map +1 -0
  218. package/lib/commonjs/components/SearchBar.web.js +10 -0
  219. package/lib/commonjs/components/SearchBar.web.js.map +1 -0
  220. package/lib/commonjs/components/helpers/DelayedFreeze.js +31 -0
  221. package/lib/commonjs/components/helpers/DelayedFreeze.js.map +1 -0
  222. package/lib/commonjs/components/helpers/usePrevious.js +15 -0
  223. package/lib/commonjs/components/helpers/usePrevious.js.map +1 -0
  224. package/lib/commonjs/contexts.js +11 -0
  225. package/lib/commonjs/contexts.js.map +1 -0
  226. package/lib/commonjs/core.js +40 -0
  227. package/lib/commonjs/core.js.map +1 -0
  228. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +16 -1
  229. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
  230. package/lib/commonjs/fabric/ModalScreenNativeComponent.js +14 -0
  231. package/lib/commonjs/fabric/ModalScreenNativeComponent.js.map +1 -0
  232. package/lib/commonjs/fabric/NativeScreensModule.js +10 -0
  233. package/lib/commonjs/fabric/NativeScreensModule.js.map +1 -0
  234. package/lib/commonjs/fabric/NativeScreensModule.web.js +8 -0
  235. package/lib/commonjs/fabric/NativeScreensModule.web.js.map +1 -0
  236. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +8 -11
  237. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -1
  238. package/lib/commonjs/fabric/ScreenContentWrapperNativeComponent.js +18 -0
  239. package/lib/commonjs/fabric/ScreenContentWrapperNativeComponent.js.map +1 -0
  240. package/lib/commonjs/fabric/ScreenFooterNativeComponent.js +10 -0
  241. package/lib/commonjs/fabric/ScreenFooterNativeComponent.js.map +1 -0
  242. package/lib/commonjs/fabric/ScreenNativeComponent.js +16 -16
  243. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
  244. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +2 -1
  245. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
  246. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +10 -9
  247. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  248. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +5 -2
  249. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  250. package/lib/commonjs/fabric/ScreenStackNativeComponent.js +8 -11
  251. package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
  252. package/lib/commonjs/fabric/SearchBarNativeComponent.js +4 -5
  253. package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
  254. package/lib/commonjs/gesture-handler/GestureDetectorProvider.js +19 -0
  255. package/lib/commonjs/gesture-handler/GestureDetectorProvider.js.map +1 -0
  256. package/lib/commonjs/gesture-handler/RNScreensTurboModule.js +8 -0
  257. package/lib/commonjs/gesture-handler/RNScreensTurboModule.js.map +1 -0
  258. package/lib/commonjs/gesture-handler/ScreenGestureDetector.js +201 -0
  259. package/lib/commonjs/gesture-handler/ScreenGestureDetector.js.map +1 -0
  260. package/lib/commonjs/gesture-handler/constraints.js +64 -0
  261. package/lib/commonjs/gesture-handler/constraints.js.map +1 -0
  262. package/lib/commonjs/gesture-handler/defaults.js +45 -0
  263. package/lib/commonjs/gesture-handler/defaults.js.map +1 -0
  264. package/lib/commonjs/gesture-handler/fabricUtils.js +66 -0
  265. package/lib/commonjs/gesture-handler/fabricUtils.js.map +1 -0
  266. package/lib/commonjs/gesture-handler/fabricUtils.web.js +17 -0
  267. package/lib/commonjs/gesture-handler/fabricUtils.web.js.map +1 -0
  268. package/lib/commonjs/gesture-handler/index.js +14 -0
  269. package/lib/commonjs/gesture-handler/index.js.map +1 -0
  270. package/lib/commonjs/index.js +157 -93
  271. package/lib/commonjs/index.js.map +1 -1
  272. package/lib/commonjs/native-stack/contexts/GHContext.js +12 -0
  273. package/lib/commonjs/native-stack/contexts/GHContext.js.map +1 -0
  274. package/lib/commonjs/native-stack/index.js.map +1 -1
  275. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +21 -20
  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.map +1 -1
  279. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -1
  280. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
  281. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  282. package/lib/commonjs/native-stack/utils/getStatusBarHeight.js +22 -0
  283. package/lib/commonjs/native-stack/utils/getStatusBarHeight.js.map +1 -0
  284. package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -1
  285. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js +2 -4
  286. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -1
  287. package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -1
  288. package/lib/commonjs/native-stack/views/FontProcessor.js +1 -3
  289. package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -1
  290. package/lib/commonjs/native-stack/views/FooterComponent.js +17 -0
  291. package/lib/commonjs/native-stack/views/FooterComponent.js.map +1 -0
  292. package/lib/commonjs/native-stack/views/HeaderConfig.js +21 -13
  293. package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -1
  294. package/lib/commonjs/native-stack/views/NativeStackView.js +118 -52
  295. package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
  296. package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js.map +1 -1
  297. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +15 -21
  298. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
  299. package/lib/commonjs/reanimated/ReanimatedScreen.js +2 -2
  300. package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -1
  301. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +8 -16
  302. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -1
  303. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
  304. package/lib/commonjs/reanimated/index.js.map +1 -1
  305. package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js +2 -2
  306. package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js.map +1 -1
  307. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -1
  308. package/lib/commonjs/types.js.map +1 -1
  309. package/lib/commonjs/useTransitionProgress.js.map +1 -1
  310. package/lib/commonjs/utils.js +28 -6
  311. package/lib/commonjs/utils.js.map +1 -1
  312. package/lib/module/TransitionProgressContext.js +2 -0
  313. package/lib/module/TransitionProgressContext.js.map +1 -1
  314. package/lib/module/components/DebugContainer.js +30 -0
  315. package/lib/module/components/DebugContainer.js.map +1 -0
  316. package/lib/module/components/DebugContainer.web.js +6 -0
  317. package/lib/module/components/DebugContainer.web.js.map +1 -0
  318. package/lib/module/components/FullWindowOverlay.js +24 -0
  319. package/lib/module/components/FullWindowOverlay.js.map +1 -0
  320. package/lib/module/components/FullWindowOverlay.web.js +3 -0
  321. package/lib/module/components/FullWindowOverlay.web.js.map +1 -0
  322. package/lib/module/components/Screen.js +282 -0
  323. package/lib/module/components/Screen.js.map +1 -0
  324. package/lib/module/components/Screen.web.js +40 -0
  325. package/lib/module/components/Screen.web.js.map +1 -0
  326. package/lib/module/components/ScreenContainer.js +26 -0
  327. package/lib/module/components/ScreenContainer.js.map +1 -0
  328. package/lib/module/components/ScreenContainer.web.js +4 -0
  329. package/lib/module/components/ScreenContainer.web.js.map +1 -0
  330. package/lib/module/components/ScreenContentWrapper.js +10 -0
  331. package/lib/module/components/ScreenContentWrapper.js.map +1 -0
  332. package/lib/module/components/ScreenContentWrapper.web.js +4 -0
  333. package/lib/module/components/ScreenContentWrapper.web.js.map +1 -0
  334. package/lib/module/components/ScreenFooter.js +18 -0
  335. package/lib/module/components/ScreenFooter.js.map +1 -0
  336. package/lib/module/components/ScreenFooter.web.js +6 -0
  337. package/lib/module/components/ScreenFooter.web.js.map +1 -0
  338. package/lib/module/components/ScreenStack.js +63 -0
  339. package/lib/module/components/ScreenStack.js.map +1 -0
  340. package/lib/module/components/ScreenStack.web.js +4 -0
  341. package/lib/module/components/ScreenStack.web.js.map +1 -0
  342. package/lib/module/components/ScreenStackHeaderConfig.js +81 -0
  343. package/lib/module/components/ScreenStackHeaderConfig.js.map +1 -0
  344. package/lib/module/components/ScreenStackHeaderConfig.web.js +14 -0
  345. package/lib/module/components/ScreenStackHeaderConfig.web.js.map +1 -0
  346. package/lib/module/components/ScreenStackItem.js +98 -0
  347. package/lib/module/components/ScreenStackItem.js.map +1 -0
  348. package/lib/module/components/SearchBar.js +57 -0
  349. package/lib/module/components/SearchBar.js.map +1 -0
  350. package/lib/module/components/SearchBar.web.js +4 -0
  351. package/lib/module/components/SearchBar.web.js.map +1 -0
  352. package/lib/module/components/helpers/DelayedFreeze.js +24 -0
  353. package/lib/module/components/helpers/DelayedFreeze.js.map +1 -0
  354. package/lib/module/components/helpers/usePrevious.js +9 -0
  355. package/lib/module/components/helpers/usePrevious.js.map +1 -0
  356. package/lib/module/contexts.js +4 -0
  357. package/lib/module/contexts.js.map +1 -0
  358. package/lib/module/core.js +31 -0
  359. package/lib/module/core.js.map +1 -0
  360. package/lib/module/fabric/FullWindowOverlayNativeComponent.js +16 -0
  361. package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
  362. package/lib/module/fabric/ModalScreenNativeComponent.js +10 -0
  363. package/lib/module/fabric/ModalScreenNativeComponent.js.map +1 -0
  364. package/lib/module/fabric/NativeScreensModule.js +5 -0
  365. package/lib/module/fabric/NativeScreensModule.js.map +1 -0
  366. package/lib/module/fabric/NativeScreensModule.web.js +2 -0
  367. package/lib/module/fabric/NativeScreensModule.web.js.map +1 -0
  368. package/lib/module/fabric/ScreenContainerNativeComponent.js +3 -4
  369. package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -1
  370. package/lib/module/fabric/ScreenContentWrapperNativeComponent.js +10 -0
  371. package/lib/module/fabric/ScreenContentWrapperNativeComponent.js.map +1 -0
  372. package/lib/module/fabric/ScreenFooterNativeComponent.js +3 -0
  373. package/lib/module/fabric/ScreenFooterNativeComponent.js.map +1 -0
  374. package/lib/module/fabric/ScreenNativeComponent.js +11 -8
  375. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
  376. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +2 -0
  377. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
  378. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +8 -2
  379. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  380. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +5 -1
  381. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  382. package/lib/module/fabric/ScreenStackNativeComponent.js +3 -3
  383. package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
  384. package/lib/module/fabric/SearchBarNativeComponent.js +3 -1
  385. package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
  386. package/lib/module/gesture-handler/GestureDetectorProvider.js +12 -0
  387. package/lib/module/gesture-handler/GestureDetectorProvider.js.map +1 -0
  388. package/lib/module/gesture-handler/RNScreensTurboModule.js +2 -0
  389. package/lib/module/gesture-handler/RNScreensTurboModule.js.map +1 -0
  390. package/lib/module/gesture-handler/ScreenGestureDetector.js +193 -0
  391. package/lib/module/gesture-handler/ScreenGestureDetector.js.map +1 -0
  392. package/lib/module/gesture-handler/constraints.js +56 -0
  393. package/lib/module/gesture-handler/constraints.js.map +1 -0
  394. package/lib/module/gesture-handler/defaults.js +39 -0
  395. package/lib/module/gesture-handler/defaults.js.map +1 -0
  396. package/lib/module/gesture-handler/fabricUtils.js +61 -0
  397. package/lib/module/gesture-handler/fabricUtils.js.map +1 -0
  398. package/lib/module/gesture-handler/fabricUtils.web.js +10 -0
  399. package/lib/module/gesture-handler/fabricUtils.web.js.map +1 -0
  400. package/lib/module/gesture-handler/index.js +5 -0
  401. package/lib/module/gesture-handler/index.js.map +1 -0
  402. package/lib/module/index.js +29 -63
  403. package/lib/module/index.js.map +1 -1
  404. package/lib/module/native-stack/contexts/GHContext.js +6 -0
  405. package/lib/module/native-stack/contexts/GHContext.js.map +1 -0
  406. package/lib/module/native-stack/index.js.map +1 -1
  407. package/lib/module/native-stack/navigators/createNativeStackNavigator.js +21 -20
  408. package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  409. package/lib/module/native-stack/types.js.map +1 -1
  410. package/lib/module/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -1
  411. package/lib/module/native-stack/utils/HeaderHeightContext.js.map +1 -1
  412. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
  413. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  414. package/lib/module/native-stack/utils/getStatusBarHeight.js +16 -0
  415. package/lib/module/native-stack/utils/getStatusBarHeight.js.map +1 -0
  416. package/lib/module/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -1
  417. package/lib/module/native-stack/utils/useBackPressSubscription.js +2 -4
  418. package/lib/module/native-stack/utils/useBackPressSubscription.js.map +1 -1
  419. package/lib/module/native-stack/utils/useHeaderHeight.js.map +1 -1
  420. package/lib/module/native-stack/views/FontProcessor.js +2 -3
  421. package/lib/module/native-stack/views/FontProcessor.js.map +1 -1
  422. package/lib/module/native-stack/views/FooterComponent.js +10 -0
  423. package/lib/module/native-stack/views/FooterComponent.js.map +1 -0
  424. package/lib/module/native-stack/views/HeaderConfig.js +13 -6
  425. package/lib/module/native-stack/views/HeaderConfig.js.map +1 -1
  426. package/lib/module/native-stack/views/NativeStackView.js +114 -46
  427. package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
  428. package/lib/module/reanimated/ReanimatedHeaderHeightContext.js.map +1 -1
  429. package/lib/module/reanimated/ReanimatedNativeStackScreen.js +8 -12
  430. package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
  431. package/lib/module/reanimated/ReanimatedScreen.js +1 -2
  432. package/lib/module/reanimated/ReanimatedScreen.js.map +1 -1
  433. package/lib/module/reanimated/ReanimatedScreenProvider.js +7 -15
  434. package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -1
  435. package/lib/module/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
  436. package/lib/module/reanimated/index.js.map +1 -1
  437. package/lib/module/reanimated/useReanimatedHeaderHeight.js +1 -1
  438. package/lib/module/reanimated/useReanimatedHeaderHeight.js.map +1 -1
  439. package/lib/module/reanimated/useReanimatedTransitionProgress.js.map +1 -1
  440. package/lib/module/types.js.map +1 -1
  441. package/lib/module/useTransitionProgress.js.map +1 -1
  442. package/lib/module/utils.js +26 -5
  443. package/lib/module/utils.js.map +1 -1
  444. package/lib/typescript/TransitionProgressContext.d.ts +2 -1
  445. package/lib/typescript/TransitionProgressContext.d.ts.map +1 -0
  446. package/lib/typescript/components/DebugContainer.d.ts +15 -0
  447. package/lib/typescript/components/DebugContainer.d.ts.map +1 -0
  448. package/lib/typescript/components/DebugContainer.web.d.ts +4 -0
  449. package/lib/typescript/components/DebugContainer.web.d.ts.map +1 -0
  450. package/lib/typescript/components/FullWindowOverlay.d.ts +6 -0
  451. package/lib/typescript/components/FullWindowOverlay.d.ts.map +1 -0
  452. package/lib/typescript/components/FullWindowOverlay.web.d.ts +6 -0
  453. package/lib/typescript/components/FullWindowOverlay.web.d.ts.map +1 -0
  454. package/lib/typescript/components/Screen.d.ts +8 -0
  455. package/lib/typescript/components/Screen.d.ts.map +1 -0
  456. package/lib/typescript/components/Screen.web.d.ts +11 -0
  457. package/lib/typescript/components/Screen.web.d.ts.map +1 -0
  458. package/lib/typescript/components/ScreenContainer.d.ts +5 -0
  459. package/lib/typescript/components/ScreenContainer.d.ts.map +1 -0
  460. package/lib/typescript/components/ScreenContainer.web.d.ts +4 -0
  461. package/lib/typescript/components/ScreenContainer.web.d.ts.map +1 -0
  462. package/lib/typescript/components/ScreenContentWrapper.d.ts +5 -0
  463. package/lib/typescript/components/ScreenContentWrapper.d.ts.map +1 -0
  464. package/lib/typescript/components/ScreenContentWrapper.web.d.ts +4 -0
  465. package/lib/typescript/components/ScreenContentWrapper.web.d.ts.map +1 -0
  466. package/lib/typescript/components/ScreenFooter.d.ts +12 -0
  467. package/lib/typescript/components/ScreenFooter.d.ts.map +1 -0
  468. package/lib/typescript/components/ScreenFooter.web.d.ts +6 -0
  469. package/lib/typescript/components/ScreenFooter.web.d.ts.map +1 -0
  470. package/lib/typescript/components/ScreenStack.d.ts +5 -0
  471. package/lib/typescript/components/ScreenStack.d.ts.map +1 -0
  472. package/lib/typescript/components/ScreenStack.web.d.ts +4 -0
  473. package/lib/typescript/components/ScreenStack.web.d.ts.map +1 -0
  474. package/lib/typescript/components/ScreenStackHeaderConfig.d.ts +13 -0
  475. package/lib/typescript/components/ScreenStackHeaderConfig.d.ts.map +1 -0
  476. package/lib/typescript/components/ScreenStackHeaderConfig.web.d.ts +13 -0
  477. package/lib/typescript/components/ScreenStackHeaderConfig.web.d.ts.map +1 -0
  478. package/lib/typescript/components/ScreenStackItem.d.ts +11 -0
  479. package/lib/typescript/components/ScreenStackItem.d.ts.map +1 -0
  480. package/lib/typescript/components/SearchBar.d.ts +5 -0
  481. package/lib/typescript/components/SearchBar.d.ts.map +1 -0
  482. package/lib/typescript/components/SearchBar.web.d.ts +4 -0
  483. package/lib/typescript/components/SearchBar.web.d.ts.map +1 -0
  484. package/lib/typescript/components/helpers/DelayedFreeze.d.ts +8 -0
  485. package/lib/typescript/components/helpers/DelayedFreeze.d.ts.map +1 -0
  486. package/lib/typescript/components/helpers/usePrevious.d.ts +2 -0
  487. package/lib/typescript/components/helpers/usePrevious.d.ts.map +1 -0
  488. package/lib/typescript/contexts.d.ts +5 -0
  489. package/lib/typescript/contexts.d.ts.map +1 -0
  490. package/lib/typescript/core.d.ts +6 -0
  491. package/lib/typescript/core.d.ts.map +1 -0
  492. package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts +1 -1
  493. package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts.map +1 -0
  494. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts +76 -0
  495. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts.map +1 -0
  496. package/lib/typescript/fabric/NativeScreensModule.d.ts +6 -0
  497. package/lib/typescript/fabric/NativeScreensModule.d.ts.map +1 -0
  498. package/lib/typescript/fabric/NativeScreensModule.web.d.ts +3 -0
  499. package/lib/typescript/fabric/NativeScreensModule.web.d.ts.map +1 -0
  500. package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts +1 -0
  501. package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts.map +1 -0
  502. package/lib/typescript/fabric/ScreenContentWrapperNativeComponent.d.ts +6 -0
  503. package/lib/typescript/fabric/ScreenContentWrapperNativeComponent.d.ts.map +1 -0
  504. package/lib/typescript/fabric/ScreenFooterNativeComponent.d.ts +7 -0
  505. package/lib/typescript/fabric/ScreenFooterNativeComponent.d.ts.map +1 -0
  506. package/lib/typescript/fabric/ScreenNativeComponent.d.ts +34 -24
  507. package/lib/typescript/fabric/ScreenNativeComponent.d.ts.map +1 -0
  508. package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts +1 -1
  509. package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts.map +1 -0
  510. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +12 -2
  511. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -0
  512. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +2 -2
  513. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -0
  514. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +4 -2
  515. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts.map +1 -0
  516. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +17 -16
  517. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts.map +1 -0
  518. package/lib/typescript/gesture-handler/GestureDetectorProvider.d.ts +5 -0
  519. package/lib/typescript/gesture-handler/GestureDetectorProvider.d.ts.map +1 -0
  520. package/lib/typescript/gesture-handler/RNScreensTurboModule.d.ts +13 -0
  521. package/lib/typescript/gesture-handler/RNScreensTurboModule.d.ts.map +1 -0
  522. package/lib/typescript/gesture-handler/ScreenGestureDetector.d.ts +5 -0
  523. package/lib/typescript/gesture-handler/ScreenGestureDetector.d.ts.map +1 -0
  524. package/lib/typescript/gesture-handler/constraints.d.ts +6 -0
  525. package/lib/typescript/gesture-handler/constraints.d.ts.map +1 -0
  526. package/lib/typescript/gesture-handler/defaults.d.ts +20 -0
  527. package/lib/typescript/gesture-handler/defaults.d.ts.map +1 -0
  528. package/lib/typescript/gesture-handler/fabricUtils.d.ts +10 -0
  529. package/lib/typescript/gesture-handler/fabricUtils.d.ts.map +1 -0
  530. package/lib/typescript/gesture-handler/fabricUtils.web.d.ts +6 -0
  531. package/lib/typescript/gesture-handler/fabricUtils.web.d.ts.map +1 -0
  532. package/lib/typescript/gesture-handler/index.d.ts +2 -0
  533. package/lib/typescript/gesture-handler/index.d.ts.map +1 -0
  534. package/lib/typescript/index.d.ts +25 -31
  535. package/lib/typescript/index.d.ts.map +1 -0
  536. package/lib/typescript/native-stack/contexts/GHContext.d.ts +4 -0
  537. package/lib/typescript/native-stack/contexts/GHContext.d.ts.map +1 -0
  538. package/lib/typescript/native-stack/index.d.ts +1 -0
  539. package/lib/typescript/native-stack/index.d.ts.map +1 -0
  540. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +4 -0
  541. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts.map +1 -0
  542. package/lib/typescript/native-stack/types.d.ts +191 -33
  543. package/lib/typescript/native-stack/types.d.ts.map +1 -0
  544. package/lib/typescript/native-stack/utils/AnimatedHeaderHeightContext.d.ts +1 -0
  545. package/lib/typescript/native-stack/utils/AnimatedHeaderHeightContext.d.ts.map +1 -0
  546. package/lib/typescript/native-stack/utils/HeaderHeightContext.d.ts +1 -0
  547. package/lib/typescript/native-stack/utils/HeaderHeightContext.d.ts.map +1 -0
  548. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts +2 -1
  549. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts.map +1 -0
  550. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +3 -2
  551. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts.map +1 -0
  552. package/lib/typescript/native-stack/utils/getStatusBarHeight.d.ts +3 -0
  553. package/lib/typescript/native-stack/utils/getStatusBarHeight.d.ts.map +1 -0
  554. package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts +2 -1
  555. package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts.map +1 -0
  556. package/lib/typescript/native-stack/utils/useBackPressSubscription.d.ts +1 -0
  557. package/lib/typescript/native-stack/utils/useBackPressSubscription.d.ts.map +1 -0
  558. package/lib/typescript/native-stack/utils/useHeaderHeight.d.ts +1 -0
  559. package/lib/typescript/native-stack/utils/useHeaderHeight.d.ts.map +1 -0
  560. package/lib/typescript/native-stack/views/FontProcessor.d.ts +1 -0
  561. package/lib/typescript/native-stack/views/FontProcessor.d.ts.map +1 -0
  562. package/lib/typescript/native-stack/views/FooterComponent.d.ts +7 -0
  563. package/lib/typescript/native-stack/views/FooterComponent.d.ts.map +1 -0
  564. package/lib/typescript/native-stack/views/HeaderConfig.d.ts +3 -2
  565. package/lib/typescript/native-stack/views/HeaderConfig.d.ts.map +1 -0
  566. package/lib/typescript/native-stack/views/NativeStackView.d.ts +2 -1
  567. package/lib/typescript/native-stack/views/NativeStackView.d.ts.map +1 -0
  568. package/lib/typescript/reanimated/ReanimatedHeaderHeightContext.d.ts +1 -0
  569. package/lib/typescript/reanimated/ReanimatedHeaderHeightContext.d.ts.map +1 -0
  570. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +3 -3
  571. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts.map +1 -0
  572. package/lib/typescript/reanimated/ReanimatedScreen.d.ts +3 -3
  573. package/lib/typescript/reanimated/ReanimatedScreen.d.ts.map +1 -0
  574. package/lib/typescript/reanimated/ReanimatedScreenProvider.d.ts +1 -0
  575. package/lib/typescript/reanimated/ReanimatedScreenProvider.d.ts.map +1 -0
  576. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts +2 -1
  577. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts.map +1 -0
  578. package/lib/typescript/reanimated/index.d.ts +1 -0
  579. package/lib/typescript/reanimated/index.d.ts.map +1 -0
  580. package/lib/typescript/reanimated/useReanimatedHeaderHeight.d.ts +2 -3
  581. package/lib/typescript/reanimated/useReanimatedHeaderHeight.d.ts.map +1 -0
  582. package/lib/typescript/reanimated/useReanimatedTransitionProgress.d.ts +4 -9
  583. package/lib/typescript/reanimated/useReanimatedTransitionProgress.d.ts.map +1 -0
  584. package/lib/typescript/types.d.ts +186 -36
  585. package/lib/typescript/types.d.ts.map +1 -0
  586. package/lib/typescript/useTransitionProgress.d.ts +4 -3
  587. package/lib/typescript/useTransitionProgress.d.ts.map +1 -0
  588. package/lib/typescript/utils.d.ts +27 -1
  589. package/lib/typescript/utils.d.ts.map +1 -0
  590. package/native-stack/README.md +156 -108
  591. package/native-stack/package.json +4 -4
  592. package/package.json +1 -1
  593. package/react-native.config.js +19 -16
  594. package/reanimated/package.json +1 -1
  595. package/src/TransitionProgressContext.tsx +3 -1
  596. package/src/components/DebugContainer.tsx +46 -0
  597. package/src/components/DebugContainer.web.tsx +7 -0
  598. package/src/components/FullWindowOverlay.tsx +33 -0
  599. package/src/components/FullWindowOverlay.web.tsx +6 -0
  600. package/src/components/Screen.tsx +392 -0
  601. package/src/components/Screen.web.tsx +46 -0
  602. package/src/components/ScreenContainer.tsx +28 -0
  603. package/src/components/ScreenContainer.web.tsx +5 -0
  604. package/src/components/ScreenContentWrapper.tsx +9 -0
  605. package/src/components/ScreenContentWrapper.web.tsx +5 -0
  606. package/src/components/ScreenFooter.tsx +20 -0
  607. package/src/components/ScreenFooter.web.tsx +7 -0
  608. package/src/components/ScreenStack.tsx +112 -0
  609. package/src/components/ScreenStack.web.tsx +5 -0
  610. package/src/components/ScreenStackHeaderConfig.tsx +122 -0
  611. package/src/components/ScreenStackHeaderConfig.web.tsx +39 -0
  612. package/src/components/ScreenStackItem.tsx +174 -0
  613. package/src/components/SearchBar.tsx +102 -0
  614. package/src/components/SearchBar.web.tsx +5 -0
  615. package/src/components/helpers/DelayedFreeze.tsx +27 -0
  616. package/src/components/helpers/usePrevious.tsx +11 -0
  617. package/src/contexts.tsx +9 -0
  618. package/src/core.ts +45 -0
  619. package/src/fabric/FullWindowOverlayNativeComponent.ts +16 -0
  620. package/src/fabric/ModalScreenNativeComponent.ts +115 -0
  621. package/src/fabric/NativeScreensModule.ts +8 -0
  622. package/src/fabric/NativeScreensModule.web.ts +1 -0
  623. package/src/fabric/ScreenContainerNativeComponent.ts +3 -3
  624. package/src/fabric/ScreenContentWrapperNativeComponent.ts +14 -0
  625. package/src/fabric/ScreenFooterNativeComponent.ts +6 -0
  626. package/src/fabric/ScreenNativeComponent.ts +36 -23
  627. package/src/fabric/ScreenNavigationContainerNativeComponent.ts +3 -1
  628. package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +38 -2
  629. package/src/fabric/ScreenStackHeaderSubviewNativeComponent.ts +5 -1
  630. package/src/fabric/ScreenStackNativeComponent.ts +3 -2
  631. package/src/fabric/SearchBarNativeComponent.ts +17 -13
  632. package/src/gesture-handler/GestureDetectorProvider.tsx +16 -0
  633. package/src/gesture-handler/RNScreensTurboModule.ts +13 -0
  634. package/src/gesture-handler/ScreenGestureDetector.tsx +241 -0
  635. package/src/gesture-handler/constraints.ts +87 -0
  636. package/src/gesture-handler/defaults.ts +46 -0
  637. package/src/gesture-handler/fabricUtils.ts +86 -0
  638. package/src/gesture-handler/fabricUtils.web.ts +10 -0
  639. package/src/gesture-handler/index.tsx +4 -0
  640. package/src/index.tsx +49 -112
  641. package/src/native-stack/contexts/GHContext.tsx +9 -0
  642. package/src/native-stack/navigators/createNativeStackNavigator.tsx +6 -3
  643. package/src/native-stack/types.tsx +204 -31
  644. package/src/native-stack/utils/getDefaultHeaderHeight.tsx +2 -2
  645. package/src/native-stack/utils/getStatusBarHeight.tsx +22 -0
  646. package/src/native-stack/utils/useAnimatedHeaderHeight.tsx +1 -1
  647. package/src/native-stack/utils/useBackPressSubscription.tsx +1 -1
  648. package/src/native-stack/utils/useHeaderHeight.tsx +1 -1
  649. package/src/native-stack/views/FontProcessor.tsx +2 -2
  650. package/src/native-stack/views/FooterComponent.tsx +10 -0
  651. package/src/native-stack/views/HeaderConfig.tsx +20 -5
  652. package/src/native-stack/views/NativeStackView.tsx +137 -53
  653. package/src/reanimated/ReanimatedHeaderHeightContext.tsx +1 -1
  654. package/src/reanimated/ReanimatedNativeStackScreen.tsx +15 -13
  655. package/src/reanimated/ReanimatedScreen.tsx +4 -3
  656. package/src/reanimated/ReanimatedScreenProvider.tsx +3 -2
  657. package/src/reanimated/useReanimatedHeaderHeight.tsx +2 -2
  658. package/src/reanimated/useReanimatedTransitionProgress.tsx +1 -1
  659. package/src/types.tsx +210 -40
  660. package/src/useTransitionProgress.tsx +1 -1
  661. package/src/utils.ts +27 -5
  662. package/windows/README.md +4 -1
  663. package/windows/RNScreens/Screen.h +3 -1
  664. package/SystemBundles/8f5a820b958535e533acb38dbc0c72c1837721b9db075f4a1740e42b9fee3910.bundle +0 -33668
  665. package/SystemBundles/8f5a820b958535e533acb38dbc0c72c1837721b9db075f4a1740e42b9fee3910.map +0 -1
  666. package/SystemModules/amzn__react-native-screens.modules.txt +0 -101
  667. package/SystemModules/amzn__react-native-screens.private.modules.txt +0 -244
  668. package/lib/commonjs/index.native.js +0 -407
  669. package/lib/commonjs/index.native.js.map +0 -1
  670. package/lib/module/index.native.js +0 -410
  671. package/lib/module/index.native.js.map +0 -1
  672. package/lib/typescript/index.native.d.ts +0 -2
  673. package/src/index.native.tsx +0 -599
@@ -0,0 +1,36 @@
1
+ #pragma once
2
+
3
+ #include <react/renderer/graphics/Float.h>
4
+ #include <react/renderer/graphics/Size.h>
5
+ #include <cmath>
6
+ #include <concepts>
7
+
8
+ namespace rnscreens {
9
+
10
+ namespace react = facebook::react;
11
+
12
+ template <typename T>
13
+ requires std::is_floating_point_v<T>
14
+ inline constexpr bool equalWithRespectToEps(const T a, const T b, const T eps) {
15
+ return std::abs(a - b) <= eps;
16
+ }
17
+
18
+ /**
19
+ * Compares given two frame sizes with respect to the epsilon.
20
+ *
21
+ * @param first first frame size
22
+ * @param second second frame size
23
+ * @param eps comparison precision, defaults to 0.01, which should ensure that
24
+ * precision of comparison is under 1px
25
+ * @return whether the frame dimensions are the same with respect to given
26
+ * epsilon
27
+ */
28
+ inline constexpr bool checkFrameSizesEqualWithEps(
29
+ const react::Size &first,
30
+ const react::Size &second,
31
+ const react::Float eps = 0.01) {
32
+ return equalWithRespectToEps(first.width, second.width, eps) &&
33
+ equalWithRespectToEps(first.height, second.height, eps);
34
+ }
35
+
36
+ } // namespace rnscreens
@@ -0,0 +1,25 @@
1
+ #include "RNSScreenRemovalListener.h"
2
+ #include <react/renderer/mounting/ShadowViewMutation.h>
3
+ using namespace facebook::react;
4
+
5
+ std::optional<MountingTransaction> RNSScreenRemovalListener::pullTransaction(
6
+ SurfaceId surfaceId,
7
+ MountingTransaction::Number transactionNumber,
8
+ const TransactionTelemetry &telemetry,
9
+ ShadowViewMutationList mutations) const {
10
+ for (const ShadowViewMutation &mutation : mutations) {
11
+ if (mutation.type == ShadowViewMutation::Type::Remove &&
12
+ mutation.oldChildShadowView.componentName != nullptr &&
13
+ strcmp(mutation.parentShadowView.componentName, "RNSScreenStack") ==
14
+ 0) {
15
+ listenerFunction_(mutation.oldChildShadowView.tag);
16
+ }
17
+ }
18
+
19
+ return MountingTransaction{
20
+ surfaceId, transactionNumber, std::move(mutations), telemetry};
21
+ }
22
+
23
+ bool RNSScreenRemovalListener::shouldOverridePullTransaction() const {
24
+ return true;
25
+ }
@@ -0,0 +1,20 @@
1
+ #pragma once
2
+
3
+ #include <react/renderer/componentregistry/ComponentDescriptorFactory.h>
4
+ #include <react/renderer/mounting/MountingOverrideDelegate.h>
5
+ #include <react/renderer/mounting/ShadowView.h>
6
+
7
+ using namespace facebook::react;
8
+
9
+ struct RNSScreenRemovalListener : public MountingOverrideDelegate {
10
+ std::function<void(int)> listenerFunction_;
11
+ RNSScreenRemovalListener(std::function<void(int)> &&listenerFunction_)
12
+ : listenerFunction_(std::move(listenerFunction_)) {}
13
+
14
+ bool shouldOverridePullTransaction() const override;
15
+ std::optional<MountingTransaction> pullTransaction(
16
+ SurfaceId surfaceId,
17
+ MountingTransaction::Number number,
18
+ const TransactionTelemetry &telemetry,
19
+ ShadowViewMutationList mutations) const override;
20
+ };
@@ -0,0 +1,115 @@
1
+ #include "RNScreensTurboModule.h"
2
+
3
+ using namespace facebook;
4
+
5
+ namespace RNScreens {
6
+
7
+ const char RNScreensTurboModule::MODULE_NAME[] = "RNScreensTurboModule";
8
+
9
+ std::function<std::array<int, 2>(int)> RNScreensTurboModule::startTransition_;
10
+ std::function<void(int, double)> RNScreensTurboModule::updateTransition_;
11
+ std::function<void(int, bool)> RNScreensTurboModule::finishTransition_;
12
+ std::function<void(int)> RNScreensTurboModule::disableSwipeBackForTopScreen_;
13
+
14
+ RNScreensTurboModule::RNScreensTurboModule(
15
+ std::function<std::array<int, 2>(int)> startTransition,
16
+ std::function<void(int, double)> updateTransition,
17
+ std::function<void(int, bool)> finishTransition,
18
+ std::function<void(int)> disableSwipeBackForTopScreen) {
19
+ startTransition_ = startTransition;
20
+ updateTransition_ = updateTransition;
21
+ finishTransition_ = finishTransition;
22
+ disableSwipeBackForTopScreen_ = disableSwipeBackForTopScreen;
23
+ }
24
+
25
+ RNScreensTurboModule::~RNScreensTurboModule(){};
26
+
27
+ jsi::Value RNScreensTurboModule::get(
28
+ jsi::Runtime &rt,
29
+ const jsi::PropNameID &name) {
30
+ if (name.utf8(rt) == "startTransition") {
31
+ return jsi::Function::createFromHostFunction(rt, name, 1, startTransition);
32
+ } else if (name.utf8(rt) == "updateTransition") {
33
+ return jsi::Function::createFromHostFunction(rt, name, 2, updateTransition);
34
+ } else if (name.utf8(rt) == "finishTransition") {
35
+ return jsi::Function::createFromHostFunction(rt, name, 2, finishTransition);
36
+ } else if (name.utf8(rt) == "disableSwipeBackForTopScreen") {
37
+ return jsi::Function::createFromHostFunction(
38
+ rt, name, 1, disableSwipeBackForTopScreen);
39
+ }
40
+ return jsi::Value::undefined();
41
+ }
42
+
43
+ void RNScreensTurboModule::set(
44
+ jsi::Runtime &,
45
+ const jsi::PropNameID &,
46
+ const jsi::Value &){};
47
+
48
+ std::vector<jsi::PropNameID> RNScreensTurboModule::getPropertyNames(
49
+ jsi::Runtime &rt) {
50
+ std::vector<jsi::PropNameID> properties;
51
+ properties.push_back(jsi::PropNameID::forUtf8(rt, "startTransition"));
52
+ properties.push_back(jsi::PropNameID::forUtf8(rt, "updateTransition"));
53
+ properties.push_back(jsi::PropNameID::forUtf8(rt, "finishTransition"));
54
+ properties.push_back(
55
+ jsi::PropNameID::forUtf8(rt, "disableSwipeBackForTopScreen"));
56
+ return properties;
57
+ }
58
+
59
+ JSI_HOST_FUNCTION(RNScreensTurboModule::startTransition) {
60
+ if (count < 1) {
61
+ throw jsi::JSError(
62
+ rt, "[RNScreens] `startTransition` method requires 1 argument.");
63
+ }
64
+ int stackTag = arguments[0].asNumber();
65
+ auto screenTags = startTransition_(stackTag);
66
+ jsi::Object screenTagsObject(rt);
67
+ jsi::Value topScreenTag, belowTopScreenTag, canStartTransition;
68
+ if (screenTags[0] > -1) {
69
+ topScreenTag = jsi::Value(screenTags[0]);
70
+ belowTopScreenTag = jsi::Value(screenTags[1]);
71
+ canStartTransition = jsi::Value(true);
72
+ } else {
73
+ topScreenTag = jsi::Value(-1);
74
+ belowTopScreenTag = jsi::Value(-1);
75
+ canStartTransition = jsi::Value(false);
76
+ }
77
+ screenTagsObject.setProperty(rt, "topScreenTag", topScreenTag);
78
+ screenTagsObject.setProperty(rt, "belowTopScreenTag", belowTopScreenTag);
79
+ screenTagsObject.setProperty(rt, "canStartTransition", canStartTransition);
80
+ return screenTagsObject;
81
+ }
82
+
83
+ JSI_HOST_FUNCTION(RNScreensTurboModule::updateTransition) {
84
+ if (count < 2) {
85
+ throw jsi::JSError(
86
+ rt, "[RNScreens] `updateTransition` requires 2 arguments.");
87
+ }
88
+ int stackTag = arguments[0].asNumber();
89
+ double progress = arguments[1].asNumber();
90
+ updateTransition_(stackTag, progress);
91
+ return jsi::Value::undefined();
92
+ }
93
+
94
+ JSI_HOST_FUNCTION(RNScreensTurboModule::finishTransition) {
95
+ if (count < 2) {
96
+ throw jsi::JSError(
97
+ rt, "[RNScreens] `finishTransition` requires 2 arguments.");
98
+ }
99
+ int stackTag = arguments[0].asNumber();
100
+ bool canceled = arguments[1].getBool();
101
+ finishTransition_(stackTag, canceled);
102
+ return jsi::Value::undefined();
103
+ }
104
+
105
+ JSI_HOST_FUNCTION(RNScreensTurboModule::disableSwipeBackForTopScreen) {
106
+ if (count < 1) {
107
+ throw jsi::JSError(
108
+ rt, "[RNScreens] `startTransition` method requires 1 argument.");
109
+ }
110
+ int stackTag = arguments[0].asNumber();
111
+ disableSwipeBackForTopScreen_(stackTag);
112
+ return jsi::Value::undefined();
113
+ }
114
+
115
+ } // namespace RNScreens
@@ -0,0 +1,40 @@
1
+ #include <jsi/jsi.h>
2
+ #include <array>
3
+
4
+ #define JSI_HOST_FUNCTION(NAME) \
5
+ jsi::Value NAME( \
6
+ jsi::Runtime &rt, \
7
+ const jsi::Value &thisValue, \
8
+ const jsi::Value *arguments, \
9
+ size_t count)
10
+
11
+ using namespace facebook;
12
+
13
+ namespace RNScreens {
14
+
15
+ class RNScreensTurboModule : public jsi::HostObject {
16
+ static std::function<std::array<int, 2>(int)> startTransition_;
17
+ static std::function<void(int, double)> updateTransition_;
18
+ static std::function<void(int, bool)> finishTransition_;
19
+ static std::function<void(int)> disableSwipeBackForTopScreen_;
20
+
21
+ public:
22
+ static const char MODULE_NAME[];
23
+
24
+ RNScreensTurboModule(
25
+ std::function<std::array<int, 2>(int)> startTransition,
26
+ std::function<void(int, double)> updateTransition,
27
+ std::function<void(int, bool)> finishTransition,
28
+ std::function<void(int)> disableSwipeBackForTopScreen);
29
+ ~RNScreensTurboModule() override;
30
+ jsi::Value get(jsi::Runtime &rt, const jsi::PropNameID &name) override;
31
+ void set(jsi::Runtime &, const jsi::PropNameID &, const jsi::Value &)
32
+ override;
33
+ std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime &rt) override;
34
+ static JSI_HOST_FUNCTION(startTransition);
35
+ static JSI_HOST_FUNCTION(updateTransition);
36
+ static JSI_HOST_FUNCTION(finishTransition);
37
+ static JSI_HOST_FUNCTION(disableSwipeBackForTopScreen);
38
+ };
39
+
40
+ } // namespace RNScreens
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../lib/commonjs/gesture-handler/index",
3
+ "module": "../lib/module/gesture-handler/index",
4
+ "react-native": "../src/gesture-handler/index",
5
+ "types": "../lib/typescript/gesture-handler/index"
6
+ }
package/ios/RNSConvert.h CHANGED
@@ -1,11 +1,23 @@
1
+ #import <UIKit/UIKit.h>
1
2
  #ifdef RCT_NEW_ARCH_ENABLED
2
3
  #import <react/renderer/components/rnscreens/Props.h>
4
+ #endif // RCT_NEW_ARCH_ENABLED
3
5
  #import "RNSEnums.h"
4
6
 
7
+ #ifdef RCT_NEW_ARCH_ENABLED
5
8
  namespace react = facebook::react;
9
+ #endif // RCT_NEW_ARCH_ENABLED
6
10
 
7
11
  @interface RNSConvert : NSObject
8
12
 
13
+ #ifdef RCT_NEW_ARCH_ENABLED
14
+
15
+ + (UISemanticContentAttribute)UISemanticContentAttributeFromCppEquivalent:
16
+ (react::RNSScreenStackHeaderConfigDirection)direction;
17
+
18
+ + (UINavigationItemBackButtonDisplayMode)UINavigationItemBackButtonDisplayModeFromCppEquivalent:
19
+ (react::RNSScreenStackHeaderConfigBackButtonDisplayMode)backButtonDisplayMode;
20
+
9
21
  + (RNSScreenStackPresentation)RNSScreenStackPresentationFromCppEquivalent:
10
22
  (react::RNSScreenStackPresentation)stackPresentation;
11
23
 
@@ -19,18 +31,26 @@ namespace react = facebook::react;
19
31
 
20
32
  + (RNSScreenSwipeDirection)RNSScreenSwipeDirectionFromCppEquivalent:(react::RNSScreenSwipeDirection)swipeDirection;
21
33
 
22
- + (RNSScreenDetentType)RNSScreenDetentTypeFromAllowedDetents:(react::RNSScreenSheetAllowedDetents)allowedDetents;
23
-
24
- + (RNSScreenDetentType)RNSScreenDetentTypeFromLargestUndimmedDetent:(react::RNSScreenSheetLargestUndimmedDetent)detent;
34
+ + (NSArray<NSNumber *> *)detentFractionsArrayFromVector:(const std::vector<react::Float> &)detents;
25
35
 
26
36
  + (NSDictionary *)gestureResponseDistanceDictFromCppStruct:
27
37
  (const react::RNSScreenGestureResponseDistanceStruct &)gestureResponseDistance;
28
38
 
39
+ #if !TARGET_OS_VISION
29
40
  + (UITextAutocapitalizationType)UITextAutocapitalizationTypeFromCppEquivalent:
30
41
  (react::RNSSearchBarAutoCapitalize)autoCapitalize;
42
+ #endif
31
43
 
32
44
  + (RNSSearchBarPlacement)RNSScreenSearchBarPlacementFromCppEquivalent:(react::RNSSearchBarPlacement)placement;
33
45
 
34
- @end
46
+ + (NSMutableArray<NSNumber *> *)arrayFromVector:(const std::vector<CGFloat> &)vector;
47
+
48
+ + (RNSBlurEffectStyle)RNSBlurEffectStyleFromCppEquivalent:(react::RNSScreenStackHeaderConfigBlurEffect)blurEffect;
35
49
 
36
50
  #endif // RCT_NEW_ARCH_ENABLED
51
+
52
+ /// This method fails (by assertion) when `blurEffect == RNSBlurEffectStyleNone` which has no counter part in the UIKit
53
+ /// type.
54
+ + (UIBlurEffectStyle)tryConvertRNSBlurEffectStyleToUIBlurEffectStyle:(RNSBlurEffectStyle)blurEffect;
55
+
56
+ @end
package/ios/RNSConvert.mm CHANGED
@@ -1,25 +1,59 @@
1
1
  #import "RNSConvert.h"
2
2
 
3
- #ifdef RCT_NEW_ARCH_ENABLED
3
+ #ifndef RCT_NEW_ARCH_ENABLED
4
+ #import <React/RCTAssert.h>
5
+ #endif // !RCT_NEW_ARCH_ENABLED
6
+
4
7
  @implementation RNSConvert
5
8
 
9
+ #ifdef RCT_NEW_ARCH_ENABLED
10
+ + (UISemanticContentAttribute)UISemanticContentAttributeFromCppEquivalent:
11
+ (react::RNSScreenStackHeaderConfigDirection)direction
12
+ {
13
+ switch (direction) {
14
+ using enum react::RNSScreenStackHeaderConfigDirection;
15
+
16
+ case Rtl:
17
+ return UISemanticContentAttributeForceRightToLeft;
18
+ case Ltr:
19
+ return UISemanticContentAttributeForceLeftToRight;
20
+ }
21
+ }
22
+
23
+ + (UINavigationItemBackButtonDisplayMode)UINavigationItemBackButtonDisplayModeFromCppEquivalent:
24
+ (react::RNSScreenStackHeaderConfigBackButtonDisplayMode)backButtonDisplayMode
25
+ {
26
+ switch (backButtonDisplayMode) {
27
+ using enum react::RNSScreenStackHeaderConfigBackButtonDisplayMode;
28
+
29
+ case Default:
30
+ return UINavigationItemBackButtonDisplayModeDefault;
31
+ case Generic:
32
+ return UINavigationItemBackButtonDisplayModeGeneric;
33
+ case Minimal:
34
+ return UINavigationItemBackButtonDisplayModeMinimal;
35
+ }
36
+ }
37
+
6
38
  + (RNSScreenStackPresentation)RNSScreenStackPresentationFromCppEquivalent:
7
39
  (react::RNSScreenStackPresentation)stackPresentation
8
40
  {
9
41
  switch (stackPresentation) {
10
- case react::RNSScreenStackPresentation::Push:
42
+ using enum react::RNSScreenStackPresentation;
43
+
44
+ case Push:
11
45
  return RNSScreenStackPresentationPush;
12
- case react::RNSScreenStackPresentation::Modal:
46
+ case Modal:
13
47
  return RNSScreenStackPresentationModal;
14
- case react::RNSScreenStackPresentation::FullScreenModal:
48
+ case FullScreenModal:
15
49
  return RNSScreenStackPresentationFullScreenModal;
16
- case react::RNSScreenStackPresentation::FormSheet:
50
+ case FormSheet:
17
51
  return RNSScreenStackPresentationFormSheet;
18
- case react::RNSScreenStackPresentation::ContainedModal:
52
+ case ContainedModal:
19
53
  return RNSScreenStackPresentationContainedModal;
20
- case react::RNSScreenStackPresentation::TransparentModal:
54
+ case TransparentModal:
21
55
  return RNSScreenStackPresentationTransparentModal;
22
- case react::RNSScreenStackPresentation::ContainedTransparentModal:
56
+ case ContainedTransparentModal:
23
57
  return RNSScreenStackPresentationContainedTransparentModal;
24
58
  }
25
59
  }
@@ -27,22 +61,27 @@
27
61
  + (RNSScreenStackAnimation)RNSScreenStackAnimationFromCppEquivalent:(react::RNSScreenStackAnimation)stackAnimation
28
62
  {
29
63
  switch (stackAnimation) {
64
+ using enum react::RNSScreenStackAnimation;
30
65
  // these three are intentionally grouped
31
- case react::RNSScreenStackAnimation::Slide_from_right:
32
- case react::RNSScreenStackAnimation::Slide_from_left:
33
- case react::RNSScreenStackAnimation::Default:
66
+ case Slide_from_right:
67
+ case Ios_from_right:
68
+ case Default:
34
69
  return RNSScreenStackAnimationDefault;
35
- case react::RNSScreenStackAnimation::Flip:
70
+ // these two are intentionally grouped
71
+ case Slide_from_left:
72
+ case Ios_from_left:
73
+ return RNSScreenStackAnimationSlideFromLeft;
74
+ case Flip:
36
75
  return RNSScreenStackAnimationFlip;
37
- case react::RNSScreenStackAnimation::Simple_push:
76
+ case Simple_push:
38
77
  return RNSScreenStackAnimationSimplePush;
39
- case react::RNSScreenStackAnimation::None:
78
+ case None:
40
79
  return RNSScreenStackAnimationNone;
41
- case react::RNSScreenStackAnimation::Fade:
80
+ case Fade:
42
81
  return RNSScreenStackAnimationFade;
43
- case react::RNSScreenStackAnimation::Slide_from_bottom:
82
+ case Slide_from_bottom:
44
83
  return RNSScreenStackAnimationSlideFromBottom;
45
- case react::RNSScreenStackAnimation::Fade_from_bottom:
84
+ case Fade_from_bottom:
46
85
  return RNSScreenStackAnimationFadeFromBottom;
47
86
  }
48
87
  }
@@ -51,17 +90,19 @@
51
90
  (react::RNSScreenStackHeaderSubviewType)subviewType
52
91
  {
53
92
  switch (subviewType) {
54
- case react::RNSScreenStackHeaderSubviewType::Left:
93
+ using enum react::RNSScreenStackHeaderSubviewType;
94
+
95
+ case Left:
55
96
  return RNSScreenStackHeaderSubviewTypeLeft;
56
- case react::RNSScreenStackHeaderSubviewType::Right:
97
+ case Right:
57
98
  return RNSScreenStackHeaderSubviewTypeRight;
58
- case react::RNSScreenStackHeaderSubviewType::Title:
99
+ case Title:
59
100
  return RNSScreenStackHeaderSubviewTypeTitle;
60
- case react::RNSScreenStackHeaderSubviewType::Center:
101
+ case Center:
61
102
  return RNSScreenStackHeaderSubviewTypeCenter;
62
- case react::RNSScreenStackHeaderSubviewType::SearchBar:
103
+ case SearchBar:
63
104
  return RNSScreenStackHeaderSubviewTypeSearchBar;
64
- case react::RNSScreenStackHeaderSubviewType::Back:
105
+ case Back:
65
106
  return RNSScreenStackHeaderSubviewTypeBackButton;
66
107
  }
67
108
  }
@@ -70,9 +111,10 @@
70
111
  (react::RNSScreenReplaceAnimation)replaceAnimation
71
112
  {
72
113
  switch (replaceAnimation) {
73
- case react::RNSScreenReplaceAnimation::Pop:
114
+ using enum react::RNSScreenReplaceAnimation;
115
+ case Pop:
74
116
  return RNSScreenReplaceAnimationPop;
75
- case react::RNSScreenReplaceAnimation::Push:
117
+ case Push:
76
118
  return RNSScreenReplaceAnimationPush;
77
119
  }
78
120
  }
@@ -80,35 +122,21 @@
80
122
  + (RNSScreenSwipeDirection)RNSScreenSwipeDirectionFromCppEquivalent:(react::RNSScreenSwipeDirection)swipeDirection
81
123
  {
82
124
  switch (swipeDirection) {
83
- case react::RNSScreenSwipeDirection::Horizontal:
125
+ using enum react::RNSScreenSwipeDirection;
126
+ case Horizontal:
84
127
  return RNSScreenSwipeDirectionHorizontal;
85
- case react::RNSScreenSwipeDirection::Vertical:
128
+ case Vertical:
86
129
  return RNSScreenSwipeDirectionVertical;
87
130
  }
88
131
  }
89
132
 
90
- + (RNSScreenDetentType)RNSScreenDetentTypeFromAllowedDetents:(react::RNSScreenSheetAllowedDetents)allowedDetents
91
- {
92
- switch (allowedDetents) {
93
- case react::RNSScreenSheetAllowedDetents::All:
94
- return RNSScreenDetentTypeAll;
95
- case react::RNSScreenSheetAllowedDetents::Large:
96
- return RNSScreenDetentTypeLarge;
97
- case react::RNSScreenSheetAllowedDetents::Medium:
98
- return RNSScreenDetentTypeMedium;
99
- }
100
- }
101
-
102
- + (RNSScreenDetentType)RNSScreenDetentTypeFromLargestUndimmedDetent:(react::RNSScreenSheetLargestUndimmedDetent)detent
133
+ + (NSArray<NSNumber *> *)detentFractionsArrayFromVector:(const std::vector<react::Float> &)detents
103
134
  {
104
- switch (detent) {
105
- case react::RNSScreenSheetLargestUndimmedDetent::All:
106
- return RNSScreenDetentTypeAll;
107
- case react::RNSScreenSheetLargestUndimmedDetent::Large:
108
- return RNSScreenDetentTypeLarge;
109
- case react::RNSScreenSheetLargestUndimmedDetent::Medium:
110
- return RNSScreenDetentTypeMedium;
135
+ auto array = [NSMutableArray<NSNumber *> arrayWithCapacity:detents.size()];
136
+ for (const react::Float value : detents) {
137
+ [array addObject:[NSNumber numberWithFloat:value]];
111
138
  }
139
+ return array;
112
140
  }
113
141
 
114
142
  + (NSDictionary *)gestureResponseDistanceDictFromCppStruct:
@@ -122,33 +150,130 @@
122
150
  };
123
151
  }
124
152
 
153
+ #if !TARGET_OS_VISION
125
154
  + (UITextAutocapitalizationType)UITextAutocapitalizationTypeFromCppEquivalent:
126
155
  (react::RNSSearchBarAutoCapitalize)autoCapitalize
127
156
  {
128
157
  switch (autoCapitalize) {
129
- case react::RNSSearchBarAutoCapitalize::Words:
158
+ using enum react::RNSSearchBarAutoCapitalize;
159
+ case Words:
130
160
  return UITextAutocapitalizationTypeWords;
131
- case react::RNSSearchBarAutoCapitalize::Sentences:
161
+ case Sentences:
132
162
  return UITextAutocapitalizationTypeSentences;
133
- case react::RNSSearchBarAutoCapitalize::Characters:
163
+ case Characters:
134
164
  return UITextAutocapitalizationTypeAllCharacters;
135
- case react::RNSSearchBarAutoCapitalize::None:
165
+ case None:
136
166
  return UITextAutocapitalizationTypeNone;
137
167
  }
138
168
  }
169
+ #endif
139
170
 
140
171
  + (RNSSearchBarPlacement)RNSScreenSearchBarPlacementFromCppEquivalent:(react::RNSSearchBarPlacement)placement
141
172
  {
142
173
  switch (placement) {
143
- case react::RNSSearchBarPlacement::Stacked:
174
+ using enum react::RNSSearchBarPlacement;
175
+ case Stacked:
144
176
  return RNSSearchBarPlacementStacked;
145
- case react::RNSSearchBarPlacement::Automatic:
177
+ case Automatic:
146
178
  return RNSSearchBarPlacementAutomatic;
147
- case react::RNSSearchBarPlacement::Inline:
179
+ case Inline:
148
180
  return RNSSearchBarPlacementInline;
149
181
  }
150
182
  }
151
183
 
152
- @end
184
+ + (NSMutableArray<NSNumber *> *)arrayFromVector:(const std::vector<CGFloat> &)vector
185
+ {
186
+ NSMutableArray *array = [NSMutableArray arrayWithCapacity:vector.size()];
187
+ for (CGFloat val : vector) {
188
+ [array addObject:[NSNumber numberWithFloat:val]];
189
+ }
190
+ return array;
191
+ }
192
+
193
+ + (RNSBlurEffectStyle)RNSBlurEffectStyleFromCppEquivalent:(react::RNSScreenStackHeaderConfigBlurEffect)blurEffect
194
+ {
195
+ using enum react::RNSScreenStackHeaderConfigBlurEffect;
196
+ #if !TARGET_OS_TV && defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
197
+ __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
198
+ if (@available(iOS 13.0, *)) {
199
+ switch (blurEffect) {
200
+ case None:
201
+ return RNSBlurEffectStyleNone;
202
+ case ExtraLight:
203
+ return RNSBlurEffectStyleExtraLight;
204
+ case Light:
205
+ return RNSBlurEffectStyleLight;
206
+ case Dark:
207
+ return RNSBlurEffectStyleDark;
208
+ case Regular:
209
+ return RNSBlurEffectStyleRegular;
210
+ case Prominent:
211
+ return RNSBlurEffectStyleProminent;
212
+ case SystemUltraThinMaterial:
213
+ return RNSBlurEffectStyleSystemUltraThinMaterial;
214
+ case SystemThinMaterial:
215
+ return RNSBlurEffectStyleSystemThinMaterial;
216
+ case SystemMaterial:
217
+ return RNSBlurEffectStyleSystemMaterial;
218
+ case SystemThickMaterial:
219
+ return RNSBlurEffectStyleSystemThickMaterial;
220
+ case SystemChromeMaterial:
221
+ return RNSBlurEffectStyleSystemChromeMaterial;
222
+ case SystemUltraThinMaterialLight:
223
+ return RNSBlurEffectStyleSystemUltraThinMaterialLight;
224
+ case SystemThinMaterialLight:
225
+ return RNSBlurEffectStyleSystemThinMaterialLight;
226
+ case SystemMaterialLight:
227
+ return RNSBlurEffectStyleSystemMaterialLight;
228
+ case SystemThickMaterialLight:
229
+ return RNSBlurEffectStyleSystemThickMaterialLight;
230
+ case SystemChromeMaterialLight:
231
+ return RNSBlurEffectStyleSystemChromeMaterialLight;
232
+ case SystemUltraThinMaterialDark:
233
+ return RNSBlurEffectStyleSystemUltraThinMaterialDark;
234
+ case SystemThinMaterialDark:
235
+ return RNSBlurEffectStyleSystemThinMaterialDark;
236
+ case SystemMaterialDark:
237
+ return RNSBlurEffectStyleSystemMaterialDark;
238
+ case SystemThickMaterialDark:
239
+ return RNSBlurEffectStyleSystemThickMaterialDark;
240
+ case SystemChromeMaterialDark:
241
+ return RNSBlurEffectStyleSystemChromeMaterialDark;
242
+ }
243
+ }
244
+ #endif
245
+
246
+ switch (blurEffect) {
247
+ case None:
248
+ return RNSBlurEffectStyleNone;
249
+ case Light:
250
+ return RNSBlurEffectStyleLight;
251
+ case Dark:
252
+ return RNSBlurEffectStyleDark;
253
+ case Regular:
254
+ return RNSBlurEffectStyleRegular;
255
+ case Prominent:
256
+ return RNSBlurEffectStyleProminent;
257
+ case ExtraLight:
258
+ default:
259
+ return RNSBlurEffectStyleNone;
260
+ }
261
+ }
262
+
263
+ #endif // RCT_NEW_ARCH_ENABLED
153
264
 
265
+ + (UIBlurEffectStyle)tryConvertRNSBlurEffectStyleToUIBlurEffectStyle:(RNSBlurEffectStyle)blurEffect
266
+ {
267
+ #ifdef RCT_NEW_ARCH_ENABLED
268
+ react_native_assert(blurEffect != RNSBlurEffectStyleNone);
269
+ #else
270
+ RCTAssert(
271
+ blurEffect != RNSBlurEffectStyleNone, @"RNSBlurEffectStyleNone variant is not convertible to UIBlurEffectStyle");
154
272
  #endif // RCT_NEW_ARCH_ENABLED
273
+
274
+ // Cast safety: RNSBlurEffectStyle is defined in such way that its values map 1:1 with
275
+ // UIBlurEffectStyle, except RNSBlurEffectStyleNone which is excluded above.
276
+ return (UIBlurEffectStyle)blurEffect;
277
+ }
278
+
279
+ @end