@profullstack/hqtui 0.1.12 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.d.ts +14 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +15 -0
- package/dist/app.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +7 -2
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +12 -4
- package/dist/layout.js.map +1 -1
- package/dist/richtext.d.ts +71 -0
- package/dist/richtext.d.ts.map +1 -0
- package/dist/richtext.js +244 -0
- package/dist/richtext.js.map +1 -0
- package/dist/surface.d.ts +38 -0
- package/dist/surface.d.ts.map +1 -1
- package/dist/surface.js +138 -8
- package/dist/surface.js.map +1 -1
- package/dist/testing.d.ts +2 -0
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +1 -0
- package/dist/testing.js.map +1 -1
- package/dist/ui.d.ts +25 -3
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +30 -5
- package/dist/ui.js.map +1 -1
- package/dist/widgets/text.d.ts +2 -1
- package/dist/widgets/text.d.ts.map +1 -1
- package/dist/widgets/text.js +16 -2
- package/dist/widgets/text.js.map +1 -1
- package/package.json +1 -1
package/dist/richtext.js
ADDED
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Styled text: more than one colour on a line.
|
|
3
|
+
*
|
|
4
|
+
* A `Span` is a run of text with its own style; a line is a list of spans; text
|
|
5
|
+
* is a list of lines. Every widget that took a `string` takes `RichText` too,
|
|
6
|
+
* and a bare string is simply the one-span case, so nothing that worked before
|
|
7
|
+
* has to change.
|
|
8
|
+
*
|
|
9
|
+
* The measuring and cutting here mirrors `unicode.ts` exactly rather than
|
|
10
|
+
* approximating it. `truncateSpans`, `fitSpans` and `wrapSpans` produce the
|
|
11
|
+
* same columns as `truncate`, `fit` and `wrap` for single-span input — there
|
|
12
|
+
* are tests that assert precisely that over a corpus, because two text layout
|
|
13
|
+
* engines that disagree by one column is a bug you find in a screenshot six
|
|
14
|
+
* months later.
|
|
15
|
+
*/
|
|
16
|
+
import { Attr } from "./buffer.js";
|
|
17
|
+
import { cellText, graphemes, stringWidth } from "./unicode.js";
|
|
18
|
+
/** True when the value carries styling rather than being a bare string. */
|
|
19
|
+
export function isRich(value) {
|
|
20
|
+
return typeof value !== "string";
|
|
21
|
+
}
|
|
22
|
+
function isLines(value) {
|
|
23
|
+
return value.length === 0 || Array.isArray(value[0]);
|
|
24
|
+
}
|
|
25
|
+
/** The style a span paints with, over whatever the widget already decided. */
|
|
26
|
+
export function spanStyle(span, base = {}) {
|
|
27
|
+
let attrs = span.attrs ?? base.attrs ?? 0;
|
|
28
|
+
if (span.bold)
|
|
29
|
+
attrs |= Attr.Bold;
|
|
30
|
+
if (span.dim)
|
|
31
|
+
attrs |= Attr.Dim;
|
|
32
|
+
if (span.italic)
|
|
33
|
+
attrs |= Attr.Italic;
|
|
34
|
+
if (span.underline)
|
|
35
|
+
attrs |= Attr.Underline;
|
|
36
|
+
return {
|
|
37
|
+
fg: span.fg ?? base.fg,
|
|
38
|
+
bg: span.bg ?? base.bg,
|
|
39
|
+
attrs,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/** Everything except the text, for cloning a span's styling onto new text. */
|
|
43
|
+
function styleOf(span) {
|
|
44
|
+
const { text: _text, ...rest } = span;
|
|
45
|
+
return rest;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Normalise any accepted shape into lines of spans, splitting on newlines.
|
|
49
|
+
*
|
|
50
|
+
* Empty spans are dropped, but a line that ends up with no spans is kept: a
|
|
51
|
+
* blank line between two paragraphs is content, not absence.
|
|
52
|
+
*/
|
|
53
|
+
export function toSpanLines(value) {
|
|
54
|
+
if (typeof value === "string") {
|
|
55
|
+
return value.split("\n").map((line) => (line === "" ? [] : [{ text: line }]));
|
|
56
|
+
}
|
|
57
|
+
const lines = isLines(value) ? value : [value];
|
|
58
|
+
const out = [];
|
|
59
|
+
for (const line of lines) {
|
|
60
|
+
let current = [];
|
|
61
|
+
for (const span of line) {
|
|
62
|
+
if (span.text === "")
|
|
63
|
+
continue;
|
|
64
|
+
const parts = span.text.split("\n");
|
|
65
|
+
current.push({ ...styleOf(span), text: parts[0] });
|
|
66
|
+
for (let i = 1; i < parts.length; i++) {
|
|
67
|
+
out.push(dropEmpty(current));
|
|
68
|
+
current = [{ ...styleOf(span), text: parts[i] }];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
out.push(dropEmpty(current));
|
|
72
|
+
}
|
|
73
|
+
return out;
|
|
74
|
+
}
|
|
75
|
+
function dropEmpty(line) {
|
|
76
|
+
return line.filter((s) => s.text !== "");
|
|
77
|
+
}
|
|
78
|
+
/** Display width of a line in terminal columns. */
|
|
79
|
+
export function spanWidth(line) {
|
|
80
|
+
let w = 0;
|
|
81
|
+
for (const span of line)
|
|
82
|
+
w += stringWidth(span.text);
|
|
83
|
+
return w;
|
|
84
|
+
}
|
|
85
|
+
/** Concatenated text of a line, with styling discarded. */
|
|
86
|
+
export function spanText(line) {
|
|
87
|
+
let out = "";
|
|
88
|
+
for (const span of line)
|
|
89
|
+
out += span.text;
|
|
90
|
+
return out;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Truncate a line to `max` columns, appending `ellipsis` when it does not fit.
|
|
94
|
+
*
|
|
95
|
+
* The ellipsis takes the style of the span it interrupts, so cutting a red
|
|
96
|
+
* error message short leaves a red ellipsis rather than a stray default-coloured
|
|
97
|
+
* one.
|
|
98
|
+
*/
|
|
99
|
+
export function truncateSpans(line, max, ellipsis = "…") {
|
|
100
|
+
if (max <= 0)
|
|
101
|
+
return [];
|
|
102
|
+
if (spanWidth(line) <= max)
|
|
103
|
+
return line;
|
|
104
|
+
const limit = Math.max(0, max - stringWidth(ellipsis));
|
|
105
|
+
const out = [];
|
|
106
|
+
let w = 0;
|
|
107
|
+
let last;
|
|
108
|
+
for (const span of line) {
|
|
109
|
+
let text = "";
|
|
110
|
+
for (const g of graphemes(span.text)) {
|
|
111
|
+
if (w + g.width > limit)
|
|
112
|
+
break;
|
|
113
|
+
text += cellText(g.value);
|
|
114
|
+
w += g.width;
|
|
115
|
+
}
|
|
116
|
+
if (text !== "") {
|
|
117
|
+
last = span;
|
|
118
|
+
out.push({ ...styleOf(span), text });
|
|
119
|
+
}
|
|
120
|
+
if (w >= limit)
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
const source = last ?? line[0];
|
|
124
|
+
out.push({ ...(source ? styleOf(source) : {}), text: ellipsis });
|
|
125
|
+
return out;
|
|
126
|
+
}
|
|
127
|
+
/** Pad or truncate a line to exactly `width` columns. */
|
|
128
|
+
export function fitSpans(line, width, align = "left") {
|
|
129
|
+
const cut = truncateSpans(line, width);
|
|
130
|
+
const pad = width - spanWidth(cut);
|
|
131
|
+
if (pad <= 0)
|
|
132
|
+
return cut;
|
|
133
|
+
// Padding carries no style of its own so it picks up the widget's, which is
|
|
134
|
+
// what the string path has always done by padding before it draws.
|
|
135
|
+
const space = (n) => (n > 0 ? [{ text: " ".repeat(n) }] : []);
|
|
136
|
+
if (align === "right")
|
|
137
|
+
return [...space(pad), ...cut];
|
|
138
|
+
if (align === "center") {
|
|
139
|
+
const left = Math.floor(pad / 2);
|
|
140
|
+
return [...space(left), ...cut, ...space(pad - left)];
|
|
141
|
+
}
|
|
142
|
+
return [...cut, ...space(pad)];
|
|
143
|
+
}
|
|
144
|
+
/** Split a line into whitespace and non-whitespace runs, keeping each style. */
|
|
145
|
+
function tokenize(line) {
|
|
146
|
+
const out = [];
|
|
147
|
+
for (const span of line) {
|
|
148
|
+
const style = styleOf(span);
|
|
149
|
+
for (const part of span.text.split(/(\s+)/)) {
|
|
150
|
+
if (part === "")
|
|
151
|
+
continue;
|
|
152
|
+
out.push({ text: part, style, space: /^\s+$/.test(part) });
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return out;
|
|
156
|
+
}
|
|
157
|
+
/** Join runs that share a style, so the output has no needless span churn. */
|
|
158
|
+
function coalesce(spans) {
|
|
159
|
+
const out = [];
|
|
160
|
+
for (const span of spans) {
|
|
161
|
+
if (span.text === "")
|
|
162
|
+
continue;
|
|
163
|
+
const previous = out[out.length - 1];
|
|
164
|
+
if (previous && sameStyle(previous, span))
|
|
165
|
+
previous.text += span.text;
|
|
166
|
+
else
|
|
167
|
+
out.push({ ...span });
|
|
168
|
+
}
|
|
169
|
+
return out;
|
|
170
|
+
}
|
|
171
|
+
function sameStyle(a, b) {
|
|
172
|
+
return a.fg === b.fg && a.bg === b.bg && a.attrs === b.attrs
|
|
173
|
+
&& !!a.bold === !!b.bold && !!a.dim === !!b.dim
|
|
174
|
+
&& !!a.italic === !!b.italic && !!a.underline === !!b.underline;
|
|
175
|
+
}
|
|
176
|
+
/** Drop trailing whitespace spans, the way a soft wrap trims its line end. */
|
|
177
|
+
function trimEnd(spans) {
|
|
178
|
+
const out = spans.map((s) => ({ ...s }));
|
|
179
|
+
while (out.length > 0) {
|
|
180
|
+
const last = out[out.length - 1];
|
|
181
|
+
last.text = last.text.replace(/\s+$/, "");
|
|
182
|
+
if (last.text !== "")
|
|
183
|
+
break;
|
|
184
|
+
out.pop();
|
|
185
|
+
}
|
|
186
|
+
return out;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Greedy word wrap at `width` columns, preserving each span's style across the
|
|
190
|
+
* break. Mirrors `wrap()` in unicode.ts, including its hard split of a word
|
|
191
|
+
* longer than the line and its trimming of the soft-wrapped line end.
|
|
192
|
+
*/
|
|
193
|
+
export function wrapSpans(line, width) {
|
|
194
|
+
if (width <= 0)
|
|
195
|
+
return [];
|
|
196
|
+
const lines = [];
|
|
197
|
+
let current = [];
|
|
198
|
+
let currentWidth = 0;
|
|
199
|
+
const push = (trim) => {
|
|
200
|
+
lines.push(coalesce(trim ? trimEnd(current) : current));
|
|
201
|
+
current = [];
|
|
202
|
+
currentWidth = 0;
|
|
203
|
+
};
|
|
204
|
+
for (const token of tokenize(line)) {
|
|
205
|
+
const w = stringWidth(token.text);
|
|
206
|
+
if (currentWidth + w > width && currentWidth > 0) {
|
|
207
|
+
push(true);
|
|
208
|
+
// A break swallows the whitespace that caused it, exactly as `wrap` does.
|
|
209
|
+
if (token.space)
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
if (w > width) {
|
|
213
|
+
for (const g of graphemes(token.text)) {
|
|
214
|
+
if (currentWidth + g.width > width)
|
|
215
|
+
push(false);
|
|
216
|
+
current.push({ ...token.style, text: cellText(g.value) });
|
|
217
|
+
currentWidth += g.width;
|
|
218
|
+
}
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
current.push({ ...token.style, text: token.text });
|
|
222
|
+
currentWidth += w;
|
|
223
|
+
}
|
|
224
|
+
// The last line is trimmed like a soft-wrapped one. Only the hard split of an
|
|
225
|
+
// overlong word pushes untrimmed, because there the break is mid-word and the
|
|
226
|
+
// whitespace it would trim is real content.
|
|
227
|
+
push(true);
|
|
228
|
+
return lines;
|
|
229
|
+
}
|
|
230
|
+
/** Wrap every line of a rich value, in order. */
|
|
231
|
+
export function wrapRich(value, width) {
|
|
232
|
+
const out = [];
|
|
233
|
+
for (const line of toSpanLines(value)) {
|
|
234
|
+
if (line.length === 0) {
|
|
235
|
+
// A blank line survives wrapping as a blank line.
|
|
236
|
+
out.push([]);
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
for (const wrapped of wrapSpans(line, width))
|
|
240
|
+
out.push(wrapped);
|
|
241
|
+
}
|
|
242
|
+
return out;
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=richtext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"richtext.js","sourceRoot":"","sources":["../src/richtext.ts"],"names":[],"mappings":"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"}
|
package/dist/surface.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { FrameBuffer, type Style, type Attributes } from "./buffer.ts";
|
|
|
2
2
|
import { DEFAULT_COLOR, type Color } from "./color.ts";
|
|
3
3
|
import { type Rect, type Padding } from "./layout.ts";
|
|
4
4
|
import type { Theme } from "./theme.ts";
|
|
5
|
+
import { type SpanLine } from "./richtext.ts";
|
|
5
6
|
export type BorderStyle = "rounded" | "single" | "double" | "thick" | "dashed" | "ascii" | "none";
|
|
6
7
|
export interface BorderChars {
|
|
7
8
|
tl: string;
|
|
@@ -17,6 +18,21 @@ export interface BorderChars {
|
|
|
17
18
|
cross: string;
|
|
18
19
|
}
|
|
19
20
|
export declare const BORDERS: Record<Exclude<BorderStyle, "none">, BorderChars>;
|
|
21
|
+
/**
|
|
22
|
+
* Edge bits for a border glyph: 1 up, 2 right, 4 down, 8 left.
|
|
23
|
+
*
|
|
24
|
+
* Collapsing two panel borders is the union of their edges. A panel's top-right
|
|
25
|
+
* corner (down + left) landing on its neighbour's top-left (down + right) is
|
|
26
|
+
* down + left + right, which is the T that makes the two read as one frame.
|
|
27
|
+
*/
|
|
28
|
+
export declare const EDGE_UP = 1;
|
|
29
|
+
export declare const EDGE_RIGHT = 2;
|
|
30
|
+
export declare const EDGE_DOWN = 4;
|
|
31
|
+
export declare const EDGE_LEFT = 8;
|
|
32
|
+
/** The glyph in `style` with exactly these edges, or null if there is none. */
|
|
33
|
+
export declare function borderGlyph(style: Exclude<BorderStyle, "none">, bits: number): string | null;
|
|
34
|
+
/** The edges of a border glyph, or null when it is not one. */
|
|
35
|
+
export declare function borderBits(codepoint: number): number | null;
|
|
20
36
|
export type Align = "left" | "center" | "right";
|
|
21
37
|
export interface TextOptions extends Style {
|
|
22
38
|
align?: Align;
|
|
@@ -35,6 +51,12 @@ export interface BoxOptions extends Style {
|
|
|
35
51
|
subtitleColor?: Color;
|
|
36
52
|
/** Paint the interior with `bg` before drawing. */
|
|
37
53
|
fill?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Merge this border with one already drawn in the same cell, rather than
|
|
56
|
+
* overwriting it. Set for you by the container when the app asks for
|
|
57
|
+
* collapsed borders; there is no reason to pass it by hand.
|
|
58
|
+
*/
|
|
59
|
+
collapse?: boolean;
|
|
38
60
|
footer?: string;
|
|
39
61
|
footerColor?: Color;
|
|
40
62
|
}
|
|
@@ -58,8 +80,24 @@ export declare class Surface {
|
|
|
58
80
|
inset(padding: Padding): Surface;
|
|
59
81
|
private visible;
|
|
60
82
|
char(x: number, y: number, value: number | string, style?: Style): void;
|
|
83
|
+
/**
|
|
84
|
+
* Writes a border glyph, merging it with whatever border is already there.
|
|
85
|
+
*
|
|
86
|
+
* Only border glyphs merge. Anything else in the cell is overwritten, which
|
|
87
|
+
* keeps a panel drawn over a chart looking like a panel rather than growing
|
|
88
|
+
* junctions out of the data.
|
|
89
|
+
*/
|
|
90
|
+
private mergeBorder;
|
|
61
91
|
/** Draw text at local (x, y). Returns columns written. */
|
|
62
92
|
text(x: number, y: number, text: string, options?: TextOptions): number;
|
|
93
|
+
/**
|
|
94
|
+
* Draw one line of styled spans at local (x, y). Returns columns written.
|
|
95
|
+
*
|
|
96
|
+
* The same clipping, truncation and alignment as `text`, but each span paints
|
|
97
|
+
* with its own colours over the options given here, so a line can carry more
|
|
98
|
+
* than one style. `text` is the single-span case of this.
|
|
99
|
+
*/
|
|
100
|
+
spans(x: number, y: number, line: SpanLine, options?: TextOptions): number;
|
|
63
101
|
/** Text positioned within the full surface width. */
|
|
64
102
|
textAligned(y: number, text: string, align: Align, options?: TextOptions): void;
|
|
65
103
|
fill(style: Style, ch?: number): void;
|
package/dist/surface.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,KAAK,IAAI,EAA6B,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEjF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"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"}
|
package/dist/surface.js
CHANGED
|
@@ -2,6 +2,7 @@ import { FrameBuffer } from "./buffer.js";
|
|
|
2
2
|
import { DEFAULT_COLOR } from "./color.js";
|
|
3
3
|
import { inset, intersect, isEmpty } from "./layout.js";
|
|
4
4
|
import { graphemes, stringWidth, truncate, fit } from "./unicode.js";
|
|
5
|
+
import { fitSpans, spanStyle, spanWidth, truncateSpans } from "./richtext.js";
|
|
5
6
|
export const BORDERS = {
|
|
6
7
|
rounded: { tl: "╭", tr: "╮", bl: "╰", br: "╯", h: "─", v: "│", ml: "├", mr: "┤", mt: "┬", mb: "┴", cross: "┼" },
|
|
7
8
|
single: { tl: "┌", tr: "┐", bl: "└", br: "┘", h: "─", v: "│", ml: "├", mr: "┤", mt: "┬", mb: "┴", cross: "┼" },
|
|
@@ -10,6 +11,57 @@ export const BORDERS = {
|
|
|
10
11
|
dashed: { tl: "╭", tr: "╮", bl: "╰", br: "╯", h: "╌", v: "╎", ml: "├", mr: "┤", mt: "┬", mb: "┴", cross: "┼" },
|
|
11
12
|
ascii: { tl: "+", tr: "+", bl: "+", br: "+", h: "-", v: "|", ml: "+", mr: "+", mt: "+", mb: "+", cross: "+" },
|
|
12
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* Edge bits for a border glyph: 1 up, 2 right, 4 down, 8 left.
|
|
16
|
+
*
|
|
17
|
+
* Collapsing two panel borders is the union of their edges. A panel's top-right
|
|
18
|
+
* corner (down + left) landing on its neighbour's top-left (down + right) is
|
|
19
|
+
* down + left + right, which is the T that makes the two read as one frame.
|
|
20
|
+
*/
|
|
21
|
+
export const EDGE_UP = 1;
|
|
22
|
+
export const EDGE_RIGHT = 2;
|
|
23
|
+
export const EDGE_DOWN = 4;
|
|
24
|
+
export const EDGE_LEFT = 8;
|
|
25
|
+
const PART_BITS = {
|
|
26
|
+
tl: EDGE_RIGHT | EDGE_DOWN,
|
|
27
|
+
tr: EDGE_LEFT | EDGE_DOWN,
|
|
28
|
+
bl: EDGE_UP | EDGE_RIGHT,
|
|
29
|
+
br: EDGE_UP | EDGE_LEFT,
|
|
30
|
+
h: EDGE_LEFT | EDGE_RIGHT,
|
|
31
|
+
v: EDGE_UP | EDGE_DOWN,
|
|
32
|
+
ml: EDGE_UP | EDGE_DOWN | EDGE_RIGHT,
|
|
33
|
+
mr: EDGE_UP | EDGE_DOWN | EDGE_LEFT,
|
|
34
|
+
mt: EDGE_LEFT | EDGE_RIGHT | EDGE_DOWN,
|
|
35
|
+
mb: EDGE_LEFT | EDGE_RIGHT | EDGE_UP,
|
|
36
|
+
cross: EDGE_UP | EDGE_RIGHT | EDGE_DOWN | EDGE_LEFT,
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Every border glyph in every style, to its edges. Built once. ASCII borders
|
|
40
|
+
* collide (every corner is `+`), and the first entry wins, which is right: the
|
|
41
|
+
* union of anything with a `+` is a `+`.
|
|
42
|
+
*/
|
|
43
|
+
const BITS_BY_CODEPOINT = new Map();
|
|
44
|
+
for (const chars of Object.values(BORDERS)) {
|
|
45
|
+
for (const [part, ch] of Object.entries(chars)) {
|
|
46
|
+
const code = ch.codePointAt(0);
|
|
47
|
+
if (code !== undefined && !BITS_BY_CODEPOINT.has(code)) {
|
|
48
|
+
BITS_BY_CODEPOINT.set(code, PART_BITS[part]);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** The glyph in `style` with exactly these edges, or null if there is none. */
|
|
53
|
+
export function borderGlyph(style, bits) {
|
|
54
|
+
const chars = BORDERS[style];
|
|
55
|
+
for (const [part, value] of Object.entries(PART_BITS)) {
|
|
56
|
+
if (value === bits)
|
|
57
|
+
return chars[part];
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
/** The edges of a border glyph, or null when it is not one. */
|
|
62
|
+
export function borderBits(codepoint) {
|
|
63
|
+
return BITS_BY_CODEPOINT.get(codepoint) ?? null;
|
|
64
|
+
}
|
|
13
65
|
/**
|
|
14
66
|
* A clipped, translated view onto the framebuffer. Widgets only ever see a
|
|
15
67
|
* Surface, so nothing can draw outside the rectangle it was given.
|
|
@@ -58,6 +110,31 @@ export class Surface {
|
|
|
58
110
|
const v = typeof value === "string" ? (value.codePointAt(0) ?? 32) : value;
|
|
59
111
|
this.buffer.setCell(ax, ay, v, style);
|
|
60
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Writes a border glyph, merging it with whatever border is already there.
|
|
115
|
+
*
|
|
116
|
+
* Only border glyphs merge. Anything else in the cell is overwritten, which
|
|
117
|
+
* keeps a panel drawn over a chart looking like a panel rather than growing
|
|
118
|
+
* junctions out of the data.
|
|
119
|
+
*/
|
|
120
|
+
mergeBorder(x, y, ch, style, cellStyle) {
|
|
121
|
+
const ax = this.rect.x + x;
|
|
122
|
+
const ay = this.rect.y + y;
|
|
123
|
+
if (!this.visible(ax, ay))
|
|
124
|
+
return;
|
|
125
|
+
const incoming = ch.codePointAt(0);
|
|
126
|
+
if (incoming === undefined)
|
|
127
|
+
return;
|
|
128
|
+
const existing = this.buffer.chars[this.buffer.index(ax, ay)] ?? 0;
|
|
129
|
+
const before = borderBits(existing);
|
|
130
|
+
const after = borderBits(incoming);
|
|
131
|
+
if (before === null || after === null || before === after) {
|
|
132
|
+
this.buffer.setCell(ax, ay, incoming, cellStyle);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const merged = borderGlyph(style, before | after);
|
|
136
|
+
this.buffer.setCell(ax, ay, merged?.codePointAt(0) ?? incoming, cellStyle);
|
|
137
|
+
}
|
|
61
138
|
/** Draw text at local (x, y). Returns columns written. */
|
|
62
139
|
text(x, y, text, options = {}) {
|
|
63
140
|
const ay = this.rect.y + y;
|
|
@@ -88,6 +165,45 @@ export class Surface {
|
|
|
88
165
|
}
|
|
89
166
|
return written;
|
|
90
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Draw one line of styled spans at local (x, y). Returns columns written.
|
|
170
|
+
*
|
|
171
|
+
* The same clipping, truncation and alignment as `text`, but each span paints
|
|
172
|
+
* with its own colours over the options given here, so a line can carry more
|
|
173
|
+
* than one style. `text` is the single-span case of this.
|
|
174
|
+
*/
|
|
175
|
+
spans(x, y, line, options = {}) {
|
|
176
|
+
const ay = this.rect.y + y;
|
|
177
|
+
const c = this.clip;
|
|
178
|
+
if (ay < c.y || ay >= c.y + c.height)
|
|
179
|
+
return 0;
|
|
180
|
+
const limit = Math.min(options.maxWidth ?? this.width - x, this.width - x);
|
|
181
|
+
if (limit <= 0)
|
|
182
|
+
return 0;
|
|
183
|
+
let content = line;
|
|
184
|
+
if (options.ellipsis !== false && spanWidth(content) > limit) {
|
|
185
|
+
content = truncateSpans(content, limit);
|
|
186
|
+
}
|
|
187
|
+
if (options.align && options.align !== "left") {
|
|
188
|
+
content = fitSpans(content, limit, options.align);
|
|
189
|
+
}
|
|
190
|
+
const base = { fg: options.fg, bg: options.bg, attrs: options.attrs };
|
|
191
|
+
let cx = this.rect.x + x;
|
|
192
|
+
let written = 0;
|
|
193
|
+
for (const span of content) {
|
|
194
|
+
const style = spanStyle(span, base);
|
|
195
|
+
for (const g of graphemes(span.text)) {
|
|
196
|
+
if (written + g.width > limit)
|
|
197
|
+
return written;
|
|
198
|
+
if (cx >= c.x && cx + g.width <= c.x + c.width) {
|
|
199
|
+
this.buffer.setCell(cx, ay, g.value, style);
|
|
200
|
+
}
|
|
201
|
+
cx += g.width;
|
|
202
|
+
written += g.width;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return written;
|
|
206
|
+
}
|
|
91
207
|
/** Text positioned within the full surface width. */
|
|
92
208
|
textAligned(y, text, align, options = {}) {
|
|
93
209
|
this.text(0, y, fit(truncate(text, this.width), this.width, align), { ...options, align: "left" });
|
|
@@ -133,15 +249,29 @@ export class Surface {
|
|
|
133
249
|
const w = this.width;
|
|
134
250
|
const h = this.height;
|
|
135
251
|
const borderStyle = { fg, bg };
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
252
|
+
// With collapsing on, a border glyph landing on another one becomes the
|
|
253
|
+
// union of the two. Without it this is a plain write, so a screen that
|
|
254
|
+
// never asks for collapsing renders byte for byte as it always did.
|
|
255
|
+
const put = options.collapse
|
|
256
|
+
? (x, y, ch) => this.mergeBorder(x, y, ch, style, borderStyle)
|
|
257
|
+
: (x, y, ch) => this.char(x, y, ch, borderStyle);
|
|
258
|
+
const putH = (x, y, length, ch) => {
|
|
259
|
+
for (let i = 0; i < length; i++)
|
|
260
|
+
put(x + i, y, ch);
|
|
261
|
+
};
|
|
262
|
+
const putV = (x, y, length, ch) => {
|
|
263
|
+
for (let i = 0; i < length; i++)
|
|
264
|
+
put(x, y + i, ch);
|
|
265
|
+
};
|
|
266
|
+
put(0, 0, b.tl);
|
|
267
|
+
put(w - 1, 0, b.tr);
|
|
268
|
+
putH(1, 0, w - 2, b.h);
|
|
139
269
|
if (h > 1) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
270
|
+
put(0, h - 1, b.bl);
|
|
271
|
+
put(w - 1, h - 1, b.br);
|
|
272
|
+
putH(1, h - 1, w - 2, b.h);
|
|
273
|
+
putV(0, 1, h - 2, b.v);
|
|
274
|
+
putV(w - 1, 1, h - 2, b.v);
|
|
145
275
|
}
|
|
146
276
|
// Measured before the title is drawn: both share the top border row, and
|
|
147
277
|
// the title used to be truncated against the full width and then painted
|
package/dist/surface.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"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"}
|
package/dist/testing.d.ts
CHANGED
package/dist/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,SAAS,EAAsB,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAgB,MAAM,YAAY,CAAC;AACtE,OAAO,EAAsB,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEpG,OAAO,EAAiB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;IACnC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
package/dist/testing.js
CHANGED
|
@@ -41,6 +41,7 @@ export function renderToScreen(view, options = {}) {
|
|
|
41
41
|
frame: options.frame ?? 0,
|
|
42
42
|
elapsed: options.elapsed ?? 0,
|
|
43
43
|
focusIndex: options.focus ?? 0,
|
|
44
|
+
collapseBorders: options.collapseBorders ?? false,
|
|
44
45
|
registerFocus: () => {
|
|
45
46
|
const index = focusCursor++;
|
|
46
47
|
return { index, focused: index === (options.focus ?? 0) };
|