{"version":3,"file":"getPalette.cjs","sources":["../../src/utils/named-colors.ts","../../src/utils/color.ts","../../src/utils/error.ts","../../src/utils/index.ts","webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../src/getPalette.ts"],"sourcesContent":["/**\n * CSS Named Colors (CSS Color Module Level 4)\n * @see https://www.w3.org/TR/css-color-4/#named-colors\n */\nconst NAMED_COLORS: Readonly<Record<string, string>> = Object.freeze({\n  aliceblue: '#f0f8ff',\n  antiquewhite: '#faebd7',\n  aqua: '#00ffff',\n  aquamarine: '#7fffd4',\n  azure: '#f0ffff',\n  beige: '#f5f5dc',\n  bisque: '#ffe4c4',\n  black: '#000000',\n  blanchedalmond: '#ffebcd',\n  blue: '#0000ff',\n  blueviolet: '#8a2be2',\n  brown: '#a52a2a',\n  burlywood: '#deb887',\n  cadetblue: '#5f9ea0',\n  chartreuse: '#7fff00',\n  chocolate: '#d2691e',\n  coral: '#ff7f50',\n  cornflowerblue: '#6495ed',\n  cornsilk: '#fff8dc',\n  crimson: '#dc143c',\n  cyan: '#00ffff',\n  darkblue: '#00008b',\n  darkcyan: '#008b8b',\n  darkgoldenrod: '#b8860b',\n  darkgray: '#a9a9a9',\n  darkgreen: '#006400',\n  darkgrey: '#a9a9a9',\n  darkkhaki: '#bdb76b',\n  darkmagenta: '#8b008b',\n  darkolivegreen: '#556b2f',\n  darkorange: '#ff8c00',\n  darkorchid: '#9932cc',\n  darkred: '#8b0000',\n  darksalmon: '#e9967a',\n  darkseagreen: '#8fbc8f',\n  darkslateblue: '#483d8b',\n  darkslategray: '#2f4f4f',\n  darkslategrey: '#2f4f4f',\n  darkturquoise: '#00ced1',\n  darkviolet: '#9400d3',\n  deeppink: '#ff1493',\n  deepskyblue: '#00bfff',\n  dimgray: '#696969',\n  dimgrey: '#696969',\n  dodgerblue: '#1e90ff',\n  firebrick: '#b22222',\n  floralwhite: '#fffaf0',\n  forestgreen: '#228b22',\n  fuchsia: '#ff00ff',\n  gainsboro: '#dcdcdc',\n  ghostwhite: '#f8f8ff',\n  gold: '#ffd700',\n  goldenrod: '#daa520',\n  gray: '#808080',\n  green: '#008000',\n  greenyellow: '#adff2f',\n  grey: '#808080',\n  honeydew: '#f0fff0',\n  hotpink: '#ff69b4',\n  indianred: '#cd5c5c',\n  indigo: '#4b0082',\n  ivory: '#fffff0',\n  khaki: '#f0e68c',\n  lavender: '#e6e6fa',\n  lavenderblush: '#fff0f5',\n  lawngreen: '#7cfc00',\n  lemonchiffon: '#fffacd',\n  lightblue: '#add8e6',\n  lightcoral: '#f08080',\n  lightcyan: '#e0ffff',\n  lightgoldenrodyellow: '#fafad2',\n  lightgray: '#d3d3d3',\n  lightgreen: '#90ee90',\n  lightgrey: '#d3d3d3',\n  lightpink: '#ffb6c1',\n  lightsalmon: '#ffa07a',\n  lightseagreen: '#20b2aa',\n  lightskyblue: '#87cefa',\n  lightslategray: '#778899',\n  lightslategrey: '#778899',\n  lightsteelblue: '#b0c4de',\n  lightyellow: '#ffffe0',\n  lime: '#00ff00',\n  limegreen: '#32cd32',\n  linen: '#faf0e6',\n  magenta: '#ff00ff',\n  maroon: '#800000',\n  mediumaquamarine: '#66cdaa',\n  mediumblue: '#0000cd',\n  mediumorchid: '#ba55d3',\n  mediumpurple: '#9370db',\n  mediumseagreen: '#3cb371',\n  mediumslateblue: '#7b68ee',\n  mediumspringgreen: '#00fa9a',\n  mediumturquoise: '#48d1cc',\n  mediumvioletred: '#c71585',\n  midnightblue: '#191970',\n  mintcream: '#f5fffa',\n  mistyrose: '#ffe4e1',\n  moccasin: '#ffe4b5',\n  navajowhite: '#ffdead',\n  navy: '#000080',\n  oldlace: '#fdf5e6',\n  olive: '#808000',\n  olivedrab: '#6b8e23',\n  orange: '#ffa500',\n  orangered: '#ff4500',\n  orchid: '#da70d6',\n  palegoldenrod: '#eee8aa',\n  palegreen: '#98fb98',\n  paleturquoise: '#afeeee',\n  palevioletred: '#db7093',\n  papayawhip: '#ffefd5',\n  peachpuff: '#ffdab9',\n  peru: '#cd853f',\n  pink: '#ffc0cb',\n  plum: '#dda0dd',\n  powderblue: '#b0e0e6',\n  purple: '#800080',\n  rebeccapurple: '#663399',\n  red: '#ff0000',\n  rosybrown: '#bc8f8f',\n  royalblue: '#4169e1',\n  saddlebrown: '#8b4513',\n  salmon: '#fa8072',\n  sandybrown: '#f4a460',\n  seagreen: '#2e8b57',\n  seashell: '#fff5ee',\n  sienna: '#a0522d',\n  silver: '#c0c0c0',\n  skyblue: '#87ceeb',\n  slateblue: '#6a5acd',\n  slategray: '#708090',\n  slategrey: '#708090',\n  snow: '#fffafa',\n  springgreen: '#00ff7f',\n  steelblue: '#4682b4',\n  tan: '#d2b48c',\n  teal: '#008080',\n  thistle: '#d8bfd8',\n  tomato: '#ff6347',\n  turquoise: '#40e0d0',\n  violet: '#ee82ee',\n  wheat: '#f5deb3',\n  white: '#ffffff',\n  whitesmoke: '#f5f5f5',\n  yellow: '#ffff00',\n  yellowgreen: '#9acd32',\n});\n\nexport default NAMED_COLORS;\n","import PaletteError from './error.ts';\nimport NAMED_COLORS from './named-colors.ts';\n\n// ─── Types ───────────────────────────────────────────────────────────────────\ntype RGB = [r: number, g: number, b: number];\ntype LAB = [L: number, a: number, b: number];\n\n// ─── CIE-LAB Constants ──────────────────────────────────────────────────────\n/** CIE standard threshold for linear/nonlinear transition */\nconst CIE_EPSILON = 0.008856;\nconst CIE_KAPPA = 7.787;\nconst CIE_OFFSET = 16 / 116;\n\n/** D65 standard illuminant reference values */\nconst D65_X = 95.047;\nconst D65_Y = 100.0;\nconst D65_Z = 108.883;\n\n/** Chroma.js-compatible darkening constant */\nconst LAB_DARKEN_FACTOR = 18;\n\n// ─── sRGB Gamma ──────────────────────────────────────────────────────────────\nconst linearize = (c: number): number => (c > 0.04045 ? ((c + 0.055) / 1.055) ** 2.4 : c / 12.92);\n\nconst delinearize = (c: number): number => (c > 0.0031308 ? 1.055 * c ** (1 / 2.4) - 0.055 : 12.92 * c);\n\n// ─── Clamping ────────────────────────────────────────────────────────────────\nconst clampByte = (value: number): number => Math.max(0, Math.min(255, Math.round(value)));\n\n// ─── Color Space Conversions ─────────────────────────────────────────────────\n\nconst rgbToLab = (rgb: RGB): LAB => {\n  const [rr, gg, bb] = rgb.map((c) => linearize(c / 255));\n\n  let x = ((rr * 0.4124564 + gg * 0.3575761 + bb * 0.1804375) * 100) / D65_X;\n  let y = ((rr * 0.2126729 + gg * 0.7151522 + bb * 0.072175) * 100) / D65_Y;\n  let z = ((rr * 0.0193339 + gg * 0.119192 + bb * 0.9503041) * 100) / D65_Z;\n\n  x = x > CIE_EPSILON ? x ** (1 / 3) : CIE_KAPPA * x + CIE_OFFSET;\n  y = y > CIE_EPSILON ? y ** (1 / 3) : CIE_KAPPA * y + CIE_OFFSET;\n  z = z > CIE_EPSILON ? z ** (1 / 3) : CIE_KAPPA * z + CIE_OFFSET;\n\n  return [116 * y - 16, 500 * (x - y), 200 * (y - z)];\n};\n\nconst labToRgb = ([L, a, b]: LAB): RGB => {\n  let y = (L + 16) / 116;\n  let x = a / 500 + y;\n  let z = y - b / 200;\n\n  const x3 = x ** 3;\n  const y3 = y ** 3;\n  const z3 = z ** 3;\n\n  x = ((x3 > CIE_EPSILON ? x3 : (x - CIE_OFFSET) / CIE_KAPPA) * D65_X) / 100;\n  y = ((y3 > CIE_EPSILON ? y3 : (y - CIE_OFFSET) / CIE_KAPPA) * D65_Y) / 100;\n  z = ((z3 > CIE_EPSILON ? z3 : (z - CIE_OFFSET) / CIE_KAPPA) * D65_Z) / 100;\n\n  const rr = x * 3.2404542 + y * -1.5371385 + z * -0.4985314;\n  const gg = x * -0.969266 + y * 1.8760108 + z * 0.041556;\n  const bb = x * 0.0556434 + y * -0.2040259 + z * 1.0572252;\n\n  return [clampByte(delinearize(rr) * 255), clampByte(delinearize(gg) * 255), clampByte(delinearize(bb) * 255)];\n};\n\nconst hslToRgb = (h: number, s: number, l: number): RGB => {\n  const sat = s / 100;\n  const lit = l / 100;\n  const a = sat * Math.min(lit, 1 - lit);\n  const k = (n: number) => (n + h / 30) % 12;\n  const f = (n: number) => lit - a * Math.max(-1, Math.min(k(n) - 3, 9 - k(n), 1));\n  return [255 * f(0), 255 * f(8), 255 * f(4)];\n};\n\n// ─── Hex Parsing & Formatting ────────────────────────────────────────────────\n\nconst parseHex = (hex: string): RGB => {\n  const cleaned = hex.replace(/^#/, '');\n  const expanded = cleaned.length === 3 ? cleaned[0] + cleaned[0] + cleaned[1] + cleaned[1] + cleaned[2] + cleaned[2] : cleaned;\n\n  const num = Number.parseInt(expanded, 16);\n  if (Number.isNaN(num)) {\n    throw new PaletteError(`Invalid hex color: '${hex}'`);\n  }\n\n  return [(num >> 16) & 255, (num >> 8) & 255, num & 255];\n};\n\nconst formatHex = (rgb: RGB): string => `#${rgb.map((c) => clampByte(c).toString(16).padStart(2, '0')).join('')}`;\n\n// ─── Color Parsing (multi-format) ────────────────────────────────────────────\n\nconst RGB_REGEX = /^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*[\\d.]+)?\\)$/;\nconst HSL_REGEX = /^hsla?\\((\\d+),\\s*([\\d.]+)%?,\\s*([\\d.]+)%?(?:,\\s*[\\d.]+)?\\)$/;\n\nconst parseColor = (input: string): RGB | null => {\n  const color = input.toLowerCase().trim();\n\n  // Named color\n  const named = NAMED_COLORS[color];\n  if (named) return parseHex(named);\n\n  // Hex\n  if (color.startsWith('#')) {\n    try {\n      return parseHex(color);\n    } catch {\n      return null;\n    }\n  }\n\n  // rgb/rgba\n  const rgbMatch = color.match(RGB_REGEX);\n  if (rgbMatch) {\n    return [Number.parseInt(rgbMatch[1], 10), Number.parseInt(rgbMatch[2], 10), Number.parseInt(rgbMatch[3], 10)];\n  }\n\n  // hsl/hsla\n  const hslMatch = color.match(HSL_REGEX);\n  if (hslMatch) {\n    return hslToRgb(Number.parseInt(hslMatch[1], 10), Number.parseFloat(hslMatch[2]), Number.parseFloat(hslMatch[3]));\n  }\n\n  return null;\n};\n\n// ─── Public API ──────────────────────────────────────────────────────────────\n\n/**\n * Checks whether the given string is a recognized color format.\n * Supports hex, rgb/rgba, hsl/hsla, and CSS named colors.\n */\nexport const isValidColor = (color: string): boolean => parseColor(color) !== null;\n\n/**\n * Converts any supported color string to a lowercase hex representation.\n * @throws {PaletteError} if the color cannot be parsed.\n */\nexport const toHex = (color: string): string => {\n  const rgb = parseColor(color);\n  if (!rgb) {\n    throw new PaletteError(`Invalid color: '${color}'`);\n  }\n  return formatHex(rgb).toLowerCase();\n};\n\n/**\n * Shifts a hex color's lightness in CIE-LAB space.\n * Positive `amount` darkens, negative `amount` lightens.\n * Compatible with chroma.js darken/brighten (Kn = 18).\n */\nexport const shiftLightness = (hexColor: string, amount: number): string => {\n  const lab = rgbToLab(parseHex(hexColor));\n  lab[0] -= amount * LAB_DARKEN_FACTOR;\n  return formatHex(labToRgb(lab));\n};\n","class PaletteError extends Error {\n  constructor(message: string) {\n    const errorMessage = `[PaletteError] ${message}`;\n    super(errorMessage);\n    this.name = 'PaletteError';\n  }\n}\n\nexport default PaletteError;\n","import type { ColorResultOptions, Palette, PaletteResult } from '../types/index.ts';\nimport { isValidColor } from './color.ts';\nimport PaletteError from './error.ts';\n\nexport const initialOptions: Omit<ColorResultOptions, 'primaryColor'> = {\n  mainShade: 500,\n  shades: [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950],\n};\n\nexport const checkParam = (palette: Palette): boolean => {\n  const { color, name, shade, shades } = palette;\n\n  if (!color || typeof color !== 'string' || !isValidColor(color)) {\n    throw new PaletteError(`Invalid color: '${color}'. Please provide a valid color.`);\n  }\n\n  if (!name || typeof name !== 'string') {\n    throw new PaletteError(`Invalid name: '${name}'. Please provide a valid name.`);\n  }\n\n  if (shade && typeof shade !== 'number') {\n    throw new PaletteError(`Invalid shade value: '${shade}'. Shade must be a number.`);\n  }\n\n  if (shades) {\n    if (!Array.isArray(shades)) {\n      throw new PaletteError(`Invalid shades: '${shades}'. Shades must be an array.`);\n    }\n\n    if (shades.length < 3) {\n      throw new PaletteError('Shades array must contain at least 3 elements.');\n    }\n\n    if (shade && !shades.includes(shade)) {\n      throw new PaletteError(`Main shade '${shade}' is not included in the shades array.`);\n    }\n  } else {\n    if (shade && !initialOptions.shades.includes(shade)) {\n      throw new PaletteError(`Main shade '${shade}' must be one of: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950.`);\n    }\n  }\n\n  return true;\n};\n\nconst darkPalettePrefix = 'dark-';\n\nexport const getPalettesFromOptions = (options: Record<string, string>): { lightPalettes: Palette[]; darkPalettes: Palette[] } => {\n  const lightPalettes: Palette[] = [];\n  const darkPalettes: Palette[] = [];\n  const lightPaletteNames = new Set<string>();\n  for (const [key, value] of Object.entries(options)) {\n    const isDarkPalette = key.startsWith(darkPalettePrefix);\n    const name = isDarkPalette ? key.slice(darkPalettePrefix.length) : key;\n\n    if (!name) {\n      throw new PaletteError(`Invalid option key: '${key}'.`);\n    }\n    const palette: Palette = {\n      name,\n      color: value,\n      shade: initialOptions.mainShade,\n      shades: initialOptions.shades,\n    };\n\n    if (isDarkPalette) {\n      darkPalettes.push(palette);\n      continue;\n    }\n\n    lightPalettes.push(palette);\n    lightPaletteNames.add(name);\n  }\n\n  for (const darkPalette of darkPalettes) {\n    if (!lightPaletteNames.has(darkPalette.name)) {\n      throw new PaletteError(`Missing base color for dark variant '${darkPalettePrefix}${darkPalette.name}'. Add '${darkPalette.name}' option.`);\n    }\n  }\n\n  return { lightPalettes, darkPalettes };\n};\n\nexport const convertResultToCSS = (result: PaletteResult, prefix: string): Record<string, string> => {\n  const colors: Record<string, string> = {};\n  for (const [key, color] of Object.entries(result)) {\n    colors[`--${prefix}${key}`] = color.DEFAULT;\n    for (const [shade, colorValue] of Object.entries(color)) {\n      if (shade === 'DEFAULT') continue;\n      colors[`--${prefix}${key}-${shade}`] = colorValue;\n    }\n  }\n  return colors;\n};\n\nexport const convertResultToThemeColors = (result: PaletteResult, prefix: string): Record<string, Record<string, string>> => {\n  const colors: Record<string, Record<string, string>> = {};\n\n  for (const [key, color] of Object.entries(result)) {\n    const themeColor: Record<string, string> = {\n      DEFAULT: `var(--${prefix}${key})`,\n    };\n\n    for (const shade of Object.keys(color)) {\n      if (shade === 'DEFAULT') continue;\n      themeColor[shade] = `var(--${prefix}${key}-${shade})`;\n    }\n\n    colors[key] = themeColor;\n  }\n\n  return colors;\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n        if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n            Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n        }\n    }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import type { ColorResultOptions, Palette, PaletteProp, PaletteResult } from './types/index.ts';\nimport { isValidColor, shiftLightness, toHex } from './utils/color.ts';\nimport PaletteError from './utils/error.ts';\nimport { checkParam, initialOptions } from './utils/index.ts';\n\nconst computeShadeOffset = (shade: number, baseShade: number): number => (shade - baseShade) / 100 / 2;\n\nconst generateShadeColor = (baseColor: string, baseShade: number, shade: number): string =>\n  shiftLightness(baseColor, computeShadeOffset(shade, baseShade));\n\nconst buildShadeMap = (options: ColorResultOptions): Record<PaletteProp, string> =>\n  options.shades.reduce<Record<string, string>>((acc, shade) => {\n    acc[String(shade)] = generateShadeColor(options.primaryColor, options.mainShade, shade);\n    return acc;\n  }, {});\n\nconst generateColorPalette = (options: ColorResultOptions): Record<PaletteProp, string> => {\n  const palette = buildShadeMap(options);\n  palette.DEFAULT = toHex(options.primaryColor);\n  return Object.freeze(palette);\n};\n\nconst resolveColorOptions = (config: Palette): ColorResultOptions => ({\n  mainShade: config.shade ?? initialOptions.mainShade,\n  primaryColor: toHex(config.color),\n  shades: config.shades ?? initialOptions.shades,\n});\n\nexport const getPalette = (params: Palette[] | Palette | string): PaletteResult => {\n  if (!params) {\n    throw new PaletteError('Please provide a valid palette configuration.');\n  }\n\n  const result: PaletteResult = {};\n\n  const addPalette = (name: string, options: ColorResultOptions): void => {\n    result[name] = generateColorPalette(options);\n  };\n\n  if (Array.isArray(params)) {\n    for (const config of params) {\n      if (checkParam(config)) {\n        addPalette(config.name, resolveColorOptions(config));\n      }\n    }\n  } else if (typeof params === 'object' && params !== null) {\n    if (checkParam(params)) {\n      addPalette(params.name, resolveColorOptions(params));\n    }\n  } else if (typeof params === 'string') {\n    if (!isValidColor(params)) {\n      throw new PaletteError(`Invalid color: '${params}'. Please provide a valid color.`);\n    }\n    addPalette('primary', {\n      mainShade: initialOptions.mainShade,\n      primaryColor: toHex(params),\n      shades: initialOptions.shades,\n    });\n  }\n\n  return result;\n};\n\nexport default getPalette;\n"],"names":["NAMED_COLORS","Object","PaletteError","CIE_EPSILON","CIE_KAPPA","CIE_OFFSET","D65_X","D65_Y","D65_Z","LAB_DARKEN_FACTOR","linearize","c","delinearize","clampByte","value","Math","rgbToLab","rgb","rr","gg","bb","x","y","z","labToRgb","L","a","b","x3","y3","z3","hslToRgb","h","s","l","sat","lit","k","n","f","parseHex","hex","cleaned","expanded","num","Number","formatHex","RGB_REGEX","HSL_REGEX","parseColor","input","color","named","rgbMatch","hslMatch","isValidColor","toHex","shiftLightness","hexColor","amount","lab","Error","message","errorMessage","initialOptions","checkParam","palette","name","shade","shades","Array","darkPalettePrefix","getPalettesFromOptions","options","lightPalettes","darkPalettes","lightPaletteNames","Set","key","isDarkPalette","darkPalette","convertResultToCSS","result","prefix","colors","colorValue","convertResultToThemeColors","themeColor","computeShadeOffset","baseShade","generateShadeColor","baseColor","buildShadeMap","acc","String","generateColorPalette","resolveColorOptions","config","getPalette","params","addPalette"],"mappings":"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"}