react-native-screens 5.0.0-alpha.1 → 5.0.0-alpha.3

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 (585) hide show
  1. package/Package.swift +87 -0
  2. package/README.md +0 -8
  3. package/RNScreens.podspec +2 -6
  4. package/android/build.gradle +26 -1
  5. package/android/src/fabric/java/com/swmansion/rnscreens/NativeProxy.kt +5 -0
  6. package/android/src/main/cpp/NativeProxy.cpp +30 -6
  7. package/android/src/main/cpp/NativeProxy.h +7 -1
  8. package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +2 -2
  9. package/android/src/main/java/com/swmansion/rnscreens/common/container/Container.kt +8 -0
  10. package/android/src/main/java/com/swmansion/rnscreens/common/container/ContainerItem.kt +13 -1
  11. package/android/src/main/java/com/swmansion/rnscreens/common/text/ReactTextAppearance.kt +62 -0
  12. package/android/src/main/java/com/swmansion/rnscreens/common/text/TextAppearance.kt +20 -0
  13. package/android/src/main/java/com/swmansion/rnscreens/common/text/TextAppearanceDefaults.kt +65 -0
  14. package/android/src/main/java/com/swmansion/rnscreens/helpers/PropIconResolver.kt +17 -23
  15. package/android/src/main/java/com/swmansion/rnscreens/legacy/Screen.kt +25 -7
  16. package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStack.kt +2 -0
  17. package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStackFragment.kt +39 -10
  18. package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenViewManager.kt +5 -0
  19. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetAppearanceCoordinator.kt → native/coordinator/FormSheetAppearanceCoordinator.kt} +2 -1
  20. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetBehaviorController.kt → native/coordinator/FormSheetBehaviorController.kt} +74 -19
  21. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetDimensionsCoordinator.kt +159 -0
  22. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetKeyboardCoordinator.kt +101 -0
  23. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetNativeDismissCoordinator.kt +44 -0
  24. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetAvailableHeightProvider.kt +44 -0
  25. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContainer.kt → native/core/FormSheetContainer.kt} +1 -1
  26. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetDialog.kt +115 -0
  27. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetDialogManager.kt +89 -0
  28. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentSizeChangeDelegate.kt → native/interfaces/FormSheetContentSizeChangeDelegate.kt} +1 -1
  29. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentSizeChangeProvider.kt → native/interfaces/FormSheetContentSizeChangeProvider.kt} +1 -1
  30. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetDialogEventEmitter.kt → native/interfaces/FormSheetDialogEventEmitter.kt} +5 -1
  31. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetConfig.kt → native/model/FormSheetConfig.kt} +5 -1
  32. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/model/FormSheetDetents.kt +152 -0
  33. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetAnimatorFactory.kt → native/presentation/FormSheetAnimatorFactory.kt} +9 -10
  34. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetDimmingManager.kt +115 -0
  35. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetDismissalOrigin.kt +22 -0
  36. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetPresentation.kt +173 -0
  37. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetPresentationManager.kt +290 -0
  38. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetPresentationState.kt → native/presentation/FormSheetPresentationState.kt} +2 -2
  39. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetStackRegistry.kt +28 -0
  40. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentWrapper.kt → react/contentwrapper/FormSheetContentWrapper.kt} +3 -1
  41. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentWrapperViewManager.kt → react/contentwrapper/FormSheetContentWrapperViewManager.kt} +1 -1
  42. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetDetentChangedEvent.kt → react/event/FormSheetDetentChangedEvent.kt} +1 -1
  43. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetDidAppearEvent.kt → react/event/FormSheetDidAppearEvent.kt} +1 -1
  44. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetDidDisappearEvent.kt → react/event/FormSheetDidDisappearEvent.kt} +1 -1
  45. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/react/event/FormSheetDismissEvent.kt +29 -0
  46. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetNativeDismissEvent.kt → react/event/FormSheetNativeDismissEvent.kt} +1 -1
  47. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/react/event/FormSheetNativeDismissPreventedEvent.kt +29 -0
  48. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetSyncFlushEvent.kt → react/event/FormSheetSyncFlushEvent.kt} +1 -1
  49. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetWillAppearEvent.kt → react/event/FormSheetWillAppearEvent.kt} +1 -1
  50. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetWillDisappearEvent.kt → react/event/FormSheetWillDisappearEvent.kt} +1 -1
  51. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentView.kt → react/host/FormSheetContentView.kt} +3 -1
  52. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetHost.kt → react/host/FormSheetHost.kt} +6 -1
  53. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetHostEventEmitter.kt → react/host/FormSheetHostEventEmitter.kt} +23 -1
  54. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetHostViewManager.kt → react/host/FormSheetHostViewManager.kt} +13 -2
  55. package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderApplicator.kt +380 -457
  56. package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderBackPressHandler.kt +11 -0
  57. package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderCoordinatorLayout.kt +150 -182
  58. package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderFrameSynchronizer.kt +63 -0
  59. package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderAppBarLayout.kt +240 -0
  60. package/android/src/main/java/com/swmansion/rnscreens/stack/header/{StackHeaderAppBarLayoutBehavior.kt → appbar/StackHeaderAppBarLayoutBehavior.kt} +1 -1
  61. package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderContentScrimDrawable.kt +36 -0
  62. package/android/src/main/java/com/swmansion/rnscreens/stack/header/{StackHeaderScrollingViewBehavior.kt → appbar/StackHeaderScrollingViewBehavior.kt} +1 -1
  63. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderCollapsedTitleGravityMode.kt +6 -0
  64. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfig.kt +192 -167
  65. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigViewManager.kt +393 -13
  66. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationObserver.kt +0 -4
  67. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationProviding.kt +33 -3
  68. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderDelegate.kt +0 -7
  69. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderInvalidationFlags.kt +9 -3
  70. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuApplicator.kt +195 -0
  71. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuController.kt +448 -0
  72. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuDelegate.kt +10 -0
  73. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuMapper.kt +43 -21
  74. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuConfig.kt +8 -0
  75. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuElementConfig.kt → model/StackHeaderToolbarMenuElementConfig.kt} +1 -1
  76. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuGroupConfig.kt → model/StackHeaderToolbarMenuGroupConfig.kt} +1 -1
  77. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuGroupMetadata.kt +11 -0
  78. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemConfig.kt → model/StackHeaderToolbarMenuItemConfig.kt} +2 -4
  79. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemDefaults.kt → model/StackHeaderToolbarMenuItemDefaults.kt} +1 -1
  80. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemIconSource.kt → model/StackHeaderToolbarMenuItemIconSource.kt} +1 -1
  81. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemShowAsAction.kt → model/StackHeaderToolbarMenuItemShowAsAction.kt} +1 -1
  82. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemType.kt → model/StackHeaderToolbarMenuItemType.kt} +1 -1
  83. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuModel.kt +180 -0
  84. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarFieldUpdate.kt → update/StackHeaderToolbarFieldUpdate.kt} +1 -1
  85. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementOptions.kt +84 -0
  86. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementRawUpdate.kt +15 -0
  87. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementUpdate.kt +11 -0
  88. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuIconResolver.kt +18 -0
  89. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuUpdateQueue.kt → update/StackHeaderToolbarMenuUpdateQueue.kt} +24 -52
  90. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuUpdateQueueDelegate.kt +9 -0
  91. package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackContainer.kt +103 -3
  92. package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackHost.kt +13 -0
  93. package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackHostViewManager.kt +14 -0
  94. package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreen.kt +5 -0
  95. package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreenFragment.kt +20 -1
  96. package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreenFragmentDelegate.kt +12 -0
  97. package/android/src/main/java/com/swmansion/rnscreens/tabs/appearance/TabsAppearanceCoordinator.kt +2 -4
  98. package/android/src/main/java/com/swmansion/rnscreens/tabs/container/MenuHelpers.kt +5 -23
  99. package/android/src/main/java/com/swmansion/rnscreens/tabs/container/TabsContainer.kt +46 -25
  100. package/android/src/main/java/com/swmansion/rnscreens/tabs/host/TabsHost.kt +10 -0
  101. package/android/src/main/java/com/swmansion/rnscreens/tabs/host/TabsHostA11yCoordinator.kt +23 -2
  102. package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreen.kt +17 -0
  103. package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenFragment.kt +3 -0
  104. package/android/src/main/java/com/swmansion/rnscreens/utils/DimensionUtils.kt +7 -0
  105. package/android/src/main/java/com/swmansion/rnscreens/utils/StyleUtils.kt +22 -0
  106. package/android/src/main/res/base/layout/rns_collapsing_toolbar_large_available_space.xml +8 -0
  107. package/android/src/main/res/base/layout/rns_collapsing_toolbar_large_entire_space.xml +8 -0
  108. package/android/src/main/res/base/layout/rns_collapsing_toolbar_medium_available_space.xml +8 -0
  109. package/android/src/main/res/base/layout/rns_collapsing_toolbar_medium_entire_space.xml +8 -0
  110. package/common/cpp/react/renderer/components/rnscreens/legacy/RNSScreenShadowNode.cpp +10 -5
  111. package/cpp/legacy/RNSScreenRemovalListener.cpp +31 -1
  112. package/cpp/legacy/RNSScreenRemovalListener.h +18 -3
  113. package/ios/RNSEnums.h +2 -2
  114. package/ios/RNSOrientationProviding.h +0 -2
  115. package/ios/RNSReactMountingTransactionObserving.h +15 -0
  116. package/ios/conversion/RNSConversions.h +7 -108
  117. package/ios/legacy/RNSBarButtonItem.mm +12 -5
  118. package/ios/legacy/RNSFullWindowOverlay.mm +1 -1
  119. package/ios/legacy/RNSModalScreen.mm +1 -1
  120. package/ios/legacy/RNSScreen.h +8 -1
  121. package/ios/legacy/RNSScreen.mm +47 -36
  122. package/ios/legacy/RNSScreenContentWrapper.mm +9 -0
  123. package/ios/legacy/RNSScreenFooter.mm +2 -0
  124. package/ios/legacy/RNSScreenStack.mm +9 -4
  125. package/ios/legacy/RNSScreenStackHeaderConfig.mm +3 -1
  126. package/ios/legacy/RNSScreenStackHeaderSubview.mm +1 -1
  127. package/ios/legacy/RNSScreenWindowTraits.mm +5 -13
  128. package/ios/modals/form-sheet/RNSFormSheetConfigurationApplicator.h +1 -3
  129. package/ios/modals/form-sheet/RNSFormSheetConfigurationApplicator.mm +11 -22
  130. package/ios/modals/form-sheet/RNSFormSheetContentController.h +1 -1
  131. package/ios/modals/form-sheet/RNSFormSheetContentController.mm +7 -18
  132. package/ios/modals/form-sheet/RNSFormSheetContentWrapperComponentView.mm +9 -0
  133. package/ios/modals/form-sheet/RNSFormSheetHostComponentView.mm +4 -4
  134. package/ios/modals/form-sheet/RNSFormSheetHostShadowStateProxy.mm +2 -2
  135. package/ios/modals/form-sheet/RNSFormSheetUpdateFlags.h +3 -0
  136. package/ios/safe-area/RNSSafeAreaViewComponentView.mm +2 -2
  137. package/ios/scroll-to-top-guard/RNSScrollToTopGuard.h +17 -0
  138. package/ios/scroll-to-top-guard/RNSScrollToTopGuard.mm +57 -0
  139. package/ios/scroll-to-top-guard/RNSScrollToTopGuardGestureRecognizer.h +28 -0
  140. package/ios/scroll-to-top-guard/RNSScrollToTopGuardGestureRecognizer.mm +64 -0
  141. package/ios/{conversion → scroll-view-marker/conversion}/RNSConversions-ScrollViewMarker.mm +2 -3
  142. package/ios/split/RNSSplitAppearanceApplicator.h +36 -0
  143. package/ios/split/RNSSplitAppearanceApplicator.mm +182 -0
  144. package/ios/split/RNSSplitAppearanceCoordinator.h +26 -0
  145. package/ios/split/RNSSplitAppearanceCoordinator.mm +27 -0
  146. package/ios/split/RNSSplitAppearanceUpdateFlags.h +14 -0
  147. package/ios/split/RNSSplitHostComponentEventEmitter.h +1 -0
  148. package/ios/split/RNSSplitHostComponentEventEmitter.mm +1 -1
  149. package/ios/split/RNSSplitHostComponentView.h +5 -15
  150. package/ios/split/RNSSplitHostComponentView.mm +56 -7
  151. package/ios/split/RNSSplitHostController.h +105 -0
  152. package/ios/split/RNSSplitHostController.mm +492 -0
  153. package/ios/split/RNSSplitHostProviders.h +67 -0
  154. package/ios/split/RNSSplitNavigationController.h +31 -0
  155. package/ios/split/RNSSplitNavigationController.mm +44 -0
  156. package/ios/split/RNSSplitNavigationControllerFrameObserver.h +32 -0
  157. package/ios/split/RNSSplitNavigationControllerFrameObserver.mm +80 -0
  158. package/ios/split/RNSSplitNavigationControllerFrameOriginChangeDelegate.h +15 -0
  159. package/ios/split/RNSSplitScreenComponentView.h +0 -39
  160. package/ios/split/RNSSplitScreenComponentView.mm +35 -19
  161. package/ios/split/RNSSplitScreenController.h +68 -0
  162. package/ios/split/RNSSplitScreenController.mm +113 -0
  163. package/ios/split/RNSSplitScreenShadowStateProxy.h +1 -40
  164. package/ios/split/RNSSplitScreenShadowStateProxy.mm +1 -26
  165. package/ios/split/conversion/RNSConversions-SplitView.h +56 -0
  166. package/ios/{conversion → split/conversion}/RNSConversions-SplitView.mm +4 -1
  167. package/ios/stack/conversion/RNSConversions-Stack.h +32 -0
  168. package/ios/stack/conversion/RNSConversions-Stack.mm +55 -0
  169. package/ios/stack/header/RNSStackHeaderAppearanceMapper.h +26 -0
  170. package/ios/stack/header/RNSStackHeaderAppearanceMapper.mm +88 -0
  171. package/ios/stack/header/RNSStackHeaderConfigComponentView.h +11 -1
  172. package/ios/stack/header/RNSStackHeaderConfigComponentView.mm +108 -38
  173. package/ios/stack/header/RNSStackHeaderConfigDataProviding.h +9 -0
  174. package/ios/stack/header/RNSStackHeaderConfigShadowStateProxy.mm +1 -1
  175. package/ios/stack/header/RNSStackHeaderIconResolver.mm +7 -0
  176. package/ios/stack/header/RNSStackHeaderItemComponentView.h +3 -1
  177. package/ios/stack/header/RNSStackHeaderItemComponentView.mm +15 -2
  178. package/ios/stack/header/RNSStackHeaderItemDataProviding.h +2 -0
  179. package/ios/stack/header/RNSStackHeaderItemShadowStateProxy.mm +1 -1
  180. package/ios/stack/header/RNSStackHeaderItemSpacerComponentView.mm +2 -1
  181. package/ios/stack/header/RNSStackHeaderMenuCoordinator.h +9 -0
  182. package/ios/stack/header/RNSStackHeaderMenuCoordinator.mm +15 -0
  183. package/ios/stack/header/RNSStackHeaderMenuFinder.h +18 -3
  184. package/ios/stack/header/RNSStackHeaderMenuFinder.mm +21 -3
  185. package/ios/stack/header/RNSStackHeaderMenuMapper.mm +4 -0
  186. package/ios/stack/host/RNSStackHostComponentView.mm +3 -1
  187. package/ios/stack/host/RNSStackNavigationBar.h +25 -0
  188. package/ios/stack/host/RNSStackNavigationBar.mm +80 -0
  189. package/ios/stack/host/RNSStackNavigationBarCoordinator.h +8 -0
  190. package/ios/stack/host/RNSStackNavigationBarCoordinator.mm +11 -0
  191. package/ios/stack/host/RNSStackNavigationController.mm +14 -6
  192. package/ios/stack/host/RNSStackOperation.h +0 -2
  193. package/ios/stack/screen/RNSStackScreenComponentView.mm +9 -4
  194. package/ios/stack/screen/RNSStackScreenController.mm +12 -0
  195. package/ios/stack/screen/RNSStackScreenHeaderCoordinator.h +14 -1
  196. package/ios/stack/screen/RNSStackScreenHeaderCoordinator.mm +159 -28
  197. package/ios/tabs/RNSTabBarAppearanceCoordinator.mm +40 -9
  198. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.h +1 -1
  199. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.mm +4 -1
  200. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryContentComponentView.mm +5 -2
  201. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryEventEmitter.mm +1 -1
  202. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryShadowStateProxy.mm +1 -1
  203. package/ios/tabs/conversion/RNSConversions-Tabs.h +78 -0
  204. package/ios/{conversion → tabs/conversion}/RNSConversions-Tabs.mm +8 -71
  205. package/ios/tabs/extensions/RNSTabsHostComponentView+RNSImageLoader.h +1 -1
  206. package/ios/tabs/host/RNSTabBarController.h +5 -12
  207. package/ios/tabs/host/RNSTabBarController.mm +1 -1
  208. package/ios/tabs/host/RNSTabsHostComponentView.h +2 -0
  209. package/ios/tabs/host/RNSTabsHostComponentView.mm +10 -3
  210. package/ios/tabs/host/RNSTabsHostEventEmitter.mm +1 -1
  211. package/ios/tabs/screen/RNSTabsScreenComponentView.mm +20 -5
  212. package/ios/utils/RNSDefines.h +3 -0
  213. package/lib/commonjs/components/scroll-to-top-guard/ScrollToTopGuard.ios.js +25 -0
  214. package/lib/commonjs/components/scroll-to-top-guard/ScrollToTopGuard.ios.js.map +1 -0
  215. package/lib/commonjs/components/scroll-to-top-guard/ScrollToTopGuard.js +24 -0
  216. package/lib/commonjs/components/scroll-to-top-guard/ScrollToTopGuard.js.map +1 -0
  217. package/lib/commonjs/components/scroll-to-top-guard/index.js +13 -0
  218. package/lib/commonjs/components/scroll-to-top-guard/index.js.map +1 -0
  219. package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js +34 -19
  220. package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js.map +1 -1
  221. package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js +44 -13
  222. package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js.map +1 -1
  223. package/lib/commonjs/components/stack/header/ios/StackHeaderItem.ios.js +1 -22
  224. package/lib/commonjs/components/stack/header/ios/StackHeaderItem.ios.js.map +1 -1
  225. package/lib/commonjs/components/stack/header/ios/iconUtils.ios.js +33 -2
  226. package/lib/commonjs/components/stack/header/ios/iconUtils.ios.js.map +1 -1
  227. package/lib/commonjs/components/stack/header/utils.js +6 -9
  228. package/lib/commonjs/components/stack/header/utils.js.map +1 -1
  229. package/lib/commonjs/components/stack/host/StackHost.js +9 -6
  230. package/lib/commonjs/components/stack/host/StackHost.js.map +1 -1
  231. package/lib/commonjs/components/stack/index.js.map +1 -1
  232. package/lib/commonjs/components/tabs/host/TabsHost.ios.js +1 -0
  233. package/lib/commonjs/components/tabs/host/TabsHost.ios.js.map +1 -1
  234. package/lib/commonjs/experimental/index.js +11 -0
  235. package/lib/commonjs/experimental/index.js.map +1 -1
  236. package/lib/commonjs/fabric/ScrollViewMarkerNativeComponent.js.map +1 -1
  237. package/lib/commonjs/fabric/legacy/FullWindowOverlayNativeComponent.js.map +1 -1
  238. package/lib/commonjs/fabric/legacy/ModalScreenNativeComponent.js.map +1 -1
  239. package/lib/commonjs/fabric/legacy/ScreenContainerNativeComponent.js.map +1 -1
  240. package/lib/commonjs/fabric/legacy/ScreenFooterNativeComponent.js.map +1 -1
  241. package/lib/commonjs/fabric/legacy/ScreenNativeComponent.js.map +1 -1
  242. package/lib/commonjs/fabric/legacy/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  243. package/lib/commonjs/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  244. package/lib/commonjs/fabric/legacy/ScreenStackNativeComponent.js.map +1 -1
  245. package/lib/commonjs/fabric/legacy/SearchBarNativeComponent.js.map +1 -1
  246. package/lib/commonjs/fabric/modals/form-sheet/FormSheetHostNativeComponent.js.map +1 -1
  247. package/lib/commonjs/fabric/safe-area/SafeAreaViewNativeComponent.js.map +1 -1
  248. package/lib/commonjs/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.js +12 -0
  249. package/lib/commonjs/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.js.map +1 -0
  250. package/lib/commonjs/fabric/split/SplitHostNativeComponent.js.map +1 -1
  251. package/lib/commonjs/fabric/split/SplitScreenNativeComponent.js.map +1 -1
  252. package/lib/commonjs/fabric/stack/StackHeaderConfigAndroidNativeComponent.js.map +1 -1
  253. package/lib/commonjs/fabric/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -1
  254. package/lib/commonjs/fabric/stack/StackHeaderItemIOSNativeComponent.js.map +1 -1
  255. package/lib/commonjs/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.js.map +1 -1
  256. package/lib/commonjs/fabric/stack/StackHeaderSubviewAndroidNativeComponent.js.map +1 -1
  257. package/lib/commonjs/fabric/stack/StackHostNativeComponent.js.map +1 -1
  258. package/lib/commonjs/fabric/stack/StackScreenNativeComponent.js.map +1 -1
  259. package/lib/commonjs/fabric/tabs/TabsBottomAccessoryContentNativeComponent.js.map +1 -1
  260. package/lib/commonjs/fabric/tabs/TabsBottomAccessoryNativeComponent.js.map +1 -1
  261. package/lib/commonjs/fabric/tabs/TabsHostAndroidNativeComponent.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.map +1 -1
  265. package/lib/commonjs/flags.js +22 -1
  266. package/lib/commonjs/flags.js.map +1 -1
  267. package/lib/commonjs/legacy/components/Screen.js +6 -1
  268. package/lib/commonjs/legacy/components/Screen.js.map +1 -1
  269. package/lib/commonjs/legacy/components/ScreenStackHeaderConfig.js +5 -0
  270. package/lib/commonjs/legacy/components/ScreenStackHeaderConfig.js.map +1 -1
  271. package/lib/commonjs/legacy/components/ScreenStackItem.js.map +1 -1
  272. package/lib/commonjs/legacy/components/SearchBar.js +16 -16
  273. package/lib/commonjs/legacy/components/SearchBar.js.map +1 -1
  274. package/lib/commonjs/legacy/components/helpers/prepareHeaderBarButtonItems.js +3 -0
  275. package/lib/commonjs/legacy/components/helpers/prepareHeaderBarButtonItems.js.map +1 -1
  276. package/lib/commonjs/legacy/gesture-handler/fabricUtils.js.map +1 -1
  277. package/lib/commonjs/legacy/useTransitionProgress.js.map +1 -1
  278. package/lib/module/components/scroll-to-top-guard/ScrollToTopGuard.ios.js +20 -0
  279. package/lib/module/components/scroll-to-top-guard/ScrollToTopGuard.ios.js.map +1 -0
  280. package/lib/module/components/scroll-to-top-guard/ScrollToTopGuard.js +18 -0
  281. package/lib/module/components/scroll-to-top-guard/ScrollToTopGuard.js.map +1 -0
  282. package/lib/module/components/scroll-to-top-guard/index.js +2 -0
  283. package/lib/module/components/scroll-to-top-guard/index.js.map +1 -0
  284. package/lib/module/components/stack/header/StackHeaderConfig.android.js +35 -20
  285. package/lib/module/components/stack/header/StackHeaderConfig.android.js.map +1 -1
  286. package/lib/module/components/stack/header/StackHeaderConfig.ios.js +48 -17
  287. package/lib/module/components/stack/header/StackHeaderConfig.ios.js.map +1 -1
  288. package/lib/module/components/stack/header/ios/StackHeaderItem.ios.js +1 -22
  289. package/lib/module/components/stack/header/ios/StackHeaderItem.ios.js.map +1 -1
  290. package/lib/module/components/stack/header/ios/iconUtils.ios.js +31 -2
  291. package/lib/module/components/stack/header/ios/iconUtils.ios.js.map +1 -1
  292. package/lib/module/components/stack/header/utils.js +5 -8
  293. package/lib/module/components/stack/header/utils.js.map +1 -1
  294. package/lib/module/components/stack/host/StackHost.js +9 -6
  295. package/lib/module/components/stack/host/StackHost.js.map +1 -1
  296. package/lib/module/components/stack/index.js.map +1 -1
  297. package/lib/module/components/tabs/host/TabsHost.ios.js +1 -0
  298. package/lib/module/components/tabs/host/TabsHost.ios.js.map +1 -1
  299. package/lib/module/experimental/index.js +1 -0
  300. package/lib/module/experimental/index.js.map +1 -1
  301. package/lib/module/fabric/ScrollViewMarkerNativeComponent.js.map +1 -1
  302. package/lib/module/fabric/legacy/FullWindowOverlayNativeComponent.js.map +1 -1
  303. package/lib/module/fabric/legacy/ModalScreenNativeComponent.js.map +1 -1
  304. package/lib/module/fabric/legacy/ScreenContainerNativeComponent.js.map +1 -1
  305. package/lib/module/fabric/legacy/ScreenFooterNativeComponent.js.map +1 -1
  306. package/lib/module/fabric/legacy/ScreenNativeComponent.js.map +1 -1
  307. package/lib/module/fabric/legacy/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  308. package/lib/module/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  309. package/lib/module/fabric/legacy/ScreenStackNativeComponent.js.map +1 -1
  310. package/lib/module/fabric/legacy/SearchBarNativeComponent.js.map +1 -1
  311. package/lib/module/fabric/modals/form-sheet/FormSheetHostNativeComponent.js.map +1 -1
  312. package/lib/module/fabric/safe-area/SafeAreaViewNativeComponent.js.map +1 -1
  313. package/lib/module/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.js +7 -0
  314. package/lib/module/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.js.map +1 -0
  315. package/lib/module/fabric/split/SplitHostNativeComponent.js.map +1 -1
  316. package/lib/module/fabric/split/SplitScreenNativeComponent.js.map +1 -1
  317. package/lib/module/fabric/stack/StackHeaderConfigAndroidNativeComponent.js.map +1 -1
  318. package/lib/module/fabric/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -1
  319. package/lib/module/fabric/stack/StackHeaderItemIOSNativeComponent.js.map +1 -1
  320. package/lib/module/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.js.map +1 -1
  321. package/lib/module/fabric/stack/StackHeaderSubviewAndroidNativeComponent.js.map +1 -1
  322. package/lib/module/fabric/stack/StackHostNativeComponent.js.map +1 -1
  323. package/lib/module/fabric/stack/StackScreenNativeComponent.js.map +1 -1
  324. package/lib/module/fabric/tabs/TabsBottomAccessoryContentNativeComponent.js.map +1 -1
  325. package/lib/module/fabric/tabs/TabsBottomAccessoryNativeComponent.js.map +1 -1
  326. package/lib/module/fabric/tabs/TabsHostAndroidNativeComponent.js.map +1 -1
  327. package/lib/module/fabric/tabs/TabsHostIOSNativeComponent.js.map +1 -1
  328. package/lib/module/fabric/tabs/TabsScreenAndroidNativeComponent.js.map +1 -1
  329. package/lib/module/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -1
  330. package/lib/module/flags.js +22 -1
  331. package/lib/module/flags.js.map +1 -1
  332. package/lib/module/legacy/components/Screen.js +6 -1
  333. package/lib/module/legacy/components/Screen.js.map +1 -1
  334. package/lib/module/legacy/components/ScreenStackHeaderConfig.js +5 -0
  335. package/lib/module/legacy/components/ScreenStackHeaderConfig.js.map +1 -1
  336. package/lib/module/legacy/components/ScreenStackItem.js.map +1 -1
  337. package/lib/module/legacy/components/SearchBar.js +17 -17
  338. package/lib/module/legacy/components/SearchBar.js.map +1 -1
  339. package/lib/module/legacy/components/helpers/prepareHeaderBarButtonItems.js +4 -0
  340. package/lib/module/legacy/components/helpers/prepareHeaderBarButtonItems.js.map +1 -1
  341. package/lib/module/legacy/gesture-handler/fabricUtils.js.map +1 -1
  342. package/lib/module/legacy/useTransitionProgress.js.map +1 -1
  343. package/lib/module/private/hooks/useRenderDebugInfo.js.map +1 -1
  344. package/lib/typescript/components/modals/form-sheet/FormSheet.types.d.ts +3 -3
  345. package/lib/typescript/components/safe-area/SafeAreaView.web.d.ts +5 -2
  346. package/lib/typescript/components/safe-area/SafeAreaView.web.d.ts.map +1 -1
  347. package/lib/typescript/components/scroll-to-top-guard/ScrollToTopGuard.d.ts +15 -0
  348. package/lib/typescript/components/scroll-to-top-guard/ScrollToTopGuard.d.ts.map +1 -0
  349. package/lib/typescript/components/scroll-to-top-guard/ScrollToTopGuard.ios.d.ts +12 -0
  350. package/lib/typescript/components/scroll-to-top-guard/ScrollToTopGuard.ios.d.ts.map +1 -0
  351. package/lib/typescript/components/scroll-to-top-guard/index.d.ts +2 -0
  352. package/lib/typescript/components/scroll-to-top-guard/index.d.ts.map +1 -0
  353. package/lib/typescript/components/stack/header/StackHeaderConfig.android.d.ts.map +1 -1
  354. package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts +639 -20
  355. package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts.map +1 -1
  356. package/lib/typescript/components/stack/header/StackHeaderConfig.ios.d.ts.map +1 -1
  357. package/lib/typescript/components/stack/header/StackHeaderConfig.ios.types.d.ts +239 -2
  358. package/lib/typescript/components/stack/header/StackHeaderConfig.ios.types.d.ts.map +1 -1
  359. package/lib/typescript/components/stack/header/StackHeaderConfig.types.d.ts +2 -2
  360. package/lib/typescript/components/stack/header/StackHeaderConfig.web.d.ts +5 -2
  361. package/lib/typescript/components/stack/header/StackHeaderConfig.web.d.ts.map +1 -1
  362. package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.d.ts.map +1 -1
  363. package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.types.d.ts +2 -0
  364. package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.types.d.ts.map +1 -1
  365. package/lib/typescript/components/stack/header/ios/iconUtils.ios.d.ts +3 -0
  366. package/lib/typescript/components/stack/header/ios/iconUtils.ios.d.ts.map +1 -1
  367. package/lib/typescript/components/stack/header/utils.d.ts +1 -2
  368. package/lib/typescript/components/stack/header/utils.d.ts.map +1 -1
  369. package/lib/typescript/components/stack/host/StackHost.d.ts +1 -1
  370. package/lib/typescript/components/stack/host/StackHost.d.ts.map +1 -1
  371. package/lib/typescript/components/stack/host/StackHost.types.d.ts +26 -2
  372. package/lib/typescript/components/stack/host/StackHost.types.d.ts.map +1 -1
  373. package/lib/typescript/components/stack/host/StackHost.web.d.ts +6 -2
  374. package/lib/typescript/components/stack/host/StackHost.web.d.ts.map +1 -1
  375. package/lib/typescript/components/stack/index.d.ts +2 -2
  376. package/lib/typescript/components/stack/index.d.ts.map +1 -1
  377. package/lib/typescript/components/stack/screen/StackScreen.web.d.ts +5 -2
  378. package/lib/typescript/components/stack/screen/StackScreen.web.d.ts.map +1 -1
  379. package/lib/typescript/components/tabs/host/TabsHost.ios.d.ts.map +1 -1
  380. package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts +16 -0
  381. package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts.map +1 -1
  382. package/lib/typescript/components/tabs/host/TabsHost.types.d.ts +3 -0
  383. package/lib/typescript/components/tabs/host/TabsHost.types.d.ts.map +1 -1
  384. package/lib/typescript/components/tabs/host/TabsHost.web.d.ts +5 -2
  385. package/lib/typescript/components/tabs/host/TabsHost.web.d.ts.map +1 -1
  386. package/lib/typescript/components/tabs/screen/TabsScreen.types.d.ts +7 -3
  387. package/lib/typescript/components/tabs/screen/TabsScreen.types.d.ts.map +1 -1
  388. package/lib/typescript/components/tabs/screen/TabsScreen.web.d.ts +5 -2
  389. package/lib/typescript/components/tabs/screen/TabsScreen.web.d.ts.map +1 -1
  390. package/lib/typescript/experimental/index.d.ts +1 -0
  391. package/lib/typescript/experimental/index.d.ts.map +1 -1
  392. package/lib/typescript/fabric/NativeScreensModule.d.ts +1 -1
  393. package/lib/typescript/fabric/ScrollViewMarkerNativeComponent.d.ts +2 -2
  394. package/lib/typescript/fabric/ScrollViewMarkerNativeComponent.d.ts.map +1 -1
  395. package/lib/typescript/fabric/legacy/FullWindowOverlayNativeComponent.d.ts +2 -2
  396. package/lib/typescript/fabric/legacy/FullWindowOverlayNativeComponent.d.ts.map +1 -1
  397. package/lib/typescript/fabric/legacy/ModalScreenNativeComponent.d.ts +3 -2
  398. package/lib/typescript/fabric/legacy/ModalScreenNativeComponent.d.ts.map +1 -1
  399. package/lib/typescript/fabric/legacy/ScreenContainerNativeComponent.d.ts +2 -2
  400. package/lib/typescript/fabric/legacy/ScreenContainerNativeComponent.d.ts.map +1 -1
  401. package/lib/typescript/fabric/legacy/ScreenContentWrapperNativeComponent.d.ts +2 -2
  402. package/lib/typescript/fabric/legacy/ScreenContentWrapperNativeComponent.d.ts.map +1 -1
  403. package/lib/typescript/fabric/legacy/ScreenFooterNativeComponent.d.ts +2 -2
  404. package/lib/typescript/fabric/legacy/ScreenFooterNativeComponent.d.ts.map +1 -1
  405. package/lib/typescript/fabric/legacy/ScreenNativeComponent.d.ts +3 -2
  406. package/lib/typescript/fabric/legacy/ScreenNativeComponent.d.ts.map +1 -1
  407. package/lib/typescript/fabric/legacy/ScreenNavigationContainerNativeComponent.d.ts +2 -2
  408. package/lib/typescript/fabric/legacy/ScreenNavigationContainerNativeComponent.d.ts.map +1 -1
  409. package/lib/typescript/fabric/legacy/ScreenStackHeaderConfigNativeComponent.d.ts +3 -3
  410. package/lib/typescript/fabric/legacy/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -1
  411. package/lib/typescript/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.d.ts +2 -2
  412. package/lib/typescript/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -1
  413. package/lib/typescript/fabric/legacy/ScreenStackNativeComponent.d.ts +2 -2
  414. package/lib/typescript/fabric/legacy/ScreenStackNativeComponent.d.ts.map +1 -1
  415. package/lib/typescript/fabric/legacy/SearchBarNativeComponent.d.ts +6 -6
  416. package/lib/typescript/fabric/legacy/SearchBarNativeComponent.d.ts.map +1 -1
  417. package/lib/typescript/fabric/modals/form-sheet/FormSheetContentWrapperNativeComponent.d.ts +2 -2
  418. package/lib/typescript/fabric/modals/form-sheet/FormSheetContentWrapperNativeComponent.d.ts.map +1 -1
  419. package/lib/typescript/fabric/modals/form-sheet/FormSheetHostNativeComponent.d.ts +2 -2
  420. package/lib/typescript/fabric/modals/form-sheet/FormSheetHostNativeComponent.d.ts.map +1 -1
  421. package/lib/typescript/fabric/safe-area/SafeAreaViewNativeComponent.d.ts +2 -2
  422. package/lib/typescript/fabric/safe-area/SafeAreaViewNativeComponent.d.ts.map +1 -1
  423. package/lib/typescript/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.d.ts +6 -0
  424. package/lib/typescript/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.d.ts.map +1 -0
  425. package/lib/typescript/fabric/split/SplitHostNativeComponent.d.ts +1 -1
  426. package/lib/typescript/fabric/split/SplitHostNativeComponent.d.ts.map +1 -1
  427. package/lib/typescript/fabric/split/SplitScreenNativeComponent.d.ts +2 -2
  428. package/lib/typescript/fabric/split/SplitScreenNativeComponent.d.ts.map +1 -1
  429. package/lib/typescript/fabric/stack/StackHeaderConfigAndroidNativeComponent.d.ts +53 -0
  430. package/lib/typescript/fabric/stack/StackHeaderConfigAndroidNativeComponent.d.ts.map +1 -1
  431. package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts +27 -2
  432. package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts.map +1 -1
  433. package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts +4 -2
  434. package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts.map +1 -1
  435. package/lib/typescript/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.d.ts +2 -2
  436. package/lib/typescript/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.d.ts.map +1 -1
  437. package/lib/typescript/fabric/stack/StackHeaderSubviewAndroidNativeComponent.d.ts +2 -2
  438. package/lib/typescript/fabric/stack/StackHeaderSubviewAndroidNativeComponent.d.ts.map +1 -1
  439. package/lib/typescript/fabric/stack/StackHostNativeComponent.d.ts +4 -2
  440. package/lib/typescript/fabric/stack/StackHostNativeComponent.d.ts.map +1 -1
  441. package/lib/typescript/fabric/stack/StackScreenNativeComponent.d.ts +2 -2
  442. package/lib/typescript/fabric/stack/StackScreenNativeComponent.d.ts.map +1 -1
  443. package/lib/typescript/fabric/tabs/TabsBottomAccessoryContentNativeComponent.d.ts +2 -2
  444. package/lib/typescript/fabric/tabs/TabsBottomAccessoryContentNativeComponent.d.ts.map +1 -1
  445. package/lib/typescript/fabric/tabs/TabsBottomAccessoryNativeComponent.d.ts +2 -2
  446. package/lib/typescript/fabric/tabs/TabsBottomAccessoryNativeComponent.d.ts.map +1 -1
  447. package/lib/typescript/fabric/tabs/TabsHostAndroidNativeComponent.d.ts +2 -2
  448. package/lib/typescript/fabric/tabs/TabsHostAndroidNativeComponent.d.ts.map +1 -1
  449. package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts +3 -2
  450. package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts.map +1 -1
  451. package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts +2 -2
  452. package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts.map +1 -1
  453. package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts +2 -2
  454. package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts.map +1 -1
  455. package/lib/typescript/flags.d.ts +13 -0
  456. package/lib/typescript/flags.d.ts.map +1 -1
  457. package/lib/typescript/legacy/TransitionProgressContext.d.ts +1 -1
  458. package/lib/typescript/legacy/TransitionProgressContext.d.ts.map +1 -1
  459. package/lib/typescript/legacy/components/Screen.d.ts +5 -3
  460. package/lib/typescript/legacy/components/Screen.d.ts.map +1 -1
  461. package/lib/typescript/legacy/components/Screen.web.d.ts +10 -2
  462. package/lib/typescript/legacy/components/Screen.web.d.ts.map +1 -1
  463. package/lib/typescript/legacy/components/ScreenContainer.web.d.ts +5 -2
  464. package/lib/typescript/legacy/components/ScreenContainer.web.d.ts.map +1 -1
  465. package/lib/typescript/legacy/components/ScreenContentWrapper.web.d.ts +5 -2
  466. package/lib/typescript/legacy/components/ScreenContentWrapper.web.d.ts.map +1 -1
  467. package/lib/typescript/legacy/components/ScreenContentWrapper.windows.d.ts +5 -2
  468. package/lib/typescript/legacy/components/ScreenContentWrapper.windows.d.ts.map +1 -1
  469. package/lib/typescript/legacy/components/ScreenFooter.web.d.ts +10 -3
  470. package/lib/typescript/legacy/components/ScreenFooter.web.d.ts.map +1 -1
  471. package/lib/typescript/legacy/components/ScreenFooter.windows.d.ts +10 -3
  472. package/lib/typescript/legacy/components/ScreenFooter.windows.d.ts.map +1 -1
  473. package/lib/typescript/legacy/components/ScreenStack.web.d.ts +5 -2
  474. package/lib/typescript/legacy/components/ScreenStack.web.d.ts.map +1 -1
  475. package/lib/typescript/legacy/components/ScreenStackHeaderConfig.d.ts +3 -1
  476. package/lib/typescript/legacy/components/ScreenStackHeaderConfig.d.ts.map +1 -1
  477. package/lib/typescript/legacy/components/ScreenStackItem.d.ts +3 -2
  478. package/lib/typescript/legacy/components/ScreenStackItem.d.ts.map +1 -1
  479. package/lib/typescript/legacy/components/SearchBar.d.ts +3 -3
  480. package/lib/typescript/legacy/components/SearchBar.d.ts.map +1 -1
  481. package/lib/typescript/legacy/components/SearchBar.web.d.ts +5 -2
  482. package/lib/typescript/legacy/components/SearchBar.web.d.ts.map +1 -1
  483. package/lib/typescript/legacy/components/helpers/prepareHeaderBarButtonItems.d.ts +15 -12
  484. package/lib/typescript/legacy/components/helpers/prepareHeaderBarButtonItems.d.ts.map +1 -1
  485. package/lib/typescript/legacy/gesture-handler/fabricUtils.d.ts +3 -2
  486. package/lib/typescript/legacy/gesture-handler/fabricUtils.d.ts.map +1 -1
  487. package/lib/typescript/legacy/types.d.ts +25 -5
  488. package/lib/typescript/legacy/types.d.ts.map +1 -1
  489. package/lib/typescript/legacy/useTransitionProgress.d.ts +2 -5
  490. package/lib/typescript/legacy/useTransitionProgress.d.ts.map +1 -1
  491. package/lib/typescript/private/hooks/useRenderDebugInfo.d.ts +2 -2
  492. package/lib/typescript/private/hooks/useRenderDebugInfo.d.ts.map +1 -1
  493. package/package.json +18 -17
  494. package/react-native.config.js +3 -0
  495. package/src/components/modals/form-sheet/FormSheet.types.ts +3 -3
  496. package/src/components/scroll-to-top-guard/ScrollToTopGuard.ios.tsx +17 -0
  497. package/src/components/scroll-to-top-guard/ScrollToTopGuard.tsx +18 -0
  498. package/src/components/scroll-to-top-guard/index.ts +1 -0
  499. package/src/components/stack/header/StackHeaderConfig.android.tsx +48 -23
  500. package/src/components/stack/header/StackHeaderConfig.android.types.ts +660 -20
  501. package/src/components/stack/header/StackHeaderConfig.ios.tsx +77 -23
  502. package/src/components/stack/header/StackHeaderConfig.ios.types.ts +251 -2
  503. package/src/components/stack/header/StackHeaderConfig.types.ts +2 -2
  504. package/src/components/stack/header/ios/StackHeaderItem.ios.tsx +1 -23
  505. package/src/components/stack/header/ios/StackHeaderItem.ios.types.ts +2 -0
  506. package/src/components/stack/header/ios/iconUtils.ios.ts +38 -2
  507. package/src/components/stack/header/utils.ts +6 -11
  508. package/src/components/stack/host/StackHost.tsx +4 -2
  509. package/src/components/stack/host/StackHost.types.ts +28 -4
  510. package/src/components/stack/index.ts +6 -1
  511. package/src/components/tabs/host/TabsHost.ios.tsx +1 -0
  512. package/src/components/tabs/host/TabsHost.ios.types.ts +16 -0
  513. package/src/components/tabs/host/TabsHost.types.ts +3 -0
  514. package/src/components/tabs/screen/TabsScreen.types.ts +7 -3
  515. package/src/experimental/index.ts +1 -0
  516. package/src/fabric/ScrollViewMarkerNativeComponent.ts +8 -2
  517. package/src/fabric/legacy/FullWindowOverlayNativeComponent.ts +6 -2
  518. package/src/fabric/legacy/ModalScreenNativeComponent.ts +8 -2
  519. package/src/fabric/legacy/ScreenContainerNativeComponent.ts +5 -2
  520. package/src/fabric/legacy/ScreenContentWrapperNativeComponent.ts +2 -2
  521. package/src/fabric/legacy/ScreenFooterNativeComponent.ts +5 -2
  522. package/src/fabric/legacy/ScreenNativeComponent.ts +8 -2
  523. package/src/fabric/legacy/ScreenNavigationContainerNativeComponent.ts +2 -2
  524. package/src/fabric/legacy/ScreenStackHeaderConfigNativeComponent.ts +8 -3
  525. package/src/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.ts +6 -2
  526. package/src/fabric/legacy/ScreenStackNativeComponent.ts +10 -2
  527. package/src/fabric/legacy/SearchBarNativeComponent.ts +10 -7
  528. package/src/fabric/modals/form-sheet/FormSheetContentWrapperNativeComponent.ts +2 -2
  529. package/src/fabric/modals/form-sheet/FormSheetHostNativeComponent.ts +7 -2
  530. package/src/fabric/safe-area/SafeAreaViewNativeComponent.ts +6 -2
  531. package/src/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.ts +10 -0
  532. package/src/fabric/split/SplitHostNativeComponent.ts +5 -2
  533. package/src/fabric/split/SplitScreenNativeComponent.ts +6 -2
  534. package/src/fabric/stack/StackHeaderConfigAndroidNativeComponent.ts +81 -1
  535. package/src/fabric/stack/StackHeaderConfigIOSNativeComponent.ts +39 -2
  536. package/src/fabric/stack/StackHeaderItemIOSNativeComponent.ts +4 -1
  537. package/src/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.ts +6 -2
  538. package/src/fabric/stack/StackHeaderSubviewAndroidNativeComponent.ts +6 -2
  539. package/src/fabric/stack/StackHostNativeComponent.ts +15 -3
  540. package/src/fabric/stack/StackScreenNativeComponent.ts +6 -2
  541. package/src/fabric/tabs/TabsBottomAccessoryContentNativeComponent.ts +6 -2
  542. package/src/fabric/tabs/TabsBottomAccessoryNativeComponent.ts +6 -2
  543. package/src/fabric/tabs/TabsHostAndroidNativeComponent.ts +7 -2
  544. package/src/fabric/tabs/TabsHostIOSNativeComponent.ts +8 -2
  545. package/src/fabric/tabs/TabsScreenAndroidNativeComponent.ts +2 -1
  546. package/src/fabric/tabs/TabsScreenIOSNativeComponent.ts +2 -1
  547. package/src/flags.ts +26 -0
  548. package/src/legacy/TransitionProgressContext.tsx +1 -1
  549. package/src/legacy/components/Screen.tsx +14 -6
  550. package/src/legacy/components/ScreenStackHeaderConfig.tsx +7 -1
  551. package/src/legacy/components/ScreenStackItem.tsx +3 -4
  552. package/src/legacy/components/SearchBar.tsx +34 -44
  553. package/src/legacy/components/helpers/prepareHeaderBarButtonItems.ts +7 -1
  554. package/src/legacy/gesture-handler/fabricUtils.ts +5 -2
  555. package/src/legacy/types.ts +28 -5
  556. package/src/legacy/useTransitionProgress.tsx +4 -2
  557. package/src/private/hooks/useRenderDebugInfo.tsx +2 -2
  558. package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingView.kt +0 -83
  559. package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingViewManager.kt +0 -89
  560. package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingViewPointerEvents.kt +0 -18
  561. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetDetents.kt +0 -106
  562. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetDialog.kt +0 -60
  563. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetDialogManager.kt +0 -138
  564. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetDimensionsCoordinator.kt +0 -131
  565. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetNativeDismissCoordinator.kt +0 -25
  566. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetPresentationManager.kt +0 -207
  567. package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderAppBarLayout.kt +0 -113
  568. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuConfig.kt +0 -60
  569. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuElementOptions.kt +0 -32
  570. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuGroupMetadata.kt +0 -16
  571. package/ios/ReactMountingTransactionObserving.swift +0 -7
  572. package/ios/bridging/Swift-Bridging.h +0 -7
  573. package/ios/conversion/RNSConversions-Stack.h +0 -32
  574. package/ios/conversion/RNSConversions-Stack.mm +0 -41
  575. package/ios/conversion/always_false.h +0 -31
  576. package/ios/orientation/RNSOrientationProviding.swift +0 -6
  577. package/ios/orientation/RNSOrientationSwift.swift +0 -14
  578. package/ios/split/RNSSplitAppearanceApplicator.swift +0 -199
  579. package/ios/split/RNSSplitAppearanceCoordinator.swift +0 -26
  580. package/ios/split/RNSSplitAppearanceUpdateFlags.swift +0 -11
  581. package/ios/split/RNSSplitHostController.swift +0 -570
  582. package/ios/split/RNSSplitNavigationController.swift +0 -46
  583. package/ios/split/RNSSplitScreenController.swift +0 -133
  584. package/ios/utils/RNSLog.swift +0 -6
  585. /package/ios/{conversion → scroll-view-marker/conversion}/RNSConversions-ScrollViewMarker.h +0 -0
@@ -2,7 +2,7 @@ import { StackHost } from './host';
2
2
  import { StackScreen } from './screen';
3
3
  import { StackHeaderConfig } from './header';
4
4
 
5
- export type { StackHostProps } from './host';
5
+ export type { StackHostProps, StackHostColorScheme } from './host';
6
6
 
7
7
  export type {
8
8
  OnDismissEventPayload,
@@ -19,6 +19,9 @@ export type {
19
19
  StackHeaderConfigRef,
20
20
  // Android
21
21
  StackHeaderTypeAndroid,
22
+ StackHeaderTitleHorizontalGravityAndroid,
23
+ StackHeaderTitleVerticalGravityAndroid,
24
+ StackHeaderCollapsedTitleGravityModeAndroid,
22
25
  StackHeaderBackgroundSubviewCollapseModeAndroid,
23
26
  StackHeaderToolbarSubviewAndroid,
24
27
  StackHeaderBackgroundSubviewAndroid,
@@ -35,7 +38,9 @@ export type {
35
38
  StackHeaderToolbarMenuItemShowAsActionAndroid,
36
39
  StackHeaderToolbarMenuItemTypeAndroid,
37
40
  // iOS
41
+ StackHeaderBackButtonDisplayModeIOS,
38
42
  StackHeaderConfigPropsIOS,
43
+ StackHeaderAppearanceIOS,
39
44
  StackHeaderInlineItemIOS,
40
45
  StackHeaderInlineCustomItemIOS,
41
46
  StackHeaderTitleCustomItemIOS,
@@ -48,6 +48,7 @@ function TabsHost(props: TabsHostProps) {
48
48
  {...filteredBaseProps}
49
49
  // iOS-specific
50
50
  layoutDirection={direction}
51
+ tabBarHiddenAnimationEnabled={ios?.tabBarHiddenAnimationEnabled}
51
52
  tabBarControllerMode={ios?.tabBarControllerMode}
52
53
  tabBarMinimizeBehavior={ios?.tabBarMinimizeBehavior}
53
54
  tabBarTintColor={ios?.tabBarTintColor}
@@ -34,6 +34,22 @@ export type TabBarMinimizeBehavior =
34
34
  export type TabBarControllerMode = 'automatic' | 'tabBar' | 'tabSidebar';
35
35
 
36
36
  export interface TabsHostPropsIOS {
37
+ /**
38
+ * @summary Whether changes of `tabBarHidden` are animated.
39
+ *
40
+ * When `true`, the tab bar is hidden and shown with the system transition
41
+ * (`UITabBarController.setTabBarHidden(_:animated:)`). When `false`, the
42
+ * tab bar disappears and reappears immediately.
43
+ *
44
+ * Available starting from iOS 18. On earlier versions the tab bar visibility
45
+ * is never animated, regardless of this prop.
46
+ *
47
+ * @default true
48
+ *
49
+ * @platform ios
50
+ * @supported iOS 18 or higher
51
+ */
52
+ tabBarHiddenAnimationEnabled?: boolean | undefined;
37
53
  /**
38
54
  * @summary Specifies the color used for selected tab's text and icon color.
39
55
  *
@@ -181,6 +181,9 @@ export interface TabsHostPropsBase {
181
181
  /**
182
182
  * @summary Hides the tab bar.
183
183
  *
184
+ * On iOS 18+, whether the change is animated is controlled by
185
+ * `ios.tabBarHiddenAnimationEnabled`.
186
+ *
184
187
  * @default false
185
188
  *
186
189
  * @platform android, ios
@@ -110,9 +110,13 @@ export interface TabsScreenPropsBase {
110
110
  * Note that:
111
111
  * - some components (like `SplitHost`) may choose not to query
112
112
  * its child components,
113
- * - Stack v4 implementation **ALWAYS** returns some supported
114
- * orientations (`allButUpsideDown` by default), overriding
115
- * orientation from tab screen.
113
+ * - Stack v4 (legacy) implementation returns some supported orientations,
114
+ * overriding orientation from the tab screen **unless** the Stack v4
115
+ * screen has no explicit `screenOrientation` prop and
116
+ * `featureFlags.experiment.iosOrientationInheritanceFixEnabled` is
117
+ * enabled (the default), in which case it returns `inherit` and no
118
+ * longer overrides the parent (see
119
+ * https://github.com/software-mansion/react-native-screens/pull/4408).
116
120
  *
117
121
  * The following values are currently supported:
118
122
  *
@@ -6,3 +6,4 @@
6
6
  // Components & types
7
7
 
8
8
  export * from '../components/safe-area';
9
+ export * from '../components/scroll-to-top-guard';
@@ -1,6 +1,10 @@
1
1
  'use client';
2
2
 
3
- import type { CodegenTypes as CT, ViewProps } from 'react-native';
3
+ import type {
4
+ CodegenTypes as CT,
5
+ HostComponent,
6
+ ViewProps,
7
+ } from 'react-native';
4
8
  import { codegenNativeComponent } from 'react-native';
5
9
 
6
10
  type ScrollEdgeEffect = 'automatic' | 'hard' | 'soft' | 'hidden';
@@ -12,4 +16,6 @@ interface NativeProps extends ViewProps {
12
16
  bottomScrollEdgeEffect?: CT.WithDefault<ScrollEdgeEffect, 'automatic'>;
13
17
  }
14
18
 
15
- export default codegenNativeComponent<NativeProps>('RNSScrollViewMarker');
19
+ export default codegenNativeComponent<NativeProps>(
20
+ 'RNSScrollViewMarker',
21
+ ) as HostComponent<NativeProps>;
@@ -1,7 +1,11 @@
1
1
  'use client';
2
2
 
3
3
  import { codegenNativeComponent } from 'react-native';
4
- import type { CodegenTypes as CT, ViewProps } from 'react-native';
4
+ import type {
5
+ CodegenTypes as CT,
6
+ HostComponent,
7
+ ViewProps,
8
+ } from 'react-native';
5
9
 
6
10
  // Internal export, not part of stable library API.
7
11
  export interface NativeProps extends ViewProps {
@@ -10,4 +14,4 @@ export interface NativeProps extends ViewProps {
10
14
 
11
15
  export default codegenNativeComponent<NativeProps>('RNSFullWindowOverlay', {
12
16
  interfaceOnly: true,
13
- });
17
+ }) as HostComponent<NativeProps>;
@@ -1,7 +1,12 @@
1
1
  'use client';
2
2
 
3
3
  import { codegenNativeComponent } from 'react-native';
4
- import type { CodegenTypes as CT, ViewProps, ColorValue } from 'react-native';
4
+ import type {
5
+ CodegenTypes as CT,
6
+ HostComponent,
7
+ ViewProps,
8
+ ColorValue,
9
+ } from 'react-native';
5
10
 
6
11
  // eslint-disable-next-line @typescript-eslint/ban-types
7
12
  type ScreenEvent = Readonly<{}>;
@@ -122,8 +127,9 @@ export interface NativeProps extends ViewProps {
122
127
  rightScrollEdgeEffect?: CT.WithDefault<ScrollEdgeEffect, 'automatic'>;
123
128
  topScrollEdgeEffect?: CT.WithDefault<ScrollEdgeEffect, 'automatic'>;
124
129
  synchronousShadowStateUpdatesEnabled?: CT.WithDefault<boolean, true>;
130
+ iosOrientationInheritanceFixEnabled?: CT.WithDefault<boolean, true>;
125
131
  }
126
132
 
127
133
  export default codegenNativeComponent<NativeProps>('RNSModalScreen', {
128
134
  interfaceOnly: true,
129
- });
135
+ }) as HostComponent<NativeProps>;
@@ -1,8 +1,11 @@
1
1
  'use client';
2
2
 
3
3
  import { codegenNativeComponent } from 'react-native';
4
- import type { ViewProps } from 'react-native';
4
+ import type { HostComponent, ViewProps } from 'react-native';
5
5
 
6
6
  interface NativeProps extends ViewProps {}
7
7
 
8
- export default codegenNativeComponent<NativeProps>('RNSScreenContainer', {});
8
+ export default codegenNativeComponent<NativeProps>(
9
+ 'RNSScreenContainer',
10
+ {},
11
+ ) as HostComponent<NativeProps>;
@@ -1,9 +1,9 @@
1
1
  import { codegenNativeComponent } from 'react-native';
2
- import type { ViewProps } from 'react-native';
2
+ import type { HostComponent, ViewProps } from 'react-native';
3
3
 
4
4
  export interface NativeProps extends ViewProps {}
5
5
 
6
6
  export default codegenNativeComponent<NativeProps>(
7
7
  'RNSScreenContentWrapper',
8
8
  {},
9
- );
9
+ ) as HostComponent<NativeProps>;
@@ -1,6 +1,9 @@
1
1
  import { codegenNativeComponent } from 'react-native';
2
- import type { ViewProps } from 'react-native';
2
+ import type { HostComponent, ViewProps } from 'react-native';
3
3
 
4
4
  export interface NativeProps extends ViewProps {}
5
5
 
6
- export default codegenNativeComponent<NativeProps>('RNSScreenFooter', {});
6
+ export default codegenNativeComponent<NativeProps>(
7
+ 'RNSScreenFooter',
8
+ {},
9
+ ) as HostComponent<NativeProps>;
@@ -1,7 +1,12 @@
1
1
  'use client';
2
2
 
3
3
  import { codegenNativeComponent } from 'react-native';
4
- import type { CodegenTypes as CT, ViewProps, ColorValue } from 'react-native';
4
+ import type {
5
+ CodegenTypes as CT,
6
+ HostComponent,
7
+ ViewProps,
8
+ ColorValue,
9
+ } from 'react-native';
5
10
 
6
11
  // eslint-disable-next-line @typescript-eslint/ban-types
7
12
  type ScreenEvent = Readonly<{}>;
@@ -126,8 +131,9 @@ export interface NativeProps extends ViewProps {
126
131
  boolean,
127
132
  true
128
133
  >;
134
+ iosOrientationInheritanceFixEnabled?: CT.WithDefault<boolean, true>;
129
135
  }
130
136
 
131
137
  export default codegenNativeComponent<NativeProps>('RNSScreen', {
132
138
  interfaceOnly: true,
133
- });
139
+ }) as HostComponent<NativeProps>;
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
 
3
3
  import { codegenNativeComponent } from 'react-native';
4
- import type { ViewProps } from 'react-native';
4
+ import type { HostComponent, ViewProps } from 'react-native';
5
5
 
6
6
  interface NativeProps extends ViewProps {}
7
7
 
8
8
  export default codegenNativeComponent<NativeProps>(
9
9
  'RNSScreenNavigationContainer',
10
10
  {},
11
- );
11
+ ) as HostComponent<NativeProps>;
@@ -1,7 +1,12 @@
1
1
  'use client';
2
2
 
3
3
  import { codegenNativeComponent } from 'react-native';
4
- import type { CodegenTypes as CT, ViewProps, ColorValue } from 'react-native';
4
+ import type {
5
+ CodegenTypes as CT,
6
+ HostComponent,
7
+ ViewProps,
8
+ ColorValue,
9
+ } from 'react-native';
5
10
 
6
11
  type DirectionType = 'rtl' | 'ltr';
7
12
 
@@ -47,7 +52,7 @@ export interface NativeProps extends ViewProps {
47
52
  backTitle?: string | undefined;
48
53
  backTitleFontFamily?: string | undefined;
49
54
  backTitleFontSize?: CT.Int32 | undefined;
50
- backTitleVisible?: CT.WithDefault<boolean, 'true'>;
55
+ backTitleVisible?: CT.WithDefault<boolean, true>;
51
56
  color?: ColorValue | undefined;
52
57
  direction?: CT.WithDefault<DirectionType, 'ltr'>;
53
58
  hidden?: boolean | undefined;
@@ -96,4 +101,4 @@ export default codegenNativeComponent<NativeProps>(
96
101
  {
97
102
  interfaceOnly: true,
98
103
  },
99
- );
104
+ ) as HostComponent<NativeProps>;
@@ -1,7 +1,11 @@
1
1
  'use client';
2
2
 
3
3
  import { codegenNativeComponent } from 'react-native';
4
- import type { CodegenTypes as CT, ViewProps } from 'react-native';
4
+ import type {
5
+ CodegenTypes as CT,
6
+ HostComponent,
7
+ ViewProps,
8
+ } from 'react-native';
5
9
 
6
10
  export type HeaderSubviewTypes =
7
11
  | 'back'
@@ -22,4 +26,4 @@ export default codegenNativeComponent<NativeProps>(
22
26
  {
23
27
  interfaceOnly: true,
24
28
  },
25
- );
29
+ ) as HostComponent<NativeProps>;
@@ -1,7 +1,12 @@
1
1
  'use client';
2
2
 
3
3
  import { codegenNativeComponent } from 'react-native';
4
- import type { CodegenTypes as CT, ViewProps, ColorValue } from 'react-native';
4
+ import type {
5
+ CodegenTypes as CT,
6
+ HostComponent,
7
+ ViewProps,
8
+ ColorValue,
9
+ } from 'react-native';
5
10
 
6
11
  // eslint-disable-next-line @typescript-eslint/ban-types
7
12
  type FinishTransitioningEvent = Readonly<{}>;
@@ -14,4 +19,7 @@ export interface NativeProps extends ViewProps {
14
19
  | undefined;
15
20
  }
16
21
 
17
- export default codegenNativeComponent<NativeProps>('RNSScreenStack', {});
22
+ export default codegenNativeComponent<NativeProps>(
23
+ 'RNSScreenStack',
24
+ {},
25
+ ) as HostComponent<NativeProps>;
@@ -76,15 +76,15 @@ export interface NativeProps extends ViewProps {
76
76
  type ComponentType = HostComponent<NativeProps>;
77
77
 
78
78
  interface NativeCommands {
79
- blur: (viewRef: React.ElementRef<ComponentType>) => void;
80
- focus: (viewRef: React.ElementRef<ComponentType>) => void;
81
- clearText: (viewRef: React.ElementRef<ComponentType>) => void;
79
+ blur: (instance: React.ComponentRef<ComponentType>) => void;
80
+ focus: (instance: React.ComponentRef<ComponentType>) => void;
81
+ clearText: (instance: React.ComponentRef<ComponentType>) => void;
82
82
  toggleCancelButton: (
83
- viewRef: React.ElementRef<ComponentType>,
83
+ instance: React.ComponentRef<ComponentType>,
84
84
  flag: boolean,
85
85
  ) => void;
86
- setText: (viewRef: React.ElementRef<ComponentType>, text: string) => void;
87
- cancelSearch: (viewRef: React.ElementRef<ComponentType>) => void;
86
+ setText: (instance: React.ComponentRef<ComponentType>, text: string) => void;
87
+ cancelSearch: (instance: React.ComponentRef<ComponentType>) => void;
88
88
  }
89
89
 
90
90
  export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
@@ -98,4 +98,7 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
98
98
  ],
99
99
  });
100
100
 
101
- export default codegenNativeComponent<NativeProps>('RNSSearchBar', {});
101
+ export default codegenNativeComponent<NativeProps>(
102
+ 'RNSSearchBar',
103
+ {},
104
+ ) as HostComponent<NativeProps>;
@@ -1,10 +1,10 @@
1
1
  'use client';
2
2
 
3
- import type { ViewProps } from 'react-native';
3
+ import type { HostComponent, ViewProps } from 'react-native';
4
4
  import { codegenNativeComponent } from 'react-native';
5
5
 
6
6
  interface NativeProps extends ViewProps {}
7
7
 
8
8
  export default codegenNativeComponent<NativeProps>(
9
9
  'RNSFormSheetContentWrapper',
10
- );
10
+ ) as HostComponent<NativeProps>;
@@ -1,6 +1,11 @@
1
1
  'use client';
2
2
 
3
- import type { CodegenTypes as CT, ColorValue, ViewProps } from 'react-native';
3
+ import type {
4
+ CodegenTypes as CT,
5
+ ColorValue,
6
+ HostComponent,
7
+ ViewProps,
8
+ } from 'react-native';
4
9
  import { codegenNativeComponent } from 'react-native';
5
10
 
6
11
  // eslint-disable-next-line @typescript-eslint/ban-types
@@ -44,4 +49,4 @@ interface NativeProps extends ViewProps {
44
49
 
45
50
  export default codegenNativeComponent<NativeProps>('RNSFormSheetHost', {
46
51
  interfaceOnly: true,
47
- });
52
+ }) as HostComponent<NativeProps>;
@@ -2,7 +2,11 @@
2
2
  // https://github.com/AppAndFlow/react-native-safe-area-context/blob/v5.6.1/src/specs/NativeSafeAreaView.ts
3
3
 
4
4
  import { codegenNativeComponent } from 'react-native';
5
- import type { CodegenTypes as CT, ViewProps } from 'react-native';
5
+ import type {
6
+ CodegenTypes as CT,
7
+ HostComponent,
8
+ ViewProps,
9
+ } from 'react-native';
6
10
 
7
11
  type InsetType = 'all' | 'system' | 'interface';
8
12
 
@@ -21,4 +25,4 @@ export interface NativeProps extends ViewProps {
21
25
 
22
26
  export default codegenNativeComponent<NativeProps>('RNSSafeAreaView', {
23
27
  interfaceOnly: true,
24
- });
28
+ }) as HostComponent<NativeProps>;
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+
3
+ import { codegenNativeComponent } from 'react-native';
4
+ import type { HostComponent, ViewProps } from 'react-native';
5
+
6
+ export interface NativeProps extends ViewProps {}
7
+
8
+ export default codegenNativeComponent<NativeProps>('RNSScrollToTopGuard', {
9
+ excludedPlatforms: ['android'],
10
+ }) as HostComponent<NativeProps>;
@@ -112,7 +112,7 @@ type ComponentType = HostComponent<NativeProps>;
112
112
 
113
113
  interface NativeCommands {
114
114
  showColumn: (
115
- viewRef: React.ElementRef<ComponentType>,
115
+ viewRef: React.ComponentRef<ComponentType>,
116
116
  column: string,
117
117
  ) => void;
118
118
  }
@@ -121,4 +121,7 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
121
121
  supportedCommands: ['showColumn'],
122
122
  });
123
123
 
124
- export default codegenNativeComponent<NativeProps>('RNSSplitHost', {});
124
+ export default codegenNativeComponent<NativeProps>(
125
+ 'RNSSplitHost',
126
+ {},
127
+ ) as HostComponent<NativeProps>;
@@ -1,6 +1,10 @@
1
1
  'use client';
2
2
 
3
- import type { CodegenTypes as CT, ViewProps } from 'react-native';
3
+ import type {
4
+ CodegenTypes as CT,
5
+ HostComponent,
6
+ ViewProps,
7
+ } from 'react-native';
4
8
  import { codegenNativeComponent } from 'react-native';
5
9
 
6
10
  // eslint-disable-next-line @typescript-eslint/ban-types
@@ -21,4 +25,4 @@ interface NativeProps extends ViewProps {
21
25
 
22
26
  export default codegenNativeComponent<NativeProps>('RNSSplitScreen', {
23
27
  interfaceOnly: true,
24
- });
28
+ }) as HostComponent<NativeProps>;
@@ -13,6 +13,14 @@ import type { UnsafeMixed } from '../codegenUtils';
13
13
 
14
14
  type StackHeaderTypeAndroid = 'small' | 'medium' | 'large';
15
15
 
16
+ type StackHeaderTitleHorizontalGravityAndroid = 'start' | 'center' | 'end';
17
+
18
+ type StackHeaderTitleVerticalGravityAndroid = 'top' | 'center' | 'bottom';
19
+
20
+ type StackHeaderCollapsedTitleGravityModeAndroid =
21
+ | 'entireSpace'
22
+ | 'availableSpace';
23
+
16
24
  export type StackHeaderToolbarMenuItemPressEventAndroid = Readonly<{
17
25
  id: string;
18
26
  }>;
@@ -84,6 +92,8 @@ export type StackHeaderToolbarMenuElementAndroid =
84
92
 
85
93
  export interface NativeProps extends ViewProps {
86
94
  title?: string | undefined;
95
+ subtitle?: string | undefined;
96
+ maxLines?: CT.WithDefault<CT.Int32, 1>;
87
97
  hidden?: CT.WithDefault<boolean, false>;
88
98
  transparent?: CT.WithDefault<boolean, false>;
89
99
  backButtonHidden?: CT.WithDefault<boolean, false>;
@@ -91,18 +101,88 @@ export interface NativeProps extends ViewProps {
91
101
  // Android-specific props
92
102
  type?: CT.WithDefault<StackHeaderTypeAndroid, 'small'>;
93
103
 
104
+ titleCentered?: CT.WithDefault<boolean, false>;
105
+ subtitleCentered?: CT.WithDefault<boolean, false>;
106
+
107
+ expandedTitleHorizontalGravity?: CT.WithDefault<
108
+ StackHeaderTitleHorizontalGravityAndroid,
109
+ 'start'
110
+ >;
111
+ expandedTitleVerticalGravity?: CT.WithDefault<
112
+ StackHeaderTitleVerticalGravityAndroid,
113
+ 'bottom'
114
+ >;
115
+ collapsedTitleHorizontalGravity?: CT.WithDefault<
116
+ StackHeaderTitleHorizontalGravityAndroid,
117
+ 'start'
118
+ >;
119
+ collapsedTitleVerticalGravity?: CT.WithDefault<
120
+ StackHeaderTitleVerticalGravityAndroid,
121
+ 'center'
122
+ >;
123
+ collapsedTitleGravityMode?: CT.WithDefault<
124
+ StackHeaderCollapsedTitleGravityModeAndroid,
125
+ 'availableSpace'
126
+ >;
127
+
128
+ contentInsetStart?: CT.WithDefault<CT.Float, -1.0>;
129
+ contentInsetEnd?: CT.WithDefault<CT.Float, -1.0>;
130
+
131
+ titleColor?: ColorValue | undefined;
132
+ titleFontFamily?: string | undefined;
133
+ titleFontSize?: CT.WithDefault<CT.Float, -1.0>;
134
+ titleFontWeight?: string | undefined;
135
+ titleFontStyle?: string | undefined;
136
+ subtitleColor?: ColorValue | undefined;
137
+ subtitleFontFamily?: string | undefined;
138
+ subtitleFontSize?: CT.WithDefault<CT.Float, -1.0>;
139
+ subtitleFontWeight?: string | undefined;
140
+ subtitleFontStyle?: string | undefined;
141
+ expandedTitleColor?: ColorValue | undefined;
142
+ expandedTitleFontFamily?: string | undefined;
143
+ expandedTitleFontSize?: CT.WithDefault<CT.Float, -1.0>;
144
+ expandedTitleFontWeight?: string | undefined;
145
+ expandedTitleFontStyle?: string | undefined;
146
+ collapsedTitleColor?: ColorValue | undefined;
147
+ collapsedTitleFontFamily?: string | undefined;
148
+ collapsedTitleFontSize?: CT.WithDefault<CT.Float, -1.0>;
149
+ collapsedTitleFontWeight?: string | undefined;
150
+ collapsedTitleFontStyle?: string | undefined;
151
+ expandedSubtitleColor?: ColorValue | undefined;
152
+ expandedSubtitleFontFamily?: string | undefined;
153
+ expandedSubtitleFontSize?: CT.WithDefault<CT.Float, -1.0>;
154
+ expandedSubtitleFontWeight?: string | undefined;
155
+ expandedSubtitleFontStyle?: string | undefined;
156
+ collapsedSubtitleColor?: ColorValue | undefined;
157
+ collapsedSubtitleFontFamily?: string | undefined;
158
+ collapsedSubtitleFontSize?: CT.WithDefault<CT.Float, -1.0>;
159
+ collapsedSubtitleFontWeight?: string | undefined;
160
+ collapsedSubtitleFontStyle?: string | undefined;
161
+
94
162
  backButtonTintColorNormal?: ColorValue | undefined;
95
163
  backButtonTintColorPressed?: ColorValue | undefined;
96
164
  backButtonTintColorFocused?: ColorValue | undefined;
97
165
  backButtonDrawableIconResourceName?: string | undefined;
98
166
  backButtonImageIconResource?: ImageSource | undefined;
99
167
 
168
+ overflowIconTintColorNormal?: ColorValue | undefined;
169
+ overflowIconTintColorPressed?: ColorValue | undefined;
170
+ overflowIconTintColorFocused?: ColorValue | undefined;
171
+ overflowIconDrawableIconResourceName?: string | undefined;
172
+ overflowIconImageIconResource?: ImageSource | undefined;
173
+
100
174
  scrollFlagScroll?: CT.WithDefault<boolean, false>;
101
175
  scrollFlagEnterAlways?: CT.WithDefault<boolean, false>;
102
176
  scrollFlagEnterAlwaysCollapsed?: CT.WithDefault<boolean, false>;
103
177
  scrollFlagExitUntilCollapsed?: CT.WithDefault<boolean, false>;
104
178
  scrollFlagSnap?: CT.WithDefault<boolean, false>;
105
179
 
180
+ liftOnScroll?: CT.WithDefault<boolean, true>;
181
+
182
+ backgroundColor?: ColorValue | undefined;
183
+ scrolledBackgroundColor?: ColorValue | undefined;
184
+ statusBarScrimColor?: ColorValue | undefined;
185
+
106
186
  toolbarMenu?: UnsafeMixed<StackHeaderToolbarMenuBaseAndroid> | undefined;
107
187
  toolbarMenuGroupDividerEnabled?: CT.WithDefault<boolean, false>;
108
188
  onToolbarMenuItemPress?:
@@ -142,4 +222,4 @@ export default codegenNativeComponent<NativeProps>(
142
222
  interfaceOnly: true,
143
223
  excludedPlatforms: ['iOS'],
144
224
  },
145
- );
225
+ ) as HostComponent<NativeProps>;
@@ -3,12 +3,38 @@
3
3
  import type {
4
4
  CodegenTypes as CT,
5
5
  HostComponent,
6
+ ProcessedColorValue,
6
7
  ViewProps,
7
8
  } from 'react-native';
8
9
  import { codegenNativeCommands, codegenNativeComponent } from 'react-native';
9
- import { PlatformIconIOS } from './StackHeaderItemIOSNativeComponent';
10
+ import type {
11
+ PlatformIconIOS,
12
+ StackHeaderMenuIOS,
13
+ } from './StackHeaderItemIOSNativeComponent';
10
14
  import { UnsafeMixed } from '../codegenUtils';
11
15
 
16
+ type BackButtonDisplayMode = 'default' | 'generic' | 'minimal';
17
+
18
+ export type HeaderAppearance = {
19
+ titleFontFamily?: string | undefined;
20
+ titleFontSize?: CT.Float | undefined;
21
+ titleFontWeight?: string | undefined;
22
+ titleFontStyle?: string | undefined;
23
+ titleFontColor?: ProcessedColorValue | null | undefined;
24
+
25
+ largeTitleFontFamily?: string | undefined;
26
+ largeTitleFontSize?: CT.Float | undefined;
27
+ largeTitleFontWeight?: string | undefined;
28
+ largeTitleFontStyle?: string | undefined;
29
+ largeTitleFontColor?: ProcessedColorValue | null | undefined;
30
+
31
+ subtitleFontFamily?: string | undefined;
32
+ subtitleFontSize?: CT.Float | undefined;
33
+ subtitleFontWeight?: string | undefined;
34
+ subtitleFontStyle?: string | undefined;
35
+ subtitleFontColor?: ProcessedColorValue | null | undefined;
36
+ };
37
+
12
38
  export type MenuItemPressEvent = Readonly<{ menuItemId: string }>;
13
39
 
14
40
  export type MenuSelectionChangeEvent = Readonly<{
@@ -24,10 +50,21 @@ export interface NativeProps extends ViewProps {
24
50
  backButtonHidden?: CT.WithDefault<boolean, false>;
25
51
 
26
52
  // iOS-specific props
53
+ backButtonTitle?: string | undefined;
54
+ backButtonDisplayMode?: CT.WithDefault<BackButtonDisplayMode, 'default'>;
55
+ backButtonMenuEnabled?: CT.WithDefault<boolean, true>;
56
+
27
57
  largeTitle?: string | undefined;
28
58
  largeSubtitle?: string | undefined;
29
59
  largeTitleEnabled?: CT.WithDefault<boolean, false>;
30
60
 
61
+ prompt?: string | undefined;
62
+
63
+ titleMenu?: UnsafeMixed<StackHeaderMenuIOS> | undefined;
64
+
65
+ standardAppearance?: UnsafeMixed<HeaderAppearance> | undefined;
66
+ scrollEdgeAppearance?: UnsafeMixed<HeaderAppearance> | undefined;
67
+
31
68
  onMenuItemPress?: CT.DirectEventHandler<MenuItemPressEvent> | undefined;
32
69
  onMenuSelectionChange?:
33
70
  | CT.DirectEventHandler<MenuSelectionChangeEvent>
@@ -68,4 +105,4 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
68
105
  export default codegenNativeComponent<NativeProps>('RNSStackHeaderConfigIOS', {
69
106
  interfaceOnly: true,
70
107
  excludedPlatforms: ['android'],
71
- });
108
+ }) as HostComponent<NativeProps>;
@@ -2,6 +2,7 @@
2
2
 
3
3
  import type {
4
4
  CodegenTypes as CT,
5
+ HostComponent,
5
6
  ImageResolvedAssetSource,
6
7
  ViewProps,
7
8
  } from 'react-native';
@@ -69,6 +70,8 @@ export type PlatformIconIOS =
69
70
  export interface NativeProps extends ViewProps {
70
71
  placement?: CT.WithDefault<Placement, 'trailing'>;
71
72
  itemId?: string | undefined;
73
+ identifier?: string | undefined;
74
+ hidesSharedBackground?: CT.WithDefault<boolean, false>;
72
75
  title?: string | undefined;
73
76
  icon?: UnsafeMixed<PlatformIconIOS> | undefined;
74
77
  menu?: UnsafeMixed<StackHeaderMenuIOS> | undefined;
@@ -79,4 +82,4 @@ export interface NativeProps extends ViewProps {
79
82
  export default codegenNativeComponent<NativeProps>('RNSStackHeaderItemIOS', {
80
83
  interfaceOnly: true,
81
84
  excludedPlatforms: ['android'],
82
- });
85
+ }) as HostComponent<NativeProps>;