UNPKG

@teaui/core

Version:

A high-level terminal UI library for Node

84 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BG_DRAW = exports.RESET = void 0; exports.styled = styled; exports.style = style; exports.ansi = ansi; exports.bold = bold; exports.dim = dim; exports.italic = italic; exports.underline = underline; exports.invert = invert; exports.hide = hide; exports.strikeout = strikeout; exports.red = red; exports.green = green; exports.yellow = yellow; exports.blue = blue; exports.magenta = magenta; exports.cyan = cyan; exports.gray = gray; const sys_1 = require("./sys"); exports.RESET = '\x1b[0m'; // unicode.charWidth considers this "drawable" (width: 1). Buffer translates it // to a space when it flushes to a terminal. It's used by Viewport.paint to // put foreground/background colors into a region – subsequent draws that do // _not_ specify foreground/background (value: undefined) will "inherit" this // "paint" color. exports.BG_DRAW = '\x14'; function styled(input, attr) { return sys_1.program.global?.text(input, attr) ?? input; } function style(attr) { if (attr.startsWith('\x1b[')) { return attr; } return sys_1.program.global?.style(attr) ?? ''; } function ansi(code, input) { const opener = '\x1b['.concat(String(code), 'm'); return opener.concat(input.replace(exports.RESET, opener), exports.RESET); } function bold(input) { return ansi(1, input); } function dim(input) { return ansi(2, input); } function italic(input) { return ansi(3, input); } function underline(input) { return ansi(4, input); } function invert(input) { return ansi(7, input); } function hide(input) { return ansi(8, input); } function strikeout(input) { return ansi(9, input); } function red(input) { return ansi(31, input); } function green(input) { return ansi(32, input); } function yellow(input) { return ansi(33, input); } function blue(input) { return ansi(34, input); } function magenta(input) { return ansi(35, input); } function cyan(input) { return ansi(36, input); } function gray(input) { return ansi(90, input); } //# sourceMappingURL=ansi.js.map