{"version":3,"file":"index.min.cjs","sources":["../src/lib/converter.ts","../src/utils/adjust-shades.ts","../src/index.ts"],"sourcesContent":["import { RGB, HSL, XYZ, LAB, OKLAB, OKLCH, HWB, LCH } from '../types'\n\nexport function rgbToHsl(r: number, g: number, b: number): HSL {\n  r /= 255\n  g /= 255\n  b /= 255\n  const max = Math.max(r, g, b)\n  const min = Math.min(r, g, b)\n  let h: number\n  let s: number\n  const l = (max + min) / 2\n  if (max === min) {\n    h = s = 0 // Achromatic\n  } else {\n    const d = max - min\n    s = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n    switch (max) {\n      case r:\n        h = (g - b) / d + (g < b ? 6 : 0)\n        break\n      case g:\n        h = (b - r) / d + 2\n        break\n      case b:\n        h = (r - g) / d + 4\n        break\n      default:\n        h = 0\n    }\n    h /= 6\n  }\n\n  return [h * 360, s * 100, l * 100]\n}\nexport function hslToRgb(h: number, s: number, l: number): RGB {\n  h /= 360\n  s /= 100\n  l /= 100\n  let r: number\n  let g: number\n  let b: number\n  if (s === 0) {\n    r = g = b = l // Achromatic\n  } else {\n    const hue2rgb = (p: number, q: number, t: number): number => {\n      if (t < 0) t += 1\n      if (t > 1) t -= 1\n      if (t < 1 / 6) return p + (q - p) * 6 * t\n      if (t < 1 / 2) return q\n      if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6\n      return p\n    }\n    const q = l < 0.5 ? l * (1 + s) : l + s - l * s\n    const p = 2 * l - q\n    r = hue2rgb(p, q, h + 1 / 3)\n    g = hue2rgb(p, q, h)\n    b = hue2rgb(p, q, h - 1 / 3)\n  }\n\n  return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]\n}\nexport function hexToRgb(hex: string): RGB {\n  const r = parseInt(hex.slice(1, 3), 16)\n  const g = parseInt(hex.slice(3, 5), 16)\n  const b = parseInt(hex.slice(5, 7), 16)\n\n  return [r, g, b]\n}\nexport function rgbToHex([r, g, b]: RGB): string {\n  return `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b\n    .toString(16)\n    .padStart(2, '0')}`\n}\nexport function rgbToHwb(r: number, g: number, b: number): HWB {\n  r /= 255\n  g /= 255\n  b /= 255\n  const white = Math.min(r, g, b)\n  const black = 1 - Math.max(r, g, b)\n  let hue\n  const [h] = rgbToHsl(r * 255, g * 255, b * 255)\n  hue = h\n\n  return [hue, white * 100, black * 100]\n}\nexport function rgbToLab(r: number, g: number, b: number): LAB {\n  const [x, y, z] = rgbToXyz(r, g, b)\n\n  // Using D65 illuminant\n  const xn = 0.95047\n  const yn = 1.0\n  const zn = 1.08883\n\n  const xx = x / xn\n  const yy = y / yn\n  const zz = z / zn\n\n  const fx = xx > 0.008856 ? Math.pow(xx, 1 / 3) : 7.787 * xx + 16 / 116\n  const fy = yy > 0.008856 ? Math.pow(yy, 1 / 3) : 7.787 * yy + 16 / 116\n  const fz = zz > 0.008856 ? Math.pow(zz, 1 / 3) : 7.787 * zz + 16 / 116\n\n  const L = 116 * fy - 16\n  const A = 500 * (fx - fy)\n  const B = 200 * (fy - fz)\n\n  return [L, A, B]\n}\nexport function rgbToLch(r: number, g: number, b: number): LCH {\n  // Convert to CIE LCH color space (different from OKLch)\n  const [L, A, B] = rgbToLab(r, g, b)\n  const c = Math.sqrt(A * A + B * B)\n  let h = (Math.atan2(B, A) * 180) / Math.PI\n  if (h < 0) h += 360\n\n  return [L, c, h]\n}\nfunction toLinear(value: number): number {\n  const val = value / 255\n\n  return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4)\n}\nfunction rgbToXyz(r: number, g: number, b: number): XYZ {\n  r = toLinear(r)\n  g = toLinear(g)\n  b = toLinear(b)\n  const x = 0.4124564 * r + 0.3575761 * g + 0.1804375 * b\n  const y = 0.2126729 * r + 0.7151522 * g + 0.072175 * b\n  const z = 0.0193339 * r + 0.119192 * g + 0.9503041 * b\n\n  return [x, y, z]\n}\nfunction xyzToOklab(x: number, y: number, z: number): OKLAB {\n  const l = Math.cbrt(0.8189330101 * x + 0.3618667424 * y - 0.1288597137 * z)\n  const m = Math.cbrt(0.0329845436 * x + 0.9293118715 * y + 0.0361456387 * z)\n  const s = Math.cbrt(0.0482003018 * x + 0.2643662691 * y + 0.633851707 * z)\n\n  return [\n    0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s,\n    1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s,\n    0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s\n  ]\n}\nfunction oklabToOklch(L: number, a: number, b: number): OKLCH {\n  const c = Math.sqrt(a * a + b * b)\n  let h = (Math.atan2(b, a) * 180) / Math.PI\n  if (h < 0) h += 360\n\n  return [L, c * 1, h]\n}\nexport function rgbToOklch(r: number, g: number, b: number): OKLCH {\n  const xyz = rgbToXyz(r, g, b)\n  const lab = xyzToOklab(...xyz)\n  const [L, c, h] = oklabToOklch(...lab)\n\n  return [L * 100, c, h]\n}\nexport default { rgbToHex, rgbToHsl, hslToRgb, hexToRgb, rgbToHwb, rgbToLab, rgbToLch, rgbToOklch }\n","import type { HSL } from '../types'\n\nexport function adjustShade(\n  hsl: HSL,\n  index: number,\n  isNeutral: boolean,\n  lighterLightness: number,\n  lighterSaturation: number,\n  darkerLightness: number,\n  darkerSaturation: number\n): HSL {\n  let [h, s, l] = hsl\n\n  // Lighter color adjustment\n  if (index < 5) {\n    l = Math.min(98, l + (98 - l) * ((5 - index) / lighterLightness))\n    if (!isNeutral) {\n      s = Math.max(10, s - s * ((5 - index) / lighterSaturation))\n    }\n  }\n\n  // Darker color adjustment\n  else if (index > 5) {\n    l = l * (1 - (index - 5) / darkerLightness)\n    if (!isNeutral) {\n      s = Math.min(100, s + (100 - s) * ((index - 5) / darkerSaturation))\n    }\n  }\n  return [h, s, l]\n}\n","import {\n  rgbToHsl,\n  hslToRgb,\n  hexToRgb,\n  rgbToHex,\n  rgbToOklch,\n  rgbToHwb,\n  rgbToLab,\n  rgbToLch\n} from './lib/converter'\nimport type {\n  RGB,\n  HSL,\n  ColorFormat,\n  OutputFormat,\n  ColorOptions,\n  ColorInput,\n  ColorShade\n} from './types'\nimport { adjustShade } from './utils/adjust-shades'\n\nfunction formatColor(hsl: HSL, format: ColorFormat, opacityPrefix: string = ''): string {\n  const [h, s, l] = hsl\n  const rgb = hslToRgb(h, s, l)\n  const opacityVar = opacityPrefix ? ` / var(--${opacityPrefix}-opacity)` : ''\n\n  // Define a helper function to extract values for *-value formats\n  const extractValues = (str: string) => str.match(/[\\d.]+%?/g)?.join(' ') || ''\n\n  switch (format) {\n    case 'rgb':\n      return `rgb(${rgb[0]} ${rgb[1]} ${rgb[2]}${opacityVar})`\n    case 'rgb-value':\n      return extractValues(`rgb(${rgb[0]} ${rgb[1]} ${rgb[2]})`)\n    case 'hsl':\n      return `hsl(${Math.round(h)} ${Math.round(s)}% ${l.toFixed(1)}%${opacityVar})`\n    case 'hsl-value':\n      return extractValues(`hsl(${Math.round(h)} ${Math.round(s)}% ${l.toFixed(1)}%)`)\n    case 'hwb':\n    case 'hwb-value': {\n      const [hw, w, b] = rgbToHwb(...rgb)\n      const result = `hwb(${Math.round(hw)} ${Math.round(w)}% ${Math.round(b)}%)`\n      return format === 'hwb-value' ? extractValues(result) : result\n    }\n    case 'lab':\n    case 'lab-value': {\n      const [L2, a, b2] = rgbToLab(...rgb)\n      const result = `lab(${L2.toFixed(1)}% ${a.toFixed(1)} ${b2.toFixed(1)})`\n      return format === 'lab-value' ? extractValues(result) : result\n    }\n    case 'lch':\n    case 'lch-value': {\n      const [L3, C2, H2] = rgbToLch(...rgb)\n      const result = `lch(${L3.toFixed(1)}% ${C2.toFixed(1)} ${H2.toFixed(1)})`\n      return format === 'lch-value' ? extractValues(result) : result\n    }\n    case 'oklch':\n    case 'oklch-value': {\n      const [L, C, H] = rgbToOklch(...rgb)\n      const result = `oklch(${L.toFixed(1)}% ${C.toFixed(3)} ${H.toFixed(1)})`\n      return format === 'oklch-value' ? extractValues(result) : result\n    }\n    case 'hex':\n    default:\n      return rgbToHex(rgb)\n  }\n}\n\nexport function generateColors({\n  option = {},\n  color\n}: {\n  option?: ColorOptions\n  color: ColorInput\n}): string | ColorShade | string[] {\n  const {\n    format = 'css',\n    output = 'hex',\n    opacityPrefix = '',\n    prefix = '',\n    reverse = false,\n    lighterLightness = 4.5,\n    lighterSaturation = 10,\n    darkerLightness = 6.5,\n    darkerSaturation = 7\n  } = option\n  const colorSteps = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950]\n  const steps = reverse ? [...colorSteps].reverse() : colorSteps\n  let result: any =\n    format === 'array'\n      ? {}\n      : format === 'object' || format === 'object2'\n        ? {}\n        : format === 'tailwind'\n          ? { theme: { colors: {} } }\n          : ''\n\n  for (let [colorName, hexColor] of Object.entries(color)) {\n    const rgb = hexToRgb(hexColor)\n    const hsl = rgbToHsl(...rgb)\n    const isNeutral = hsl[1] < 10\n    if (prefix !== '') {\n      colorName = prefix + colorName\n    }\n    if (format === 'array') {\n      result[colorName] = []\n    }\n    steps.forEach((step, index) => {\n      const adjustedHsl = adjustShade(\n        hsl,\n        index,\n        isNeutral,\n        lighterLightness,\n        lighterSaturation,\n        darkerLightness,\n        darkerSaturation\n      )\n      const colorValue = formatColor(adjustedHsl, output, opacityPrefix)\n      switch (format) {\n        case 'scss':\n          result += `$${colorName}-${step}: ${colorValue};\\n`\n          break\n        case 'tailwind':\n          if (!result.theme.colors[colorName]) {\n            result.theme.colors[colorName] = {}\n          }\n          result.theme.colors[colorName][step] = colorValue\n          break\n        case 'object':\n          if (typeof result !== 'object') result = {}\n          if (!result[colorName]) result[colorName] = {}\n          result[colorName][step] = colorValue\n          break\n        case 'object2':\n          result[`${colorName}-${step}`] = colorValue\n          break\n        case 'array':\n          result[colorName].push(colorValue)\n          break\n        case 'css':\n        default:\n          result += `--${colorName}-${step}: ${colorValue};\\n`\n      }\n    })\n    if (format === 'array' && reverse) {\n      result[colorName].reverse()\n    }\n  }\n  return result\n}\n\nexport * from './lib/converter'\nexport * from './types'\nexport default {\n  generateColors,\n  rgbToHsl,\n  hslToRgb,\n  hexToRgb,\n  rgbToHex,\n  rgbToOklch,\n  rgbToHwb,\n  rgbToLab,\n  rgbToLch\n}\n"],"names":["rgbToHsl","r","g","b","max","Math","min","h","s","l","d","hslToRgb","hue2rgb","p","q","t","round","hexToRgb","hex","parseInt","slice","rgbToHex","toString","padStart","rgbToHwb","white","black","hue","rgbToLab","x","y","z","rgbToXyz","xx","yy","zz","fx","pow","fy","rgbToLch","L","A","B","c","sqrt","atan2","PI","toLinear","value","val","rgbToOklch","lab","cbrt","m","xyzToOklab","a","oklabToOklch","adjustShade","hsl","index","isNeutral","lighterLightness","lighterSaturation","darkerLightness","darkerSaturation","formatColor","format","opacityPrefix","rgb","opacityVar","extractValues","str","_a","match","join","toFixed","hw","w","result","L2","b2","L3","C2","H2","C","H","generateColors","option","color","output","prefix","reverse","colorSteps","steps","theme","colors","colorName","hexColor","Object","entries","forEach","step","colorValue","push"],"mappings":"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"}