@jrichman/ink 6.5.1-beta.1 → 6.5.1-beta.2

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.
Files changed (74) hide show
  1. package/build/components/Static.js +1 -1
  2. package/build/components/Static.js.map +1 -1
  3. package/build/components/StaticRender.js +0 -7
  4. package/build/components/StaticRender.js.map +1 -1
  5. package/build/devtools.js +0 -2
  6. package/build/devtools.js.map +1 -1
  7. package/build/dom.d.ts +4 -4
  8. package/build/index.d.ts +1 -1
  9. package/build/index.js +1 -0
  10. package/build/index.js.map +1 -1
  11. package/build/ink.d.ts +1 -1
  12. package/build/ink.js +0 -4
  13. package/build/ink.js.map +1 -1
  14. package/build/log-update.d.ts +2 -2
  15. package/build/log-update.js +4 -5
  16. package/build/log-update.js.map +1 -1
  17. package/build/measure-element.js +16 -46
  18. package/build/measure-element.js.map +1 -1
  19. package/build/measure-text.d.ts +9 -23
  20. package/build/measure-text.js +94 -132
  21. package/build/measure-text.js.map +1 -1
  22. package/build/output.d.ts +6 -12
  23. package/build/output.js +35 -51
  24. package/build/output.js.map +1 -1
  25. package/build/render-cached.d.ts +1 -1
  26. package/build/render-cached.js +8 -5
  27. package/build/render-cached.js.map +1 -1
  28. package/build/render-container.d.ts +1 -1
  29. package/build/render-node-to-output.d.ts +1 -1
  30. package/build/render-scrollbar.d.ts +5 -3
  31. package/build/render-scrollbar.js +8 -7
  32. package/build/render-scrollbar.js.map +1 -1
  33. package/build/render-sticky.d.ts +3 -8
  34. package/build/render-sticky.js.map +1 -1
  35. package/build/render-text-node.d.ts +3 -8
  36. package/build/render-text-node.js +62 -40
  37. package/build/render-text-node.js.map +1 -1
  38. package/build/render.d.ts +1 -1
  39. package/build/renderer.d.ts +2 -2
  40. package/build/renderer.js +1 -3
  41. package/build/renderer.js.map +1 -1
  42. package/build/replay.js +4 -16
  43. package/build/replay.js.map +1 -1
  44. package/build/selection.d.ts +3 -3
  45. package/build/selection.js +27 -18
  46. package/build/selection.js.map +1 -1
  47. package/build/serialization.d.ts +2 -5
  48. package/build/serialization.js +55 -86
  49. package/build/serialization.js.map +1 -1
  50. package/build/styled-line.d.ts +73 -0
  51. package/build/styled-line.js +412 -0
  52. package/build/styled-line.js.map +1 -0
  53. package/build/terminal-buffer.d.ts +2 -2
  54. package/build/terminal-buffer.js +3 -2
  55. package/build/terminal-buffer.js.map +1 -1
  56. package/build/text-wrap.d.ts +6 -6
  57. package/build/text-wrap.js +65 -46
  58. package/build/text-wrap.js.map +1 -1
  59. package/build/tokenize.d.ts +3 -33
  60. package/build/tokenize.js +14 -115
  61. package/build/tokenize.js.map +1 -1
  62. package/build/worker/canvas.d.ts +6 -16
  63. package/build/worker/canvas.js +10 -21
  64. package/build/worker/canvas.js.map +1 -1
  65. package/build/worker/compositor.js +15 -9
  66. package/build/worker/compositor.js.map +1 -1
  67. package/build/worker/render-worker.js +2 -8
  68. package/build/worker/render-worker.js.map +1 -1
  69. package/build/worker/scene-manager.js +2 -1
  70. package/build/worker/scene-manager.js.map +1 -1
  71. package/build/worker/terminal-writer.d.ts +4 -4
  72. package/build/worker/terminal-writer.js +34 -64
  73. package/build/worker/terminal-writer.js.map +1 -1
  74. package/package.json +11 -11
@@ -1,79 +1,96 @@
1
- import { StyledChar } from './tokenize.js';
1
+ import { StyledLine } from './styled-line.js';
2
2
  import { inkCharacterWidth, styledCharsWidth } from './measure-text.js';
3
- export const sliceStyledChars = (styledChars, begin, end) => {
3
+ export const sliceStyledChars = (line, begin, end) => {
4
4
  let width = 0;
5
- const result = [];
6
- for (const char of styledChars) {
7
- const charWidth = inkCharacterWidth(char.getValue());
5
+ let startIndex = -1;
6
+ let endIndex = line.length;
7
+ for (let i = 0; i < line.length; i++) {
8
+ const charWidth = inkCharacterWidth(line.getValue(i));
8
9
  const charStart = width;
9
10
  const charEnd = width + charWidth;
10
11
  if (end !== undefined && charEnd > end) {
12
+ endIndex = i;
11
13
  break;
12
14
  }
13
- if (charStart >= begin) {
14
- result.push(char);
15
+ if (charStart >= begin && startIndex === -1) {
16
+ startIndex = i;
15
17
  }
16
18
  width += charWidth;
17
19
  }
18
- return result;
20
+ if (startIndex === -1)
21
+ return new StyledLine();
22
+ return line.slice(startIndex, endIndex);
19
23
  };
20
- export const truncateStyledChars = (styledChars, columns, options = {}) => {
24
+ export const truncateStyledChars = (line, columns, options = {}) => {
21
25
  const { position = 'end' } = options;
22
26
  const truncationCharacter = '…';
23
- const truncationStyledChar = new StyledChar(truncationCharacter, 0);
27
+ const truncationStyledLine = new StyledLine();
28
+ truncationStyledLine.pushChar(truncationCharacter, 0);
24
29
  if (columns < 1) {
25
- return [];
30
+ return new StyledLine();
26
31
  }
27
32
  if (columns === 1) {
28
- return [truncationStyledChar];
33
+ return truncationStyledLine;
29
34
  }
30
- const textWidth = styledCharsWidth(styledChars);
35
+ const textWidth = styledCharsWidth(line);
31
36
  if (textWidth <= columns) {
32
- return styledChars;
37
+ return line;
33
38
  }
34
39
  const truncationWidth = inkCharacterWidth(truncationCharacter);
35
40
  if (position === 'start') {
36
- const right = sliceStyledChars(styledChars, textWidth - columns + truncationWidth, textWidth);
37
- return [truncationStyledChar, ...right];
41
+ const right = sliceStyledChars(line, textWidth - columns + truncationWidth, textWidth);
42
+ return new StyledLine([...truncationStyledLine.getValues(), ...right.getValues()], [...truncationStyledLine.getSpans(), ...right.getSpans().map(s => ({ ...s }))]);
38
43
  }
39
44
  if (position === 'middle') {
40
45
  const leftWidth = Math.ceil(columns / 2);
41
46
  const rightWidth = columns - leftWidth;
42
- const left = sliceStyledChars(styledChars, 0, leftWidth - truncationWidth);
43
- const right = sliceStyledChars(styledChars, textWidth - rightWidth, textWidth);
44
- return [...left, truncationStyledChar, ...right];
47
+ const left = sliceStyledChars(line, 0, leftWidth - truncationWidth);
48
+ const right = sliceStyledChars(line, textWidth - rightWidth, textWidth);
49
+ return new StyledLine([...left.getValues(), ...truncationStyledLine.getValues(), ...right.getValues()], [...left.getSpans(), ...truncationStyledLine.getSpans().map(s => ({ ...s })), ...right.getSpans().map(s => ({ ...s }))]);
45
50
  }
46
- const left = sliceStyledChars(styledChars, 0, columns - truncationWidth);
47
- return [...left, truncationStyledChar];
51
+ const left = sliceStyledChars(line, 0, columns - truncationWidth);
52
+ return new StyledLine([...left.getValues(), ...truncationStyledLine.getValues()], [...left.getSpans(), ...truncationStyledLine.getSpans().map(s => ({ ...s }))]);
48
53
  };
49
54
  const wrapWord = (rows, word, columns) => {
50
55
  let currentLine = rows.at(-1);
51
56
  let visible = styledCharsWidth(currentLine);
52
- for (const character of word) {
53
- const characterLength = inkCharacterWidth(character.getValue());
57
+ for (let i = 0; i < word.length; i++) {
58
+ const val = word.getValue(i);
59
+ const flags = word.getFormatFlags(i);
60
+ const fg = word.getFgColor(i);
61
+ const bg = word.getBgColor(i);
62
+ const link = word.getLink(i);
63
+ const characterLength = inkCharacterWidth(val);
54
64
  if (visible + characterLength > columns && visible > 0) {
55
- rows.push([]);
65
+ rows.push(new StyledLine());
56
66
  currentLine = rows.at(-1);
57
67
  visible = styledCharsWidth(currentLine);
58
68
  }
59
- currentLine.push(character);
69
+ currentLine.pushChar(val, flags, fg, bg, link);
60
70
  visible += characterLength;
61
71
  }
62
72
  };
63
- export const wrapStyledChars = (styledChars, columns) => {
64
- const rows = [[]];
73
+ export const wrapStyledChars = (line, columns) => {
74
+ const rows = [new StyledLine()];
65
75
  const words = [];
66
- let currentWord = [];
67
- for (const char of styledChars) {
68
- if (char.getValue() === '\n' || char.getValue() === ' ') {
76
+ let currentWord = new StyledLine();
77
+ for (let i = 0; i < line.length; i++) {
78
+ const val = line.getValue(i);
79
+ const flags = line.getFormatFlags(i);
80
+ const fg = line.getFgColor(i);
81
+ const bg = line.getBgColor(i);
82
+ const link = line.getLink(i);
83
+ if (val === '\n' || val === ' ') {
69
84
  if (currentWord.length > 0) {
70
85
  words.push(currentWord);
71
86
  }
72
- currentWord = [];
73
- words.push([char]);
87
+ currentWord = new StyledLine();
88
+ const spaceLine = new StyledLine();
89
+ spaceLine.pushChar(val, flags, fg, bg, link);
90
+ words.push(spaceLine);
74
91
  }
75
92
  else {
76
- currentWord.push(char);
93
+ currentWord.pushChar(val, flags, fg, bg, link);
77
94
  }
78
95
  }
79
96
  if (currentWord.length > 0) {
@@ -84,8 +101,8 @@ export const wrapStyledChars = (styledChars, columns) => {
84
101
  if (word.length === 0) {
85
102
  continue;
86
103
  }
87
- if (word[0].getValue() === '\n') {
88
- rows.push([]);
104
+ if (word.getValue(0) === '\n') {
105
+ rows.push(new StyledLine());
89
106
  isAtStartOfLogicalLine = true;
90
107
  continue;
91
108
  }
@@ -93,38 +110,40 @@ export const wrapStyledChars = (styledChars, columns) => {
93
110
  const rowWidth = styledCharsWidth(rows.at(-1));
94
111
  if (rowWidth + wordWidth > columns) {
95
112
  if (!isAtStartOfLogicalLine &&
96
- word[0].getValue() === ' ' &&
113
+ word.getValue(0) === ' ' &&
97
114
  word.length === 1) {
98
115
  continue;
99
116
  }
100
117
  if (!isAtStartOfLogicalLine) {
101
118
  while (rows.at(-1).length > 0 &&
102
- rows.at(-1).at(-1).getValue() === ' ') {
103
- rows.at(-1).pop();
119
+ rows.at(-1).getValue(rows.at(-1).length - 1) === ' ') {
120
+ rows[rows.length - 1] = rows
121
+ .at(-1)
122
+ .slice(0, rows.at(-1).length - 1);
104
123
  }
105
124
  }
106
125
  if (wordWidth > columns) {
107
126
  if (rowWidth > 0) {
108
- rows.push([]);
127
+ rows.push(new StyledLine());
109
128
  }
110
129
  wrapWord(rows, word, columns);
111
130
  }
112
131
  else {
113
- rows.push([]);
114
- rows.at(-1).push(...word);
132
+ rows.push(new StyledLine());
133
+ rows[rows.length - 1] = rows.at(-1).concat(word);
115
134
  }
116
135
  }
117
136
  else {
118
- rows.at(-1).push(...word);
137
+ rows[rows.length - 1] = rows.at(-1).concat(word);
119
138
  }
120
139
  if (isAtStartOfLogicalLine &&
121
- !(word[0].getValue() === ' ' && word.length === 1)) {
140
+ !(word.getValue(0) === ' ' && word.length === 1)) {
122
141
  isAtStartOfLogicalLine = false;
123
142
  }
124
143
  }
125
144
  return rows;
126
145
  };
127
- export const wrapOrTruncateStyledChars = (styledChars, maxWidth, textWrap = 'wrap') => {
146
+ export const wrapOrTruncateStyledChars = (line, maxWidth, textWrap = 'wrap') => {
128
147
  if (textWrap.startsWith('truncate')) {
129
148
  let position = 'end';
130
149
  if (textWrap === 'truncate-middle') {
@@ -133,8 +152,8 @@ export const wrapOrTruncateStyledChars = (styledChars, maxWidth, textWrap = 'wra
133
152
  else if (textWrap === 'truncate-start') {
134
153
  position = 'start';
135
154
  }
136
- return [truncateStyledChars(styledChars, maxWidth, { position })];
155
+ return [truncateStyledChars(line, maxWidth, { position })];
137
156
  }
138
- return wrapStyledChars(styledChars, maxWidth);
157
+ return wrapStyledChars(line, maxWidth);
139
158
  };
140
159
  //# sourceMappingURL=text-wrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-wrap.js","sourceRoot":"","sources":["../src/text-wrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-wrap.js","sourceRoot":"","sources":["../src/text-wrap.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { StyledLine } from './styled-line.js';
1
2
  export declare const CC_BEL: number;
2
3
  export declare const CC_ESC: number;
3
4
  export declare const CC_BACKSLASH: number;
@@ -42,36 +43,5 @@ export declare const STRIKETHROUGH_MASK: number;
42
43
  export declare const INVERSE_MASK: number;
43
44
  export declare const HIDDEN_MASK: number;
44
45
  export declare const FULL_WIDTH_MASK: number;
45
- export declare class StyledChar {
46
- private readonly _value;
47
- private _formatFlags;
48
- private readonly _fgColor?;
49
- private _bgColor?;
50
- private readonly _link?;
51
- constructor(_value: string, _formatFlags: number, _fgColor?: string | undefined, _bgColor?: string | undefined, _link?: string | undefined);
52
- getValue(): string;
53
- getFullWidth(): boolean;
54
- getForegroundColor(): string | undefined;
55
- getBackgroundColor(): string | undefined;
56
- getBold(): boolean;
57
- getDim(): boolean;
58
- getItalic(): boolean;
59
- getUnderline(): boolean;
60
- getStrikethrough(): boolean;
61
- getInverse(): boolean;
62
- getHidden(): boolean;
63
- getLink(): string | undefined;
64
- get formatFlags(): number;
65
- get fgColor(): string | undefined;
66
- get bgColor(): string | undefined;
67
- get link(): string | undefined;
68
- setFormatFlag(mask: number): void;
69
- clearFormatFlag(mask: number): void;
70
- setBackgroundColor(color: string | undefined): void;
71
- hasStyles(): boolean;
72
- copyWith(overrides: {
73
- value?: string;
74
- }): StyledChar;
75
- }
76
- export declare function styledCharsFromTokens(tokens: Token[]): StyledChar[];
77
- export declare function styledCharsToString(chars: StyledChar[]): string;
46
+ export declare function styledLineFromTokens(tokens: Token[]): StyledLine;
47
+ export declare function styledLineToString(line: StyledLine): string;
package/build/tokenize.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import isFullwidthCodePoint from 'is-fullwidth-code-point';
2
2
  import ansiStyles from 'ansi-styles';
3
+ import { StyledLine } from './styled-line.js';
3
4
  // --- consts.ts ---
4
5
  const BEL = '\u0007';
5
6
  const ESC = '\u001B';
@@ -210,7 +211,6 @@ export function tokenize(str, endChar = Number.POSITIVE_INFINITY) {
210
211
  }
211
212
  return ret;
212
213
  }
213
- // --- StyledChar.ts ---
214
214
  export const BOLD_MASK = Math.trunc(1);
215
215
  export const DIM_MASK = 1 << 1;
216
216
  export const ITALIC_MASK = 1 << 2;
@@ -219,90 +219,8 @@ export const STRIKETHROUGH_MASK = 1 << 4;
219
219
  export const INVERSE_MASK = 1 << 5;
220
220
  export const HIDDEN_MASK = 1 << 6;
221
221
  export const FULL_WIDTH_MASK = 1 << 7;
222
- export class StyledChar {
223
- _value;
224
- _formatFlags;
225
- _fgColor;
226
- _bgColor;
227
- _link;
228
- constructor(_value, _formatFlags, _fgColor, _bgColor, _link) {
229
- this._value = _value;
230
- this._formatFlags = _formatFlags;
231
- this._fgColor = _fgColor;
232
- this._bgColor = _bgColor;
233
- this._link = _link;
234
- }
235
- getValue() {
236
- return this._value;
237
- }
238
- getFullWidth() {
239
- return (this._formatFlags & FULL_WIDTH_MASK) !== 0;
240
- }
241
- getForegroundColor() {
242
- return this._fgColor;
243
- }
244
- getBackgroundColor() {
245
- return this._bgColor;
246
- }
247
- getBold() {
248
- return (this._formatFlags & BOLD_MASK) !== 0;
249
- }
250
- getDim() {
251
- return (this._formatFlags & DIM_MASK) !== 0;
252
- }
253
- getItalic() {
254
- return (this._formatFlags & ITALIC_MASK) !== 0;
255
- }
256
- getUnderline() {
257
- return (this._formatFlags & UNDERLINE_MASK) !== 0;
258
- }
259
- getStrikethrough() {
260
- return (this._formatFlags & STRIKETHROUGH_MASK) !== 0;
261
- }
262
- getInverse() {
263
- return (this._formatFlags & INVERSE_MASK) !== 0;
264
- }
265
- getHidden() {
266
- return (this._formatFlags & HIDDEN_MASK) !== 0;
267
- }
268
- getLink() {
269
- return this._link;
270
- }
271
- get formatFlags() {
272
- return this._formatFlags;
273
- }
274
- get fgColor() {
275
- return this._fgColor;
276
- }
277
- get bgColor() {
278
- return this._bgColor;
279
- }
280
- get link() {
281
- return this._link;
282
- }
283
- setFormatFlag(mask) {
284
- this._formatFlags |= mask;
285
- }
286
- clearFormatFlag(mask) {
287
- this._formatFlags &= ~mask;
288
- }
289
- setBackgroundColor(color) {
290
- this._bgColor = color;
291
- }
292
- hasStyles() {
293
- // If there are any formatting flags (except FULL_WIDTH) or any color/link set.
294
- return ((this._formatFlags & ~FULL_WIDTH_MASK) !== 0 ||
295
- this._fgColor !== undefined ||
296
- this._bgColor !== undefined ||
297
- this._link !== undefined);
298
- }
299
- copyWith(overrides) {
300
- return new StyledChar(overrides.value ?? this._value, this._formatFlags, this._fgColor, this._bgColor, this._link);
301
- }
302
- }
303
- // --- styledCharsFromTokens.ts ---
304
- export function styledCharsFromTokens(tokens) {
305
- const ret = [];
222
+ export function styledLineFromTokens(tokens) {
223
+ const line = new StyledLine([], []);
306
224
  let formatFlags = 0;
307
225
  let fgColor;
308
226
  let bgColor;
@@ -348,7 +266,6 @@ export function styledCharsFromTokens(tokens) {
348
266
  }
349
267
  case ansiStyles.bold.close:
350
268
  case ansiStyles.dim.close: {
351
- // 22m closes both bold and dim
352
269
  formatFlags &= ~BOLD_MASK;
353
270
  formatFlags &= ~DIM_MASK;
354
271
  break;
@@ -406,47 +323,32 @@ export function styledCharsFromTokens(tokens) {
406
323
  if (token.fullWidth) {
407
324
  finalFlags |= FULL_WIDTH_MASK;
408
325
  }
409
- ret.push(new StyledChar(token.value, finalFlags, fgColor, bgColor, link));
326
+ line.pushChar(token.value, finalFlags, fgColor, bgColor, link);
410
327
  }
411
328
  }
412
- return ret;
329
+ return line;
413
330
  }
414
- // --- styledCharsToString.ts ---
415
- export function styledCharsToString(chars) {
331
+ export function styledLineToString(line) {
416
332
  let ret = '';
417
333
  let prevFormatFlags = 0;
418
334
  let prevFgColor;
419
335
  let prevBgColor;
420
336
  let prevLink;
421
- for (let i = 0; i < chars.length; i++) {
422
- const char = chars[i];
423
- const { formatFlags } = char;
424
- const { fgColor } = char;
425
- const { bgColor } = char;
426
- const { link } = char;
427
- // Fast path: if styling matches previous char, just append value.
337
+ for (const { value, formatFlags, fgColor, bgColor, link } of line) {
428
338
  if (formatFlags === prevFormatFlags &&
429
339
  fgColor === prevFgColor &&
430
340
  bgColor === prevBgColor &&
431
341
  link === prevLink) {
432
- ret += char.getValue();
342
+ ret += value;
433
343
  continue;
434
344
  }
435
- // If bold or dim changed to false, we have to emit reset (22m), which resets both.
436
- // So if we need to restore one, we have to emit it again.
437
345
  let needResetBoldDim = false;
438
346
  if ((prevFormatFlags & BOLD_MASK && !(formatFlags & BOLD_MASK)) ||
439
347
  (prevFormatFlags & DIM_MASK && !(formatFlags & DIM_MASK))) {
440
348
  needResetBoldDim = true;
441
349
  }
442
- if (fgColor !== prevFgColor) {
443
- ret += fgColor === undefined ? ansiStyles.color.close : fgColor;
444
- }
445
- if (bgColor !== prevBgColor) {
446
- ret += bgColor === undefined ? ansiStyles.bgColor.close : bgColor;
447
- }
448
350
  if (needResetBoldDim) {
449
- ret += ansiStyles.bold.close; // 22m closes both
351
+ ret += ansiStyles.bold.close;
450
352
  }
451
353
  if ((needResetBoldDim ||
452
354
  (formatFlags & BOLD_MASK && !(prevFormatFlags & BOLD_MASK))) &&
@@ -478,19 +380,16 @@ export function styledCharsToString(chars) {
478
380
  ret += ansiStyles.hidden.open;
479
381
  if (!(formatFlags & HIDDEN_MASK) && prevFormatFlags & HIDDEN_MASK)
480
382
  ret += ansiStyles.hidden.close;
481
- if (needResetBoldDim) {
482
- ret += ansiStyles.bold.close; // 22m closes both
483
- }
484
- if (fgColor !== prevFgColor && fgColor === undefined) {
485
- ret += ansiStyles.color.close;
383
+ if (fgColor !== prevFgColor) {
384
+ ret += fgColor === undefined ? ansiStyles.color.close : fgColor;
486
385
  }
487
- if (bgColor !== prevBgColor && bgColor === undefined) {
488
- ret += ansiStyles.bgColor.close;
386
+ if (bgColor !== prevBgColor) {
387
+ ret += bgColor === undefined ? ansiStyles.bgColor.close : bgColor;
489
388
  }
490
389
  if (link !== prevLink) {
491
390
  ret += link === undefined ? linkEndCode : link;
492
391
  }
493
- ret += char.getValue();
392
+ ret += value;
494
393
  prevFormatFlags = formatFlags;
495
394
  prevFgColor = fgColor;
496
395
  prevBgColor = bgColor;
@@ -1 +1 @@
1
- {"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../src/tokenize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../src/tokenize.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2026 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { StyledChar } from '../tokenize.js';
6
+ import { StyledLine } from '../styled-line.js';
7
7
  import { type RenderLine } from './terminal-writer.js';
8
8
  export type Rect = {
9
9
  x: number;
@@ -19,27 +19,17 @@ export declare class Canvas {
19
19
  readonly width: number;
20
20
  readonly height: number;
21
21
  private readonly lines;
22
- /**
23
- * Creates a new Canvas from a set of lines.
24
- */
25
22
  static fromLines(width: number, height: number, lines: RenderLine[]): Canvas;
26
- /**
27
- * Creates an empty Canvas with the given dimensions.
28
- */
29
23
  static create(width: number, height: number, tainted?: boolean): Canvas;
30
24
  constructor(width: number, height: number, lines: RenderLine[]);
31
- /**
32
- * Returns the character at the given coordinates.
33
- */
34
- getChar(x: number, y: number): StyledChar | undefined;
35
- /**
36
- * Sets a character at the given coordinates, respecting clipping.
37
- */
38
- setChar(x: number, y: number, char: StyledChar, clip?: Rect): void;
25
+ getChar(x: number, y: number): {
26
+ bgColor?: string;
27
+ } | undefined;
28
+ setChar(x: number, y: number, char: StyledLine, clip?: Rect): void;
39
29
  /**
40
30
  * Draws a sequence of characters starting at (x, y).
41
31
  */
42
- drawStyledChars(x: number, y: number, chars: StyledChar[], clip?: Rect): void;
32
+ drawStyledChars(x: number, y: number, chars: StyledLine, clip?: Rect): void;
43
33
  /**
44
34
  * Returns the underlying lines.
45
35
  */