{"version":3,"file":"color.mjs","names":["COLORS","shadeHexColor","color","percent","f","parseInt","slice","t","p","R","G","B","concat","Math","round","toString","shadeRGBColor","_colorRGB","colorRGB","_colorRGB2","_slicedToArray","shade","arguments","length","undefined","blendHexColors","colorOne","colorTwo","R1","G1","B1","R2","G2","B2","blendRGBColors","_colorRGB3","_colorRGB4","split","blend","hex2rgb","join","hex","_hex$replace$substrin","replace","m","r","g","b","substring","match","map","x","opacity","includes","brightness","resolveColor","lightMemo","light","factor","inputKey","a","startsWith","Error","partSize","trimmed","parts","part","trim","hsl","rgbToHsl","rgb","hslToRgb","apply","_toConsumableArray","max","min","h","s","l","d","hue2rgb","q"],"sources":["../src/color.ts"],"sourcesContent":["/*__semcore-vars__:\"../style/var.css\"*/ /* @ts-ignore */\nconst COLORS = preval`\n  const path = require('path');\n  module.exports = require('@semcore/babel-plugin-react-semcore').getColorVars(path.resolve(__dirname, '../', 'style/var.css'));\n`;\n\nfunction shadeHexColor(color: string, percent: number) {\n  const f = parseInt(color.slice(1), 16);\n  const t = percent < 0 ? 0 : 255;\n  const p = percent < 0 ? percent * -1 : percent;\n  const R = f >> 16;\n  const G = (f >> 8) & 0x00ff;\n  const B = f & 0x0000ff;\n  return `#${(\n    0x1000000 +\n    (Math.round((t - R) * p) + R) * 0x10000 +\n    (Math.round((t - G) * p) + G) * 0x100 +\n    (Math.round((t - B) * p) + B)\n  )\n    .toString(16)\n    .slice(1)}`;\n}\n\nfunction shadeRGBColor(color: string, percent: number) {\n  const [R, G, B] = colorRGB(color);\n  const t = percent < 0 ? 0 : 255;\n  const p = percent < 0 ? percent * -1 : percent;\n\n  return `rgb(${Math.round((t - R) * p) + R},${Math.round((t - G) * p) + G},${\n    Math.round((t - B) * p) + B\n  })`;\n}\n\nexport function shade(color?: string, percent = 1) {\n  if (!color) return;\n  // TODO error for color name, example 'aqua'\n  if (color.length > 7) return shadeRGBColor(color, percent);\n  return shadeHexColor(color, percent);\n}\n\nfunction blendHexColors(colorOne: string, colorTwo: string, percent: number) {\n  const f = parseInt(colorOne.slice(1), 16);\n  const t = parseInt(colorTwo.slice(1), 16);\n  const R1 = f >> 16;\n  const G1 = (f >> 8) & 0x00ff;\n  const B1 = f & 0x0000ff;\n  const R2 = t >> 16;\n  const G2 = (t >> 8) & 0x00ff;\n  const B2 = t & 0x0000ff;\n  return `#${(\n    0x1000000 +\n    (Math.round((R2 - R1) * percent) + R1) * 0x10000 +\n    (Math.round((G2 - G1) * percent) + G1) * 0x100 +\n    (Math.round((B2 - B1) * percent) + B1)\n  )\n    .toString(16)\n    .slice(1)}`;\n}\n\nfunction blendRGBColors(colorOne: string, colorTwo: string, percent: number) {\n  const [R, G, B] = colorRGB(colorOne);\n  const t = colorTwo.split(',');\n\n  return `rgb(${Math.round((parseInt(t[0].slice(4)) - R) * percent) + R},${\n    Math.round((parseInt(t[1]) - G) * percent) + G\n  },${Math.round((parseInt(t[2]) - B) * percent) + B})`;\n}\n\nexport function blend(colorOne?: string, colorTwo?: string, percent = 1) {\n  if (!colorOne || !colorTwo) return;\n\n  if (colorOne.length > 7) {\n    if (colorTwo.length > 7) {\n      return blendRGBColors(colorOne, colorTwo, percent);\n    }\n    return blendRGBColors(colorOne, `rgb(${hex2rgb(colorTwo)})`, percent);\n  }\n  if (colorTwo.length > 7) {\n    return blendRGBColors(`rgb(${hex2rgb(colorOne).join(',')})`, colorTwo, percent);\n  }\n  return blendHexColors(colorOne, colorTwo, percent);\n}\n\nfunction colorRGB(color: string) {\n  const f = color.split(',');\n  const R = parseInt(f[0].slice(4));\n  const G = parseInt(f[1]);\n  const B = parseInt(f[2]);\n  return [R, G, B];\n}\n\nfunction hex2rgb(hex: string) {\n  return hex\n    .replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i, (m, r, g, b) => `#${r}${r}${g}${g}${b}${b}`)\n    .substring(1)\n    .match(/.{2}/g)\n    ?.map((x) => parseInt(x, 16))!;\n}\n\nexport function opacity(color?: string, percent = 1) {\n  if (!color) return;\n  if (color.includes('#') && color.match(/^#?[a-fA-F\\d]{6}$/)) {\n    color = `rgba(${hex2rgb(color).join(', ')}, ${percent})`;\n  } else if (color.includes('rgb')) {\n    color = `rgba(${colorRGB(color).join(', ')}, ${percent})`;\n  } else {\n    return;\n  }\n  return color;\n}\n\nexport function brightness(color: any) {\n  if (!color) return;\n  if (color.length <= 7) {\n    color = hex2rgb(color);\n  } else {\n    color = colorRGB(color);\n  }\n  return Math.round(\n    (parseInt(color[0]) * 299 + parseInt(color[1]) * 587 + parseInt(color[2]) * 114) / 1000,\n  );\n}\n\nexport default function resolveColor<T extends string | undefined>(\n  color?: T,\n): T extends string ? string : undefined {\n  if (!color) return undefined as any;\n  if (color in (COLORS as Record<string, string>)) {\n    return COLORS[color];\n  }\n  return color as any;\n}\n\nconst lightMemo: { [input: string]: string } = {};\nexport const light = (color?: string, factor = 1) => {\n  if (!color) return;\n  const inputKey = `${color}_${factor}`;\n  if (lightMemo[inputKey]) return lightMemo[inputKey];\n\n  let r = 0;\n  let g = 0;\n  let b = 0;\n  let a = 1;\n  if (color.startsWith('#')) {\n    if (color.length !== 4 && color.length !== 7) {\n      throw new Error(`Got invalid color ${color}`);\n    }\n    const partSize = color.length === 4 ? 1 : 2;\n    r = parseInt(color.substring(1, 1 + partSize), 16);\n    g = parseInt(color.substring(1 + partSize, 1 + partSize * 2), 16);\n    b = parseInt(color.substring(1 + partSize * 2, 1 + partSize * 3), 16);\n    a = 1; // not handled for now\n  } else if (color.startsWith('rgb(')) {\n    const trimmed = color.substring('rgb('.length, color.length - ')'.length);\n    const parts = trimmed.split(',').map((part) => parseInt(part.trim(), 10));\n    r = parts[0];\n    g = parts[1];\n    b = parts[2];\n    a = 1;\n  } else if (color.startsWith('rgba(')) {\n    const trimmed = color.substring('rgba('.length, color.length - ')'.length);\n    const parts = trimmed.split(',').map((part) => parseInt(part.trim(), 10));\n    r = parts[0];\n    g = parts[1];\n    b = parts[2];\n    a = parts[2];\n  } else {\n    throw new Error(`Got invalid color ${color}`);\n  }\n\n  const hsl = rgbToHsl(r, g, b);\n\n  hsl[2] += (1 - hsl[2]) * factor;\n\n  const rgb = hslToRgb(...hsl);\n\n  return lightMemo[inputKey] === `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${a})`;\n};\n\nconst rgbToHsl = (r: number, g: number, b: number) => {\n  r /= 255;\n  g /= 255;\n  b /= 255;\n\n  const max = Math.max(r, g, b);\n  const min = Math.min(r, g, b);\n  let h = 0;\n  let s = 0;\n  const l = (max + min) / 2;\n\n  if (max === min) {\n    h = s = 0;\n  } else {\n    const d = max - min;\n    s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\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    }\n\n    h! /= 6;\n  }\n\n  return [h, s, l] as [h: number, s: number, l: number];\n};\n\nconst hslToRgb = (h: number, s: number, l: number) => {\n  let r = 0;\n  let g = 0;\n  let b = 0;\n\n  if (s === 0) {\n    r = g = b = l;\n  } else {\n    function hue2rgb(p: number, q: number, t: 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\n    const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n    const p = 2 * l - q;\n\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 [r * 255, g * 255, b * 255] as [r: number, g: number, b: number];\n};\n"],"mappings":"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"}