@opentui/core
Version:
OpenTUI is a TypeScript library for building terminal user interfaces (TUIs)
509 lines (508 loc) • 13.1 kB
TypeScript
import { OptimizedBuffer } from "../buffer";
import { type ColorInput } from "./RGBA";
export type ASCIIFontName = "tiny" | "block" | "shade" | "slick" | "huge" | "grid" | "pallet";
export declare const fonts: {
tiny: {
name: string;
version: string;
homepage: string;
colors: number;
lines: number;
buffer: string[];
letterspace: string[];
letterspace_size: number;
chars: {
A: string[];
B: string[];
C: string[];
D: string[];
E: string[];
F: string[];
G: string[];
H: string[];
I: string[];
J: string[];
K: string[];
L: string[];
M: string[];
N: string[];
O: string[];
P: string[];
Q: string[];
R: string[];
S: string[];
T: string[];
U: string[];
V: string[];
W: string[];
X: string[];
Y: string[];
Z: string[];
"0": string[];
"1": string[];
"2": string[];
"3": string[];
"4": string[];
"5": string[];
"6": string[];
"7": string[];
"8": string[];
"9": string[];
"!": string[];
"?": string[];
".": string[];
"+": string[];
"-": string[];
_: string[];
"=": string[];
"@": string[];
"#": string[];
$: string[];
"%": string[];
"&": string[];
"(": string[];
")": string[];
"/": string[];
":": string[];
";": string[];
",": string[];
"'": string[];
"\"": string[];
" ": string[];
};
};
block: {
name: string;
version: string;
homepage: string;
colors: number;
lines: number;
buffer: string[];
letterspace: string[];
letterspace_size: number;
chars: {
A: string[];
B: string[];
C: string[];
D: string[];
E: string[];
F: string[];
G: string[];
H: string[];
I: string[];
J: string[];
K: string[];
L: string[];
M: string[];
N: string[];
O: string[];
P: string[];
Q: string[];
R: string[];
S: string[];
T: string[];
U: string[];
V: string[];
W: string[];
X: string[];
Y: string[];
Z: string[];
"0": string[];
"1": string[];
"2": string[];
"3": string[];
"4": string[];
"5": string[];
"6": string[];
"7": string[];
"8": string[];
"9": string[];
"!": string[];
"?": string[];
".": string[];
"+": string[];
"-": string[];
_: string[];
"=": string[];
"@": string[];
"#": string[];
$: string[];
"%": string[];
"&": string[];
"(": string[];
")": string[];
"/": string[];
":": string[];
";": string[];
",": string[];
"'": string[];
"\"": string[];
" ": string[];
};
};
shade: {
name: string;
version: string;
homepage: string;
colors: number;
lines: number;
buffer: string[];
letterspace: string[];
letterspace_size: number;
chars: {
A: string[];
B: string[];
C: string[];
D: string[];
E: string[];
F: string[];
G: string[];
H: string[];
I: string[];
J: string[];
K: string[];
L: string[];
M: string[];
N: string[];
O: string[];
P: string[];
Q: string[];
R: string[];
S: string[];
T: string[];
U: string[];
V: string[];
W: string[];
X: string[];
Y: string[];
Z: string[];
"0": string[];
"1": string[];
"2": string[];
"3": string[];
"4": string[];
"5": string[];
"6": string[];
"7": string[];
"8": string[];
"9": string[];
"!": string[];
"?": string[];
".": string[];
"+": string[];
"-": string[];
_: string[];
"=": string[];
"@": string[];
"#": string[];
$: string[];
"%": string[];
"&": string[];
"(": string[];
")": string[];
"/": string[];
":": string[];
";": string[];
",": string[];
"'": string[];
"\"": string[];
" ": string[];
};
};
slick: {
name: string;
version: string;
homepage: string;
colors: number;
lines: number;
buffer: string[];
letterspace: string[];
letterspace_size: number;
chars: {
A: string[];
B: string[];
C: string[];
D: string[];
E: string[];
F: string[];
G: string[];
H: string[];
I: string[];
J: string[];
K: string[];
L: string[];
M: string[];
N: string[];
O: string[];
P: string[];
Q: string[];
R: string[];
S: string[];
T: string[];
U: string[];
V: string[];
W: string[];
X: string[];
Y: string[];
Z: string[];
"0": string[];
"1": string[];
"2": string[];
"3": string[];
"4": string[];
"5": string[];
"6": string[];
"7": string[];
"8": string[];
"9": string[];
"!": string[];
"?": string[];
".": string[];
"+": string[];
"-": string[];
_: string[];
"=": string[];
"@": string[];
"#": string[];
$: string[];
"%": string[];
"&": string[];
"(": string[];
")": string[];
"/": string[];
":": string[];
";": string[];
",": string[];
"'": string[];
"\"": string[];
" ": string[];
};
};
huge: {
name: string;
version: string;
homepage: string;
colors: number;
lines: number;
buffer: string[];
letterspace: string[];
letterspace_size: number;
chars: {
A: string[];
B: string[];
C: string[];
D: string[];
E: string[];
F: string[];
G: string[];
H: string[];
I: string[];
J: string[];
K: string[];
L: string[];
M: string[];
N: string[];
O: string[];
P: string[];
Q: string[];
R: string[];
S: string[];
T: string[];
U: string[];
V: string[];
W: string[];
X: string[];
Y: string[];
Z: string[];
"0": string[];
"1": string[];
"2": string[];
"3": string[];
"4": string[];
"5": string[];
"6": string[];
"7": string[];
"8": string[];
"9": string[];
"!": string[];
"?": string[];
".": string[];
"+": string[];
"-": string[];
_: string[];
"=": string[];
"@": string[];
"#": string[];
$: string[];
"%": string[];
"&": string[];
"(": string[];
")": string[];
"/": string[];
":": string[];
";": string[];
",": string[];
"'": string[];
"\"": string[];
" ": string[];
};
};
grid: {
name: string;
version: string;
homepage: string;
colors: number;
lines: number;
buffer: string[];
letterspace: string[];
letterspace_size: number;
chars: {
A: string[];
B: string[];
C: string[];
D: string[];
E: string[];
F: string[];
G: string[];
H: string[];
I: string[];
J: string[];
K: string[];
L: string[];
M: string[];
N: string[];
O: string[];
P: string[];
Q: string[];
R: string[];
S: string[];
T: string[];
U: string[];
V: string[];
W: string[];
X: string[];
Y: string[];
Z: string[];
"0": string[];
"1": string[];
"2": string[];
"3": string[];
"4": string[];
"5": string[];
"6": string[];
"7": string[];
"8": string[];
"9": string[];
"!": string[];
"?": string[];
".": string[];
"+": string[];
"-": string[];
_: string[];
"=": string[];
"@": string[];
"#": string[];
$: string[];
"%": string[];
"&": string[];
"(": string[];
")": string[];
"/": string[];
":": string[];
";": string[];
",": string[];
"'": string[];
"\"": string[];
" ": string[];
};
};
pallet: {
name: string;
version: string;
homepage: string;
colors: number;
lines: number;
buffer: string[];
letterspace: string[];
letterspace_size: number;
chars: {
A: string[];
B: string[];
C: string[];
D: string[];
E: string[];
F: string[];
G: string[];
H: string[];
I: string[];
J: string[];
K: string[];
L: string[];
M: string[];
N: string[];
O: string[];
P: string[];
Q: string[];
R: string[];
S: string[];
T: string[];
U: string[];
V: string[];
W: string[];
X: string[];
Y: string[];
Z: string[];
"0": string[];
"1": string[];
"2": string[];
"3": string[];
"4": string[];
"5": string[];
"6": string[];
"7": string[];
"8": string[];
"9": string[];
"!": string[];
"?": string[];
".": string[];
"+": string[];
"-": string[];
_: string[];
"=": string[];
"@": string[];
"#": string[];
$: string[];
"%": string[];
"&": string[];
"(": string[];
")": string[];
"/": string[];
":": string[];
";": string[];
",": string[];
"'": string[];
"\"": string[];
" ": string[];
};
};
};
export declare function measureText({ text, font }: {
text: string;
font?: keyof typeof fonts;
}): {
width: number;
height: number;
};
export declare function getCharacterPositions(text: string, font?: keyof typeof fonts): number[];
export declare function coordinateToCharacterIndex(x: number, text: string, font?: keyof typeof fonts): number;
export declare function renderFontToFrameBuffer(buffer: OptimizedBuffer, { text, x, y, color, backgroundColor, font, }: {
text: string;
x?: number;
y?: number;
color?: ColorInput | ColorInput[];
backgroundColor?: ColorInput;
font?: keyof typeof fonts;
}): {
width: number;
height: number;
};