@flyingrobots/bijou-tui 4.4.0 → 5.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/README.md +102 -600
- package/dist/app-frame-actions.d.ts.map +1 -1
- package/dist/app-frame-actions.js +6 -1
- package/dist/app-frame-actions.js.map +1 -1
- package/dist/app-frame-i18n.d.ts.map +1 -1
- package/dist/app-frame-i18n.js +53 -0
- package/dist/app-frame-i18n.js.map +1 -1
- package/dist/app-frame-layers.d.ts +11 -1
- package/dist/app-frame-layers.d.ts.map +1 -1
- package/dist/app-frame-layers.js +19 -0
- package/dist/app-frame-layers.js.map +1 -1
- package/dist/app-frame-overlays.d.ts +82 -0
- package/dist/app-frame-overlays.d.ts.map +1 -0
- package/dist/app-frame-overlays.js +480 -0
- package/dist/app-frame-overlays.js.map +1 -0
- package/dist/app-frame-render.d.ts +8 -8
- package/dist/app-frame-render.d.ts.map +1 -1
- package/dist/app-frame-render.js +84 -25
- package/dist/app-frame-render.js.map +1 -1
- package/dist/app-frame-types.d.ts +122 -5
- package/dist/app-frame-types.d.ts.map +1 -1
- package/dist/app-frame-types.js +17 -1
- package/dist/app-frame-types.js.map +1 -1
- package/dist/app-frame-utils.d.ts.map +1 -1
- package/dist/app-frame-utils.js +6 -5
- package/dist/app-frame-utils.js.map +1 -1
- package/dist/app-frame.d.ts +43 -83
- package/dist/app-frame.d.ts.map +1 -1
- package/dist/app-frame.js +499 -575
- package/dist/app-frame.js.map +1 -1
- package/dist/browsable-list.d.ts +12 -0
- package/dist/browsable-list.d.ts.map +1 -1
- package/dist/browsable-list.js +17 -6
- package/dist/browsable-list.js.map +1 -1
- package/dist/canvas.d.ts.map +1 -1
- package/dist/canvas.js +27 -7
- package/dist/canvas.js.map +1 -1
- package/dist/collection-surface.d.ts +8 -0
- package/dist/collection-surface.d.ts.map +1 -1
- package/dist/collection-surface.js +72 -8
- package/dist/collection-surface.js.map +1 -1
- package/dist/command-palette.d.ts +5 -3
- package/dist/command-palette.d.ts.map +1 -1
- package/dist/command-palette.js +5 -3
- package/dist/command-palette.js.map +1 -1
- package/dist/css/text-style.d.ts +2 -0
- package/dist/css/text-style.d.ts.map +1 -1
- package/dist/css/text-style.js +18 -8
- package/dist/css/text-style.js.map +1 -1
- package/dist/debug-overlay.d.ts +19 -0
- package/dist/debug-overlay.d.ts.map +1 -0
- package/dist/debug-overlay.js +25 -0
- package/dist/debug-overlay.js.map +1 -0
- package/dist/design-language.d.ts.map +1 -1
- package/dist/design-language.js +4 -5
- package/dist/design-language.js.map +1 -1
- package/dist/driver.d.ts +102 -0
- package/dist/driver.d.ts.map +1 -1
- package/dist/driver.js +259 -19
- package/dist/driver.js.map +1 -1
- package/dist/file-picker.d.ts.map +1 -1
- package/dist/file-picker.js +2 -2
- package/dist/file-picker.js.map +1 -1
- package/dist/flex.d.ts.map +1 -1
- package/dist/flex.js +6 -6
- package/dist/flex.js.map +1 -1
- package/dist/focus-area.d.ts +9 -1
- package/dist/focus-area.d.ts.map +1 -1
- package/dist/focus-area.js +69 -40
- package/dist/focus-area.js.map +1 -1
- package/dist/grid.d.ts +2 -2
- package/dist/grid.d.ts.map +1 -1
- package/dist/grid.js +11 -148
- package/dist/grid.js.map +1 -1
- package/dist/help.d.ts +2 -0
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +6 -4
- package/dist/help.js.map +1 -1
- package/dist/icon-presentation.d.ts +10 -0
- package/dist/icon-presentation.d.ts.map +1 -0
- package/dist/icon-presentation.js +12 -0
- package/dist/icon-presentation.js.map +1 -0
- package/dist/index.d.ts +14 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/layout-preset.d.ts +1 -1
- package/dist/layout-preset.d.ts.map +1 -1
- package/dist/motion/reconciler.d.ts +6 -2
- package/dist/motion/reconciler.d.ts.map +1 -1
- package/dist/motion/reconciler.js +40 -10
- package/dist/motion/reconciler.js.map +1 -1
- package/dist/motion/types.d.ts +3 -1
- package/dist/motion/types.d.ts.map +1 -1
- package/dist/navigable-table.d.ts +9 -10
- package/dist/navigable-table.d.ts.map +1 -1
- package/dist/navigable-table.js +33 -14
- package/dist/navigable-table.js.map +1 -1
- package/dist/notification.d.ts +15 -0
- package/dist/notification.d.ts.map +1 -1
- package/dist/notification.js +98 -29
- package/dist/notification.js.map +1 -1
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +50 -19
- package/dist/overlay.js.map +1 -1
- package/dist/pager.d.ts +3 -1
- package/dist/pager.d.ts.map +1 -1
- package/dist/pager.js +4 -0
- package/dist/pager.js.map +1 -1
- package/dist/pipeline/middleware/grayscale.d.ts.map +1 -1
- package/dist/pipeline/middleware/grayscale.js +5 -5
- package/dist/pipeline/middleware/grayscale.js.map +1 -1
- package/dist/pipeline/middleware/motion.js +2 -2
- package/dist/pipeline/middleware/motion.js.map +1 -1
- package/dist/pipeline/middleware/surface-shaders.d.ts +37 -0
- package/dist/pipeline/middleware/surface-shaders.d.ts.map +1 -0
- package/dist/pipeline/middleware/surface-shaders.js +164 -0
- package/dist/pipeline/middleware/surface-shaders.js.map +1 -0
- package/dist/pipeline/pipeline.d.ts +29 -1
- package/dist/pipeline/pipeline.d.ts.map +1 -1
- package/dist/pipeline/pipeline.js +86 -23
- package/dist/pipeline/pipeline.js.map +1 -1
- package/dist/runtime.d.ts +19 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +183 -30
- package/dist/runtime.js.map +1 -1
- package/dist/shell-quit.d.ts +1 -1
- package/dist/shell-quit.d.ts.map +1 -1
- package/dist/shell-quit.js +14 -3
- package/dist/shell-quit.js.map +1 -1
- package/dist/split-pane.d.ts +2 -2
- package/dist/split-pane.d.ts.map +1 -1
- package/dist/split-pane.js +28 -49
- package/dist/split-pane.js.map +1 -1
- package/dist/subapp/mount.d.ts +17 -0
- package/dist/subapp/mount.d.ts.map +1 -1
- package/dist/subapp/mount.js +13 -0
- package/dist/subapp/mount.js.map +1 -1
- package/dist/surface-layout.d.ts +8 -3
- package/dist/surface-layout.d.ts.map +1 -1
- package/dist/surface-layout.js +27 -12
- package/dist/surface-layout.js.map +1 -1
- package/dist/view-output.js +2 -2
- package/dist/view-output.js.map +1 -1
- package/dist/viewport.d.ts +13 -1
- package/dist/viewport.d.ts.map +1 -1
- package/dist/viewport.js +33 -11
- package/dist/viewport.js.map +1 -1
- package/package.json +3 -3
package/dist/focus-area.js
CHANGED
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
22
|
import { createSurface, parseAnsiToSurface, renderByMode } from '@flyingrobots/bijou';
|
|
23
|
-
import { parseHex, encodeModifiers } from '@flyingrobots/bijou/perf';
|
|
24
23
|
import { resolveBCSSTextToken } from './css/text-style.js';
|
|
25
24
|
import { viewport, createScrollState, scrollBy, scrollTo, scrollToTop, scrollToBottom, pageDown, pageUp, scrollByX, scrollToX, } from './viewport.js';
|
|
26
25
|
import { createKeyMap } from './keybindings.js';
|
|
@@ -33,6 +32,7 @@ const EMPTY_CELL = { char: ' ', empty: false };
|
|
|
33
32
|
const SCROLLBAR_TRACK_CELL = { char: '│', empty: false };
|
|
34
33
|
const SCROLLBAR_THUMB_CELL = { char: '█', empty: false };
|
|
35
34
|
const gutterCellCache = new Map();
|
|
35
|
+
const scrollbarCellCache = new Map();
|
|
36
36
|
// ---------------------------------------------------------------------------
|
|
37
37
|
// State creation
|
|
38
38
|
// ---------------------------------------------------------------------------
|
|
@@ -47,16 +47,17 @@ const gutterCellCache = new Map();
|
|
|
47
47
|
* @returns Fresh focus area state with scroll at the top-left.
|
|
48
48
|
*/
|
|
49
49
|
export function createFocusAreaState(options) {
|
|
50
|
-
const { content, overflowX = 'hidden' } = options;
|
|
50
|
+
const { content, overflowX = 'hidden', scrollbarMode = 'gutter' } = options;
|
|
51
51
|
// Clamp dimensions to at least 1
|
|
52
52
|
const width = Math.max(1, options.width);
|
|
53
53
|
const height = Math.max(1, options.height);
|
|
54
54
|
return {
|
|
55
55
|
content,
|
|
56
|
-
scroll: createScrollState(content, height, resolveFocusAreaViewportWidth(content.split('\n').length, width, height, overflowX)),
|
|
56
|
+
scroll: createScrollState(content, height, resolveFocusAreaViewportWidth(content.split('\n').length, width, height, overflowX, scrollbarMode)),
|
|
57
57
|
width,
|
|
58
58
|
height,
|
|
59
59
|
overflowX,
|
|
60
|
+
scrollbarMode,
|
|
60
61
|
};
|
|
61
62
|
}
|
|
62
63
|
/**
|
|
@@ -66,10 +67,10 @@ export function createFocusAreaState(options) {
|
|
|
66
67
|
* keep pane rendering surface-native without string round-tripping.
|
|
67
68
|
*/
|
|
68
69
|
export function createFocusAreaStateForSurface(surface, options) {
|
|
69
|
-
const { overflowX = 'hidden' } = options;
|
|
70
|
+
const { overflowX = 'hidden', scrollbarMode = 'gutter' } = options;
|
|
70
71
|
const width = Math.max(1, options.width);
|
|
71
72
|
const height = Math.max(1, options.height);
|
|
72
|
-
const viewportWidth = resolveFocusAreaViewportWidth(surface.height, width, height, overflowX);
|
|
73
|
+
const viewportWidth = resolveFocusAreaViewportWidth(surface.height, width, height, overflowX, scrollbarMode);
|
|
73
74
|
const maxX = viewportWidth === undefined ? 0 : Math.max(0, surface.width - viewportWidth);
|
|
74
75
|
return {
|
|
75
76
|
content: '',
|
|
@@ -84,6 +85,7 @@ export function createFocusAreaStateForSurface(surface, options) {
|
|
|
84
85
|
width,
|
|
85
86
|
height,
|
|
86
87
|
overflowX,
|
|
88
|
+
scrollbarMode,
|
|
87
89
|
};
|
|
88
90
|
}
|
|
89
91
|
// ---------------------------------------------------------------------------
|
|
@@ -180,7 +182,7 @@ export function focusAreaScrollToX(state, x) {
|
|
|
180
182
|
*/
|
|
181
183
|
export function focusAreaSetContent(state, content) {
|
|
182
184
|
const totalLines = content.split('\n').length;
|
|
183
|
-
const viewportWidth = resolveFocusAreaViewportWidth(totalLines, state.width, state.height, state.overflowX);
|
|
185
|
+
const viewportWidth = resolveFocusAreaViewportWidth(totalLines, state.width, state.height, state.overflowX, state.scrollbarMode);
|
|
184
186
|
const newScroll = createScrollState(content, state.height, viewportWidth);
|
|
185
187
|
const clampedY = Math.min(state.scroll.y, newScroll.maxY);
|
|
186
188
|
const clampedX = Math.min(state.scroll.x, newScroll.maxX);
|
|
@@ -228,6 +230,7 @@ export function focusArea(state, options) {
|
|
|
228
230
|
scrollY: state.scroll.y,
|
|
229
231
|
scrollX,
|
|
230
232
|
showScrollbar,
|
|
233
|
+
scrollbarMode: state.scrollbarMode,
|
|
231
234
|
});
|
|
232
235
|
if (!hasGutter)
|
|
233
236
|
return body;
|
|
@@ -260,7 +263,9 @@ export function focusAreaSurfaceInto(content, state, target, options, offsetX =
|
|
|
260
263
|
const gutterWidth = hasGutter ? 1 : 0;
|
|
261
264
|
const bodyWidth = Math.max(0, state.width - gutterWidth);
|
|
262
265
|
const needsScrollbar = showScrollbar && content.height > state.height && bodyWidth > 0;
|
|
263
|
-
const contentWidth = needsScrollbar
|
|
266
|
+
const contentWidth = needsScrollbar && state.scrollbarMode === 'gutter'
|
|
267
|
+
? Math.max(0, bodyWidth - 1)
|
|
268
|
+
: bodyWidth;
|
|
264
269
|
const scrollY = Math.max(0, Math.min(state.scroll.y, Math.max(0, content.height - state.height)));
|
|
265
270
|
const scrollX = state.overflowX === 'scroll'
|
|
266
271
|
? Math.max(0, Math.min(state.scroll.x, Math.max(0, content.width - contentWidth)))
|
|
@@ -269,31 +274,32 @@ export function focusAreaSurfaceInto(content, state, target, options, offsetX =
|
|
|
269
274
|
target.blit(content, offsetX + gutterWidth, offsetY, scrollX, scrollY, contentWidth, state.height);
|
|
270
275
|
}
|
|
271
276
|
if (needsScrollbar) {
|
|
272
|
-
|
|
277
|
+
const scrollbarX = offsetX + gutterWidth + bodyWidth - 1;
|
|
278
|
+
const scrollbarCells = resolveScrollbarCells(ctx, options);
|
|
279
|
+
paintScrollbarInto(target, scrollbarX, offsetY, state.height, content.height, scrollY, scrollbarCells.track, scrollbarCells.thumb);
|
|
273
280
|
}
|
|
274
281
|
if (hasGutter) {
|
|
275
282
|
const gutterCell = resolveGutterCell(focused, ctx, options);
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
if (fgRgb) {
|
|
279
|
-
const [fR, fG, fB] = fgRgb;
|
|
280
|
-
let bR = -1, bG = 0, bB = 0;
|
|
281
|
-
const bgRgb = gutterCell.bg ? parseHex(gutterCell.bg) : undefined;
|
|
282
|
-
if (bgRgb) {
|
|
283
|
-
[bR, bG, bB] = bgRgb;
|
|
284
|
-
}
|
|
285
|
-
for (let y = 0; y < state.height; y++) {
|
|
286
|
-
target.setRGB(offsetX, offsetY + y, gutterCell.char, fR, fG, fB, bR, bG, bB, encodeModifiers(gutterCell.modifiers));
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
else {
|
|
290
|
-
for (let y = 0; y < state.height; y++) {
|
|
291
|
-
target.set(offsetX, offsetY + y, gutterCell);
|
|
292
|
-
}
|
|
283
|
+
for (let y = 0; y < state.height; y++) {
|
|
284
|
+
paintCellPreservingBackground(target, offsetX, offsetY + y, gutterCell);
|
|
293
285
|
}
|
|
294
286
|
}
|
|
295
287
|
return target;
|
|
296
288
|
}
|
|
289
|
+
function paintCellPreservingBackground(target, x, y, cell) {
|
|
290
|
+
const existing = target.get(x, y);
|
|
291
|
+
const hasExplicitBackground = cell.bg != null || cell.bgRGB != null;
|
|
292
|
+
target.set(x, y, {
|
|
293
|
+
char: cell.char,
|
|
294
|
+
fg: cell.fg,
|
|
295
|
+
bg: hasExplicitBackground ? cell.bg : existing.bg,
|
|
296
|
+
fgRGB: cell.fgRGB,
|
|
297
|
+
bgRGB: hasExplicitBackground ? cell.bgRGB : existing.bgRGB,
|
|
298
|
+
modifiers: cell.modifiers,
|
|
299
|
+
opacity: hasExplicitBackground ? cell.opacity : (cell.opacity ?? existing.opacity),
|
|
300
|
+
empty: false,
|
|
301
|
+
});
|
|
302
|
+
}
|
|
297
303
|
/**
|
|
298
304
|
* Resolve the styled gutter string based on focus state and context.
|
|
299
305
|
*/
|
|
@@ -328,14 +334,41 @@ function resolveGutterCell(focused, ctx, options) {
|
|
|
328
334
|
gutterCellCache.set(key, parsed);
|
|
329
335
|
return parsed;
|
|
330
336
|
}
|
|
331
|
-
function
|
|
337
|
+
function resolveScrollbarCells(ctx, options) {
|
|
338
|
+
return {
|
|
339
|
+
track: resolveScrollbarCell('track', ctx, options),
|
|
340
|
+
thumb: resolveScrollbarCell('thumb', ctx, options),
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
function resolveScrollbarCell(kind, ctx, options) {
|
|
344
|
+
if (!ctx) {
|
|
345
|
+
return kind === 'thumb' ? SCROLLBAR_THUMB_CELL : SCROLLBAR_TRACK_CELL;
|
|
346
|
+
}
|
|
347
|
+
const baseToken = kind === 'thumb'
|
|
348
|
+
? (options?.scrollbarThumbToken ?? ctx.semantic('accent'))
|
|
349
|
+
: (options?.scrollbarTrackToken ?? ctx.semantic('muted'));
|
|
350
|
+
const baseChar = kind === 'thumb' ? SCROLLBAR_THUMB_CELL.char : SCROLLBAR_TRACK_CELL.char;
|
|
351
|
+
const key = `${kind}:${baseChar}:${JSON.stringify(baseToken)}:${options?.id ?? ''}:${(options?.classes ?? []).join(',')}`;
|
|
352
|
+
const cached = scrollbarCellCache.get(key);
|
|
353
|
+
if (cached != null)
|
|
354
|
+
return cached;
|
|
355
|
+
const token = resolveBCSSTextToken(ctx, {
|
|
356
|
+
type: kind === 'thumb' ? 'FocusAreaScrollbarThumb' : 'FocusAreaScrollbarTrack',
|
|
357
|
+
id: options?.id,
|
|
358
|
+
classes: [...(options?.classes ?? []), 'scrollbar', `scrollbar-${kind}`],
|
|
359
|
+
}, {
|
|
360
|
+
hex: baseToken.hex,
|
|
361
|
+
bg: baseToken.bg,
|
|
362
|
+
modifiers: baseToken.modifiers,
|
|
363
|
+
});
|
|
364
|
+
const parsed = parseAnsiToSurface(ctx.style.styled(token, baseChar), 1, 1).get(0, 0);
|
|
365
|
+
scrollbarCellCache.set(key, parsed);
|
|
366
|
+
return parsed;
|
|
367
|
+
}
|
|
368
|
+
function paintScrollbarInto(target, column, row, viewportHeight, totalLines, scrollY, trackCell, thumbCell) {
|
|
332
369
|
if (totalLines <= viewportHeight) {
|
|
333
|
-
const p = 'buffer' in target;
|
|
334
370
|
for (let y = 0; y < viewportHeight; y++) {
|
|
335
|
-
|
|
336
|
-
target.setRGB(column, row + y, 0x20, -1, 0, 0, -1, 0, 0);
|
|
337
|
-
else
|
|
338
|
-
target.set(column, row + y, EMPTY_CELL);
|
|
371
|
+
paintCellPreservingBackground(target, column, row + y, EMPTY_CELL);
|
|
339
372
|
}
|
|
340
373
|
return;
|
|
341
374
|
}
|
|
@@ -343,22 +376,18 @@ function paintScrollbarInto(target, column, row, viewportHeight, totalLines, scr
|
|
|
343
376
|
const maxScroll = totalLines - viewportHeight;
|
|
344
377
|
const scrollFraction = maxScroll > 0 ? scrollY / maxScroll : 0;
|
|
345
378
|
const thumbStart = Math.round(scrollFraction * (viewportHeight - thumbSize));
|
|
346
|
-
const sp = 'buffer' in target;
|
|
347
379
|
for (let index = 0; index < viewportHeight; index++) {
|
|
348
380
|
const isThumb = index >= thumbStart && index < thumbStart + thumbSize;
|
|
349
|
-
|
|
350
|
-
target.setRGB(column, row + index, isThumb ? 0x2588 : 0x2502, -1, 0, 0, -1, 0, 0);
|
|
351
|
-
}
|
|
352
|
-
else {
|
|
353
|
-
target.set(column, row + index, isThumb ? SCROLLBAR_THUMB_CELL : SCROLLBAR_TRACK_CELL);
|
|
354
|
-
}
|
|
381
|
+
paintCellPreservingBackground(target, column, row + index, isThumb ? thumbCell : trackCell);
|
|
355
382
|
}
|
|
356
383
|
}
|
|
357
|
-
function resolveFocusAreaViewportWidth(totalLines, width, height, overflowX) {
|
|
384
|
+
function resolveFocusAreaViewportWidth(totalLines, width, height, overflowX, scrollbarMode) {
|
|
358
385
|
const gutterWidth = width > 1 ? 1 : 0;
|
|
359
386
|
const contentWidth = Math.max(1, width - gutterWidth);
|
|
360
387
|
const hasScrollbar = totalLines > height && contentWidth > 1;
|
|
361
|
-
const scrollableWidth = hasScrollbar
|
|
388
|
+
const scrollableWidth = hasScrollbar && scrollbarMode === 'gutter'
|
|
389
|
+
? Math.max(1, contentWidth - 1)
|
|
390
|
+
: contentWidth;
|
|
362
391
|
return overflowX === 'scroll' ? scrollableWidth : undefined;
|
|
363
392
|
}
|
|
364
393
|
// ---------------------------------------------------------------------------
|
package/dist/focus-area.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-area.js","sourceRoot":"","sources":["../src/focus-area.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"focus-area.js","sourceRoot":"","sources":["../src/focus-area.ts"],"names":[],"mappings":"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"}
|
package/dist/grid.d.ts
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* Supports fixed and fractional (`fr`) tracks, named areas, and a pure layout
|
|
5
5
|
* solver returning per-area rectangles.
|
|
6
6
|
*/
|
|
7
|
-
import { type Surface } from '@flyingrobots/bijou';
|
|
7
|
+
import { type GridTrack as SharedGridTrack, type Surface } from '@flyingrobots/bijou';
|
|
8
8
|
import type { LayoutRect } from './layout-rect.js';
|
|
9
9
|
/** Grid track definition. */
|
|
10
|
-
export type GridTrack =
|
|
10
|
+
export type GridTrack = SharedGridTrack;
|
|
11
11
|
/** Grid render options. */
|
|
12
12
|
export interface GridOptions {
|
|
13
13
|
/** Total grid width in columns. */
|
package/dist/grid.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../src/grid.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../src/grid.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAGL,KAAK,SAAS,IAAI,eAAe,EACjC,KAAK,OAAO,EACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,6BAA6B;AAC7B,MAAM,MAAM,SAAS,GAAG,eAAe,CAAC;AAExC,2BAA2B;AAC3B,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qBAAqB;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IACvC,kBAAkB;IAClB,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAC;IACpC,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,sDAAsD;IACtD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC;CACrF;AAED,8DAA8D;AAC9D,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;IACpE,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;CACtF;AAED,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChD,uBAAuB;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAaD;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAa/F;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CA6BjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAuBhE"}
|
package/dist/grid.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Supports fixed and fractional (`fr`) tracks, named areas, and a pure layout
|
|
5
5
|
* solver returning per-area rectangles.
|
|
6
6
|
*/
|
|
7
|
-
import { createSurface } from '@flyingrobots/bijou';
|
|
7
|
+
import { createSurface, solveGridRects, } from '@flyingrobots/bijou';
|
|
8
8
|
import { composite } from './overlay.js';
|
|
9
9
|
import { fitBlock } from './layout-utils.js';
|
|
10
10
|
import { placeSurface } from './surface-layout.js';
|
|
@@ -22,64 +22,16 @@ function sanitiseDimension(value) {
|
|
|
22
22
|
* Compute area rectangles from grid constraints and area template.
|
|
23
23
|
*/
|
|
24
24
|
export function gridLayout(options) {
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const tokens = row.trim().length === 0 ? [] : row.trim().split(/\s+/);
|
|
36
|
-
if (tokens.length !== options.columns.length) {
|
|
37
|
-
throw new Error(`gridLayout: area row ${r} has ${tokens.length} columns, expected ${options.columns.length}`);
|
|
38
|
-
}
|
|
39
|
-
return tokens;
|
|
40
|
-
});
|
|
41
|
-
const colSizes = solveTracks(width, options.columns, gap);
|
|
42
|
-
const rowSizes = solveTracks(height, options.rows, gap);
|
|
43
|
-
const colStarts = trackStarts(colSizes, gap);
|
|
44
|
-
const rowStarts = trackStarts(rowSizes, gap);
|
|
45
|
-
const areaCells = new Map();
|
|
46
|
-
for (let r = 0; r < matrix.length; r++) {
|
|
47
|
-
for (let c = 0; c < matrix[r].length; c++) {
|
|
48
|
-
const area = matrix[r][c];
|
|
49
|
-
if (area === '.')
|
|
50
|
-
continue;
|
|
51
|
-
const list = areaCells.get(area) ?? [];
|
|
52
|
-
list.push({ r, c });
|
|
53
|
-
areaCells.set(area, list);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
const rects = new Map();
|
|
57
|
-
for (const [name, cells] of areaCells) {
|
|
58
|
-
const rows = cells.map((x) => x.r);
|
|
59
|
-
const cols = cells.map((x) => x.c);
|
|
60
|
-
const minR = Math.min(...rows);
|
|
61
|
-
const maxR = Math.max(...rows);
|
|
62
|
-
const minC = Math.min(...cols);
|
|
63
|
-
const maxC = Math.max(...cols);
|
|
64
|
-
for (let r = minR; r <= maxR; r++) {
|
|
65
|
-
for (let c = minC; c <= maxC; c++) {
|
|
66
|
-
if (matrix[r][c] !== name) {
|
|
67
|
-
throw new Error(`gridLayout: area "${name}" must form a contiguous rectangle; gap at row ${r}, column ${c}`);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
const colSpan = maxC - minC + 1;
|
|
72
|
-
const rowSpan = maxR - minR + 1;
|
|
73
|
-
const rectWidth = Math.min(width, sum(colSizes.slice(minC, maxC + 1)) + gap * Math.max(0, colSpan - 1));
|
|
74
|
-
const rectHeight = Math.min(height, sum(rowSizes.slice(minR, maxR + 1)) + gap * Math.max(0, rowSpan - 1));
|
|
75
|
-
rects.set(name, {
|
|
76
|
-
row: rowStarts[minR] ?? 0,
|
|
77
|
-
col: colStarts[minC] ?? 0,
|
|
78
|
-
width: rectWidth,
|
|
79
|
-
height: rectHeight,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
return rects;
|
|
25
|
+
const rects = solveGridRects(options);
|
|
26
|
+
return new Map([...rects.entries()].map(([name, rect]) => [
|
|
27
|
+
name,
|
|
28
|
+
{
|
|
29
|
+
row: rect.y,
|
|
30
|
+
col: rect.x,
|
|
31
|
+
width: rect.width,
|
|
32
|
+
height: rect.height,
|
|
33
|
+
},
|
|
34
|
+
]));
|
|
83
35
|
}
|
|
84
36
|
/**
|
|
85
37
|
* Render a named-area grid.
|
|
@@ -133,93 +85,4 @@ export function gridSurface(options) {
|
|
|
133
85
|
}
|
|
134
86
|
return result;
|
|
135
87
|
}
|
|
136
|
-
/** Distribute space among fixed-pixel and fractional tracks, respecting gaps. */
|
|
137
|
-
function solveTracks(total, tracks, gap) {
|
|
138
|
-
const available = Math.max(0, total - gap * Math.max(0, tracks.length - 1));
|
|
139
|
-
const sizes = new Array(tracks.length).fill(0);
|
|
140
|
-
let fixed = 0;
|
|
141
|
-
let frTotal = 0;
|
|
142
|
-
for (let i = 0; i < tracks.length; i++) {
|
|
143
|
-
const t = tracks[i];
|
|
144
|
-
if (typeof t === 'number') {
|
|
145
|
-
const sz = Math.max(0, Math.floor(t));
|
|
146
|
-
sizes[i] = sz;
|
|
147
|
-
fixed += sz;
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
const fr = parseFr(t);
|
|
151
|
-
frTotal += fr;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
// If fixed tracks over-allocate the container, clamp them in declaration order
|
|
155
|
-
// and leave all fractional tracks at 0. This keeps total size deterministic and bounded.
|
|
156
|
-
if (fixed > available) {
|
|
157
|
-
let remainingBudget = available;
|
|
158
|
-
for (let i = 0; i < tracks.length; i++) {
|
|
159
|
-
if (typeof tracks[i] !== 'number')
|
|
160
|
-
continue;
|
|
161
|
-
const next = Math.min(sizes[i] ?? 0, remainingBudget);
|
|
162
|
-
sizes[i] = next;
|
|
163
|
-
remainingBudget -= next;
|
|
164
|
-
if (remainingBudget <= 0)
|
|
165
|
-
remainingBudget = 0;
|
|
166
|
-
}
|
|
167
|
-
return sizes.map((x) => Math.max(0, x));
|
|
168
|
-
}
|
|
169
|
-
const remaining = Math.max(0, available - fixed);
|
|
170
|
-
if (frTotal > 0) {
|
|
171
|
-
let assigned = 0;
|
|
172
|
-
const frAllocations = [];
|
|
173
|
-
for (let i = 0; i < tracks.length; i++) {
|
|
174
|
-
const t = tracks[i];
|
|
175
|
-
if (typeof t !== 'number') {
|
|
176
|
-
const fr = parseFr(t);
|
|
177
|
-
const rawShare = (remaining * fr) / frTotal;
|
|
178
|
-
const sz = Math.floor(rawShare);
|
|
179
|
-
sizes[i] = sz;
|
|
180
|
-
assigned += sz;
|
|
181
|
-
frAllocations.push({ index: i, remainder: rawShare - sz });
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
let leftover = remaining - assigned;
|
|
185
|
-
// Prefer largest fractional remainders first to reduce declaration-order bias.
|
|
186
|
-
frAllocations.sort((a, b) => {
|
|
187
|
-
if (b.remainder !== a.remainder)
|
|
188
|
-
return b.remainder - a.remainder;
|
|
189
|
-
return a.index - b.index;
|
|
190
|
-
});
|
|
191
|
-
for (let i = 0; i < frAllocations.length && leftover > 0; i++) {
|
|
192
|
-
const idx = frAllocations[i].index;
|
|
193
|
-
sizes[idx] = (sizes[idx] ?? 0) + 1;
|
|
194
|
-
leftover -= 1;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
return sizes.map((x) => Math.max(0, x));
|
|
198
|
-
}
|
|
199
|
-
/** Parse a CSS-grid-style `fr` unit string into a positive integer. */
|
|
200
|
-
function parseFr(track) {
|
|
201
|
-
const raw = track.slice(0, -2);
|
|
202
|
-
const n = Number(raw);
|
|
203
|
-
if (!Number.isFinite(n) || !Number.isInteger(n) || n <= 0) {
|
|
204
|
-
throw new Error(`gridLayout: invalid fr track "${track}"`);
|
|
205
|
-
}
|
|
206
|
-
return n;
|
|
207
|
-
}
|
|
208
|
-
/** Compute cumulative start positions from solved track sizes and gap. */
|
|
209
|
-
function trackStarts(sizes, gap) {
|
|
210
|
-
const starts = [];
|
|
211
|
-
let cursor = 0;
|
|
212
|
-
for (let i = 0; i < sizes.length; i++) {
|
|
213
|
-
starts.push(cursor);
|
|
214
|
-
cursor += sizes[i] + (i < sizes.length - 1 ? gap : 0);
|
|
215
|
-
}
|
|
216
|
-
return starts;
|
|
217
|
-
}
|
|
218
|
-
/** Sum an array of numbers. */
|
|
219
|
-
function sum(values) {
|
|
220
|
-
let acc = 0;
|
|
221
|
-
for (const n of values)
|
|
222
|
-
acc += n;
|
|
223
|
-
return acc;
|
|
224
|
-
}
|
|
225
88
|
//# sourceMappingURL=grid.js.map
|
package/dist/grid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.js","sourceRoot":"","sources":["../src/grid.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"grid.js","sourceRoot":"","sources":["../src/grid.ts"],"names":[],"mappings":"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"}
|
package/dist/help.d.ts
CHANGED
|
@@ -31,6 +31,8 @@ export interface HelpOptions {
|
|
|
31
31
|
separator?: string;
|
|
32
32
|
/** Title shown at the top (default: none). */
|
|
33
33
|
title?: string;
|
|
34
|
+
/** Label used when a binding does not declare a group (default: `General`). */
|
|
35
|
+
defaultGroupName?: string;
|
|
34
36
|
}
|
|
35
37
|
/** Options for rendering help into a `Surface`. */
|
|
36
38
|
export interface HelpSurfaceOptions extends HelpOptions {
|
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,
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAA0D,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,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;IACf,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,mDAAmD;AACnD,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAqD7E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAE5F;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;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC,GAC1E,OAAO,CAET;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAEjG;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAET"}
|
package/dist/help.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* helpFor(kb, 'Nav') // filter by group prefix
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
|
-
import { createSurface, parseAnsiToSurface } from '@flyingrobots/bijou';
|
|
17
|
+
import { createSurface, parseAnsiToSurface, sanitizePositiveInt } from '@flyingrobots/bijou';
|
|
18
18
|
import { formatKeyCombo } from './keybindings.js';
|
|
19
19
|
import { visibleLength } from './viewport.js';
|
|
20
20
|
// ---------------------------------------------------------------------------
|
|
@@ -41,6 +41,7 @@ export function helpView(keymap, options) {
|
|
|
41
41
|
const enabledOnly = options?.enabledOnly ?? true;
|
|
42
42
|
const sep = options?.separator ?? ' ';
|
|
43
43
|
const groupFilter = options?.groupFilter;
|
|
44
|
+
const defaultGroupName = options?.defaultGroupName ?? 'General';
|
|
44
45
|
let all = keymap.bindings();
|
|
45
46
|
if (enabledOnly)
|
|
46
47
|
all = all.filter((b) => b.enabled);
|
|
@@ -52,7 +53,7 @@ export function helpView(keymap, options) {
|
|
|
52
53
|
// Group by group name
|
|
53
54
|
const groups = new Map();
|
|
54
55
|
for (const b of all) {
|
|
55
|
-
const group = b.group ||
|
|
56
|
+
const group = b.group || defaultGroupName;
|
|
56
57
|
let list = groups.get(group);
|
|
57
58
|
if (!list) {
|
|
58
59
|
list = [];
|
|
@@ -157,8 +158,9 @@ export function helpForSurface(keymap, groupPrefix, options) {
|
|
|
157
158
|
}
|
|
158
159
|
function renderHelpSurface(text, options) {
|
|
159
160
|
const lines = text.length === 0 ? [''] : text.split('\n');
|
|
160
|
-
const
|
|
161
|
-
const
|
|
161
|
+
const contentWidth = Math.max(1, ...lines.map((line) => visibleLength(line)));
|
|
162
|
+
const width = Math.max(contentWidth, sanitizePositiveInt(options?.width, 1));
|
|
163
|
+
const height = sanitizePositiveInt(options?.height, lines.length);
|
|
162
164
|
if (text.length === 0) {
|
|
163
165
|
return createSurface(width, height);
|
|
164
166
|
}
|
package/dist/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAgB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Unicode text presentation selector (VS15). */
|
|
2
|
+
export declare const TEXT_PRESENTATION_SELECTOR = "\uFE0E";
|
|
3
|
+
/**
|
|
4
|
+
* Force text presentation for an icon glyph.
|
|
5
|
+
*
|
|
6
|
+
* Bijou TUI uses this for first-party status symbols so terminals that prefer
|
|
7
|
+
* emoji presentation do not widen otherwise text-sized glyphs.
|
|
8
|
+
*/
|
|
9
|
+
export declare function forceTextPresentation(icon: string): string;
|
|
10
|
+
//# sourceMappingURL=icon-presentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-presentation.d.ts","sourceRoot":"","sources":["../src/icon-presentation.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,WAAW,CAAC;AAEnD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Unicode text presentation selector (VS15). */
|
|
2
|
+
export const TEXT_PRESENTATION_SELECTOR = '\uFE0E';
|
|
3
|
+
/**
|
|
4
|
+
* Force text presentation for an icon glyph.
|
|
5
|
+
*
|
|
6
|
+
* Bijou TUI uses this for first-party status symbols so terminals that prefer
|
|
7
|
+
* emoji presentation do not widen otherwise text-sized glyphs.
|
|
8
|
+
*/
|
|
9
|
+
export function forceTextPresentation(icon) {
|
|
10
|
+
return `${icon}${TEXT_PRESENTATION_SELECTOR}`;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=icon-presentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-presentation.js","sourceRoot":"","sources":["../src/icon-presentation.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO,GAAG,IAAI,GAAG,0BAA0B,EAAE,CAAC;AAChD,CAAC"}
|