{"version":3,"file":"color.mjs","sources":["../../../../packages/utils/color.ts"],"sourcesContent":["export function calcColorChannels(c: string) {\n  let rawColor = c.trim().replace('#', '')\n  if (/^[0-9a-fA-F]{3}$/.test(rawColor)) {\n    rawColor =\n      rawColor[0].repeat(2) + rawColor[1].repeat(2) + rawColor[2].repeat(2)\n  }\n  if (/^[0-9a-fA-F]{6}$/.test(rawColor)) {\n    return {\n      red: Number.parseInt(rawColor.slice(0, 2), 16),\n      green: Number.parseInt(rawColor.slice(2, 4), 16),\n      blue: Number.parseInt(rawColor.slice(4, 6), 16),\n    }\n  }\n  return {\n    red: 255,\n    green: 255,\n    blue: 255,\n  }\n}\n\nexport function mixColor(color: string, percent = 0.2) {\n  let { red, green, blue } = calcColorChannels(color)\n  if (percent > 0) {\n    // shade given color\n    red *= 1 - percent\n    green *= 1 - percent\n    blue *= 1 - percent\n  } else {\n    // tint given color\n    const value = Math.abs(percent)\n    red += (255 - red) * Math.abs(percent)\n    green += (255 - green) * value\n    blue += (255 - blue) * value\n  }\n  return `rgb(${Math.round(red)}, ${Math.round(green)}, ${Math.round(blue)})`\n}\n\nexport function lighten(color: string, percent = 0.2) {\n  return mixColor(color, -percent)\n}\n\nexport function darken(color: string, percent = 0.2) {\n  return mixColor(color, percent)\n}\n"],"names":[],"mappings":"AAAO,SAAS,iBAAiB,CAAC,CAAC,EAAE;AACrC,EAAE,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC3C,EAAE,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACzC,IAAI,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrF,GAAG;AACH,EAAE,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACzC,IAAI,OAAO;AACX,MAAM,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACpD,MAAM,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACtD,MAAM,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACrD,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO;AACT,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,KAAK,EAAE,GAAG;AACd,IAAI,IAAI,EAAE,GAAG;AACb,GAAG,CAAC;AACJ,CAAC;AACM,SAAS,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,EAAE;AAC/C,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACtD,EAAE,IAAI,OAAO,GAAG,CAAC,EAAE;AACnB,IAAI,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;AACvB,IAAI,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC;AACzB,IAAI,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC;AACxB,GAAG,MAAM;AACT,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACpC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3C,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,KAAK,CAAC;AACnC,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC;AACjC,GAAG;AACH,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AACM,SAAS,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,EAAE;AAC9C,EAAE,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AACM,SAAS,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,EAAE;AAC7C,EAAE,OAAO,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAClC;;;;"}