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,10 +1,24 @@
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
 
6
6
  export type StackHeaderTypeAndroid = 'small' | 'medium' | 'large';
7
7
 
8
+ export type StackHeaderTitleHorizontalGravityAndroid =
9
+ | 'start'
10
+ | 'center'
11
+ | 'end';
12
+
13
+ export type StackHeaderTitleVerticalGravityAndroid =
14
+ | 'top'
15
+ | 'center'
16
+ | 'bottom';
17
+
18
+ export type StackHeaderCollapsedTitleGravityModeAndroid =
19
+ | 'entireSpace'
20
+ | 'availableSpace';
21
+
8
22
  export type StackHeaderBackgroundSubviewCollapseModeAndroid =
9
23
  StackHeaderSubviewCollapseModeAndroid;
10
24
 
@@ -81,13 +95,6 @@ export interface StackHeaderToolbarMenuItemBaseAndroid {
81
95
  /**
82
96
  * @summary Title of the menu element.
83
97
  *
84
- * @remarks
85
- * If `title` is changed for the element of type `menu` by using the
86
- * `updateToolbarMenuElements` view command, the menu title (`menuTitle`)
87
- * will also be changed to the new title (unless the new title is set to
88
- * `undefined`). In order to keep the custom menu title, you should also
89
- * include `menuTitle` in the view command.
90
- *
91
98
  * @platform android
92
99
  */
93
100
  title?: string | undefined;
@@ -195,6 +202,9 @@ export interface StackHeaderToolbarMenuItemBaseAndroid {
195
202
  * The icon will be visible only if the menu element is shown in the
196
203
  * Toolbar.
197
204
  *
205
+ * An icon set via the `updateToolbarMenuElements` view command takes
206
+ * precedence over this one until the next `toolbarMenu` change.
207
+ *
198
208
  * @platform android
199
209
  */
200
210
  icon?: PlatformIconAndroid | undefined;
@@ -298,6 +308,10 @@ export interface StackHeaderToolbarMenuItemAndroid
298
308
  * The initial state does not trigger `onSelectionChange` on
299
309
  * the group at mount time.
300
310
  *
311
+ * A `toolbarMenu` prop change restores the selection to this value.
312
+ * Neither that restore nor a native header rebuild triggers
313
+ * `onSelectionChange`.
314
+ *
301
315
  * @default false
302
316
  * @platform android
303
317
  */
@@ -391,10 +405,8 @@ export interface StackHeaderToolbarMenuAndroid
391
405
  * `title`, which controls the label shown in the parent menu's item row.
392
406
  *
393
407
  * @remarks
394
- * If `title` is changed by using the `updateToolbarMenuElements` view
395
- * command, the menu title will also be changed to the new title (unless the
396
- * new title is set to `undefined`). In order to keep the custom menu title,
397
- * you should also include `menuTitle` in the view command.
408
+ * When left unset, the header falls back to `title`; when both are unset,
409
+ * the popup shows no header.
398
410
  *
399
411
  * @platform android
400
412
  */
@@ -423,7 +435,8 @@ export type StackHeaderToolbarMenuElementOptionsAndroid = Partial<
423
435
  *
424
436
  * @description
425
437
  * Only applies to `type: 'menu'` elements. Ignored if the target is a regular
426
- * menu item.
438
+ * menu item. Setting it to `undefined` drops the `menuTitle` prop as well,
439
+ * leaving the header to fall back to `title`.
427
440
  *
428
441
  * @platform android
429
442
  */
@@ -465,11 +478,18 @@ export interface StackHeaderConfigCommandsAndroid {
465
478
  * overtaken by an earlier one whose icon happened to load late.
466
479
  *
467
480
  * @remarks
468
- * Updates are applied to the live toolbar: they take effect only while the
469
- * header is shown, and are discarded whenever the menu is rebuilt from the
470
- * `toolbarMenu` prop — whether by a prop change or a structural change such
471
- * as hiding and re-showing the header. They persist across unrelated
472
- * re-renders. An update whose `id` is not in the current menu is ignored.
481
+ * Updates persist for the lifetime of the current `toolbarMenu`
482
+ * configuration: they survive every native header rebuild — an effective
483
+ * color scheme change, a header `type`, `maxLines` or
484
+ * `collapsedTitleGravityMode` change, hiding and re-showing the header,
485
+ * reattaching the screen (e.g. switching tabs) — and unrelated re-renders.
486
+ * Updates sent while the header is hidden are recorded — and emit their
487
+ * selection events — as usual, and take effect when the header is next
488
+ * shown. Only a `toolbarMenu` prop change resets them, dropping the
489
+ * batches still queued as well (see its docs). An update whose `id` is not
490
+ * in the current menu is ignored. An `icon` set via this command takes
491
+ * precedence over the icon declared in `toolbarMenu` until the next
492
+ * `toolbarMenu` change.
473
493
  *
474
494
  * @param updates A single update object or an array of updates.
475
495
  */
@@ -494,6 +514,9 @@ export interface StackHeaderConfigPropsAndroid {
494
514
  * M3 Expressive headers aren't currently supported (there is no stable
495
515
  * `MDC-Android` version yet).
496
516
  *
517
+ * Changing this prop at runtime rebuilds the header. Toolbar menu state
518
+ * survives the rebuild — see `updateToolbarMenuElements`.
519
+ *
497
520
  * @see {@link https://m3.material.io/components/app-bars/overview|Material Design 3: App bars}
498
521
  *
499
522
  * @default small
@@ -580,6 +603,63 @@ export interface StackHeaderConfigPropsAndroid {
580
603
  * @platform android
581
604
  */
582
605
  backButtonIcon?: PlatformIconAndroid | undefined;
606
+ /**
607
+ * @summary Custom icon for the overflow menu button (the three-dots button
608
+ * that opens the toolbar menu's overflow popup).
609
+ *
610
+ * @description
611
+ * When `undefined`, the Material 3 Expressive default overflow icon is used.
612
+ *
613
+ * Supported values:
614
+ * - `{ type: 'imageSource', imageSource }`
615
+ * Uses an image from the provided resource.
616
+ *
617
+ * Remarks: `imageSource` type doesn't support SVGs on Android.
618
+ * For loading SVGs use `drawableResource` type.
619
+ *
620
+ * - `{ type: 'drawableResource', name }`
621
+ * Uses a drawable resource with the given name.
622
+ *
623
+ * Remarks: Requires passing a drawable to resources via Android Studio.
624
+ *
625
+ * @platform android
626
+ */
627
+ overflowIcon?: PlatformIconAndroid | undefined;
628
+ /**
629
+ * @summary Tint color applied to the overflow menu icon in its normal state.
630
+ *
631
+ * @description
632
+ * When `undefined`, the default tint (the Material theme's menu icon color)
633
+ * is used. This applies to the default overflow icon and `drawableResource`
634
+ * icons that have an associated tint. For `imageSource` icons, no tint is
635
+ * applied by default.
636
+ *
637
+ * @platform android
638
+ */
639
+ overflowIconTintColorNormal?: ColorValue | undefined;
640
+ /**
641
+ * @summary Tint color applied to the overflow menu icon when it is pressed.
642
+ *
643
+ * @remarks
644
+ * Due to native platform limitations, if you set this prop, you must also
645
+ * provide `overflowIconTintColorNormal`. Otherwise, the icon will become
646
+ * transparent.
647
+ *
648
+ * @platform android
649
+ */
650
+ overflowIconTintColorPressed?: ColorValue | undefined;
651
+ /**
652
+ * @summary Tint color applied to the overflow menu icon when it is focused
653
+ * (e.g. by keyboard navigation).
654
+ *
655
+ * @remarks
656
+ * Due to native platform limitations, if you set this prop, you must also
657
+ * provide `overflowIconTintColorNormal`. Otherwise, the icon will become
658
+ * transparent.
659
+ *
660
+ * @platform android
661
+ */
662
+ overflowIconTintColorFocused?: ColorValue | undefined;
583
663
  /**
584
664
  * @summary Whether the header reacts to nested scroll. Required for any
585
665
  * other `scrollFlag*` prop to take effect.
@@ -674,7 +754,8 @@ export interface StackHeaderConfigPropsAndroid {
674
754
  * Material `CollapsingToolbarLayout` uses a fade title-collapse mode that
675
755
  * installs its own content scrim and disables the app bar's lift-on-scroll,
676
756
  * so this prop has no effect there. The collapsed appearance of those headers
677
- * is instead controlled by that content scrim, which is not exposed yet.
757
+ * is instead controlled by that content scrim — see
758
+ * {@link scrolledBackgroundColor}.
678
759
  *
679
760
  * Has no effect while the header is `transparent` (there is no scrolling
680
761
  * content behavior installed in that mode).
@@ -684,6 +765,72 @@ export interface StackHeaderConfigPropsAndroid {
684
765
  * @platform android
685
766
  */
686
767
  liftOnScroll?: boolean | undefined;
768
+ /**
769
+ * @summary Background color of the header.
770
+ *
771
+ * @description
772
+ * Applies to all header types. For `medium` / `large` headers this is the
773
+ * color of the expanded state — the collapsed state color is controlled by
774
+ * {@link scrolledBackgroundColor}.
775
+ *
776
+ * @remarks
777
+ * If value is not provided, falls back to Material's default.
778
+ *
779
+ * @platform android
780
+ */
781
+ backgroundColor?: ColorValue | undefined;
782
+ /**
783
+ * @summary Background color of the header when content is scrolled beneath
784
+ * it.
785
+ *
786
+ * @description
787
+ * For the `small` header, this is the lift-on-scroll target color: when
788
+ * content is scrolled beneath the app bar, the background animates from
789
+ * {@link backgroundColor} to this color. Requires {@link liftOnScroll}.
790
+ *
791
+ * For `medium` / `large` headers, this is the color of the content scrim
792
+ * that fades in as the header collapses. The scrim is drawn above the
793
+ * header background (and the `backgroundSubview`, if any) but below the
794
+ * toolbar content.
795
+ *
796
+ * @remarks
797
+ * A translucent color is composited over the header background instead of
798
+ * replacing it.
799
+ *
800
+ * If value is not provided, falls back to Material's default.
801
+ *
802
+ * @platform android
803
+ */
804
+ scrolledBackgroundColor?: ColorValue | undefined;
805
+ /**
806
+ * @summary Color of the scrim drawn in the status-bar area, masking header
807
+ * content that scrolls under the status bar in edge-to-edge apps.
808
+ *
809
+ * @description
810
+ * For the `small` header, the scrim is a constant strip pinned to the top of
811
+ * the window, drawn above the toolbar content. When not provided, the strip
812
+ * follows the header's effective background color: {@link backgroundColor} at
813
+ * rest, animating together with the lift-on-scroll transition towards
814
+ * {@link scrolledBackgroundColor}. An explicit color is applied statically,
815
+ * without tracking.
816
+ *
817
+ * For `medium` / `large` headers, the scrim fades in and out together with
818
+ * the content scrim as the header collapses. When not provided, it matches
819
+ * the content scrim color ({@link scrolledBackgroundColor}).
820
+ *
821
+ * Set to `'transparent'` to disable the scrim entirely.
822
+ *
823
+ * @remarks
824
+ * The default scrim is installed only when the color it follows resolves to
825
+ * a fully opaque color; translucent headers stay see-through. An explicit
826
+ * translucent color is honored and composites over the header background in
827
+ * the status-bar area (for `medium` / `large` headers the content scrim is
828
+ * excluded from that area while a scrim is installed, so the two scrims
829
+ * never stack).
830
+ *
831
+ * @platform android
832
+ */
833
+ statusBarScrimColor?: ColorValue | undefined;
687
834
  /**
688
835
  * @summary Toolbar menu configuration.
689
836
  *
@@ -692,8 +839,19 @@ export interface StackHeaderConfigPropsAndroid {
692
839
  * want to change some property in runtime, use `updateToolbarMenuElements`
693
840
  * view command.
694
841
  *
695
- * Changing this prop in runtime will result in full toolbar menu rebuild.
696
- * Any prior changes applied via `updateToolbarMenuElements` will be lost.
842
+ * Changing this prop at runtime rebuilds the toolbar menu and resets all
843
+ * of its runtime state: checkbox/radio selections return to their
844
+ * `initialToggleState` and every change applied via
845
+ * `updateToolbarMenuElements` is discarded, including batches still
846
+ * waiting in the queue (e.g. for an icon download). Any real change
847
+ * counts, even one only swapping an item's icon; re-sending an identical
848
+ * menu is a no-op and preserves the state.
849
+ *
850
+ * An invalid menu is rejected — for example duplicate item or group ids, a
851
+ * `groupId` that is not declared at the same menu level, or more than one
852
+ * `initialToggleState` in a single-selection group. The menu is validated
853
+ * when the prop is set, and a rejected menu leaves the previous one in
854
+ * effect.
697
855
  *
698
856
  * @platform android
699
857
  */
@@ -710,4 +868,462 @@ export interface StackHeaderConfigPropsAndroid {
710
868
  * @supported API 28 or higher
711
869
  */
712
870
  toolbarMenuGroupDividerEnabled?: boolean | undefined;
871
+ /**
872
+ * @summary Horizontally centers the title within the app bar.
873
+ *
874
+ * @remarks
875
+ * Applies to the `small` header only; ignored for `medium` / `large` (use
876
+ * `expandedTitleHorizontalGravity` / `collapsedTitleHorizontalGravity`
877
+ * instead). The title is centered independently of the subtitle. Combining
878
+ * a centered title with left and/or center subviews is not recommended — they
879
+ * may overlap or be laid out incorrectly.
880
+ *
881
+ * @default false
882
+ * @platform android
883
+ */
884
+ titleCentered?: boolean | undefined;
885
+ /**
886
+ * @summary Horizontally centers the subtitle within the app bar.
887
+ *
888
+ * @remarks
889
+ * Applies to the `small` header only. The subtitle is centered independently
890
+ * of the title. See {@link titleCentered}.
891
+ *
892
+ * @default false
893
+ * @platform android
894
+ */
895
+ subtitleCentered?: boolean | undefined;
896
+ /**
897
+ * @summary Horizontal alignment of the title (and subtitle) in the expanded
898
+ * state.
899
+ *
900
+ * @remarks
901
+ * Applies to `medium` / `large` headers only; ignored for `small` (use
902
+ * `titleCentered` instead). The subtitle always follows the title's
903
+ * alignment.
904
+ *
905
+ * @default start
906
+ * @platform android
907
+ */
908
+ expandedTitleHorizontalGravity?:
909
+ | StackHeaderTitleHorizontalGravityAndroid
910
+ | undefined;
911
+ /**
912
+ * @summary Vertical alignment of the title (and subtitle) in the expanded
913
+ * state.
914
+ *
915
+ * @remarks
916
+ * Applies to `medium` / `large` headers only; ignored for `small`.
917
+ *
918
+ * @default bottom
919
+ * @platform android
920
+ */
921
+ expandedTitleVerticalGravity?:
922
+ | StackHeaderTitleVerticalGravityAndroid
923
+ | undefined;
924
+ /**
925
+ * @summary Horizontal alignment of the title (and subtitle) in the collapsed
926
+ * state.
927
+ *
928
+ * @remarks
929
+ * Applies to `medium` / `large` headers only; ignored for `small`. The
930
+ * subtitle always follows the title's alignment. `center` is further affected
931
+ * by `collapsedTitleGravityMode`.
932
+ *
933
+ * @default start
934
+ * @platform android
935
+ */
936
+ collapsedTitleHorizontalGravity?:
937
+ | StackHeaderTitleHorizontalGravityAndroid
938
+ | undefined;
939
+ /**
940
+ * @summary Vertical alignment of the title (and subtitle) in the collapsed
941
+ * state.
942
+ *
943
+ * @remarks
944
+ * Applies to `medium` / `large` headers only; ignored for `small`.
945
+ *
946
+ * @default center
947
+ * @platform android
948
+ */
949
+ collapsedTitleVerticalGravity?:
950
+ | StackHeaderTitleVerticalGravityAndroid
951
+ | undefined;
952
+ /**
953
+ * @summary Anchor used when resolving the collapsed title's horizontal
954
+ * gravity.
955
+ *
956
+ * @description
957
+ * The following values are available:
958
+ * - `availableSpace` - gravity is computed over the space left after the
959
+ * navigation icon, menu and subviews are laid out,
960
+ * - `entireSpace` - gravity is computed over the whole app bar, so a centered
961
+ * title is centered relative to the app bar and pushed aside only if it
962
+ * would overlap another view.
963
+ *
964
+ * @remarks
965
+ * Applies to `medium` / `large` headers only and affects only the collapsed
966
+ * state; it is only visually meaningful with
967
+ * `collapsedTitleHorizontalGravity: 'center'`.
968
+ *
969
+ * Because the underlying Material field is set at construction time, changing
970
+ * this prop rebuilds the header.
971
+ *
972
+ * If the header is laid out during a screen transition, due to a native bug,
973
+ * the title and the subtitle might be laid out incorrectly when `entireSpace`
974
+ * gravity mode is used.
975
+ *
976
+ * @default availableSpace
977
+ * @platform android
978
+ */
979
+ collapsedTitleGravityMode?:
980
+ | StackHeaderCollapsedTitleGravityModeAndroid
981
+ | undefined;
982
+ /**
983
+ * @summary Maximum number of lines for the expanded title and subtitle.
984
+ *
985
+ * @description
986
+ * A single shared value: the same limit applies to both the expanded title
987
+ * and the expanded subtitle. Text exceeding the limit is ellipsized.
988
+ *
989
+ * @remarks
990
+ * Applies to `medium` / `large` headers only; ignored for `small`. The
991
+ * collapsed title is always a single line regardless of this value.
992
+ *
993
+ * A value less than `1` is invalid and falls back to `1`.
994
+ *
995
+ * Changing this value at runtime rebuilds the header. This is required due to
996
+ * a native platform limitation.
997
+ *
998
+ * @default 1
999
+ * @platform android
1000
+ */
1001
+ maxLines?: number | undefined;
1002
+ /**
1003
+ * @summary Start inset of the toolbar.
1004
+ *
1005
+ * @description
1006
+ * The inset is a minimum: the navigation icon is positioned before it is
1007
+ * applied and is not bounded by it, so the content area starts at whichever
1008
+ * reaches further from the edge — the navigation icon's trailing edge or this
1009
+ * inset. A back button usually wins, which makes this prop inert while one is
1010
+ * visible.
1011
+ *
1012
+ * @remarks
1013
+ * Applies to all header types. On `medium` / `large` it affects the collapsed
1014
+ * title only.
1015
+ *
1016
+ * By default, native platform applies non-zero inset which makes centered
1017
+ * collapsed title look off-center when `collapsedTitleGravityMode:
1018
+ * 'availableSpace'` is used.
1019
+ *
1020
+ * If value is not provided, falls back to Material's default.
1021
+ *
1022
+ * @platform android
1023
+ */
1024
+ contentInsetStart?: number | undefined;
1025
+ /**
1026
+ * @summary End inset of the toolbar content area.
1027
+ *
1028
+ * @remarks
1029
+ * The end-side counterpart of `contentInsetStart`. Applies to all header
1030
+ * types. Like its start-side counterpart it is a minimum, so it is inert
1031
+ * while the toolbar menu shows items that already reach further in.
1032
+ *
1033
+ * If value is not provided, falls back to Material's default.
1034
+ *
1035
+ * @platform android
1036
+ */
1037
+ contentInsetEnd?: number | undefined;
1038
+ /**
1039
+ * @summary Color of the title text. Applies to `small` header only.
1040
+ *
1041
+ * @remarks
1042
+ * If value is not provided, falls back to Material's default.
1043
+ *
1044
+ * @platform android
1045
+ */
1046
+ titleColor?: ColorValue | undefined;
1047
+ /**
1048
+ * @summary Font family of the title text. Applies to `small` header only.
1049
+ *
1050
+ * @remarks
1051
+ * If value is not provided, falls back to Material's default.
1052
+ *
1053
+ * @platform android
1054
+ */
1055
+ titleFontFamily?: TextStyle['fontFamily'] | undefined;
1056
+ /**
1057
+ * @summary Font size (SP) of the title text. Applies to `small` header only.
1058
+ *
1059
+ * @remarks
1060
+ * If value is not provided, falls back to Material's default.
1061
+ *
1062
+ * @platform android
1063
+ */
1064
+ titleFontSize?: TextStyle['fontSize'] | undefined;
1065
+ /**
1066
+ * @summary Font weight of the title text. Applies to `small` header only.
1067
+ *
1068
+ * @remarks
1069
+ * If value is not provided, falls back to Material's default.
1070
+ *
1071
+ * @platform android
1072
+ */
1073
+ titleFontWeight?: TextStyle['fontWeight'] | undefined;
1074
+ /**
1075
+ * @summary Font style of the title text. Applies to `small` header only.
1076
+ *
1077
+ * @remarks
1078
+ * If value is not provided, falls back to Material's default.
1079
+ *
1080
+ * @platform android
1081
+ */
1082
+ titleFontStyle?: TextStyle['fontStyle'] | undefined;
1083
+ /**
1084
+ * @summary Color of the subtitle text. Applies to `small` header only.
1085
+ *
1086
+ * @remarks
1087
+ * If value is not provided, falls back to Material's default.
1088
+ *
1089
+ * @platform android
1090
+ */
1091
+ subtitleColor?: ColorValue | undefined;
1092
+ /**
1093
+ * @summary Font family of the subtitle text. Applies to `small` header only.
1094
+ *
1095
+ * @remarks
1096
+ * If value is not provided, falls back to Material's default.
1097
+ *
1098
+ * @platform android
1099
+ */
1100
+ subtitleFontFamily?: TextStyle['fontFamily'] | undefined;
1101
+ /**
1102
+ * @summary Font size (SP) of the subtitle text. Applies to `small`
1103
+ * header only.
1104
+ *
1105
+ * @remarks
1106
+ * If value is not provided, falls back to Material's default.
1107
+ *
1108
+ * @platform android
1109
+ */
1110
+ subtitleFontSize?: TextStyle['fontSize'] | undefined;
1111
+ /**
1112
+ * @summary Font weight of the subtitle text. Applies to `small` header only.
1113
+ *
1114
+ * @remarks
1115
+ * If value is not provided, falls back to Material's default.
1116
+ *
1117
+ * @platform android
1118
+ */
1119
+ subtitleFontWeight?: TextStyle['fontWeight'] | undefined;
1120
+ /**
1121
+ * @summary Font style of the subtitle text. Applies to `small` header only.
1122
+ *
1123
+ * @remarks
1124
+ * If value is not provided, falls back to Material's default.
1125
+ *
1126
+ * @platform android
1127
+ */
1128
+ subtitleFontStyle?: TextStyle['fontStyle'] | undefined;
1129
+ /**
1130
+ * @summary Color of the expanded title text. Applies to `medium` and
1131
+ * `large` headers only.
1132
+ *
1133
+ * @remarks
1134
+ * If value is not provided, falls back to Material's default.
1135
+ *
1136
+ * @platform android
1137
+ */
1138
+ expandedTitleColor?: ColorValue | undefined;
1139
+ /**
1140
+ * @summary Font family of the expanded title text. Applies to `medium`
1141
+ * and `large` headers only.
1142
+ *
1143
+ * @remarks
1144
+ * If value is not provided, falls back to Material's default.
1145
+ *
1146
+ * @platform android
1147
+ */
1148
+ expandedTitleFontFamily?: TextStyle['fontFamily'] | undefined;
1149
+ /**
1150
+ * @summary Font size (SP) of the expanded title text. Applies to
1151
+ * `medium` and `large` headers only.
1152
+ *
1153
+ * @remarks
1154
+ * If value is not provided, falls back to Material's default.
1155
+ *
1156
+ * @platform android
1157
+ */
1158
+ expandedTitleFontSize?: TextStyle['fontSize'] | undefined;
1159
+ /**
1160
+ * @summary Font weight of the expanded title text. Applies to `medium`
1161
+ * and `large` headers only.
1162
+ *
1163
+ * @remarks
1164
+ * If value is not provided, falls back to Material's default.
1165
+ *
1166
+ * @platform android
1167
+ */
1168
+ expandedTitleFontWeight?: TextStyle['fontWeight'] | undefined;
1169
+ /**
1170
+ * @summary Font style of the expanded title text. Applies to `medium`
1171
+ * and `large` headers only.
1172
+ *
1173
+ * @remarks
1174
+ * If value is not provided, falls back to Material's default.
1175
+ *
1176
+ * @platform android
1177
+ */
1178
+ expandedTitleFontStyle?: TextStyle['fontStyle'] | undefined;
1179
+ /**
1180
+ * @summary Color of the collapsed title text. Applies to `medium` and
1181
+ * `large` headers only.
1182
+ *
1183
+ * @remarks
1184
+ * If value is not provided, falls back to Material's default.
1185
+ *
1186
+ * @platform android
1187
+ */
1188
+ collapsedTitleColor?: ColorValue | undefined;
1189
+ /**
1190
+ * @summary Font family of the collapsed title text. Applies to `medium`
1191
+ * and `large` headers only.
1192
+ *
1193
+ * @remarks
1194
+ * If value is not provided, falls back to Material's default.
1195
+ *
1196
+ * @platform android
1197
+ */
1198
+ collapsedTitleFontFamily?: TextStyle['fontFamily'] | undefined;
1199
+ /**
1200
+ * @summary Font size (SP) of the collapsed title text. Applies to
1201
+ * `medium` and `large` headers only.
1202
+ *
1203
+ * @remarks
1204
+ * If value is not provided, falls back to Material's default.
1205
+ *
1206
+ * @platform android
1207
+ */
1208
+ collapsedTitleFontSize?: TextStyle['fontSize'] | undefined;
1209
+ /**
1210
+ * @summary Font weight of the collapsed title text. Applies to `medium`
1211
+ * and `large` headers only.
1212
+ *
1213
+ * @remarks
1214
+ * If value is not provided, falls back to Material's default.
1215
+ *
1216
+ * @platform android
1217
+ */
1218
+ collapsedTitleFontWeight?: TextStyle['fontWeight'] | undefined;
1219
+ /**
1220
+ * @summary Font style of the collapsed title text. Applies to `medium`
1221
+ * and `large` headers only.
1222
+ *
1223
+ * @remarks
1224
+ * If value is not provided, falls back to Material's default.
1225
+ *
1226
+ * @platform android
1227
+ */
1228
+ collapsedTitleFontStyle?: TextStyle['fontStyle'] | undefined;
1229
+ /**
1230
+ * @summary Color of the expanded subtitle text. Applies to `medium`
1231
+ * and `large` headers only.
1232
+ *
1233
+ * @remarks
1234
+ * If value is not provided, falls back to Material's default.
1235
+ *
1236
+ * @platform android
1237
+ */
1238
+ expandedSubtitleColor?: ColorValue | undefined;
1239
+ /**
1240
+ * @summary Font family of the expanded subtitle text. Applies to
1241
+ * `medium` and `large` headers only.
1242
+ *
1243
+ * @remarks
1244
+ * If value is not provided, falls back to Material's default.
1245
+ *
1246
+ * @platform android
1247
+ */
1248
+ expandedSubtitleFontFamily?: TextStyle['fontFamily'] | undefined;
1249
+ /**
1250
+ * @summary Font size (SP) of the expanded subtitle text. Applies to
1251
+ * `medium` and `large` headers only.
1252
+ *
1253
+ * @remarks
1254
+ * If value is not provided, falls back to Material's default.
1255
+ *
1256
+ * @platform android
1257
+ */
1258
+ expandedSubtitleFontSize?: TextStyle['fontSize'] | undefined;
1259
+ /**
1260
+ * @summary Font weight of the expanded subtitle text. Applies to
1261
+ * `medium` and `large` headers only.
1262
+ *
1263
+ * @remarks
1264
+ * If value is not provided, falls back to Material's default.
1265
+ *
1266
+ * @platform android
1267
+ */
1268
+ expandedSubtitleFontWeight?: TextStyle['fontWeight'] | undefined;
1269
+ /**
1270
+ * @summary Font style of the expanded subtitle text. Applies to
1271
+ * `medium` and `large` headers only.
1272
+ *
1273
+ * @remarks
1274
+ * If value is not provided, falls back to Material's default.
1275
+ *
1276
+ * @platform android
1277
+ */
1278
+ expandedSubtitleFontStyle?: TextStyle['fontStyle'] | undefined;
1279
+ /**
1280
+ * @summary Color of the collapsed subtitle text. Applies to `medium`
1281
+ * and `large` headers only.
1282
+ *
1283
+ * @remarks
1284
+ * If value is not provided, falls back to Material's default.
1285
+ *
1286
+ * @platform android
1287
+ */
1288
+ collapsedSubtitleColor?: ColorValue | undefined;
1289
+ /**
1290
+ * @summary Font family of the collapsed subtitle text. Applies to
1291
+ * `medium` and `large` headers only.
1292
+ *
1293
+ * @remarks
1294
+ * If value is not provided, falls back to Material's default.
1295
+ *
1296
+ * @platform android
1297
+ */
1298
+ collapsedSubtitleFontFamily?: TextStyle['fontFamily'] | undefined;
1299
+ /**
1300
+ * @summary Font size (SP) of the collapsed subtitle text. Applies to
1301
+ * `medium` and `large` headers only.
1302
+ *
1303
+ * @remarks
1304
+ * If value is not provided, falls back to Material's default.
1305
+ *
1306
+ * @platform android
1307
+ */
1308
+ collapsedSubtitleFontSize?: TextStyle['fontSize'] | undefined;
1309
+ /**
1310
+ * @summary Font weight of the collapsed subtitle text. Applies to
1311
+ * `medium` and `large` headers only.
1312
+ *
1313
+ * @remarks
1314
+ * If value is not provided, falls back to Material's default.
1315
+ *
1316
+ * @platform android
1317
+ */
1318
+ collapsedSubtitleFontWeight?: TextStyle['fontWeight'] | undefined;
1319
+ /**
1320
+ * @summary Font style of the collapsed subtitle text. Applies to
1321
+ * `medium` and `large` headers only.
1322
+ *
1323
+ * @remarks
1324
+ * If value is not provided, falls back to Material's default.
1325
+ *
1326
+ * @platform android
1327
+ */
1328
+ collapsedSubtitleFontStyle?: TextStyle['fontStyle'] | undefined;
713
1329
  }