@effect-tui/core 0.1.1 → 0.1.5
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/README.md +31 -11
- package/dist/ansi.d.ts +127 -32
- package/dist/ansi.d.ts.map +1 -1
- package/dist/ansi.js +159 -37
- package/dist/ansi.js.map +1 -1
- package/dist/colors.d.ts +139 -0
- package/dist/colors.d.ts.map +1 -0
- package/dist/colors.js +339 -0
- package/dist/colors.js.map +1 -0
- package/dist/index.d.ts +6 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/keys.d.ts +21 -0
- package/dist/keys.d.ts.map +1 -1
- package/dist/keys.js +199 -58
- package/dist/keys.js.map +1 -1
- package/dist/layout/axis-helpers.d.ts +19 -0
- package/dist/layout/axis-helpers.d.ts.map +1 -0
- package/dist/layout/axis-helpers.js +19 -0
- package/dist/layout/axis-helpers.js.map +1 -0
- package/dist/output.d.ts +59 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +142 -0
- package/dist/output.js.map +1 -0
- package/dist/render/buffer.d.ts.map +1 -1
- package/dist/render/buffer.js +6 -25
- package/dist/render/buffer.js.map +1 -1
- package/dist/render/graphemes.d.ts +15 -0
- package/dist/render/graphemes.d.ts.map +1 -0
- package/dist/render/graphemes.js +28 -0
- package/dist/render/graphemes.js.map +1 -0
- package/dist/render/measure.d.ts +1 -0
- package/dist/render/measure.d.ts.map +1 -1
- package/dist/render/measure.js +14 -36
- package/dist/render/measure.js.map +1 -1
- package/dist/render/palette.d.ts.map +1 -1
- package/dist/render/palette.js +26 -1
- package/dist/render/palette.js.map +1 -1
- package/dist/render/segmenter.d.ts +8 -0
- package/dist/render/segmenter.d.ts.map +1 -0
- package/dist/render/segmenter.js +23 -0
- package/dist/render/segmenter.js.map +1 -0
- package/dist/render/surface.d.ts +6 -32
- package/dist/render/surface.d.ts.map +1 -1
- package/dist/render/surface.js +11 -80
- package/dist/render/surface.js.map +1 -1
- package/dist/runtime/backend_node.d.ts.map +1 -1
- package/dist/runtime/backend_node.js.map +1 -1
- package/dist/tailwind-colors.d.ts +291 -0
- package/dist/tailwind-colors.d.ts.map +1 -0
- package/dist/tailwind-colors.js +291 -0
- package/dist/tailwind-colors.js.map +1 -0
- package/dist/types.d.ts +15 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +55 -55
- package/src/ansi.ts +201 -73
- package/src/colors.ts +468 -0
- package/src/index.ts +28 -14
- package/src/keys.ts +467 -287
- package/src/layout/axis-helpers.ts +33 -0
- package/src/output.ts +175 -0
- package/src/render/buffer.ts +161 -184
- package/src/render/graphemes.ts +34 -0
- package/src/render/measure.ts +15 -38
- package/src/render/palette.ts +98 -77
- package/src/render/segmenter.ts +27 -0
- package/src/render/surface.ts +139 -225
- package/src/runtime/backend_node.ts +71 -71
- package/src/tailwind-colors.ts +295 -0
- package/src/types.ts +18 -0
- package/dist/anim.d.ts +0 -4
- package/dist/anim.d.ts.map +0 -1
- package/dist/anim.js +0 -5
- package/dist/anim.js.map +0 -1
- package/dist/layout/linearStack.d.ts +0 -17
- package/dist/layout/linearStack.d.ts.map +0 -1
- package/dist/layout/linearStack.js +0 -86
- package/dist/layout/linearStack.js.map +0 -1
- package/dist/motion-value.d.ts +0 -58
- package/dist/motion-value.d.ts.map +0 -1
- package/dist/motion-value.js +0 -250
- package/dist/motion-value.js.map +0 -1
- package/dist/present/display.d.ts +0 -58
- package/dist/present/display.d.ts.map +0 -1
- package/dist/present/display.js +0 -168
- package/dist/present/display.js.map +0 -1
- package/dist/present/writers/fullscreen.d.ts +0 -19
- package/dist/present/writers/fullscreen.d.ts.map +0 -1
- package/dist/present/writers/fullscreen.js +0 -55
- package/dist/present/writers/fullscreen.js.map +0 -1
- package/dist/present/writers/inline.d.ts +0 -20
- package/dist/present/writers/inline.d.ts.map +0 -1
- package/dist/present/writers/inline.js +0 -92
- package/dist/present/writers/inline.js.map +0 -1
- package/dist/render/color-utils.d.ts +0 -18
- package/dist/render/color-utils.d.ts.map +0 -1
- package/dist/render/color-utils.js +0 -58
- package/dist/render/color-utils.js.map +0 -1
- package/dist/render/diff.d.ts +0 -30
- package/dist/render/diff.d.ts.map +0 -1
- package/dist/render/diff.js +0 -83
- package/dist/render/diff.js.map +0 -1
- package/dist/spring-physics.d.ts +0 -36
- package/dist/spring-physics.d.ts.map +0 -1
- package/dist/spring-physics.js +0 -113
- package/dist/spring-physics.js.map +0 -1
- package/dist/spring.d.ts +0 -73
- package/dist/spring.d.ts.map +0 -1
- package/dist/spring.js +0 -136
- package/dist/spring.js.map +0 -1
- package/dist/ui/containers/canvas.d.ts +0 -13
- package/dist/ui/containers/canvas.d.ts.map +0 -1
- package/dist/ui/containers/canvas.js +0 -16
- package/dist/ui/containers/canvas.js.map +0 -1
- package/dist/ui/containers/geometry-reader.d.ts +0 -17
- package/dist/ui/containers/geometry-reader.d.ts.map +0 -1
- package/dist/ui/containers/geometry-reader.js +0 -24
- package/dist/ui/containers/geometry-reader.js.map +0 -1
- package/dist/ui/containers/hstack.d.ts +0 -12
- package/dist/ui/containers/hstack.d.ts.map +0 -1
- package/dist/ui/containers/hstack.js +0 -28
- package/dist/ui/containers/hstack.js.map +0 -1
- package/dist/ui/containers/scroll.d.ts +0 -28
- package/dist/ui/containers/scroll.d.ts.map +0 -1
- package/dist/ui/containers/scroll.js +0 -97
- package/dist/ui/containers/scroll.js.map +0 -1
- package/dist/ui/containers/shared.d.ts +0 -12
- package/dist/ui/containers/shared.d.ts.map +0 -1
- package/dist/ui/containers/shared.js +0 -19
- package/dist/ui/containers/shared.js.map +0 -1
- package/dist/ui/containers/vstack.d.ts +0 -12
- package/dist/ui/containers/vstack.d.ts.map +0 -1
- package/dist/ui/containers/vstack.js +0 -28
- package/dist/ui/containers/vstack.js.map +0 -1
- package/dist/ui/containers/zstack.d.ts +0 -14
- package/dist/ui/containers/zstack.d.ts.map +0 -1
- package/dist/ui/containers/zstack.js +0 -36
- package/dist/ui/containers/zstack.js.map +0 -1
- package/dist/ui/core/geometry-store.d.ts +0 -22
- package/dist/ui/core/geometry-store.d.ts.map +0 -1
- package/dist/ui/core/geometry-store.js +0 -29
- package/dist/ui/core/geometry-store.js.map +0 -1
- package/dist/ui/core/geometry.d.ts +0 -34
- package/dist/ui/core/geometry.d.ts.map +0 -1
- package/dist/ui/core/geometry.js +0 -14
- package/dist/ui/core/geometry.js.map +0 -1
- package/dist/ui/core/view.d.ts +0 -25
- package/dist/ui/core/view.d.ts.map +0 -1
- package/dist/ui/core/view.js +0 -34
- package/dist/ui/core/view.js.map +0 -1
- package/dist/ui/index.d.ts +0 -44
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/index.js +0 -39
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/inlinetext.d.ts +0 -24
- package/dist/ui/inlinetext.d.ts.map +0 -1
- package/dist/ui/inlinetext.js +0 -131
- package/dist/ui/inlinetext.js.map +0 -1
- package/dist/ui/install.d.ts +0 -22
- package/dist/ui/install.d.ts.map +0 -1
- package/dist/ui/install.js +0 -66
- package/dist/ui/install.js.map +0 -1
- package/dist/ui/markdown.d.ts +0 -40
- package/dist/ui/markdown.d.ts.map +0 -1
- package/dist/ui/markdown.js +0 -351
- package/dist/ui/markdown.js.map +0 -1
- package/dist/ui/modifiers/border.d.ts +0 -33
- package/dist/ui/modifiers/border.d.ts.map +0 -1
- package/dist/ui/modifiers/border.js +0 -82
- package/dist/ui/modifiers/border.js.map +0 -1
- package/dist/ui/modifiers/fill.d.ts +0 -14
- package/dist/ui/modifiers/fill.d.ts.map +0 -1
- package/dist/ui/modifiers/fill.js +0 -25
- package/dist/ui/modifiers/fill.js.map +0 -1
- package/dist/ui/modifiers/frame.d.ts +0 -23
- package/dist/ui/modifiers/frame.d.ts.map +0 -1
- package/dist/ui/modifiers/frame.js +0 -54
- package/dist/ui/modifiers/frame.js.map +0 -1
- package/dist/ui/modifiers/offset.d.ts +0 -15
- package/dist/ui/modifiers/offset.d.ts.map +0 -1
- package/dist/ui/modifiers/offset.js +0 -21
- package/dist/ui/modifiers/offset.js.map +0 -1
- package/dist/ui/modifiers/opacity.d.ts +0 -15
- package/dist/ui/modifiers/opacity.d.ts.map +0 -1
- package/dist/ui/modifiers/opacity.js +0 -95
- package/dist/ui/modifiers/opacity.js.map +0 -1
- package/dist/ui/modifiers/padding.d.ts +0 -20
- package/dist/ui/modifiers/padding.d.ts.map +0 -1
- package/dist/ui/modifiers/padding.js +0 -36
- package/dist/ui/modifiers/padding.js.map +0 -1
- package/dist/ui/modifiers/styled.d.ts +0 -14
- package/dist/ui/modifiers/styled.d.ts.map +0 -1
- package/dist/ui/modifiers/styled.js +0 -26
- package/dist/ui/modifiers/styled.js.map +0 -1
- package/dist/ui/primitives/rectangle.d.ts +0 -15
- package/dist/ui/primitives/rectangle.d.ts.map +0 -1
- package/dist/ui/primitives/rectangle.js +0 -23
- package/dist/ui/primitives/rectangle.js.map +0 -1
- package/dist/ui/primitives/spacer.d.ts +0 -13
- package/dist/ui/primitives/spacer.d.ts.map +0 -1
- package/dist/ui/primitives/spacer.js +0 -16
- package/dist/ui/primitives/spacer.js.map +0 -1
- package/dist/ui/primitives/text.d.ts +0 -15
- package/dist/ui/primitives/text.d.ts.map +0 -1
- package/dist/ui/primitives/text.js +0 -79
- package/dist/ui/primitives/text.js.map +0 -1
- package/dist/ui/primitives/wrapped-text.d.ts +0 -30
- package/dist/ui/primitives/wrapped-text.d.ts.map +0 -1
- package/dist/ui/primitives/wrapped-text.js +0 -117
- package/dist/ui/primitives/wrapped-text.js.map +0 -1
- package/dist/ui/shinytext.d.ts +0 -66
- package/dist/ui/shinytext.d.ts.map +0 -1
- package/dist/ui/shinytext.js +0 -99
- package/dist/ui/shinytext.js.map +0 -1
- package/dist/ui/text/layout.d.ts +0 -35
- package/dist/ui/text/layout.d.ts.map +0 -1
- package/dist/ui/text/layout.js +0 -102
- package/dist/ui/text/layout.js.map +0 -1
- package/dist/ui/textinput.d.ts +0 -140
- package/dist/ui/textinput.d.ts.map +0 -1
- package/dist/ui/textinput.js +0 -402
- package/dist/ui/textinput.js.map +0 -1
- package/dist/ui/view-constructors.d.ts +0 -72
- package/dist/ui/view-constructors.d.ts.map +0 -1
- package/dist/ui/view-constructors.js +0 -74
- package/dist/ui/view-constructors.js.map +0 -1
- package/src/anim.ts +0 -5
- package/src/layout/linearStack.ts +0 -115
- package/src/motion-value.ts +0 -335
- package/src/present/display.ts +0 -206
- package/src/present/writers/fullscreen.ts +0 -58
- package/src/present/writers/inline.ts +0 -101
- package/src/render/color-utils.ts +0 -60
- package/src/render/diff.ts +0 -95
- package/src/spring-physics.ts +0 -151
- package/src/spring.ts +0 -234
- package/src/ui/__snapshots__/wrappedtext.test.ts.snap +0 -57
- package/src/ui/containers/canvas.ts +0 -18
- package/src/ui/containers/geometry-reader.ts +0 -32
- package/src/ui/containers/hstack.ts +0 -33
- package/src/ui/containers/scroll.ts +0 -106
- package/src/ui/containers/shared.ts +0 -27
- package/src/ui/containers/vstack.ts +0 -34
- package/src/ui/containers/zstack.ts +0 -37
- package/src/ui/core/geometry-store.ts +0 -42
- package/src/ui/core/geometry.ts +0 -30
- package/src/ui/core/view.ts +0 -49
- package/src/ui/index.ts +0 -84
- package/src/ui/inlinetext.ts +0 -135
- package/src/ui/install.ts +0 -110
- package/src/ui/markdown.test.ts +0 -74
- package/src/ui/markdown.ts +0 -388
- package/src/ui/modifiers/border.ts +0 -100
- package/src/ui/modifiers/fill.ts +0 -28
- package/src/ui/modifiers/frame.ts +0 -74
- package/src/ui/modifiers/offset.ts +0 -23
- package/src/ui/modifiers/opacity.ts +0 -93
- package/src/ui/modifiers/padding.ts +0 -53
- package/src/ui/modifiers/styled.ts +0 -31
- package/src/ui/primitives/rectangle.ts +0 -25
- package/src/ui/primitives/spacer.ts +0 -18
- package/src/ui/primitives/text.ts +0 -85
- package/src/ui/primitives/wrapped-text.ts +0 -131
- package/src/ui/shinytext.ts +0 -159
- package/src/ui/text/layout.ts +0 -119
- package/src/ui/textinput.ts +0 -496
- package/src/ui/view-constructors.ts +0 -96
- package/src/ui/wrappedtext.test.ts +0 -138
package/dist/keys.js
CHANGED
|
@@ -1,5 +1,179 @@
|
|
|
1
1
|
// Minimal key decoder for Node raw input → semantic key messages.
|
|
2
|
+
// SGR mouse button codes (low 2 bits, after masking modifiers)
|
|
3
|
+
const MOUSE_LEFT = 0;
|
|
4
|
+
const MOUSE_MIDDLE = 1;
|
|
5
|
+
const MOUSE_RIGHT = 2;
|
|
6
|
+
const MOUSE_SCROLL_UP = 64;
|
|
7
|
+
const MOUSE_SCROLL_DOWN = 65;
|
|
8
|
+
// Modifier bits (subtract 1 from raw value before checking)
|
|
9
|
+
const MOD_SHIFT = 1;
|
|
10
|
+
const MOD_ALT = 2;
|
|
11
|
+
const MOD_CTRL = 4;
|
|
12
|
+
const MOD_META = 8;
|
|
13
|
+
// Common key codes
|
|
14
|
+
const KEY_TAB = 9;
|
|
15
|
+
const KEY_ENTER_CR = 13;
|
|
16
|
+
const KEY_ESC = 27;
|
|
17
|
+
const KEY_SPACE = 32;
|
|
18
|
+
const KEY_BS = 127;
|
|
2
19
|
const ESC = "\x1b";
|
|
20
|
+
// ─────────────────────────────────────────────────────────────
|
|
21
|
+
// CSI sequence parsing (xterm-style modified keys)
|
|
22
|
+
// ─────────────────────────────────────────────────────────────
|
|
23
|
+
// CSI pattern: ESC [ <params> <final>
|
|
24
|
+
// Examples: ESC[A (up), ESC[1;2A (shift+up), ESC[5~ (pageup)
|
|
25
|
+
const CSI_RE = /^\x1b\[([0-9;]*)([A-Za-z~])$/;
|
|
26
|
+
// Map CSI final character to key name
|
|
27
|
+
const CSI_ARROW_MAP = {
|
|
28
|
+
A: "up",
|
|
29
|
+
B: "down",
|
|
30
|
+
C: "right",
|
|
31
|
+
D: "left",
|
|
32
|
+
H: "home",
|
|
33
|
+
F: "end",
|
|
34
|
+
};
|
|
35
|
+
// Map CSI ~ sequences to key names (e.g., ESC[5~ = pageup)
|
|
36
|
+
const CSI_TILDE_MAP = {
|
|
37
|
+
2: "insert",
|
|
38
|
+
3: "delete",
|
|
39
|
+
5: "pageup",
|
|
40
|
+
6: "pagedown",
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Parse xterm modifier parameter into boolean flags.
|
|
44
|
+
* xterm uses 1+bitmask encoding: 2=shift, 3=alt, 4=shift+alt, 5=ctrl, etc.
|
|
45
|
+
* Bits: 0=shift, 1=alt/meta, 2=ctrl, 3=meta (extended)
|
|
46
|
+
*/
|
|
47
|
+
function parseModifiers(modParam) {
|
|
48
|
+
const bits = modParam - 1;
|
|
49
|
+
return {
|
|
50
|
+
shift: !!(bits & MOD_SHIFT),
|
|
51
|
+
meta: !!(bits & MOD_ALT), // Alt is typically mapped to meta
|
|
52
|
+
ctrl: !!(bits & MOD_CTRL),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Try to decode a CSI sequence with optional modifiers.
|
|
57
|
+
* Handles: arrows (A/B/C/D), home/end (H/F), and tilde sequences (2~/3~/5~/6~)
|
|
58
|
+
*/
|
|
59
|
+
function decodeCsiSequence(s) {
|
|
60
|
+
const match = CSI_RE.exec(s);
|
|
61
|
+
if (!match)
|
|
62
|
+
return null;
|
|
63
|
+
const params = match[1] ? match[1].split(";").map(Number) : [];
|
|
64
|
+
const final = match[2];
|
|
65
|
+
// Handle arrow keys and home/end (A/B/C/D/H/F)
|
|
66
|
+
const arrowName = CSI_ARROW_MAP[final];
|
|
67
|
+
if (arrowName) {
|
|
68
|
+
// Get modifier from 2nd param (ESC[1;2A) or 1st if only one (rare)
|
|
69
|
+
const modParam = params.length >= 2 ? params[1] : params.length === 1 && params[0] >= 2 ? params[0] : null;
|
|
70
|
+
const mods = modParam ? parseModifiers(modParam) : { shift: false, meta: false, ctrl: false };
|
|
71
|
+
return {
|
|
72
|
+
type: "key",
|
|
73
|
+
name: arrowName,
|
|
74
|
+
...(mods.shift && { shift: true }),
|
|
75
|
+
...(mods.meta && { meta: true }),
|
|
76
|
+
...(mods.ctrl && { ctrl: true }),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// Handle tilde sequences (ESC[5~, ESC[3;5~ for ctrl+delete, etc.)
|
|
80
|
+
if (final === "~") {
|
|
81
|
+
const keyCode = params[0];
|
|
82
|
+
const tildeName = keyCode !== undefined ? CSI_TILDE_MAP[keyCode] : undefined;
|
|
83
|
+
if (tildeName) {
|
|
84
|
+
const modParam = params.length >= 2 ? params[1] : null;
|
|
85
|
+
const mods = modParam ? parseModifiers(modParam) : { shift: false, meta: false, ctrl: false };
|
|
86
|
+
return {
|
|
87
|
+
type: "key",
|
|
88
|
+
name: tildeName,
|
|
89
|
+
...(mods.shift && { shift: true }),
|
|
90
|
+
...(mods.meta && { meta: true }),
|
|
91
|
+
...(mods.ctrl && { ctrl: true }),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
// SGR mouse event regex
|
|
98
|
+
const SGR_MOUSE_RE = /\x1b\[<(\d+);(\d+);(\d+)([Mm])/g;
|
|
99
|
+
/**
|
|
100
|
+
* Parse SGR mouse button code into button name and modifiers.
|
|
101
|
+
* Code format: low 2 bits = button (0-2), bits 2-5 = modifiers, bit 5 = motion, bits 6-7 = scroll
|
|
102
|
+
*/
|
|
103
|
+
function parseSgrMouse(code, cx, cy, isRelease) {
|
|
104
|
+
// Scroll events (bits 6-7)
|
|
105
|
+
if (code >= 64) {
|
|
106
|
+
return {
|
|
107
|
+
type: "mouse",
|
|
108
|
+
button: code === MOUSE_SCROLL_UP ? "scroll-up" : "scroll-down",
|
|
109
|
+
x: cx - 1, // Convert to 0-based
|
|
110
|
+
y: cy - 1,
|
|
111
|
+
action: "press", // Scroll doesn't have release
|
|
112
|
+
shift: Boolean(code & 4),
|
|
113
|
+
meta: Boolean(code & 8),
|
|
114
|
+
ctrl: Boolean(code & 16),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
// Button events
|
|
118
|
+
const buttonBits = code & 3;
|
|
119
|
+
const isMotion = Boolean(code & 32);
|
|
120
|
+
let button;
|
|
121
|
+
if (buttonBits === MOUSE_LEFT)
|
|
122
|
+
button = "left";
|
|
123
|
+
else if (buttonBits === MOUSE_MIDDLE)
|
|
124
|
+
button = "middle";
|
|
125
|
+
else if (buttonBits === MOUSE_RIGHT)
|
|
126
|
+
button = "right";
|
|
127
|
+
else
|
|
128
|
+
button = "none";
|
|
129
|
+
let action;
|
|
130
|
+
if (isMotion) {
|
|
131
|
+
action = button === "none" ? "move" : "drag";
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
action = isRelease ? "release" : "press";
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
type: "mouse",
|
|
138
|
+
button,
|
|
139
|
+
x: cx - 1,
|
|
140
|
+
y: cy - 1,
|
|
141
|
+
action,
|
|
142
|
+
shift: Boolean(code & 4),
|
|
143
|
+
meta: Boolean(code & 8),
|
|
144
|
+
ctrl: Boolean(code & 16),
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Decode input buffer into keyboard and mouse events.
|
|
149
|
+
* Use this instead of decodeKeys if you want mouse support.
|
|
150
|
+
*/
|
|
151
|
+
export function* decodeInput(buf) {
|
|
152
|
+
let s = buf.toString("utf8");
|
|
153
|
+
// Extract all SGR mouse events first
|
|
154
|
+
for (const m of s.matchAll(SGR_MOUSE_RE)) {
|
|
155
|
+
const code = parseInt(m[1], 10);
|
|
156
|
+
const cx = parseInt(m[2], 10);
|
|
157
|
+
const cy = parseInt(m[3], 10);
|
|
158
|
+
const isRelease = m[4] === "m";
|
|
159
|
+
const mouse = parseSgrMouse(code, cx, cy, isRelease);
|
|
160
|
+
// Yield the mouse event
|
|
161
|
+
yield mouse;
|
|
162
|
+
// For scroll wheel, ALSO emit legacy KeyMsg for backward compatibility
|
|
163
|
+
// (useScroll listens for pageup/pagedown with meta: true)
|
|
164
|
+
if (mouse.button === "scroll-up") {
|
|
165
|
+
yield { type: "key", name: "pageup", meta: true };
|
|
166
|
+
}
|
|
167
|
+
else if (mouse.button === "scroll-down") {
|
|
168
|
+
yield { type: "key", name: "pagedown", meta: true };
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// Strip mouse sequences and process remaining as keys
|
|
172
|
+
s = s.replace(SGR_MOUSE_RE, "");
|
|
173
|
+
if (s.length > 0) {
|
|
174
|
+
yield* decodeKeys(Buffer.from(s, "utf8"));
|
|
175
|
+
}
|
|
176
|
+
}
|
|
3
177
|
export function* decodeKeys(buf) {
|
|
4
178
|
// Handle control characters (0x00-0x1F)
|
|
5
179
|
// These are generated by Ctrl+letter combinations
|
|
@@ -64,11 +238,11 @@ export function* decodeKeys(buf) {
|
|
|
64
238
|
for (const m of s.matchAll(sgrRe)) {
|
|
65
239
|
matchedAny = true;
|
|
66
240
|
const code = parseInt(m.groups?.cb ?? "0", 10);
|
|
67
|
-
if (code ===
|
|
241
|
+
if (code === MOUSE_SCROLL_UP) {
|
|
68
242
|
yield { type: "key", name: "pageup", meta: true };
|
|
69
243
|
continue;
|
|
70
244
|
}
|
|
71
|
-
if (code ===
|
|
245
|
+
if (code === MOUSE_SCROLL_DOWN) {
|
|
72
246
|
yield { type: "key", name: "pagedown", meta: true };
|
|
73
247
|
}
|
|
74
248
|
// ignore other mouse events
|
|
@@ -84,11 +258,11 @@ export function* decodeKeys(buf) {
|
|
|
84
258
|
const sgr = /^\x1b\[<(?<cb>\d+);(?<cx>\d+);(?<cy>\d+)(?<updown>[A-Za-z])$/.exec(s);
|
|
85
259
|
if (sgr?.groups) {
|
|
86
260
|
const code = parseInt(sgr.groups.cb ?? "0", 10);
|
|
87
|
-
if (code ===
|
|
261
|
+
if (code === MOUSE_SCROLL_UP) {
|
|
88
262
|
yield { type: "key", name: "pageup", meta: true };
|
|
89
263
|
return;
|
|
90
264
|
}
|
|
91
|
-
if (code ===
|
|
265
|
+
if (code === MOUSE_SCROLL_DOWN) {
|
|
92
266
|
yield { type: "key", name: "pagedown", meta: true };
|
|
93
267
|
return;
|
|
94
268
|
}
|
|
@@ -109,10 +283,10 @@ export function* decodeKeys(buf) {
|
|
|
109
283
|
if (moo?.groups) {
|
|
110
284
|
const mod = parseInt(moo.groups.mod ?? "1", 10) - 1;
|
|
111
285
|
const code = parseInt(moo.groups.code ?? "0", 10);
|
|
112
|
-
const shift = !!(mod &
|
|
113
|
-
const alt = !!(mod &
|
|
114
|
-
const ctrl = !!(mod &
|
|
115
|
-
const meta = !!(mod &
|
|
286
|
+
const shift = !!(mod & MOD_SHIFT);
|
|
287
|
+
const alt = !!(mod & MOD_ALT);
|
|
288
|
+
const ctrl = !!(mod & MOD_CTRL);
|
|
289
|
+
const meta = !!(mod & MOD_META) || alt;
|
|
116
290
|
const key = fromCharCode(code, { shift, ctrl, meta, source: "modify-other" });
|
|
117
291
|
if (key) {
|
|
118
292
|
yield key;
|
|
@@ -124,10 +298,10 @@ export function* decodeKeys(buf) {
|
|
|
124
298
|
if (csiu?.groups) {
|
|
125
299
|
const mod = parseInt(csiu.groups.mod ?? "1", 10) - 1;
|
|
126
300
|
const code = parseInt(csiu.groups.code ?? "0", 10);
|
|
127
|
-
const shift = !!(mod &
|
|
128
|
-
const alt = !!(mod &
|
|
129
|
-
const ctrl = !!(mod &
|
|
130
|
-
const meta = !!(mod &
|
|
301
|
+
const shift = !!(mod & MOD_SHIFT);
|
|
302
|
+
const alt = !!(mod & MOD_ALT);
|
|
303
|
+
const ctrl = !!(mod & MOD_CTRL);
|
|
304
|
+
const meta = !!(mod & MOD_META) || alt;
|
|
131
305
|
const key = fromCharCode(code, { shift, ctrl, meta, source: "csiu" });
|
|
132
306
|
if (key) {
|
|
133
307
|
yield key;
|
|
@@ -150,49 +324,16 @@ export function* decodeKeys(buf) {
|
|
|
150
324
|
return;
|
|
151
325
|
}
|
|
152
326
|
}
|
|
153
|
-
//
|
|
327
|
+
// Try generic CSI parser first (handles all modifier combinations)
|
|
328
|
+
const csiKey = decodeCsiSequence(s);
|
|
329
|
+
if (csiKey) {
|
|
330
|
+
yield csiKey;
|
|
331
|
+
return;
|
|
332
|
+
}
|
|
333
|
+
// Special cases not handled by generic CSI parser
|
|
154
334
|
switch (s) {
|
|
155
|
-
case `${ESC}[A`:
|
|
156
|
-
yield { type: "key", name: "up" };
|
|
157
|
-
return;
|
|
158
|
-
case `${ESC}[B`:
|
|
159
|
-
yield { type: "key", name: "down" };
|
|
160
|
-
return;
|
|
161
|
-
case `${ESC}[C`:
|
|
162
|
-
yield { type: "key", name: "right" };
|
|
163
|
-
return;
|
|
164
|
-
case `${ESC}[D`:
|
|
165
|
-
yield { type: "key", name: "left" };
|
|
166
|
-
return;
|
|
167
|
-
case `${ESC}[1;3C`:
|
|
168
|
-
yield { type: "key", name: "right", meta: true };
|
|
169
|
-
return;
|
|
170
|
-
case `${ESC}[1;3D`:
|
|
171
|
-
yield { type: "key", name: "left", meta: true };
|
|
172
|
-
return;
|
|
173
335
|
case `${ESC}OP`: // F1 (ignored)
|
|
174
336
|
return;
|
|
175
|
-
case `${ESC}[H`:
|
|
176
|
-
yield { type: "key", name: "home" };
|
|
177
|
-
return;
|
|
178
|
-
case `${ESC}[F`:
|
|
179
|
-
yield { type: "key", name: "end" };
|
|
180
|
-
return;
|
|
181
|
-
case `${ESC}[5~`:
|
|
182
|
-
yield { type: "key", name: "pageup" };
|
|
183
|
-
return;
|
|
184
|
-
case `${ESC}[6~`:
|
|
185
|
-
yield { type: "key", name: "pagedown" };
|
|
186
|
-
return;
|
|
187
|
-
case `${ESC}[2~`:
|
|
188
|
-
yield { type: "key", name: "insert" };
|
|
189
|
-
return;
|
|
190
|
-
case `${ESC}[3~`:
|
|
191
|
-
yield { type: "key", name: "delete" };
|
|
192
|
-
return;
|
|
193
|
-
case `${ESC}[3;3~`: // Meta+Delete (best-effort for some terminals)
|
|
194
|
-
yield { type: "key", name: "delete", meta: true };
|
|
195
|
-
return;
|
|
196
337
|
case `${ESC}[Z`:
|
|
197
338
|
yield { type: "key", name: "shift-tab", shift: true };
|
|
198
339
|
return;
|
|
@@ -224,16 +365,16 @@ function fromCharCode(code, mods) {
|
|
|
224
365
|
source,
|
|
225
366
|
};
|
|
226
367
|
switch (code) {
|
|
227
|
-
case
|
|
368
|
+
case KEY_ENTER_CR:
|
|
228
369
|
return { ...common, name: "enter" };
|
|
229
|
-
case
|
|
370
|
+
case KEY_ESC:
|
|
230
371
|
return { ...common, name: "escape" };
|
|
231
|
-
case
|
|
372
|
+
case KEY_TAB:
|
|
232
373
|
return { ...common, name: "tab" };
|
|
233
|
-
case
|
|
374
|
+
case KEY_SPACE:
|
|
234
375
|
return { ...common, name: "space", text: " " };
|
|
235
|
-
case
|
|
236
|
-
case 8:
|
|
376
|
+
case KEY_BS:
|
|
377
|
+
case 8: // Backspace (legacy)
|
|
237
378
|
return { ...common, name: "backspace" };
|
|
238
379
|
}
|
|
239
380
|
if (code >= 0 && code < 32) {
|
package/dist/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAElE,+DAA+D;AAC/D,MAAM,UAAU,GAAG,CAAC,CAAA;AACpB,MAAM,YAAY,GAAG,CAAC,CAAA;AACtB,MAAM,WAAW,GAAG,CAAC,CAAA;AACrB,MAAM,eAAe,GAAG,EAAE,CAAA;AAC1B,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAE5B,4DAA4D;AAC5D,MAAM,SAAS,GAAG,CAAC,CAAA;AACnB,MAAM,OAAO,GAAG,CAAC,CAAA;AACjB,MAAM,QAAQ,GAAG,CAAC,CAAA;AAClB,MAAM,QAAQ,GAAG,CAAC,CAAA;AAElB,mBAAmB;AACnB,MAAM,OAAO,GAAG,CAAC,CAAA;AACjB,MAAM,YAAY,GAAG,EAAE,CAAA;AACvB,MAAM,OAAO,GAAG,EAAE,CAAA;AAClB,MAAM,SAAS,GAAG,EAAE,CAAA;AACpB,MAAM,MAAM,GAAG,GAAG,CAAA;AAyDlB,MAAM,GAAG,GAAG,MAAM,CAAA;AAElB,gEAAgE;AAChE,mDAAmD;AACnD,gEAAgE;AAEhE,sCAAsC;AACtC,6DAA6D;AAC7D,MAAM,MAAM,GAAG,8BAA8B,CAAA;AAE7C,sCAAsC;AACtC,MAAM,aAAa,GAA4B;IAC9C,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,KAAK;CACR,CAAA;AAED,2DAA2D;AAC3D,MAAM,aAAa,GAA4B;IAC9C,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,UAAU;CACb,CAAA;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,QAAgB;IACvC,MAAM,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAA;IACzB,OAAO;QACN,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC;QAC3B,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,EAAE,kCAAkC;QAC5D,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;KACzB,CAAA;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,CAAS;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC5B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAEtB,+CAA+C;IAC/C,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IACtC,IAAI,SAAS,EAAE,CAAC;QACf,mEAAmE;QACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC1G,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;QAE7F,OAAO;YACN,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,SAAS;YACf,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAChC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAChC,CAAA;IACF,CAAC;IAED,kEAAkE;IAClE,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC5E,IAAI,SAAS,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;YAE7F,OAAO;gBACN,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,SAAS;gBACf,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBAClC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBAChC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;aAChC,CAAA;QACF,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,wBAAwB;AACxB,MAAM,YAAY,GAAG,iCAAiC,CAAA;AAEtD;;;GAGG;AACH,SAAS,aAAa,CAAC,IAAY,EAAE,EAAU,EAAE,EAAU,EAAE,SAAkB;IAC9E,2BAA2B;IAC3B,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QAChB,OAAO;YACN,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;YAC9D,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,qBAAqB;YAChC,CAAC,EAAE,EAAE,GAAG,CAAC;YACT,MAAM,EAAE,OAAO,EAAE,8BAA8B;YAC/C,KAAK,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;YACvB,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;SACxB,CAAA;IACF,CAAC;IAED,gBAAgB;IAChB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAA;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;IAEnC,IAAI,MAAmB,CAAA;IACvB,IAAI,UAAU,KAAK,UAAU;QAAE,MAAM,GAAG,MAAM,CAAA;SACzC,IAAI,UAAU,KAAK,YAAY;QAAE,MAAM,GAAG,QAAQ,CAAA;SAClD,IAAI,UAAU,KAAK,WAAW;QAAE,MAAM,GAAG,OAAO,CAAA;;QAChD,MAAM,GAAG,MAAM,CAAA;IAEpB,IAAI,MAA0B,CAAA;IAC9B,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;IAC7C,CAAC;SAAM,CAAC;QACP,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAA;IACzC,CAAC;IAED,OAAO;QACN,IAAI,EAAE,OAAO;QACb,MAAM;QACN,CAAC,EAAE,EAAE,GAAG,CAAC;QACT,CAAC,EAAE,EAAE,GAAG,CAAC;QACT,MAAM;QACN,KAAK,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QACxB,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QACvB,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;KACxB,CAAA;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,SAAS,CAAC,CAAC,WAAW,CAAC,GAAW;IACvC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAE5B,qCAAqC;IACrC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC/B,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAA;QAC9B,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;QAEpD,wBAAwB;QACxB,MAAM,KAAK,CAAA;QAEX,uEAAuE;QACvE,0DAA0D;QAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAY,CAAA;QAC5D,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAC3C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAY,CAAA;QAC9D,CAAC;IACF,CAAC;IAED,sDAAsD;IACtD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAC/B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClB,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IAC1C,CAAC;AACF,CAAC;AAED,MAAM,SAAS,CAAC,CAAC,UAAU,CAAC,GAAW;IACtC,wCAAwC;IACxC,kDAAkD;IAClD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAEnB,oDAAoD;QACpD,QAAQ,IAAI,EAAE,CAAC;YACd,KAAK,IAAI,EAAE,6BAA6B;gBACvC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBAC1D,OAAM;YACP,KAAK,IAAI,EAAE,qCAAqC;gBAC/C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBAC1D,OAAM;YACP,KAAK,IAAI,EAAE,2CAA2C;gBACrD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBAC1D,OAAM;YACP,KAAK,IAAI,EAAE,4BAA4B;gBACtC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBAC1D,OAAM;YACP,KAAK,IAAI,EAAE,0BAA0B;gBACpC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBAC1D,OAAM;YACP,KAAK,IAAI,EAAE,4BAA4B;gBACtC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;gBAClC,OAAM;YACP,KAAK,IAAI,EAAE,+BAA+B;gBACzC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;gBACpC,OAAM;YACP,KAAK,IAAI,EAAE,iBAAiB;gBAC3B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;gBACpC,OAAM;YACP,KAAK,IAAI,EAAE,iBAAiB;gBAC3B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBACxC,OAAM;YACP,KAAK,IAAI,EAAE,eAAe;gBACzB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;gBACrC,OAAM;YACP;gBACC,mDAAmD;gBACnD,qCAAqC;gBACrC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;oBAClC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA,CAAC,kBAAkB;oBAChE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBAC9D,CAAC;qBAAM,CAAC;oBACP,sCAAsC;oBACtC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACjF,CAAC;gBACD,OAAM;QACR,CAAC;IACF,CAAC;IAED,2EAA2E;IAC3E,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACzC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;QACxC,OAAM;IACP,CAAC;IAED,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAE5B,6EAA6E;IAC7E,8FAA8F;IAC9F,MAAM,KAAK,GAAG,+DAA+D,CAAA;IAC7E,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,UAAU,GAAG,IAAI,CAAA;QACjB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;QAC9C,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;YAC9B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YACjD,SAAQ;QACT,CAAC;QACD,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QACpD,CAAC;QACD,4BAA4B;IAC7B,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QAChB,sEAAsE;QACtE,uEAAuE;QACvE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,+DAA+D,EAAE,EAAE,CAAC,CAAA;QAClF,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;IAC3B,CAAC;IAED,wDAAwD;IACxD,MAAM,GAAG,GAAG,8DAA8D,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAClF,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;QAC/C,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;YAC9B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YACjD,OAAM;QACP,CAAC;QACD,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YACnD,OAAM;QACP,CAAC;QACD,OAAM;IACP,CAAC;IAED,8EAA8E;IAC9E,IAAI,CAAC,KAAK,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,MAAM,EAAE,CAAC;QAClE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QACpD,OAAM;IACP,CAAC;IAED,qDAAqD;IACrD,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,EAAE,CAAC;QAC1C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QAChD,OAAM;IACP,CAAC;IAED,kEAAkE;IAClE,MAAM,GAAG,GAAG,sCAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1D,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;QACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAA;QACjC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAA;QAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAA;QAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAA;QACtC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;QAC7E,IAAI,GAAG,EAAE,CAAC;YACT,MAAM,GAAG,CAAA;YACT,OAAM;QACP,CAAC;IACF,CAAC;IAED,4DAA4D;IAC5D,MAAM,IAAI,GAAG,mCAAmC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxD,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAA;QACjC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAA;QAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAA;QAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAA;QACtC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACrE,IAAI,GAAG,EAAE,CAAC;YACT,MAAM,GAAG,CAAA;YACT,OAAM;QACP,CAAC;IACF,CAAC;IAED,qDAAqD;IACrD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;QACrC,OAAM;IACP,CAAC;IAED,mBAAmB;IACnB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACf,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;YAC/C,OAAM;QACP,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;YAC5C,OAAM;QACP,CAAC;IACF,CAAC;IAED,mEAAmE;IACnE,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;IACnC,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,MAAM,CAAA;QACZ,OAAM;IACP,CAAC;IAED,kDAAkD;IAClD,QAAQ,CAAC,EAAE,CAAC;QACX,KAAK,GAAG,GAAG,IAAI,EAAE,eAAe;YAC/B,OAAM;QACP,KAAK,GAAG,GAAG,IAAI;YACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;YACrD,OAAM;IACR,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QAC3D,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACf,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAChB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YAC3D,OAAM;QACP,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QACzD,OAAM;IACP,CAAC;IAED,8CAA8C;IAC9C,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QACpB,IAAI,EAAE,IAAI,GAAG;YAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;IAC7D,CAAC;AACF,CAAC;AAED,SAAS,YAAY,CACpB,IAAY,EACZ,IAAmF;IAEnF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC1C,MAAM,MAAM,GAAyB;QACpC,IAAI,EAAE,KAAK;QACX,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK,EAAE,OAAO;QACd,MAAM;KACN,CAAA;IAED,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,YAAY;YAChB,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;QACpC,KAAK,OAAO;YACX,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;QACrC,KAAK,OAAO;YACX,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;QAClC,KAAK,SAAS;YACb,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;QAC/C,KAAK,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,qBAAqB;YAC5B,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;IACzC,CAAC;IAED,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;QAC5B,mDAAmD;QACnD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;QAC7C,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAC7D,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;AAC7C,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Axis, Size, Rect } from "../types.js";
|
|
2
|
+
export type { Axis, Size, Rect } from "../types.js";
|
|
3
|
+
/** Get the main-axis size (height for vertical, width for horizontal) */
|
|
4
|
+
export declare const mainSize: (axis: Axis, s: Size) => number;
|
|
5
|
+
/** Get the cross-axis size (width for vertical, height for horizontal) */
|
|
6
|
+
export declare const crossSize: (axis: Axis, s: Size) => number;
|
|
7
|
+
/** Get the main-axis position (y for vertical, x for horizontal) */
|
|
8
|
+
export declare const mainPos: (axis: Axis, r: Rect) => number;
|
|
9
|
+
/** Get the cross-axis position (x for vertical, y for horizontal) */
|
|
10
|
+
export declare const crossPos: (axis: Axis, r: Rect) => number;
|
|
11
|
+
/** Get the main-axis dimension (height for vertical, width for horizontal) */
|
|
12
|
+
export declare const mainDim: (axis: Axis, r: Rect) => number;
|
|
13
|
+
/** Get the cross-axis dimension (width for vertical, height for horizontal) */
|
|
14
|
+
export declare const crossDim: (axis: Axis, r: Rect) => number;
|
|
15
|
+
/** Create a rect from main/cross coordinates and dimensions */
|
|
16
|
+
export declare const makeRect: (axis: Axis, mainP: number, crossP: number, mainD: number, crossD: number) => Rect;
|
|
17
|
+
/** Split max constraints into [maxMain, maxCross] */
|
|
18
|
+
export declare const splitConstraints: (axis: Axis, maxW: number, maxH: number) => [number, number];
|
|
19
|
+
//# sourceMappingURL=axis-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"axis-helpers.d.ts","sourceRoot":"","sources":["../../src/layout/axis-helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAGnD,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEnD,yEAAyE;AACzE,eAAO,MAAM,QAAQ,GAAI,MAAM,IAAI,EAAE,GAAG,IAAI,KAAG,MAA2C,CAAA;AAE1F,0EAA0E;AAC1E,eAAO,MAAM,SAAS,GAAI,MAAM,IAAI,EAAE,GAAG,IAAI,KAAG,MAA2C,CAAA;AAE3F,oEAAoE;AACpE,eAAO,MAAM,OAAO,GAAI,MAAM,IAAI,EAAE,GAAG,IAAI,KAAG,MAA2C,CAAA;AAEzF,qEAAqE;AACrE,eAAO,MAAM,QAAQ,GAAI,MAAM,IAAI,EAAE,GAAG,IAAI,KAAG,MAA2C,CAAA;AAE1F,8EAA8E;AAC9E,eAAO,MAAM,OAAO,GAAI,MAAM,IAAI,EAAE,GAAG,IAAI,KAAG,MAA2C,CAAA;AAEzF,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,GAAI,MAAM,IAAI,EAAE,GAAG,IAAI,KAAG,MAA2C,CAAA;AAE1F,+DAA+D;AAC/D,eAAO,MAAM,QAAQ,GAAI,MAAM,IAAI,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,IACc,CAAA;AAElH,qDAAqD;AACrD,eAAO,MAAM,gBAAgB,GAAI,MAAM,IAAI,EAAE,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CACvC,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// axis-helpers.ts — Utility functions for axis-aware layout calculations
|
|
2
|
+
// Reduces repeated `axis === "vertical" ? size.h : size.w` patterns
|
|
3
|
+
/** Get the main-axis size (height for vertical, width for horizontal) */
|
|
4
|
+
export const mainSize = (axis, s) => (axis === "vertical" ? s.h : s.w);
|
|
5
|
+
/** Get the cross-axis size (width for vertical, height for horizontal) */
|
|
6
|
+
export const crossSize = (axis, s) => (axis === "vertical" ? s.w : s.h);
|
|
7
|
+
/** Get the main-axis position (y for vertical, x for horizontal) */
|
|
8
|
+
export const mainPos = (axis, r) => (axis === "vertical" ? r.y : r.x);
|
|
9
|
+
/** Get the cross-axis position (x for vertical, y for horizontal) */
|
|
10
|
+
export const crossPos = (axis, r) => (axis === "vertical" ? r.x : r.y);
|
|
11
|
+
/** Get the main-axis dimension (height for vertical, width for horizontal) */
|
|
12
|
+
export const mainDim = (axis, r) => (axis === "vertical" ? r.h : r.w);
|
|
13
|
+
/** Get the cross-axis dimension (width for vertical, height for horizontal) */
|
|
14
|
+
export const crossDim = (axis, r) => (axis === "vertical" ? r.w : r.h);
|
|
15
|
+
/** Create a rect from main/cross coordinates and dimensions */
|
|
16
|
+
export const makeRect = (axis, mainP, crossP, mainD, crossD) => axis === "vertical" ? { x: crossP, y: mainP, w: crossD, h: mainD } : { x: mainP, y: crossP, w: mainD, h: crossD };
|
|
17
|
+
/** Split max constraints into [maxMain, maxCross] */
|
|
18
|
+
export const splitConstraints = (axis, maxW, maxH) => axis === "vertical" ? [maxH, maxW] : [maxW, maxH];
|
|
19
|
+
//# sourceMappingURL=axis-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"axis-helpers.js","sourceRoot":"","sources":["../../src/layout/axis-helpers.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,oEAAoE;AAOpE,yEAAyE;AACzE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAE,CAAO,EAAU,EAAE,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE1F,0EAA0E;AAC1E,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAU,EAAE,CAAO,EAAU,EAAE,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE3F,oEAAoE;AACpE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAU,EAAE,CAAO,EAAU,EAAE,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAEzF,qEAAqE;AACrE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAE,CAAO,EAAU,EAAE,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE1F,8EAA8E;AAC9E,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAU,EAAE,CAAO,EAAU,EAAE,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAEzF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAE,CAAO,EAAU,EAAE,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE1F,+DAA+D;AAC/D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAE,KAAa,EAAE,MAAc,EAAE,KAAa,EAAE,MAAc,EAAQ,EAAE,CAC1G,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;AAElH,qDAAqD;AACrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAE,IAAY,EAAE,IAAY,EAAoB,EAAE,CAC5F,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA"}
|
package/dist/output.d.ts
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output helpers for rendering CellBuffer to ANSI strings.
|
|
3
|
+
* Provides diffing, row emission, and buffer-to-string conversion.
|
|
4
|
+
*/
|
|
5
|
+
import type { CellBuffer } from "./render/buffer.js";
|
|
6
|
+
import type { Palette } from "./render/palette.js";
|
|
7
|
+
/**
|
|
8
|
+
* Emit a row of cells as an ANSI string with run-length SGR encoding.
|
|
9
|
+
* Handles wide characters (cellWidth=0 continuations) and style changes.
|
|
10
|
+
*
|
|
11
|
+
* @param buffer - The cell buffer to read from
|
|
12
|
+
* @param palette - Palette for SGR code generation
|
|
13
|
+
* @param y - Row index
|
|
14
|
+
* @param width - Terminal width
|
|
15
|
+
* @param startX - Start column (default 0)
|
|
16
|
+
* @param endX - End column exclusive (default width)
|
|
17
|
+
* @returns ANSI string for the row (no cursor positioning, no trailing reset)
|
|
18
|
+
*/
|
|
19
|
+
export declare function emitRow(buffer: CellBuffer, palette: Palette, y: number, width: number, startX?: number, endX?: number): {
|
|
20
|
+
output: string;
|
|
21
|
+
lastStyle: number;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Emit a row and reset style if needed.
|
|
25
|
+
*/
|
|
26
|
+
export declare function emitRowWithReset(buffer: CellBuffer, palette: Palette, y: number, width: number, startX?: number, endX?: number): string;
|
|
27
|
+
/**
|
|
28
|
+
* Check if a row changed between two buffers.
|
|
29
|
+
*/
|
|
30
|
+
export declare function rowChanged(prev: CellBuffer, next: CellBuffer, y: number, width: number): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Find the rightmost column with content (non-space or styled).
|
|
33
|
+
* Returns 0 if row is empty.
|
|
34
|
+
*/
|
|
35
|
+
export declare function rowContentWidth(buffer: CellBuffer, y: number, width: number): number;
|
|
36
|
+
/**
|
|
37
|
+
* Find the change window between two buffers for a row.
|
|
38
|
+
* Returns the leftmost and rightmost changed columns, or null if no changes.
|
|
39
|
+
*/
|
|
40
|
+
export declare function findChangeWindow(prev: CellBuffer, next: CellBuffer, y: number, width: number): {
|
|
41
|
+
left: number;
|
|
42
|
+
right: number;
|
|
43
|
+
} | null;
|
|
44
|
+
/**
|
|
45
|
+
* Find the last row with content in a buffer.
|
|
46
|
+
*/
|
|
47
|
+
export declare function contentHeight(buffer: CellBuffer, width: number, height: number): number;
|
|
48
|
+
/**
|
|
49
|
+
* Convert a CellBuffer to a complete ANSI string (for static output).
|
|
50
|
+
* Each row is emitted with proper styling and joined with newlines.
|
|
51
|
+
*
|
|
52
|
+
* @param buffer - The cell buffer to convert
|
|
53
|
+
* @param palette - Palette for SGR code generation
|
|
54
|
+
* @param width - Buffer width
|
|
55
|
+
* @param height - Number of rows to emit
|
|
56
|
+
* @returns ANSI string with newlines between rows
|
|
57
|
+
*/
|
|
58
|
+
export declare function bufferToString(buffer: CellBuffer, palette: Palette, width: number, height: number): string;
|
|
59
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CACtB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,SAAI,EACV,IAAI,SAAQ,GACV;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CA6BvC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,SAAI,EACV,IAAI,SAAQ,GACV,MAAM,CAGR;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAShG;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYpF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA2BxC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAUvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAM1G"}
|
package/dist/output.js
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output helpers for rendering CellBuffer to ANSI strings.
|
|
3
|
+
* Provides diffing, row emission, and buffer-to-string conversion.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Emit a row of cells as an ANSI string with run-length SGR encoding.
|
|
7
|
+
* Handles wide characters (cellWidth=0 continuations) and style changes.
|
|
8
|
+
*
|
|
9
|
+
* @param buffer - The cell buffer to read from
|
|
10
|
+
* @param palette - Palette for SGR code generation
|
|
11
|
+
* @param y - Row index
|
|
12
|
+
* @param width - Terminal width
|
|
13
|
+
* @param startX - Start column (default 0)
|
|
14
|
+
* @param endX - End column exclusive (default width)
|
|
15
|
+
* @returns ANSI string for the row (no cursor positioning, no trailing reset)
|
|
16
|
+
*/
|
|
17
|
+
export function emitRow(buffer, palette, y, width, startX = 0, endX = width) {
|
|
18
|
+
const row = y * width;
|
|
19
|
+
let output = "";
|
|
20
|
+
let visualCol = startX;
|
|
21
|
+
let currentStyle = -1;
|
|
22
|
+
for (let x = startX; x < endX && visualCol < width; x++) {
|
|
23
|
+
const idx = row + x;
|
|
24
|
+
const glyph = buffer.g[idx];
|
|
25
|
+
const styleId = buffer.s[idx];
|
|
26
|
+
const cellWidth = buffer.cw[idx] || 1;
|
|
27
|
+
// Skip continuation cells (wide char second half)
|
|
28
|
+
if (cellWidth === 0)
|
|
29
|
+
continue;
|
|
30
|
+
// Stop if this char would overflow
|
|
31
|
+
if (visualCol + cellWidth > width)
|
|
32
|
+
break;
|
|
33
|
+
// Emit SGR only when style changes (run-length encoding)
|
|
34
|
+
if (styleId !== currentStyle) {
|
|
35
|
+
output += palette.sgr(styleId);
|
|
36
|
+
currentStyle = styleId;
|
|
37
|
+
}
|
|
38
|
+
output += glyph === 32 ? " " : String.fromCodePoint(glyph);
|
|
39
|
+
visualCol += cellWidth;
|
|
40
|
+
}
|
|
41
|
+
return { output, lastStyle: currentStyle };
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Emit a row and reset style if needed.
|
|
45
|
+
*/
|
|
46
|
+
export function emitRowWithReset(buffer, palette, y, width, startX = 0, endX = width) {
|
|
47
|
+
const { output, lastStyle } = emitRow(buffer, palette, y, width, startX, endX);
|
|
48
|
+
return lastStyle !== 0 ? output + palette.sgr(0) : output;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Check if a row changed between two buffers.
|
|
52
|
+
*/
|
|
53
|
+
export function rowChanged(prev, next, y, width) {
|
|
54
|
+
const row = y * width;
|
|
55
|
+
for (let x = 0; x < width; x++) {
|
|
56
|
+
const idx = row + x;
|
|
57
|
+
if (next.g[idx] !== prev.g[idx] || next.s[idx] !== prev.s[idx] || next.cw[idx] !== prev.cw[idx]) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Find the rightmost column with content (non-space or styled).
|
|
65
|
+
* Returns 0 if row is empty.
|
|
66
|
+
*/
|
|
67
|
+
export function rowContentWidth(buffer, y, width) {
|
|
68
|
+
const row = y * width;
|
|
69
|
+
for (let x = width - 1; x >= 0; x--) {
|
|
70
|
+
const idx = row + x;
|
|
71
|
+
// Skip continuation cells
|
|
72
|
+
if (buffer.cw[idx] === 0)
|
|
73
|
+
continue;
|
|
74
|
+
// Found content if non-space or has style
|
|
75
|
+
if (buffer.g[idx] !== 32 || buffer.s[idx] !== 0) {
|
|
76
|
+
return x + buffer.cw[idx]; // account for wide char width
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return 0;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Find the change window between two buffers for a row.
|
|
83
|
+
* Returns the leftmost and rightmost changed columns, or null if no changes.
|
|
84
|
+
*/
|
|
85
|
+
export function findChangeWindow(prev, next, y, width) {
|
|
86
|
+
const row = y * width;
|
|
87
|
+
let left = 0;
|
|
88
|
+
let right = width - 1;
|
|
89
|
+
// Find leftmost change
|
|
90
|
+
while (left <= right) {
|
|
91
|
+
const i = row + left;
|
|
92
|
+
if (next.g[i] !== prev.g[i] || next.s[i] !== prev.s[i] || next.cw[i] !== prev.cw[i]) {
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
left++;
|
|
96
|
+
}
|
|
97
|
+
// No changes found
|
|
98
|
+
if (left > right)
|
|
99
|
+
return null;
|
|
100
|
+
// Find rightmost change
|
|
101
|
+
while (right >= left) {
|
|
102
|
+
const i = row + right;
|
|
103
|
+
if (next.g[i] !== prev.g[i] || next.s[i] !== prev.s[i] || next.cw[i] !== prev.cw[i]) {
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
right--;
|
|
107
|
+
}
|
|
108
|
+
return { left, right };
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Find the last row with content in a buffer.
|
|
112
|
+
*/
|
|
113
|
+
export function contentHeight(buffer, width, height) {
|
|
114
|
+
for (let y = height - 1; y >= 0; y--) {
|
|
115
|
+
const row = y * width;
|
|
116
|
+
for (let x = 0; x < width; x++) {
|
|
117
|
+
const glyph = buffer.g[row + x];
|
|
118
|
+
const style = buffer.s[row + x];
|
|
119
|
+
if (glyph !== 32 || style !== 0)
|
|
120
|
+
return y + 1;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return 0;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Convert a CellBuffer to a complete ANSI string (for static output).
|
|
127
|
+
* Each row is emitted with proper styling and joined with newlines.
|
|
128
|
+
*
|
|
129
|
+
* @param buffer - The cell buffer to convert
|
|
130
|
+
* @param palette - Palette for SGR code generation
|
|
131
|
+
* @param width - Buffer width
|
|
132
|
+
* @param height - Number of rows to emit
|
|
133
|
+
* @returns ANSI string with newlines between rows
|
|
134
|
+
*/
|
|
135
|
+
export function bufferToString(buffer, palette, width, height) {
|
|
136
|
+
const lines = [];
|
|
137
|
+
for (let y = 0; y < height; y++) {
|
|
138
|
+
lines.push(emitRowWithReset(buffer, palette, y, width));
|
|
139
|
+
}
|
|
140
|
+
return lines.join("\n");
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../src/render/buffer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../src/render/buffer.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAG/C,eAAO,MAAM,cAAc,EAAE,OAAoE,CAAA;AAKjG,qBAAa,UAAU;IACtB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAGlB,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAA;IACvB,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAA;IACvB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;IAEvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,QAAQ,CAAiC;gBAErC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAwB;IAY5E,qDAAqD;IACrD,KAAK,CAAC,OAAO,SAAI,GAAG,IAAI;IAMxB,2FAA2F;IAC3F,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,IAAI;IAuB3D,wFAAwF;IACxF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,SAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAsBlF,kDAAkD;IAClD,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAK,EAAE,OAAO,SAAI,GAAG,IAAI;IAuBhF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAc1D,OAAO,IAAI,IAAI;IASf,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAU1E,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAMxC,SAAS,IAAI,IAAI;IAWjB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;CAQxD"}
|