@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
package/dist/app-frame-render.js
CHANGED
|
@@ -4,52 +4,158 @@
|
|
|
4
4
|
* Recursive tree renderer, page content, maximized pane, header/help lines,
|
|
5
5
|
* transition shader, and surface/string bridge helpers.
|
|
6
6
|
*/
|
|
7
|
-
import { createSurface, parseAnsiToSurface, resolveSafeCtx, } from '@flyingrobots/bijou';
|
|
7
|
+
import { createSurface, darken, hexToRgb, lighten, mix, parseAnsiToSurface, saturate, resolveSafeCtx, } from '@flyingrobots/bijou';
|
|
8
8
|
import { TRANSITION_SHADERS } from './transition-shaders.js';
|
|
9
9
|
import { fitBlock } from './layout-utils.js';
|
|
10
10
|
import { splitPaneLayout } from './split-pane.js';
|
|
11
11
|
import { gridLayout } from './grid.js';
|
|
12
|
-
import { createFocusAreaStateForSurface,
|
|
12
|
+
import { createFocusAreaStateForSurface, focusAreaSurfaceInto, focusAreaScrollTo, focusAreaScrollToX, } from './focus-area.js';
|
|
13
13
|
import { isMinimized, createPanelVisibilityState } from './panel-state.js';
|
|
14
14
|
import { createPanelDockState, resolveChildOrder, getNodeId } from './panel-dock.js';
|
|
15
15
|
import { visibleLength } from './viewport.js';
|
|
16
16
|
import { helpShort } from './help.js';
|
|
17
|
-
import { findPaneNode, isPaneMinimized, mergeMaps, offsetRect, fitLine,
|
|
18
|
-
import { normalizeViewOutput } from './view-output.js';
|
|
17
|
+
import { findPaneNode, isPaneMinimized, mergeMaps, offsetRect, fitLine, } from './app-frame-utils.js';
|
|
18
|
+
import { normalizeViewOutput, normalizeViewOutputInto } from './view-output.js';
|
|
19
19
|
import { createStyledTextSurfaceWithBCSS } from './css/text-style.js';
|
|
20
|
+
import { frameModeLabel } from './app-frame-i18n.js';
|
|
21
|
+
const framePaneScratchBySize = new Map();
|
|
22
|
+
function relativeLuminance(hex) {
|
|
23
|
+
const [red, green, blue] = hexToRgb(hex);
|
|
24
|
+
const r = srgbChannelToLinear(red);
|
|
25
|
+
const g = srgbChannelToLinear(green);
|
|
26
|
+
const b = srgbChannelToLinear(blue);
|
|
27
|
+
return 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
|
28
|
+
}
|
|
29
|
+
function srgbChannelToLinear(channel) {
|
|
30
|
+
const normalized = channel / 255;
|
|
31
|
+
return normalized <= 0.03928
|
|
32
|
+
? normalized / 12.92
|
|
33
|
+
: ((normalized + 0.055) / 1.055) ** 2.4;
|
|
34
|
+
}
|
|
35
|
+
function contrastRatio(a, b) {
|
|
36
|
+
const lighter = Math.max(relativeLuminance(a), relativeLuminance(b));
|
|
37
|
+
const darker = Math.min(relativeLuminance(a), relativeLuminance(b));
|
|
38
|
+
return (lighter + 0.05) / (darker + 0.05);
|
|
39
|
+
}
|
|
40
|
+
function colorDistance(a, b) {
|
|
41
|
+
const [ar, ag, ab] = hexToRgb(a);
|
|
42
|
+
const [br, bg, bb] = hexToRgb(b);
|
|
43
|
+
return Math.sqrt((ar - br) ** 2 + (ag - bg) ** 2 + (ab - bb) ** 2);
|
|
44
|
+
}
|
|
45
|
+
function deriveActiveHeaderTabToken(ctx, backgroundHex, baseHex) {
|
|
46
|
+
const darkBackground = relativeLuminance(backgroundHex) < 0.35;
|
|
47
|
+
const accent = ctx.semantic('accent');
|
|
48
|
+
const info = ctx.semantic('info');
|
|
49
|
+
const primary = ctx.semantic('primary');
|
|
50
|
+
const warning = ctx.semantic('warning');
|
|
51
|
+
const seeds = [
|
|
52
|
+
accent,
|
|
53
|
+
info,
|
|
54
|
+
mix(accent, info, 0.5),
|
|
55
|
+
mix(accent, warning, 0.3),
|
|
56
|
+
mix(primary, accent, 0.3),
|
|
57
|
+
];
|
|
58
|
+
const candidates = seeds.flatMap((seed) => {
|
|
59
|
+
const emphasized = saturate(seed, 0.35);
|
|
60
|
+
return darkBackground
|
|
61
|
+
? [
|
|
62
|
+
emphasized,
|
|
63
|
+
lighten(seed, 0.18),
|
|
64
|
+
lighten(emphasized, 0.3),
|
|
65
|
+
lighten(mix(seed, primary, 0.25), 0.2),
|
|
66
|
+
]
|
|
67
|
+
: [
|
|
68
|
+
darken(seed, 0.18),
|
|
69
|
+
darken(emphasized, 0.28),
|
|
70
|
+
darken(mix(seed, primary, 0.1), 0.22),
|
|
71
|
+
];
|
|
72
|
+
});
|
|
73
|
+
let best = candidates[0] ?? accent;
|
|
74
|
+
let bestScore = Number.NEGATIVE_INFINITY;
|
|
75
|
+
for (const candidate of candidates) {
|
|
76
|
+
const contrast = contrastRatio(candidate.hex, backgroundHex);
|
|
77
|
+
const distance = colorDistance(candidate.hex, baseHex) / Math.sqrt(3 * 255 * 255);
|
|
78
|
+
const score = contrast * 3 + distance;
|
|
79
|
+
if (score > bestScore) {
|
|
80
|
+
bestScore = score;
|
|
81
|
+
best = candidate;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
hex: best.hex,
|
|
86
|
+
modifiers: ['bold'],
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
function paintActiveHeaderTab(surface, tabTargets, activePageId, ctx, tokenOverride) {
|
|
90
|
+
if (ctx == null)
|
|
91
|
+
return;
|
|
92
|
+
const activeTarget = tabTargets.find((target) => target.pageId === activePageId);
|
|
93
|
+
if (activeTarget == null)
|
|
94
|
+
return;
|
|
95
|
+
const sampleCell = surface.get(activeTarget.startCol, 0);
|
|
96
|
+
const backgroundHex = sampleCell.bg
|
|
97
|
+
?? ctx.surface('primary').bg
|
|
98
|
+
?? ctx.surface('secondary').bg
|
|
99
|
+
?? '#000000';
|
|
100
|
+
const baseHex = sampleCell.fg
|
|
101
|
+
?? ctx.surface('primary').hex
|
|
102
|
+
?? ctx.semantic('primary').hex;
|
|
103
|
+
const token = tokenOverride ?? deriveActiveHeaderTabToken(ctx, backgroundHex, baseHex);
|
|
104
|
+
for (let x = activeTarget.startCol; x <= activeTarget.endCol; x++) {
|
|
105
|
+
const cell = surface.get(x, 0);
|
|
106
|
+
surface.set(x, 0, {
|
|
107
|
+
...cell,
|
|
108
|
+
fg: token.hex,
|
|
109
|
+
bg: token.bg ?? cell.bg,
|
|
110
|
+
modifiers: token.modifiers == null
|
|
111
|
+
? cell.modifiers
|
|
112
|
+
: Array.from(new Set([...(cell.modifiers ?? []), ...token.modifiers])),
|
|
113
|
+
empty: false,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
20
117
|
/** Recursively render a layout tree node (pane, split, or grid) into a rect. */
|
|
21
118
|
export function renderFrameNode(node, rect, ctx) {
|
|
22
119
|
if (rect.width <= 0 || rect.height <= 0) {
|
|
23
120
|
return { surface: createSurface(rect.width, rect.height), paneRects: new Map(), paneOrder: [] };
|
|
24
121
|
}
|
|
122
|
+
const surface = createSurface(rect.width, rect.height);
|
|
123
|
+
const painted = paintFrameNodeInto(node, { row: 0, col: 0, width: rect.width, height: rect.height }, rect, ctx, surface);
|
|
124
|
+
return { surface, paneRects: painted.paneRects, paneOrder: painted.paneOrder };
|
|
125
|
+
}
|
|
126
|
+
function paintFrameNodeInto(node, localRect, absoluteRect, ctx, target) {
|
|
127
|
+
if (localRect.width <= 0 || localRect.height <= 0) {
|
|
128
|
+
return { paneRects: new Map(), paneOrder: [] };
|
|
129
|
+
}
|
|
25
130
|
if (node.kind === 'pane') {
|
|
26
131
|
// Minimized pane: render as collapsed title bar
|
|
27
132
|
if (isMinimized(ctx.visibility, node.paneId)) {
|
|
28
133
|
const titleBar = `[${node.paneId}] \u25b8`; // ▸
|
|
134
|
+
target.blit(blockSurface(titleBar, localRect.width, localRect.height), localRect.col, localRect.row);
|
|
29
135
|
return {
|
|
30
|
-
|
|
31
|
-
paneRects: new Map([[node.paneId, rect]]),
|
|
136
|
+
paneRects: new Map([[node.paneId, absoluteRect]]),
|
|
32
137
|
paneOrder: [node.paneId],
|
|
33
138
|
};
|
|
34
139
|
}
|
|
35
140
|
const prior = ctx.scrollByPane[node.paneId] ?? { x: 0, y: 0 };
|
|
36
|
-
const contentSurface = framePaneOutputToSurface(node.render(
|
|
141
|
+
const contentSurface = framePaneOutputToSurface(node.render(localRect.width, localRect.height), localRect.width, localRect.height, getFramePaneScratch(localRect.width, localRect.height));
|
|
37
142
|
let state = createFocusAreaStateForSurface(contentSurface, {
|
|
38
|
-
width:
|
|
39
|
-
height:
|
|
143
|
+
width: localRect.width,
|
|
144
|
+
height: localRect.height,
|
|
40
145
|
overflowX: node.overflowX ?? 'hidden',
|
|
41
146
|
});
|
|
42
147
|
state = focusAreaScrollTo(state, prior.y);
|
|
43
148
|
state = focusAreaScrollToX(state, prior.x);
|
|
44
|
-
|
|
149
|
+
focusAreaSurfaceInto(contentSurface, state, target, {
|
|
45
150
|
focused: node.paneId === ctx.focusedPaneId,
|
|
46
151
|
ctx: resolveSafeCtx(),
|
|
47
152
|
id: node.paneId,
|
|
48
153
|
classes: [node.paneId === ctx.focusedPaneId ? 'focused' : 'unfocused'],
|
|
49
|
-
|
|
154
|
+
focusedGutterToken: node.focusedGutterToken,
|
|
155
|
+
unfocusedGutterToken: node.unfocusedGutterToken,
|
|
156
|
+
}, localRect.col, localRect.row);
|
|
50
157
|
return {
|
|
51
|
-
|
|
52
|
-
paneRects: new Map([[node.paneId, rect]]),
|
|
158
|
+
paneRects: new Map([[node.paneId, absoluteRect]]),
|
|
53
159
|
paneOrder: [node.paneId],
|
|
54
160
|
};
|
|
55
161
|
}
|
|
@@ -72,65 +178,56 @@ export function renderFrameNode(node, rect, ctx) {
|
|
|
72
178
|
}
|
|
73
179
|
if (aMinimized && !bMinimized) {
|
|
74
180
|
// A is minimized: give it minimal space
|
|
75
|
-
const mainAxisTotal = direction === 'row' ?
|
|
181
|
+
const mainAxisTotal = direction === 'row' ? localRect.width : localRect.height;
|
|
76
182
|
const minimizedSize = Math.min(1, mainAxisTotal);
|
|
77
183
|
splitState = { ...splitState, ratio: minimizedSize / Math.max(1, mainAxisTotal) };
|
|
78
184
|
}
|
|
79
185
|
else if (bMinimized && !aMinimized) {
|
|
80
186
|
// B is minimized: give A most of the space
|
|
81
|
-
const mainAxisTotal = direction === 'row' ?
|
|
187
|
+
const mainAxisTotal = direction === 'row' ? localRect.width : localRect.height;
|
|
82
188
|
const minimizedSize = Math.min(1, mainAxisTotal);
|
|
83
189
|
splitState = { ...splitState, ratio: 1 - minimizedSize / Math.max(1, mainAxisTotal) };
|
|
84
190
|
}
|
|
85
191
|
const layout = splitPaneLayout(splitState, {
|
|
86
192
|
direction,
|
|
87
|
-
width:
|
|
88
|
-
height:
|
|
193
|
+
width: localRect.width,
|
|
194
|
+
height: localRect.height,
|
|
89
195
|
minA: node.minA,
|
|
90
196
|
minB: node.minB,
|
|
91
197
|
});
|
|
92
|
-
const
|
|
93
|
-
const
|
|
94
|
-
const
|
|
95
|
-
const
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
paintDivider(surface, layout.divider, node.dividerChar, direction);
|
|
198
|
+
const localARect = offsetRect(layout.paneA, localRect.row, localRect.col);
|
|
199
|
+
const localBRect = offsetRect(layout.paneB, localRect.row, localRect.col);
|
|
200
|
+
const absoluteARect = offsetRect(layout.paneA, absoluteRect.row, absoluteRect.col);
|
|
201
|
+
const absoluteBRect = offsetRect(layout.paneB, absoluteRect.row, absoluteRect.col);
|
|
202
|
+
const a = paintFrameNodeInto(effectiveA, localARect, absoluteARect, ctx, target);
|
|
203
|
+
const b = paintFrameNodeInto(effectiveB, localBRect, absoluteBRect, ctx, target);
|
|
204
|
+
paintDivider(target, offsetRect(layout.divider, localRect.row, localRect.col), node.dividerChar, direction);
|
|
100
205
|
return {
|
|
101
|
-
surface,
|
|
102
206
|
paneRects: mergeMaps(a.paneRects, b.paneRects),
|
|
103
207
|
paneOrder: [...a.paneOrder, ...b.paneOrder],
|
|
104
208
|
};
|
|
105
209
|
}
|
|
106
210
|
const relRects = gridLayout({
|
|
107
|
-
width:
|
|
108
|
-
height:
|
|
211
|
+
width: localRect.width,
|
|
212
|
+
height: localRect.height,
|
|
109
213
|
columns: node.columns,
|
|
110
214
|
rows: node.rows,
|
|
111
215
|
areas: node.areas,
|
|
112
216
|
gap: node.gap,
|
|
113
217
|
});
|
|
114
|
-
|
|
218
|
+
let paneRects = new Map();
|
|
219
|
+
const seenPaneIds = new Set();
|
|
220
|
+
const paneOrder = [];
|
|
115
221
|
for (const [areaName, areaRect] of relRects) {
|
|
116
|
-
const
|
|
222
|
+
const localAreaRect = offsetRect(areaRect, localRect.row, localRect.col);
|
|
223
|
+
const absoluteAreaRect = offsetRect(areaRect, absoluteRect.row, absoluteRect.col);
|
|
117
224
|
const child = node.cells[areaName];
|
|
118
225
|
if (child == null) {
|
|
119
226
|
resolveSafeCtx()?.io.writeError(`createFramedApp: grid cell "${areaName}" missing in page "${ctx.pageId}" — rendering placeholder\n`);
|
|
120
|
-
|
|
227
|
+
target.blit(blockSurface(`[missing grid cell: ${areaName}]`, localAreaRect.width, localAreaRect.height), localAreaRect.col, localAreaRect.row);
|
|
121
228
|
continue;
|
|
122
229
|
}
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
const surface = createSurface(rect.width, rect.height);
|
|
126
|
-
for (const [areaName, areaRect] of relRects) {
|
|
127
|
-
const rendered = renderedByArea.get(areaName);
|
|
128
|
-
surface.blit(rendered.surface, areaRect.col, areaRect.row);
|
|
129
|
-
}
|
|
130
|
-
let paneRects = new Map();
|
|
131
|
-
const seenPaneIds = new Set();
|
|
132
|
-
const paneOrder = [];
|
|
133
|
-
for (const rendered of renderedByArea.values()) {
|
|
230
|
+
const rendered = paintFrameNodeInto(child, localAreaRect, absoluteAreaRect, ctx, target);
|
|
134
231
|
for (const [paneId, paneRect] of rendered.paneRects.entries()) {
|
|
135
232
|
if (paneRects.has(paneId)) {
|
|
136
233
|
throw new Error(`createFramedApp: duplicate paneId "${paneId}" in rendered layout`);
|
|
@@ -145,7 +242,7 @@ export function renderFrameNode(node, rect, ctx) {
|
|
|
145
242
|
paneOrder.push(paneId);
|
|
146
243
|
}
|
|
147
244
|
}
|
|
148
|
-
return {
|
|
245
|
+
return { paneRects, paneOrder };
|
|
149
246
|
}
|
|
150
247
|
/** Render a placeholder for a grid area that has no matching cell definition. */
|
|
151
248
|
export function renderMissingGridCell(areaName, rect) {
|
|
@@ -157,6 +254,12 @@ export function renderMissingGridCell(areaName, rect) {
|
|
|
157
254
|
}
|
|
158
255
|
/** Render a page's layout tree within the frame body rect. */
|
|
159
256
|
export function renderPageContent(pageId, model, bodyRect, pagesById) {
|
|
257
|
+
const surface = createSurface(bodyRect.width, bodyRect.height);
|
|
258
|
+
const geometry = renderPageContentInto(pageId, model, bodyRect, pagesById, surface, 0, 0);
|
|
259
|
+
return { surface, paneRects: geometry.paneRects, paneOrder: geometry.paneOrder };
|
|
260
|
+
}
|
|
261
|
+
/** Paint a page's layout tree directly into an existing target surface. */
|
|
262
|
+
export function renderPageContentInto(pageId, model, bodyRect, pagesById, target, offsetRow = bodyRect.row, offsetCol = bodyRect.col) {
|
|
160
263
|
const page = pagesById.get(pageId);
|
|
161
264
|
const pageModel = model.pageModels[pageId];
|
|
162
265
|
const renderCtx = {
|
|
@@ -167,20 +270,26 @@ export function renderPageContent(pageId, model, bodyRect, pagesById) {
|
|
|
167
270
|
visibility: model.minimizedByPage[pageId] ?? createPanelVisibilityState(),
|
|
168
271
|
dockState: model.dockStateByPage[pageId] ?? createPanelDockState(),
|
|
169
272
|
};
|
|
170
|
-
return
|
|
273
|
+
return paintFrameNodeInto(page.layout(pageModel), { row: offsetRow, col: offsetCol, width: bodyRect.width, height: bodyRect.height }, bodyRect, renderCtx, target);
|
|
171
274
|
}
|
|
172
275
|
/** Render only the maximized pane at the full body rect. */
|
|
173
276
|
export function renderMaximizedPane(pageId, model, bodyRect, pagesById, maximizedPaneId) {
|
|
277
|
+
const surface = createSurface(bodyRect.width, bodyRect.height);
|
|
278
|
+
const geometry = renderMaximizedPaneInto(pageId, model, bodyRect, pagesById, maximizedPaneId, surface, 0, 0);
|
|
279
|
+
return { surface, paneRects: geometry.paneRects, paneOrder: geometry.paneOrder };
|
|
280
|
+
}
|
|
281
|
+
/** Paint only the maximized pane directly into an existing target surface. */
|
|
282
|
+
export function renderMaximizedPaneInto(pageId, model, bodyRect, pagesById, maximizedPaneId, target, offsetRow = bodyRect.row, offsetCol = bodyRect.col) {
|
|
174
283
|
const page = pagesById.get(pageId);
|
|
175
284
|
const pageModel = model.pageModels[pageId];
|
|
176
285
|
const layoutTree = page.layout(pageModel);
|
|
177
286
|
const paneNode = findPaneNode(layoutTree, maximizedPaneId);
|
|
178
287
|
if (paneNode == null) {
|
|
179
288
|
// Pane not found, fall back to normal rendering
|
|
180
|
-
return
|
|
289
|
+
return renderPageContentInto(pageId, model, bodyRect, pagesById, target, offsetRow, offsetCol);
|
|
181
290
|
}
|
|
182
291
|
const prior = model.scrollByPage[pageId]?.[maximizedPaneId] ?? { x: 0, y: 0 };
|
|
183
|
-
const contentSurface = framePaneOutputToSurface(paneNode.render(bodyRect.width, bodyRect.height), bodyRect.width, bodyRect.height);
|
|
292
|
+
const contentSurface = framePaneOutputToSurface(paneNode.render(bodyRect.width, bodyRect.height), bodyRect.width, bodyRect.height, getFramePaneScratch(bodyRect.width, bodyRect.height));
|
|
184
293
|
let state = createFocusAreaStateForSurface(contentSurface, {
|
|
185
294
|
width: bodyRect.width,
|
|
186
295
|
height: bodyRect.height,
|
|
@@ -188,20 +297,29 @@ export function renderMaximizedPane(pageId, model, bodyRect, pagesById, maximize
|
|
|
188
297
|
});
|
|
189
298
|
state = focusAreaScrollTo(state, prior.y);
|
|
190
299
|
state = focusAreaScrollToX(state, prior.x);
|
|
191
|
-
|
|
300
|
+
focusAreaSurfaceInto(contentSurface, state, target, {
|
|
192
301
|
focused: true,
|
|
193
302
|
ctx: resolveSafeCtx(),
|
|
194
303
|
id: maximizedPaneId,
|
|
195
304
|
classes: ['focused', 'maximized'],
|
|
196
|
-
|
|
305
|
+
focusedGutterToken: paneNode.focusedGutterToken,
|
|
306
|
+
unfocusedGutterToken: paneNode.unfocusedGutterToken,
|
|
307
|
+
}, offsetCol, offsetRow);
|
|
197
308
|
return {
|
|
198
|
-
surface,
|
|
199
309
|
paneRects: new Map([[maximizedPaneId, bodyRect]]),
|
|
200
310
|
paneOrder: [maximizedPaneId],
|
|
201
311
|
};
|
|
202
312
|
}
|
|
203
313
|
/** Resolve the top header line plus clickable tab target geometry. */
|
|
204
314
|
export function resolveHeaderLine(model, options, pagesById) {
|
|
315
|
+
const ctx = resolveSafeCtx();
|
|
316
|
+
const activePage = pagesById.get(model.activePageId);
|
|
317
|
+
const activePageModel = model.pageModels[model.activePageId];
|
|
318
|
+
const headerStyle = options.headerStyle?.({
|
|
319
|
+
model,
|
|
320
|
+
activePage,
|
|
321
|
+
pageModel: activePageModel,
|
|
322
|
+
});
|
|
205
323
|
const title = options.title ?? 'App';
|
|
206
324
|
let cursor = visibleLength(title) + 2;
|
|
207
325
|
const tabTargets = [];
|
|
@@ -225,33 +343,50 @@ export function resolveHeaderLine(model, options, pagesById) {
|
|
|
225
343
|
return label;
|
|
226
344
|
}).join(' ');
|
|
227
345
|
const line = fitLine(`${title} ${tabs}`, model.columns);
|
|
346
|
+
const surface = createStyledTextSurfaceWithBCSS(line, model.columns, ctx, {
|
|
347
|
+
type: 'FrameHeader',
|
|
348
|
+
id: 'frame-header',
|
|
349
|
+
classes: [`page-${model.activePageId}`],
|
|
350
|
+
});
|
|
351
|
+
paintActiveHeaderTab(surface, tabTargets, model.activePageId, ctx, headerStyle?.activeTabToken);
|
|
228
352
|
return {
|
|
229
|
-
surface
|
|
230
|
-
type: 'FrameHeader',
|
|
231
|
-
id: 'frame-header',
|
|
232
|
-
classes: [`page-${model.activePageId}`],
|
|
233
|
-
}),
|
|
353
|
+
surface,
|
|
234
354
|
tabTargets,
|
|
235
355
|
};
|
|
236
356
|
}
|
|
237
|
-
/** Render the
|
|
238
|
-
export function renderHelpLine(model,
|
|
239
|
-
const mode =
|
|
357
|
+
/** Render the footer status line showing mode, focused pane, and key hints. */
|
|
358
|
+
export function renderHelpLine(model, activeLayer, i18n, notificationCue) {
|
|
359
|
+
const mode = activeLayer.kind === 'search' || activeLayer.kind === 'command-palette'
|
|
240
360
|
? 'PALETTE'
|
|
241
|
-
:
|
|
361
|
+
: activeLayer.kind === 'help'
|
|
242
362
|
? 'HELP'
|
|
243
|
-
: '
|
|
363
|
+
: activeLayer.kind === 'quit-confirm'
|
|
364
|
+
? 'QUIT'
|
|
365
|
+
: activeLayer.kind === 'settings'
|
|
366
|
+
? 'SETTINGS'
|
|
367
|
+
: activeLayer.kind === 'notification-center'
|
|
368
|
+
? 'NOTICES'
|
|
369
|
+
: activeLayer.kind === 'page-modal'
|
|
370
|
+
? 'MODAL'
|
|
371
|
+
: 'NORMAL';
|
|
244
372
|
const focusedPane = model.focusedPaneByPage[model.activePageId] ?? '-';
|
|
245
|
-
const
|
|
246
|
-
const
|
|
247
|
-
model
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
373
|
+
const modeLabel = frameModeLabel(i18n, mode);
|
|
374
|
+
const status = notificationCue == null || notificationCue.length === 0
|
|
375
|
+
? `[${modeLabel}] page:${model.activePageId} pane:${focusedPane}`
|
|
376
|
+
: `[${modeLabel}] page:${model.activePageId} pane:${focusedPane} ${notificationCue}`;
|
|
377
|
+
const hint = typeof activeLayer.hintSource === 'string'
|
|
378
|
+
? activeLayer.hintSource
|
|
379
|
+
: activeLayer.hintSource == null
|
|
380
|
+
? ''
|
|
381
|
+
: helpShort(activeLayer.hintSource);
|
|
253
382
|
const line = hint.length > 0
|
|
254
|
-
?
|
|
383
|
+
? (() => {
|
|
384
|
+
const statusWithPadding = ` ${status}`;
|
|
385
|
+
const gap = model.columns - visibleLength(statusWithPadding) - visibleLength(hint);
|
|
386
|
+
return gap >= 2
|
|
387
|
+
? `${statusWithPadding}${' '.repeat(gap)}${hint}`
|
|
388
|
+
: `${statusWithPadding} ${hint}`;
|
|
389
|
+
})()
|
|
255
390
|
: ` ${status}`;
|
|
256
391
|
return createStyledTextSurfaceWithBCSS(fitLine(line, model.columns), model.columns, resolveSafeCtx(), {
|
|
257
392
|
type: 'FrameHelp',
|
|
@@ -282,8 +417,10 @@ export function renderTransition(prev, next, style, progress, width, height, ctx
|
|
|
282
417
|
}
|
|
283
418
|
return surface;
|
|
284
419
|
}
|
|
285
|
-
export function framePaneOutputToSurface(output, width, height) {
|
|
286
|
-
return
|
|
420
|
+
export function framePaneOutputToSurface(output, width, height, scratch) {
|
|
421
|
+
return scratch == null
|
|
422
|
+
? normalizeViewOutput(output, { width, height }).surface
|
|
423
|
+
: normalizeViewOutputInto(output, { width, height }, scratch).surface;
|
|
287
424
|
}
|
|
288
425
|
export function blockSurface(content, width, height) {
|
|
289
426
|
return parseAnsiToSurface(fitBlock(content, width, height).join('\n'), width, height);
|
|
@@ -301,6 +438,15 @@ function resolveDividerUnit(dividerChar, fallback) {
|
|
|
301
438
|
return fallback;
|
|
302
439
|
return dividerChar[0] ?? fallback;
|
|
303
440
|
}
|
|
441
|
+
function getFramePaneScratch(width, height) {
|
|
442
|
+
const key = `${width}x${height}`;
|
|
443
|
+
let scratch = framePaneScratchBySize.get(key);
|
|
444
|
+
if (scratch == null) {
|
|
445
|
+
scratch = createSurface(width, height);
|
|
446
|
+
framePaneScratchBySize.set(key, scratch);
|
|
447
|
+
}
|
|
448
|
+
return scratch;
|
|
449
|
+
}
|
|
304
450
|
function applyTransitionCell(baseCell, result) {
|
|
305
451
|
if (result.overrideCell != null) {
|
|
306
452
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-frame-render.js","sourceRoot":"","sources":["../src/app-frame-render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-frame-render.js","sourceRoot":"","sources":["../src/app-frame-render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,MAAM,EACN,QAAQ,EACR,OAAO,EACP,GAAG,EACH,kBAAkB,EAClB,QAAQ,EAER,cAAc,GAIf,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,kBAAkB,EAAyB,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EACL,8BAA8B,EAC9B,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,SAAS,EACT,UAAU,EACV,OAAO,GACR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAmB,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAcrD,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAmB,CAAC;AAY1D,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,MAAM,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC;IACjC,OAAO,UAAU,IAAI,OAAO;QAC1B,CAAC,CAAC,UAAU,GAAG,KAAK;QACpB,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC;AAC5C,CAAC;AAED,SAAS,aAAa,CAAC,CAAS,EAAE,CAAS;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,aAAa,CAAC,CAAS,EAAE,CAAS;IACzC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAiB,EAAE,aAAqB,EAAE,OAAe;IAC3F,MAAM,cAAc,GAAG,iBAAiB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IAC/D,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,KAAK,GAAiB;QAC1B,MAAM;QACN,IAAI;QACJ,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;QACtB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC;QACzB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC;KAC1B,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,cAAc;YACnB,CAAC,CAAC;gBACE,UAAU;gBACV,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;gBACnB,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC;aACvC;YACH,CAAC,CAAC;gBACE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;gBAClB,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC;gBACxB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC;aACtC,CAAC;IACR,CAAC,CAAC,CAAC;IAEH,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IACnC,IAAI,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACzC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAClF,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC;QACtC,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACtB,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,SAAS,EAAE,CAAC,MAAM,CAAC;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAgB,EAChB,UAA2C,EAC3C,YAAoB,EACpB,GAA6B,EAC7B,aAA0B;IAE1B,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO;IACxB,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;IACjF,IAAI,YAAY,IAAI,IAAI;QAAE,OAAO;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,UAAU,CAAC,EAAE;WAC9B,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE;WACzB,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE;WAC3B,SAAS,CAAC;IACf,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE;WACxB,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG;WAC1B,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;IACjC,MAAM,KAAK,GAAG,aAAa,IAAI,0BAA0B,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAEvF,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;YAChB,GAAG,IAAI;YACP,EAAE,EAAE,KAAK,CAAC,GAAG;YACb,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE;YACvB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;gBAChC,CAAC,CAAC,IAAI,CAAC,SAAS;gBAChB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YACxE,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAC7B,IAAqB,EACrB,IAAgB,EAChB,GAAkC;IAElC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAClG,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,kBAAkB,CAChC,IAAI,EACJ,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAC1D,IAAI,EACJ,GAAG,EACH,OAAO,CACR,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;AACjF,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAqB,EACrB,SAAqB,EACrB,YAAwB,EACxB,GAAkC,EAClC,MAAe;IAEf,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACjD,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,gDAAgD;QAChD,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,UAAU,CAAC,CAAC,IAAI;YAChD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;YACrG,OAAO;gBACL,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;gBACjD,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;aACzB,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9D,MAAM,cAAc,GAAG,wBAAwB,CAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAC9C,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,MAAM,EAChB,mBAAmB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CACvD,CAAC;QACF,IAAI,KAAK,GAAG,8BAA8B,CAAC,cAAc,EAAE;YACzD,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,QAAQ;SACtC,CAAC,CAAC;QACH,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3C,oBAAoB,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE;YAClD,OAAO,EAAE,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,aAAa;YAC1C,GAAG,EAAE,cAAc,EAAE;YACrB,EAAE,EAAE,IAAI,CAAC,MAAM;YACf,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;YACtE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;SAChD,EAAE,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO;YACL,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;YACjD,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;SACzB,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;QAE1C,qCAAqC;QACrC,MAAM,eAAe,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAErD,2EAA2E;QAC3E,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAE/D,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,kDAAkD;QAClD,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;QACvD,CAAC;QAED,IAAI,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,wCAAwC;YACxC,MAAM,aAAa,GAAG,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YAC/E,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;YACjD,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC;QACpF,CAAC;aAAM,IAAI,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,2CAA2C;YAC3C,MAAM,aAAa,GAAG,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YAC/E,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;YACjD,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC;QACxF,CAAC;QAED,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,EAAE;YACzC,SAAS;YACT,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QACnF,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAEnF,MAAM,CAAC,GAAG,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAEjF,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAE5G,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC;YAC9C,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC;SAC5C,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC;QAC1B,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAC;IAEH,IAAI,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QACzE,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,cAAc,EAAE,EAAE,EAAE,CAAC,UAAU,CAC7B,+BAA+B,QAAQ,sBAAsB,GAAG,CAAC,MAAM,6BAA6B,CACrG,CAAC;YACF,MAAM,CAAC,IAAI,CACT,YAAY,CAAC,uBAAuB,QAAQ,GAAG,EAAE,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAC3F,aAAa,CAAC,GAAG,EACjB,aAAa,CAAC,GAAG,CAClB,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACzF,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9D,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,sBAAsB,CAAC,CAAC;YACtF,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,0BAA0B,CAAC,CAAC;YAC1F,CAAC;YACD,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAClC,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,IAAgB;IACtE,OAAO;QACL,OAAO,EAAE,YAAY,CAAC,uBAAuB,QAAQ,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;QAClF,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,KAAyC,EACzC,QAAoB,EACpB,SAAiD;IAEjD,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1F,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;AACnF,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,KAAyC,EACzC,QAAoB,EACpB,SAAiD,EACjD,MAAe,EACf,SAAS,GAAG,QAAQ,CAAC,GAAG,EACxB,SAAS,GAAG,QAAQ,CAAC,GAAG;IAExB,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;IACpC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAE,CAAC;IAC5C,MAAM,SAAS,GAAkC;QAC/C,KAAK;QACL,MAAM;QACN,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAC9C,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE;QAC9C,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,0BAA0B,EAAE;QACzE,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,oBAAoB,EAAE;KACnE,CAAC;IACF,OAAO,kBAAkB,CACvB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EACtB,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAClF,QAAQ,EACR,SAAS,EACT,MAAM,CACP,CAAC;AACJ,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,KAAyC,EACzC,QAAoB,EACpB,SAAiD,EACjD,eAAuB;IAEvB,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7G,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;AACnF,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,uBAAuB,CACrC,MAAc,EACd,KAAyC,EACzC,QAAoB,EACpB,SAAiD,EACjD,eAAuB,EACvB,MAAe,EACf,SAAS,GAAG,QAAQ,CAAC,GAAG,EACxB,SAAS,GAAG,QAAQ,CAAC,GAAG;IAExB,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;IACpC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAC3D,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,gDAAgD;QAChD,OAAO,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,MAAM,cAAc,GAAG,wBAAwB,CAC7C,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EAChD,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,MAAM,EACf,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CACrD,CAAC;IACF,IAAI,KAAK,GAAG,8BAA8B,CAAC,cAAc,EAAE;QACzD,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,QAAQ;KAC1C,CAAC,CAAC;IACH,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3C,oBAAoB,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE;QAClD,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,cAAc,EAAE;QACrB,EAAE,EAAE,eAAe;QACnB,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;QACjC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;QAC/C,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;KACpD,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAEzB,OAAO;QACL,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjD,SAAS,EAAE,CAAC,eAAe,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,iBAAiB,CAC/B,KAAyC,EACzC,OAA+C,EAC/C,SAAiD;IAEjD,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAE,CAAC;IACtD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAE,CAAC;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACxC,KAAK;QACL,UAAU;QACV,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACrC,IAAI,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QAChC,MAAM,KAAK,GAAG,EAAE,KAAK,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;QAChF,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;QAClC,IAAI,MAAM,IAAI,CAAC,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YAC5C,UAAU,CAAC,IAAI,CAAC;gBACd,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;gBAC/B,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC;aACzD,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,KAAK,CAAC;QAChB,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,KAAK,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,+BAA+B,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE;QACxE,IAAI,EAAE,aAAa;QACnB,EAAE,EAAE,cAAc;QAClB,OAAO,EAAE,CAAC,QAAQ,KAAK,CAAC,YAAY,EAAE,CAAC;KACxC,CAAC,CAAC;IACH,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAChG,OAAO;QACL,OAAO;QACP,UAAU;KACX,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAC5B,KAAyC,EACzC,WAAiC,EACjC,IAAoD,EACpD,eAAwB;IAExB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,KAAK,iBAAiB;QAClF,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM;YAC3B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,cAAc;gBACnC,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU;oBAC/B,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,qBAAqB;wBAC1C,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY;4BACjC,CAAC,CAAC,OAAO;4BACT,CAAC,CAAC,QAAQ,CAAC;IACvB,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;IACvE,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,eAAe,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QACpE,CAAC,CAAC,IAAI,SAAS,UAAU,KAAK,CAAC,YAAY,SAAS,WAAW,EAAE;QACjE,CAAC,CAAC,IAAI,SAAS,UAAU,KAAK,CAAC,YAAY,SAAS,WAAW,IAAI,eAAe,EAAE,CAAC;IAEvF,MAAM,IAAI,GAAG,OAAO,WAAW,CAAC,UAAU,KAAK,QAAQ;QACrD,CAAC,CAAC,WAAW,CAAC,UAAU;QACxB,CAAC,CAAC,WAAW,CAAC,UAAU,IAAI,IAAI;YAC9B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,iBAAiB,GAAG,IAAI,MAAM,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,GAAG,aAAa,CAAC,iBAAiB,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACnF,OAAO,GAAG,IAAI,CAAC;gBACb,CAAC,CAAC,GAAG,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE;gBACjD,CAAC,CAAC,GAAG,iBAAiB,KAAK,IAAI,EAAE,CAAC;QACtC,CAAC,CAAC,EAAE;QACN,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;IACjB,OAAO,+BAA+B,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE;QACpG,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,YAAY;QAChB,OAAO,EAAE,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,QAAQ,KAAK,CAAC,YAAY,EAAE,CAAC;KACtE,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAa,EACb,IAAa,EACb,KAAqB,EACrB,QAAgB,EAChB,KAAa,EACb,MAAc,EACd,GAAiB,EACjB,KAAK,GAAG,CAAC;IAET,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC/E,IAAI,CAAC,MAAM,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC;YAC7D,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3E,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAkB,EAClB,KAAa,EACb,MAAc,EACd,OAAiB;IAEjB,OAAO,OAAO,IAAI,IAAI;QACpB,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO;QACxD,CAAC,CAAC,uBAAuB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IACzE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,YAAY,CACnB,MAAe,EACf,IAAgB,EAChB,WAA+B,EAC/B,SAA2B;IAE3B,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,WAA+B,EAAE,QAAgB;IAC3E,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACrE,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;AACpC,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa,EAAE,MAAc;IACxD,MAAM,GAAG,GAAG,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;IACjC,IAAI,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvC,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAc,EACd,MAAwB;IAExB,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;QAChC,OAAO;YACL,GAAG,QAAQ;YACX,GAAG,MAAM,CAAC,YAAY;YACtB,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI;YAC9B,KAAK,EAAE,KAAK;SACb,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO;YACL,GAAG,QAAQ;YACX,IAAI,EAAE,MAAM,CAAC,YAAY;YACzB,KAAK,EAAE,KAAK;SACb,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE,KAAK;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -1,20 +1,45 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Shared types and message utilities for `app-frame.ts`.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* This module contains the public framed-app message wrappers plus the
|
|
5
|
+
* internal wiring used by `createFramedApp`.
|
|
6
6
|
*/
|
|
7
7
|
import type { CommandPaletteItem } from './command-palette.js';
|
|
8
|
-
import type {
|
|
8
|
+
import type { App, Cmd, KeyMsg, MouseMsg, PulseMsg } from './types.js';
|
|
9
9
|
import type { BindingInfo } from './keybindings.js';
|
|
10
10
|
import type { PanelVisibilityState } from './panel-state.js';
|
|
11
11
|
import type { PanelDockState } from './panel-dock.js';
|
|
12
12
|
import type { FrameModel } from './app-frame.js';
|
|
13
13
|
export declare const PAGE_MSG_TOKEN: unique symbol;
|
|
14
14
|
export declare const FRAME_MSG_TOKEN: unique symbol;
|
|
15
|
+
export type PaletteKind = 'command' | 'search';
|
|
16
|
+
/** Message type delivered to a framed page update. */
|
|
17
|
+
export type FramePageMsg<Msg> = Msg | MouseMsg | PulseMsg;
|
|
18
|
+
/** Typed tuple returned by framed pages from `init()` and `update()`. */
|
|
19
|
+
export type FramePageUpdateResult<PageModel, Msg> = [PageModel, Cmd<Msg>[]];
|
|
20
|
+
/** Wrapper that tags a user message with its originating page ID. */
|
|
21
|
+
export interface PageScopedMsg<Msg> {
|
|
22
|
+
readonly [PAGE_MSG_TOKEN]: true;
|
|
23
|
+
readonly pageId: string;
|
|
24
|
+
readonly msg: FramePageMsg<Msg>;
|
|
25
|
+
}
|
|
26
|
+
/** Wrapper that tags a frame-internal action for the update loop. */
|
|
27
|
+
export interface FrameScopedMsg {
|
|
28
|
+
readonly [FRAME_MSG_TOKEN]: true;
|
|
29
|
+
readonly action: FrameAction;
|
|
30
|
+
}
|
|
31
|
+
/** Public custom-message type carried by a framed app. */
|
|
32
|
+
export type FramedAppMsg<Msg> = Msg | PageScopedMsg<Msg> | FrameScopedMsg;
|
|
33
|
+
/** Typed update tuple returned by a framed app. */
|
|
34
|
+
export type FramedAppUpdateResult<PageModel, Msg> = [FrameModel<PageModel>, Cmd<FramedAppMsg<Msg>>[]];
|
|
35
|
+
/** Fully typed `App` contract returned by `createFramedApp()`. */
|
|
36
|
+
export type FramedApp<PageModel, Msg> = App<FrameModel<PageModel>, FramedAppMsg<Msg>>;
|
|
15
37
|
/** Internal model extending the public FrameModel with palette entries. */
|
|
16
38
|
export interface InternalFrameModel<PageModel, Msg> extends FrameModel<PageModel> {
|
|
17
39
|
readonly commandPaletteEntries?: readonly PaletteEntry<Msg>[];
|
|
40
|
+
readonly commandPaletteTitle?: string;
|
|
41
|
+
readonly commandPaletteKind?: PaletteKind;
|
|
42
|
+
readonly helpScrollY: number;
|
|
18
43
|
}
|
|
19
44
|
/** A command palette entry linking a UI item to an action or message. */
|
|
20
45
|
export interface PaletteEntry<Msg> {
|
|
@@ -45,6 +70,10 @@ export interface RenderResult {
|
|
|
45
70
|
/** Discriminated union of all frame-level actions (tabs, panes, scroll, palette, help, transitions). */
|
|
46
71
|
export type FrameAction = {
|
|
47
72
|
type: 'toggle-help';
|
|
73
|
+
} | {
|
|
74
|
+
type: 'toggle-settings';
|
|
75
|
+
} | {
|
|
76
|
+
type: 'toggle-notifications';
|
|
48
77
|
} | {
|
|
49
78
|
type: 'prev-tab';
|
|
50
79
|
} | {
|
|
@@ -69,6 +98,8 @@ export type FrameAction = {
|
|
|
69
98
|
type: 'scroll-left';
|
|
70
99
|
} | {
|
|
71
100
|
type: 'scroll-right';
|
|
101
|
+
} | {
|
|
102
|
+
type: 'open-search';
|
|
72
103
|
} | {
|
|
73
104
|
type: 'open-palette';
|
|
74
105
|
} | {
|
|
@@ -113,31 +144,20 @@ export type PaletteAction = {
|
|
|
113
144
|
} | {
|
|
114
145
|
type: 'cp-close';
|
|
115
146
|
};
|
|
116
|
-
/** Wrapper that tags a user message with its originating page ID. */
|
|
117
|
-
export interface PageScopedMsg<Msg> {
|
|
118
|
-
readonly [PAGE_MSG_TOKEN]: true;
|
|
119
|
-
readonly pageId: string;
|
|
120
|
-
readonly msg: Msg;
|
|
121
|
-
}
|
|
122
|
-
/** Wrapper that tags a frame-internal action for the update loop. */
|
|
123
|
-
export interface FrameScopedMsg {
|
|
124
|
-
readonly [FRAME_MSG_TOKEN]: true;
|
|
125
|
-
readonly action: FrameAction;
|
|
126
|
-
}
|
|
127
147
|
/** Type guard: is this message a frame-internal action wrapper? */
|
|
128
148
|
export declare function isFrameScopedMsg(value: unknown): value is FrameScopedMsg;
|
|
129
149
|
/** Wrap a frame action into a FrameScopedMsg for the update loop. */
|
|
130
150
|
export declare function wrapFrameMsg(action: FrameAction): FrameScopedMsg;
|
|
131
151
|
/** Type guard: is this message a page-scoped wrapper? */
|
|
132
152
|
export declare function isPageScopedMsg<Msg>(value: unknown): value is PageScopedMsg<Msg>;
|
|
133
|
-
/** Tag a
|
|
134
|
-
export declare function wrapPageMsg<Msg>(pageId: string, msg: Msg): Msg
|
|
153
|
+
/** Tag a page-bound message with its originating page ID. */
|
|
154
|
+
export declare function wrapPageMsg<Msg>(pageId: string, msg: FramePageMsg<Msg>): PageScopedMsg<Msg>;
|
|
135
155
|
/** Create a command that immediately resolves with the given message. */
|
|
136
|
-
export declare function emitMsg<Msg>(msg: Msg): Cmd<Msg
|
|
156
|
+
export declare function emitMsg<Msg>(msg: Msg): Cmd<FramedAppMsg<Msg>>;
|
|
137
157
|
/** Create a command that emits a page-scoped message. */
|
|
138
|
-
export declare function emitMsgForPage<Msg>(pageId: string, msg: Msg): Cmd<Msg
|
|
158
|
+
export declare function emitMsgForPage<Msg>(pageId: string, msg: FramePageMsg<Msg>): Cmd<FramedAppMsg<Msg>>;
|
|
139
159
|
/** Wrap a page-level command so its emitted messages are tagged with the page ID. */
|
|
140
|
-
export declare function wrapCmdForPage<Msg>(pageId: string, cmd: Cmd<Msg>): Cmd<Msg
|
|
160
|
+
export declare function wrapCmdForPage<Msg>(pageId: string, cmd: Cmd<Msg>): Cmd<FramedAppMsg<Msg>>;
|
|
141
161
|
/** Convert a binding's key combo into a synthetic KeyMsg for dispatch. */
|
|
142
162
|
export declare function comboToMsg(binding: BindingInfo): KeyMsg;
|
|
143
163
|
import type { RuntimeIssue } from './types.js';
|