react-native-screens 4.24.0 → 4.25.0-beta.1

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 (958) hide show
  1. package/README.md +7 -3
  2. package/RNScreens.podspec +13 -3
  3. package/android/CMakeLists.txt +7 -22
  4. package/android/build.gradle +9 -28
  5. package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +0 -2
  6. package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +0 -8
  7. package/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt +49 -13
  8. package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +10 -7
  9. package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +15 -89
  10. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt +13 -14
  11. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainerViewManager.kt +0 -4
  12. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragment.kt +3 -1
  13. package/android/src/main/java/com/swmansion/rnscreens/ScreenModalFragment.kt +1 -2
  14. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +26 -3
  15. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragmentWrapper.kt +1 -3
  16. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +36 -16
  17. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +38 -86
  18. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubview.kt +1 -1
  19. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +1 -6
  20. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackViewManager.kt +16 -6
  21. package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +21 -61
  22. package/android/src/main/java/com/swmansion/rnscreens/ScreensModule.kt +13 -26
  23. package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +7 -37
  24. package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/SheetUtils.kt +1 -17
  25. package/android/src/main/java/com/swmansion/rnscreens/ext/ViewExt.kt +4 -0
  26. package/android/src/main/java/com/swmansion/rnscreens/gamma/common/ShadowStateProxy.kt +58 -0
  27. package/android/src/main/java/com/swmansion/rnscreens/gamma/common/colorscheme/ColorScheme.kt +7 -0
  28. package/android/src/main/java/com/swmansion/rnscreens/gamma/common/colorscheme/ColorSchemeCoordinator.kt +120 -0
  29. package/android/src/main/java/com/swmansion/rnscreens/gamma/common/colorscheme/ColorSchemeListener.kt +5 -0
  30. package/android/src/main/java/com/swmansion/rnscreens/gamma/common/colorscheme/ColorSchemeProviding.kt +9 -0
  31. package/android/src/main/java/com/swmansion/rnscreens/gamma/{tabs/image/TabsImageLoader.kt → helpers/ImageLoader.kt} +9 -8
  32. package/android/src/main/java/com/swmansion/rnscreens/gamma/helpers/SystemDrawable.kt +3 -2
  33. package/android/src/main/java/com/swmansion/rnscreens/gamma/helpers/UIManagerHelperExt.kt +11 -0
  34. package/android/src/main/java/com/swmansion/rnscreens/gamma/scrollviewmarker/ScrollViewMarker.kt +91 -0
  35. package/android/src/main/java/com/swmansion/rnscreens/gamma/scrollviewmarker/ScrollViewMarkerViewManager.kt +55 -0
  36. package/android/src/main/java/com/swmansion/rnscreens/gamma/scrollviewmarker/ScrollViewSeeking.kt +13 -0
  37. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/StackHeaderAppBarLayout.kt +117 -0
  38. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/StackHeaderCoordinator.kt +533 -0
  39. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/StackHeaderCoordinatorLayout.kt +100 -0
  40. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/StackHeaderScrollingViewBehavior.kt +19 -0
  41. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/config/OnHeaderConfigAttachListener.kt +5 -0
  42. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/config/OnHeaderConfigChangeListener.kt +5 -0
  43. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/config/StackHeaderConfig.kt +152 -0
  44. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/config/StackHeaderConfigProviding.kt +28 -0
  45. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/config/StackHeaderConfigViewManager.kt +157 -0
  46. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/config/StackHeaderType.kt +7 -0
  47. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/subview/OnStackHeaderSubviewChangeListener.kt +5 -0
  48. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/subview/StackHeaderSubview.kt +91 -0
  49. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/subview/StackHeaderSubviewCollapseMode.kt +20 -0
  50. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/subview/StackHeaderSubviewProviding.kt +14 -0
  51. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/subview/StackHeaderSubviewType.kt +8 -0
  52. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/subview/StackHeaderSubviewViewManager.kt +67 -0
  53. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/host/StackContainer.kt +17 -5
  54. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/host/StackHost.kt +27 -0
  55. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/screen/StackScreen.kt +39 -7
  56. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/screen/StackScreenFragment.kt +3 -1
  57. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/screen/StackScreenViewManager.kt +72 -0
  58. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{TabsHostAppearanceApplicator.kt → appearance/TabsAppearanceApplicator.kt} +99 -62
  59. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/appearance/TabsAppearanceCoordinator.kt +51 -0
  60. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/appearance/TabsAppearanceModel.kt +25 -0
  61. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/container/MenuHelpers.kt +31 -0
  62. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/container/TabsContainer.kt +569 -0
  63. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/container/TabsContainerDelegate.kt +48 -0
  64. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/container/TabsContainerOps.kt +7 -0
  65. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/container/TabsNavState.kt +43 -0
  66. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/host/TabsHost.kt +207 -0
  67. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{TabsHostA11yCoordinator.kt → host/TabsHostA11yCoordinator.kt} +3 -1
  68. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/host/TabsHostEventEmitter.kt +75 -0
  69. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/host/TabsHostViewManager.kt +128 -0
  70. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/host/event/TabsHostTabSelectedEvent.kt +48 -0
  71. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/host/event/TabsHostTabSelectionPreventedEvent.kt +47 -0
  72. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/host/event/TabsHostTabSelectionRejectedEvent.kt +55 -0
  73. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{TabsScreen.kt → screen/TabsScreen.kt} +25 -21
  74. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{TabsScreenDelegate.kt → screen/TabsScreenDelegate.kt} +2 -5
  75. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{TabsScreenEventEmitter.kt → screen/TabsScreenEventEmitter.kt} +6 -6
  76. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{TabsScreenFragment.kt → screen/TabsScreenFragment.kt} +4 -1
  77. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/screen/TabsScreenViewManager.kt +234 -0
  78. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{event → screen/event}/TabsScreenDidAppearEvent.kt +1 -1
  79. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{event → screen/event}/TabsScreenDidDisappearEvent.kt +1 -1
  80. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{event → screen/event}/TabsScreenWillAppearEvent.kt +1 -1
  81. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{event → screen/event}/TabsScreenWillDisappearEvent.kt +1 -1
  82. package/android/src/main/java/com/swmansion/rnscreens/safearea/SafeAreaView.kt +1 -65
  83. package/android/src/main/java/com/swmansion/rnscreens/safearea/{paper/SafeAreaViewEdges.kt → SafeAreaViewEdges.kt} +1 -1
  84. package/android/src/main/java/com/swmansion/rnscreens/safearea/SafeAreaViewManager.kt +0 -9
  85. package/android/src/main/java/com/swmansion/rnscreens/utils/ColorUtils.kt +25 -0
  86. package/android/src/main/java/com/swmansion/rnscreens/utils/DimensionUtils.kt +18 -0
  87. package/android/src/main/java/com/swmansion/rnscreens/utils/DrawableUtils.kt +23 -0
  88. package/android/src/main/java/com/swmansion/rnscreens/utils/RNSLog.kt +75 -7
  89. package/android/src/main/java/com/swmansion/rnscreens/utils/ScreenDummyLayoutHelper.kt +118 -34
  90. package/android/src/main/jni/rnscreens.h +3 -0
  91. package/common/cpp/react/renderer/components/rnscreens/RNSSplitScreenComponentDescriptor.h +39 -0
  92. package/common/cpp/react/renderer/components/rnscreens/RNSSplitScreenShadowNode.cpp +13 -0
  93. package/common/cpp/react/renderer/components/rnscreens/{RNSSplitViewScreenShadowNode.h → RNSSplitScreenShadowNode.h} +7 -7
  94. package/common/cpp/react/renderer/components/rnscreens/{RNSSplitViewScreenState.h → RNSSplitScreenState.h} +6 -6
  95. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderConfigComponentDescriptor.h +43 -0
  96. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderConfigShadowNode.cpp +21 -0
  97. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderConfigShadowNode.h +33 -0
  98. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderConfigState.cpp +13 -0
  99. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderConfigState.h +44 -0
  100. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderSubviewComponentDescriptor.h +14 -0
  101. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderSubviewShadowNode.cpp +30 -0
  102. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderSubviewShadowNode.h +37 -0
  103. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderSubviewState.cpp +12 -0
  104. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderSubviewState.h +39 -0
  105. package/common/cpp/react/renderer/components/rnscreens/RNSStackScreenComponentDescriptor.h +42 -0
  106. package/common/cpp/react/renderer/components/rnscreens/RNSStackScreenShadowNode.cpp +15 -0
  107. package/common/cpp/react/renderer/components/rnscreens/RNSStackScreenShadowNode.h +30 -0
  108. package/common/cpp/react/renderer/components/rnscreens/RNSStackScreenState.cpp +13 -0
  109. package/common/cpp/react/renderer/components/rnscreens/RNSStackScreenState.h +44 -0
  110. package/common/cpp/react/renderer/components/rnscreens/RNSTabsBottomAccessoryShadowNode.cpp +17 -0
  111. package/common/cpp/react/renderer/components/rnscreens/RNSTabsBottomAccessoryShadowNode.h +9 -0
  112. package/common/cpp/react/renderer/components/rnscreens/RNSTabsHostShadowNode.cpp +6 -2
  113. package/common/cpp/react/renderer/components/rnscreens/RNSTabsHostShadowNode.h +7 -2
  114. package/ios/RCTConvert+RNScreens.h +3 -13
  115. package/ios/RCTConvert+RNScreens.mm +2 -67
  116. package/ios/RCTImageComponentView+RNSScreenStackHeaderConfig.h +2 -2
  117. package/ios/RCTImageComponentView+RNSScreenStackHeaderConfig.mm +0 -4
  118. package/ios/RNSConvert.h +6 -6
  119. package/ios/RNSConvert.mm +0 -14
  120. package/ios/RNSEnums.h +3 -3
  121. package/ios/RNSFullWindowOverlay.h +6 -17
  122. package/ios/RNSFullWindowOverlay.mm +7 -60
  123. package/ios/RNSModalScreen.mm +8 -17
  124. package/ios/RNSModule.h +2 -6
  125. package/ios/RNSModule.mm +2 -19
  126. package/ios/RNSScreen.h +13 -49
  127. package/ios/RNSScreen.mm +97 -339
  128. package/ios/RNSScreenContainer.h +2 -11
  129. package/ios/RNSScreenContainer.mm +6 -33
  130. package/ios/RNSScreenContentWrapper.h +4 -11
  131. package/ios/RNSScreenContentWrapper.mm +9 -38
  132. package/ios/RNSScreenFooter.h +4 -11
  133. package/ios/RNSScreenFooter.mm +7 -32
  134. package/ios/RNSScreenNavigationContainer.mm +5 -14
  135. package/ios/RNSScreenStack.h +6 -19
  136. package/ios/RNSScreenStack.mm +52 -181
  137. package/ios/RNSScreenStackAnimator.mm +1 -2
  138. package/ios/RNSScreenStackHeaderConfig.h +3 -60
  139. package/ios/RNSScreenStackHeaderConfig.mm +11 -230
  140. package/ios/RNSScreenStackHeaderSubview.h +2 -12
  141. package/ios/RNSScreenStackHeaderSubview.mm +12 -62
  142. package/ios/RNSSearchBar.mm +10 -6
  143. package/ios/bridging/RNSReactBaseView.h +0 -13
  144. package/ios/conversion/RNSConversions-ScrollViewMarker.h +26 -0
  145. package/ios/conversion/RNSConversions-ScrollViewMarker.mm +44 -0
  146. package/ios/conversion/RNSConversions-SplitView.mm +20 -22
  147. package/ios/conversion/RNSConversions-Stack.h +2 -2
  148. package/ios/conversion/RNSConversions-Stack.mm +2 -2
  149. package/ios/conversion/RNSConversions-Tabs.mm +60 -54
  150. package/ios/conversion/RNSConversions.h +30 -28
  151. package/ios/gamma/scroll-view-marker/RNSScrollViewMarkerComponentView.h +11 -0
  152. package/ios/gamma/scroll-view-marker/RNSScrollViewMarkerComponentView.mm +272 -0
  153. package/ios/gamma/scroll-view-marker/RNSScrollViewSeeking.h +15 -0
  154. package/ios/gamma/split/RNSSplitAppearanceApplicator.swift +194 -0
  155. package/ios/gamma/split/RNSSplitAppearanceCoordinator.swift +26 -0
  156. package/ios/gamma/split/RNSSplitAppearanceUpdateFlags.swift +11 -0
  157. package/ios/gamma/{split-view/RNSSplitViewHostComponentEventEmitter.h → split/RNSSplitHostComponentEventEmitter.h} +5 -5
  158. package/ios/gamma/{split-view/RNSSplitViewHostComponentEventEmitter.mm → split/RNSSplitHostComponentEventEmitter.mm} +4 -4
  159. package/ios/gamma/{split-view/RNSSplitViewHostComponentView.h → split/RNSSplitHostComponentView.h} +10 -10
  160. package/ios/gamma/{split-view/RNSSplitViewHostComponentView.mm → split/RNSSplitHostComponentView.mm} +83 -75
  161. package/ios/gamma/{split-view/RNSSplitViewHostComponentViewManager.h → split/RNSSplitHostComponentViewManager.h} +1 -1
  162. package/ios/gamma/split/RNSSplitHostComponentViewManager.mm +7 -0
  163. package/ios/gamma/{split-view/RNSSplitViewHostController.swift → split/RNSSplitHostController.swift} +82 -82
  164. package/ios/gamma/{split-view/RNSSplitViewNavigationController.swift → split/RNSSplitNavigationController.swift} +10 -10
  165. package/ios/gamma/{split-view/RNSSplitViewScreenComponentEventEmitter.h → split/RNSSplitScreenComponentEventEmitter.h} +5 -5
  166. package/ios/gamma/{split-view/RNSSplitViewScreenComponentEventEmitter.mm → split/RNSSplitScreenComponentEventEmitter.mm} +4 -4
  167. package/ios/gamma/{split-view/RNSSplitViewScreenComponentView.h → split/RNSSplitScreenComponentView.h} +17 -17
  168. package/ios/gamma/{split-view/RNSSplitViewScreenComponentView.mm → split/RNSSplitScreenComponentView.mm} +34 -24
  169. package/ios/gamma/{split-view/RNSSplitViewScreenComponentViewManager.h → split/RNSSplitScreenComponentViewManager.h} +1 -1
  170. package/ios/gamma/split/RNSSplitScreenComponentViewManager.mm +7 -0
  171. package/ios/gamma/split/RNSSplitScreenController.swift +133 -0
  172. package/ios/gamma/{split-view/RNSSplitViewScreenShadowStateProxy.h → split/RNSSplitScreenShadowStateProxy.h} +14 -14
  173. package/ios/gamma/{split-view/RNSSplitViewScreenShadowStateProxy.mm → split/RNSSplitScreenShadowStateProxy.mm} +10 -10
  174. package/ios/gamma/stack/host/RNSStackHostComponentView.h +1 -7
  175. package/ios/gamma/stack/host/RNSStackHostComponentView.mm +77 -83
  176. package/ios/gamma/stack/host/RNSStackNavigationController.h +13 -0
  177. package/ios/gamma/stack/host/RNSStackNavigationController.mm +82 -0
  178. package/ios/gamma/stack/host/RNSStackOperation.h +25 -0
  179. package/ios/gamma/stack/host/RNSStackOperation.mm +21 -0
  180. package/ios/gamma/stack/host/RNSStackOperationCoordinator.h +15 -0
  181. package/ios/gamma/stack/host/RNSStackOperationCoordinator.mm +78 -0
  182. package/ios/gamma/stack/screen/RNSStackScreenComponentView.h +1 -0
  183. package/ios/gamma/stack/screen/RNSStackScreenComponentView.mm +14 -1
  184. package/ios/gamma/stack/screen/RNSStackScreenController.h +15 -0
  185. package/ios/gamma/stack/screen/RNSStackScreenController.mm +66 -0
  186. package/ios/helpers/scroll-view/RNSScrollEdgeEffectApplicator.h +2 -1
  187. package/ios/helpers/scroll-view/RNSScrollEdgeEffectApplicator.mm +2 -1
  188. package/ios/safe-area/RNSSafeAreaViewComponentView.h +0 -17
  189. package/ios/safe-area/RNSSafeAreaViewComponentView.mm +7 -60
  190. package/ios/stubs/RNSGammaStubs.h +5 -2
  191. package/ios/stubs/RNSGammaStubs.mm +5 -2
  192. package/ios/tabs/RNSTabBarAppearanceCoordinator.h +2 -1
  193. package/ios/tabs/RNSTabBarAppearanceCoordinator.mm +1 -0
  194. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.h +4 -9
  195. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.mm +13 -15
  196. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentViewManager.mm +1 -1
  197. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryContentComponentView.mm +10 -0
  198. package/ios/tabs/host/RNSTabBarController.h +96 -8
  199. package/ios/tabs/host/RNSTabBarController.mm +789 -52
  200. package/ios/tabs/host/RNSTabsHostComponentView.h +17 -12
  201. package/ios/tabs/host/RNSTabsHostComponentView.mm +140 -66
  202. package/ios/tabs/host/RNSTabsHostComponentViewManager.mm +0 -3
  203. package/ios/tabs/host/RNSTabsHostEventEmitter.h +49 -12
  204. package/ios/tabs/host/RNSTabsHostEventEmitter.mm +53 -17
  205. package/ios/tabs/host/RNSTabsNavigationState.h +69 -0
  206. package/ios/tabs/host/RNSTabsNavigationState.mm +45 -0
  207. package/ios/tabs/screen/RNSTabsScreenComponentView.h +8 -22
  208. package/ios/tabs/screen/RNSTabsScreenComponentView.mm +44 -105
  209. package/ios/tabs/screen/RNSTabsScreenComponentViewManager.mm +1 -1
  210. package/ios/tabs/screen/RNSTabsScreenEventEmitter.h +1 -1
  211. package/ios/tabs/screen/RNSTabsScreenEventEmitter.mm +2 -2
  212. package/ios/tabs/screen/RNSTabsScreenViewController.h +8 -5
  213. package/ios/tabs/screen/RNSTabsScreenViewController.mm +18 -12
  214. package/ios/utils/RNSLog.swift +6 -0
  215. package/ios/utils/UIView+RNSUtility.h +1 -12
  216. package/ios/utils/UIView+RNSUtility.mm +2 -19
  217. package/lib/commonjs/components/ScreenStack.js +4 -1
  218. package/lib/commonjs/components/ScreenStack.js.map +1 -1
  219. package/lib/commonjs/components/ScreenStackHeaderConfig.js +8 -1
  220. package/lib/commonjs/components/ScreenStackHeaderConfig.js.map +1 -1
  221. package/lib/commonjs/components/ScreenStackItem.js +19 -7
  222. package/lib/commonjs/components/ScreenStackItem.js.map +1 -1
  223. package/lib/commonjs/components/SearchBar.js.map +1 -1
  224. package/lib/commonjs/components/contexts/TopInsetApplicationContext.js +33 -0
  225. package/lib/commonjs/components/contexts/TopInsetApplicationContext.js.map +1 -0
  226. package/lib/commonjs/components/gamma/scroll-view-marker/ScrollViewMarker.js +23 -0
  227. package/lib/commonjs/components/gamma/scroll-view-marker/ScrollViewMarker.js.map +1 -0
  228. package/lib/commonjs/components/gamma/scroll-view-marker/ScrollViewMarker.types.js +6 -0
  229. package/lib/commonjs/components/gamma/scroll-view-marker/ScrollViewMarker.types.js.map +1 -0
  230. package/lib/commonjs/components/gamma/scroll-view-marker/index.js +13 -0
  231. package/lib/commonjs/components/gamma/scroll-view-marker/index.js.map +1 -0
  232. package/lib/commonjs/components/gamma/split/SplitHost.js +5 -5
  233. package/lib/commonjs/components/gamma/split/SplitHost.js.map +1 -1
  234. package/lib/commonjs/components/gamma/split/SplitScreen.js +3 -3
  235. package/lib/commonjs/components/gamma/split/SplitScreen.js.map +1 -1
  236. package/lib/commonjs/components/gamma/split/index.js +2 -28
  237. package/lib/commonjs/components/gamma/split/index.js.map +1 -1
  238. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.android.js +68 -0
  239. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.android.js.map +1 -0
  240. package/lib/commonjs/components/{tabs/TabsAccessoryContent.types.js → gamma/stack/header/StackHeaderConfig.android.types.js} +1 -1
  241. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.android.types.js.map +1 -0
  242. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.d.js +2 -0
  243. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.d.js.map +1 -0
  244. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.ios.js +27 -0
  245. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.ios.js.map +1 -0
  246. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.ios.types.js +2 -0
  247. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.ios.types.js.map +1 -0
  248. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.types.js +6 -0
  249. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.types.js.map +1 -0
  250. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.web.js +10 -0
  251. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.web.js.map +1 -0
  252. package/lib/commonjs/components/gamma/stack/header/android/StackHeaderSubview.android.js +33 -0
  253. package/lib/commonjs/components/gamma/stack/header/android/StackHeaderSubview.android.js.map +1 -0
  254. package/lib/commonjs/components/gamma/stack/header/android/StackHeaderSubview.android.types.js +6 -0
  255. package/lib/commonjs/components/gamma/stack/header/android/StackHeaderSubview.android.types.js.map +1 -0
  256. package/lib/commonjs/components/gamma/stack/header/index.js +14 -0
  257. package/lib/commonjs/components/gamma/stack/header/index.js.map +1 -0
  258. package/lib/commonjs/components/gamma/stack/{StackHost.js → host/StackHost.js} +1 -1
  259. package/lib/commonjs/components/gamma/stack/host/StackHost.js.map +1 -0
  260. package/lib/commonjs/components/gamma/stack/host/StackHost.types.js.map +1 -0
  261. package/lib/commonjs/components/gamma/stack/host/StackHost.web.js.map +1 -0
  262. package/lib/commonjs/components/gamma/stack/host/index.js +14 -0
  263. package/lib/commonjs/components/gamma/stack/host/index.js.map +1 -0
  264. package/lib/commonjs/components/gamma/stack/index.js +8 -33
  265. package/lib/commonjs/components/gamma/stack/index.js.map +1 -1
  266. package/lib/commonjs/components/gamma/stack/{StackScreen.js → screen/StackScreen.js} +2 -2
  267. package/lib/commonjs/components/gamma/stack/screen/StackScreen.js.map +1 -0
  268. package/lib/commonjs/components/gamma/stack/screen/StackScreen.types.js.map +1 -0
  269. package/lib/commonjs/components/gamma/stack/screen/StackScreen.web.js.map +1 -0
  270. package/lib/commonjs/components/gamma/stack/screen/index.js +14 -0
  271. package/lib/commonjs/components/gamma/stack/screen/index.js.map +1 -0
  272. package/lib/commonjs/components/helpers/PlatformUtils.js +9 -0
  273. package/lib/commonjs/components/helpers/PlatformUtils.js.map +1 -0
  274. package/lib/commonjs/components/helpers/prepareHeaderBarButtonItems.js +4 -3
  275. package/lib/commonjs/components/helpers/prepareHeaderBarButtonItems.js.map +1 -1
  276. package/lib/commonjs/components/safe-area/SafeAreaView.js +1 -2
  277. package/lib/commonjs/components/safe-area/SafeAreaView.js.map +1 -1
  278. package/lib/commonjs/components/safe-area/index.js +13 -0
  279. package/lib/commonjs/components/safe-area/index.js.map +1 -0
  280. package/lib/commonjs/components/tabs/{TabsAccessory.js → bottom-accessory/TabsBottomAccessory.js} +4 -4
  281. package/lib/commonjs/components/tabs/bottom-accessory/TabsBottomAccessory.js.map +1 -0
  282. package/lib/commonjs/components/tabs/bottom-accessory/TabsBottomAccessory.types.js +6 -0
  283. package/lib/commonjs/components/tabs/bottom-accessory/TabsBottomAccessory.types.js.map +1 -0
  284. package/lib/commonjs/components/tabs/{TabsAccessoryContent.js → bottom-accessory/TabsBottomAccessoryContent.js} +4 -4
  285. package/lib/commonjs/components/tabs/bottom-accessory/TabsBottomAccessoryContent.js.map +1 -0
  286. package/lib/commonjs/components/tabs/bottom-accessory/TabsBottomAccessoryContent.types.js +6 -0
  287. package/lib/commonjs/components/tabs/bottom-accessory/TabsBottomAccessoryContent.types.js.map +1 -0
  288. package/lib/commonjs/components/tabs/bottom-accessory/index.js +21 -0
  289. package/lib/commonjs/components/tabs/bottom-accessory/index.js.map +1 -0
  290. package/lib/commonjs/components/tabs/host/TabsHost.android.js +67 -0
  291. package/lib/commonjs/components/tabs/host/TabsHost.android.js.map +1 -0
  292. package/lib/commonjs/components/tabs/host/TabsHost.android.types.js +2 -0
  293. package/lib/commonjs/components/tabs/host/TabsHost.android.types.js.map +1 -0
  294. package/lib/commonjs/components/tabs/host/TabsHost.d.js +2 -0
  295. package/lib/commonjs/components/tabs/host/TabsHost.d.js.map +1 -0
  296. package/lib/commonjs/components/tabs/{TabsHost.js → host/TabsHost.ios.js} +42 -31
  297. package/lib/commonjs/components/tabs/host/TabsHost.ios.js.map +1 -0
  298. package/lib/commonjs/components/tabs/host/TabsHost.ios.types.js +6 -0
  299. package/lib/commonjs/components/tabs/host/TabsHost.ios.types.js.map +1 -0
  300. package/lib/commonjs/components/tabs/host/TabsHost.types.js.map +1 -0
  301. package/lib/commonjs/components/tabs/host/TabsHost.web.js.map +1 -0
  302. package/lib/commonjs/components/tabs/host/index.js +14 -0
  303. package/lib/commonjs/components/tabs/host/index.js.map +1 -0
  304. package/lib/commonjs/components/tabs/host/useTabsHost.js +31 -0
  305. package/lib/commonjs/components/tabs/host/useTabsHost.js.map +1 -0
  306. package/lib/commonjs/components/tabs/index.js +6 -8
  307. package/lib/commonjs/components/tabs/index.js.map +1 -1
  308. package/lib/commonjs/components/tabs/screen/TabsScreen.android.js +143 -0
  309. package/lib/commonjs/components/tabs/screen/TabsScreen.android.js.map +1 -0
  310. package/lib/commonjs/components/tabs/screen/TabsScreen.android.types.js +6 -0
  311. package/lib/commonjs/components/tabs/screen/TabsScreen.android.types.js.map +1 -0
  312. package/lib/commonjs/components/tabs/screen/TabsScreen.d.js +2 -0
  313. package/lib/commonjs/components/tabs/screen/TabsScreen.d.js.map +1 -0
  314. package/lib/commonjs/components/tabs/screen/TabsScreen.ios.js +165 -0
  315. package/lib/commonjs/components/tabs/screen/TabsScreen.ios.js.map +1 -0
  316. package/lib/commonjs/components/tabs/{TabsAccessory.types.js → screen/TabsScreen.ios.types.js} +1 -1
  317. package/lib/commonjs/components/tabs/screen/TabsScreen.ios.types.js.map +1 -0
  318. package/lib/commonjs/components/tabs/screen/TabsScreen.types.js.map +1 -0
  319. package/lib/commonjs/components/tabs/screen/TabsScreen.web.js.map +1 -0
  320. package/lib/commonjs/components/tabs/screen/index.js +14 -0
  321. package/lib/commonjs/components/tabs/screen/index.js.map +1 -0
  322. package/lib/commonjs/components/tabs/screen/useTabsScreen.js +54 -0
  323. package/lib/commonjs/components/tabs/screen/useTabsScreen.js.map +1 -0
  324. package/lib/commonjs/experimental/index.js +41 -19
  325. package/lib/commonjs/experimental/index.js.map +1 -1
  326. package/lib/commonjs/fabric/ModalScreenNativeComponent.js.map +1 -1
  327. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
  328. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  329. package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
  330. package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
  331. package/lib/commonjs/fabric/gamma/ScrollViewMarkerNativeComponent.js +10 -0
  332. package/lib/commonjs/fabric/gamma/ScrollViewMarkerNativeComponent.js.map +1 -0
  333. package/lib/commonjs/fabric/gamma/{SplitViewHostNativeComponent.js → split/SplitHostNativeComponent.js} +2 -2
  334. package/lib/commonjs/fabric/gamma/split/SplitHostNativeComponent.js.map +1 -0
  335. package/lib/commonjs/fabric/gamma/{SplitViewScreenNativeComponent.js → split/SplitScreenNativeComponent.js} +2 -2
  336. package/lib/commonjs/fabric/gamma/split/SplitScreenNativeComponent.js.map +1 -0
  337. package/lib/commonjs/fabric/gamma/stack/StackHeaderConfigAndroidNativeComponent.js +13 -0
  338. package/lib/commonjs/fabric/gamma/stack/StackHeaderConfigAndroidNativeComponent.js.map +1 -0
  339. package/lib/commonjs/fabric/gamma/stack/StackHeaderConfigIOSNativeComponent.js +13 -0
  340. package/lib/commonjs/fabric/gamma/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -0
  341. package/lib/commonjs/fabric/gamma/stack/StackHeaderSubviewAndroidNativeComponent.js +13 -0
  342. package/lib/commonjs/fabric/gamma/stack/StackHeaderSubviewAndroidNativeComponent.js.map +1 -0
  343. package/lib/commonjs/fabric/gamma/stack/StackScreenNativeComponent.js +3 -1
  344. package/lib/commonjs/fabric/gamma/stack/StackScreenNativeComponent.js.map +1 -1
  345. package/lib/commonjs/fabric/safe-area/SafeAreaViewNativeComponent.js.map +1 -1
  346. package/lib/commonjs/fabric/tabs/TabsBottomAccessoryNativeComponent.js +2 -1
  347. package/lib/commonjs/fabric/tabs/TabsBottomAccessoryNativeComponent.js.map +1 -1
  348. package/lib/commonjs/fabric/tabs/TabsHostAndroidNativeComponent.js +18 -0
  349. package/lib/commonjs/fabric/tabs/TabsHostAndroidNativeComponent.js.map +1 -0
  350. package/lib/commonjs/fabric/tabs/TabsHostIOSNativeComponent.js +17 -0
  351. package/lib/commonjs/fabric/tabs/TabsHostIOSNativeComponent.js.map +1 -0
  352. package/lib/commonjs/fabric/tabs/TabsScreenAndroidNativeComponent.js +17 -0
  353. package/lib/commonjs/fabric/tabs/TabsScreenAndroidNativeComponent.js.map +1 -0
  354. package/lib/commonjs/fabric/tabs/{TabsScreenNativeComponent.js → TabsScreenIOSNativeComponent.js} +9 -3
  355. package/lib/commonjs/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -0
  356. package/lib/commonjs/flags.js +70 -12
  357. package/lib/commonjs/flags.js.map +1 -1
  358. package/lib/commonjs/index.js +13 -21
  359. package/lib/commonjs/index.js.map +1 -1
  360. package/lib/commonjs/private/hooks/useRenderDebugInfo.js +2 -1
  361. package/lib/commonjs/private/hooks/useRenderDebugInfo.js.map +1 -1
  362. package/lib/commonjs/private/index.js +2 -8
  363. package/lib/commonjs/private/index.js.map +1 -1
  364. package/lib/commonjs/private/logging.js +27 -10
  365. package/lib/commonjs/private/logging.js.map +1 -1
  366. package/lib/module/components/ScreenStack.js +4 -1
  367. package/lib/module/components/ScreenStack.js.map +1 -1
  368. package/lib/module/components/ScreenStackHeaderConfig.js +8 -1
  369. package/lib/module/components/ScreenStackHeaderConfig.js.map +1 -1
  370. package/lib/module/components/ScreenStackItem.js +18 -6
  371. package/lib/module/components/ScreenStackItem.js.map +1 -1
  372. package/lib/module/components/SearchBar.js.map +1 -1
  373. package/lib/module/components/contexts/TopInsetApplicationContext.js +24 -0
  374. package/lib/module/components/contexts/TopInsetApplicationContext.js.map +1 -0
  375. package/lib/module/components/gamma/scroll-view-marker/ScrollViewMarker.js +16 -0
  376. package/lib/module/components/gamma/scroll-view-marker/ScrollViewMarker.js.map +1 -0
  377. package/lib/module/components/gamma/scroll-view-marker/ScrollViewMarker.types.js +2 -0
  378. package/lib/module/components/gamma/scroll-view-marker/ScrollViewMarker.types.js.map +1 -0
  379. package/lib/module/components/gamma/scroll-view-marker/index.js +2 -0
  380. package/lib/module/components/gamma/scroll-view-marker/index.js.map +1 -0
  381. package/lib/module/components/gamma/split/SplitHost.js +5 -5
  382. package/lib/module/components/gamma/split/SplitHost.js.map +1 -1
  383. package/lib/module/components/gamma/split/SplitScreen.js +3 -3
  384. package/lib/module/components/gamma/split/SplitScreen.js.map +1 -1
  385. package/lib/module/components/gamma/split/index.js +1 -5
  386. package/lib/module/components/gamma/split/index.js.map +1 -1
  387. package/lib/module/components/gamma/stack/header/StackHeaderConfig.android.js +61 -0
  388. package/lib/module/components/gamma/stack/header/StackHeaderConfig.android.js.map +1 -0
  389. package/lib/module/components/gamma/stack/header/StackHeaderConfig.android.types.js +2 -0
  390. package/lib/module/components/gamma/stack/header/StackHeaderConfig.android.types.js.map +1 -0
  391. package/lib/module/components/gamma/stack/header/StackHeaderConfig.d.js +2 -0
  392. package/lib/module/components/gamma/stack/header/StackHeaderConfig.d.js.map +1 -0
  393. package/lib/module/components/gamma/stack/header/StackHeaderConfig.ios.js +21 -0
  394. package/lib/module/components/gamma/stack/header/StackHeaderConfig.ios.js.map +1 -0
  395. package/lib/module/components/gamma/stack/header/StackHeaderConfig.ios.types.js +2 -0
  396. package/lib/module/components/gamma/stack/header/StackHeaderConfig.ios.types.js.map +1 -0
  397. package/lib/module/components/gamma/stack/header/StackHeaderConfig.types.js +2 -0
  398. package/lib/module/components/gamma/stack/header/StackHeaderConfig.types.js.map +1 -0
  399. package/lib/module/components/gamma/stack/header/StackHeaderConfig.web.js +4 -0
  400. package/lib/module/components/gamma/stack/header/StackHeaderConfig.web.js.map +1 -0
  401. package/lib/module/components/gamma/stack/header/android/StackHeaderSubview.android.js +27 -0
  402. package/lib/module/components/gamma/stack/header/android/StackHeaderSubview.android.js.map +1 -0
  403. package/lib/module/components/gamma/stack/header/android/StackHeaderSubview.android.types.js +2 -0
  404. package/lib/module/components/gamma/stack/header/android/StackHeaderSubview.android.types.js.map +1 -0
  405. package/lib/module/components/gamma/stack/header/index.js +2 -0
  406. package/lib/module/components/gamma/stack/header/index.js.map +1 -0
  407. package/lib/module/components/gamma/stack/{StackHost.js → host/StackHost.js} +1 -1
  408. package/lib/module/components/gamma/stack/host/StackHost.js.map +1 -0
  409. package/lib/module/components/gamma/stack/host/StackHost.types.js.map +1 -0
  410. package/lib/module/components/gamma/stack/host/StackHost.web.js.map +1 -0
  411. package/lib/module/components/gamma/stack/host/index.js +2 -0
  412. package/lib/module/components/gamma/stack/host/index.js.map +1 -0
  413. package/lib/module/components/gamma/stack/index.js +6 -8
  414. package/lib/module/components/gamma/stack/index.js.map +1 -1
  415. package/lib/module/components/gamma/stack/{StackScreen.js → screen/StackScreen.js} +2 -2
  416. package/lib/module/components/gamma/stack/screen/StackScreen.js.map +1 -0
  417. package/lib/module/components/gamma/stack/screen/StackScreen.types.js.map +1 -0
  418. package/lib/module/components/gamma/stack/screen/StackScreen.web.js.map +1 -0
  419. package/lib/module/components/gamma/stack/screen/index.js +2 -0
  420. package/lib/module/components/gamma/stack/screen/index.js.map +1 -0
  421. package/lib/module/components/helpers/PlatformUtils.js +3 -0
  422. package/lib/module/components/helpers/PlatformUtils.js.map +1 -0
  423. package/lib/module/components/helpers/prepareHeaderBarButtonItems.js +4 -3
  424. package/lib/module/components/helpers/prepareHeaderBarButtonItems.js.map +1 -1
  425. package/lib/module/components/safe-area/SafeAreaView.js +1 -2
  426. package/lib/module/components/safe-area/SafeAreaView.js.map +1 -1
  427. package/lib/module/components/safe-area/index.js +2 -0
  428. package/lib/module/components/safe-area/index.js.map +1 -0
  429. package/lib/module/components/tabs/{TabsAccessory.js → bottom-accessory/TabsBottomAccessory.js} +3 -3
  430. package/lib/module/components/tabs/bottom-accessory/TabsBottomAccessory.js.map +1 -0
  431. package/lib/module/components/tabs/bottom-accessory/TabsBottomAccessory.types.js +2 -0
  432. package/lib/module/components/tabs/bottom-accessory/TabsBottomAccessory.types.js.map +1 -0
  433. package/lib/module/components/tabs/{TabsAccessoryContent.js → bottom-accessory/TabsBottomAccessoryContent.js} +3 -3
  434. package/lib/module/components/tabs/bottom-accessory/TabsBottomAccessoryContent.js.map +1 -0
  435. package/lib/module/components/tabs/bottom-accessory/TabsBottomAccessoryContent.types.js +2 -0
  436. package/lib/module/components/tabs/bottom-accessory/TabsBottomAccessoryContent.types.js.map +1 -0
  437. package/lib/module/components/tabs/bottom-accessory/index.js +3 -0
  438. package/lib/module/components/tabs/bottom-accessory/index.js.map +1 -0
  439. package/lib/module/components/tabs/host/TabsHost.android.js +62 -0
  440. package/lib/module/components/tabs/host/TabsHost.android.js.map +1 -0
  441. package/lib/module/components/tabs/host/TabsHost.android.types.js +2 -0
  442. package/lib/module/components/tabs/host/TabsHost.android.types.js.map +1 -0
  443. package/lib/module/components/tabs/host/TabsHost.d.js +2 -0
  444. package/lib/module/components/tabs/host/TabsHost.d.js.map +1 -0
  445. package/lib/module/components/tabs/host/TabsHost.ios.js +75 -0
  446. package/lib/module/components/tabs/host/TabsHost.ios.js.map +1 -0
  447. package/lib/module/components/tabs/host/TabsHost.ios.types.js +2 -0
  448. package/lib/module/components/tabs/host/TabsHost.ios.types.js.map +1 -0
  449. package/lib/module/components/tabs/host/TabsHost.types.js.map +1 -0
  450. package/lib/module/components/tabs/host/TabsHost.web.js.map +1 -0
  451. package/lib/module/components/tabs/host/index.js +2 -0
  452. package/lib/module/components/tabs/host/index.js.map +1 -0
  453. package/lib/module/components/tabs/host/useTabsHost.js +24 -0
  454. package/lib/module/components/tabs/host/useTabsHost.js.map +1 -0
  455. package/lib/module/components/tabs/index.js +3 -4
  456. package/lib/module/components/tabs/index.js.map +1 -1
  457. package/lib/module/components/tabs/screen/TabsScreen.android.js +138 -0
  458. package/lib/module/components/tabs/screen/TabsScreen.android.js.map +1 -0
  459. package/lib/module/components/tabs/screen/TabsScreen.android.types.js +2 -0
  460. package/lib/module/components/tabs/screen/TabsScreen.android.types.js.map +1 -0
  461. package/lib/module/components/tabs/screen/TabsScreen.d.js +2 -0
  462. package/lib/module/components/tabs/screen/TabsScreen.d.js.map +1 -0
  463. package/lib/module/components/tabs/screen/TabsScreen.ios.js +160 -0
  464. package/lib/module/components/tabs/screen/TabsScreen.ios.js.map +1 -0
  465. package/lib/module/components/tabs/screen/TabsScreen.ios.types.js +2 -0
  466. package/lib/module/components/tabs/screen/TabsScreen.ios.types.js.map +1 -0
  467. package/lib/module/components/tabs/screen/TabsScreen.types.js.map +1 -0
  468. package/lib/module/components/tabs/screen/TabsScreen.web.js.map +1 -0
  469. package/lib/module/components/tabs/screen/index.js +2 -0
  470. package/lib/module/components/tabs/screen/index.js.map +1 -0
  471. package/lib/module/components/tabs/screen/useTabsScreen.js +47 -0
  472. package/lib/module/components/tabs/screen/useTabsScreen.js.map +1 -0
  473. package/lib/module/experimental/index.js +5 -6
  474. package/lib/module/experimental/index.js.map +1 -1
  475. package/lib/module/fabric/ModalScreenNativeComponent.js.map +1 -1
  476. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
  477. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  478. package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
  479. package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
  480. package/lib/module/fabric/gamma/ScrollViewMarkerNativeComponent.js +5 -0
  481. package/lib/module/fabric/gamma/ScrollViewMarkerNativeComponent.js.map +1 -0
  482. package/lib/module/fabric/gamma/{SplitViewHostNativeComponent.js → split/SplitHostNativeComponent.js} +2 -2
  483. package/lib/module/fabric/gamma/split/SplitHostNativeComponent.js.map +1 -0
  484. package/lib/module/fabric/gamma/{SplitViewScreenNativeComponent.js → split/SplitScreenNativeComponent.js} +2 -2
  485. package/lib/module/fabric/gamma/split/SplitScreenNativeComponent.js.map +1 -0
  486. package/lib/module/fabric/gamma/stack/StackHeaderConfigAndroidNativeComponent.js +8 -0
  487. package/lib/module/fabric/gamma/stack/StackHeaderConfigAndroidNativeComponent.js.map +1 -0
  488. package/lib/module/fabric/gamma/stack/StackHeaderConfigIOSNativeComponent.js +8 -0
  489. package/lib/module/fabric/gamma/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -0
  490. package/lib/module/fabric/gamma/stack/StackHeaderSubviewAndroidNativeComponent.js +8 -0
  491. package/lib/module/fabric/gamma/stack/StackHeaderSubviewAndroidNativeComponent.js.map +1 -0
  492. package/lib/module/fabric/gamma/stack/StackScreenNativeComponent.js +3 -1
  493. package/lib/module/fabric/gamma/stack/StackScreenNativeComponent.js.map +1 -1
  494. package/lib/module/fabric/safe-area/SafeAreaViewNativeComponent.js.map +1 -1
  495. package/lib/module/fabric/tabs/TabsBottomAccessoryNativeComponent.js +2 -1
  496. package/lib/module/fabric/tabs/TabsBottomAccessoryNativeComponent.js.map +1 -1
  497. package/lib/module/fabric/tabs/TabsHostAndroidNativeComponent.js +17 -0
  498. package/lib/module/fabric/tabs/TabsHostAndroidNativeComponent.js.map +1 -0
  499. package/lib/module/fabric/tabs/TabsHostIOSNativeComponent.js +17 -0
  500. package/lib/module/fabric/tabs/TabsHostIOSNativeComponent.js.map +1 -0
  501. package/lib/module/fabric/tabs/TabsScreenAndroidNativeComponent.js +18 -0
  502. package/lib/module/fabric/tabs/TabsScreenAndroidNativeComponent.js.map +1 -0
  503. package/lib/module/fabric/tabs/TabsScreenIOSNativeComponent.js +20 -0
  504. package/lib/module/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -0
  505. package/lib/module/flags.js +70 -12
  506. package/lib/module/flags.js.map +1 -1
  507. package/lib/module/index.js +5 -2
  508. package/lib/module/index.js.map +1 -1
  509. package/lib/module/private/hooks/useRenderDebugInfo.js +2 -1
  510. package/lib/module/private/hooks/useRenderDebugInfo.js.map +1 -1
  511. package/lib/module/private/index.js +1 -1
  512. package/lib/module/private/index.js.map +1 -1
  513. package/lib/module/private/logging.js +26 -8
  514. package/lib/module/private/logging.js.map +1 -1
  515. package/lib/typescript/components/DebugContainer.d.ts +1 -1
  516. package/lib/typescript/components/DebugContainer.d.ts.map +1 -1
  517. package/lib/typescript/components/FullWindowOverlay.d.ts +1 -1
  518. package/lib/typescript/components/FullWindowOverlay.d.ts.map +1 -1
  519. package/lib/typescript/components/ScreenFooter.d.ts +1 -1
  520. package/lib/typescript/components/ScreenFooter.d.ts.map +1 -1
  521. package/lib/typescript/components/ScreenStack.d.ts.map +1 -1
  522. package/lib/typescript/components/ScreenStackHeaderConfig.d.ts.map +1 -1
  523. package/lib/typescript/components/ScreenStackHeaderConfig.web.d.ts +1 -1
  524. package/lib/typescript/components/ScreenStackHeaderConfig.web.d.ts.map +1 -1
  525. package/lib/typescript/components/ScreenStackItem.d.ts +2 -2
  526. package/lib/typescript/components/ScreenStackItem.d.ts.map +1 -1
  527. package/lib/typescript/components/SearchBar.d.ts.map +1 -1
  528. package/lib/typescript/components/contexts/TopInsetApplicationContext.d.ts +8 -0
  529. package/lib/typescript/components/contexts/TopInsetApplicationContext.d.ts.map +1 -0
  530. package/lib/typescript/components/gamma/scroll-view-marker/ScrollViewMarker.d.ts +4 -0
  531. package/lib/typescript/components/gamma/scroll-view-marker/ScrollViewMarker.d.ts.map +1 -0
  532. package/lib/typescript/components/gamma/scroll-view-marker/ScrollViewMarker.types.d.ts +39 -0
  533. package/lib/typescript/components/gamma/scroll-view-marker/ScrollViewMarker.types.d.ts.map +1 -0
  534. package/lib/typescript/components/gamma/scroll-view-marker/index.d.ts +3 -0
  535. package/lib/typescript/components/gamma/scroll-view-marker/index.d.ts.map +1 -0
  536. package/lib/typescript/components/gamma/split/SplitHost.types.d.ts +30 -29
  537. package/lib/typescript/components/gamma/split/SplitHost.types.d.ts.map +1 -1
  538. package/lib/typescript/components/gamma/split/SplitScreen.types.d.ts +5 -5
  539. package/lib/typescript/components/gamma/split/SplitScreen.types.d.ts.map +1 -1
  540. package/lib/typescript/components/gamma/split/index.d.ts +4 -4
  541. package/lib/typescript/components/gamma/split/index.d.ts.map +1 -1
  542. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.android.d.ts +8 -0
  543. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.android.d.ts.map +1 -0
  544. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.android.types.d.ts +33 -0
  545. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.android.types.d.ts.map +1 -0
  546. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.ios.d.ts +8 -0
  547. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.ios.d.ts.map +1 -0
  548. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.ios.types.d.ts +3 -0
  549. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.ios.types.d.ts.map +1 -0
  550. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.types.d.ts +13 -0
  551. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.types.d.ts.map +1 -0
  552. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.web.d.ts +4 -0
  553. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.web.d.ts.map +1 -0
  554. package/lib/typescript/components/gamma/stack/header/android/StackHeaderSubview.android.d.ts +8 -0
  555. package/lib/typescript/components/gamma/stack/header/android/StackHeaderSubview.android.d.ts.map +1 -0
  556. package/lib/typescript/components/gamma/stack/header/android/StackHeaderSubview.android.types.d.ts +9 -0
  557. package/lib/typescript/components/gamma/stack/header/android/StackHeaderSubview.android.types.d.ts.map +1 -0
  558. package/lib/typescript/components/gamma/stack/header/index.d.ts +5 -0
  559. package/lib/typescript/components/gamma/stack/header/index.d.ts.map +1 -0
  560. package/lib/typescript/components/gamma/stack/host/StackHost.d.ts.map +1 -0
  561. package/lib/typescript/components/gamma/stack/{StackHost.types.d.ts → host/StackHost.types.d.ts} +2 -2
  562. package/lib/typescript/components/gamma/stack/host/StackHost.types.d.ts.map +1 -0
  563. package/lib/typescript/components/gamma/stack/host/StackHost.web.d.ts.map +1 -0
  564. package/lib/typescript/components/gamma/stack/host/index.d.ts +3 -0
  565. package/lib/typescript/components/gamma/stack/host/index.d.ts.map +1 -0
  566. package/lib/typescript/components/gamma/stack/index.d.ts +9 -6
  567. package/lib/typescript/components/gamma/stack/index.d.ts.map +1 -1
  568. package/lib/typescript/components/gamma/stack/screen/StackScreen.d.ts.map +1 -0
  569. package/lib/typescript/components/gamma/stack/screen/StackScreen.types.d.ts +22 -0
  570. package/lib/typescript/components/gamma/stack/screen/StackScreen.types.d.ts.map +1 -0
  571. package/lib/typescript/components/gamma/stack/screen/StackScreen.web.d.ts.map +1 -0
  572. package/lib/typescript/components/gamma/stack/screen/index.d.ts +3 -0
  573. package/lib/typescript/components/gamma/stack/screen/index.d.ts.map +1 -0
  574. package/lib/typescript/components/helpers/PlatformUtils.d.ts +2 -0
  575. package/lib/typescript/components/helpers/PlatformUtils.d.ts.map +1 -0
  576. package/lib/typescript/components/helpers/prepareHeaderBarButtonItems.d.ts +81 -81
  577. package/lib/typescript/components/helpers/prepareHeaderBarButtonItems.d.ts.map +1 -1
  578. package/lib/typescript/components/safe-area/SafeAreaView.d.ts +1 -2
  579. package/lib/typescript/components/safe-area/SafeAreaView.d.ts.map +1 -1
  580. package/lib/typescript/components/safe-area/SafeAreaView.types.d.ts +2 -2
  581. package/lib/typescript/components/safe-area/SafeAreaView.types.d.ts.map +1 -1
  582. package/lib/typescript/components/safe-area/index.d.ts +3 -0
  583. package/lib/typescript/components/safe-area/index.d.ts.map +1 -0
  584. package/lib/typescript/components/shared/types.d.ts +4 -0
  585. package/lib/typescript/components/shared/types.d.ts.map +1 -1
  586. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessory.d.ts +7 -0
  587. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessory.d.ts.map +1 -0
  588. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessory.types.d.ts +9 -0
  589. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessory.types.d.ts.map +1 -0
  590. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessoryContent.d.ts +7 -0
  591. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessoryContent.d.ts.map +1 -0
  592. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessoryContent.types.d.ts +6 -0
  593. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessoryContent.types.d.ts.map +1 -0
  594. package/lib/typescript/components/tabs/bottom-accessory/index.d.ts +5 -0
  595. package/lib/typescript/components/tabs/bottom-accessory/index.d.ts.map +1 -0
  596. package/lib/typescript/components/tabs/host/TabsHost.android.d.ts +8 -0
  597. package/lib/typescript/components/tabs/host/TabsHost.android.d.ts.map +1 -0
  598. package/lib/typescript/components/tabs/host/TabsHost.android.types.d.ts +19 -0
  599. package/lib/typescript/components/tabs/host/TabsHost.android.types.d.ts.map +1 -0
  600. package/lib/typescript/components/tabs/{TabsHost.d.ts → host/TabsHost.ios.d.ts} +1 -1
  601. package/lib/typescript/components/tabs/host/TabsHost.ios.d.ts.map +1 -0
  602. package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts +127 -0
  603. package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts.map +1 -0
  604. package/lib/typescript/components/tabs/host/TabsHost.types.d.ts +234 -0
  605. package/lib/typescript/components/tabs/host/TabsHost.types.d.ts.map +1 -0
  606. package/lib/typescript/components/tabs/host/TabsHost.web.d.ts.map +1 -0
  607. package/lib/typescript/components/tabs/host/index.d.ts +5 -0
  608. package/lib/typescript/components/tabs/host/index.d.ts.map +1 -0
  609. package/lib/typescript/components/tabs/host/useTabsHost.d.ts +15 -0
  610. package/lib/typescript/components/tabs/host/useTabsHost.d.ts.map +1 -0
  611. package/lib/typescript/components/tabs/index.d.ts +6 -7
  612. package/lib/typescript/components/tabs/index.d.ts.map +1 -1
  613. package/lib/typescript/components/tabs/screen/TabsScreen.android.d.ts +8 -0
  614. package/lib/typescript/components/tabs/screen/TabsScreen.android.d.ts.map +1 -0
  615. package/lib/typescript/components/tabs/screen/TabsScreen.android.types.d.ts +182 -0
  616. package/lib/typescript/components/tabs/screen/TabsScreen.android.types.d.ts.map +1 -0
  617. package/lib/typescript/components/tabs/{TabsScreen.d.ts → screen/TabsScreen.ios.d.ts} +1 -1
  618. package/lib/typescript/components/tabs/screen/TabsScreen.ios.d.ts.map +1 -0
  619. package/lib/typescript/components/tabs/screen/TabsScreen.ios.types.d.ts +292 -0
  620. package/lib/typescript/components/tabs/screen/TabsScreen.ios.types.d.ts.map +1 -0
  621. package/lib/typescript/components/tabs/screen/TabsScreen.types.d.ts +174 -0
  622. package/lib/typescript/components/tabs/screen/TabsScreen.types.d.ts.map +1 -0
  623. package/lib/typescript/components/tabs/screen/TabsScreen.web.d.ts.map +1 -0
  624. package/lib/typescript/components/tabs/screen/index.d.ts +5 -0
  625. package/lib/typescript/components/tabs/screen/index.d.ts.map +1 -0
  626. package/lib/typescript/components/tabs/screen/useTabsScreen.d.ts +25 -0
  627. package/lib/typescript/components/tabs/screen/useTabsScreen.d.ts.map +1 -0
  628. package/lib/typescript/experimental/index.d.ts +4 -4
  629. package/lib/typescript/experimental/index.d.ts.map +1 -1
  630. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts +32 -27
  631. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts.map +1 -1
  632. package/lib/typescript/fabric/ScreenNativeComponent.d.ts +27 -27
  633. package/lib/typescript/fabric/ScreenNativeComponent.d.ts.map +1 -1
  634. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +32 -30
  635. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -1
  636. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +1 -1
  637. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -1
  638. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +4 -2
  639. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts.map +1 -1
  640. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +18 -18
  641. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts.map +1 -1
  642. package/lib/typescript/fabric/gamma/ScrollViewMarkerNativeComponent.d.ts +11 -0
  643. package/lib/typescript/fabric/gamma/ScrollViewMarkerNativeComponent.d.ts.map +1 -0
  644. package/lib/typescript/fabric/gamma/{SplitViewHostNativeComponent.d.ts → split/SplitHostNativeComponent.d.ts} +6 -6
  645. package/lib/typescript/fabric/gamma/split/SplitHostNativeComponent.d.ts.map +1 -0
  646. package/lib/typescript/fabric/gamma/split/SplitScreenNativeComponent.d.ts +13 -0
  647. package/lib/typescript/fabric/gamma/split/SplitScreenNativeComponent.d.ts.map +1 -0
  648. package/lib/typescript/fabric/gamma/stack/StackHeaderConfigAndroidNativeComponent.d.ts +15 -0
  649. package/lib/typescript/fabric/gamma/stack/StackHeaderConfigAndroidNativeComponent.d.ts.map +1 -0
  650. package/lib/typescript/fabric/gamma/stack/StackHeaderConfigIOSNativeComponent.d.ts +10 -0
  651. package/lib/typescript/fabric/gamma/stack/StackHeaderConfigIOSNativeComponent.d.ts.map +1 -0
  652. package/lib/typescript/fabric/gamma/stack/StackHeaderSubviewAndroidNativeComponent.d.ts +10 -0
  653. package/lib/typescript/fabric/gamma/stack/StackHeaderSubviewAndroidNativeComponent.d.ts.map +1 -0
  654. package/lib/typescript/fabric/gamma/stack/StackScreenNativeComponent.d.ts +6 -6
  655. package/lib/typescript/fabric/gamma/stack/StackScreenNativeComponent.d.ts.map +1 -1
  656. package/lib/typescript/fabric/safe-area/SafeAreaViewNativeComponent.d.ts +1 -1
  657. package/lib/typescript/fabric/safe-area/SafeAreaViewNativeComponent.d.ts.map +1 -1
  658. package/lib/typescript/fabric/tabs/TabsBottomAccessoryNativeComponent.d.ts +1 -1
  659. package/lib/typescript/fabric/tabs/TabsBottomAccessoryNativeComponent.d.ts.map +1 -1
  660. package/lib/typescript/fabric/tabs/TabsHostAndroidNativeComponent.d.ts +39 -0
  661. package/lib/typescript/fabric/tabs/TabsHostAndroidNativeComponent.d.ts.map +1 -0
  662. package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts +50 -0
  663. package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts.map +1 -0
  664. package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts +51 -0
  665. package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts.map +1 -0
  666. package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts +68 -0
  667. package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts.map +1 -0
  668. package/lib/typescript/flags.d.ts +30 -2
  669. package/lib/typescript/flags.d.ts.map +1 -1
  670. package/lib/typescript/index.d.ts +3 -2
  671. package/lib/typescript/index.d.ts.map +1 -1
  672. package/lib/typescript/private/hooks/useRenderDebugInfo.d.ts.map +1 -1
  673. package/lib/typescript/private/index.d.ts +1 -1
  674. package/lib/typescript/private/index.d.ts.map +1 -1
  675. package/lib/typescript/private/logging.d.ts +6 -2
  676. package/lib/typescript/private/logging.d.ts.map +1 -1
  677. package/lib/typescript/types.d.ts +209 -188
  678. package/lib/typescript/types.d.ts.map +1 -1
  679. package/package.json +21 -21
  680. package/react-native.config.js +4 -1
  681. package/src/components/DebugContainer.tsx +1 -1
  682. package/src/components/FullWindowOverlay.tsx +1 -1
  683. package/src/components/ScreenFooter.tsx +1 -1
  684. package/src/components/ScreenStack.tsx +5 -0
  685. package/src/components/ScreenStackHeaderConfig.tsx +8 -0
  686. package/src/components/ScreenStackHeaderConfig.web.tsx +1 -1
  687. package/src/components/ScreenStackItem.tsx +38 -26
  688. package/src/components/SearchBar.tsx +3 -1
  689. package/src/components/contexts/TopInsetApplicationContext.ts +27 -0
  690. package/src/components/gamma/scroll-view-marker/ScrollViewMarker.tsx +17 -0
  691. package/src/components/gamma/scroll-view-marker/ScrollViewMarker.types.ts +42 -0
  692. package/src/components/gamma/scroll-view-marker/index.ts +3 -0
  693. package/src/components/gamma/split/SplitHost.tsx +9 -9
  694. package/src/components/gamma/split/SplitHost.types.ts +36 -40
  695. package/src/components/gamma/split/SplitScreen.tsx +5 -5
  696. package/src/components/gamma/split/SplitScreen.types.ts +13 -5
  697. package/src/components/gamma/split/index.ts +19 -5
  698. package/src/components/gamma/stack/header/StackHeaderConfig.android.tsx +96 -0
  699. package/src/components/gamma/stack/header/StackHeaderConfig.android.types.ts +38 -0
  700. package/src/components/gamma/stack/header/StackHeaderConfig.d.ts +17 -0
  701. package/src/components/gamma/stack/header/StackHeaderConfig.ios.tsx +18 -0
  702. package/src/components/gamma/stack/header/StackHeaderConfig.ios.types.ts +2 -0
  703. package/src/components/gamma/stack/header/StackHeaderConfig.types.ts +14 -0
  704. package/src/components/gamma/stack/header/StackHeaderConfig.web.tsx +5 -0
  705. package/src/components/gamma/stack/header/android/StackHeaderSubview.android.tsx +33 -0
  706. package/src/components/gamma/stack/header/android/StackHeaderSubview.android.types.ts +16 -0
  707. package/src/components/gamma/stack/header/index.ts +6 -0
  708. package/src/components/gamma/stack/{StackHost.tsx → host/StackHost.tsx} +1 -1
  709. package/src/components/gamma/stack/host/StackHost.types.ts +13 -0
  710. package/src/components/gamma/stack/host/index.ts +3 -0
  711. package/src/components/gamma/stack/index.ts +28 -7
  712. package/src/components/gamma/stack/{StackScreen.tsx → screen/StackScreen.tsx} +2 -2
  713. package/src/components/gamma/stack/{StackScreen.types.ts → screen/StackScreen.types.ts} +9 -9
  714. package/src/components/gamma/stack/screen/index.ts +3 -0
  715. package/src/components/helpers/PlatformUtils.ts +4 -0
  716. package/src/components/helpers/prepareHeaderBarButtonItems.ts +4 -2
  717. package/src/components/safe-area/SafeAreaView.tsx +1 -3
  718. package/src/components/safe-area/SafeAreaView.types.ts +2 -2
  719. package/src/components/safe-area/index.ts +3 -0
  720. package/src/components/shared/types.ts +37 -0
  721. package/src/components/tabs/{TabsAccessory.tsx → bottom-accessory/TabsBottomAccessory.tsx} +3 -3
  722. package/src/components/tabs/bottom-accessory/TabsBottomAccessory.types.ts +15 -0
  723. package/src/components/tabs/bottom-accessory/TabsBottomAccessoryContent.tsx +19 -0
  724. package/src/components/tabs/bottom-accessory/TabsBottomAccessoryContent.types.ts +6 -0
  725. package/src/components/tabs/bottom-accessory/index.ts +5 -0
  726. package/src/components/tabs/host/TabsHost.android.tsx +65 -0
  727. package/src/components/tabs/host/TabsHost.android.types.ts +18 -0
  728. package/src/components/tabs/host/TabsHost.d.ts +15 -0
  729. package/src/components/tabs/host/TabsHost.ios.tsx +94 -0
  730. package/src/components/tabs/host/TabsHost.ios.types.ts +139 -0
  731. package/src/components/tabs/host/TabsHost.types.ts +264 -0
  732. package/src/components/tabs/host/index.ts +6 -0
  733. package/src/components/tabs/host/useTabsHost.ts +49 -0
  734. package/src/components/tabs/index.ts +43 -8
  735. package/src/components/tabs/screen/TabsScreen.android.tsx +198 -0
  736. package/src/components/tabs/screen/TabsScreen.android.types.ts +189 -0
  737. package/src/components/tabs/screen/TabsScreen.d.ts +15 -0
  738. package/src/components/tabs/screen/TabsScreen.ios.tsx +235 -0
  739. package/src/components/tabs/screen/TabsScreen.ios.types.ts +312 -0
  740. package/src/components/tabs/screen/TabsScreen.types.ts +202 -0
  741. package/src/components/tabs/screen/index.ts +6 -0
  742. package/src/components/tabs/screen/useTabsScreen.ts +97 -0
  743. package/src/experimental/index.ts +5 -8
  744. package/src/fabric/ModalScreenNativeComponent.ts +41 -27
  745. package/src/fabric/ScreenNativeComponent.ts +35 -27
  746. package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +36 -30
  747. package/src/fabric/ScreenStackHeaderSubviewNativeComponent.ts +1 -1
  748. package/src/fabric/ScreenStackNativeComponent.ts +7 -2
  749. package/src/fabric/SearchBarNativeComponent.ts +24 -18
  750. package/src/fabric/gamma/ScrollViewMarkerNativeComponent.ts +15 -0
  751. package/src/fabric/gamma/{SplitViewHostNativeComponent.ts → split/SplitHostNativeComponent.ts} +8 -6
  752. package/src/fabric/gamma/split/SplitScreenNativeComponent.ts +24 -0
  753. package/src/fabric/gamma/stack/StackHeaderConfigAndroidNativeComponent.ts +33 -0
  754. package/src/fabric/gamma/stack/StackHeaderConfigIOSNativeComponent.ts +18 -0
  755. package/src/fabric/gamma/stack/StackHeaderSubviewAndroidNativeComponent.ts +27 -0
  756. package/src/fabric/gamma/stack/StackScreenNativeComponent.ts +11 -7
  757. package/src/fabric/safe-area/SafeAreaViewNativeComponent.ts +8 -6
  758. package/src/fabric/tabs/TabsBottomAccessoryNativeComponent.ts +4 -1
  759. package/src/fabric/tabs/TabsHostAndroidNativeComponent.ts +69 -0
  760. package/src/fabric/tabs/TabsHostIOSNativeComponent.ts +91 -0
  761. package/src/fabric/tabs/TabsScreenAndroidNativeComponent.ts +112 -0
  762. package/src/fabric/tabs/TabsScreenIOSNativeComponent.ts +171 -0
  763. package/src/flags.ts +93 -14
  764. package/src/index.tsx +6 -2
  765. package/src/private/hooks/useRenderDebugInfo.tsx +2 -1
  766. package/src/private/index.ts +1 -4
  767. package/src/private/logging.ts +27 -12
  768. package/src/types.tsx +262 -231
  769. package/android/src/main/java/com/swmansion/rnscreens/CustomAppBarLayout.kt +0 -25
  770. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigShadowNode.kt +0 -28
  771. package/android/src/main/java/com/swmansion/rnscreens/ScreensShadowNode.kt +0 -24
  772. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHost.kt +0 -566
  773. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHostAppearanceCoordinator.kt +0 -46
  774. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHostEventEmitter.kt +0 -26
  775. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHostViewManager.kt +0 -222
  776. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsScreenViewManager.kt +0 -246
  777. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabsHostNativeFocusChangeEvent.kt +0 -47
  778. package/android/src/main/java/com/swmansion/rnscreens/safearea/paper/SafeAreaViewLocalData.kt +0 -10
  779. package/android/src/main/java/com/swmansion/rnscreens/safearea/paper/SafeAreaViewShadowNode.kt +0 -124
  780. package/android/src/main/java/com/swmansion/rnscreens/utils/PaddingBundle.kt +0 -9
  781. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSafeAreaViewManagerDelegate.java +0 -37
  782. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSafeAreaViewManagerInterface.java +0 -20
  783. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerDelegate.java +0 -27
  784. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerInterface.java +0 -17
  785. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerDelegate.java +0 -27
  786. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerInterface.java +0 -17
  787. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerDelegate.java +0 -27
  788. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerInterface.java +0 -17
  789. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +0 -156
  790. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +0 -60
  791. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +0 -128
  792. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +0 -50
  793. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerDelegate.java +0 -39
  794. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerInterface.java +0 -20
  795. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerDelegate.java +0 -33
  796. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerInterface.java +0 -17
  797. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerDelegate.java +0 -107
  798. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerInterface.java +0 -40
  799. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSStackHostManagerDelegate.java +0 -27
  800. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSStackHostManagerInterface.java +0 -17
  801. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSStackScreenManagerDelegate.java +0 -39
  802. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSStackScreenManagerInterface.java +0 -20
  803. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSTabsHostManagerDelegate.java +0 -91
  804. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSTabsHostManagerInterface.java +0 -37
  805. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSTabsScreenManagerDelegate.java +0 -114
  806. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSTabsScreenManagerInterface.java +0 -46
  807. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +0 -56
  808. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderSubviewViewGroup.kt +0 -19
  809. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +0 -19
  810. package/android/src/paper/java/com/swmansion/rnscreens/NativeProxy.kt +0 -23
  811. package/android/src/paper/java/com/swmansion/rnscreens/NativeScreensModuleSpec.java +0 -35
  812. package/common/cpp/react/renderer/components/rnscreens/RNSSplitViewScreenComponentDescriptor.h +0 -40
  813. package/common/cpp/react/renderer/components/rnscreens/RNSSplitViewScreenShadowNode.cpp +0 -13
  814. package/ios/RNSInvalidatedComponentsRegistry.h +0 -15
  815. package/ios/RNSInvalidatedComponentsRegistry.mm +0 -34
  816. package/ios/RNSViewControllerInvalidating.h +0 -15
  817. package/ios/RNSViewControllerInvalidator.h +0 -17
  818. package/ios/RNSViewControllerInvalidator.mm +0 -23
  819. package/ios/gamma/split-view/RNSSplitViewAppearanceApplicator.swift +0 -194
  820. package/ios/gamma/split-view/RNSSplitViewAppearanceCoordinator.swift +0 -26
  821. package/ios/gamma/split-view/RNSSplitViewAppearanceUpdateFlags.swift +0 -11
  822. package/ios/gamma/split-view/RNSSplitViewHostComponentViewManager.mm +0 -7
  823. package/ios/gamma/split-view/RNSSplitViewScreenComponentViewManager.mm +0 -7
  824. package/ios/gamma/split-view/RNSSplitViewScreenController.swift +0 -133
  825. package/ios/gamma/stack/host/RNSStackController.swift +0 -65
  826. package/ios/gamma/stack/screen/RNSStackScreenController.swift +0 -64
  827. package/ios/safe-area/paper/RNSSafeAreaViewEdges.h +0 -16
  828. package/ios/safe-area/paper/RNSSafeAreaViewEdges.mm +0 -37
  829. package/ios/safe-area/paper/RNSSafeAreaViewLocalData.h +0 -22
  830. package/ios/safe-area/paper/RNSSafeAreaViewLocalData.mm +0 -20
  831. package/ios/safe-area/paper/RNSSafeAreaViewManager.h +0 -16
  832. package/ios/safe-area/paper/RNSSafeAreaViewManager.mm +0 -28
  833. package/ios/safe-area/paper/RNSSafeAreaViewShadowView.h +0 -16
  834. package/ios/safe-area/paper/RNSSafeAreaViewShadowView.mm +0 -152
  835. package/ios/tabs/host/RNSTabBarControllerDelegate.h +0 -11
  836. package/ios/tabs/host/RNSTabBarControllerDelegate.mm +0 -87
  837. package/lib/commonjs/components/gamma/stack/StackHost.js.map +0 -1
  838. package/lib/commonjs/components/gamma/stack/StackHost.types.js.map +0 -1
  839. package/lib/commonjs/components/gamma/stack/StackHost.web.js.map +0 -1
  840. package/lib/commonjs/components/gamma/stack/StackScreen.js.map +0 -1
  841. package/lib/commonjs/components/gamma/stack/StackScreen.types.js.map +0 -1
  842. package/lib/commonjs/components/gamma/stack/StackScreen.web.js.map +0 -1
  843. package/lib/commonjs/components/tabs/TabsAccessory.js.map +0 -1
  844. package/lib/commonjs/components/tabs/TabsAccessory.types.js.map +0 -1
  845. package/lib/commonjs/components/tabs/TabsAccessoryContent.js.map +0 -1
  846. package/lib/commonjs/components/tabs/TabsAccessoryContent.types.js.map +0 -1
  847. package/lib/commonjs/components/tabs/TabsHost.js.map +0 -1
  848. package/lib/commonjs/components/tabs/TabsHost.types.js.map +0 -1
  849. package/lib/commonjs/components/tabs/TabsHost.web.js.map +0 -1
  850. package/lib/commonjs/components/tabs/TabsScreen.js +0 -257
  851. package/lib/commonjs/components/tabs/TabsScreen.js.map +0 -1
  852. package/lib/commonjs/components/tabs/TabsScreen.types.js.map +0 -1
  853. package/lib/commonjs/components/tabs/TabsScreen.web.js.map +0 -1
  854. package/lib/commonjs/experimental/types.js +0 -61
  855. package/lib/commonjs/experimental/types.js.map +0 -1
  856. package/lib/commonjs/fabric/gamma/SplitViewHostNativeComponent.js.map +0 -1
  857. package/lib/commonjs/fabric/gamma/SplitViewScreenNativeComponent.js.map +0 -1
  858. package/lib/commonjs/fabric/tabs/TabsHostNativeComponent.js +0 -18
  859. package/lib/commonjs/fabric/tabs/TabsHostNativeComponent.js.map +0 -1
  860. package/lib/commonjs/fabric/tabs/TabsScreenNativeComponent.js.map +0 -1
  861. package/lib/module/components/gamma/stack/StackHost.js.map +0 -1
  862. package/lib/module/components/gamma/stack/StackHost.types.js.map +0 -1
  863. package/lib/module/components/gamma/stack/StackHost.web.js.map +0 -1
  864. package/lib/module/components/gamma/stack/StackScreen.js.map +0 -1
  865. package/lib/module/components/gamma/stack/StackScreen.types.js.map +0 -1
  866. package/lib/module/components/gamma/stack/StackScreen.web.js.map +0 -1
  867. package/lib/module/components/tabs/TabsAccessory.js.map +0 -1
  868. package/lib/module/components/tabs/TabsAccessory.types.js +0 -2
  869. package/lib/module/components/tabs/TabsAccessory.types.js.map +0 -1
  870. package/lib/module/components/tabs/TabsAccessoryContent.js.map +0 -1
  871. package/lib/module/components/tabs/TabsAccessoryContent.types.js +0 -2
  872. package/lib/module/components/tabs/TabsAccessoryContent.types.js.map +0 -1
  873. package/lib/module/components/tabs/TabsHost.js +0 -64
  874. package/lib/module/components/tabs/TabsHost.js.map +0 -1
  875. package/lib/module/components/tabs/TabsHost.types.js.map +0 -1
  876. package/lib/module/components/tabs/TabsHost.web.js.map +0 -1
  877. package/lib/module/components/tabs/TabsScreen.js +0 -251
  878. package/lib/module/components/tabs/TabsScreen.js.map +0 -1
  879. package/lib/module/components/tabs/TabsScreen.types.js.map +0 -1
  880. package/lib/module/components/tabs/TabsScreen.web.js.map +0 -1
  881. package/lib/module/experimental/types.js +0 -11
  882. package/lib/module/experimental/types.js.map +0 -1
  883. package/lib/module/fabric/gamma/SplitViewHostNativeComponent.js.map +0 -1
  884. package/lib/module/fabric/gamma/SplitViewScreenNativeComponent.js.map +0 -1
  885. package/lib/module/fabric/tabs/TabsHostNativeComponent.js +0 -15
  886. package/lib/module/fabric/tabs/TabsHostNativeComponent.js.map +0 -1
  887. package/lib/module/fabric/tabs/TabsScreenNativeComponent.js +0 -10
  888. package/lib/module/fabric/tabs/TabsScreenNativeComponent.js.map +0 -1
  889. package/lib/typescript/components/gamma/stack/StackHost.d.ts.map +0 -1
  890. package/lib/typescript/components/gamma/stack/StackHost.types.d.ts.map +0 -1
  891. package/lib/typescript/components/gamma/stack/StackHost.web.d.ts.map +0 -1
  892. package/lib/typescript/components/gamma/stack/StackScreen.d.ts.map +0 -1
  893. package/lib/typescript/components/gamma/stack/StackScreen.types.d.ts +0 -22
  894. package/lib/typescript/components/gamma/stack/StackScreen.types.d.ts.map +0 -1
  895. package/lib/typescript/components/gamma/stack/StackScreen.web.d.ts.map +0 -1
  896. package/lib/typescript/components/tabs/TabsAccessory.d.ts +0 -7
  897. package/lib/typescript/components/tabs/TabsAccessory.d.ts.map +0 -1
  898. package/lib/typescript/components/tabs/TabsAccessory.types.d.ts +0 -9
  899. package/lib/typescript/components/tabs/TabsAccessory.types.d.ts.map +0 -1
  900. package/lib/typescript/components/tabs/TabsAccessoryContent.d.ts +0 -7
  901. package/lib/typescript/components/tabs/TabsAccessoryContent.d.ts.map +0 -1
  902. package/lib/typescript/components/tabs/TabsAccessoryContent.types.d.ts +0 -6
  903. package/lib/typescript/components/tabs/TabsAccessoryContent.types.d.ts.map +0 -1
  904. package/lib/typescript/components/tabs/TabsHost.d.ts.map +0 -1
  905. package/lib/typescript/components/tabs/TabsHost.types.d.ts +0 -257
  906. package/lib/typescript/components/tabs/TabsHost.types.d.ts.map +0 -1
  907. package/lib/typescript/components/tabs/TabsHost.web.d.ts.map +0 -1
  908. package/lib/typescript/components/tabs/TabsScreen.d.ts.map +0 -1
  909. package/lib/typescript/components/tabs/TabsScreen.types.d.ts +0 -536
  910. package/lib/typescript/components/tabs/TabsScreen.types.d.ts.map +0 -1
  911. package/lib/typescript/components/tabs/TabsScreen.web.d.ts.map +0 -1
  912. package/lib/typescript/experimental/types.d.ts +0 -10
  913. package/lib/typescript/experimental/types.d.ts.map +0 -1
  914. package/lib/typescript/fabric/gamma/SplitViewHostNativeComponent.d.ts.map +0 -1
  915. package/lib/typescript/fabric/gamma/SplitViewScreenNativeComponent.d.ts +0 -13
  916. package/lib/typescript/fabric/gamma/SplitViewScreenNativeComponent.d.ts.map +0 -1
  917. package/lib/typescript/fabric/tabs/TabsHostNativeComponent.d.ts +0 -34
  918. package/lib/typescript/fabric/tabs/TabsHostNativeComponent.d.ts.map +0 -1
  919. package/lib/typescript/fabric/tabs/TabsScreenNativeComponent.d.ts +0 -82
  920. package/lib/typescript/fabric/tabs/TabsScreenNativeComponent.d.ts.map +0 -1
  921. package/src/components/gamma/stack/StackHost.types.ts +0 -10
  922. package/src/components/tabs/TabsAccessory.types.ts +0 -13
  923. package/src/components/tabs/TabsAccessoryContent.tsx +0 -17
  924. package/src/components/tabs/TabsAccessoryContent.types.ts +0 -6
  925. package/src/components/tabs/TabsHost.tsx +0 -105
  926. package/src/components/tabs/TabsHost.types.ts +0 -297
  927. package/src/components/tabs/TabsScreen.tsx +0 -382
  928. package/src/components/tabs/TabsScreen.types.ts +0 -630
  929. package/src/experimental/types.ts +0 -10
  930. package/src/fabric/gamma/SplitViewScreenNativeComponent.ts +0 -24
  931. package/src/fabric/tabs/TabsHostNativeComponent.ts +0 -75
  932. package/src/fabric/tabs/TabsScreenNativeComponent.ts +0 -175
  933. /package/lib/commonjs/components/gamma/stack/{StackHost.types.js → host/StackHost.types.js} +0 -0
  934. /package/lib/commonjs/components/gamma/stack/{StackHost.web.js → host/StackHost.web.js} +0 -0
  935. /package/lib/commonjs/components/gamma/stack/{StackScreen.types.js → screen/StackScreen.types.js} +0 -0
  936. /package/lib/commonjs/components/gamma/stack/{StackScreen.web.js → screen/StackScreen.web.js} +0 -0
  937. /package/lib/commonjs/components/tabs/{TabsHost.types.js → host/TabsHost.types.js} +0 -0
  938. /package/lib/commonjs/components/tabs/{TabsHost.web.js → host/TabsHost.web.js} +0 -0
  939. /package/lib/commonjs/components/tabs/{TabsScreen.types.js → screen/TabsScreen.types.js} +0 -0
  940. /package/lib/commonjs/components/tabs/{TabsScreen.web.js → screen/TabsScreen.web.js} +0 -0
  941. /package/lib/module/components/gamma/stack/{StackHost.types.js → host/StackHost.types.js} +0 -0
  942. /package/lib/module/components/gamma/stack/{StackHost.web.js → host/StackHost.web.js} +0 -0
  943. /package/lib/module/components/gamma/stack/{StackScreen.types.js → screen/StackScreen.types.js} +0 -0
  944. /package/lib/module/components/gamma/stack/{StackScreen.web.js → screen/StackScreen.web.js} +0 -0
  945. /package/lib/module/components/tabs/{TabsHost.types.js → host/TabsHost.types.js} +0 -0
  946. /package/lib/module/components/tabs/{TabsHost.web.js → host/TabsHost.web.js} +0 -0
  947. /package/lib/module/components/tabs/{TabsScreen.types.js → screen/TabsScreen.types.js} +0 -0
  948. /package/lib/module/components/tabs/{TabsScreen.web.js → screen/TabsScreen.web.js} +0 -0
  949. /package/lib/typescript/components/gamma/stack/{StackHost.d.ts → host/StackHost.d.ts} +0 -0
  950. /package/lib/typescript/components/gamma/stack/{StackHost.web.d.ts → host/StackHost.web.d.ts} +0 -0
  951. /package/lib/typescript/components/gamma/stack/{StackScreen.d.ts → screen/StackScreen.d.ts} +0 -0
  952. /package/lib/typescript/components/gamma/stack/{StackScreen.web.d.ts → screen/StackScreen.web.d.ts} +0 -0
  953. /package/lib/typescript/components/tabs/{TabsHost.web.d.ts → host/TabsHost.web.d.ts} +0 -0
  954. /package/lib/typescript/components/tabs/{TabsScreen.web.d.ts → screen/TabsScreen.web.d.ts} +0 -0
  955. /package/src/components/gamma/stack/{StackHost.web.tsx → host/StackHost.web.tsx} +0 -0
  956. /package/src/components/gamma/stack/{StackScreen.web.tsx → screen/StackScreen.web.tsx} +0 -0
  957. /package/src/components/tabs/{TabsHost.web.tsx → host/TabsHost.web.tsx} +0 -0
  958. /package/src/components/tabs/{TabsScreen.web.tsx → screen/TabsScreen.web.tsx} +0 -0
@@ -1,7 +1,9 @@
1
1
  package com.swmansion.rnscreens.utils
2
2
 
3
3
  import android.app.Activity
4
+ import android.app.Application
4
5
  import android.content.Context
6
+ import android.os.Bundle
5
7
  import android.util.Log
6
8
  import android.view.View
7
9
  import androidx.appcompat.widget.Toolbar
@@ -26,10 +28,10 @@ internal class ScreenDummyLayoutHelper(
26
28
  ) : LifecycleEventListener {
27
29
  // The state required to compute header dimensions. We want this on instance rather than on class
28
30
  // for context access & being tied to instance lifetime.
29
- private lateinit var coordinatorLayout: CoordinatorLayout
30
- private lateinit var appBarLayout: AppBarLayout
31
- private lateinit var dummyContentView: View
32
- private lateinit var toolbar: Toolbar
31
+ private var coordinatorLayout: CoordinatorLayout? = null
32
+ private var appBarLayout: AppBarLayout? = null
33
+ private var dummyContentView: View? = null
34
+ private var toolbar: Toolbar? = null
33
35
  private var defaultFontSize: Float = 0f
34
36
  private var defaultContentInsetStartWithNavigation: Int = 0
35
37
 
@@ -42,6 +44,9 @@ internal class ScreenDummyLayoutHelper(
42
44
  private var reactContextRef: WeakReference<ReactApplicationContext> =
43
45
  WeakReference(reactContext)
44
46
 
47
+ // We're relying on the native notification for performing cleanup, rather than relying on ReactNative `onHostDestroy`
48
+ private var activityLifecycleCallbacks: Application.ActivityLifecycleCallbacks? = null
49
+
45
50
  init {
46
51
  // We load the library so that we are able to communicate with our C++ code (descriptor & shadow nodes).
47
52
  // Basically we leak this object to C++, as its lifecycle should span throughout whole application
@@ -53,10 +58,13 @@ internal class ScreenDummyLayoutHelper(
53
58
  }
54
59
 
55
60
  weakInstance = WeakReference(this)
56
-
57
- if (!(reactContext.hasCurrentActivity() && maybeInitDummyLayoutWithHeader(reactContext))) {
58
- reactContext.addLifecycleEventListener(this)
59
- }
61
+ maybeInitDummyLayoutWithHeader(reactContext)
62
+ // We register as lifecycleEventListener to retry initialization in onHostResume if the
63
+ // activity wasn't yet available. Once initialization succeeds, onHostResume removes this listener
64
+ // from that point on cleanup is handled exclusively by ActivityLifecycleCallbacks registered on the
65
+ // Application. onHostDestroy here acts only as a defensive fallback to unregister in the rare case
66
+ // where init never succeeded and the lifecycleEventListener was therefore never removed.
67
+ reactContext.addLifecycleEventListener(this)
60
68
  }
61
69
 
62
70
  /**
@@ -81,7 +89,7 @@ internal class ScreenDummyLayoutHelper(
81
89
 
82
90
  // We need to use activity here, as react context does not have theme attributes required by
83
91
  // AppBarLayout attached leading to crash.
84
- val contextWithTheme =
92
+ val activity =
85
93
  requireNotNull(reactContext.currentActivity) {
86
94
  "[RNScreens] Attempt to use context detached from activity. This could happen only due to race-condition."
87
95
  }
@@ -91,7 +99,9 @@ internal class ScreenDummyLayoutHelper(
91
99
  if (isLayoutInitialized) {
92
100
  return true
93
101
  }
94
- initDummyLayoutWithHeader(contextWithTheme)
102
+ initDummyLayoutWithHeader(activity)
103
+
104
+ registerActivityLifecycleListener(activity)
95
105
  }
96
106
  return true
97
107
  }
@@ -103,9 +113,9 @@ internal class ScreenDummyLayoutHelper(
103
113
  * to initialize the AppBarLayout.
104
114
  */
105
115
  private fun initDummyLayoutWithHeader(contextWithTheme: Context) {
106
- coordinatorLayout = CoordinatorLayout(contextWithTheme)
116
+ val newCoordinatorLayout = CoordinatorLayout(contextWithTheme)
107
117
 
108
- appBarLayout =
118
+ val newAppBarLayout =
109
119
  AppBarLayout(contextWithTheme).apply {
110
120
  layoutParams =
111
121
  CoordinatorLayout.LayoutParams(
@@ -114,7 +124,7 @@ internal class ScreenDummyLayoutHelper(
114
124
  )
115
125
  }
116
126
 
117
- toolbar =
127
+ val newToolbar =
118
128
  Toolbar(contextWithTheme).apply {
119
129
  title = DEFAULT_HEADER_TITLE
120
130
  layoutParams =
@@ -126,12 +136,16 @@ internal class ScreenDummyLayoutHelper(
126
136
  }
127
137
 
128
138
  // We know the title text view will be there, cause we've just set title.
129
- defaultFontSize = ScreenStackHeaderConfig.findTitleTextViewInToolbar(toolbar)!!.textSize
130
- defaultContentInsetStartWithNavigation = toolbar.contentInsetStartWithNavigation
139
+ val titleTextView =
140
+ checkNotNull(ScreenStackHeaderConfig.findTitleTextViewInToolbar(newToolbar)) {
141
+ "[RNScreens] Failed to find TextView in children of Toolbar"
142
+ }
143
+ defaultFontSize = titleTextView.textSize
144
+ defaultContentInsetStartWithNavigation = newToolbar.contentInsetStartWithNavigation
131
145
 
132
- appBarLayout.addView(toolbar)
146
+ newAppBarLayout.addView(newToolbar)
133
147
 
134
- dummyContentView =
148
+ val newDummyContentView =
135
149
  View(contextWithTheme).apply {
136
150
  layoutParams =
137
151
  CoordinatorLayout.LayoutParams(
@@ -140,11 +154,16 @@ internal class ScreenDummyLayoutHelper(
140
154
  )
141
155
  }
142
156
 
143
- coordinatorLayout.apply {
144
- addView(appBarLayout)
145
- addView(dummyContentView)
157
+ newCoordinatorLayout.apply {
158
+ addView(newAppBarLayout)
159
+ addView(newDummyContentView)
146
160
  }
147
161
 
162
+ coordinatorLayout = newCoordinatorLayout
163
+ appBarLayout = newAppBarLayout
164
+ toolbar = newToolbar
165
+ dummyContentView = newDummyContentView
166
+
148
167
  isLayoutInitialized = true
149
168
  }
150
169
 
@@ -152,10 +171,15 @@ internal class ScreenDummyLayoutHelper(
152
171
  * Triggers layout pass on dummy view hierarchy, taking into consideration selected
153
172
  * ScreenStackHeaderConfig props that might have impact on final header height.
154
173
  *
174
+ * It's called from C++ via JNI on a background thread; @Synchronized guards against concurrent `cleanUpViews`
175
+ * running on the main thread (activity lifecycle), which would flip `isLayoutInitialized` and clear
176
+ * the cache while a measurement is in progress.
177
+ *
155
178
  * @param fontSize font size value as passed from JS
156
179
  * @return header height in dp as consumed by Yoga
157
180
  */
158
181
  @DoNotStrip
182
+ @Synchronized
159
183
  private fun computeDummyLayout(
160
184
  fontSize: Int,
161
185
  isTitleEmpty: Boolean,
@@ -178,7 +202,16 @@ internal class ScreenDummyLayoutHelper(
178
202
  return cache.headerHeight
179
203
  }
180
204
 
181
- val topLevelDecorView = requireActivity().window.decorView
205
+ // components below are always initialized and cleared together.
206
+ val currentCoordinatorLayout = coordinatorLayout
207
+ val currentAppBarLayout = appBarLayout
208
+ val currentToolbar = toolbar
209
+ val currentActivity = reactContextRef.get()?.currentActivity
210
+ if (currentCoordinatorLayout == null || currentAppBarLayout == null || currentToolbar == null || currentActivity == null) {
211
+ return 0.0f
212
+ }
213
+
214
+ val topLevelDecorView = currentActivity.window.decorView
182
215
  val topInset = getDecorViewTopInset(topLevelDecorView)
183
216
 
184
217
  // These dimensions are not accurate, as they do include navigation bar, however
@@ -192,42 +225,73 @@ internal class ScreenDummyLayoutHelper(
192
225
  View.MeasureSpec.makeMeasureSpec(decorViewHeight, View.MeasureSpec.EXACTLY)
193
226
 
194
227
  if (isTitleEmpty) {
195
- toolbar.title = ""
196
- toolbar.contentInsetStartWithNavigation = 0
228
+ currentToolbar.title = ""
229
+ currentToolbar.contentInsetStartWithNavigation = 0
197
230
  } else {
198
- toolbar.title = DEFAULT_HEADER_TITLE
199
- toolbar.contentInsetStartWithNavigation = defaultContentInsetStartWithNavigation
231
+ currentToolbar.title = DEFAULT_HEADER_TITLE
232
+ currentToolbar.contentInsetStartWithNavigation = defaultContentInsetStartWithNavigation
200
233
  }
201
234
 
202
- val textView = ScreenStackHeaderConfig.findTitleTextViewInToolbar(toolbar)
235
+ val textView = ScreenStackHeaderConfig.findTitleTextViewInToolbar(currentToolbar)
203
236
  textView?.textSize =
204
237
  if (fontSize != FONT_SIZE_UNSET) fontSize.toFloat() else defaultFontSize
205
238
 
206
- coordinatorLayout.measure(widthMeasureSpec, heightMeasureSpec)
239
+ currentCoordinatorLayout.measure(widthMeasureSpec, heightMeasureSpec)
207
240
 
208
241
  // It seems that measure pass would be enough, however I'm not certain whether there are no
209
242
  // scenarios when layout violates measured dimensions.
210
- coordinatorLayout.layout(0, 0, decorViewWidth, decorViewHeight)
243
+ currentCoordinatorLayout.layout(0, 0, decorViewWidth, decorViewHeight)
211
244
 
212
245
  // Include the top inset to account for the extra padding manually applied to the CustomToolbar.
213
- val totalAppBarLayoutHeight = appBarLayout.height.toFloat() + topInset
246
+ val totalAppBarLayoutHeight = currentAppBarLayout.height.toFloat() + topInset
214
247
 
215
248
  val headerHeight = PixelUtil.toDIPFromPixel(totalAppBarLayoutHeight)
216
249
  cache = CacheEntry(CacheKey(fontSize, isTitleEmpty), headerHeight)
217
250
  return headerHeight
218
251
  }
219
252
 
253
+ // We use Application.ActivityLifecycleCallbacks instead of ReactNative's LifecycleEventListener
254
+ // for cleanup because it is registered on the Application object directly. We're relying on the native
255
+ // lifecycle, rather than React's lifecycle.
256
+ private fun registerActivityLifecycleListener(activity: Activity) {
257
+ if (activityLifecycleCallbacks != null) return
258
+
259
+ activityLifecycleCallbacks =
260
+ object : Application.ActivityLifecycleCallbacks {
261
+ override fun onActivityDestroyed(destroyedActivity: Activity) {
262
+ if (destroyedActivity === activity) {
263
+ cleanUpViews(destroyedActivity.application)
264
+ }
265
+ }
266
+
267
+ override fun onActivityCreated(
268
+ activity: Activity,
269
+ savedInstanceState: Bundle?,
270
+ ) = Unit
271
+
272
+ override fun onActivityStarted(activity: Activity) = Unit
273
+
274
+ override fun onActivityResumed(activity: Activity) = Unit
275
+
276
+ override fun onActivityPaused(activity: Activity) = Unit
277
+
278
+ override fun onActivityStopped(activity: Activity) = Unit
279
+
280
+ override fun onActivitySaveInstanceState(
281
+ activity: Activity,
282
+ outState: Bundle,
283
+ ) = Unit
284
+ }
285
+
286
+ activity.application.registerActivityLifecycleCallbacks(activityLifecycleCallbacks)
287
+ }
288
+
220
289
  private fun requireReactContext(lazyMessage: (() -> Any)? = null): ReactApplicationContext =
221
290
  requireNotNull(
222
291
  reactContextRef.get(),
223
292
  lazyMessage ?: { "[RNScreens] Attempt to require missing react context" },
224
293
  )
225
294
 
226
- private fun requireActivity(): Activity =
227
- requireNotNull(requireReactContext().currentActivity) {
228
- "[RNScreens] Attempt to use context detached from activity"
229
- }
230
-
231
295
  companion object {
232
296
  const val TAG = "ScreenDummyLayoutHelper"
233
297
 
@@ -270,6 +334,26 @@ internal class ScreenDummyLayoutHelper(
270
334
  override fun onHostDestroy() {
271
335
  reactContextRef.get()?.removeLifecycleEventListener(this)
272
336
  }
337
+
338
+ // Called from `onActivityDestroyed` on the main thread; @Synchronized guards against concurrent
339
+ // `computeDummyLayout` running on a JNI background thread, which could write a stale cache entry after cleanup.
340
+ @Synchronized
341
+ private fun cleanUpViews(application: Application) {
342
+ coordinatorLayout = null
343
+ appBarLayout = null
344
+ dummyContentView = null
345
+ toolbar = null
346
+
347
+ cache = CacheEntry.EMPTY
348
+
349
+ isLayoutInitialized = false
350
+
351
+ val callbacks = activityLifecycleCallbacks
352
+ if (callbacks != null) {
353
+ application.unregisterActivityLifecycleCallbacks(callbacks)
354
+ activityLifecycleCallbacks = null
355
+ }
356
+ }
273
357
  }
274
358
 
275
359
  private data class CacheKey(
@@ -23,6 +23,9 @@
23
23
  #include <react/renderer/components/rnscreens/RNSFullWindowOverlayComponentDescriptor.h>
24
24
  #include <react/renderer/components/rnscreens/RNSTabsHostComponentDescriptor.h>
25
25
  #include <react/renderer/components/rnscreens/RNSSafeAreaViewComponentDescriptor.h>
26
+ #include <react/renderer/components/rnscreens/RNSStackScreenComponentDescriptor.h>
27
+ #include <react/renderer/components/rnscreens/RNSStackHeaderConfigComponentDescriptor.h>
28
+ #include <react/renderer/components/rnscreens/RNSStackHeaderSubviewComponentDescriptor.h>
26
29
 
27
30
  namespace facebook {
28
31
  namespace react {
@@ -0,0 +1,39 @@
1
+ #pragma once
2
+
3
+ #ifdef ANDROID
4
+ #include <fbjni/fbjni.h>
5
+ #endif // ANDROID
6
+ #include <react/renderer/core/ConcreteComponentDescriptor.h>
7
+ #include "RNSSplitScreenShadowNode.h"
8
+
9
+ namespace facebook::react {
10
+
11
+ class RNSSplitScreenComponentDescriptor final
12
+ : public ConcreteComponentDescriptor<RNSSplitScreenShadowNode> {
13
+ public:
14
+ using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
15
+
16
+ void adopt(ShadowNode &shadowNode) const override {
17
+ react_native_assert(dynamic_cast<RNSSplitScreenShadowNode *>(&shadowNode));
18
+ auto &splitScreenShadowNode =
19
+ static_cast<RNSSplitScreenShadowNode &>(shadowNode);
20
+
21
+ react_native_assert(
22
+ dynamic_cast<YogaLayoutableShadowNode *>(&splitScreenShadowNode));
23
+ auto &layoutableShadowNode =
24
+ static_cast<YogaLayoutableShadowNode &>(splitScreenShadowNode);
25
+
26
+ auto state =
27
+ std::static_pointer_cast<const RNSSplitScreenShadowNode::ConcreteState>(
28
+ shadowNode.getState());
29
+ auto stateData = state->getData();
30
+
31
+ if (stateData.frameSize.width != 0 && stateData.frameSize.height != 0) {
32
+ layoutableShadowNode.setSize(stateData.frameSize);
33
+ }
34
+
35
+ ConcreteComponentDescriptor::adopt(shadowNode);
36
+ }
37
+ };
38
+
39
+ } // namespace facebook::react
@@ -0,0 +1,13 @@
1
+ #include "RNSSplitScreenShadowNode.h"
2
+
3
+ namespace facebook::react {
4
+
5
+ extern const char RNSSplitScreenComponentName[] = "RNSSplitScreen";
6
+
7
+ Point RNSSplitScreenShadowNode::getContentOriginOffset(
8
+ bool /*includeTransform*/) const {
9
+ auto stateData = getStateData();
10
+ return stateData.contentOffset;
11
+ }
12
+
13
+ } // namespace facebook::react
@@ -5,19 +5,19 @@
5
5
  #include <react/renderer/components/rnscreens/Props.h>
6
6
  #include <react/renderer/components/view/ConcreteViewShadowNode.h>
7
7
  #include <react/renderer/core/LayoutContext.h>
8
- #include "RNSSplitViewScreenState.h"
8
+ #include "RNSSplitScreenState.h"
9
9
 
10
10
  namespace facebook::react {
11
11
 
12
- JSI_EXPORT extern const char RNSSplitViewScreenComponentName[];
12
+ JSI_EXPORT extern const char RNSSplitScreenComponentName[];
13
13
 
14
14
  using ConcreteViewShadowNodeSuperType = ConcreteViewShadowNode<
15
- RNSSplitViewScreenComponentName,
16
- RNSSplitViewScreenProps,
17
- RNSSplitViewScreenEventEmitter,
18
- RNSSplitViewScreenState>;
15
+ RNSSplitScreenComponentName,
16
+ RNSSplitScreenProps,
17
+ RNSSplitScreenEventEmitter,
18
+ RNSSplitScreenState>;
19
19
 
20
- class JSI_EXPORT RNSSplitViewScreenShadowNode final
20
+ class JSI_EXPORT RNSSplitScreenShadowNode final
21
21
  : public ConcreteViewShadowNodeSuperType {
22
22
  public:
23
23
  using ConcreteViewShadowNode::ConcreteViewShadowNode;
@@ -8,20 +8,20 @@
8
8
 
9
9
  namespace facebook::react {
10
10
 
11
- class JSI_EXPORT RNSSplitViewScreenState final {
11
+ class JSI_EXPORT RNSSplitScreenState final {
12
12
  public:
13
- using Shared = std::shared_ptr<const RNSSplitViewScreenState>;
13
+ using Shared = std::shared_ptr<const RNSSplitScreenState>;
14
14
 
15
- RNSSplitViewScreenState() {};
16
- RNSSplitViewScreenState(Size frameSize_, Point contentOffset_)
15
+ RNSSplitScreenState() {};
16
+ RNSSplitScreenState(Size frameSize_, Point contentOffset_)
17
17
  : frameSize(frameSize_), contentOffset(contentOffset_) {};
18
18
 
19
19
  const Size frameSize{};
20
20
  const Point contentOffset{};
21
21
 
22
22
  #if defined(ANDROID)
23
- RNSSplitViewScreenState(
24
- const RNSSplitViewScreenState &previousState,
23
+ RNSSplitScreenState(
24
+ const RNSSplitScreenState &previousState,
25
25
  folly::dynamic data) {}
26
26
  folly::dynamic getDynamic() const {
27
27
  return {};
@@ -0,0 +1,43 @@
1
+ #pragma once
2
+
3
+ #ifdef ANDROID
4
+ #include <fbjni/fbjni.h>
5
+ #endif // ANDROID
6
+
7
+ #include <react/debug/react_native_assert.h>
8
+ #include <react/renderer/core/ConcreteComponentDescriptor.h>
9
+ #include "RNSStackHeaderConfigShadowNode.h"
10
+
11
+ namespace facebook::react {
12
+
13
+ class RNSStackHeaderConfigComponentDescriptor final
14
+ : public ConcreteComponentDescriptor<RNSStackHeaderConfigShadowNode> {
15
+ public:
16
+ using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
17
+
18
+ void adopt(ShadowNode &shadowNode) const override {
19
+ #ifdef ANDROID
20
+ react_native_assert(
21
+ dynamic_cast<RNSStackHeaderConfigShadowNode *>(&shadowNode));
22
+ auto &configShadowNode =
23
+ static_cast<RNSStackHeaderConfigShadowNode &>(shadowNode);
24
+ react_native_assert(
25
+ dynamic_cast<YogaLayoutableShadowNode *>(&configShadowNode));
26
+ auto &layoutableShadowNode =
27
+ static_cast<YogaLayoutableShadowNode &>(configShadowNode);
28
+
29
+ auto state = std::static_pointer_cast<
30
+ const RNSStackHeaderConfigShadowNode::ConcreteState>(
31
+ shadowNode.getState());
32
+ auto stateData = state->getData();
33
+
34
+ if (stateData.frameSize.width != 0 && stateData.frameSize.height != 0) {
35
+ layoutableShadowNode.setSize(
36
+ Size{stateData.frameSize.width, stateData.frameSize.height});
37
+ }
38
+ #endif // ANDROID
39
+ ConcreteComponentDescriptor::adopt(shadowNode);
40
+ }
41
+ };
42
+
43
+ } // namespace facebook::react
@@ -0,0 +1,21 @@
1
+ #include "RNSStackHeaderConfigShadowNode.h"
2
+
3
+ namespace facebook::react {
4
+
5
+ #if !defined(ANDROID)
6
+ extern const char RNSStackHeaderConfigComponentName[] =
7
+ "RNSStackHeaderConfigIOS";
8
+ #else // !defined(ANDROID)
9
+ extern const char RNSStackHeaderConfigComponentName[] =
10
+ "RNSStackHeaderConfigAndroid";
11
+ #endif // !defined(ANDROID)
12
+
13
+ #ifdef ANDROID
14
+ Point RNSStackHeaderConfigShadowNode::getContentOriginOffset(
15
+ bool /*includeTransform*/) const {
16
+ auto stateData = getStateData();
17
+ return stateData.contentOffset;
18
+ }
19
+ #endif // ANDROID
20
+
21
+ } // namespace facebook::react
@@ -0,0 +1,33 @@
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 "RNSStackHeaderConfigState.h"
8
+
9
+ namespace facebook::react {
10
+
11
+ JSI_EXPORT extern const char RNSStackHeaderConfigComponentName[];
12
+
13
+ class JSI_EXPORT RNSStackHeaderConfigShadowNode final
14
+ : public ConcreteViewShadowNode<
15
+ RNSStackHeaderConfigComponentName,
16
+ #if !defined(ANDROID)
17
+ RNSStackHeaderConfigIOSProps,
18
+ RNSStackHeaderConfigIOSEventEmitter,
19
+ #else // !defined(ANDROID)
20
+ RNSStackHeaderConfigAndroidProps,
21
+ RNSStackHeaderConfigAndroidEventEmitter,
22
+ #endif // !defined(ANDROID)
23
+ RNSStackHeaderConfigState> {
24
+ public:
25
+ using ConcreteViewShadowNode::ConcreteViewShadowNode;
26
+ using StateData = ConcreteViewShadowNode::ConcreteStateData;
27
+
28
+ #ifdef ANDROID
29
+ Point getContentOriginOffset(bool includeTransform) const override;
30
+ #endif // ANDROID
31
+ };
32
+
33
+ } // namespace facebook::react
@@ -0,0 +1,13 @@
1
+ #include "RNSStackHeaderConfigState.h"
2
+
3
+ namespace facebook::react {
4
+
5
+ #ifdef ANDROID
6
+ folly::dynamic RNSStackHeaderConfigState::getDynamic() const {
7
+ return folly::dynamic::object("frameWidth", frameSize.width)(
8
+ "frameHeight", frameSize.height)("contentOffsetX", contentOffset.x)(
9
+ "contentOffsetY", contentOffset.y);
10
+ }
11
+ #endif // ANDROID
12
+
13
+ } // namespace facebook::react
@@ -0,0 +1,44 @@
1
+ #pragma once
2
+
3
+ #include <jsi/jsi.h>
4
+
5
+ #ifdef ANDROID
6
+ #include <folly/dynamic.h>
7
+ #include <react/renderer/core/graphicsConversions.h>
8
+ #include <react/renderer/graphics/Float.h>
9
+ #include <react/renderer/mapbuffer/MapBuffer.h>
10
+ #include <react/renderer/mapbuffer/MapBufferBuilder.h>
11
+ #endif // ANDROID
12
+
13
+ namespace facebook::react {
14
+
15
+ class JSI_EXPORT RNSStackHeaderConfigState final {
16
+ public:
17
+ using Shared = std::shared_ptr<const RNSStackHeaderConfigState>;
18
+
19
+ RNSStackHeaderConfigState() {}
20
+
21
+ #ifdef ANDROID
22
+ RNSStackHeaderConfigState(
23
+ RNSStackHeaderConfigState const &previousState,
24
+ folly::dynamic data)
25
+ : frameSize(
26
+ Size{
27
+ (Float)data["frameWidth"].getDouble(),
28
+ (Float)data["frameHeight"].getDouble()}),
29
+ contentOffset(
30
+ Point{
31
+ (Float)data["contentOffsetX"].getDouble(),
32
+ (Float)data["contentOffsetY"].getDouble()}) {}
33
+
34
+ Size frameSize{};
35
+ Point contentOffset{};
36
+
37
+ folly::dynamic getDynamic() const;
38
+ MapBuffer getMapBuffer() const {
39
+ return MapBufferBuilder::EMPTY();
40
+ }
41
+ #endif // ANDROID
42
+ };
43
+
44
+ } // namespace facebook::react
@@ -0,0 +1,14 @@
1
+ #pragma once
2
+
3
+ #include <react/debug/react_native_assert.h>
4
+ #include <react/renderer/core/ConcreteComponentDescriptor.h>
5
+ #include "RNSStackHeaderSubviewShadowNode.h"
6
+
7
+ namespace facebook::react {
8
+
9
+ class RNSStackHeaderSubviewComponentDescriptor final
10
+ : public ConcreteComponentDescriptor<RNSStackHeaderSubviewShadowNode> {
11
+ using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
12
+ };
13
+
14
+ } // namespace facebook::react
@@ -0,0 +1,30 @@
1
+ #include "RNSStackHeaderSubviewShadowNode.h"
2
+
3
+ namespace facebook::react {
4
+
5
+ extern const char RNSStackHeaderSubviewComponentName[] =
6
+ "RNSStackHeaderSubviewAndroid";
7
+
8
+ #ifdef ANDROID
9
+ Point RNSStackHeaderSubviewShadowNode::getContentOriginOffset(
10
+ bool /*includeTransform*/) const {
11
+ auto stateData = getStateData();
12
+ return stateData.contentOffset;
13
+ }
14
+
15
+ void RNSStackHeaderSubviewShadowNode::layout(
16
+ facebook::react::LayoutContext layoutContext) {
17
+ YogaLayoutableShadowNode::layout(layoutContext);
18
+ applyFrameCorrections();
19
+ }
20
+
21
+ // Subviews are reparented into native Toolbar which handles positioning via
22
+ // gravity (START/END). We force x=0 so that Fabric doesn't override the
23
+ // Toolbar's layout with Yoga-computed RTL coordinates.
24
+ void RNSStackHeaderSubviewShadowNode::applyFrameCorrections() {
25
+ ensureUnsealed();
26
+ layoutMetrics_.frame.origin.x = 0;
27
+ }
28
+ #endif // ANDROID
29
+
30
+ } // namespace facebook::react
@@ -0,0 +1,37 @@
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 "RNSStackHeaderSubviewState.h"
9
+
10
+ namespace facebook::react {
11
+
12
+ JSI_EXPORT extern const char RNSStackHeaderSubviewComponentName[];
13
+
14
+ class JSI_EXPORT RNSStackHeaderSubviewShadowNode final
15
+ : public ConcreteViewShadowNode<
16
+ RNSStackHeaderSubviewComponentName,
17
+ RNSStackHeaderSubviewAndroidProps,
18
+ RNSStackHeaderSubviewAndroidEventEmitter,
19
+ RNSStackHeaderSubviewState> {
20
+ public:
21
+ using ConcreteViewShadowNode::ConcreteViewShadowNode;
22
+ using StateData = ConcreteViewShadowNode::ConcreteStateData;
23
+
24
+ #ifdef ANDROID
25
+ #pragma mark - ShadowNode overrides
26
+
27
+ Point getContentOriginOffset(bool includeTransform) const override;
28
+
29
+ void layout(LayoutContext layoutContext) override;
30
+
31
+ #pragma mark - Custom interface
32
+ private:
33
+ void applyFrameCorrections();
34
+ #endif // ANDROID
35
+ };
36
+
37
+ } // namespace facebook::react
@@ -0,0 +1,12 @@
1
+ #include "RNSStackHeaderSubviewState.h"
2
+
3
+ namespace facebook::react {
4
+
5
+ #ifdef ANDROID
6
+ folly::dynamic RNSStackHeaderSubviewState::getDynamic() const {
7
+ return folly::dynamic::object("contentOffsetX", contentOffset.x)(
8
+ "contentOffsetY", contentOffset.y);
9
+ }
10
+ #endif // ANDROID
11
+
12
+ } // namespace facebook::react