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

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 (971) 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 +109 -0
  38. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/StackHeaderAppBarLayoutBehavior.kt +29 -0
  39. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/StackHeaderCoordinator.kt +589 -0
  40. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/StackHeaderCoordinatorLayout.kt +100 -0
  41. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/StackHeaderScrollingViewBehavior.kt +19 -0
  42. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/config/OnHeaderConfigAttachListener.kt +5 -0
  43. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/config/OnHeaderConfigChangeListener.kt +5 -0
  44. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/config/StackHeaderConfig.kt +163 -0
  45. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/config/StackHeaderConfigProviding.kt +33 -0
  46. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/config/StackHeaderConfigViewManager.kt +192 -0
  47. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/config/StackHeaderType.kt +7 -0
  48. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/subview/OnStackHeaderSubviewChangeListener.kt +5 -0
  49. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/subview/StackHeaderSubview.kt +87 -0
  50. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/subview/StackHeaderSubviewCollapseMode.kt +20 -0
  51. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/subview/StackHeaderSubviewProviding.kt +14 -0
  52. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/subview/StackHeaderSubviewType.kt +8 -0
  53. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/header/subview/StackHeaderSubviewViewManager.kt +67 -0
  54. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/host/StackContainer.kt +17 -5
  55. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/host/StackHost.kt +27 -0
  56. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/screen/StackScreen.kt +39 -7
  57. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/screen/StackScreenFragment.kt +3 -1
  58. package/android/src/main/java/com/swmansion/rnscreens/gamma/stack/screen/StackScreenViewManager.kt +72 -0
  59. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{TabsHostAppearanceApplicator.kt → appearance/TabsAppearanceApplicator.kt} +99 -62
  60. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/appearance/TabsAppearanceCoordinator.kt +51 -0
  61. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/appearance/TabsAppearanceModel.kt +25 -0
  62. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/container/MenuHelpers.kt +31 -0
  63. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/container/TabsActionOrigin.kt +26 -0
  64. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/container/TabsContainer.kt +645 -0
  65. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/container/TabsNavigationState.kt +60 -0
  66. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/container/TabsNavigationStateObserver.kt +53 -0
  67. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/container/TabsNavigationStateObserverRegistry.kt +88 -0
  68. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/host/TabsHost.kt +223 -0
  69. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{TabsHostA11yCoordinator.kt → host/TabsHostA11yCoordinator.kt} +3 -1
  70. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/host/TabsHostEventEmitter.kt +77 -0
  71. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/host/TabsHostViewManager.kt +140 -0
  72. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/host/event/TabsHostTabSelectedEvent.kt +49 -0
  73. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/host/event/TabsHostTabSelectionPreventedEvent.kt +47 -0
  74. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/host/event/TabsHostTabSelectionRejectedEvent.kt +56 -0
  75. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{TabsScreen.kt → screen/TabsScreen.kt} +25 -21
  76. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{TabsScreenDelegate.kt → screen/TabsScreenDelegate.kt} +2 -5
  77. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{TabsScreenEventEmitter.kt → screen/TabsScreenEventEmitter.kt} +6 -6
  78. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{TabsScreenFragment.kt → screen/TabsScreenFragment.kt} +4 -1
  79. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/screen/TabsScreenViewManager.kt +234 -0
  80. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{event → screen/event}/TabsScreenDidAppearEvent.kt +1 -1
  81. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{event → screen/event}/TabsScreenDidDisappearEvent.kt +1 -1
  82. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{event → screen/event}/TabsScreenWillAppearEvent.kt +1 -1
  83. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/{event → screen/event}/TabsScreenWillDisappearEvent.kt +1 -1
  84. package/android/src/main/java/com/swmansion/rnscreens/safearea/SafeAreaView.kt +1 -65
  85. package/android/src/main/java/com/swmansion/rnscreens/safearea/{paper/SafeAreaViewEdges.kt → SafeAreaViewEdges.kt} +1 -1
  86. package/android/src/main/java/com/swmansion/rnscreens/safearea/SafeAreaViewManager.kt +0 -9
  87. package/android/src/main/java/com/swmansion/rnscreens/utils/ColorUtils.kt +25 -0
  88. package/android/src/main/java/com/swmansion/rnscreens/utils/DimensionUtils.kt +18 -0
  89. package/android/src/main/java/com/swmansion/rnscreens/utils/DrawableUtils.kt +23 -0
  90. package/android/src/main/java/com/swmansion/rnscreens/utils/RNSLog.kt +75 -7
  91. package/android/src/main/java/com/swmansion/rnscreens/utils/ScreenDummyLayoutHelper.kt +118 -34
  92. package/android/src/main/jni/rnscreens.h +3 -0
  93. package/common/cpp/react/renderer/components/rnscreens/RNSSplitScreenComponentDescriptor.h +39 -0
  94. package/common/cpp/react/renderer/components/rnscreens/RNSSplitScreenShadowNode.cpp +13 -0
  95. package/common/cpp/react/renderer/components/rnscreens/{RNSSplitViewScreenShadowNode.h → RNSSplitScreenShadowNode.h} +7 -7
  96. package/common/cpp/react/renderer/components/rnscreens/{RNSSplitViewScreenState.h → RNSSplitScreenState.h} +6 -6
  97. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderConfigComponentDescriptor.h +43 -0
  98. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderConfigShadowNode.cpp +21 -0
  99. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderConfigShadowNode.h +33 -0
  100. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderConfigState.cpp +13 -0
  101. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderConfigState.h +44 -0
  102. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderSubviewComponentDescriptor.h +14 -0
  103. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderSubviewShadowNode.cpp +30 -0
  104. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderSubviewShadowNode.h +37 -0
  105. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderSubviewState.cpp +12 -0
  106. package/common/cpp/react/renderer/components/rnscreens/RNSStackHeaderSubviewState.h +39 -0
  107. package/common/cpp/react/renderer/components/rnscreens/RNSStackScreenComponentDescriptor.h +42 -0
  108. package/common/cpp/react/renderer/components/rnscreens/RNSStackScreenShadowNode.cpp +15 -0
  109. package/common/cpp/react/renderer/components/rnscreens/RNSStackScreenShadowNode.h +30 -0
  110. package/common/cpp/react/renderer/components/rnscreens/RNSStackScreenState.cpp +13 -0
  111. package/common/cpp/react/renderer/components/rnscreens/RNSStackScreenState.h +44 -0
  112. package/common/cpp/react/renderer/components/rnscreens/RNSTabsBottomAccessoryShadowNode.cpp +17 -0
  113. package/common/cpp/react/renderer/components/rnscreens/RNSTabsBottomAccessoryShadowNode.h +9 -0
  114. package/common/cpp/react/renderer/components/rnscreens/RNSTabsHostShadowNode.cpp +6 -2
  115. package/common/cpp/react/renderer/components/rnscreens/RNSTabsHostShadowNode.h +7 -2
  116. package/ios/RCTConvert+RNScreens.h +3 -13
  117. package/ios/RCTConvert+RNScreens.mm +2 -67
  118. package/ios/RCTImageComponentView+RNSScreenStackHeaderConfig.h +2 -2
  119. package/ios/RCTImageComponentView+RNSScreenStackHeaderConfig.mm +0 -4
  120. package/ios/RNSConvert.h +6 -6
  121. package/ios/RNSConvert.mm +0 -14
  122. package/ios/RNSEnums.h +3 -3
  123. package/ios/RNSFullWindowOverlay.h +6 -17
  124. package/ios/RNSFullWindowOverlay.mm +7 -60
  125. package/ios/RNSModalScreen.mm +8 -17
  126. package/ios/RNSModule.h +2 -6
  127. package/ios/RNSModule.mm +2 -19
  128. package/ios/RNSScreen.h +13 -49
  129. package/ios/RNSScreen.mm +97 -339
  130. package/ios/RNSScreenContainer.h +2 -11
  131. package/ios/RNSScreenContainer.mm +6 -33
  132. package/ios/RNSScreenContentWrapper.h +4 -11
  133. package/ios/RNSScreenContentWrapper.mm +9 -38
  134. package/ios/RNSScreenFooter.h +4 -11
  135. package/ios/RNSScreenFooter.mm +7 -32
  136. package/ios/RNSScreenNavigationContainer.mm +5 -14
  137. package/ios/RNSScreenStack.h +6 -19
  138. package/ios/RNSScreenStack.mm +52 -181
  139. package/ios/RNSScreenStackAnimator.mm +1 -2
  140. package/ios/RNSScreenStackHeaderConfig.h +3 -60
  141. package/ios/RNSScreenStackHeaderConfig.mm +11 -230
  142. package/ios/RNSScreenStackHeaderSubview.h +2 -12
  143. package/ios/RNSScreenStackHeaderSubview.mm +12 -62
  144. package/ios/RNSSearchBar.mm +10 -6
  145. package/ios/bridging/RNSReactBaseView.h +0 -13
  146. package/ios/conversion/RNSConversions-ScrollViewMarker.h +26 -0
  147. package/ios/conversion/RNSConversions-ScrollViewMarker.mm +44 -0
  148. package/ios/conversion/RNSConversions-SplitView.mm +20 -22
  149. package/ios/conversion/RNSConversions-Stack.h +2 -2
  150. package/ios/conversion/RNSConversions-Stack.mm +2 -2
  151. package/ios/conversion/RNSConversions-Tabs.mm +79 -54
  152. package/ios/conversion/RNSConversions.h +33 -28
  153. package/ios/gamma/scroll-view-marker/RNSScrollViewMarkerComponentView.h +11 -0
  154. package/ios/gamma/scroll-view-marker/RNSScrollViewMarkerComponentView.mm +272 -0
  155. package/ios/gamma/scroll-view-marker/RNSScrollViewSeeking.h +15 -0
  156. package/ios/gamma/split/RNSSplitAppearanceApplicator.swift +194 -0
  157. package/ios/gamma/split/RNSSplitAppearanceCoordinator.swift +26 -0
  158. package/ios/gamma/split/RNSSplitAppearanceUpdateFlags.swift +11 -0
  159. package/ios/gamma/{split-view/RNSSplitViewHostComponentEventEmitter.h → split/RNSSplitHostComponentEventEmitter.h} +5 -5
  160. package/ios/gamma/{split-view/RNSSplitViewHostComponentEventEmitter.mm → split/RNSSplitHostComponentEventEmitter.mm} +4 -4
  161. package/ios/gamma/{split-view/RNSSplitViewHostComponentView.h → split/RNSSplitHostComponentView.h} +10 -10
  162. package/ios/gamma/{split-view/RNSSplitViewHostComponentView.mm → split/RNSSplitHostComponentView.mm} +83 -75
  163. package/ios/gamma/{split-view/RNSSplitViewHostComponentViewManager.h → split/RNSSplitHostComponentViewManager.h} +1 -1
  164. package/ios/gamma/split/RNSSplitHostComponentViewManager.mm +7 -0
  165. package/ios/gamma/{split-view/RNSSplitViewHostController.swift → split/RNSSplitHostController.swift} +82 -82
  166. package/ios/gamma/{split-view/RNSSplitViewNavigationController.swift → split/RNSSplitNavigationController.swift} +10 -10
  167. package/ios/gamma/{split-view/RNSSplitViewScreenComponentEventEmitter.h → split/RNSSplitScreenComponentEventEmitter.h} +5 -5
  168. package/ios/gamma/{split-view/RNSSplitViewScreenComponentEventEmitter.mm → split/RNSSplitScreenComponentEventEmitter.mm} +4 -4
  169. package/ios/gamma/{split-view/RNSSplitViewScreenComponentView.h → split/RNSSplitScreenComponentView.h} +17 -17
  170. package/ios/gamma/{split-view/RNSSplitViewScreenComponentView.mm → split/RNSSplitScreenComponentView.mm} +34 -24
  171. package/ios/gamma/{split-view/RNSSplitViewScreenComponentViewManager.h → split/RNSSplitScreenComponentViewManager.h} +1 -1
  172. package/ios/gamma/split/RNSSplitScreenComponentViewManager.mm +7 -0
  173. package/ios/gamma/split/RNSSplitScreenController.swift +133 -0
  174. package/ios/gamma/{split-view/RNSSplitViewScreenShadowStateProxy.h → split/RNSSplitScreenShadowStateProxy.h} +14 -14
  175. package/ios/gamma/{split-view/RNSSplitViewScreenShadowStateProxy.mm → split/RNSSplitScreenShadowStateProxy.mm} +10 -10
  176. package/ios/gamma/stack/host/RNSStackHostComponentView.h +1 -7
  177. package/ios/gamma/stack/host/RNSStackHostComponentView.mm +77 -83
  178. package/ios/gamma/stack/host/RNSStackNavigationController.h +13 -0
  179. package/ios/gamma/stack/host/RNSStackNavigationController.mm +82 -0
  180. package/ios/gamma/stack/host/RNSStackOperation.h +25 -0
  181. package/ios/gamma/stack/host/RNSStackOperation.mm +21 -0
  182. package/ios/gamma/stack/host/RNSStackOperationCoordinator.h +15 -0
  183. package/ios/gamma/stack/host/RNSStackOperationCoordinator.mm +78 -0
  184. package/ios/gamma/stack/screen/RNSStackScreenComponentView.h +1 -0
  185. package/ios/gamma/stack/screen/RNSStackScreenComponentView.mm +14 -1
  186. package/ios/gamma/stack/screen/RNSStackScreenController.h +15 -0
  187. package/ios/gamma/stack/screen/RNSStackScreenController.mm +66 -0
  188. package/ios/helpers/scroll-view/RNSScrollEdgeEffectApplicator.h +2 -1
  189. package/ios/helpers/scroll-view/RNSScrollEdgeEffectApplicator.mm +2 -1
  190. package/ios/safe-area/RNSSafeAreaViewComponentView.h +0 -17
  191. package/ios/safe-area/RNSSafeAreaViewComponentView.mm +7 -60
  192. package/ios/stubs/RNSGammaStubs.h +5 -2
  193. package/ios/stubs/RNSGammaStubs.mm +5 -2
  194. package/ios/tabs/RNSTabBarAppearanceCoordinator.h +2 -1
  195. package/ios/tabs/RNSTabBarAppearanceCoordinator.mm +1 -0
  196. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.h +4 -9
  197. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.mm +13 -15
  198. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentViewManager.mm +1 -1
  199. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryContentComponentView.mm +10 -0
  200. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryHelper.mm +34 -5
  201. package/ios/tabs/host/RNSTabBarController.h +196 -55
  202. package/ios/tabs/host/RNSTabBarController.mm +814 -53
  203. package/ios/tabs/host/RNSTabsHostComponentView.h +20 -16
  204. package/ios/tabs/host/RNSTabsHostComponentView.mm +144 -66
  205. package/ios/tabs/host/RNSTabsHostComponentViewManager.mm +0 -3
  206. package/ios/tabs/host/RNSTabsHostEventEmitter.h +49 -12
  207. package/ios/tabs/host/RNSTabsHostEventEmitter.mm +55 -17
  208. package/ios/tabs/host/RNSTabsNavigationState.h +184 -0
  209. package/ios/tabs/host/RNSTabsNavigationState.mm +78 -0
  210. package/ios/tabs/host/RNSTabsNavigationStateObserverRegistry.h +62 -0
  211. package/ios/tabs/host/RNSTabsNavigationStateObserverRegistry.mm +104 -0
  212. package/ios/tabs/screen/RNSTabsScreenComponentView.h +8 -22
  213. package/ios/tabs/screen/RNSTabsScreenComponentView.mm +44 -105
  214. package/ios/tabs/screen/RNSTabsScreenComponentViewManager.mm +1 -1
  215. package/ios/tabs/screen/RNSTabsScreenEventEmitter.h +1 -1
  216. package/ios/tabs/screen/RNSTabsScreenEventEmitter.mm +2 -2
  217. package/ios/tabs/screen/RNSTabsScreenViewController.h +8 -5
  218. package/ios/tabs/screen/RNSTabsScreenViewController.mm +18 -12
  219. package/ios/utils/RNSLog.swift +6 -0
  220. package/ios/utils/UIView+RNSUtility.h +1 -12
  221. package/ios/utils/UIView+RNSUtility.mm +2 -19
  222. package/lib/commonjs/components/ScreenStack.js +4 -1
  223. package/lib/commonjs/components/ScreenStack.js.map +1 -1
  224. package/lib/commonjs/components/ScreenStackHeaderConfig.js +8 -1
  225. package/lib/commonjs/components/ScreenStackHeaderConfig.js.map +1 -1
  226. package/lib/commonjs/components/ScreenStackItem.js +19 -7
  227. package/lib/commonjs/components/ScreenStackItem.js.map +1 -1
  228. package/lib/commonjs/components/SearchBar.js.map +1 -1
  229. package/lib/commonjs/components/contexts/TopInsetApplicationContext.js +33 -0
  230. package/lib/commonjs/components/contexts/TopInsetApplicationContext.js.map +1 -0
  231. package/lib/commonjs/components/gamma/scroll-view-marker/ScrollViewMarker.js +23 -0
  232. package/lib/commonjs/components/gamma/scroll-view-marker/ScrollViewMarker.js.map +1 -0
  233. package/lib/commonjs/components/gamma/scroll-view-marker/ScrollViewMarker.types.js +6 -0
  234. package/lib/commonjs/components/gamma/scroll-view-marker/ScrollViewMarker.types.js.map +1 -0
  235. package/lib/commonjs/components/gamma/scroll-view-marker/index.js +13 -0
  236. package/lib/commonjs/components/gamma/scroll-view-marker/index.js.map +1 -0
  237. package/lib/commonjs/components/gamma/split/SplitHost.js +5 -5
  238. package/lib/commonjs/components/gamma/split/SplitHost.js.map +1 -1
  239. package/lib/commonjs/components/gamma/split/SplitScreen.js +3 -3
  240. package/lib/commonjs/components/gamma/split/SplitScreen.js.map +1 -1
  241. package/lib/commonjs/components/gamma/split/index.js +2 -28
  242. package/lib/commonjs/components/gamma/split/index.js.map +1 -1
  243. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.android.js +113 -0
  244. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.android.js.map +1 -0
  245. package/lib/commonjs/components/{tabs/TabsAccessoryContent.types.js → gamma/stack/header/StackHeaderConfig.android.types.js} +1 -1
  246. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.android.types.js.map +1 -0
  247. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.d.js +2 -0
  248. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.d.js.map +1 -0
  249. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.ios.js +27 -0
  250. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.ios.js.map +1 -0
  251. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.ios.types.js +2 -0
  252. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.ios.types.js.map +1 -0
  253. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.types.js +6 -0
  254. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.types.js.map +1 -0
  255. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.web.js +10 -0
  256. package/lib/commonjs/components/gamma/stack/header/StackHeaderConfig.web.js.map +1 -0
  257. package/lib/commonjs/components/gamma/stack/header/android/StackHeaderSubview.android.js +33 -0
  258. package/lib/commonjs/components/gamma/stack/header/android/StackHeaderSubview.android.js.map +1 -0
  259. package/lib/commonjs/components/gamma/stack/header/android/StackHeaderSubview.android.types.js +6 -0
  260. package/lib/commonjs/components/gamma/stack/header/android/StackHeaderSubview.android.types.js.map +1 -0
  261. package/lib/commonjs/components/gamma/stack/header/index.js +14 -0
  262. package/lib/commonjs/components/gamma/stack/header/index.js.map +1 -0
  263. package/lib/commonjs/components/gamma/stack/{StackHost.js → host/StackHost.js} +1 -1
  264. package/lib/commonjs/components/gamma/stack/host/StackHost.js.map +1 -0
  265. package/lib/commonjs/components/gamma/stack/host/StackHost.types.js.map +1 -0
  266. package/lib/commonjs/components/gamma/stack/host/StackHost.web.js.map +1 -0
  267. package/lib/commonjs/components/gamma/stack/host/index.js +14 -0
  268. package/lib/commonjs/components/gamma/stack/host/index.js.map +1 -0
  269. package/lib/commonjs/components/gamma/stack/index.js +8 -33
  270. package/lib/commonjs/components/gamma/stack/index.js.map +1 -1
  271. package/lib/commonjs/components/gamma/stack/{StackScreen.js → screen/StackScreen.js} +2 -2
  272. package/lib/commonjs/components/gamma/stack/screen/StackScreen.js.map +1 -0
  273. package/lib/commonjs/components/gamma/stack/screen/StackScreen.types.js.map +1 -0
  274. package/lib/commonjs/components/gamma/stack/screen/StackScreen.web.js.map +1 -0
  275. package/lib/commonjs/components/gamma/stack/screen/index.js +14 -0
  276. package/lib/commonjs/components/gamma/stack/screen/index.js.map +1 -0
  277. package/lib/commonjs/components/helpers/PlatformUtils.js +9 -0
  278. package/lib/commonjs/components/helpers/PlatformUtils.js.map +1 -0
  279. package/lib/commonjs/components/helpers/prepareHeaderBarButtonItems.js +4 -3
  280. package/lib/commonjs/components/helpers/prepareHeaderBarButtonItems.js.map +1 -1
  281. package/lib/commonjs/components/safe-area/SafeAreaView.js +1 -2
  282. package/lib/commonjs/components/safe-area/SafeAreaView.js.map +1 -1
  283. package/lib/commonjs/components/safe-area/SafeAreaView.web.js +2 -3
  284. package/lib/commonjs/components/safe-area/SafeAreaView.web.js.map +1 -1
  285. package/lib/commonjs/components/safe-area/index.js +13 -0
  286. package/lib/commonjs/components/safe-area/index.js.map +1 -0
  287. package/lib/commonjs/components/tabs/{TabsAccessory.js → bottom-accessory/TabsBottomAccessory.js} +4 -4
  288. package/lib/commonjs/components/tabs/bottom-accessory/TabsBottomAccessory.js.map +1 -0
  289. package/lib/commonjs/components/tabs/bottom-accessory/TabsBottomAccessory.types.js +6 -0
  290. package/lib/commonjs/components/tabs/bottom-accessory/TabsBottomAccessory.types.js.map +1 -0
  291. package/lib/commonjs/components/tabs/{TabsAccessoryContent.js → bottom-accessory/TabsBottomAccessoryContent.js} +4 -4
  292. package/lib/commonjs/components/tabs/bottom-accessory/TabsBottomAccessoryContent.js.map +1 -0
  293. package/lib/commonjs/components/tabs/bottom-accessory/TabsBottomAccessoryContent.types.js +6 -0
  294. package/lib/commonjs/components/tabs/bottom-accessory/TabsBottomAccessoryContent.types.js.map +1 -0
  295. package/lib/commonjs/components/tabs/bottom-accessory/index.js +21 -0
  296. package/lib/commonjs/components/tabs/bottom-accessory/index.js.map +1 -0
  297. package/lib/commonjs/components/tabs/host/TabsHost.android.js +67 -0
  298. package/lib/commonjs/components/tabs/host/TabsHost.android.js.map +1 -0
  299. package/lib/commonjs/components/tabs/host/TabsHost.android.types.js +2 -0
  300. package/lib/commonjs/components/tabs/host/TabsHost.android.types.js.map +1 -0
  301. package/lib/commonjs/components/tabs/host/TabsHost.d.js +2 -0
  302. package/lib/commonjs/components/tabs/host/TabsHost.d.js.map +1 -0
  303. package/lib/commonjs/components/tabs/{TabsHost.js → host/TabsHost.ios.js} +42 -31
  304. package/lib/commonjs/components/tabs/host/TabsHost.ios.js.map +1 -0
  305. package/lib/commonjs/components/tabs/host/TabsHost.ios.types.js +6 -0
  306. package/lib/commonjs/components/tabs/host/TabsHost.ios.types.js.map +1 -0
  307. package/lib/commonjs/components/tabs/host/TabsHost.types.js.map +1 -0
  308. package/lib/commonjs/components/tabs/host/TabsHost.web.js.map +1 -0
  309. package/lib/commonjs/components/tabs/host/index.js +14 -0
  310. package/lib/commonjs/components/tabs/host/index.js.map +1 -0
  311. package/lib/commonjs/components/tabs/host/useTabsHost.js +31 -0
  312. package/lib/commonjs/components/tabs/host/useTabsHost.js.map +1 -0
  313. package/lib/commonjs/components/tabs/index.js +6 -8
  314. package/lib/commonjs/components/tabs/index.js.map +1 -1
  315. package/lib/commonjs/components/tabs/screen/TabsScreen.android.js +143 -0
  316. package/lib/commonjs/components/tabs/screen/TabsScreen.android.js.map +1 -0
  317. package/lib/commonjs/components/tabs/screen/TabsScreen.android.types.js +6 -0
  318. package/lib/commonjs/components/tabs/screen/TabsScreen.android.types.js.map +1 -0
  319. package/lib/commonjs/components/tabs/screen/TabsScreen.d.js +2 -0
  320. package/lib/commonjs/components/tabs/screen/TabsScreen.d.js.map +1 -0
  321. package/lib/commonjs/components/tabs/screen/TabsScreen.ios.js +165 -0
  322. package/lib/commonjs/components/tabs/screen/TabsScreen.ios.js.map +1 -0
  323. package/lib/commonjs/components/tabs/{TabsAccessory.types.js → screen/TabsScreen.ios.types.js} +1 -1
  324. package/lib/commonjs/components/tabs/screen/TabsScreen.ios.types.js.map +1 -0
  325. package/lib/commonjs/components/tabs/screen/TabsScreen.types.js.map +1 -0
  326. package/lib/commonjs/components/tabs/screen/TabsScreen.web.js.map +1 -0
  327. package/lib/commonjs/components/tabs/screen/index.js +14 -0
  328. package/lib/commonjs/components/tabs/screen/index.js.map +1 -0
  329. package/lib/commonjs/components/tabs/screen/useTabsScreen.js +54 -0
  330. package/lib/commonjs/components/tabs/screen/useTabsScreen.js.map +1 -0
  331. package/lib/commonjs/experimental/index.js +41 -19
  332. package/lib/commonjs/experimental/index.js.map +1 -1
  333. package/lib/commonjs/fabric/ModalScreenNativeComponent.js.map +1 -1
  334. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
  335. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  336. package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
  337. package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
  338. package/lib/commonjs/fabric/gamma/ScrollViewMarkerNativeComponent.js +10 -0
  339. package/lib/commonjs/fabric/gamma/ScrollViewMarkerNativeComponent.js.map +1 -0
  340. package/lib/commonjs/fabric/gamma/{SplitViewHostNativeComponent.js → split/SplitHostNativeComponent.js} +2 -2
  341. package/lib/commonjs/fabric/gamma/split/SplitHostNativeComponent.js.map +1 -0
  342. package/lib/commonjs/fabric/gamma/{SplitViewScreenNativeComponent.js → split/SplitScreenNativeComponent.js} +2 -2
  343. package/lib/commonjs/fabric/gamma/split/SplitScreenNativeComponent.js.map +1 -0
  344. package/lib/commonjs/fabric/gamma/stack/StackHeaderConfigAndroidNativeComponent.js +13 -0
  345. package/lib/commonjs/fabric/gamma/stack/StackHeaderConfigAndroidNativeComponent.js.map +1 -0
  346. package/lib/commonjs/fabric/gamma/stack/StackHeaderConfigIOSNativeComponent.js +13 -0
  347. package/lib/commonjs/fabric/gamma/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -0
  348. package/lib/commonjs/fabric/gamma/stack/StackHeaderSubviewAndroidNativeComponent.js +13 -0
  349. package/lib/commonjs/fabric/gamma/stack/StackHeaderSubviewAndroidNativeComponent.js.map +1 -0
  350. package/lib/commonjs/fabric/gamma/stack/StackScreenNativeComponent.js +3 -1
  351. package/lib/commonjs/fabric/gamma/stack/StackScreenNativeComponent.js.map +1 -1
  352. package/lib/commonjs/fabric/safe-area/SafeAreaViewNativeComponent.js.map +1 -1
  353. package/lib/commonjs/fabric/tabs/TabsBottomAccessoryNativeComponent.js +2 -1
  354. package/lib/commonjs/fabric/tabs/TabsBottomAccessoryNativeComponent.js.map +1 -1
  355. package/lib/commonjs/fabric/tabs/TabsHostAndroidNativeComponent.js +18 -0
  356. package/lib/commonjs/fabric/tabs/TabsHostAndroidNativeComponent.js.map +1 -0
  357. package/lib/commonjs/fabric/tabs/TabsHostIOSNativeComponent.js +17 -0
  358. package/lib/commonjs/fabric/tabs/TabsHostIOSNativeComponent.js.map +1 -0
  359. package/lib/commonjs/fabric/tabs/TabsScreenAndroidNativeComponent.js +17 -0
  360. package/lib/commonjs/fabric/tabs/TabsScreenAndroidNativeComponent.js.map +1 -0
  361. package/lib/commonjs/fabric/tabs/{TabsScreenNativeComponent.js → TabsScreenIOSNativeComponent.js} +9 -3
  362. package/lib/commonjs/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -0
  363. package/lib/commonjs/flags.js +71 -12
  364. package/lib/commonjs/flags.js.map +1 -1
  365. package/lib/commonjs/index.js +13 -21
  366. package/lib/commonjs/index.js.map +1 -1
  367. package/lib/commonjs/private/hooks/useRenderDebugInfo.js +2 -1
  368. package/lib/commonjs/private/hooks/useRenderDebugInfo.js.map +1 -1
  369. package/lib/commonjs/private/index.js +2 -8
  370. package/lib/commonjs/private/index.js.map +1 -1
  371. package/lib/commonjs/private/logging.js +27 -10
  372. package/lib/commonjs/private/logging.js.map +1 -1
  373. package/lib/module/components/ScreenStack.js +4 -1
  374. package/lib/module/components/ScreenStack.js.map +1 -1
  375. package/lib/module/components/ScreenStackHeaderConfig.js +8 -1
  376. package/lib/module/components/ScreenStackHeaderConfig.js.map +1 -1
  377. package/lib/module/components/ScreenStackItem.js +18 -6
  378. package/lib/module/components/ScreenStackItem.js.map +1 -1
  379. package/lib/module/components/SearchBar.js.map +1 -1
  380. package/lib/module/components/contexts/TopInsetApplicationContext.js +24 -0
  381. package/lib/module/components/contexts/TopInsetApplicationContext.js.map +1 -0
  382. package/lib/module/components/gamma/scroll-view-marker/ScrollViewMarker.js +16 -0
  383. package/lib/module/components/gamma/scroll-view-marker/ScrollViewMarker.js.map +1 -0
  384. package/lib/module/components/gamma/scroll-view-marker/ScrollViewMarker.types.js +2 -0
  385. package/lib/module/components/gamma/scroll-view-marker/ScrollViewMarker.types.js.map +1 -0
  386. package/lib/module/components/gamma/scroll-view-marker/index.js +2 -0
  387. package/lib/module/components/gamma/scroll-view-marker/index.js.map +1 -0
  388. package/lib/module/components/gamma/split/SplitHost.js +5 -5
  389. package/lib/module/components/gamma/split/SplitHost.js.map +1 -1
  390. package/lib/module/components/gamma/split/SplitScreen.js +3 -3
  391. package/lib/module/components/gamma/split/SplitScreen.js.map +1 -1
  392. package/lib/module/components/gamma/split/index.js +1 -5
  393. package/lib/module/components/gamma/split/index.js.map +1 -1
  394. package/lib/module/components/gamma/stack/header/StackHeaderConfig.android.js +106 -0
  395. package/lib/module/components/gamma/stack/header/StackHeaderConfig.android.js.map +1 -0
  396. package/lib/module/components/gamma/stack/header/StackHeaderConfig.android.types.js +2 -0
  397. package/lib/module/components/gamma/stack/header/StackHeaderConfig.android.types.js.map +1 -0
  398. package/lib/module/components/gamma/stack/header/StackHeaderConfig.d.js +2 -0
  399. package/lib/module/components/gamma/stack/header/StackHeaderConfig.d.js.map +1 -0
  400. package/lib/module/components/gamma/stack/header/StackHeaderConfig.ios.js +21 -0
  401. package/lib/module/components/gamma/stack/header/StackHeaderConfig.ios.js.map +1 -0
  402. package/lib/module/components/gamma/stack/header/StackHeaderConfig.ios.types.js +2 -0
  403. package/lib/module/components/gamma/stack/header/StackHeaderConfig.ios.types.js.map +1 -0
  404. package/lib/module/components/gamma/stack/header/StackHeaderConfig.types.js +2 -0
  405. package/lib/module/components/gamma/stack/header/StackHeaderConfig.types.js.map +1 -0
  406. package/lib/module/components/gamma/stack/header/StackHeaderConfig.web.js +4 -0
  407. package/lib/module/components/gamma/stack/header/StackHeaderConfig.web.js.map +1 -0
  408. package/lib/module/components/gamma/stack/header/android/StackHeaderSubview.android.js +27 -0
  409. package/lib/module/components/gamma/stack/header/android/StackHeaderSubview.android.js.map +1 -0
  410. package/lib/module/components/gamma/stack/header/android/StackHeaderSubview.android.types.js +2 -0
  411. package/lib/module/components/gamma/stack/header/android/StackHeaderSubview.android.types.js.map +1 -0
  412. package/lib/module/components/gamma/stack/header/index.js +2 -0
  413. package/lib/module/components/gamma/stack/header/index.js.map +1 -0
  414. package/lib/module/components/gamma/stack/{StackHost.js → host/StackHost.js} +1 -1
  415. package/lib/module/components/gamma/stack/host/StackHost.js.map +1 -0
  416. package/lib/module/components/gamma/stack/host/StackHost.types.js.map +1 -0
  417. package/lib/module/components/gamma/stack/host/StackHost.web.js.map +1 -0
  418. package/lib/module/components/gamma/stack/host/index.js +2 -0
  419. package/lib/module/components/gamma/stack/host/index.js.map +1 -0
  420. package/lib/module/components/gamma/stack/index.js +6 -8
  421. package/lib/module/components/gamma/stack/index.js.map +1 -1
  422. package/lib/module/components/gamma/stack/{StackScreen.js → screen/StackScreen.js} +2 -2
  423. package/lib/module/components/gamma/stack/screen/StackScreen.js.map +1 -0
  424. package/lib/module/components/gamma/stack/screen/StackScreen.types.js.map +1 -0
  425. package/lib/module/components/gamma/stack/screen/StackScreen.web.js.map +1 -0
  426. package/lib/module/components/gamma/stack/screen/index.js +2 -0
  427. package/lib/module/components/gamma/stack/screen/index.js.map +1 -0
  428. package/lib/module/components/helpers/PlatformUtils.js +3 -0
  429. package/lib/module/components/helpers/PlatformUtils.js.map +1 -0
  430. package/lib/module/components/helpers/prepareHeaderBarButtonItems.js +4 -3
  431. package/lib/module/components/helpers/prepareHeaderBarButtonItems.js.map +1 -1
  432. package/lib/module/components/safe-area/SafeAreaView.js +1 -2
  433. package/lib/module/components/safe-area/SafeAreaView.js.map +1 -1
  434. package/lib/module/components/safe-area/SafeAreaView.web.js +1 -1
  435. package/lib/module/components/safe-area/SafeAreaView.web.js.map +1 -1
  436. package/lib/module/components/safe-area/index.js +2 -0
  437. package/lib/module/components/safe-area/index.js.map +1 -0
  438. package/lib/module/components/tabs/{TabsAccessory.js → bottom-accessory/TabsBottomAccessory.js} +3 -3
  439. package/lib/module/components/tabs/bottom-accessory/TabsBottomAccessory.js.map +1 -0
  440. package/lib/module/components/tabs/bottom-accessory/TabsBottomAccessory.types.js +2 -0
  441. package/lib/module/components/tabs/bottom-accessory/TabsBottomAccessory.types.js.map +1 -0
  442. package/lib/module/components/tabs/{TabsAccessoryContent.js → bottom-accessory/TabsBottomAccessoryContent.js} +3 -3
  443. package/lib/module/components/tabs/bottom-accessory/TabsBottomAccessoryContent.js.map +1 -0
  444. package/lib/module/components/tabs/bottom-accessory/TabsBottomAccessoryContent.types.js +2 -0
  445. package/lib/module/components/tabs/bottom-accessory/TabsBottomAccessoryContent.types.js.map +1 -0
  446. package/lib/module/components/tabs/bottom-accessory/index.js +3 -0
  447. package/lib/module/components/tabs/bottom-accessory/index.js.map +1 -0
  448. package/lib/module/components/tabs/host/TabsHost.android.js +62 -0
  449. package/lib/module/components/tabs/host/TabsHost.android.js.map +1 -0
  450. package/lib/module/components/tabs/host/TabsHost.android.types.js +2 -0
  451. package/lib/module/components/tabs/host/TabsHost.android.types.js.map +1 -0
  452. package/lib/module/components/tabs/host/TabsHost.d.js +2 -0
  453. package/lib/module/components/tabs/host/TabsHost.d.js.map +1 -0
  454. package/lib/module/components/tabs/host/TabsHost.ios.js +75 -0
  455. package/lib/module/components/tabs/host/TabsHost.ios.js.map +1 -0
  456. package/lib/module/components/tabs/host/TabsHost.ios.types.js +2 -0
  457. package/lib/module/components/tabs/host/TabsHost.ios.types.js.map +1 -0
  458. package/lib/module/components/tabs/host/TabsHost.types.js.map +1 -0
  459. package/lib/module/components/tabs/host/TabsHost.web.js.map +1 -0
  460. package/lib/module/components/tabs/host/index.js +2 -0
  461. package/lib/module/components/tabs/host/index.js.map +1 -0
  462. package/lib/module/components/tabs/host/useTabsHost.js +24 -0
  463. package/lib/module/components/tabs/host/useTabsHost.js.map +1 -0
  464. package/lib/module/components/tabs/index.js +3 -4
  465. package/lib/module/components/tabs/index.js.map +1 -1
  466. package/lib/module/components/tabs/screen/TabsScreen.android.js +138 -0
  467. package/lib/module/components/tabs/screen/TabsScreen.android.js.map +1 -0
  468. package/lib/module/components/tabs/screen/TabsScreen.android.types.js +2 -0
  469. package/lib/module/components/tabs/screen/TabsScreen.android.types.js.map +1 -0
  470. package/lib/module/components/tabs/screen/TabsScreen.d.js +2 -0
  471. package/lib/module/components/tabs/screen/TabsScreen.d.js.map +1 -0
  472. package/lib/module/components/tabs/screen/TabsScreen.ios.js +160 -0
  473. package/lib/module/components/tabs/screen/TabsScreen.ios.js.map +1 -0
  474. package/lib/module/components/tabs/screen/TabsScreen.ios.types.js +2 -0
  475. package/lib/module/components/tabs/screen/TabsScreen.ios.types.js.map +1 -0
  476. package/lib/module/components/tabs/screen/TabsScreen.types.js.map +1 -0
  477. package/lib/module/components/tabs/screen/TabsScreen.web.js.map +1 -0
  478. package/lib/module/components/tabs/screen/index.js +2 -0
  479. package/lib/module/components/tabs/screen/index.js.map +1 -0
  480. package/lib/module/components/tabs/screen/useTabsScreen.js +47 -0
  481. package/lib/module/components/tabs/screen/useTabsScreen.js.map +1 -0
  482. package/lib/module/experimental/index.js +5 -6
  483. package/lib/module/experimental/index.js.map +1 -1
  484. package/lib/module/fabric/ModalScreenNativeComponent.js.map +1 -1
  485. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
  486. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  487. package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
  488. package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
  489. package/lib/module/fabric/gamma/ScrollViewMarkerNativeComponent.js +5 -0
  490. package/lib/module/fabric/gamma/ScrollViewMarkerNativeComponent.js.map +1 -0
  491. package/lib/module/fabric/gamma/{SplitViewHostNativeComponent.js → split/SplitHostNativeComponent.js} +2 -2
  492. package/lib/module/fabric/gamma/split/SplitHostNativeComponent.js.map +1 -0
  493. package/lib/module/fabric/gamma/{SplitViewScreenNativeComponent.js → split/SplitScreenNativeComponent.js} +2 -2
  494. package/lib/module/fabric/gamma/split/SplitScreenNativeComponent.js.map +1 -0
  495. package/lib/module/fabric/gamma/stack/StackHeaderConfigAndroidNativeComponent.js +8 -0
  496. package/lib/module/fabric/gamma/stack/StackHeaderConfigAndroidNativeComponent.js.map +1 -0
  497. package/lib/module/fabric/gamma/stack/StackHeaderConfigIOSNativeComponent.js +8 -0
  498. package/lib/module/fabric/gamma/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -0
  499. package/lib/module/fabric/gamma/stack/StackHeaderSubviewAndroidNativeComponent.js +8 -0
  500. package/lib/module/fabric/gamma/stack/StackHeaderSubviewAndroidNativeComponent.js.map +1 -0
  501. package/lib/module/fabric/gamma/stack/StackScreenNativeComponent.js +3 -1
  502. package/lib/module/fabric/gamma/stack/StackScreenNativeComponent.js.map +1 -1
  503. package/lib/module/fabric/safe-area/SafeAreaViewNativeComponent.js.map +1 -1
  504. package/lib/module/fabric/tabs/TabsBottomAccessoryNativeComponent.js +2 -1
  505. package/lib/module/fabric/tabs/TabsBottomAccessoryNativeComponent.js.map +1 -1
  506. package/lib/module/fabric/tabs/TabsHostAndroidNativeComponent.js +17 -0
  507. package/lib/module/fabric/tabs/TabsHostAndroidNativeComponent.js.map +1 -0
  508. package/lib/module/fabric/tabs/TabsHostIOSNativeComponent.js +17 -0
  509. package/lib/module/fabric/tabs/TabsHostIOSNativeComponent.js.map +1 -0
  510. package/lib/module/fabric/tabs/TabsScreenAndroidNativeComponent.js +18 -0
  511. package/lib/module/fabric/tabs/TabsScreenAndroidNativeComponent.js.map +1 -0
  512. package/lib/module/fabric/tabs/TabsScreenIOSNativeComponent.js +20 -0
  513. package/lib/module/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -0
  514. package/lib/module/flags.js +71 -12
  515. package/lib/module/flags.js.map +1 -1
  516. package/lib/module/index.js +5 -2
  517. package/lib/module/index.js.map +1 -1
  518. package/lib/module/private/hooks/useRenderDebugInfo.js +2 -1
  519. package/lib/module/private/hooks/useRenderDebugInfo.js.map +1 -1
  520. package/lib/module/private/index.js +1 -1
  521. package/lib/module/private/index.js.map +1 -1
  522. package/lib/module/private/logging.js +26 -8
  523. package/lib/module/private/logging.js.map +1 -1
  524. package/lib/typescript/components/DebugContainer.d.ts +1 -1
  525. package/lib/typescript/components/DebugContainer.d.ts.map +1 -1
  526. package/lib/typescript/components/FullWindowOverlay.d.ts +1 -1
  527. package/lib/typescript/components/FullWindowOverlay.d.ts.map +1 -1
  528. package/lib/typescript/components/ScreenFooter.d.ts +1 -1
  529. package/lib/typescript/components/ScreenFooter.d.ts.map +1 -1
  530. package/lib/typescript/components/ScreenStack.d.ts.map +1 -1
  531. package/lib/typescript/components/ScreenStackHeaderConfig.d.ts.map +1 -1
  532. package/lib/typescript/components/ScreenStackHeaderConfig.web.d.ts +1 -1
  533. package/lib/typescript/components/ScreenStackHeaderConfig.web.d.ts.map +1 -1
  534. package/lib/typescript/components/ScreenStackItem.d.ts +2 -2
  535. package/lib/typescript/components/ScreenStackItem.d.ts.map +1 -1
  536. package/lib/typescript/components/SearchBar.d.ts.map +1 -1
  537. package/lib/typescript/components/contexts/TopInsetApplicationContext.d.ts +8 -0
  538. package/lib/typescript/components/contexts/TopInsetApplicationContext.d.ts.map +1 -0
  539. package/lib/typescript/components/gamma/scroll-view-marker/ScrollViewMarker.d.ts +4 -0
  540. package/lib/typescript/components/gamma/scroll-view-marker/ScrollViewMarker.d.ts.map +1 -0
  541. package/lib/typescript/components/gamma/scroll-view-marker/ScrollViewMarker.types.d.ts +39 -0
  542. package/lib/typescript/components/gamma/scroll-view-marker/ScrollViewMarker.types.d.ts.map +1 -0
  543. package/lib/typescript/components/gamma/scroll-view-marker/index.d.ts +3 -0
  544. package/lib/typescript/components/gamma/scroll-view-marker/index.d.ts.map +1 -0
  545. package/lib/typescript/components/gamma/split/SplitHost.types.d.ts +30 -29
  546. package/lib/typescript/components/gamma/split/SplitHost.types.d.ts.map +1 -1
  547. package/lib/typescript/components/gamma/split/SplitScreen.types.d.ts +5 -5
  548. package/lib/typescript/components/gamma/split/SplitScreen.types.d.ts.map +1 -1
  549. package/lib/typescript/components/gamma/split/index.d.ts +4 -4
  550. package/lib/typescript/components/gamma/split/index.d.ts.map +1 -1
  551. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.android.d.ts +8 -0
  552. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.android.d.ts.map +1 -0
  553. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.android.types.d.ts +208 -0
  554. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.android.types.d.ts.map +1 -0
  555. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.ios.d.ts +8 -0
  556. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.ios.d.ts.map +1 -0
  557. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.ios.types.d.ts +3 -0
  558. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.ios.types.d.ts.map +1 -0
  559. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.types.d.ts +50 -0
  560. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.types.d.ts.map +1 -0
  561. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.web.d.ts +4 -0
  562. package/lib/typescript/components/gamma/stack/header/StackHeaderConfig.web.d.ts.map +1 -0
  563. package/lib/typescript/components/gamma/stack/header/android/StackHeaderSubview.android.d.ts +8 -0
  564. package/lib/typescript/components/gamma/stack/header/android/StackHeaderSubview.android.d.ts.map +1 -0
  565. package/lib/typescript/components/gamma/stack/header/android/StackHeaderSubview.android.types.d.ts +9 -0
  566. package/lib/typescript/components/gamma/stack/header/android/StackHeaderSubview.android.types.d.ts.map +1 -0
  567. package/lib/typescript/components/gamma/stack/header/index.d.ts +5 -0
  568. package/lib/typescript/components/gamma/stack/header/index.d.ts.map +1 -0
  569. package/lib/typescript/components/gamma/stack/host/StackHost.d.ts.map +1 -0
  570. package/lib/typescript/components/gamma/stack/host/StackHost.types.d.ts +8 -0
  571. package/lib/typescript/components/gamma/stack/host/StackHost.types.d.ts.map +1 -0
  572. package/lib/typescript/components/gamma/stack/host/StackHost.web.d.ts.map +1 -0
  573. package/lib/typescript/components/gamma/stack/host/index.d.ts +3 -0
  574. package/lib/typescript/components/gamma/stack/host/index.d.ts.map +1 -0
  575. package/lib/typescript/components/gamma/stack/index.d.ts +9 -6
  576. package/lib/typescript/components/gamma/stack/index.d.ts.map +1 -1
  577. package/lib/typescript/components/gamma/stack/screen/StackScreen.d.ts.map +1 -0
  578. package/lib/typescript/components/gamma/stack/screen/StackScreen.types.d.ts +22 -0
  579. package/lib/typescript/components/gamma/stack/screen/StackScreen.types.d.ts.map +1 -0
  580. package/lib/typescript/components/gamma/stack/screen/StackScreen.web.d.ts.map +1 -0
  581. package/lib/typescript/components/gamma/stack/screen/index.d.ts +3 -0
  582. package/lib/typescript/components/gamma/stack/screen/index.d.ts.map +1 -0
  583. package/lib/typescript/components/helpers/PlatformUtils.d.ts +2 -0
  584. package/lib/typescript/components/helpers/PlatformUtils.d.ts.map +1 -0
  585. package/lib/typescript/components/helpers/prepareHeaderBarButtonItems.d.ts +81 -81
  586. package/lib/typescript/components/helpers/prepareHeaderBarButtonItems.d.ts.map +1 -1
  587. package/lib/typescript/components/safe-area/SafeAreaView.d.ts +1 -2
  588. package/lib/typescript/components/safe-area/SafeAreaView.d.ts.map +1 -1
  589. package/lib/typescript/components/safe-area/SafeAreaView.types.d.ts +2 -2
  590. package/lib/typescript/components/safe-area/SafeAreaView.types.d.ts.map +1 -1
  591. package/lib/typescript/components/safe-area/SafeAreaView.web.d.ts +1 -1
  592. package/lib/typescript/components/safe-area/SafeAreaView.web.d.ts.map +1 -1
  593. package/lib/typescript/components/safe-area/index.d.ts +3 -0
  594. package/lib/typescript/components/safe-area/index.d.ts.map +1 -0
  595. package/lib/typescript/components/shared/types.d.ts +4 -0
  596. package/lib/typescript/components/shared/types.d.ts.map +1 -1
  597. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessory.d.ts +7 -0
  598. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessory.d.ts.map +1 -0
  599. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessory.types.d.ts +9 -0
  600. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessory.types.d.ts.map +1 -0
  601. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessoryContent.d.ts +7 -0
  602. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessoryContent.d.ts.map +1 -0
  603. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessoryContent.types.d.ts +6 -0
  604. package/lib/typescript/components/tabs/bottom-accessory/TabsBottomAccessoryContent.types.d.ts.map +1 -0
  605. package/lib/typescript/components/tabs/bottom-accessory/index.d.ts +5 -0
  606. package/lib/typescript/components/tabs/bottom-accessory/index.d.ts.map +1 -0
  607. package/lib/typescript/components/tabs/host/TabsHost.android.d.ts +8 -0
  608. package/lib/typescript/components/tabs/host/TabsHost.android.d.ts.map +1 -0
  609. package/lib/typescript/components/tabs/host/TabsHost.android.types.d.ts +19 -0
  610. package/lib/typescript/components/tabs/host/TabsHost.android.types.d.ts.map +1 -0
  611. package/lib/typescript/components/tabs/{TabsHost.d.ts → host/TabsHost.ios.d.ts} +1 -1
  612. package/lib/typescript/components/tabs/host/TabsHost.ios.d.ts.map +1 -0
  613. package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts +127 -0
  614. package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts.map +1 -0
  615. package/lib/typescript/components/tabs/host/TabsHost.types.d.ts +244 -0
  616. package/lib/typescript/components/tabs/host/TabsHost.types.d.ts.map +1 -0
  617. package/lib/typescript/components/tabs/host/TabsHost.web.d.ts.map +1 -0
  618. package/lib/typescript/components/tabs/host/index.d.ts +5 -0
  619. package/lib/typescript/components/tabs/host/index.d.ts.map +1 -0
  620. package/lib/typescript/components/tabs/host/useTabsHost.d.ts +15 -0
  621. package/lib/typescript/components/tabs/host/useTabsHost.d.ts.map +1 -0
  622. package/lib/typescript/components/tabs/index.d.ts +6 -7
  623. package/lib/typescript/components/tabs/index.d.ts.map +1 -1
  624. package/lib/typescript/components/tabs/screen/TabsScreen.android.d.ts +8 -0
  625. package/lib/typescript/components/tabs/screen/TabsScreen.android.d.ts.map +1 -0
  626. package/lib/typescript/components/tabs/screen/TabsScreen.android.types.d.ts +182 -0
  627. package/lib/typescript/components/tabs/screen/TabsScreen.android.types.d.ts.map +1 -0
  628. package/lib/typescript/components/tabs/{TabsScreen.d.ts → screen/TabsScreen.ios.d.ts} +1 -1
  629. package/lib/typescript/components/tabs/screen/TabsScreen.ios.d.ts.map +1 -0
  630. package/lib/typescript/components/tabs/screen/TabsScreen.ios.types.d.ts +292 -0
  631. package/lib/typescript/components/tabs/screen/TabsScreen.ios.types.d.ts.map +1 -0
  632. package/lib/typescript/components/tabs/screen/TabsScreen.types.d.ts +174 -0
  633. package/lib/typescript/components/tabs/screen/TabsScreen.types.d.ts.map +1 -0
  634. package/lib/typescript/components/tabs/screen/TabsScreen.web.d.ts.map +1 -0
  635. package/lib/typescript/components/tabs/screen/index.d.ts +5 -0
  636. package/lib/typescript/components/tabs/screen/index.d.ts.map +1 -0
  637. package/lib/typescript/components/tabs/screen/useTabsScreen.d.ts +25 -0
  638. package/lib/typescript/components/tabs/screen/useTabsScreen.d.ts.map +1 -0
  639. package/lib/typescript/experimental/index.d.ts +4 -4
  640. package/lib/typescript/experimental/index.d.ts.map +1 -1
  641. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts +32 -27
  642. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts.map +1 -1
  643. package/lib/typescript/fabric/ScreenNativeComponent.d.ts +27 -27
  644. package/lib/typescript/fabric/ScreenNativeComponent.d.ts.map +1 -1
  645. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +32 -30
  646. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -1
  647. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +1 -1
  648. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -1
  649. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +4 -2
  650. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts.map +1 -1
  651. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +18 -18
  652. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts.map +1 -1
  653. package/lib/typescript/fabric/gamma/ScrollViewMarkerNativeComponent.d.ts +11 -0
  654. package/lib/typescript/fabric/gamma/ScrollViewMarkerNativeComponent.d.ts.map +1 -0
  655. package/lib/typescript/fabric/gamma/{SplitViewHostNativeComponent.d.ts → split/SplitHostNativeComponent.d.ts} +6 -6
  656. package/lib/typescript/fabric/gamma/split/SplitHostNativeComponent.d.ts.map +1 -0
  657. package/lib/typescript/fabric/gamma/split/SplitScreenNativeComponent.d.ts +13 -0
  658. package/lib/typescript/fabric/gamma/split/SplitScreenNativeComponent.d.ts.map +1 -0
  659. package/lib/typescript/fabric/gamma/stack/StackHeaderConfigAndroidNativeComponent.d.ts +20 -0
  660. package/lib/typescript/fabric/gamma/stack/StackHeaderConfigAndroidNativeComponent.d.ts.map +1 -0
  661. package/lib/typescript/fabric/gamma/stack/StackHeaderConfigIOSNativeComponent.d.ts +10 -0
  662. package/lib/typescript/fabric/gamma/stack/StackHeaderConfigIOSNativeComponent.d.ts.map +1 -0
  663. package/lib/typescript/fabric/gamma/stack/StackHeaderSubviewAndroidNativeComponent.d.ts +10 -0
  664. package/lib/typescript/fabric/gamma/stack/StackHeaderSubviewAndroidNativeComponent.d.ts.map +1 -0
  665. package/lib/typescript/fabric/gamma/stack/StackScreenNativeComponent.d.ts +6 -6
  666. package/lib/typescript/fabric/gamma/stack/StackScreenNativeComponent.d.ts.map +1 -1
  667. package/lib/typescript/fabric/safe-area/SafeAreaViewNativeComponent.d.ts +1 -1
  668. package/lib/typescript/fabric/safe-area/SafeAreaViewNativeComponent.d.ts.map +1 -1
  669. package/lib/typescript/fabric/tabs/TabsBottomAccessoryNativeComponent.d.ts +1 -1
  670. package/lib/typescript/fabric/tabs/TabsBottomAccessoryNativeComponent.d.ts.map +1 -1
  671. package/lib/typescript/fabric/tabs/TabsHostAndroidNativeComponent.d.ts +39 -0
  672. package/lib/typescript/fabric/tabs/TabsHostAndroidNativeComponent.d.ts.map +1 -0
  673. package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts +50 -0
  674. package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts.map +1 -0
  675. package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts +51 -0
  676. package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts.map +1 -0
  677. package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts +68 -0
  678. package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts.map +1 -0
  679. package/lib/typescript/flags.d.ts +31 -2
  680. package/lib/typescript/flags.d.ts.map +1 -1
  681. package/lib/typescript/index.d.ts +3 -2
  682. package/lib/typescript/index.d.ts.map +1 -1
  683. package/lib/typescript/private/hooks/useRenderDebugInfo.d.ts.map +1 -1
  684. package/lib/typescript/private/index.d.ts +1 -1
  685. package/lib/typescript/private/index.d.ts.map +1 -1
  686. package/lib/typescript/private/logging.d.ts +6 -2
  687. package/lib/typescript/private/logging.d.ts.map +1 -1
  688. package/lib/typescript/types.d.ts +209 -188
  689. package/lib/typescript/types.d.ts.map +1 -1
  690. package/package.json +21 -21
  691. package/react-native.config.js +4 -1
  692. package/src/components/DebugContainer.tsx +1 -1
  693. package/src/components/FullWindowOverlay.tsx +1 -1
  694. package/src/components/ScreenFooter.tsx +1 -1
  695. package/src/components/ScreenStack.tsx +5 -0
  696. package/src/components/ScreenStackHeaderConfig.tsx +8 -0
  697. package/src/components/ScreenStackHeaderConfig.web.tsx +1 -1
  698. package/src/components/ScreenStackItem.tsx +38 -26
  699. package/src/components/SearchBar.tsx +3 -1
  700. package/src/components/contexts/TopInsetApplicationContext.ts +27 -0
  701. package/src/components/gamma/scroll-view-marker/ScrollViewMarker.tsx +17 -0
  702. package/src/components/gamma/scroll-view-marker/ScrollViewMarker.types.ts +42 -0
  703. package/src/components/gamma/scroll-view-marker/index.ts +3 -0
  704. package/src/components/gamma/split/SplitHost.tsx +9 -9
  705. package/src/components/gamma/split/SplitHost.types.ts +36 -40
  706. package/src/components/gamma/split/SplitScreen.tsx +5 -5
  707. package/src/components/gamma/split/SplitScreen.types.ts +13 -5
  708. package/src/components/gamma/split/index.ts +19 -5
  709. package/src/components/gamma/stack/header/StackHeaderConfig.android.tsx +166 -0
  710. package/src/components/gamma/stack/header/StackHeaderConfig.android.types.ts +213 -0
  711. package/src/components/gamma/stack/header/StackHeaderConfig.d.ts +17 -0
  712. package/src/components/gamma/stack/header/StackHeaderConfig.ios.tsx +18 -0
  713. package/src/components/gamma/stack/header/StackHeaderConfig.ios.types.ts +2 -0
  714. package/src/components/gamma/stack/header/StackHeaderConfig.types.ts +51 -0
  715. package/src/components/gamma/stack/header/StackHeaderConfig.web.tsx +5 -0
  716. package/src/components/gamma/stack/header/android/StackHeaderSubview.android.tsx +33 -0
  717. package/src/components/gamma/stack/header/android/StackHeaderSubview.android.types.ts +16 -0
  718. package/src/components/gamma/stack/header/index.ts +6 -0
  719. package/src/components/gamma/stack/{StackHost.tsx → host/StackHost.tsx} +1 -1
  720. package/src/components/gamma/stack/host/StackHost.types.ts +13 -0
  721. package/src/components/gamma/stack/host/index.ts +3 -0
  722. package/src/components/gamma/stack/index.ts +28 -7
  723. package/src/components/gamma/stack/{StackScreen.tsx → screen/StackScreen.tsx} +2 -2
  724. package/src/components/gamma/stack/{StackScreen.types.ts → screen/StackScreen.types.ts} +9 -9
  725. package/src/components/gamma/stack/screen/index.ts +3 -0
  726. package/src/components/helpers/PlatformUtils.ts +4 -0
  727. package/src/components/helpers/prepareHeaderBarButtonItems.ts +4 -2
  728. package/src/components/safe-area/SafeAreaView.tsx +1 -3
  729. package/src/components/safe-area/SafeAreaView.types.ts +2 -2
  730. package/src/components/safe-area/SafeAreaView.web.tsx +1 -1
  731. package/src/components/safe-area/index.ts +3 -0
  732. package/src/components/shared/types.ts +37 -0
  733. package/src/components/tabs/{TabsAccessory.tsx → bottom-accessory/TabsBottomAccessory.tsx} +3 -3
  734. package/src/components/tabs/bottom-accessory/TabsBottomAccessory.types.ts +15 -0
  735. package/src/components/tabs/bottom-accessory/TabsBottomAccessoryContent.tsx +19 -0
  736. package/src/components/tabs/bottom-accessory/TabsBottomAccessoryContent.types.ts +6 -0
  737. package/src/components/tabs/bottom-accessory/index.ts +5 -0
  738. package/src/components/tabs/host/TabsHost.android.tsx +65 -0
  739. package/src/components/tabs/host/TabsHost.android.types.ts +18 -0
  740. package/src/components/tabs/host/TabsHost.d.ts +15 -0
  741. package/src/components/tabs/host/TabsHost.ios.tsx +94 -0
  742. package/src/components/tabs/host/TabsHost.ios.types.ts +139 -0
  743. package/src/components/tabs/host/TabsHost.types.ts +274 -0
  744. package/src/components/tabs/host/index.ts +6 -0
  745. package/src/components/tabs/host/useTabsHost.ts +49 -0
  746. package/src/components/tabs/index.ts +43 -8
  747. package/src/components/tabs/screen/TabsScreen.android.tsx +198 -0
  748. package/src/components/tabs/screen/TabsScreen.android.types.ts +189 -0
  749. package/src/components/tabs/screen/TabsScreen.d.ts +15 -0
  750. package/src/components/tabs/screen/TabsScreen.ios.tsx +235 -0
  751. package/src/components/tabs/screen/TabsScreen.ios.types.ts +312 -0
  752. package/src/components/tabs/screen/TabsScreen.types.ts +202 -0
  753. package/src/components/tabs/screen/index.ts +6 -0
  754. package/src/components/tabs/screen/useTabsScreen.ts +97 -0
  755. package/src/experimental/index.ts +5 -8
  756. package/src/fabric/ModalScreenNativeComponent.ts +41 -27
  757. package/src/fabric/ScreenNativeComponent.ts +35 -27
  758. package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +36 -30
  759. package/src/fabric/ScreenStackHeaderSubviewNativeComponent.ts +1 -1
  760. package/src/fabric/ScreenStackNativeComponent.ts +7 -2
  761. package/src/fabric/SearchBarNativeComponent.ts +24 -18
  762. package/src/fabric/gamma/ScrollViewMarkerNativeComponent.ts +15 -0
  763. package/src/fabric/gamma/{SplitViewHostNativeComponent.ts → split/SplitHostNativeComponent.ts} +8 -6
  764. package/src/fabric/gamma/split/SplitScreenNativeComponent.ts +24 -0
  765. package/src/fabric/gamma/stack/StackHeaderConfigAndroidNativeComponent.ts +39 -0
  766. package/src/fabric/gamma/stack/StackHeaderConfigIOSNativeComponent.ts +18 -0
  767. package/src/fabric/gamma/stack/StackHeaderSubviewAndroidNativeComponent.ts +27 -0
  768. package/src/fabric/gamma/stack/StackScreenNativeComponent.ts +11 -7
  769. package/src/fabric/safe-area/SafeAreaViewNativeComponent.ts +8 -6
  770. package/src/fabric/tabs/TabsBottomAccessoryNativeComponent.ts +4 -1
  771. package/src/fabric/tabs/TabsHostAndroidNativeComponent.ts +69 -0
  772. package/src/fabric/tabs/TabsHostIOSNativeComponent.ts +91 -0
  773. package/src/fabric/tabs/TabsScreenAndroidNativeComponent.ts +112 -0
  774. package/src/fabric/tabs/TabsScreenIOSNativeComponent.ts +171 -0
  775. package/src/flags.ts +94 -14
  776. package/src/index.tsx +6 -2
  777. package/src/private/hooks/useRenderDebugInfo.tsx +2 -1
  778. package/src/private/index.ts +1 -4
  779. package/src/private/logging.ts +27 -12
  780. package/src/types.tsx +262 -231
  781. package/android/src/main/java/com/swmansion/rnscreens/CustomAppBarLayout.kt +0 -25
  782. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigShadowNode.kt +0 -28
  783. package/android/src/main/java/com/swmansion/rnscreens/ScreensShadowNode.kt +0 -24
  784. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHost.kt +0 -566
  785. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHostAppearanceCoordinator.kt +0 -46
  786. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHostEventEmitter.kt +0 -26
  787. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHostViewManager.kt +0 -222
  788. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsScreenViewManager.kt +0 -246
  789. package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabsHostNativeFocusChangeEvent.kt +0 -47
  790. package/android/src/main/java/com/swmansion/rnscreens/safearea/paper/SafeAreaViewLocalData.kt +0 -10
  791. package/android/src/main/java/com/swmansion/rnscreens/safearea/paper/SafeAreaViewShadowNode.kt +0 -124
  792. package/android/src/main/java/com/swmansion/rnscreens/utils/PaddingBundle.kt +0 -9
  793. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSafeAreaViewManagerDelegate.java +0 -37
  794. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSafeAreaViewManagerInterface.java +0 -20
  795. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerDelegate.java +0 -27
  796. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerInterface.java +0 -17
  797. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerDelegate.java +0 -27
  798. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerInterface.java +0 -17
  799. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerDelegate.java +0 -27
  800. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerInterface.java +0 -17
  801. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +0 -156
  802. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +0 -60
  803. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +0 -128
  804. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +0 -50
  805. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerDelegate.java +0 -39
  806. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerInterface.java +0 -20
  807. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerDelegate.java +0 -33
  808. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerInterface.java +0 -17
  809. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerDelegate.java +0 -107
  810. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerInterface.java +0 -40
  811. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSStackHostManagerDelegate.java +0 -27
  812. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSStackHostManagerInterface.java +0 -17
  813. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSStackScreenManagerDelegate.java +0 -39
  814. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSStackScreenManagerInterface.java +0 -20
  815. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSTabsHostManagerDelegate.java +0 -91
  816. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSTabsHostManagerInterface.java +0 -37
  817. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSTabsScreenManagerDelegate.java +0 -114
  818. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSTabsScreenManagerInterface.java +0 -46
  819. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +0 -56
  820. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderSubviewViewGroup.kt +0 -19
  821. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +0 -19
  822. package/android/src/paper/java/com/swmansion/rnscreens/NativeProxy.kt +0 -23
  823. package/android/src/paper/java/com/swmansion/rnscreens/NativeScreensModuleSpec.java +0 -35
  824. package/common/cpp/react/renderer/components/rnscreens/RNSSplitViewScreenComponentDescriptor.h +0 -40
  825. package/common/cpp/react/renderer/components/rnscreens/RNSSplitViewScreenShadowNode.cpp +0 -13
  826. package/ios/RNSInvalidatedComponentsRegistry.h +0 -15
  827. package/ios/RNSInvalidatedComponentsRegistry.mm +0 -34
  828. package/ios/RNSViewControllerInvalidating.h +0 -15
  829. package/ios/RNSViewControllerInvalidator.h +0 -17
  830. package/ios/RNSViewControllerInvalidator.mm +0 -23
  831. package/ios/gamma/split-view/RNSSplitViewAppearanceApplicator.swift +0 -194
  832. package/ios/gamma/split-view/RNSSplitViewAppearanceCoordinator.swift +0 -26
  833. package/ios/gamma/split-view/RNSSplitViewAppearanceUpdateFlags.swift +0 -11
  834. package/ios/gamma/split-view/RNSSplitViewHostComponentViewManager.mm +0 -7
  835. package/ios/gamma/split-view/RNSSplitViewScreenComponentViewManager.mm +0 -7
  836. package/ios/gamma/split-view/RNSSplitViewScreenController.swift +0 -133
  837. package/ios/gamma/stack/host/RNSStackController.swift +0 -65
  838. package/ios/gamma/stack/screen/RNSStackScreenController.swift +0 -64
  839. package/ios/safe-area/paper/RNSSafeAreaViewEdges.h +0 -16
  840. package/ios/safe-area/paper/RNSSafeAreaViewEdges.mm +0 -37
  841. package/ios/safe-area/paper/RNSSafeAreaViewLocalData.h +0 -22
  842. package/ios/safe-area/paper/RNSSafeAreaViewLocalData.mm +0 -20
  843. package/ios/safe-area/paper/RNSSafeAreaViewManager.h +0 -16
  844. package/ios/safe-area/paper/RNSSafeAreaViewManager.mm +0 -28
  845. package/ios/safe-area/paper/RNSSafeAreaViewShadowView.h +0 -16
  846. package/ios/safe-area/paper/RNSSafeAreaViewShadowView.mm +0 -152
  847. package/ios/tabs/host/RNSTabBarControllerDelegate.h +0 -11
  848. package/ios/tabs/host/RNSTabBarControllerDelegate.mm +0 -87
  849. package/lib/commonjs/components/gamma/stack/StackHost.js.map +0 -1
  850. package/lib/commonjs/components/gamma/stack/StackHost.types.js.map +0 -1
  851. package/lib/commonjs/components/gamma/stack/StackHost.web.js.map +0 -1
  852. package/lib/commonjs/components/gamma/stack/StackScreen.js.map +0 -1
  853. package/lib/commonjs/components/gamma/stack/StackScreen.types.js.map +0 -1
  854. package/lib/commonjs/components/gamma/stack/StackScreen.web.js.map +0 -1
  855. package/lib/commonjs/components/tabs/TabsAccessory.js.map +0 -1
  856. package/lib/commonjs/components/tabs/TabsAccessory.types.js.map +0 -1
  857. package/lib/commonjs/components/tabs/TabsAccessoryContent.js.map +0 -1
  858. package/lib/commonjs/components/tabs/TabsAccessoryContent.types.js.map +0 -1
  859. package/lib/commonjs/components/tabs/TabsHost.js.map +0 -1
  860. package/lib/commonjs/components/tabs/TabsHost.types.js.map +0 -1
  861. package/lib/commonjs/components/tabs/TabsHost.web.js.map +0 -1
  862. package/lib/commonjs/components/tabs/TabsScreen.js +0 -257
  863. package/lib/commonjs/components/tabs/TabsScreen.js.map +0 -1
  864. package/lib/commonjs/components/tabs/TabsScreen.types.js.map +0 -1
  865. package/lib/commonjs/components/tabs/TabsScreen.web.js.map +0 -1
  866. package/lib/commonjs/experimental/types.js +0 -61
  867. package/lib/commonjs/experimental/types.js.map +0 -1
  868. package/lib/commonjs/fabric/gamma/SplitViewHostNativeComponent.js.map +0 -1
  869. package/lib/commonjs/fabric/gamma/SplitViewScreenNativeComponent.js.map +0 -1
  870. package/lib/commonjs/fabric/tabs/TabsHostNativeComponent.js +0 -18
  871. package/lib/commonjs/fabric/tabs/TabsHostNativeComponent.js.map +0 -1
  872. package/lib/commonjs/fabric/tabs/TabsScreenNativeComponent.js.map +0 -1
  873. package/lib/module/components/gamma/stack/StackHost.js.map +0 -1
  874. package/lib/module/components/gamma/stack/StackHost.types.js.map +0 -1
  875. package/lib/module/components/gamma/stack/StackHost.web.js.map +0 -1
  876. package/lib/module/components/gamma/stack/StackScreen.js.map +0 -1
  877. package/lib/module/components/gamma/stack/StackScreen.types.js.map +0 -1
  878. package/lib/module/components/gamma/stack/StackScreen.web.js.map +0 -1
  879. package/lib/module/components/tabs/TabsAccessory.js.map +0 -1
  880. package/lib/module/components/tabs/TabsAccessory.types.js +0 -2
  881. package/lib/module/components/tabs/TabsAccessory.types.js.map +0 -1
  882. package/lib/module/components/tabs/TabsAccessoryContent.js.map +0 -1
  883. package/lib/module/components/tabs/TabsAccessoryContent.types.js +0 -2
  884. package/lib/module/components/tabs/TabsAccessoryContent.types.js.map +0 -1
  885. package/lib/module/components/tabs/TabsHost.js +0 -64
  886. package/lib/module/components/tabs/TabsHost.js.map +0 -1
  887. package/lib/module/components/tabs/TabsHost.types.js.map +0 -1
  888. package/lib/module/components/tabs/TabsHost.web.js.map +0 -1
  889. package/lib/module/components/tabs/TabsScreen.js +0 -251
  890. package/lib/module/components/tabs/TabsScreen.js.map +0 -1
  891. package/lib/module/components/tabs/TabsScreen.types.js.map +0 -1
  892. package/lib/module/components/tabs/TabsScreen.web.js.map +0 -1
  893. package/lib/module/experimental/types.js +0 -11
  894. package/lib/module/experimental/types.js.map +0 -1
  895. package/lib/module/fabric/gamma/SplitViewHostNativeComponent.js.map +0 -1
  896. package/lib/module/fabric/gamma/SplitViewScreenNativeComponent.js.map +0 -1
  897. package/lib/module/fabric/tabs/TabsHostNativeComponent.js +0 -15
  898. package/lib/module/fabric/tabs/TabsHostNativeComponent.js.map +0 -1
  899. package/lib/module/fabric/tabs/TabsScreenNativeComponent.js +0 -10
  900. package/lib/module/fabric/tabs/TabsScreenNativeComponent.js.map +0 -1
  901. package/lib/typescript/components/gamma/stack/StackHost.d.ts.map +0 -1
  902. package/lib/typescript/components/gamma/stack/StackHost.types.d.ts +0 -8
  903. package/lib/typescript/components/gamma/stack/StackHost.types.d.ts.map +0 -1
  904. package/lib/typescript/components/gamma/stack/StackHost.web.d.ts.map +0 -1
  905. package/lib/typescript/components/gamma/stack/StackScreen.d.ts.map +0 -1
  906. package/lib/typescript/components/gamma/stack/StackScreen.types.d.ts +0 -22
  907. package/lib/typescript/components/gamma/stack/StackScreen.types.d.ts.map +0 -1
  908. package/lib/typescript/components/gamma/stack/StackScreen.web.d.ts.map +0 -1
  909. package/lib/typescript/components/tabs/TabsAccessory.d.ts +0 -7
  910. package/lib/typescript/components/tabs/TabsAccessory.d.ts.map +0 -1
  911. package/lib/typescript/components/tabs/TabsAccessory.types.d.ts +0 -9
  912. package/lib/typescript/components/tabs/TabsAccessory.types.d.ts.map +0 -1
  913. package/lib/typescript/components/tabs/TabsAccessoryContent.d.ts +0 -7
  914. package/lib/typescript/components/tabs/TabsAccessoryContent.d.ts.map +0 -1
  915. package/lib/typescript/components/tabs/TabsAccessoryContent.types.d.ts +0 -6
  916. package/lib/typescript/components/tabs/TabsAccessoryContent.types.d.ts.map +0 -1
  917. package/lib/typescript/components/tabs/TabsHost.d.ts.map +0 -1
  918. package/lib/typescript/components/tabs/TabsHost.types.d.ts +0 -257
  919. package/lib/typescript/components/tabs/TabsHost.types.d.ts.map +0 -1
  920. package/lib/typescript/components/tabs/TabsHost.web.d.ts.map +0 -1
  921. package/lib/typescript/components/tabs/TabsScreen.d.ts.map +0 -1
  922. package/lib/typescript/components/tabs/TabsScreen.types.d.ts +0 -536
  923. package/lib/typescript/components/tabs/TabsScreen.types.d.ts.map +0 -1
  924. package/lib/typescript/components/tabs/TabsScreen.web.d.ts.map +0 -1
  925. package/lib/typescript/experimental/types.d.ts +0 -10
  926. package/lib/typescript/experimental/types.d.ts.map +0 -1
  927. package/lib/typescript/fabric/gamma/SplitViewHostNativeComponent.d.ts.map +0 -1
  928. package/lib/typescript/fabric/gamma/SplitViewScreenNativeComponent.d.ts +0 -13
  929. package/lib/typescript/fabric/gamma/SplitViewScreenNativeComponent.d.ts.map +0 -1
  930. package/lib/typescript/fabric/tabs/TabsHostNativeComponent.d.ts +0 -34
  931. package/lib/typescript/fabric/tabs/TabsHostNativeComponent.d.ts.map +0 -1
  932. package/lib/typescript/fabric/tabs/TabsScreenNativeComponent.d.ts +0 -82
  933. package/lib/typescript/fabric/tabs/TabsScreenNativeComponent.d.ts.map +0 -1
  934. package/src/components/gamma/stack/StackHost.types.ts +0 -10
  935. package/src/components/tabs/TabsAccessory.types.ts +0 -13
  936. package/src/components/tabs/TabsAccessoryContent.tsx +0 -17
  937. package/src/components/tabs/TabsAccessoryContent.types.ts +0 -6
  938. package/src/components/tabs/TabsHost.tsx +0 -105
  939. package/src/components/tabs/TabsHost.types.ts +0 -297
  940. package/src/components/tabs/TabsScreen.tsx +0 -382
  941. package/src/components/tabs/TabsScreen.types.ts +0 -630
  942. package/src/experimental/types.ts +0 -10
  943. package/src/fabric/gamma/SplitViewScreenNativeComponent.ts +0 -24
  944. package/src/fabric/tabs/TabsHostNativeComponent.ts +0 -75
  945. package/src/fabric/tabs/TabsScreenNativeComponent.ts +0 -175
  946. /package/lib/commonjs/components/gamma/stack/{StackHost.types.js → host/StackHost.types.js} +0 -0
  947. /package/lib/commonjs/components/gamma/stack/{StackHost.web.js → host/StackHost.web.js} +0 -0
  948. /package/lib/commonjs/components/gamma/stack/{StackScreen.types.js → screen/StackScreen.types.js} +0 -0
  949. /package/lib/commonjs/components/gamma/stack/{StackScreen.web.js → screen/StackScreen.web.js} +0 -0
  950. /package/lib/commonjs/components/tabs/{TabsHost.types.js → host/TabsHost.types.js} +0 -0
  951. /package/lib/commonjs/components/tabs/{TabsHost.web.js → host/TabsHost.web.js} +0 -0
  952. /package/lib/commonjs/components/tabs/{TabsScreen.types.js → screen/TabsScreen.types.js} +0 -0
  953. /package/lib/commonjs/components/tabs/{TabsScreen.web.js → screen/TabsScreen.web.js} +0 -0
  954. /package/lib/module/components/gamma/stack/{StackHost.types.js → host/StackHost.types.js} +0 -0
  955. /package/lib/module/components/gamma/stack/{StackHost.web.js → host/StackHost.web.js} +0 -0
  956. /package/lib/module/components/gamma/stack/{StackScreen.types.js → screen/StackScreen.types.js} +0 -0
  957. /package/lib/module/components/gamma/stack/{StackScreen.web.js → screen/StackScreen.web.js} +0 -0
  958. /package/lib/module/components/tabs/{TabsHost.types.js → host/TabsHost.types.js} +0 -0
  959. /package/lib/module/components/tabs/{TabsHost.web.js → host/TabsHost.web.js} +0 -0
  960. /package/lib/module/components/tabs/{TabsScreen.types.js → screen/TabsScreen.types.js} +0 -0
  961. /package/lib/module/components/tabs/{TabsScreen.web.js → screen/TabsScreen.web.js} +0 -0
  962. /package/lib/typescript/components/gamma/stack/{StackHost.d.ts → host/StackHost.d.ts} +0 -0
  963. /package/lib/typescript/components/gamma/stack/{StackHost.web.d.ts → host/StackHost.web.d.ts} +0 -0
  964. /package/lib/typescript/components/gamma/stack/{StackScreen.d.ts → screen/StackScreen.d.ts} +0 -0
  965. /package/lib/typescript/components/gamma/stack/{StackScreen.web.d.ts → screen/StackScreen.web.d.ts} +0 -0
  966. /package/lib/typescript/components/tabs/{TabsHost.web.d.ts → host/TabsHost.web.d.ts} +0 -0
  967. /package/lib/typescript/components/tabs/{TabsScreen.web.d.ts → screen/TabsScreen.web.d.ts} +0 -0
  968. /package/src/components/gamma/stack/{StackHost.web.tsx → host/StackHost.web.tsx} +0 -0
  969. /package/src/components/gamma/stack/{StackScreen.web.tsx → screen/StackScreen.web.tsx} +0 -0
  970. /package/src/components/tabs/{TabsHost.web.tsx → host/TabsHost.web.tsx} +0 -0
  971. /package/src/components/tabs/{TabsScreen.web.tsx → screen/TabsScreen.web.tsx} +0 -0
@@ -2,6 +2,7 @@
2
2
 
3
3
  #import <UIKit/UIKit.h>
4
4
  #import "RNSTabBarAppearanceCoordinator.h"
5
+ #import "RNSTabsNavigationState.h"
5
6
  #import "RNSTabsScreenViewController.h"
6
7
 
7
8
  #if !TARGET_OS_TV
@@ -10,6 +11,9 @@
10
11
 
11
12
  NS_ASSUME_NONNULL_BEGIN
12
13
 
14
+ @class RNSTabsHostComponentView;
15
+ @class RNSTabBarController;
16
+
13
17
  @protocol RNSReactTransactionObserving
14
18
 
15
19
  - (void)reactMountingTransactionWillMount;
@@ -19,21 +23,87 @@ NS_ASSUME_NONNULL_BEGIN
19
23
  @end
20
24
 
21
25
  /**
22
- * This controller is responsible for tab management & all other responsibilities coming from the fact of inheritance
23
- * from `UITabBarController`. It is limited only to the child view controllers of type `RNSTabsScreenViewController`,
24
- * however.
26
+ * UITabBarController subclass that backs `<TabsHost>` on iOS.
27
+ *
28
+ * This controller is responsible for tab management & all other responsibilities coming from the
29
+ * fact of inheritance from `UITabBarController`. It is limited only to the child view controllers
30
+ * of type `RNSTabsScreenViewController`, however.
25
31
  *
26
32
  * Updates made by this controller are synchronized by `RNSReactTransactionObserving` protocol,
27
- * i.e. if you made changes through one of signals method, unless you flush them immediately (not needed atm), they will
28
- * be executed only after react finishes the transaction (from within transaction execution block).
33
+ * i.e. if you made changes through one of signals method, unless you flush them immediately, they
34
+ * will be executed only after react finishes the transaction (from within transaction execution
35
+ * block).
36
+ *
37
+ * # Public API
38
+ *
39
+ * Methods and properties under `#pragma mark - Public API` below are the only contract
40
+ * third-party native consumers should rely on:
41
+ * - read the current navigation state via `navigationState`,
42
+ * - request a tab change via `submitSelectionOfTabsScreenWithKey:` (transition is recorded with
43
+ * `RNSTabsActionOriginProgrammaticNative`),
44
+ * - apply pending updates via `flushPendingUpdates`,
45
+ * - observe results via `addNavigationStateObserver:` / `removeNavigationStateObserver:`
46
+ * (see `RNSTabsNavigationStateObserver` in `RNSTabsNavigationState.h`).
47
+ *
48
+ * # Internal API
49
+ *
50
+ * Members under `#pragma mark - Internal API` are host-only (`RNSTabsHostComponentView`)
51
+ * implementation detail and may change without notice. Do not call from third-party code.
29
52
  */
30
- @interface RNSTabBarController : UITabBarController <
31
- RNSReactTransactionObserving
53
+ @interface RNSTabBarController : UITabBarController <RNSReactTransactionObserving
32
54
  #if !TARGET_OS_TV
33
- ,
34
- RNSOrientationProviding
55
+ ,
56
+ RNSOrientationProviding
35
57
  #endif // !TARGET_OS_TV
36
- >
58
+ >
59
+
60
+ #pragma mark - Public API
61
+
62
+ /**
63
+ * Represents current navigation state.
64
+ *
65
+ * After each model update, the container (controller) updates the navigation state. The
66
+ * `provenance` part is incremented monotonically with each state update.
67
+ *
68
+ * The controller manages this state. It MUST NOT be overwritten by any external actor.
69
+ */
70
+ @property (nonatomic, readonly, strong, nullable) RNSTabsNavigationState *navigationState;
71
+
72
+ /**
73
+ * Request a tab change. The transition is recorded with `RNSTabsActionOriginProgrammaticNative`,
74
+ * and is built against the current `navigationState.provenance` so it is never treated as stale.
75
+ *
76
+ * The update is applied on the next `RNSReactTransactionObserving` callback, or call
77
+ * `flushPendingUpdates` to apply it immediately. If you want to execute multiple updates in
78
+ * sequence you must flush the container after each one separately.
79
+ */
80
+ - (void)submitSelectionOfTabsScreenWithKey:(nonnull NSString *)screenKey;
81
+
82
+ /**
83
+ * Apply any pending invalidations and state updates in a single coordinated pass.
84
+ * No-op when nothing is dirty.
85
+ */
86
+ - (void)flushPendingUpdates;
87
+
88
+ /**
89
+ * Register an observer for navigation state events on this container.
90
+ * Observers are held strongly; call `removeNavigationStateObserver:` before observer
91
+ * dealloc, or rely on the host calling `tearDown` on container teardown.
92
+ *
93
+ * Returns NO if the observer is already registered or if called from within an
94
+ * observer callback (modifications during emission are rejected).
95
+ */
96
+ - (BOOL)addNavigationStateObserver:(id<RNSTabsNavigationStateObserver>)observer;
97
+
98
+ /**
99
+ * Unregister a previously registered observer.
100
+ *
101
+ * Returns NO if the observer was not registered or if called from within an
102
+ * observer callback (modifications during emission are rejected).
103
+ */
104
+ - (BOOL)removeNavigationStateObserver:(id<RNSTabsNavigationStateObserver>)observer;
105
+
106
+ #pragma mark - Internal API (host-only; subject to change without notice)
37
107
 
38
108
  - (instancetype)initWithTabsHostComponentView:(nullable RNSTabsHostComponentView *)tabsHostComponentView;
39
109
 
@@ -41,46 +111,100 @@ NS_ASSUME_NONNULL_BEGIN
41
111
  * Get reference to the host component view that owns this tab bar controller.
42
112
  *
43
113
  * Might return null in cases where the controller view hierararchy is not attached to parent.
114
+ * The reference is retained strongly and it is expected to be managed by `TabsHost`.
44
115
  */
45
116
  @property (nonatomic, readonly, nullable) RNSTabsHostComponentView *tabsHostComponentView;
46
117
 
47
118
  /**
48
- * Tab bar appearance coordinator. If you need to update tab bar appearance avoid using this one directly. Send the
49
- * controller a signal, invalidate the tab bar appearance & either wait for the update flush or flush it manually.
119
+ * Tab bar appearance coordinator. If you need to update tab bar appearance avoid using this one
120
+ * directly. Send the controller a signal, invalidate the tab bar appearance & either wait for the
121
+ * update flush or flush it manually.
50
122
  */
51
123
  @property (nonatomic, readonly, strong, nonnull) RNSTabBarAppearanceCoordinator *tabBarAppearanceCoordinator;
52
124
 
125
+ /**
126
+ * If true, the controller will reject any navigation state updates if the provenance of the
127
+ * update is stale.
128
+ *
129
+ * A navigation state update is considered stale if its provenance is older than the provenance
130
+ * of the currently active navigation state.
131
+ *
132
+ * This can happen, e.g. when an update from JS is dispatched, but before it reaches the native
133
+ * side, another update happens on UI thread, e.g. user selects another tab. For such situations,
134
+ * where to-be-applied navigation state update had been dispatched w/o full context of actual
135
+ * navigation state you can toggle this prop.
136
+ *
137
+ * If an update is rejected due to being stale, the controller will notify its observers.
138
+ */
139
+ @property (nonatomic, readwrite) BOOL rejectStaleNavigationStateUpdates;
140
+
141
+ /**
142
+ * Tell the controller that react provided tabs have changed (count / instances) & the child
143
+ * view controllers need to be updated.
144
+ *
145
+ * This also automatically raises `needsUpdateOfChildViewControllers` flag, no need to call it
146
+ * manually.
147
+ */
148
+ - (void)childViewControllersHaveChangedTo:(nonnull NSArray<RNSTabsScreenViewController *> *)childViewControllers;
149
+
150
+ /**
151
+ * Request navigation state update from the controller to the given one.
152
+ *
153
+ * Pass nil to clear any queued update.
154
+ *
155
+ * The update is applied on the next `RNSReactTransactionObserving` callback, or call
156
+ * `flushPendingUpdates` to apply it immediately. If you want to execute multiple updates in
157
+ * sequence you must flush the container after each one separately.
158
+ *
159
+ * Host-only: third-party native consumers should use `submitSelectionOfTabsScreenWithKey:` instead, which
160
+ * forces `RNSTabsActionOriginProgrammaticNative`. This method allows the host to dispatch any
161
+ * origin (e.g. `RNSTabsActionOriginProgrammaticJs` for JS-driven `navStateRequest` updates).
162
+ */
163
+ - (void)setPendingNavigationStateUpdate:(nullable RNSTabsNavigationStateUpdateRequest *)stateUpdate;
164
+
165
+ /**
166
+ * Idempotent teardown. Releases observer references and any retained host references.
167
+ * Called by the host on view lifecycle end.
168
+ */
169
+ - (void)tearDown;
170
+
171
+ #pragma mark Individual flush methods (internal)
172
+
53
173
  /**
54
174
  * Update tab controller state with previously provided children.
55
175
  *
56
- * This method does nothing if the children have not been changed / update has not been requested before.
57
- * The requested update is performed immediately. If you do not need this, consider just raising an appropriate
58
- * invalidation signal & let the controller decide when to flush the updates.
176
+ * This method does nothing if the children have not been changed / update has not been requested
177
+ * before. The requested update is performed immediately. If you do not need this, consider just
178
+ * raising an appropriate invalidation signal & let the controller decide when to flush the
179
+ * updates.
59
180
  */
60
- - (void)updateReactChildrenControllersIfNeeded;
181
+ - (void)updateChildViewControllersIfNeeded;
61
182
 
62
183
  /**
63
184
  * Force update of the tab controller state with previously provided children.
64
185
  *
65
- * The requested update is performed immediately. If you do not need this, consider just raising an appropriate
66
- * invalidation signal & let the controller decide when to flush the updates.
186
+ * The requested update is performed immediately. If you do not need this, consider just raising
187
+ * an appropriate invalidation signal & let the controller decide when to flush the updates.
67
188
  */
68
189
  - (void)updateReactChildrenControllers;
69
190
 
70
191
  /**
71
- * Find out which tab bar controller is currently focused & select it.
192
+ * If any state update operation is pending - perform it.
72
193
  *
73
194
  * This method does nothing if the update has not been previously requested.
74
- * If needed, the requested update is performed immediately. If you do not need this, consider just raising an
75
- * appropriate invalidation signal & let the controller decide when to flush the updates.
195
+ * If needed, the requested update is performed immediately. If you do not need this, consider
196
+ * just raising an appropriate invalidation signal & let the controller decide when to flush the
197
+ * updates.
76
198
  */
77
199
  - (void)updateSelectedViewControllerIfNeeded;
78
200
 
79
201
  /**
80
- * Find out which tab bar controller is currently focused & select it.
202
+ * Update the selected view controller to what's currently requested.
81
203
  *
82
- * The requested update is performed immediately. If you do not need this, consider just raising an appropriate
83
- * invalidation signal & let the controller decide when to flush the updates.
204
+ * To request update use `setPendingNavigationStateUpdate`.
205
+ *
206
+ * The requested update is performed immediately. If you do not need this, consider just raising
207
+ * an appropriate invalidation signal & let the controller decide when to flush the updates.
84
208
  */
85
209
  - (void)updateSelectedViewController;
86
210
 
@@ -88,16 +212,17 @@ NS_ASSUME_NONNULL_BEGIN
88
212
  * Updates the tab bar appearance basing on configuration sources (host view, tab screens).
89
213
  *
90
214
  * This method does nothing if the update has not been previously requested.
91
- * If needed, the requested update is performed immediately. If you do not need this, consider just raising an
92
- * appropriate invalidation signal & let the controller decide when to flush the updates.
215
+ * If needed, the requested update is performed immediately. If you do not need this, consider
216
+ * just raising an appropriate invalidation signal & let the controller decide when to flush the
217
+ * updates.
93
218
  */
94
219
  - (void)updateTabBarAppearanceIfNeeded;
95
220
 
96
221
  /**
97
222
  * Updates the tab bar appearance basing on configuration sources (host view, tab screens).
98
223
  *
99
- * The requested update is performed immediately. If you do not need this, consider just raising an appropriate
100
- * invalidation signal & let the controller decide when to flush the updates.
224
+ * The requested update is performed immediately. If you do not need this, consider just raising
225
+ * an appropriate invalidation signal & let the controller decide when to flush the updates.
101
226
  */
102
227
  - (void)updateTabBarAppearance;
103
228
 
@@ -105,61 +230,77 @@ NS_ASSUME_NONNULL_BEGIN
105
230
  * Updates the interface orientation based on selected tab screen and its children.
106
231
  *
107
232
  * This method does nothing if the update has not been previously requested.
108
- * If needed, the requested update is performed immediately. If you do not need this, consider just raising an
109
- * appropriate invalidation signal & let the controller decide when to flush the updates.
233
+ * If needed, the requested update is performed immediately. If you do not need this, consider
234
+ * just raising an appropriate invalidation signal & let the controller decide when to flush the
235
+ * updates.
110
236
  */
111
237
  - (void)updateOrientationIfNeeded;
112
238
 
113
239
  /**
114
240
  * Updates the interface orientation based on selected tab screen and its children.
115
241
  *
116
- * The requested update is performed immediately. If you do not need this, consider just raising an appropriate
117
- * invalidation signal & let the controller decide when to flush the updates.
242
+ * The requested update is performed immediately. If you do not need this, consider just raising
243
+ * an appropriate invalidation signal & let the controller decide when to flush the updates.
118
244
  */
119
245
  - (void)updateOrientation;
120
246
 
121
- @end
122
-
123
- #pragma mark - Signals
124
-
125
247
  /**
126
- * This extension defines various invalidation signals that you can send to the controller, to notify it that it needs
127
- * to take some action.
248
+ * Updates the layout direction based on property on host view.
249
+ *
250
+ * This method does nothing if the update has not been previously requested.
251
+ * If needed, the requested update is performed immediately. If you do not need this, consider
252
+ * just raising an appropriate invalidation signal & let the controller decide when to flush the
253
+ * updates.
254
+ *
255
+ * This method is necessary only on iOS versions prior to 17.
256
+ * On iOS 17+, use `traitOverrides.layoutDirection` on the controller directly.
128
257
  */
129
- @interface RNSTabBarController ()
258
+ - (void)updateLayoutDirectionBelowIOS17IfNeeded;
130
259
 
131
260
  /**
132
- * Tell the controller that react provided tabs have changed (count / instances) & the child view controllers need to be
133
- * updated.
261
+ * Updates the layout direction based on property on host view.
262
+ *
263
+ * The requested update is performed immediately. If you do not need this, consider just raising
264
+ * an appropriate invalidation signal & let the controller decide when to flush the updates.
134
265
  *
135
- * This also automatically raises `needsReactChildrenUpdate` flag, no need to call it manually.
266
+ * This method is necessary only on iOS versions prior to 17.
267
+ * On iOS 17+, use `traitOverrides.layoutDirection` on the controller directly.
268
+ *
269
+ * This method can only be called when `parentViewController` is not nil.
136
270
  */
137
- - (void)childViewControllersHaveChangedTo:(nonnull NSArray<RNSTabsScreenViewController *> *)childViewControllers;
271
+ - (void)updateLayoutDirectionBelowIOS17;
272
+
273
+ #pragma mark Individual invalidation flags (internal)
138
274
 
139
275
  /**
140
- * Tell the controller that react provided tabs have changed (count / instances) & the child view controllers need to be
141
- * updated.
276
+ * Tell the controller that react provided tabs have changed (count / instances) & the child
277
+ * view controllers need to be updated.
142
278
  *
143
- * Do not raise this signal only when focused state of the tab has changed - use `needsSelectedTabUpdate` instead.
279
+ * Do not raise this signal only when you want to modify selected view controller. Use
280
+ * `setPendingNavigationStateUpdate` instead.
144
281
  */
145
- @property (nonatomic, readwrite) bool needsUpdateOfReactChildrenControllers;
282
+ @property (nonatomic, readwrite) bool needsUpdateOfChildViewControllers;
146
283
 
147
284
  /**
148
- * Tell the controller that react provided tabs have changed (count / instances) & the child view controllers need to be
149
- * updated.
285
+ * Tell the controller that some configuration regarding the tab bar apperance has changed & the
286
+ * appearance requires update.
150
287
  */
151
- @property (nonatomic, readwrite) bool needsUpdateOfSelectedTab;
288
+ @property (nonatomic, readwrite) bool needsUpdateOfTabBarAppearance;
152
289
 
153
290
  /**
154
- * Tell the controller that some configuration regarding the tab bar apperance has changed & the appearance requires
155
- * update.
291
+ * Tell the controller that some configuration regarding interface orientation has changed & it
292
+ * requires update.
156
293
  */
157
- @property (nonatomic, readwrite) bool needsUpdateOfTabBarAppearance;
294
+ @property (nonatomic, readwrite) bool needsOrientationUpdate;
158
295
 
159
296
  /**
160
- * Tell the controller that some configuration regarding interface orientation has changed & it requires update.
297
+ * Tell the controller that some configuration regarding layout direction has changed & it
298
+ * requires update.
299
+ *
300
+ * This flag is necessary only on iOS versions prior to 17.
301
+ * On iOS 17+, use `traitOverrides.layoutDirection` on the controller directly.
161
302
  */
162
- @property (nonatomic, readwrite) bool needsOrientationUpdate;
303
+ @property (nonatomic, readwrite) bool needsLayoutDirectionUpdateBelowIOS17;
163
304
 
164
305
  @end
165
306