/**
 * Resuelve una CSS variable de color a su valor RGB computado por el browser.
 *
 * Acepta cualquiera de los formatos:
 *   - `"--primary"`
 *   - `"primary"` (sin prefijo --)
 *   - `"var(--primary)"`
 *
 * Retorna el valor en formato `rgb(r, g, b)` o `rgba(r, g, b, a)` segun
 * como lo expanda el browser. Util para canvas, sigma.js y cualquier API
 * que no soporte CSS variables directamente.
 */
export function getComputedColor(cssVar: string): string {
  const name = cssVar.startsWith('var(')
    ? cssVar.slice(4, -1).trim()
    : cssVar.startsWith('--')
      ? cssVar
      : `--${cssVar}`

  const el = document.createElement('div')
  el.style.color = `var(${name})`
  el.style.display = 'none'
  document.body.appendChild(el)
  const computed = getComputedStyle(el).color
  document.body.removeChild(el)
  return computed
}
