@jrichman/ink 6.5.1-beta.0 → 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 (109) hide show
  1. package/build/components/App.js +0 -3
  2. package/build/components/App.js.map +1 -1
  3. package/build/components/AppContext.js +0 -1
  4. package/build/components/AppContext.js.map +1 -1
  5. package/build/components/FocusContext.js +0 -1
  6. package/build/components/FocusContext.js.map +1 -1
  7. package/build/components/Static.js +1 -1
  8. package/build/components/Static.js.map +1 -1
  9. package/build/components/StaticRender.js +9 -1
  10. package/build/components/StaticRender.js.map +1 -1
  11. package/build/components/StderrContext.js +0 -1
  12. package/build/components/StderrContext.js.map +1 -1
  13. package/build/components/StdinContext.js +0 -3
  14. package/build/components/StdinContext.js.map +1 -1
  15. package/build/components/StdoutContext.js +0 -1
  16. package/build/components/StdoutContext.js.map +1 -1
  17. package/build/data-limited-lru-map.d.ts +1 -0
  18. package/build/data-limited-lru-map.js +4 -0
  19. package/build/data-limited-lru-map.js.map +1 -1
  20. package/build/devtools.js +0 -3
  21. package/build/devtools.js.map +1 -1
  22. package/build/dom.d.ts +7 -5
  23. package/build/dom.js +6 -2
  24. package/build/dom.js.map +1 -1
  25. package/build/hooks/use-input.js +0 -1
  26. package/build/hooks/use-input.js.map +1 -1
  27. package/build/index.d.ts +1 -1
  28. package/build/index.js +1 -0
  29. package/build/index.js.map +1 -1
  30. package/build/ink.d.ts +3 -1
  31. package/build/ink.js +12 -4
  32. package/build/ink.js.map +1 -1
  33. package/build/log-update.d.ts +2 -2
  34. package/build/log-update.js +4 -4
  35. package/build/log-update.js.map +1 -1
  36. package/build/measure-element.js +15 -45
  37. package/build/measure-element.js.map +1 -1
  38. package/build/measure-text.d.ts +11 -23
  39. package/build/measure-text.js +112 -136
  40. package/build/measure-text.js.map +1 -1
  41. package/build/output.d.ts +15 -14
  42. package/build/output.js +60 -87
  43. package/build/output.js.map +1 -1
  44. package/build/reconciler.js +23 -7
  45. package/build/reconciler.js.map +1 -1
  46. package/build/render-cached.d.ts +2 -1
  47. package/build/render-cached.js +6 -3
  48. package/build/render-cached.js.map +1 -1
  49. package/build/render-container.d.ts +2 -1
  50. package/build/render-container.js +4 -1
  51. package/build/render-container.js.map +1 -1
  52. package/build/render-node-to-output.d.ts +3 -1
  53. package/build/render-node-to-output.js +10 -2
  54. package/build/render-node-to-output.js.map +1 -1
  55. package/build/render-scrollbar.d.ts +5 -3
  56. package/build/render-scrollbar.js +9 -10
  57. package/build/render-scrollbar.js.map +1 -1
  58. package/build/render-sticky.d.ts +5 -8
  59. package/build/render-sticky.js +4 -1
  60. package/build/render-sticky.js.map +1 -1
  61. package/build/render-text-node.d.ts +4 -8
  62. package/build/render-text-node.js +62 -44
  63. package/build/render-text-node.js.map +1 -1
  64. package/build/render.d.ts +3 -1
  65. package/build/render.js.map +1 -1
  66. package/build/renderer.d.ts +3 -2
  67. package/build/renderer.js +7 -5
  68. package/build/renderer.js.map +1 -1
  69. package/build/replay.d.ts +1 -2
  70. package/build/replay.js +24 -34
  71. package/build/replay.js.map +1 -1
  72. package/build/selection.d.ts +3 -3
  73. package/build/selection.js +29 -36
  74. package/build/selection.js.map +1 -1
  75. package/build/serialization.d.ts +3 -6
  76. package/build/serialization.js +53 -98
  77. package/build/serialization.js.map +1 -1
  78. package/build/styled-line.d.ts +73 -0
  79. package/build/styled-line.js +412 -0
  80. package/build/styled-line.js.map +1 -0
  81. package/build/styled-lines.d.ts +29 -0
  82. package/build/styled-lines.js +110 -0
  83. package/build/styled-lines.js.map +1 -0
  84. package/build/styles.js.map +1 -1
  85. package/build/terminal-buffer.d.ts +4 -2
  86. package/build/terminal-buffer.js +33 -7
  87. package/build/terminal-buffer.js.map +1 -1
  88. package/build/text-wrap.d.ts +6 -6
  89. package/build/text-wrap.js +66 -50
  90. package/build/text-wrap.js.map +1 -1
  91. package/build/tokenize.d.ts +47 -0
  92. package/build/tokenize.js +419 -0
  93. package/build/tokenize.js.map +1 -0
  94. package/build/worker/canvas.d.ts +6 -16
  95. package/build/worker/canvas.js +10 -25
  96. package/build/worker/canvas.js.map +1 -1
  97. package/build/worker/compositor.js +27 -19
  98. package/build/worker/compositor.js.map +1 -1
  99. package/build/worker/render-worker.js +27 -19
  100. package/build/worker/render-worker.js.map +1 -1
  101. package/build/worker/scene-manager.js +12 -3
  102. package/build/worker/scene-manager.js.map +1 -1
  103. package/build/worker/terminal-writer.d.ts +4 -4
  104. package/build/worker/terminal-writer.js +36 -52
  105. package/build/worker/terminal-writer.js.map +1 -1
  106. package/build/wrap-text.d.ts +6 -0
  107. package/build/wrap-text.js +120 -0
  108. package/build/wrap-text.js.map +1 -0
  109. package/package.json +15 -4
@@ -0,0 +1,412 @@
1
+ import { FULL_WIDTH_MASK, BOLD_MASK, DIM_MASK, ITALIC_MASK, UNDERLINE_MASK, STRIKETHROUGH_MASK, INVERSE_MASK, HIDDEN_MASK, } from './tokenize.js';
2
+ export class StyledLine {
3
+ static empty(length) {
4
+ const line = new StyledLine();
5
+ line.length = length;
6
+ line.text = ' '.repeat(length);
7
+ line.charData = new Uint16Array(Math.max(length, 16));
8
+ for (let i = 0; i < length; i++) {
9
+ line.charData[i] = i;
10
+ }
11
+ line.spans = length > 0 ? [{ length, formatFlags: 0 }] : [];
12
+ return line;
13
+ }
14
+ length;
15
+ text;
16
+ charData;
17
+ spans;
18
+ constructor(values = [], spans = []) {
19
+ this.length = values.length;
20
+ this.text = values.join('');
21
+ this.charData = new Uint16Array(Math.max(this.length, 16));
22
+ let currentOffset = 0;
23
+ let spanIdx = 0;
24
+ let spanPos = 0;
25
+ for (let i = 0; i < this.length; i++) {
26
+ const val = values[i];
27
+ let isFullWidth = false;
28
+ if (spans.length > 0 && spanIdx < spans.length) {
29
+ const span = spans[spanIdx];
30
+ if ((span.formatFlags & FULL_WIDTH_MASK) !== 0) {
31
+ isFullWidth = true;
32
+ }
33
+ spanPos++;
34
+ if (spanPos >= span.length) {
35
+ spanIdx++;
36
+ spanPos = 0;
37
+ }
38
+ }
39
+ this.charData[i] = currentOffset | (isFullWidth ? 0x80_00 : 0);
40
+ currentOffset += val.length;
41
+ }
42
+ this.spans = spans.map(s => ({
43
+ ...s,
44
+ formatFlags: s.formatFlags & ~FULL_WIDTH_MASK,
45
+ }));
46
+ this.mergeSpans();
47
+ }
48
+ getValue(index) {
49
+ if (index < 0 || index >= this.length)
50
+ return '';
51
+ const start = this.charData[index] & 0x7f_ff;
52
+ const end = index + 1 < this.length
53
+ ? this.charData[index + 1] & 0x7f_ff
54
+ : this.text.length;
55
+ return this.text.slice(start, end);
56
+ }
57
+ getSpan(index) {
58
+ if (index < 0 || index >= this.length)
59
+ return undefined;
60
+ let current = 0;
61
+ for (const span of this.spans) {
62
+ if (index < current + span.length)
63
+ return span;
64
+ current += span.length;
65
+ }
66
+ return undefined;
67
+ }
68
+ getFullWidth(index) {
69
+ if (index < 0 || index >= this.length)
70
+ return false;
71
+ return (this.charData[index] & 0x80_00) !== 0;
72
+ }
73
+ hasStyles(index) {
74
+ const span = this.getSpan(index);
75
+ if (!span)
76
+ return false;
77
+ return ((span.formatFlags & ~FULL_WIDTH_MASK) !== 0 ||
78
+ span.fgColor !== undefined ||
79
+ span.bgColor !== undefined ||
80
+ span.link !== undefined);
81
+ }
82
+ getFormatFlags(index) {
83
+ let flags = this.getSpan(index)?.formatFlags ?? 0;
84
+ if (this.getFullWidth(index)) {
85
+ flags |= FULL_WIDTH_MASK;
86
+ }
87
+ return flags;
88
+ }
89
+ getFgColor(index) {
90
+ return this.getSpan(index)?.fgColor;
91
+ }
92
+ getBgColor(index) {
93
+ return this.getSpan(index)?.bgColor;
94
+ }
95
+ getLink(index) {
96
+ return this.getSpan(index)?.link;
97
+ }
98
+ // eslint-disable-next-line max-params
99
+ setChar(index, value, formatFlags, fgColor, bgColor, link) {
100
+ if (index < 0 || index >= this.length)
101
+ return;
102
+ const isFullWidth = (formatFlags & FULL_WIDTH_MASK) !== 0;
103
+ const cleanFormatFlags = formatFlags & ~FULL_WIDTH_MASK;
104
+ const start = this.charData[index] & 0x7f_ff;
105
+ const end = index + 1 < this.length
106
+ ? this.charData[index + 1] & 0x7f_ff
107
+ : this.text.length;
108
+ const oldLen = end - start;
109
+ const newLen = value.length;
110
+ if (oldLen === newLen) {
111
+ this.text = this.text.slice(0, start) + value + this.text.slice(end);
112
+ }
113
+ else {
114
+ this.text = this.text.slice(0, start) + value + this.text.slice(end);
115
+ const diff = newLen - oldLen;
116
+ for (let i = index + 1; i < this.length; i++) {
117
+ const data = this.charData[i];
118
+ const oldOffset = data & 0x7f_ff;
119
+ const fw = data & 0x80_00;
120
+ this.charData[i] = (oldOffset + diff) | fw;
121
+ }
122
+ }
123
+ this.charData[index] = start | (isFullWidth ? 0x80_00 : 0);
124
+ this.splitSpansAt(index);
125
+ this.splitSpansAt(index + 1);
126
+ let current = 0;
127
+ for (let i = 0; i < this.spans.length; i++) {
128
+ const span = this.spans[i];
129
+ if (current === index && span.length === 1) {
130
+ this.spans[i] = {
131
+ length: 1,
132
+ formatFlags: cleanFormatFlags,
133
+ fgColor,
134
+ bgColor,
135
+ link,
136
+ };
137
+ break;
138
+ }
139
+ current += span.length;
140
+ }
141
+ this.mergeSpans();
142
+ }
143
+ // eslint-disable-next-line max-params
144
+ pushChar(value, formatFlags, fgColor, bgColor, link) {
145
+ const isFullWidth = (formatFlags & FULL_WIDTH_MASK) !== 0;
146
+ const cleanFormatFlags = formatFlags & ~FULL_WIDTH_MASK;
147
+ const offset = this.text.length;
148
+ this.text += value;
149
+ if (this.length >= this.charData.length) {
150
+ const newData = new Uint16Array(this.charData.length * 2 || 16);
151
+ newData.set(this.charData);
152
+ this.charData = newData;
153
+ }
154
+ this.charData[this.length] = offset | (isFullWidth ? 0x80_00 : 0);
155
+ const lastSpan = this.spans.at(-1);
156
+ if (lastSpan &&
157
+ lastSpan.formatFlags === cleanFormatFlags &&
158
+ lastSpan.fgColor === fgColor &&
159
+ lastSpan.bgColor === bgColor &&
160
+ lastSpan.link === link) {
161
+ lastSpan.length++;
162
+ }
163
+ else {
164
+ this.spans.push({
165
+ length: 1,
166
+ formatFlags: cleanFormatFlags,
167
+ fgColor,
168
+ bgColor,
169
+ link,
170
+ });
171
+ }
172
+ this.length++;
173
+ }
174
+ slice(start, end) {
175
+ const actualStart = Math.max(0, start);
176
+ const actualEnd = end === undefined ? this.length : Math.min(this.length, end);
177
+ if (actualStart >= actualEnd)
178
+ return new StyledLine([], []);
179
+ const result = new StyledLine();
180
+ result.length = actualEnd - actualStart;
181
+ result.charData = new Uint16Array(Math.max(result.length, 16));
182
+ const textStart = this.charData[actualStart] & 0x7f_ff;
183
+ const textEnd = actualEnd < this.length
184
+ ? this.charData[actualEnd] & 0x7f_ff
185
+ : this.text.length;
186
+ result.text = this.text.slice(textStart, textEnd);
187
+ for (let i = 0; i < result.length; i++) {
188
+ const oldData = this.charData[actualStart + i];
189
+ const oldOffset = oldData & 0x7f_ff;
190
+ const fw = oldData & 0x80_00;
191
+ result.charData[i] = (oldOffset - textStart) | fw;
192
+ }
193
+ const newSpans = [];
194
+ let current = 0;
195
+ for (const span of this.spans) {
196
+ const spanStart = current;
197
+ const spanEnd = current + span.length;
198
+ const intersectStart = Math.max(actualStart, spanStart);
199
+ const intersectEnd = Math.min(actualEnd, spanEnd);
200
+ if (intersectStart < intersectEnd) {
201
+ newSpans.push({
202
+ ...span,
203
+ length: intersectEnd - intersectStart,
204
+ });
205
+ }
206
+ current += span.length;
207
+ if (current >= actualEnd)
208
+ break;
209
+ }
210
+ result.spans = newSpans;
211
+ result.mergeSpans();
212
+ return result;
213
+ }
214
+ concat(other) {
215
+ const result = new StyledLine();
216
+ result.length = this.length + other.length;
217
+ result.text = this.text + other.text;
218
+ result.charData = new Uint16Array(Math.max(result.length, 16));
219
+ result.charData.set(this.charData.subarray(0, this.length), 0);
220
+ const textOffset = this.text.length;
221
+ for (let i = 0; i < other.length; i++) {
222
+ const oldData = other.charData[i];
223
+ const oldOffset = oldData & 0x7f_ff;
224
+ const fw = oldData & 0x80_00;
225
+ result.charData[this.length + i] = (oldOffset + textOffset) | fw;
226
+ }
227
+ result.spans = [...this.spans, ...other.spans.map(s => ({ ...s }))];
228
+ result.mergeSpans();
229
+ return result;
230
+ }
231
+ trimEnd() {
232
+ let i = this.length - 1;
233
+ while (i >= 0 && this.getValue(i) === ' ' && !this.hasStyles(i)) {
234
+ i--;
235
+ }
236
+ return this.slice(0, i + 1);
237
+ }
238
+ equals(other) {
239
+ if (this.length !== other.length)
240
+ return false;
241
+ if (this.text !== other.text)
242
+ return false;
243
+ if (this.spans.length !== other.spans.length)
244
+ return false;
245
+ for (let i = 0; i < this.spans.length; i++) {
246
+ const s1 = this.spans[i];
247
+ const s2 = other.spans[i];
248
+ if (s1.length !== s2.length ||
249
+ s1.formatFlags !== s2.formatFlags ||
250
+ s1.fgColor !== s2.fgColor ||
251
+ s1.bgColor !== s2.bgColor ||
252
+ s1.link !== s2.link) {
253
+ return false;
254
+ }
255
+ }
256
+ for (let i = 0; i < this.length; i++) {
257
+ if (this.charData[i] !== other.charData[i])
258
+ return false;
259
+ }
260
+ return true;
261
+ }
262
+ getSpans() {
263
+ return this.spans;
264
+ }
265
+ getValues() {
266
+ return Array.from({ length: this.length }, (_, i) => this.getValue(i));
267
+ }
268
+ *[Symbol.iterator]() {
269
+ let currentSpanIdx = 0;
270
+ let currentSpanPos = 0;
271
+ for (let i = 0; i < this.length; i++) {
272
+ const span = this.spans[currentSpanIdx];
273
+ const formatFlags = span ? span.formatFlags : 0;
274
+ const isFullWidth = this.getFullWidth(i);
275
+ yield {
276
+ value: this.getValue(i),
277
+ formatFlags: formatFlags | (isFullWidth ? FULL_WIDTH_MASK : 0),
278
+ fgColor: span?.fgColor,
279
+ bgColor: span?.bgColor,
280
+ link: span?.link,
281
+ fullWidth: isFullWidth,
282
+ hasStyles: (formatFlags & ~FULL_WIDTH_MASK) !== 0 ||
283
+ span?.fgColor !== undefined ||
284
+ span?.bgColor !== undefined ||
285
+ span?.link !== undefined,
286
+ };
287
+ if (span) {
288
+ currentSpanPos++;
289
+ if (currentSpanPos >= span.length) {
290
+ currentSpanIdx++;
291
+ currentSpanPos = 0;
292
+ }
293
+ }
294
+ }
295
+ }
296
+ splitSpansAt(index) {
297
+ if (index <= 0 || index >= this.length)
298
+ return;
299
+ let current = 0;
300
+ for (let i = 0; i < this.spans.length; i++) {
301
+ const span = this.spans[i];
302
+ if (index > current && index < current + span.length) {
303
+ const leftLen = index - current;
304
+ const rightLen = span.length - leftLen;
305
+ this.spans.splice(i, 1, { ...span, length: leftLen }, { ...span, length: rightLen });
306
+ return;
307
+ }
308
+ current += span.length;
309
+ }
310
+ }
311
+ mergeSpans() {
312
+ const newSpans = [];
313
+ for (const span of this.spans) {
314
+ if (span.length === 0)
315
+ continue;
316
+ const last = newSpans.at(-1);
317
+ if (last &&
318
+ last.formatFlags === span.formatFlags &&
319
+ last.fgColor === span.fgColor &&
320
+ last.bgColor === span.bgColor &&
321
+ last.link === span.link) {
322
+ last.length += span.length;
323
+ }
324
+ else {
325
+ newSpans.push({ ...span });
326
+ }
327
+ }
328
+ this.spans = newSpans;
329
+ }
330
+ }
331
+ export class StyledChar {
332
+ _value;
333
+ _formatFlags;
334
+ _fgColor;
335
+ _bgColor;
336
+ _link;
337
+ // eslint-disable-next-line max-params
338
+ constructor(_value, _formatFlags, _fgColor, _bgColor, _link) {
339
+ this._value = _value;
340
+ this._formatFlags = _formatFlags;
341
+ this._fgColor = _fgColor;
342
+ this._bgColor = _bgColor;
343
+ this._link = _link;
344
+ }
345
+ getValue() {
346
+ return this._value;
347
+ }
348
+ getFullWidth() {
349
+ return (this._formatFlags & FULL_WIDTH_MASK) !== 0;
350
+ }
351
+ getForegroundColor() {
352
+ return this._fgColor;
353
+ }
354
+ getBackgroundColor() {
355
+ return this._bgColor;
356
+ }
357
+ getBold() {
358
+ return (this._formatFlags & BOLD_MASK) !== 0;
359
+ }
360
+ getDim() {
361
+ return (this._formatFlags & DIM_MASK) !== 0;
362
+ }
363
+ getItalic() {
364
+ return (this._formatFlags & ITALIC_MASK) !== 0;
365
+ }
366
+ getUnderline() {
367
+ return (this._formatFlags & UNDERLINE_MASK) !== 0;
368
+ }
369
+ getStrikethrough() {
370
+ return (this._formatFlags & STRIKETHROUGH_MASK) !== 0;
371
+ }
372
+ getInverse() {
373
+ return (this._formatFlags & INVERSE_MASK) !== 0;
374
+ }
375
+ getHidden() {
376
+ return (this._formatFlags & HIDDEN_MASK) !== 0;
377
+ }
378
+ getLink() {
379
+ return this._link;
380
+ }
381
+ get formatFlags() {
382
+ return this._formatFlags;
383
+ }
384
+ get fgColor() {
385
+ return this._fgColor;
386
+ }
387
+ get bgColor() {
388
+ return this._bgColor;
389
+ }
390
+ get link() {
391
+ return this._link;
392
+ }
393
+ setFormatFlag(mask) {
394
+ this._formatFlags |= mask;
395
+ }
396
+ clearFormatFlag(mask) {
397
+ this._formatFlags &= ~mask;
398
+ }
399
+ setBackgroundColor(color) {
400
+ this._bgColor = color;
401
+ }
402
+ hasStyles() {
403
+ return ((this._formatFlags & ~FULL_WIDTH_MASK) !== 0 ||
404
+ this._fgColor !== undefined ||
405
+ this._bgColor !== undefined ||
406
+ this._link !== undefined);
407
+ }
408
+ copyWith(overrides) {
409
+ return new StyledChar(overrides.value ?? this._value, this._formatFlags, this._fgColor, this._bgColor, this._link);
410
+ }
411
+ }
412
+ //# sourceMappingURL=styled-line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styled-line.js","sourceRoot":"","sources":["../src/styled-line.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { AnsiCode, StyledChar } from '@alcalzone/ansi-tokenize';
2
+ /**
3
+ * A highly optimized representation of styled characters for terminal rendering.
4
+ * Replaces arrays of `StyledChar` objects with parallel arrays to eliminate
5
+ * massive GC overhead during large layout and scroll updates.
6
+ */
7
+ export declare class StyledLines {
8
+ values: string[];
9
+ fullWidths: boolean[];
10
+ styles: AnsiCode[][];
11
+ get length(): number;
12
+ set length(value: number);
13
+ push(value: string, fullWidth: boolean, styles: AnsiCode[]): void;
14
+ pushChar(char: StyledChar): void;
15
+ pushLine(other: StyledLines): void;
16
+ slice(start?: number, end?: number): StyledLines;
17
+ splice(start: number, deleteCount: number, ...items: StyledChar[]): StyledLines;
18
+ [Symbol.iterator](): Generator<{
19
+ type: "char";
20
+ value: string;
21
+ fullWidth: boolean;
22
+ styles: AnsiCode[];
23
+ }, void, unknown>;
24
+ entries(): IterableIterator<[number, StyledChar]>;
25
+ map<U>(callbackfn: (value: StyledChar, index: number, array: StyledChar[]) => U, thisArg?: any): U[];
26
+ indexOf(searchElement: StyledChar, fromIndex?: number): number;
27
+ at(index: number): StyledChar | undefined;
28
+ clone(): StyledLines;
29
+ }
@@ -0,0 +1,110 @@
1
+ /**
2
+ * A highly optimized representation of styled characters for terminal rendering.
3
+ * Replaces arrays of `StyledChar` objects with parallel arrays to eliminate
4
+ * massive GC overhead during large layout and scroll updates.
5
+ */
6
+ export class StyledLines {
7
+ values = [];
8
+ fullWidths = [];
9
+ styles = [];
10
+ get length() {
11
+ return this.values.length;
12
+ }
13
+ set length(value) {
14
+ this.values.length = value;
15
+ this.fullWidths.length = value;
16
+ this.styles.length = value;
17
+ }
18
+ push(value, fullWidth, styles) {
19
+ this.values.push(value);
20
+ this.fullWidths.push(fullWidth);
21
+ this.styles.push(styles);
22
+ }
23
+ pushChar(char) {
24
+ this.values.push(char.value);
25
+ this.fullWidths.push(char.fullWidth || false);
26
+ this.styles.push(char.styles || []);
27
+ }
28
+ pushLine(other) {
29
+ for (let i = 0; i < other.length; i++) {
30
+ this.values.push(other.values[i]);
31
+ this.fullWidths.push(other.fullWidths[i]);
32
+ this.styles.push(other.styles[i]);
33
+ }
34
+ }
35
+ slice(start, end) {
36
+ const result = new StyledLines();
37
+ result.values = this.values.slice(start, end);
38
+ result.fullWidths = this.fullWidths.slice(start, end);
39
+ result.styles = this.styles.slice(start, end);
40
+ return result;
41
+ }
42
+ splice(start, deleteCount, ...items) {
43
+ const result = new StyledLines();
44
+ result.values = this.values.splice(start, deleteCount, ...items.map(i => i.value));
45
+ result.fullWidths = this.fullWidths.splice(start, deleteCount, ...items.map(i => i.fullWidth || false));
46
+ result.styles = this.styles.splice(start, deleteCount, ...items.map(i => i.styles || []));
47
+ return result;
48
+ }
49
+ *[Symbol.iterator]() {
50
+ for (let i = 0; i < this.length; i++) {
51
+ yield {
52
+ type: 'char',
53
+ value: this.values[i],
54
+ fullWidth: this.fullWidths[i],
55
+ styles: this.styles[i],
56
+ };
57
+ }
58
+ }
59
+ entries() {
60
+ let i = 0;
61
+ return {
62
+ [Symbol.iterator]() {
63
+ return this;
64
+ },
65
+ next: () => {
66
+ if (i >= this.length)
67
+ return { done: true, value: undefined };
68
+ const val = [i, this.at(i)];
69
+ i++;
70
+ return { done: false, value: val };
71
+ },
72
+ };
73
+ }
74
+ map(callbackfn, thisArg) {
75
+ const result = [];
76
+ for (let i = 0; i < this.length; i++) {
77
+ result.push(callbackfn.call(thisArg, this.at(i), i, this));
78
+ }
79
+ return result;
80
+ }
81
+ indexOf(searchElement, fromIndex = 0) {
82
+ for (let i = fromIndex; i < this.length; i++) {
83
+ if (this.values[i] === searchElement.value &&
84
+ this.fullWidths[i] === searchElement.fullWidth)
85
+ return i;
86
+ }
87
+ return -1;
88
+ }
89
+ at(index) {
90
+ if (index < 0) {
91
+ index = this.length + index;
92
+ }
93
+ if (index < 0 || index >= this.length)
94
+ return undefined;
95
+ return {
96
+ type: 'char',
97
+ value: this.values[index],
98
+ fullWidth: this.fullWidths[index],
99
+ styles: this.styles[index],
100
+ };
101
+ }
102
+ clone() {
103
+ const result = new StyledLines();
104
+ result.values = [...this.values];
105
+ result.fullWidths = [...this.fullWidths];
106
+ result.styles = [...this.styles];
107
+ return result;
108
+ }
109
+ }
110
+ //# sourceMappingURL=styled-lines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styled-lines.js","sourceRoot":"","sources":["../src/styled-lines.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,11 @@
3
3
  * Copyright 2026 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { type StyledChar } from '@alcalzone/ansi-tokenize';
6
+ import { StyledLine } from './styled-line.js';
7
7
  import { type Region } from './output.js';
8
8
  import { type InkOptions } from './components/AppContext.js';
9
9
  export default class TerminalBuffer {
10
- get lines(): StyledChar[][];
10
+ get lines(): StyledLine[];
11
11
  private _cachedLines?;
12
12
  private lastRootRegion?;
13
13
  private readonly serializer;
@@ -17,6 +17,7 @@ export default class TerminalBuffer {
17
17
  private readonly stdout;
18
18
  private lastRegions;
19
19
  private lastCursorPosition?;
20
+ private lastTree?;
20
21
  private lastOptions?;
21
22
  private optionsChanged;
22
23
  private columns;
@@ -32,6 +33,7 @@ export default class TerminalBuffer {
32
33
  backbufferUpdateDelay?: number;
33
34
  maxScrollbackLength?: number;
34
35
  forceScrollToBottomOnBackbufferRefresh?: boolean;
36
+ cacheToStyledCharacters?: boolean;
35
37
  });
36
38
  resize(columns: number, rows: number): void;
37
39
  updateOptions(options: InkOptions): void;