@valyrianjs/terminal 0.2.1 → 0.2.3

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 (89) hide show
  1. package/dist/ansi.d.ts.map +1 -1
  2. package/dist/ansi.js +177 -17
  3. package/dist/ansi.js.map +1 -1
  4. package/dist/events.d.ts.map +1 -1
  5. package/dist/events.js +4 -0
  6. package/dist/events.js.map +1 -1
  7. package/dist/frame-style.d.ts +7 -0
  8. package/dist/frame-style.d.ts.map +1 -0
  9. package/dist/frame-style.js +27 -0
  10. package/dist/frame-style.js.map +1 -0
  11. package/dist/layout.d.ts +5 -1
  12. package/dist/layout.d.ts.map +1 -1
  13. package/dist/layout.js +53 -23
  14. package/dist/layout.js.map +1 -1
  15. package/dist/mouse.d.ts.map +1 -1
  16. package/dist/mouse.js +8 -1
  17. package/dist/mouse.js.map +1 -1
  18. package/dist/render-internal.d.ts +10 -0
  19. package/dist/render-internal.d.ts.map +1 -0
  20. package/dist/render-internal.js +1295 -0
  21. package/dist/render-internal.js.map +1 -0
  22. package/dist/render.d.ts.map +1 -1
  23. package/dist/render.js +13 -1205
  24. package/dist/render.js.map +1 -1
  25. package/dist/session.d.ts.map +1 -1
  26. package/dist/session.js +78 -4
  27. package/dist/session.js.map +1 -1
  28. package/dist/text.d.ts +7 -0
  29. package/dist/text.d.ts.map +1 -1
  30. package/dist/text.js +125 -0
  31. package/dist/text.js.map +1 -1
  32. package/dist/theme.d.ts.map +1 -1
  33. package/dist/theme.js +18 -2
  34. package/dist/theme.js.map +1 -1
  35. package/dist/types.d.ts +3 -2
  36. package/dist/types.d.ts.map +1 -1
  37. package/docs/api-reference.md +6 -3
  38. package/docs/cookbook.md +1 -1
  39. package/docs/interaction-model.md +5 -5
  40. package/docs/primitive-gallery.md +4 -4
  41. package/examples/basic.tsx +22 -0
  42. package/examples/cli.tsx +55 -0
  43. package/examples/demo.tsx +98 -0
  44. package/examples/docs/background-fill.tsx +107 -0
  45. package/examples/docs/component-composition.tsx +140 -0
  46. package/examples/docs/cursor.tsx +121 -0
  47. package/examples/docs/employees-list.tsx +138 -0
  48. package/examples/docs/hello.tsx +98 -0
  49. package/examples/docs/interactive-note.tsx +111 -0
  50. package/examples/docs/module-api-dashboard.tsx +307 -0
  51. package/examples/docs/module-flux-store.tsx +181 -0
  52. package/examples/docs/module-form-workflow.tsx +339 -0
  53. package/examples/docs/module-forms.tsx +218 -0
  54. package/examples/docs/module-money.tsx +175 -0
  55. package/examples/docs/module-native-store.tsx +188 -0
  56. package/examples/docs/module-pulses.tsx +142 -0
  57. package/examples/docs/module-query.tsx +209 -0
  58. package/examples/docs/module-request.tsx +194 -0
  59. package/examples/docs/module-state-workbench.tsx +283 -0
  60. package/examples/docs/module-tasks.tsx +223 -0
  61. package/examples/docs/module-translate.tsx +194 -0
  62. package/examples/docs/module-utils.tsx +168 -0
  63. package/examples/docs/module-valyrian-core.tsx +159 -0
  64. package/examples/docs/pizza-builder.tsx +463 -0
  65. package/examples/docs/primitive-activity-console.tsx +113 -0
  66. package/examples/docs/primitive-command-panel.tsx +186 -0
  67. package/examples/docs/primitive-data-explorer.tsx +155 -0
  68. package/examples/docs/primitive-input-workbench.tsx +128 -0
  69. package/examples/docs/primitive-layout-shell.tsx +115 -0
  70. package/examples/docs/responsive-split.tsx +186 -0
  71. package/examples/docs/style-system.tsx +209 -0
  72. package/examples/docs/theme-colors.tsx +225 -0
  73. package/examples/docs/virtualized-list-workbench.tsx +232 -0
  74. package/examples/opencode-dogfood-app.tsx +215 -0
  75. package/examples/opencode-dogfood-lifecycle.tsx +194 -0
  76. package/examples/opencode-dogfood.tsx +11 -0
  77. package/llms-full.txt +16 -13
  78. package/package.json +3 -2
  79. package/src/ansi.ts +207 -17
  80. package/src/events.ts +2 -0
  81. package/src/frame-style.ts +36 -0
  82. package/src/layout.ts +57 -24
  83. package/src/mouse.ts +10 -1
  84. package/src/render-internal.ts +1441 -0
  85. package/src/render.ts +14 -1324
  86. package/src/session.ts +99 -12
  87. package/src/text.ts +160 -0
  88. package/src/theme.ts +22 -2
  89. package/src/types.ts +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../src/ansi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAElG,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAC3D,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,2BAA2B,4CAA4C,CAAC;AACrF,eAAO,MAAM,4BAA4B,4CAA4C,CAAC;AAEtF,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,UAE9C;AA2MD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,GAAE,gBAAqB,UAEpF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,KAAK,GAAE,iBAAiB,EAAO,EAAE,OAAO,GAAE,gBAAqB,UAK1I;AAED,wBAAgB,mBAAmB,CACjC,iBAAiB,EAAE,MAAM,EAAE,EAC3B,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,OAAO,GAAE,gBAAqB,GAC7B,mBAAmB,CA0BrB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,gBAAqB,IAGtC,OAAO,MAAM,EAAE,EAAE,QAAQ,cAAc,GAAG,IAAI,EAAE,QAAO,iBAAiB,EAAO,YAM3G"}
1
+ {"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../src/ansi.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAElG,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAC3D,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,2BAA2B,4CAA4C,CAAC;AACrF,eAAO,MAAM,4BAA4B,4CAA4C,CAAC;AAEtF,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,UAE9C;AAwMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,GAAE,gBAAqB,UAEpF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,KAAK,GAAE,iBAAiB,EAAO,EAAE,OAAO,GAAE,gBAAqB,UAK1I;AAkID,wBAAgB,mBAAmB,CACjC,iBAAiB,EAAE,MAAM,EAAE,EAC3B,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,OAAO,GAAE,gBAAqB,GAC7B,mBAAmB,CA0BrB;AA+DD,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,gBAAqB,IAKtC,OAAO,MAAM,EAAE,EAAE,QAAQ,cAAc,GAAG,IAAI,EAAE,QAAO,iBAAiB,EAAO,YAO3G"}
package/dist/ansi.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { dropTerminalCells, terminalCellWidth, terminalGraphemes } from "./text.js";
1
2
  import { resolveTerminalStyle, resolveTerminalStyleToken } from "./theme.js";
2
3
  export const ANSI_ENTER_ALTERNATE_SCREEN = "\u001b[?1049h";
3
4
  export const ANSI_EXIT_ALTERNATE_SCREEN = "\u001b[?1049l";
@@ -85,17 +86,16 @@ function renderAnsiLine(line, spans, y, theme) {
85
86
  let visibleColumn = 1;
86
87
  const rowSpans = lineSpans(spans, y);
87
88
  let activeSpanIndex = 0;
88
- for (let i = 0; i < line.length; i += 1) {
89
+ for (const grapheme of terminalGraphemes(line)) {
89
90
  while (rowSpans[activeSpanIndex]?.x1 === visibleColumn) {
90
91
  output += spanAnsiOpen(rowSpans[activeSpanIndex], theme);
91
92
  activeSpanIndex += 1;
92
93
  }
93
- const char = line[i];
94
- if (char === "|") {
94
+ if (grapheme === "|") {
95
95
  continue;
96
96
  }
97
- output += char;
98
- visibleColumn += 1;
97
+ output += grapheme;
98
+ visibleColumn += terminalCellWidth(grapheme);
99
99
  let closedSpan = false;
100
100
  for (const span of rowSpans) {
101
101
  if (span.x2 === visibleColumn) {
@@ -111,7 +111,7 @@ function renderAnsiLine(line, spans, y, theme) {
111
111
  closedSpan = true;
112
112
  }
113
113
  }
114
- if (closedSpan && visibleColumn <= line.length && line[visibleColumn - 1] === " ") {
114
+ if (closedSpan && visibleColumn <= terminalCellWidth(line)) {
115
115
  for (const span of rowSpans) {
116
116
  if (span.x1 < visibleColumn && span.x2 > visibleColumn) {
117
117
  output += spanAnsiOpen(span, theme);
@@ -152,21 +152,19 @@ function formatPlainLine(line, spans, y, theme) {
152
152
  && !token?.plainSuffix
153
153
  && span.x1 === 1
154
154
  && y === firstFallbackFocusY
155
- && span.x2 <= line.length + 1
156
155
  && !line.trimStart().startsWith(">")
157
156
  && !line.includes("|")
158
157
  && !line.includes("[>");
159
158
  return {
160
159
  ...span,
161
- x2: fallbackFocusMarker ? Math.min(span.x2, line.trimEnd().length + 1) : span.x2,
160
+ x2: fallbackFocusMarker ? Math.min(span.x2, terminalCellWidth(line.trimEnd()) + 1) : span.x2,
162
161
  plainPrefix: token?.plainPrefix ?? span.style?.plainPrefix ?? (fallbackFocusMarker ? ">" : ""),
163
162
  plainSuffix: token?.plainSuffix ?? span.style?.plainSuffix ?? (fallbackFocusMarker ? "<" : "")
164
163
  };
165
164
  }).filter((span) => Boolean(span.plainPrefix || span.plainSuffix));
166
- for (let i = 0; i < line.length; i += 1) {
167
- const char = line[i];
168
- if (char === "|") {
169
- output += char;
165
+ for (const grapheme of terminalGraphemes(line)) {
166
+ if (grapheme === "|") {
167
+ output += grapheme;
170
168
  continue;
171
169
  }
172
170
  for (const span of rowSpans) {
@@ -174,8 +172,8 @@ function formatPlainLine(line, spans, y, theme) {
174
172
  output += span.plainPrefix;
175
173
  }
176
174
  }
177
- output += char;
178
- visibleColumn += 1;
175
+ output += grapheme;
176
+ visibleColumn += terminalCellWidth(grapheme);
179
177
  for (const span of rowSpans) {
180
178
  if (span.x2 === visibleColumn) {
181
179
  if (span.kind !== "focus") {
@@ -205,6 +203,117 @@ export function toAnsiFrame(lines, cursor, spans = [], options = {}) {
205
203
  const cursorCode = cursor ? `\u001b[${cursor.y};${cursor.x}H${showCursor ? ANSI_SHOW_CURSOR : ""}` : showCursor ? ANSI_SHOW_CURSOR : "";
206
204
  return `\u001b[?25l\u001b[H${ansiLines.join("\n")}${cursorCode}`;
207
205
  }
206
+ function commonPrefixCellWidth(previousLine, nextLine) {
207
+ const previousGraphemes = terminalGraphemes(previousLine);
208
+ const nextGraphemes = terminalGraphemes(nextLine);
209
+ const length = Math.min(previousGraphemes.length, nextGraphemes.length);
210
+ let width = 0;
211
+ for (let index = 0; index < length; index += 1) {
212
+ if (previousGraphemes[index] !== nextGraphemes[index]) {
213
+ return width;
214
+ }
215
+ if (previousGraphemes[index] !== "|") {
216
+ width += terminalCellWidth(previousGraphemes[index]);
217
+ }
218
+ }
219
+ return width;
220
+ }
221
+ function renderAnsiLineSuffix(line, spans, y, startColumn, theme) {
222
+ let output = "";
223
+ let visibleColumn = Math.max(1, startColumn);
224
+ const rowSpans = lineSpans(spans, y);
225
+ let activeSpanIndex = rowSpans.findIndex((span) => span.x1 >= visibleColumn);
226
+ if (activeSpanIndex < 0) {
227
+ activeSpanIndex = rowSpans.length;
228
+ }
229
+ for (const span of rowSpans) {
230
+ if (span.x1 <= visibleColumn && span.x2 > visibleColumn) {
231
+ output += spanAnsiOpen(span, theme);
232
+ }
233
+ }
234
+ for (const grapheme of terminalGraphemes(dropTerminalCells(line, visibleColumn - 1))) {
235
+ while (rowSpans[activeSpanIndex]?.x1 === visibleColumn) {
236
+ output += spanAnsiOpen(rowSpans[activeSpanIndex], theme);
237
+ activeSpanIndex += 1;
238
+ }
239
+ if (grapheme === "|") {
240
+ continue;
241
+ }
242
+ output += grapheme;
243
+ visibleColumn += terminalCellWidth(grapheme);
244
+ let closedSpan = false;
245
+ for (const span of rowSpans) {
246
+ if (span.x2 === visibleColumn) {
247
+ if (span.kind !== "focus") {
248
+ output += spanAnsiClose(span, theme);
249
+ closedSpan = true;
250
+ }
251
+ }
252
+ }
253
+ for (const span of rowSpans) {
254
+ if (span.x2 === visibleColumn && span.kind === "focus") {
255
+ output += spanAnsiClose(span, theme);
256
+ closedSpan = true;
257
+ }
258
+ }
259
+ if (closedSpan && visibleColumn <= terminalCellWidth(line)) {
260
+ for (const span of rowSpans) {
261
+ if (span.x1 < visibleColumn && span.x2 > visibleColumn) {
262
+ output += spanAnsiOpen(span, theme);
263
+ }
264
+ }
265
+ }
266
+ }
267
+ for (const span of rowSpans) {
268
+ if (span.x1 < visibleColumn && span.x2 > visibleColumn) {
269
+ if (span.kind !== "focus") {
270
+ output += spanAnsiClose(span, theme);
271
+ }
272
+ }
273
+ }
274
+ for (const span of rowSpans) {
275
+ if (span.x1 < visibleColumn && span.x2 > visibleColumn && span.kind === "focus") {
276
+ output += spanAnsiClose(span, theme);
277
+ }
278
+ }
279
+ return output;
280
+ }
281
+ function sameSpanStyle(previous, next) {
282
+ if (previous === next) {
283
+ return true;
284
+ }
285
+ if (!previous || !next) {
286
+ return false;
287
+ }
288
+ return previous.color === next.color
289
+ && previous.background === next.background
290
+ && previous.plainPrefix === next.plainPrefix
291
+ && previous.plainSuffix === next.plainSuffix
292
+ && JSON.stringify(previous.border) === JSON.stringify(next.border)
293
+ && JSON.stringify(previous.padding) === JSON.stringify(next.padding);
294
+ }
295
+ function sameLineSpans(previousSpans, nextSpans, y) {
296
+ if (previousSpans.length === 0 && nextSpans.length === 0) {
297
+ return true;
298
+ }
299
+ const previousRowSpans = lineSpans(previousSpans, y);
300
+ const nextRowSpans = lineSpans(nextSpans, y);
301
+ if (previousRowSpans.length !== nextRowSpans.length) {
302
+ return false;
303
+ }
304
+ for (let index = 0; index < previousRowSpans.length; index += 1) {
305
+ const previous = previousRowSpans[index];
306
+ const next = nextRowSpans[index];
307
+ if (previous.kind !== next.kind
308
+ || previous.x1 !== next.x1
309
+ || previous.x2 !== next.x2
310
+ || previous.y !== next.y
311
+ || !sameSpanStyle(previous.style, next.style)) {
312
+ return false;
313
+ }
314
+ }
315
+ return true;
316
+ }
208
317
  export function createAnsiFrameDiff(previousAnsiLines, nextAnsiLines, cursor, options = {}) {
209
318
  const changedLineIndexes = [];
210
319
  const writes = ["\u001b[?25l"];
@@ -229,12 +338,63 @@ export function createAnsiFrameDiff(previousAnsiLines, nextAnsiLines, cursor, op
229
338
  restoresCursor: Boolean(cursor)
230
339
  };
231
340
  }
341
+ function createAnsiFramePatch(previousLines, previousAnsiLines, nextLines, previousSpans, nextSpans, cursor, options = {}) {
342
+ const nextAnsiLines = [];
343
+ const changedLineIndexes = [];
344
+ const writes = ["\u001b[?25l"];
345
+ const maxLines = Math.max(previousAnsiLines.length, nextLines.length);
346
+ for (let i = 0; i < maxLines; i += 1) {
347
+ const previousLine = previousLines[i] || "";
348
+ const nextLine = nextLines[i] || "";
349
+ const previousAnsiLine = previousAnsiLines[i] || "";
350
+ const spansMatch = sameLineSpans(previousSpans, nextSpans, i + 1);
351
+ const nextAnsiLine = i < nextLines.length && previousLine === nextLine && spansMatch
352
+ ? previousAnsiLine
353
+ : i < nextLines.length
354
+ ? renderAnsiLine(nextLine, nextSpans, i + 1, options.theme)
355
+ : "";
356
+ nextAnsiLines[i] = nextAnsiLine;
357
+ if (nextAnsiLine === previousAnsiLine) {
358
+ continue;
359
+ }
360
+ changedLineIndexes.push(i);
361
+ const canPatchSuffix = cursor?.y === i + 1
362
+ && lineSpans(previousSpans, i + 1).length === 0
363
+ && lineSpans(nextSpans, i + 1).length === 0;
364
+ const prefixWidth = canPatchSuffix && i < previousLines.length && i < nextLines.length && previousLine !== nextLine
365
+ ? commonPrefixCellWidth(previousLine, nextLine)
366
+ : 0;
367
+ if (prefixWidth > 0) {
368
+ const startColumn = prefixWidth + 1;
369
+ const suffix = renderAnsiLineSuffix(nextLine, nextSpans, i + 1, startColumn, options.theme);
370
+ writes.push(`\u001b[${i + 1};${startColumn}H${suffix}\u001b[0m\u001b[K`);
371
+ }
372
+ else {
373
+ writes.push(`\u001b[${i + 1};1H${nextAnsiLine}\u001b[0m\u001b[K`);
374
+ }
375
+ }
376
+ if (cursor) {
377
+ writes.push(`\u001b[${cursor.y};${cursor.x}H`);
378
+ }
379
+ if (options.showCursor !== false || (options.showCursorWhenFrameHasCursor === true && cursor)) {
380
+ writes.push(ANSI_SHOW_CURSOR);
381
+ }
382
+ return {
383
+ changedLineIndexes,
384
+ outputChunk: writes.join(""),
385
+ restoresCursor: Boolean(cursor),
386
+ nextAnsiLines: nextAnsiLines.slice(0, nextLines.length)
387
+ };
388
+ }
232
389
  export function createAnsiDiffWriter(options = {}) {
390
+ let previousLines = [];
233
391
  let previousAnsiLines = [];
392
+ let previousSpans = [];
234
393
  return function toAnsiDiff(lines, cursor, spans = []) {
235
- const ansiLines = lines.map((line, index) => renderAnsiLine(line, spans, index + 1, options.theme));
236
- const diff = createAnsiFrameDiff(previousAnsiLines, ansiLines, cursor, options);
237
- previousAnsiLines = ansiLines.slice();
394
+ const diff = createAnsiFramePatch(previousLines, previousAnsiLines, lines, previousSpans, spans, cursor, options);
395
+ previousLines = lines.slice();
396
+ previousAnsiLines = diff.nextAnsiLines.slice();
397
+ previousSpans = spans.map((span) => ({ ...span }));
238
398
  return diff.outputChunk;
239
399
  };
240
400
  }
package/dist/ansi.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../src/ansi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../src/ansi.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAMxD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,qBAAqB,CAIxH;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,qBAAqB,WAExD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,qBAAqB;;;EAK7D;AAOD,wBAAgB,cAAc,CAAC,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,UAAQ;;;EAMxG;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,UAAQ;;;EAMzG;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,UAAQ;;;EAExG;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,UAAQ;;;EAEvG;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,eAAe,UAAQ;;;EActG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,eAAe,UAAQ;;;EAcvG;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM;;;EAEtC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,UAMxE;AAQD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM;;;;;;EAGnF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;;;;;;EASzE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;;;;;;EASxE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,UAmC1D"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAMxD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,qBAAqB,CAIxH;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,qBAAqB,WAExD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,qBAAqB;;;EAK7D;AAOD,wBAAgB,cAAc,CAAC,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,UAAQ;;;EAMxG;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,UAAQ;;;EAMzG;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,UAAQ;;;EAExG;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,UAAQ;;;EAEvG;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,eAAe,UAAQ;;;EActG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,eAAe,UAAQ;;;EAcvG;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM;;;EAEtC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,UAMxE;AAQD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM;;;;;;EAGnF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;;;;;;EASzE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;;;;;;EASxE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,UAqC1D"}
package/dist/events.js CHANGED
@@ -135,6 +135,10 @@ export function parseTerminalKey(chunk) {
135
135
  return "RIGHT";
136
136
  if (value === "\u001b[D")
137
137
  return "LEFT";
138
+ if (value === "\u001b[1;2A")
139
+ return "SHIFT_UP";
140
+ if (value === "\u001b[1;2B")
141
+ return "SHIFT_DOWN";
138
142
  if (value === "\u001b[1;2C")
139
143
  return "SHIFT_RIGHT";
140
144
  if (value === "\u001b[1;2D")
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { TerminalStyleSpan } from "./types.js";
2
+ export declare function markFullFrameSpan(span: TerminalStyleSpan): TerminalStyleSpan;
3
+ export declare function isFullFrameSpan(span: TerminalStyleSpan): boolean;
4
+ export declare function markFullRowSpan(span: TerminalStyleSpan): TerminalStyleSpan;
5
+ export declare function isFullRowSpan(span: TerminalStyleSpan): boolean;
6
+ export declare function cloneStyleSpan(span: TerminalStyleSpan, patch: Partial<TerminalStyleSpan>): TerminalStyleSpan;
7
+ //# sourceMappingURL=frame-style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-style.d.ts","sourceRoot":"","sources":["../src/frame-style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAQpD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,CAG5E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,WAEtD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,CAG1E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB,WAEpD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAS5G"}
@@ -0,0 +1,27 @@
1
+ const FULL_FRAME_SPAN = Symbol("valyrian.terminal.fullFrameSpan");
2
+ const FULL_ROW_SPAN = Symbol("valyrian.terminal.fullRowSpan");
3
+ export function markFullFrameSpan(span) {
4
+ Object.defineProperty(span, FULL_FRAME_SPAN, { value: true, enumerable: false, configurable: true });
5
+ return span;
6
+ }
7
+ export function isFullFrameSpan(span) {
8
+ return span[FULL_FRAME_SPAN] === true;
9
+ }
10
+ export function markFullRowSpan(span) {
11
+ Object.defineProperty(span, FULL_ROW_SPAN, { value: true, enumerable: false, configurable: true });
12
+ return span;
13
+ }
14
+ export function isFullRowSpan(span) {
15
+ return span[FULL_ROW_SPAN] === true;
16
+ }
17
+ export function cloneStyleSpan(span, patch) {
18
+ const next = { ...span, ...patch };
19
+ if (isFullFrameSpan(span)) {
20
+ markFullFrameSpan(next);
21
+ }
22
+ if (isFullRowSpan(span)) {
23
+ markFullRowSpan(next);
24
+ }
25
+ return next;
26
+ }
27
+ //# sourceMappingURL=frame-style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-style.js","sourceRoot":"","sources":["../src/frame-style.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG,MAAM,CAAC,iCAAiC,CAAC,CAAC;AAClE,MAAM,aAAa,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;AAK9D,MAAM,UAAU,iBAAiB,CAAC,IAAuB;IACvD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACrG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAuB;IACrD,OAAQ,IAA8B,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAuB;IACrD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACnG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAuB;IACnD,OAAQ,IAA4B,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAuB,EAAE,KAAiC;IACvF,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC;IACnC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/layout.d.ts CHANGED
@@ -10,10 +10,14 @@ export declare function mergeHorizontal(frames: TerminalFrame[], options?: {
10
10
  gap?: number;
11
11
  }): TerminalFrame;
12
12
  export declare function padFrame(frame: TerminalFrame, padding: number): TerminalFrame;
13
- export declare function fitFrame(frame: TerminalFrame, width?: number, height?: number): TerminalFrame;
13
+ export declare function fitFrame(frame: TerminalFrame, width?: number, height?: number, options?: {
14
+ expandFullFrameSpans?: boolean;
15
+ }): TerminalFrame;
14
16
  export declare function constrainFrame(frame: TerminalFrame, options?: {
15
17
  width?: number;
16
18
  height?: number;
19
+ expandFullFrameSpans?: boolean;
20
+ expandFullRowSpans?: boolean;
17
21
  }): TerminalFrame;
18
22
  export declare function overlayFrame(base: TerminalFrame, overlay: TerminalFrame, options: {
19
23
  x: number;
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMnG,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAE,cAAc,EAAO,EAAE,MAAM,GAAE,cAAc,GAAG,IAAW,EAAE,KAAK,GAAE,iBAAiB,EAAO,GAAG,aAAa,CAElK;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,UAEjD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,UAElD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,CAetF;AAUD,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,aAAa,CAkCpG;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,aAAa,CAuCtG;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,iBAY7D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,iBAO7E;AAqBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,aAAa,CAwCrH;AAkBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAsCzJ;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAsB7E"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMnG,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAE,cAAc,EAAO,EAAE,MAAM,GAAE,cAAc,GAAG,IAAW,EAAE,KAAK,GAAE,iBAAiB,EAAO,GAAG,aAAa,CAElK;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,UAEjD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,UAElD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,CAetF;AAUD,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,aAAa,CAkCpG;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,aAAa,CAsCtG;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,iBAY7D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAO,iBAO/H;AAqBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,aAAa,CAuEnL;AAkBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CA0CzJ;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAmB7E"}
package/dist/layout.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { cloneStyleSpan, isFullFrameSpan, isFullRowSpan } from "./frame-style.js";
2
+ import { dropTerminalCells, padEndTerminalCells, sliceTerminalCells, terminalCellWidth } from "./text.js";
1
3
  function repeat(char, count) {
2
4
  return char.repeat(Math.max(0, count));
3
5
  }
@@ -5,7 +7,7 @@ export function createFrame(lines, hitboxes = [], cursor = null, spans = []) {
5
7
  return { lines: lines.length ? lines : [""], hitboxes, cursor, spans };
6
8
  }
7
9
  export function getFrameWidth(frame) {
8
- return frame.lines.reduce((max, line) => Math.max(max, line.length), 0);
10
+ return frame.lines.reduce((max, line) => Math.max(max, terminalCellWidth(line)), 0);
9
11
  }
10
12
  export function getFrameHeight(frame) {
11
13
  return frame.lines.length;
@@ -23,11 +25,11 @@ export function shiftFrame(frame, dx, dy) {
23
25
  contentY: typeof box.contentY === "number" ? box.contentY + dy : undefined
24
26
  })),
25
27
  cursor: frame.cursor ? { x: frame.cursor.x + dx, y: frame.cursor.y + dy } : null,
26
- spans: frame.spans.map((span) => ({ ...span, x1: span.x1 + dx, x2: span.x2 + dx, y: span.y + dy }))
28
+ spans: frame.spans.map((span) => cloneStyleSpan(span, { x1: span.x1 + dx, x2: span.x2 + dx, y: span.y + dy }))
27
29
  };
28
30
  }
29
31
  function normalizeLines(frame, width, height) {
30
- const lines = frame.lines.map((line) => line.padEnd(width, " "));
32
+ const lines = frame.lines.map((line) => padEndTerminalCells(line, width));
31
33
  while (lines.length < height) {
32
34
  lines.push(repeat(" ", width));
33
35
  }
@@ -47,15 +49,15 @@ export function mergeVertical(frames, options = {}) {
47
49
  let rowOffset = 0;
48
50
  for (let i = 0; i < filtered.length; i += 1) {
49
51
  const frame = filtered[i];
50
- const normalized = normalizeLines(frame, width, getFrameHeight(frame));
51
- lines.push(...normalized);
52
- const shifted = shiftFrame(frame, 0, rowOffset);
52
+ const normalizedFrame = fitFrame(frame, width, getFrameHeight(frame), { expandFullFrameSpans: true });
53
+ lines.push(...normalizedFrame.lines);
54
+ const shifted = shiftFrame(normalizedFrame, 0, rowOffset);
53
55
  hitboxes.push(...shifted.hitboxes);
54
56
  spans.push(...shifted.spans);
55
57
  if (!cursor && frame.cursor) {
56
58
  cursor = { x: frame.cursor.x, y: frame.cursor.y + rowOffset };
57
59
  }
58
- rowOffset += normalized.length;
60
+ rowOffset += normalizedFrame.lines.length;
59
61
  if (i < filtered.length - 1 && gap > 0) {
60
62
  for (let j = 0; j < gap; j += 1) {
61
63
  lines.push(repeat(" ", width));
@@ -74,9 +76,8 @@ export function mergeHorizontal(frames, options = {}) {
74
76
  const widths = filtered.map(getFrameWidth);
75
77
  const height = filtered.reduce((max, frame) => Math.max(max, getFrameHeight(frame)), 0);
76
78
  const normalizedFrames = filtered.map((frame, index) => ({
77
- frame,
78
- width: widths[index],
79
- lines: normalizeLines(frame, widths[index], height)
79
+ frame: fitFrame(frame, widths[index], height, { expandFullFrameSpans: true }),
80
+ width: widths[index]
80
81
  }));
81
82
  const gapText = repeat(" ", gap);
82
83
  const lines = new Array(height).fill("");
@@ -87,7 +88,7 @@ export function mergeHorizontal(frames, options = {}) {
87
88
  for (let index = 0; index < normalizedFrames.length; index += 1) {
88
89
  const part = normalizedFrames[index];
89
90
  for (let row = 0; row < height; row += 1) {
90
- lines[row] += part.lines[row];
91
+ lines[row] += part.frame.lines[row];
91
92
  if (index < normalizedFrames.length - 1) {
92
93
  lines[row] += gapText;
93
94
  }
@@ -108,19 +109,19 @@ export function padFrame(frame, padding) {
108
109
  return frame;
109
110
  }
110
111
  const width = getFrameWidth(frame);
111
- const middle = frame.lines.map((line) => `${repeat(" ", amount)}${line.padEnd(width, " ")}${repeat(" ", amount)}`);
112
+ const middle = frame.lines.map((line) => `${repeat(" ", amount)}${padEndTerminalCells(line, width)}${repeat(" ", amount)}`);
112
113
  const blank = repeat(" ", width + amount * 2);
113
114
  const lines = [...new Array(amount).fill(blank), ...middle, ...new Array(amount).fill(blank)];
114
115
  const shifted = shiftFrame(frame, amount, amount);
115
116
  return createFrame(lines, shifted.hitboxes, frame.cursor ? { x: frame.cursor.x + amount, y: frame.cursor.y + amount } : null, shifted.spans);
116
117
  }
117
- export function fitFrame(frame, width, height) {
118
+ export function fitFrame(frame, width, height, options = {}) {
118
119
  const nextWidth = Math.max(getFrameWidth(frame), Number(width || 0));
119
120
  const nextHeight = Math.max(getFrameHeight(frame), Number(height || 0));
120
121
  if (nextWidth === getFrameWidth(frame) && nextHeight === getFrameHeight(frame)) {
121
122
  return frame;
122
123
  }
123
- return createFrame(normalizeLines(frame, nextWidth, nextHeight), frame.hitboxes, frame.cursor, frame.spans);
124
+ return constrainFrame(frame, { width: nextWidth, height: nextHeight, expandFullFrameSpans: options.expandFullFrameSpans });
124
125
  }
125
126
  function constraintSize(value, fallback) {
126
127
  if (typeof value === "undefined") {
@@ -143,7 +144,7 @@ export function constrainFrame(frame, options = {}) {
143
144
  const height = constraintSize(options.height, getFrameHeight(frame));
144
145
  const lines = [];
145
146
  for (let row = 0; row < height; row += 1) {
146
- lines.push((frame.lines[row] || "").slice(0, width).padEnd(width, " "));
147
+ lines.push(padEndTerminalCells(sliceTerminalCells(frame.lines[row] || "", width), width));
147
148
  }
148
149
  const hitboxes = frame.hitboxes
149
150
  .filter((box) => width > 0 && height > 0 && overlaps(box.x1, box.x2, 1, width) && overlaps(box.y1, box.y2, 1, height))
@@ -158,8 +159,24 @@ export function constrainFrame(frame, options = {}) {
158
159
  const cursor = frame.cursor && frame.cursor.x >= 1 && frame.cursor.x <= width && frame.cursor.y >= 1 && frame.cursor.y <= height
159
160
  ? { x: frame.cursor.x, y: frame.cursor.y }
160
161
  : null;
162
+ const originalWidth = getFrameWidth(frame);
163
+ const originalHeight = getFrameHeight(frame);
161
164
  const spanRightEdge = width + 1;
162
165
  const spans = frame.spans.flatMap((span) => {
166
+ const coversCurrentFrame = options.expandFullFrameSpans === true && isFullFrameSpan(span) && span.x1 === 1 && span.x2 === originalWidth + 1;
167
+ if (coversCurrentFrame) {
168
+ if (width <= 0 || span.y < 1 || span.y > Math.min(originalHeight, height)) {
169
+ return [];
170
+ }
171
+ return [cloneStyleSpan(span, { x1: 1, x2: spanRightEdge })];
172
+ }
173
+ const coversCurrentRow = (options.expandFullFrameSpans === true || options.expandFullRowSpans === true) && isFullRowSpan(span) && span.x1 === 1 && span.x2 === originalWidth + 1;
174
+ if (coversCurrentRow) {
175
+ if (width <= 0 || span.y < 1 || span.y > Math.min(originalHeight, height)) {
176
+ return [];
177
+ }
178
+ return [cloneStyleSpan(span, { x1: 1, x2: spanRightEdge })];
179
+ }
163
180
  if (width <= 0 || span.y < 1 || span.y > height || span.x2 <= 1 || span.x1 >= spanRightEdge) {
164
181
  return [];
165
182
  }
@@ -168,8 +185,20 @@ export function constrainFrame(frame, options = {}) {
168
185
  if (clippedX1 >= clippedX2) {
169
186
  return [];
170
187
  }
171
- return [{ ...span, x1: clippedX1, x2: clippedX2 }];
188
+ return [cloneStyleSpan(span, { x1: clippedX1, x2: clippedX2 })];
172
189
  });
190
+ const fullFrameSpans = options.expandFullFrameSpans === true
191
+ ? frame.spans.filter((span) => isFullFrameSpan(span) && span.x1 === 1 && span.x2 === originalWidth + 1)
192
+ : [];
193
+ const firstFullFrameRow = fullFrameSpans.reduce((first, span) => first === null ? span.y : Math.min(first, span.y), null);
194
+ if (firstFullFrameRow !== null) {
195
+ const templates = fullFrameSpans.filter((span) => span.y === firstFullFrameRow);
196
+ for (let y = originalHeight + 1; y <= height; y += 1) {
197
+ for (const template of templates) {
198
+ spans.push(cloneStyleSpan(template, { x1: 1, x2: spanRightEdge, y }));
199
+ }
200
+ }
201
+ }
173
202
  return createFrame(lines, hitboxes, cursor, spans);
174
203
  }
175
204
  function overlayMetric(value, name) {
@@ -200,14 +229,18 @@ export function overlayFrame(base, overlay, options) {
200
229
  }
201
230
  const baseLine = lines[baseRow];
202
231
  const start = x - 1;
203
- if (start >= baseLine.length) {
232
+ if (start >= terminalCellWidth(baseLine)) {
204
233
  continue;
205
234
  }
206
- const visibleWidth = Math.min(constrainedOverlay.lines[row].length, baseLine.length - start);
235
+ const visibleWidth = Math.min(terminalCellWidth(constrainedOverlay.lines[row]), terminalCellWidth(baseLine) - start);
207
236
  if (visibleWidth <= 0) {
208
237
  continue;
209
238
  }
210
- lines[baseRow] = `${baseLine.slice(0, start)}${constrainedOverlay.lines[row].slice(0, visibleWidth)}${baseLine.slice(start + visibleWidth)}`;
239
+ const prefix = sliceTerminalCells(baseLine, start);
240
+ const suffix = dropTerminalCells(baseLine, start + visibleWidth);
241
+ const insert = sliceTerminalCells(constrainedOverlay.lines[row], visibleWidth);
242
+ const removedWidth = terminalCellWidth(baseLine) - terminalCellWidth(prefix) - terminalCellWidth(suffix);
243
+ lines[baseRow] = `${prefix}${padEndTerminalCells(insert, removedWidth)}${suffix}`;
211
244
  }
212
245
  const shiftedOverlay = shiftFrame(constrainedOverlay, x - 1, y - 1);
213
246
  const visibleOverlay = constrainFrame(shiftedOverlay, { width: Math.max(1, getFrameWidth(base)), height: Math.max(1, getFrameHeight(base)) });
@@ -232,10 +265,7 @@ export function cropFrame(frame, offset, height) {
232
265
  }));
233
266
  const spans = frame.spans
234
267
  .filter((span) => span.y > start && span.y <= start + size)
235
- .map((span) => ({
236
- ...span,
237
- y: span.y - start
238
- }));
268
+ .map((span) => cloneStyleSpan(span, { y: span.y - start }));
239
269
  const cursor = frame.cursor && frame.cursor.y > start && frame.cursor.y <= start + size
240
270
  ? { x: frame.cursor.x, y: frame.cursor.y - start }
241
271
  : null;