@flyingrobots/bijou-tui 4.0.0 → 4.1.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 +24 -7
- package/dist/app-frame-actions.d.ts +5 -5
- package/dist/app-frame-actions.d.ts.map +1 -1
- package/dist/app-frame-actions.js +71 -5
- package/dist/app-frame-actions.js.map +1 -1
- package/dist/app-frame-i18n.d.ts +12 -0
- package/dist/app-frame-i18n.d.ts.map +1 -0
- package/dist/app-frame-i18n.js +92 -0
- package/dist/app-frame-i18n.js.map +1 -0
- package/dist/app-frame-layers.d.ts +29 -0
- package/dist/app-frame-layers.d.ts.map +1 -0
- package/dist/app-frame-layers.js +104 -0
- package/dist/app-frame-layers.js.map +1 -0
- package/dist/app-frame-palette.d.ts +6 -2
- package/dist/app-frame-palette.d.ts.map +1 -1
- package/dist/app-frame-palette.js +42 -10
- package/dist/app-frame-palette.js.map +1 -1
- package/dist/app-frame-render.d.ts +13 -5
- package/dist/app-frame-render.d.ts.map +1 -1
- package/dist/app-frame-render.js +216 -70
- package/dist/app-frame-render.js.map +1 -1
- package/dist/app-frame-types.d.ts +40 -20
- package/dist/app-frame-types.d.ts.map +1 -1
- package/dist/app-frame-types.js +8 -6
- package/dist/app-frame-types.js.map +1 -1
- package/dist/app-frame-utils.d.ts +8 -3
- package/dist/app-frame-utils.d.ts.map +1 -1
- package/dist/app-frame-utils.js +42 -27
- package/dist/app-frame-utils.js.map +1 -1
- package/dist/app-frame.d.ts +125 -11
- package/dist/app-frame.d.ts.map +1 -1
- package/dist/app-frame.js +1184 -91
- package/dist/app-frame.js.map +1 -1
- package/dist/browsable-list.d.ts.map +1 -1
- package/dist/browsable-list.js +15 -5
- package/dist/browsable-list.js.map +1 -1
- package/dist/collection-surface.d.ts +8 -0
- package/dist/collection-surface.d.ts.map +1 -0
- package/dist/collection-surface.js +41 -0
- package/dist/collection-surface.js.map +1 -0
- package/dist/command-palette.d.ts.map +1 -1
- package/dist/command-palette.js +8 -3
- package/dist/command-palette.js.map +1 -1
- package/dist/commands.js +1 -1
- package/dist/commands.js.map +1 -1
- package/dist/eventbus.d.ts.map +1 -1
- package/dist/eventbus.js +21 -1
- package/dist/eventbus.js.map +1 -1
- package/dist/focus-area.d.ts +7 -0
- package/dist/focus-area.d.ts.map +1 -1
- package/dist/focus-area.js +33 -15
- package/dist/focus-area.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/inspector-drawer.d.ts +36 -0
- package/dist/inspector-drawer.d.ts.map +1 -0
- package/dist/inspector-drawer.js +68 -0
- package/dist/inspector-drawer.js.map +1 -0
- package/dist/layout-node-surface.d.ts +8 -0
- package/dist/layout-node-surface.d.ts.map +1 -1
- package/dist/layout-node-surface.js +26 -7
- package/dist/layout-node-surface.js.map +1 -1
- package/dist/notification.d.ts +10 -1
- package/dist/notification.d.ts.map +1 -1
- package/dist/notification.js +142 -17
- package/dist/notification.js.map +1 -1
- package/dist/overlay.d.ts +8 -0
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +23 -10
- package/dist/overlay.js.map +1 -1
- package/dist/runtime-engine.d.ts +223 -0
- package/dist/runtime-engine.d.ts.map +1 -0
- package/dist/runtime-engine.js +457 -0
- package/dist/runtime-engine.js.map +1 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +27 -7
- package/dist/runtime.js.map +1 -1
- package/dist/shell-quit.d.ts +12 -0
- package/dist/shell-quit.d.ts.map +1 -0
- package/dist/shell-quit.js +36 -0
- package/dist/shell-quit.js.map +1 -0
- package/dist/subapp/mount.d.ts.map +1 -1
- package/dist/subapp/mount.js +3 -0
- package/dist/subapp/mount.js.map +1 -1
- package/dist/types.d.ts +19 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -1
- package/dist/view-output.d.ts +1 -0
- package/dist/view-output.d.ts.map +1 -1
- package/dist/view-output.js +25 -15
- package/dist/view-output.js.map +1 -1
- package/package.json +5 -2
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { comboToMsg, emitMsg, emitMsgForPage } from './app-frame-types.js';
|
|
7
7
|
import { applyFrameAction } from './app-frame-actions.js';
|
|
8
8
|
import { formatKeyCombo } from './keybindings.js';
|
|
9
|
+
import { frameMessage } from './app-frame-i18n.js';
|
|
9
10
|
import { createCommandPaletteState, cpFilter, cpFocusNext, cpFocusPrev, cpPageDown, cpPageUp, cpSelectedItem, } from './command-palette.js';
|
|
10
11
|
/** Route a key press through the command palette, returning updated model and commands. */
|
|
11
12
|
export function handlePaletteKey(msg, model, paletteKeys, options, pagesById) {
|
|
@@ -22,15 +23,21 @@ export function handlePaletteKey(msg, model, paletteKeys, options, pagesById) {
|
|
|
22
23
|
case 'cp-page-up':
|
|
23
24
|
return [{ ...model, commandPalette: cpPageUp(cp) }, []];
|
|
24
25
|
case 'cp-close':
|
|
25
|
-
return [{ ...model, commandPalette: undefined, commandPaletteEntries: undefined }, []];
|
|
26
|
+
return [{ ...model, commandPalette: undefined, commandPaletteEntries: undefined, commandPaletteTitle: undefined, commandPaletteKind: undefined }, []];
|
|
26
27
|
case 'cp-select': {
|
|
27
28
|
const selected = cpSelectedItem(cp);
|
|
28
29
|
if (selected == null) {
|
|
29
|
-
return [{ ...model, commandPalette: undefined, commandPaletteEntries: undefined }, []];
|
|
30
|
+
return [{ ...model, commandPalette: undefined, commandPaletteEntries: undefined, commandPaletteTitle: undefined, commandPaletteKind: undefined }, []];
|
|
30
31
|
}
|
|
31
32
|
const entry = model.commandPaletteEntries?.find((x) => x.id === selected.id);
|
|
32
33
|
if (entry?.frameAction != null) {
|
|
33
|
-
const closed = {
|
|
34
|
+
const closed = {
|
|
35
|
+
...model,
|
|
36
|
+
commandPalette: undefined,
|
|
37
|
+
commandPaletteEntries: undefined,
|
|
38
|
+
commandPaletteTitle: undefined,
|
|
39
|
+
commandPaletteKind: undefined,
|
|
40
|
+
};
|
|
34
41
|
return applyFrameAction(entry.frameAction, closed, options, pagesById);
|
|
35
42
|
}
|
|
36
43
|
if (entry?.msgAction !== undefined) {
|
|
@@ -41,9 +48,11 @@ export function handlePaletteKey(msg, model, paletteKeys, options, pagesById) {
|
|
|
41
48
|
...model,
|
|
42
49
|
commandPalette: undefined,
|
|
43
50
|
commandPaletteEntries: undefined,
|
|
51
|
+
commandPaletteTitle: undefined,
|
|
52
|
+
commandPaletteKind: undefined,
|
|
44
53
|
}, [cmd]];
|
|
45
54
|
}
|
|
46
|
-
return [{ ...model, commandPalette: undefined, commandPaletteEntries: undefined }, []];
|
|
55
|
+
return [{ ...model, commandPalette: undefined, commandPaletteEntries: undefined, commandPaletteTitle: undefined, commandPaletteKind: undefined }, []];
|
|
47
56
|
}
|
|
48
57
|
}
|
|
49
58
|
}
|
|
@@ -51,12 +60,6 @@ export function handlePaletteKey(msg, model, paletteKeys, options, pagesById) {
|
|
|
51
60
|
const next = cpFilter(cp, cp.query.slice(0, -1));
|
|
52
61
|
return [{ ...model, commandPalette: next }, []];
|
|
53
62
|
}
|
|
54
|
-
if (msg.ctrl && msg.key === 'c') {
|
|
55
|
-
return [{ ...model, commandPalette: undefined, commandPaletteEntries: undefined }, []];
|
|
56
|
-
}
|
|
57
|
-
if (!msg.ctrl && !msg.alt && !msg.shift && msg.key === 'q' && cp.query.length === 0) {
|
|
58
|
-
return [{ ...model, commandPalette: undefined, commandPaletteEntries: undefined }, []];
|
|
59
|
-
}
|
|
60
63
|
if (!msg.ctrl && !msg.alt && msg.key.length === 1) {
|
|
61
64
|
const next = cpFilter(cp, cp.query + msg.key);
|
|
62
65
|
return [{ ...model, commandPalette: next }, []];
|
|
@@ -66,11 +69,23 @@ export function handlePaletteKey(msg, model, paletteKeys, options, pagesById) {
|
|
|
66
69
|
/** Initialize the command palette with entries from frame, global, page key maps, and custom page command items. */
|
|
67
70
|
export function openCommandPalette(model, frameKeys, options, pagesById) {
|
|
68
71
|
const entries = buildPaletteEntries(model, frameKeys, options, pagesById);
|
|
72
|
+
return openPaletteModel(model, entries, frameMessage(options.i18n, 'palette.title', 'Command Palette'), 'command');
|
|
73
|
+
}
|
|
74
|
+
/** Initialize a page-scoped search palette, falling back to page command items when needed. */
|
|
75
|
+
export function openSearchPalette(model, frameKeys, options, pagesById) {
|
|
76
|
+
const page = pagesById.get(model.activePageId);
|
|
77
|
+
const entries = buildSearchEntries(model, frameKeys, options, pagesById);
|
|
78
|
+
const title = page.searchTitle ?? frameMessage(options.i18n, 'search.title', 'Search');
|
|
79
|
+
return openPaletteModel(model, entries, title, 'search');
|
|
80
|
+
}
|
|
81
|
+
function openPaletteModel(model, entries, title, kind) {
|
|
69
82
|
const items = entries.map((x) => x.item);
|
|
70
83
|
return {
|
|
71
84
|
...model,
|
|
72
85
|
commandPalette: createCommandPaletteState(items, Math.max(5, Math.min(10, model.rows - 8))),
|
|
73
86
|
commandPaletteEntries: entries,
|
|
87
|
+
commandPaletteTitle: title,
|
|
88
|
+
commandPaletteKind: kind,
|
|
74
89
|
};
|
|
75
90
|
}
|
|
76
91
|
/** Collect all available commands from frame, global, page, and custom sources. */
|
|
@@ -155,4 +170,21 @@ export function buildPaletteEntries(model, frameKeys, options, pagesById) {
|
|
|
155
170
|
}
|
|
156
171
|
return entries;
|
|
157
172
|
}
|
|
173
|
+
/** Collect page-scoped search items, falling back to page command items when search items are absent. */
|
|
174
|
+
export function buildSearchEntries(model, _frameKeys, _options, pagesById) {
|
|
175
|
+
const page = pagesById.get(model.activePageId);
|
|
176
|
+
const items = page.searchItems?.(model.pageModels[model.activePageId])
|
|
177
|
+
?? page.commandItems?.(model.pageModels[model.activePageId])
|
|
178
|
+
?? [];
|
|
179
|
+
return items.map((item, index) => ({
|
|
180
|
+
id: `search:${index}`,
|
|
181
|
+
item: {
|
|
182
|
+
...item,
|
|
183
|
+
id: `search:${index}`,
|
|
184
|
+
category: item.category ?? page.title,
|
|
185
|
+
},
|
|
186
|
+
msgAction: item.action,
|
|
187
|
+
targetPageId: model.activePageId,
|
|
188
|
+
}));
|
|
189
|
+
}
|
|
158
190
|
//# sourceMappingURL=app-frame-palette.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-frame-palette.js","sourceRoot":"","sources":["../src/app-frame-palette.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"app-frame-palette.js","sourceRoot":"","sources":["../src/app-frame-palette.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { type BijouContext, type Surface } from '@flyingrobots/bijou';
|
|
8
8
|
import type { FrameLayoutNode, FramePage, CreateFramedAppOptions } from './app-frame.js';
|
|
9
|
-
import type { InternalFrameModel, RenderContext, RenderResult
|
|
9
|
+
import type { InternalFrameModel, RenderContext, RenderResult } from './app-frame-types.js';
|
|
10
10
|
import type { LayoutRect } from './layout-rect.js';
|
|
11
11
|
import type { PageTransition } from './app-frame.js';
|
|
12
|
-
import type { KeyMap } from './keybindings.js';
|
|
13
12
|
import { type ViewOutput } from './view-output.js';
|
|
13
|
+
import type { FrameLayerDescriptor } from './app-frame-layers.js';
|
|
14
14
|
export interface FrameHeaderTabTarget {
|
|
15
15
|
readonly pageId: string;
|
|
16
16
|
readonly startCol: number;
|
|
@@ -20,18 +20,26 @@ export interface FrameHeaderRenderResult {
|
|
|
20
20
|
readonly surface: Surface;
|
|
21
21
|
readonly tabTargets: readonly FrameHeaderTabTarget[];
|
|
22
22
|
}
|
|
23
|
+
export interface FramePaneGeometryResult {
|
|
24
|
+
readonly paneRects: ReadonlyMap<string, LayoutRect>;
|
|
25
|
+
readonly paneOrder: readonly string[];
|
|
26
|
+
}
|
|
23
27
|
/** Recursively render a layout tree node (pane, split, or grid) into a rect. */
|
|
24
28
|
export declare function renderFrameNode<PageModel, Msg>(node: FrameLayoutNode, rect: LayoutRect, ctx: RenderContext<PageModel, Msg>): RenderResult;
|
|
25
29
|
/** Render a placeholder for a grid area that has no matching cell definition. */
|
|
26
30
|
export declare function renderMissingGridCell(areaName: string, rect: LayoutRect): RenderResult;
|
|
27
31
|
/** Render a page's layout tree within the frame body rect. */
|
|
28
32
|
export declare function renderPageContent<PageModel, Msg>(pageId: string, model: InternalFrameModel<PageModel, Msg>, bodyRect: LayoutRect, pagesById: Map<string, FramePage<PageModel, Msg>>): RenderResult;
|
|
33
|
+
/** Paint a page's layout tree directly into an existing target surface. */
|
|
34
|
+
export declare function renderPageContentInto<PageModel, Msg>(pageId: string, model: InternalFrameModel<PageModel, Msg>, bodyRect: LayoutRect, pagesById: Map<string, FramePage<PageModel, Msg>>, target: Surface, offsetRow?: number, offsetCol?: number): FramePaneGeometryResult;
|
|
29
35
|
/** Render only the maximized pane at the full body rect. */
|
|
30
36
|
export declare function renderMaximizedPane<PageModel, Msg>(pageId: string, model: InternalFrameModel<PageModel, Msg>, bodyRect: LayoutRect, pagesById: Map<string, FramePage<PageModel, Msg>>, maximizedPaneId: string): RenderResult;
|
|
37
|
+
/** Paint only the maximized pane directly into an existing target surface. */
|
|
38
|
+
export declare function renderMaximizedPaneInto<PageModel, Msg>(pageId: string, model: InternalFrameModel<PageModel, Msg>, bodyRect: LayoutRect, pagesById: Map<string, FramePage<PageModel, Msg>>, maximizedPaneId: string, target: Surface, offsetRow?: number, offsetCol?: number): FramePaneGeometryResult;
|
|
31
39
|
/** Resolve the top header line plus clickable tab target geometry. */
|
|
32
40
|
export declare function resolveHeaderLine<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>, options: CreateFramedAppOptions<PageModel, Msg>, pagesById: Map<string, FramePage<PageModel, Msg>>): FrameHeaderRenderResult;
|
|
33
|
-
/** Render the
|
|
34
|
-
export declare function renderHelpLine<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>,
|
|
41
|
+
/** Render the footer status line showing mode, focused pane, and key hints. */
|
|
42
|
+
export declare function renderHelpLine<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>, activeLayer: FrameLayerDescriptor, i18n: CreateFramedAppOptions<PageModel, Msg>['i18n'], notificationCue?: string): Surface;
|
|
35
43
|
/**
|
|
36
44
|
/**
|
|
37
45
|
* Apply a transition shader to blend between the previous and next page views.
|
|
@@ -40,6 +48,6 @@ export declare function renderHelpLine<PageModel, Msg>(model: InternalFrameModel
|
|
|
40
48
|
* (glitch flickering, static noise). Defaults to 0 for stateless shaders.
|
|
41
49
|
*/
|
|
42
50
|
export declare function renderTransition(prev: Surface, next: Surface, style: PageTransition, progress: number, width: number, height: number, ctx: BijouContext, frame?: number): Surface;
|
|
43
|
-
export declare function framePaneOutputToSurface(output: ViewOutput, width: number, height: number): Surface;
|
|
51
|
+
export declare function framePaneOutputToSurface(output: ViewOutput, width: number, height: number, scratch?: Surface): Surface;
|
|
44
52
|
export declare function blockSurface(content: string, width: number, height: number): Surface;
|
|
45
53
|
//# sourceMappingURL=app-frame-render.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-frame-render.d.ts","sourceRoot":"","sources":["../src/app-frame-render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"app-frame-render.d.ts","sourceRoot":"","sources":["../src/app-frame-render.ts"],"names":[],"mappings":"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"}
|