react-native-screens 5.0.0-alpha.2 → 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 (237) hide show
  1. package/Package.swift +87 -0
  2. package/README.md +0 -7
  3. package/android/src/main/cpp/NativeProxy.cpp +30 -6
  4. package/android/src/main/cpp/NativeProxy.h +7 -1
  5. package/android/src/main/java/com/swmansion/rnscreens/common/container/Container.kt +8 -0
  6. package/android/src/main/java/com/swmansion/rnscreens/common/container/ContainerItem.kt +13 -1
  7. package/android/src/main/java/com/swmansion/rnscreens/common/text/ReactTextAppearance.kt +62 -0
  8. package/android/src/main/java/com/swmansion/rnscreens/common/text/TextAppearance.kt +20 -0
  9. package/android/src/main/java/com/swmansion/rnscreens/common/text/TextAppearanceDefaults.kt +65 -0
  10. package/android/src/main/java/com/swmansion/rnscreens/helpers/PropIconResolver.kt +17 -23
  11. package/android/src/main/java/com/swmansion/rnscreens/legacy/Screen.kt +3 -1
  12. package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStack.kt +2 -0
  13. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetBehaviorController.kt +49 -18
  14. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetDimensionsCoordinator.kt +65 -40
  15. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetKeyboardCoordinator.kt +101 -0
  16. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetNativeDismissCoordinator.kt +0 -6
  17. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetAvailableHeightProvider.kt +44 -0
  18. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetDialog.kt +35 -3
  19. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetDialogManager.kt +33 -106
  20. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/interfaces/FormSheetDialogEventEmitter.kt +2 -0
  21. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/model/FormSheetDetents.kt +61 -15
  22. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetAnimatorFactory.kt +8 -9
  23. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetDimmingManager.kt +115 -0
  24. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetDismissalOrigin.kt +22 -0
  25. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetPresentation.kt +173 -0
  26. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetPresentationManager.kt +141 -49
  27. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetPresentationState.kt +1 -1
  28. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetStackRegistry.kt +28 -0
  29. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/react/event/FormSheetDismissEvent.kt +29 -0
  30. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/react/host/FormSheetHostEventEmitter.kt +7 -0
  31. package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/react/host/FormSheetHostViewManager.kt +2 -0
  32. package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderApplicator.kt +369 -58
  33. package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderBackPressHandler.kt +11 -0
  34. package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderCoordinatorLayout.kt +143 -98
  35. package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderAppBarLayout.kt +155 -23
  36. package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderContentScrimDrawable.kt +36 -0
  37. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderCollapsedTitleGravityMode.kt +6 -0
  38. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfig.kt +170 -167
  39. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigViewManager.kt +385 -12
  40. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationObserver.kt +0 -4
  41. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationProviding.kt +32 -3
  42. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderDelegate.kt +0 -7
  43. package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderInvalidationFlags.kt +7 -2
  44. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuApplicator.kt +27 -280
  45. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuController.kt +448 -0
  46. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuDelegate.kt +10 -0
  47. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuMapper.kt +28 -20
  48. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuConfig.kt +3 -55
  49. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuGroupMetadata.kt +1 -10
  50. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuItemConfig.kt +1 -3
  51. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuModel.kt +180 -0
  52. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementOptions.kt +57 -6
  53. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementRawUpdate.kt +3 -1
  54. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementUpdate.kt +1 -0
  55. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuIconResolver.kt +4 -3
  56. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuUpdateQueue.kt +23 -9
  57. package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackContainer.kt +103 -3
  58. package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackHost.kt +13 -0
  59. package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackHostViewManager.kt +14 -0
  60. package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreen.kt +4 -0
  61. package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreenFragment.kt +20 -1
  62. package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreenFragmentDelegate.kt +12 -0
  63. package/android/src/main/java/com/swmansion/rnscreens/tabs/appearance/TabsAppearanceCoordinator.kt +2 -4
  64. package/android/src/main/java/com/swmansion/rnscreens/tabs/container/MenuHelpers.kt +5 -23
  65. package/android/src/main/java/com/swmansion/rnscreens/tabs/container/TabsContainer.kt +46 -25
  66. package/android/src/main/java/com/swmansion/rnscreens/tabs/host/TabsHost.kt +10 -0
  67. package/android/src/main/java/com/swmansion/rnscreens/tabs/host/TabsHostA11yCoordinator.kt +23 -2
  68. package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreen.kt +17 -0
  69. package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenFragment.kt +3 -0
  70. package/android/src/main/java/com/swmansion/rnscreens/utils/DimensionUtils.kt +7 -0
  71. package/android/src/main/java/com/swmansion/rnscreens/utils/StyleUtils.kt +22 -0
  72. package/android/src/main/res/base/layout/rns_collapsing_toolbar_large_available_space.xml +8 -0
  73. package/android/src/main/res/base/layout/rns_collapsing_toolbar_large_entire_space.xml +8 -0
  74. package/android/src/main/res/base/layout/rns_collapsing_toolbar_medium_available_space.xml +8 -0
  75. package/android/src/main/res/base/layout/rns_collapsing_toolbar_medium_entire_space.xml +8 -0
  76. package/cpp/legacy/RNSScreenRemovalListener.cpp +31 -1
  77. package/cpp/legacy/RNSScreenRemovalListener.h +18 -3
  78. package/ios/RNSEnums.h +2 -0
  79. package/ios/conversion/RNSConversions.h +7 -108
  80. package/ios/legacy/RNSFullWindowOverlay.mm +1 -1
  81. package/ios/legacy/RNSModalScreen.mm +1 -1
  82. package/ios/legacy/RNSScreen.mm +8 -19
  83. package/ios/legacy/RNSScreenStackHeaderConfig.mm +3 -1
  84. package/ios/legacy/RNSScreenStackHeaderSubview.mm +1 -1
  85. package/ios/legacy/RNSScreenWindowTraits.mm +5 -13
  86. package/ios/modals/form-sheet/RNSFormSheetConfigurationApplicator.h +1 -3
  87. package/ios/modals/form-sheet/RNSFormSheetConfigurationApplicator.mm +11 -22
  88. package/ios/modals/form-sheet/RNSFormSheetContentController.h +1 -1
  89. package/ios/modals/form-sheet/RNSFormSheetContentController.mm +7 -18
  90. package/ios/modals/form-sheet/RNSFormSheetHostComponentView.mm +4 -4
  91. package/ios/modals/form-sheet/RNSFormSheetHostShadowStateProxy.mm +2 -2
  92. package/ios/modals/form-sheet/RNSFormSheetUpdateFlags.h +3 -0
  93. package/ios/safe-area/RNSSafeAreaViewComponentView.mm +2 -2
  94. package/ios/{conversion → scroll-view-marker/conversion}/RNSConversions-ScrollViewMarker.mm +2 -3
  95. package/ios/split/RNSSplitAppearanceApplicator.h +4 -4
  96. package/ios/split/RNSSplitAppearanceApplicator.mm +53 -56
  97. package/ios/split/RNSSplitHostComponentEventEmitter.h +1 -0
  98. package/ios/split/RNSSplitHostComponentEventEmitter.mm +1 -1
  99. package/ios/split/RNSSplitHostComponentView.h +5 -15
  100. package/ios/split/RNSSplitHostComponentView.mm +55 -6
  101. package/ios/split/RNSSplitHostController.h +25 -6
  102. package/ios/split/RNSSplitHostController.mm +24 -92
  103. package/ios/split/RNSSplitHostProviders.h +67 -0
  104. package/ios/split/RNSSplitScreenComponentView.h +0 -39
  105. package/ios/split/RNSSplitScreenComponentView.mm +27 -10
  106. package/ios/split/RNSSplitScreenController.h +26 -3
  107. package/ios/split/RNSSplitScreenController.mm +13 -30
  108. package/ios/split/RNSSplitScreenShadowStateProxy.h +1 -40
  109. package/ios/split/RNSSplitScreenShadowStateProxy.mm +1 -26
  110. package/ios/split/conversion/RNSConversions-SplitView.h +56 -0
  111. package/ios/{conversion → split/conversion}/RNSConversions-SplitView.mm +4 -1
  112. package/ios/stack/conversion/RNSConversions-Stack.h +32 -0
  113. package/ios/stack/conversion/RNSConversions-Stack.mm +55 -0
  114. package/ios/stack/header/RNSStackHeaderAppearanceMapper.h +26 -0
  115. package/ios/stack/header/RNSStackHeaderAppearanceMapper.mm +88 -0
  116. package/ios/stack/header/RNSStackHeaderConfigComponentView.h +10 -1
  117. package/ios/stack/header/RNSStackHeaderConfigComponentView.mm +67 -35
  118. package/ios/stack/header/RNSStackHeaderConfigDataProviding.h +6 -0
  119. package/ios/stack/header/RNSStackHeaderConfigShadowStateProxy.mm +1 -1
  120. package/ios/stack/header/RNSStackHeaderIconResolver.mm +7 -0
  121. package/ios/stack/header/RNSStackHeaderItemComponentView.h +3 -1
  122. package/ios/stack/header/RNSStackHeaderItemComponentView.mm +15 -2
  123. package/ios/stack/header/RNSStackHeaderItemDataProviding.h +2 -0
  124. package/ios/stack/header/RNSStackHeaderItemShadowStateProxy.mm +1 -1
  125. package/ios/stack/header/RNSStackHeaderItemSpacerComponentView.mm +2 -1
  126. package/ios/stack/header/RNSStackHeaderMenuMapper.mm +4 -0
  127. package/ios/stack/host/RNSStackNavigationBar.h +25 -0
  128. package/ios/stack/host/RNSStackNavigationBar.mm +80 -0
  129. package/ios/stack/host/RNSStackNavigationBarCoordinator.h +8 -0
  130. package/ios/stack/host/RNSStackNavigationBarCoordinator.mm +11 -0
  131. package/ios/stack/host/RNSStackNavigationController.mm +13 -5
  132. package/ios/stack/host/RNSStackOperation.h +0 -2
  133. package/ios/stack/screen/RNSStackScreenComponentView.mm +9 -2
  134. package/ios/stack/screen/RNSStackScreenController.mm +12 -0
  135. package/ios/stack/screen/RNSStackScreenHeaderCoordinator.h +8 -0
  136. package/ios/stack/screen/RNSStackScreenHeaderCoordinator.mm +98 -16
  137. package/ios/tabs/RNSTabBarAppearanceCoordinator.mm +40 -9
  138. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.h +1 -1
  139. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.mm +1 -1
  140. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryContentComponentView.mm +1 -1
  141. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryEventEmitter.mm +1 -1
  142. package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryShadowStateProxy.mm +1 -1
  143. package/ios/tabs/conversion/RNSConversions-Tabs.h +78 -0
  144. package/ios/{conversion → tabs/conversion}/RNSConversions-Tabs.mm +8 -71
  145. package/ios/tabs/extensions/RNSTabsHostComponentView+RNSImageLoader.h +1 -1
  146. package/ios/tabs/host/RNSTabsHostComponentView.h +2 -0
  147. package/ios/tabs/host/RNSTabsHostComponentView.mm +10 -3
  148. package/ios/tabs/host/RNSTabsHostEventEmitter.mm +1 -1
  149. package/ios/tabs/screen/RNSTabsScreenComponentView.mm +20 -5
  150. package/ios/utils/RNSDefines.h +3 -0
  151. package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js +34 -19
  152. package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js.map +1 -1
  153. package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js +33 -1
  154. package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js.map +1 -1
  155. package/lib/commonjs/components/stack/host/StackHost.js +9 -6
  156. package/lib/commonjs/components/stack/host/StackHost.js.map +1 -1
  157. package/lib/commonjs/components/stack/index.js.map +1 -1
  158. package/lib/commonjs/components/tabs/host/TabsHost.ios.js +1 -0
  159. package/lib/commonjs/components/tabs/host/TabsHost.ios.js.map +1 -1
  160. package/lib/commonjs/fabric/stack/StackHeaderConfigAndroidNativeComponent.js.map +1 -1
  161. package/lib/commonjs/fabric/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -1
  162. package/lib/commonjs/fabric/stack/StackHeaderItemIOSNativeComponent.js.map +1 -1
  163. package/lib/commonjs/fabric/stack/StackHostNativeComponent.js.map +1 -1
  164. package/lib/commonjs/fabric/tabs/TabsHostIOSNativeComponent.js.map +1 -1
  165. package/lib/module/components/stack/header/StackHeaderConfig.android.js +35 -20
  166. package/lib/module/components/stack/header/StackHeaderConfig.android.js.map +1 -1
  167. package/lib/module/components/stack/header/StackHeaderConfig.ios.js +34 -2
  168. package/lib/module/components/stack/header/StackHeaderConfig.ios.js.map +1 -1
  169. package/lib/module/components/stack/host/StackHost.js +9 -6
  170. package/lib/module/components/stack/host/StackHost.js.map +1 -1
  171. package/lib/module/components/stack/index.js.map +1 -1
  172. package/lib/module/components/tabs/host/TabsHost.ios.js +1 -0
  173. package/lib/module/components/tabs/host/TabsHost.ios.js.map +1 -1
  174. package/lib/module/fabric/stack/StackHeaderConfigAndroidNativeComponent.js.map +1 -1
  175. package/lib/module/fabric/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -1
  176. package/lib/module/fabric/stack/StackHeaderItemIOSNativeComponent.js.map +1 -1
  177. package/lib/module/fabric/stack/StackHostNativeComponent.js.map +1 -1
  178. package/lib/module/fabric/tabs/TabsHostIOSNativeComponent.js.map +1 -1
  179. package/lib/typescript/components/modals/form-sheet/FormSheet.types.d.ts +1 -1
  180. package/lib/typescript/components/stack/header/StackHeaderConfig.android.d.ts.map +1 -1
  181. package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts +616 -21
  182. package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts.map +1 -1
  183. package/lib/typescript/components/stack/header/StackHeaderConfig.ios.d.ts.map +1 -1
  184. package/lib/typescript/components/stack/header/StackHeaderConfig.ios.types.d.ts +226 -2
  185. package/lib/typescript/components/stack/header/StackHeaderConfig.ios.types.d.ts.map +1 -1
  186. package/lib/typescript/components/stack/header/StackHeaderConfig.types.d.ts +2 -2
  187. package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.types.d.ts +2 -0
  188. package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.types.d.ts.map +1 -1
  189. package/lib/typescript/components/stack/host/StackHost.d.ts +1 -1
  190. package/lib/typescript/components/stack/host/StackHost.d.ts.map +1 -1
  191. package/lib/typescript/components/stack/host/StackHost.types.d.ts +24 -0
  192. package/lib/typescript/components/stack/host/StackHost.types.d.ts.map +1 -1
  193. package/lib/typescript/components/stack/index.d.ts +2 -2
  194. package/lib/typescript/components/stack/index.d.ts.map +1 -1
  195. package/lib/typescript/components/tabs/host/TabsHost.ios.d.ts.map +1 -1
  196. package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts +16 -0
  197. package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts.map +1 -1
  198. package/lib/typescript/components/tabs/host/TabsHost.types.d.ts +3 -0
  199. package/lib/typescript/components/tabs/host/TabsHost.types.d.ts.map +1 -1
  200. package/lib/typescript/fabric/stack/StackHeaderConfigAndroidNativeComponent.d.ts +52 -0
  201. package/lib/typescript/fabric/stack/StackHeaderConfigAndroidNativeComponent.d.ts.map +1 -1
  202. package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts +25 -1
  203. package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts.map +1 -1
  204. package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts +2 -0
  205. package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts.map +1 -1
  206. package/lib/typescript/fabric/stack/StackHostNativeComponent.d.ts +3 -1
  207. package/lib/typescript/fabric/stack/StackHostNativeComponent.d.ts.map +1 -1
  208. package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts +1 -0
  209. package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts.map +1 -1
  210. package/package.json +8 -7
  211. package/react-native.config.js +3 -0
  212. package/src/components/modals/form-sheet/FormSheet.types.ts +1 -1
  213. package/src/components/stack/header/StackHeaderConfig.android.tsx +48 -23
  214. package/src/components/stack/header/StackHeaderConfig.android.types.ts +637 -21
  215. package/src/components/stack/header/StackHeaderConfig.ios.tsx +45 -1
  216. package/src/components/stack/header/StackHeaderConfig.ios.types.ts +238 -2
  217. package/src/components/stack/header/StackHeaderConfig.types.ts +2 -2
  218. package/src/components/stack/header/ios/StackHeaderItem.ios.types.ts +2 -0
  219. package/src/components/stack/host/StackHost.tsx +4 -2
  220. package/src/components/stack/host/StackHost.types.ts +26 -0
  221. package/src/components/stack/index.ts +6 -1
  222. package/src/components/tabs/host/TabsHost.ios.tsx +1 -0
  223. package/src/components/tabs/host/TabsHost.ios.types.ts +16 -0
  224. package/src/components/tabs/host/TabsHost.types.ts +3 -0
  225. package/src/fabric/stack/StackHeaderConfigAndroidNativeComponent.ts +78 -0
  226. package/src/fabric/stack/StackHeaderConfigIOSNativeComponent.ts +32 -0
  227. package/src/fabric/stack/StackHeaderItemIOSNativeComponent.ts +2 -0
  228. package/src/fabric/stack/StackHostNativeComponent.ts +11 -2
  229. package/src/fabric/tabs/TabsHostIOSNativeComponent.ts +1 -0
  230. package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingView.kt +0 -83
  231. package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingViewManager.kt +0 -89
  232. package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingViewPointerEvents.kt +0 -18
  233. package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuSelectionController.kt +0 -83
  234. package/ios/conversion/RNSConversions-Stack.h +0 -32
  235. package/ios/conversion/RNSConversions-Stack.mm +0 -41
  236. package/ios/conversion/always_false.h +0 -31
  237. /package/ios/{conversion → scroll-view-marker/conversion}/RNSConversions-ScrollViewMarker.h +0 -0
@@ -1,8 +1,11 @@
1
1
  import type { ReactElement } from 'react';
2
- import type { ColorValue } from 'react-native';
2
+ import type { ColorValue, TextStyle } from 'react-native';
3
3
  import type { StackHeaderSubviewCollapseModeAndroid } from './android/StackHeaderSubview.android.types';
4
4
  import type { PlatformIconAndroid } from '../../shared/types';
5
5
  export type StackHeaderTypeAndroid = 'small' | 'medium' | 'large';
6
+ export type StackHeaderTitleHorizontalGravityAndroid = 'start' | 'center' | 'end';
7
+ export type StackHeaderTitleVerticalGravityAndroid = 'top' | 'center' | 'bottom';
8
+ export type StackHeaderCollapsedTitleGravityModeAndroid = 'entireSpace' | 'availableSpace';
6
9
  export type StackHeaderBackgroundSubviewCollapseModeAndroid = StackHeaderSubviewCollapseModeAndroid;
7
10
  export interface StackHeaderToolbarSubviewAndroid {
8
11
  /**
@@ -69,13 +72,6 @@ export interface StackHeaderToolbarMenuItemBaseAndroid {
69
72
  /**
70
73
  * @summary Title of the menu element.
71
74
  *
72
- * @remarks
73
- * If `title` is changed for the element of type `menu` by using the
74
- * `updateToolbarMenuElements` view command, the menu title (`menuTitle`)
75
- * will also be changed to the new title (unless the new title is set to
76
- * `undefined`). In order to keep the custom menu title, you should also
77
- * include `menuTitle` in the view command.
78
- *
79
75
  * @platform android
80
76
  */
81
77
  title?: string | undefined;
@@ -183,6 +179,9 @@ export interface StackHeaderToolbarMenuItemBaseAndroid {
183
179
  * The icon will be visible only if the menu element is shown in the
184
180
  * Toolbar.
185
181
  *
182
+ * An icon set via the `updateToolbarMenuElements` view command takes
183
+ * precedence over this one until the next `toolbarMenu` change.
184
+ *
186
185
  * @platform android
187
186
  */
188
187
  icon?: PlatformIconAndroid | undefined;
@@ -280,6 +279,10 @@ export interface StackHeaderToolbarMenuItemAndroid extends StackHeaderToolbarMen
280
279
  * The initial state does not trigger `onSelectionChange` on
281
280
  * the group at mount time.
282
281
  *
282
+ * A `toolbarMenu` prop change restores the selection to this value.
283
+ * Neither that restore nor a native header rebuild triggers
284
+ * `onSelectionChange`.
285
+ *
283
286
  * @default false
284
287
  * @platform android
285
288
  */
@@ -368,10 +371,8 @@ export interface StackHeaderToolbarMenuAndroid extends StackHeaderToolbarMenuIte
368
371
  * `title`, which controls the label shown in the parent menu's item row.
369
372
  *
370
373
  * @remarks
371
- * If `title` is changed by using the `updateToolbarMenuElements` view
372
- * command, the menu title will also be changed to the new title (unless the
373
- * new title is set to `undefined`). In order to keep the custom menu title,
374
- * you should also include `menuTitle` in the view command.
374
+ * When left unset, the header falls back to `title`; when both are unset,
375
+ * the popup shows no header.
375
376
  *
376
377
  * @platform android
377
378
  */
@@ -394,7 +395,8 @@ export type StackHeaderToolbarMenuElementOptionsAndroid = Partial<Omit<StackHead
394
395
  *
395
396
  * @description
396
397
  * Only applies to `type: 'menu'` elements. Ignored if the target is a regular
397
- * menu item.
398
+ * menu item. Setting it to `undefined` drops the `menuTitle` prop as well,
399
+ * leaving the header to fall back to `title`.
398
400
  *
399
401
  * @platform android
400
402
  */
@@ -434,11 +436,18 @@ export interface StackHeaderConfigCommandsAndroid {
434
436
  * overtaken by an earlier one whose icon happened to load late.
435
437
  *
436
438
  * @remarks
437
- * Updates are applied to the live toolbar: they take effect only while the
438
- * header is shown, and are discarded whenever the menu is rebuilt from the
439
- * `toolbarMenu` prop — whether by a prop change or a structural change such
440
- * as hiding and re-showing the header. They persist across unrelated
441
- * re-renders. An update whose `id` is not in the current menu is ignored.
439
+ * Updates persist for the lifetime of the current `toolbarMenu`
440
+ * configuration: they survive every native header rebuild — an effective
441
+ * color scheme change, a header `type`, `maxLines` or
442
+ * `collapsedTitleGravityMode` change, hiding and re-showing the header,
443
+ * reattaching the screen (e.g. switching tabs) — and unrelated re-renders.
444
+ * Updates sent while the header is hidden are recorded — and emit their
445
+ * selection events — as usual, and take effect when the header is next
446
+ * shown. Only a `toolbarMenu` prop change resets them, dropping the
447
+ * batches still queued as well (see its docs). An update whose `id` is not
448
+ * in the current menu is ignored. An `icon` set via this command takes
449
+ * precedence over the icon declared in `toolbarMenu` until the next
450
+ * `toolbarMenu` change.
442
451
  *
443
452
  * @param updates A single update object or an array of updates.
444
453
  */
@@ -458,6 +467,9 @@ export interface StackHeaderConfigPropsAndroid {
458
467
  * M3 Expressive headers aren't currently supported (there is no stable
459
468
  * `MDC-Android` version yet).
460
469
  *
470
+ * Changing this prop at runtime rebuilds the header. Toolbar menu state
471
+ * survives the rebuild — see `updateToolbarMenuElements`.
472
+ *
461
473
  * @see {@link https://m3.material.io/components/app-bars/overview|Material Design 3: App bars}
462
474
  *
463
475
  * @default small
@@ -544,6 +556,63 @@ export interface StackHeaderConfigPropsAndroid {
544
556
  * @platform android
545
557
  */
546
558
  backButtonIcon?: PlatformIconAndroid | undefined;
559
+ /**
560
+ * @summary Custom icon for the overflow menu button (the three-dots button
561
+ * that opens the toolbar menu's overflow popup).
562
+ *
563
+ * @description
564
+ * When `undefined`, the Material 3 Expressive default overflow icon is used.
565
+ *
566
+ * Supported values:
567
+ * - `{ type: 'imageSource', imageSource }`
568
+ * Uses an image from the provided resource.
569
+ *
570
+ * Remarks: `imageSource` type doesn't support SVGs on Android.
571
+ * For loading SVGs use `drawableResource` type.
572
+ *
573
+ * - `{ type: 'drawableResource', name }`
574
+ * Uses a drawable resource with the given name.
575
+ *
576
+ * Remarks: Requires passing a drawable to resources via Android Studio.
577
+ *
578
+ * @platform android
579
+ */
580
+ overflowIcon?: PlatformIconAndroid | undefined;
581
+ /**
582
+ * @summary Tint color applied to the overflow menu icon in its normal state.
583
+ *
584
+ * @description
585
+ * When `undefined`, the default tint (the Material theme's menu icon color)
586
+ * is used. This applies to the default overflow icon and `drawableResource`
587
+ * icons that have an associated tint. For `imageSource` icons, no tint is
588
+ * applied by default.
589
+ *
590
+ * @platform android
591
+ */
592
+ overflowIconTintColorNormal?: ColorValue | undefined;
593
+ /**
594
+ * @summary Tint color applied to the overflow menu icon when it is pressed.
595
+ *
596
+ * @remarks
597
+ * Due to native platform limitations, if you set this prop, you must also
598
+ * provide `overflowIconTintColorNormal`. Otherwise, the icon will become
599
+ * transparent.
600
+ *
601
+ * @platform android
602
+ */
603
+ overflowIconTintColorPressed?: ColorValue | undefined;
604
+ /**
605
+ * @summary Tint color applied to the overflow menu icon when it is focused
606
+ * (e.g. by keyboard navigation).
607
+ *
608
+ * @remarks
609
+ * Due to native platform limitations, if you set this prop, you must also
610
+ * provide `overflowIconTintColorNormal`. Otherwise, the icon will become
611
+ * transparent.
612
+ *
613
+ * @platform android
614
+ */
615
+ overflowIconTintColorFocused?: ColorValue | undefined;
547
616
  /**
548
617
  * @summary Whether the header reacts to nested scroll. Required for any
549
618
  * other `scrollFlag*` prop to take effect.
@@ -638,7 +707,8 @@ export interface StackHeaderConfigPropsAndroid {
638
707
  * Material `CollapsingToolbarLayout` uses a fade title-collapse mode that
639
708
  * installs its own content scrim and disables the app bar's lift-on-scroll,
640
709
  * so this prop has no effect there. The collapsed appearance of those headers
641
- * is instead controlled by that content scrim, which is not exposed yet.
710
+ * is instead controlled by that content scrim — see
711
+ * {@link scrolledBackgroundColor}.
642
712
  *
643
713
  * Has no effect while the header is `transparent` (there is no scrolling
644
714
  * content behavior installed in that mode).
@@ -648,6 +718,72 @@ export interface StackHeaderConfigPropsAndroid {
648
718
  * @platform android
649
719
  */
650
720
  liftOnScroll?: boolean | undefined;
721
+ /**
722
+ * @summary Background color of the header.
723
+ *
724
+ * @description
725
+ * Applies to all header types. For `medium` / `large` headers this is the
726
+ * color of the expanded state — the collapsed state color is controlled by
727
+ * {@link scrolledBackgroundColor}.
728
+ *
729
+ * @remarks
730
+ * If value is not provided, falls back to Material's default.
731
+ *
732
+ * @platform android
733
+ */
734
+ backgroundColor?: ColorValue | undefined;
735
+ /**
736
+ * @summary Background color of the header when content is scrolled beneath
737
+ * it.
738
+ *
739
+ * @description
740
+ * For the `small` header, this is the lift-on-scroll target color: when
741
+ * content is scrolled beneath the app bar, the background animates from
742
+ * {@link backgroundColor} to this color. Requires {@link liftOnScroll}.
743
+ *
744
+ * For `medium` / `large` headers, this is the color of the content scrim
745
+ * that fades in as the header collapses. The scrim is drawn above the
746
+ * header background (and the `backgroundSubview`, if any) but below the
747
+ * toolbar content.
748
+ *
749
+ * @remarks
750
+ * A translucent color is composited over the header background instead of
751
+ * replacing it.
752
+ *
753
+ * If value is not provided, falls back to Material's default.
754
+ *
755
+ * @platform android
756
+ */
757
+ scrolledBackgroundColor?: ColorValue | undefined;
758
+ /**
759
+ * @summary Color of the scrim drawn in the status-bar area, masking header
760
+ * content that scrolls under the status bar in edge-to-edge apps.
761
+ *
762
+ * @description
763
+ * For the `small` header, the scrim is a constant strip pinned to the top of
764
+ * the window, drawn above the toolbar content. When not provided, the strip
765
+ * follows the header's effective background color: {@link backgroundColor} at
766
+ * rest, animating together with the lift-on-scroll transition towards
767
+ * {@link scrolledBackgroundColor}. An explicit color is applied statically,
768
+ * without tracking.
769
+ *
770
+ * For `medium` / `large` headers, the scrim fades in and out together with
771
+ * the content scrim as the header collapses. When not provided, it matches
772
+ * the content scrim color ({@link scrolledBackgroundColor}).
773
+ *
774
+ * Set to `'transparent'` to disable the scrim entirely.
775
+ *
776
+ * @remarks
777
+ * The default scrim is installed only when the color it follows resolves to
778
+ * a fully opaque color; translucent headers stay see-through. An explicit
779
+ * translucent color is honored and composites over the header background in
780
+ * the status-bar area (for `medium` / `large` headers the content scrim is
781
+ * excluded from that area while a scrim is installed, so the two scrims
782
+ * never stack).
783
+ *
784
+ * @platform android
785
+ */
786
+ statusBarScrimColor?: ColorValue | undefined;
651
787
  /**
652
788
  * @summary Toolbar menu configuration.
653
789
  *
@@ -656,8 +792,19 @@ export interface StackHeaderConfigPropsAndroid {
656
792
  * want to change some property in runtime, use `updateToolbarMenuElements`
657
793
  * view command.
658
794
  *
659
- * Changing this prop in runtime will result in full toolbar menu rebuild.
660
- * Any prior changes applied via `updateToolbarMenuElements` will be lost.
795
+ * Changing this prop at runtime rebuilds the toolbar menu and resets all
796
+ * of its runtime state: checkbox/radio selections return to their
797
+ * `initialToggleState` and every change applied via
798
+ * `updateToolbarMenuElements` is discarded, including batches still
799
+ * waiting in the queue (e.g. for an icon download). Any real change
800
+ * counts, even one only swapping an item's icon; re-sending an identical
801
+ * menu is a no-op and preserves the state.
802
+ *
803
+ * An invalid menu is rejected — for example duplicate item or group ids, a
804
+ * `groupId` that is not declared at the same menu level, or more than one
805
+ * `initialToggleState` in a single-selection group. The menu is validated
806
+ * when the prop is set, and a rejected menu leaves the previous one in
807
+ * effect.
661
808
  *
662
809
  * @platform android
663
810
  */
@@ -674,5 +821,453 @@ export interface StackHeaderConfigPropsAndroid {
674
821
  * @supported API 28 or higher
675
822
  */
676
823
  toolbarMenuGroupDividerEnabled?: boolean | undefined;
824
+ /**
825
+ * @summary Horizontally centers the title within the app bar.
826
+ *
827
+ * @remarks
828
+ * Applies to the `small` header only; ignored for `medium` / `large` (use
829
+ * `expandedTitleHorizontalGravity` / `collapsedTitleHorizontalGravity`
830
+ * instead). The title is centered independently of the subtitle. Combining
831
+ * a centered title with left and/or center subviews is not recommended — they
832
+ * may overlap or be laid out incorrectly.
833
+ *
834
+ * @default false
835
+ * @platform android
836
+ */
837
+ titleCentered?: boolean | undefined;
838
+ /**
839
+ * @summary Horizontally centers the subtitle within the app bar.
840
+ *
841
+ * @remarks
842
+ * Applies to the `small` header only. The subtitle is centered independently
843
+ * of the title. See {@link titleCentered}.
844
+ *
845
+ * @default false
846
+ * @platform android
847
+ */
848
+ subtitleCentered?: boolean | undefined;
849
+ /**
850
+ * @summary Horizontal alignment of the title (and subtitle) in the expanded
851
+ * state.
852
+ *
853
+ * @remarks
854
+ * Applies to `medium` / `large` headers only; ignored for `small` (use
855
+ * `titleCentered` instead). The subtitle always follows the title's
856
+ * alignment.
857
+ *
858
+ * @default start
859
+ * @platform android
860
+ */
861
+ expandedTitleHorizontalGravity?: StackHeaderTitleHorizontalGravityAndroid | undefined;
862
+ /**
863
+ * @summary Vertical alignment of the title (and subtitle) in the expanded
864
+ * state.
865
+ *
866
+ * @remarks
867
+ * Applies to `medium` / `large` headers only; ignored for `small`.
868
+ *
869
+ * @default bottom
870
+ * @platform android
871
+ */
872
+ expandedTitleVerticalGravity?: StackHeaderTitleVerticalGravityAndroid | undefined;
873
+ /**
874
+ * @summary Horizontal alignment of the title (and subtitle) in the collapsed
875
+ * state.
876
+ *
877
+ * @remarks
878
+ * Applies to `medium` / `large` headers only; ignored for `small`. The
879
+ * subtitle always follows the title's alignment. `center` is further affected
880
+ * by `collapsedTitleGravityMode`.
881
+ *
882
+ * @default start
883
+ * @platform android
884
+ */
885
+ collapsedTitleHorizontalGravity?: StackHeaderTitleHorizontalGravityAndroid | undefined;
886
+ /**
887
+ * @summary Vertical alignment of the title (and subtitle) in the collapsed
888
+ * state.
889
+ *
890
+ * @remarks
891
+ * Applies to `medium` / `large` headers only; ignored for `small`.
892
+ *
893
+ * @default center
894
+ * @platform android
895
+ */
896
+ collapsedTitleVerticalGravity?: StackHeaderTitleVerticalGravityAndroid | undefined;
897
+ /**
898
+ * @summary Anchor used when resolving the collapsed title's horizontal
899
+ * gravity.
900
+ *
901
+ * @description
902
+ * The following values are available:
903
+ * - `availableSpace` - gravity is computed over the space left after the
904
+ * navigation icon, menu and subviews are laid out,
905
+ * - `entireSpace` - gravity is computed over the whole app bar, so a centered
906
+ * title is centered relative to the app bar and pushed aside only if it
907
+ * would overlap another view.
908
+ *
909
+ * @remarks
910
+ * Applies to `medium` / `large` headers only and affects only the collapsed
911
+ * state; it is only visually meaningful with
912
+ * `collapsedTitleHorizontalGravity: 'center'`.
913
+ *
914
+ * Because the underlying Material field is set at construction time, changing
915
+ * this prop rebuilds the header.
916
+ *
917
+ * If the header is laid out during a screen transition, due to a native bug,
918
+ * the title and the subtitle might be laid out incorrectly when `entireSpace`
919
+ * gravity mode is used.
920
+ *
921
+ * @default availableSpace
922
+ * @platform android
923
+ */
924
+ collapsedTitleGravityMode?: StackHeaderCollapsedTitleGravityModeAndroid | undefined;
925
+ /**
926
+ * @summary Maximum number of lines for the expanded title and subtitle.
927
+ *
928
+ * @description
929
+ * A single shared value: the same limit applies to both the expanded title
930
+ * and the expanded subtitle. Text exceeding the limit is ellipsized.
931
+ *
932
+ * @remarks
933
+ * Applies to `medium` / `large` headers only; ignored for `small`. The
934
+ * collapsed title is always a single line regardless of this value.
935
+ *
936
+ * A value less than `1` is invalid and falls back to `1`.
937
+ *
938
+ * Changing this value at runtime rebuilds the header. This is required due to
939
+ * a native platform limitation.
940
+ *
941
+ * @default 1
942
+ * @platform android
943
+ */
944
+ maxLines?: number | undefined;
945
+ /**
946
+ * @summary Start inset of the toolbar.
947
+ *
948
+ * @description
949
+ * The inset is a minimum: the navigation icon is positioned before it is
950
+ * applied and is not bounded by it, so the content area starts at whichever
951
+ * reaches further from the edge — the navigation icon's trailing edge or this
952
+ * inset. A back button usually wins, which makes this prop inert while one is
953
+ * visible.
954
+ *
955
+ * @remarks
956
+ * Applies to all header types. On `medium` / `large` it affects the collapsed
957
+ * title only.
958
+ *
959
+ * By default, native platform applies non-zero inset which makes centered
960
+ * collapsed title look off-center when `collapsedTitleGravityMode:
961
+ * 'availableSpace'` is used.
962
+ *
963
+ * If value is not provided, falls back to Material's default.
964
+ *
965
+ * @platform android
966
+ */
967
+ contentInsetStart?: number | undefined;
968
+ /**
969
+ * @summary End inset of the toolbar content area.
970
+ *
971
+ * @remarks
972
+ * The end-side counterpart of `contentInsetStart`. Applies to all header
973
+ * types. Like its start-side counterpart it is a minimum, so it is inert
974
+ * while the toolbar menu shows items that already reach further in.
975
+ *
976
+ * If value is not provided, falls back to Material's default.
977
+ *
978
+ * @platform android
979
+ */
980
+ contentInsetEnd?: number | undefined;
981
+ /**
982
+ * @summary Color of the title text. Applies to `small` header only.
983
+ *
984
+ * @remarks
985
+ * If value is not provided, falls back to Material's default.
986
+ *
987
+ * @platform android
988
+ */
989
+ titleColor?: ColorValue | undefined;
990
+ /**
991
+ * @summary Font family of the title text. Applies to `small` header only.
992
+ *
993
+ * @remarks
994
+ * If value is not provided, falls back to Material's default.
995
+ *
996
+ * @platform android
997
+ */
998
+ titleFontFamily?: TextStyle['fontFamily'] | undefined;
999
+ /**
1000
+ * @summary Font size (SP) of the title text. Applies to `small` header only.
1001
+ *
1002
+ * @remarks
1003
+ * If value is not provided, falls back to Material's default.
1004
+ *
1005
+ * @platform android
1006
+ */
1007
+ titleFontSize?: TextStyle['fontSize'] | undefined;
1008
+ /**
1009
+ * @summary Font weight of the title text. Applies to `small` header only.
1010
+ *
1011
+ * @remarks
1012
+ * If value is not provided, falls back to Material's default.
1013
+ *
1014
+ * @platform android
1015
+ */
1016
+ titleFontWeight?: TextStyle['fontWeight'] | undefined;
1017
+ /**
1018
+ * @summary Font style of the title text. Applies to `small` header only.
1019
+ *
1020
+ * @remarks
1021
+ * If value is not provided, falls back to Material's default.
1022
+ *
1023
+ * @platform android
1024
+ */
1025
+ titleFontStyle?: TextStyle['fontStyle'] | undefined;
1026
+ /**
1027
+ * @summary Color of the subtitle text. Applies to `small` header only.
1028
+ *
1029
+ * @remarks
1030
+ * If value is not provided, falls back to Material's default.
1031
+ *
1032
+ * @platform android
1033
+ */
1034
+ subtitleColor?: ColorValue | undefined;
1035
+ /**
1036
+ * @summary Font family of the subtitle text. Applies to `small` header only.
1037
+ *
1038
+ * @remarks
1039
+ * If value is not provided, falls back to Material's default.
1040
+ *
1041
+ * @platform android
1042
+ */
1043
+ subtitleFontFamily?: TextStyle['fontFamily'] | undefined;
1044
+ /**
1045
+ * @summary Font size (SP) of the subtitle text. Applies to `small`
1046
+ * header only.
1047
+ *
1048
+ * @remarks
1049
+ * If value is not provided, falls back to Material's default.
1050
+ *
1051
+ * @platform android
1052
+ */
1053
+ subtitleFontSize?: TextStyle['fontSize'] | undefined;
1054
+ /**
1055
+ * @summary Font weight of the subtitle text. Applies to `small` header only.
1056
+ *
1057
+ * @remarks
1058
+ * If value is not provided, falls back to Material's default.
1059
+ *
1060
+ * @platform android
1061
+ */
1062
+ subtitleFontWeight?: TextStyle['fontWeight'] | undefined;
1063
+ /**
1064
+ * @summary Font style of the subtitle text. Applies to `small` header only.
1065
+ *
1066
+ * @remarks
1067
+ * If value is not provided, falls back to Material's default.
1068
+ *
1069
+ * @platform android
1070
+ */
1071
+ subtitleFontStyle?: TextStyle['fontStyle'] | undefined;
1072
+ /**
1073
+ * @summary Color of the expanded title text. Applies to `medium` and
1074
+ * `large` headers only.
1075
+ *
1076
+ * @remarks
1077
+ * If value is not provided, falls back to Material's default.
1078
+ *
1079
+ * @platform android
1080
+ */
1081
+ expandedTitleColor?: ColorValue | undefined;
1082
+ /**
1083
+ * @summary Font family of the expanded title text. Applies to `medium`
1084
+ * and `large` headers only.
1085
+ *
1086
+ * @remarks
1087
+ * If value is not provided, falls back to Material's default.
1088
+ *
1089
+ * @platform android
1090
+ */
1091
+ expandedTitleFontFamily?: TextStyle['fontFamily'] | undefined;
1092
+ /**
1093
+ * @summary Font size (SP) of the expanded title text. Applies to
1094
+ * `medium` and `large` headers only.
1095
+ *
1096
+ * @remarks
1097
+ * If value is not provided, falls back to Material's default.
1098
+ *
1099
+ * @platform android
1100
+ */
1101
+ expandedTitleFontSize?: TextStyle['fontSize'] | undefined;
1102
+ /**
1103
+ * @summary Font weight of the expanded title text. Applies to `medium`
1104
+ * and `large` headers only.
1105
+ *
1106
+ * @remarks
1107
+ * If value is not provided, falls back to Material's default.
1108
+ *
1109
+ * @platform android
1110
+ */
1111
+ expandedTitleFontWeight?: TextStyle['fontWeight'] | undefined;
1112
+ /**
1113
+ * @summary Font style of the expanded title text. Applies to `medium`
1114
+ * and `large` headers only.
1115
+ *
1116
+ * @remarks
1117
+ * If value is not provided, falls back to Material's default.
1118
+ *
1119
+ * @platform android
1120
+ */
1121
+ expandedTitleFontStyle?: TextStyle['fontStyle'] | undefined;
1122
+ /**
1123
+ * @summary Color of the collapsed title text. Applies to `medium` and
1124
+ * `large` headers only.
1125
+ *
1126
+ * @remarks
1127
+ * If value is not provided, falls back to Material's default.
1128
+ *
1129
+ * @platform android
1130
+ */
1131
+ collapsedTitleColor?: ColorValue | undefined;
1132
+ /**
1133
+ * @summary Font family of the collapsed title text. Applies to `medium`
1134
+ * and `large` headers only.
1135
+ *
1136
+ * @remarks
1137
+ * If value is not provided, falls back to Material's default.
1138
+ *
1139
+ * @platform android
1140
+ */
1141
+ collapsedTitleFontFamily?: TextStyle['fontFamily'] | undefined;
1142
+ /**
1143
+ * @summary Font size (SP) of the collapsed title text. Applies to
1144
+ * `medium` and `large` headers only.
1145
+ *
1146
+ * @remarks
1147
+ * If value is not provided, falls back to Material's default.
1148
+ *
1149
+ * @platform android
1150
+ */
1151
+ collapsedTitleFontSize?: TextStyle['fontSize'] | undefined;
1152
+ /**
1153
+ * @summary Font weight of the collapsed title text. Applies to `medium`
1154
+ * and `large` headers only.
1155
+ *
1156
+ * @remarks
1157
+ * If value is not provided, falls back to Material's default.
1158
+ *
1159
+ * @platform android
1160
+ */
1161
+ collapsedTitleFontWeight?: TextStyle['fontWeight'] | undefined;
1162
+ /**
1163
+ * @summary Font style of the collapsed title text. Applies to `medium`
1164
+ * and `large` headers only.
1165
+ *
1166
+ * @remarks
1167
+ * If value is not provided, falls back to Material's default.
1168
+ *
1169
+ * @platform android
1170
+ */
1171
+ collapsedTitleFontStyle?: TextStyle['fontStyle'] | undefined;
1172
+ /**
1173
+ * @summary Color of the expanded subtitle text. Applies to `medium`
1174
+ * and `large` headers only.
1175
+ *
1176
+ * @remarks
1177
+ * If value is not provided, falls back to Material's default.
1178
+ *
1179
+ * @platform android
1180
+ */
1181
+ expandedSubtitleColor?: ColorValue | undefined;
1182
+ /**
1183
+ * @summary Font family of the expanded subtitle text. Applies to
1184
+ * `medium` and `large` headers only.
1185
+ *
1186
+ * @remarks
1187
+ * If value is not provided, falls back to Material's default.
1188
+ *
1189
+ * @platform android
1190
+ */
1191
+ expandedSubtitleFontFamily?: TextStyle['fontFamily'] | undefined;
1192
+ /**
1193
+ * @summary Font size (SP) of the expanded subtitle text. Applies to
1194
+ * `medium` and `large` headers only.
1195
+ *
1196
+ * @remarks
1197
+ * If value is not provided, falls back to Material's default.
1198
+ *
1199
+ * @platform android
1200
+ */
1201
+ expandedSubtitleFontSize?: TextStyle['fontSize'] | undefined;
1202
+ /**
1203
+ * @summary Font weight of the expanded subtitle text. Applies to
1204
+ * `medium` and `large` headers only.
1205
+ *
1206
+ * @remarks
1207
+ * If value is not provided, falls back to Material's default.
1208
+ *
1209
+ * @platform android
1210
+ */
1211
+ expandedSubtitleFontWeight?: TextStyle['fontWeight'] | undefined;
1212
+ /**
1213
+ * @summary Font style of the expanded subtitle text. Applies to
1214
+ * `medium` and `large` headers only.
1215
+ *
1216
+ * @remarks
1217
+ * If value is not provided, falls back to Material's default.
1218
+ *
1219
+ * @platform android
1220
+ */
1221
+ expandedSubtitleFontStyle?: TextStyle['fontStyle'] | undefined;
1222
+ /**
1223
+ * @summary Color of the collapsed subtitle text. Applies to `medium`
1224
+ * and `large` headers only.
1225
+ *
1226
+ * @remarks
1227
+ * If value is not provided, falls back to Material's default.
1228
+ *
1229
+ * @platform android
1230
+ */
1231
+ collapsedSubtitleColor?: ColorValue | undefined;
1232
+ /**
1233
+ * @summary Font family of the collapsed subtitle text. Applies to
1234
+ * `medium` and `large` headers only.
1235
+ *
1236
+ * @remarks
1237
+ * If value is not provided, falls back to Material's default.
1238
+ *
1239
+ * @platform android
1240
+ */
1241
+ collapsedSubtitleFontFamily?: TextStyle['fontFamily'] | undefined;
1242
+ /**
1243
+ * @summary Font size (SP) of the collapsed subtitle text. Applies to
1244
+ * `medium` and `large` headers only.
1245
+ *
1246
+ * @remarks
1247
+ * If value is not provided, falls back to Material's default.
1248
+ *
1249
+ * @platform android
1250
+ */
1251
+ collapsedSubtitleFontSize?: TextStyle['fontSize'] | undefined;
1252
+ /**
1253
+ * @summary Font weight of the collapsed subtitle text. Applies to
1254
+ * `medium` and `large` headers only.
1255
+ *
1256
+ * @remarks
1257
+ * If value is not provided, falls back to Material's default.
1258
+ *
1259
+ * @platform android
1260
+ */
1261
+ collapsedSubtitleFontWeight?: TextStyle['fontWeight'] | undefined;
1262
+ /**
1263
+ * @summary Font style of the collapsed subtitle text. Applies to
1264
+ * `medium` and `large` headers only.
1265
+ *
1266
+ * @remarks
1267
+ * If value is not provided, falls back to Material's default.
1268
+ *
1269
+ * @platform android
1270
+ */
1271
+ collapsedSubtitleFontStyle?: TextStyle['fontStyle'] | undefined;
677
1272
  }
678
1273
  //# sourceMappingURL=StackHeaderConfig.android.types.d.ts.map