@flyingrobots/bijou-tui 1.7.0 → 2.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/dist/app-frame-actions.d.ts +37 -0
- package/dist/app-frame-actions.d.ts.map +1 -0
- package/dist/app-frame-actions.js +313 -0
- package/dist/app-frame-actions.js.map +1 -0
- package/dist/app-frame-palette.d.ts +16 -0
- package/dist/app-frame-palette.d.ts.map +1 -0
- package/dist/app-frame-palette.js +158 -0
- package/dist/app-frame-palette.js.map +1 -0
- package/dist/app-frame-render.d.ts +37 -0
- package/dist/app-frame-render.d.ts.map +1 -0
- package/dist/app-frame-render.js +277 -0
- package/dist/app-frame-render.js.map +1 -0
- package/dist/app-frame-types.d.ts +135 -0
- package/dist/app-frame-types.d.ts.map +1 -0
- package/dist/app-frame-types.js +72 -0
- package/dist/app-frame-types.js.map +1 -0
- package/dist/app-frame-utils.d.ts +37 -0
- package/dist/app-frame-utils.d.ts.map +1 -0
- package/dist/app-frame-utils.js +141 -0
- package/dist/app-frame-utils.js.map +1 -0
- package/dist/app-frame.d.ts +20 -4
- package/dist/app-frame.d.ts.map +1 -1
- package/dist/app-frame.js +52 -747
- package/dist/app-frame.js.map +1 -1
- package/dist/eventbus.d.ts +5 -0
- package/dist/eventbus.d.ts.map +1 -1
- package/dist/eventbus.js +17 -3
- package/dist/eventbus.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/layout-preset.d.ts +81 -0
- package/dist/layout-preset.d.ts.map +1 -0
- package/dist/layout-preset.js +107 -0
- package/dist/layout-preset.js.map +1 -0
- package/dist/panel-dock.d.ts +52 -0
- package/dist/panel-dock.d.ts.map +1 -0
- package/dist/panel-dock.js +112 -0
- package/dist/panel-dock.js.map +1 -0
- package/dist/panel-state.d.ts +30 -0
- package/dist/panel-state.d.ts.map +1 -0
- package/dist/panel-state.js +50 -0
- package/dist/panel-state.js.map +1 -0
- package/dist/screen.d.ts +2 -5
- package/dist/screen.d.ts.map +1 -1
- package/dist/screen.js +2 -4
- package/dist/screen.js.map +1 -1
- package/dist/split-pane.d.ts +5 -0
- package/dist/split-pane.d.ts.map +1 -1
- package/dist/split-pane.js +6 -8
- package/dist/split-pane.js.map +1 -1
- package/dist/transition-shaders.d.ts +101 -3
- package/dist/transition-shaders.d.ts.map +1 -1
- package/dist/transition-shaders.js +281 -6
- package/dist/transition-shaders.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure utility functions for `app-frame.ts`.
|
|
3
|
+
*
|
|
4
|
+
* Tree traversal, layout geometry, key map construction, and binding
|
|
5
|
+
* source merging — no state, no side effects.
|
|
6
|
+
*/
|
|
7
|
+
import { isMinimized } from './panel-state.js';
|
|
8
|
+
import { createKeyMap } from './keybindings.js';
|
|
9
|
+
import { clipToWidth, visibleLength } from './viewport.js';
|
|
10
|
+
/** Recursively collect all pane IDs from a layout tree in declaration order. */
|
|
11
|
+
export function collectPaneIds(node) {
|
|
12
|
+
if (node.kind === 'pane')
|
|
13
|
+
return [node.paneId];
|
|
14
|
+
if (node.kind === 'split')
|
|
15
|
+
return [...collectPaneIds(node.paneA), ...collectPaneIds(node.paneB)];
|
|
16
|
+
const ids = [];
|
|
17
|
+
for (const areaName of declaredAreaNames(node.areas)) {
|
|
18
|
+
const child = node.cells[areaName];
|
|
19
|
+
if (child == null)
|
|
20
|
+
continue;
|
|
21
|
+
ids.push(...collectPaneIds(child));
|
|
22
|
+
}
|
|
23
|
+
return ids;
|
|
24
|
+
}
|
|
25
|
+
/** Extract unique area names from CSS-grid-style template strings. */
|
|
26
|
+
export function declaredAreaNames(areas) {
|
|
27
|
+
const names = new Set();
|
|
28
|
+
for (const row of areas) {
|
|
29
|
+
for (const token of row.trim().split(/\s+/)) {
|
|
30
|
+
if (token !== '' && token !== '.')
|
|
31
|
+
names.add(token);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return [...names];
|
|
35
|
+
}
|
|
36
|
+
/** Throw if any pane ID appears more than once in the given list. */
|
|
37
|
+
export function assertUniquePaneIds(paneIds, scope) {
|
|
38
|
+
const seen = new Set();
|
|
39
|
+
for (const paneId of paneIds) {
|
|
40
|
+
if (seen.has(paneId)) {
|
|
41
|
+
throw new Error(`createFramedApp: duplicate paneId "${paneId}" in ${scope}`);
|
|
42
|
+
}
|
|
43
|
+
seen.add(paneId);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** Walk the layout tree to find the pane node with the given ID. */
|
|
47
|
+
export function findPaneNode(node, paneId) {
|
|
48
|
+
if (node.kind === 'pane')
|
|
49
|
+
return node.paneId === paneId ? node : undefined;
|
|
50
|
+
if (node.kind === 'split')
|
|
51
|
+
return findPaneNode(node.paneA, paneId) ?? findPaneNode(node.paneB, paneId);
|
|
52
|
+
for (const key of Object.keys(node.cells)) {
|
|
53
|
+
const found = findPaneNode(node.cells[key], paneId);
|
|
54
|
+
if (found)
|
|
55
|
+
return found;
|
|
56
|
+
}
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
/** Check if a layout node (or its first descendant pane) is minimized. */
|
|
60
|
+
export function isPaneMinimized(node, visibility) {
|
|
61
|
+
if (node.kind === 'pane')
|
|
62
|
+
return isMinimized(visibility, node.paneId);
|
|
63
|
+
// For containers, check if all descendant panes are minimized
|
|
64
|
+
const paneIds = collectPaneIds(node);
|
|
65
|
+
return paneIds.length > 0 && paneIds.every((id) => isMinimized(visibility, id));
|
|
66
|
+
}
|
|
67
|
+
/** Merge two read-only maps into a new mutable map. */
|
|
68
|
+
export function mergeMaps(a, b) {
|
|
69
|
+
const out = new Map();
|
|
70
|
+
for (const [k, v] of a)
|
|
71
|
+
out.set(k, v);
|
|
72
|
+
for (const [k, v] of b)
|
|
73
|
+
out.set(k, v);
|
|
74
|
+
return out;
|
|
75
|
+
}
|
|
76
|
+
/** Translate a layout rect by the given row and column offsets. */
|
|
77
|
+
export function offsetRect(rect, rowOffset, colOffset) {
|
|
78
|
+
return {
|
|
79
|
+
row: rowOffset + rect.row,
|
|
80
|
+
col: colOffset + rect.col,
|
|
81
|
+
width: rect.width,
|
|
82
|
+
height: rect.height,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/** Compute the available rect for page content (screen minus header and footer). */
|
|
86
|
+
export function frameBodyRect(columns, rows) {
|
|
87
|
+
return {
|
|
88
|
+
row: Math.min(2, Math.max(0, rows)),
|
|
89
|
+
col: 0,
|
|
90
|
+
width: Math.max(0, columns),
|
|
91
|
+
height: Math.max(0, rows - 2),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/** Clip or pad a single line to exactly `width` visible columns. */
|
|
95
|
+
export function fitLine(line, width) {
|
|
96
|
+
const clipped = clipToWidth(line, Math.max(0, width));
|
|
97
|
+
return clipped + ' '.repeat(Math.max(0, width - visibleLength(clipped)));
|
|
98
|
+
}
|
|
99
|
+
/** Combine multiple binding sources into a single source for help display. */
|
|
100
|
+
export function mergeBindingSources(...sources) {
|
|
101
|
+
return {
|
|
102
|
+
bindings() {
|
|
103
|
+
const merged = [];
|
|
104
|
+
for (const src of sources) {
|
|
105
|
+
if (src == null)
|
|
106
|
+
continue;
|
|
107
|
+
merged.push(...src.bindings());
|
|
108
|
+
}
|
|
109
|
+
return merged;
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/** Build the default key map for frame-level actions (tabs, panes, scroll, help '?', command palette 'ctrl+p'/':'). */
|
|
114
|
+
export function createFrameKeyMap() {
|
|
115
|
+
return createKeyMap()
|
|
116
|
+
.group('Frame', (g) => g
|
|
117
|
+
.bind('?', 'Toggle help', { type: 'toggle-help' })
|
|
118
|
+
.bind('[', 'Previous tab', { type: 'prev-tab' })
|
|
119
|
+
.bind(']', 'Next tab', { type: 'next-tab' })
|
|
120
|
+
.bind('tab', 'Next pane', { type: 'next-pane' })
|
|
121
|
+
.bind('shift+tab', 'Previous pane', { type: 'prev-pane' })
|
|
122
|
+
.bind('ctrl+p', 'Open command palette', { type: 'open-palette' })
|
|
123
|
+
.bind(':', 'Open command palette', { type: 'open-palette' })
|
|
124
|
+
.bind('ctrl+m', 'Fold/unfold pane', { type: 'toggle-minimize' })
|
|
125
|
+
.bind('ctrl+f', 'Full-screen pane', { type: 'toggle-maximize' }))
|
|
126
|
+
.group('Dock', (g) => g
|
|
127
|
+
.bind('ctrl+shift+up', 'Move pane up', { type: 'dock-up' })
|
|
128
|
+
.bind('ctrl+shift+down', 'Move pane down', { type: 'dock-down' })
|
|
129
|
+
.bind('ctrl+shift+left', 'Move pane left', { type: 'dock-left' })
|
|
130
|
+
.bind('ctrl+shift+right', 'Move pane right', { type: 'dock-right' }))
|
|
131
|
+
.group('Scroll', (g) => g
|
|
132
|
+
.bind('j', 'Scroll down', { type: 'scroll-down' })
|
|
133
|
+
.bind('k', 'Scroll up', { type: 'scroll-up' })
|
|
134
|
+
.bind('d', 'Page down', { type: 'page-down' })
|
|
135
|
+
.bind('u', 'Page up', { type: 'page-up' })
|
|
136
|
+
.bind('g', 'Top', { type: 'top' })
|
|
137
|
+
.bind('shift+g', 'Bottom', { type: 'bottom' })
|
|
138
|
+
.bind('h', 'Scroll left', { type: 'scroll-left' })
|
|
139
|
+
.bind('l', 'Scroll right', { type: 'scroll-right' }));
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=app-frame-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-frame-utils.js","sourceRoot":"","sources":["../src/app-frame-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/app-frame.d.ts
CHANGED
|
@@ -5,17 +5,21 @@
|
|
|
5
5
|
* panel-scoped overlay context, and optional frame-level command palette.
|
|
6
6
|
*/
|
|
7
7
|
import { type BindingSource } from './help.js';
|
|
8
|
-
import {
|
|
8
|
+
import type { KeyMap } from './keybindings.js';
|
|
9
9
|
import type { App, Cmd } from './types.js';
|
|
10
10
|
import type { Overlay } from './overlay.js';
|
|
11
11
|
import type { TransitionShaderFn } from './transition-shaders.js';
|
|
12
12
|
import { type BuiltinTransition } from './transition-shaders.js';
|
|
13
13
|
import type { CommandPaletteItem, CommandPaletteState } from './command-palette.js';
|
|
14
14
|
import type { GridTrack } from './grid.js';
|
|
15
|
-
import {
|
|
16
|
-
import { type SplitPaneDirection, type SplitPaneState } from './split-pane.js';
|
|
15
|
+
import type { SplitPaneDirection, SplitPaneState } from './split-pane.js';
|
|
17
16
|
import type { LayoutRect } from './layout-rect.js';
|
|
18
|
-
import
|
|
17
|
+
import type { PanelVisibilityState } from './panel-state.js';
|
|
18
|
+
import type { PanelMaximizeState } from './panel-state.js';
|
|
19
|
+
import type { PanelDockState } from './panel-dock.js';
|
|
20
|
+
import type { SerializedLayoutState } from './layout-preset.js';
|
|
21
|
+
import type { OverflowX } from './focus-area.js';
|
|
22
|
+
import type { Timeline, TimelineState } from './timeline.js';
|
|
19
23
|
/** Page declaration consumed by {@link createFramedApp}. */
|
|
20
24
|
export interface FramePage<PageModel, Msg> {
|
|
21
25
|
/** Stable page id. */
|
|
@@ -126,6 +130,8 @@ export interface CreateFramedAppOptions<PageModel, Msg> {
|
|
|
126
130
|
* ```
|
|
127
131
|
*/
|
|
128
132
|
readonly transitionTimeline?: Timeline;
|
|
133
|
+
/** Optional initial layout state to restore on startup. */
|
|
134
|
+
readonly initialLayout?: SerializedLayoutState;
|
|
129
135
|
}
|
|
130
136
|
/** Stored pane scroll coordinates. */
|
|
131
137
|
export interface FramePaneScroll {
|
|
@@ -168,6 +174,16 @@ export interface FrameModel<PageModel> {
|
|
|
168
174
|
readonly transitionTimeline?: Timeline;
|
|
169
175
|
/** Timeline state for the active transition. */
|
|
170
176
|
readonly transitionTimelineState?: TimelineState;
|
|
177
|
+
/** Monotonic frame counter for the active transition (for temporal shader effects). */
|
|
178
|
+
readonly transitionFrame: number;
|
|
179
|
+
/** Per-page panel visibility (minimize/fold) state. */
|
|
180
|
+
readonly minimizedByPage: Readonly<Record<string, PanelVisibilityState>>;
|
|
181
|
+
/** Per-page maximized pane state. */
|
|
182
|
+
readonly maximizedPaneByPage: Readonly<Record<string, PanelMaximizeState>>;
|
|
183
|
+
/** Per-page dock order state. */
|
|
184
|
+
readonly dockStateByPage: Readonly<Record<string, PanelDockState>>;
|
|
185
|
+
/** Per-page split ratio overrides (from layout presets/session restore). */
|
|
186
|
+
readonly splitRatioOverrides: Readonly<Record<string, Readonly<Record<string, number>>>>;
|
|
171
187
|
}
|
|
172
188
|
/**
|
|
173
189
|
* Create a fully framed TEA app shell.
|
package/dist/app-frame.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-frame.d.ts","sourceRoot":"","sources":["../src/app-frame.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"app-frame.d.ts","sourceRoot":"","sources":["../src/app-frame.ts"],"names":[],"mappings":"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"}
|