import { RefTokens } from './RefTokens' import { LiteralValue } from './LiteralValue' export interface SysTokens { typeScale: TypeScales color: Colors shape: Shapes state: States elevation: Elevations } export interface TypeScales { displayLarge: TypeScale displayMedium: TypeScale displaySmall: TypeScale headlineLarge: TypeScale headlineMedium: TypeScale headlineSmall: TypeScale titleLarge: TypeScale titleMedium: TypeScale titleSmall: TypeScale labelLarge: TypeScale labelMedium: TypeScale labelSmall: TypeScale bodyLarge: TypeScale bodyMedium: TypeScale bodySmall: TypeScale } export interface TypeScale { fontFamily: SysTokenValue lineHeight: SysTokenValue fontSize: SysTokenValue letterSpacing: SysTokenValue } export interface Colors { screenBackground: SysTokenValue primary: SysTokenValue onPrimary: SysTokenValue primaryContainer: SysTokenValue onPrimaryContainer: SysTokenValue secondary: SysTokenValue onSecondary: SysTokenValue secondaryContainer: SysTokenValue onSecondaryContainer: SysTokenValue tertiary: SysTokenValue onTertiary: SysTokenValue tertiaryContainer: SysTokenValue onTertiaryContainer: SysTokenValue info: SysTokenValue onInfo: SysTokenValue infoContainer: SysTokenValue onInfoContainer: SysTokenValue warning: SysTokenValue onWarning: SysTokenValue warningContainer: SysTokenValue onWarningContainer: SysTokenValue success: SysTokenValue onSuccess: SysTokenValue successContainer: SysTokenValue onSuccessContainer: SysTokenValue error: SysTokenValue onError: SysTokenValue errorContainer: SysTokenValue onErrorContainer: SysTokenValue surface: SysTokenValue onSurface: SysTokenValue onSurfaceVariant: SysTokenValue surfaceDim: SysTokenValue surfaceBright: SysTokenValue surfaceContainer: SysTokenValue inverseSurface: SysTokenValue inverseOnSurface: SysTokenValue inversePrimary: SysTokenValue scrim: SysTokenValue shadow: SysTokenValue outline: SysTokenValue outlineVariant: SysTokenValue } export interface Shapes { none: number extraSmall: number small: number medium: number large: number extraLarge: number full: number } export interface States { pressedStateLayerOpacity: SysTokenValue disabledContainerOpacity: SysTokenValue disabledOnContainerOpacity: SysTokenValue } export interface Elevations { level0: number level1: number level2: number level3: number level4: number level5: number } export type SysTheme = { ref: RefTokens } export type SysTokenValue = T | ((ds: SysTheme) => T)