@floegence/floeterm-terminal-web 0.14.0 → 0.15.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 (156) hide show
  1. package/README.md +78 -445
  2. package/dist/core/TerminalInputBridge.d.ts +7 -3
  3. package/dist/core/TerminalInputBridge.d.ts.map +1 -1
  4. package/dist/core/TerminalInputBridge.js +63 -4
  5. package/dist/core/TerminalInputBridge.js.map +1 -1
  6. package/dist/entries/live.d.ts +4 -4
  7. package/dist/entries/live.d.ts.map +1 -1
  8. package/dist/entries/live.js +2 -2
  9. package/dist/entries/live.js.map +1 -1
  10. package/dist/entries/semantic.d.ts +9 -0
  11. package/dist/entries/semantic.d.ts.map +1 -0
  12. package/dist/entries/semantic.js +5 -0
  13. package/dist/entries/semantic.js.map +1 -0
  14. package/dist/entries/sessions.d.ts +1 -1
  15. package/dist/entries/sessions.d.ts.map +1 -1
  16. package/dist/index.d.ts +4 -26
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +3 -16
  19. package/dist/index.js.map +1 -1
  20. package/dist/live/client.d.ts +4 -6
  21. package/dist/live/client.d.ts.map +1 -1
  22. package/dist/live/client.js +19 -72
  23. package/dist/live/client.js.map +1 -1
  24. package/dist/live/codec.d.ts +8 -21
  25. package/dist/live/codec.d.ts.map +1 -1
  26. package/dist/live/codec.js +79 -111
  27. package/dist/live/codec.js.map +1 -1
  28. package/dist/live/transport.d.ts +38 -18
  29. package/dist/live/transport.d.ts.map +1 -1
  30. package/dist/live/transport.js +59 -133
  31. package/dist/live/transport.js.map +1 -1
  32. package/dist/semantic/RendererSurface.d.ts +65 -0
  33. package/dist/semantic/RendererSurface.d.ts.map +1 -0
  34. package/dist/semantic/RendererSurface.js +566 -0
  35. package/dist/semantic/RendererSurface.js.map +1 -0
  36. package/dist/semantic/presentation.d.ts +97 -0
  37. package/dist/semantic/presentation.d.ts.map +1 -0
  38. package/dist/semantic/presentation.js +102 -0
  39. package/dist/semantic/presentation.js.map +1 -0
  40. package/dist/types.d.ts +13 -494
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/types.js +1 -37
  43. package/dist/types.js.map +1 -1
  44. package/package.json +11 -19
  45. package/dist/checkpoint/GhosttyCheckpoint.worker.d.ts +0 -2
  46. package/dist/checkpoint/GhosttyCheckpoint.worker.d.ts.map +0 -1
  47. package/dist/checkpoint/GhosttyCheckpoint.worker.js +0 -9
  48. package/dist/checkpoint/GhosttyCheckpoint.worker.js.map +0 -1
  49. package/dist/checkpoint/GhosttyCheckpointActor.d.ts +0 -44
  50. package/dist/checkpoint/GhosttyCheckpointActor.d.ts.map +0 -1
  51. package/dist/checkpoint/GhosttyCheckpointActor.js +0 -284
  52. package/dist/checkpoint/GhosttyCheckpointActor.js.map +0 -1
  53. package/dist/checkpoint/GhosttyCheckpointEngine.d.ts +0 -62
  54. package/dist/checkpoint/GhosttyCheckpointEngine.d.ts.map +0 -1
  55. package/dist/checkpoint/GhosttyCheckpointEngine.js +0 -175
  56. package/dist/checkpoint/GhosttyCheckpointEngine.js.map +0 -1
  57. package/dist/checkpoint/GhosttyCheckpointWorkerRuntime.d.ts +0 -31
  58. package/dist/checkpoint/GhosttyCheckpointWorkerRuntime.d.ts.map +0 -1
  59. package/dist/checkpoint/GhosttyCheckpointWorkerRuntime.js +0 -112
  60. package/dist/checkpoint/GhosttyCheckpointWorkerRuntime.js.map +0 -1
  61. package/dist/core/PagedTerminalOutputCoordinator.d.ts +0 -130
  62. package/dist/core/PagedTerminalOutputCoordinator.d.ts.map +0 -1
  63. package/dist/core/PagedTerminalOutputCoordinator.js +0 -1197
  64. package/dist/core/PagedTerminalOutputCoordinator.js.map +0 -1
  65. package/dist/core/TerminalCore.d.ts +0 -286
  66. package/dist/core/TerminalCore.d.ts.map +0 -1
  67. package/dist/core/TerminalCore.js +0 -3566
  68. package/dist/core/TerminalCore.js.map +0 -1
  69. package/dist/core/TerminalOutputPipeline.d.ts +0 -86
  70. package/dist/core/TerminalOutputPipeline.d.ts.map +0 -1
  71. package/dist/core/TerminalOutputPipeline.js +0 -511
  72. package/dist/core/TerminalOutputPipeline.js.map +0 -1
  73. package/dist/core/TerminalRenderScheduler.d.ts +0 -45
  74. package/dist/core/TerminalRenderScheduler.d.ts.map +0 -1
  75. package/dist/core/TerminalRenderScheduler.js +0 -145
  76. package/dist/core/TerminalRenderScheduler.js.map +0 -1
  77. package/dist/core/TerminalScrollbarOverlay.d.ts +0 -63
  78. package/dist/core/TerminalScrollbarOverlay.d.ts.map +0 -1
  79. package/dist/core/TerminalScrollbarOverlay.js +0 -493
  80. package/dist/core/TerminalScrollbarOverlay.js.map +0 -1
  81. package/dist/entries/history.d.ts +0 -4
  82. package/dist/entries/history.d.ts.map +0 -1
  83. package/dist/entries/history.js +0 -2
  84. package/dist/entries/history.js.map +0 -1
  85. package/dist/entries/preload.d.ts +0 -3
  86. package/dist/entries/preload.d.ts.map +0 -1
  87. package/dist/entries/preload.js +0 -2
  88. package/dist/entries/preload.js.map +0 -1
  89. package/dist/fabric/BeamtermFabricRenderer.d.ts +0 -67
  90. package/dist/fabric/BeamtermFabricRenderer.d.ts.map +0 -1
  91. package/dist/fabric/BeamtermFabricRenderer.js +0 -659
  92. package/dist/fabric/BeamtermFabricRenderer.js.map +0 -1
  93. package/dist/fabric/TerminalFabricCoordinator.d.ts +0 -40
  94. package/dist/fabric/TerminalFabricCoordinator.d.ts.map +0 -1
  95. package/dist/fabric/TerminalFabricCoordinator.js +0 -141
  96. package/dist/fabric/TerminalFabricCoordinator.js.map +0 -1
  97. package/dist/fabric/TerminalLiveFabric.d.ts +0 -44
  98. package/dist/fabric/TerminalLiveFabric.d.ts.map +0 -1
  99. package/dist/fabric/TerminalLiveFabric.js +0 -117
  100. package/dist/fabric/TerminalLiveFabric.js.map +0 -1
  101. package/dist/fabric/types.d.ts +0 -152
  102. package/dist/fabric/types.d.ts.map +0 -1
  103. package/dist/fabric/types.js +0 -2
  104. package/dist/fabric/types.js.map +0 -1
  105. package/dist/internal/BeamtermResourceLoader.d.ts +0 -3
  106. package/dist/internal/BeamtermResourceLoader.d.ts.map +0 -1
  107. package/dist/internal/BeamtermResourceLoader.js +0 -14
  108. package/dist/internal/BeamtermResourceLoader.js.map +0 -1
  109. package/dist/internal/GhosttyCompatibilityVersion.d.ts +0 -2
  110. package/dist/internal/GhosttyCompatibilityVersion.d.ts.map +0 -1
  111. package/dist/internal/GhosttyCompatibilityVersion.js +0 -2
  112. package/dist/internal/GhosttyCompatibilityVersion.js.map +0 -1
  113. package/dist/internal/GhosttyScrollbackCompat.d.ts +0 -16
  114. package/dist/internal/GhosttyScrollbackCompat.d.ts.map +0 -1
  115. package/dist/internal/GhosttyScrollbackCompat.js +0 -43
  116. package/dist/internal/GhosttyScrollbackCompat.js.map +0 -1
  117. package/dist/internal/GhosttyScrollbarCompat.d.ts +0 -12
  118. package/dist/internal/GhosttyScrollbarCompat.d.ts.map +0 -1
  119. package/dist/internal/GhosttyScrollbarCompat.js +0 -160
  120. package/dist/internal/GhosttyScrollbarCompat.js.map +0 -1
  121. package/dist/internal/SequenceBuffer.d.ts +0 -19
  122. package/dist/internal/SequenceBuffer.d.ts.map +0 -1
  123. package/dist/internal/SequenceBuffer.js +0 -83
  124. package/dist/internal/SequenceBuffer.js.map +0 -1
  125. package/dist/internal/TerminalInitializationScheduler.d.ts +0 -38
  126. package/dist/internal/TerminalInitializationScheduler.d.ts.map +0 -1
  127. package/dist/internal/TerminalInitializationScheduler.js +0 -112
  128. package/dist/internal/TerminalInitializationScheduler.js.map +0 -1
  129. package/dist/internal/TerminalResourceLoader.d.ts +0 -40
  130. package/dist/internal/TerminalResourceLoader.d.ts.map +0 -1
  131. package/dist/internal/TerminalResourceLoader.js +0 -165
  132. package/dist/internal/TerminalResourceLoader.js.map +0 -1
  133. package/dist/internal/UnicodeSafeUrlProvider.d.ts +0 -17
  134. package/dist/internal/UnicodeSafeUrlProvider.d.ts.map +0 -1
  135. package/dist/internal/UnicodeSafeUrlProvider.js +0 -32
  136. package/dist/internal/UnicodeSafeUrlProvider.js.map +0 -1
  137. package/dist/internal/scheduleUiTurn.d.ts +0 -5
  138. package/dist/internal/scheduleUiTurn.d.ts.map +0 -1
  139. package/dist/internal/scheduleUiTurn.js +0 -37
  140. package/dist/internal/scheduleUiTurn.js.map +0 -1
  141. package/dist/manager/TerminalInstanceController.d.ts +0 -88
  142. package/dist/manager/TerminalInstanceController.d.ts.map +0 -1
  143. package/dist/manager/TerminalInstanceController.js +0 -1076
  144. package/dist/manager/TerminalInstanceController.js.map +0 -1
  145. package/dist/utils/errors.d.ts +0 -3
  146. package/dist/utils/errors.d.ts.map +0 -1
  147. package/dist/utils/errors.js +0 -11
  148. package/dist/utils/errors.js.map +0 -1
  149. package/dist/utils/history.d.ts +0 -2
  150. package/dist/utils/history.d.ts.map +0 -1
  151. package/dist/utils/history.js +0 -12
  152. package/dist/utils/history.js.map +0 -1
  153. package/dist/utils/xtermAutoResponseFilter.d.ts +0 -2
  154. package/dist/utils/xtermAutoResponseFilter.d.ts.map +0 -1
  155. package/dist/utils/xtermAutoResponseFilter.js +0 -109
  156. package/dist/utils/xtermAutoResponseFilter.js.map +0 -1
@@ -1,493 +0,0 @@
1
- import { deriveContrastingThemeColor, formatThemeColor, parseThemeColor, } from '../utils/themeColor.js';
2
- export const TERMINAL_SCROLLBAR_AUTO_HIDE_DELAY_MS = 1200;
3
- export const TERMINAL_SCROLLBAR_FADE_DURATION_MS = 160;
4
- export const TERMINAL_SCROLLBAR_HIT_WIDTH_PX = 12;
5
- const DEFAULT_SCROLLBAR_OPTIONS = {
6
- visibility: 'auto',
7
- minThumbPx: 24,
8
- ariaLabel: 'Terminal scrollback',
9
- };
10
- function normalizeVisibility(value) {
11
- if (value === 'auto' || value === 'persistent' || value === 'hidden') {
12
- return value;
13
- }
14
- throw new Error('Terminal scrollbar visibility must be auto, persistent, or hidden');
15
- }
16
- function normalizeMinThumbPx(value) {
17
- if (typeof value !== 'number' || !Number.isFinite(value) || value < 16) {
18
- throw new Error('Terminal scrollbar minThumbPx must be a finite number of at least 16');
19
- }
20
- return value;
21
- }
22
- function normalizeAriaLabel(value) {
23
- if (typeof value !== 'string' || value.trim().length === 0) {
24
- throw new Error('Terminal scrollbar ariaLabel must be a non-empty string');
25
- }
26
- return value.trim();
27
- }
28
- export function normalizeTerminalScrollbarOptions(value) {
29
- if (value !== undefined) {
30
- const prototype = typeof value === 'object' && value !== null
31
- ? Object.getPrototypeOf(value)
32
- : null;
33
- if (typeof value !== 'object'
34
- || value === null
35
- || Array.isArray(value)
36
- || (prototype !== Object.prototype && prototype !== null)) {
37
- throw new Error('Terminal scrollbar options must be a plain object');
38
- }
39
- }
40
- const source = value ?? {};
41
- return {
42
- visibility: normalizeVisibility(source.visibility ?? DEFAULT_SCROLLBAR_OPTIONS.visibility),
43
- minThumbPx: normalizeMinThumbPx(source.minThumbPx ?? DEFAULT_SCROLLBAR_OPTIONS.minThumbPx),
44
- ariaLabel: normalizeAriaLabel(source.ariaLabel ?? DEFAULT_SCROLLBAR_OPTIONS.ariaLabel),
45
- };
46
- }
47
- function readTrackHeight(host) {
48
- const clientHeight = Number(host.clientHeight);
49
- if (Number.isFinite(clientHeight) && clientHeight >= 0) {
50
- return clientHeight;
51
- }
52
- const rectHeight = Number(host.getBoundingClientRect().height);
53
- return Number.isFinite(rectHeight) && rectHeight > 0 ? rectHeight : 0;
54
- }
55
- function clientYToTrackY(host, clientY) {
56
- const rect = host.getBoundingClientRect();
57
- const trackHeight = readTrackHeight(host);
58
- if (trackHeight <= 0 || !Number.isFinite(rect.height) || rect.height <= 0)
59
- return 0;
60
- return (clientY - rect.top) * (trackHeight / rect.height);
61
- }
62
- function clamp(value, min, max) {
63
- return Math.max(min, Math.min(max, value));
64
- }
65
- function cssPx(value) {
66
- return `${Number.isInteger(value) ? value : Number(value.toFixed(3))}px`;
67
- }
68
- function scrollbarThumbColors(background) {
69
- const parsed = parseThemeColor(background) ?? { r: 17, g: 24, b: 39 };
70
- return {
71
- idle: formatThemeColor(deriveContrastingThemeColor(parsed, 3)),
72
- hover: formatThemeColor(deriveContrastingThemeColor(parsed, 4.5)),
73
- active: formatThemeColor(deriveContrastingThemeColor(parsed, 7)),
74
- };
75
- }
76
- export class TerminalScrollbarOverlay {
77
- constructor(host, runtime, options, controlledElementId) {
78
- this.host = host;
79
- this.runtime = runtime;
80
- this.fadeTimer = null;
81
- this.autoVisible = false;
82
- this.hovered = false;
83
- this.focused = false;
84
- this.dragging = false;
85
- this.dragPointerId = null;
86
- this.dragCaptureElement = null;
87
- this.dragOffsetPx = 0;
88
- this.disposed = false;
89
- this.onPointerMediaChange = () => {
90
- this.cancelInteraction(false);
91
- this.clearFadeTimer();
92
- this.hovered = false;
93
- this.autoVisible = false;
94
- this.sync();
95
- };
96
- this.onFocus = () => {
97
- this.focused = true;
98
- this.clearFadeTimer();
99
- this.updateVisibility();
100
- };
101
- this.onBlur = () => {
102
- this.focused = false;
103
- this.scheduleAutoHide();
104
- this.updateVisibility();
105
- };
106
- this.onKeyDown = (event) => {
107
- let handled = true;
108
- switch (event.key) {
109
- case 'ArrowUp':
110
- this.runtime.scrollLines(-1);
111
- break;
112
- case 'ArrowDown':
113
- this.runtime.scrollLines(1);
114
- break;
115
- case 'PageUp':
116
- this.runtime.scrollPages(-1);
117
- break;
118
- case 'PageDown':
119
- this.runtime.scrollPages(1);
120
- break;
121
- case 'Home':
122
- this.runtime.scrollToTop();
123
- break;
124
- case 'End':
125
- this.runtime.scrollToBottom();
126
- break;
127
- default:
128
- handled = false;
129
- }
130
- if (!handled)
131
- return;
132
- event.preventDefault();
133
- event.stopPropagation();
134
- this.reveal();
135
- this.sync();
136
- };
137
- this.onPointerDown = (event) => {
138
- if (event.pointerType === 'touch'
139
- || this.isPureCoarsePointer()
140
- || this.root.hidden
141
- || !this.isWithinHitRail(event.clientX, event.clientY))
142
- return;
143
- event.preventDefault();
144
- event.stopPropagation();
145
- this.dragging = true;
146
- this.dragPointerId = event.pointerId;
147
- const thumbTop = Number.parseFloat(this.thumb.style.transform.replace(/[^\d.-]/g, '')) || 0;
148
- const thumbHeight = Number.parseFloat(this.thumb.style.height) || 0;
149
- const localY = clientYToTrackY(this.host, event.clientY);
150
- if (localY >= thumbTop && localY <= thumbTop + thumbHeight) {
151
- this.dragOffsetPx = localY - thumbTop;
152
- }
153
- else {
154
- this.dragOffsetPx = thumbHeight / 2;
155
- this.scrollFromPointer(localY);
156
- }
157
- const captureElement = event.target instanceof Element ? event.target : this.host;
158
- try {
159
- captureElement.setPointerCapture?.(event.pointerId);
160
- this.dragCaptureElement = captureElement;
161
- }
162
- catch {
163
- // Synthetic pointer events do not always have an active browser pointer.
164
- this.dragCaptureElement = null;
165
- }
166
- this.reveal();
167
- };
168
- this.onPointerMove = (event) => {
169
- if (event.pointerType === 'touch' || this.isPureCoarsePointer())
170
- return;
171
- if (!this.dragging) {
172
- const hovered = !this.root.hidden && this.isWithinHitRail(event.clientX, event.clientY);
173
- if (hovered === this.hovered)
174
- return;
175
- this.hovered = hovered;
176
- if (hovered) {
177
- this.clearFadeTimer();
178
- }
179
- else {
180
- this.scheduleAutoHide();
181
- }
182
- this.updateVisibility();
183
- return;
184
- }
185
- if (event.pointerId !== this.dragPointerId)
186
- return;
187
- event.preventDefault();
188
- event.stopPropagation();
189
- const localY = clientYToTrackY(this.host, event.clientY);
190
- this.scrollFromPointer(localY);
191
- };
192
- this.onPointerEnd = (event) => {
193
- if (!this.dragging || (this.dragPointerId !== null && event.pointerId !== this.dragPointerId))
194
- return;
195
- event.preventDefault();
196
- event.stopPropagation();
197
- const hovered = event.type === 'pointerup'
198
- && event.pointerType !== 'touch'
199
- && !this.isPureCoarsePointer()
200
- && !this.root.hidden
201
- && this.isWithinHitRail(event.clientX, event.clientY);
202
- this.cancelInteraction(true);
203
- this.hovered = hovered;
204
- this.scheduleAutoHide();
205
- this.updateVisibility();
206
- };
207
- this.onPointerLeave = () => {
208
- if (this.dragging || !this.hovered)
209
- return;
210
- this.hovered = false;
211
- this.scheduleAutoHide();
212
- this.updateVisibility();
213
- };
214
- this.onLostPointerCapture = (event) => {
215
- if (!this.dragging || (this.dragPointerId !== null && event.pointerId !== this.dragPointerId))
216
- return;
217
- this.cancelInteraction(true);
218
- this.hovered = false;
219
- this.scheduleAutoHide();
220
- this.updateVisibility();
221
- };
222
- this.onWheelActivity = () => {
223
- if (this.root.hidden)
224
- return;
225
- this.reveal();
226
- };
227
- this.options = normalizeTerminalScrollbarOptions(options);
228
- this.root = host.ownerDocument.createElement('div');
229
- this.root.dataset.floetermScrollbar = '';
230
- this.root.dataset.visible = 'false';
231
- this.root.setAttribute('role', 'scrollbar');
232
- this.root.setAttribute('aria-orientation', 'vertical');
233
- this.root.setAttribute('aria-valuemin', '0');
234
- this.root.setAttribute('aria-label', this.options.ariaLabel);
235
- if (controlledElementId)
236
- this.root.setAttribute('aria-controls', controlledElementId);
237
- this.root.tabIndex = -1;
238
- Object.assign(this.root.style, {
239
- position: 'absolute',
240
- top: '0',
241
- right: '0',
242
- bottom: '0',
243
- width: `${TERMINAL_SCROLLBAR_HIT_WIDTH_PX}px`,
244
- zIndex: '6',
245
- outline: 'none',
246
- pointerEvents: 'none',
247
- opacity: '0',
248
- transition: `opacity ${TERMINAL_SCROLLBAR_FADE_DURATION_MS}ms ease`,
249
- });
250
- this.thumb = host.ownerDocument.createElement('div');
251
- this.thumb.dataset.floetermScrollbarThumb = '';
252
- Object.assign(this.thumb.style, {
253
- position: 'absolute',
254
- top: '0',
255
- right: '3px',
256
- width: '5px',
257
- minHeight: '0',
258
- borderRadius: '3px',
259
- background: 'var(--floeterm-scrollbar-thumb-idle, rgb(209, 213, 219))',
260
- transform: 'translateY(0px)',
261
- willChange: 'transform',
262
- });
263
- this.root.appendChild(this.thumb);
264
- this.styleElement = host.ownerDocument.createElement('style');
265
- this.styleElement.dataset.floetermScrollbarStyle = '';
266
- this.styleElement.textContent = `
267
- [data-floeterm-scrollbar]:focus-visible {
268
- outline: 2px solid var(--floeterm-scrollbar-thumb-active, CanvasText) !important;
269
- outline-offset: -2px;
270
- }
271
- [data-floeterm-scrollbar][data-hovered="true"] [data-floeterm-scrollbar-thumb],
272
- [data-floeterm-scrollbar]:focus-visible [data-floeterm-scrollbar-thumb] {
273
- background: var(--floeterm-scrollbar-thumb-hover, rgb(156, 163, 175));
274
- }
275
- [data-floeterm-scrollbar][data-dragging="true"] [data-floeterm-scrollbar-thumb] {
276
- background: var(--floeterm-scrollbar-thumb-active, rgb(107, 114, 128));
277
- }
278
- @media (prefers-reduced-motion: reduce) {
279
- [data-floeterm-scrollbar] { transition: none !important; }
280
- }
281
- @media (forced-colors: active) {
282
- [data-floeterm-scrollbar] {
283
- forced-color-adjust: auto;
284
- outline-color: Highlight !important;
285
- }
286
- [data-floeterm-scrollbar-thumb] {
287
- background: Highlight !important;
288
- border: 1px solid ButtonText;
289
- }
290
- }`;
291
- this.host.appendChild(this.styleElement);
292
- this.host.appendChild(this.root);
293
- const view = host.ownerDocument.defaultView;
294
- this.coarseQuery = view?.matchMedia?.('(any-pointer: coarse)') ?? null;
295
- this.fineQuery = view?.matchMedia?.('(any-pointer: fine)') ?? null;
296
- this.coarseQuery?.addEventListener?.('change', this.onPointerMediaChange);
297
- this.fineQuery?.addEventListener?.('change', this.onPointerMediaChange);
298
- this.root.addEventListener('focus', this.onFocus);
299
- this.root.addEventListener('blur', this.onBlur);
300
- this.root.addEventListener('keydown', this.onKeyDown);
301
- this.host.addEventListener('pointerdown', this.onPointerDown, true);
302
- this.host.addEventListener('pointermove', this.onPointerMove, true);
303
- this.host.addEventListener('pointerleave', this.onPointerLeave);
304
- this.host.addEventListener('pointerup', this.onPointerEnd, true);
305
- this.host.addEventListener('pointercancel', this.onPointerEnd, true);
306
- this.host.addEventListener('lostpointercapture', this.onLostPointerCapture, true);
307
- this.host.addEventListener('wheel', this.onWheelActivity, true);
308
- this.sync();
309
- }
310
- setOptions(options) {
311
- normalizeTerminalScrollbarOptions(options);
312
- const next = normalizeTerminalScrollbarOptions({ ...this.options, ...options });
313
- const visibilityChanged = next.visibility !== this.options.visibility;
314
- this.options = next;
315
- this.root.setAttribute('aria-label', next.ariaLabel);
316
- if (visibilityChanged) {
317
- this.cancelInteraction(false);
318
- this.clearFadeTimer();
319
- this.hovered = false;
320
- this.autoVisible = false;
321
- if (next.visibility === 'hidden')
322
- this.releaseScrollbarFocus();
323
- }
324
- this.sync();
325
- }
326
- setBackgroundColor(background) {
327
- const colors = scrollbarThumbColors(background);
328
- this.root.style.setProperty('--floeterm-scrollbar-thumb-idle', colors.idle);
329
- this.root.style.setProperty('--floeterm-scrollbar-thumb-hover', colors.hover);
330
- this.root.style.setProperty('--floeterm-scrollbar-thumb-active', colors.active);
331
- this.updateThumbAppearance();
332
- }
333
- reveal() {
334
- if (this.disposed || this.effectiveVisibility() === 'hidden')
335
- return;
336
- this.autoVisible = true;
337
- this.updateVisibility();
338
- this.scheduleAutoHide();
339
- }
340
- sync() {
341
- if (this.disposed)
342
- return;
343
- const scrollbackLength = Math.max(0, Math.floor(Number(this.runtime.getScrollbackLength()) || 0));
344
- const alternate = this.runtime.isAlternateScreen();
345
- const trackHeight = Math.max(0, readTrackHeight(this.host));
346
- const unavailable = scrollbackLength === 0
347
- || trackHeight === 0
348
- || alternate
349
- || this.effectiveVisibility() === 'hidden';
350
- if (unavailable) {
351
- this.cancelInteraction(false);
352
- this.clearFadeTimer();
353
- this.hovered = false;
354
- this.autoVisible = false;
355
- this.releaseScrollbarFocus();
356
- this.thumb.style.height = '0px';
357
- this.thumb.style.transform = 'translateY(0px)';
358
- this.root.hidden = true;
359
- this.root.tabIndex = -1;
360
- this.root.setAttribute('aria-hidden', 'true');
361
- this.root.dataset.visible = 'false';
362
- this.root.dataset.hovered = 'false';
363
- this.root.style.opacity = '0';
364
- return;
365
- }
366
- const rows = Math.max(1, Math.floor(Number(this.runtime.rows) || 1));
367
- const viewportY = clamp(Number(this.runtime.getViewportY()) || 0, 0, scrollbackLength);
368
- const naturalValue = scrollbackLength - viewportY;
369
- const proportionalHeight = trackHeight * (rows / (rows + scrollbackLength));
370
- const thumbHeight = Math.min(trackHeight, Math.max(16, this.options.minThumbPx, proportionalHeight));
371
- const travel = Math.max(0, trackHeight - thumbHeight);
372
- const top = scrollbackLength === 0 ? 0 : travel * (naturalValue / scrollbackLength);
373
- this.root.setAttribute('aria-valuemax', String(scrollbackLength));
374
- this.root.setAttribute('aria-valuenow', String(Math.round(naturalValue)));
375
- this.thumb.style.height = cssPx(thumbHeight);
376
- this.thumb.style.transform = `translateY(${cssPx(top)})`;
377
- this.root.hidden = false;
378
- this.root.tabIndex = 0;
379
- this.root.removeAttribute('aria-hidden');
380
- this.updateVisibility();
381
- }
382
- dispose() {
383
- if (this.disposed)
384
- return;
385
- this.disposed = true;
386
- this.cancelInteraction(false);
387
- this.clearFadeTimer();
388
- this.coarseQuery?.removeEventListener?.('change', this.onPointerMediaChange);
389
- this.fineQuery?.removeEventListener?.('change', this.onPointerMediaChange);
390
- this.root.removeEventListener('focus', this.onFocus);
391
- this.root.removeEventListener('blur', this.onBlur);
392
- this.root.removeEventListener('keydown', this.onKeyDown);
393
- this.host.removeEventListener('pointerdown', this.onPointerDown, true);
394
- this.host.removeEventListener('pointermove', this.onPointerMove, true);
395
- this.host.removeEventListener('pointerleave', this.onPointerLeave);
396
- this.host.removeEventListener('pointerup', this.onPointerEnd, true);
397
- this.host.removeEventListener('pointercancel', this.onPointerEnd, true);
398
- this.host.removeEventListener('lostpointercapture', this.onLostPointerCapture, true);
399
- this.host.removeEventListener('wheel', this.onWheelActivity, true);
400
- this.root.remove();
401
- this.styleElement.remove();
402
- }
403
- effectiveVisibility() {
404
- if (this.options.visibility === 'persistent' && this.isPureCoarsePointer()) {
405
- return 'auto';
406
- }
407
- return this.options.visibility;
408
- }
409
- isPureCoarsePointer() {
410
- return Boolean(this.coarseQuery?.matches && !this.fineQuery?.matches);
411
- }
412
- updateVisibility() {
413
- if (this.root.hidden)
414
- return;
415
- const persistent = this.effectiveVisibility() === 'persistent';
416
- const visible = persistent || this.autoVisible || this.hovered || this.focused || this.dragging;
417
- this.root.dataset.visible = String(visible);
418
- this.root.dataset.hovered = String(this.hovered);
419
- this.root.dataset.dragging = String(this.dragging);
420
- this.root.style.opacity = visible ? '1' : '0';
421
- this.updateThumbAppearance();
422
- }
423
- updateThumbAppearance() {
424
- const variable = this.dragging
425
- ? '--floeterm-scrollbar-thumb-active'
426
- : this.hovered || this.focused
427
- ? '--floeterm-scrollbar-thumb-hover'
428
- : '--floeterm-scrollbar-thumb-idle';
429
- this.thumb.style.background = `var(${variable}, rgb(209, 213, 219))`;
430
- }
431
- scheduleAutoHide() {
432
- this.clearFadeTimer();
433
- if (this.effectiveVisibility() !== 'auto' || this.hovered || this.focused || this.dragging)
434
- return;
435
- this.fadeTimer = setTimeout(() => {
436
- this.fadeTimer = null;
437
- this.autoVisible = false;
438
- this.updateVisibility();
439
- }, TERMINAL_SCROLLBAR_AUTO_HIDE_DELAY_MS);
440
- }
441
- clearFadeTimer() {
442
- if (this.fadeTimer === null)
443
- return;
444
- clearTimeout(this.fadeTimer);
445
- this.fadeTimer = null;
446
- }
447
- cancelInteraction(restoreFocus) {
448
- const pointerId = this.dragPointerId;
449
- const captureElement = this.dragCaptureElement;
450
- this.dragging = false;
451
- this.dragPointerId = null;
452
- this.dragCaptureElement = null;
453
- this.dragOffsetPx = 0;
454
- this.root.dataset.dragging = 'false';
455
- if (pointerId !== null) {
456
- try {
457
- if (captureElement?.hasPointerCapture?.(pointerId)) {
458
- captureElement.releasePointerCapture?.(pointerId);
459
- }
460
- }
461
- catch {
462
- // The browser may already have released capture during lifecycle changes.
463
- }
464
- }
465
- if (restoreFocus)
466
- this.runtime.focusTerminal();
467
- }
468
- releaseScrollbarFocus() {
469
- if (this.host.ownerDocument.activeElement === this.root) {
470
- this.root.blur();
471
- this.runtime.focusTerminal();
472
- }
473
- this.focused = false;
474
- }
475
- isWithinHitRail(clientX, clientY) {
476
- const rect = this.host.getBoundingClientRect();
477
- return clientX >= rect.right - TERMINAL_SCROLLBAR_HIT_WIDTH_PX
478
- && clientX <= rect.right
479
- && clientY >= rect.top
480
- && clientY <= rect.bottom;
481
- }
482
- scrollFromPointer(localY) {
483
- const max = Math.max(0, Math.floor(Number(this.runtime.getScrollbackLength()) || 0));
484
- const trackHeight = Math.max(0, readTrackHeight(this.host));
485
- const thumbHeight = Number.parseFloat(this.thumb.style.height) || 0;
486
- const travel = Math.max(0, trackHeight - thumbHeight);
487
- const thumbTop = clamp(localY - this.dragOffsetPx, 0, travel);
488
- const naturalValue = travel === 0 ? max : Math.round((thumbTop / travel) * max);
489
- this.runtime.scrollToLine(max - naturalValue);
490
- this.sync();
491
- }
492
- }
493
- //# sourceMappingURL=TerminalScrollbarOverlay.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TerminalScrollbarOverlay.js","sourceRoot":"","sources":["../../src/core/TerminalScrollbarOverlay.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export { createPagedTerminalOutputCoordinator, preparePagedTerminalHistory, } from '../core/PagedTerminalOutputCoordinator.js';
2
- export type { AtomicPagedTerminalOutputCoordinatorHandle, PagedTerminalCompleteAttachOptions, PagedTerminalHistoryPage, PagedTerminalHistoryRequest, PagedTerminalHistoryTruncationReason, PagedTerminalOutputFailure, PagedTerminalOutputFailureCode, PagedTerminalOutputCoordinatorHandle, PagedTerminalOutputCoordinatorOptions, PagedTerminalOutputPolicy, PagedTerminalOutputScheduler, PagedTerminalOutputSnapshot, PagedTerminalOutputState, PagedTerminalPreparedHistoryOutcome, PagedTerminalPreparedHistoryStatus, PreparedPagedTerminalHistory, PreparePagedTerminalHistoryOptions, } from '../core/PagedTerminalOutputCoordinator.js';
3
- export type { TerminalOutputPipelineChunk, TerminalOutputPipelineScheduler, } from '../core/TerminalOutputPipeline.js';
4
- //# sourceMappingURL=history.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/entries/history.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,2BAA2B,GAC5B,MAAM,2CAA2C,CAAC;AACnD,YAAY,EACV,0CAA0C,EAC1C,kCAAkC,EAClC,wBAAwB,EACxB,2BAA2B,EAC3B,oCAAoC,EACpC,0BAA0B,EAC1B,8BAA8B,EAC9B,oCAAoC,EACpC,qCAAqC,EACrC,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,mCAAmC,EACnC,kCAAkC,EAClC,4BAA4B,EAC5B,kCAAkC,GACnC,MAAM,2CAA2C,CAAC;AACnD,YAAY,EACV,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,mCAAmC,CAAC"}
@@ -1,2 +0,0 @@
1
- export { createPagedTerminalOutputCoordinator, preparePagedTerminalHistory, } from '../core/PagedTerminalOutputCoordinator.js';
2
- //# sourceMappingURL=history.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/entries/history.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,2BAA2B,GAC5B,MAAM,2CAA2C,CAAC"}
@@ -1,3 +0,0 @@
1
- export { preloadTerminalResources } from '../internal/TerminalResourceLoader.js';
2
- export type { Logger, TerminalResourcePreloadOptions } from '../types.js';
3
- //# sourceMappingURL=preload.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../../src/entries/preload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,YAAY,EAAE,MAAM,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC"}
@@ -1,2 +0,0 @@
1
- export { preloadTerminalResources } from '../internal/TerminalResourceLoader.js';
2
- //# sourceMappingURL=preload.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preload.js","sourceRoot":"","sources":["../../src/entries/preload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC"}
@@ -1,67 +0,0 @@
1
- import type { TerminalFabricCell, TerminalFabricCursor, TerminalFabricDiagnostics, TerminalFabricFrame, TerminalFabricFrameRenderResult, TerminalFabricGeometry, TerminalFabricRenderer, TerminalFabricRendererTarget, TerminalFabricRowRenderHints, TerminalFabricSourceCell, TerminalFabricSourceRenderer, TerminalFabricTheme } from './types.js';
2
- import { type BeamtermModule } from '../internal/BeamtermResourceLoader.js';
3
- export { loadBeamtermModule } from '../internal/BeamtermResourceLoader.js';
4
- export type { BeamtermModule } from '../internal/BeamtermResourceLoader.js';
5
- export type BeamtermRendererInstance = InstanceType<BeamtermModule['BeamtermRenderer']>;
6
- type BeamtermCellStyle = InstanceType<BeamtermModule['CellStyle']>;
7
- type BeamtermCell = InstanceType<BeamtermModule['Cell']>;
8
- export declare const parseHexColor: (value: string | undefined, fallback: number) => number;
9
- export declare const formatHexColor: (value: number) => string;
10
- export declare const createStyle: (module: BeamtermModule, cell: TerminalFabricCell, defaultTheme: TerminalFabricTheme, cache?: Map<string, BeamtermCellStyle>) => BeamtermCellStyle;
11
- export declare const hasWebGL2: () => boolean;
12
- export declare const createBeamtermRenderer: (module: BeamtermModule, canvas: HTMLCanvasElement, fontFamilies: string[], fontSize: number) => BeamtermRendererInstance;
13
- export declare const createCell: (module: BeamtermModule, symbol: string, style: BeamtermCellStyle) => BeamtermCell;
14
- export declare class BeamtermFabricRenderer implements TerminalFabricRenderer {
15
- readonly backend: "beamterm_webgl2";
16
- readonly renderPath: "main_thread_webgl2";
17
- private module;
18
- private renderer;
19
- private frameBatch;
20
- private target;
21
- private canvas;
22
- private visible;
23
- private initialized;
24
- private fontFamilies;
25
- private fontSize;
26
- private currentTheme;
27
- private readonly styleCache;
28
- private lastRenderedRows;
29
- private lastDirtyCells;
30
- private geometry;
31
- private surfaceBackgroundCss;
32
- private hostInlineBackgroundColor;
33
- private sourceGridCoverage;
34
- private surfaceCoverageKey;
35
- private pendingFullClearCoverage;
36
- private readonly resolvedCell;
37
- private readonly resolvedLookahead;
38
- initialize(target: TerminalFabricRendererTarget): Promise<void>;
39
- isActive(): boolean;
40
- startFrame(frame: TerminalFabricFrame, options: {
41
- cols: number;
42
- rows: number;
43
- theme: TerminalFabricTheme;
44
- }): void;
45
- writeRow(sourceRenderer: TerminalFabricSourceRenderer, row: number, cells: readonly TerminalFabricSourceCell[], cols: number, hints?: TerminalFabricRowRenderHints): void;
46
- finishFrame(cursor: TerminalFabricCursor | null): TerminalFabricFrameRenderResult;
47
- finishSubmittedFrame(): void;
48
- resize(width: number, height: number): void;
49
- getGeometry(): TerminalFabricGeometry | null;
50
- setAppearance(appearance: {
51
- fontFamily?: string;
52
- fontSize?: number;
53
- theme?: Record<string, string>;
54
- }): void;
55
- setVisible(visible: boolean): void;
56
- loseContextForTest(): void;
57
- getDiagnostics(): TerminalFabricDiagnostics;
58
- dispose(): void;
59
- private syncBackgroundSurface;
60
- private paintOutsideSourceGrid;
61
- private recordSurfaceCoverage;
62
- private restoreBackgroundSurface;
63
- private installEventForwarding;
64
- }
65
- export declare const sameRenderableStyle: (left: TerminalFabricCell, right: TerminalFabricCell) => boolean;
66
- export declare const normalizeFontFamilies: (fontFamily: string) => string[];
67
- //# sourceMappingURL=BeamtermFabricRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BeamtermFabricRenderer.d.ts","sourceRoot":"","sources":["../../src/fabric/BeamtermFabricRenderer.ts"],"names":[],"mappings":"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"}