@flyingrobots/bijou-tui 0.10.0 → 1.0.0
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.
- package/dist/accordion.d.ts +46 -5
- package/dist/accordion.d.ts.map +1 -1
- package/dist/accordion.js +41 -5
- package/dist/accordion.js.map +1 -1
- package/dist/animate.d.ts +30 -0
- package/dist/animate.d.ts.map +1 -1
- package/dist/animate.js +33 -0
- package/dist/animate.js.map +1 -1
- package/dist/browsable-list.d.ts +67 -4
- package/dist/browsable-list.d.ts.map +1 -1
- package/dist/browsable-list.js +49 -4
- package/dist/browsable-list.js.map +1 -1
- package/dist/canvas.d.ts +13 -4
- package/dist/canvas.d.ts.map +1 -1
- package/dist/canvas.js +9 -3
- package/dist/canvas.js.map +1 -1
- package/dist/command-palette.d.ts +67 -6
- package/dist/command-palette.d.ts.map +1 -1
- package/dist/command-palette.js +67 -6
- package/dist/command-palette.js.map +1 -1
- package/dist/commands.d.ts +32 -3
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +32 -3
- package/dist/commands.js.map +1 -1
- package/dist/driver.d.ts +14 -0
- package/dist/driver.d.ts.map +1 -1
- package/dist/driver.js +7 -0
- package/dist/driver.js.map +1 -1
- package/dist/eventbus.d.ts +43 -6
- package/dist/eventbus.d.ts.map +1 -1
- package/dist/eventbus.js +9 -0
- package/dist/eventbus.js.map +1 -1
- package/dist/file-picker.d.ts +56 -4
- package/dist/file-picker.d.ts.map +1 -1
- package/dist/file-picker.js +52 -4
- package/dist/file-picker.js.map +1 -1
- package/dist/flex.d.ts +17 -0
- package/dist/flex.d.ts.map +1 -1
- package/dist/flex.js +106 -12
- package/dist/flex.js.map +1 -1
- package/dist/help.d.ts +16 -1
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +13 -0
- package/dist/help.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/inputstack.d.ts +32 -4
- package/dist/inputstack.d.ts.map +1 -1
- package/dist/inputstack.js +11 -0
- package/dist/inputstack.js.map +1 -1
- package/dist/keybindings.d.ts +106 -14
- package/dist/keybindings.d.ts.map +1 -1
- package/dist/keybindings.js +28 -2
- package/dist/keybindings.js.map +1 -1
- package/dist/keys.d.ts +24 -8
- package/dist/keys.d.ts.map +1 -1
- package/dist/keys.js +34 -9
- package/dist/keys.js.map +1 -1
- package/dist/layout.d.ts +26 -0
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +25 -1
- package/dist/layout.js.map +1 -1
- package/dist/navigable-table.d.ts +48 -4
- package/dist/navigable-table.d.ts.map +1 -1
- package/dist/navigable-table.js +44 -4
- package/dist/navigable-table.js.map +1 -1
- package/dist/overlay.d.ts +110 -3
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +87 -7
- package/dist/overlay.js.map +1 -1
- package/dist/pager.d.ts +66 -7
- package/dist/pager.d.ts.map +1 -1
- package/dist/pager.js +56 -7
- package/dist/pager.js.map +1 -1
- package/dist/panels.d.ts +55 -0
- package/dist/panels.d.ts.map +1 -1
- package/dist/panels.js +11 -0
- package/dist/panels.js.map +1 -1
- package/dist/runtime.d.ts +6 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +6 -0
- package/dist/runtime.js.map +1 -1
- package/dist/screen.d.ts +37 -3
- package/dist/screen.d.ts.map +1 -1
- package/dist/screen.js +37 -3
- package/dist/screen.js.map +1 -1
- package/dist/spring.d.ts +56 -7
- package/dist/spring.d.ts.map +1 -1
- package/dist/spring.js +44 -7
- package/dist/spring.js.map +1 -1
- package/dist/status-bar.d.ts +15 -2
- package/dist/status-bar.d.ts.map +1 -1
- package/dist/status-bar.js +9 -0
- package/dist/status-bar.js.map +1 -1
- package/dist/timeline.d.ts +68 -5
- package/dist/timeline.d.ts.map +1 -1
- package/dist/timeline.js +33 -0
- package/dist/timeline.js.map +1 -1
- package/dist/types.d.ts +86 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +27 -3
- package/dist/types.js.map +1 -1
- package/dist/viewport.d.ts +71 -11
- package/dist/viewport.d.ts.map +1 -1
- package/dist/viewport.js +79 -11
- package/dist/viewport.js.map +1 -1
- package/package.json +2 -2
package/dist/flex.js
CHANGED
|
@@ -12,13 +12,33 @@
|
|
|
12
12
|
* )
|
|
13
13
|
* ```
|
|
14
14
|
*/
|
|
15
|
+
import { makeBgFill } from '@flyingrobots/bijou';
|
|
15
16
|
import { visibleLength, clipToWidth } from './viewport.js';
|
|
16
17
|
// ---------------------------------------------------------------------------
|
|
17
18
|
// ANSI helpers
|
|
18
19
|
// ---------------------------------------------------------------------------
|
|
20
|
+
/**
|
|
21
|
+
* Compute the terminal display width of a string.
|
|
22
|
+
*
|
|
23
|
+
* @param s - Input string possibly containing ANSI escapes.
|
|
24
|
+
* @returns Number of visible terminal columns.
|
|
25
|
+
*/
|
|
19
26
|
function visualWidth(s) {
|
|
20
27
|
return visibleLength(s);
|
|
21
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Distribute available main-axis space among children.
|
|
31
|
+
*
|
|
32
|
+
* Fixed-size children (basis or auto-measured) consume space first,
|
|
33
|
+
* then remaining space is divided proportionally among flex children.
|
|
34
|
+
*
|
|
35
|
+
* @param children - Child descriptors to allocate sizes for.
|
|
36
|
+
* @param mainAxisTotal - Total available size along the main axis.
|
|
37
|
+
* @param crossAxisTotal - Total available size along the cross axis.
|
|
38
|
+
* @param gap - Gap size between children on the main axis.
|
|
39
|
+
* @param isRow - True for row direction (main axis = width), false for column.
|
|
40
|
+
* @returns Resolved children with allocated sizes.
|
|
41
|
+
*/
|
|
22
42
|
function computeSizes(children, mainAxisTotal, crossAxisTotal, gap, isRow) {
|
|
23
43
|
if (children.length === 0)
|
|
24
44
|
return [];
|
|
@@ -62,6 +82,14 @@ function computeSizes(children, mainAxisTotal, crossAxisTotal, gap, isRow) {
|
|
|
62
82
|
child,
|
|
63
83
|
}));
|
|
64
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Clamp a size value within optional min/max bounds, flooring at 0.
|
|
87
|
+
*
|
|
88
|
+
* @param size - Raw size value.
|
|
89
|
+
* @param min - Minimum allowed size (inclusive).
|
|
90
|
+
* @param max - Maximum allowed size (inclusive).
|
|
91
|
+
* @returns Clamped size, never negative.
|
|
92
|
+
*/
|
|
65
93
|
function clampSize(size, min, max) {
|
|
66
94
|
let result = size;
|
|
67
95
|
if (min !== undefined)
|
|
@@ -70,6 +98,15 @@ function clampSize(size, min, max) {
|
|
|
70
98
|
result = Math.min(result, max);
|
|
71
99
|
return Math.max(0, result);
|
|
72
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Measure the intrinsic size of static content along the main axis.
|
|
103
|
+
*
|
|
104
|
+
* Return 0 for render functions (they must use flex or basis).
|
|
105
|
+
*
|
|
106
|
+
* @param content - Static string or render function.
|
|
107
|
+
* @param isRow - True to measure width, false to measure height.
|
|
108
|
+
* @returns Measured size in the main-axis direction.
|
|
109
|
+
*/
|
|
73
110
|
function measureContent(content, isRow) {
|
|
74
111
|
if (typeof content === 'function') {
|
|
75
112
|
// Can't measure a render function — treat as 0 (must use flex or basis)
|
|
@@ -86,6 +123,14 @@ function measureContent(content, isRow) {
|
|
|
86
123
|
// ---------------------------------------------------------------------------
|
|
87
124
|
// Rendering
|
|
88
125
|
// ---------------------------------------------------------------------------
|
|
126
|
+
/**
|
|
127
|
+
* Render a child's content, invoking its render function if applicable.
|
|
128
|
+
*
|
|
129
|
+
* @param child - Child descriptor whose content to render.
|
|
130
|
+
* @param width - Allocated width in columns.
|
|
131
|
+
* @param height - Allocated height in rows.
|
|
132
|
+
* @returns Rendered content string.
|
|
133
|
+
*/
|
|
89
134
|
function renderContent(child, width, height) {
|
|
90
135
|
if (typeof child.content === 'function') {
|
|
91
136
|
return child.content(width, height);
|
|
@@ -93,8 +138,14 @@ function renderContent(child, width, height) {
|
|
|
93
138
|
return child.content;
|
|
94
139
|
}
|
|
95
140
|
/**
|
|
96
|
-
* Clip
|
|
97
|
-
*
|
|
141
|
+
* Clip or pad each content line to an exact visible width.
|
|
142
|
+
*
|
|
143
|
+
* Does NOT pad height — that is handled by {@link alignCross}.
|
|
144
|
+
*
|
|
145
|
+
* @param content - Rendered content string (newline-delimited).
|
|
146
|
+
* @param width - Target visible width in columns.
|
|
147
|
+
* @param align - Horizontal alignment for lines shorter than width. Default: 'start'.
|
|
148
|
+
* @returns Array of lines, each exactly `width` visible columns wide.
|
|
98
149
|
*/
|
|
99
150
|
function fitWidth(content, width, align = 'start') {
|
|
100
151
|
const lines = content.split('\n');
|
|
@@ -122,7 +173,15 @@ function fitWidth(content, width, align = 'start') {
|
|
|
122
173
|
});
|
|
123
174
|
}
|
|
124
175
|
/**
|
|
125
|
-
* Align content lines along the cross axis.
|
|
176
|
+
* Align content lines along the cross axis by padding with empty lines.
|
|
177
|
+
*
|
|
178
|
+
* Truncate if content exceeds `totalCrossSize`; pad otherwise.
|
|
179
|
+
*
|
|
180
|
+
* @param lines - Rendered lines to align.
|
|
181
|
+
* @param totalCrossSize - Total cross-axis size in lines (height for row layout, character width for column layout).
|
|
182
|
+
* @param align - Cross-axis alignment ('start', 'center', or 'end').
|
|
183
|
+
* @param width - Width of each empty padding line.
|
|
184
|
+
* @returns Array of exactly `totalCrossSize` lines.
|
|
126
185
|
*/
|
|
127
186
|
function alignCross(lines, totalCrossSize, align, width) {
|
|
128
187
|
if (lines.length >= totalCrossSize)
|
|
@@ -168,6 +227,10 @@ function alignCross(lines, totalCrossSize, align, width) {
|
|
|
168
227
|
* { basis: 1, content: statusLine },
|
|
169
228
|
* )
|
|
170
229
|
* ```
|
|
230
|
+
*
|
|
231
|
+
* @param options - Layout container configuration (direction, dimensions, gap).
|
|
232
|
+
* @param children - Child descriptors with content, flex factors, and constraints.
|
|
233
|
+
* @returns Composed layout string with lines joined by newlines. Empty string if no children.
|
|
171
234
|
*/
|
|
172
235
|
export function flex(options, ...children) {
|
|
173
236
|
const { direction = 'row' } = options;
|
|
@@ -175,17 +238,28 @@ export function flex(options, ...children) {
|
|
|
175
238
|
const height = Math.max(0, Math.floor(options.height));
|
|
176
239
|
const gap = Math.max(0, Math.floor(options.gap ?? 0));
|
|
177
240
|
const isRow = direction === 'row';
|
|
241
|
+
const containerBg = makeBgFill(options.bgToken, options.ctx);
|
|
178
242
|
const mainAxisTotal = isRow ? width : height;
|
|
179
243
|
const crossAxisTotal = isRow ? height : width;
|
|
180
244
|
if (children.length === 0)
|
|
181
245
|
return '';
|
|
182
246
|
const resolved = computeSizes(children, mainAxisTotal, crossAxisTotal, gap, isRow);
|
|
183
247
|
if (isRow) {
|
|
184
|
-
return renderRow(resolved, height, gap);
|
|
248
|
+
return renderRow(resolved, height, gap, containerBg, options.ctx);
|
|
185
249
|
}
|
|
186
|
-
return renderColumn(resolved, width, height, gap);
|
|
250
|
+
return renderColumn(resolved, width, height, gap, containerBg, options.ctx);
|
|
187
251
|
}
|
|
188
|
-
|
|
252
|
+
/**
|
|
253
|
+
* Compose resolved children side-by-side in a horizontal row layout.
|
|
254
|
+
*
|
|
255
|
+
* @param items - Resolved children with allocated widths.
|
|
256
|
+
* @param totalHeight - Total available height in rows.
|
|
257
|
+
* @param gap - Horizontal gap between children in columns.
|
|
258
|
+
* @param containerBg - Optional background fill function for container regions (gaps, padding).
|
|
259
|
+
* @param ctx - Bijou context, used to resolve per-child bgToken fills.
|
|
260
|
+
* @returns Composed row string with lines joined by newlines.
|
|
261
|
+
*/
|
|
262
|
+
function renderRow(items, totalHeight, gap, containerBg, ctx) {
|
|
189
263
|
// Render each child into a column of lines
|
|
190
264
|
const columns = [];
|
|
191
265
|
for (const item of items) {
|
|
@@ -194,10 +268,14 @@ function renderRow(items, totalHeight, gap) {
|
|
|
194
268
|
// In row mode, fitWidth always uses 'start' — align controls cross-axis (vertical) only
|
|
195
269
|
const widthFitted = fitWidth(rendered, childWidth);
|
|
196
270
|
const aligned = alignCross(widthFitted, totalHeight, item.child.align ?? 'start', childWidth);
|
|
197
|
-
|
|
271
|
+
// Apply per-child bg fill (overrides container bg for this region)
|
|
272
|
+
const childBg = makeBgFill(item.child.bgToken, ctx) ?? containerBg;
|
|
273
|
+
const filled = childBg ? aligned.map(childBg) : aligned;
|
|
274
|
+
columns.push(filled);
|
|
198
275
|
}
|
|
199
276
|
// Compose columns side-by-side
|
|
200
|
-
const
|
|
277
|
+
const rawSpacer = ' '.repeat(Math.max(0, gap));
|
|
278
|
+
const spacer = containerBg && gap > 0 ? containerBg(rawSpacer) : rawSpacer;
|
|
201
279
|
const rows = [];
|
|
202
280
|
for (let r = 0; r < totalHeight; r++) {
|
|
203
281
|
const parts = [];
|
|
@@ -208,7 +286,18 @@ function renderRow(items, totalHeight, gap) {
|
|
|
208
286
|
}
|
|
209
287
|
return rows.join('\n');
|
|
210
288
|
}
|
|
211
|
-
|
|
289
|
+
/**
|
|
290
|
+
* Stack resolved children vertically in a column layout.
|
|
291
|
+
*
|
|
292
|
+
* @param items - Resolved children with allocated heights.
|
|
293
|
+
* @param totalWidth - Total available width in columns.
|
|
294
|
+
* @param totalHeight - Total available height in rows.
|
|
295
|
+
* @param gap - Vertical gap between children in rows.
|
|
296
|
+
* @param containerBg - Optional background fill function for container regions (gaps, padding).
|
|
297
|
+
* @param ctx - Bijou context, used to resolve per-child bgToken fills.
|
|
298
|
+
* @returns Composed column string with lines joined by newlines.
|
|
299
|
+
*/
|
|
300
|
+
function renderColumn(items, totalWidth, totalHeight, gap, containerBg, ctx) {
|
|
212
301
|
const lines = [];
|
|
213
302
|
for (let i = 0; i < items.length; i++) {
|
|
214
303
|
const item = items[i];
|
|
@@ -216,17 +305,22 @@ function renderColumn(items, totalWidth, totalHeight, gap) {
|
|
|
216
305
|
const rendered = renderContent(item.child, totalWidth, childHeight);
|
|
217
306
|
const widthFitted = fitWidth(rendered, totalWidth, item.child.align ?? 'start');
|
|
218
307
|
const aligned = alignCross(widthFitted, childHeight, 'start', totalWidth);
|
|
219
|
-
|
|
308
|
+
// Apply per-child bg fill
|
|
309
|
+
const childBg = makeBgFill(item.child.bgToken, ctx) ?? containerBg;
|
|
310
|
+
const filled = childBg ? aligned.map(childBg) : aligned;
|
|
311
|
+
lines.push(...filled);
|
|
220
312
|
// Add gap between items
|
|
221
313
|
if (i < items.length - 1 && gap > 0) {
|
|
222
|
-
const
|
|
314
|
+
const rawSpacer = ' '.repeat(Math.max(0, totalWidth));
|
|
315
|
+
const spacer = containerBg ? containerBg(rawSpacer) : rawSpacer;
|
|
223
316
|
for (let g = 0; g < gap; g++) {
|
|
224
317
|
lines.push(spacer);
|
|
225
318
|
}
|
|
226
319
|
}
|
|
227
320
|
}
|
|
228
321
|
// Pad to fill totalHeight if needed
|
|
229
|
-
const
|
|
322
|
+
const rawEmpty = ' '.repeat(Math.max(0, totalWidth));
|
|
323
|
+
const emptyLine = containerBg ? containerBg(rawEmpty) : rawEmpty;
|
|
230
324
|
while (lines.length < totalHeight) {
|
|
231
325
|
lines.push(emptyLine);
|
|
232
326
|
}
|
package/dist/flex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flex.js","sourceRoot":"","sources":["../src/flex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"flex.js","sourceRoot":"","sources":["../src/flex.ts"],"names":[],"mappings":"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"}
|
package/dist/help.d.ts
CHANGED
|
@@ -17,14 +17,16 @@
|
|
|
17
17
|
import type { BindingInfo } from './keybindings.js';
|
|
18
18
|
/** Anything that can list its bindings (satisfied by KeyMap). */
|
|
19
19
|
export interface BindingSource {
|
|
20
|
+
/** Return all registered key bindings. */
|
|
20
21
|
bindings(): readonly BindingInfo[];
|
|
21
22
|
}
|
|
23
|
+
/** Options for rendering help views. */
|
|
22
24
|
export interface HelpOptions {
|
|
23
25
|
/** Only show enabled bindings (default: true). */
|
|
24
26
|
enabledOnly?: boolean;
|
|
25
27
|
/** Filter to bindings in groups matching this prefix. */
|
|
26
28
|
groupFilter?: string;
|
|
27
|
-
/** Separator between key and description (default: " "). */
|
|
29
|
+
/** Separator between key and description (default: `" "`). */
|
|
28
30
|
separator?: string;
|
|
29
31
|
/** Title shown at the top (default: none). */
|
|
30
32
|
title?: string;
|
|
@@ -41,6 +43,10 @@ export interface HelpOptions {
|
|
|
41
43
|
* q Quit
|
|
42
44
|
* ? Toggle help
|
|
43
45
|
* ```
|
|
46
|
+
*
|
|
47
|
+
* @param keymap - Source of key binding information.
|
|
48
|
+
* @param options - Filtering, formatting, and title options.
|
|
49
|
+
* @returns Multi-line help text grouped by binding group.
|
|
44
50
|
*/
|
|
45
51
|
export declare function helpView(keymap: BindingSource, options?: HelpOptions): string;
|
|
46
52
|
/**
|
|
@@ -49,10 +55,19 @@ export declare function helpView(keymap: BindingSource, options?: HelpOptions):
|
|
|
49
55
|
* ```
|
|
50
56
|
* q Quit • j Down • k Up • ? Help
|
|
51
57
|
* ```
|
|
58
|
+
*
|
|
59
|
+
* @param keymap - Source of key binding information.
|
|
60
|
+
* @param options - Optional filtering by enabled state or group prefix.
|
|
61
|
+
* @returns Single-line help string with keys and descriptions separated by bullets.
|
|
52
62
|
*/
|
|
53
63
|
export declare function helpShort(keymap: BindingSource, options?: Pick<HelpOptions, 'enabledOnly' | 'groupFilter'>): string;
|
|
54
64
|
/**
|
|
55
65
|
* Filter help to a specific group (convenience wrapper).
|
|
66
|
+
*
|
|
67
|
+
* @param keymap - Source of key binding information.
|
|
68
|
+
* @param groupPrefix - Group name prefix to filter on (case-insensitive).
|
|
69
|
+
* @param options - Additional formatting options forwarded to `helpView` (excluding `groupFilter`, which is set by `groupPrefix`).
|
|
70
|
+
* @returns Filtered multi-line help text.
|
|
56
71
|
*/
|
|
57
72
|
export declare function helpFor(keymap: BindingSource, groupPrefix: string, options?: HelpOptions): string;
|
|
58
73
|
//# sourceMappingURL=help.d.ts.map
|
package/dist/help.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,IAAI,SAAS,WAAW,EAAE,CAAC;CACpC;AAMD,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,QAAQ,IAAI,SAAS,WAAW,EAAE,CAAC;CACpC;AAMD,wCAAwC;AACxC,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAoD7E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,aAAa,CAAC,GAAG,MAAM,CAenH;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAEjG"}
|
package/dist/help.js
CHANGED
|
@@ -30,6 +30,10 @@ import { formatKeyCombo } from './keybindings.js';
|
|
|
30
30
|
* q Quit
|
|
31
31
|
* ? Toggle help
|
|
32
32
|
* ```
|
|
33
|
+
*
|
|
34
|
+
* @param keymap - Source of key binding information.
|
|
35
|
+
* @param options - Filtering, formatting, and title options.
|
|
36
|
+
* @returns Multi-line help text grouped by binding group.
|
|
33
37
|
*/
|
|
34
38
|
export function helpView(keymap, options) {
|
|
35
39
|
const enabledOnly = options?.enabledOnly ?? true;
|
|
@@ -81,6 +85,10 @@ export function helpView(keymap, options) {
|
|
|
81
85
|
* ```
|
|
82
86
|
* q Quit • j Down • k Up • ? Help
|
|
83
87
|
* ```
|
|
88
|
+
*
|
|
89
|
+
* @param keymap - Source of key binding information.
|
|
90
|
+
* @param options - Optional filtering by enabled state or group prefix.
|
|
91
|
+
* @returns Single-line help string with keys and descriptions separated by bullets.
|
|
84
92
|
*/
|
|
85
93
|
export function helpShort(keymap, options) {
|
|
86
94
|
const enabledOnly = options?.enabledOnly ?? true;
|
|
@@ -97,6 +105,11 @@ export function helpShort(keymap, options) {
|
|
|
97
105
|
}
|
|
98
106
|
/**
|
|
99
107
|
* Filter help to a specific group (convenience wrapper).
|
|
108
|
+
*
|
|
109
|
+
* @param keymap - Source of key binding information.
|
|
110
|
+
* @param groupPrefix - Group name prefix to filter on (case-insensitive).
|
|
111
|
+
* @param options - Additional formatting options forwarded to `helpView` (excluding `groupFilter`, which is set by `groupPrefix`).
|
|
112
|
+
* @returns Filtered multi-line help text.
|
|
100
113
|
*/
|
|
101
114
|
export function helpFor(keymap, groupPrefix, options) {
|
|
102
115
|
return helpView(keymap, { ...options, groupFilter: groupPrefix });
|
package/dist/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* bijou-tui — TEA-based terminal UI framework.
|
|
3
|
+
*
|
|
4
|
+
* Re-export all public types, functions, and constants from the bijou-tui
|
|
5
|
+
* package. Import from `@flyingrobots/bijou-tui` for the full API.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
1
9
|
export type { App, Cmd, KeyMsg, ResizeMsg, MouseMsg, MouseButton, MouseAction, QuitSignal, RunOptions } from './types.js';
|
|
2
10
|
export { QUIT, isKeyMsg, isResizeMsg, isMouseMsg } from './types.js';
|
|
3
11
|
export { parseKey, parseMouse } from './keys.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* bijou-tui — TEA-based terminal UI framework.
|
|
3
|
+
*
|
|
4
|
+
* Re-export all public types, functions, and constants from the bijou-tui
|
|
5
|
+
* package. Import from `@flyingrobots/bijou-tui` for the full API.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
1
9
|
export { QUIT, isKeyMsg, isResizeMsg, isMouseMsg } from './types.js';
|
|
2
10
|
// Key parsing
|
|
3
11
|
export { parseKey, parseMouse } from './keys.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/inputstack.d.ts
CHANGED
|
@@ -26,14 +26,23 @@
|
|
|
26
26
|
*/
|
|
27
27
|
/**
|
|
28
28
|
* Anything that can handle an input message and optionally return an action.
|
|
29
|
+
*
|
|
29
30
|
* Return `undefined` to indicate "not handled" (pass through).
|
|
31
|
+
* {@link KeyMap}.handle() already satisfies this interface.
|
|
30
32
|
*
|
|
31
|
-
*
|
|
33
|
+
* @template Msg - Input message type.
|
|
34
|
+
* @template A - Action type returned on match.
|
|
32
35
|
*/
|
|
33
36
|
export interface InputHandler<Msg, A> {
|
|
37
|
+
/**
|
|
38
|
+
* Attempt to handle the given message.
|
|
39
|
+
*
|
|
40
|
+
* @param msg - Input message to handle.
|
|
41
|
+
* @returns The matched action, or `undefined` if not handled.
|
|
42
|
+
*/
|
|
34
43
|
handle(msg: Msg): A | undefined;
|
|
35
44
|
}
|
|
36
|
-
/**
|
|
45
|
+
/** Configuration options when pushing a layer onto the stack. */
|
|
37
46
|
export interface LayerOptions {
|
|
38
47
|
/**
|
|
39
48
|
* When true, unhandled events pass through to layers below even
|
|
@@ -44,13 +53,21 @@ export interface LayerOptions {
|
|
|
44
53
|
/** Optional name for debugging and removal by name. */
|
|
45
54
|
name?: string;
|
|
46
55
|
}
|
|
47
|
-
/** Read-only
|
|
56
|
+
/** Read-only snapshot of a layer's metadata. */
|
|
48
57
|
export interface LayerInfo {
|
|
58
|
+
/** Unique identifier assigned when the layer was pushed. */
|
|
49
59
|
readonly id: number;
|
|
60
|
+
/** Layer name (empty string if unnamed). */
|
|
50
61
|
readonly name: string;
|
|
62
|
+
/** Whether unhandled events pass through to layers below. */
|
|
51
63
|
readonly passthrough: boolean;
|
|
52
64
|
}
|
|
53
|
-
/**
|
|
65
|
+
/**
|
|
66
|
+
* Stack-based input dispatcher for layered TUI input handling.
|
|
67
|
+
*
|
|
68
|
+
* @template Msg - Input message type dispatched through the stack.
|
|
69
|
+
* @template A - Action type returned when a handler matches.
|
|
70
|
+
*/
|
|
54
71
|
export interface InputStack<Msg, A> {
|
|
55
72
|
/**
|
|
56
73
|
* Push a handler onto the top of the stack.
|
|
@@ -75,5 +92,16 @@ export interface InputStack<Msg, A> {
|
|
|
75
92
|
/** Number of layers in the stack. */
|
|
76
93
|
readonly size: number;
|
|
77
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Create a new empty input stack.
|
|
97
|
+
*
|
|
98
|
+
* Return an {@link InputStack} that dispatches input messages top-down
|
|
99
|
+
* through a stack of handlers. Layers can be opaque (swallowing unmatched
|
|
100
|
+
* events) or passthrough (letting them fall to lower layers).
|
|
101
|
+
*
|
|
102
|
+
* @template Msg - Input message type dispatched through the stack.
|
|
103
|
+
* @template A - Action type returned when a handler matches.
|
|
104
|
+
* @returns A new empty input stack.
|
|
105
|
+
*/
|
|
78
106
|
export declare function createInputStack<Msg, A>(): InputStack<Msg, A>;
|
|
79
107
|
//# sourceMappingURL=inputstack.d.ts.map
|
package/dist/inputstack.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputstack.d.ts","sourceRoot":"","sources":["../src/inputstack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH
|
|
1
|
+
{"version":3,"file":"inputstack.d.ts","sourceRoot":"","sources":["../src/inputstack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY,CAAC,GAAG,EAAE,CAAC;IAClC;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC;CACjC;AAED,iEAAiE;AACjE,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,gDAAgD;AAChD,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU,CAAC,GAAG,EAAE,CAAC;IAChC;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAEpE,mEAAmE;IACnE,GAAG,IAAI,SAAS,GAAG,SAAS,CAAC;IAE7B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAE5B;;;;;;;OAOG;IACH,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC;IAElC,mDAAmD;IACnD,MAAM,IAAI,SAAS,SAAS,EAAE,CAAC;IAE/B,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAuBD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,CAAC,KAAK,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CA4D7D"}
|
package/dist/inputstack.js
CHANGED
|
@@ -24,6 +24,17 @@
|
|
|
24
24
|
* // or: stack.remove(modalId);
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
|
+
/**
|
|
28
|
+
* Create a new empty input stack.
|
|
29
|
+
*
|
|
30
|
+
* Return an {@link InputStack} that dispatches input messages top-down
|
|
31
|
+
* through a stack of handlers. Layers can be opaque (swallowing unmatched
|
|
32
|
+
* events) or passthrough (letting them fall to lower layers).
|
|
33
|
+
*
|
|
34
|
+
* @template Msg - Input message type dispatched through the stack.
|
|
35
|
+
* @template A - Action type returned when a handler matches.
|
|
36
|
+
* @returns A new empty input stack.
|
|
37
|
+
*/
|
|
27
38
|
export function createInputStack() {
|
|
28
39
|
const stack = [];
|
|
29
40
|
let nextId = 1;
|
package/dist/inputstack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputstack.js","sourceRoot":"","sources":["../src/inputstack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;
|
|
1
|
+
{"version":3,"file":"inputstack.js","sourceRoot":"","sources":["../src/inputstack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAyGH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,OAAO;QACL,IAAI,CAAC,OAAO,EAAE,OAAO;YACnB,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE;gBACF,OAAO;gBACP,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,KAAK;gBAC1C,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE;aAC1B,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,GAAG;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5E,CAAC;QAED,MAAM,CAAC,EAAE;YACP,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAChD,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7B,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,QAAQ,CAAC,GAAG;YACV,gBAAgB;YAChB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAEzC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAED,4DAA4D;gBAC5D,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;oBACvB,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM;YACJ,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC,CAAC,CAAC;QACN,CAAC;QAED,IAAI,IAAI;YACN,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC"}
|