UNPKG

@remotex-labs/xansi

Version:

A lightweight ANSI utility library for styling terminal output

146 lines (142 loc) 4.11 kB
"use strict"; 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