From 069d3c1c81d71042706372df153254487a765dfc Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Mon, 29 Jun 2026 22:31:11 -0400 Subject: feat: wip web admin for mapping and crud --- internal/admin/xterm_to_css.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 internal/admin/xterm_to_css.go (limited to 'internal/admin/xterm_to_css.go') diff --git a/internal/admin/xterm_to_css.go b/internal/admin/xterm_to_css.go new file mode 100644 index 0000000..098ce62 --- /dev/null +++ b/internal/admin/xterm_to_css.go @@ -0,0 +1,40 @@ +package admin + +import ( + "fmt" + "strconv" + "strings" + + "thehouseoficarus/internal/color" +) + +func XtermToCSS(xtermHex string) string { + xtermHex = strings.TrimPrefix(xtermHex, "#") + idx, err := strconv.ParseUint(xtermHex, 16, 8) + if err != nil || idx > 255 { + return "#808080" + } + r, g, b := color.Xterm256ToRGB(int(idx)) + return fmt.Sprintf("#%02x%02x%02x", r, g, b) +} + +func XtermColorForCSS(idx int) string { + if idx < 0 || idx > 255 { + return "#808080" + } + r, g, b := color.Xterm256ToRGB(idx) + return fmt.Sprintf("#%02x%02x%02x", r, g, b) +} + +func xtermColorList() []map[string]any { + var list []map[string]any + for i := 0; i < 256; i++ { + r, g, b := color.Xterm256ToRGB(i) + list = append(list, map[string]any{ + "index": i, + "hex": fmt.Sprintf("%02X%02X%02X", r, g, b), + "color": fmt.Sprintf("#%02x%02x%02x", r, g, b), + }) + } + return list +} -- cgit v1.2.3