@next_term/web 0.1.0-next.0 → 0.1.0-next.11
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.
- package/LICENSE +21 -0
- package/README.md +222 -0
- package/dist/accessibility.d.ts +2 -4
- package/dist/accessibility.d.ts.map +1 -1
- package/dist/accessibility.js +2 -7
- package/dist/accessibility.js.map +1 -1
- package/dist/addon.d.ts +9 -0
- package/dist/addons/fit.d.ts +23 -0
- package/dist/addons/web-links.d.ts +0 -1
- package/dist/addons/web-links.d.ts.map +1 -1
- package/dist/addons/web-links.js +0 -4
- package/dist/addons/web-links.js.map +1 -1
- package/dist/fit.d.ts +9 -0
- package/dist/fit.d.ts.map +1 -1
- package/dist/fit.js +9 -1
- package/dist/fit.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/input-handler.d.ts +7 -0
- package/dist/input-handler.d.ts.map +1 -1
- package/dist/input-handler.js +36 -5
- package/dist/input-handler.js.map +1 -1
- package/dist/parser-worker.d.ts +34 -0
- package/dist/parser-worker.d.ts.map +1 -1
- package/dist/parser-worker.js +4 -17
- package/dist/parser-worker.js.map +1 -1
- package/dist/render-bridge.d.ts +3 -1
- package/dist/render-bridge.d.ts.map +1 -1
- package/dist/render-bridge.js +5 -1
- package/dist/render-bridge.js.map +1 -1
- package/dist/render-worker.d.ts +4 -0
- package/dist/render-worker.d.ts.map +1 -1
- package/dist/render-worker.js +211 -98
- package/dist/render-worker.js.map +1 -1
- package/dist/renderer.d.ts +7 -1
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderer.js +21 -6
- package/dist/renderer.js.map +1 -1
- package/dist/shared-context.d.ts +38 -9
- package/dist/shared-context.d.ts.map +1 -1
- package/dist/shared-context.js +491 -193
- package/dist/shared-context.js.map +1 -1
- package/dist/web-terminal.d.ts +26 -1
- package/dist/web-terminal.d.ts.map +1 -1
- package/dist/web-terminal.js +140 -18
- package/dist/web-terminal.js.map +1 -1
- package/dist/webgl-renderer.d.ts +33 -7
- package/dist/webgl-renderer.d.ts.map +1 -1
- package/dist/webgl-renderer.js +372 -139
- package/dist/webgl-renderer.js.map +1 -1
- package/dist/webgl-utils.d.ts +4 -0
- package/dist/webgl-utils.d.ts.map +1 -0
- package/dist/webgl-utils.js +19 -0
- package/dist/webgl-utils.js.map +1 -0
- package/dist/worker-bridge.d.ts +7 -2
- package/dist/worker-bridge.d.ts.map +1 -1
- package/dist/worker-bridge.js +41 -13
- package/dist/worker-bridge.js.map +1 -1
- package/package.json +6 -6
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Rahul Pandita
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# @next_term/web
|
|
2
|
+
|
|
3
|
+
Core web engine for react-term. Use this package directly when you need full control without React, or when building framework-agnostic integrations.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @next_term/web @next_term/core
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Basic Usage
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import { WebTerminal } from "@next_term/web";
|
|
15
|
+
|
|
16
|
+
const container = document.getElementById("terminal")!;
|
|
17
|
+
|
|
18
|
+
const terminal = new WebTerminal(container, {
|
|
19
|
+
cols: 120,
|
|
20
|
+
rows: 36,
|
|
21
|
+
fontSize: 14,
|
|
22
|
+
fontFamily: "monospace",
|
|
23
|
+
scrollback: 5000,
|
|
24
|
+
onData: (data) => ws.send(data),
|
|
25
|
+
onResize: ({ cols, rows }) => ws.send(`\x1b[8;${rows};${cols}t`),
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
// Write data from your backend
|
|
29
|
+
ws.onmessage = (e) => terminal.write(new Uint8Array(e.data));
|
|
30
|
+
|
|
31
|
+
// Fit to container
|
|
32
|
+
terminal.fit();
|
|
33
|
+
|
|
34
|
+
// Clean up
|
|
35
|
+
terminal.dispose();
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Multi-Pane with SharedWebGLContext
|
|
39
|
+
|
|
40
|
+
For multiple terminals on one page, use `SharedWebGLContext` to share a single WebGL context. This avoids Chrome's 16-context limit and is more GPU-efficient.
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
import { WebTerminal, SharedWebGLContext } from "@next_term/web";
|
|
44
|
+
|
|
45
|
+
// 1. Create the shared context
|
|
46
|
+
const sharedCtx = new SharedWebGLContext({
|
|
47
|
+
fontSize: 13,
|
|
48
|
+
fontFamily: "monospace",
|
|
49
|
+
theme: { background: "#1e1e2e", foreground: "#cdd6f4" },
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
// 2. Add the shared canvas as an overlay on your container
|
|
53
|
+
const overlay = sharedCtx.getCanvas();
|
|
54
|
+
overlay.style.cssText = "position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1";
|
|
55
|
+
container.style.position = "relative";
|
|
56
|
+
container.appendChild(overlay);
|
|
57
|
+
|
|
58
|
+
// 3. Initialize the GL context (must be after canvas is in the DOM)
|
|
59
|
+
sharedCtx.init();
|
|
60
|
+
|
|
61
|
+
// 4. Create terminals with the shared context
|
|
62
|
+
const term1 = new WebTerminal(pane1, {
|
|
63
|
+
fontSize: 13,
|
|
64
|
+
fontFamily: "monospace",
|
|
65
|
+
sharedContext: sharedCtx,
|
|
66
|
+
paneId: "pane-1",
|
|
67
|
+
useWorker: true,
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
const term2 = new WebTerminal(pane2, {
|
|
71
|
+
fontSize: 13,
|
|
72
|
+
fontFamily: "monospace",
|
|
73
|
+
sharedContext: sharedCtx,
|
|
74
|
+
paneId: "pane-2",
|
|
75
|
+
useWorker: true,
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
// 5. Set viewport positions (CSS pixels, not device pixels)
|
|
79
|
+
// SharedWebGLContext multiplies by devicePixelRatio internally
|
|
80
|
+
const containerRect = container.getBoundingClientRect();
|
|
81
|
+
const pane1Rect = pane1.getBoundingClientRect();
|
|
82
|
+
sharedCtx.setViewport(
|
|
83
|
+
"pane-1",
|
|
84
|
+
pane1Rect.left - containerRect.left, // CSS pixels
|
|
85
|
+
pane1Rect.top - containerRect.top, // CSS pixels
|
|
86
|
+
pane1Rect.width, // CSS pixels
|
|
87
|
+
pane1Rect.height, // CSS pixels
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
// 6. Sync canvas size and start the single render loop
|
|
91
|
+
sharedCtx.syncCanvasSize(containerRect.width, containerRect.height);
|
|
92
|
+
sharedCtx.startRenderLoop();
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Addons
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
import { FitAddon, SearchAddon, WebLinksAddon } from "@next_term/web";
|
|
99
|
+
|
|
100
|
+
// Fit terminal to container
|
|
101
|
+
const fitAddon = new FitAddon();
|
|
102
|
+
terminal.loadAddon(fitAddon);
|
|
103
|
+
fitAddon.fit();
|
|
104
|
+
|
|
105
|
+
// Search
|
|
106
|
+
const searchAddon = new SearchAddon();
|
|
107
|
+
terminal.loadAddon(searchAddon);
|
|
108
|
+
searchAddon.findNext("error", { caseSensitive: false, regex: true });
|
|
109
|
+
|
|
110
|
+
// Clickable URLs
|
|
111
|
+
const webLinksAddon = new WebLinksAddon();
|
|
112
|
+
terminal.loadAddon(webLinksAddon);
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Configuration Guide
|
|
116
|
+
|
|
117
|
+
### Renderer Selection
|
|
118
|
+
|
|
119
|
+
| Value | Behavior |
|
|
120
|
+
|-------|----------|
|
|
121
|
+
| `"auto"` (default) | WebGL2 if available and not software-rendered, else Canvas2D |
|
|
122
|
+
| `"webgl"` | Force WebGL2 (throws if unavailable) |
|
|
123
|
+
| `"canvas2d"` | Force Canvas2D |
|
|
124
|
+
|
|
125
|
+
Auto-detection excludes software renderers (SwiftShader, llvmpipe) where Canvas2D is faster.
|
|
126
|
+
|
|
127
|
+
### Render Mode
|
|
128
|
+
|
|
129
|
+
Controls where **rendering** happens (independent of `useWorker` which controls parsing):
|
|
130
|
+
|
|
131
|
+
| Value | Rendering | Best for |
|
|
132
|
+
|-------|-----------|----------|
|
|
133
|
+
| `"auto"` (default) | OffscreenCanvas worker if SAB + OffscreenCanvas available, else main thread | Production |
|
|
134
|
+
| `"main"` | Main thread | Debugging, Playwright screenshots |
|
|
135
|
+
| `"offscreen"` | OffscreenCanvas worker (throws if unavailable) | Guaranteed off-thread rendering |
|
|
136
|
+
|
|
137
|
+
### Worker Mode
|
|
138
|
+
|
|
139
|
+
| `useWorker` | Behavior |
|
|
140
|
+
|-------------|----------|
|
|
141
|
+
| `true` | VT parser runs in Web Worker via SharedArrayBuffer |
|
|
142
|
+
| `false` | VT parser runs on main thread |
|
|
143
|
+
| `undefined` (default) | Auto: uses worker when SharedArrayBuffer is available |
|
|
144
|
+
|
|
145
|
+
## Best Practices
|
|
146
|
+
|
|
147
|
+
### SharedWebGLContext Viewport Coordinates
|
|
148
|
+
|
|
149
|
+
`setViewport()` expects **CSS pixels**. The context handles devicePixelRatio multiplication internally. Passing device pixels will result in incorrect positioning.
|
|
150
|
+
|
|
151
|
+
```ts
|
|
152
|
+
// Correct
|
|
153
|
+
sharedCtx.setViewport(id, rect.left - parent.left, rect.top - parent.top, rect.width, rect.height);
|
|
154
|
+
|
|
155
|
+
// Wrong -- double-scaled on HiDPI
|
|
156
|
+
sharedCtx.setViewport(id, x * dpr, y * dpr, w * dpr, h * dpr);
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Web Font Loading
|
|
160
|
+
|
|
161
|
+
The terminal automatically loads web fonts declared via `@font-face` using the CSS Font Loading API. The first render may use a fallback font, then re-renders once the web font loads (FOUT behavior).
|
|
162
|
+
|
|
163
|
+
- Always include a generic fallback: `"'Fira Code', monospace"`
|
|
164
|
+
- Generic families (`monospace`, `serif`, `sans-serif`, `system-ui`, `ui-monospace`) are never loaded -- they're always available
|
|
165
|
+
- If a font fails to load, the terminal continues with the fallback
|
|
166
|
+
|
|
167
|
+
### Color Formats
|
|
168
|
+
|
|
169
|
+
`theme` colors accept any CSS color format:
|
|
170
|
+
|
|
171
|
+
```ts
|
|
172
|
+
const theme = {
|
|
173
|
+
background: "#1e1e2e", // hex
|
|
174
|
+
foreground: "rgb(205, 214, 244)",// rgb()
|
|
175
|
+
cursor: "oklch(0.8 0.1 330)", // oklch()
|
|
176
|
+
red: "salmon", // named
|
|
177
|
+
};
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Resize Clamping
|
|
181
|
+
|
|
182
|
+
`WebTerminal` clamps dimensions to 500 columns x 500 rows. Requests above this are silently clamped. The `onResize` callback fires with the clamped values.
|
|
183
|
+
|
|
184
|
+
### Cleanup
|
|
185
|
+
|
|
186
|
+
Always call `dispose()` when removing a terminal:
|
|
187
|
+
|
|
188
|
+
```ts
|
|
189
|
+
terminal.dispose();
|
|
190
|
+
// For shared context:
|
|
191
|
+
sharedCtx.stopRenderLoop();
|
|
192
|
+
sharedCtx.dispose();
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Key Exports
|
|
196
|
+
|
|
197
|
+
```ts
|
|
198
|
+
// Terminal
|
|
199
|
+
export { WebTerminal, SharedWebGLContext } from "@next_term/web";
|
|
200
|
+
export type { WebTerminalOptions } from "@next_term/web";
|
|
201
|
+
|
|
202
|
+
// Renderers
|
|
203
|
+
export { Canvas2DRenderer, WebGLRenderer, createRenderer } from "@next_term/web";
|
|
204
|
+
export type { IRenderer, RendererOptions } from "@next_term/web";
|
|
205
|
+
|
|
206
|
+
// Addons
|
|
207
|
+
export { FitAddon, SearchAddon, WebLinksAddon } from "@next_term/web";
|
|
208
|
+
|
|
209
|
+
// Utilities
|
|
210
|
+
export { calculateFit, InputHandler, WorkerBridge, RenderBridge } from "@next_term/web";
|
|
211
|
+
export { AccessibilityManager, GlyphAtlas, hexToFloat4 } from "@next_term/web";
|
|
212
|
+
|
|
213
|
+
// Re-exported from @next_term/core
|
|
214
|
+
export type { Theme, CursorState, TerminalOptions } from "@next_term/web";
|
|
215
|
+
export { DEFAULT_THEME, CellGrid } from "@next_term/web";
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
See the full export list in [src/index.ts](src/index.ts).
|
|
219
|
+
|
|
220
|
+
## License
|
|
221
|
+
|
|
222
|
+
MIT
|
package/dist/accessibility.d.ts
CHANGED
|
@@ -19,14 +19,12 @@ export declare class AccessibilityManager {
|
|
|
19
19
|
private rowElements;
|
|
20
20
|
private grid;
|
|
21
21
|
private rows;
|
|
22
|
-
private cols;
|
|
23
|
-
private container;
|
|
24
22
|
private disposed;
|
|
25
23
|
/** Throttle interval in milliseconds (10 Hz). */
|
|
26
24
|
private static readonly THROTTLE_MS;
|
|
27
25
|
private throttleTimer;
|
|
28
26
|
private updateScheduled;
|
|
29
|
-
constructor(container: HTMLElement, grid: CellGrid, rows: number,
|
|
27
|
+
constructor(container: HTMLElement, grid: CellGrid, rows: number, _cols: number);
|
|
30
28
|
/**
|
|
31
29
|
* Update the accessibility tree for dirty rows.
|
|
32
30
|
* Throttled to 10 Hz — safe to call on every render frame.
|
|
@@ -39,7 +37,7 @@ export declare class AccessibilityManager {
|
|
|
39
37
|
/**
|
|
40
38
|
* Replace the grid reference (e.g. after resize).
|
|
41
39
|
*/
|
|
42
|
-
setGrid(grid: CellGrid, rows: number,
|
|
40
|
+
setGrid(grid: CellGrid, rows: number, _cols: number): void;
|
|
43
41
|
dispose(): void;
|
|
44
42
|
private performUpdate;
|
|
45
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../src/accessibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAMhD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAQlE;AAMD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../src/accessibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAMhD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAQlE;AAMD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAS;IAEzB,iDAAiD;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAO;IAE1C,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,eAAe,CAAS;gBAEpB,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IA6D/E;;;OAGG;IACH,MAAM,IAAI,IAAI;IAoBd;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAQ,GAAG,WAAsB,GAAG,IAAI;IAgBzE;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAuB1D,OAAO,IAAI,IAAI;IAuBf,OAAO,CAAC,aAAa;CAatB"}
|
package/dist/accessibility.js
CHANGED
|
@@ -32,18 +32,14 @@ export class AccessibilityManager {
|
|
|
32
32
|
rowElements;
|
|
33
33
|
grid;
|
|
34
34
|
rows;
|
|
35
|
-
cols;
|
|
36
|
-
container;
|
|
37
35
|
disposed = false;
|
|
38
36
|
/** Throttle interval in milliseconds (10 Hz). */
|
|
39
37
|
static THROTTLE_MS = 100;
|
|
40
38
|
throttleTimer = null;
|
|
41
39
|
updateScheduled = false;
|
|
42
|
-
constructor(container, grid, rows,
|
|
40
|
+
constructor(container, grid, rows, _cols) {
|
|
43
41
|
this.grid = grid;
|
|
44
42
|
this.rows = rows;
|
|
45
|
-
this.cols = cols;
|
|
46
|
-
this.container = container;
|
|
47
43
|
// Create the off-screen accessibility tree container.
|
|
48
44
|
// It is positioned absolutely, transparent, and ignores pointer events
|
|
49
45
|
// so it does not interfere with the canvas rendering.
|
|
@@ -138,10 +134,9 @@ export class AccessibilityManager {
|
|
|
138
134
|
/**
|
|
139
135
|
* Replace the grid reference (e.g. after resize).
|
|
140
136
|
*/
|
|
141
|
-
setGrid(grid, rows,
|
|
137
|
+
setGrid(grid, rows, _cols) {
|
|
142
138
|
this.grid = grid;
|
|
143
139
|
this.rows = rows;
|
|
144
|
-
this.cols = cols;
|
|
145
140
|
// Rebuild row elements if the count changed
|
|
146
141
|
while (this.rowElements.length > rows) {
|
|
147
142
|
const el = this.rowElements.pop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../src/accessibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAc,EAAE,GAAW;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,MAAM,OAAO,oBAAoB;IACvB,UAAU,CAAc;IACxB,aAAa,CAAc;IAC3B,WAAW,CAAgB;IAC3B,IAAI,CAAW;IACf,IAAI,CAAS;IACb,
|
|
1
|
+
{"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../src/accessibility.ts"],"names":[],"mappings":"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"}
|
package/dist/addon.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ITerminalAddon } from "../addon.js";
|
|
2
|
+
import type { WebTerminal } from "../web-terminal.js";
|
|
3
|
+
/**
|
|
4
|
+
* Addon that fits the terminal to its container element.
|
|
5
|
+
*/
|
|
6
|
+
export declare class FitAddon implements ITerminalAddon {
|
|
7
|
+
private terminal;
|
|
8
|
+
activate(terminal: WebTerminal): void;
|
|
9
|
+
dispose(): void;
|
|
10
|
+
/**
|
|
11
|
+
* Calculate the dimensions that would fit the terminal's container.
|
|
12
|
+
* Returns null if the terminal is not attached or dimensions can't be calculated.
|
|
13
|
+
*/
|
|
14
|
+
proposeDimensions(): {
|
|
15
|
+
cols: number;
|
|
16
|
+
rows: number;
|
|
17
|
+
} | null;
|
|
18
|
+
/**
|
|
19
|
+
* Fit the terminal to its container by resizing.
|
|
20
|
+
*/
|
|
21
|
+
fit(): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=fit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-links.d.ts","sourceRoot":"","sources":["../../src/addons/web-links.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAwBD;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE,CA4BrD;AAMD,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"web-links.d.ts","sourceRoot":"","sources":["../../src/addons/web-links.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAwBD;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE,CA4BrD;AAMD,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,gBAAgB,CAA0C;IAClE,OAAO,CAAC,YAAY,CAA0C;gBAElD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;IAW3C,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAcrC,OAAO,IAAI,IAAI;IAwBf,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,OAAO;CAchB"}
|
package/dist/addons/web-links.js
CHANGED
|
@@ -54,7 +54,6 @@ export class WebLinksAddon {
|
|
|
54
54
|
terminal = null;
|
|
55
55
|
handler;
|
|
56
56
|
links = [];
|
|
57
|
-
currentHoverLink = null;
|
|
58
57
|
mouseMoveHandler = null;
|
|
59
58
|
clickHandler = null;
|
|
60
59
|
constructor(handler) {
|
|
@@ -94,7 +93,6 @@ export class WebLinksAddon {
|
|
|
94
93
|
}
|
|
95
94
|
this.terminal = null;
|
|
96
95
|
this.links = [];
|
|
97
|
-
this.currentHoverLink = null;
|
|
98
96
|
this.mouseMoveHandler = null;
|
|
99
97
|
this.clickHandler = null;
|
|
100
98
|
}
|
|
@@ -145,12 +143,10 @@ export class WebLinksAddon {
|
|
|
145
143
|
if (link) {
|
|
146
144
|
if (container)
|
|
147
145
|
container.style.cursor = "pointer";
|
|
148
|
-
this.currentHoverLink = link;
|
|
149
146
|
}
|
|
150
147
|
else {
|
|
151
148
|
if (container)
|
|
152
149
|
container.style.cursor = "";
|
|
153
|
-
this.currentHoverLink = null;
|
|
154
150
|
}
|
|
155
151
|
}
|
|
156
152
|
onClick(e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-links.js","sourceRoot":"","sources":["../../src/addons/web-links.ts"],"names":[],"mappings":"AAeA,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,SAAS,GAAG,iCAAiC,CAAC;AAEpD;;GAEG;AACH,SAAS,cAAc,CAAC,IAAc,EAAE,GAAW;IACjD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACvC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QACxB,IAAI,CAAyB,CAAC;QAE9B,OAAO,IAAI,EAAE,CAAC;YACZ,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,IAAI;gBAAE,MAAM;YACtB,+DAA+D;YAC/D,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjD,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAE/B,KAAK,CAAC,IAAI,CAAC;gBACT,GAAG;gBACH,QAAQ,EAAE,CAAC,CAAC,KAAK;gBACjB,MAAM,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC;gBAChC,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,OAAO,aAAa;IAChB,QAAQ,GAAuB,IAAI,CAAC;IACpC,OAAO,CAAwB;IAC/B,KAAK,GAAgB,EAAE,CAAC;IACxB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"web-links.js","sourceRoot":"","sources":["../../src/addons/web-links.ts"],"names":[],"mappings":"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"}
|
package/dist/fit.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculate how many terminal columns/rows fit in a container element.
|
|
3
|
+
* Subtracts CSS padding so the canvas fits inside the content box.
|
|
4
|
+
*/
|
|
5
|
+
export declare function calculateFit(container: HTMLElement, cellWidth: number, cellHeight: number): {
|
|
6
|
+
cols: number;
|
|
7
|
+
rows: number;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=fit.d.ts.map
|
package/dist/fit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fit.d.ts","sourceRoot":"","sources":["../src/fit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"fit.d.ts","sourceRoot":"","sources":["../src/fit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,WAAW,EACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAqBhC"}
|
package/dist/fit.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Calculate how many terminal columns/rows fit in a container element.
|
|
3
|
+
* Subtracts CSS padding so the canvas fits inside the content box.
|
|
3
4
|
*/
|
|
4
5
|
export function calculateFit(container, cellWidth, cellHeight) {
|
|
5
|
-
const
|
|
6
|
+
const rect = container.getBoundingClientRect();
|
|
7
|
+
let width = rect.width;
|
|
8
|
+
let height = rect.height;
|
|
9
|
+
if (typeof getComputedStyle === "function") {
|
|
10
|
+
const style = getComputedStyle(container);
|
|
11
|
+
width -= (parseFloat(style.paddingLeft) || 0) + (parseFloat(style.paddingRight) || 0);
|
|
12
|
+
height -= (parseFloat(style.paddingTop) || 0) + (parseFloat(style.paddingBottom) || 0);
|
|
13
|
+
}
|
|
6
14
|
const cols = Math.max(2, Math.floor(width / cellWidth));
|
|
7
15
|
const rows = Math.max(1, Math.floor(height / cellHeight));
|
|
8
16
|
// Guard against Infinity/NaN — critical gotcha from xterm.js
|
package/dist/fit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fit.js","sourceRoot":"","sources":["../src/fit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"fit.js","sourceRoot":"","sources":["../src/fit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAsB,EACtB,SAAiB,EACjB,UAAkB;IAElB,MAAM,IAAI,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;IAE/C,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACvB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAEzB,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC1C,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACtF,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAE1D,6DAA6D;IAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAChC,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -20,5 +20,6 @@ export type { WebTerminalOptions } from "./web-terminal.js";
|
|
|
20
20
|
export { WebTerminal } from "./web-terminal.js";
|
|
21
21
|
export type { GlyphInfo } from "./webgl-renderer.js";
|
|
22
22
|
export { createRenderer, GlyphAtlas, hexToFloat4, WebGLRenderer } from "./webgl-renderer.js";
|
|
23
|
+
export { type ColorFloat4, resolveColorFloat } from "./webgl-utils.js";
|
|
23
24
|
export { WorkerBridge } from "./worker-bridge.js";
|
|
24
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EACL,SAAS,EACT,QAAQ,EACR,aAAa,EACb,WAAW,EACX,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE1E,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EACL,SAAS,EACT,QAAQ,EACR,aAAa,EACb,WAAW,EACX,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE1E,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,5 +10,6 @@ export { build256Palette, Canvas2DRenderer } from "./renderer.js";
|
|
|
10
10
|
export { SharedWebGLContext } from "./shared-context.js";
|
|
11
11
|
export { WebTerminal } from "./web-terminal.js";
|
|
12
12
|
export { createRenderer, GlyphAtlas, hexToFloat4, WebGLRenderer } from "./webgl-renderer.js";
|
|
13
|
+
export { resolveColorFloat } from "./webgl-utils.js";
|
|
13
14
|
export { WorkerBridge } from "./worker-bridge.js";
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,QAAQ,EACR,aAAa,EACb,WAAW,EACX,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG1E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,QAAQ,EACR,aAAa,EACb,WAAW,EACX,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG1E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAoB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/input-handler.d.ts
CHANGED
|
@@ -151,6 +151,13 @@ export declare class InputHandler {
|
|
|
151
151
|
* Sub-parameters equal to the main codepoint are omitted.
|
|
152
152
|
*/
|
|
153
153
|
private _kittyAltParam;
|
|
154
|
+
/**
|
|
155
|
+
* Associated text sub-parameter for flag 16 (report associated text).
|
|
156
|
+
*
|
|
157
|
+
* Returns the `;codepoint` third-parameter suffix for keys that produce text,
|
|
158
|
+
* or `""` when flag 16 is inactive or the key produces no associated text.
|
|
159
|
+
*/
|
|
160
|
+
private _kittyTextParam;
|
|
154
161
|
private handleFocus;
|
|
155
162
|
private handleBlur;
|
|
156
163
|
private getMouseCellPos;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-handler.d.ts","sourceRoot":"","sources":["../src/input-handler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"input-handler.d.ts","sourceRoot":"","sources":["../src/input-handler.ts"],"names":[],"mappings":"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"}
|
package/dist/input-handler.js
CHANGED
|
@@ -652,12 +652,12 @@ export class InputHandler {
|
|
|
652
652
|
}
|
|
653
653
|
// Shift+Tab → CSI 9 ; 2 u
|
|
654
654
|
if (key === "Tab" && shiftKey) {
|
|
655
|
-
return `\x1b[9;${mod}${et}u`;
|
|
655
|
+
return `\x1b[9;${mod}${et}${this._kittyTextParam("Tab")}u`;
|
|
656
656
|
}
|
|
657
657
|
// Modifier + single printable character → CSI codepoint[:alt] ; mod u
|
|
658
658
|
// Flag 8 (report all keys as escape codes) also encodes unmodified/shift-only chars.
|
|
659
659
|
if (key.length === 1 && ((hasModifier && (ctrlKey || altKey)) || this.kittyFlags & 8)) {
|
|
660
|
-
return `\x1b[${key.charCodeAt(0)}${this._kittyAltParam(key)};${mod}${et}u`;
|
|
660
|
+
return `\x1b[${key.charCodeAt(0)}${this._kittyAltParam(key)};${mod}${et}${this._kittyTextParam(key)}u`;
|
|
661
661
|
}
|
|
662
662
|
// Modified cursor keys → CSI 1 ; mod <letter>
|
|
663
663
|
if (hasModifier) {
|
|
@@ -717,11 +717,11 @@ export class InputHandler {
|
|
|
717
717
|
if (this.kittyFlags & 8) {
|
|
718
718
|
switch (key) {
|
|
719
719
|
case "Enter":
|
|
720
|
-
return `\x1b[13;1${et}u`;
|
|
720
|
+
return `\x1b[13;1${et}${this._kittyTextParam("Enter")}u`;
|
|
721
721
|
case "Tab":
|
|
722
|
-
return `\x1b[9;1${et}u`;
|
|
722
|
+
return `\x1b[9;1${et}${this._kittyTextParam("Tab")}u`;
|
|
723
723
|
case "Backspace":
|
|
724
|
-
return `\x1b[127;1${et}u`;
|
|
724
|
+
return `\x1b[127;1${et}${this._kittyTextParam("Backspace")}u`;
|
|
725
725
|
}
|
|
726
726
|
}
|
|
727
727
|
// Legacy sequences don't support release events — return null on keyup (eventType=3).
|
|
@@ -810,6 +810,27 @@ export class InputHandler {
|
|
|
810
810
|
return `:${alt1}`;
|
|
811
811
|
return `:${alt1}:${alt2}`;
|
|
812
812
|
}
|
|
813
|
+
/**
|
|
814
|
+
* Associated text sub-parameter for flag 16 (report associated text).
|
|
815
|
+
*
|
|
816
|
+
* Returns the `;codepoint` third-parameter suffix for keys that produce text,
|
|
817
|
+
* or `""` when flag 16 is inactive or the key produces no associated text.
|
|
818
|
+
*/
|
|
819
|
+
_kittyTextParam(key) {
|
|
820
|
+
if (!(this.kittyFlags & 16))
|
|
821
|
+
return "";
|
|
822
|
+
if (key.length === 1)
|
|
823
|
+
return `;${key.charCodeAt(0)}`;
|
|
824
|
+
switch (key) {
|
|
825
|
+
case "Enter":
|
|
826
|
+
return ";13";
|
|
827
|
+
case "Tab":
|
|
828
|
+
return ";9";
|
|
829
|
+
case "Backspace":
|
|
830
|
+
return ";127";
|
|
831
|
+
}
|
|
832
|
+
return "";
|
|
833
|
+
}
|
|
813
834
|
// -----------------------------------------------------------------------
|
|
814
835
|
// Focus / blur events (mode 1004)
|
|
815
836
|
// -----------------------------------------------------------------------
|
|
@@ -924,6 +945,16 @@ export class InputHandler {
|
|
|
924
945
|
const button = e.deltaY < 0 ? 64 : 65;
|
|
925
946
|
this.onData(toBytes(this.encodeMouseEvent(button, pos.col, pos.row)));
|
|
926
947
|
}
|
|
948
|
+
else if (this.onScroll && this.cellHeight > 0) {
|
|
949
|
+
// Normal mode — scroll the viewport through scrollback history.
|
|
950
|
+
// Negate deltaY: wheel-up (deltaY < 0) should scroll back (positive),
|
|
951
|
+
// matching the GestureHandler convention used by scrollViewport.
|
|
952
|
+
e.preventDefault();
|
|
953
|
+
const lines = Math.round(-e.deltaY / this.cellHeight);
|
|
954
|
+
if (lines !== 0) {
|
|
955
|
+
this.onScroll(lines);
|
|
956
|
+
}
|
|
957
|
+
}
|
|
927
958
|
}
|
|
928
959
|
// -----------------------------------------------------------------------
|
|
929
960
|
// Touch → GestureHandler bridge
|