@use './colors' as *;
@use './deprecated/colors' as *;
@use './semantic-colors' as *;

// Global scheme colors mapping for all components

$unnnic-scheme-colors:
  'white' $unnnic-color-white,

  'black' $unnnic-color-black,

  // New primitives (1-13 scale)
  'gray-0' $unnnic-color-gray-0,
  'gray-1' $unnnic-color-gray-1,
  'gray-2' $unnnic-color-gray-2,
  'gray-3' $unnnic-color-gray-3,
  'gray-4' $unnnic-color-gray-4,
  'gray-5' $unnnic-color-gray-5,
  'gray-6' $unnnic-color-gray-6,
  'gray-7' $unnnic-color-gray-7,
  'gray-8' $unnnic-color-gray-8,
  'gray-9' $unnnic-color-gray-9,
  'gray-10' $unnnic-color-gray-10,
  'gray-11' $unnnic-color-gray-11,
  'gray-12' $unnnic-color-gray-12,
  'gray-13' $unnnic-color-gray-13,

  'teal-1' $unnnic-color-teal-1,
  'teal-2' $unnnic-color-teal-2,
  'teal-3' $unnnic-color-teal-3,
  'teal-4' $unnnic-color-teal-4,
  'teal-5' $unnnic-color-teal-5,
  'teal-6' $unnnic-color-teal-6,
  'teal-7' $unnnic-color-teal-7,
  'teal-8' $unnnic-color-teal-8,
  'teal-9' $unnnic-color-teal-9,
  'teal-10' $unnnic-color-teal-10,
  'teal-11' $unnnic-color-teal-11,
  'teal-12' $unnnic-color-teal-12,
  'teal-13' $unnnic-color-teal-13,

  'green-1' $unnnic-color-green-1,
  'green-2' $unnnic-color-green-2,
  'green-3' $unnnic-color-green-3,
  'green-4' $unnnic-color-green-4,
  'green-5' $unnnic-color-green-5,
  'green-6' $unnnic-color-green-6,
  'green-7' $unnnic-color-green-7,
  'green-8' $unnnic-color-green-8,
  'green-9' $unnnic-color-green-9,
  'green-10' $unnnic-color-green-10,
  'green-11' $unnnic-color-green-11,
  'green-12' $unnnic-color-green-12,
  'green-13' $unnnic-color-green-13,

  'blue-1' $unnnic-color-blue-1,
  'blue-2' $unnnic-color-blue-2,
  'blue-3' $unnnic-color-blue-3,
  'blue-4' $unnnic-color-blue-4,
  'blue-5' $unnnic-color-blue-5,
  'blue-6' $unnnic-color-blue-6,
  'blue-7' $unnnic-color-blue-7,
  'blue-8' $unnnic-color-blue-8,
  'blue-9' $unnnic-color-blue-9,
  'blue-10' $unnnic-color-blue-10,
  'blue-11' $unnnic-color-blue-11,
  'blue-12' $unnnic-color-blue-12,
  'blue-13' $unnnic-color-blue-13,

  'purple-1' $unnnic-color-purple-1,
  'purple-2' $unnnic-color-purple-2,
  'purple-3' $unnnic-color-purple-3,
  'purple-4' $unnnic-color-purple-4,
  'purple-5' $unnnic-color-purple-5,
  'purple-6' $unnnic-color-purple-6,
  'purple-7' $unnnic-color-purple-7,
  'purple-8' $unnnic-color-purple-8,
  'purple-9' $unnnic-color-purple-9,
  'purple-10' $unnnic-color-purple-10,
  'purple-11' $unnnic-color-purple-11,
  'purple-12' $unnnic-color-purple-12,
  'purple-13' $unnnic-color-purple-13,

  'red-1' $unnnic-color-red-1,
  'red-2' $unnnic-color-red-2,
  'red-3' $unnnic-color-red-3,
  'red-4' $unnnic-color-red-4,
  'red-5' $unnnic-color-red-5,
  'red-6' $unnnic-color-red-6,
  'red-7' $unnnic-color-red-7,
  'red-8' $unnnic-color-red-8,
  'red-9' $unnnic-color-red-9,
  'red-10' $unnnic-color-red-10,
  'red-11' $unnnic-color-red-11,
  'red-12' $unnnic-color-red-12,
  'red-13' $unnnic-color-red-13,

  'orange-1' $unnnic-color-orange-1,
  'orange-2' $unnnic-color-orange-2,
  'orange-3' $unnnic-color-orange-3,
  'orange-4' $unnnic-color-orange-4,
  'orange-5' $unnnic-color-orange-5,
  'orange-6' $unnnic-color-orange-6,
  'orange-7' $unnnic-color-orange-7,
  'orange-8' $unnnic-color-orange-8,
  'orange-9' $unnnic-color-orange-9,
  'orange-10' $unnnic-color-orange-10,
  'orange-11' $unnnic-color-orange-11,
  'orange-12' $unnnic-color-orange-12,
  'orange-13' $unnnic-color-orange-13,

  'yellow-1' $unnnic-color-yellow-1,
  'yellow-2' $unnnic-color-yellow-2,
  'yellow-3' $unnnic-color-yellow-3,
  'yellow-4' $unnnic-color-yellow-4,
  'yellow-5' $unnnic-color-yellow-5,
  'yellow-6' $unnnic-color-yellow-6,
  'yellow-7' $unnnic-color-yellow-7,
  'yellow-8' $unnnic-color-yellow-8,
  'yellow-9' $unnnic-color-yellow-9,
  'yellow-10' $unnnic-color-yellow-10,
  'yellow-11' $unnnic-color-yellow-11,
  'yellow-12' $unnnic-color-yellow-12,
  'yellow-13' $unnnic-color-yellow-13,

  'cyan-1' $unnnic-color-cyan-1,
  'cyan-2' $unnnic-color-cyan-2,
  'cyan-3' $unnnic-color-cyan-3,
  'cyan-4' $unnnic-color-cyan-4,
  'cyan-5' $unnnic-color-cyan-5,
  'cyan-6' $unnnic-color-cyan-6,
  'cyan-7' $unnnic-color-cyan-7,
  'cyan-8' $unnnic-color-cyan-8,
  'cyan-9' $unnnic-color-cyan-9,
  'cyan-10' $unnnic-color-cyan-10,
  'cyan-11' $unnnic-color-cyan-11,
  'cyan-12' $unnnic-color-cyan-12,
  'cyan-13' $unnnic-color-cyan-13,

  'pink-1' $unnnic-color-pink-1,
  'pink-2' $unnnic-color-pink-2,
  'pink-3' $unnnic-color-pink-3,
  'pink-4' $unnnic-color-pink-4,
  'pink-5' $unnnic-color-pink-5,
  'pink-6' $unnnic-color-pink-6,
  'pink-7' $unnnic-color-pink-7,
  'pink-8' $unnnic-color-pink-8,
  'pink-9' $unnnic-color-pink-9,
  'pink-10' $unnnic-color-pink-10,
  'pink-11' $unnnic-color-pink-11,
  'pink-12' $unnnic-color-pink-12,
  'pink-13' $unnnic-color-pink-13,

  // New semantic tokens
  'bg-base' $unnnic-color-bg-base,
  'bg-base-soft' $unnnic-color-bg-base-soft,
  'bg-muted' $unnnic-color-bg-muted,
  'bg-accent-plain' $unnnic-color-bg-accent-plain,
  'bg-accent-strong' $unnnic-color-bg-accent-strong,
  'bg-info' $unnnic-color-bg-info,
  'bg-success' $unnnic-color-bg-success,
  'bg-warning' $unnnic-color-bg-warning,
  'bg-critical' $unnnic-color-bg-critical,
  'bg-red-plain' $unnnic-color-bg-red-plain,
  'bg-red-strong' $unnnic-color-bg-red-strong,
  'bg-orange-plain' $unnnic-color-bg-orange-plain,
  'bg-orange-strong' $unnnic-color-bg-orange-strong,
  'bg-yellow-plain' $unnnic-color-bg-yellow-plain,
  'bg-yellow-strong' $unnnic-color-bg-yellow-strong,
  'bg-green-plain' $unnnic-color-bg-green-plain,
  'bg-green-strong' $unnnic-color-bg-green-strong,
  'bg-teal-plain' $unnnic-color-bg-teal-plain,
  'bg-teal-strong' $unnnic-color-bg-teal-strong,
  'bg-blue-plain' $unnnic-color-bg-blue-plain,
  'bg-blue-strong' $unnnic-color-bg-blue-strong,
  'bg-purple-plain' $unnnic-color-bg-purple-plain,
  'bg-purple-strong' $unnnic-color-bg-purple-strong,
  'bg-pink-plain' $unnnic-color-bg-pink-plain,
  'bg-pink-strong' $unnnic-color-bg-pink-strong,
  'bg-inverted' $unnnic-color-bg-inverted,

  'fg-base' $unnnic-color-fg-base,
  'fg-emphasized' $unnnic-color-fg-emphasized,
  'fg-muted' $unnnic-color-fg-muted,
  'fg-inverted' $unnnic-color-fg-inverted,
  'fg-on-primary' $unnnic-color-fg-on-primary,
  'fg-accent' $unnnic-color-fg-accent,
  'fg-info' $unnnic-color-fg-info,
  'fg-success' $unnnic-color-fg-success,
  'fg-warning' $unnnic-color-fg-warning,
  'fg-critical' $unnnic-color-fg-critical,

  'border-base' $unnnic-color-border-base,
  'border-muted' $unnnic-color-border-muted,
  'border-emphasized' $unnnic-color-border-emphasized,
  'border-accent-plain' $unnnic-color-border-accent-plain,
  'border-accent-strong' $unnnic-color-border-accent-strong,
  'border-info' $unnnic-color-border-info,
  'border-success' $unnnic-color-border-success,
  'border-warning' $unnnic-color-border-warning,
  'border-critical' $unnnic-color-border-critical,

  // Deprecated semantic aliases (old names pointing to new tokens)
  'bg-soft' $unnnic-color-bg-soft,
  'bg-active' $unnnic-color-bg-active,
  'fg-active' $unnnic-color-fg-active,
  'border-soft' $unnnic-color-border-soft,
  'border-active' $unnnic-color-border-active,

  // Deprecated primitives (50-950 aliases)
  'gray-50' $unnnic-color-gray-50,
  'gray-100' $unnnic-color-gray-100,
  'gray-200' $unnnic-color-gray-200,
  'gray-300' $unnnic-color-gray-300,
  'gray-400' $unnnic-color-gray-400,
  'gray-500' $unnnic-color-gray-500,
  'gray-600' $unnnic-color-gray-600,
  'gray-700' $unnnic-color-gray-700,
  'gray-800' $unnnic-color-gray-800,
  'gray-900' $unnnic-color-gray-900,
  'gray-950' $unnnic-color-gray-950,

  'teal-50' $unnnic-color-teal-50,
  'teal-100' $unnnic-color-teal-100,
  'teal-200' $unnnic-color-teal-200,
  'teal-300' $unnnic-color-teal-300,
  'teal-400' $unnnic-color-teal-400,
  'teal-500' $unnnic-color-teal-500,
  'teal-600' $unnnic-color-teal-600,
  'teal-700' $unnnic-color-teal-700,
  'teal-800' $unnnic-color-teal-800,
  'teal-900' $unnnic-color-teal-900,
  'teal-950' $unnnic-color-teal-950,

  'green-50' $unnnic-color-green-50,
  'green-100' $unnnic-color-green-100,
  'green-200' $unnnic-color-green-200,
  'green-300' $unnnic-color-green-300,
  'green-400' $unnnic-color-green-400,
  'green-500' $unnnic-color-green-500,
  'green-600' $unnnic-color-green-600,
  'green-700' $unnnic-color-green-700,
  'green-800' $unnnic-color-green-800,
  'green-900' $unnnic-color-green-900,
  'green-950' $unnnic-color-green-950,

  'blue-50' $unnnic-color-blue-50,
  'blue-100' $unnnic-color-blue-100,
  'blue-200' $unnnic-color-blue-200,
  'blue-300' $unnnic-color-blue-300,
  'blue-400' $unnnic-color-blue-400,
  'blue-500' $unnnic-color-blue-500,
  'blue-600' $unnnic-color-blue-600,
  'blue-700' $unnnic-color-blue-700,
  'blue-800' $unnnic-color-blue-800,
  'blue-900' $unnnic-color-blue-900,
  'blue-950' $unnnic-color-blue-950,

  'purple-50' $unnnic-color-purple-50,
  'purple-100' $unnnic-color-purple-100,
  'purple-200' $unnnic-color-purple-200,
  'purple-300' $unnnic-color-purple-300,
  'purple-400' $unnnic-color-purple-400,
  'purple-500' $unnnic-color-purple-500,
  'purple-600' $unnnic-color-purple-600,
  'purple-700' $unnnic-color-purple-700,
  'purple-800' $unnnic-color-purple-800,
  'purple-900' $unnnic-color-purple-900,
  'purple-950' $unnnic-color-purple-950,

  'red-50' $unnnic-color-red-50,
  'red-100' $unnnic-color-red-100,
  'red-200' $unnnic-color-red-200,
  'red-300' $unnnic-color-red-300,
  'red-400' $unnnic-color-red-400,
  'red-500' $unnnic-color-red-500,
  'red-600' $unnnic-color-red-600,
  'red-700' $unnnic-color-red-700,
  'red-800' $unnnic-color-red-800,
  'red-900' $unnnic-color-red-900,
  'red-950' $unnnic-color-red-950,

  'orange-50' $unnnic-color-orange-50,
  'orange-100' $unnnic-color-orange-100,
  'orange-200' $unnnic-color-orange-200,
  'orange-300' $unnnic-color-orange-300,
  'orange-400' $unnnic-color-orange-400,
  'orange-500' $unnnic-color-orange-500,
  'orange-600' $unnnic-color-orange-600,
  'orange-700' $unnnic-color-orange-700,
  'orange-800' $unnnic-color-orange-800,
  'orange-900' $unnnic-color-orange-900,
  'orange-950' $unnnic-color-orange-950,

  'yellow-50' $unnnic-color-yellow-50,
  'yellow-100' $unnnic-color-yellow-100,
  'yellow-200' $unnnic-color-yellow-200,
  'yellow-300' $unnnic-color-yellow-300,
  'yellow-400' $unnnic-color-yellow-400,
  'yellow-500' $unnnic-color-yellow-500,
  'yellow-600' $unnnic-color-yellow-600,
  'yellow-700' $unnnic-color-yellow-700,
  'yellow-800' $unnnic-color-yellow-800,
  'yellow-900' $unnnic-color-yellow-900,
  'yellow-950' $unnnic-color-yellow-950,

  // Legacy deprecated
  'background-solo' $unnnic-color-teal-50,
  'background-sky' $unnnic-color-gray-50,
  'background-grass' $unnnic-color-green-50,
  'background-carpet' $unnnic-color-gray-50,
  'background-snow' $unnnic-color-white,
  'background-lightest' $unnnic-color-gray-50,
  'background-white' $unnnic-color-white,

  'neutral-black' $unnnic-color-gray-900,
  'neutral-darkest' $unnnic-color-gray-800,
  'neutral-dark' $unnnic-color-gray-700,
  'neutral-cloudy' $unnnic-color-gray-500,
  'neutral-cleanest' $unnnic-color-gray-200,
  'neutral-clean' $unnnic-color-gray-300,
  'neutral-soft' $unnnic-color-gray-100,
  'neutral-lightest' $unnnic-color-gray-50,
  'neutral-light' $unnnic-color-gray-50,
  'neutral-white' $unnnic-color-white,
  'neutral-snow' $unnnic-color-white,

  'feedback-red' $unnnic-color-red-500,
  'feedback-green' $unnnic-color-green-500,
  'feedback-yellow' $unnnic-color-yellow-500,
  'feedback-blue' $unnnic-color-blue-500,
  'feedback-grey' $unnnic-color-gray-500,

  'aux-blue' $unnnic-color-blue-500,
  'aux-purple' $unnnic-color-purple-500,
  'aux-orange' $unnnic-color-orange-500,
  'aux-lemon' $unnnic-color-yellow-400,
  'aux-pink' $unnnic-color-red-300,
  'aux-baby-blue' $unnnic-color-blue-200,
  'aux-baby-yellow' $unnnic-color-yellow-200,
  'aux-baby-red' $unnnic-color-red-200,
  'aux-baby-green' $unnnic-color-green-200,
  'aux-baby-pink' $unnnic-color-red-100,

  'aux-green-100' $unnnic-color-green-100,
  'aux-green-300' $unnnic-color-green-300,
  'aux-green-500' $unnnic-color-green-500,
  'aux-green-700' $unnnic-color-green-700,
  'aux-green-900' $unnnic-color-green-900,
  'aux-blue-100' $unnnic-color-blue-100,
  'aux-blue-300' $unnnic-color-blue-300,
  'aux-blue-500' $unnnic-color-blue-500,
  'aux-blue-700' $unnnic-color-blue-700,
  'aux-blue-900' $unnnic-color-blue-900,
  'aux-purple-100' $unnnic-color-purple-100,
  'aux-purple-300' $unnnic-color-purple-300,
  'aux-purple-500' $unnnic-color-purple-500,
  'aux-purple-700' $unnnic-color-purple-700,
  'aux-purple-900' $unnnic-color-purple-900,
  'aux-red-100' $unnnic-color-red-100,
  'aux-red-300' $unnnic-color-red-300,
  'aux-red-500' $unnnic-color-red-500,
  'aux-red-700' $unnnic-color-red-700,
  'aux-red-900' $unnnic-color-red-900,
  'aux-orange-100' $unnnic-color-orange-100,
  'aux-orange-300' $unnnic-color-orange-300,
  'aux-orange-500' $unnnic-color-orange-500,
  'aux-orange-700' $unnnic-color-orange-700,
  'aux-orange-900' $unnnic-color-orange-900,
  'aux-yellow-100' $unnnic-color-yellow-100,
  'aux-yellow-300' $unnnic-color-yellow-300,
  'aux-yellow-500' $unnnic-color-yellow-500,
  'aux-yellow-700' $unnnic-color-yellow-700,
  'aux-yellow-900' $unnnic-color-yellow-900,

  'floweditor-blue' $unnnic-color-blue-600,
  'floweditor-purple' $unnnic-color-purple-600,
  'floweditor-wine' $unnnic-color-red-800,
  'floweditor-orange' $unnnic-color-orange-600,
  'floweditor-pink' $unnnic-color-red-400,
  'floweditor-turquoise' $unnnic-color-teal-500,
  'floweditor-green' $unnnic-color-green-600,

  'weni-50' $unnnic-color-teal-50,
  'weni-100' $unnnic-color-teal-100,
  'weni-200' $unnnic-color-teal-200,
  'weni-300' $unnnic-color-teal-300,
  'weni-400' $unnnic-color-teal-400,
  'weni-500' $unnnic-color-teal-500,
  'weni-600' $unnnic-color-teal-600,
  'weni-700' $unnnic-color-teal-700,
  'weni-800' $unnnic-color-teal-800,
  'weni-900' $unnnic-color-teal-900,
  'weni-950' $unnnic-color-teal-950,
  'brand-weni' $unnnic-color-teal-600,
  'brand-weni-dark' $unnnic-color-teal-800,
  'brand-weni-soft' $unnnic-color-teal-600,
  'brand-sec-dark' $unnnic-color-blue-800,
  'brand-sec-soft' $unnnic-color-blue-100,
  'brand-sec' $unnnic-color-blue-600;

@mixin generate-scheme-classes($component-name, $property: 'background-color') {
  @each $name, $color in $unnnic-scheme-colors {
    .#{$component-name}--#{$name} {
      #{$property}: $color;
    }
  }
}

@function get-scheme-color($name) {
  @each $scheme-name, $color in $unnnic-scheme-colors {
    @if $scheme-name == $name {
      @return $color;
    }
  }
  @warn "Scheme color '#{$name}' not found in $unnnic-scheme-colors";
  @return null;
}
