@amazon-devices/react-native-screens 2.0.1759135970 → 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 (672) 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/android/CMakeLists.txt +80 -0
  9. package/android/build.gradle +96 -17
  10. package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +61 -0
  11. package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +38 -25
  12. package/android/src/fabric/java/com/swmansion/rnscreens/NativeProxy.kt +53 -0
  13. package/android/src/main/cpp/NativeProxy.cpp +51 -0
  14. package/android/src/main/cpp/NativeProxy.h +35 -0
  15. package/android/src/main/cpp/OnLoad.cpp +8 -0
  16. package/android/src/main/cpp/jni-adapter.cpp +106 -0
  17. package/android/src/main/java/com/swmansion/rnscreens/CustomSearchView.kt +20 -10
  18. package/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt +69 -1
  19. package/android/src/main/java/com/swmansion/rnscreens/FragmentBackPressOverrider.kt +8 -8
  20. package/android/src/main/java/com/swmansion/rnscreens/InsetsObserverProxy.kt +104 -0
  21. package/android/src/main/java/com/swmansion/rnscreens/ModalScreenViewManager.kt +12 -0
  22. package/android/src/main/java/com/swmansion/rnscreens/NativeDismissalObserver.kt +12 -0
  23. package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +65 -7
  24. package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +327 -84
  25. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt +122 -72
  26. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainerViewManager.kt +27 -4
  27. package/android/src/main/java/com/swmansion/rnscreens/ScreenContentWrapper.kt +38 -0
  28. package/android/src/main/java/com/swmansion/rnscreens/ScreenContentWrapperManager.kt +25 -0
  29. package/android/src/main/java/com/swmansion/rnscreens/ScreenEventDispatcher.kt +10 -2
  30. package/android/src/main/java/com/swmansion/rnscreens/ScreenFooter.kt +299 -0
  31. package/android/src/main/java/com/swmansion/rnscreens/ScreenFooterManager.kt +25 -0
  32. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragment.kt +91 -67
  33. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragmentWrapper.kt +12 -1
  34. package/android/src/main/java/com/swmansion/rnscreens/ScreenModalFragment.kt +281 -0
  35. package/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +184 -81
  36. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +467 -80
  37. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragmentWrapper.kt +8 -1
  38. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +156 -124
  39. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigShadowNode.kt +25 -0
  40. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +159 -39
  41. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubview.kt +24 -9
  42. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +19 -13
  43. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackViewManager.kt +31 -28
  44. package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +276 -71
  45. package/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +124 -64
  46. package/android/src/main/java/com/swmansion/rnscreens/ScreensModule.kt +127 -0
  47. package/android/src/main/java/com/swmansion/rnscreens/ScreensShadowNode.kt +4 -2
  48. package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +160 -53
  49. package/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt +57 -32
  50. package/android/src/main/java/com/swmansion/rnscreens/SearchViewFormatter.kt +15 -10
  51. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetBehaviorExt.kt +42 -0
  52. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetDialogRootView.kt +104 -0
  53. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetDialogScreen.kt +26 -0
  54. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/DimmingFragment.kt +493 -0
  55. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/DimmingView.kt +66 -0
  56. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/GestureTransparentViewGroup.kt +24 -0
  57. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/SheetUtils.kt +135 -0
  58. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderAttachedEvent.kt +7 -8
  59. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderBackButtonClickedEvent.kt +8 -9
  60. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderDetachedEvent.kt +7 -8
  61. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt +9 -10
  62. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenAppearEvent.kt +4 -1
  63. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenDisappearEvent.kt +4 -1
  64. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenDismissedEvent.kt +8 -4
  65. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenTransitionProgressEvent.kt +13 -16
  66. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillAppearEvent.kt +4 -1
  67. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillDisappearEvent.kt +4 -1
  68. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarBlurEvent.kt +8 -9
  69. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarChangeTextEvent.kt +8 -11
  70. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarCloseEvent.kt +7 -8
  71. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarFocusEvent.kt +8 -9
  72. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarOpenEvent.kt +7 -8
  73. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarSearchButtonPressEvent.kt +12 -11
  74. package/android/src/main/java/com/swmansion/rnscreens/events/SheetDetentChangedEvent.kt +27 -0
  75. package/android/src/main/java/com/swmansion/rnscreens/events/StackFinishTransitioningEvent.kt +4 -1
  76. package/android/src/main/java/com/swmansion/rnscreens/ext/NumericExt.kt +12 -0
  77. package/android/src/main/java/com/swmansion/rnscreens/ext/ViewExt.kt +32 -0
  78. package/android/src/main/java/com/swmansion/rnscreens/utils/DeviceUtils.kt +1 -5
  79. package/android/src/main/java/com/swmansion/rnscreens/utils/PaddingBundle.kt +8 -0
  80. package/android/src/main/java/com/swmansion/rnscreens/utils/ScreenDummyLayoutHelper.kt +282 -0
  81. package/android/src/main/jni/CMakeLists.txt +35 -23
  82. package/android/src/main/jni/rnscreens.h +3 -0
  83. package/android/src/main/res/base/anim/rns_ios_from_left_background_close.xml +5 -0
  84. package/android/src/main/res/base/anim/rns_ios_from_left_background_open.xml +5 -0
  85. package/android/src/main/res/base/anim/rns_ios_from_left_foreground_close.xml +6 -0
  86. package/android/src/main/res/base/anim/rns_ios_from_left_foreground_open.xml +6 -0
  87. package/android/src/main/res/base/anim/rns_ios_from_right_background_close.xml +5 -0
  88. package/android/src/main/res/base/anim/rns_ios_from_right_background_open.xml +5 -0
  89. package/android/src/main/res/base/anim/rns_ios_from_right_foreground_close.xml +6 -0
  90. package/android/src/main/res/base/anim/rns_ios_from_right_foreground_open.xml +6 -0
  91. package/android/src/main/res/base/drawable/rns_rounder_top_corners_shape.xml +8 -0
  92. package/android/src/main/res/v33/anim-v33/rns_default_enter_in.xml +0 -1
  93. package/android/src/main/res/v33/anim-v33/rns_default_enter_out.xml +2 -2
  94. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerDelegate.java +25 -0
  95. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerInterface.java +16 -0
  96. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerDelegate.java +25 -0
  97. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerInterface.java +16 -0
  98. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerDelegate.java +25 -0
  99. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerInterface.java +16 -0
  100. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +16 -3
  101. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +7 -2
  102. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +6 -0
  103. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +2 -0
  104. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerDelegate.java +99 -0
  105. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerInterface.java +37 -0
  106. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +39 -0
  107. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +11 -2
  108. package/android/src/paper/java/com/swmansion/rnscreens/NativeProxy.kt +19 -0
  109. package/android/src/paper/java/com/swmansion/rnscreens/NativeScreensModuleSpec.java +36 -0
  110. package/common/cpp/react/renderer/components/rnscreens/FrameCorrectionModes.h +51 -0
  111. package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenComponentDescriptor.h +40 -0
  112. package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenShadowNode.cpp +16 -0
  113. package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenShadowNode.h +32 -0
  114. package/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h +55 -12
  115. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp +157 -0
  116. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h +31 -11
  117. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigComponentDescriptor.h +49 -0
  118. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigShadowNode.cpp +22 -0
  119. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigShadowNode.h +40 -0
  120. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigState.cpp +34 -0
  121. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigState.h +57 -0
  122. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewComponentDescriptor.h +27 -0
  123. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewShadowNode.cpp +8 -0
  124. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewShadowNode.h +31 -0
  125. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewState.cpp +15 -0
  126. package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewState.h +39 -0
  127. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.cpp +23 -2
  128. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h +33 -8
  129. package/common/cpp/react/renderer/components/rnscreens/utils/RectUtil.h +36 -0
  130. package/cpp/RNSScreenRemovalListener.cpp +25 -0
  131. package/cpp/RNSScreenRemovalListener.h +20 -0
  132. package/cpp/RNScreensTurboModule.cpp +115 -0
  133. package/cpp/RNScreensTurboModule.h +40 -0
  134. package/gesture-handler/package.json +6 -0
  135. package/ios/RNSConvert.h +24 -4
  136. package/ios/RNSConvert.mm +180 -55
  137. package/ios/RNSEnums.h +48 -0
  138. package/ios/RNSFullWindowOverlay.mm +12 -2
  139. package/ios/RNSModalScreen.h +8 -0
  140. package/ios/RNSModalScreen.mm +65 -0
  141. package/ios/RNSModule.h +19 -0
  142. package/ios/RNSModule.mm +173 -0
  143. package/ios/RNSPercentDrivenInteractiveTransition.h +12 -0
  144. package/ios/RNSPercentDrivenInteractiveTransition.mm +69 -0
  145. package/ios/RNSScreen.h +24 -5
  146. package/ios/RNSScreen.mm +652 -173
  147. package/ios/RNSScreenContainer.mm +12 -1
  148. package/ios/RNSScreenContentWrapper.h +44 -0
  149. package/ios/RNSScreenContentWrapper.mm +67 -0
  150. package/ios/RNSScreenFooter.h +30 -0
  151. package/ios/RNSScreenFooter.mm +142 -0
  152. package/ios/RNSScreenNavigationContainer.mm +7 -0
  153. package/ios/RNSScreenStack.h +6 -0
  154. package/ios/RNSScreenStack.mm +333 -109
  155. package/ios/RNSScreenStackAnimator.h +15 -1
  156. package/ios/RNSScreenStackAnimator.mm +380 -115
  157. package/ios/RNSScreenStackHeaderConfig.h +74 -6
  158. package/ios/RNSScreenStackHeaderConfig.mm +338 -69
  159. package/ios/RNSScreenStackHeaderSubview.h +0 -7
  160. package/ios/RNSScreenStackHeaderSubview.mm +61 -24
  161. package/ios/RNSScreenWindowTraits.h +1 -1
  162. package/ios/RNSScreenWindowTraits.mm +24 -50
  163. package/ios/RNSSearchBar.h +5 -5
  164. package/ios/RNSSearchBar.mm +42 -11
  165. package/ios/events/RNSHeaderHeightChangeEvent.h +0 -1
  166. package/ios/events/RNSHeaderHeightChangeEvent.mm +15 -0
  167. package/ios/events/RNSScreenViewEvent.h +0 -1
  168. package/ios/utils/RCTSurfaceTouchHandler+RNSUtility.h +15 -0
  169. package/ios/utils/RCTSurfaceTouchHandler+RNSUtility.mm +14 -0
  170. package/ios/utils/RCTTouchHandler+RNSUtility.h +15 -0
  171. package/ios/utils/RCTTouchHandler+RNSUtility.mm +15 -0
  172. package/ios/utils/RNSDefines.h +7 -0
  173. package/ios/utils/RNSUIBarButtonItem.h +2 -0
  174. package/ios/utils/UINavigationBar+RNSUtility.h +37 -0
  175. package/ios/utils/UINavigationBar+RNSUtility.mm +44 -0
  176. package/ios/utils/UIView+RNSUtility.h +23 -0
  177. package/ios/utils/UIView+RNSUtility.mm +54 -0
  178. package/kepler-compatibility.json +2 -2
  179. package/lib/commonjs/TransitionProgressContext.js +1 -0
  180. package/lib/commonjs/TransitionProgressContext.js.map +1 -1
  181. package/lib/commonjs/components/DebugContainer.js +39 -0
  182. package/lib/commonjs/components/DebugContainer.js.map +1 -0
  183. package/lib/commonjs/components/DebugContainer.web.js +15 -0
  184. package/lib/commonjs/components/DebugContainer.web.js.map +1 -0
  185. package/lib/commonjs/components/FullWindowOverlay.js +31 -0
  186. package/lib/commonjs/components/FullWindowOverlay.js.map +1 -0
  187. package/lib/commonjs/components/FullWindowOverlay.web.js +9 -0
  188. package/lib/commonjs/components/FullWindowOverlay.web.js.map +1 -0
  189. package/lib/commonjs/components/Screen.js +286 -0
  190. package/lib/commonjs/components/Screen.js.map +1 -0
  191. package/lib/commonjs/components/Screen.web.js +47 -0
  192. package/lib/commonjs/components/Screen.web.js.map +1 -0
  193. package/lib/commonjs/components/ScreenContainer.js +32 -0
  194. package/lib/commonjs/components/ScreenContainer.js.map +1 -0
  195. package/lib/commonjs/components/ScreenContainer.web.js +10 -0
  196. package/lib/commonjs/components/ScreenContainer.web.js.map +1 -0
  197. package/lib/commonjs/components/ScreenContentWrapper.js +17 -0
  198. package/lib/commonjs/components/ScreenContentWrapper.js.map +1 -0
  199. package/lib/commonjs/components/ScreenContentWrapper.web.js +10 -0
  200. package/lib/commonjs/components/ScreenContentWrapper.web.js.map +1 -0
  201. package/lib/commonjs/components/ScreenFooter.js +25 -0
  202. package/lib/commonjs/components/ScreenFooter.js.map +1 -0
  203. package/lib/commonjs/components/ScreenFooter.web.js +11 -0
  204. package/lib/commonjs/components/ScreenFooter.web.js.map +1 -0
  205. package/lib/commonjs/components/ScreenStack.js +67 -0
  206. package/lib/commonjs/components/ScreenStack.js.map +1 -0
  207. package/lib/commonjs/components/ScreenStack.web.js +10 -0
  208. package/lib/commonjs/components/ScreenStack.web.js.map +1 -0
  209. package/lib/commonjs/components/ScreenStackHeaderConfig.js +90 -0
  210. package/lib/commonjs/components/ScreenStackHeaderConfig.js.map +1 -0
  211. package/lib/commonjs/components/ScreenStackHeaderConfig.web.js +27 -0
  212. package/lib/commonjs/components/ScreenStackHeaderConfig.web.js.map +1 -0
  213. package/lib/commonjs/components/ScreenStackItem.js +107 -0
  214. package/lib/commonjs/components/ScreenStackItem.js.map +1 -0
  215. package/lib/commonjs/components/SearchBar.js +63 -0
  216. package/lib/commonjs/components/SearchBar.js.map +1 -0
  217. package/lib/commonjs/components/SearchBar.web.js +10 -0
  218. package/lib/commonjs/components/SearchBar.web.js.map +1 -0
  219. package/lib/commonjs/components/helpers/DelayedFreeze.js +31 -0
  220. package/lib/commonjs/components/helpers/DelayedFreeze.js.map +1 -0
  221. package/lib/commonjs/components/helpers/usePrevious.js +15 -0
  222. package/lib/commonjs/components/helpers/usePrevious.js.map +1 -0
  223. package/lib/commonjs/contexts.js +11 -0
  224. package/lib/commonjs/contexts.js.map +1 -0
  225. package/lib/commonjs/core.js +40 -0
  226. package/lib/commonjs/core.js.map +1 -0
  227. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +16 -1
  228. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
  229. package/lib/commonjs/fabric/ModalScreenNativeComponent.js +14 -0
  230. package/lib/commonjs/fabric/ModalScreenNativeComponent.js.map +1 -0
  231. package/lib/commonjs/fabric/NativeScreensModule.js +10 -0
  232. package/lib/commonjs/fabric/NativeScreensModule.js.map +1 -0
  233. package/lib/commonjs/fabric/NativeScreensModule.web.js +8 -0
  234. package/lib/commonjs/fabric/NativeScreensModule.web.js.map +1 -0
  235. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +8 -11
  236. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -1
  237. package/lib/commonjs/fabric/ScreenContentWrapperNativeComponent.js +18 -0
  238. package/lib/commonjs/fabric/ScreenContentWrapperNativeComponent.js.map +1 -0
  239. package/lib/commonjs/fabric/ScreenFooterNativeComponent.js +10 -0
  240. package/lib/commonjs/fabric/ScreenFooterNativeComponent.js.map +1 -0
  241. package/lib/commonjs/fabric/ScreenNativeComponent.js +13 -15
  242. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
  243. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +2 -1
  244. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
  245. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +10 -9
  246. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  247. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +5 -2
  248. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  249. package/lib/commonjs/fabric/ScreenStackNativeComponent.js +8 -11
  250. package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
  251. package/lib/commonjs/fabric/SearchBarNativeComponent.js +4 -5
  252. package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
  253. package/lib/commonjs/gesture-handler/GestureDetectorProvider.js +19 -0
  254. package/lib/commonjs/gesture-handler/GestureDetectorProvider.js.map +1 -0
  255. package/lib/commonjs/gesture-handler/RNScreensTurboModule.js +8 -0
  256. package/lib/commonjs/gesture-handler/RNScreensTurboModule.js.map +1 -0
  257. package/lib/commonjs/gesture-handler/ScreenGestureDetector.js +201 -0
  258. package/lib/commonjs/gesture-handler/ScreenGestureDetector.js.map +1 -0
  259. package/lib/commonjs/gesture-handler/constraints.js +64 -0
  260. package/lib/commonjs/gesture-handler/constraints.js.map +1 -0
  261. package/lib/commonjs/gesture-handler/defaults.js +45 -0
  262. package/lib/commonjs/gesture-handler/defaults.js.map +1 -0
  263. package/lib/commonjs/gesture-handler/fabricUtils.js +66 -0
  264. package/lib/commonjs/gesture-handler/fabricUtils.js.map +1 -0
  265. package/lib/commonjs/gesture-handler/fabricUtils.web.js +17 -0
  266. package/lib/commonjs/gesture-handler/fabricUtils.web.js.map +1 -0
  267. package/lib/commonjs/gesture-handler/index.js +14 -0
  268. package/lib/commonjs/gesture-handler/index.js.map +1 -0
  269. package/lib/commonjs/index.js +157 -94
  270. package/lib/commonjs/index.js.map +1 -1
  271. package/lib/commonjs/native-stack/contexts/GHContext.js +12 -0
  272. package/lib/commonjs/native-stack/contexts/GHContext.js.map +1 -0
  273. package/lib/commonjs/native-stack/index.js.map +1 -1
  274. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +21 -20
  275. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  276. package/lib/commonjs/native-stack/types.js.map +1 -1
  277. package/lib/commonjs/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -1
  278. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -1
  279. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
  280. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  281. package/lib/commonjs/native-stack/utils/getStatusBarHeight.js +22 -0
  282. package/lib/commonjs/native-stack/utils/getStatusBarHeight.js.map +1 -0
  283. package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -1
  284. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js +2 -4
  285. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -1
  286. package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -1
  287. package/lib/commonjs/native-stack/views/FontProcessor.js +1 -3
  288. package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -1
  289. package/lib/commonjs/native-stack/views/FooterComponent.js +17 -0
  290. package/lib/commonjs/native-stack/views/FooterComponent.js.map +1 -0
  291. package/lib/commonjs/native-stack/views/HeaderConfig.js +21 -13
  292. package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -1
  293. package/lib/commonjs/native-stack/views/NativeStackView.js +118 -52
  294. package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
  295. package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js.map +1 -1
  296. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +15 -21
  297. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
  298. package/lib/commonjs/reanimated/ReanimatedScreen.js +2 -2
  299. package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -1
  300. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +8 -16
  301. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -1
  302. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
  303. package/lib/commonjs/reanimated/index.js.map +1 -1
  304. package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js +2 -2
  305. package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js.map +1 -1
  306. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -1
  307. package/lib/commonjs/types.js.map +1 -1
  308. package/lib/commonjs/useTransitionProgress.js.map +1 -1
  309. package/lib/commonjs/utils.js +28 -6
  310. package/lib/commonjs/utils.js.map +1 -1
  311. package/lib/module/TransitionProgressContext.js +2 -0
  312. package/lib/module/TransitionProgressContext.js.map +1 -1
  313. package/lib/module/components/DebugContainer.js +30 -0
  314. package/lib/module/components/DebugContainer.js.map +1 -0
  315. package/lib/module/components/DebugContainer.web.js +6 -0
  316. package/lib/module/components/DebugContainer.web.js.map +1 -0
  317. package/lib/module/components/FullWindowOverlay.js +24 -0
  318. package/lib/module/components/FullWindowOverlay.js.map +1 -0
  319. package/lib/module/components/FullWindowOverlay.web.js +3 -0
  320. package/lib/module/components/FullWindowOverlay.web.js.map +1 -0
  321. package/lib/module/components/Screen.js +282 -0
  322. package/lib/module/components/Screen.js.map +1 -0
  323. package/lib/module/components/Screen.web.js +40 -0
  324. package/lib/module/components/Screen.web.js.map +1 -0
  325. package/lib/module/components/ScreenContainer.js +26 -0
  326. package/lib/module/components/ScreenContainer.js.map +1 -0
  327. package/lib/module/components/ScreenContainer.web.js +4 -0
  328. package/lib/module/components/ScreenContainer.web.js.map +1 -0
  329. package/lib/module/components/ScreenContentWrapper.js +10 -0
  330. package/lib/module/components/ScreenContentWrapper.js.map +1 -0
  331. package/lib/module/components/ScreenContentWrapper.web.js +4 -0
  332. package/lib/module/components/ScreenContentWrapper.web.js.map +1 -0
  333. package/lib/module/components/ScreenFooter.js +18 -0
  334. package/lib/module/components/ScreenFooter.js.map +1 -0
  335. package/lib/module/components/ScreenFooter.web.js +6 -0
  336. package/lib/module/components/ScreenFooter.web.js.map +1 -0
  337. package/lib/module/components/ScreenStack.js +63 -0
  338. package/lib/module/components/ScreenStack.js.map +1 -0
  339. package/lib/module/components/ScreenStack.web.js +4 -0
  340. package/lib/module/components/ScreenStack.web.js.map +1 -0
  341. package/lib/module/components/ScreenStackHeaderConfig.js +81 -0
  342. package/lib/module/components/ScreenStackHeaderConfig.js.map +1 -0
  343. package/lib/module/components/ScreenStackHeaderConfig.web.js +14 -0
  344. package/lib/module/components/ScreenStackHeaderConfig.web.js.map +1 -0
  345. package/lib/module/components/ScreenStackItem.js +98 -0
  346. package/lib/module/components/ScreenStackItem.js.map +1 -0
  347. package/lib/module/components/SearchBar.js +57 -0
  348. package/lib/module/components/SearchBar.js.map +1 -0
  349. package/lib/module/components/SearchBar.web.js +4 -0
  350. package/lib/module/components/SearchBar.web.js.map +1 -0
  351. package/lib/module/components/helpers/DelayedFreeze.js +24 -0
  352. package/lib/module/components/helpers/DelayedFreeze.js.map +1 -0
  353. package/lib/module/components/helpers/usePrevious.js +9 -0
  354. package/lib/module/components/helpers/usePrevious.js.map +1 -0
  355. package/lib/module/contexts.js +4 -0
  356. package/lib/module/contexts.js.map +1 -0
  357. package/lib/module/core.js +31 -0
  358. package/lib/module/core.js.map +1 -0
  359. package/lib/module/fabric/FullWindowOverlayNativeComponent.js +16 -0
  360. package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
  361. package/lib/module/fabric/ModalScreenNativeComponent.js +10 -0
  362. package/lib/module/fabric/ModalScreenNativeComponent.js.map +1 -0
  363. package/lib/module/fabric/NativeScreensModule.js +5 -0
  364. package/lib/module/fabric/NativeScreensModule.js.map +1 -0
  365. package/lib/module/fabric/NativeScreensModule.web.js +2 -0
  366. package/lib/module/fabric/NativeScreensModule.web.js.map +1 -0
  367. package/lib/module/fabric/ScreenContainerNativeComponent.js +3 -4
  368. package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -1
  369. package/lib/module/fabric/ScreenContentWrapperNativeComponent.js +10 -0
  370. package/lib/module/fabric/ScreenContentWrapperNativeComponent.js.map +1 -0
  371. package/lib/module/fabric/ScreenFooterNativeComponent.js +3 -0
  372. package/lib/module/fabric/ScreenFooterNativeComponent.js.map +1 -0
  373. package/lib/module/fabric/ScreenNativeComponent.js +8 -7
  374. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
  375. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +2 -0
  376. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
  377. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +8 -2
  378. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  379. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +5 -1
  380. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  381. package/lib/module/fabric/ScreenStackNativeComponent.js +3 -3
  382. package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
  383. package/lib/module/fabric/SearchBarNativeComponent.js +3 -1
  384. package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
  385. package/lib/module/gesture-handler/GestureDetectorProvider.js +12 -0
  386. package/lib/module/gesture-handler/GestureDetectorProvider.js.map +1 -0
  387. package/lib/module/gesture-handler/RNScreensTurboModule.js +2 -0
  388. package/lib/module/gesture-handler/RNScreensTurboModule.js.map +1 -0
  389. package/lib/module/gesture-handler/ScreenGestureDetector.js +193 -0
  390. package/lib/module/gesture-handler/ScreenGestureDetector.js.map +1 -0
  391. package/lib/module/gesture-handler/constraints.js +56 -0
  392. package/lib/module/gesture-handler/constraints.js.map +1 -0
  393. package/lib/module/gesture-handler/defaults.js +39 -0
  394. package/lib/module/gesture-handler/defaults.js.map +1 -0
  395. package/lib/module/gesture-handler/fabricUtils.js +61 -0
  396. package/lib/module/gesture-handler/fabricUtils.js.map +1 -0
  397. package/lib/module/gesture-handler/fabricUtils.web.js +10 -0
  398. package/lib/module/gesture-handler/fabricUtils.web.js.map +1 -0
  399. package/lib/module/gesture-handler/index.js +5 -0
  400. package/lib/module/gesture-handler/index.js.map +1 -0
  401. package/lib/module/index.js +29 -64
  402. package/lib/module/index.js.map +1 -1
  403. package/lib/module/native-stack/contexts/GHContext.js +6 -0
  404. package/lib/module/native-stack/contexts/GHContext.js.map +1 -0
  405. package/lib/module/native-stack/index.js.map +1 -1
  406. package/lib/module/native-stack/navigators/createNativeStackNavigator.js +21 -20
  407. package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  408. package/lib/module/native-stack/types.js.map +1 -1
  409. package/lib/module/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -1
  410. package/lib/module/native-stack/utils/HeaderHeightContext.js.map +1 -1
  411. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
  412. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  413. package/lib/module/native-stack/utils/getStatusBarHeight.js +16 -0
  414. package/lib/module/native-stack/utils/getStatusBarHeight.js.map +1 -0
  415. package/lib/module/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -1
  416. package/lib/module/native-stack/utils/useBackPressSubscription.js +2 -4
  417. package/lib/module/native-stack/utils/useBackPressSubscription.js.map +1 -1
  418. package/lib/module/native-stack/utils/useHeaderHeight.js.map +1 -1
  419. package/lib/module/native-stack/views/FontProcessor.js +2 -3
  420. package/lib/module/native-stack/views/FontProcessor.js.map +1 -1
  421. package/lib/module/native-stack/views/FooterComponent.js +10 -0
  422. package/lib/module/native-stack/views/FooterComponent.js.map +1 -0
  423. package/lib/module/native-stack/views/HeaderConfig.js +13 -6
  424. package/lib/module/native-stack/views/HeaderConfig.js.map +1 -1
  425. package/lib/module/native-stack/views/NativeStackView.js +114 -46
  426. package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
  427. package/lib/module/reanimated/ReanimatedHeaderHeightContext.js.map +1 -1
  428. package/lib/module/reanimated/ReanimatedNativeStackScreen.js +8 -12
  429. package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
  430. package/lib/module/reanimated/ReanimatedScreen.js +1 -2
  431. package/lib/module/reanimated/ReanimatedScreen.js.map +1 -1
  432. package/lib/module/reanimated/ReanimatedScreenProvider.js +7 -15
  433. package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -1
  434. package/lib/module/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
  435. package/lib/module/reanimated/index.js.map +1 -1
  436. package/lib/module/reanimated/useReanimatedHeaderHeight.js +1 -1
  437. package/lib/module/reanimated/useReanimatedHeaderHeight.js.map +1 -1
  438. package/lib/module/reanimated/useReanimatedTransitionProgress.js.map +1 -1
  439. package/lib/module/types.js.map +1 -1
  440. package/lib/module/useTransitionProgress.js.map +1 -1
  441. package/lib/module/utils.js +26 -5
  442. package/lib/module/utils.js.map +1 -1
  443. package/lib/typescript/TransitionProgressContext.d.ts +2 -1
  444. package/lib/typescript/TransitionProgressContext.d.ts.map +1 -0
  445. package/lib/typescript/components/DebugContainer.d.ts +15 -0
  446. package/lib/typescript/components/DebugContainer.d.ts.map +1 -0
  447. package/lib/typescript/components/DebugContainer.web.d.ts +4 -0
  448. package/lib/typescript/components/DebugContainer.web.d.ts.map +1 -0
  449. package/lib/typescript/components/FullWindowOverlay.d.ts +6 -0
  450. package/lib/typescript/components/FullWindowOverlay.d.ts.map +1 -0
  451. package/lib/typescript/components/FullWindowOverlay.web.d.ts +6 -0
  452. package/lib/typescript/components/FullWindowOverlay.web.d.ts.map +1 -0
  453. package/lib/typescript/components/Screen.d.ts +8 -0
  454. package/lib/typescript/components/Screen.d.ts.map +1 -0
  455. package/lib/typescript/components/Screen.web.d.ts +11 -0
  456. package/lib/typescript/components/Screen.web.d.ts.map +1 -0
  457. package/lib/typescript/components/ScreenContainer.d.ts +5 -0
  458. package/lib/typescript/components/ScreenContainer.d.ts.map +1 -0
  459. package/lib/typescript/components/ScreenContainer.web.d.ts +4 -0
  460. package/lib/typescript/components/ScreenContainer.web.d.ts.map +1 -0
  461. package/lib/typescript/components/ScreenContentWrapper.d.ts +5 -0
  462. package/lib/typescript/components/ScreenContentWrapper.d.ts.map +1 -0
  463. package/lib/typescript/components/ScreenContentWrapper.web.d.ts +4 -0
  464. package/lib/typescript/components/ScreenContentWrapper.web.d.ts.map +1 -0
  465. package/lib/typescript/components/ScreenFooter.d.ts +12 -0
  466. package/lib/typescript/components/ScreenFooter.d.ts.map +1 -0
  467. package/lib/typescript/components/ScreenFooter.web.d.ts +6 -0
  468. package/lib/typescript/components/ScreenFooter.web.d.ts.map +1 -0
  469. package/lib/typescript/components/ScreenStack.d.ts +5 -0
  470. package/lib/typescript/components/ScreenStack.d.ts.map +1 -0
  471. package/lib/typescript/components/ScreenStack.web.d.ts +4 -0
  472. package/lib/typescript/components/ScreenStack.web.d.ts.map +1 -0
  473. package/lib/typescript/components/ScreenStackHeaderConfig.d.ts +13 -0
  474. package/lib/typescript/components/ScreenStackHeaderConfig.d.ts.map +1 -0
  475. package/lib/typescript/components/ScreenStackHeaderConfig.web.d.ts +13 -0
  476. package/lib/typescript/components/ScreenStackHeaderConfig.web.d.ts.map +1 -0
  477. package/lib/typescript/components/ScreenStackItem.d.ts +11 -0
  478. package/lib/typescript/components/ScreenStackItem.d.ts.map +1 -0
  479. package/lib/typescript/components/SearchBar.d.ts +5 -0
  480. package/lib/typescript/components/SearchBar.d.ts.map +1 -0
  481. package/lib/typescript/components/SearchBar.web.d.ts +4 -0
  482. package/lib/typescript/components/SearchBar.web.d.ts.map +1 -0
  483. package/lib/typescript/components/helpers/DelayedFreeze.d.ts +8 -0
  484. package/lib/typescript/components/helpers/DelayedFreeze.d.ts.map +1 -0
  485. package/lib/typescript/components/helpers/usePrevious.d.ts +2 -0
  486. package/lib/typescript/components/helpers/usePrevious.d.ts.map +1 -0
  487. package/lib/typescript/contexts.d.ts +5 -0
  488. package/lib/typescript/contexts.d.ts.map +1 -0
  489. package/lib/typescript/core.d.ts +6 -0
  490. package/lib/typescript/core.d.ts.map +1 -0
  491. package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts +1 -1
  492. package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts.map +1 -0
  493. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts +76 -0
  494. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts.map +1 -0
  495. package/lib/typescript/fabric/NativeScreensModule.d.ts +6 -0
  496. package/lib/typescript/fabric/NativeScreensModule.d.ts.map +1 -0
  497. package/lib/typescript/fabric/NativeScreensModule.web.d.ts +3 -0
  498. package/lib/typescript/fabric/NativeScreensModule.web.d.ts.map +1 -0
  499. package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts +1 -0
  500. package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts.map +1 -0
  501. package/lib/typescript/fabric/ScreenContentWrapperNativeComponent.d.ts +6 -0
  502. package/lib/typescript/fabric/ScreenContentWrapperNativeComponent.d.ts.map +1 -0
  503. package/lib/typescript/fabric/ScreenFooterNativeComponent.d.ts +7 -0
  504. package/lib/typescript/fabric/ScreenFooterNativeComponent.d.ts.map +1 -0
  505. package/lib/typescript/fabric/ScreenNativeComponent.d.ts +34 -24
  506. package/lib/typescript/fabric/ScreenNativeComponent.d.ts.map +1 -0
  507. package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts +1 -1
  508. package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts.map +1 -0
  509. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +12 -2
  510. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -0
  511. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +2 -2
  512. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -0
  513. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +4 -2
  514. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts.map +1 -0
  515. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +17 -16
  516. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts.map +1 -0
  517. package/lib/typescript/gesture-handler/GestureDetectorProvider.d.ts +5 -0
  518. package/lib/typescript/gesture-handler/GestureDetectorProvider.d.ts.map +1 -0
  519. package/lib/typescript/gesture-handler/RNScreensTurboModule.d.ts +13 -0
  520. package/lib/typescript/gesture-handler/RNScreensTurboModule.d.ts.map +1 -0
  521. package/lib/typescript/gesture-handler/ScreenGestureDetector.d.ts +5 -0
  522. package/lib/typescript/gesture-handler/ScreenGestureDetector.d.ts.map +1 -0
  523. package/lib/typescript/gesture-handler/constraints.d.ts +6 -0
  524. package/lib/typescript/gesture-handler/constraints.d.ts.map +1 -0
  525. package/lib/typescript/gesture-handler/defaults.d.ts +20 -0
  526. package/lib/typescript/gesture-handler/defaults.d.ts.map +1 -0
  527. package/lib/typescript/gesture-handler/fabricUtils.d.ts +10 -0
  528. package/lib/typescript/gesture-handler/fabricUtils.d.ts.map +1 -0
  529. package/lib/typescript/gesture-handler/fabricUtils.web.d.ts +6 -0
  530. package/lib/typescript/gesture-handler/fabricUtils.web.d.ts.map +1 -0
  531. package/lib/typescript/gesture-handler/index.d.ts +2 -0
  532. package/lib/typescript/gesture-handler/index.d.ts.map +1 -0
  533. package/lib/typescript/index.d.ts +25 -31
  534. package/lib/typescript/index.d.ts.map +1 -0
  535. package/lib/typescript/native-stack/contexts/GHContext.d.ts +4 -0
  536. package/lib/typescript/native-stack/contexts/GHContext.d.ts.map +1 -0
  537. package/lib/typescript/native-stack/index.d.ts +1 -0
  538. package/lib/typescript/native-stack/index.d.ts.map +1 -0
  539. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +4 -0
  540. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts.map +1 -0
  541. package/lib/typescript/native-stack/types.d.ts +191 -33
  542. package/lib/typescript/native-stack/types.d.ts.map +1 -0
  543. package/lib/typescript/native-stack/utils/AnimatedHeaderHeightContext.d.ts +1 -0
  544. package/lib/typescript/native-stack/utils/AnimatedHeaderHeightContext.d.ts.map +1 -0
  545. package/lib/typescript/native-stack/utils/HeaderHeightContext.d.ts +1 -0
  546. package/lib/typescript/native-stack/utils/HeaderHeightContext.d.ts.map +1 -0
  547. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts +2 -1
  548. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts.map +1 -0
  549. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +3 -2
  550. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts.map +1 -0
  551. package/lib/typescript/native-stack/utils/getStatusBarHeight.d.ts +3 -0
  552. package/lib/typescript/native-stack/utils/getStatusBarHeight.d.ts.map +1 -0
  553. package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts +2 -1
  554. package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts.map +1 -0
  555. package/lib/typescript/native-stack/utils/useBackPressSubscription.d.ts +1 -0
  556. package/lib/typescript/native-stack/utils/useBackPressSubscription.d.ts.map +1 -0
  557. package/lib/typescript/native-stack/utils/useHeaderHeight.d.ts +1 -0
  558. package/lib/typescript/native-stack/utils/useHeaderHeight.d.ts.map +1 -0
  559. package/lib/typescript/native-stack/views/FontProcessor.d.ts +1 -0
  560. package/lib/typescript/native-stack/views/FontProcessor.d.ts.map +1 -0
  561. package/lib/typescript/native-stack/views/FooterComponent.d.ts +7 -0
  562. package/lib/typescript/native-stack/views/FooterComponent.d.ts.map +1 -0
  563. package/lib/typescript/native-stack/views/HeaderConfig.d.ts +3 -2
  564. package/lib/typescript/native-stack/views/HeaderConfig.d.ts.map +1 -0
  565. package/lib/typescript/native-stack/views/NativeStackView.d.ts +2 -1
  566. package/lib/typescript/native-stack/views/NativeStackView.d.ts.map +1 -0
  567. package/lib/typescript/reanimated/ReanimatedHeaderHeightContext.d.ts +1 -0
  568. package/lib/typescript/reanimated/ReanimatedHeaderHeightContext.d.ts.map +1 -0
  569. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +3 -3
  570. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts.map +1 -0
  571. package/lib/typescript/reanimated/ReanimatedScreen.d.ts +3 -3
  572. package/lib/typescript/reanimated/ReanimatedScreen.d.ts.map +1 -0
  573. package/lib/typescript/reanimated/ReanimatedScreenProvider.d.ts +1 -0
  574. package/lib/typescript/reanimated/ReanimatedScreenProvider.d.ts.map +1 -0
  575. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts +2 -1
  576. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts.map +1 -0
  577. package/lib/typescript/reanimated/index.d.ts +1 -0
  578. package/lib/typescript/reanimated/index.d.ts.map +1 -0
  579. package/lib/typescript/reanimated/useReanimatedHeaderHeight.d.ts +2 -3
  580. package/lib/typescript/reanimated/useReanimatedHeaderHeight.d.ts.map +1 -0
  581. package/lib/typescript/reanimated/useReanimatedTransitionProgress.d.ts +4 -9
  582. package/lib/typescript/reanimated/useReanimatedTransitionProgress.d.ts.map +1 -0
  583. package/lib/typescript/types.d.ts +186 -36
  584. package/lib/typescript/types.d.ts.map +1 -0
  585. package/lib/typescript/useTransitionProgress.d.ts +4 -3
  586. package/lib/typescript/useTransitionProgress.d.ts.map +1 -0
  587. package/lib/typescript/utils.d.ts +27 -1
  588. package/lib/typescript/utils.d.ts.map +1 -0
  589. package/native-stack/README.md +156 -108
  590. package/native-stack/package.json +4 -4
  591. package/package.json +1 -1
  592. package/react-native.config.js +19 -16
  593. package/reanimated/package.json +1 -1
  594. package/src/TransitionProgressContext.tsx +3 -1
  595. package/src/components/DebugContainer.tsx +46 -0
  596. package/src/components/DebugContainer.web.tsx +7 -0
  597. package/src/components/FullWindowOverlay.tsx +33 -0
  598. package/src/components/FullWindowOverlay.web.tsx +6 -0
  599. package/src/components/Screen.tsx +392 -0
  600. package/src/components/Screen.web.tsx +46 -0
  601. package/src/components/ScreenContainer.tsx +28 -0
  602. package/src/components/ScreenContainer.web.tsx +5 -0
  603. package/src/components/ScreenContentWrapper.tsx +9 -0
  604. package/src/components/ScreenContentWrapper.web.tsx +5 -0
  605. package/src/components/ScreenFooter.tsx +20 -0
  606. package/src/components/ScreenFooter.web.tsx +7 -0
  607. package/src/components/ScreenStack.tsx +112 -0
  608. package/src/components/ScreenStack.web.tsx +5 -0
  609. package/src/components/ScreenStackHeaderConfig.tsx +122 -0
  610. package/src/components/ScreenStackHeaderConfig.web.tsx +39 -0
  611. package/src/components/ScreenStackItem.tsx +174 -0
  612. package/src/components/SearchBar.tsx +102 -0
  613. package/src/components/SearchBar.web.tsx +5 -0
  614. package/src/components/helpers/DelayedFreeze.tsx +27 -0
  615. package/src/components/helpers/usePrevious.tsx +11 -0
  616. package/src/contexts.tsx +9 -0
  617. package/src/core.ts +45 -0
  618. package/src/fabric/FullWindowOverlayNativeComponent.ts +16 -0
  619. package/src/fabric/ModalScreenNativeComponent.ts +115 -0
  620. package/src/fabric/NativeScreensModule.ts +8 -0
  621. package/src/fabric/NativeScreensModule.web.ts +1 -0
  622. package/src/fabric/ScreenContainerNativeComponent.ts +3 -3
  623. package/src/fabric/ScreenContentWrapperNativeComponent.ts +14 -0
  624. package/src/fabric/ScreenFooterNativeComponent.ts +6 -0
  625. package/src/fabric/ScreenNativeComponent.ts +34 -23
  626. package/src/fabric/ScreenNavigationContainerNativeComponent.ts +3 -1
  627. package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +38 -2
  628. package/src/fabric/ScreenStackHeaderSubviewNativeComponent.ts +5 -1
  629. package/src/fabric/ScreenStackNativeComponent.ts +3 -2
  630. package/src/fabric/SearchBarNativeComponent.ts +17 -13
  631. package/src/gesture-handler/GestureDetectorProvider.tsx +16 -0
  632. package/src/gesture-handler/RNScreensTurboModule.ts +13 -0
  633. package/src/gesture-handler/ScreenGestureDetector.tsx +241 -0
  634. package/src/gesture-handler/constraints.ts +87 -0
  635. package/src/gesture-handler/defaults.ts +46 -0
  636. package/src/gesture-handler/fabricUtils.ts +86 -0
  637. package/src/gesture-handler/fabricUtils.web.ts +10 -0
  638. package/src/gesture-handler/index.tsx +4 -0
  639. package/src/index.tsx +49 -113
  640. package/src/native-stack/contexts/GHContext.tsx +9 -0
  641. package/src/native-stack/navigators/createNativeStackNavigator.tsx +6 -3
  642. package/src/native-stack/types.tsx +204 -31
  643. package/src/native-stack/utils/getDefaultHeaderHeight.tsx +2 -2
  644. package/src/native-stack/utils/getStatusBarHeight.tsx +22 -0
  645. package/src/native-stack/utils/useAnimatedHeaderHeight.tsx +1 -1
  646. package/src/native-stack/utils/useBackPressSubscription.tsx +1 -1
  647. package/src/native-stack/utils/useHeaderHeight.tsx +1 -1
  648. package/src/native-stack/views/FontProcessor.tsx +2 -2
  649. package/src/native-stack/views/FooterComponent.tsx +10 -0
  650. package/src/native-stack/views/HeaderConfig.tsx +20 -5
  651. package/src/native-stack/views/NativeStackView.tsx +137 -53
  652. package/src/reanimated/ReanimatedHeaderHeightContext.tsx +1 -1
  653. package/src/reanimated/ReanimatedNativeStackScreen.tsx +15 -13
  654. package/src/reanimated/ReanimatedScreen.tsx +4 -3
  655. package/src/reanimated/ReanimatedScreenProvider.tsx +3 -2
  656. package/src/reanimated/useReanimatedHeaderHeight.tsx +2 -2
  657. package/src/reanimated/useReanimatedTransitionProgress.tsx +1 -1
  658. package/src/types.tsx +210 -40
  659. package/src/useTransitionProgress.tsx +1 -1
  660. package/src/utils.ts +27 -5
  661. package/windows/README.md +4 -1
  662. package/windows/RNScreens/Screen.h +3 -1
  663. package/SystemBundles/4a5c11b5bb8dfc0553e927a2c8678e1dbd4a75220fe24dfbdba59b5550215de6.bundle +0 -33681
  664. package/SystemBundles/4a5c11b5bb8dfc0553e927a2c8678e1dbd4a75220fe24dfbdba59b5550215de6.map +0 -1
  665. package/SystemModules/amzn__react-native-screens.modules.txt +0 -101
  666. package/SystemModules/amzn__react-native-screens.private.modules.txt +0 -244
  667. package/lib/commonjs/index.native.js +0 -409
  668. package/lib/commonjs/index.native.js.map +0 -1
  669. package/lib/module/index.native.js +0 -412
  670. package/lib/module/index.native.js.map +0 -1
  671. package/lib/typescript/index.native.d.ts +0 -2
  672. package/src/index.native.tsx +0 -601
@@ -3,7 +3,164 @@
3
3
  namespace facebook {
4
4
  namespace react {
5
5
 
6
+ namespace yoga = facebook::yoga;
7
+ using namespace rnscreens;
8
+
6
9
  extern const char RNSScreenComponentName[] = "RNSScreen";
7
10
 
11
+ Point RNSScreenShadowNode::getContentOriginOffset(
12
+ bool /*includeTransform*/) const {
13
+ auto stateData = getStateData();
14
+ auto contentOffset = stateData.contentOffset;
15
+ return {contentOffset.x, contentOffset.y};
16
+ }
17
+
18
+ std::optional<std::reference_wrapper<const ShadowNode::Shared>>
19
+ findHeaderConfigChild(const YogaLayoutableShadowNode &screenShadowNode) {
20
+ for (const ShadowNode::Shared &child : screenShadowNode.getChildren()) {
21
+ if (std::strcmp(child->getComponentName(), "RNSScreenStackHeaderConfig") ==
22
+ 0) {
23
+ return {std::cref(child)};
24
+ }
25
+ }
26
+ return {};
27
+ }
28
+
29
+ #ifdef ANDROID
30
+ static constexpr const char *kScreenDummyLayoutHelperClass =
31
+ "com/swmansion/rnscreens/utils/ScreenDummyLayoutHelper";
32
+
33
+ std::optional<float> findHeaderHeight(
34
+ const int fontSize,
35
+ const bool isTitleEmpty) {
36
+ JNIEnv *env = facebook::jni::Environment::current();
37
+
38
+ if (env == nullptr) {
39
+ LOG(ERROR) << "[RNScreens] Failed to retrieve env\n";
40
+ return {};
41
+ }
42
+
43
+ jclass layoutHelperClass = env->FindClass(kScreenDummyLayoutHelperClass);
44
+
45
+ if (layoutHelperClass == nullptr) {
46
+ LOG(ERROR) << "[RNScreens] Failed to find class with id "
47
+ << kScreenDummyLayoutHelperClass;
48
+ return {};
49
+ }
50
+
51
+ jmethodID computeDummyLayoutID =
52
+ env->GetMethodID(layoutHelperClass, "computeDummyLayout", "(IZ)F");
53
+
54
+ if (computeDummyLayoutID == nullptr) {
55
+ LOG(ERROR) << "[RNScreens] Failed to retrieve computeDummyLayout method ID";
56
+ return {};
57
+ }
58
+
59
+ jmethodID getInstanceMethodID = env->GetStaticMethodID(
60
+ layoutHelperClass,
61
+ "getInstance",
62
+ "()Lcom/swmansion/rnscreens/utils/ScreenDummyLayoutHelper;");
63
+
64
+ if (getInstanceMethodID == nullptr) {
65
+ LOG(ERROR) << "[RNScreens] Failed to retrieve getInstanceMethodID";
66
+ return {};
67
+ }
68
+
69
+ jobject packageInstance =
70
+ env->CallStaticObjectMethod(layoutHelperClass, getInstanceMethodID);
71
+
72
+ if (packageInstance == nullptr) {
73
+ LOG(ERROR)
74
+ << "[RNScreens] Failed to retrieve packageInstance or the package instance was null on JVM side";
75
+ return {};
76
+ }
77
+
78
+ jfloat headerHeight = env->CallFloatMethod(
79
+ packageInstance, computeDummyLayoutID, fontSize, isTitleEmpty);
80
+
81
+ return {headerHeight};
82
+ }
83
+ #endif // ANDROID
84
+
85
+ void RNSScreenShadowNode::appendChild(const ShadowNode::Shared &child) {
86
+ YogaLayoutableShadowNode::appendChild(child);
87
+ #ifdef ANDROID
88
+ const auto &stateData = getStateData();
89
+ if (stateData.frameSize.width == 0 || stateData.frameSize.height == 0) {
90
+ // This code path should be executed only on the very first (few)
91
+ // layout(s), when we haven't received state update from JVM side yet.
92
+ auto headerConfigChildOpt = findHeaderConfigChild(*this);
93
+ auto &screenShadowNode = static_cast<RNSScreenShadowNode &>(*this);
94
+
95
+ // During creation of the shadow node children are not attached yet.
96
+ // We also do not want to set any padding in case.
97
+ if (headerConfigChildOpt) {
98
+ const auto &headerConfigChild = headerConfigChildOpt->get();
99
+ const auto &headerProps =
100
+ *std::static_pointer_cast<const RNSScreenStackHeaderConfigProps>(
101
+ headerConfigChild->getProps());
102
+
103
+ const auto headerHeight = headerProps.hidden
104
+ ? 0.f
105
+ : findHeaderHeight(
106
+ headerProps.titleFontSize, headerProps.title.empty())
107
+ .value_or(0.f);
108
+
109
+ screenShadowNode.setPadding({0, 0, 0, headerHeight});
110
+ screenShadowNode.setHeaderHeight(headerHeight);
111
+ screenShadowNode.getFrameCorrectionModes().set(FrameCorrectionModes::Mode(
112
+ FrameCorrectionModes::Mode::FrameHeightCorrection |
113
+ FrameCorrectionModes::Mode::FrameOriginCorrection));
114
+ }
115
+ }
116
+ #endif // ANDROID
117
+ }
118
+
119
+ void RNSScreenShadowNode::layout(facebook::react::LayoutContext layoutContext) {
120
+ YogaLayoutableShadowNode::layout(layoutContext);
121
+
122
+ #ifdef ANDROID
123
+ applyFrameCorrections();
124
+ #endif // ANDROID
125
+ }
126
+
127
+ #ifdef ANDROID
128
+ void RNSScreenShadowNode::applyFrameCorrections() {
129
+ ensureUnsealed();
130
+
131
+ // On the very first layout we want to correct both Y offset and frame size.
132
+ // On consecutive layouts we want to correct only Y offset, as the frame size
133
+ // is received from JVM side. This is done so if the Screen dimensions are
134
+ // read from ShadowTree (e.g by reanimated) they have chance of being
135
+ // accurate. On JVM side we do ignore this frame anyway, because
136
+ // ScreenStackViewManager.needsCustomLayoutForChildren() == true.
137
+ const auto &stateData = getStateData();
138
+ const float lastKnownHeaderHeight = stateData.getLastKnownHeaderHeight();
139
+ const auto &headerCorrectionModes = stateData.getHeaderCorrectionModes();
140
+ layoutMetrics_.frame.origin.y += lastKnownHeaderHeight *
141
+ headerCorrectionModes.check(
142
+ FrameCorrectionModes::Mode::FrameOriginCorrection);
143
+ layoutMetrics_.frame.size.height -= lastKnownHeaderHeight *
144
+ headerCorrectionModes.check(
145
+ FrameCorrectionModes::Mode::FrameHeightCorrection);
146
+ }
147
+
148
+ void RNSScreenShadowNode::setHeaderHeight(float headerHeight) {
149
+ getStateDataMutable().setHeaderHeight(headerHeight);
150
+ }
151
+
152
+ FrameCorrectionModes &RNSScreenShadowNode::getFrameCorrectionModes() {
153
+ return getStateDataMutable().getFrameCorrectionModes();
154
+ }
155
+
156
+ RNSScreenShadowNode::StateData &RNSScreenShadowNode::getStateDataMutable() {
157
+ // We assume that this method is called to mutate the data, so we ensure
158
+ // we're unsealed.
159
+ ensureUnsealed();
160
+ return const_cast<RNSScreenShadowNode::StateData &>(getStateData());
161
+ }
162
+
163
+ #endif // ANDROID
164
+
8
165
  } // namespace react
9
166
  } // namespace facebook
@@ -1,29 +1,49 @@
1
1
  #pragma once
2
2
 
3
- #include "RNSScreenState.h"
3
+ #include <jsi/jsi.h>
4
4
  #include <react/renderer/components/rnscreens/EventEmitters.h>
5
5
  #include <react/renderer/components/rnscreens/Props.h>
6
6
  #include <react/renderer/components/view/ConcreteViewShadowNode.h>
7
- #include <jsi/jsi.h>
7
+ #include <react/renderer/core/LayoutContext.h>
8
+ #include "FrameCorrectionModes.h"
9
+ #include "RNSScreenState.h"
8
10
 
9
11
  namespace facebook {
10
12
  namespace react {
11
13
 
14
+ using namespace rnscreens;
15
+
12
16
  JSI_EXPORT extern const char RNSScreenComponentName[];
13
17
 
14
18
  class JSI_EXPORT RNSScreenShadowNode final : public ConcreteViewShadowNode<
15
- RNSScreenComponentName,
16
- RNSScreenProps,
17
- RNSScreenEventEmitter,
18
- RNSScreenState> {
19
+ RNSScreenComponentName,
20
+ RNSScreenProps,
21
+ RNSScreenEventEmitter,
22
+ RNSScreenState> {
19
23
  public:
20
24
  using ConcreteViewShadowNode::ConcreteViewShadowNode;
25
+ using StateData = ConcreteViewShadowNode::ConcreteStateData;
26
+
27
+ #pragma mark - ShadowNode overrides
28
+
29
+ Point getContentOriginOffset(bool includeTransform) const override;
30
+
31
+ void appendChild(const ShadowNode::Shared &child) override;
32
+
33
+ void layout(LayoutContext layoutContext) override;
34
+
35
+ #pragma mark - Custom interface
36
+
37
+ void setHeaderHeight(float headerHeight);
38
+
39
+ FrameCorrectionModes &getFrameCorrectionModes();
40
+
41
+ private:
42
+ #ifdef ANDROID
43
+ void applyFrameCorrections();
21
44
 
22
- static ShadowNodeTraits BaseTraits() {
23
- auto traits = ConcreteViewShadowNode::BaseTraits();
24
- traits.set(ShadowNodeTraits::Trait::RootNodeKind);
25
- return traits;
26
- }
45
+ StateData &getStateDataMutable();
46
+ #endif // ANDROID
27
47
  };
28
48
 
29
49
  } // namespace react
@@ -0,0 +1,49 @@
1
+ #pragma once
2
+
3
+ #ifdef ANDROID
4
+ #include <fbjni/fbjni.h>
5
+ #endif
6
+ #include <react/debug/react_native_assert.h>
7
+ #include <react/renderer/components/rnscreens/Props.h>
8
+ #include <react/renderer/components/rnscreens/utils/RectUtil.h>
9
+ #include <react/renderer/core/ConcreteComponentDescriptor.h>
10
+ #include "RNSScreenStackHeaderConfigShadowNode.h"
11
+
12
+ namespace facebook::react {
13
+
14
+ using namespace rnscreens;
15
+
16
+ class RNSScreenStackHeaderConfigComponentDescriptor final
17
+ : public ConcreteComponentDescriptor<RNSScreenStackHeaderConfigShadowNode> {
18
+ public:
19
+ using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
20
+
21
+ void adopt(ShadowNode &shadowNode) const override {
22
+ react_native_assert(
23
+ dynamic_cast<RNSScreenStackHeaderConfigShadowNode *>(&shadowNode));
24
+ auto &configShadowNode =
25
+ static_cast<RNSScreenStackHeaderConfigShadowNode &>(shadowNode);
26
+
27
+ react_native_assert(
28
+ dynamic_cast<YogaLayoutableShadowNode *>(&configShadowNode));
29
+ auto &layoutableShadowNode =
30
+ dynamic_cast<YogaLayoutableShadowNode &>(configShadowNode);
31
+
32
+ auto state = std::static_pointer_cast<
33
+ const RNSScreenStackHeaderConfigShadowNode::ConcreteState>(
34
+ shadowNode.getState());
35
+ auto stateData = state->getData();
36
+
37
+ layoutableShadowNode.setPadding(
38
+ {stateData.getPaddingStart(), 0, stateData.getPaddingEnd(), 0});
39
+
40
+ ConcreteComponentDescriptor::adopt(shadowNode);
41
+ #if !defined(ANDROID) && !defined(NDEBUG)
42
+ std::weak_ptr<void> imageLoader =
43
+ contextContainer_->at<std::shared_ptr<void>>("RCTImageLoader");
44
+ configShadowNode.setImageLoader(imageLoader);
45
+ #endif // !ANDROID && !NDEBUG
46
+ }
47
+ };
48
+
49
+ } // namespace facebook::react
@@ -0,0 +1,22 @@
1
+ #include "RNSScreenStackHeaderConfigShadowNode.h"
2
+
3
+ namespace facebook::react {
4
+
5
+ extern const char RNSScreenStackHeaderConfigComponentName[] =
6
+ "RNSScreenStackHeaderConfig";
7
+
8
+ #if !defined(ANDROID) && !defined(NDEBUG)
9
+ void RNSScreenStackHeaderConfigShadowNode::setImageLoader(
10
+ std::weak_ptr<void> imageLoader) {
11
+ getStateDataMutable().setImageLoader(imageLoader);
12
+ }
13
+ RNSScreenStackHeaderConfigShadowNode::StateData &
14
+ RNSScreenStackHeaderConfigShadowNode::getStateDataMutable() {
15
+ // We assume that this method is called to mutate the data, so we ensure
16
+ // we're unsealed.
17
+ ensureUnsealed();
18
+ return const_cast<RNSScreenStackHeaderConfigShadowNode::StateData &>(
19
+ getStateData());
20
+ }
21
+ #endif // !ANDROID && !NDEBUG
22
+ } // namespace facebook::react
@@ -0,0 +1,40 @@
1
+ #pragma once
2
+
3
+ #include <jsi/jsi.h>
4
+ #include <react/renderer/components/rnscreens/EventEmitters.h>
5
+ #include <react/renderer/components/rnscreens/Props.h>
6
+ #include <react/renderer/components/view/ConcreteViewShadowNode.h>
7
+ #include <react/renderer/core/LayoutContext.h>
8
+ #include "FrameCorrectionModes.h"
9
+ #include "RNSScreenStackHeaderConfigState.h"
10
+
11
+ namespace facebook::react {
12
+
13
+ using namespace rnscreens;
14
+
15
+ JSI_EXPORT extern const char RNSScreenStackHeaderConfigComponentName[];
16
+
17
+ class JSI_EXPORT RNSScreenStackHeaderConfigShadowNode final
18
+ : public ConcreteViewShadowNode<
19
+ RNSScreenStackHeaderConfigComponentName,
20
+ RNSScreenStackHeaderConfigProps,
21
+ RNSScreenStackHeaderConfigEventEmitter,
22
+ RNSScreenStackHeaderConfigState> {
23
+ public:
24
+ using ConcreteViewShadowNode::ConcreteViewShadowNode;
25
+ using StateData = ConcreteViewShadowNode::ConcreteStateData;
26
+
27
+ #pragma mark - ShadowNode overrides
28
+
29
+ #pragma mark - Custom interface
30
+ #if !defined(ANDROID) && !defined(NDEBUG)
31
+ void setImageLoader(std::weak_ptr<void> imageLoader);
32
+ #endif // !ANDROID && !NDEBUG
33
+
34
+ private:
35
+ #if !defined(ANDROID) && !defined(NDEBUG)
36
+ StateData &getStateDataMutable();
37
+ #endif // !ANDROID && !NDEBUG
38
+ };
39
+
40
+ } // namespace facebook::react
@@ -0,0 +1,34 @@
1
+ #include "RNSScreenStackHeaderConfigState.h"
2
+
3
+ namespace facebook {
4
+ namespace react {
5
+
6
+ #ifdef ANDROID
7
+ folly::dynamic RNSScreenStackHeaderConfigState::getDynamic() const {
8
+ return folly::dynamic::object("paddingStart", paddingStart_)(
9
+ "paddingEnd_", paddingEnd_);
10
+ }
11
+ #else // ANDROID
12
+ #ifndef NDEBUG
13
+ void RNSScreenStackHeaderConfigState::setImageLoader(
14
+ std::weak_ptr<void> imageLoader) {
15
+ imageLoader_ = imageLoader;
16
+ }
17
+
18
+ std::weak_ptr<void> RNSScreenStackHeaderConfigState::getImageLoader()
19
+ const noexcept {
20
+ return imageLoader_;
21
+ }
22
+ #endif // !NDEBUG
23
+ #endif // ANDROID
24
+
25
+ Float RNSScreenStackHeaderConfigState::getPaddingStart() const noexcept {
26
+ return paddingStart_;
27
+ }
28
+
29
+ Float RNSScreenStackHeaderConfigState::getPaddingEnd() const noexcept {
30
+ return paddingEnd_;
31
+ }
32
+
33
+ } // namespace react
34
+ } // namespace facebook
@@ -0,0 +1,57 @@
1
+ #pragma once
2
+
3
+ #include <react/renderer/core/graphicsConversions.h>
4
+ #include <react/renderer/graphics/Float.h>
5
+
6
+ #ifdef ANDROID
7
+ #include <folly/dynamic.h>
8
+ #include <react/renderer/mapbuffer/MapBuffer.h>
9
+ #include <react/renderer/mapbuffer/MapBufferBuilder.h>
10
+ #endif
11
+
12
+ namespace facebook::react {
13
+
14
+ class JSI_EXPORT RNSScreenStackHeaderConfigState final {
15
+ public:
16
+ using Shared = std::shared_ptr<const RNSScreenStackHeaderConfigState>;
17
+
18
+ RNSScreenStackHeaderConfigState() = default;
19
+
20
+ RNSScreenStackHeaderConfigState(Float paddingStart, Float paddingEnd)
21
+ : paddingStart_{paddingStart}, paddingEnd_{paddingEnd} {}
22
+
23
+ #ifdef ANDROID
24
+ RNSScreenStackHeaderConfigState(
25
+ RNSScreenStackHeaderConfigState const &previousState,
26
+ folly::dynamic data)
27
+ : paddingStart_{static_cast<Float>(data["paddingStart"].getDouble())},
28
+ paddingEnd_{static_cast<Float>(data["paddingEnd"].getDouble())} {}
29
+ #endif
30
+
31
+ #ifdef ANDROID
32
+ folly::dynamic getDynamic() const;
33
+ MapBuffer getMapBuffer() const {
34
+ return MapBufferBuilder::EMPTY();
35
+ };
36
+ #else // ANDROID
37
+ #ifndef NDEBUG
38
+ void setImageLoader(std::weak_ptr<void> imageLoader);
39
+ std::weak_ptr<void> getImageLoader() const noexcept;
40
+ #endif // !NDEBUG
41
+ #endif // ANDROID
42
+
43
+ #pragma mark - Getters
44
+
45
+ [[nodiscard]] Float getPaddingStart() const noexcept;
46
+
47
+ [[nodiscard]] Float getPaddingEnd() const noexcept;
48
+
49
+ private:
50
+ Float paddingStart_{0.f};
51
+ Float paddingEnd_{0.f};
52
+ #if !defined(ANDROID) && !defined(NDEBUG)
53
+ std::weak_ptr<void> imageLoader_;
54
+ #endif // !ANDROID && !NDEBUG
55
+ };
56
+
57
+ } // namespace facebook::react
@@ -0,0 +1,27 @@
1
+ #pragma once
2
+
3
+ #ifdef ANDROID
4
+ #include <fbjni/fbjni.h>
5
+ #endif // ANDROID
6
+ #include <react/debug/react_native_assert.h>
7
+ #include <react/renderer/components/rnscreens/Props.h>
8
+ #include <react/renderer/components/rnscreens/utils/RectUtil.h>
9
+ #include <react/renderer/core/ConcreteComponentDescriptor.h>
10
+ #include "RNSScreenStackHeaderSubviewShadowNode.h"
11
+
12
+ namespace facebook::react {
13
+
14
+ using namespace rnscreens;
15
+
16
+ class RNSScreenStackHeaderSubviewComponentDescriptor final
17
+ : public ConcreteComponentDescriptor<
18
+ RNSScreenStackHeaderSubviewShadowNode> {
19
+ public:
20
+ using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
21
+
22
+ void adopt(ShadowNode &shadowNode) const override {
23
+ ConcreteComponentDescriptor::adopt(shadowNode);
24
+ }
25
+ };
26
+
27
+ } // namespace facebook::react
@@ -0,0 +1,8 @@
1
+ #include "RNSScreenStackHeaderSubviewShadowNode.h"
2
+
3
+ namespace facebook::react {
4
+
5
+ extern const char RNSScreenStackHeaderSubviewComponentName[] =
6
+ "RNSScreenStackHeaderSubview";
7
+
8
+ } // namespace facebook::react
@@ -0,0 +1,31 @@
1
+ #pragma once
2
+
3
+ #include <jsi/jsi.h>
4
+ #include <react/renderer/components/rnscreens/EventEmitters.h>
5
+ #include <react/renderer/components/rnscreens/Props.h>
6
+ #include <react/renderer/components/view/ConcreteViewShadowNode.h>
7
+ #include <react/renderer/core/LayoutContext.h>
8
+ #include "FrameCorrectionModes.h"
9
+ #include "RNSScreenStackHeaderSubviewState.h"
10
+
11
+ namespace facebook::react {
12
+
13
+ using namespace rnscreens;
14
+
15
+ JSI_EXPORT extern const char RNSScreenStackHeaderSubviewComponentName[];
16
+
17
+ class JSI_EXPORT RNSScreenStackHeaderSubviewShadowNode final
18
+ : public ConcreteViewShadowNode<
19
+ RNSScreenStackHeaderSubviewComponentName,
20
+ RNSScreenStackHeaderSubviewProps,
21
+ RNSScreenStackHeaderSubviewEventEmitter,
22
+ RNSScreenStackHeaderSubviewState> {
23
+ public:
24
+ using ConcreteViewShadowNode::ConcreteViewShadowNode;
25
+ using StateData = ConcreteViewShadowNode::ConcreteStateData;
26
+ #pragma mark - ShadowNode overrides
27
+
28
+ #pragma mark - Custom interface
29
+ };
30
+
31
+ } // namespace facebook::react
@@ -0,0 +1,15 @@
1
+ #include "RNSScreenStackHeaderSubviewState.h"
2
+
3
+ namespace facebook {
4
+ namespace react {
5
+
6
+ using namespace rnscreens;
7
+
8
+ #ifdef ANDROID
9
+ folly::dynamic RNSScreenStackHeaderSubviewState::getDynamic() const {
10
+ return folly::dynamic::object();
11
+ }
12
+ #endif // ANDROID
13
+
14
+ } // namespace react
15
+ } // namespace facebook
@@ -0,0 +1,39 @@
1
+ #pragma once
2
+
3
+ #include <react/renderer/core/graphicsConversions.h>
4
+ #include <react/renderer/graphics/Float.h>
5
+
6
+ #ifdef ANDROID
7
+ #include <folly/dynamic.h>
8
+ #include <react/renderer/mapbuffer/MapBuffer.h>
9
+ #include <react/renderer/mapbuffer/MapBufferBuilder.h>
10
+ #endif
11
+
12
+ #include "FrameCorrectionModes.h"
13
+
14
+ namespace facebook::react {
15
+
16
+ using namespace rnscreens;
17
+
18
+ class JSI_EXPORT RNSScreenStackHeaderSubviewState final {
19
+ public:
20
+ using Shared = std::shared_ptr<const RNSScreenStackHeaderSubviewState>;
21
+
22
+ RNSScreenStackHeaderSubviewState() = default;
23
+
24
+ #ifdef ANDROID
25
+ RNSScreenStackHeaderSubviewState(
26
+ RNSScreenStackHeaderSubviewState const &previousState,
27
+ folly::dynamic data) {}
28
+ #endif
29
+
30
+ #ifdef ANDROID
31
+ folly::dynamic getDynamic() const;
32
+ MapBuffer getMapBuffer() const {
33
+ return MapBufferBuilder::EMPTY();
34
+ };
35
+ #endif // ANDROID
36
+ #pragma mark - Getters
37
+ };
38
+
39
+ } // namespace facebook::react
@@ -3,12 +3,33 @@
3
3
  namespace facebook {
4
4
  namespace react {
5
5
 
6
+ using namespace rnscreens;
7
+
6
8
  #ifdef ANDROID
7
9
  folly::dynamic RNSScreenState::getDynamic() const {
8
10
  return folly::dynamic::object("frameWidth", frameSize.width)(
9
- "frameHeight", frameSize.height);
11
+ "frameHeight", frameSize.height)("contentOffsetX", contentOffset.x)(
12
+ "contentOffsetY", contentOffset.y);
13
+ }
14
+
15
+ void RNSScreenState::setHeaderHeight(float headerHeight) {
16
+ lastKnownHeaderHeight_ = headerHeight;
17
+ }
18
+
19
+ float RNSScreenState::getLastKnownHeaderHeight() const noexcept {
20
+ return lastKnownHeaderHeight_;
10
21
  }
11
- #endif
22
+
23
+ FrameCorrectionModes &RNSScreenState::getFrameCorrectionModes() noexcept {
24
+ return headerCorrectionModes_;
25
+ }
26
+
27
+ const FrameCorrectionModes &RNSScreenState::getHeaderCorrectionModes()
28
+ const noexcept {
29
+ return headerCorrectionModes_;
30
+ }
31
+
32
+ #endif // ANDROID
12
33
 
13
34
  } // namespace react
14
35
  } // namespace facebook
@@ -1,34 +1,43 @@
1
1
  #pragma once
2
2
 
3
- #include <react/renderer/graphics/Float.h>
4
3
  #include <react/renderer/core/graphicsConversions.h>
4
+ #include <react/renderer/graphics/Float.h>
5
5
 
6
6
  #ifdef ANDROID
7
7
  #include <folly/dynamic.h>
8
8
  #include <react/renderer/mapbuffer/MapBuffer.h>
9
9
  #include <react/renderer/mapbuffer/MapBufferBuilder.h>
10
- #endif
10
+ #endif // ANDROID
11
+
12
+ #include "FrameCorrectionModes.h"
11
13
 
12
14
  namespace facebook {
13
15
  namespace react {
14
16
 
17
+ using namespace rnscreens;
18
+
15
19
  class JSI_EXPORT RNSScreenState final {
16
20
  public:
17
21
  using Shared = std::shared_ptr<const RNSScreenState>;
18
22
 
19
23
  RNSScreenState(){};
20
- RNSScreenState(Size frameSize_) : frameSize(frameSize_){};
24
+ RNSScreenState(Size frameSize_, Point contentOffset_)
25
+ : frameSize(frameSize_), contentOffset(contentOffset_){};
21
26
 
22
27
  #ifdef ANDROID
23
- RNSScreenState(
24
- RNSScreenState const &previousState,
25
- folly::dynamic data)
28
+ RNSScreenState(RNSScreenState const &previousState, folly::dynamic data)
26
29
  : frameSize(Size{
27
30
  (Float)data["frameWidth"].getDouble(),
28
- (Float)data["frameHeight"].getDouble()}){};
31
+ (Float)data["frameHeight"].getDouble()}),
32
+ contentOffset(Point{
33
+ (Float)data["contentOffsetX"].getDouble(),
34
+ (Float)data["contentOffsetY"].getDouble()}),
35
+ lastKnownHeaderHeight_{previousState.lastKnownHeaderHeight_},
36
+ headerCorrectionModes_{previousState.headerCorrectionModes_} {};
29
37
  #endif
30
38
 
31
39
  const Size frameSize{};
40
+ Point contentOffset;
32
41
 
33
42
  #ifdef ANDROID
34
43
  folly::dynamic getDynamic() const;
@@ -36,7 +45,23 @@ class JSI_EXPORT RNSScreenState final {
36
45
  return MapBufferBuilder::EMPTY();
37
46
  };
38
47
 
39
- #endif
48
+ void setHeaderHeight(float headerHeight);
49
+
50
+ float getLastKnownHeaderHeight() const noexcept;
51
+
52
+ FrameCorrectionModes &getFrameCorrectionModes() noexcept;
53
+
54
+ const FrameCorrectionModes &getHeaderCorrectionModes() const noexcept;
55
+
56
+ #endif // ANDROID
57
+
58
+ private:
59
+ #ifdef ANDROID
60
+ // Header height as measured on dummy layout
61
+ float lastKnownHeaderHeight_{0.f};
62
+
63
+ FrameCorrectionModes headerCorrectionModes_{};
64
+ #endif // ANDROID
40
65
 
41
66
  #pragma mark - Getters
42
67
  };