// ==========================================================================
// # Triadic
// ==========================================================================
// 
// Triadic color scheme is a three-color combination consisting of a base
// color and two colors that are 120 degrees and 240 degrees
// apart from the base color.
// 
// | Model | Color     | Chromatic | Harmonized |         | 
// | :---: | :-------: | :-------: | :-------:  | :---:   |
// | RGB   | #8e43e7   | #e78e43   | #d9825d    | 120°    |
// |       |           | #43e78e   | #4fcd9c    | 240°    |
// 
// | Model | Color     | Chromatic | Harmonized |         | 
// | :---: | :-------: | :-------: | :-------:  | :---:   |
// | RYB   | #8e43e7   | #e78243   | #d9785d    | 120°    |
// |       |           | #a5e743   | #a2d555    | 240°    |
// 
// @debug color.adjust(#8e43e7, $hue: 120);
// @debug color.adjust(#8e43e7, $hue: 240);
// 
// @debug functions.adjust-hue-ryb(#8e43e7, 120);
// @debug functions.adjust-hue-ryb(#8e43e7, 240);
// 

@use "sass:color";

@use "../core";
@use "../functions";

// ==========================================================================
// # Variables
// ==========================================================================

$-triadic-1-400: color.adjust(core.$brand-color, $hue: 120);
$-triadic-2-400: color.adjust(core.$brand-color, $hue: 240);

@if (core.$color-model == ryb) {
    $-triadic-1-400: functions.adjust-hue-ryb(core.$brand-color, 120); 
    $-triadic-2-400: functions.adjust-hue-ryb(core.$brand-color, 240); 
} @else {}

@if core.$color-mode-harmony{
    $-triadic-1-400: functions.make-color-harmony(core.$brand-color, $-triadic-1-400);
    $-triadic-2-400: functions.make-color-harmony(core.$brand-color, $-triadic-2-400);
} @else{}

// ==========================================================================
// # Monochromatic
// ==========================================================================

// ## Triadic (1) @ 120°
$triadic-1-100: functions.make-color-mono($-triadic-1-400, 100) !default;
$triadic-1-200: functions.make-color-mono($-triadic-1-400, 200) !default;
$triadic-1-300: functions.make-color-mono($-triadic-1-400, 300) !default;
$triadic-1-400: $-triadic-1-400 !default;
$triadic-1-500: functions.make-color-mono($-triadic-1-400, 500) !default;
$triadic-1-600: functions.make-color-mono($-triadic-1-400, 600) !default;
$triadic-1-700: functions.make-color-mono($-triadic-1-400, 700) !default;
$triadic-1-800: functions.make-color-mono($-triadic-1-400, 800) !default;
$triadic-1-900: functions.make-color-mono($-triadic-1-400, 900) !default;

// ## Triadic (2) @ 240°
$triadic-2-100: functions.make-color-mono($-triadic-2-400, 100) !default;
$triadic-2-200: functions.make-color-mono($-triadic-2-400, 200) !default;
$triadic-2-300: functions.make-color-mono($-triadic-2-400, 300) !default;
$triadic-2-400: $-triadic-2-400 !default;
$triadic-2-500: functions.make-color-mono($-triadic-2-400, 500) !default;
$triadic-2-600: functions.make-color-mono($-triadic-2-400, 600) !default;
$triadic-2-700: functions.make-color-mono($-triadic-2-400, 700) !default;
$triadic-2-800: functions.make-color-mono($-triadic-2-400, 800) !default;
$triadic-2-900: functions.make-color-mono($-triadic-2-400, 900) !default;

// =============================================================================
// # Map
// =============================================================================

$map-triadic-1: (
  "triadic-1-100": $triadic-1-100,
  "triadic-1-200": $triadic-1-200,
  "triadic-1-300": $triadic-1-300,
  "triadic-1-400": $triadic-1-400,
  "triadic-1-500": $triadic-1-500,
  "triadic-1-600": $triadic-1-600,
  "triadic-1-700": $triadic-1-700,
  "triadic-1-800": $triadic-1-800,
  "triadic-1-900": $triadic-1-900
) !default;

$map-triadic-2: (
  "triadic-2-100": $triadic-2-100,
  "triadic-2-200": $triadic-2-200,
  "triadic-2-300": $triadic-2-300,
  "triadic-2-400": $triadic-2-400,
  "triadic-2-500": $triadic-2-500,
  "triadic-2-600": $triadic-2-600,
  "triadic-2-700": $triadic-2-700,
  "triadic-2-800": $triadic-2-800,
  "triadic-2-900": $triadic-2-900
) !default;

$map-triadic: core.map-collect($map-triadic-1, $map-triadic-2) !default;