$primary: v("turquoise") !default

+register(primary, $primary, true)

$info: v("cyan") !default
$success: v("green") !default
$warning: v("yellow") !default
$danger: v("red") !default

+register(info, $info, true)
+register(success, $success, true)
+register(warning, $warning, true)
+register(danger, $danger, true)

$light: v("white-ter") !default
$dark: v("grey-darker") !default


+register("light", $light, true)
+register("dark", $dark, true)

// Invert colors

$orange-invert: findColorInvert("orange") !default
$yellow-invert: findColorInvert("yellow") !default
$green-invert: findColorInvert("green") !default
$turquoise-invert: findColorInvert("turquoise") !default
$cyan-invert: findColorInvert("cyan") !default
$blue-invert: findColorInvert("blue") !default
$purple-invert: findColorInvert("purple") !default
$red-invert: findColorInvert("red") !default

+register("orange-invert", $orange-invert, true)
+register("yellow-invert", $yellow-invert, true)
+register("green-invert", $green-invert, true)
+register("turquoise-invert", $turquoise-invert, true)
+register("cyan-invert", $cyan-invert, true)
+register("blue-invert", $blue-invert, true)
+register("purple-invert", $purple-invert, true)
+register("red-invert", $red-invert, true)

$primary-invert: findColorInvert("primary") !default
$primary-light: findLightColor("primary") !default
$primary-dark: findDarkColor("primary") !default
$info-invert: findColorInvert("info") !default
$info-light: findLightColor("info") !default
$info-dark: findDarkColor("info") !default
$success-invert: findColorInvert("success") !default
$success-light: findLightColor("success") !default
$success-dark: findDarkColor("success") !default
$warning-invert: findColorInvert("warning") !default
$warning-light: findLightColor("warning") !default
$warning-dark: findDarkColor("warning") !default
$danger-invert: findColorInvert("danger") !default
$danger-light: findLightColor("danger") !default
$danger-dark: findDarkColor("danger") !default
$light-invert: findColorInvert("light") !default
$dark-invert: findColorInvert("dark") !default


+register(white-invert, v("black"), true)
+register(black-invert, v("white"), true)

+register(primary-invert, $primary-invert, true)
+register(primary-light, $primary-light, true)
+register(primary-dark, $primary-dark, true)

+register(info-invert, $info-invert, true)
+register(info-light, $info-light, true)
+register(info-dark, $info-dark, true)

+register(success-invert, $success-invert, true)
+register(success-light, $success-light, true)
+register(success-dark, $success-dark, true)

+register(warning-invert, $warning-invert, true)
+register(warning-light, $warning-light, true)
+register(warning-dark, $warning-dark, true)

+register(danger-invert, $danger-invert, true)
+register(danger-light, $danger-light, true)
+register(danger-dark, $danger-dark, true)

+register(light-invert, $light-invert, true)
+register(dark-invert, $dark-invert, true)

// General colors

$scheme-main: v("white") !default
$scheme-main-bis: v("white-bis") !default
$scheme-main-ter: v("white-ter") !default
$scheme-invert: v("black") !default
$scheme-invert-bis: v("black-bis") !default
$scheme-invert-ter: v("black-ter") !default


+register(scheme-main, $scheme-main, true)
+register(scheme-main-bis, $scheme-main-bis, true)
+register(scheme-main-ter, $scheme-main-ter, true)
+register(scheme-invert, $scheme-invert, true)
+register(scheme-invert-bis, $scheme-invert-bis, true)
+register(scheme-invert-ter, $scheme-invert-ter, true)

$background: v("white-ter") !default

+register("background", $background, true)

$border: v("grey-lighter") !default
$border-hover: v("grey-light") !default
$border-light: v("grey-lightest") !default
$border-light-hover: v("grey-light") !default

+register("border", $border, true)
+register(border-hover, $border-hover, true)
+register(border-light, $border-light, true)
+register(border-light-hover, $border-light-hover, true)


// Text colors

$text: v("grey-dark") !default
+register("text", $text, true)

$text-invert: findColorInvert("text") !default
$text-light: v("grey") !default
$text-strong: v("grey-darker") !default

+register(text-invert, $text-invert, true)
+register(text-light, $text-light, true)
+register(text-strong, $text-strong, true)

// Code colors

$code: v("red") !default
$code-background: v("background") !default

$pre: v("text") !default
$pre-background: v("background") !default

+register("code", $code, true)
+register("code-background", $code-background, true)

+register("pre", $pre, true)
+register("pre-background", $pre-background, true)

// Link colors

$link: v("blue") !default

+register(link, $link, true)

$link-invert: findColorInvert("link") !default
$link-light: findLightColor("link") !default
$link-dark: findDarkColor("link") !default
$link-visited: v("purple") !default

+register(link-invert, $link-invert, true)
+register(link-light, $link-light, true)
+register(link-dark, $link-dark, true)
+register(link-visited, $link-visited, true)

$link-hover: v("grey-darker") !default
$link-hover-border: v("grey-light") !default

$link-focus: v("grey-darker") !default
$link-focus-border: v("blue") !default

$link-active: v("grey-darker") !default
$link-active-border: v("grey-dark") !default

+register(link-hover, $link-hover, true)
+register(link-hover-border, $link-hover-border, true)
+register(link-focus, $link-focus, true)
+register(link-focus-border, $link-focus-border, true)
+register(link-active, $link-active, true)
+register(link-active-border, $link-active-border, true)


// Typography

$family-primary: v("family-sans-serif") !default
$family-secondary: v("family-sans-serif") !default
$family-code: v("family-monospace") !default

+register(family-primary, $family-primary, true)
+register(family-secondary, $family-secondary, true)
+register(family-code, $family-code, true)

$size-small: v("size-7") !default
$size-normal: v("size-6") !default
$size-medium: v("size-5") !default
$size-large: v("size-4") !default

+register(size-small, $size-small, true)
+register(size-normal, $size-normal, true)
+register(size-medium, $size-medium, true)
+register(size-large, $size-large, true)

// Lists and maps
$custom-colors-list: null !default

$custom-colors: null !default

//Deprecated
$colors: mergeColorMaps(("white": ($white, $black), "black": ($black, $white), "light": ($light, $light-invert), "dark": ($dark, $dark-invert), "primary": ($primary, $primary-invert, $primary-light, $primary-dark), "link": ($link, $link-invert, $link-light, $link-dark), "info": ($info, $info-invert, $info-light, $info-dark), "success": ($success, $success-invert, $success-light, $success-dark), "warning": ($warning, $warning-invert, $warning-light, $warning-dark), "danger": ($danger, $danger-invert, $danger-light, $danger-dark)), $custom-colors) !default

@if $custom-colors
  @warn "The $custom-colors variable was deprecated use $custom-colors-list instead"
  $custom-colors-list: map_keys($custom-colors)

$custom-shades: null !default

$colors-list: ("white", "black", "light", "dark", "primary", "link", "info", "success", "warning", "danger") !default

@if $custom-colors-list
  $colors-list: append($colors-list, $custom-colors-list)

$shades: ("black-bis", "black-ter", "grey-darker", "grey-dark", "grey", "grey-light", "grey-lighter", "white-ter", "white-bis") !default
@if $custom-shades
  $shades: append($shades, $custom-shades)

$sizes: v("size-1") v("size-2") v("size-3") v("size-4") v("size-5") v("size-6") v("size-7") !default


@if $css_vars and $shorten
  @each $var in $css_vars
    // Register in short map
    $_: shorten-var($var)
