UNPKG

@remotex-labs/xansi

Version:

A lightweight ANSI utility library for styling terminal output

122 lines (120 loc) 3.4 kB
// src/providers/styles.provider.ts var c = { dim: [2, 22], bold: [1, 22], reset: [0, 0], hidden: [8, 28], inverse: [7, 27] }, f = { red: [31, 39], gray: [90, 39], blue: [34, 39], cyan: [36, 39], black: [30, 39], white: [37, 39], green: [32, 39], yellow: [33, 39], magenta: [35, 39], redBright: [91, 39], blueBright: [94, 39], cyanBright: [96, 39], whiteBright: [97, 39], greenBright: [92, 39], blackBright: [90, 39], yellowBright: [93, 39], magentaBright: [95, 39], darkGray: ["38;5;238", 39], lightGray: ["38;5;252", 39], lightCyan: ["38;5;81", 39], lightCoral: ["38;5;203", 39], oliveGreen: ["38;5;149", 39], deepOrange: ["38;5;166", 39], brightPink: ["38;5;197", 39], lightOrange: ["38;5;215", 39], burntOrange: ["38;5;208", 39], lightYellow: ["38;5;230", 39], canaryYellow: ["38;5;227", 39], lightGoldenrodYellow: ["38;5;221", 39] }, d = { bgRed: [41, 49], bgBlue: [44, 49], bgCyan: [46, 49], bgGray: [100, 49], bgBlack: [40, 49], bgGreen: [42, 49], bgWhite: [47, 49], bgYellow: [43, 49], bgMagenta: [45, 49], bgRedBright: [101, 49], bgBlueBright: [104, 49], bgCyanBright: [106, 49], bgBlackBright: [100, 49], bgWhiteBright: [107, 49], bgGreenBright: [102, 49], bgYellowBright: [103, 49], bgMagentaBright: [105, 49] }; // src/components/xterm.component.ts var a = "\x1B[", l = "m"; function m(t, r) { if (globalThis.NO_COLOR) return r; let i = t.length; if (i === 0) return r; if (i === 1) return `${a}${t[0][0]}${l}${r}${a}${t[0][1]}${l}`; let o = new Array(i), n = new Array(i); for (let e = 0; e < i; e++) n[e] = `${a}${t[e][0]}${l}`, o[i - e - 1] = `${a}${t[e][1]}${l}`; return n.concat(r, o).join(""); } function b(t, r, i, o) { if (typeof r != "number" || typeof i != "number" || typeof o != "number") throw new Error(`RGB values must be numbers, received: r=${typeof r}, g=${typeof i}, b=${typeof o}`); let n = t === "fg" ? 38 : 48, e = t === "fg" ? 39 : 49; return [`${n};2;${r};${i};${o}`, e]; } function p(t) { let r = t.replace(/^#/, "").toLowerCase(); if (!/^([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(r)) throw new Error(`Invalid hex color format: "${t}". Expected 3 or 6 hex digits.`); if (r.length === 3) { let e = parseInt(r[0] + r[0], 16), s = parseInt(r[1] + r[1], 16), y = parseInt(r[2] + r[2], 16); return [e, s, y]; } let i = parseInt(r.slice(0, 2), 16), o = parseInt(r.slice(2, 4), 16), n = parseInt(r.slice(4, 6), 16); return [i, o, n]; } function g(t = []) { let r = (...n) => { if (Array.isArray(n[0]) && "raw" in n[0]) { let [e, ...s] = n, y = e.reduce( (h, C, u) => h + C + (u < s.length ? String(s[u] ?? "") : ""), "" ); return m(t, y); } return m(t, n.join(" ")); }, i = { // RGB foreground color rgb: (n, e, s) => g([...t, b("fg", n, e, s)]), bgRgb: (n, e, s) => g([...t, b("bg", n, e, s)]), hex: (n) => g([...t, b("fg", ...p(n))]), bgHex: (n) => g([...t, b("bg", ...p(n))]) }, o = { ...c, ...f, ...d }; return new Proxy(r, { get(n, e) { if (typeof e != "string") throw new Error(`Invalid property: ${String(e)}`); return e in o ? g([...t, o[e]]) : e in i ? i[e] : Reflect.get(n, e); } }); } var $ = /* @__PURE__ */ g(); export { $ as xterm }; //# sourceMappingURL=xterm.component.js.map