$dark-primary-text: rgba(black, 0.87);
$dark-secondary-text: rgba(black, 0.6);
$dark-disabled-text: rgba(black, 0.26);

$light-primary-text: white;
$light-secondary-text: rgba(white, 0.6);
$light-disabled-text: rgba(white, 0.26);

$default: mw-graphite;

$mw-palettes: (
  mw-orange: (
    50: #fdf2e0,
    100: #ffe8c4,
    200: #fbdfb1,
    300: #f7b44c,
    400: #f39519,
    500: #f08900,
    600: #e46e01,
    700: #d66300,
    800: #bb5600,
    900: #9c4000,
    contrast: (
      50: $dark-primary-text,
      100: $dark-primary-text,
      200: $dark-primary-text,
      300: $dark-primary-text,
      400: $dark-primary-text,
      500: $dark-primary-text,
      600: $dark-primary-text,
      700: $light-primary-text,
      800: $light-primary-text,
      900: $light-primary-text,
    ),
  ),
  mw-graphite: (
    50: #f0f3f6,
    100: #e0e6eb,
    200: #b4bfc8,
    300: #5c6770,
    400: #394046,
    500: #2e3439,
    600: #1c2125,
    700: #161b1f,
    800: #121619,
    900: #0c1012,
    contrast: (
      50: $dark-primary-text,
      100: $dark-primary-text,
      200: $dark-primary-text,
      300: $light-primary-text,
      400: $light-primary-text,
      500: $light-primary-text,
      600: $light-primary-text,
      700: $light-primary-text,
      800: $light-primary-text,
      900: $light-primary-text,
    ),
  ),
  mw-red: (
    50: #ffebee,
    100: #ffcdd2,
    200: #ef9a9a,
    300: #e57373,
    400: #ef5350,
    500: #f44336,
    600: #e53935,
    700: #d32f2f,
    800: #c62828,
    900: #b71c1c,
    contrast: (
      50: $dark-primary-text,
      100: $dark-primary-text,
      200: $dark-primary-text,
      300: $dark-primary-text,
      400: $light-primary-text,
      500: $light-primary-text,
      600: $light-primary-text,
      700: $light-primary-text,
      800: $light-primary-text,
      900: $light-primary-text,
    ),
  ),
  mw-green: (
    50: #e8f5e9,
    100: #c8e6c9,
    200: #a5d6a7,
    300: #81c784,
    400: #66bb6a,
    500: #4caf50,
    600: #43a047,
    700: #388e3c,
    800: #2e7d32,
    900: #1b5e20,
    contrast: (
      50: $dark-primary-text,
      100: $dark-primary-text,
      200: $dark-primary-text,
      300: $dark-primary-text,
      400: $dark-primary-text,
      500: $light-primary-text,
      600: $light-primary-text,
      700: $light-primary-text,
      800: $light-primary-text,
      900: $light-primary-text,
    ),
  ),
  mw-gray: (
    50: #fafafa,
    100: #f5f5f5,
    200: #e7e7e7,
    300: #ddddde,
    400: #bfbfbf,
    500: #7a7a7a,
    600: #5f5f5f,
    700: #424242,
    800: #303030,
    900: #1f1f1f,
    contrast: (
      50: $dark-primary-text,
      100: $dark-primary-text,
      200: $dark-primary-text,
      300: $dark-primary-text,
      400: $dark-primary-text,
      500: $light-primary-text,
      600: $light-primary-text,
      700: $light-primary-text,
      800: $light-primary-text,
      900: $light-primary-text,
    ),
  ),
);

@mixin mw-create-css-palette($palette) {
  @each $hue, $color in $palette {
    $contrast: map-get($palette, contrast);
    @if type-of($value: $color) == color {
      .mw-hue-#{$hue} {
        background: $color;
        color: map-get($contrast, $hue);
      }
    }
  }
}

@mixin mw-create-css-palettes($theme) {
  @include mw-create-css-palette(map-get($theme, primary));

  @each $paletteName, $palette in $mw-palettes {
    .#{$paletteName} {
      @include mw-create-css-palette($palette);
    }
  }
}

@function mw-hue($paletteName, $hue: 500, $contrast: false) {
  @if type-of($value: $paletteName) == number {
    $hue: $paletteName;
    $paletteName: $default;
  }

  $palette: map-get($mw-palettes, $paletteName);
  @if ($contrast == true) {
    $palette: map-get($palette, contrast);
  }
  @return map-get($palette, $hue);
}
