import { MD3DarkTheme, MD3LightTheme, type MD3Theme } from 'react-native-paper'; import { borderRadius } from './tokens'; import type { AppColors } from './palettes'; export function buildPaperTheme(colors: AppColors, isDark: boolean): MD3Theme { const base = isDark ? MD3DarkTheme : MD3LightTheme; return { ...base, colors: { ...base.colors, primary: colors.primary.main, primaryContainer: colors.primary.light, secondary: colors.secondary.main, secondaryContainer: colors.secondary.light, tertiary: colors.info.main, tertiaryContainer: colors.info.light, surface: colors.background.paper, surfaceVariant: colors.background.default, surfaceDisabled: colors.background.disabled, background: colors.background.default, error: colors.error.main, errorContainer: colors.error.light, onPrimary: colors.primary.contrast, onPrimaryContainer: colors.primary.dark, onSecondary: colors.text.inverse, onSecondaryContainer: colors.secondary.dark, onTertiary: colors.text.inverse, onTertiaryContainer: colors.info.dark, onSurface: colors.text.primary, onSurfaceVariant: colors.text.secondary, onSurfaceDisabled: colors.text.disabled, onError: colors.text.inverse, onErrorContainer: colors.error.dark, onBackground: colors.text.primary, outline: colors.divider, outlineVariant: colors.divider, inverseSurface: colors.text.primary, inverseOnSurface: colors.text.inverse, inversePrimary: colors.primary.light, shadow: '#000000', scrim: '#000000', backdrop: 'rgba(0, 0, 0, 0.5)', elevation: { level0: 'transparent', level1: colors.background.paper, level2: colors.background.paper, level3: colors.background.paper, level4: colors.background.paper, level5: colors.background.paper, }, }, roundness: borderRadius.md, }; }