@teaui/core 1.3.8 → 1.5.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 +41 -11
  10. package/.dist/Screen.js +149 -94
  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 +5 -3
  25. package/.dist/Theme.js +14 -16
  26. package/.dist/Theme.js.map +1 -1
  27. package/.dist/UI.d.ts +1 -1
  28. package/.dist/UI.js +4 -6
  29. package/.dist/UI.js.map +1 -1
  30. package/.dist/View.d.ts +19 -8
  31. package/.dist/View.js +35 -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 +22 -24
  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 +9 -7
  60. package/.dist/components/Drawer.js +43 -39
  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 +6 -4
  69. package/.dist/components/HotKey.js +12 -11
  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 +35 -41
  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 +28 -27
  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 +28 -27
  120. package/.dist/components/index.js +28 -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 +17 -11
  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 +19 -0
  168. package/.dist/renderToAnsi.js +45 -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 +10 -33
  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":"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"}
1
+ {"version":3,"file":"Buffer.js","sourceRoot":"","sources":["../lib/Buffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,aAAa,CAAA;AAItC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AAChC,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAA;AAIlC,MAAM,OAAO,MAAM;IACjB,IAAI,GAAS,IAAI,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,UAAU;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAA;IACxB,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,OAAO,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,OAAO,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,KAAK,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,KAAK,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,OAAO,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,KAAK,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;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"}
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,12 +1,42 @@
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;
39
+ emoji?: boolean;
10
40
  }
11
41
  export declare class Screen {
12
42
  #private;
@@ -17,13 +47,13 @@ export declare class Screen {
17
47
  * again.
18
48
  */
19
49
  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);
50
+ static start(): Promise<[Screen, TerminalProgram, Window]>;
51
+ static start<T extends View>(viewConstructor: T | ViewConstructor<T>, opts?: Partial<ScreenOptions>): Promise<[Screen, TerminalProgram, T]>;
52
+ constructor(program: TerminalProgram, rootView: View);
23
53
  onExit(callback: () => void): void;
24
54
  /**
25
55
  * 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
56
+ * to construct your own 'program'. I recommend starting with a
27
57
  * copy of the implementation of Screen.start.
28
58
  */
29
59
  start(): void;
package/.dist/Screen.js CHANGED
@@ -1,39 +1,133 @@
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 Buffer_1 = require("./Buffer");
9
- const FocusManager_1 = require("./managers/FocusManager");
10
- const ModalManager_1 = require("./managers/ModalManager");
11
- const MouseManager_1 = require("./managers/MouseManager");
12
- const TickManager_1 = require("./managers/TickManager");
13
- const Window_1 = require("./components/Window");
14
- const System_1 = require("./System");
15
- 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 { Theme } from './Theme.js';
13
+ import { UnboundSystem } from './System.js';
14
+ /**
15
+ * Wraps @teaui/term's Terminal for use by Screen and the public API.
16
+ * Provides a blessed-compatible `.key()` helper and implements SGRTerminal.
17
+ */
18
+ export class TerminalProgram {
19
+ #terminal;
20
+ #keyListeners = [];
21
+ #cleanupInput;
22
+ constructor() {
23
+ this.#terminal = new TermTerminal();
24
+ this.#terminal.enableWriteBuffer();
25
+ }
26
+ get terminal() {
27
+ return this.#terminal;
28
+ }
29
+ // --- SGRTerminal interface ---
30
+ get cols() {
31
+ return this.#terminal.cols;
32
+ }
33
+ get rows() {
34
+ return this.#terminal.rows;
35
+ }
36
+ move(x, y) {
37
+ this.#terminal.write(cursorTo(x, y));
38
+ }
39
+ write(str) {
40
+ this.#terminal.write(str);
41
+ }
42
+ flush() {
43
+ this.#terminal.flushWrites();
44
+ }
45
+ // --- Lifecycle ---
46
+ enterFullscreen() {
47
+ this.#terminal.enterFullscreen({
48
+ mouse: true,
49
+ hideCursor: true,
50
+ focusEvents: true,
51
+ });
52
+ }
53
+ exitFullscreen() {
54
+ this.#terminal.exitFullscreen();
55
+ }
56
+ clear() {
57
+ this.#terminal.clear();
58
+ }
59
+ // --- Input ---
60
+ startInput(screen) {
61
+ this.#cleanupInput = this.#terminal.onInput((event) => {
62
+ if (isFocusEvent(event)) {
63
+ screen.trigger({ type: event.focused ? 'focus' : 'blur' });
64
+ return;
65
+ }
66
+ if (isKeyEvent(event)) {
67
+ const keyEvent = translateTermKeyEvent(event);
68
+ // Check .key() listeners
69
+ for (const { pattern, fn } of this.#keyListeners) {
70
+ if (matchKeyPattern(pattern, keyEvent)) {
71
+ fn(keyEvent.char, keyEvent);
72
+ }
73
+ }
74
+ screen.trigger(keyEvent);
75
+ return;
76
+ }
77
+ if (isMouseEvent(event)) {
78
+ const mouseEvent = translateTermMouseEvent(event);
79
+ if (mouseEvent) {
80
+ screen.trigger(mouseEvent);
81
+ }
82
+ return;
83
+ }
84
+ });
85
+ this.#terminal.onResize(() => {
86
+ screen.trigger({ type: 'resize' });
87
+ });
88
+ }
89
+ stopInput() {
90
+ this.#cleanupInput?.();
91
+ this.#cleanupInput = undefined;
92
+ }
93
+ /**
94
+ * Register a key binding (blessed-compatible).
95
+ * Pattern: 'escape', 'C-c', 'C-q', 'return', etc.
96
+ */
97
+ key(pattern, fn) {
98
+ const patterns = Array.isArray(pattern) ? pattern : [pattern];
99
+ for (const p of patterns) {
100
+ this.#keyListeners.push({ pattern: p, fn });
101
+ }
102
+ }
103
+ /**
104
+ * Provide raw data listener (for iTerm2 etc.)
105
+ */
106
+ once(event, fn) {
107
+ if (event === 'data') {
108
+ this.#terminal.onceRawData(fn);
109
+ }
110
+ }
111
+ }
112
+ export class Screen {
16
113
  #program;
17
114
  #onExit;
18
115
  rootView;
19
116
  #buffer;
20
- #focusManager = new FocusManager_1.FocusManager();
21
- #modalManager = new ModalManager_1.ModalManager();
22
- #mouseManager = new MouseManager_1.MouseManager();
23
- #tickManager = new TickManager_1.TickManager(() => this.render());
117
+ #focusManager = new FocusManager();
118
+ #modalManager = new ModalManager();
119
+ #mouseManager = new MouseManager();
120
+ #tickManager = new TickManager(() => this.render());
24
121
  /**
25
122
  * A helper function that puts the terminal into a "known good" state. I use this
26
123
  * during debugging, if the app crashes and I need to get the terminal CLI working
27
124
  * again.
28
125
  */
29
126
  static reset() {
30
- const program = (0, sys_1.program)({
31
- useBuffer: true,
32
- tput: true,
33
- });
127
+ const program = new TerminalProgram();
34
128
  program.clear();
35
- program.showCursor();
36
- program.normalBuffer();
129
+ program.terminal.showCursor();
130
+ program.exitFullscreen();
37
131
  setTimeout(() => {
38
132
  process.exit(0);
39
133
  }, 0);
@@ -43,76 +137,52 @@ class Screen {
43
137
  * consumes all the available screen space) *or* an async function that creates the
44
138
  * root node, and accepts a small amount of options.
45
139
  *
46
- * @return the Screen, the Program that controls the terminal, and the root node
140
+ * @return the Screen, the TerminalProgram that controls the terminal, and the root node
47
141
  * instance.
48
142
  */
49
- static async start(viewConstructor = new Window_1.Window(), opts) {
143
+ static async start(viewConstructor = new Window(), opts) {
50
144
  opts ??= {};
51
145
  opts = {
52
146
  quitChar: 'c',
53
147
  ...opts,
54
148
  };
55
- const program = (0, sys_1.program)({
56
- useBuffer: true,
57
- tput: true,
58
- });
59
- program.alternateBuffer();
60
- program.enableMouse();
61
- program.hideCursor();
149
+ const program = new TerminalProgram();
150
+ program.enterFullscreen();
62
151
  program.clear();
63
- program.setMouse({ sendFocus: true }, true);
64
- // weird quirk of blessed - bind anything to 'keypress' before
65
- // attaching the screen or else I-don't-remember-what will happen.
66
- const fn = function () { };
67
- program.on('keypress', fn);
68
- program.off('keypress', fn);
69
- const rootView = viewConstructor instanceof View_1.View
152
+ const rootView = viewConstructor instanceof View
70
153
  ? viewConstructor
71
154
  : await viewConstructor(program);
155
+ if (opts.emoji !== undefined) {
156
+ const currentTheme = rootView.theme;
157
+ rootView.theme = new Theme({
158
+ text: currentTheme.textColor,
159
+ brightText: currentTheme.brightTextColor,
160
+ dimText: currentTheme.dimTextColor,
161
+ dimBackground: currentTheme.dimBackgroundColor,
162
+ background: currentTheme.backgroundColor,
163
+ textBackground: currentTheme.textBackgroundColor,
164
+ highlight: currentTheme.highlightColor,
165
+ darken: currentTheme.darkenColor,
166
+ emoji: opts.emoji,
167
+ });
168
+ }
72
169
  const screen = new Screen(program, rootView);
73
170
  screen.onExit(() => {
74
171
  program.clear();
75
- program.disableMouse();
76
- program.showCursor();
77
- program.normalBuffer();
78
- });
79
- program.on('focus', function () {
80
- screen.trigger({ type: 'focus' });
81
- });
82
- program.on('blur', function () {
83
- screen.trigger({ type: 'blur' });
84
- });
85
- program.on('resize', function () {
86
- screen.trigger({ type: 'resize' });
172
+ program.exitFullscreen();
87
173
  });
88
174
  if (opts.quitChar) {
89
175
  program.key(`C-${opts.quitChar}`, () => {
90
176
  screen.exit();
91
177
  });
92
178
  }
93
- program.on('keypress', (char, key) => {
94
- screen.trigger({ type: 'key', ...key });
95
- });
96
- program.on('mouse', function (data) {
97
- let action = data.action;
98
- if (action === 'focus' || action === 'blur') {
99
- return;
100
- }
101
- if (data.button === 'unknown') {
102
- return;
103
- }
104
- screen.trigger({
105
- ...data,
106
- name: translateMouseAction(action),
107
- type: 'mouse',
108
- });
109
- });
179
+ program.startInput(screen);
110
180
  screen.start();
111
181
  return [screen, program, rootView];
112
182
  }
113
183
  constructor(program, rootView) {
114
184
  this.#program = program;
115
- this.#buffer = new Buffer_1.Buffer();
185
+ this.#buffer = new Buffer();
116
186
  this.rootView = rootView;
117
187
  Object.defineProperty(this, 'program', {
118
188
  enumerable: false,
@@ -132,7 +202,7 @@ class Screen {
132
202
  }
133
203
  /**
134
204
  * Called from Screen.start(). Don't call this yourself unless you wanted
135
- * to construct your own 'program' (using blessed). I recommend starting with a
205
+ * to construct your own 'program'. I recommend starting with a
136
206
  * copy of the implementation of Screen.start.
137
207
  */
138
208
  start() {
@@ -145,6 +215,7 @@ class Screen {
145
215
  stop() {
146
216
  this.#tickManager.stop();
147
217
  this.rootView.moveToScreen(undefined);
218
+ this.#program.stopInput();
148
219
  this.#onExit?.();
149
220
  }
150
221
  /**
@@ -214,7 +285,7 @@ class Screen {
214
285
  this.#mouseManager.checkMouse(view, x, y);
215
286
  }
216
287
  triggerMouse(systemEvent) {
217
- const system = new System_1.UnboundSystem(this.#focusManager);
288
+ const system = new UnboundSystem(this.#focusManager);
218
289
  this.#mouseManager.trigger(systemEvent, system);
219
290
  }
220
291
  registerTick(view) {
@@ -231,7 +302,7 @@ class Screen {
231
302
  * @return boolean Whether or not to rerender the view due to focus or mouse change
232
303
  */
233
304
  commit() {
234
- const system = new System_1.UnboundSystem(this.#focusManager);
305
+ const system = new UnboundSystem(this.#focusManager);
235
306
  const focusNeedsRender = this.#focusManager.commit();
236
307
  const mouseNeedsRender = this.#mouseManager.commit(system);
237
308
  return focusNeedsRender || mouseNeedsRender;
@@ -240,12 +311,12 @@ class Screen {
240
311
  this.#tickManager.needsRender();
241
312
  }
242
313
  render() {
243
- const screenSize = new geometry_1.Size(this.#program.cols, this.#program.rows);
314
+ const screenSize = new Size(this.#program.cols, this.#program.rows);
244
315
  this.#buffer.resize(screenSize);
245
316
  // this may be called again by renderModals, before the last modal renders
246
317
  this.preRender(this.rootView);
247
318
  const size = this.rootView.naturalSize(screenSize).max(screenSize);
248
- const viewport = new Viewport_1.Viewport(this, this.#buffer, size);
319
+ const viewport = new Viewport(this, this.#buffer, size);
249
320
  this.rootView.render(viewport);
250
321
  const rerenderView = this.#modalManager.renderModals(this, viewport);
251
322
  const needsRerender = this.commit();
@@ -257,24 +328,8 @@ class Screen {
257
328
  this.#buffer.flush(this.#program);
258
329
  }
259
330
  }
260
- exports.Screen = Screen;
261
- function translateMouseAction(action) {
262
- switch (action) {
263
- case 'mousemove':
264
- return 'mouse.move.in';
265
- case 'mousedown':
266
- return `mouse.button.down`;
267
- case 'mouseup':
268
- return `mouse.button.up`;
269
- case 'wheeldown':
270
- return 'mouse.wheel.down';
271
- case 'wheelup':
272
- return 'mouse.wheel.up';
273
- case 'wheelleft':
274
- return 'mouse.wheel.left';
275
- case 'wheelright':
276
- return 'mouse.wheel.right';
277
- }
331
+ function matchKeyPattern(pattern, event) {
332
+ return event.full === pattern;
278
333
  }
279
334
  /**
280
335
  * These are mostly due to my own terminal keybindings; would be better to have