{"version":3,"file":"color.mjs","sources":["../../../../packages/utils/color.ts"],"sourcesContent":["export function calcColorChannels(c: string) {\n  let rawColor = c.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: parseInt(rawColor.slice(0, 2), 16),\n      green: parseInt(rawColor.slice(2, 4), 16),\n      blue: 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":"2BAAkC,GAAW;AAC3C,MAAI,WAAW,EAAE,QAAQ,KAAK;AAC9B,MAAI,mBAAmB,KAAK,WAAW;AACrC,eACE,SAAS,GAAG,OAAO,KAAK,SAAS,GAAG,OAAO,KAAK,SAAS,GAAG,OAAO;AAAA;AAEvE,MAAI,mBAAmB,KAAK,WAAW;AACrC,WAAO;AAAA,MACL,KAAK,SAAS,SAAS,MAAM,GAAG,IAAI;AAAA,MACpC,OAAO,SAAS,SAAS,MAAM,GAAG,IAAI;AAAA,MACtC,MAAM,SAAS,SAAS,MAAM,GAAG,IAAI;AAAA;AAAA;AAGzC,SAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA;AAAA;kBAIe,OAAe,UAAU,KAAK;AACrD,MAAI,EAAE,KAAK,OAAO,SAAS,kBAAkB;AAC7C,MAAI,UAAU,GAAG;AAEf,WAAO,IAAI;AACX,aAAS,IAAI;AACb,YAAQ,IAAI;AAAA,SACP;AAEL,UAAM,QAAQ,KAAK,IAAI;AACvB,WAAQ,OAAM,OAAO,KAAK,IAAI;AAC9B,aAAU,OAAM,SAAS;AACzB,YAAS,OAAM,QAAQ;AAAA;AAEzB,SAAO,OAAO,KAAK,MAAM,SAAS,KAAK,MAAM,WAAW,KAAK,MAAM;AAAA;iBAG7C,OAAe,UAAU,KAAK;AACpD,SAAO,SAAS,OAAO,CAAC;AAAA;gBAGH,OAAe,UAAU,KAAK;AACnD,SAAO,SAAS,OAAO;AAAA;;;;"}