@teaui/core 1.11.8 → 1.11.9

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 (169) hide show
  1. package/.dist/Buffer.d.ts +5 -0
  2. package/.dist/Buffer.js +150 -7
  3. package/.dist/Buffer.js.map +1 -1
  4. package/.dist/HeadlessProgram.d.ts +24 -0
  5. package/.dist/HeadlessProgram.js +41 -0
  6. package/.dist/HeadlessProgram.js.map +1 -0
  7. package/.dist/{Theme.d.ts → Palette.d.ts} +13 -13
  8. package/.dist/{Theme.js → Palette.js} +16 -16
  9. package/.dist/Palette.js.map +1 -0
  10. package/.dist/Screen.d.ts +33 -23
  11. package/.dist/Screen.js +75 -75
  12. package/.dist/Screen.js.map +1 -1
  13. package/.dist/Style.js +11 -10
  14. package/.dist/Style.js.map +1 -1
  15. package/.dist/TestProgram.d.ts +28 -0
  16. package/.dist/TestProgram.js +52 -0
  17. package/.dist/TestProgram.js.map +1 -0
  18. package/.dist/{testing.d.ts → TestScreen.d.ts} +2 -4
  19. package/.dist/TestScreen.js +99 -0
  20. package/.dist/TestScreen.js.map +1 -0
  21. package/.dist/TestTerminal.js +1 -1
  22. package/.dist/TestTerminal.js.map +1 -1
  23. package/.dist/UI.d.ts +2 -2
  24. package/.dist/UI.js +19 -19
  25. package/.dist/UI.js.map +1 -1
  26. package/.dist/View.d.ts +7 -8
  27. package/.dist/View.js +10 -10
  28. package/.dist/View.js.map +1 -1
  29. package/.dist/Viewport.d.ts +26 -0
  30. package/.dist/Viewport.js +57 -7
  31. package/.dist/Viewport.js.map +1 -1
  32. package/.dist/components/AbstractLegend.d.ts +30 -0
  33. package/.dist/components/AbstractLegend.js +195 -0
  34. package/.dist/components/AbstractLegend.js.map +1 -0
  35. package/.dist/components/Accordion.js +1 -1
  36. package/.dist/components/Accordion.js.map +1 -1
  37. package/.dist/components/Alert.d.ts +1 -1
  38. package/.dist/components/Alert.js +1 -1
  39. package/.dist/components/At.d.ts +57 -0
  40. package/.dist/components/At.js +182 -0
  41. package/.dist/components/At.js.map +1 -0
  42. package/.dist/components/AutoLegend.d.ts +6 -4
  43. package/.dist/components/AutoLegend.js +27 -10
  44. package/.dist/components/AutoLegend.js.map +1 -1
  45. package/.dist/components/Badge.d.ts +16 -0
  46. package/.dist/components/Badge.js +54 -0
  47. package/.dist/components/Badge.js.map +1 -0
  48. package/.dist/components/Box.d.ts +1 -1
  49. package/.dist/components/Box.js +4 -5
  50. package/.dist/components/Box.js.map +1 -1
  51. package/.dist/components/Breadcrumb.js +1 -1
  52. package/.dist/components/Breadcrumb.js.map +1 -1
  53. package/.dist/components/Button.d.ts +2 -3
  54. package/.dist/components/Button.js +6 -6
  55. package/.dist/components/Button.js.map +1 -1
  56. package/.dist/components/Calendar.d.ts +2 -2
  57. package/.dist/components/Calendar.js +24 -24
  58. package/.dist/components/Calendar.js.map +1 -1
  59. package/.dist/components/Callout.js +14 -14
  60. package/.dist/components/Callout.js.map +1 -1
  61. package/.dist/components/Canvas.js +1 -1
  62. package/.dist/components/Canvas.js.map +1 -1
  63. package/.dist/components/Checkbox.d.ts +2 -2
  64. package/.dist/components/Checkbox.js +4 -4
  65. package/.dist/components/Checkbox.js.map +1 -1
  66. package/.dist/components/Collapsible.js +1 -1
  67. package/.dist/components/Collapsible.js.map +1 -1
  68. package/.dist/components/CollapsibleText.js +1 -1
  69. package/.dist/components/CollapsibleText.js.map +1 -1
  70. package/.dist/components/Digits.d.ts +1 -1
  71. package/.dist/components/Digits.js +1 -1
  72. package/.dist/components/Digits.js.map +1 -1
  73. package/.dist/components/Drawer.d.ts +4 -4
  74. package/.dist/components/Drawer.js +13 -13
  75. package/.dist/components/Drawer.js.map +1 -1
  76. package/.dist/components/Dropdown.d.ts +1 -1
  77. package/.dist/components/Dropdown.js +12 -6
  78. package/.dist/components/Dropdown.js.map +1 -1
  79. package/.dist/components/HotKey.d.ts +4 -4
  80. package/.dist/components/HotKey.js +3 -3
  81. package/.dist/components/HotKey.js.map +1 -1
  82. package/.dist/components/Input.d.ts +1 -2
  83. package/.dist/components/Input.js +3 -3
  84. package/.dist/components/Input.js.map +1 -1
  85. package/.dist/components/Legend.d.ts +7 -13
  86. package/.dist/components/Legend.js +15 -187
  87. package/.dist/components/Legend.js.map +1 -1
  88. package/.dist/components/Log.d.ts +1 -0
  89. package/.dist/components/Log.js +5 -2
  90. package/.dist/components/Log.js.map +1 -1
  91. package/.dist/components/Modal.d.ts +2 -1
  92. package/.dist/components/Modal.js +2 -2
  93. package/.dist/components/Modal.js.map +1 -1
  94. package/.dist/components/Notification.d.ts +1 -1
  95. package/.dist/components/Notification.js +3 -3
  96. package/.dist/components/Notification.js.map +1 -1
  97. package/.dist/components/Page.js +5 -14
  98. package/.dist/components/Page.js.map +1 -1
  99. package/.dist/components/Pane.js +13 -10
  100. package/.dist/components/Pane.js.map +1 -1
  101. package/.dist/components/Plot.js +1 -1
  102. package/.dist/components/Plot.js.map +1 -1
  103. package/.dist/components/Progress.js +2 -2
  104. package/.dist/components/Progress.js.map +1 -1
  105. package/.dist/components/Scrollable.js +4 -4
  106. package/.dist/components/Scrollable.js.map +1 -1
  107. package/.dist/components/ScrollableList.js +4 -4
  108. package/.dist/components/ScrollableList.js.map +1 -1
  109. package/.dist/components/Separator.js +1 -1
  110. package/.dist/components/Separator.js.map +1 -1
  111. package/.dist/components/Slider.d.ts +2 -3
  112. package/.dist/components/Slider.js +8 -5
  113. package/.dist/components/Slider.js.map +1 -1
  114. package/.dist/components/Space.d.ts +1 -1
  115. package/.dist/components/Space.js +1 -1
  116. package/.dist/components/Space.js.map +1 -1
  117. package/.dist/components/Spinner.d.ts +3 -1
  118. package/.dist/components/Spinner.js +11 -1
  119. package/.dist/components/Spinner.js.map +1 -1
  120. package/.dist/components/Table.d.ts +1 -2
  121. package/.dist/components/Table.js +5 -5
  122. package/.dist/components/Table.js.map +1 -1
  123. package/.dist/components/Tabs.d.ts +3 -2
  124. package/.dist/components/Tabs.js +42 -3
  125. package/.dist/components/Tabs.js.map +1 -1
  126. package/.dist/components/Text.d.ts +1 -1
  127. package/.dist/components/Text.js +8 -1
  128. package/.dist/components/Text.js.map +1 -1
  129. package/.dist/components/Toggle.d.ts +26 -0
  130. package/.dist/components/Toggle.js +151 -0
  131. package/.dist/components/Toggle.js.map +1 -0
  132. package/.dist/components/ToggleGroup.d.ts +1 -1
  133. package/.dist/components/ToggleGroup.js +22 -4
  134. package/.dist/components/ToggleGroup.js.map +1 -1
  135. package/.dist/components/ZStack.js +3 -1
  136. package/.dist/components/ZStack.js.map +1 -1
  137. package/.dist/components/charts/BarChart.js +2 -2
  138. package/.dist/components/charts/BarChart.js.map +1 -1
  139. package/.dist/components/index.d.ts +5 -2
  140. package/.dist/components/index.js +5 -2
  141. package/.dist/components/index.js.map +1 -1
  142. package/.dist/iTerm2.d.ts +1 -1
  143. package/.dist/iTerm2.js +1 -1
  144. package/.dist/iTerm2.js.map +1 -1
  145. package/.dist/index.d.ts +6 -5
  146. package/.dist/index.js +6 -5
  147. package/.dist/index.js.map +1 -1
  148. package/.dist/log.d.ts +7 -2
  149. package/.dist/log.js +10 -3
  150. package/.dist/log.js.map +1 -1
  151. package/.dist/managers/FocusManager.d.ts +3 -2
  152. package/.dist/managers/FocusManager.js +51 -47
  153. package/.dist/managers/FocusManager.js.map +1 -1
  154. package/.dist/managers/TickManager.d.ts +1 -1
  155. package/.dist/managers/TickManager.js +4 -4
  156. package/.dist/managers/TickManager.js.map +1 -1
  157. package/.dist/renderToAnsi.d.ts +0 -7
  158. package/.dist/renderToAnsi.js +7 -45
  159. package/.dist/renderToAnsi.js.map +1 -1
  160. package/.dist/terminal.d.ts +1 -0
  161. package/.dist/types.d.ts +32 -0
  162. package/.dist/types.js.map +1 -1
  163. package/package.json +8 -4
  164. package/.dist/Theme.js.map +0 -1
  165. package/.dist/inspect.d.ts +0 -14
  166. package/.dist/inspect.js +0 -172
  167. package/.dist/inspect.js.map +0 -1
  168. package/.dist/testing.js +0 -208
  169. package/.dist/testing.js.map +0 -1
@@ -2,8 +2,8 @@ import { match } from '../events/index.js';
2
2
  const UNFOCUS = Symbol('UNFOCUS');
3
3
  export class FocusManager {
4
4
  #didCommit = false;
5
- #currentFocus;
6
- #prevFocus;
5
+ #currentFocusView;
6
+ #prevFocusView;
7
7
  #lastCommittedFocus;
8
8
  #focusRing = [];
9
9
  #hotKeys = [];
@@ -18,9 +18,9 @@ export class FocusManager {
18
18
  */
19
19
  reset(isRootView) {
20
20
  if (isRootView) {
21
- this.#prevFocus = this.#currentFocus;
21
+ this.#prevFocusView = this.#currentFocusView;
22
22
  }
23
- this.#currentFocus = undefined;
23
+ this.#currentFocusView = undefined;
24
24
  this.#focusRing = [];
25
25
  this.#hotKeys = [];
26
26
  this.#keyboardListeners = [];
@@ -40,8 +40,8 @@ export class FocusManager {
40
40
  this.nextFocus();
41
41
  }
42
42
  }
43
- else if (this.#currentFocus && this.#currentFocus !== UNFOCUS) {
44
- this.#currentFocus.receiveKey(event);
43
+ else if (this.#currentFocusView && this.#currentFocusView !== UNFOCUS) {
44
+ this.#currentFocusView.receiveKey(event);
45
45
  }
46
46
  else if (this.#keyboardListeners.length > 0) {
47
47
  // Last registered = innermost view = highest priority
@@ -49,8 +49,8 @@ export class FocusManager {
49
49
  }
50
50
  }
51
51
  triggerPaste(text) {
52
- if (this.#currentFocus && this.#currentFocus !== UNFOCUS) {
53
- this.#currentFocus.receivePaste(text);
52
+ if (this.#currentFocusView && this.#currentFocusView !== UNFOCUS) {
53
+ this.#currentFocusView.receivePaste(text);
54
54
  }
55
55
  }
56
56
  /**
@@ -60,18 +60,18 @@ export class FocusManager {
60
60
  if (!this.#didCommit) {
61
61
  this.#focusRing.push(view);
62
62
  }
63
- if (!this.#currentFocus && this.#prevFocus === view) {
63
+ if (!this.#currentFocusView && this.#prevFocusView === view) {
64
64
  // The previously-focused view is re-registering — restore its focus
65
65
  // regardless of isDefault (it was explicitly focused via tab/click).
66
- this.#currentFocus = view;
66
+ this.#currentFocusView = view;
67
67
  return true;
68
68
  }
69
- else if (!this.#currentFocus && !this.#prevFocus && isDefault) {
69
+ else if (!this.#currentFocusView && !this.#prevFocusView && isDefault) {
70
70
  // First render: only isDefault views can claim initial focus.
71
- this.#currentFocus = view;
71
+ this.#currentFocusView = view;
72
72
  return true;
73
73
  }
74
- else if (this.#currentFocus === view) {
74
+ else if (this.#currentFocusView === view) {
75
75
  return true;
76
76
  }
77
77
  else {
@@ -79,8 +79,11 @@ export class FocusManager {
79
79
  }
80
80
  }
81
81
  get currentFocusView() {
82
- return this.#currentFocus && this.#currentFocus !== UNFOCUS
83
- ? this.#currentFocus
82
+ if (!this.#didCommit) {
83
+ return this.#prevFocusView !== UNFOCUS ? this.#prevFocusView : undefined;
84
+ }
85
+ return this.#currentFocusView && this.#currentFocusView !== UNFOCUS
86
+ ? this.#currentFocusView
84
87
  : undefined;
85
88
  }
86
89
  get hotKeyViews() {
@@ -103,37 +106,33 @@ export class FocusManager {
103
106
  this.#keyboardListeners.push(view);
104
107
  }
105
108
  requestFocus(view) {
106
- this.#currentFocus = view;
109
+ this.#currentFocusView = view;
107
110
  return true;
108
111
  }
109
112
  unfocus() {
110
- this.#currentFocus = UNFOCUS;
113
+ this.#currentFocusView = UNFOCUS;
111
114
  }
112
- /**
113
- * @return boolean Whether the focus changed
114
- */
115
- commit() {
116
- this.#didCommit = true;
117
- if (this.#prevFocus === UNFOCUS && !this.#currentFocus) {
118
- this.#currentFocus = UNFOCUS;
115
+ determineFocus() {
116
+ if (this.#prevFocusView === UNFOCUS && !this.#currentFocusView) {
117
+ this.#currentFocusView = UNFOCUS;
119
118
  }
120
119
  else if (this.#focusRing.length > 0 &&
121
- this.#prevFocus &&
122
- !this.#currentFocus) {
120
+ this.#prevFocusView &&
121
+ !this.#currentFocusView) {
123
122
  // The previously-focused view didn't re-register — fall back to the
124
123
  // first view in the ring so focus doesn't disappear.
125
- this.#currentFocus = this.#focusRing[0];
124
+ this.#currentFocusView = this.#focusRing[0];
126
125
  }
127
126
  else if (this.#focusRing.length > 0 &&
128
- !this.#prevFocus &&
129
- !this.#currentFocus) {
127
+ !this.#prevFocusView &&
128
+ !this.#currentFocusView) {
130
129
  // First render with focusable views but no default view claimed focus —
131
130
  // enter the unfocused state so that tab can move into the focus ring.
132
- this.#currentFocus = UNFOCUS;
131
+ this.#currentFocusView = UNFOCUS;
133
132
  }
134
133
  // Detect focus changes and fire lifecycle events
135
134
  const prev = this.#lastCommittedFocus;
136
- const current = this.#currentFocus;
135
+ const current = this.#currentFocusView;
137
136
  if (prev !== current) {
138
137
  if (prev && prev !== UNFOCUS) {
139
138
  prev.didBlur();
@@ -146,57 +145,62 @@ export class FocusManager {
146
145
  }
147
146
  return false;
148
147
  }
148
+ /**
149
+ * @return boolean Whether the focus changed
150
+ */
151
+ commit() {
152
+ this.#didCommit = true;
153
+ return this.determineFocus();
154
+ }
149
155
  #reorderRing() {
150
- if (!this.#currentFocus || this.#currentFocus === UNFOCUS) {
156
+ if (!this.#currentFocusView || this.#currentFocusView === UNFOCUS) {
151
157
  return;
152
158
  }
153
- const index = this.#focusRing.indexOf(this.#currentFocus);
159
+ const index = this.#focusRing.indexOf(this.#currentFocusView);
154
160
  if (~index) {
155
161
  const pre = this.#focusRing.slice(0, index);
156
162
  this.#focusRing = this.#focusRing.slice(index).concat(pre);
157
163
  }
158
164
  }
159
165
  prevFocus() {
160
- if (!this.#currentFocus || this.#currentFocus === UNFOCUS) {
161
- this.#currentFocus = this.#focusRing.at(-1);
166
+ if (!this.#currentFocusView || this.#currentFocusView === UNFOCUS) {
167
+ this.#currentFocusView = this.#focusRing.at(-1);
162
168
  return;
163
169
  }
164
170
  if (this.#focusRing.length <= 1) {
165
- this.#currentFocus = UNFOCUS;
171
+ this.#currentFocusView = UNFOCUS;
166
172
  return;
167
173
  }
168
174
  // If focused on the first item, unfocus instead of wrapping.
169
- const index = this.#focusRing.indexOf(this.#currentFocus);
175
+ const index = this.#focusRing.indexOf(this.#currentFocusView);
170
176
  if (index === 0) {
171
- this.#currentFocus = UNFOCUS;
177
+ this.#currentFocusView = UNFOCUS;
172
178
  return;
173
179
  }
174
180
  this.#reorderRing();
175
181
  const last = this.#focusRing.pop();
176
182
  this.#focusRing.unshift(last);
177
- this.#currentFocus = last;
178
- return this.#currentFocus;
183
+ this.#currentFocusView = last;
179
184
  }
180
185
  nextFocus() {
181
- if (!this.#currentFocus || this.#currentFocus === UNFOCUS) {
182
- this.#currentFocus = this.#focusRing[0];
186
+ if (!this.#currentFocusView || this.#currentFocusView === UNFOCUS) {
187
+ this.#currentFocusView = this.#focusRing[0];
183
188
  return;
184
189
  }
185
190
  if (this.#focusRing.length <= 1) {
186
- this.#currentFocus = UNFOCUS;
191
+ this.#currentFocusView = UNFOCUS;
187
192
  return;
188
193
  }
189
194
  // If focused on the last item, unfocus instead of wrapping.
190
- const index = this.#focusRing.indexOf(this.#currentFocus);
195
+ const index = this.#focusRing.indexOf(this.#currentFocusView);
191
196
  if (index === this.#focusRing.length - 1) {
192
- this.#currentFocus = UNFOCUS;
197
+ this.#currentFocusView = UNFOCUS;
193
198
  return;
194
199
  }
195
200
  this.#reorderRing();
196
201
  const first = this.#focusRing.shift();
197
202
  this.#focusRing.push(first);
198
- this.#currentFocus = this.#focusRing[0];
199
- return this.#currentFocus;
203
+ this.#currentFocusView = this.#focusRing[0];
200
204
  }
201
205
  }
202
206
  function findView(parent, prevFocus) {
@@ -1 +1 @@
1
- {"version":3,"file":"FocusManager.js","sourceRoot":"","sources":["../../lib/managers/FocusManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FocusManager.js","sourceRoot":"","sources":["../../lib/managers/FocusManager.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { View } from '../View.js';
2
2
  export declare class TickManager {
3
3
  #private;
4
- constructor(render: () => void);
4
+ constructor(onRender: () => void);
5
5
  reset(): void;
6
6
  endRender(): void;
7
7
  stop(): void;
@@ -1,10 +1,10 @@
1
1
  export class TickManager {
2
- #render;
2
+ #onRender;
3
3
  #tickTimer;
4
4
  #tickViews = new Set();
5
5
  #needsRender = false;
6
- constructor(render) {
7
- this.#render = render;
6
+ constructor(onRender) {
7
+ this.#onRender = onRender;
8
8
  }
9
9
  reset() {
10
10
  this.#tickViews = new Set();
@@ -51,7 +51,7 @@ export class TickManager {
51
51
  needsRender = view.receiveTick(dt) || needsRender;
52
52
  }
53
53
  if (needsRender) {
54
- this.#render();
54
+ this.#onRender();
55
55
  this.#needsRender = false;
56
56
  }
57
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TickManager.js","sourceRoot":"","sources":["../../lib/managers/TickManager.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACtB,OAAO,CAAY;IACnB,UAAU,CAA4C;IACtD,UAAU,GAAc,IAAI,GAAG,EAAE,CAAA;IACjC,YAAY,GAAG,KAAK,CAAA;IAEpB,YAAY,MAAkB;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACvB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;IAC7B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAA;QACd,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE,CAAA;QACf,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAM;QACR,CAAC;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAA;YACnD,QAAQ,GAAG,QAAQ,CAAA;QACrB,CAAC,EAAE,EAAE,CAAC,CAAA;IACR,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAM;QACR,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;IAC7B,CAAC;IAED,YAAY,CAAC,IAAU;QACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QACxB,IAAI,CAAC,MAAM,EAAE,CAAA;IACf,CAAC;IAED,WAAW,CAAC,EAAU;QACpB,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAA;QACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,WAAW,CAAA;QACnD,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,EAAE,CAAA;YAEd,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QAC3B,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"TickManager.js","sourceRoot":"","sources":["../../lib/managers/TickManager.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACtB,SAAS,CAAY;IACrB,UAAU,CAA4C;IACtD,UAAU,GAAc,IAAI,GAAG,EAAE,CAAA;IACjC,YAAY,GAAG,KAAK,CAAA;IAEpB,YAAY,QAAoB;QAC9B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;IAC7B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAA;QACd,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE,CAAA;QACf,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAM;QACR,CAAC;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAA;YACnD,QAAQ,GAAG,QAAQ,CAAA;QACrB,CAAC,EAAE,EAAE,CAAC,CAAA;IACR,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAM;QACR,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;IAC7B,CAAC;IAED,YAAY,CAAC,IAAU;QACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QACxB,IAAI,CAAC,MAAM,EAAE,CAAA;IACf,CAAC;IAED,WAAW,CAAC,EAAU;QACpB,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAA;QACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,WAAW,CAAA;QACnD,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,EAAE,CAAA;YAEhB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QAC3B,CAAC;IACH,CAAC;CACF"}
@@ -1,11 +1,4 @@
1
1
  import type { View } from './View.js';
2
- import type { Screen } from './Screen.js';
3
- /**
4
- * A minimal Screen-like object for headless rendering.
5
- * Viewport calls various registration methods on Screen during render —
6
- * these are all no-ops for screenshot/offscreen purposes.
7
- */
8
- export declare function createHeadlessScreen(): Screen;
9
2
  /**
10
3
  * Render a View to an ANSI string at the given size, without needing a real terminal.
11
4
  *
@@ -1,38 +1,5 @@
1
- import { Buffer } from './Buffer.js';
2
- import { Viewport } from './Viewport.js';
3
- import { Size } from './geometry.js';
4
- import { StringTerminal } from './StringTerminal.js';
5
- /**
6
- * A minimal Screen-like object for headless rendering.
7
- * Viewport calls various registration methods on Screen during render —
8
- * these are all no-ops for screenshot/offscreen purposes.
9
- */
10
- export function createHeadlessScreen() {
11
- return {
12
- render() { },
13
- needsRender() { },
14
- requestModal() {
15
- return false;
16
- },
17
- get currentFocusView() {
18
- return undefined;
19
- },
20
- get hotKeyViews() {
21
- return [];
22
- },
23
- on() {
24
- return () => { };
25
- },
26
- registerHotKey(_view, _key) { },
27
- registerKeyboard(_view) { },
28
- registerFocus(_view, _isDefault) {
29
- return false;
30
- },
31
- registerMouse(_view, _offset, _point, _events) { },
32
- registerTick(_view) { },
33
- checkMouse(_view, _x, _y) { },
34
- };
35
- }
1
+ import { Screen } from './Screen.js';
2
+ import { HeadlessProgram } from './HeadlessProgram.js';
36
3
  /**
37
4
  * Render a View to an ANSI string at the given size, without needing a real terminal.
38
5
  *
@@ -41,15 +8,10 @@ export function createHeadlessScreen() {
41
8
  * @returns A string containing ANSI escape codes representing the rendered output
42
9
  */
43
10
  export function renderToAnsi(view, size) {
44
- const termSize = new Size(size.width, size.height);
45
- const buffer = new Buffer();
46
- buffer.resize(termSize);
47
- const screen = createHeadlessScreen();
48
- const renderSize = view.naturalSize(termSize).max(termSize);
49
- const viewport = new Viewport(screen, buffer, renderSize);
50
- view.render(viewport);
51
- const terminal = new StringTerminal({ cols: size.width, rows: size.height });
52
- buffer.flush(terminal);
53
- return terminal.output;
11
+ const program = new HeadlessProgram({ cols: size.width, rows: size.height });
12
+ const screen = new Screen(program, view);
13
+ screen.start();
14
+ screen.stop();
15
+ return program.terminal.output;
54
16
  }
55
17
  //# sourceMappingURL=renderToAnsi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderToAnsi.js","sourceRoot":"","sources":["../lib/renderToAnsi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAA;AAClC,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAA;AAKlD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,MAAM,KAAI,CAAC;QACX,WAAW,KAAI,CAAC;QAChB,YAAY;YACV,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,gBAAgB;YAClB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,WAAW;YACb,OAAO,EAAE,CAAA;QACX,CAAC;QACD,EAAE;YACA,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;QACjB,CAAC;QACD,cAAc,CAAC,KAAW,EAAE,IAAe,IAAG,CAAC;QAC/C,gBAAgB,CAAC,KAAW,IAAG,CAAC;QAChC,aAAa,CAAC,KAAW,EAAE,UAAmB;YAC5C,OAAO,KAAK,CAAA;QACd,CAAC;QACD,aAAa,CACX,KAAW,EACX,OAAY,EACZ,MAAW,EACX,OAAiC,IAChC,CAAC;QACJ,YAAY,CAAC,KAAW,IAAG,CAAC;QAC5B,UAAU,CAAC,KAAW,EAAE,EAAU,EAAE,EAAU,IAAG,CAAC;KAC9B,CAAA;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAU,EACV,IAAqC;IAErC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;IAC3B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAEvB,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAA;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC3D,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;IACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAErB,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAA;IAC1E,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAEtB,OAAO,QAAQ,CAAC,MAAM,CAAA;AACxB,CAAC"}
1
+ {"version":3,"file":"renderToAnsi.js","sourceRoot":"","sources":["../lib/renderToAnsi.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAA;AAEpD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAU,EACV,IAAqC;IAErC,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAA;IAC1E,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACxC,MAAM,CAAC,KAAK,EAAE,CAAA;IACd,MAAM,CAAC,IAAI,EAAE,CAAA;IAEb,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAA;AAChC,CAAC"}
@@ -3,6 +3,7 @@ export interface Terminal {
3
3
  writeChar(char: string, x: number, y: number, style: Style): void;
4
4
  restyleChar(x: number, y: number, style: Style): void;
5
5
  writeMeta(str: string): void;
6
+ paintRect(style: Style, minX: number, minY: number, maxX: number, maxY: number): void;
6
7
  }
7
8
  export interface SGRTerminal {
8
9
  cols: number;
package/.dist/types.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import type { SGRTerminal } from './terminal.js';
2
+ import type { SystemEvent } from './events/index.js';
1
3
  export type Alignment = 'left' | 'right' | 'center';
2
4
  export declare const FontFamilies: readonly ["default", "serif-bold", "serif-italic", "serif-italic-bold", "sans", "sans-bold", "sans-italic", "sans-italic-bold", "monospace", "double-struck", "fraktur", "fraktur-bold", "script", "script-bold"];
3
5
  export type FontFamily = (typeof FontFamilies)[number];
@@ -10,3 +12,33 @@ export interface Edges {
10
12
  bottom: number;
11
13
  left: number;
12
14
  }
15
+ export interface LegendItem {
16
+ key: string | string[];
17
+ label: string;
18
+ }
19
+ /**
20
+ * The abstract interface that Screen depends on. Any terminal backend
21
+ * (real terminal, test harness, web adapter, etc.) can implement this.
22
+ */
23
+ export interface Program extends SGRTerminal {
24
+ /**
25
+ * Prepare the terminal for fullscreen app mode (e.g. enter alt buffer,
26
+ * enable mouse, hide cursor). Called once before the first render.
27
+ */
28
+ setup(): void;
29
+ /**
30
+ * Restore the terminal to its original state (e.g. exit alt buffer,
31
+ * show cursor). Called when the screen stops.
32
+ */
33
+ teardown(): void;
34
+ /**
35
+ * Subscribe to system events (key, mouse, paste, focus/blur).
36
+ * Returns an unsubscribe function.
37
+ */
38
+ onEvents(listener: (event: SystemEvent) => void): () => void;
39
+ /**
40
+ * Subscribe to terminal resize events.
41
+ * Returns an unsubscribe function.
42
+ */
43
+ onResize(listener: () => void): () => void;
44
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS;IACT,YAAY;IACZ,cAAc;IACd,mBAAmB;IACnB,MAAM;IACN,WAAW;IACX,aAAa;IACb,kBAAkB;IAClB,WAAW;IACX,eAAe;IACf,SAAS;IACT,cAAc;IACd,QAAQ;IACR,aAAa;CACL,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS;IACT,YAAY;IACZ,cAAc;IACd,mBAAmB;IACnB,MAAM;IACN,WAAW;IACX,aAAa;IACb,kBAAkB;IAClB,WAAW;IACX,eAAe;IACf,SAAS;IACT,cAAc;IACd,QAAQ;IACR,aAAa;CACL,CAAA"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "contributors": [
6
6
  "Shawn Chen <meishangchen@gmail.com>"
7
7
  ],
8
- "version": "1.11.8",
8
+ "version": "1.11.9",
9
9
  "license": "MIT",
10
10
  "type": "module",
11
11
  "preferGlobal": false,
@@ -38,16 +38,20 @@
38
38
  "node": ">= 18.12.0"
39
39
  },
40
40
  "dependencies": {
41
- "@teaui/term": "1.11.8"
41
+ "@teaui/inspect": "1.11.9",
42
+ "@teaui/term": "1.11.9"
42
43
  },
43
44
  "devDependencies": {
44
- "@teaui/shared": "1.11.8"
45
+ "@teaui/shared": "1.11.9"
46
+ },
47
+ "publishConfig": {
48
+ "access": "public"
45
49
  },
46
50
  "scripts": {
47
- "gittag": "git tag $(node -e 'process.stdout.write(require(\"./package\").version)')",
48
51
  "clean": "rm -rf .dist/",
49
52
  "_build": "pnpm clean && pnpm tsc",
50
53
  "build": "node ../../shared/check.js",
54
+ "typecheck": "tsc -p tsconfig.check.json --noEmit",
51
55
  "test": "vitest run",
52
56
  "test:watch": "vitest"
53
57
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"Theme.js","sourceRoot":"","sources":["../lib/Theme.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- export declare function isDebugging(enabled?: boolean): boolean;
2
- export declare function inspect(value: any, wrap?: boolean, recursionDepth?: number, visited?: Set<unknown>): string;
3
- interface Colorize {
4
- format(input: any): string;
5
- number(input: number): string;
6
- symbol(input: symbol): string;
7
- string(input: string, doQuote?: boolean): string;
8
- key(input: string | symbol | number): string;
9
- boolean(input: boolean): string;
10
- undefined(): string;
11
- null(): string;
12
- }
13
- export declare const colorize: Colorize;
14
- export {};
package/.dist/inspect.js DELETED
@@ -1,172 +0,0 @@
1
- import { bold, cyan, gray, green, red, yellow } from './ansi.js';
2
- let _debug = false;
3
- export function isDebugging(enabled) {
4
- if (enabled !== undefined) {
5
- _debug = enabled;
6
- }
7
- return _debug;
8
- }
9
- function isEmpty(object) {
10
- for (const key in object) {
11
- return false;
12
- }
13
- return true;
14
- }
15
- const MAX = 200;
16
- export function inspect(value, wrap = true, recursionDepth = 0, visited = new Set()) {
17
- if (value && (typeof value === 'object' || typeof value === 'function')) {
18
- if (visited.has(value)) {
19
- return red('[Circular]');
20
- }
21
- else {
22
- visited = new Set(visited);
23
- visited.add(value);
24
- }
25
- }
26
- if (recursionDepth >= 10) {
27
- return red('...');
28
- }
29
- if (value instanceof Set) {
30
- return `new Set(${inspect(Array.from(value.values()), wrap, recursionDepth, visited)})`;
31
- }
32
- if (value instanceof Map) {
33
- return `new Map(${inspect(Array.from(value.entries()), wrap, recursionDepth, visited)})`;
34
- }
35
- const tab = ' '.repeat(recursionDepth);
36
- const innerTab = tab + ' ';
37
- if (Array.isArray(value)) {
38
- if (value.length === 0) {
39
- return '[]';
40
- }
41
- const values = value.map(val => inspect(val, wrap, recursionDepth + 1, visited));
42
- const count = values.reduce((len, val) => len + val.length, 0);
43
- const newline = wrap && count > MAX;
44
- let inner;
45
- if (newline) {
46
- const [prev, line] = values.reduce(([prev, line], value) => {
47
- if (line.length + value.length > MAX) {
48
- return [(prev ? prev + `,\n${innerTab}` : '') + line, value];
49
- }
50
- return [prev, line ? line + ', ' + value : value];
51
- }, ['', '']);
52
- inner = (prev ? prev + `,\n${innerTab}` : '') + line;
53
- }
54
- else {
55
- inner = values.join(', ');
56
- }
57
- return newline ? `[\n${innerTab}${inner}\n${tab}]` : `[ ${inner} ]`;
58
- }
59
- else if (typeof value === 'string') {
60
- return colorize.string(value, recursionDepth > 0);
61
- }
62
- else if (typeof value === 'symbol') {
63
- return colorize.symbol(value);
64
- }
65
- else if (typeof value === 'number' ||
66
- typeof value === 'boolean' ||
67
- value === undefined ||
68
- value === null) {
69
- return colorize.format(value);
70
- }
71
- else if (typeof value === 'function') {
72
- return `function${value.name ? ` ${value.name}` : ''}() {${value}}`;
73
- }
74
- else if (value instanceof Date) {
75
- return `Date(${colorize.string(value.toISOString())})`;
76
- }
77
- else if (value instanceof Object &&
78
- value.constructor !== Object &&
79
- isEmpty(value)) {
80
- return `${value.constructor.name}({})`;
81
- }
82
- const name = value.constructor === undefined
83
- ? ''
84
- : value.constructor.name === 'Object'
85
- ? ''
86
- : value.constructor.name.concat(' ');
87
- const keys = Object.keys(value);
88
- if (keys.length === 0) {
89
- return '{}';
90
- }
91
- // weird ReactFiberNode one-off
92
- if ('$$typeof' in value && '_owner' in value) {
93
- const { _owner: _, ...remainder } = value;
94
- return inspect(remainder, wrap, recursionDepth, visited);
95
- }
96
- const values = keys.map(key => `${colorize.key(key)}: ${inspect(value[key], wrap, recursionDepth + 1, visited)}`);
97
- const count = values.reduce((len, val) => len + val.length, 0);
98
- const newline = wrap && count > MAX;
99
- let inner;
100
- if (newline) {
101
- const [prev, line] = values.reduce(([prev, line], value) => {
102
- if (line.length + value.length > MAX) {
103
- return [(prev ? prev + `,\n${innerTab}` : '') + line, value];
104
- }
105
- return [prev, line ? line + ', ' + value : line];
106
- }, ['', '']);
107
- inner = (prev ? prev + `,\n${innerTab}` : '') + line;
108
- inner = values.join(`,\n${innerTab}`);
109
- }
110
- else {
111
- inner = values.join(', ');
112
- }
113
- return newline
114
- ? `${name}{\n${innerTab}${inner}\n${tab}}`
115
- : `${name}{ ${inner} }`;
116
- }
117
- export const colorize = {
118
- format: function (input) {
119
- switch (typeof input) {
120
- case 'string':
121
- return colorize.string(input);
122
- case 'symbol':
123
- return colorize.symbol(input);
124
- case 'number':
125
- return colorize.number(input);
126
- case 'undefined':
127
- return colorize.undefined();
128
- case 'object':
129
- return colorize['null']();
130
- default:
131
- return String(input);
132
- }
133
- },
134
- number: function (input) {
135
- return yellow(''.concat(String(input)));
136
- },
137
- symbol: function (input) {
138
- return red(''.concat(String(input)));
139
- },
140
- string: function (input, doQuote = true) {
141
- let quote;
142
- if (doQuote) {
143
- if (input.includes("'")) {
144
- quote = '"';
145
- input = input.replaceAll('"', '\\"');
146
- }
147
- else {
148
- quote = "'";
149
- input = input.replaceAll("'", "\\'");
150
- }
151
- }
152
- else {
153
- quote = '';
154
- }
155
- input = input.replaceAll(/\n/g, '⤦');
156
- input = input.replaceAll(/\x1b/g, '␛');
157
- return green(quote.concat(input, quote));
158
- },
159
- key: function (input) {
160
- return cyan(String(input));
161
- },
162
- boolean: function (input) {
163
- return yellow(''.concat(String(input)));
164
- },
165
- undefined: function () {
166
- return gray('undefined');
167
- },
168
- null: function () {
169
- return bold('null');
170
- },
171
- };
172
- //# sourceMappingURL=inspect.js.map