take4-console 0.25.0 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +193 -0
- package/dist/Screen/ErrorHolder.d.mts +10 -0
- package/dist/Screen/ErrorHolder.d.mts.map +1 -0
- package/dist/Screen/ErrorHolder.mjs +14 -0
- package/dist/Screen/ErrorHolder.mjs.map +1 -0
- package/dist/Screen/InterfaceBuilder.d.mts.map +1 -1
- package/dist/Screen/InterfaceBuilder.mjs +7 -0
- package/dist/Screen/InterfaceBuilder.mjs.map +1 -1
- package/dist/Screen/Screen.d.mts +50 -1
- package/dist/Screen/Screen.d.mts.map +1 -1
- package/dist/Screen/Screen.mjs +152 -0
- package/dist/Screen/Screen.mjs.map +1 -1
- package/dist/Screen/StyleRegistry.d.mts.map +1 -1
- package/dist/Screen/StyleRegistry.mjs +3 -1
- package/dist/Screen/StyleRegistry.mjs.map +1 -1
- package/dist/Screen/VirtualCursor.d.mts +57 -0
- package/dist/Screen/VirtualCursor.d.mts.map +1 -0
- package/dist/Screen/VirtualCursor.mjs +148 -0
- package/dist/Screen/VirtualCursor.mjs.map +1 -0
- package/dist/Screen/Window.d.mts +67 -6
- package/dist/Screen/Window.d.mts.map +1 -1
- package/dist/Screen/Window.mjs +195 -27
- package/dist/Screen/Window.mjs.map +1 -1
- package/dist/Screen/WindowManager.d.mts +78 -2
- package/dist/Screen/WindowManager.d.mts.map +1 -1
- package/dist/Screen/WindowManager.mjs +186 -3
- package/dist/Screen/WindowManager.mjs.map +1 -1
- package/dist/Screen/controls/TextArea.d.mts +68 -2
- package/dist/Screen/controls/TextArea.d.mts.map +1 -1
- package/dist/Screen/controls/TextArea.mjs +280 -46
- package/dist/Screen/controls/TextArea.mjs.map +1 -1
- package/dist/Screen/controls/TextBox.d.mts +52 -5
- package/dist/Screen/controls/TextBox.d.mts.map +1 -1
- package/dist/Screen/controls/TextBox.mjs +179 -10
- package/dist/Screen/controls/TextBox.mjs.map +1 -1
- package/dist/Screen/controls/Toast.d.mts +72 -0
- package/dist/Screen/controls/Toast.d.mts.map +1 -0
- package/dist/Screen/controls/Toast.mjs +112 -0
- package/dist/Screen/controls/Toast.mjs.map +1 -0
- package/dist/Screen/types.d.mts +143 -0
- package/dist/Screen/types.d.mts.map +1 -1
- package/dist/Screen/types.mjs +8 -0
- package/dist/Screen/types.mjs.map +1 -1
- package/dist/index.d.mts +4 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +3 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/Screen/ErrorHolder.mts +22 -0
- package/src/Screen/InterfaceBuilder.mts +12 -5
- package/src/Screen/Screen.mts +166 -1
- package/src/Screen/StyleRegistry.mts +4 -0
- package/src/Screen/VirtualCursor.mts +175 -0
- package/src/Screen/Window.mts +197 -28
- package/src/Screen/WindowManager.mts +192 -3
- package/src/Screen/controls/TextArea.mts +280 -41
- package/src/Screen/controls/TextBox.mts +181 -10
- package/src/Screen/controls/Toast.mts +138 -0
- package/src/Screen/types.mts +140 -0
- package/src/demo.mts +80 -0
- package/src/index.mts +12 -0
- package/src/layout.yaml +16 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Screen.mjs","sourceRoot":"","sources":["../../src/Screen/Screen.mts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Screen.mjs","sourceRoot":"","sources":["../../src/Screen/Screen.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyleRegistry.d.mts","sourceRoot":"","sources":["../../src/Screen/StyleRegistry.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"StyleRegistry.d.mts","sourceRoot":"","sources":["../../src/Screen/StyleRegistry.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAgBlE;0EAC0E;AAC1E,qBAAa,aAAa;IACzB,kEAAkE;IAClE,OAAO,CAAC,MAAM,CAA0B;IACxC,8CAA8C;IAC9C,OAAO,CAAC,KAAK,CAA8C;IAC3D,gEAAgE;IAChE,OAAO,CAAC,KAAK,CAAmC;IAEhD,6EAA6E;;IAgB7E;gFAC4E;IACrE,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO;IAU/C;8EAC0E;IACnE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO;IAMlE,0FAA0F;IACnF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIlD;mEAC+D;IACxD,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,KAAK;IAM/D,qFAAqF;IAC9E,GAAG,CAAC,EAAE,EAAE,OAAO,GAAG,cAAc;IAIvC;8EAC0E;IACnE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;IAMvD,2DAA2D;IAC3D,OAAO,CAAC,OAAO;CASf"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BUILTIN_WINDOW_BG, BUILTIN_BORDER, BUILTIN_BORDER_FOCUSED, BUILTIN_BORDER_DISABLED, BUILTIN_TEXT, BUILTIN_TEXT_FOCUSED, BUILTIN_TEXT_DISABLED, BUILTIN_TEXT_PLACEHOLDER, BUILTIN_TEXT_CHECKED, BUILTIN_CURSOR, } from './types.mjs';
|
|
1
|
+
import { BUILTIN_WINDOW_BG, BUILTIN_BORDER, BUILTIN_BORDER_FOCUSED, BUILTIN_BORDER_DISABLED, BUILTIN_TEXT, BUILTIN_TEXT_FOCUSED, BUILTIN_TEXT_DISABLED, BUILTIN_TEXT_PLACEHOLDER, BUILTIN_TEXT_CHECKED, BUILTIN_CURSOR, BUILTIN_TEXT_SELECTION, BUILTIN_TOAST, } from './types.mjs';
|
|
2
2
|
/** Central registry that maps integer style IDs to CellAttributes objects.
|
|
3
3
|
* Identical attribute sets always map to the same ID (deduplication). */
|
|
4
4
|
export class StyleRegistry {
|
|
@@ -20,6 +20,8 @@ export class StyleRegistry {
|
|
|
20
20
|
this.registerNamed(BUILTIN_TEXT_PLACEHOLDER, { foreground: 242, italic: true });
|
|
21
21
|
this.registerNamed(BUILTIN_TEXT_CHECKED, { foreground: 76, bold: true });
|
|
22
22
|
this.registerNamed(BUILTIN_CURSOR, { inverse: true });
|
|
23
|
+
this.registerNamed(BUILTIN_TEXT_SELECTION, { background: 24, foreground: 231 });
|
|
24
|
+
this.registerNamed(BUILTIN_TOAST, { background: 24, foreground: 231, bold: true });
|
|
23
25
|
}
|
|
24
26
|
/** Registers a CellAttributes object and returns its stable ID.
|
|
25
27
|
* If an identical style was registered before, returns the existing ID. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyleRegistry.mjs","sourceRoot":"","sources":["../../src/Screen/StyleRegistry.mts"],"names":[],"mappings":"AACA,OAAO,EACN,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,
|
|
1
|
+
{"version":3,"file":"StyleRegistry.mjs","sourceRoot":"","sources":["../../src/Screen/StyleRegistry.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { CursorBlink, VirtualCursorOptions } from './types.mjs';
|
|
2
|
+
/** Default glyph used when the consumer does not supply one — a vertical
|
|
3
|
+
* bar that reads as a text insertion caret on most monospace fonts. */
|
|
4
|
+
export declare const DEFAULT_CURSOR_SYMBOL = "\u258E";
|
|
5
|
+
/** Software cursor model — owns the glyph rendered on screen and the
|
|
6
|
+
* on/off blink state. Stateless when `blink.mode === 'off'` or `'steady'`;
|
|
7
|
+
* for timed modes the class samples `Date.now()` on every `isVisible()`
|
|
8
|
+
* call and advances internal phase state as needed. A caller (typically
|
|
9
|
+
* `WindowManager`) is responsible for triggering re-renders on a timer so
|
|
10
|
+
* the visual state actually reaches the terminal. */
|
|
11
|
+
export declare class VirtualCursor {
|
|
12
|
+
/** Glyph rendered for the cursor when visible. `undefined` means "use
|
|
13
|
+
* the legacy inverse-block highlight over the underlying character". */
|
|
14
|
+
private symbol;
|
|
15
|
+
/** Blink configuration — mode and custom timings. */
|
|
16
|
+
private blink;
|
|
17
|
+
/** Current phase in the blink timeline. Lazily initialised on first
|
|
18
|
+
* `isVisible()` call so construction stays free of side effects. */
|
|
19
|
+
private phase;
|
|
20
|
+
/** Creates a new cursor with the provided symbol and blink settings.
|
|
21
|
+
* Defaults: symbol = `undefined` (inverse-block), blink = `{ mode: 'steady' }`. */
|
|
22
|
+
constructor(options?: VirtualCursorOptions);
|
|
23
|
+
/** Returns the caller-supplied glyph, or `DEFAULT_CURSOR_SYMBOL` when
|
|
24
|
+
* none was set. Use `hasCustomSymbol()` to distinguish the two cases. */
|
|
25
|
+
getSymbol(): string;
|
|
26
|
+
/** Returns true when a custom glyph was provided; false means the
|
|
27
|
+
* caller wants the legacy inverse-block highlight behaviour. */
|
|
28
|
+
hasCustomSymbol(): boolean;
|
|
29
|
+
/** Replaces the cursor glyph. Pass `undefined` to revert to inverse-block. */
|
|
30
|
+
setSymbol(symbol: string | undefined): void;
|
|
31
|
+
/** Returns the active blink configuration (for inspection / cloning). */
|
|
32
|
+
getBlink(): CursorBlink;
|
|
33
|
+
/** Replaces the blink configuration and resets the phase timer so the
|
|
34
|
+
* new mode starts in its "on" phase immediately. */
|
|
35
|
+
setBlink(blink: CursorBlink): void;
|
|
36
|
+
/** Returns the fastest cadence (in ms) a re-render would need to show
|
|
37
|
+
* this cursor's blink faithfully, or `null` when the cursor is static
|
|
38
|
+
* (modes `'off'` and `'steady'`). Used by `WindowManager` to pick a
|
|
39
|
+
* timer interval. For `irregular` we return the minimum possible
|
|
40
|
+
* off-phase duration so quick flicks are not missed. */
|
|
41
|
+
getTickHintMs(): number | null;
|
|
42
|
+
/** Returns whether the cursor should be drawn at the given moment.
|
|
43
|
+
* `now` is accepted for deterministic testing; defaults to `Date.now()`. */
|
|
44
|
+
isVisible(now?: number): boolean;
|
|
45
|
+
/** Forces the next `isVisible()` sample to begin a fresh "on" phase at
|
|
46
|
+
* `now`. Useful for keeping the cursor steady while the user types — a
|
|
47
|
+
* blink that vanishes mid-keystroke is jarring. */
|
|
48
|
+
resetPhase(now?: number): void;
|
|
49
|
+
/** Picks the first "on" phase duration for the current blink mode.
|
|
50
|
+
* Split out so tests can assert the expected preset values. */
|
|
51
|
+
private firstOnDuration;
|
|
52
|
+
/** Returns the duration of the upcoming phase given its visibility flag.
|
|
53
|
+
* Implements both the named presets and the `custom` / `irregular`
|
|
54
|
+
* semantics in one place. */
|
|
55
|
+
private phaseDuration;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=VirtualCursor.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VirtualCursor.d.mts","sourceRoot":"","sources":["../../src/Screen/VirtualCursor.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAerE;wEACwE;AACxE,eAAO,MAAM,qBAAqB,WAAM,CAAC;AAYzC;;;;;sDAKsD;AACtD,qBAAa,aAAa;IACzB;6EACyE;IACzE,OAAO,CAAC,MAAM,CAAqB;IACnC,qDAAqD;IACrD,OAAO,CAAC,KAAK,CAAc;IAC3B;yEACqE;IACrE,OAAO,CAAC,KAAK,CAAe;IAE5B;wFACoF;gBACjE,OAAO,CAAC,EAAE,oBAAoB;IAMjD;8EAC0E;IACnE,SAAS,IAAI,MAAM;IAI1B;qEACiE;IAC1D,eAAe,IAAI,OAAO;IAIjC,8EAA8E;IACvE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIlD,yEAAyE;IAClE,QAAQ,IAAI,WAAW;IAI9B;yDACqD;IAC9C,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAKzC;;;;6DAIyD;IAClD,aAAa,IAAI,MAAM,GAAG,IAAI;IAkBrC;iFAC6E;IACtE,SAAS,CAAC,GAAG,GAAE,MAAmB,GAAG,OAAO;IA0BnD;;wDAEoD;IAC7C,UAAU,CAAC,GAAG,GAAE,MAAmB,GAAG,IAAI;IAIjD;oEACgE;IAChE,OAAO,CAAC,eAAe;IAIvB;;kCAE8B;IAC9B,OAAO,CAAC,aAAa;CAmBrB"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/** Default on/off durations (ms) for the named blink modes. */
|
|
2
|
+
const BLINK_PRESETS = {
|
|
3
|
+
slow: { onMs: 600, offMs: 600 },
|
|
4
|
+
fast: { onMs: 250, offMs: 250 },
|
|
5
|
+
};
|
|
6
|
+
/** Bounds (ms) for the irregular blink mode — each phase picks a random
|
|
7
|
+
* duration from its range so the cursor feels "alive" rather than metronomic. */
|
|
8
|
+
const IRREGULAR_ON_MIN = 180;
|
|
9
|
+
const IRREGULAR_ON_MAX = 520;
|
|
10
|
+
const IRREGULAR_OFF_MIN = 90;
|
|
11
|
+
const IRREGULAR_OFF_MAX = 240;
|
|
12
|
+
/** Default glyph used when the consumer does not supply one — a vertical
|
|
13
|
+
* bar that reads as a text insertion caret on most monospace fonts. */
|
|
14
|
+
export const DEFAULT_CURSOR_SYMBOL = '▎';
|
|
15
|
+
/** Software cursor model — owns the glyph rendered on screen and the
|
|
16
|
+
* on/off blink state. Stateless when `blink.mode === 'off'` or `'steady'`;
|
|
17
|
+
* for timed modes the class samples `Date.now()` on every `isVisible()`
|
|
18
|
+
* call and advances internal phase state as needed. A caller (typically
|
|
19
|
+
* `WindowManager`) is responsible for triggering re-renders on a timer so
|
|
20
|
+
* the visual state actually reaches the terminal. */
|
|
21
|
+
export class VirtualCursor {
|
|
22
|
+
/** Glyph rendered for the cursor when visible. `undefined` means "use
|
|
23
|
+
* the legacy inverse-block highlight over the underlying character". */
|
|
24
|
+
symbol;
|
|
25
|
+
/** Blink configuration — mode and custom timings. */
|
|
26
|
+
blink;
|
|
27
|
+
/** Current phase in the blink timeline. Lazily initialised on first
|
|
28
|
+
* `isVisible()` call so construction stays free of side effects. */
|
|
29
|
+
phase;
|
|
30
|
+
/** Creates a new cursor with the provided symbol and blink settings.
|
|
31
|
+
* Defaults: symbol = `undefined` (inverse-block), blink = `{ mode: 'steady' }`. */
|
|
32
|
+
constructor(options) {
|
|
33
|
+
this.symbol = options?.symbol;
|
|
34
|
+
this.blink = options?.blink ?? { mode: 'steady' };
|
|
35
|
+
this.phase = null;
|
|
36
|
+
}
|
|
37
|
+
/** Returns the caller-supplied glyph, or `DEFAULT_CURSOR_SYMBOL` when
|
|
38
|
+
* none was set. Use `hasCustomSymbol()` to distinguish the two cases. */
|
|
39
|
+
getSymbol() {
|
|
40
|
+
return this.symbol ?? DEFAULT_CURSOR_SYMBOL;
|
|
41
|
+
}
|
|
42
|
+
/** Returns true when a custom glyph was provided; false means the
|
|
43
|
+
* caller wants the legacy inverse-block highlight behaviour. */
|
|
44
|
+
hasCustomSymbol() {
|
|
45
|
+
return this.symbol !== undefined;
|
|
46
|
+
}
|
|
47
|
+
/** Replaces the cursor glyph. Pass `undefined` to revert to inverse-block. */
|
|
48
|
+
setSymbol(symbol) {
|
|
49
|
+
this.symbol = symbol;
|
|
50
|
+
}
|
|
51
|
+
/** Returns the active blink configuration (for inspection / cloning). */
|
|
52
|
+
getBlink() {
|
|
53
|
+
return this.blink;
|
|
54
|
+
}
|
|
55
|
+
/** Replaces the blink configuration and resets the phase timer so the
|
|
56
|
+
* new mode starts in its "on" phase immediately. */
|
|
57
|
+
setBlink(blink) {
|
|
58
|
+
this.blink = blink;
|
|
59
|
+
this.phase = null;
|
|
60
|
+
}
|
|
61
|
+
/** Returns the fastest cadence (in ms) a re-render would need to show
|
|
62
|
+
* this cursor's blink faithfully, or `null` when the cursor is static
|
|
63
|
+
* (modes `'off'` and `'steady'`). Used by `WindowManager` to pick a
|
|
64
|
+
* timer interval. For `irregular` we return the minimum possible
|
|
65
|
+
* off-phase duration so quick flicks are not missed. */
|
|
66
|
+
getTickHintMs() {
|
|
67
|
+
switch (this.blink.mode) {
|
|
68
|
+
case 'off':
|
|
69
|
+
case 'steady':
|
|
70
|
+
return null;
|
|
71
|
+
case 'slow':
|
|
72
|
+
return BLINK_PRESETS.slow.onMs;
|
|
73
|
+
case 'fast':
|
|
74
|
+
return BLINK_PRESETS.fast.onMs;
|
|
75
|
+
case 'irregular':
|
|
76
|
+
return IRREGULAR_OFF_MIN;
|
|
77
|
+
case 'custom':
|
|
78
|
+
return Math.min(this.blink.onMs, this.blink.offMs);
|
|
79
|
+
default:
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/** Returns whether the cursor should be drawn at the given moment.
|
|
84
|
+
* `now` is accepted for deterministic testing; defaults to `Date.now()`. */
|
|
85
|
+
isVisible(now = Date.now()) {
|
|
86
|
+
if (this.blink.mode === 'off')
|
|
87
|
+
return false;
|
|
88
|
+
if (this.blink.mode === 'steady')
|
|
89
|
+
return true;
|
|
90
|
+
if (this.phase === null) {
|
|
91
|
+
this.phase = { startedAt: now, visible: true, duration: this.firstOnDuration() };
|
|
92
|
+
}
|
|
93
|
+
// Walk forward through phases until we land on the one that covers `now`.
|
|
94
|
+
// Doing this iteratively (vs. a single modulo) is important for
|
|
95
|
+
// `irregular` mode, where every phase has an independently sampled
|
|
96
|
+
// duration.
|
|
97
|
+
while (now - this.phase.startedAt >= this.phase.duration) {
|
|
98
|
+
const current = this.phase;
|
|
99
|
+
const nextStart = current.startedAt + current.duration;
|
|
100
|
+
const nextVisible = !current.visible;
|
|
101
|
+
this.phase = {
|
|
102
|
+
startedAt: nextStart,
|
|
103
|
+
visible: nextVisible,
|
|
104
|
+
duration: this.phaseDuration(nextVisible),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
return this.phase.visible;
|
|
108
|
+
}
|
|
109
|
+
/** Forces the next `isVisible()` sample to begin a fresh "on" phase at
|
|
110
|
+
* `now`. Useful for keeping the cursor steady while the user types — a
|
|
111
|
+
* blink that vanishes mid-keystroke is jarring. */
|
|
112
|
+
resetPhase(now = Date.now()) {
|
|
113
|
+
this.phase = { startedAt: now, visible: true, duration: this.firstOnDuration() };
|
|
114
|
+
}
|
|
115
|
+
/** Picks the first "on" phase duration for the current blink mode.
|
|
116
|
+
* Split out so tests can assert the expected preset values. */
|
|
117
|
+
firstOnDuration() {
|
|
118
|
+
return this.phaseDuration(true);
|
|
119
|
+
}
|
|
120
|
+
/** Returns the duration of the upcoming phase given its visibility flag.
|
|
121
|
+
* Implements both the named presets and the `custom` / `irregular`
|
|
122
|
+
* semantics in one place. */
|
|
123
|
+
phaseDuration(visible) {
|
|
124
|
+
switch (this.blink.mode) {
|
|
125
|
+
case 'off':
|
|
126
|
+
case 'steady':
|
|
127
|
+
return Number.POSITIVE_INFINITY;
|
|
128
|
+
case 'slow':
|
|
129
|
+
return visible ? BLINK_PRESETS.slow.onMs : BLINK_PRESETS.slow.offMs;
|
|
130
|
+
case 'fast':
|
|
131
|
+
return visible ? BLINK_PRESETS.fast.onMs : BLINK_PRESETS.fast.offMs;
|
|
132
|
+
case 'custom':
|
|
133
|
+
return visible ? this.blink.onMs : this.blink.offMs;
|
|
134
|
+
case 'irregular':
|
|
135
|
+
return visible
|
|
136
|
+
? randomBetween(IRREGULAR_ON_MIN, IRREGULAR_ON_MAX)
|
|
137
|
+
: randomBetween(IRREGULAR_OFF_MIN, IRREGULAR_OFF_MAX);
|
|
138
|
+
default:
|
|
139
|
+
return Number.POSITIVE_INFINITY;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/** Returns a uniformly distributed integer in the closed range [min, max].
|
|
144
|
+
* Kept as a module-private helper so `VirtualCursor` stays compact. */
|
|
145
|
+
function randomBetween(min, max) {
|
|
146
|
+
return min + Math.floor(Math.random() * (max - min + 1));
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=VirtualCursor.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VirtualCursor.mjs","sourceRoot":"","sources":["../../src/Screen/VirtualCursor.mts"],"names":[],"mappings":"AAEA,+DAA+D;AAC/D,MAAM,aAAa,GAAG;IACrB,IAAI,EAAK,EAAE,IAAI,EAAG,GAAG,EAAE,KAAK,EAAG,GAAG,EAAE;IACpC,IAAI,EAAK,EAAE,IAAI,EAAG,GAAG,EAAE,KAAK,EAAG,GAAG,EAAE;CAC3B,CAAC;AAEX;kFACkF;AAClF,MAAM,gBAAgB,GAAI,GAAG,CAAC;AAC9B,MAAM,gBAAgB,GAAI,GAAG,CAAC;AAC9B,MAAM,iBAAiB,GAAI,EAAE,CAAC;AAC9B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B;wEACwE;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAYzC;;;;;sDAKsD;AACtD,MAAM,OAAO,aAAa;IACzB;6EACyE;IACjE,MAAM,CAAqB;IACnC,qDAAqD;IAC7C,KAAK,CAAc;IAC3B;yEACqE;IAC7D,KAAK,CAAe;IAE5B;wFACoF;IACpF,YAAmB,OAA8B;QAChD,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAI,OAAO,EAAE,KAAK,IAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK,GAAI,IAAI,CAAC;IACpB,CAAC;IAED;8EAC0E;IACnE,SAAS;QACf,OAAO,IAAI,CAAC,MAAM,IAAI,qBAAqB,CAAC;IAC7C,CAAC;IAED;qEACiE;IAC1D,eAAe;QACrB,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;IAClC,CAAC;IAED,8EAA8E;IACvE,SAAS,CAAC,MAA0B;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,yEAAyE;IAClE,QAAQ;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED;yDACqD;IAC9C,QAAQ,CAAC,KAAkB;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;6DAIyD;IAClD,aAAa;QACnB,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,KAAK,CAAC;YACX,KAAK,QAAQ;gBACZ,OAAO,IAAI,CAAC;YACb,KAAK,MAAM;gBACV,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAChC,KAAK,MAAM;gBACV,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAChC,KAAK,WAAW;gBACf,OAAO,iBAAiB,CAAC;YAC1B,KAAK,QAAQ;gBACZ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpD;gBACC,OAAO,IAAI,CAAC;QACd,CAAC;IACF,CAAC;IAED;iFAC6E;IACtE,SAAS,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;QACxC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK;YAAK,OAAO,KAAK,CAAC;QAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE9C,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QAClF,CAAC;QAED,0EAA0E;QAC1E,gEAAgE;QAChE,mEAAmE;QACnE,YAAY;QACZ,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1D,MAAM,OAAO,GAAe,IAAI,CAAC,KAAK,CAAC;YACvC,MAAM,SAAS,GAAa,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;YACjE,MAAM,WAAW,GAAY,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9C,IAAI,CAAC,KAAK,GAAG;gBACZ,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAI,WAAW;gBACtB,QAAQ,EAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;aAC1C,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED;;wDAEoD;IAC7C,UAAU,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;QACzC,IAAI,CAAC,KAAK,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;IAClF,CAAC;IAED;oEACgE;IACxD,eAAe;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;kCAE8B;IACtB,aAAa,CAAC,OAAgB;QACrC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,KAAK,CAAC;YACX,KAAK,QAAQ;gBACZ,OAAO,MAAM,CAAC,iBAAiB,CAAC;YACjC,KAAK,MAAM;gBACV,OAAO,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;YACrE,KAAK,MAAM;gBACV,OAAO,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;YACrE,KAAK,QAAQ;gBACZ,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACrD,KAAK,WAAW;gBACf,OAAO,OAAO;oBACb,CAAC,CAAC,aAAa,CAAC,gBAAgB,EAAG,gBAAgB,CAAC;oBACpD,CAAC,CAAC,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;YACxD;gBACC,OAAO,MAAM,CAAC,iBAAiB,CAAC;QAClC,CAAC;IACF,CAAC;CACD;AAED;wEACwE;AACxE,SAAS,aAAa,CAAC,GAAW,EAAE,GAAW;IAC9C,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC"}
|
package/dist/Screen/Window.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Cell, StyleId, WindowBorder, WindowProperties, WriteTextOptions, WriteTextInput, TerminalSize } from './types.mjs';
|
|
1
|
+
import type { Cell, StyleId, WindowBorder, WindowProperties, WriteTextOptions, WriteTextInput, TerminalSize, Margin } from './types.mjs';
|
|
2
2
|
import { Region } from './Region.mjs';
|
|
3
3
|
import { StyleRegistry } from './StyleRegistry.mjs';
|
|
4
4
|
export declare class Window {
|
|
@@ -43,18 +43,34 @@ export declare class Window {
|
|
|
43
43
|
/** Padding applied inside the border (in addition to the border inset).
|
|
44
44
|
* Influences `getInnerSize()` / `getInnerOffset()`. */
|
|
45
45
|
private padding;
|
|
46
|
+
/** Outer spacing reserved around this window inside its parent's layout.
|
|
47
|
+
* Consumed by the parent's layout engine (absolute/flex/grid); does not
|
|
48
|
+
* influence this window's inner area. */
|
|
49
|
+
private margin;
|
|
46
50
|
/** Number of columns for `layout: 'grid'`. */
|
|
47
51
|
private gridColumns;
|
|
48
52
|
/** Cross-axis alignment for row/column layouts. */
|
|
49
53
|
private alignItems;
|
|
50
54
|
/** Main-axis distribution of leftover space when no flex-grow child consumes it. */
|
|
51
55
|
private justifyContent;
|
|
56
|
+
/** Optional identifier — copied from WindowProperties.id. Used by
|
|
57
|
+
* `WindowManager.focusById` and by diagnostic tooling. */
|
|
58
|
+
private id;
|
|
59
|
+
/** Stacking order among siblings (higher z renders on top). Default: 0. */
|
|
60
|
+
private zIndex;
|
|
61
|
+
/** Fires once when focused state flips from false to true. */
|
|
62
|
+
private onFocusHandler;
|
|
63
|
+
/** Fires once when focused state flips from true to false. */
|
|
64
|
+
private onBlurHandler;
|
|
52
65
|
/** Creates a window from the given properties.
|
|
53
66
|
* For percentage-based sizes, call addChild() before writing content to the window.
|
|
54
67
|
* Uses the global StyleRegistry set by the Screen constructor. */
|
|
55
68
|
constructor(wp: WindowProperties);
|
|
56
69
|
/** Returns the window dimensions (columns × rows). */
|
|
57
70
|
getSize(): TerminalSize;
|
|
71
|
+
/** Returns a snapshot of the resolved per-side margin (in cells). The parent's
|
|
72
|
+
* layout engine reads this to reserve outer spacing around the child. */
|
|
73
|
+
getMargin(): Readonly<Margin>;
|
|
58
74
|
/** Returns the number of cells consumed by decorations on each edge.
|
|
59
75
|
* The explicit 'none' border style is treated as no border (no insets). */
|
|
60
76
|
private borderInset;
|
|
@@ -72,8 +88,33 @@ export declare class Window {
|
|
|
72
88
|
getInnerSize(): TerminalSize;
|
|
73
89
|
/** Sets the active state. Affects border and background appearance on next render(). */
|
|
74
90
|
setActive(active: boolean): void;
|
|
75
|
-
/** Sets the focused state. Controls use this to change visual appearance on focus.
|
|
91
|
+
/** Sets the focused state. Controls use this to change visual appearance on focus.
|
|
92
|
+
* Fires `onFocus` / `onBlur` (configured via `WindowProperties`) when the state
|
|
93
|
+
* actually changes; a no-op call with the current value does not re-fire them. */
|
|
76
94
|
setFocused(focused: boolean): void;
|
|
95
|
+
/** Registers (or replaces) the onFocus handler at runtime. Pass `undefined`
|
|
96
|
+
* to detach. Fires in `setFocused` on every false → true transition. */
|
|
97
|
+
setOnFocus(handler: (() => void) | undefined): void;
|
|
98
|
+
/** Registers (or replaces) the onBlur handler at runtime. Pass `undefined`
|
|
99
|
+
* to detach. Fires in `setFocused` on every true → false transition. */
|
|
100
|
+
setOnBlur(handler: (() => void) | undefined): void;
|
|
101
|
+
/** Returns the optional identifier set via WindowProperties.id. */
|
|
102
|
+
getId(): string | undefined;
|
|
103
|
+
/** Sets (or clears with `undefined`) the window identifier used by
|
|
104
|
+
* `WindowManager.focusById` and diagnostic tooling. */
|
|
105
|
+
setId(id: string | undefined): void;
|
|
106
|
+
/** Returns the current stacking order. Higher values render on top of
|
|
107
|
+
* lower ones among siblings. Default: 0. */
|
|
108
|
+
getZIndex(): number;
|
|
109
|
+
/** Updates the stacking order. Siblings are re-sorted on the next render()
|
|
110
|
+
* call; call `screen.render()` (or the surrounding window) to see the
|
|
111
|
+
* change. Does not affect layout (flex/absolute coordinates are
|
|
112
|
+
* independent of z). */
|
|
113
|
+
setZIndex(zIndex: number): void;
|
|
114
|
+
/** Returns the direct children of this window in insertion order (a
|
|
115
|
+
* read-only view). WindowManager uses this to walk subtrees for
|
|
116
|
+
* `trapFocus` and `focusById` without exposing the internal array. */
|
|
117
|
+
getChildren(): readonly Window[];
|
|
77
118
|
/** Returns whether this window currently has keyboard focus. */
|
|
78
119
|
isFocused(): boolean;
|
|
79
120
|
/** Sets the disabled state and deactivates the window when disabled. */
|
|
@@ -167,6 +208,16 @@ export declare class Window {
|
|
|
167
208
|
* children are also skipped in the loop below.
|
|
168
209
|
*/
|
|
169
210
|
render(): void;
|
|
211
|
+
/** Returns direct children sorted for rendering — stable by (zIndex asc,
|
|
212
|
+
* insertion order). Children with higher zIndex paint last, so they
|
|
213
|
+
* appear on top of lower-z siblings. Layout is NOT affected: flex and
|
|
214
|
+
* absolute positioning run off the insertion-ordered `children` list. */
|
|
215
|
+
private orderedByZ;
|
|
216
|
+
/** Renders a single-line "⚠ render error" marker over the child's
|
|
217
|
+
* pre-allocated region so a broken subtree never blanks the rest of the
|
|
218
|
+
* frame. The child is still blitted onto this window so its geometry
|
|
219
|
+
* (borders, siblings) remains visible in the debug layout. */
|
|
220
|
+
private paintErrorPlaceholder;
|
|
170
221
|
/** Fills the display buffer with the background style. When inactive, adds dim to every cell.
|
|
171
222
|
* No-op when background is 0 (transparent). */
|
|
172
223
|
private paintBackground;
|
|
@@ -203,7 +254,10 @@ export declare class Window {
|
|
|
203
254
|
* absolute / row / column / grid implementations based on `layoutMode`. */
|
|
204
255
|
private runLayout;
|
|
205
256
|
/** Absolute layout: each child independently resolves its Pos/Size against
|
|
206
|
-
* the parent's inner area — the pre-flex behaviour.
|
|
257
|
+
* the parent's inner area — the pre-flex behaviour. A child's `margin`
|
|
258
|
+
* shifts the resolved position by `(marginLeft, marginTop)` without
|
|
259
|
+
* altering its size, so callers can push a window away from its declared
|
|
260
|
+
* anchor without recomputing coordinates by hand. */
|
|
207
261
|
private layoutAbsolute;
|
|
208
262
|
/** Row / column flex layout. The main axis (width for 'row', height for
|
|
209
263
|
* 'column') is distributed across children: each child starts with its
|
|
@@ -215,13 +269,20 @@ export declare class Window {
|
|
|
215
269
|
* distribution only when no child consumes slack via flex-grow. Invisible
|
|
216
270
|
* children are skipped so `setVisible(false)` effectively removes them
|
|
217
271
|
* from the stack. Children are ordered by `Pos.flex(order)` first, then
|
|
218
|
-
* by addChild insertion (stable).
|
|
272
|
+
* by addChild insertion (stable).
|
|
273
|
+
*
|
|
274
|
+
* Each child's `margin` reserves extra cells around it: the main axis
|
|
275
|
+
* loses `marginLeft+marginRight` (row) or `marginTop+marginBottom` (column)
|
|
276
|
+
* per child before distribution, and the cross axis loses `margin*` per
|
|
277
|
+
* child before alignment. Grow/shrink still apply to the inner size so the
|
|
278
|
+
* declared margin stays constant even when the child is flex-resized. */
|
|
219
279
|
private layoutFlex;
|
|
220
280
|
/** Grid layout: children are placed row-major into equally sized cells.
|
|
221
281
|
* Each cell's width is `(innerWidth - gap * (cols - 1)) / cols` (floored);
|
|
222
282
|
* heights use the same formula with the derived row count. Children are
|
|
223
|
-
* resized to the cell dimensions
|
|
224
|
-
*
|
|
283
|
+
* resized to the cell dimensions minus their own margin and positioned
|
|
284
|
+
* at the cell's top-left offset by `(marginLeft, marginTop)`. Invisible
|
|
285
|
+
* children are skipped. */
|
|
225
286
|
private layoutGrid;
|
|
226
287
|
/** Returns visible children sorted by Pos.flex(order) ascending; children
|
|
227
288
|
* without Pos.flex default to order 0. Stable w.r.t. addChild insertion. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Window.d.mts","sourceRoot":"","sources":["../../src/Screen/Window.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAA4B,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAoB,YAAY,
|
|
1
|
+
{"version":3,"file":"Window.d.mts","sourceRoot":"","sources":["../../src/Screen/Window.mts"],"names":[],"mappings":"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"}
|