@teaui/core 1.3.7 → 1.4.8

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 (208) hide show
  1. package/.dist/Buffer.d.ts +9 -4
  2. package/.dist/Buffer.js +19 -16
  3. package/.dist/Buffer.js.map +1 -1
  4. package/.dist/Color.js +8 -12
  5. package/.dist/Color.js.map +1 -1
  6. package/.dist/Container.d.ts +4 -4
  7. package/.dist/Container.js +6 -10
  8. package/.dist/Container.js.map +1 -1
  9. package/.dist/Screen.d.ts +40 -11
  10. package/.dist/Screen.js +134 -97
  11. package/.dist/Screen.js.map +1 -1
  12. package/.dist/StringTerminal.d.ts +21 -0
  13. package/.dist/StringTerminal.js +100 -0
  14. package/.dist/StringTerminal.js.map +1 -0
  15. package/.dist/Style.d.ts +1 -1
  16. package/.dist/Style.js +24 -32
  17. package/.dist/Style.js.map +1 -1
  18. package/.dist/System.d.ts +2 -2
  19. package/.dist/System.js +2 -7
  20. package/.dist/System.js.map +1 -1
  21. package/.dist/TestTerminal.d.ts +100 -0
  22. package/.dist/TestTerminal.js +290 -0
  23. package/.dist/TestTerminal.js.map +1 -0
  24. package/.dist/Theme.d.ts +2 -2
  25. package/.dist/Theme.js +11 -15
  26. package/.dist/Theme.js.map +1 -1
  27. package/.dist/UI.d.ts +1 -1
  28. package/.dist/UI.js +3 -6
  29. package/.dist/UI.js.map +1 -1
  30. package/.dist/View.d.ts +8 -8
  31. package/.dist/View.js +17 -22
  32. package/.dist/View.js.map +1 -1
  33. package/.dist/Viewport.d.ts +6 -6
  34. package/.dist/Viewport.js +26 -30
  35. package/.dist/Viewport.js.map +1 -1
  36. package/.dist/ansi.js +25 -43
  37. package/.dist/ansi.js.map +1 -1
  38. package/.dist/components/Accordion.d.ts +8 -9
  39. package/.dist/components/Accordion.js +32 -40
  40. package/.dist/components/Accordion.js.map +1 -1
  41. package/.dist/components/Box.d.ts +3 -3
  42. package/.dist/components/Box.js +27 -31
  43. package/.dist/components/Box.js.map +1 -1
  44. package/.dist/components/Button.d.ts +8 -8
  45. package/.dist/components/Button.js +18 -22
  46. package/.dist/components/Button.js.map +1 -1
  47. package/.dist/components/Checkbox.d.ts +7 -7
  48. package/.dist/components/Checkbox.js +15 -20
  49. package/.dist/components/Checkbox.js.map +1 -1
  50. package/.dist/components/Collapsible.d.ts +6 -6
  51. package/.dist/components/Collapsible.js +16 -20
  52. package/.dist/components/Collapsible.js.map +1 -1
  53. package/.dist/components/CollapsibleText.d.ts +6 -6
  54. package/.dist/components/CollapsibleText.js +22 -26
  55. package/.dist/components/CollapsibleText.js.map +1 -1
  56. package/.dist/components/Digits.d.ts +5 -5
  57. package/.dist/components/Digits.js +7 -11
  58. package/.dist/components/Digits.js.map +1 -1
  59. package/.dist/components/Drawer.d.ts +7 -7
  60. package/.dist/components/Drawer.js +34 -38
  61. package/.dist/components/Drawer.js.map +1 -1
  62. package/.dist/components/Dropdown.d.ts +6 -6
  63. package/.dist/components/Dropdown.js +21 -25
  64. package/.dist/components/Dropdown.js.map +1 -1
  65. package/.dist/components/Header.d.ts +5 -5
  66. package/.dist/components/Header.js +14 -24
  67. package/.dist/components/Header.js.map +1 -1
  68. package/.dist/components/HotKey.d.ts +4 -4
  69. package/.dist/components/HotKey.js +6 -10
  70. package/.dist/components/HotKey.js.map +1 -1
  71. package/.dist/components/Input.d.ts +7 -7
  72. package/.dist/components/Input.js +38 -42
  73. package/.dist/components/Input.js.map +1 -1
  74. package/.dist/components/Log.d.ts +5 -5
  75. package/.dist/components/Log.js +26 -31
  76. package/.dist/components/Log.js.map +1 -1
  77. package/.dist/components/Progress.d.ts +4 -4
  78. package/.dist/components/Progress.js +11 -15
  79. package/.dist/components/Progress.js.map +1 -1
  80. package/.dist/components/Scrollable.d.ts +4 -4
  81. package/.dist/components/Scrollable.js +21 -25
  82. package/.dist/components/Scrollable.js.map +1 -1
  83. package/.dist/components/ScrollableList.d.ts +5 -5
  84. package/.dist/components/ScrollableList.js +13 -17
  85. package/.dist/components/ScrollableList.js.map +1 -1
  86. package/.dist/components/Separator.d.ts +5 -5
  87. package/.dist/components/Separator.js +6 -10
  88. package/.dist/components/Separator.js.map +1 -1
  89. package/.dist/components/Slider.d.ts +5 -5
  90. package/.dist/components/Slider.js +34 -38
  91. package/.dist/components/Slider.js.map +1 -1
  92. package/.dist/components/Space.d.ts +5 -5
  93. package/.dist/components/Space.js +6 -10
  94. package/.dist/components/Space.js.map +1 -1
  95. package/.dist/components/Spinner.d.ts +4 -4
  96. package/.dist/components/Spinner.js +5 -9
  97. package/.dist/components/Spinner.js.map +1 -1
  98. package/.dist/components/Stack.d.ts +6 -6
  99. package/.dist/components/Stack.js +16 -20
  100. package/.dist/components/Stack.js.map +1 -1
  101. package/.dist/components/Tabs.d.ts +7 -7
  102. package/.dist/components/Tabs.js +30 -34
  103. package/.dist/components/Tabs.js.map +1 -1
  104. package/.dist/components/Text.d.ts +6 -6
  105. package/.dist/components/Text.js +19 -23
  106. package/.dist/components/Text.js.map +1 -1
  107. package/.dist/components/ToggleGroup.d.ts +7 -7
  108. package/.dist/components/ToggleGroup.js +20 -24
  109. package/.dist/components/ToggleGroup.js.map +1 -1
  110. package/.dist/components/Tree.d.ts +4 -4
  111. package/.dist/components/Tree.js +17 -21
  112. package/.dist/components/Tree.js.map +1 -1
  113. package/.dist/components/Window.d.ts +2 -2
  114. package/.dist/components/Window.js +2 -6
  115. package/.dist/components/Window.js.map +1 -1
  116. package/.dist/components/fonts.d.ts +1 -1
  117. package/.dist/components/fonts.js +1 -4
  118. package/.dist/components/fonts.js.map +1 -1
  119. package/.dist/components/index.d.ts +27 -27
  120. package/.dist/components/index.js +27 -47
  121. package/.dist/components/index.js.map +1 -1
  122. package/.dist/components/types.js +1 -4
  123. package/.dist/components/types.js.map +1 -1
  124. package/.dist/components/utility/TrackMouse.d.ts +5 -5
  125. package/.dist/components/utility/TrackMouse.js +14 -18
  126. package/.dist/components/utility/TrackMouse.js.map +1 -1
  127. package/.dist/components/utility/index.d.ts +1 -1
  128. package/.dist/components/utility/index.js +1 -5
  129. package/.dist/components/utility/index.js.map +1 -1
  130. package/.dist/events/index.d.ts +9 -10
  131. package/.dist/events/index.js +3 -19
  132. package/.dist/events/index.js.map +1 -1
  133. package/.dist/events/key.d.ts +17 -3
  134. package/.dist/events/key.js +6 -13
  135. package/.dist/events/key.js.map +1 -1
  136. package/.dist/events/mouse.d.ts +3 -3
  137. package/.dist/events/mouse.js +12 -24
  138. package/.dist/events/mouse.js.map +1 -1
  139. package/.dist/events/translate.d.ts +4 -0
  140. package/.dist/events/translate.js +84 -0
  141. package/.dist/events/translate.js.map +1 -0
  142. package/.dist/events/window.js +1 -2
  143. package/.dist/geometry.js +4 -11
  144. package/.dist/geometry.js.map +1 -1
  145. package/.dist/iTerm2.d.ts +8 -4
  146. package/.dist/iTerm2.js +5 -9
  147. package/.dist/iTerm2.js.map +1 -1
  148. package/.dist/index.d.ts +23 -19
  149. package/.dist/index.js +21 -37
  150. package/.dist/index.js.map +1 -1
  151. package/.dist/inspect.js +23 -28
  152. package/.dist/inspect.js.map +1 -1
  153. package/.dist/log.js +9 -17
  154. package/.dist/log.js.map +1 -1
  155. package/.dist/managers/FocusManager.d.ts +2 -2
  156. package/.dist/managers/FocusManager.js +3 -7
  157. package/.dist/managers/FocusManager.js.map +1 -1
  158. package/.dist/managers/ModalManager.d.ts +4 -4
  159. package/.dist/managers/ModalManager.js +5 -9
  160. package/.dist/managers/ModalManager.js.map +1 -1
  161. package/.dist/managers/MouseManager.d.ts +4 -4
  162. package/.dist/managers/MouseManager.js +11 -14
  163. package/.dist/managers/MouseManager.js.map +1 -1
  164. package/.dist/managers/TickManager.d.ts +1 -1
  165. package/.dist/managers/TickManager.js +1 -5
  166. package/.dist/managers/TickManager.js.map +1 -1
  167. package/.dist/renderToAnsi.d.ts +12 -0
  168. package/.dist/renderToAnsi.js +43 -0
  169. package/.dist/renderToAnsi.js.map +1 -0
  170. package/.dist/terminal.d.ts +8 -3
  171. package/.dist/terminal.js +1 -2
  172. package/.dist/testing.d.ts +44 -0
  173. package/.dist/testing.js +164 -0
  174. package/.dist/testing.js.map +1 -0
  175. package/.dist/util.js +17 -25
  176. package/.dist/util.js.map +1 -1
  177. package/LICENSE +0 -3
  178. package/package.json +9 -31
  179. package/.dist/sys/alias.d.ts +0 -470
  180. package/.dist/sys/alias.js +0 -487
  181. package/.dist/sys/alias.js.map +0 -1
  182. package/.dist/sys/colors.d.ts +0 -10
  183. package/.dist/sys/colors.js +0 -285
  184. package/.dist/sys/colors.js.map +0 -1
  185. package/.dist/sys/gpmclient.d.ts +0 -11
  186. package/.dist/sys/gpmclient.js +0 -193
  187. package/.dist/sys/gpmclient.js.map +0 -1
  188. package/.dist/sys/index.d.ts +0 -4
  189. package/.dist/sys/index.js +0 -41
  190. package/.dist/sys/index.js.map +0 -1
  191. package/.dist/sys/keys.d.ts +0 -4
  192. package/.dist/sys/keys.js +0 -531
  193. package/.dist/sys/keys.js.map +0 -1
  194. package/.dist/sys/program.d.ts +0 -356
  195. package/.dist/sys/program.js +0 -3739
  196. package/.dist/sys/program.js.map +0 -1
  197. package/.dist/sys/tput.d.ts +0 -297
  198. package/.dist/sys/tput.js +0 -2708
  199. package/.dist/sys/tput.js.map +0 -1
  200. package/.dist/sys/unicode.d.ts +0 -25
  201. package/.dist/sys/unicode.js +0 -593
  202. package/.dist/sys/unicode.js.map +0 -1
  203. package/.dist/sys/usr/linux +0 -0
  204. package/.dist/sys/usr/windows-ansi +0 -0
  205. package/.dist/sys/usr/xterm +0 -0
  206. package/.dist/sys/usr/xterm-256color +0 -0
  207. package/.dist/sys/usr/xterm.termcap +0 -243
  208. package/.dist/sys/usr/xterm.terminfo +0 -1977
package/.dist/Buffer.d.ts CHANGED
@@ -1,13 +1,18 @@
1
- import type { Terminal, SGRTerminal } from './terminal';
2
- import type { Color } from './Color';
3
- import { Style } from './Style';
4
- import { Size } from './geometry';
1
+ import type { Terminal, SGRTerminal } from './terminal.js';
2
+ import type { Color } from './Color.js';
3
+ import { Style } from './Style.js';
4
+ import { Size } from './geometry.js';
5
5
  export declare class Buffer implements Terminal {
6
6
  #private;
7
7
  size: Size;
8
8
  setForeground(fg: Color): void;
9
9
  setBackground(bg: Color): void;
10
10
  resize(size: Size): void;
11
+ /**
12
+ * Invalidates the diff cache so the next flush writes all cells.
13
+ * Used by test harnesses that reset the terminal between renders.
14
+ */
15
+ invalidate(): void;
11
16
  /**
12
17
  * Writes the string at the cursor from left to write. Exits on newline (no default
13
18
  * wrapping behavior).
package/.dist/Buffer.js CHANGED
@@ -1,12 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Buffer = void 0;
4
- const sys_1 = require("./sys");
5
- const ansi_1 = require("./ansi");
6
- const Style_1 = require("./Style");
7
- const geometry_1 = require("./geometry");
8
- class Buffer {
9
- size = geometry_1.Size.zero;
1
+ import * as unicode from '@teaui/term';
2
+ import { BG_DRAW } from './ansi.js';
3
+ import { Style } from './Style.js';
4
+ import { Size } from './geometry.js';
5
+ export class Buffer {
6
+ size = Size.zero;
10
7
  #meta = '';
11
8
  #canvas = new Map();
12
9
  #prev = new Map();
@@ -18,6 +15,13 @@ class Buffer {
18
15
  }
19
16
  this.size = size;
20
17
  }
18
+ /**
19
+ * Invalidates the diff cache so the next flush writes all cells.
20
+ * Used by test harnesses that reset the terminal between renders.
21
+ */
22
+ invalidate() {
23
+ this.#prev = new Map();
24
+ }
21
25
  /**
22
26
  * Writes the string at the cursor from left to write. Exits on newline (no default
23
27
  * wrapping behavior).
@@ -28,7 +32,7 @@ class Buffer {
28
32
  if (char === '\n') {
29
33
  return;
30
34
  }
31
- const width = sys_1.unicode.charWidth(char);
35
+ const width = unicode.charWidth(char);
32
36
  if (width === 0) {
33
37
  return;
34
38
  }
@@ -38,7 +42,7 @@ class Buffer {
38
42
  let line = this.#canvas.get(y);
39
43
  if (line) {
40
44
  const prev = line.get(x);
41
- if (prev?.char === ansi_1.BG_DRAW) {
45
+ if (prev?.char === BG_DRAW) {
42
46
  const { foreground, background } = prev.style;
43
47
  if (style.foreground === undefined) {
44
48
  style = style.merge({ foreground });
@@ -90,7 +94,7 @@ class Buffer {
90
94
  if (this.#meta) {
91
95
  terminal.write(this.#meta);
92
96
  }
93
- let prevStyle = Style_1.Style.NONE;
97
+ let prevStyle = Style.NONE;
94
98
  for (let y = 0; y < this.size.height; y++) {
95
99
  const line = this.#canvas.get(y) ?? new Map();
96
100
  const prevLine = this.#prev.get(y) ?? new Map();
@@ -98,7 +102,7 @@ class Buffer {
98
102
  let didWrite = false;
99
103
  let dx = 1;
100
104
  for (let x = 0; x < this.size.width; x += dx) {
101
- const chrInfo = line.get(x) ?? { char: ' ', style: Style_1.Style.NONE, width: 1 };
105
+ const chrInfo = line.get(x) ?? { char: ' ', style: Style.NONE, width: 1 };
102
106
  const prevInfo = prevLine.get(x);
103
107
  dx = chrInfo.width;
104
108
  if (prevInfo && isCharEqual(chrInfo, prevInfo)) {
@@ -110,7 +114,7 @@ class Buffer {
110
114
  terminal.move(x, y);
111
115
  }
112
116
  let { char, style } = chrInfo;
113
- if (char === ansi_1.BG_DRAW) {
117
+ if (char === BG_DRAW) {
114
118
  char = ' ';
115
119
  }
116
120
  if (!prevStyle.isEqual(style)) {
@@ -124,14 +128,13 @@ class Buffer {
124
128
  }
125
129
  }
126
130
  }
127
- if (prevStyle !== Style_1.Style.NONE) {
131
+ if (prevStyle !== Style.NONE) {
128
132
  terminal.write('\x1b[0m');
129
133
  }
130
134
  terminal.flush();
131
135
  this.#canvas = new Map();
132
136
  }
133
137
  }
134
- exports.Buffer = Buffer;
135
138
  function isCharEqual(lhs, rhs) {
136
139
  return (lhs.char === rhs.char &&
137
140
  lhs.width === rhs.width &&
@@ -1 +1 @@
1
- {"version":3,"file":"Buffer.js","sourceRoot":"","sources":["../lib/Buffer.ts"],"names":[],"mappings":";;;AAAA,+BAA6B;AAI7B,iCAA8B;AAC9B,mCAA6B;AAC7B,yCAA+B;AAI/B,MAAa,MAAM;IACjB,IAAI,GAAS,eAAI,CAAC,IAAI,CAAA;IAEtB,KAAK,GAAW,EAAE,CAAA;IAClB,OAAO,GAAmC,IAAI,GAAG,EAAE,CAAA;IACnD,KAAK,GAAmC,IAAI,GAAG,EAAE,CAAA;IAEjD,aAAa,CAAC,EAAS,IAAS,CAAC;IACjC,aAAa,CAAC,EAAS,IAAS,CAAC;IAEjC,MAAM,CAAC,IAAU;QACf,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACvE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAA;QACxB,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,IAAY,EAAE,CAAS,EAAE,CAAS,EAAE,KAAY;QACxD,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACP,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACP,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAM;QACR,CAAC;QAED,MAAM,KAAK,GAAG,aAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACrC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACpE,OAAM;QACR,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACxB,IAAI,IAAI,EAAE,IAAI,KAAK,cAAO,EAAE,CAAC;gBAC3B,MAAM,EAAC,UAAU,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC,KAAK,CAAA;gBAC3C,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBACnC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAC,UAAU,EAAC,CAAC,CAAA;gBACnC,CAAC;gBACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBACnC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAC,UAAU,EAAC,CAAC,CAAA;gBACnC,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAChC,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;gBACrC,+DAA+D;gBAC/D,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAC,CAAC,CAAA;gBAE7D,kEAAkE;gBAClE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAA;gBACnD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACpB,CAAC;gBAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;gBAC9B,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;gBACzB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,gCAAgC;gBAChC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC,CAAA;gBACjC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACpB,CAAC;gBAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC5B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACxB,4EAA4E;oBAC5E,aAAa;oBACb,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,SAAS,EAAC,CAAC,CAAA;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,CAAA;YAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,QAAqB;QACzB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QAED,IAAI,SAAS,GAAG,aAAK,CAAC,IAAI,CAAA;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,EAAgB,CAAA;YAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,EAAgB,CAAA;YAC7D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAE3B,IAAI,QAAQ,GAAG,KAAK,CAAA;YACpB,IAAI,EAAE,GAAG,CAAC,CAAA;YACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAC,CAAA;gBACvE,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBAChC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;gBAElB,IAAI,QAAQ,IAAI,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAC/C,QAAQ,GAAG,KAAK,CAAA;oBAChB,SAAQ;gBACV,CAAC;gBAED,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAA;oBACf,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBACrB,CAAC;gBAED,IAAI,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,OAAO,CAAA;gBAC3B,IAAI,IAAI,KAAK,cAAO,EAAE,CAAC;oBACrB,IAAI,GAAG,GAAG,CAAA;gBACZ,CAAC;gBAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9B,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;oBACtC,SAAS,GAAG,KAAK,CAAA;gBACnB,CAAC;gBACD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACpB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;gBACxB,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;oBACxB,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,SAAS,KAAK,aAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC3B,CAAC;QACD,QAAQ,CAAC,KAAK,EAAE,CAAA;QAEhB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAA;IAC1B,CAAC;CACF;AAjJD,wBAiJC;AAED,SAAS,WAAW,CAAC,GAAS,EAAE,GAAS;IACvC,OAAO,CACL,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI;QACrB,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK;QACvB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAC7B,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"Buffer.js","sourceRoot":"","sources":["../lib/Buffer.ts"],"names":[],"mappings":"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"}
package/.dist/Color.js CHANGED
@@ -1,27 +1,23 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.colorToHex = colorToHex;
4
- exports.colorToSGR = colorToSGR;
5
- const sys_1 = require("./sys");
6
- function colorToHex(color) {
1
+ import { colors } from '@teaui/term';
2
+ export function colorToHex(color) {
7
3
  if (Array.isArray(color)) {
8
- return sys_1.colors.RGBtoHex(color);
4
+ return colors.RGBtoHex(color);
9
5
  }
10
6
  else if (typeof color === 'string' && color.startsWith('#')) {
11
7
  return color;
12
8
  }
13
9
  else if (typeof color === 'object' && 'sgr' in color) {
14
- return sys_1.colors.indexToHex(+color.sgr);
10
+ return colors.indexToHex(+color.sgr);
15
11
  }
16
12
  else if (typeof color === 'object' && 'grayscale' in color) {
17
- return sys_1.colors.RGBtoHex(color.grayscale, color.grayscale, color.grayscale);
13
+ return colors.RGBtoHex(color.grayscale, color.grayscale, color.grayscale);
18
14
  }
19
15
  else {
20
- const index = sys_1.colors.nameToIndex(color);
21
- return index === -1 ? '#ffffff' : sys_1.colors.indexToHex(index);
16
+ const index = colors.nameToIndex(color);
17
+ return index === -1 ? '#ffffff' : colors.indexToHex(index);
22
18
  }
23
19
  }
24
- function colorToSGR(color, fgbg) {
20
+ export function colorToSGR(color, fgbg) {
25
21
  if (typeof color === 'object' && 'sgr' in color) {
26
22
  return `${color.sgr} ${fgbg}`;
27
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Color.js","sourceRoot":"","sources":["../lib/Color.ts"],"names":[],"mappings":";;AAuCA,gCAaC;AAED,gCAWC;AAjED,+BAAqC;AAuCrC,SAAgB,UAAU,CAAC,KAAY;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,YAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAqB,CAAA;IAC9B,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACvD,OAAO,YAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC7D,OAAO,YAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IAC3E,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,YAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACvC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CAAC,KAAY,EAAE,IAAiB;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QAChD,OAAO,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAA;IAC/B,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAA;IACvC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;QAC3D,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAA;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,KAAK,IAAI,IAAI,EAAE,CAAA;IAC3B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"Color.js","sourceRoot":"","sources":["../lib/Color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAuClC,MAAM,UAAU,UAAU,CAAC,KAAY;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAqB,CAAA;IAC9B,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACvD,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC7D,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IAC3E,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACvC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,IAAiB;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QAChD,OAAO,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAA;IAC/B,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAA;IACvC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;QAC3D,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAA;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,KAAK,IAAI,IAAI,EAAE,CAAA;IAC3B,CAAC;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
- import { Size } from './geometry';
2
- import type { Viewport } from './Viewport';
3
- import { type Props as ViewProps, View } from './View';
4
- import { Screen } from './Screen';
1
+ import { Size } from './geometry.js';
2
+ import type { Viewport } from './Viewport.js';
3
+ import { type Props as ViewProps, View } from './View.js';
4
+ import { Screen } from './Screen.js';
5
5
  export interface Props extends ViewProps {
6
6
  child?: View;
7
7
  children?: View[];
@@ -1,14 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Container = void 0;
4
- const geometry_1 = require("./geometry");
5
- const View_1 = require("./View");
6
- const util_1 = require("./util");
7
- class Container extends View_1.View {
1
+ import { Size } from './geometry.js';
2
+ import { View } from './View.js';
3
+ import { define } from './util.js';
4
+ export class Container extends View {
8
5
  #children = [];
9
6
  constructor({ child, children, ...viewProps } = {}) {
10
7
  super(viewProps);
11
- (0, util_1.define)(this, 'children', { enumerable: true });
8
+ define(this, 'children', { enumerable: true });
12
9
  if (child) {
13
10
  this.add(child);
14
11
  }
@@ -59,7 +56,7 @@ class Container extends View_1.View {
59
56
  width = Math.max(width, naturalSize.width);
60
57
  height = Math.max(height, naturalSize.height);
61
58
  }
62
- return new geometry_1.Size(width, height);
59
+ return new Size(width, height);
63
60
  }
64
61
  render(viewport) {
65
62
  this.renderChildren(viewport);
@@ -134,5 +131,4 @@ class Container extends View_1.View {
134
131
  }
135
132
  }
136
133
  }
137
- exports.Container = Container;
138
134
  //# sourceMappingURL=Container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sourceRoot":"","sources":["../lib/Container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../lib/Container.ts"],"names":[],"mappings":"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"}
package/.dist/Screen.d.ts CHANGED
@@ -1,10 +1,39 @@
1
- import type { BlessedProgram } from './sys';
2
- import type { SGRTerminal } from './terminal';
3
- import type { Rect, Point } from './geometry';
4
- import { View } from './View';
5
- import type { HotKeyDef, KeyEvent, MouseEventListenerName, SystemEvent, SystemMouseEvent } from './events';
6
- import { Window } from './components/Window';
7
- type ViewConstructor<T extends View> = (program: BlessedProgram) => T | Promise<T>;
1
+ import { Terminal as TermTerminal } from '@teaui/term';
2
+ import type { SGRTerminal } from './terminal.js';
3
+ import type { Rect, Point } from './geometry.js';
4
+ import { View } from './View.js';
5
+ import type { HotKeyDef, KeyEvent, MouseEventListenerName, SystemEvent, SystemMouseEvent } from './events/index.js';
6
+ import { Window } from './components/Window.js';
7
+ type KeyListener = (char: string, key: KeyEvent) => void;
8
+ /**
9
+ * Wraps @teaui/term's Terminal for use by Screen and the public API.
10
+ * Provides a blessed-compatible `.key()` helper and implements SGRTerminal.
11
+ */
12
+ export declare class TerminalProgram implements SGRTerminal {
13
+ #private;
14
+ constructor();
15
+ get terminal(): TermTerminal;
16
+ get cols(): number;
17
+ get rows(): number;
18
+ move(x: number, y: number): void;
19
+ write(str: string): void;
20
+ flush(): void;
21
+ enterFullscreen(): void;
22
+ exitFullscreen(): void;
23
+ clear(): void;
24
+ startInput(screen: Screen): void;
25
+ stopInput(): void;
26
+ /**
27
+ * Register a key binding (blessed-compatible).
28
+ * Pattern: 'escape', 'C-c', 'C-q', 'return', etc.
29
+ */
30
+ key(pattern: string | string[], fn: KeyListener): void;
31
+ /**
32
+ * Provide raw data listener (for iTerm2 etc.)
33
+ */
34
+ once(event: string, fn: (...args: any[]) => void): void;
35
+ }
36
+ type ViewConstructor<T extends View> = (program: TerminalProgram) => T | Promise<T>;
8
37
  export interface ScreenOptions {
9
38
  quitChar?: 'c' | 'q' | '' | undefined | false;
10
39
  }
@@ -17,13 +46,13 @@ export declare class Screen {
17
46
  * again.
18
47
  */
19
48
  static reset(): void;
20
- static start(): Promise<[Screen, BlessedProgram, Window]>;
21
- static start<T extends View>(viewConstructor: T | ViewConstructor<T>, opts?: Partial<ScreenOptions>): Promise<[Screen, BlessedProgram, T]>;
22
- constructor(program: SGRTerminal, rootView: View);
49
+ static start(): Promise<[Screen, TerminalProgram, Window]>;
50
+ static start<T extends View>(viewConstructor: T | ViewConstructor<T>, opts?: Partial<ScreenOptions>): Promise<[Screen, TerminalProgram, T]>;
51
+ constructor(program: TerminalProgram, rootView: View);
23
52
  onExit(callback: () => void): void;
24
53
  /**
25
54
  * Called from Screen.start(). Don't call this yourself unless you wanted
26
- * to construct your own 'program' (using blessed). I recommend starting with a
55
+ * to construct your own 'program'. I recommend starting with a
27
56
  * copy of the implementation of Screen.start.
28
57
  */
29
58
  start(): void;
package/.dist/Screen.js CHANGED
@@ -1,41 +1,132 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Screen = void 0;
4
- const sys_1 = require("./sys");
5
- const geometry_1 = require("./geometry");
6
- const View_1 = require("./View");
7
- const Viewport_1 = require("./Viewport");
8
- const log_1 = require("./log");
9
- const Buffer_1 = require("./Buffer");
10
- const FocusManager_1 = require("./managers/FocusManager");
11
- const ModalManager_1 = require("./managers/ModalManager");
12
- const MouseManager_1 = require("./managers/MouseManager");
13
- const TickManager_1 = require("./managers/TickManager");
14
- const Window_1 = require("./components/Window");
15
- const System_1 = require("./System");
16
- class Screen {
1
+ import { Terminal as TermTerminal, cursorTo, isKeyEvent, isMouseEvent, isFocusEvent, } from '@teaui/term';
2
+ import { Size } from './geometry.js';
3
+ import { View } from './View.js';
4
+ import { Viewport } from './Viewport.js';
5
+ import { Buffer } from './Buffer.js';
6
+ import { translateTermKeyEvent, translateTermMouseEvent, } from './events/translate.js';
7
+ import { FocusManager } from './managers/FocusManager.js';
8
+ import { ModalManager } from './managers/ModalManager.js';
9
+ import { MouseManager } from './managers/MouseManager.js';
10
+ import { TickManager } from './managers/TickManager.js';
11
+ import { Window } from './components/Window.js';
12
+ import { UnboundSystem } from './System.js';
13
+ /**
14
+ * Wraps @teaui/term's Terminal for use by Screen and the public API.
15
+ * Provides a blessed-compatible `.key()` helper and implements SGRTerminal.
16
+ */
17
+ export class TerminalProgram {
18
+ #terminal;
19
+ #keyListeners = [];
20
+ #cleanupInput;
21
+ constructor() {
22
+ this.#terminal = new TermTerminal();
23
+ this.#terminal.enableWriteBuffer();
24
+ }
25
+ get terminal() {
26
+ return this.#terminal;
27
+ }
28
+ // --- SGRTerminal interface ---
29
+ get cols() {
30
+ return this.#terminal.cols;
31
+ }
32
+ get rows() {
33
+ return this.#terminal.rows;
34
+ }
35
+ move(x, y) {
36
+ this.#terminal.write(cursorTo(x, y));
37
+ }
38
+ write(str) {
39
+ this.#terminal.write(str);
40
+ }
41
+ flush() {
42
+ this.#terminal.flushWrites();
43
+ }
44
+ // --- Lifecycle ---
45
+ enterFullscreen() {
46
+ this.#terminal.enterFullscreen({
47
+ mouse: true,
48
+ hideCursor: true,
49
+ focusEvents: true,
50
+ });
51
+ }
52
+ exitFullscreen() {
53
+ this.#terminal.exitFullscreen();
54
+ }
55
+ clear() {
56
+ this.#terminal.clear();
57
+ }
58
+ // --- Input ---
59
+ startInput(screen) {
60
+ this.#cleanupInput = this.#terminal.onInput((event) => {
61
+ if (isFocusEvent(event)) {
62
+ screen.trigger({ type: event.focused ? 'focus' : 'blur' });
63
+ return;
64
+ }
65
+ if (isKeyEvent(event)) {
66
+ const keyEvent = translateTermKeyEvent(event);
67
+ // Check .key() listeners
68
+ for (const { pattern, fn } of this.#keyListeners) {
69
+ if (matchKeyPattern(pattern, keyEvent)) {
70
+ fn(keyEvent.char, keyEvent);
71
+ }
72
+ }
73
+ screen.trigger(keyEvent);
74
+ return;
75
+ }
76
+ if (isMouseEvent(event)) {
77
+ const mouseEvent = translateTermMouseEvent(event);
78
+ if (mouseEvent) {
79
+ screen.trigger(mouseEvent);
80
+ }
81
+ return;
82
+ }
83
+ });
84
+ this.#terminal.onResize(() => {
85
+ screen.trigger({ type: 'resize' });
86
+ });
87
+ }
88
+ stopInput() {
89
+ this.#cleanupInput?.();
90
+ this.#cleanupInput = undefined;
91
+ }
92
+ /**
93
+ * Register a key binding (blessed-compatible).
94
+ * Pattern: 'escape', 'C-c', 'C-q', 'return', etc.
95
+ */
96
+ key(pattern, fn) {
97
+ const patterns = Array.isArray(pattern) ? pattern : [pattern];
98
+ for (const p of patterns) {
99
+ this.#keyListeners.push({ pattern: p, fn });
100
+ }
101
+ }
102
+ /**
103
+ * Provide raw data listener (for iTerm2 etc.)
104
+ */
105
+ once(event, fn) {
106
+ if (event === 'data') {
107
+ this.#terminal.onceRawData(fn);
108
+ }
109
+ }
110
+ }
111
+ export class Screen {
17
112
  #program;
18
113
  #onExit;
19
114
  rootView;
20
115
  #buffer;
21
- #focusManager = new FocusManager_1.FocusManager();
22
- #modalManager = new ModalManager_1.ModalManager();
23
- #mouseManager = new MouseManager_1.MouseManager();
24
- #tickManager = new TickManager_1.TickManager(() => this.render());
116
+ #focusManager = new FocusManager();
117
+ #modalManager = new ModalManager();
118
+ #mouseManager = new MouseManager();
119
+ #tickManager = new TickManager(() => this.render());
25
120
  /**
26
121
  * A helper function that puts the terminal into a "known good" state. I use this
27
122
  * during debugging, if the app crashes and I need to get the terminal CLI working
28
123
  * again.
29
124
  */
30
125
  static reset() {
31
- const program = (0, sys_1.program)({
32
- useBuffer: true,
33
- tput: true,
34
- });
126
+ const program = new TerminalProgram();
35
127
  program.clear();
36
- program.showCursor();
37
- program.normalBuffer();
38
- (0, log_1.flushLogs)();
128
+ program.terminal.showCursor();
129
+ program.exitFullscreen();
39
130
  setTimeout(() => {
40
131
  process.exit(0);
41
132
  }, 0);
@@ -45,76 +136,38 @@ class Screen {
45
136
  * consumes all the available screen space) *or* an async function that creates the
46
137
  * root node, and accepts a small amount of options.
47
138
  *
48
- * @return the Screen, the Program that controls the terminal, and the root node
139
+ * @return the Screen, the TerminalProgram that controls the terminal, and the root node
49
140
  * instance.
50
141
  */
51
- static async start(viewConstructor = new Window_1.Window(), opts) {
142
+ static async start(viewConstructor = new Window(), opts) {
52
143
  opts ??= {};
53
144
  opts = {
54
145
  quitChar: 'c',
55
146
  ...opts,
56
147
  };
57
- const program = (0, sys_1.program)({
58
- useBuffer: true,
59
- tput: true,
60
- });
61
- program.alternateBuffer();
62
- program.enableMouse();
63
- program.hideCursor();
148
+ const program = new TerminalProgram();
149
+ program.enterFullscreen();
64
150
  program.clear();
65
- program.setMouse({ sendFocus: true }, true);
66
- // weird quirk of blessed - bind anything to 'keypress' before
67
- // attaching the screen or else I-don't-remember-what will happen.
68
- const fn = function () { };
69
- program.on('keypress', fn);
70
- program.off('keypress', fn);
71
- const rootView = viewConstructor instanceof View_1.View
151
+ const rootView = viewConstructor instanceof View
72
152
  ? viewConstructor
73
153
  : await viewConstructor(program);
74
154
  const screen = new Screen(program, rootView);
75
155
  screen.onExit(() => {
76
156
  program.clear();
77
- program.disableMouse();
78
- program.showCursor();
79
- program.normalBuffer();
80
- });
81
- program.on('focus', function () {
82
- screen.trigger({ type: 'focus' });
83
- });
84
- program.on('blur', function () {
85
- screen.trigger({ type: 'blur' });
86
- });
87
- program.on('resize', function () {
88
- screen.trigger({ type: 'resize' });
157
+ program.exitFullscreen();
89
158
  });
90
159
  if (opts.quitChar) {
91
160
  program.key(`C-${opts.quitChar}`, () => {
92
161
  screen.exit();
93
162
  });
94
163
  }
95
- program.on('keypress', (char, key) => {
96
- screen.trigger({ type: 'key', ...key });
97
- });
98
- program.on('mouse', function (data) {
99
- let action = data.action;
100
- if (action === 'focus' || action === 'blur') {
101
- return;
102
- }
103
- if (data.button === 'unknown') {
104
- return;
105
- }
106
- screen.trigger({
107
- ...data,
108
- name: translateMouseAction(action),
109
- type: 'mouse',
110
- });
111
- });
164
+ program.startInput(screen);
112
165
  screen.start();
113
166
  return [screen, program, rootView];
114
167
  }
115
168
  constructor(program, rootView) {
116
169
  this.#program = program;
117
- this.#buffer = new Buffer_1.Buffer();
170
+ this.#buffer = new Buffer();
118
171
  this.rootView = rootView;
119
172
  Object.defineProperty(this, 'program', {
120
173
  enumerable: false,
@@ -134,7 +187,7 @@ class Screen {
134
187
  }
135
188
  /**
136
189
  * Called from Screen.start(). Don't call this yourself unless you wanted
137
- * to construct your own 'program' (using blessed). I recommend starting with a
190
+ * to construct your own 'program'. I recommend starting with a
138
191
  * copy of the implementation of Screen.start.
139
192
  */
140
193
  start() {
@@ -147,8 +200,8 @@ class Screen {
147
200
  stop() {
148
201
  this.#tickManager.stop();
149
202
  this.rootView.moveToScreen(undefined);
203
+ this.#program.stopInput();
150
204
  this.#onExit?.();
151
- (0, log_1.flushLogs)();
152
205
  }
153
206
  /**
154
207
  * Stops (putting the screen back in normal mode and buffer) and exits by emitting
@@ -217,7 +270,7 @@ class Screen {
217
270
  this.#mouseManager.checkMouse(view, x, y);
218
271
  }
219
272
  triggerMouse(systemEvent) {
220
- const system = new System_1.UnboundSystem(this.#focusManager);
273
+ const system = new UnboundSystem(this.#focusManager);
221
274
  this.#mouseManager.trigger(systemEvent, system);
222
275
  }
223
276
  registerTick(view) {
@@ -234,7 +287,7 @@ class Screen {
234
287
  * @return boolean Whether or not to rerender the view due to focus or mouse change
235
288
  */
236
289
  commit() {
237
- const system = new System_1.UnboundSystem(this.#focusManager);
290
+ const system = new UnboundSystem(this.#focusManager);
238
291
  const focusNeedsRender = this.#focusManager.commit();
239
292
  const mouseNeedsRender = this.#mouseManager.commit(system);
240
293
  return focusNeedsRender || mouseNeedsRender;
@@ -243,12 +296,12 @@ class Screen {
243
296
  this.#tickManager.needsRender();
244
297
  }
245
298
  render() {
246
- const screenSize = new geometry_1.Size(this.#program.cols, this.#program.rows);
299
+ const screenSize = new Size(this.#program.cols, this.#program.rows);
247
300
  this.#buffer.resize(screenSize);
248
301
  // this may be called again by renderModals, before the last modal renders
249
302
  this.preRender(this.rootView);
250
303
  const size = this.rootView.naturalSize(screenSize).max(screenSize);
251
- const viewport = new Viewport_1.Viewport(this, this.#buffer, size);
304
+ const viewport = new Viewport(this, this.#buffer, size);
252
305
  this.rootView.render(viewport);
253
306
  const rerenderView = this.#modalManager.renderModals(this, viewport);
254
307
  const needsRerender = this.commit();
@@ -260,24 +313,8 @@ class Screen {
260
313
  this.#buffer.flush(this.#program);
261
314
  }
262
315
  }
263
- exports.Screen = Screen;
264
- function translateMouseAction(action) {
265
- switch (action) {
266
- case 'mousemove':
267
- return 'mouse.move.in';
268
- case 'mousedown':
269
- return `mouse.button.down`;
270
- case 'mouseup':
271
- return `mouse.button.up`;
272
- case 'wheeldown':
273
- return 'mouse.wheel.down';
274
- case 'wheelup':
275
- return 'mouse.wheel.up';
276
- case 'wheelleft':
277
- return 'mouse.wheel.left';
278
- case 'wheelright':
279
- return 'mouse.wheel.right';
280
- }
316
+ function matchKeyPattern(pattern, event) {
317
+ return event.full === pattern;
281
318
  }
282
319
  /**
283
320
  * These are mostly due to my own terminal keybindings; would be better to have