react-native-screens 5.0.0-alpha.2 → 5.0.0-alpha.4

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 (456) hide show
  1. package/Package.swift +87 -0
  2. package/README.md +0 -11
  3. package/android/build.gradle +1 -0
  4. package/android/consumer-rules.pro +3 -0
  5. package/android/src/fabric/java/com/swmansion/rnscreens/legacy/FabricEnabledHeaderConfigViewGroup.kt +2 -0
  6. package/android/src/fabric/java/com/swmansion/rnscreens/legacy/FabricEnabledHeaderSubviewViewGroup.kt +2 -0
  7. package/android/src/fabric/java/com/swmansion/rnscreens/legacy/FabricEnabledViewGroup.kt +18 -3
  8. package/android/src/main/cpp/NativeProxy.cpp +30 -6
  9. package/android/src/main/cpp/NativeProxy.h +7 -1
  10. package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +2 -2
  11. package/android/src/main/java/com/swmansion/rnscreens/ScreensModule.kt +7 -3
  12. package/android/src/main/java/com/swmansion/rnscreens/common/colorscheme/ColorSchemeCoordinator.kt +11 -1
  13. package/android/src/main/java/com/swmansion/rnscreens/common/container/Container.kt +17 -0
  14. package/android/src/main/java/com/swmansion/rnscreens/common/container/ContainerItem.kt +13 -1
  15. package/android/src/main/java/com/swmansion/rnscreens/common/text/ReactTextAppearance.kt +62 -0
  16. package/android/src/main/java/com/swmansion/rnscreens/common/text/TextAppearance.kt +20 -0
  17. package/android/src/main/java/com/swmansion/rnscreens/common/text/TextAppearanceDefaults.kt +65 -0
  18. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/coordinator/FormSheetAppearanceCoordinator.kt +2 -2
  19. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/coordinator/FormSheetBehaviorController.kt +51 -20
  20. package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/coordinator/FormSheetDimensionsCoordinator.kt +159 -0
  21. package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/coordinator/FormSheetKeyboardCoordinator.kt +101 -0
  22. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/coordinator/FormSheetNativeDismissCoordinator.kt +2 -8
  23. package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/dialog/FormSheetAvailableHeightProvider.kt +44 -0
  24. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native/core → core/modals/formsheet/dialog}/FormSheetContainer.kt +1 -1
  25. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native/core → core/modals/formsheet/dialog}/FormSheetDialog.kt +36 -4
  26. package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/dialog/FormSheetDialogManager.kt +107 -0
  27. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/interfaces/FormSheetContentSizeChangeDelegate.kt +1 -1
  28. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/interfaces/FormSheetContentSizeChangeProvider.kt +1 -1
  29. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/interfaces/FormSheetDialogEventEmitter.kt +3 -1
  30. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/model/FormSheetConfig.kt +1 -1
  31. package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/model/FormSheetDetents.kt +152 -0
  32. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetAnimatorFactory.kt +9 -10
  33. package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/presentation/FormSheetDimmingManager.kt +103 -0
  34. package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/presentation/FormSheetDismissalOrigin.kt +22 -0
  35. package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/presentation/FormSheetPresentation.kt +173 -0
  36. package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/presentation/FormSheetPresentationManager.kt +290 -0
  37. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetPresentationState.kt +2 -2
  38. package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/presentation/FormSheetStackRegistry.kt +28 -0
  39. package/android/src/main/java/com/swmansion/rnscreens/ext/FragmentManagerExt.kt +6 -0
  40. package/android/src/main/java/com/swmansion/rnscreens/helpers/FragmentManagerHelper.kt +0 -3
  41. package/android/src/main/java/com/swmansion/rnscreens/helpers/NoTintDrawable.kt +31 -0
  42. package/android/src/main/java/com/swmansion/rnscreens/helpers/PropIconResolver.kt +17 -23
  43. package/android/src/main/java/com/swmansion/rnscreens/helpers/ViewFinder.kt +0 -17
  44. package/android/src/main/java/com/swmansion/rnscreens/legacy/Screen.kt +32 -3
  45. package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenContainer.kt +35 -3
  46. package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStack.kt +15 -0
  47. package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStackHeaderConfig.kt +7 -1
  48. package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStackHeaderSubviewManager.kt +7 -0
  49. package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStackViewManager.kt +6 -0
  50. package/android/src/main/java/com/swmansion/rnscreens/legacy/bottomsheet/DimmingView.kt +2 -0
  51. package/android/src/main/java/com/swmansion/rnscreens/legacy/stack/views/ScreensCoordinatorLayout.kt +2 -0
  52. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/contentwrapper/FormSheetContentWrapper.kt +3 -3
  53. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/contentwrapper/FormSheetContentWrapperViewManager.kt +1 -1
  54. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetDetentChangedEvent.kt +1 -1
  55. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetDidAppearEvent.kt +1 -1
  56. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetDidDisappearEvent.kt +1 -1
  57. package/android/src/main/java/com/swmansion/rnscreens/react/modals/formsheet/event/FormSheetDismissEvent.kt +29 -0
  58. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetNativeDismissEvent.kt +1 -1
  59. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetNativeDismissPreventedEvent.kt +1 -1
  60. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetSyncFlushEvent.kt +1 -1
  61. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetWillAppearEvent.kt +1 -1
  62. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetWillDisappearEvent.kt +1 -1
  63. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/host/FormSheetContentView.kt +3 -3
  64. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/host/FormSheetHost.kt +5 -3
  65. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/host/FormSheetHostEventEmitter.kt +17 -10
  66. package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/host/FormSheetHostViewManager.kt +11 -9
  67. package/android/src/main/java/com/swmansion/rnscreens/safearea/OnInterfaceInsetsChangeListener.kt +15 -0
  68. package/android/src/main/java/com/swmansion/rnscreens/safearea/SafeAreaProvider.kt +8 -8
  69. package/android/src/main/java/com/swmansion/rnscreens/safearea/SafeAreaView.kt +3 -2
  70. package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderApplicator.kt +360 -101
  71. package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderBackPressHandler.kt +11 -0
  72. package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderCoordinatorLayout.kt +211 -113
  73. package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderAppBarLayout.kt +156 -24
  74. package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderContentScrimDrawable.kt +36 -0
  75. package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderToolbar.kt +74 -0
  76. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderCollapsedTitleGravityMode.kt +6 -0
  77. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfig.kt +162 -228
  78. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigViewManager.kt +385 -12
  79. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationObserver.kt +5 -6
  80. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationProviding.kt +29 -6
  81. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderDelegate.kt +0 -7
  82. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderInvalidationFlags.kt +8 -7
  83. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuApplicator.kt +27 -280
  84. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuController.kt +448 -0
  85. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuDelegate.kt +10 -0
  86. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuMapper.kt +28 -20
  87. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuConfig.kt +3 -55
  88. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuGroupMetadata.kt +1 -10
  89. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuItemConfig.kt +1 -3
  90. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuModel.kt +180 -0
  91. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementOptions.kt +57 -6
  92. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementRawUpdate.kt +3 -1
  93. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementUpdate.kt +1 -0
  94. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuIconResolver.kt +4 -3
  95. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuUpdateQueue.kt +23 -9
  96. package/android/src/main/java/com/swmansion/rnscreens/stack/host/FragmentOperation.kt +1 -0
  97. package/android/src/main/java/com/swmansion/rnscreens/stack/host/FragmentOperationExecutor.kt +2 -1
  98. package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackContainer.kt +159 -21
  99. package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackContainerDelegate.kt +7 -0
  100. package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackContainerUpdateCoordinator.kt +5 -3
  101. package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackHost.kt +27 -5
  102. package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackHostViewManager.kt +14 -0
  103. package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackUpdateBatchStateProviding.kt +10 -0
  104. package/android/src/main/java/com/swmansion/rnscreens/stack/screen/PreventNativeDismissCallback.kt +2 -2
  105. package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreen.kt +4 -0
  106. package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreenFragment.kt +50 -10
  107. package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreenFragmentDelegate.kt +12 -0
  108. package/android/src/main/java/com/swmansion/rnscreens/tabs/appearance/TabsAppearanceApplicator.kt +106 -10
  109. package/android/src/main/java/com/swmansion/rnscreens/tabs/appearance/TabsAppearanceCoordinator.kt +46 -7
  110. package/android/src/main/java/com/swmansion/rnscreens/tabs/appearance/TabsAppearanceModel.kt +3 -0
  111. package/android/src/main/java/com/swmansion/rnscreens/tabs/container/CustomBottomNavigationView.kt +21 -1
  112. package/android/src/main/java/com/swmansion/rnscreens/tabs/container/MenuHelpers.kt +5 -23
  113. package/android/src/main/java/com/swmansion/rnscreens/tabs/container/TabsContainer.kt +72 -36
  114. package/android/src/main/java/com/swmansion/rnscreens/tabs/container/TabsContainerDelegate.kt +11 -0
  115. package/android/src/main/java/com/swmansion/rnscreens/tabs/host/TabsHost.kt +22 -2
  116. package/android/src/main/java/com/swmansion/rnscreens/tabs/host/TabsHostA11yCoordinator.kt +23 -2
  117. package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreen.kt +58 -17
  118. package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenDelegate.kt +6 -0
  119. package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenFragment.kt +3 -0
  120. package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenIcon.kt +82 -0
  121. package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenIconTinting.kt +17 -0
  122. package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenViewManager.kt +26 -19
  123. package/android/src/main/java/com/swmansion/rnscreens/utils/DimensionUtils.kt +20 -6
  124. package/android/src/main/java/com/swmansion/rnscreens/utils/RNSLog.kt +22 -6
  125. package/android/src/main/java/com/swmansion/rnscreens/utils/StyleUtils.kt +22 -0
  126. package/android/src/main/res/base/layout/rns_collapsing_toolbar_large_available_space.xml +8 -0
  127. package/android/src/main/res/base/layout/rns_collapsing_toolbar_large_entire_space.xml +8 -0
  128. package/android/src/main/res/base/layout/rns_collapsing_toolbar_medium_available_space.xml +8 -0
  129. package/android/src/main/res/base/layout/rns_collapsing_toolbar_medium_entire_space.xml +8 -0
  130. package/cpp/legacy/RNSScreenRemovalListener.cpp +31 -1
  131. package/cpp/legacy/RNSScreenRemovalListener.h +18 -3
  132. package/ios/RNSEnums.h +16 -1
  133. package/ios/conversion/RNSConversions.h +7 -108
  134. package/ios/helpers/image/RNSImageLoadingHelper.h +7 -0
  135. package/ios/helpers/image/RNSImageLoadingHelper.mm +9 -0
  136. package/ios/legacy/RNSBarButtonItem.mm +15 -0
  137. package/ios/legacy/RNSConvert.h +6 -0
  138. package/ios/legacy/RNSConvert.mm +17 -0
  139. package/ios/legacy/RNSFullWindowOverlay.mm +1 -1
  140. package/ios/legacy/RNSModalScreen.mm +1 -1
  141. package/ios/legacy/RNSNavigationBar.h +31 -0
  142. package/ios/legacy/RNSNavigationBar.mm +15 -0
  143. package/ios/legacy/RNSScreen.mm +130 -31
  144. package/ios/legacy/RNSScreenContentWrapper.mm +4 -1
  145. package/ios/legacy/RNSScreenStack.mm +202 -15
  146. package/ios/legacy/RNSScreenStackHeaderConfig.h +30 -0
  147. package/ios/legacy/RNSScreenStackHeaderConfig.mm +72 -17
  148. package/ios/legacy/RNSScreenStackHeaderSubview.mm +34 -1
  149. package/ios/legacy/RNSScreenWindowTraits.mm +5 -13
  150. package/ios/modals/form-sheet/RNSFormSheetConfigurationApplicator.h +1 -3
  151. package/ios/modals/form-sheet/RNSFormSheetConfigurationApplicator.mm +11 -22
  152. package/ios/modals/form-sheet/RNSFormSheetContentController.h +1 -1
  153. package/ios/modals/form-sheet/RNSFormSheetContentController.mm +7 -18
  154. package/ios/modals/form-sheet/RNSFormSheetHostComponentView.mm +4 -4
  155. package/ios/modals/form-sheet/RNSFormSheetHostShadowStateProxy.mm +2 -2
  156. package/ios/modals/form-sheet/RNSFormSheetUpdateFlags.h +3 -0
  157. package/ios/safe-area/RNSSafeAreaViewComponentView.mm +3 -14
  158. package/ios/{conversion → scroll-view-marker/conversion}/RNSConversions-ScrollViewMarker.mm +2 -3
  159. package/ios/split/RNSSplitAppearanceApplicator.h +4 -4
  160. package/ios/split/RNSSplitAppearanceApplicator.mm +53 -56
  161. package/ios/split/RNSSplitHostComponentEventEmitter.h +1 -0
  162. package/ios/split/RNSSplitHostComponentEventEmitter.mm +1 -1
  163. package/ios/split/RNSSplitHostComponentView.h +5 -15
  164. package/ios/split/RNSSplitHostComponentView.mm +55 -6
  165. package/ios/split/RNSSplitHostController.h +25 -6
  166. package/ios/split/RNSSplitHostController.mm +24 -92
  167. package/ios/split/RNSSplitHostProviders.h +67 -0
  168. package/ios/split/RNSSplitScreenComponentView.h +0 -39
  169. package/ios/split/RNSSplitScreenComponentView.mm +27 -10
  170. package/ios/split/RNSSplitScreenController.h +26 -3
  171. package/ios/split/RNSSplitScreenController.mm +13 -30
  172. package/ios/split/RNSSplitScreenShadowStateProxy.h +1 -40
  173. package/ios/split/RNSSplitScreenShadowStateProxy.mm +1 -26
  174. package/ios/split/conversion/RNSConversions-SplitView.h +56 -0
  175. package/ios/{conversion → split/conversion}/RNSConversions-SplitView.mm +4 -1
  176. package/ios/stack/conversion/RNSConversions-Stack.h +62 -0
  177. package/ios/stack/conversion/RNSConversions-Stack.mm +134 -0
  178. package/ios/stack/header/RNSHeaderItemVisibilityPriority.h +9 -0
  179. package/ios/stack/header/RNSStackHeaderAppearanceMapper.h +26 -0
  180. package/ios/stack/header/RNSStackHeaderAppearanceMapper.mm +88 -0
  181. package/ios/stack/header/RNSStackHeaderConfigComponentView.h +14 -1
  182. package/ios/stack/header/RNSStackHeaderConfigComponentView.mm +103 -37
  183. package/ios/stack/header/RNSStackHeaderConfigDataProviding.h +11 -0
  184. package/ios/stack/header/RNSStackHeaderConfigShadowStateProxy.mm +1 -1
  185. package/ios/stack/header/RNSStackHeaderContentFactory.mm +3 -0
  186. package/ios/stack/header/RNSStackHeaderIconResolver.mm +7 -0
  187. package/ios/stack/header/RNSStackHeaderItemComponentView.h +12 -3
  188. package/ios/stack/header/RNSStackHeaderItemComponentView.mm +72 -5
  189. package/ios/stack/header/RNSStackHeaderItemDataProviding.h +7 -0
  190. package/ios/stack/header/RNSStackHeaderItemShadowStateProxy.mm +1 -1
  191. package/ios/stack/header/RNSStackHeaderItemSpacerComponentView.mm +2 -1
  192. package/ios/stack/header/RNSStackHeaderMenuCoordinator.h +13 -0
  193. package/ios/stack/header/RNSStackHeaderMenuCoordinator.mm +24 -0
  194. package/ios/stack/header/RNSStackHeaderMenuFinder.h +8 -1
  195. package/ios/stack/header/RNSStackHeaderMenuFinder.mm +26 -9
  196. package/ios/stack/header/RNSStackHeaderMenuMapper.mm +4 -0
  197. package/ios/stack/host/RNSStackNavigationBar.h +25 -0
  198. package/ios/stack/host/RNSStackNavigationBar.mm +80 -0
  199. package/ios/stack/host/RNSStackNavigationBarCoordinator.h +8 -0
  200. package/ios/stack/host/RNSStackNavigationBarCoordinator.mm +11 -0
  201. package/ios/stack/host/RNSStackNavigationController.mm +13 -5
  202. package/ios/stack/host/RNSStackOperation.h +0 -2
  203. package/ios/stack/screen/RNSStackScreenComponentView.h +2 -1
  204. package/ios/stack/screen/RNSStackScreenComponentView.mm +32 -2
  205. package/ios/stack/screen/RNSStackScreenController.mm +12 -0
  206. package/ios/stack/screen/RNSStackScreenHeaderCoordinator.h +8 -0
  207. package/ios/stack/screen/RNSStackScreenHeaderCoordinator.mm +179 -24
  208. package/ios/tabs/RNSTabBarAppearanceCoordinator.mm +110 -16
  209. package/ios/tabs/RNSTabBarItemCoordinator.h +16 -0
  210. package/ios/tabs/RNSTabBarItemCoordinator.mm +143 -0
  211. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.h +1 -1
  212. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.mm +1 -1
  213. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryContentComponentView.mm +1 -1
  214. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryEventEmitter.mm +1 -1
  215. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryShadowStateProxy.mm +1 -1
  216. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryWrapperView.h +24 -0
  217. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryWrapperView.mm +22 -0
  218. package/ios/tabs/conversion/RNSConversions-Tabs.h +100 -0
  219. package/ios/{conversion → tabs/conversion}/RNSConversions-Tabs.mm +105 -74
  220. package/ios/tabs/extensions/RNSTabsHostComponentView+RNSImageLoader.h +1 -1
  221. package/ios/tabs/host/RNSTabBarController.h +16 -0
  222. package/ios/tabs/host/RNSTabBarController.mm +516 -107
  223. package/ios/tabs/host/RNSTabsHostComponentView.h +4 -0
  224. package/ios/tabs/host/RNSTabsHostComponentView.mm +41 -4
  225. package/ios/tabs/host/RNSTabsHostEventEmitter.mm +1 -1
  226. package/ios/tabs/screen/RNSTabsScreenComponentView.h +21 -0
  227. package/ios/tabs/screen/RNSTabsScreenComponentView.mm +56 -56
  228. package/ios/tabs/screen/RNSTabsScreenViewController.mm +1 -0
  229. package/ios/utils/RNSDefines.h +15 -7
  230. package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js +37 -21
  231. package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js.map +1 -1
  232. package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js +41 -4
  233. package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js.map +1 -1
  234. package/lib/commonjs/components/stack/header/StackHeaderConfig.js +17 -0
  235. package/lib/commonjs/components/stack/header/StackHeaderConfig.js.map +1 -0
  236. package/lib/commonjs/components/stack/header/ios/StackHeaderItem.ios.js +4 -1
  237. package/lib/commonjs/components/stack/header/ios/StackHeaderItem.ios.js.map +1 -1
  238. package/lib/commonjs/components/stack/host/StackHost.js +17 -7
  239. package/lib/commonjs/components/stack/host/StackHost.js.map +1 -1
  240. package/lib/commonjs/components/stack/host/StackHost.web.js +0 -2
  241. package/lib/commonjs/components/stack/host/StackHost.web.js.map +1 -1
  242. package/lib/commonjs/components/stack/index.js.map +1 -1
  243. package/lib/commonjs/components/tabs/host/TabsHost.ios.js +3 -0
  244. package/lib/commonjs/components/tabs/host/TabsHost.ios.js.map +1 -1
  245. package/lib/commonjs/components/tabs/host/{TabsHost.web.js → TabsHost.js} +1 -1
  246. package/lib/commonjs/components/tabs/host/TabsHost.js.map +1 -0
  247. package/lib/commonjs/components/tabs/index.js.map +1 -1
  248. package/lib/commonjs/components/tabs/screen/TabsScreen.android.js +3 -1
  249. package/lib/commonjs/components/tabs/screen/TabsScreen.android.js.map +1 -1
  250. package/lib/commonjs/components/tabs/screen/TabsScreen.ios.js +10 -1
  251. package/lib/commonjs/components/tabs/screen/TabsScreen.ios.js.map +1 -1
  252. package/lib/commonjs/components/tabs/screen/{TabsScreen.web.js → TabsScreen.js} +1 -1
  253. package/lib/commonjs/components/tabs/screen/TabsScreen.js.map +1 -0
  254. package/lib/commonjs/components/{stack/header/StackHeaderConfig.d.js → tabs/screen/TabsScreenIcon.types.js} +1 -1
  255. package/lib/commonjs/components/{stack/header/StackHeaderConfig.d.js.map → tabs/screen/TabsScreenIcon.types.js.map} +1 -1
  256. package/lib/commonjs/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  257. package/lib/commonjs/fabric/legacy/ScreenStackNativeComponent.js.map +1 -1
  258. package/lib/commonjs/fabric/stack/StackHeaderConfigAndroidNativeComponent.js.map +1 -1
  259. package/lib/commonjs/fabric/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -1
  260. package/lib/commonjs/fabric/stack/StackHeaderItemIOSNativeComponent.js.map +1 -1
  261. package/lib/commonjs/fabric/stack/StackHostNativeComponent.js.map +1 -1
  262. package/lib/commonjs/fabric/tabs/TabsHostIOSNativeComponent.js.map +1 -1
  263. package/lib/commonjs/fabric/tabs/TabsScreenAndroidNativeComponent.js.map +1 -1
  264. package/lib/commonjs/fabric/tabs/TabsScreenIOSNativeComponent.js +1 -1
  265. package/lib/commonjs/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -1
  266. package/lib/commonjs/legacy/components/ScreenStackItem.js +31 -11
  267. package/lib/commonjs/legacy/components/ScreenStackItem.js.map +1 -1
  268. package/lib/module/components/stack/header/StackHeaderConfig.android.js +39 -23
  269. package/lib/module/components/stack/header/StackHeaderConfig.android.js.map +1 -1
  270. package/lib/module/components/stack/header/StackHeaderConfig.ios.js +43 -6
  271. package/lib/module/components/stack/header/StackHeaderConfig.ios.js.map +1 -1
  272. package/lib/module/components/stack/header/StackHeaderConfig.js +10 -0
  273. package/lib/module/components/stack/header/StackHeaderConfig.js.map +1 -0
  274. package/lib/module/components/stack/header/ios/StackHeaderItem.ios.js +4 -1
  275. package/lib/module/components/stack/header/ios/StackHeaderItem.ios.js.map +1 -1
  276. package/lib/module/components/stack/host/StackHost.js +18 -8
  277. package/lib/module/components/stack/host/StackHost.js.map +1 -1
  278. package/lib/module/components/stack/host/StackHost.web.js +0 -3
  279. package/lib/module/components/stack/host/StackHost.web.js.map +1 -1
  280. package/lib/module/components/stack/index.js.map +1 -1
  281. package/lib/module/components/tabs/host/TabsHost.ios.js +3 -0
  282. package/lib/module/components/tabs/host/TabsHost.ios.js.map +1 -1
  283. package/{src/components/tabs/host/TabsHost.web.tsx → lib/module/components/tabs/host/TabsHost.js} +1 -2
  284. package/lib/module/components/tabs/host/TabsHost.js.map +1 -0
  285. package/lib/module/components/tabs/index.js.map +1 -1
  286. package/lib/module/components/tabs/screen/TabsScreen.android.js +3 -1
  287. package/lib/module/components/tabs/screen/TabsScreen.android.js.map +1 -1
  288. package/lib/module/components/tabs/screen/TabsScreen.ios.js +10 -1
  289. package/lib/module/components/tabs/screen/TabsScreen.ios.js.map +1 -1
  290. package/{src/components/tabs/screen/TabsScreen.web.tsx → lib/module/components/tabs/screen/TabsScreen.js} +1 -2
  291. package/lib/module/components/tabs/screen/TabsScreen.js.map +1 -0
  292. package/lib/module/components/tabs/screen/TabsScreenIcon.types.js +2 -0
  293. package/lib/module/components/{stack/header/StackHeaderConfig.d.js.map → tabs/screen/TabsScreenIcon.types.js.map} +1 -1
  294. package/lib/module/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  295. package/lib/module/fabric/legacy/ScreenStackNativeComponent.js.map +1 -1
  296. package/lib/module/fabric/stack/StackHeaderConfigAndroidNativeComponent.js.map +1 -1
  297. package/lib/module/fabric/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -1
  298. package/lib/module/fabric/stack/StackHeaderItemIOSNativeComponent.js.map +1 -1
  299. package/lib/module/fabric/stack/StackHostNativeComponent.js.map +1 -1
  300. package/lib/module/fabric/tabs/TabsHostIOSNativeComponent.js.map +1 -1
  301. package/lib/module/fabric/tabs/TabsScreenAndroidNativeComponent.js.map +1 -1
  302. package/lib/module/fabric/tabs/TabsScreenIOSNativeComponent.js +1 -1
  303. package/lib/module/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -1
  304. package/lib/module/legacy/components/ScreenStackItem.js +31 -11
  305. package/lib/module/legacy/components/ScreenStackItem.js.map +1 -1
  306. package/lib/typescript/components/modals/form-sheet/FormSheet.types.d.ts +1 -1
  307. package/lib/typescript/components/stack/header/StackHeaderConfig.android.d.ts +6 -3
  308. package/lib/typescript/components/stack/header/StackHeaderConfig.android.d.ts.map +1 -1
  309. package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts +620 -24
  310. package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts.map +1 -1
  311. package/lib/typescript/components/stack/header/StackHeaderConfig.d.ts +8 -0
  312. package/lib/typescript/components/stack/header/StackHeaderConfig.d.ts.map +1 -0
  313. package/lib/typescript/components/stack/header/StackHeaderConfig.ios.d.ts +6 -3
  314. package/lib/typescript/components/stack/header/StackHeaderConfig.ios.d.ts.map +1 -1
  315. package/lib/typescript/components/stack/header/StackHeaderConfig.ios.types.d.ts +361 -2
  316. package/lib/typescript/components/stack/header/StackHeaderConfig.ios.types.d.ts.map +1 -1
  317. package/lib/typescript/components/stack/header/StackHeaderConfig.types.d.ts +4 -2
  318. package/lib/typescript/components/stack/header/StackHeaderConfig.types.d.ts.map +1 -1
  319. package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.d.ts.map +1 -1
  320. package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.types.d.ts +7 -0
  321. package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.types.d.ts.map +1 -1
  322. package/lib/typescript/components/stack/host/StackHost.d.ts +1 -1
  323. package/lib/typescript/components/stack/host/StackHost.d.ts.map +1 -1
  324. package/lib/typescript/components/stack/host/StackHost.types.d.ts +47 -0
  325. package/lib/typescript/components/stack/host/StackHost.types.d.ts.map +1 -1
  326. package/lib/typescript/components/stack/host/StackHost.web.d.ts +1 -3
  327. package/lib/typescript/components/stack/host/StackHost.web.d.ts.map +1 -1
  328. package/lib/typescript/components/stack/index.d.ts +4 -3
  329. package/lib/typescript/components/stack/index.d.ts.map +1 -1
  330. package/lib/typescript/components/tabs/host/TabsHost.d.ts +5 -0
  331. package/lib/typescript/components/tabs/host/TabsHost.d.ts.map +1 -0
  332. package/lib/typescript/components/tabs/host/TabsHost.ios.d.ts.map +1 -1
  333. package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts +72 -0
  334. package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts.map +1 -1
  335. package/lib/typescript/components/tabs/host/TabsHost.types.d.ts +3 -0
  336. package/lib/typescript/components/tabs/host/TabsHost.types.d.ts.map +1 -1
  337. package/lib/typescript/components/tabs/index.d.ts +4 -6
  338. package/lib/typescript/components/tabs/index.d.ts.map +1 -1
  339. package/lib/typescript/components/tabs/screen/TabsScreen.android.d.ts.map +1 -1
  340. package/lib/typescript/components/tabs/screen/TabsScreen.android.types.d.ts +42 -7
  341. package/lib/typescript/components/tabs/screen/TabsScreen.android.types.d.ts.map +1 -1
  342. package/lib/typescript/components/tabs/screen/TabsScreen.d.ts +5 -0
  343. package/lib/typescript/components/tabs/screen/TabsScreen.d.ts.map +1 -0
  344. package/lib/typescript/components/tabs/screen/TabsScreen.ios.d.ts.map +1 -1
  345. package/lib/typescript/components/tabs/screen/TabsScreen.ios.types.d.ts +78 -13
  346. package/lib/typescript/components/tabs/screen/TabsScreen.ios.types.d.ts.map +1 -1
  347. package/lib/typescript/components/tabs/screen/TabsScreenIcon.types.d.ts +91 -0
  348. package/lib/typescript/components/tabs/screen/TabsScreenIcon.types.d.ts.map +1 -0
  349. package/lib/typescript/components/tabs/screen/index.d.ts +1 -0
  350. package/lib/typescript/components/tabs/screen/index.d.ts.map +1 -1
  351. package/lib/typescript/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.d.ts +2 -0
  352. package/lib/typescript/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -1
  353. package/lib/typescript/fabric/legacy/ScreenStackNativeComponent.d.ts +1 -0
  354. package/lib/typescript/fabric/legacy/ScreenStackNativeComponent.d.ts.map +1 -1
  355. package/lib/typescript/fabric/stack/StackHeaderConfigAndroidNativeComponent.d.ts +52 -0
  356. package/lib/typescript/fabric/stack/StackHeaderConfigAndroidNativeComponent.d.ts.map +1 -1
  357. package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts +29 -1
  358. package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts.map +1 -1
  359. package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts +8 -0
  360. package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts.map +1 -1
  361. package/lib/typescript/fabric/stack/StackHostNativeComponent.d.ts +3 -1
  362. package/lib/typescript/fabric/stack/StackHostNativeComponent.d.ts.map +1 -1
  363. package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts +4 -0
  364. package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts.map +1 -1
  365. package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts +6 -0
  366. package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts.map +1 -1
  367. package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts +10 -1
  368. package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts.map +1 -1
  369. package/lib/typescript/legacy/components/ScreenStackItem.d.ts +25 -0
  370. package/lib/typescript/legacy/components/ScreenStackItem.d.ts.map +1 -1
  371. package/lib/typescript/legacy/components/helpers/prepareHeaderBarButtonItems.d.ts +4 -0
  372. package/lib/typescript/legacy/components/helpers/prepareHeaderBarButtonItems.d.ts.map +1 -1
  373. package/lib/typescript/legacy/types.d.ts +30 -0
  374. package/lib/typescript/legacy/types.d.ts.map +1 -1
  375. package/package.json +11 -8
  376. package/react-native.config.js +3 -0
  377. package/src/components/modals/form-sheet/FormSheet.types.ts +1 -1
  378. package/src/components/stack/header/StackHeaderConfig.android.tsx +54 -43
  379. package/src/components/stack/header/StackHeaderConfig.android.types.ts +641 -24
  380. package/src/components/stack/header/StackHeaderConfig.ios.tsx +55 -17
  381. package/src/components/stack/header/StackHeaderConfig.ios.types.ts +384 -2
  382. package/src/components/stack/header/StackHeaderConfig.tsx +12 -0
  383. package/src/components/stack/header/StackHeaderConfig.types.ts +4 -2
  384. package/src/components/stack/header/ios/StackHeaderItem.ios.tsx +9 -1
  385. package/src/components/stack/header/ios/StackHeaderItem.ios.types.ts +7 -0
  386. package/src/components/stack/host/StackHost.tsx +12 -3
  387. package/src/components/stack/host/StackHost.types.ts +50 -0
  388. package/src/components/stack/host/StackHost.web.tsx +1 -4
  389. package/src/components/stack/index.ts +14 -1
  390. package/src/components/tabs/host/TabsHost.ios.tsx +3 -0
  391. package/src/components/tabs/host/TabsHost.ios.types.ts +76 -0
  392. package/src/components/tabs/host/TabsHost.tsx +7 -0
  393. package/src/components/tabs/host/TabsHost.types.ts +3 -0
  394. package/src/components/tabs/index.ts +9 -0
  395. package/src/components/tabs/screen/TabsScreen.android.tsx +8 -3
  396. package/src/components/tabs/screen/TabsScreen.android.types.ts +42 -7
  397. package/src/components/tabs/screen/TabsScreen.ios.tsx +22 -5
  398. package/src/components/tabs/screen/TabsScreen.ios.types.ts +79 -17
  399. package/src/components/tabs/screen/TabsScreen.tsx +7 -0
  400. package/src/components/tabs/screen/TabsScreenIcon.types.ts +117 -0
  401. package/src/components/tabs/screen/index.ts +1 -0
  402. package/src/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.ts +6 -0
  403. package/src/fabric/legacy/ScreenStackNativeComponent.ts +2 -0
  404. package/src/fabric/stack/StackHeaderConfigAndroidNativeComponent.ts +78 -0
  405. package/src/fabric/stack/StackHeaderConfigIOSNativeComponent.ts +43 -0
  406. package/src/fabric/stack/StackHeaderItemIOSNativeComponent.ts +13 -0
  407. package/src/fabric/stack/StackHostNativeComponent.ts +11 -2
  408. package/src/fabric/tabs/TabsHostIOSNativeComponent.ts +8 -0
  409. package/src/fabric/tabs/TabsScreenAndroidNativeComponent.ts +9 -0
  410. package/src/fabric/tabs/TabsScreenIOSNativeComponent.ts +20 -2
  411. package/src/legacy/components/ScreenStackItem.tsx +59 -12
  412. package/src/legacy/types.ts +31 -0
  413. package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenModalFragment.kt +0 -281
  414. package/android/src/main/java/com/swmansion/rnscreens/legacy/bottomsheet/BottomSheetDialogRootView.kt +0 -104
  415. package/android/src/main/java/com/swmansion/rnscreens/legacy/bottomsheet/BottomSheetDialogScreen.kt +0 -26
  416. package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingView.kt +0 -83
  417. package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingViewManager.kt +0 -89
  418. package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingViewPointerEvents.kt +0 -18
  419. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetDimensionsCoordinator.kt +0 -134
  420. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetDialogManager.kt +0 -162
  421. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/model/FormSheetDetents.kt +0 -106
  422. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetPresentationManager.kt +0 -198
  423. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuSelectionController.kt +0 -83
  424. package/ios/conversion/RNSConversions-Stack.h +0 -32
  425. package/ios/conversion/RNSConversions-Stack.mm +0 -41
  426. package/ios/conversion/always_false.h +0 -31
  427. package/lib/commonjs/components/stack/header/StackHeaderConfig.web.js +0 -10
  428. package/lib/commonjs/components/stack/header/StackHeaderConfig.web.js.map +0 -1
  429. package/lib/commonjs/components/tabs/host/TabsHost.d.js +0 -2
  430. package/lib/commonjs/components/tabs/host/TabsHost.d.js.map +0 -1
  431. package/lib/commonjs/components/tabs/host/TabsHost.web.js.map +0 -1
  432. package/lib/commonjs/components/tabs/screen/TabsScreen.d.js +0 -2
  433. package/lib/commonjs/components/tabs/screen/TabsScreen.d.js.map +0 -1
  434. package/lib/commonjs/components/tabs/screen/TabsScreen.web.js.map +0 -1
  435. package/lib/module/components/stack/header/StackHeaderConfig.d.js +0 -2
  436. package/lib/module/components/stack/header/StackHeaderConfig.web.js +0 -4
  437. package/lib/module/components/stack/header/StackHeaderConfig.web.js.map +0 -1
  438. package/lib/module/components/tabs/host/TabsHost.d.js +0 -2
  439. package/lib/module/components/tabs/host/TabsHost.d.js.map +0 -1
  440. package/lib/module/components/tabs/host/TabsHost.web.js +0 -4
  441. package/lib/module/components/tabs/host/TabsHost.web.js.map +0 -1
  442. package/lib/module/components/tabs/screen/TabsScreen.d.js +0 -2
  443. package/lib/module/components/tabs/screen/TabsScreen.d.js.map +0 -1
  444. package/lib/module/components/tabs/screen/TabsScreen.web.js +0 -4
  445. package/lib/module/components/tabs/screen/TabsScreen.web.js.map +0 -1
  446. package/lib/typescript/components/stack/header/StackHeaderConfig.web.d.ts +0 -7
  447. package/lib/typescript/components/stack/header/StackHeaderConfig.web.d.ts.map +0 -1
  448. package/lib/typescript/components/tabs/host/TabsHost.web.d.ts +0 -7
  449. package/lib/typescript/components/tabs/host/TabsHost.web.d.ts.map +0 -1
  450. package/lib/typescript/components/tabs/screen/TabsScreen.web.d.ts +0 -7
  451. package/lib/typescript/components/tabs/screen/TabsScreen.web.d.ts.map +0 -1
  452. package/src/components/stack/header/StackHeaderConfig.d.ts +0 -22
  453. package/src/components/stack/header/StackHeaderConfig.web.tsx +0 -5
  454. package/src/components/tabs/host/TabsHost.d.ts +0 -12
  455. package/src/components/tabs/screen/TabsScreen.d.ts +0 -12
  456. /package/ios/{conversion → scroll-view-marker/conversion}/RNSConversions-ScrollViewMarker.h +0 -0
@@ -1,6 +1,7 @@
1
1
  #pragma once
2
2
 
3
3
  #import <Foundation/Foundation.h>
4
+ #import <UIKit/UIKit.h>
4
5
 
5
6
  #if defined(__cplusplus)
6
7
  #import <react/renderer/core/State.h>
@@ -10,8 +11,6 @@ namespace react = facebook::react;
10
11
 
11
12
  NS_ASSUME_NONNULL_BEGIN
12
13
 
13
- @class RNSSplitScreenComponentView;
14
-
15
14
  /**
16
15
  * @class RNSSplitScreenShadowStateProxy
17
16
  * @brief Manages communication between native UIView layout and associated React Native ShadowNode state.
@@ -21,44 +20,6 @@ NS_ASSUME_NONNULL_BEGIN
21
20
  */
22
21
  @interface RNSSplitScreenShadowStateProxy : NSObject
23
22
 
24
- /**
25
- * @brief Triggers a shadow state update for the given SplitScreen component.
26
- *
27
- * Internally uses the component’s frame in UIWindow coordinates to update the Shadow Tree state.
28
- *
29
- * @param screenComponentView An instance of RNSSplitScreenComponentView whose state should be updated.
30
- */
31
- - (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView;
32
-
33
- /**
34
- * @brief Triggers a shadow state update for the given SplitScreen component in the context of a given ancestor
35
- * view.
36
- *
37
- * Converts the split view screen's local frame to coordinates of the specified ancestor view
38
- * before applying the update to the Shadow Tree. If the ancestor haven't been defined frame is calculated relatively to
39
- * the UIWindow.
40
- *
41
- * @param screenComponentView An instance of RNSSplitScreenComponentView whose state should be updated.
42
- * @param ancestorView An optional UIView in whose coordinate space the frame should be computed.
43
- */
44
- - (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
45
- inContextOfAncestorView:(UIView *_Nullable)ancestorView;
46
-
47
- /**
48
- * @brief Send an update to ShadowNode state with given frame if needed.
49
- *
50
- * Converts the frame to coordinates of the specified ancestor view,
51
- * before applying the update to the Shadow Tree.
52
- *
53
- * @param screenComponentView an instance of RNSSplitScreenComponentView whose state should be updated,
54
- * @param frame frame to update the shadow state with; it must be in coordinate system of `screenComponentView`,
55
- * @param ancestorView coordinate-system provider view, relative to which the frame should be converted before sending
56
- * the update.
57
- */
58
- - (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
59
- withFrame:(CGRect)frame
60
- inContextOfAncestorView:(nonnull UIView *)ancestorView;
61
-
62
23
  /**
63
24
  * @brief Send an update to ShadowNode state with given layout metrics.
64
25
  *
@@ -1,9 +1,8 @@
1
1
  #import "RNSSplitScreenShadowStateProxy.h"
2
- #import "RNSSplitScreenComponentView.h"
3
2
 
4
3
  #import <React/RCTAssert.h>
5
4
  #import <React/RCTConversions.h>
6
- #import <rnscreens/RNSSplitScreenShadowNode.h>
5
+ #import <react/renderer/components/rnscreens/RNSSplitScreenShadowNode.h>
7
6
 
8
7
  namespace react = facebook::react;
9
8
 
@@ -21,21 +20,6 @@ namespace react = facebook::react;
21
20
  return self;
22
21
  }
23
22
 
24
- - (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
25
- {
26
- [self updateShadowStateOfComponent:screenComponentView inContextOfAncestorView:nil];
27
- }
28
-
29
- - (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
30
- inContextOfAncestorView:(UIView *_Nullable)ancestorView
31
- {
32
- CGRect frame = screenComponentView.frame;
33
- if (ancestorView != nil) {
34
- frame = [screenComponentView convertRect:frame toView:ancestorView];
35
- }
36
- [self updateShadowStateWithFrame:frame];
37
- }
38
-
39
23
  - (void)updateShadowStateWithFrame:(CGRect)frame
40
24
  {
41
25
  if (_state == nullptr) {
@@ -50,15 +34,6 @@ namespace react = facebook::react;
50
34
  }
51
35
  }
52
36
 
53
- - (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
54
- withFrame:(CGRect)frame
55
- inContextOfAncestorView:(nonnull UIView *)ancestorView
56
- {
57
- RCTAssert(ancestorView != nil, @"[RNScreens] ancestorView must not be nil");
58
- CGRect convertedFrame = [screenComponentView convertRect:frame toView:ancestorView];
59
- [self updateShadowStateWithFrame:convertedFrame];
60
- }
61
-
62
37
  - (void)updateState:(react::State::Shared const &)state oldState:(react::State::Shared const &)oldState
63
38
  {
64
39
  _state = std::static_pointer_cast<const react::RNSSplitScreenShadowNode::ConcreteState>(state);
@@ -0,0 +1,56 @@
1
+ #pragma once
2
+
3
+ #if defined(__cplusplus)
4
+
5
+ #import <UIKit/UIKit.h>
6
+ #import <react/renderer/components/rnscreens/Props.h>
7
+ #import <optional>
8
+ #import <string>
9
+ #import "RNSEnums.h"
10
+
11
+ namespace rnscreens::conversion {
12
+
13
+ namespace react = facebook::react;
14
+
15
+ #pragma mark SplitHost props
16
+
17
+ UISplitViewControllerSplitBehavior SplitViewPreferredSplitBehaviorFromHostProp(
18
+ react::RNSSplitHostPreferredSplitBehavior behavior);
19
+
20
+ UISplitViewControllerPrimaryEdge SplitViewPrimaryEdgeFromHostProp(
21
+ react::RNSSplitHostPrimaryEdge primaryEdge);
22
+
23
+ UISplitViewControllerDisplayMode SplitViewPreferredDisplayModeFromHostProp(
24
+ react::RNSSplitHostPreferredDisplayMode displayMode);
25
+
26
+ #if !TARGET_OS_TV
27
+ UISplitViewControllerBackgroundStyle
28
+ SplitViewPrimaryBackgroundStyleFromHostProp(
29
+ react::RNSSplitHostPrimaryBackgroundStyle primaryBackgroundStyle);
30
+ #endif // !TARGET_OS_TV
31
+
32
+ UISplitViewControllerDisplayModeButtonVisibility
33
+ SplitViewDisplayModeButtonVisibilityFromHostProp(
34
+ react::RNSSplitHostDisplayModeButtonVisibility displayModeButtonVisibility);
35
+
36
+ std::string UISplitViewControllerDisplayModeToString(
37
+ UISplitViewControllerDisplayMode displayMode);
38
+
39
+ std::optional<UISplitViewControllerColumn>
40
+ SplitViewTopColumnForCollapsingFromHostProp(
41
+ react::RNSSplitHostTopColumnForCollapsing topColumnForCollapsing);
42
+
43
+ RNSOrientation RNSOrientationFromRNSSplitHostOrientation(
44
+ react::RNSSplitHostOrientation orientation);
45
+
46
+ UIUserInterfaceStyle UIUserInterfaceStyleFromHostProp(
47
+ react::RNSSplitHostColorScheme colorScheme);
48
+
49
+ #pragma mark SplitScreen props
50
+
51
+ RNSSplitScreenColumnType RNSSplitScreenColumnTypeFromScreenProp(
52
+ react::RNSSplitScreenColumnType columnType);
53
+
54
+ }; // namespace rnscreens::conversion
55
+
56
+ #endif // defined(__cplusplus)
@@ -1,7 +1,10 @@
1
- #import "RNSConversions.h"
1
+ #import "RNSConversions-SplitView.h"
2
+ #import <React/RCTLog.h>
2
3
 
3
4
  namespace rnscreens::conversion {
4
5
 
6
+ namespace react = facebook::react;
7
+
5
8
  #pragma mark SplitHost props
6
9
 
7
10
  UISplitViewControllerSplitBehavior SplitViewPreferredSplitBehaviorFromHostProp(
@@ -0,0 +1,62 @@
1
+ #pragma once
2
+
3
+ #if defined(__cplusplus)
4
+
5
+ #import <react/renderer/components/rnscreens/Props.h>
6
+ #import "RNSDefines.h"
7
+ #import "RNSHeaderItemPlacement.h"
8
+ #import "RNSHeaderItemSpacerPlacement.h"
9
+ #import "RNSHeaderItemVisibilityPriority.h"
10
+ #import "RNSStackScreenComponentView.h"
11
+
12
+ namespace rnscreens::conversion {
13
+
14
+ namespace react = facebook::react;
15
+
16
+ RNSStackScreenActivityMode
17
+ RNSStackScreenActivityModeFromReactRNSStackScreenActivityMode(
18
+ react::RNSStackScreenActivityMode mode);
19
+
20
+ RNSHeaderItemPlacement
21
+ RNSHeaderItemPlacementFromReactRNSStackHeaderItemIOSPlacement(
22
+ react::RNSStackHeaderItemIOSPlacement placement);
23
+
24
+ RNSHeaderItemSpacerPlacement
25
+ RNSHeaderItemSpacerPlacementFromReactRNSStackHeaderItemSpacerIOSPlacement(
26
+ react::RNSStackHeaderItemSpacerIOSPlacement placement);
27
+
28
+ UIBarButtonItemStyle UIBarButtonItemStyleFromReactRNSStackHeaderItemIOSVariant(
29
+ react::RNSStackHeaderItemIOSVariant variant);
30
+
31
+ UINavigationItemBackButtonDisplayMode
32
+ UINavigationItemBackButtonDisplayModeFromReactRNSStackHeaderConfigIOSBackButtonDisplayMode(
33
+ react::RNSStackHeaderConfigIOSBackButtonDisplayMode displayMode);
34
+
35
+ #if RNS_IPHONE_OS_VERSION_AVAILABLE(27_0)
36
+
37
+ API_AVAILABLE(ios(27.0))
38
+ UIBarMinimizationBehavior
39
+ UIBarMinimizationBehaviorFromReactRNSStackHeaderConfigIOSMinimizationBehavior(
40
+ react::RNSStackHeaderConfigIOSMinimizationBehavior minimizationBehavior);
41
+
42
+ API_AVAILABLE(ios(27.0))
43
+ UIBarMinimizationRestorationBehavior
44
+ UIBarMinimizationRestorationBehaviorFromReactRNSStackHeaderConfigIOSRestorationBehavior(
45
+ react::RNSStackHeaderConfigIOSRestorationBehavior restorationBehavior);
46
+
47
+ #endif // Check for iOS >= 27
48
+
49
+ RNSHeaderItemVisibilityPriority
50
+ RNSHeaderItemVisibilityPriorityFromReactRNSStackHeaderItemIOSVisibilityPriority(
51
+ react::RNSStackHeaderItemIOSVisibilityPriority visibilityPriority);
52
+
53
+ #if RNS_IPHONE_OS_VERSION_AVAILABLE(27_0) && !TARGET_OS_TV && !TARGET_OS_VISION
54
+ API_AVAILABLE(ios(27.0))
55
+ UIBarButtonItemVisibilityPriority
56
+ UIBarButtonItemVisibilityPriorityFromRNSHeaderItemVisibilityPriority(
57
+ RNSHeaderItemVisibilityPriority visibilityPriority);
58
+ #endif // Check for iOS >= 27 && !TARGET_OS_TV && !TARGET_OS_VISION
59
+
60
+ }; // namespace rnscreens::conversion
61
+
62
+ #endif // defined(__cplusplus)
@@ -0,0 +1,134 @@
1
+ #import "RNSConversions-Stack.h"
2
+ #import "RNSDefines.h"
3
+
4
+ namespace rnscreens::conversion {
5
+
6
+ namespace react = facebook::react;
7
+
8
+ RNSStackScreenActivityMode RNSStackScreenActivityModeFromReactRNSStackScreenActivityMode(
9
+ react::RNSStackScreenActivityMode mode)
10
+ {
11
+ return static_cast<RNSStackScreenActivityMode>(mode);
12
+ }
13
+
14
+ RNSHeaderItemPlacement RNSHeaderItemPlacementFromReactRNSStackHeaderItemIOSPlacement(
15
+ react::RNSStackHeaderItemIOSPlacement placement)
16
+ {
17
+ switch (placement) {
18
+ case react::RNSStackHeaderItemIOSPlacement::Leading:
19
+ return RNSHeaderItemPlacementLeading;
20
+ case react::RNSStackHeaderItemIOSPlacement::Trailing:
21
+ return RNSHeaderItemPlacementTrailing;
22
+ case react::RNSStackHeaderItemIOSPlacement::Title:
23
+ return RNSHeaderItemPlacementTitle;
24
+ case react::RNSStackHeaderItemIOSPlacement::Subtitle:
25
+ return RNSHeaderItemPlacementSubtitle;
26
+ case react::RNSStackHeaderItemIOSPlacement::LargeSubtitle:
27
+ return RNSHeaderItemPlacementLargeSubtitle;
28
+ }
29
+ }
30
+
31
+ UIBarButtonItemStyle UIBarButtonItemStyleFromReactRNSStackHeaderItemIOSVariant(
32
+ react::RNSStackHeaderItemIOSVariant variant)
33
+ {
34
+ switch (variant) {
35
+ case react::RNSStackHeaderItemIOSVariant::Plain:
36
+ return UIBarButtonItemStylePlain;
37
+ case react::RNSStackHeaderItemIOSVariant::Prominent:
38
+ #if RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
39
+ if (@available(iOS 26.0, *)) {
40
+ return UIBarButtonItemStyleProminent;
41
+ }
42
+ #endif // RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
43
+ // Bold text look, closest counterpart of prominent style before iOS 26
44
+ return UIBarButtonItemStyleDone;
45
+ }
46
+ }
47
+
48
+ RNSHeaderItemSpacerPlacement RNSHeaderItemSpacerPlacementFromReactRNSStackHeaderItemSpacerIOSPlacement(
49
+ react::RNSStackHeaderItemSpacerIOSPlacement placement)
50
+ {
51
+ switch (placement) {
52
+ case react::RNSStackHeaderItemSpacerIOSPlacement::Leading:
53
+ return RNSHeaderItemSpacerPlacementLeading;
54
+ case react::RNSStackHeaderItemSpacerIOSPlacement::Trailing:
55
+ return RNSHeaderItemSpacerPlacementTrailing;
56
+ }
57
+ }
58
+
59
+ UINavigationItemBackButtonDisplayMode
60
+ UINavigationItemBackButtonDisplayModeFromReactRNSStackHeaderConfigIOSBackButtonDisplayMode(
61
+ react::RNSStackHeaderConfigIOSBackButtonDisplayMode displayMode)
62
+ {
63
+ switch (displayMode) {
64
+ case react::RNSStackHeaderConfigIOSBackButtonDisplayMode::Default:
65
+ return UINavigationItemBackButtonDisplayModeDefault;
66
+ case react::RNSStackHeaderConfigIOSBackButtonDisplayMode::Generic:
67
+ return UINavigationItemBackButtonDisplayModeGeneric;
68
+ case react::RNSStackHeaderConfigIOSBackButtonDisplayMode::Minimal:
69
+ return UINavigationItemBackButtonDisplayModeMinimal;
70
+ }
71
+ }
72
+
73
+
74
+ #if RNS_IPHONE_OS_VERSION_AVAILABLE(27_0)
75
+
76
+ UIBarMinimizationBehavior UIBarMinimizationBehaviorFromReactRNSStackHeaderConfigIOSMinimizationBehavior(
77
+ react::RNSStackHeaderConfigIOSMinimizationBehavior minimizationBehavior)
78
+ {
79
+ switch (minimizationBehavior) {
80
+ case react::RNSStackHeaderConfigIOSMinimizationBehavior::Automatic:
81
+ return UIBarMinimizationBehaviorAutomatic;
82
+ case react::RNSStackHeaderConfigIOSMinimizationBehavior::Never:
83
+ return UIBarMinimizationBehaviorNever;
84
+ case react::RNSStackHeaderConfigIOSMinimizationBehavior::OnScrollDown:
85
+ return UIBarMinimizationBehaviorOnScrollDown;
86
+ case react::RNSStackHeaderConfigIOSMinimizationBehavior::OnScrollUp:
87
+ return UIBarMinimizationBehaviorOnScrollUp;
88
+ }
89
+ }
90
+
91
+ UIBarMinimizationRestorationBehavior
92
+ UIBarMinimizationRestorationBehaviorFromReactRNSStackHeaderConfigIOSRestorationBehavior(
93
+ react::RNSStackHeaderConfigIOSRestorationBehavior restorationBehavior)
94
+ {
95
+ switch (restorationBehavior) {
96
+ case react::RNSStackHeaderConfigIOSRestorationBehavior::Automatic:
97
+ return UIBarMinimizationRestorationBehaviorAutomatic;
98
+ case react::RNSStackHeaderConfigIOSRestorationBehavior::AtScrollEdge:
99
+ return UIBarMinimizationRestorationBehaviorAtScrollEdge;
100
+ }
101
+ }
102
+
103
+ #endif // Check for iOS >= 27
104
+
105
+ RNSHeaderItemVisibilityPriority RNSHeaderItemVisibilityPriorityFromReactRNSStackHeaderItemIOSVisibilityPriority(
106
+ react::RNSStackHeaderItemIOSVisibilityPriority visibilityPriority)
107
+ {
108
+ switch (visibilityPriority) {
109
+ case react::RNSStackHeaderItemIOSVisibilityPriority::Low:
110
+ return RNSHeaderItemVisibilityPriorityLow;
111
+ case react::RNSStackHeaderItemIOSVisibilityPriority::Standard:
112
+ return RNSHeaderItemVisibilityPriorityStandard;
113
+ case react::RNSStackHeaderItemIOSVisibilityPriority::High:
114
+ return RNSHeaderItemVisibilityPriorityHigh;
115
+ }
116
+ }
117
+
118
+ #if RNS_IPHONE_OS_VERSION_AVAILABLE(27_0) && !TARGET_OS_TV && !TARGET_OS_VISION
119
+ API_AVAILABLE(ios(27.0))
120
+ UIBarButtonItemVisibilityPriority UIBarButtonItemVisibilityPriorityFromRNSHeaderItemVisibilityPriority(
121
+ RNSHeaderItemVisibilityPriority visibilityPriority)
122
+ {
123
+ switch (visibilityPriority) {
124
+ case RNSHeaderItemVisibilityPriorityLow:
125
+ return UIBarButtonItemVisibilityPriorityLow;
126
+ case RNSHeaderItemVisibilityPriorityStandard:
127
+ return UIBarButtonItemVisibilityPriorityStandard;
128
+ case RNSHeaderItemVisibilityPriorityHigh:
129
+ return UIBarButtonItemVisibilityPriorityHigh;
130
+ }
131
+ }
132
+ #endif // RNS_IPHONE_OS_VERSION_AVAILABLE(27_0) && !TARGET_OS_TV && !TARGET_OS_VISION
133
+
134
+ }; // namespace rnscreens::conversion
@@ -0,0 +1,9 @@
1
+ #pragma once
2
+
3
+ #import <Foundation/Foundation.h>
4
+
5
+ typedef NS_ENUM(NSInteger, RNSHeaderItemVisibilityPriority) {
6
+ RNSHeaderItemVisibilityPriorityLow,
7
+ RNSHeaderItemVisibilityPriorityStandard,
8
+ RNSHeaderItemVisibilityPriorityHigh,
9
+ };
@@ -0,0 +1,26 @@
1
+ #pragma once
2
+
3
+ #import <UIKit/UIKit.h>
4
+
5
+ NS_ASSUME_NONNULL_BEGIN
6
+
7
+ @interface RNSStackHeaderAppearanceMapper : NSObject
8
+
9
+ /**
10
+ * Maps appearance props to a UINavigationBarAppearance object.
11
+ * `appearanceDict` should be an NSDictionary with a flat structure, where entries correspond
12
+ * to UIKit attributes, e.g. `titleFontFamily`, `subtitleFontColor`, or empty, for UIKit defaults.
13
+ */
14
+ + (nullable UINavigationBarAppearance *)appearanceFromDictionary:(nullable NSDictionary *)appearanceDict;
15
+
16
+ /**
17
+ * Maps scroll edge appearance props to a UINavigationBarAppearance object.
18
+ * `appearanceDict` should be an NSDictionary with a flat structure, where entries correspond
19
+ * to UIKit attributes, e.g. `titleFontFamily`, `subtitleFontColor`, or empty, for UIKit defaults.
20
+ * The appearance object is built with transparent background configured by default, matching UIKit.
21
+ */
22
+ + (nullable UINavigationBarAppearance *)scrollEdgeAppearanceFromDictionary:(nullable NSDictionary *)appearanceDict;
23
+
24
+ @end
25
+
26
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,88 @@
1
+ #import "RNSStackHeaderAppearanceMapper.h"
2
+ #import "RNSDefines.h"
3
+
4
+ #import <React/RCTConvert.h>
5
+ #import <React/RCTFont.h>
6
+
7
+ @implementation RNSStackHeaderAppearanceMapper
8
+
9
+ + (nullable UINavigationBarAppearance *)appearanceFromDictionary:(nullable NSDictionary *)appearanceDict
10
+ {
11
+ if (appearanceDict.count == 0) {
12
+ return nil;
13
+ }
14
+
15
+ UINavigationBarAppearance *appearance = [UINavigationBarAppearance new];
16
+ [self applyTextAttributesFromDictionary:appearanceDict toAppearance:appearance];
17
+ return appearance;
18
+ }
19
+
20
+ + (nullable UINavigationBarAppearance *)scrollEdgeAppearanceFromDictionary:(nullable NSDictionary *)appearanceDict
21
+ {
22
+ if (appearanceDict.count == 0) {
23
+ return nil;
24
+ }
25
+
26
+ UINavigationBarAppearance *appearance = [UINavigationBarAppearance new];
27
+
28
+ // A nil navigationItem.scrollEdgeAppearance natively resolves to the item's (or bar's)
29
+ // standard appearance with a transparent background. Start the explicit scroll edge
30
+ // appearance from the same transparent base so that a text-only appearance prop does
31
+ // not suddenly bring back the default bar background at the scroll edge.
32
+ [appearance configureWithTransparentBackground];
33
+
34
+ [self applyTextAttributesFromDictionary:appearanceDict toAppearance:appearance];
35
+ return appearance;
36
+ }
37
+
38
+ + (void)applyTextAttributesFromDictionary:(nullable NSDictionary *)appearanceDict
39
+ toAppearance:(nonnull UINavigationBarAppearance *)appearance
40
+ {
41
+ appearance.titleTextAttributes = [self textAttributes:appearance.titleTextAttributes
42
+ updatedWithDictionary:appearanceDict
43
+ keyPrefix:@"title"];
44
+ appearance.largeTitleTextAttributes = [self textAttributes:appearance.largeTitleTextAttributes
45
+ updatedWithDictionary:appearanceDict
46
+ keyPrefix:@"largeTitle"];
47
+
48
+ #if RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
49
+ if (@available(iOS 26.0, *)) {
50
+ // UIKit derives both the regular and the large subtitle appearance from
51
+ // subtitleTextAttributes; largeSubtitleTextAttributes is ignored.
52
+ appearance.subtitleTextAttributes = [self textAttributes:appearance.subtitleTextAttributes
53
+ updatedWithDictionary:appearanceDict
54
+ keyPrefix:@"subtitle"];
55
+ }
56
+ #endif // RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
57
+ }
58
+
59
+ + (nonnull NSDictionary *)textAttributes:(nullable NSDictionary *)baseAttributes
60
+ updatedWithDictionary:(nullable NSDictionary *)appearanceDict
61
+ keyPrefix:(nonnull NSString *)keyPrefix
62
+ {
63
+ id fontFamily = appearanceDict[[keyPrefix stringByAppendingString:@"FontFamily"]];
64
+ id fontSize = appearanceDict[[keyPrefix stringByAppendingString:@"FontSize"]];
65
+ id fontWeight = appearanceDict[[keyPrefix stringByAppendingString:@"FontWeight"]];
66
+ id fontStyle = appearanceDict[[keyPrefix stringByAppendingString:@"FontStyle"]];
67
+ id fontColor = appearanceDict[[keyPrefix stringByAppendingString:@"FontColor"]];
68
+
69
+ NSMutableDictionary *textAttributes = [baseAttributes mutableCopy] ?: [NSMutableDictionary new];
70
+
71
+ if (fontFamily != nil || fontSize != nil || fontWeight != nil || fontStyle != nil) {
72
+ textAttributes[NSFontAttributeName] = [RCTFont updateFont:baseAttributes[NSFontAttributeName]
73
+ withFamily:fontFamily
74
+ size:fontSize
75
+ weight:fontWeight
76
+ style:fontStyle
77
+ variant:nil
78
+ scaleMultiplier:1.0];
79
+ }
80
+
81
+ if (fontColor != nil) {
82
+ textAttributes[NSForegroundColorAttributeName] = [RCTConvert UIColor:fontColor];
83
+ }
84
+
85
+ return textAttributes;
86
+ }
87
+
88
+ @end
@@ -5,6 +5,7 @@
5
5
  #import "RNSStackHeaderConfigDataProviding.h"
6
6
  #import "RNSStackHeaderEventsDelegate.h"
7
7
  #import "RNSStackHeaderItemInvalidationDelegate.h"
8
+ #import "RNSStackScreenHeaderCoordinator.h"
8
9
  #import "RNSViewFrameChangeDelegate.h"
9
10
 
10
11
  NS_ASSUME_NONNULL_BEGIN
@@ -21,9 +22,21 @@ NS_ASSUME_NONNULL_BEGIN
21
22
  @property (nonatomic, readonly, nullable) NSString *largeTitle;
22
23
  @property (nonatomic, readonly, nullable) NSString *largeSubtitle;
23
24
  @property (nonatomic, readonly) BOOL largeTitleEnabled;
25
+ @property (nonatomic, readonly, nullable) NSString *prompt;
26
+ #if RNS_IPHONE_OS_VERSION_AVAILABLE(27_0)
27
+ @property (nonatomic, readonly) UIBarMinimizationBehavior minimizationBehavior API_AVAILABLE(ios(27.0));
28
+ @property (nonatomic, readonly) UIBarMinimizationRestorationBehavior restorationBehavior API_AVAILABLE(ios(27.0));
29
+ #endif // Check for iOS >= 27
30
+ @property (nonatomic, readonly, nullable) NSString *backButtonTitle;
31
+ @property (nonatomic, readonly) UINavigationItemBackButtonDisplayMode backButtonDisplayMode;
32
+ @property (nonatomic, readonly) BOOL backButtonMenuEnabled;
24
33
  @property (nonatomic, readonly, nullable) RNSStackHeaderMenuData *titleMenu;
34
+ @property (nonatomic, readonly, nullable) UINavigationBarAppearance *standardAppearance;
35
+ @property (nonatomic, readonly, nullable) UINavigationBarAppearance *scrollEdgeAppearance;
25
36
  @property (nonatomic, readonly) NSArray<id> *children;
26
37
 
38
+ @property (nonatomic, weak, nullable) RNSStackScreenHeaderCoordinator *headerCoordinator;
39
+
27
40
  - (void)resetProps;
28
41
 
29
42
  @end
@@ -34,7 +47,7 @@ NS_ASSUME_NONNULL_END
34
47
 
35
48
  #if defined(__cplusplus)
36
49
 
37
- #import <rnscreens/RNSStackHeaderConfigComponentDescriptor.h>
50
+ #import <react/renderer/components/rnscreens/RNSStackHeaderConfigComponentDescriptor.h>
38
51
 
39
52
  @interface RNSStackHeaderConfigComponentView ()
40
53