@jrichman/ink 7.0.0-beta → 7.0.0-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 (40) hide show
  1. package/build/components/StaticRender.d.ts +39 -2
  2. package/build/components/StaticRender.js +67 -10
  3. package/build/components/StaticRender.js.map +1 -1
  4. package/build/dom.d.ts +2 -4
  5. package/build/dom.js +20 -24
  6. package/build/dom.js.map +1 -1
  7. package/build/output.js +24 -55
  8. package/build/output.js.map +1 -1
  9. package/build/reconciler.js +0 -2
  10. package/build/reconciler.js.map +1 -1
  11. package/build/render-node-to-output.js +20 -57
  12. package/build/render-node-to-output.js.map +1 -1
  13. package/build/render-sticky.d.ts +13 -0
  14. package/build/render-sticky.js +92 -80
  15. package/build/render-sticky.js.map +1 -1
  16. package/build/render-text-node.js +6 -6
  17. package/build/render-text-node.js.map +1 -1
  18. package/build/squash-text-nodes.js +6 -15
  19. package/build/squash-text-nodes.js.map +1 -1
  20. package/build/styled-line.d.ts +0 -1
  21. package/build/styled-line.js +17 -55
  22. package/build/styled-line.js.map +1 -1
  23. package/build/terminal-buffer.d.ts +0 -1
  24. package/build/terminal-buffer.js +47 -157
  25. package/build/terminal-buffer.js.map +1 -1
  26. package/build/tokenize.d.ts +0 -18
  27. package/build/tokenize.js +1 -182
  28. package/build/tokenize.js.map +1 -1
  29. package/build/worker/render-worker.d.ts +1 -1
  30. package/build/worker/render-worker.js +2 -2
  31. package/build/worker/render-worker.js.map +1 -1
  32. package/build/worker/scene-manager.d.ts +1 -1
  33. package/build/worker/scene-manager.js +16 -6
  34. package/build/worker/scene-manager.js.map +1 -1
  35. package/build/worker/terminal-writer.js +12 -3
  36. package/build/worker/terminal-writer.js.map +1 -1
  37. package/build/worker/worker-entry.js +2 -1
  38. package/build/worker/worker-entry.js.map +1 -1
  39. package/package.json +3 -3
  40. package/readme.md +8 -27
@@ -1 +1 @@
1
- {"version":3,"file":"squash-text-nodes.js","sourceRoot":"","sources":["../src/squash-text-nodes.ts"],"names":[],"mappings":"AAKA,gFAAgF;AAChF,4EAA4E;AAC5E,qEAAqE;AACrE,EAAE;AACF,kGAAkG;AAClG,wFAAwF;AACxF,MAAM,eAAe,GAAG,CAAC,IAAgB,EAAU,EAAE;IACpD,MAAM,GAAG,GAAkB,IAAI,GAAG,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC;IAE/B,OAAO,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACrC,IAAgB,EAChB,GAAkB,EAClB,SAA4B,EACnB,EAAE;IACX,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,QAAQ,GAAkB,IAAI,GAAG,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAG,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC;IAEpC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,SAAS;QACV,CAAC;QAED,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC;QAE3C,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACpC,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC;YAC/B,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE;gBACvB,KAAK,EAAE,WAAW;gBAClB,GAAG,EAAE,WAAW,GAAG,QAAQ,CAAC,MAAM;aAClC,CAAC,CAAC;YACH,cAAc,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC;QAC3C,CAAC;aAAM,CAAC;YACP,IACC,SAAS,CAAC,QAAQ,KAAK,UAAU;gBACjC,SAAS,CAAC,QAAQ,KAAK,kBAAkB,EACxC,CAAC;gBACF,QAAQ,GAAG,sBAAsB,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACvE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE;oBACvB,KAAK,EAAE,WAAW;oBAClB,GAAG,EAAE,cAAc,CAAC,OAAO;iBAC3B,CAAC,CAAC;YACJ,CAAC;YAED,oFAAoF;YACpF,iFAAiF;YACjF,IACC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACnB,OAAO,SAAS,CAAC,kBAAkB,KAAK,UAAU,EACjD,CAAC;gBACF,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;QACF,CAAC;QAED,IAAI,IAAI,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QACzC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;YACV,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO;YAClC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,OAAO;SAC9B,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC;IAEjC,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"squash-text-nodes.js","sourceRoot":"","sources":["../src/squash-text-nodes.ts"],"names":[],"mappings":"AAKA,gFAAgF;AAChF,4EAA4E;AAC5E,qEAAqE;AACrE,EAAE;AACF,kGAAkG;AAClG,wFAAwF;AACxF,MAAM,eAAe,GAAG,CAAC,IAAgB,EAAU,EAAE;IACpD,MAAM,GAAG,GAAkB,IAAI,GAAG,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC;IAE/B,OAAO,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACrC,IAAgB,EAChB,GAAkB,EAClB,SAA4B,EACnB,EAAE;IACX,IAAI,IAAI,GAAG,EAAE,CAAC;IAEd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,SAAS;QACV,CAAC;QAED,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;QAEtC,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACpC,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE;gBAClB,KAAK,EAAE,WAAW;gBAClB,GAAG,EAAE,WAAW,GAAG,QAAQ,CAAC,MAAM;aAClC,CAAC,CAAC;YACH,SAAS,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC;QACtC,CAAC;aAAM,CAAC;YACP,IACC,SAAS,CAAC,QAAQ,KAAK,UAAU;gBACjC,SAAS,CAAC,QAAQ,KAAK,kBAAkB,EACxC,CAAC;gBACF,QAAQ,GAAG,sBAAsB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC7D,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE;oBAClB,KAAK,EAAE,WAAW;oBAClB,GAAG,EAAE,SAAS,CAAC,OAAO;iBACtB,CAAC,CAAC;YACJ,CAAC;YAED,oFAAoF;YACpF,iFAAiF;YACjF,IACC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACnB,OAAO,SAAS,CAAC,kBAAkB,KAAK,UAAU,EACjD,CAAC;gBACF,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;QACF,CAAC;QAED,IAAI,IAAI,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -33,7 +33,6 @@ export declare class StyledLine {
33
33
  setInverted(index: number, inverted: boolean): void;
34
34
  setBackgroundColor(index: number, color: string | undefined): void;
35
35
  setForegroundColor(index: number, color: string | undefined): void;
36
- replaceAt(index: number, chars: StyledLine): void;
37
36
  setChar(index: number, value: string, formatFlags: number, fgColor?: string, bgColor?: string, link?: string): void;
38
37
  pushChar(value: string, formatFlags: number, fgColor?: string, bgColor?: string, link?: string): void;
39
38
  clone(): StyledLine;
@@ -15,6 +15,12 @@ function hasAnyStyles(formatFlags, fgColor, bgColor, link) {
15
15
  function spanHasStyles(span) {
16
16
  return hasAnyStyles(span.formatFlags, span.fgColor, span.bgColor, span.link);
17
17
  }
18
+ function spanHasStylesMatch(span, formatFlags, fgColor, bgColor, link) {
19
+ return (span.formatFlags === formatFlags &&
20
+ span.fgColor === fgColor &&
21
+ span.bgColor === bgColor &&
22
+ span.link === link);
23
+ }
18
24
  function spansHaveStyles(spans) {
19
25
  if (!spans)
20
26
  return false;
@@ -213,25 +219,6 @@ export class StyledLine {
213
219
  }
214
220
  this._spansDirty = true;
215
221
  }
216
- replaceAt(index, chars) {
217
- if (chars.length === 0 || index >= this.length)
218
- return;
219
- this.ensureInitialized();
220
- chars.ensureInitialized();
221
- const start = Math.max(0, index);
222
- const end = Math.min(this.length, start + chars.length);
223
- const replacementLen = end - start;
224
- const slicedChars = chars.length > replacementLen ? chars.slice(0, replacementLen) : chars;
225
- const left = this.slice(0, start);
226
- const right = this.slice(end);
227
- const combined = left.combine(slicedChars, right);
228
- this.length = combined.length;
229
- this.text = combined.text;
230
- this.charData = combined.charData;
231
- this.spans = combined.spans;
232
- this._spansDirty = combined._spansDirty;
233
- this._cachedTrimmedLength = undefined;
234
- }
235
222
  // eslint-disable-next-line max-params
236
223
  setChar(index, value, formatFlags, fgColor, bgColor, link) {
237
224
  if (index < 0 || index >= this.length)
@@ -292,20 +279,14 @@ export class StyledLine {
292
279
  currentOffset += s.length;
293
280
  }
294
281
  if (span) {
295
- const isMatch = span.formatFlags === cleanFormatFlags &&
296
- span.fgColor === fgColor &&
297
- span.bgColor === bgColor &&
298
- span.link === link;
282
+ const isMatch = spanHasStylesMatch(span, cleanFormatFlags, fgColor, bgColor, link);
299
283
  if (isMatch) {
300
284
  return; // Style already matches, no need to touch spans
301
285
  }
302
286
  // If it's the very first character of the span, check if we can merge with the previous span
303
287
  if (index === currentOffset && spanIndex > 0) {
304
288
  const prevSpan = this.spans[spanIndex - 1];
305
- const prevMatch = prevSpan.formatFlags === cleanFormatFlags &&
306
- prevSpan.fgColor === fgColor &&
307
- prevSpan.bgColor === bgColor &&
308
- prevSpan.link === link;
289
+ const prevMatch = spanHasStylesMatch(prevSpan, cleanFormatFlags, fgColor, bgColor, link);
309
290
  if (prevMatch) {
310
291
  prevSpan.length += 1;
311
292
  if (span.length === 1) {
@@ -322,10 +303,7 @@ export class StyledLine {
322
303
  if (index === currentOffset + span.length - 1 &&
323
304
  spanIndex < this.spans.length - 1) {
324
305
  const nextSpan = this.spans[spanIndex + 1];
325
- const nextMatch = nextSpan.formatFlags === cleanFormatFlags &&
326
- nextSpan.fgColor === fgColor &&
327
- nextSpan.bgColor === bgColor &&
328
- nextSpan.link === link;
306
+ const nextMatch = spanHasStylesMatch(nextSpan, cleanFormatFlags, fgColor, bgColor, link);
329
307
  if (nextMatch) {
330
308
  nextSpan.length += 1;
331
309
  if (span.length === 1) {
@@ -520,27 +498,18 @@ export class StyledLine {
520
498
  return result;
521
499
  }
522
500
  getTrimmedLength() {
523
- if (this._cachedTrimmedLength !== undefined) {
524
- return this._cachedTrimmedLength;
525
- }
526
- if (this.length === 0) {
527
- this._cachedTrimmedLength = 0;
501
+ if (this.length === 0)
528
502
  return 0;
529
- }
530
- if (this.text === undefined) {
531
- this._cachedTrimmedLength = 0;
503
+ if (this.text === undefined)
532
504
  return 0;
533
- }
534
505
  this.ensureSpansMerged();
535
506
  let currentIdx = this.length - 1;
536
- let trimmedLength = 0;
537
507
  if (this.spans) {
538
508
  for (let s = this.spans.length - 1; s >= 0; s--) {
539
509
  const span = this.spans[s];
540
510
  const hasStyles = spanHasStyles(span);
541
511
  if (hasStyles) {
542
- trimmedLength = currentIdx + 1;
543
- break;
512
+ return currentIdx + 1;
544
513
  }
545
514
  for (let i = 0; i < span.length; i++) {
546
515
  if (this.charData) {
@@ -549,18 +518,14 @@ export class StyledLine {
549
518
  ? this.charData[currentIdx + 1] & OFFSET_MASK
550
519
  : this.text.length;
551
520
  if (end - start !== 1 || this.text[start] !== ' ') {
552
- trimmedLength = currentIdx + 1;
553
- break;
521
+ return currentIdx + 1;
554
522
  }
555
523
  }
556
524
  else if (this.text[currentIdx] !== ' ') {
557
- trimmedLength = currentIdx + 1;
558
- break;
525
+ return currentIdx + 1;
559
526
  }
560
527
  currentIdx--;
561
528
  }
562
- if (trimmedLength > 0)
563
- break;
564
529
  }
565
530
  }
566
531
  else {
@@ -571,19 +536,16 @@ export class StyledLine {
571
536
  ? this.charData[currentIdx + 1] & OFFSET_MASK
572
537
  : this.text.length;
573
538
  if (end - start !== 1 || this.text[start] !== ' ') {
574
- trimmedLength = currentIdx + 1;
575
- break;
539
+ return currentIdx + 1;
576
540
  }
577
541
  }
578
542
  else if (this.text[currentIdx] !== ' ') {
579
- trimmedLength = currentIdx + 1;
580
- break;
543
+ return currentIdx + 1;
581
544
  }
582
545
  currentIdx--;
583
546
  }
584
547
  }
585
- this._cachedTrimmedLength = trimmedLength;
586
- return trimmedLength;
548
+ return 0;
587
549
  }
588
550
  trimEnd() {
589
551
  const trimmedLength = this.getTrimmedLength();
@@ -1 +1 @@
1
- {"version":3,"file":"styled-line.js","sourceRoot":"","sources":["../src/styled-line.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"styled-line.js","sourceRoot":"","sources":["../src/styled-line.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,6 @@ export default class TerminalBuffer {
51
51
  resetLinesUpdated(): void;
52
52
  destroy(): void;
53
53
  private sendToWorker;
54
- private buildCachedRegionNode;
55
54
  private diffRegion;
56
55
  private diffLines;
57
56
  private sendEdits;
@@ -11,9 +11,8 @@ import { StyledLine } from './styled-line.js';
11
11
  import { Serializer } from './serialization.js';
12
12
  import { TerminalBufferWorker } from './worker/render-worker.js';
13
13
  import { linesEqual } from './worker/terminal-writer.js';
14
- import { flattenRegion, regionLayoutProperties, copyRegionProperty, treesEqual, RegionReference, } from './output.js';
14
+ import { flattenRegion, regionLayoutProperties, copyRegionProperty, treesEqual, } from './output.js';
15
15
  const debugEdits = false;
16
- const emptyStyledLine = new StyledLine();
17
16
  export default class TerminalBuffer {
18
17
  get lines() {
19
18
  if (this._cachedLines) {
@@ -211,44 +210,18 @@ export default class TerminalBuffer {
211
210
  const currentRegionsMap = new Map();
212
211
  const nodeIdToElement = new Map();
213
212
  const updates = [];
214
- const lastRegionNodes = new Map();
215
- if (this.lastTree) {
216
- const populateLastNodes = (n) => {
217
- lastRegionNodes.set(n.id, n);
218
- for (const c of n.children)
219
- populateLastNodes(c);
220
- };
221
- populateLastNodes(this.lastTree);
222
- }
213
+ // Traverse tree to collect all current regions and build structure
223
214
  const buildTree = (r) => {
224
215
  currentRegionsMap.set(r.id, r);
216
+ // Populate nodeIdToElement map
225
217
  if (r.nodeId !== undefined && r.node !== undefined) {
226
218
  nodeIdToElement.set(r.nodeId, r.node);
227
219
  }
220
+ // Diff this region
228
221
  const update = this.diffRegion(r, nodeIdToElement);
229
222
  if (update) {
230
223
  updates.push(update);
231
224
  }
232
- // Fast path for unchanged cached static render regions and their subtrees
233
- if (!update) {
234
- const isCurrentRef = r instanceof RegionReference;
235
- const lastRegion = this.lastRegions.get(r.id);
236
- const isLastRef = lastRegion instanceof RegionReference;
237
- if (isCurrentRef && isLastRef && r.target === lastRegion.target) {
238
- const cachedNode = lastRegionNodes.get(r.id);
239
- if (cachedNode) {
240
- const populateDescendants = (n) => {
241
- for (const c of n.children) {
242
- const descRegion = this.lastRegions.get(c.id);
243
- currentRegionsMap.set(c.id, descRegion);
244
- populateDescendants(c);
245
- }
246
- };
247
- populateDescendants(cachedNode);
248
- return cachedNode;
249
- }
250
- }
251
- }
252
225
  return {
253
226
  id: r.id,
254
227
  children: r.children.map(child => buildTree(child)),
@@ -257,12 +230,6 @@ export default class TerminalBuffer {
257
230
  const tree = buildTree(root);
258
231
  const treeChanged = !this.lastTree || !treesEqual(this.lastTree, tree);
259
232
  this.lastTree = tree;
260
- const deletedIds = [];
261
- for (const id of this.lastRegions.keys()) {
262
- if (!currentRegionsMap.has(id)) {
263
- deletedIds.push(id);
264
- }
265
- }
266
233
  // Update local state to current frame
267
234
  this.lastRegions = currentRegionsMap;
268
235
  const cursorChanged = cursorPosition !== this.lastCursorPosition &&
@@ -276,7 +243,7 @@ export default class TerminalBuffer {
276
243
  this.optionsChanged ||
277
244
  treeChanged) {
278
245
  this.optionsChanged = false;
279
- this.sendEdits(tree, updates, cursorPosition, deletedIds);
246
+ this.sendEdits(tree, updates, cursorPosition);
280
247
  return true;
281
248
  }
282
249
  return false;
@@ -383,13 +350,6 @@ export default class TerminalBuffer {
383
350
  }
384
351
  }
385
352
  }
386
- buildCachedRegionNode(region, currentRegionsMap) {
387
- currentRegionsMap.set(region.id, region);
388
- return {
389
- id: region.id,
390
- children: region.children.map(child => this.buildCachedRegionNode(child, currentRegionsMap)),
391
- };
392
- }
393
353
  diffRegion(current, nodeIdToElement) {
394
354
  const last = this.lastRegions.get(current.id);
395
355
  const update = { id: current.id };
@@ -424,108 +384,14 @@ export default class TerminalBuffer {
424
384
  };
425
385
  return update;
426
386
  }
427
- const isCurrentRef = current instanceof RegionReference;
428
- const isLastRef = last instanceof RegionReference;
429
- if (isCurrentRef &&
430
- isLastRef &&
431
- current.target === last.target &&
432
- current.x === last.x &&
433
- current.y === last.y &&
434
- current.overflowToBackbuffer === last.overflowToBackbuffer &&
435
- current.lines === last.lines &&
436
- current.linesOffsetY === last.linesOffsetY) {
437
- return undefined;
438
- }
439
387
  // Check properties
440
- if (current.x !== last.x) {
441
- update.x = current.x;
442
- hasChanges = true;
443
- }
444
- if (current.y !== last.y) {
445
- update.y = current.y;
446
- hasChanges = true;
447
- }
448
- if (current.width !== last.width) {
449
- update.width = current.width;
450
- hasChanges = true;
451
- }
452
- if (current.height !== last.height) {
453
- update.height = current.height;
454
- hasChanges = true;
455
- }
456
- if (current.scrollTop !== last.scrollTop) {
457
- update.scrollTop = current.scrollTop;
458
- hasChanges = true;
459
- }
460
- if (current.scrollLeft !== last.scrollLeft) {
461
- update.scrollLeft = current.scrollLeft;
462
- hasChanges = true;
463
- }
464
- if (current.scrollHeight !== last.scrollHeight) {
465
- update.scrollHeight = current.scrollHeight;
466
- hasChanges = true;
467
- }
468
- if (current.scrollWidth !== last.scrollWidth) {
469
- update.scrollWidth = current.scrollWidth;
470
- hasChanges = true;
471
- }
472
- if (current.isScrollable !== last.isScrollable) {
473
- update.isScrollable = current.isScrollable;
474
- hasChanges = true;
475
- }
476
- if (current.isVerticallyScrollable !== last.isVerticallyScrollable) {
477
- update.isVerticallyScrollable = current.isVerticallyScrollable;
478
- hasChanges = true;
479
- }
480
- if (current.isHorizontallyScrollable !== last.isHorizontallyScrollable) {
481
- update.isHorizontallyScrollable = current.isHorizontallyScrollable;
482
- hasChanges = true;
483
- }
484
- if (current.scrollbarVisible !== last.scrollbarVisible) {
485
- update.scrollbarVisible = current.scrollbarVisible;
486
- hasChanges = true;
487
- }
488
- if (current.overflowToBackbuffer !== last.overflowToBackbuffer) {
489
- update.overflowToBackbuffer = current.overflowToBackbuffer;
490
- hasChanges = true;
491
- }
492
- if (current.marginRight !== last.marginRight) {
493
- update.marginRight = current.marginRight;
494
- hasChanges = true;
495
- }
496
- if (current.marginBottom !== last.marginBottom) {
497
- update.marginBottom = current.marginBottom;
498
- hasChanges = true;
499
- }
500
- if (current.scrollbarThumbColor !== last.scrollbarThumbColor) {
501
- update.scrollbarThumbColor = current.scrollbarThumbColor;
502
- hasChanges = true;
503
- }
504
- if (current.backgroundColor !== last.backgroundColor) {
505
- update.backgroundColor = current.backgroundColor;
506
- hasChanges = true;
507
- }
508
- if (current.opaque !== last.opaque) {
509
- update.opaque = current.opaque;
510
- hasChanges = true;
511
- }
512
- if (current.borderTop !== last.borderTop) {
513
- update.borderTop = current.borderTop;
514
- hasChanges = true;
515
- }
516
- if (current.borderBottom !== last.borderBottom) {
517
- update.borderBottom = current.borderBottom;
518
- hasChanges = true;
519
- }
520
- if (current.linesOffsetY !== last.linesOffsetY) {
521
- update.linesOffsetY = current.linesOffsetY;
522
- hasChanges = true;
388
+ for (const key of regionLayoutProperties) {
389
+ if (current[key] !== last[key]) {
390
+ copyRegionProperty(update, current, key);
391
+ hasChanges = true;
392
+ }
523
393
  }
524
- // Deep compare sticky headers? For now assuming reference change or simple length change is enough,
525
- // or we can rely on the fact they are rebuilt every frame.
526
- // Let's just resend if length differs or assume they might change.
527
- // To be safe and simple: always send sticky headers if they exist or existed.
528
- if (current.stickyHeaders.length > 0 || last.stickyHeaders.length > 0) {
394
+ if (!stickyHeadersEqual(current.stickyHeaders, last.stickyHeaders)) {
529
395
  update.stickyHeaders = current.stickyHeaders.map(h => ({
530
396
  ...h,
531
397
  node: undefined,
@@ -615,25 +481,18 @@ export default class TerminalBuffer {
615
481
  if (chunkStart === -1) {
616
482
  chunkStart = y;
617
483
  }
618
- // If newLine is undefined but oldLine is not, we still need to send an empty line to clear it.
619
- // However, if newLine is genuinely undefined and we're pushing it into chunkLines,
620
- // the serializer handles undefined elements by treating them as empty. Let's cast to
621
- // any to bypass TS error or use a shared empty StyledLine.
622
- // For now, since chunkLines is StyledLine[], we can push an empty one if we don't have it.
623
- // Actually, we can push newLine as it is if we allow undefined in the type, but since
624
- // it's defined as StyledLine[], we'll use a shared empty instance to avoid allocating.
625
- chunkLines.push(newLine ?? emptyStyledLine);
484
+ chunkLines.push(newLine ?? new StyledLine());
626
485
  if (debugEdits) {
627
- chunkSource.push(oldLine ?? emptyStyledLine);
486
+ chunkSource.push(oldLine ?? new StyledLine());
628
487
  }
629
488
  }
630
489
  }
631
490
  flushChunk();
632
491
  return updates;
633
492
  }
634
- sendEdits(tree, updates, cursorPosition, deletedIds = []) {
493
+ sendEdits(tree, updates, cursorPosition) {
635
494
  if (this.workerInstance) {
636
- this.workerInstance.update(tree, updates, cursorPosition, deletedIds);
495
+ this.workerInstance.update(tree, updates, cursorPosition);
637
496
  }
638
497
  else if (this.worker?.connected) {
639
498
  try {
@@ -642,7 +501,6 @@ export default class TerminalBuffer {
642
501
  tree,
643
502
  updates,
644
503
  cursorPosition,
645
- deletedIds,
646
504
  });
647
505
  }
648
506
  catch (error) {
@@ -651,4 +509,36 @@ export default class TerminalBuffer {
651
509
  }
652
510
  }
653
511
  }
512
+ function stickyHeadersEqual(a, b) {
513
+ if (a.length !== b.length)
514
+ return false;
515
+ for (let i = 0; i < a.length; i++) {
516
+ const ha = a[i];
517
+ const hb = b[i];
518
+ if (ha.nodeId !== hb.nodeId ||
519
+ ha.x !== hb.x ||
520
+ ha.y !== hb.y ||
521
+ ha.naturalRow !== hb.naturalRow ||
522
+ ha.startRow !== hb.startRow ||
523
+ ha.endRow !== hb.endRow ||
524
+ ha.scrollContainerId !== hb.scrollContainerId ||
525
+ ha.isStuckOnly !== hb.isStuckOnly ||
526
+ ha.type !== hb.type ||
527
+ ha.maxStuckY !== hb.maxStuckY ||
528
+ ha.minStuckY !== hb.minStuckY ||
529
+ ha.relativeX !== hb.relativeX ||
530
+ ha.relativeY !== hb.relativeY ||
531
+ ha.height !== hb.height ||
532
+ ha.parentRelativeTop !== hb.parentRelativeTop ||
533
+ ha.parentHeight !== hb.parentHeight ||
534
+ ha.parentBorderTop !== hb.parentBorderTop ||
535
+ ha.parentBorderBottom !== hb.parentBorderBottom ||
536
+ ha.lines !== hb.lines ||
537
+ ha.stuckLines !== hb.stuckLines ||
538
+ ha.styledOutput !== hb.styledOutput) {
539
+ return false;
540
+ }
541
+ }
542
+ return true;
543
+ }
654
544
  //# sourceMappingURL=terminal-buffer.js.map