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":"TextArea.mjs","sourceRoot":"","sources":["../../../src/Screen/controls/TextArea.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextArea.mjs","sourceRoot":"","sources":["../../../src/Screen/controls/TextArea.mts"],"names":[],"mappings":"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"}
@@ -1,15 +1,23 @@
1
1
  import type { TextBoxProperties, WindowProperties } from '../types.mjs';
2
2
  import { Window } from '../Window.mjs';
3
+ import { VirtualCursor } from '../VirtualCursor.mjs';
3
4
  /** A single-line text-input widget with scrolling, cursor display, and placeholder support.
4
5
  * Wraps content area inside a single-line border (total height 3 by default).
5
6
  * Call handleKey() to feed raw terminal key strings from your input loop. */
6
7
  export declare class TextBox extends Window {
7
8
  private value;
8
9
  private cursor;
10
+ /** Anchor of the active selection, or null when no selection is active.
11
+ * Selection spans the half-open range [min(anchor, cursor), max(anchor, cursor)). */
12
+ private selectionAnchor;
9
13
  private scrollOffset;
10
14
  private placeholder;
11
15
  private placeholderStyleId;
12
16
  private cursorStyleId;
17
+ private selectionStyleId;
18
+ /** Software-cursor model: blink state + glyph. Always present so the
19
+ * caller can reconfigure at runtime via `getVirtualCursor()`. */
20
+ private virtualCursor;
13
21
  /** Invoked after every value change driven by handleKey. Not called by setValue. */
14
22
  private onChange?;
15
23
  /** Invoked when Enter is pressed while focused. */
@@ -19,8 +27,28 @@ export declare class TextBox extends Window {
19
27
  /** Creates a TextBox from window properties and optional control-specific properties.
20
28
  * Uses the global StyleRegistry set by the Screen constructor. */
21
29
  constructor(wp: WindowProperties, cp?: TextBoxProperties);
22
- /** Replaces the current value; clamps cursor and scroll to fit. Does NOT fire onChange. */
30
+ /** Returns the VirtualCursor model so callers can tweak symbol/blink at runtime. */
31
+ getVirtualCursor(): VirtualCursor;
32
+ /** Replaces the current value; clamps cursor and scroll to fit. Does NOT fire onChange.
33
+ * Any active selection is cleared because the old anchor no longer maps
34
+ * onto the new string. */
23
35
  setValue(value: string): void;
36
+ /** Returns the normalized selection range `{ start, end }` (half-open)
37
+ * when a selection is active and non-empty, otherwise `null`. */
38
+ getSelection(): {
39
+ start: number;
40
+ end: number;
41
+ } | null;
42
+ /** Returns the currently selected substring, or '' when no selection. */
43
+ getSelectedText(): string;
44
+ /** Replaces the current selection: sets anchor and cursor, clamping both
45
+ * to the current value length. Passing identical indices clears the
46
+ * selection; callers that want an empty anchor should use `clearSelection()`. */
47
+ setSelection(anchor: number, cursor: number): void;
48
+ /** Selects every character in the current value. No-op when the value is empty. */
49
+ selectAll(): void;
50
+ /** Drops any active selection without moving the cursor. */
51
+ clearSelection(): void;
24
52
  /** Replaces the onChange callback (passing undefined clears it). */
25
53
  setOnChange(fn?: (value: string) => void): void;
26
54
  /** Replaces the onSubmit callback. */
@@ -29,16 +57,35 @@ export declare class TextBox extends Window {
29
57
  setOnKeyDown(fn?: (key: string) => boolean | void): void;
30
58
  /** Returns the current text value. */
31
59
  getValue(): string;
32
- /** Sets the cursor to the given character index (clamped to valid range). */
60
+ /** Sets the cursor to the given character index (clamped to valid range).
61
+ * Any active selection is dropped — callers that want to adjust the
62
+ * cursor while keeping the selection must use `setSelection()`. */
33
63
  setCursor(pos: number): void;
34
64
  /** Returns the current cursor character index. */
35
65
  getCursor(): number;
36
66
  /** Processes a key string from the terminal input loop and updates value/cursor.
37
67
  * Supported special keys: backspace (\x7f), delete (\x1b[3~), left (\x1b[D),
38
- * right (\x1b[C), home (\x1b[H), end (\x1b[F).
39
- * Human-readable aliases: 'backspace', 'delete', 'left', 'right', 'home', 'end'.
40
- * Any single printable character is inserted at the cursor position. */
68
+ * right (\x1b[C), home (\x1b[H), end (\x1b[F), plus their shift-modified
69
+ * CSI variants (`\x1b[1;2D` etc.) which extend the selection, and
70
+ * Ctrl+A (`\x01`) which selects the entire value.
71
+ * Human-readable aliases: 'backspace', 'delete', 'left', 'right', 'home',
72
+ * 'end', 'shift+left', 'shift+right', 'shift+home', 'shift+end', 'ctrl+a'.
73
+ * Any single printable character is inserted at the cursor position and
74
+ * replaces the active selection (if any). */
41
75
  handleKey(key: string): void;
76
+ /** Shared post-key housekeeping: clamp scroll, reset blink phase, fire
77
+ * onChange when the value actually changed. */
78
+ private finishKey;
79
+ /** Starts a selection at the current cursor if none is active, so that a
80
+ * subsequent cursor move extends the selection. */
81
+ private ensureAnchor;
82
+ /** Removes the selected text when a selection is active; cursor is placed
83
+ * at the start of the deleted range. Returns true when a deletion
84
+ * happened, false otherwise. */
85
+ private deleteSelection;
86
+ /** Drops an active selection, moving the cursor to the selection's
87
+ * `start` or `end` edge. Returns true when it did so. */
88
+ private collapseSelection;
42
89
  /** Rebuilds the TextBox: renders text or placeholder, draws cursor. */
43
90
  render(): void;
44
91
  /** Adjusts scrollOffset so the cursor stays within the visible window. */
@@ -1 +1 @@
1
- {"version":3,"file":"TextBox.d.mts","sourceRoot":"","sources":["../../../src/Screen/controls/TextBox.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAW,MAAM,cAAc,CAAC;AAEjF,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC;;8EAE8E;AAC9E,qBAAa,OAAQ,SAAQ,MAAM;IAClC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,aAAa,CAAU;IAE/B,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,CAA0B;IAC3C,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,CAA0B;IAC3C,0EAA0E;IAC1E,OAAO,CAAC,SAAS,CAAC,CAAkC;IAEpD;uEACmE;gBAChD,EAAE,EAAE,gBAAgB,EAAE,EAAE,CAAC,EAAE,iBAAiB;IAwB/D,2FAA2F;IACpF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMpC,oEAAoE;IAC7D,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAItD,sCAAsC;IAC/B,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAItD,gDAAgD;IACzC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI;IAI/D,sCAAsC;IAC/B,QAAQ,IAAI,MAAM;IAIzB,6EAA6E;IACtE,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKnC,kDAAkD;IAC3C,SAAS,IAAI,MAAM;IAI1B;;;;6EAIyE;IAClE,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAgDnC,uEAAuE;IACvD,MAAM,IAAI,IAAI;IA2B9B,0EAA0E;IAC1E,OAAO,CAAC,WAAW;CAQnB"}
1
+ {"version":3,"file":"TextBox.d.mts","sourceRoot":"","sources":["../../../src/Screen/controls/TextBox.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAW,MAAM,cAAc,CAAC;AAEjF,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;8EAE8E;AAC9E,qBAAa,OAAQ,SAAQ,MAAM;IAClC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB;0FACsF;IACtF,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,gBAAgB,CAAU;IAClC;sEACkE;IAClE,OAAO,CAAC,aAAa,CAAgB;IAErC,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,CAA0B;IAC3C,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,CAA0B;IAC3C,0EAA0E;IAC1E,OAAO,CAAC,SAAS,CAAC,CAAkC;IAEpD;uEACmE;gBAChD,EAAE,EAAE,gBAAgB,EAAE,EAAE,CAAC,EAAE,iBAAiB;IA+B/D,oFAAoF;IAC7E,gBAAgB,IAAI,aAAa;IAIxC;;+BAE2B;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQpC;sEACkE;IAC3D,YAAY,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAQ5D,yEAAyE;IAClE,eAAe,IAAI,MAAM;IAKhC;;sFAEkF;IAC3E,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAUzD,mFAAmF;IAC5E,SAAS,IAAI,IAAI;IAWxB,4DAA4D;IACrD,cAAc,IAAI,IAAI;IAM7B,oEAAoE;IAC7D,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAItD,sCAAsC;IAC/B,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAItD,gDAAgD;IACzC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI;IAI/D,sCAAsC;IAC/B,QAAQ,IAAI,MAAM;IAIzB;;wEAEoE;IAC7D,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOnC,kDAAkD;IAC3C,SAAS,IAAI,MAAM;IAI1B;;;;;;;;kDAQ8C;IACvC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAuFnC;oDACgD;IAChD,OAAO,CAAC,SAAS;IAYjB;wDACoD;IACpD,OAAO,CAAC,YAAY;IAIpB;;qCAEiC;IACjC,OAAO,CAAC,eAAe;IASvB;8DAC0D;IAC1D,OAAO,CAAC,iBAAiB;IAQzB,uEAAuE;IACvD,MAAM,IAAI,IAAI;IAiD9B,0EAA0E;IAC1E,OAAO,CAAC,WAAW;CAQnB"}
@@ -1,16 +1,24 @@
1
- import { BUILTIN_TEXT_PLACEHOLDER, BUILTIN_CURSOR } from '../types.mjs';
1
+ import { BUILTIN_TEXT_PLACEHOLDER, BUILTIN_CURSOR, BUILTIN_TEXT_SELECTION } from '../types.mjs';
2
2
  import { Window } from '../Window.mjs';
3
3
  import { getRegistry } from '../RegistryHolder.mjs';
4
+ import { VirtualCursor } from '../VirtualCursor.mjs';
4
5
  /** A single-line text-input widget with scrolling, cursor display, and placeholder support.
5
6
  * Wraps content area inside a single-line border (total height 3 by default).
6
7
  * Call handleKey() to feed raw terminal key strings from your input loop. */
7
8
  export class TextBox extends Window {
8
9
  value;
9
10
  cursor;
11
+ /** Anchor of the active selection, or null when no selection is active.
12
+ * Selection spans the half-open range [min(anchor, cursor), max(anchor, cursor)). */
13
+ selectionAnchor;
10
14
  scrollOffset;
11
15
  placeholder;
12
16
  placeholderStyleId;
13
17
  cursorStyleId;
18
+ selectionStyleId;
19
+ /** Software-cursor model: blink state + glyph. Always present so the
20
+ * caller can reconfigure at runtime via `getVirtualCursor()`. */
21
+ virtualCursor;
14
22
  /** Invoked after every value change driven by handleKey. Not called by setValue. */
15
23
  onChange;
16
24
  /** Invoked when Enter is pressed while focused. */
@@ -30,19 +38,79 @@ export class TextBox extends Window {
30
38
  this.cursor = cp?.cursor !== undefined
31
39
  ? Math.max(0, Math.min(cp.cursor, this.value.length))
32
40
  : this.value.length;
41
+ this.selectionAnchor = null;
33
42
  this.onChange = cp?.onChange;
34
43
  this.onSubmit = cp?.onSubmit;
35
44
  this.onKeyDown = cp?.onKeyDown;
36
45
  const reg = getRegistry();
37
46
  this.placeholderStyleId = reg.getNamed(BUILTIN_TEXT_PLACEHOLDER);
38
47
  this.cursorStyleId = reg.getNamed(BUILTIN_CURSOR);
48
+ this.selectionStyleId = reg.getNamed(BUILTIN_TEXT_SELECTION);
49
+ this.virtualCursor = new VirtualCursor({
50
+ symbol: cp?.cursorSymbol,
51
+ blink: cp?.cursorBlink,
52
+ });
39
53
  this.clampScroll();
40
54
  }
41
- /** Replaces the current value; clamps cursor and scroll to fit. Does NOT fire onChange. */
55
+ /** Returns the VirtualCursor model so callers can tweak symbol/blink at runtime. */
56
+ getVirtualCursor() {
57
+ return this.virtualCursor;
58
+ }
59
+ /** Replaces the current value; clamps cursor and scroll to fit. Does NOT fire onChange.
60
+ * Any active selection is cleared because the old anchor no longer maps
61
+ * onto the new string. */
42
62
  setValue(value) {
43
63
  this.value = value;
44
64
  this.cursor = Math.min(this.cursor, value.length);
65
+ this.selectionAnchor = null;
66
+ this.clampScroll();
67
+ this.markDirty();
68
+ }
69
+ /** Returns the normalized selection range `{ start, end }` (half-open)
70
+ * when a selection is active and non-empty, otherwise `null`. */
71
+ getSelection() {
72
+ if (this.selectionAnchor === null)
73
+ return null;
74
+ const a = this.selectionAnchor;
75
+ const b = this.cursor;
76
+ if (a === b)
77
+ return null;
78
+ return a < b ? { start: a, end: b } : { start: b, end: a };
79
+ }
80
+ /** Returns the currently selected substring, or '' when no selection. */
81
+ getSelectedText() {
82
+ const sel = this.getSelection();
83
+ return sel === null ? '' : this.value.slice(sel.start, sel.end);
84
+ }
85
+ /** Replaces the current selection: sets anchor and cursor, clamping both
86
+ * to the current value length. Passing identical indices clears the
87
+ * selection; callers that want an empty anchor should use `clearSelection()`. */
88
+ setSelection(anchor, cursor) {
89
+ const len = this.value.length;
90
+ const a = Math.max(0, Math.min(anchor, len));
91
+ const c = Math.max(0, Math.min(cursor, len));
92
+ this.selectionAnchor = a === c ? null : a;
93
+ this.cursor = c;
94
+ this.clampScroll();
95
+ this.markDirty();
96
+ }
97
+ /** Selects every character in the current value. No-op when the value is empty. */
98
+ selectAll() {
99
+ if (this.value.length === 0) {
100
+ this.selectionAnchor = null;
101
+ return;
102
+ }
103
+ this.selectionAnchor = 0;
104
+ this.cursor = this.value.length;
45
105
  this.clampScroll();
106
+ this.markDirty();
107
+ }
108
+ /** Drops any active selection without moving the cursor. */
109
+ clearSelection() {
110
+ if (this.selectionAnchor === null)
111
+ return;
112
+ this.selectionAnchor = null;
113
+ this.markDirty();
46
114
  }
47
115
  /** Replaces the onChange callback (passing undefined clears it). */
48
116
  setOnChange(fn) {
@@ -60,10 +128,14 @@ export class TextBox extends Window {
60
128
  getValue() {
61
129
  return this.value;
62
130
  }
63
- /** Sets the cursor to the given character index (clamped to valid range). */
131
+ /** Sets the cursor to the given character index (clamped to valid range).
132
+ * Any active selection is dropped — callers that want to adjust the
133
+ * cursor while keeping the selection must use `setSelection()`. */
64
134
  setCursor(pos) {
65
135
  this.cursor = Math.max(0, Math.min(pos, this.value.length));
136
+ this.selectionAnchor = null;
66
137
  this.clampScroll();
138
+ this.markDirty();
67
139
  }
68
140
  /** Returns the current cursor character index. */
69
141
  getCursor() {
@@ -71,9 +143,13 @@ export class TextBox extends Window {
71
143
  }
72
144
  /** Processes a key string from the terminal input loop and updates value/cursor.
73
145
  * Supported special keys: backspace (\x7f), delete (\x1b[3~), left (\x1b[D),
74
- * right (\x1b[C), home (\x1b[H), end (\x1b[F).
75
- * Human-readable aliases: 'backspace', 'delete', 'left', 'right', 'home', 'end'.
76
- * Any single printable character is inserted at the cursor position. */
146
+ * right (\x1b[C), home (\x1b[H), end (\x1b[F), plus their shift-modified
147
+ * CSI variants (`\x1b[1;2D` etc.) which extend the selection, and
148
+ * Ctrl+A (`\x01`) which selects the entire value.
149
+ * Human-readable aliases: 'backspace', 'delete', 'left', 'right', 'home',
150
+ * 'end', 'shift+left', 'shift+right', 'shift+home', 'shift+end', 'ctrl+a'.
151
+ * Any single printable character is inserted at the cursor position and
152
+ * replaces the active selection (if any). */
77
153
  handleKey(key) {
78
154
  if (this.disabled)
79
155
  return;
@@ -83,6 +159,38 @@ export class TextBox extends Window {
83
159
  return;
84
160
  }
85
161
  const before = this.value;
162
+ // ── Selection-extending motion (shift + arrow / home / end) ─────────
163
+ if (key === '\x1b[1;2D' || key === 'shift+left') {
164
+ this.ensureAnchor();
165
+ if (this.cursor > 0)
166
+ this.cursor--;
167
+ this.finishKey(before);
168
+ return;
169
+ }
170
+ if (key === '\x1b[1;2C' || key === 'shift+right') {
171
+ this.ensureAnchor();
172
+ if (this.cursor < this.value.length)
173
+ this.cursor++;
174
+ this.finishKey(before);
175
+ return;
176
+ }
177
+ if (key === '\x1b[1;2H' || key === 'shift+home') {
178
+ this.ensureAnchor();
179
+ this.cursor = 0;
180
+ this.finishKey(before);
181
+ return;
182
+ }
183
+ if (key === '\x1b[1;2F' || key === 'shift+end') {
184
+ this.ensureAnchor();
185
+ this.cursor = this.value.length;
186
+ this.finishKey(before);
187
+ return;
188
+ }
189
+ if (key === '\x01' || key === 'ctrl+a') {
190
+ this.selectAll();
191
+ this.finishKey(before);
192
+ return;
193
+ }
86
194
  switch (key) {
87
195
  case '\r':
88
196
  case '\n':
@@ -93,6 +201,8 @@ export class TextBox extends Window {
93
201
  case '\x7f':
94
202
  case '\b':
95
203
  case 'backspace':
204
+ if (this.deleteSelection())
205
+ break;
96
206
  if (this.cursor > 0) {
97
207
  this.value = this.value.slice(0, this.cursor - 1) + this.value.slice(this.cursor);
98
208
  this.cursor--;
@@ -100,38 +210,88 @@ export class TextBox extends Window {
100
210
  break;
101
211
  case '\x1b[3~':
102
212
  case 'delete':
213
+ if (this.deleteSelection())
214
+ break;
103
215
  if (this.cursor < this.value.length) {
104
216
  this.value = this.value.slice(0, this.cursor) + this.value.slice(this.cursor + 1);
105
217
  }
106
218
  break;
107
219
  case '\x1b[D':
108
220
  case 'left':
221
+ // Non-shift left collapses an active selection to its start.
222
+ if (this.collapseSelection('start'))
223
+ break;
109
224
  if (this.cursor > 0)
110
225
  this.cursor--;
111
226
  break;
112
227
  case '\x1b[C':
113
228
  case 'right':
229
+ if (this.collapseSelection('end'))
230
+ break;
114
231
  if (this.cursor < this.value.length)
115
232
  this.cursor++;
116
233
  break;
117
234
  case '\x1b[H':
118
235
  case 'home':
236
+ this.selectionAnchor = null;
119
237
  this.cursor = 0;
120
238
  break;
121
239
  case '\x1b[F':
122
240
  case 'end':
241
+ this.selectionAnchor = null;
123
242
  this.cursor = this.value.length;
124
243
  break;
125
244
  default:
126
245
  if (key.length === 1 && key >= ' ') {
246
+ this.deleteSelection();
127
247
  this.value = this.value.slice(0, this.cursor) + key + this.value.slice(this.cursor);
128
248
  this.cursor++;
129
249
  }
130
250
  }
251
+ this.finishKey(before);
252
+ }
253
+ /** Shared post-key housekeeping: clamp scroll, reset blink phase, fire
254
+ * onChange when the value actually changed. */
255
+ finishKey(before) {
131
256
  this.clampScroll();
257
+ this.virtualCursor.resetPhase();
258
+ // Every key dispatch is a potential content / selection / cursor
259
+ // change — flag the window dirty unconditionally so the next
260
+ // Screen.render() re-emits it. The per-key equality checks in
261
+ // individual branches are not worth the code; the bounding box is
262
+ // cheap and we're going to emit at most the whole window.
263
+ this.markDirty();
132
264
  if (this.value !== before)
133
265
  this.onChange?.(this.value);
134
266
  }
267
+ /** Starts a selection at the current cursor if none is active, so that a
268
+ * subsequent cursor move extends the selection. */
269
+ ensureAnchor() {
270
+ if (this.selectionAnchor === null)
271
+ this.selectionAnchor = this.cursor;
272
+ }
273
+ /** Removes the selected text when a selection is active; cursor is placed
274
+ * at the start of the deleted range. Returns true when a deletion
275
+ * happened, false otherwise. */
276
+ deleteSelection() {
277
+ const sel = this.getSelection();
278
+ if (sel === null)
279
+ return false;
280
+ this.value = this.value.slice(0, sel.start) + this.value.slice(sel.end);
281
+ this.cursor = sel.start;
282
+ this.selectionAnchor = null;
283
+ return true;
284
+ }
285
+ /** Drops an active selection, moving the cursor to the selection's
286
+ * `start` or `end` edge. Returns true when it did so. */
287
+ collapseSelection(edge) {
288
+ const sel = this.getSelection();
289
+ if (sel === null)
290
+ return false;
291
+ this.cursor = edge === 'start' ? sel.start : sel.end;
292
+ this.selectionAnchor = null;
293
+ return true;
294
+ }
135
295
  /** Rebuilds the TextBox: renders text or placeholder, draws cursor. */
136
296
  render() {
137
297
  this.clear();
@@ -145,12 +305,34 @@ export class TextBox extends Window {
145
305
  const visible = this.value.slice(this.scrollOffset, this.scrollOffset + width);
146
306
  this.writeText(visible, { style: this.disabled ? undefined : this.normalStyleId });
147
307
  }
148
- // Draw cursor when focused.
149
- if (this.focused && !this.disabled) {
308
+ // Paint the selection highlight over any cells that fall inside the
309
+ // active selection range — run before the cursor so the caret still
310
+ // shows on top of the highlight.
311
+ const sel = this.focused && !this.disabled ? this.getSelection() : null;
312
+ if (sel !== null) {
313
+ const base = this.normalStyleId;
314
+ for (let i = sel.start; i < sel.end; i++) {
315
+ const col = i - this.scrollOffset;
316
+ if (col < 0 || col >= width)
317
+ continue;
318
+ const merged = this.registry.merge(base, this.selectionStyleId);
319
+ const ch = this.value[i] ?? ' ';
320
+ this.writeText(ch, { x: col, y: 0, style: merged });
321
+ }
322
+ }
323
+ // Draw cursor when focused and the virtual-cursor blink says "on".
324
+ if (this.focused && !this.disabled && this.virtualCursor.isVisible()) {
150
325
  const cursorX = this.cursor - this.scrollOffset;
151
326
  if (cursorX >= 0 && cursorX < width) {
152
- const cursorChar = this.value[this.cursor] ?? ' ';
153
- const cursorStyle = this.registry.merge(this.normalStyleId, this.cursorStyleId);
327
+ const useSymbol = this.virtualCursor.hasCustomSymbol();
328
+ // With a custom glyph we draw the glyph itself (styled with the
329
+ // normal text style so the symbol's colours stay predictable);
330
+ // without one we fall back to the legacy inverse-block highlight
331
+ // painted over the character under the caret.
332
+ const cursorChar = useSymbol ? this.virtualCursor.getSymbol() : (this.value[this.cursor] ?? ' ');
333
+ const cursorStyle = useSymbol
334
+ ? this.normalStyleId
335
+ : this.registry.merge(this.normalStyleId, this.cursorStyleId);
154
336
  this.writeText(cursorChar, { x: cursorX, y: 0, style: cursorStyle });
155
337
  }
156
338
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TextBox.mjs","sourceRoot":"","sources":["../../../src/Screen/controls/TextBox.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextBox.mjs","sourceRoot":"","sources":["../../../src/Screen/controls/TextBox.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import type { StyleId, ToastPosition, WindowBorder } from '../types.mjs';
2
+ import { Window } from '../Window.mjs';
3
+ /** Resolved option bag consumed by the `Toast` constructor. `Screen.toast()`
4
+ * fills every field so the control itself never has to re-apply defaults. */
5
+ export interface ToastConstructorOptions {
6
+ /** Anchor corner (or top/bottom centre). Stored on the instance so the
7
+ * enclosing Screen can group toasts by anchor for stacking / re-layout. */
8
+ position: ToastPosition;
9
+ /** Pre-registered style used both as the window background and as the
10
+ * base style for the toast text. */
11
+ style: StyleId;
12
+ /** Border configuration. `false` yields a borderless toast. */
13
+ border: WindowBorder | boolean;
14
+ /** Stacking order relative to regular Screen children. */
15
+ zIndex: number;
16
+ /** Optional width override for the text row (inner area, without border).
17
+ * When undefined the toast auto-sizes to the measured string width. */
18
+ width: number | undefined;
19
+ }
20
+ /** A transient overlay window produced by `Screen.toast()`. Holds the
21
+ * message text and the anchor position so the Screen can stack, re-flow,
22
+ * and dismiss toasts without leaking that bookkeeping into every caller.
23
+ *
24
+ * The toast is auto-sized: the inner text row is `max(stringWidth(text), 1)`
25
+ * cells wide (or `options.width` when explicitly provided), plus one cell
26
+ * of horizontal padding on each side and the border insets. Height is
27
+ * always one text row plus the vertical border insets — toasts do not
28
+ * wrap or stack text vertically. */
29
+ export declare class Toast extends Window {
30
+ /** Message rendered inside the toast body. Stored so `setMessage` can
31
+ * redraw without re-asking the caller for the original text. */
32
+ private message;
33
+ /** Anchor corner (or top/bottom centre). Read by `Screen` when re-flowing
34
+ * the active-toast stack after a dismissal or terminal resize. */
35
+ private toastPosition;
36
+ /** Style shared between the background fill and the text row. Kept so
37
+ * `setMessage` uses the same colour combination the toast launched with. */
38
+ private toastStyle;
39
+ /** Screen-supplied dismissal hook. Registered after construction via
40
+ * `attachDismiss()` so `Toast` does not need a circular import on
41
+ * `Screen` to invoke `screen.dismissToast(this)`. */
42
+ private dismissHandler;
43
+ /** Builds a Toast with a final size derived from the supplied text and
44
+ * option bag. The caller (`Screen.toast()`) is responsible for placing
45
+ * the toast inside the Screen via `addChild` and setting the final x/y. */
46
+ constructor(text: string, options: ToastConstructorOptions);
47
+ /** Returns the currently displayed message. */
48
+ getMessage(): string;
49
+ /** Returns the resolved style id used for both the background fill and
50
+ * the text row. Exposed so tests can verify the toast's paint without
51
+ * re-resolving BUILTIN_TOAST by hand. */
52
+ getToastStyle(): StyleId;
53
+ /** Returns the anchor corner the toast was created with. `Screen` uses
54
+ * this to group sibling toasts when re-flowing the active stack. */
55
+ getToastPosition(): ToastPosition;
56
+ /** Registers the dismiss callback wired up by `Screen.toast()`. Called
57
+ * once immediately after construction so `toast.dismiss()` can trigger
58
+ * the full Screen-side teardown (timer cancel, re-flow, onDismiss
59
+ * callback) without the Toast needing a direct Screen reference. */
60
+ attachDismiss(handler: () => void): void;
61
+ /** Removes the toast from the Screen it was shown on. Equivalent to
62
+ * calling `screen.dismissToast(this)` — the overload exists so callers
63
+ * that only kept the Toast reference do not need to remember the owning
64
+ * Screen. Safe to call before `attachDismiss()` (no-op) or twice
65
+ * (subsequent calls are no-ops because the Screen guards re-dismissal). */
66
+ dismiss(): void;
67
+ /** Builds a fallback toast style when the registry did not already have
68
+ * `BUILTIN_TOAST` mapped. Extracted as a static helper so `Screen.toast`
69
+ * can resolve the style before it knows whether construction will fail. */
70
+ static resolveDefaultStyle(): StyleId;
71
+ }
72
+ //# sourceMappingURL=Toast.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.d.mts","sourceRoot":"","sources":["../../../src/Screen/controls/Toast.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAMvC;8EAC8E;AAC9E,MAAM,WAAW,uBAAuB;IACtC;gFAC4E;IAC5E,QAAQ,EAAE,aAAa,CAAC;IACxB;yCACqC;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,+DAA+D;IAC/D,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IAC/B,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf;4EACwE;IACxE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAkBD;;;;;;;;qCAQqC;AACrC,qBAAa,KAAM,SAAQ,MAAM;IAC/B;qEACiE;IACjE,OAAO,CAAC,OAAO,CAAS;IACxB;uEACmE;IACnE,OAAO,CAAC,aAAa,CAAgB;IACrC;iFAC6E;IAC7E,OAAO,CAAC,UAAU,CAAU;IAC5B;;0DAEsD;IACtD,OAAO,CAAC,cAAc,CAA2B;IAEjD;;gFAE4E;gBACzD,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB;IAwBjE,+CAA+C;IACxC,UAAU,IAAI,MAAM;IAI3B;;8CAE0C;IACnC,aAAa,IAAI,OAAO;IAI/B;yEACqE;IAC9D,gBAAgB,IAAI,aAAa;IAIxC;;;yEAGqE;IAC9D,aAAa,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAI/C;;;;gFAI4E;IACrE,OAAO,IAAI,IAAI;IAItB;;gFAE4E;WAC9D,mBAAmB,IAAI,OAAO;CAM7C"}