import { RGBA } from "@opentui/core" export function ansiToRgba(code: number) { if (code < 16) { const ansi = [ "#000000", "#800000", "#008000", "#808000", "#000080", "#800080", "#008080", "#c0c0c0", "#808080", "#ff0000", "#00ff00", "#ffff00", "#0000ff", "#ff00ff", "#00ffff", "#ffffff", ] return RGBA.fromHex(ansi[code] ?? "#000000") } if (code < 232) { const index = code - 16 const b = index % 6 const g = Math.floor(index / 6) % 6 const r = Math.floor(index / 36) const value = (x: number) => (x === 0 ? 0 : x * 40 + 55) return RGBA.fromInts(value(r), value(g), value(b)) } if (code < 256) { const gray = (code - 232) * 10 + 8 return RGBA.fromInts(gray, gray, gray) } return RGBA.fromInts(0, 0, 0) }