take4-console 0.25.0 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/CHANGELOG.md +253 -0
  2. package/README.md +3 -2
  3. package/dist/Screen/ErrorHolder.d.mts +10 -0
  4. package/dist/Screen/ErrorHolder.d.mts.map +1 -0
  5. package/dist/Screen/ErrorHolder.mjs +14 -0
  6. package/dist/Screen/ErrorHolder.mjs.map +1 -0
  7. package/dist/Screen/InterfaceBuilder.d.mts.map +1 -1
  8. package/dist/Screen/InterfaceBuilder.mjs +7 -0
  9. package/dist/Screen/InterfaceBuilder.mjs.map +1 -1
  10. package/dist/Screen/Screen.d.mts +90 -1
  11. package/dist/Screen/Screen.d.mts.map +1 -1
  12. package/dist/Screen/Screen.mjs +300 -1
  13. package/dist/Screen/Screen.mjs.map +1 -1
  14. package/dist/Screen/StyleRegistry.d.mts.map +1 -1
  15. package/dist/Screen/StyleRegistry.mjs +3 -1
  16. package/dist/Screen/StyleRegistry.mjs.map +1 -1
  17. package/dist/Screen/VirtualCursor.d.mts +57 -0
  18. package/dist/Screen/VirtualCursor.d.mts.map +1 -0
  19. package/dist/Screen/VirtualCursor.mjs +148 -0
  20. package/dist/Screen/VirtualCursor.mjs.map +1 -0
  21. package/dist/Screen/Window.d.mts +116 -6
  22. package/dist/Screen/Window.d.mts.map +1 -1
  23. package/dist/Screen/Window.mjs +359 -34
  24. package/dist/Screen/Window.mjs.map +1 -1
  25. package/dist/Screen/WindowManager.d.mts +78 -2
  26. package/dist/Screen/WindowManager.d.mts.map +1 -1
  27. package/dist/Screen/WindowManager.mjs +197 -3
  28. package/dist/Screen/WindowManager.mjs.map +1 -1
  29. package/dist/Screen/controls/BarChart.d.mts.map +1 -1
  30. package/dist/Screen/controls/BarChart.mjs +3 -0
  31. package/dist/Screen/controls/BarChart.mjs.map +1 -1
  32. package/dist/Screen/controls/Checkbox.d.mts.map +1 -1
  33. package/dist/Screen/controls/Checkbox.mjs +4 -0
  34. package/dist/Screen/controls/Checkbox.mjs.map +1 -1
  35. package/dist/Screen/controls/LineChart.d.mts.map +1 -1
  36. package/dist/Screen/controls/LineChart.mjs +3 -0
  37. package/dist/Screen/controls/LineChart.mjs.map +1 -1
  38. package/dist/Screen/controls/ListBox.d.mts.map +1 -1
  39. package/dist/Screen/controls/ListBox.mjs +9 -0
  40. package/dist/Screen/controls/ListBox.mjs.map +1 -1
  41. package/dist/Screen/controls/ProgressBar.d.mts.map +1 -1
  42. package/dist/Screen/controls/ProgressBar.mjs +2 -0
  43. package/dist/Screen/controls/ProgressBar.mjs.map +1 -1
  44. package/dist/Screen/controls/ProgressBarV.d.mts.map +1 -1
  45. package/dist/Screen/controls/ProgressBarV.mjs +2 -0
  46. package/dist/Screen/controls/ProgressBarV.mjs.map +1 -1
  47. package/dist/Screen/controls/Radio.d.mts.map +1 -1
  48. package/dist/Screen/controls/Radio.mjs +7 -1
  49. package/dist/Screen/controls/Radio.mjs.map +1 -1
  50. package/dist/Screen/controls/Sparkline.d.mts.map +1 -1
  51. package/dist/Screen/controls/Sparkline.mjs +3 -0
  52. package/dist/Screen/controls/Sparkline.mjs.map +1 -1
  53. package/dist/Screen/controls/Spinner.d.mts.map +1 -1
  54. package/dist/Screen/controls/Spinner.mjs +8 -0
  55. package/dist/Screen/controls/Spinner.mjs.map +1 -1
  56. package/dist/Screen/controls/StatusLED.d.mts.map +1 -1
  57. package/dist/Screen/controls/StatusLED.mjs +3 -0
  58. package/dist/Screen/controls/StatusLED.mjs.map +1 -1
  59. package/dist/Screen/controls/Tabs.d.mts.map +1 -1
  60. package/dist/Screen/controls/Tabs.mjs +2 -0
  61. package/dist/Screen/controls/Tabs.mjs.map +1 -1
  62. package/dist/Screen/controls/TextArea.d.mts +68 -2
  63. package/dist/Screen/controls/TextArea.d.mts.map +1 -1
  64. package/dist/Screen/controls/TextArea.mjs +291 -46
  65. package/dist/Screen/controls/TextArea.mjs.map +1 -1
  66. package/dist/Screen/controls/TextBox.d.mts +52 -5
  67. package/dist/Screen/controls/TextBox.d.mts.map +1 -1
  68. package/dist/Screen/controls/TextBox.mjs +192 -10
  69. package/dist/Screen/controls/TextBox.mjs.map +1 -1
  70. package/dist/Screen/controls/Toast.d.mts +72 -0
  71. package/dist/Screen/controls/Toast.d.mts.map +1 -0
  72. package/dist/Screen/controls/Toast.mjs +112 -0
  73. package/dist/Screen/controls/Toast.mjs.map +1 -0
  74. package/dist/Screen/types.d.mts +169 -0
  75. package/dist/Screen/types.d.mts.map +1 -1
  76. package/dist/Screen/types.mjs +8 -0
  77. package/dist/Screen/types.mjs.map +1 -1
  78. package/dist/index.d.mts +4 -2
  79. package/dist/index.d.mts.map +1 -1
  80. package/dist/index.mjs +3 -1
  81. package/dist/index.mjs.map +1 -1
  82. package/package.json +1 -1
  83. package/src/Screen/ErrorHolder.mts +22 -0
  84. package/src/Screen/InterfaceBuilder.mts +12 -5
  85. package/src/Screen/Screen.mts +313 -2
  86. package/src/Screen/StyleRegistry.mts +4 -0
  87. package/src/Screen/VirtualCursor.mts +175 -0
  88. package/src/Screen/Window.mts +352 -34
  89. package/src/Screen/WindowManager.mts +203 -3
  90. package/src/Screen/controls/BarChart.mts +3 -0
  91. package/src/Screen/controls/Checkbox.mts +3 -0
  92. package/src/Screen/controls/LineChart.mts +3 -0
  93. package/src/Screen/controls/ListBox.mts +8 -0
  94. package/src/Screen/controls/ProgressBar.mts +2 -0
  95. package/src/Screen/controls/ProgressBarV.mts +2 -0
  96. package/src/Screen/controls/Radio.mts +6 -1
  97. package/src/Screen/controls/Sparkline.mts +3 -0
  98. package/src/Screen/controls/Spinner.mts +6 -0
  99. package/src/Screen/controls/StatusLED.mts +2 -0
  100. package/src/Screen/controls/Tabs.mts +2 -0
  101. package/src/Screen/controls/TextArea.mts +290 -41
  102. package/src/Screen/controls/TextBox.mts +193 -10
  103. package/src/Screen/controls/Toast.mts +138 -0
  104. package/src/Screen/types.mts +167 -0
  105. package/src/demo.mts +131 -0
  106. package/src/index.mts +13 -0
  107. package/src/layout.yaml +16 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Window.mjs","sourceRoot":"","sources":["../../src/Screen/Window.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Window.mjs","sourceRoot":"","sources":["../../src/Screen/Window.mts"],"names":[],"mappings":"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"}
@@ -18,6 +18,15 @@ export declare class WindowManager {
18
18
  private onKey?;
19
19
  private onMouse?;
20
20
  private mouseEnabled;
21
+ /** Optional sink for render-time exceptions thrown by descendant windows.
22
+ * Installed into the global ErrorHolder on construction (cleared on
23
+ * stop). When unset, `Window.render()` rethrows instead of swallowing. */
24
+ private onError?;
25
+ /** When non-null, focus navigation (`focusNext/Prev/First/Last`, Tab cycle)
26
+ * is constrained to focusable controls whose absolute position falls
27
+ * inside a descendant of this window. Set by `trapFocus`; cleared by the
28
+ * release callback it returns. */
29
+ private focusTrap;
21
30
  /** Registered bindings mapped by raw key string.
22
31
  * Multiple handlers for the same key fire in insertion order; the first
23
32
  * one that returns `true` marks the event as consumed. */
@@ -45,6 +54,12 @@ export declare class WindowManager {
45
54
  /** Set by pause() when it showed a previously-hidden cursor — instructs
46
55
  * resume() to hide it again. Cleared after resume() or stop() uses it. */
47
56
  private pauseRestoreCursorHidden;
57
+ /** Active setInterval handle for cursor blink ticks, or null when
58
+ * cursor blinking is disabled (the default). */
59
+ private blinkTimer;
60
+ /** Interval (ms) requested by the last `enableCursorBlink()` call.
61
+ * Kept so resume() can reinstall the timer with the same cadence. */
62
+ private blinkIntervalMs;
48
63
  /** Creates a WindowManager for the given Screen.
49
64
  * Does not start the input loop; call run() to begin. */
50
65
  constructor(screen: Screen, options?: WindowManagerOptions);
@@ -58,8 +73,38 @@ export declare class WindowManager {
58
73
  /** Returns the currently focused control, or null if no control has focus. */
59
74
  getFocused(): (Focusable & Window) | null;
60
75
  /** Moves focus to the given control if it belongs to the active context and is
61
- * eligible (not disabled, not hidden via setVisible(false)). */
76
+ * eligible (not disabled, not hidden via setVisible(false)). When a focus
77
+ * trap is installed, the candidate must also be a descendant of the trap
78
+ * — otherwise the call is a no-op. */
62
79
  setFocus(control: Focusable & Window): void;
80
+ /** Moves focus to the next eligible control (forward cycle), skipping
81
+ * disabled, hidden, and out-of-trap entries. Equivalent to the Tab key. */
82
+ focusNext(): void;
83
+ /** Moves focus to the previous eligible control (reverse cycle), skipping
84
+ * disabled, hidden, and out-of-trap entries. Equivalent to Shift-Tab. */
85
+ focusPrev(): void;
86
+ /** Focuses the first eligible control in the active context. No-op when
87
+ * no control is eligible. */
88
+ focusFirst(): void;
89
+ /** Focuses the last eligible control in the active context. */
90
+ focusLast(): void;
91
+ /** Focuses the control registered with the given `id` (copied from
92
+ * `WindowProperties.id` / YAML `id:`). Searches the active focus context
93
+ * only; returns `true` on success, `false` when no matching control is
94
+ * registered or the match is ineligible. */
95
+ focusById(id: string): boolean;
96
+ /** Constrains focus navigation to descendants of `within`. While active,
97
+ * `focusNext / focusPrev / focusFirst / focusLast / setFocus / focusById`
98
+ * skip any control that is not a descendant of `within`; Tab / Shift-Tab
99
+ * cycle within the trapped subtree only. Nested calls stack in LIFO
100
+ * order via the returned release function — calling the release restores
101
+ * the previous trap (or clears it when this was the outermost). The
102
+ * helper is independent of the modal dialog stack, so it can be used
103
+ * for composite controls that live inside the main context. */
104
+ trapFocus(within: Window): () => void;
105
+ /** Returns the Window that currently defines the focus trap, or null when
106
+ * no trap is active. Exposed primarily for tests and diagnostics. */
107
+ getFocusTrap(): Window | null;
63
108
  /** Registers a global shortcut handler.
64
109
  *
65
110
  * The handler fires **before** the focused control receives the key; if it
@@ -134,6 +179,25 @@ export declare class WindowManager {
134
179
  * called. A paused manager still has its `run()` context (focus
135
180
  * registrations, dialog stack, exit keys) intact. */
136
181
  isPaused(): boolean;
182
+ /** Starts a timer that periodically triggers a re-render so timed-blink
183
+ * `VirtualCursor` instances (used by focused `TextBox` / `TextArea`)
184
+ * actually animate in the terminal. Call once after `run()`; the timer
185
+ * automatically pauses during `pause()` and re-arms on `resume()`.
186
+ *
187
+ * The `intervalMs` parameter sets how often the timer fires — smaller
188
+ * values are smoother but render more frames per second. Default:
189
+ * `80` ms (≈12 Hz), enough to capture the `fast` preset (250/250) and
190
+ * the short phases of `irregular` without flooding stdout.
191
+ *
192
+ * Idempotent: calling again with a new interval replaces the existing
193
+ * timer. */
194
+ enableCursorBlink(intervalMs?: number): void;
195
+ /** Stops the blink timer installed by `enableCursorBlink()`. Idempotent. */
196
+ disableCursorBlink(): void;
197
+ /** (Re)creates the blink interval using the cached `blinkIntervalMs`. */
198
+ private installBlinkTimer;
199
+ /** Clears the active blink interval, if any. */
200
+ private uninstallBlinkTimer;
137
201
  /** Processes a raw stdin Buffer. Exposed as public so tests can drive it directly
138
202
  * without needing a real TTY. Tab / Shift-Tab navigation works even before run()
139
203
  * because moveFocus() handles the "no current focus" case. Dispatching to a
@@ -151,8 +215,20 @@ export declare class WindowManager {
151
215
  /** Removes focus from the currently focused control without moving it elsewhere. */
152
216
  private blurCurrent;
153
217
  /** Returns true when the control is eligible to receive focus in the current
154
- * context — neither disabled nor hidden via `Window.setVisible(false)`. */
218
+ * context — neither disabled nor hidden via `Window.setVisible(false)`,
219
+ * and inside the active focus trap (if any). */
155
220
  private isFocusable;
221
+ /** Depth-first check: is `control` the trap window itself or one of its
222
+ * descendants? Used when `focusTrap` is installed to filter focus
223
+ * candidates. Cheaper than storing parent pointers because the subtree
224
+ * is usually small (the trap is a dialog or composite control). */
225
+ private isWithinTrap;
226
+ /** Returns true when `node` is `root` or is reachable by walking
227
+ * `root.getChildren()` recursively. */
228
+ private isDescendant;
229
+ /** Moves focus to the first or last eligible control in the active
230
+ * context. Shared implementation for `focusFirst` / `focusLast`. */
231
+ private focusAtEdge;
156
232
  /** Finds the first already-focused (or first eligible) control and focuses it. */
157
233
  private initializeFocus;
158
234
  /** Moves focus by delta (+1 for Tab, -1 for Shift-Tab), skipping disabled
@@ -1 +1 @@
1
- {"version":3,"file":"WindowManager.d.mts","sourceRoot":"","sources":["../../src/Screen/WindowManager.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WindowManager.d.mts","sourceRoot":"","sources":["../../src/Screen/WindowManager.mts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { setErrorHandler } from './ErrorHolder.mjs';
1
2
  // ── Key parsing ───────────────────────────────────────────────────────────────
2
3
  /**
3
4
  * Parses a raw stdin Buffer into an array of key strings.
@@ -147,6 +148,15 @@ export class WindowManager {
147
148
  onKey;
148
149
  onMouse;
149
150
  mouseEnabled;
151
+ /** Optional sink for render-time exceptions thrown by descendant windows.
152
+ * Installed into the global ErrorHolder on construction (cleared on
153
+ * stop). When unset, `Window.render()` rethrows instead of swallowing. */
154
+ onError;
155
+ /** When non-null, focus navigation (`focusNext/Prev/First/Last`, Tab cycle)
156
+ * is constrained to focusable controls whose absolute position falls
157
+ * inside a descendant of this window. Set by `trapFocus`; cleared by the
158
+ * release callback it returns. */
159
+ focusTrap = null;
150
160
  /** Registered bindings mapped by raw key string.
151
161
  * Multiple handlers for the same key fire in insertion order; the first
152
162
  * one that returns `true` marks the event as consumed. */
@@ -174,6 +184,12 @@ export class WindowManager {
174
184
  /** Set by pause() when it showed a previously-hidden cursor — instructs
175
185
  * resume() to hide it again. Cleared after resume() or stop() uses it. */
176
186
  pauseRestoreCursorHidden = false;
187
+ /** Active setInterval handle for cursor blink ticks, or null when
188
+ * cursor blinking is disabled (the default). */
189
+ blinkTimer = null;
190
+ /** Interval (ms) requested by the last `enableCursorBlink()` call.
191
+ * Kept so resume() can reinstall the timer with the same cadence. */
192
+ blinkIntervalMs = null;
177
193
  /** Creates a WindowManager for the given Screen.
178
194
  * Does not start the input loop; call run() to begin. */
179
195
  constructor(screen, options) {
@@ -183,6 +199,10 @@ export class WindowManager {
183
199
  this.onKey = options?.onKey;
184
200
  this.onMouse = options?.onMouse;
185
201
  this.mouseEnabled = options?.mouse ?? false;
202
+ this.onError = options?.onError;
203
+ if (this.onError) {
204
+ setErrorHandler((err, control) => this.onError?.(err, control));
205
+ }
186
206
  this.mainEntries = [];
187
207
  this.mainFocusIndex = -1;
188
208
  this.dialogStack = [];
@@ -217,7 +237,9 @@ export class WindowManager {
217
237
  return idx >= 0 ? entries[idx].control : null;
218
238
  }
219
239
  /** Moves focus to the given control if it belongs to the active context and is
220
- * eligible (not disabled, not hidden via setVisible(false)). */
240
+ * eligible (not disabled, not hidden via setVisible(false)). When a focus
241
+ * trap is installed, the candidate must also be a descendant of the trap
242
+ * — otherwise the call is a no-op. */
221
243
  setFocus(control) {
222
244
  const entries = this.activeEntries();
223
245
  const idx = entries.findIndex(e => e.control === control);
@@ -226,10 +248,73 @@ export class WindowManager {
226
248
  const candidate = entries[idx].control;
227
249
  if (candidate.isDisabled() || !candidate.isVisible())
228
250
  return;
251
+ if (this.focusTrap && !this.isWithinTrap(candidate))
252
+ return;
229
253
  this.blurCurrent();
230
254
  this.setActiveFocusIndex(idx);
231
255
  control.setFocused(true);
232
256
  }
257
+ /** Moves focus to the next eligible control (forward cycle), skipping
258
+ * disabled, hidden, and out-of-trap entries. Equivalent to the Tab key. */
259
+ focusNext() {
260
+ this.moveFocus(1);
261
+ }
262
+ /** Moves focus to the previous eligible control (reverse cycle), skipping
263
+ * disabled, hidden, and out-of-trap entries. Equivalent to Shift-Tab. */
264
+ focusPrev() {
265
+ this.moveFocus(-1);
266
+ }
267
+ /** Focuses the first eligible control in the active context. No-op when
268
+ * no control is eligible. */
269
+ focusFirst() {
270
+ this.focusAtEdge('first');
271
+ }
272
+ /** Focuses the last eligible control in the active context. */
273
+ focusLast() {
274
+ this.focusAtEdge('last');
275
+ }
276
+ /** Focuses the control registered with the given `id` (copied from
277
+ * `WindowProperties.id` / YAML `id:`). Searches the active focus context
278
+ * only; returns `true` on success, `false` when no matching control is
279
+ * registered or the match is ineligible. */
280
+ focusById(id) {
281
+ const entries = this.activeEntries();
282
+ for (const entry of entries) {
283
+ if (entry.control.getId() !== id)
284
+ continue;
285
+ if (!this.isFocusable(entry.control))
286
+ return false;
287
+ if (this.focusTrap && !this.isWithinTrap(entry.control))
288
+ return false;
289
+ this.blurCurrent();
290
+ this.setActiveFocusIndex(entries.indexOf(entry));
291
+ entry.control.setFocused(true);
292
+ return true;
293
+ }
294
+ return false;
295
+ }
296
+ /** Constrains focus navigation to descendants of `within`. While active,
297
+ * `focusNext / focusPrev / focusFirst / focusLast / setFocus / focusById`
298
+ * skip any control that is not a descendant of `within`; Tab / Shift-Tab
299
+ * cycle within the trapped subtree only. Nested calls stack in LIFO
300
+ * order via the returned release function — calling the release restores
301
+ * the previous trap (or clears it when this was the outermost). The
302
+ * helper is independent of the modal dialog stack, so it can be used
303
+ * for composite controls that live inside the main context. */
304
+ trapFocus(within) {
305
+ const previous = this.focusTrap;
306
+ this.focusTrap = within;
307
+ return () => {
308
+ if (this.focusTrap === within) {
309
+ this.focusTrap = previous;
310
+ }
311
+ };
312
+ }
313
+ /** Returns the Window that currently defines the focus trap, or null when
314
+ * no trap is active. Exposed primarily for tests and diagnostics. */
315
+ getFocusTrap() {
316
+ return this.focusTrap;
317
+ }
233
318
  // ── Global key bindings (P0-4) ─────────────────────────────────────────────
234
319
  /** Registers a global shortcut handler.
235
320
  *
@@ -360,6 +445,7 @@ export class WindowManager {
360
445
  const wasPaused = this.paused;
361
446
  this.running = false;
362
447
  this.paused = false;
448
+ this.uninstallBlinkTimer();
363
449
  if (wasRunning) {
364
450
  if (!wasPaused) {
365
451
  process.stdin.off('data', this.boundHandleInput);
@@ -384,6 +470,8 @@ export class WindowManager {
384
470
  this.pauseRestoreAltScreen = false;
385
471
  this.pauseRestoreCursorHidden = false;
386
472
  }
473
+ if (this.onError)
474
+ setErrorHandler(undefined);
387
475
  this.onExit?.();
388
476
  }
389
477
  /** Suspends the input loop without tearing down the focus tree. Releases the
@@ -417,6 +505,9 @@ export class WindowManager {
417
505
  if (this.pauseRestoreCursorHidden) {
418
506
  this.screen.showHardwareCursor();
419
507
  }
508
+ // Stop the blink timer so a spawned sub-process doesn't get its
509
+ // screen overwritten mid-frame. resume() reinstalls it.
510
+ this.uninstallBlinkTimer();
420
511
  this.pauseRestoreAltScreen = false;
421
512
  if (options?.leaveAltScreen && this.screen.isAltScreenActive()) {
422
513
  this.screen.exitAltScreen();
@@ -448,7 +539,13 @@ export class WindowManager {
448
539
  }
449
540
  process.stdin.resume();
450
541
  process.stdin.on('data', this.boundHandleInput);
542
+ // Restore the blink timer with its previously configured cadence.
543
+ this.installBlinkTimer();
451
544
  if (options?.rerender !== false) {
545
+ // The paused interval may have reflowed via external writes
546
+ // (e.g. another process scribbled onto stdout), so schedule a
547
+ // full repaint instead of relying on cached dirty rects.
548
+ this.screen.invalidate();
452
549
  this.renderFrame();
453
550
  }
454
551
  }
@@ -458,6 +555,60 @@ export class WindowManager {
458
555
  isPaused() {
459
556
  return this.paused;
460
557
  }
558
+ // ── Cursor blink ───────────────────────────────────────────────────────────
559
+ /** Starts a timer that periodically triggers a re-render so timed-blink
560
+ * `VirtualCursor` instances (used by focused `TextBox` / `TextArea`)
561
+ * actually animate in the terminal. Call once after `run()`; the timer
562
+ * automatically pauses during `pause()` and re-arms on `resume()`.
563
+ *
564
+ * The `intervalMs` parameter sets how often the timer fires — smaller
565
+ * values are smoother but render more frames per second. Default:
566
+ * `80` ms (≈12 Hz), enough to capture the `fast` preset (250/250) and
567
+ * the short phases of `irregular` without flooding stdout.
568
+ *
569
+ * Idempotent: calling again with a new interval replaces the existing
570
+ * timer. */
571
+ enableCursorBlink(intervalMs = 80) {
572
+ this.blinkIntervalMs = Math.max(16, intervalMs);
573
+ this.installBlinkTimer();
574
+ }
575
+ /** Stops the blink timer installed by `enableCursorBlink()`. Idempotent. */
576
+ disableCursorBlink() {
577
+ this.blinkIntervalMs = null;
578
+ this.uninstallBlinkTimer();
579
+ }
580
+ /** (Re)creates the blink interval using the cached `blinkIntervalMs`. */
581
+ installBlinkTimer() {
582
+ this.uninstallBlinkTimer();
583
+ if (this.blinkIntervalMs === null)
584
+ return;
585
+ this.blinkTimer = setInterval(() => {
586
+ // Avoid drawing while paused — the stdin listener is detached
587
+ // and the terminal might be owned by a sub-process.
588
+ if (this.paused)
589
+ return;
590
+ // A blink tick is a pure time-driven change: no user input
591
+ // modified any state, so damage tracking would otherwise skip
592
+ // the frame entirely and the cursor would never visually blink.
593
+ // Flag the focused control dirty (if any) so its render() path
594
+ // re-emits the TextBox / TextArea row with the new cursor
595
+ // phase; when nothing is focused the frame is still skipped.
596
+ this.getFocused()?.markDirty();
597
+ this.renderFrame();
598
+ }, this.blinkIntervalMs);
599
+ // Don't keep the Node event loop alive just for cursor blinks.
600
+ if (typeof this.blinkTimer === 'object' && this.blinkTimer !== null
601
+ && 'unref' in this.blinkTimer && typeof this.blinkTimer.unref === 'function') {
602
+ this.blinkTimer.unref();
603
+ }
604
+ }
605
+ /** Clears the active blink interval, if any. */
606
+ uninstallBlinkTimer() {
607
+ if (this.blinkTimer !== null) {
608
+ clearInterval(this.blinkTimer);
609
+ this.blinkTimer = null;
610
+ }
611
+ }
461
612
  // ── Input handling ─────────────────────────────────────────────────────────
462
613
  /** Processes a raw stdin Buffer. Exposed as public so tests can drive it directly
463
614
  * without needing a real TTY. Tab / Shift-Tab navigation works even before run()
@@ -576,9 +727,52 @@ export class WindowManager {
576
727
  }
577
728
  }
578
729
  /** Returns true when the control is eligible to receive focus in the current
579
- * context — neither disabled nor hidden via `Window.setVisible(false)`. */
730
+ * context — neither disabled nor hidden via `Window.setVisible(false)`,
731
+ * and inside the active focus trap (if any). */
580
732
  isFocusable(control) {
581
- return !control.isDisabled() && control.isVisible();
733
+ if (control.isDisabled() || !control.isVisible())
734
+ return false;
735
+ if (this.focusTrap && !this.isWithinTrap(control))
736
+ return false;
737
+ return true;
738
+ }
739
+ /** Depth-first check: is `control` the trap window itself or one of its
740
+ * descendants? Used when `focusTrap` is installed to filter focus
741
+ * candidates. Cheaper than storing parent pointers because the subtree
742
+ * is usually small (the trap is a dialog or composite control). */
743
+ isWithinTrap(control) {
744
+ if (!this.focusTrap)
745
+ return true;
746
+ return this.isDescendant(control, this.focusTrap);
747
+ }
748
+ /** Returns true when `node` is `root` or is reachable by walking
749
+ * `root.getChildren()` recursively. */
750
+ isDescendant(node, root) {
751
+ if (node === root)
752
+ return true;
753
+ for (const child of root.getChildren()) {
754
+ if (this.isDescendant(node, child))
755
+ return true;
756
+ }
757
+ return false;
758
+ }
759
+ /** Moves focus to the first or last eligible control in the active
760
+ * context. Shared implementation for `focusFirst` / `focusLast`. */
761
+ focusAtEdge(edge) {
762
+ const entries = this.activeEntries();
763
+ if (entries.length === 0)
764
+ return;
765
+ const order = edge === 'first'
766
+ ? entries.map((_, i) => i)
767
+ : entries.map((_, i) => entries.length - 1 - i);
768
+ for (const idx of order) {
769
+ if (!this.isFocusable(entries[idx].control))
770
+ continue;
771
+ this.blurCurrent();
772
+ this.setActiveFocusIndex(idx);
773
+ entries[idx].control.setFocused(true);
774
+ return;
775
+ }
582
776
  }
583
777
  /** Finds the first already-focused (or first eligible) control and focuses it. */
584
778
  initializeFocus() {