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
package/ios/RNSScreen.mm CHANGED
@@ -6,7 +6,6 @@
6
6
  #import "RNSScreenContentWrapper.h"
7
7
  #import "RNSScreenWindowTraits.h"
8
8
 
9
- #ifdef RCT_NEW_ARCH_ENABLED
10
9
  #import <React/RCTConversions.h>
11
10
  #import <React/RCTFabricComponentsPlugins.h>
12
11
  #import <React/RCTRootComponentView.h>
@@ -20,14 +19,6 @@
20
19
  #import "RNSConvert.h"
21
20
  #import "RNSHeaderHeightChangeEvent.h"
22
21
  #import "RNSScreenViewEvent.h"
23
- #else
24
- #import <React/RCTScrollView.h>
25
- #import <React/RCTTouchHandler.h>
26
- #endif // RCT_NEW_ARCH_ENABLED
27
-
28
- #import <React/RCTShadowView.h>
29
- #import <React/RCTUIManager.h>
30
- #import <React/RCTUIManagerUtils.h>
31
22
 
32
23
  #import "RNSConversions.h"
33
24
  #import "RNSSafeAreaViewComponentView.h"
@@ -42,9 +33,7 @@
42
33
  #import "RNSDefines.h"
43
34
  #import "UIView+RNSUtility.h"
44
35
 
45
- #ifdef RCT_NEW_ARCH_ENABLED
46
36
  namespace react = facebook::react;
47
- #endif // RCT_NEW_ARCH_ENABLED
48
37
 
49
38
  constexpr NSInteger SHEET_FIT_TO_CONTENTS = -1;
50
39
  constexpr NSInteger SHEET_LARGEST_UNDIMMED_DETENT_NONE = -1;
@@ -56,16 +45,12 @@ struct ContentWrapperBox {
56
45
 
57
46
  @interface RNSScreenView () <
58
47
  UIAdaptivePresentationControllerDelegate,
48
+ UIGestureRecognizerDelegate,
59
49
  #if !TARGET_OS_TV
60
50
  UISheetPresentationControllerDelegate,
61
51
  #endif
62
- #ifdef RCT_NEW_ARCH_ENABLED
63
52
  RCTRNSScreenViewProtocol,
64
53
  CAAnimationDelegate>
65
- #else
66
- RCTInvalidating>
67
- #endif
68
-
69
54
  @end
70
55
 
71
56
  @implementation RNSScreenView {
@@ -76,24 +61,10 @@ struct ContentWrapperBox {
76
61
  ContentWrapperBox _contentWrapperBox;
77
62
  bool _sheetHasInitialDetentSet;
78
63
  BOOL _shouldUpdateScrollEdgeEffects;
79
- #ifdef RCT_NEW_ARCH_ENABLED
64
+ UITapGestureRecognizer *_backdropTapGestureRecognizer;
80
65
  RCTSurfaceTouchHandler *_touchHandler;
81
66
  react::RNSScreenShadowNode::ConcreteState::Shared _state;
82
- // on fabric, they are not available by default so we need them exposed here too
83
67
  NSMutableArray<UIView *> *_reactSubviews;
84
- #else
85
- __weak RCTBridge *_bridge;
86
- RCTTouchHandler *_touchHandler;
87
- CGRect _reactFrame;
88
- #endif
89
- }
90
-
91
- #ifdef RCT_NEW_ARCH_ENABLED
92
-
93
- // Needed because of this: https://github.com/facebook/react-native/pull/37274
94
- + (void)load
95
- {
96
- [super load];
97
68
  }
98
69
 
99
70
  - (instancetype)initWithFrame:(CGRect)frame
@@ -108,17 +79,6 @@ struct ContentWrapperBox {
108
79
  }
109
80
  return self;
110
81
  }
111
- #else
112
- - (instancetype)initWithBridge:(RCTBridge *)bridge
113
- {
114
- if (self = [super init]) {
115
- _bridge = bridge;
116
- [self initCommonProps];
117
- }
118
-
119
- return self;
120
- }
121
- #endif // RCT_NEW_ARCH_ENABLED
122
82
 
123
83
  - (void)initCommonProps
124
84
  {
@@ -142,9 +102,7 @@ struct ContentWrapperBox {
142
102
  #endif // !TARGET_OS_TV
143
103
  _sheetsScrollView = nil;
144
104
  _sheetContentHeight = 0.0;
145
- #ifdef RCT_NEW_ARCH_ENABLED
146
105
  _markedForUnmountInCurrentTransaction = NO;
147
- #endif // RCT_NEW_ARCH_ENABLED
148
106
  }
149
107
 
150
108
  + (RNSViewInteractionManager *)viewInteractionManagerInstance
@@ -175,18 +133,15 @@ struct ContentWrapperBox {
175
133
  return _controller;
176
134
  }
177
135
 
178
- #ifdef RCT_NEW_ARCH_ENABLED
179
136
  RNS_IGNORE_SUPER_CALL_BEGIN
180
137
  - (NSArray<UIView *> *)reactSubviews
181
138
  {
182
139
  return _reactSubviews;
183
140
  }
184
141
  RNS_IGNORE_SUPER_CALL_END
185
- #endif
186
142
 
187
143
  - (void)updateBounds
188
144
  {
189
- #ifdef RCT_NEW_ARCH_ENABLED
190
145
  if (_state != nullptr) {
191
146
  RNSScreenStackHeaderConfig *config = [self findHeaderConfig];
192
147
 
@@ -216,9 +171,6 @@ RNS_IGNORE_SUPER_CALL_END
216
171
  UINavigationController *navctr = _controller.navigationController;
217
172
  [navctr.view setNeedsLayout];
218
173
  }
219
- #else
220
- [_bridge.uiManager setSize:self.bounds.size forView:self];
221
- #endif // RCT_NEW_ARCH_ENABLED
222
174
 
223
175
  if (_stackPresentation == RNSScreenStackPresentationFormSheet) {
224
176
  // In case of formSheet stack presentation, to mitigate view flickering
@@ -347,12 +299,6 @@ RNS_IGNORE_SUPER_CALL_END
347
299
  // Documented here:
348
300
  // https://developer.apple.com/documentation/uikit/uiviewcontroller/1621426-presentationcontroller?language=objc
349
301
  _controller.presentationController.delegate = self;
350
- } else if (_stackPresentation != RNSScreenStackPresentationPush) {
351
- #ifdef RCT_NEW_ARCH_ENABLED
352
- #else
353
- RCTLogError(
354
- @"Screen presentation updated from modal to push, this may likely result in a screen object leakage. If you need to change presentation style create a new screen object instead");
355
- #endif // RCT_NEW_ARCH_ENABLED
356
302
  }
357
303
  _stackPresentation = stackPresentation;
358
304
  }
@@ -552,77 +498,34 @@ RNS_IGNORE_SUPER_CALL_END
552
498
  #endif // Check for iOS >= 16 && !TARGET_OS_TV && !TARGET_OS_VISION
553
499
  }
554
500
 
555
- - (void)addSubview:(UIView *)view
556
- {
557
- /// This system method is called on Paper only. Fabric uses `-[insertSubview:atIndex:]`.
558
- if ([view isKindOfClass:RNSScreenContentWrapper.class] &&
559
- self.stackPresentation == RNSScreenStackPresentationFormSheet) {
560
- auto contentWrapper = (RNSScreenContentWrapper *)view;
561
- _contentWrapperBox.contentWrapper = contentWrapper;
562
- contentWrapper.delegate = self;
563
- }
564
-
565
- if (![view isKindOfClass:[RNSScreenStackHeaderConfig class]]) {
566
- [super addSubview:view];
567
- } else {
568
- ((RNSScreenStackHeaderConfig *)view).screenView = self;
569
- }
570
- }
571
-
572
501
  - (void)notifyDismissedWithCount:(int)dismissCount
573
502
  {
574
- #ifdef RCT_NEW_ARCH_ENABLED
575
503
  // If screen is already unmounted then there will be no event emitter
576
504
  if (_eventEmitter != nullptr) {
577
505
  std::dynamic_pointer_cast<const react::RNSScreenEventEmitter>(_eventEmitter)
578
506
  ->onDismissed(react::RNSScreenEventEmitter::OnDismissed{.dismissCount = dismissCount});
579
507
  }
580
- #else
581
- // TODO: hopefully problems connected to dismissed prop are only the case on paper
582
- _dismissed = YES;
583
- if (self.onDismissed) {
584
- dispatch_async(dispatch_get_main_queue(), ^{
585
- if (self.onDismissed) {
586
- self.onDismissed(@{@"dismissCount" : @(dismissCount)});
587
- }
588
- });
589
- }
590
- #endif
591
508
  }
592
509
 
593
510
  - (void)notifyDismissCancelledWithDismissCount:(int)dismissCount
594
511
  {
595
- #ifdef RCT_NEW_ARCH_ENABLED
596
512
  // If screen is already unmounted then there will be no event emitter
597
513
  if (_eventEmitter != nullptr) {
598
514
  std::dynamic_pointer_cast<const react::RNSScreenEventEmitter>(_eventEmitter)
599
515
  ->onNativeDismissCancelled(
600
516
  react::RNSScreenEventEmitter::OnNativeDismissCancelled{.dismissCount = dismissCount});
601
517
  }
602
- #else
603
- if (self.onNativeDismissCancelled) {
604
- self.onNativeDismissCancelled(@{@"dismissCount" : @(dismissCount)});
605
- }
606
- #endif
607
518
  }
608
519
 
609
520
  - (void)notifyWillAppear
610
521
  {
611
- #ifdef RCT_NEW_ARCH_ENABLED
522
+ [self setupBackdropTapGestureRecognizer];
612
523
  // If screen is already unmounted then there will be no event emitter
613
524
  if (_eventEmitter != nullptr) {
614
525
  std::dynamic_pointer_cast<const react::RNSScreenEventEmitter>(_eventEmitter)
615
526
  ->onWillAppear(react::RNSScreenEventEmitter::OnWillAppear{});
616
527
  }
617
528
  [self updateLayoutMetrics:_newLayoutMetrics oldLayoutMetrics:_oldLayoutMetrics];
618
- #else
619
- if (self.onWillAppear) {
620
- self.onWillAppear(nil);
621
- }
622
- // we do it here too because at this moment the `parentViewController` is already not nil,
623
- // so if the parent is not UINavCtr, the frame will be updated to the correct one.
624
- [self reactSetFrame:_reactFrame];
625
- #endif
626
529
  }
627
530
 
628
531
  - (void)notifyWillDisappear
@@ -630,56 +533,33 @@ RNS_IGNORE_SUPER_CALL_END
630
533
  if (_hideKeyboardOnSwipe) {
631
534
  [self endEditing:YES];
632
535
  }
633
- #ifdef RCT_NEW_ARCH_ENABLED
634
536
  // If screen is already unmounted then there will be no event emitter
635
537
  if (_eventEmitter != nullptr) {
636
538
  std::dynamic_pointer_cast<const react::RNSScreenEventEmitter>(_eventEmitter)
637
539
  ->onWillDisappear(react::RNSScreenEventEmitter::OnWillDisappear{});
638
540
  }
639
- #else
640
- if (self.onWillDisappear) {
641
- self.onWillDisappear(nil);
642
- }
643
- #endif
644
541
  }
645
542
 
646
543
  - (void)notifyAppear
647
544
  {
648
- #ifdef RCT_NEW_ARCH_ENABLED
649
545
  // If screen is already unmounted then there will be no event emitter
650
546
  if (_eventEmitter != nullptr) {
651
547
  std::dynamic_pointer_cast<const react::RNSScreenEventEmitter>(_eventEmitter)
652
548
  ->onAppear(react::RNSScreenEventEmitter::OnAppear{});
653
549
  }
654
- #else
655
- if (self.onAppear) {
656
- dispatch_async(dispatch_get_main_queue(), ^{
657
- if (self.onAppear) {
658
- self.onAppear(nil);
659
- }
660
- });
661
- }
662
- #endif
663
550
  }
664
551
 
665
552
  - (void)notifyDisappear
666
553
  {
667
- #ifdef RCT_NEW_ARCH_ENABLED
668
554
  // If screen is already unmounted then there will be no event emitter
669
555
  if (_eventEmitter != nullptr) {
670
556
  std::dynamic_pointer_cast<const react::RNSScreenEventEmitter>(_eventEmitter)
671
557
  ->onDisappear(react::RNSScreenEventEmitter::OnDisappear{});
672
558
  }
673
- #else
674
- if (self.onDisappear) {
675
- self.onDisappear(nil);
676
- }
677
- #endif
678
559
  }
679
560
 
680
561
  - (void)notifySheetDetentChangeToIndex:(NSInteger)newDetentIndex isStable:(BOOL)isStable
681
562
  {
682
- #ifdef RCT_NEW_ARCH_ENABLED
683
563
  if (_eventEmitter != nullptr) {
684
564
  int index = static_cast<int>(newDetentIndex);
685
565
  std::dynamic_pointer_cast<const react::RNSScreenEventEmitter>(_eventEmitter)
@@ -687,19 +567,10 @@ RNS_IGNORE_SUPER_CALL_END
687
567
  react::RNSScreenEventEmitter::OnSheetDetentChanged{
688
568
  .index = index, .isStable = static_cast<bool>(isStable)});
689
569
  }
690
- #else
691
- if (self.onSheetDetentChanged) {
692
- self.onSheetDetentChanged(@{
693
- @"index" : @(newDetentIndex),
694
- @"isStable" : @(YES),
695
- });
696
- }
697
- #endif
698
570
  }
699
571
 
700
572
  - (void)notifyHeaderHeightChange:(double)headerHeight
701
573
  {
702
- #ifdef RCT_NEW_ARCH_ENABLED
703
574
  if (_eventEmitter != nullptr) {
704
575
  std::dynamic_pointer_cast<const react::RNSScreenEventEmitter>(_eventEmitter)
705
576
  ->onHeaderHeightChange(react::RNSScreenEventEmitter::OnHeaderHeightChange{.headerHeight = headerHeight});
@@ -710,36 +581,19 @@ RNS_IGNORE_SUPER_CALL_END
710
581
  reactTag:[NSNumber numberWithInteger:self.tag]
711
582
  headerHeight:headerHeight];
712
583
  [self postNotificationForEventDispatcherObserversWithEvent:event];
713
- #else
714
- if (self.onHeaderHeightChange) {
715
- self.onHeaderHeightChange(@{
716
- @"headerHeight" : @(headerHeight),
717
- });
718
- }
719
- #endif
720
584
  }
721
585
 
722
586
  - (void)notifyGestureCancel
723
587
  {
724
- #ifdef RCT_NEW_ARCH_ENABLED
725
588
  if (_eventEmitter != nullptr) {
726
589
  std::dynamic_pointer_cast<const react::RNSScreenEventEmitter>(_eventEmitter)
727
590
  ->onGestureCancel(react::RNSScreenEventEmitter::OnGestureCancel{});
728
591
  }
729
- #else
730
- if (self.onGestureCancel) {
731
- self.onGestureCancel(nil);
732
- }
733
- #endif
734
592
  }
735
593
 
736
594
  - (BOOL)isMountedUnderScreenOrReactRoot
737
595
  {
738
- #ifdef RCT_NEW_ARCH_ENABLED
739
596
  #define RNS_EXPECTED_VIEW RCTRootComponentView
740
- #else
741
- #define RNS_EXPECTED_VIEW RCTRootView
742
- #endif
743
597
  for (UIView *parent = self.superview; parent != nil; parent = parent.superview) {
744
598
  if ([parent isKindOfClass:[RNS_EXPECTED_VIEW class]] || [parent isKindOfClass:[RNSScreenView class]]) {
745
599
  return YES;
@@ -751,16 +605,12 @@ RNS_IGNORE_SUPER_CALL_END
751
605
 
752
606
  - (void)didMoveToWindow
753
607
  {
754
- // For RN touches to work we need to instantiate and connect RCTTouchHandler. This only applies
755
- // for screens that aren't mounted under RCTRootView e.g., modals that are mounted directly to
608
+ // For RN touches to work we need to instantiate and connect RCTSurfaceTouchHandler. This only applies
609
+ // for screens that aren't mounted under RCTRootComponentView e.g., modals that are mounted directly to
756
610
  // root application window.
757
611
  if (self.window != nil && ![self isMountedUnderScreenOrReactRoot]) {
758
612
  if (_touchHandler == nil) {
759
- #ifdef RCT_NEW_ARCH_ENABLED
760
613
  _touchHandler = [RCTSurfaceTouchHandler new];
761
- #else
762
- _touchHandler = [[RCTTouchHandler alloc] initWithBridge:_bridge];
763
- #endif
764
614
  }
765
615
  [_touchHandler attachToView:self];
766
616
  } else {
@@ -768,7 +618,7 @@ RNS_IGNORE_SUPER_CALL_END
768
618
  }
769
619
  }
770
620
 
771
- - (nullable RNS_TOUCH_HANDLER_ARCH_TYPE *)touchHandler
621
+ - (nullable RCTSurfaceTouchHandler *)touchHandler
772
622
  {
773
623
  if (_touchHandler != nil) {
774
624
  return _touchHandler;
@@ -784,7 +634,6 @@ RNS_IGNORE_SUPER_CALL_END
784
634
 
785
635
  - (void)notifyTransitionProgress:(double)progress closing:(BOOL)closing goingForward:(BOOL)goingForward
786
636
  {
787
- #ifdef RCT_NEW_ARCH_ENABLED
788
637
  if (_eventEmitter != nullptr) {
789
638
  std::dynamic_pointer_cast<const react::RNSScreenEventEmitter>(_eventEmitter)
790
639
  ->onTransitionProgress(
@@ -797,15 +646,6 @@ RNS_IGNORE_SUPER_CALL_END
797
646
  closing:closing
798
647
  goingForward:goingForward];
799
648
  [self postNotificationForEventDispatcherObserversWithEvent:event];
800
- #else
801
- if (self.onTransitionProgress) {
802
- self.onTransitionProgress(@{
803
- @"progress" : @(progress),
804
- @"closing" : @(closing ? 1 : 0),
805
- @"goingForward" : @(goingForward ? 1 : 0),
806
- });
807
- }
808
- #endif
809
649
  }
810
650
 
811
651
  - (void)willMoveToWindow:(UIWindow *)newWindow
@@ -817,31 +657,13 @@ RNS_IGNORE_SUPER_CALL_END
817
657
  // Furthermore, a stack put inside a modal will exist in an entirely different hierarchy
818
658
 
819
659
  // Use RNSViewInteractionManager util to find a suitable subtree to disable interations on,
820
- // starting from reactSuperview, because on Paper, self is not attached yet.
660
+ // starting from reactSuperview
821
661
  if (![self isPresentedAsNativeModal]) {
822
662
  [RNSScreenView.viewInteractionManagerInstance disableInteractionsForSubtreeWith:self.reactSuperview];
823
663
  }
824
664
  }
825
665
  }
826
666
 
827
- - (void)presentationControllerWillDismiss:(UIPresentationController *)presentationController
828
- {
829
- #if !RCT_NEW_ARCH_ENABLED
830
- // On Paper, we need to call both "cancel" and "reset" here because RN's gesture
831
- // recognizer does not handle the scenario when it gets cancelled by other top
832
- // level gesture recognizer. In this case by the modal dismiss gesture.
833
- // Because of that, at the moment when this method gets called the React's
834
- // gesture recognizer is already in FAILED state but cancel events never gets
835
- // send to JS. Calling "reset" forces RCTTouchHanler to dispatch cancel event.
836
- // To test this behavior one need to open a dismissable modal and start
837
- // pulling down starting at some touchable item. Without "reset" the touchable
838
- // will never go back from highlighted state even when the modal start sliding
839
- // down.
840
- [_touchHandler cancel];
841
- [_touchHandler reset];
842
- #endif // !RCT_NEW_ARCH_ENABLED
843
- }
844
-
845
667
  - (BOOL)presentationControllerShouldDismiss:(UIPresentationController *)presentationController
846
668
  {
847
669
  if (_preventNativeDismiss) {
@@ -853,7 +675,7 @@ RNS_IGNORE_SUPER_CALL_END
853
675
  - (void)presentationControllerDidAttemptToDismiss:(UIPresentationController *)presentationController
854
676
  {
855
677
  if (@available(iOS 26, *)) {
856
- // Reenable interactions; see presentationControllerWillDismiss
678
+ // Reenable interactions
857
679
  [RNSScreenView.viewInteractionManagerInstance enableInteractionsForLastSubtree];
858
680
  }
859
681
 
@@ -868,16 +690,46 @@ RNS_IGNORE_SUPER_CALL_END
868
690
  - (void)presentationControllerDidDismiss:(UIPresentationController *)presentationController
869
691
  {
870
692
  if (@available(iOS 26, *)) {
871
- // Reenable interactions; see presentationControllerWillDismiss
693
+ // Reenable interactions
872
694
  // Dismissed screen doesn't hold a reference to window, but presentingViewController.view does
873
695
  [RNSScreenView.viewInteractionManagerInstance enableInteractionsForLastSubtree];
874
696
  }
875
697
 
698
+ [_controller notifyPresentedControllerDismissed];
699
+
876
700
  if ([_reactSuperview respondsToSelector:@selector(presentationControllerDidDismiss:)]) {
877
701
  [_reactSuperview performSelector:@selector(presentationControllerDidDismiss:) withObject:presentationController];
878
702
  }
879
703
  }
880
704
 
705
+ - (void)setupBackdropTapGestureRecognizer
706
+ {
707
+ if (self.stackPresentation != RNSScreenStackPresentationFormSheet &&
708
+ self.stackPresentation != RNSScreenStackPresentationPageSheet &&
709
+ self.stackPresentation != RNSScreenStackPresentationModal) {
710
+ return;
711
+ }
712
+
713
+ UIPresentationController *presentationController = _controller.presentationController;
714
+
715
+ if (presentationController && presentationController.containerView && !_backdropTapGestureRecognizer) {
716
+ _backdropTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self
717
+ action:@selector(handleBackdropTap:)];
718
+ _backdropTapGestureRecognizer.delegate = self;
719
+ _backdropTapGestureRecognizer.cancelsTouchesInView = NO;
720
+ [presentationController.containerView addGestureRecognizer:_backdropTapGestureRecognizer];
721
+ }
722
+ }
723
+
724
+ - (void)handleBackdropTap:(UITapGestureRecognizer *)gesture
725
+ {
726
+ if (gesture.state == UIGestureRecognizerStateRecognized) {
727
+ if (_preventNativeDismiss) {
728
+ [self notifyDismissCancelledWithDismissCount:1];
729
+ }
730
+ }
731
+ }
732
+
881
733
  - (nullable RNSScreenStackHeaderConfig *)findHeaderConfig
882
734
  {
883
735
  // Fast path
@@ -962,16 +814,17 @@ RNS_IGNORE_SUPER_CALL_END
962
814
 
963
815
  - (void)invalidateImpl
964
816
  {
965
- _controller = nil;
966
- [_sheetsScrollView removeObserver:self forKeyPath:@"bounds" context:nil];
967
- }
817
+ // We want to run after container updates are performed (transitions etc.)
818
+ __weak auto weakSelf = self;
968
819
 
969
- #ifndef RCT_NEW_ARCH_ENABLED
970
- - (void)invalidate
971
- {
972
- [self invalidateImpl];
820
+ dispatch_async(dispatch_get_main_queue(), ^{
821
+ auto strongSelf = weakSelf;
822
+ if (strongSelf) {
823
+ [strongSelf->_sheetsScrollView removeObserver:strongSelf forKeyPath:@"bounds" context:nil];
824
+ strongSelf->_controller = nil;
825
+ }
826
+ });
973
827
  }
974
- #endif
975
828
 
976
829
  #if !TARGET_OS_TV && !TARGET_OS_VISION
977
830
 
@@ -1080,8 +933,6 @@ RNS_IGNORE_SUPER_CALL_END
1080
933
 
1081
934
  /**
1082
935
  * Updates settings for sheet presentation controller.
1083
- * Note that this method should not be called inside `stackPresentation` setter, because on Paper we don't have
1084
- * guarantee that values of all related props had been updated earlier. It should be invoked from `didSetProps`.
1085
936
  * On Fabric we run it from `finalizeUpdates` if props have changed.
1086
937
  */
1087
938
  - (void)updateFormSheetPresentationStyle
@@ -1107,9 +958,6 @@ RNS_IGNORE_SUPER_CALL_END
1107
958
  if (_sheetAllowedDetents.count > 0) {
1108
959
  if (_sheetAllowedDetents.count == 1 && [_sheetAllowedDetents[0] integerValue] == SHEET_FIT_TO_CONTENTS) {
1109
960
  // This is `fitToContents` case, where sheet should be just high to display its contents.
1110
- // Paper: we do not set anything here, we will set once React computed layout of our React's children, namely
1111
- // RNSScreenContentWrapper, which in case of formSheet presentation style does have exactly the same frame as
1112
- // actual content. The update will be triggered once our child is mounted and laid out by React.
1113
961
  // Fabric: no nested stack: in this very moment our children are already mounted & laid out. In the very end
1114
962
  // of this method, after all other configuration is applied we trigger content wrapper to send us update on
1115
963
  // its frame. Fabric: nested stack: we wait until nested content wrapper registers itself with this view and
@@ -1211,11 +1059,9 @@ RNS_IGNORE_SUPER_CALL_END
1211
1059
  RCTLogError(@"[RNScreens] Value of sheetLargestUndimmedDetent prop must be >= -1");
1212
1060
  }
1213
1061
 
1214
- #ifdef RCT_NEW_ARCH_ENABLED
1215
1062
  // We trigger update from content wrapper, because on Fabric we update props after the children are mounted & laid
1216
1063
  // out.
1217
1064
  [self->_contentWrapperBox.contentWrapper triggerDelegateUpdate];
1218
- #endif // RCT_NEW_ARCH_ENABLED
1219
1065
  }
1220
1066
 
1221
1067
  #if RNS_IPHONE_OS_VERSION_AVAILABLE(16_0)
@@ -1326,8 +1172,39 @@ RNS_IGNORE_SUPER_CALL_END
1326
1172
  [self dispatchSafeAreaDidChangeNotification];
1327
1173
  }
1328
1174
 
1175
+ #pragma mark - UIGestureRecognizerDelegate
1176
+
1177
+ - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
1178
+ {
1179
+ if (gestureRecognizer == _backdropTapGestureRecognizer) {
1180
+ // When native dismissal is not being prevented, this recognizer should not
1181
+ // participate in handling touches to avoid interfering with UIKit.
1182
+ if (!_preventNativeDismiss) {
1183
+ return NO;
1184
+ }
1185
+
1186
+ UIPresentationController *presentationController = _controller.presentationController;
1187
+
1188
+ // Ignore any touches that land inside the actual sheet content.
1189
+ if (presentationController && presentationController.presentedView &&
1190
+ [touch.view isDescendantOfView:presentationController.presentedView]) {
1191
+ return NO;
1192
+ }
1193
+ return YES;
1194
+ }
1195
+ return YES;
1196
+ }
1197
+
1198
+ - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
1199
+ shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
1200
+ {
1201
+ if (gestureRecognizer == _backdropTapGestureRecognizer) {
1202
+ return YES;
1203
+ }
1204
+ return NO;
1205
+ }
1206
+
1329
1207
  #pragma mark - Fabric specific
1330
- #ifdef RCT_NEW_ARCH_ENABLED
1331
1208
 
1332
1209
  - (void)postNotificationForEventDispatcherObserversWithEvent:(NSObject<RCTEvent> *)event
1333
1210
  {
@@ -1357,6 +1234,11 @@ RNS_IGNORE_SUPER_CALL_END
1357
1234
  return NO;
1358
1235
  }
1359
1236
 
1237
+ - (void)invalidate
1238
+ {
1239
+ [self invalidateImpl];
1240
+ }
1241
+
1360
1242
  - (void)mountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
1361
1243
  {
1362
1244
  if ([childComponentView isKindOfClass:RNSScreenContentWrapper.class]) {
@@ -1527,7 +1409,6 @@ RNS_IGNORE_SUPER_CALL_END
1527
1409
  // the screen dimensions and we wait for the screen VC to update and then we
1528
1410
  // pass the dimensions to ui view manager to take into account when laying out
1529
1411
  // subviews
1530
- // Explanation taken from `reactSetFrame`, which is old arch equivalent of this code.
1531
1412
  }
1532
1413
 
1533
1414
  - (void)finalizeUpdates:(RNComponentViewUpdateMask)updateMask
@@ -1545,75 +1426,22 @@ RNS_IGNORE_SUPER_CALL_END
1545
1426
  #endif // !TARGET_OS_TV && !TARGET_OS_VISION
1546
1427
  }
1547
1428
 
1548
- #pragma mark - Paper specific
1549
- #else
1550
-
1551
- // On Fabric the setter is not needed, because value invariant (empty string to nil translation)
1552
- // is upheld in `- [updateProps:oldProps:]`
1553
- - (void)setScreenId:(NSString *)screenId
1554
- {
1555
- if (screenId != nil && screenId.length == 0) {
1556
- _screenId = nil;
1557
- } else {
1558
- _screenId = screenId;
1559
- }
1560
- }
1561
-
1562
- - (void)didSetProps:(NSArray<NSString *> *)changedProps
1563
- {
1564
- [super didSetProps:changedProps];
1565
-
1566
- if (_shouldUpdateScrollEdgeEffects) {
1567
- // see finalizeUpdates() for Fabric
1568
- [self updateContentScrollViewEdgeEffectsIfExists];
1569
- _shouldUpdateScrollEdgeEffects = NO;
1570
- }
1571
-
1572
- #if !TARGET_OS_TV && !TARGET_OS_VISION
1573
- if (self.stackPresentation == RNSScreenStackPresentationFormSheet) {
1574
- [self updateFormSheetPresentationStyle];
1575
- }
1576
- #endif // !TARGET_OS_TV
1577
- }
1578
-
1579
- - (void)setPointerEvents:(RCTPointerEvents)pointerEvents
1580
- {
1581
- // pointer events settings are managed by the parent screen container, we ignore
1582
- // any attempt of setting that via React props
1583
- }
1429
+ #pragma mark - Dynamic frameworks support
1584
1430
 
1585
- - (void)reactSetFrame:(CGRect)frame
1586
- {
1587
- _reactFrame = frame;
1588
- UIViewController *parentVC = self.reactViewController.parentViewController;
1589
- if (parentVC != nil && ![parentVC isKindOfClass:[RNSNavigationController class]]) {
1590
- [super reactSetFrame:frame];
1591
- }
1592
- // when screen is mounted under RNSNavigationController it's size is controller
1593
- // by the navigation controller itself. That is, it is set to fill space of
1594
- // the controller. In that case we ignore react layout system from managing
1595
- // the screen dimensions and we wait for the screen VC to update and then we
1596
- // pass the dimensions to ui view manager to take into account when laying out
1597
- // subviews
1598
- }
1599
-
1600
- // Opt-in/-out of interaction disabling on transition
1601
- // See: https://github.com/software-mansion/react-native-screens/pull/3631
1602
- - (void)setIos26AllowInteractionsDuringTransition:(BOOL)value
1431
+ // Needed because of this: https://github.com/facebook/react-native/pull/37274
1432
+ #ifdef RCT_DYNAMIC_FRAMEWORKS
1433
+ + (void)load
1603
1434
  {
1604
- [RNSScreenView.viewInteractionManagerInstance setDisabled:value];
1435
+ [super load];
1605
1436
  }
1606
-
1607
- #endif
1437
+ #endif // RCT_DYNAMIC_FRAMEWORKS
1608
1438
 
1609
1439
  @end
1610
1440
 
1611
- #ifdef RCT_NEW_ARCH_ENABLED
1612
1441
  Class<RCTComponentViewProtocol> RNSScreenCls(void)
1613
1442
  {
1614
1443
  return RNSScreenView.class;
1615
1444
  }
1616
- #endif
1617
1445
 
1618
1446
  #pragma mark - RNSScreen
1619
1447
 
@@ -1641,9 +1469,7 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
1641
1469
  _fakeView = [UIView new];
1642
1470
  _shouldNotify = YES;
1643
1471
  _isRemovedFromParent = NO;
1644
- #ifdef RCT_NEW_ARCH_ENABLED
1645
1472
  _initialView = (RNSScreenView *)view;
1646
- #endif
1647
1473
  }
1648
1474
  return self;
1649
1475
  }
@@ -1780,14 +1606,7 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
1780
1606
  }
1781
1607
 
1782
1608
  if (isDisplayedWithinUINavController || isTabScreen || self.screenView.isPresentedAsNativeModal) {
1783
- #ifdef RCT_NEW_ARCH_ENABLED
1784
1609
  [self.screenView updateBounds];
1785
- #else
1786
- if (!CGRectEqualToRect(_lastViewFrame, self.screenView.frame)) {
1787
- _lastViewFrame = self.screenView.frame;
1788
- [((RNSScreenView *)self.viewIfLoaded) updateBounds];
1789
- }
1790
- #endif
1791
1610
  }
1792
1611
  }
1793
1612
 
@@ -1932,6 +1751,11 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
1932
1751
  return _isRemovedFromParent;
1933
1752
  }
1934
1753
 
1754
+ - (void)notifyPresentedControllerDismissed
1755
+ {
1756
+ _isRemovedFromParent = YES;
1757
+ }
1758
+
1935
1759
  #pragma mark - transition progress related methods
1936
1760
 
1937
1761
  - (void)setupProgressNotification
@@ -2133,15 +1957,11 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
2133
1957
  return (int)[[self.screenView.reactSuperview reactSubviews] indexOfObject:view];
2134
1958
  }
2135
1959
 
2136
- // since on Fabric the view of controller can be a snapshot of type `UIView`,
1960
+ // Since the view of the controller can be a snapshot of type `UIView`,
2137
1961
  // when we want to check props of ScreenView, we need to get them from _initialView
2138
1962
  - (RNSScreenView *)screenView
2139
1963
  {
2140
- #ifdef RCT_NEW_ARCH_ENABLED
2141
1964
  return _initialView;
2142
- #else
2143
- return (RNSScreenView *)self.view;
2144
- #endif
2145
1965
  }
2146
1966
 
2147
1967
  - (void)hideHeaderIfNecessary
@@ -2161,11 +1981,7 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
2161
1981
  [self.navigationController.viewControllers objectAtIndex:currentIndex - 1].navigationItem;
2162
1982
  BOOL wasSearchBarActive = prevNavigationItem.searchController.active;
2163
1983
 
2164
- #ifdef RCT_NEW_ARCH_ENABLED
2165
1984
  BOOL shouldHideHeader = !config.show;
2166
- #else
2167
- BOOL shouldHideHeader = config.hide;
2168
- #endif
2169
1985
 
2170
1986
  if (wasSearchBarActive && shouldHideHeader) {
2171
1987
  dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0);
@@ -2223,7 +2039,6 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
2223
2039
 
2224
2040
  #endif // !TARGET_OS_TV
2225
2041
 
2226
- #ifdef RCT_NEW_ARCH_ENABLED
2227
2042
  #pragma mark - Fabric specific
2228
2043
 
2229
2044
  - (void)setViewToSnapshot
@@ -2240,61 +2055,12 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
2240
2055
  }
2241
2056
  }
2242
2057
 
2243
- #endif // RCT_NEW_ARCH_ENABLED
2244
-
2245
2058
  @end
2246
2059
 
2247
2060
  @implementation RNSScreenManager
2248
2061
 
2249
2062
  RCT_EXPORT_MODULE()
2250
2063
 
2251
- // we want to handle the case when activityState is nil
2252
- RCT_REMAP_VIEW_PROPERTY(activityState, activityStateOrNil, NSNumber)
2253
- RCT_EXPORT_VIEW_PROPERTY(customAnimationOnSwipe, BOOL);
2254
- RCT_EXPORT_VIEW_PROPERTY(fullScreenSwipeEnabled, RNSOptionalBoolean);
2255
- RCT_EXPORT_VIEW_PROPERTY(fullScreenSwipeShadowEnabled, BOOL);
2256
- RCT_EXPORT_VIEW_PROPERTY(gestureEnabled, BOOL)
2257
- RCT_EXPORT_VIEW_PROPERTY(gestureResponseDistance, NSDictionary)
2258
- RCT_EXPORT_VIEW_PROPERTY(hideKeyboardOnSwipe, BOOL)
2259
- RCT_EXPORT_VIEW_PROPERTY(preventNativeDismiss, BOOL)
2260
- RCT_EXPORT_VIEW_PROPERTY(replaceAnimation, RNSScreenReplaceAnimation)
2261
- RCT_EXPORT_VIEW_PROPERTY(stackPresentation, RNSScreenStackPresentation)
2262
- RCT_EXPORT_VIEW_PROPERTY(stackAnimation, RNSScreenStackAnimation)
2263
- RCT_EXPORT_VIEW_PROPERTY(swipeDirection, RNSScreenSwipeDirection)
2264
- RCT_EXPORT_VIEW_PROPERTY(transitionDuration, NSNumber)
2265
- RCT_EXPORT_VIEW_PROPERTY(screenId, NSString);
2266
- RCT_EXPORT_VIEW_PROPERTY(bottomScrollEdgeEffect, RNSScrollEdgeEffect);
2267
- RCT_EXPORT_VIEW_PROPERTY(leftScrollEdgeEffect, RNSScrollEdgeEffect);
2268
- RCT_EXPORT_VIEW_PROPERTY(rightScrollEdgeEffect, RNSScrollEdgeEffect);
2269
- RCT_EXPORT_VIEW_PROPERTY(topScrollEdgeEffect, RNSScrollEdgeEffect);
2270
-
2271
- RCT_EXPORT_VIEW_PROPERTY(onAppear, RCTDirectEventBlock);
2272
- RCT_EXPORT_VIEW_PROPERTY(onDisappear, RCTDirectEventBlock);
2273
- RCT_EXPORT_VIEW_PROPERTY(onHeaderHeightChange, RCTDirectEventBlock);
2274
- RCT_EXPORT_VIEW_PROPERTY(onDismissed, RCTDirectEventBlock);
2275
- RCT_EXPORT_VIEW_PROPERTY(onNativeDismissCancelled, RCTDirectEventBlock);
2276
- RCT_EXPORT_VIEW_PROPERTY(onTransitionProgress, RCTDirectEventBlock);
2277
- RCT_EXPORT_VIEW_PROPERTY(onWillAppear, RCTDirectEventBlock);
2278
- RCT_EXPORT_VIEW_PROPERTY(onWillDisappear, RCTDirectEventBlock);
2279
- RCT_EXPORT_VIEW_PROPERTY(onGestureCancel, RCTDirectEventBlock);
2280
- RCT_EXPORT_VIEW_PROPERTY(onSheetDetentChanged, RCTDirectEventBlock);
2281
- RCT_EXPORT_VIEW_PROPERTY(ios26AllowInteractionsDuringTransition, BOOL);
2282
-
2283
- #if !TARGET_OS_TV
2284
- RCT_EXPORT_VIEW_PROPERTY(screenOrientation, UIInterfaceOrientationMask)
2285
- RCT_EXPORT_VIEW_PROPERTY(statusBarAnimation, UIStatusBarAnimation)
2286
- RCT_EXPORT_VIEW_PROPERTY(statusBarHidden, BOOL)
2287
- RCT_EXPORT_VIEW_PROPERTY(statusBarStyle, RNSStatusBarStyle)
2288
- RCT_EXPORT_VIEW_PROPERTY(homeIndicatorHidden, BOOL)
2289
-
2290
- RCT_EXPORT_VIEW_PROPERTY(sheetAllowedDetents, NSArray<NSNumber *> *);
2291
- RCT_EXPORT_VIEW_PROPERTY(sheetLargestUndimmedDetent, NSNumber *);
2292
- RCT_EXPORT_VIEW_PROPERTY(sheetGrabberVisible, BOOL);
2293
- RCT_EXPORT_VIEW_PROPERTY(sheetCornerRadius, CGFloat);
2294
- RCT_EXPORT_VIEW_PROPERTY(sheetInitialDetent, NSInteger);
2295
- RCT_EXPORT_VIEW_PROPERTY(sheetExpandsWhenScrolledToEdge, BOOL);
2296
- #endif
2297
-
2298
2064
  #if !TARGET_OS_TV && !TARGET_OS_VISION
2299
2065
  // See:
2300
2066
  // 1. https://github.com/software-mansion/react-native-screens/pull/1543
@@ -2318,14 +2084,6 @@ RCT_EXPORT_VIEW_PROPERTY(sheetExpandsWhenScrolledToEdge, BOOL);
2318
2084
  }
2319
2085
  #endif // !TARGET_OS_TV
2320
2086
 
2321
- #ifdef RCT_NEW_ARCH_ENABLED
2322
- #else
2323
- - (UIView *)view
2324
- {
2325
- return [[RNSScreenView alloc] initWithBridge:self.bridge];
2326
- }
2327
- #endif
2328
-
2329
2087
  + (BOOL)requiresMainQueueSetup
2330
2088
  {
2331
2089
  // Returning NO here despite the fact some initialization in -init method dispatches tasks