// @flow
import type {
  ColorPalette,
  ColorPaletteColorNameKey,
} from '../mixins/branding/branding.proptypes';
import type { Face } from '../mixins/typography/typography.proptypes';

export type ThemeName =
  | 'atlas'
  | 'cash'
  | 'crypto'
  | 'custom'
  | 'empower'
  | 'tax'
  | 'trade'
  | 'wealthsimple'
  | 'whitelabelDefaults';

export type ThemeOverrides = {|
  primary?: string,
  secondary?: string,
  buttonBorderRadius?: string,
  name: ThemeName,
|};

export type PatchworkTheme = {|
  name: ThemeName,
  colorPalette: ColorPalette,
  buttonBorderRadius: string,
  buttonSizes?: {|
    height?: {|
      sm: string,
      md: string,
    |},
    minWidth?: {|
      sm: string,
      md: string,
    |},
  |},
  cardBorderRadius: string,
  spacing: {|
    s1: string,
    s2: string,
    s3: string,
    s4: string,
    s5: string,
    s6: string,
    s7: string,
  |},
  fonts: {|
    [face: Face]: string,
  |},
  typescale: {|
    f0: string,
    f1: string,
    f2: string,
    f3: string,
    f4: string,
    f5: string,
    f6: string,
    f7: string,
    f8: string,
  |},
  defaultTextColor?: ColorPaletteColorNameKey,
|};
