export const hsvToHex = (h: number, s: number, v: number) => { s /= 100; v /= 100; const c = v * s; const x = c * (1 - Math.abs(((h / 60) % 2) - 1)); const m = v - c; let r = 0, g = 0, b = 0; if (h < 60) [r, g, b] = [c, x, 0]; else if (h < 120) [r, g, b] = [x, c, 0]; else if (h < 180) [r, g, b] = [0, c, x]; else if (h < 240) [r, g, b] = [0, x, c]; else if (h < 300) [r, g, b] = [x, 0, c]; else [r, g, b] = [c, 0, x]; const toHex = (num: number) => Math.round((num + m) * 255) .toString(16) .padStart(2, '0'); return `#${toHex(r)}${toHex(g)}${toHex(b)}` }