@floegence/floeterm-terminal-web 0.5.24 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +20 -0
  2. package/dist/core/PagedTerminalOutputCoordinator.js +3 -4
  3. package/dist/core/PagedTerminalOutputCoordinator.js.map +1 -1
  4. package/dist/core/TerminalCore.d.ts +3 -0
  5. package/dist/core/TerminalCore.d.ts.map +1 -1
  6. package/dist/core/TerminalCore.js +96 -21
  7. package/dist/core/TerminalCore.js.map +1 -1
  8. package/dist/core/TerminalOutputPipeline.js +2 -2
  9. package/dist/core/TerminalOutputPipeline.js.map +1 -1
  10. package/dist/entries/live.d.ts +7 -0
  11. package/dist/entries/live.d.ts.map +1 -0
  12. package/dist/entries/live.js +4 -0
  13. package/dist/entries/live.js.map +1 -0
  14. package/dist/fabric/BeamtermFabricRenderer.d.ts +11 -4
  15. package/dist/fabric/BeamtermFabricRenderer.d.ts.map +1 -1
  16. package/dist/fabric/BeamtermFabricRenderer.js +259 -47
  17. package/dist/fabric/BeamtermFabricRenderer.js.map +1 -1
  18. package/dist/fabric/TerminalFabricCoordinator.d.ts +1 -1
  19. package/dist/fabric/TerminalFabricCoordinator.d.ts.map +1 -1
  20. package/dist/fabric/TerminalFabricCoordinator.js +4 -7
  21. package/dist/fabric/TerminalFabricCoordinator.js.map +1 -1
  22. package/dist/fabric/TerminalLiveFabric.d.ts +3 -43
  23. package/dist/fabric/TerminalLiveFabric.d.ts.map +1 -1
  24. package/dist/fabric/TerminalLiveFabric.js +3 -97
  25. package/dist/fabric/TerminalLiveFabric.js.map +1 -1
  26. package/dist/fabric/types.d.ts +41 -3
  27. package/dist/fabric/types.d.ts.map +1 -1
  28. package/dist/index.d.ts +1 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/internal/BeamtermResourceLoader.d.ts +1 -1
  32. package/dist/internal/BeamtermResourceLoader.d.ts.map +1 -1
  33. package/dist/internal/BeamtermResourceLoader.js +1 -1
  34. package/dist/internal/BeamtermResourceLoader.js.map +1 -1
  35. package/dist/internal/SequenceBuffer.d.ts +7 -11
  36. package/dist/internal/SequenceBuffer.d.ts.map +1 -1
  37. package/dist/internal/SequenceBuffer.js +52 -103
  38. package/dist/internal/SequenceBuffer.js.map +1 -1
  39. package/dist/live/client.d.ts +62 -0
  40. package/dist/live/client.d.ts.map +1 -0
  41. package/dist/live/client.js +326 -0
  42. package/dist/live/client.js.map +1 -0
  43. package/dist/live/codec.d.ts +97 -0
  44. package/dist/live/codec.d.ts.map +1 -0
  45. package/dist/live/codec.js +386 -0
  46. package/dist/live/codec.js.map +1 -0
  47. package/dist/live/transport.d.ts +37 -0
  48. package/dist/live/transport.d.ts.map +1 -0
  49. package/dist/live/transport.js +194 -0
  50. package/dist/live/transport.js.map +1 -0
  51. package/dist/manager/TerminalInstanceController.d.ts +11 -0
  52. package/dist/manager/TerminalInstanceController.d.ts.map +1 -1
  53. package/dist/manager/TerminalInstanceController.js +265 -38
  54. package/dist/manager/TerminalInstanceController.js.map +1 -1
  55. package/dist/types.d.ts +41 -2
  56. package/dist/types.d.ts.map +1 -1
  57. package/dist/types.js.map +1 -1
  58. package/package.json +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalOutputPipeline.js","sourceRoot":"","sources":["../../src/core/TerminalOutputPipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TerminalOutputPipeline.js","sourceRoot":"","sources":["../../src/core/TerminalOutputPipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { MAX_QUEUED_INPUT_BYTES, TerminalLiveErrorCode, TerminalLiveServerError, connectTerminalLive, } from '../live/client.js';
2
+ export { FRAME_HEADER_BYTES, MAX_FRAME_PAYLOAD_BYTES, MAX_INPUT_BYTES, MAX_OUTPUT_BATCH_BYTES, MAX_OUTPUT_BATCH_CHUNKS, StreamKind, TerminalLiveDecoder, TerminalLiveFrameType, decodeAttach, decodeAttached, decodeInput, decodeOutputBatch, decodeProtocolError, decodeResize, decodeResizeApplied, encodeAttach, encodeAttached, encodeInput, encodeOutputBatch, encodeResize, encodeResizeApplied, } from '../live/codec.js';
3
+ export { createTerminalLiveTransport } from '../live/transport.js';
4
+ export type { ConnectTerminalLiveOptions, TerminalByteStream, TerminalLiveAttachRequest, TerminalLiveAttached, TerminalLiveCloseReason, TerminalLiveConnection, } from '../live/client.js';
5
+ export type { Attach, Attached, Input, OutputBatch, OutputRecord, ProtocolError, Resize, ResizeApplied, TerminalLiveFrame, } from '../live/codec.js';
6
+ export type { CreateTerminalLiveTransportOptions, OpenTerminalLiveStream, TerminalLiveAttachResult, TerminalLiveControlPlane, TerminalLiveTransport, TerminalLiveTransportBundle, } from '../live/transport.js';
7
+ //# sourceMappingURL=live.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../src/entries/live.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,YAAY,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,MAAM,EACN,QAAQ,EACR,KAAK,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,MAAM,EACN,aAAa,EACb,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,kCAAkC,EAClC,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { MAX_QUEUED_INPUT_BYTES, TerminalLiveErrorCode, TerminalLiveServerError, connectTerminalLive, } from '../live/client.js';
2
+ export { FRAME_HEADER_BYTES, MAX_FRAME_PAYLOAD_BYTES, MAX_INPUT_BYTES, MAX_OUTPUT_BATCH_BYTES, MAX_OUTPUT_BATCH_CHUNKS, StreamKind, TerminalLiveDecoder, TerminalLiveFrameType, decodeAttach, decodeAttached, decodeInput, decodeOutputBatch, decodeProtocolError, decodeResize, decodeResizeApplied, encodeAttach, encodeAttached, encodeInput, encodeOutputBatch, encodeResize, encodeResizeApplied, } from '../live/codec.js';
3
+ export { createTerminalLiveTransport } from '../live/transport.js';
4
+ //# sourceMappingURL=live.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/entries/live.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { TerminalFabricCell, TerminalFabricCursor, TerminalFabricDiagnostics, TerminalFabricFrame, TerminalFabricFrameRenderResult, TerminalFabricGeometry, TerminalFabricRenderer, TerminalFabricRendererTarget, TerminalFabricTheme } from './types.js';
1
+ import type { TerminalFabricCell, TerminalFabricCursor, TerminalFabricDiagnostics, TerminalFabricFrame, TerminalFabricFrameRenderResult, TerminalFabricGeometry, TerminalFabricRenderer, TerminalFabricRendererTarget, TerminalFabricRowRenderHints, TerminalFabricSourceCell, TerminalFabricSourceRenderer, TerminalFabricTheme } from './types.js';
2
2
  import { type BeamtermModule } from '../internal/BeamtermResourceLoader.js';
3
3
  export { loadBeamtermModule } from '../internal/BeamtermResourceLoader.js';
4
4
  export type { BeamtermModule } from '../internal/BeamtermResourceLoader.js';
@@ -7,16 +7,16 @@ type BeamtermCellStyle = InstanceType<BeamtermModule['CellStyle']>;
7
7
  type BeamtermCell = InstanceType<BeamtermModule['Cell']>;
8
8
  export declare const parseHexColor: (value: string | undefined, fallback: number) => number;
9
9
  export declare const formatHexColor: (value: number) => string;
10
- export declare const normalizeCanvasSelector: (canvas: HTMLCanvasElement) => string;
11
10
  export declare const createStyle: (module: BeamtermModule, cell: TerminalFabricCell, defaultTheme: TerminalFabricTheme, cache?: Map<string, BeamtermCellStyle>) => BeamtermCellStyle;
12
11
  export declare const hasWebGL2: () => boolean;
13
- export declare const createBeamtermRenderer: (module: BeamtermModule, selector: string, fontFamilies: string[], fontSize: number) => BeamtermRendererInstance;
12
+ export declare const createBeamtermRenderer: (module: BeamtermModule, canvas: HTMLCanvasElement, fontFamilies: string[], fontSize: number) => BeamtermRendererInstance;
14
13
  export declare const createCell: (module: BeamtermModule, symbol: string, style: BeamtermCellStyle) => BeamtermCell;
15
14
  export declare class BeamtermFabricRenderer implements TerminalFabricRenderer {
16
15
  readonly backend: "beamterm_webgl2";
17
16
  readonly renderPath: "main_thread_webgl2";
18
17
  private module;
19
18
  private renderer;
19
+ private frameBatch;
20
20
  private target;
21
21
  private canvas;
22
22
  private visible;
@@ -30,6 +30,11 @@ export declare class BeamtermFabricRenderer implements TerminalFabricRenderer {
30
30
  private geometry;
31
31
  private surfaceBackgroundCss;
32
32
  private hostInlineBackgroundColor;
33
+ private sourceGridCoverage;
34
+ private surfaceCoverageKey;
35
+ private pendingFullClearCoverage;
36
+ private readonly resolvedCell;
37
+ private readonly resolvedLookahead;
33
38
  initialize(target: TerminalFabricRendererTarget): Promise<void>;
34
39
  isActive(): boolean;
35
40
  startFrame(frame: TerminalFabricFrame, options: {
@@ -37,7 +42,7 @@ export declare class BeamtermFabricRenderer implements TerminalFabricRenderer {
37
42
  rows: number;
38
43
  theme: TerminalFabricTheme;
39
44
  }): void;
40
- writeRow(row: number, cells: TerminalFabricCell[], cols: number): void;
45
+ writeRow(sourceRenderer: TerminalFabricSourceRenderer, row: number, cells: readonly TerminalFabricSourceCell[], cols: number, hints?: TerminalFabricRowRenderHints): void;
41
46
  finishFrame(cursor: TerminalFabricCursor | null): TerminalFabricFrameRenderResult;
42
47
  resize(width: number, height: number): void;
43
48
  getGeometry(): TerminalFabricGeometry | null;
@@ -51,6 +56,8 @@ export declare class BeamtermFabricRenderer implements TerminalFabricRenderer {
51
56
  getDiagnostics(): TerminalFabricDiagnostics;
52
57
  dispose(): void;
53
58
  private syncBackgroundSurface;
59
+ private paintOutsideSourceGrid;
60
+ private recordSurfaceCoverage;
54
61
  private restoreBackgroundSurface;
55
62
  private installEventForwarding;
56
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BeamtermFabricRenderer.d.ts","sourceRoot":"","sources":["../../src/fabric/BeamtermFabricRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BeamtermFabricRenderer.d.ts","sourceRoot":"","sources":["../../src/fabric/BeamtermFabricRenderer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,14 @@
1
1
  import { terminalFabricCoordinator } from './TerminalFabricCoordinator.js';
2
2
  import { loadBeamtermModule, } from '../internal/BeamtermResourceLoader.js';
3
3
  export { loadBeamtermModule } from '../internal/BeamtermResourceLoader.js';
4
+ const createResolvedFabricCell = () => ({
5
+ symbol: ' ',
6
+ width: 1,
7
+ styleKey: '',
8
+ style: null,
9
+ simple: true,
10
+ blank: true,
11
+ });
4
12
  const DEFAULT_BACKGROUND = 0x000000;
5
13
  const DEFAULT_FOREGROUND = 0xffffff;
6
14
  const MAX_STYLE_CACHE_ENTRIES = 4096;
@@ -24,19 +32,6 @@ export const formatHexColor = (value) => {
24
32
  const normalized = Number.isFinite(value) ? Math.max(0, Math.min(0xffffff, Math.trunc(value))) : 0;
25
33
  return `#${normalized.toString(16).padStart(6, '0')}`;
26
34
  };
27
- export const normalizeCanvasSelector = (canvas) => {
28
- if (!canvas.id) {
29
- canvas.id = `floeterm-beamterm-${Math.random().toString(36).slice(2)}`;
30
- }
31
- return `#${escapeCssIdentifier(canvas.id)}`;
32
- };
33
- const escapeCssIdentifier = (value) => {
34
- const cssGlobal = globalThis;
35
- if (typeof cssGlobal.CSS?.escape === 'function') {
36
- return cssGlobal.CSS.escape(value);
37
- }
38
- return value.replace(/[^a-zA-Z0-9_-]/g, match => `\\${match}`);
39
- };
40
35
  export const createStyle = (module, cell, defaultTheme, cache) => {
41
36
  const fg = cell.attrs.inverse
42
37
  ? defaultTheme.background
@@ -82,7 +77,7 @@ export const hasWebGL2 = () => {
82
77
  return false;
83
78
  }
84
79
  };
85
- export const createBeamtermRenderer = (module, selector, fontFamilies, fontSize) => module.BeamtermRenderer.withDynamicAtlas(selector, fontFamilies, fontSize, false);
80
+ export const createBeamtermRenderer = (module, canvas, fontFamilies, fontSize) => module.BeamtermRenderer.withDynamicAtlasCanvas(canvas, fontFamilies, fontSize, false);
86
81
  export const createCell = (module, symbol, style) => new module.Cell(symbol, style);
87
82
  export class BeamtermFabricRenderer {
88
83
  constructor() {
@@ -90,6 +85,7 @@ export class BeamtermFabricRenderer {
90
85
  this.renderPath = 'main_thread_webgl2';
91
86
  this.module = null;
92
87
  this.renderer = null;
88
+ this.frameBatch = null;
93
89
  this.target = null;
94
90
  this.canvas = null;
95
91
  this.visible = true;
@@ -106,6 +102,11 @@ export class BeamtermFabricRenderer {
106
102
  this.geometry = null;
107
103
  this.surfaceBackgroundCss = null;
108
104
  this.hostInlineBackgroundColor = null;
105
+ this.sourceGridCoverage = null;
106
+ this.surfaceCoverageKey = '';
107
+ this.pendingFullClearCoverage = null;
108
+ this.resolvedCell = createResolvedFabricCell();
109
+ this.resolvedLookahead = createResolvedFabricCell();
109
110
  }
110
111
  async initialize(target) {
111
112
  this.target = target;
@@ -119,8 +120,8 @@ export class BeamtermFabricRenderer {
119
120
  const webgl2Supported = hasWebGL2();
120
121
  terminalFabricCoordinator.setRendererState({
121
122
  webgl2Supported,
122
- backend: webgl2Supported ? 'beamterm_webgl2' : 'main_thread_canvas_live',
123
- renderPath: webgl2Supported ? 'main_thread_webgl2' : 'canvas_live_fallback',
123
+ backend: 'beamterm_webgl2',
124
+ renderPath: 'main_thread_webgl2',
124
125
  });
125
126
  if (!webgl2Supported) {
126
127
  throw new Error('WebGL2 is not available for Beamterm');
@@ -149,10 +150,10 @@ export class BeamtermFabricRenderer {
149
150
  host.appendChild(canvas);
150
151
  this.canvas = canvas;
151
152
  this.syncBackgroundSurface();
152
- const selector = normalizeCanvasSelector(canvas);
153
153
  this.fontFamilies = normalizeFontFamilies(target.fontFamily);
154
154
  this.fontSize = target.fontSize;
155
- this.renderer = createBeamtermRenderer(this.module, selector, this.fontFamilies, this.fontSize);
155
+ this.renderer = createBeamtermRenderer(this.module, canvas, this.fontFamilies, this.fontSize);
156
+ this.renderer.setCanvasPaddingColor(this.currentTheme.background);
156
157
  this.installEventForwarding(canvas);
157
158
  this.resize(host.clientWidth, host.clientHeight);
158
159
  this.initialized = true;
@@ -170,9 +171,7 @@ export class BeamtermFabricRenderer {
170
171
  this.canvas = null;
171
172
  canvas?.remove();
172
173
  this.restoreBackgroundSurface();
173
- if (ghosttyCanvas) {
174
- ghosttyCanvas.style.opacity = '';
175
- }
174
+ terminalFabricCoordinator.noteRendererError(error);
176
175
  throw error;
177
176
  }
178
177
  }
@@ -184,29 +183,72 @@ export class BeamtermFabricRenderer {
184
183
  if (!this.renderer || !this.visible) {
185
184
  return;
186
185
  }
186
+ if (options.theme.background !== this.currentTheme.background) {
187
+ this.renderer.setCanvasPaddingColor(options.theme.background);
188
+ }
187
189
  this.currentTheme = options.theme;
188
190
  this.syncBackgroundSurface();
189
191
  this.lastRenderedRows = 0;
190
192
  this.lastDirtyCells = 0;
193
+ this.frameBatch?.free();
194
+ this.frameBatch = this.renderer.batch();
191
195
  if (frame.forceAll) {
192
- const batch = this.renderer.batch();
193
- batch.clear(options.theme.background);
196
+ this.pendingFullClearCoverage = { cols: options.cols, rows: options.rows };
197
+ }
198
+ else {
199
+ this.pendingFullClearCoverage = null;
200
+ this.paintOutsideSourceGrid(this.frameBatch, options.cols, options.rows, options.theme.background);
194
201
  }
195
202
  }
196
- writeRow(row, cells, cols) {
197
- if (!this.renderer || !this.module || !this.visible) {
203
+ writeRow(sourceRenderer, row, cells, cols, hints = {}) {
204
+ const batch = this.frameBatch;
205
+ if (!batch || !this.module || !this.visible) {
198
206
  return;
199
207
  }
200
- const batch = this.renderer.batch();
201
- for (let col = 0; col < cols; col += 1) {
202
- const current = cells[col];
203
- if (!current) {
208
+ if (this.pendingFullClearCoverage) {
209
+ const coverage = this.pendingFullClearCoverage;
210
+ this.pendingFullClearCoverage = null;
211
+ batch.clear(this.currentTheme.background);
212
+ this.recordSurfaceCoverage(coverage.cols, coverage.rows, this.currentTheme.background);
213
+ }
214
+ let col = 0;
215
+ while (col < cols) {
216
+ resolveSourceCell(this.module, sourceRenderer, cells[col] ?? {}, row, col, hints, this.currentTheme, this.styleCache, this.resolvedCell);
217
+ const current = this.resolvedCell;
218
+ if (!current.style) {
219
+ col += 1;
204
220
  continue;
205
221
  }
206
- const style = createStyle(this.module, current, this.currentTheme, this.styleCache);
207
- const text = current.attrs.invisible ? ' ' : current.symbol || ' ';
208
- batch.cell(col, row, createCell(this.module, text, style));
209
- this.lastDirtyCells += 1;
222
+ if (!current.simple) {
223
+ batch.cell(col, row, createCell(this.module, current.symbol, current.style));
224
+ const renderedWidth = Math.max(1, Math.min(cols - col, Math.floor(current.width)));
225
+ this.lastDirtyCells += renderedWidth;
226
+ col += renderedWidth;
227
+ continue;
228
+ }
229
+ const runStart = col;
230
+ const runStyleKey = current.styleKey;
231
+ const runStyle = current.style;
232
+ const blankRun = current.blank;
233
+ let text = blankRun ? '' : current.symbol;
234
+ col += 1;
235
+ while (col < cols) {
236
+ resolveSourceCell(this.module, sourceRenderer, cells[col] ?? {}, row, col, hints, this.currentTheme, this.styleCache, this.resolvedLookahead);
237
+ const next = this.resolvedLookahead;
238
+ if (!next.simple || next.blank !== blankRun || next.styleKey !== runStyleKey)
239
+ break;
240
+ if (!blankRun)
241
+ text += next.symbol;
242
+ col += 1;
243
+ }
244
+ const runLength = col - runStart;
245
+ if (blankRun) {
246
+ batch.fill(runStart, row, runLength, 1, createCell(this.module, ' ', runStyle));
247
+ }
248
+ else {
249
+ batch.text(runStart, row, text, runStyle);
250
+ }
251
+ this.lastDirtyCells += runLength;
210
252
  }
211
253
  this.lastRenderedRows += 1;
212
254
  }
@@ -218,16 +260,23 @@ export class BeamtermFabricRenderer {
218
260
  dirtyCells: 0,
219
261
  };
220
262
  }
221
- if (cursor?.visible && this.module) {
222
- const batch = this.renderer.batch();
263
+ const batch = this.frameBatch;
264
+ if (cursor?.visible && this.module && batch) {
223
265
  batch.cell(Math.max(0, cursor.x), Math.max(0, cursor.y), createCell(this.module, ' ', this.module.style().fg(this.currentTheme.background).bg(this.currentTheme.foreground)));
224
266
  }
225
- this.renderer.render();
226
- return {
227
- rendered: true,
228
- renderedRows: this.lastRenderedRows,
229
- dirtyCells: this.lastDirtyCells,
230
- };
267
+ try {
268
+ this.renderer.render();
269
+ return {
270
+ rendered: true,
271
+ renderedRows: this.lastRenderedRows,
272
+ dirtyCells: this.lastDirtyCells,
273
+ };
274
+ }
275
+ finally {
276
+ batch?.free();
277
+ this.frameBatch = null;
278
+ this.pendingFullClearCoverage = null;
279
+ }
231
280
  }
232
281
  resize(width, height) {
233
282
  if (!this.renderer || !this.canvas) {
@@ -238,6 +287,17 @@ export class BeamtermFabricRenderer {
238
287
  this.canvas.style.width = `${cssWidth}px`;
239
288
  this.canvas.style.height = `${cssHeight}px`;
240
289
  this.renderer.resize(cssWidth, cssHeight);
290
+ this.surfaceCoverageKey = '';
291
+ if (this.sourceGridCoverage && this.module) {
292
+ const batch = this.renderer.batch();
293
+ try {
294
+ this.paintOutsideSourceGrid(batch, this.sourceGridCoverage.cols, this.sourceGridCoverage.rows, this.currentTheme.background);
295
+ }
296
+ finally {
297
+ batch.free();
298
+ }
299
+ }
300
+ this.renderer.render();
241
301
  this.geometry = readBeamtermGeometry(this.renderer, this.canvas, cssWidth, cssHeight);
242
302
  }
243
303
  getGeometry() {
@@ -250,6 +310,7 @@ export class BeamtermFabricRenderer {
250
310
  foreground: parseHexColor(appearance.theme.foreground, this.currentTheme.foreground),
251
311
  };
252
312
  this.syncBackgroundSurface();
313
+ this.renderer?.setCanvasPaddingColor(this.currentTheme.background);
253
314
  this.styleCache.clear();
254
315
  }
255
316
  if (!this.renderer || (!appearance.fontFamily && typeof appearance.fontSize !== 'number')) {
@@ -257,11 +318,16 @@ export class BeamtermFabricRenderer {
257
318
  }
258
319
  const family = appearance.fontFamily ? normalizeFontFamilies(appearance.fontFamily) : this.fontFamilies;
259
320
  const size = typeof appearance.fontSize === 'number' ? appearance.fontSize : this.fontSize;
321
+ const familyChanged = family.length !== this.fontFamilies.length
322
+ || family.some((value, index) => value !== this.fontFamilies[index]);
323
+ if (!familyChanged && size === this.fontSize) {
324
+ return;
325
+ }
260
326
  try {
327
+ this.renderer.replaceWithDynamicAtlas(family, size);
261
328
  this.fontFamilies = family;
262
329
  this.fontSize = size;
263
330
  this.styleCache.clear();
264
- this.renderer.replaceWithDynamicAtlas(family, size);
265
331
  if (this.geometry) {
266
332
  this.resize(this.geometry.width, this.geometry.height);
267
333
  }
@@ -295,20 +361,21 @@ export class BeamtermFabricRenderer {
295
361
  if (!this.initialized && !this.renderer && !this.canvas) {
296
362
  return;
297
363
  }
364
+ this.frameBatch?.free();
365
+ this.frameBatch = null;
298
366
  this.renderer?.free();
299
367
  this.renderer = null;
300
368
  this.module = null;
301
369
  this.initialized = false;
302
370
  this.geometry = null;
371
+ this.sourceGridCoverage = null;
372
+ this.surfaceCoverageKey = '';
373
+ this.pendingFullClearCoverage = null;
303
374
  const wasVisible = this.visible;
304
375
  this.visible = false;
305
376
  this.styleCache.clear();
306
377
  this.canvas?.remove();
307
378
  this.canvas = null;
308
- const ghosttyCanvas = this.target?.getGhosttyCanvas();
309
- if (ghosttyCanvas) {
310
- ghosttyCanvas.style.opacity = '';
311
- }
312
379
  this.restoreBackgroundSurface();
313
380
  terminalFabricCoordinator.incrementRendererCounts({
314
381
  active: -1,
@@ -329,6 +396,43 @@ export class BeamtermFabricRenderer {
329
396
  this.target.container.style.backgroundColor = nextBackground;
330
397
  }
331
398
  }
399
+ paintOutsideSourceGrid(batch, sourceCols, sourceRows, background) {
400
+ if (!this.renderer || !this.module) {
401
+ return;
402
+ }
403
+ const terminalSize = this.renderer.terminalSize();
404
+ const rendererCols = Math.max(0, Math.floor(terminalSize.cols));
405
+ const rendererRows = Math.max(0, Math.floor(terminalSize.rows));
406
+ terminalSize.free();
407
+ const cols = Math.max(0, Math.min(rendererCols, Math.floor(sourceCols)));
408
+ const rows = Math.max(0, Math.min(rendererRows, Math.floor(sourceRows)));
409
+ const coverageKey = `${rendererCols}:${rendererRows}:${cols}:${rows}:${background}`;
410
+ this.sourceGridCoverage = { cols, rows };
411
+ if (coverageKey === this.surfaceCoverageKey) {
412
+ return;
413
+ }
414
+ this.surfaceCoverageKey = coverageKey;
415
+ const backgroundCell = createCell(this.module, ' ', this.module.style().fg(background).bg(background));
416
+ if (cols < rendererCols && rows > 0) {
417
+ batch.fill(cols, 0, rendererCols - cols, rows, backgroundCell);
418
+ }
419
+ if (rows < rendererRows) {
420
+ batch.fill(0, rows, rendererCols, rendererRows - rows, backgroundCell);
421
+ }
422
+ }
423
+ recordSurfaceCoverage(sourceCols, sourceRows, background) {
424
+ if (!this.renderer) {
425
+ return;
426
+ }
427
+ const terminalSize = this.renderer.terminalSize();
428
+ const rendererCols = Math.max(0, Math.floor(terminalSize.cols));
429
+ const rendererRows = Math.max(0, Math.floor(terminalSize.rows));
430
+ terminalSize.free();
431
+ const cols = Math.max(0, Math.min(rendererCols, Math.floor(sourceCols)));
432
+ const rows = Math.max(0, Math.min(rendererRows, Math.floor(sourceRows)));
433
+ this.sourceGridCoverage = { cols, rows };
434
+ this.surfaceCoverageKey = `${rendererCols}:${rendererRows}:${cols}:${rows}:${background}`;
435
+ }
332
436
  restoreBackgroundSurface() {
333
437
  if (this.target?.container && this.hostInlineBackgroundColor !== null) {
334
438
  this.target.container.style.backgroundColor = this.hostInlineBackgroundColor;
@@ -339,13 +443,121 @@ export class BeamtermFabricRenderer {
339
443
  installEventForwarding(canvas) {
340
444
  canvas.addEventListener('webglcontextlost', event => {
341
445
  event.preventDefault();
342
- terminalFabricCoordinator.noteFallback('Beamterm WebGL2 context lost');
446
+ const error = new Error('Beamterm WebGL2 context lost');
447
+ terminalFabricCoordinator.noteRendererError(error);
448
+ this.target?.onRendererError(error);
343
449
  });
344
450
  canvas.addEventListener('webglcontextrestored', () => {
345
451
  terminalFabricCoordinator.noteContextRestore();
346
452
  });
347
453
  }
348
454
  }
455
+ const resolveSourceCell = (module, sourceRenderer, cell, row, col, hints, theme, cache, target) => {
456
+ const flags = Number(cell.flags ?? 0);
457
+ const selected = isCellInSelection(row, col, hints.selection);
458
+ const hovered = isCellHovered(row, col, cell, hints.hover);
459
+ const inverse = !selected && (flags & 16) !== 0;
460
+ const foreground = inverse
461
+ ? theme.background
462
+ : selected
463
+ ? packColor(hints.selection.foreground.r, hints.selection.foreground.g, hints.selection.foreground.b, theme.foreground)
464
+ : packColor(cell.fg_r, cell.fg_g, cell.fg_b, theme.foreground);
465
+ const background = inverse
466
+ ? theme.foreground
467
+ : selected
468
+ ? packColor(hints.selection.background.r, hints.selection.background.g, hints.selection.background.b, theme.background)
469
+ : packColor(cell.bg_r, cell.bg_g, cell.bg_b, theme.background);
470
+ const bold = (flags & 1) !== 0;
471
+ const italic = (flags & 2) !== 0;
472
+ const underline = (flags & 4) !== 0 || hovered;
473
+ const strikethrough = (flags & 8) !== 0;
474
+ const styleKey = [
475
+ foreground,
476
+ background,
477
+ bold ? 1 : 0,
478
+ italic ? 1 : 0,
479
+ underline ? 1 : 0,
480
+ strikethrough ? 1 : 0,
481
+ ].join(':');
482
+ let style = cache.get(styleKey);
483
+ if (!style) {
484
+ style = module.style().fg(foreground).bg(background);
485
+ if (bold)
486
+ style = style.bold();
487
+ if (italic)
488
+ style = style.italic();
489
+ if (underline)
490
+ style = style.underline();
491
+ if (strikethrough)
492
+ style = style.strikethrough();
493
+ if (cache.size >= MAX_STYLE_CACHE_ENTRIES)
494
+ cache.clear();
495
+ cache.set(styleKey, style);
496
+ }
497
+ const graphemeLength = Number(cell.grapheme_len ?? 0);
498
+ const invisible = (flags & 32) !== 0;
499
+ const symbol = invisible ? ' ' : resolveSourceSymbol(sourceRenderer, cell, row, col);
500
+ const width = Number(cell.width ?? 1) || 1;
501
+ target.symbol = symbol;
502
+ target.width = width;
503
+ target.styleKey = styleKey;
504
+ target.style = style;
505
+ target.simple = graphemeLength <= 0 && width === 1;
506
+ target.blank = symbol === ' ';
507
+ };
508
+ const resolveSourceSymbol = (renderer, cell, row, col) => {
509
+ if ((cell.grapheme_len ?? 0) > 0) {
510
+ const grapheme = renderer.currentBuffer?.getGraphemeString?.(row, col);
511
+ if (grapheme)
512
+ return grapheme;
513
+ }
514
+ const codepoint = Number(cell.codepoint ?? 32);
515
+ if (!Number.isFinite(codepoint) || codepoint <= 0)
516
+ return ' ';
517
+ try {
518
+ return String.fromCodePoint(codepoint);
519
+ }
520
+ catch {
521
+ return ' ';
522
+ }
523
+ };
524
+ const packColor = (red, green, blue, fallback) => {
525
+ const r = Number(red);
526
+ const g = Number(green);
527
+ const b = Number(blue);
528
+ if (![r, g, b].every(value => Number.isInteger(value) && value >= 0 && value <= 255))
529
+ return fallback;
530
+ return (r << 16) | (g << 8) | b;
531
+ };
532
+ const isCellInSelection = (row, col, selection) => {
533
+ if (!selection)
534
+ return false;
535
+ if (selection.startRow === selection.endRow) {
536
+ return row === selection.startRow && col >= selection.startCol && col <= selection.endCol;
537
+ }
538
+ if (row === selection.startRow)
539
+ return col >= selection.startCol;
540
+ if (row === selection.endRow)
541
+ return col <= selection.endCol;
542
+ return row > selection.startRow && row < selection.endRow;
543
+ };
544
+ const isCellHovered = (row, col, cell, hover) => {
545
+ if (!hover)
546
+ return false;
547
+ const hoverId = Number(hover.hyperlinkId ?? 0);
548
+ if (hoverId > 0 && Number(cell.hyperlink_id ?? 0) === hoverId)
549
+ return true;
550
+ const range = hover.range;
551
+ if (!range)
552
+ return false;
553
+ if (row === range.startY && row === range.endY)
554
+ return col >= range.startX && col <= range.endX;
555
+ if (row === range.startY)
556
+ return col >= range.startX;
557
+ if (row === range.endY)
558
+ return col <= range.endX;
559
+ return row > range.startY && row < range.endY;
560
+ };
349
561
  export const sameRenderableStyle = (left, right) => (left.fg.r === right.fg.r
350
562
  && left.fg.g === right.fg.g
351
563
  && left.fg.b === right.fg.b