{"version":3,"file":"color.mjs","sources":["../../../../packages/utils/color.ts"],"sourcesContent":["import {\n  vuesaxColors,\n  rgbRE,\n  rgbNumberRE,\n  leadingHashRE,\n  hexShorthandRE,\n  hexFullRE,\n} from '@vuesax-plus/constants'\nimport type { VuesaxColor } from '@vuesax-plus/constants'\n\nexport const isColorDark = (color?: string | boolean): boolean => {\n  if (color === undefined || color === false) return false\n  return color === 'dark' || color === true\n}\n\nexport const isVsColor = (color: VuesaxColor): boolean =>\n  vuesaxColors.includes(color)\n\nexport const hexToRgb = (color: string) => {\n  color = color.replace(\n    hexShorthandRE,\n    (_, r: string, g: string, b: string) => r + r + g + g + b + b\n  )\n  const res = hexFullRE.exec(color)\n\n  return res\n    ? {\n        r: parseInt(res[1], 16),\n        g: parseInt(res[2], 16),\n        b: parseInt(res[3], 16),\n      }\n    : null\n}\n\n/*\n   color maybe is hex #fff, rgb rgba, rgb number\n   e.g rgb(23,34,34) -> 23, 34, 34\n  */\nexport const getVsColor = (color: string): string => {\n  const isRGB = rgbRE.test(color)\n  const isRGBNumbers = rgbNumberRE.test(color)\n  const isHEX = leadingHashRE.test(color)\n\n  let newColor: string = ''\n\n  if (isRGB) {\n    const arrayColor = color.replace(/[rgba()]/g, '').split(',')\n    newColor = `${arrayColor[0]},${arrayColor[1]},${arrayColor[2]}`\n  } else if (isHEX) {\n    const rgb = hexToRgb(color)\n    newColor = `${rgb!.r},${rgb!.g},${rgb!.b}`\n  } else if (isVsColor(color as VuesaxColor)) {\n    const style = window.getComputedStyle(document.body)\n    newColor = style.getPropertyValue(`--vs-${color}`)\n  } else if (isRGBNumbers) {\n    newColor = color\n  }\n  return newColor\n}\n\nexport const setVsCssVar = (\n  propertyName: string,\n  value: string,\n  el?: HTMLElement\n) => {\n  if (!el) {\n    document.documentElement.style.setProperty(`--vs-${propertyName}`, value)\n  } else {\n    if (el.nodeName !== '#comment') {\n      el.style.setProperty(`--vs-${propertyName}`, value)\n    }\n  }\n}\n"],"names":[],"mappings":"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"}