@use 'sass:color';
@use 'sass:map';
@use '../mixins/css3/text-decorators' as decorators;
@use '../utils/color-helper' as helper;
@use '../color-vars' as colors;
@use '../banner';

// Create custom colors for background, borders and text
//--------------------------------------------------------
$final-colors: map.remove(
  colors.$merged-theme-colors,
  'default',
  'primary',
  'secondary',
  'info',
  'success',
  'warning',
  'danger',
  'dark',
  'light',
  'light-grey',
  'grey',
  'black',
  'white',
  'red',
  'pink',
  'purple',
  'deep-purple',
  'indigo',
  'blue',
  'light-blue',
  'cyan',
  'teal',
  'green',
  'light-green',
  'lime',
  'yellow',
  'amber',
  'orange',
  'deep-orange',
  'midnight-haze',
  'brown',
  'blue-grey',
  'neutral',
  'blue-green',
  'blue-green-color',
  'dark-blue',
  'primary-color-dark'
);

@each $name, $color in $final-colors {
  @include decorators.decorate-color($name, $color);
}

// Manually adds duplicate custom colors
//---------------------------------------
@include decorators.decorate-color(
  'blue-green',
  colors.$blue-green-color,
  $alias-name1: 'blue-green-color'
);

@include decorators.decorate-color(
  'dark-blue',
  colors.$primary-color-dark,
  $alias-name1: 'primary-color-dark'
);

// Create full color palette for background
//-------------------------------------------
@each $name, $colors in colors.$full-palette {
  @each $sub_name, $value in $colors {
    @if $sub_name == '500' {
      @include decorators.decorate-color($name, $value, $alias-name1: '#{$name}-500');

      .bg-rgba-#{$name}-slight {
        background-color: color.change($value, $alpha: 0.1);
      }

      .bg-rgba-#{$name}-light {
        background-color: color.change($value, $alpha: 0.3);
      }

      .bg-rgba-#{$name}-strong {
        background-color: color.change(
          helper.to-oklch(color.adjust($value, $lightness: -5%)),
          $alpha: 0.6
        );
      }
    } @else {
      @if colors.$enable_full_palette {
        $color-name: '#{$name}-#{$sub_name}';
        @include decorators.decorate-color($color-name, $value, $border: false, $text: false);
      }
    }
  }
}
