@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
@@ -0,0 +1,195 @@
1
+ import * as unicode from '@teaui/term';
2
+ import { View } from '../View.js';
3
+ import { Point, Size } from '../geometry.js';
4
+ import { Style } from '../Style.js';
5
+ import { mapKey } from '../events/key.js';
6
+ function formatKey(key) {
7
+ // Handle 'C-a', 'A-S-x' style modifier prefixes
8
+ const modRe = /^([CAGS]-)+/;
9
+ const modMatch = key.match(modRe);
10
+ if (modMatch) {
11
+ const modStr = modMatch[0];
12
+ const base = key.slice(modStr.length);
13
+ let sigils = '';
14
+ if (modStr.includes('C-'))
15
+ sigils += MODIFIER_SIGILS.ctrl;
16
+ if (modStr.includes('A-'))
17
+ sigils += MODIFIER_SIGILS.alt;
18
+ if (modStr.includes('G-'))
19
+ sigils += MODIFIER_SIGILS.gui;
20
+ if (modStr.includes('S-'))
21
+ sigils += MODIFIER_SIGILS.shift;
22
+ return sigils + mapKey(base);
23
+ }
24
+ return mapKey(key);
25
+ }
26
+ function formatKeys(key) {
27
+ if (Array.isArray(key)) {
28
+ return key.map(formatKey).join(KEY_SEPARATOR);
29
+ }
30
+ return formatKey(key);
31
+ }
32
+ export class AbstractLegend extends View {
33
+ #separator = ' ';
34
+ constructor(props) {
35
+ super(props);
36
+ this.#update(props);
37
+ }
38
+ update(props) {
39
+ this.#update(props);
40
+ super.update(props);
41
+ }
42
+ #update({ separator }) {
43
+ this.#separator = separator ?? ' ';
44
+ }
45
+ computeItems(items) {
46
+ return items.map(item => {
47
+ const keyText = formatKeys(item.key);
48
+ const keyWidth = unicode.lineWidth(keyText);
49
+ const labelWidth = unicode.lineWidth(item.label);
50
+ return {
51
+ keyText,
52
+ keyWidth,
53
+ label: item.label,
54
+ labelWidth,
55
+ totalWidth: keyWidth + 1 + labelWidth, // key + space + label
56
+ };
57
+ });
58
+ }
59
+ /**
60
+ * Lay out items into rows. Returns an array of rows, each row being
61
+ * an array of indices into the computed items array, plus per-row column
62
+ * widths for alignment.
63
+ */
64
+ #layout(computed, availableWidth) {
65
+ if (computed.length === 0) {
66
+ return { rows: [], maxKeyWidth: 0, maxLabelWidth: 0 };
67
+ }
68
+ const sepWidth = unicode.lineWidth(this.#separator);
69
+ // Try to fit as many items per row as possible
70
+ const rows = [];
71
+ let currentRow = [];
72
+ let currentWidth = 0;
73
+ for (let i = 0; i < computed.length; i++) {
74
+ const item = computed[i];
75
+ const neededWidth = currentRow.length === 0 ? item.totalWidth : sepWidth + item.totalWidth;
76
+ if (currentRow.length > 0 &&
77
+ currentWidth + neededWidth > availableWidth) {
78
+ rows.push(currentRow);
79
+ currentRow = [i];
80
+ currentWidth = item.totalWidth;
81
+ }
82
+ else {
83
+ currentRow.push(i);
84
+ currentWidth += neededWidth;
85
+ }
86
+ }
87
+ if (currentRow.length > 0) {
88
+ rows.push(currentRow);
89
+ }
90
+ // If only one row, no column alignment needed
91
+ if (rows.length <= 1) {
92
+ const maxKeyWidth = Math.max(...computed.map(c => c.keyWidth));
93
+ const maxLabelWidth = Math.max(...computed.map(c => c.labelWidth));
94
+ return { rows, maxKeyWidth, maxLabelWidth };
95
+ }
96
+ // Calculate max key and label widths per column
97
+ let maxKeyWidth = 0;
98
+ let maxLabelWidth = 0;
99
+ for (const row of rows) {
100
+ for (const idx of row) {
101
+ maxKeyWidth = Math.max(maxKeyWidth, computed[idx].keyWidth);
102
+ maxLabelWidth = Math.max(maxLabelWidth, computed[idx].labelWidth);
103
+ }
104
+ }
105
+ return { rows, maxKeyWidth, maxLabelWidth };
106
+ }
107
+ naturalSize(available) {
108
+ const computed = this.collectItems();
109
+ if (computed.length === 0) {
110
+ return Size.zero;
111
+ }
112
+ const sepWidth = unicode.lineWidth(this.#separator);
113
+ const { rows, maxKeyWidth, maxLabelWidth } = this.#layout(computed, available.width);
114
+ if (rows.length <= 1) {
115
+ // Single row: tight width
116
+ let width = 0;
117
+ for (let i = 0; i < computed.length; i++) {
118
+ if (i > 0)
119
+ width += sepWidth;
120
+ width += computed[i].totalWidth;
121
+ }
122
+ return new Size(Math.min(width, available.width), 1);
123
+ }
124
+ // Multi-row: use column-aligned width
125
+ const colWidth = maxKeyWidth + 1 + maxLabelWidth;
126
+ const numCols = Math.max(...rows.map(r => r.length));
127
+ const width = numCols * colWidth + (numCols - 1) * sepWidth;
128
+ return new Size(Math.min(width, available.width), rows.length);
129
+ }
130
+ render(viewport) {
131
+ if (viewport.isEmpty) {
132
+ return;
133
+ }
134
+ const computed = this.collectItems();
135
+ if (computed.length === 0) {
136
+ return;
137
+ }
138
+ const { rows, maxKeyWidth, maxLabelWidth } = this.#layout(computed, viewport.contentSize.width);
139
+ const keyStyle = new Style({
140
+ foreground: this.purpose.contrastTextColor,
141
+ bold: true,
142
+ });
143
+ const labelStyle = new Style({
144
+ foreground: this.purpose.dimTextColor,
145
+ });
146
+ const sepStyle = new Style({
147
+ foreground: this.purpose.dimTextColor,
148
+ });
149
+ const sepWidth = unicode.lineWidth(this.#separator);
150
+ const multiRow = rows.length > 1;
151
+ const colWidth = multiRow ? maxKeyWidth + 1 + maxLabelWidth : 0;
152
+ for (let rowIdx = 0; rowIdx < rows.length; rowIdx++) {
153
+ if (rowIdx >= viewport.contentSize.height)
154
+ break;
155
+ const row = rows[rowIdx];
156
+ let x = 0;
157
+ for (let colIdx = 0; colIdx < row.length; colIdx++) {
158
+ const itemIdx = row[colIdx];
159
+ const item = computed[itemIdx];
160
+ if (colIdx > 0) {
161
+ viewport.write(this.#separator, new Point(x, rowIdx), sepStyle);
162
+ x += sepWidth;
163
+ }
164
+ // Write key (right-aligned within maxKeyWidth for multi-row)
165
+ if (multiRow) {
166
+ const pad = maxKeyWidth - item.keyWidth;
167
+ viewport.write(item.keyText, new Point(x + pad, rowIdx), keyStyle);
168
+ x += maxKeyWidth;
169
+ }
170
+ else {
171
+ viewport.write(item.keyText, new Point(x, rowIdx), keyStyle);
172
+ x += item.keyWidth;
173
+ }
174
+ // Space between key and label
175
+ x += 1;
176
+ // Write label
177
+ viewport.write(item.label, new Point(x, rowIdx), labelStyle);
178
+ if (multiRow) {
179
+ x += maxLabelWidth;
180
+ }
181
+ else {
182
+ x += item.labelWidth;
183
+ }
184
+ }
185
+ }
186
+ }
187
+ }
188
+ const KEY_SEPARATOR = '/';
189
+ const MODIFIER_SIGILS = {
190
+ ctrl: '⌃',
191
+ alt: '⌥',
192
+ gui: '⌘',
193
+ shift: '⇧',
194
+ };
195
+ //# sourceMappingURL=AbstractLegend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractLegend.js","sourceRoot":"","sources":["../../lib/components/AbstractLegend.ts"],"names":[],"mappings":"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"}
@@ -208,7 +208,7 @@ class Section extends Container {
208
208
  viewport.registerTick();
209
209
  }
210
210
  viewport.registerMouse(['mouse.button.left', 'mouse.move']);
211
- const textStyle = this.theme.text();
211
+ const textStyle = this.purpose.text();
212
212
  const textSize = this.#titleView
213
213
  .naturalSize(viewport.contentSize)
214
214
  .mutableCopy();
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../lib/components/Accordion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../lib/components/Accordion.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ export interface Props extends NotificationProps {
44
44
  * title: 'Confirm Delete',
45
45
  * purpose: 'cancel',
46
46
  * dismissOnEsc: true,
47
- * onDismiss() { console.log('dismissed') },
47
+ * onDismiss() { console.info('dismissed') },
48
48
  * children: [
49
49
  * new Text({text: 'Are you sure?'}),
50
50
  * new Button({title: 'Cancel', onClick() { alert.dismiss() }}),
@@ -45,7 +45,7 @@ class AlertLayout extends BaseContainer {
45
45
  * title: 'Confirm Delete',
46
46
  * purpose: 'cancel',
47
47
  * dismissOnEsc: true,
48
- * onDismiss() { console.log('dismissed') },
48
+ * onDismiss() { console.info('dismissed') },
49
49
  * children: [
50
50
  * new Text({text: 'Are you sure?'}),
51
51
  * new Button({title: 'Cancel', onClick() { alert.dismiss() }}),
@@ -0,0 +1,57 @@
1
+ import type { Viewport } from '../Viewport.js';
2
+ import { type Props as ViewProps, View } from '../View.js';
3
+ import { Container } from '../Container.js';
4
+ import { Size } from '../geometry.js';
5
+ import type { Location } from './ZStack.js';
6
+ interface Props extends ViewProps {
7
+ children?: View[];
8
+ child?: View;
9
+ location?: Location;
10
+ useAvailable?: boolean;
11
+ }
12
+ type ShorthandProps = NonNullable<Props['children']> | Omit<Props, 'location'>;
13
+ /**
14
+ * Positions its children at a fixed location within the available space.
15
+ * Children are rendered as a ZStack (overlaid on top of each other), then
16
+ * placed according to `location`.
17
+ *
18
+ * Designed for use inside a ZStack to anchor content at edges or corners.
19
+ *
20
+ * When `useAvailable` is true, the component uses the viewport's
21
+ * `availableRect` instead of `contentRect` for sizing and placement.
22
+ *
23
+ * ```ts
24
+ * new ZStack({
25
+ * children: [
26
+ * new Space({background: '#333'}),
27
+ * At.topRight([new Text({text: 'top-right'})]),
28
+ * At.bottomCenter([new Text({text: 'bottom'})]),
29
+ * ],
30
+ * })
31
+ * ```
32
+ */
33
+ export declare class At extends Container {
34
+ #private;
35
+ static topLeft(props?: ShorthandProps, extraProps?: Omit<Props, 'children' | 'location'>): At;
36
+ static topCenter(props?: ShorthandProps, extraProps?: Omit<Props, 'children' | 'location'>): At;
37
+ static topRight(props?: ShorthandProps, extraProps?: Omit<Props, 'children' | 'location'>): At;
38
+ static left(props?: ShorthandProps, extraProps?: Omit<Props, 'children' | 'location'>): At;
39
+ static center(props?: ShorthandProps, extraProps?: Omit<Props, 'children' | 'location'>): At;
40
+ static right(props?: ShorthandProps, extraProps?: Omit<Props, 'children' | 'location'>): At;
41
+ static bottomLeft(props?: ShorthandProps, extraProps?: Omit<Props, 'children' | 'location'>): At;
42
+ static bottomCenter(props?: ShorthandProps, extraProps?: Omit<Props, 'children' | 'location'>): At;
43
+ static bottomRight(props?: ShorthandProps, extraProps?: Omit<Props, 'children' | 'location'>): At;
44
+ constructor({ children, child, location, useAvailable, ...viewProps }: Props);
45
+ get location(): Location;
46
+ set location(value: Location);
47
+ get useAvailable(): boolean;
48
+ set useAvailable(value: boolean);
49
+ update({ children, child, location, useAvailable, ...props }: Props): void;
50
+ /**
51
+ * The At component fills all available space — it's meant to be used
52
+ * inside a ZStack layer.
53
+ */
54
+ naturalSize(available: Size): Size;
55
+ render(viewport: Viewport): void;
56
+ }
57
+ export {};
@@ -0,0 +1,182 @@
1
+ import { Container } from '../Container.js';
2
+ import { Rect, Point, Size } from '../geometry.js';
3
+ function fromShorthand(props, location, extraProps = {}) {
4
+ if (Array.isArray(props)) {
5
+ return { children: props, location, ...extraProps };
6
+ }
7
+ else {
8
+ return { ...props, location, ...extraProps };
9
+ }
10
+ }
11
+ /**
12
+ * Positions its children at a fixed location within the available space.
13
+ * Children are rendered as a ZStack (overlaid on top of each other), then
14
+ * placed according to `location`.
15
+ *
16
+ * Designed for use inside a ZStack to anchor content at edges or corners.
17
+ *
18
+ * When `useAvailable` is true, the component uses the viewport's
19
+ * `availableRect` instead of `contentRect` for sizing and placement.
20
+ *
21
+ * ```ts
22
+ * new ZStack({
23
+ * children: [
24
+ * new Space({background: '#333'}),
25
+ * At.topRight([new Text({text: 'top-right'})]),
26
+ * At.bottomCenter([new Text({text: 'bottom'})]),
27
+ * ],
28
+ * })
29
+ * ```
30
+ */
31
+ export class At extends Container {
32
+ #location;
33
+ #useAvailable;
34
+ static topLeft(props = {}, extraProps = {}) {
35
+ return new At(fromShorthand(props, 'top-left', extraProps));
36
+ }
37
+ static topCenter(props = {}, extraProps = {}) {
38
+ return new At(fromShorthand(props, 'top-center', extraProps));
39
+ }
40
+ static topRight(props = {}, extraProps = {}) {
41
+ return new At(fromShorthand(props, 'top-right', extraProps));
42
+ }
43
+ static left(props = {}, extraProps = {}) {
44
+ return new At(fromShorthand(props, 'left', extraProps));
45
+ }
46
+ static center(props = {}, extraProps = {}) {
47
+ return new At(fromShorthand(props, 'center', extraProps));
48
+ }
49
+ static right(props = {}, extraProps = {}) {
50
+ return new At(fromShorthand(props, 'right', extraProps));
51
+ }
52
+ static bottomLeft(props = {}, extraProps = {}) {
53
+ return new At(fromShorthand(props, 'bottom-left', extraProps));
54
+ }
55
+ static bottomCenter(props = {}, extraProps = {}) {
56
+ return new At(fromShorthand(props, 'bottom-center', extraProps));
57
+ }
58
+ static bottomRight(props = {}, extraProps = {}) {
59
+ return new At(fromShorthand(props, 'bottom-right', extraProps));
60
+ }
61
+ constructor({ children, child, location, useAvailable, ...viewProps }) {
62
+ super(viewProps);
63
+ this.#location = location ?? 'top-left';
64
+ this.#useAvailable = useAvailable ?? false;
65
+ if (child) {
66
+ this.add(child);
67
+ }
68
+ if (children) {
69
+ for (const c of children) {
70
+ this.add(c);
71
+ }
72
+ }
73
+ }
74
+ get location() {
75
+ return this.#location;
76
+ }
77
+ set location(value) {
78
+ if (value === this.#location)
79
+ return;
80
+ this.#location = value;
81
+ this.invalidateSize();
82
+ }
83
+ get useAvailable() {
84
+ return this.#useAvailable;
85
+ }
86
+ set useAvailable(value) {
87
+ if (value === this.#useAvailable)
88
+ return;
89
+ this.#useAvailable = value;
90
+ this.invalidateSize();
91
+ }
92
+ update({ children, child, location, useAvailable, ...props }) {
93
+ if (location !== undefined) {
94
+ this.#location = location;
95
+ }
96
+ if (useAvailable !== undefined) {
97
+ this.#useAvailable = useAvailable;
98
+ }
99
+ if (child !== undefined || children !== undefined) {
100
+ this.removeAllChildren();
101
+ if (children) {
102
+ for (const c of children) {
103
+ this.add(c);
104
+ }
105
+ }
106
+ if (child) {
107
+ this.add(child);
108
+ }
109
+ }
110
+ super.update(props);
111
+ }
112
+ /**
113
+ * The At component fills all available space — it's meant to be used
114
+ * inside a ZStack layer.
115
+ */
116
+ naturalSize(available) {
117
+ return available;
118
+ }
119
+ render(viewport) {
120
+ if (viewport.isEmpty) {
121
+ return super.render(viewport);
122
+ }
123
+ const layoutRect = this.#useAvailable
124
+ ? viewport.availableRect
125
+ : viewport.contentRect;
126
+ // Compute combined children size (ZStack-style: max of all children)
127
+ const childrenSize = Size.zero.mutableCopy();
128
+ for (const child of this.children) {
129
+ if (!child.isVisible)
130
+ continue;
131
+ const childSize = child.naturalSize(layoutRect.size).max(layoutRect.size);
132
+ childrenSize.width = Math.max(childrenSize.width, childSize.width);
133
+ childrenSize.height = Math.max(childrenSize.height, childSize.height);
134
+ }
135
+ const origin = computeOrigin(this.#location, layoutRect.size, childrenSize);
136
+ // Offset by layoutRect origin (relevant when using availableRect, which
137
+ // may have negative origin)
138
+ const drawOrigin = new Point(origin.x + layoutRect.origin.x, origin.y + layoutRect.origin.y);
139
+ const drawRect = new Rect(drawOrigin, childrenSize);
140
+ // Render all children overlaid (ZStack-style) at the computed position
141
+ viewport.clipped(drawRect, inside => {
142
+ for (const child of this.children) {
143
+ if (!child.isVisible)
144
+ continue;
145
+ child.render(inside);
146
+ }
147
+ });
148
+ }
149
+ }
150
+ function computeOrigin(location, available, childSize) {
151
+ let x, y;
152
+ // horizontal
153
+ if (location === 'top-left' ||
154
+ location === 'left' ||
155
+ location === 'bottom-left') {
156
+ x = 0;
157
+ }
158
+ else if (location === 'top-center' ||
159
+ location === 'center' ||
160
+ location === 'bottom-center') {
161
+ x = Math.round((available.width - childSize.width) / 2);
162
+ }
163
+ else {
164
+ x = available.width - childSize.width;
165
+ }
166
+ // vertical
167
+ if (location === 'top-left' ||
168
+ location === 'top-center' ||
169
+ location === 'top-right') {
170
+ y = 0;
171
+ }
172
+ else if (location === 'left' ||
173
+ location === 'center' ||
174
+ location === 'right') {
175
+ y = Math.round((available.height - childSize.height) / 2);
176
+ }
177
+ else {
178
+ y = available.height - childSize.height;
179
+ }
180
+ return new Point(Math.max(0, x), Math.max(0, y));
181
+ }
182
+ //# sourceMappingURL=At.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"At.js","sourceRoot":"","sources":["../../lib/components/At.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { Screen } from '../Screen.js';
2
- import { Legend } from './Legend.js';
3
- interface Props {
4
- separator?: string;
2
+ import { AbstractLegend, type Props as LegendProps, type ComputedItem } from './AbstractLegend.js';
3
+ import { Size } from '../geometry.js';
4
+ interface Props extends LegendProps {
5
5
  }
6
6
  /**
7
7
  * A Legend that automatically shows keyboard shortcuts based on:
@@ -10,10 +10,12 @@ interface Props {
10
10
  *
11
11
  * Subscribes to focusChange events on the screen and updates when focus changes.
12
12
  */
13
- export declare class AutoLegend extends Legend {
13
+ export declare class AutoLegend extends AbstractLegend {
14
14
  #private;
15
15
  constructor(props?: Props);
16
16
  didMount(screen: Screen): void;
17
17
  didUnmount(screen: Screen): void;
18
+ collectItems(): ComputedItem[];
19
+ naturalSize(available: Size): Size;
18
20
  }
19
21
  export {};
@@ -1,6 +1,7 @@
1
- import { Legend } from './Legend.js';
1
+ import { AbstractLegend, } from './AbstractLegend.js';
2
2
  import { HotKey } from './HotKey.js';
3
3
  import { hotKeyToString } from '../events/index.js';
4
+ import { Size } from '../geometry.js';
4
5
  /**
5
6
  * A Legend that automatically shows keyboard shortcuts based on:
6
7
  * - The currently focused view's `legendItems()` method
@@ -8,31 +9,47 @@ import { hotKeyToString } from '../events/index.js';
8
9
  *
9
10
  * Subscribes to focusChange events on the screen and updates when focus changes.
10
11
  */
11
- export class AutoLegend extends Legend {
12
+ export class AutoLegend extends AbstractLegend {
12
13
  #unsubscribe;
14
+ #cachedItems;
13
15
  constructor(props = {}) {
14
- super({ items: [], ...props });
16
+ super(props);
15
17
  }
16
18
  didMount(screen) {
17
19
  super.didMount(screen);
18
20
  this.#unsubscribe?.();
19
- this.#unsubscribe = screen.on('focusChange', view => {
20
- this.#updateItems(view);
21
+ this.#unsubscribe = screen.on('focusChange', () => {
22
+ this.#cachedItems = undefined;
23
+ this.invalidateSize();
21
24
  });
22
- // Collect initial items from current focus
23
- this.#updateItems(screen.currentFocusView);
24
25
  }
25
26
  didUnmount(screen) {
26
27
  this.#unsubscribe?.();
27
28
  this.#unsubscribe = undefined;
28
29
  super.didUnmount(screen);
29
30
  }
31
+ collectItems() {
32
+ if (!this.#cachedItems) {
33
+ this.#cachedItems = this.#updateItems(this.screen?.currentFocusView);
34
+ }
35
+ return this.#cachedItems;
36
+ }
37
+ naturalSize(available) {
38
+ const size = super.naturalSize(available);
39
+ if (size.height === 0) {
40
+ return new Size(0, 1);
41
+ }
42
+ return size;
43
+ }
30
44
  #updateItems(focused) {
31
45
  const screen = this.screen;
32
- const items = [];
46
+ let items;
33
47
  // Collect items from the focused view
34
48
  if (focused) {
35
- items.push(...focused.legendItems());
49
+ items = focused.legendItems();
50
+ }
51
+ else {
52
+ items = [];
36
53
  }
37
54
  // Collect items from registered HotKey components with labels
38
55
  if (screen) {
@@ -45,7 +62,7 @@ export class AutoLegend extends Legend {
45
62
  }
46
63
  }
47
64
  }
48
- this.update({ items });
65
+ return this.computeItems(items);
49
66
  }
50
67
  }
51
68
  //# sourceMappingURL=AutoLegend.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoLegend.js","sourceRoot":"","sources":["../../lib/components/AutoLegend.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAkB,MAAM,aAAa,CAAA;AACnD,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAA;AAMjD;;;;;;GAMG;AACH,MAAM,OAAO,UAAW,SAAQ,MAAM;IACpC,YAAY,CAAyB;IAErC,YAAY,QAAe,EAAE;QAC3B,KAAK,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,EAAC,CAAC,CAAA;IAC9B,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACtB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAA;QACrB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE;YAClD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;QACF,2CAA2C;QAC3C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAC5C,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAA;QACrB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC7B,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAC1B,CAAC;IAED,YAAY,CAAC,OAAyB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,MAAM,KAAK,GAAiB,EAAE,CAAA;QAE9B,sCAAsC;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;QACtC,CAAC;QAED,8DAA8D;QAC9D,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,IAAI,YAAY,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACzC,KAAK,CAAC,IAAI,CAAC;wBACT,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;wBAChC,KAAK,EAAE,IAAI,CAAC,KAAK;qBAClB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,EAAC,KAAK,EAAC,CAAC,CAAA;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"AutoLegend.js","sourceRoot":"","sources":["../../lib/components/AutoLegend.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,GAGf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAA;AAInC;;;;;;GAMG;AACH,MAAM,OAAO,UAAW,SAAQ,cAAc;IAC5C,YAAY,CAAyB;IACrC,YAAY,CAA4B;IAExC,YAAY,QAAe,EAAE;QAC3B,KAAK,CAAC,KAAK,CAAC,CAAA;IACd,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACtB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAA;QACrB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;YAChD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;YAC7B,IAAI,CAAC,cAAc,EAAE,CAAA;QACvB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAA;QACrB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC7B,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAC1B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;QACtE,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED,WAAW,CAAC,SAAe;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QACzC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACvB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,YAAY,CAAC,OAAyB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,IAAI,KAAmB,CAAA;QAEvB,sCAAsC;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,EAAE,CAAA;QACZ,CAAC;QAED,8DAA8D;QAC9D,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,IAAI,YAAY,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACzC,KAAK,CAAC,IAAI,CAAC;wBACT,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;wBAChC,KAAK,EAAE,IAAI,CAAC,KAAK;qBAClB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;CACF"}