import type { PressureColorMapPreset } from "$lib/types/hud";

export interface PressureColorPalette {
  surfaceBase: string;
  surfaceLow: string;
  surfaceMid: string;
  surfaceHigh: string;
  surfaceHot: string;
  labelZero: string;
  labelLow: string;
  labelMid: string;
  labelHigh: string;
  rangeStops: [string, string, string, string, string, string];
  rangeGlow: [string, string, string];
  uiTheme: {
    bg00: string;
    bg10: string;
    bg20: string;
    bg30: string;
    textMainRgb: string;
    textDimRgb: string;
    borderRgb: string;
    borderStrongRgb: string;
    surfaceRgb: string;
    surfaceAltRgb: string;
    surfaceDeepRgb: string;
    glowRgb: string;
    glowAltRgb: string;
    cyanRgb: string;
    limeRgb: string;
    orangeRgb: string;
    infoRgb: string;
  };
}

export const pressureColorPalettes: Record<PressureColorMapPreset, PressureColorPalette> = {
  emerald: {
    surfaceBase: "#13201a",
    surfaceLow: "#285338",
    surfaceMid: "#3f8a66",
    surfaceHigh: "#6dd3ad",
    surfaceHot: "#d9fff0",
    labelZero: "#2d8d59",
    labelLow: "#54df8e",
    labelMid: "#98e6ff",
    labelHigh: "#ffab78",
    rangeStops: ["#13201a", "#285338", "#3f8a66", "#6dd3ad", "#98e6ff", "#ffab78"],
    rangeGlow: ["#54df8e", "#98e6ff", "#ffab78"],
    uiTheme: {
      bg00: "#020403",
      bg10: "#07100d",
      bg20: "#0c1712",
      bg30: "#040806",
      textMainRgb: "240 251 255",
      textDimRgb: "157 206 181",
      borderRgb: "88 132 116",
      borderStrongRgb: "120 190 156",
      surfaceRgb: "8 18 14",
      surfaceAltRgb: "12 26 20",
      surfaceDeepRgb: "4 10 8",
      glowRgb: "84 223 142",
      glowAltRgb: "152 230 255",
      cyanRgb: "152 230 255",
      limeRgb: "84 223 142",
      orangeRgb: "255 171 120",
      infoRgb: "122 198 255"
    }
  },
  arctic: {
    surfaceBase: "#08141d",
    surfaceLow: "#14354d",
    surfaceMid: "#1f6690",
    surfaceHigh: "#58bee8",
    surfaceHot: "#f1fdff",
    labelZero: "#3f87ae",
    labelLow: "#6dc8ff",
    labelMid: "#aef3ff",
    labelHigh: "#ffffff",
    rangeStops: ["#08141d", "#14354d", "#1f6690", "#58bee8", "#aef3ff", "#ffffff"],
    rangeGlow: ["#5ea9ff", "#7fe5ff", "#ffffff"],
    uiTheme: {
      bg00: "#02070c",
      bg10: "#07131b",
      bg20: "#0d1f2b",
      bg30: "#040b12",
      textMainRgb: "236 248 255",
      textDimRgb: "147 187 212",
      borderRgb: "86 129 160",
      borderStrongRgb: "129 193 228",
      surfaceRgb: "7 16 24",
      surfaceAltRgb: "10 23 34",
      surfaceDeepRgb: "4 9 15",
      glowRgb: "109 200 255",
      glowAltRgb: "174 243 255",
      cyanRgb: "109 200 255",
      limeRgb: "174 243 255",
      orangeRgb: "255 194 138",
      infoRgb: "94 169 255"
    }
  },
  ember: {
    surfaceBase: "#1b0c08",
    surfaceLow: "#4a1f15",
    surfaceMid: "#8f4124",
    surfaceHigh: "#d9772f",
    surfaceHot: "#fff1d8",
    labelZero: "#b9582f",
    labelLow: "#ff8a4e",
    labelMid: "#ffd06a",
    labelHigh: "#fff4df",
    rangeStops: ["#1b0c08", "#4a1f15", "#8f4124", "#d9772f", "#ffd06a", "#fff4df"],
    rangeGlow: ["#ff7247", "#ffb14d", "#fff4df"],
    uiTheme: {
      bg00: "#0a0503",
      bg10: "#140906",
      bg20: "#22120c",
      bg30: "#0c0504",
      textMainRgb: "255 241 231",
      textDimRgb: "202 156 128",
      borderRgb: "144 101 77",
      borderStrongRgb: "214 145 92",
      surfaceRgb: "20 10 8",
      surfaceAltRgb: "32 15 11",
      surfaceDeepRgb: "13 7 6",
      glowRgb: "255 138 78",
      glowAltRgb: "255 208 106",
      cyanRgb: "255 180 109",
      limeRgb: "255 208 106",
      orangeRgb: "255 108 84",
      infoRgb: "255 160 96"
    }
  }
};
