@remotex-labs/xansi
Version:
A lightweight ANSI utility library for styling terminal output
146 lines (142 loc) • 4.11 kB
JavaScript
;
var u = Object.defineProperty;
var w = Object.getOwnPropertyDescriptor;
var $ = Object.getOwnPropertyNames;
var T = Object.prototype.hasOwnProperty;
var A = (r, e) => {
for (var i in e)
u(r, i, { get: e[i], enumerable: !0 });
}, S = (r, e, i, o) => {
if (e && typeof e == "object" || typeof e == "function")
for (let n of $(e))
!T.call(r, n) && n !== i && u(r, n, { get: () => e[n], enumerable: !(o = w(e, n)) || o.enumerable });
return r;
};
var k = (r) => S(u({}, "__esModule", { value: !0 }), r);
// src/components/xterm.component.ts
var v = {};
A(v, {
xterm: () => x
});
module.exports = k(v);
// src/providers/styles.provider.ts
var f = {
dim: [2, 22],
bold: [1, 22],
reset: [0, 0],
hidden: [8, 28],
inverse: [7, 27]
}, d = {
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]
}, m = {
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 p(r, e) {
if (globalThis.NO_COLOR) return e;
let i = r.length;
if (i === 0) return e;
if (i === 1)
return `${a}${r[0][0]}${l}${e}${a}${r[0][1]}${l}`;
let o = new Array(i), n = new Array(i);
for (let t = 0; t < i; t++)
n[t] = `${a}${r[t][0]}${l}`, o[i - t - 1] = `${a}${r[t][1]}${l}`;
return n.concat(e, o).join("");
}
function b(r, e, i, o) {
if (typeof e != "number" || typeof i != "number" || typeof o != "number")
throw new Error(`RGB values must be numbers, received: r=${typeof e}, g=${typeof i}, b=${typeof o}`);
let n = r === "fg" ? 38 : 48, t = r === "fg" ? 39 : 49;
return [`${n};2;${e};${i};${o}`, t];
}
function h(r) {
let e = r.replace(/^#/, "").toLowerCase();
if (!/^([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(e))
throw new Error(`Invalid hex color format: "${r}". Expected 3 or 6 hex digits.`);
if (e.length === 3) {
let t = parseInt(e[0] + e[0], 16), s = parseInt(e[1] + e[1], 16), y = parseInt(e[2] + e[2], 16);
return [t, s, y];
}
let i = parseInt(e.slice(0, 2), 16), o = parseInt(e.slice(2, 4), 16), n = parseInt(e.slice(4, 6), 16);
return [i, o, n];
}
function g(r = []) {
let e = (...n) => {
if (Array.isArray(n[0]) && "raw" in n[0]) {
let [t, ...s] = n, y = t.reduce(
(C, B, c) => C + B + (c < s.length ? String(s[c] ?? "") : ""),
""
);
return p(r, y);
}
return p(r, n.join(" "));
}, i = {
// RGB foreground color
rgb: (n, t, s) => g([...r, b("fg", n, t, s)]),
bgRgb: (n, t, s) => g([...r, b("bg", n, t, s)]),
hex: (n) => g([...r, b("fg", ...h(n))]),
bgHex: (n) => g([...r, b("bg", ...h(n))])
}, o = {
...f,
...d,
...m
};
return new Proxy(e, {
get(n, t) {
if (typeof t != "string")
throw new Error(`Invalid property: ${String(t)}`);
return t in o ? g([...r, o[t]]) : t in i ? i[t] : Reflect.get(n, t);
}
});
}
var x = /* @__PURE__ */ g();
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
xterm
});
//# sourceMappingURL=xterm.component.js.map