@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
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Test utilities for headless component rendering and interaction.
3
+ *
4
+ * Usage:
5
+ * const t = testRender(<view>, {width: 40, height: 10})
6
+ * expect(t.terminal.textContent()).toContain('Hello')
7
+ * expect(t.terminal.styleOf('Hello')?.bold).toBe(true)
8
+ *
9
+ * t.sendKey('a')
10
+ * t.sendKey('tab')
11
+ * t.sendKey('return', {ctrl: true})
12
+ * t.sendMouse('mouse.button.down', {x: 5, y: 2})
13
+ *
14
+ * // Re-renders automatically after events, query again:
15
+ * expect(t.terminal.charAt(0, 0)).toBe('a')
16
+ */
17
+ import { Buffer } from './Buffer.js';
18
+ import { Viewport } from './Viewport.js';
19
+ import { Size } from './geometry.js';
20
+ import { TestTerminal } from './TestTerminal.js';
21
+ import { FocusManager } from './managers/FocusManager.js';
22
+ import { MouseManager } from './managers/MouseManager.js';
23
+ import { ModalManager } from './managers/ModalManager.js';
24
+ import { TickManager } from './managers/TickManager.js';
25
+ import { UnboundSystem } from './System.js';
26
+ class TestScreen {
27
+ #view;
28
+ #buffer;
29
+ #terminal;
30
+ #size;
31
+ #focusManager;
32
+ #mouseManager;
33
+ #modalManager;
34
+ #tickManager;
35
+ #screenProxy = null;
36
+ constructor(view, size) {
37
+ this.#view = view;
38
+ this.#size = new Size(size.width, size.height);
39
+ this.#buffer = new Buffer();
40
+ this.#terminal = new TestTerminal({ cols: size.width, rows: size.height });
41
+ this.#focusManager = new FocusManager();
42
+ this.#mouseManager = new MouseManager();
43
+ this.#modalManager = new ModalManager();
44
+ this.#tickManager = new TickManager(() => this.render());
45
+ // Wire the view to this screen
46
+ view.moveToScreen(this.asScreen());
47
+ this.render();
48
+ }
49
+ get terminal() {
50
+ return this.#terminal;
51
+ }
52
+ get view() {
53
+ return this.#view;
54
+ }
55
+ asScreen() {
56
+ // Cache the screen proxy so moveToScreen identity checks work
57
+ if (!this.#screenProxy) {
58
+ this.#screenProxy = {
59
+ requestModal: (parent, modal, onClose, rect) => {
60
+ return this.#modalManager.requestModal(parent, modal, onClose, rect);
61
+ },
62
+ registerHotKey: (view, key) => {
63
+ this.#focusManager.registerHotKey(view, key);
64
+ },
65
+ registerFocus: (view) => {
66
+ return this.#focusManager.registerFocus(view);
67
+ },
68
+ registerMouse: (view, offset, point, events) => {
69
+ this.#mouseManager.registerMouse(view, offset, point, events);
70
+ },
71
+ registerTick: (view) => {
72
+ this.#tickManager.registerTick(view);
73
+ },
74
+ checkMouse: (view, x, y) => {
75
+ this.#mouseManager.checkMouse(view, x, y);
76
+ },
77
+ needsRender: () => {
78
+ // In test mode, renders are explicit — ignore async render requests
79
+ },
80
+ };
81
+ }
82
+ return this.#screenProxy;
83
+ }
84
+ render() {
85
+ this.#buffer.resize(this.#size);
86
+ this.#focusManager.reset(true);
87
+ this.#mouseManager.reset();
88
+ const renderSize = this.#view.naturalSize(this.#size).min(this.#size);
89
+ const viewport = new Viewport(this.asScreen(), this.#buffer, renderSize);
90
+ this.#view.render(viewport);
91
+ const focusNeedsRender = this.#focusManager.commit();
92
+ if (focusNeedsRender) {
93
+ this.#focusManager.reset(true);
94
+ this.#mouseManager.reset();
95
+ const viewport2 = new Viewport(this.asScreen(), this.#buffer, renderSize);
96
+ this.#view.render(viewport2);
97
+ this.#focusManager.commit();
98
+ }
99
+ this.#tickManager.endRender();
100
+ this.#terminal.reset();
101
+ this.#buffer.invalidate();
102
+ this.#buffer.flush(this.#terminal);
103
+ }
104
+ sendKey(key, mods = {}) {
105
+ const ctrl = mods.ctrl ?? false;
106
+ const meta = mods.meta ?? false;
107
+ const shift = mods.shift ?? false;
108
+ let full = '';
109
+ if (ctrl)
110
+ full += 'C-';
111
+ if (meta)
112
+ full += 'M-';
113
+ if (shift)
114
+ full += 'S-';
115
+ full += key;
116
+ const char = key === 'space' ? ' ' : key.length === 1 ? key : '';
117
+ const event = {
118
+ type: 'key',
119
+ name: key,
120
+ char,
121
+ full,
122
+ ctrl,
123
+ meta,
124
+ shift,
125
+ };
126
+ this.#focusManager.trigger(event);
127
+ this.render();
128
+ }
129
+ sendMouse(name, pos, mods = {}) {
130
+ const button = name.startsWith('mouse.wheel')
131
+ ? 'wheel'
132
+ : name === 'mouse.move.in'
133
+ ? 'unknown'
134
+ : 'left';
135
+ const event = {
136
+ type: 'mouse',
137
+ name,
138
+ x: pos.x,
139
+ y: pos.y,
140
+ ctrl: mods.ctrl ?? false,
141
+ meta: mods.meta ?? false,
142
+ shift: mods.shift ?? false,
143
+ button,
144
+ };
145
+ const system = new UnboundSystem(this.#focusManager);
146
+ this.#mouseManager.trigger(event, system);
147
+ this.render();
148
+ }
149
+ }
150
+ /**
151
+ * Render a component headlessly and return a test harness for interaction testing.
152
+ *
153
+ * @example
154
+ * ```ts
155
+ * const t = testRender(new Input({value: 'hello'}), {width: 20, height: 1})
156
+ * expect(t.terminal.textContent()).toContain('hello')
157
+ * t.sendKey('!') // type a character
158
+ * expect(t.terminal.textContent()).toContain('hello!')
159
+ * ```
160
+ */
161
+ export function testRender(view, size) {
162
+ return new TestScreen(view, size);
163
+ }
164
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../lib/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,OAAO,EAAC,IAAI,EAAc,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAA;AAS9C,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AAEzC,MAAM,UAAU;IACd,KAAK,CAAM;IACX,OAAO,CAAQ;IACf,SAAS,CAAc;IACvB,KAAK,CAAM;IACX,aAAa,CAAc;IAC3B,aAAa,CAAc;IAC3B,aAAa,CAAc;IAC3B,YAAY,CAAa;IACzB,YAAY,GAAkB,IAAI,CAAA;IAElC,YAAY,IAAU,EAAE,IAAqC;QAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,EAAE,CAAA;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAA;QACxE,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,EAAE,CAAA;QACvC,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,EAAE,CAAA;QACvC,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,EAAE,CAAA;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAExD,+BAA+B;QAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAClC,IAAI,CAAC,MAAM,EAAE,CAAA;IACf,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,QAAQ;QACN,8DAA8D;QAC9D,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG;gBAClB,YAAY,EAAE,CAAC,MAAY,EAAE,KAAW,EAAE,OAAmB,EAAE,IAAU,EAAE,EAAE;oBAC3E,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;gBACtE,CAAC;gBACD,cAAc,EAAE,CAAC,IAAU,EAAE,GAAc,EAAE,EAAE;oBAC7C,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;gBAC9C,CAAC;gBACD,aAAa,EAAE,CAAC,IAAU,EAAE,EAAE;oBAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;gBAC/C,CAAC;gBACD,aAAa,EAAE,CACb,IAAU,EACV,MAAa,EACb,KAAY,EACZ,MAAgC,EAChC,EAAE;oBACF,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;gBAC/D,CAAC;gBACD,YAAY,EAAE,CAAC,IAAU,EAAE,EAAE;oBAC3B,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;gBACtC,CAAC;gBACD,UAAU,EAAE,CAAC,IAAU,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE;oBAC/C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC3C,CAAC;gBACD,WAAW,EAAE,GAAG,EAAE;oBAChB,oEAAoE;gBACtE,CAAC;aACmB,CAAA;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAE/B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;QAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QACxE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAE3B,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAA;QACpD,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;YAC1B,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;YACzE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC5B,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAA;QAC7B,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAA;QAE7B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAA;QACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACpC,CAAC;IAED,OAAO,CACL,GAAW,EACX,OAA0D,EAAE;QAE5D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAA;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAA;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAA;QAEjC,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,IAAI,IAAI;YAAE,IAAI,IAAI,IAAI,CAAA;QACtB,IAAI,IAAI;YAAE,IAAI,IAAI,IAAI,CAAA;QACtB,IAAI,KAAK;YAAE,IAAI,IAAI,IAAI,CAAA;QACvB,IAAI,IAAI,GAAG,CAAA;QAEX,MAAM,IAAI,GAAG,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QAEhE,MAAM,KAAK,GAAa;YACtB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,GAAG;YACT,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,KAAK;SACN,CAAA;QAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,IAAI,CAAC,MAAM,EAAE,CAAA;IACf,CAAC;IAED,SAAS,CACP,IAA8B,EAC9B,GAA2B,EAC3B,OAA0D,EAAE;QAE5D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAC3C,CAAC,CAAC,OAAgB;YAClB,CAAC,CAAC,IAAI,KAAK,eAAe;gBACxB,CAAC,CAAC,SAAkB;gBACpB,CAAC,CAAC,MAAe,CAAA;QAErB,MAAM,KAAK,GAAqB;YAC9B,IAAI,EAAE,OAAO;YACb,IAAI;YACJ,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;YAC1B,MAAM;SACP,CAAA;QAED,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACpD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACzC,IAAI,CAAC,MAAM,EAAE,CAAA;IACf,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACxB,IAAU,EACV,IAAqC;IAErC,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACnC,CAAC"}
package/.dist/util.js CHANGED
@@ -1,29 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.debug = debug;
4
- exports.leftPad = leftPad;
5
- exports.rightPad = rightPad;
6
- exports.centerPad = centerPad;
7
- exports.define = define;
8
- exports.wrap = wrap;
9
- const sys_1 = require("./sys");
1
+ import * as unicode from '@teaui/term';
10
2
  let _debug = false;
11
3
  /**
12
4
  * A global function to turn debugging on/off, useful to test things that would
13
5
  * otherwise output way too much, ie console in render()
14
6
  */
15
- function debug(value) {
7
+ export function debug(value) {
16
8
  return (_debug = value ?? _debug);
17
9
  }
18
10
  /**
19
11
  * Left pads (with spaces) according to terminal width
20
12
  */
21
- function leftPad(str, length) {
13
+ export function leftPad(str, length) {
22
14
  const lines = str.split('\n');
23
15
  if (lines.length > 1) {
24
16
  return lines.map(line => leftPad(line, length)).join('\n');
25
17
  }
26
- const width = sys_1.unicode.lineWidth(str);
18
+ const width = unicode.lineWidth(str);
27
19
  if (width >= length) {
28
20
  return str;
29
21
  }
@@ -32,12 +24,12 @@ function leftPad(str, length) {
32
24
  /**
33
25
  * Right pads (with spaces) according to terminal width
34
26
  */
35
- function rightPad(str, length) {
27
+ export function rightPad(str, length) {
36
28
  const lines = str.split('\n');
37
29
  if (lines.length > 1) {
38
30
  return lines.map(line => rightPad(line, length)).join('\n');
39
31
  }
40
- const width = sys_1.unicode.lineWidth(str);
32
+ const width = unicode.lineWidth(str);
41
33
  if (width >= length) {
42
34
  return str;
43
35
  }
@@ -46,12 +38,12 @@ function rightPad(str, length) {
46
38
  /**
47
39
  * Center pads (with spaces) according to terminal width
48
40
  */
49
- function centerPad(str, length) {
41
+ export function centerPad(str, length) {
50
42
  const lines = str.split('\n');
51
43
  if (lines.length > 1) {
52
44
  return lines.map(line => centerPad(line, length)).join('\n');
53
45
  }
54
- const width = sys_1.unicode.lineWidth(str);
46
+ const width = unicode.lineWidth(str);
55
47
  if (width >= length) {
56
48
  return str;
57
49
  }
@@ -63,7 +55,7 @@ function centerPad(str, length) {
63
55
  * Used to add {enumerable: true} to defined properties on Components, so they
64
56
  * are picked up by inspect().
65
57
  */
66
- function define(object, property, attributes) {
58
+ export function define(object, property, attributes) {
67
59
  let kls = object;
68
60
  do {
69
61
  const descriptor = Object.getOwnPropertyDescriptor(kls, property);
@@ -88,7 +80,7 @@ function isStringAndWidthArray(input) {
88
80
  * 1. Word wrapping is accomplished using unicode.words
89
81
  * 2. ANSI codes are restored by scanning the segments, inserting the ANSI back where it belongs
90
82
  */
91
- function wrap(input, contentWidth) {
83
+ export function wrap(input, contentWidth) {
92
84
  if (contentWidth === 0) {
93
85
  return [];
94
86
  }
@@ -96,10 +88,10 @@ function wrap(input, contentWidth) {
96
88
  if (typeof input === 'string') {
97
89
  lines = input
98
90
  .split('\n')
99
- .map(line => [line, sys_1.unicode.lineWidth(line)]);
91
+ .map(line => [line, unicode.lineWidth(line)]);
100
92
  }
101
93
  else if (isStringArray(input)) {
102
- lines = input.map(line => [line, sys_1.unicode.lineWidth(line)]);
94
+ lines = input.map(line => [line, unicode.lineWidth(line)]);
103
95
  }
104
96
  else if (isStringAndWidthArray(input)) {
105
97
  lines = input;
@@ -120,9 +112,9 @@ function wrap(input, contentWidth) {
120
112
  let currentChars = [];
121
113
  let currentWidth = 0;
122
114
  const STOP = [];
123
- const words = sys_1.unicode.words(line).concat([[STOP, 0]]);
115
+ const words = unicode.words(line).concat([[STOP, 0]]);
124
116
  for (const [wordChars] of words) {
125
- let wordWidth = sys_1.unicode.lineWidth(wordChars);
117
+ let wordWidth = unicode.lineWidth(wordChars);
126
118
  if ((!currentWidth || currentWidth + wordWidth <= contentWidth) &&
127
119
  wordChars !== STOP) {
128
120
  // 1) there's enough room on the line (and it's not the sentinel STOP)
@@ -149,7 +141,7 @@ function wrap(input, contentWidth) {
149
141
  do {
150
142
  let buffer = '', bufferWidth = 0, index = 0;
151
143
  for (let char of currentChars) {
152
- const charWidth = sys_1.unicode.charWidth(char);
144
+ const charWidth = unicode.charWidth(char);
153
145
  if (bufferWidth && bufferWidth + charWidth > contentWidth) {
154
146
  pushTrimmed(buffer, bufferWidth);
155
147
  // Some delicate math here; remove the bufferWidth from currentWidth, and then
@@ -157,7 +149,7 @@ function wrap(input, contentWidth) {
157
149
  // unicode.lineWidth())
158
150
  currentWidth -= bufferWidth;
159
151
  while (currentChars[index]?.match(/^\s+$/)) {
160
- currentWidth -= sys_1.unicode.charWidth(currentChars[index]);
152
+ currentWidth -= unicode.charWidth(currentChars[index]);
161
153
  index += 1;
162
154
  }
163
155
  currentChars = currentChars.slice(index);
@@ -192,7 +184,7 @@ function wrap(input, contentWidth) {
192
184
  if (currentChars.length === 0) {
193
185
  while (wordChars.length && wordChars[0].match(/^\s+$/)) {
194
186
  const char = wordChars.shift();
195
- wordWidth -= sys_1.unicode.charWidth(char);
187
+ wordWidth -= unicode.charWidth(char);
196
188
  }
197
189
  }
198
190
  currentChars.push(...wordChars);
package/.dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../lib/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../lib/util.ts"],"names":[],"mappings":"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"}
package/LICENSE CHANGED
@@ -2,9 +2,6 @@ TeaUI
2
2
  Copyright (c) 2023, Colin T.A. Gray
3
3
  https://github.com/colinta/teaui
4
4
 
5
- With code from Blessed (see LICENSE-blessed)
6
- https://github.com/chjj/blessed
7
-
8
5
  With code from vangie/east-asian-width (see LICENSE-east-asian-width)
9
6
  https://github.com/vangie/east-asian-width
10
7
 
package/package.json CHANGED
@@ -6,8 +6,9 @@
6
6
  "Shawn Chen <meishangchen@gmail.com>",
7
7
  "npmjs.com/blessed"
8
8
  ],
9
- "version": "1.3.7",
9
+ "version": "1.4.8",
10
10
  "license": "MIT",
11
+ "type": "module",
11
12
  "preferGlobal": false,
12
13
  "repository": {
13
14
  "type": "git",
@@ -37,40 +38,17 @@
37
38
  "engines": {
38
39
  "node": ">= 18.12.0"
39
40
  },
40
- "dependencies": {},
41
- "devDependencies": {
42
- "ava": "^6.2.0",
43
- "tsimp": "^2.0.12",
44
- "@teaui/shared": "1.3.7"
41
+ "dependencies": {
42
+ "@teaui/term": "1.4.8"
45
43
  },
46
- "ava": {
47
- "clearScreen": true,
48
- "extensions": {
49
- "ts": "module"
50
- },
51
- "require": [
52
- "tests/setup.ts"
53
- ],
54
- "files": [
55
- "tests/**/*.test.ts",
56
- "tests/**/*.test.tsx",
57
- "lib/**/*.test.ts",
58
- "lib/**/*.test.tsx"
59
- ],
60
- "concurrency": 5,
61
- "failFast": true,
62
- "failWithoutAssertions": false,
63
- "verbose": true,
64
- "nodeArguments": [
65
- "--import=tsimp"
66
- ]
44
+ "devDependencies": {
45
+ "@teaui/shared": "1.4.8"
67
46
  },
68
47
  "scripts": {
69
48
  "gittag": "git tag $(node -e 'process.stdout.write(require(\"./package\").version)')",
70
49
  "clean": "rm -rf .dist/",
71
- "cp-usr": "mkdir -p .dist/sys/usr/ && cp lib/sys/usr/* .dist/sys/usr/",
72
- "build": "pnpm clean && pnpm tsc && pnpm cp-usr",
73
- "test": "ava",
74
- "test:watch": "ava --watch --clear-screen"
50
+ "build": "pnpm clean && pnpm tsc",
51
+ "test": "vitest run",
52
+ "test:watch": "vitest"
75
53
  }
76
54
  }