@flyingrobots/bijou-tui 4.0.0 → 4.2.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.
Files changed (95) hide show
  1. package/README.md +24 -7
  2. package/dist/app-frame-actions.d.ts +5 -5
  3. package/dist/app-frame-actions.d.ts.map +1 -1
  4. package/dist/app-frame-actions.js +71 -5
  5. package/dist/app-frame-actions.js.map +1 -1
  6. package/dist/app-frame-i18n.d.ts +12 -0
  7. package/dist/app-frame-i18n.d.ts.map +1 -0
  8. package/dist/app-frame-i18n.js +92 -0
  9. package/dist/app-frame-i18n.js.map +1 -0
  10. package/dist/app-frame-layers.d.ts +33 -0
  11. package/dist/app-frame-layers.d.ts.map +1 -0
  12. package/dist/app-frame-layers.js +136 -0
  13. package/dist/app-frame-layers.js.map +1 -0
  14. package/dist/app-frame-palette.d.ts +6 -2
  15. package/dist/app-frame-palette.d.ts.map +1 -1
  16. package/dist/app-frame-palette.js +42 -10
  17. package/dist/app-frame-palette.js.map +1 -1
  18. package/dist/app-frame-render.d.ts +13 -5
  19. package/dist/app-frame-render.d.ts.map +1 -1
  20. package/dist/app-frame-render.js +216 -70
  21. package/dist/app-frame-render.js.map +1 -1
  22. package/dist/app-frame-types.d.ts +120 -20
  23. package/dist/app-frame-types.d.ts.map +1 -1
  24. package/dist/app-frame-types.js +8 -6
  25. package/dist/app-frame-types.js.map +1 -1
  26. package/dist/app-frame-utils.d.ts +8 -3
  27. package/dist/app-frame-utils.d.ts.map +1 -1
  28. package/dist/app-frame-utils.js +42 -27
  29. package/dist/app-frame-utils.js.map +1 -1
  30. package/dist/app-frame.d.ts +125 -11
  31. package/dist/app-frame.d.ts.map +1 -1
  32. package/dist/app-frame.js +1406 -158
  33. package/dist/app-frame.js.map +1 -1
  34. package/dist/browsable-list.d.ts.map +1 -1
  35. package/dist/browsable-list.js +15 -5
  36. package/dist/browsable-list.js.map +1 -1
  37. package/dist/collection-surface.d.ts +8 -0
  38. package/dist/collection-surface.d.ts.map +1 -0
  39. package/dist/collection-surface.js +41 -0
  40. package/dist/collection-surface.js.map +1 -0
  41. package/dist/command-palette.d.ts.map +1 -1
  42. package/dist/command-palette.js +8 -3
  43. package/dist/command-palette.js.map +1 -1
  44. package/dist/commands.js +1 -1
  45. package/dist/commands.js.map +1 -1
  46. package/dist/eventbus.d.ts.map +1 -1
  47. package/dist/eventbus.js +21 -1
  48. package/dist/eventbus.js.map +1 -1
  49. package/dist/focus-area.d.ts +7 -0
  50. package/dist/focus-area.d.ts.map +1 -1
  51. package/dist/focus-area.js +33 -15
  52. package/dist/focus-area.js.map +1 -1
  53. package/dist/index.d.ts +7 -2
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +6 -2
  56. package/dist/index.js.map +1 -1
  57. package/dist/inspector-drawer.d.ts +36 -0
  58. package/dist/inspector-drawer.d.ts.map +1 -0
  59. package/dist/inspector-drawer.js +68 -0
  60. package/dist/inspector-drawer.js.map +1 -0
  61. package/dist/layout-node-surface.d.ts +8 -0
  62. package/dist/layout-node-surface.d.ts.map +1 -1
  63. package/dist/layout-node-surface.js +26 -7
  64. package/dist/layout-node-surface.js.map +1 -1
  65. package/dist/notification.d.ts +10 -1
  66. package/dist/notification.d.ts.map +1 -1
  67. package/dist/notification.js +142 -17
  68. package/dist/notification.js.map +1 -1
  69. package/dist/overlay.d.ts +8 -0
  70. package/dist/overlay.d.ts.map +1 -1
  71. package/dist/overlay.js +23 -10
  72. package/dist/overlay.js.map +1 -1
  73. package/dist/runtime-engine.d.ts +223 -0
  74. package/dist/runtime-engine.d.ts.map +1 -0
  75. package/dist/runtime-engine.js +457 -0
  76. package/dist/runtime-engine.js.map +1 -0
  77. package/dist/runtime.d.ts.map +1 -1
  78. package/dist/runtime.js +27 -7
  79. package/dist/runtime.js.map +1 -1
  80. package/dist/shell-quit.d.ts +12 -0
  81. package/dist/shell-quit.d.ts.map +1 -0
  82. package/dist/shell-quit.js +36 -0
  83. package/dist/shell-quit.js.map +1 -0
  84. package/dist/subapp/mount.d.ts.map +1 -1
  85. package/dist/subapp/mount.js +3 -0
  86. package/dist/subapp/mount.js.map +1 -1
  87. package/dist/types.d.ts +19 -5
  88. package/dist/types.d.ts.map +1 -1
  89. package/dist/types.js +11 -0
  90. package/dist/types.js.map +1 -1
  91. package/dist/view-output.d.ts +1 -0
  92. package/dist/view-output.d.ts.map +1 -1
  93. package/dist/view-output.js +25 -15
  94. package/dist/view-output.js.map +1 -1
  95. package/package.json +5 -2
@@ -1,20 +1,45 @@
1
1
  /**
2
- * Internal types and message utilities for `app-frame.ts`.
2
+ * Shared types and message utilities for `app-frame.ts`.
3
3
  *
4
- * These types are NOT part of the public API surface they support
5
- * the internal wiring of `createFramedApp`.
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 { KeyMsg, Cmd } from './types.js';
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
  } | {
@@ -99,6 +130,86 @@ export type FrameAction = {
99
130
  type: 'transition-complete';
100
131
  generation: number;
101
132
  };
133
+ /** Route label for the key-observation callback. */
134
+ export type ObservedKeyRoute = 'palette' | 'help' | 'frame' | 'page' | 'global' | 'unhandled';
135
+ /**
136
+ * Discriminated union of every shell mutation or command emission that
137
+ * routing handlers can produce. Each variant is a plain fact describing
138
+ * WHAT should happen, not HOW.
139
+ */
140
+ export type FrameShellCommand<Msg> = {
141
+ readonly type: 'close-help';
142
+ } | {
143
+ readonly type: 'close-settings';
144
+ } | {
145
+ readonly type: 'close-notification-center';
146
+ } | {
147
+ readonly type: 'close-palette';
148
+ } | {
149
+ readonly type: 'close-quit-confirm';
150
+ } | {
151
+ readonly type: 'open-help';
152
+ } | {
153
+ readonly type: 'open-quit-confirm';
154
+ } | {
155
+ readonly type: 'open-search-palette';
156
+ } | {
157
+ readonly type: 'open-command-palette';
158
+ } | {
159
+ readonly type: 'settings-focus-move';
160
+ readonly delta: number;
161
+ } | {
162
+ readonly type: 'settings-scroll';
163
+ readonly delta: number;
164
+ } | {
165
+ readonly type: 'settings-scroll-to';
166
+ readonly position: 'top' | 'bottom';
167
+ } | {
168
+ readonly type: 'activate-settings-row';
169
+ readonly rowIndex: number;
170
+ } | {
171
+ readonly type: 'notification-center-scroll';
172
+ readonly delta: number;
173
+ } | {
174
+ readonly type: 'notification-center-scroll-to';
175
+ readonly position: 'top' | 'bottom';
176
+ } | {
177
+ readonly type: 'cycle-notification-filter';
178
+ } | {
179
+ readonly type: 'help-scroll';
180
+ readonly action: 'up' | 'down' | 'page-up' | 'page-down' | 'top' | 'bottom';
181
+ } | {
182
+ readonly type: 'focus-pane';
183
+ readonly paneId: string;
184
+ } | {
185
+ readonly type: 'scroll-focused-pane';
186
+ readonly direction: 'up' | 'down';
187
+ } | {
188
+ readonly type: 'switch-tab';
189
+ readonly delta: number;
190
+ } | {
191
+ readonly type: 'apply-frame-action';
192
+ readonly action: FrameAction;
193
+ } | {
194
+ readonly type: 'palette-key';
195
+ readonly msg: KeyMsg;
196
+ } | {
197
+ readonly type: 'emit-page-msg';
198
+ readonly pageId: string;
199
+ readonly msg: Msg | MouseMsg;
200
+ } | {
201
+ readonly type: 'emit-global-msg';
202
+ readonly msg: Msg;
203
+ } | {
204
+ readonly type: 'quit';
205
+ } | {
206
+ readonly type: 'dismiss-notification';
207
+ readonly notificationId: number;
208
+ } | {
209
+ readonly type: 'observed-key';
210
+ readonly msg: KeyMsg;
211
+ readonly route: ObservedKeyRoute;
212
+ };
102
213
  /** Discriminated union of command palette navigation/selection actions. */
103
214
  export type PaletteAction = {
104
215
  type: 'cp-next';
@@ -113,31 +224,20 @@ export type PaletteAction = {
113
224
  } | {
114
225
  type: 'cp-close';
115
226
  };
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
227
  /** Type guard: is this message a frame-internal action wrapper? */
128
228
  export declare function isFrameScopedMsg(value: unknown): value is FrameScopedMsg;
129
229
  /** Wrap a frame action into a FrameScopedMsg for the update loop. */
130
230
  export declare function wrapFrameMsg(action: FrameAction): FrameScopedMsg;
131
231
  /** Type guard: is this message a page-scoped wrapper? */
132
232
  export declare function isPageScopedMsg<Msg>(value: unknown): value is PageScopedMsg<Msg>;
133
- /** Tag a user message with its originating page ID. */
134
- export declare function wrapPageMsg<Msg>(pageId: string, msg: Msg): Msg;
233
+ /** Tag a page-bound message with its originating page ID. */
234
+ export declare function wrapPageMsg<Msg>(pageId: string, msg: FramePageMsg<Msg>): PageScopedMsg<Msg>;
135
235
  /** Create a command that immediately resolves with the given message. */
136
- export declare function emitMsg<Msg>(msg: Msg): Cmd<Msg>;
236
+ export declare function emitMsg<Msg>(msg: Msg): Cmd<FramedAppMsg<Msg>>;
137
237
  /** Create a command that emits a page-scoped message. */
138
- export declare function emitMsgForPage<Msg>(pageId: string, msg: Msg): Cmd<Msg>;
238
+ export declare function emitMsgForPage<Msg>(pageId: string, msg: FramePageMsg<Msg>): Cmd<FramedAppMsg<Msg>>;
139
239
  /** 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>;
240
+ export declare function wrapCmdForPage<Msg>(pageId: string, cmd: Cmd<Msg>): Cmd<FramedAppMsg<Msg>>;
141
241
  /** Convert a binding's key combo into a synthetic KeyMsg for dispatch. */
142
242
  export declare function comboToMsg(binding: BindingInfo): KeyMsg;
143
243
  import type { RuntimeIssue } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"app-frame-types.d.ts","sourceRoot":"","sources":["../src/app-frame-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-frame-types.d.ts","sourceRoot":"","sources":["../src/app-frame-types.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  /**
2
- * Internal types and message utilities for `app-frame.ts`.
2
+ * Shared types and message utilities for `app-frame.ts`.
3
3
  *
4
- * These types are NOT part of the public API surface they support
5
- * the internal wiring of `createFramedApp`.
4
+ * This module contains the public framed-app message wrappers plus the
5
+ * internal wiring used by `createFramedApp`.
6
6
  */
7
- import { QUIT } from './types.js';
7
+ import { QUIT, isCmdCleanup } from './types.js';
8
8
  // ---------------------------------------------------------------------------
9
9
  // Symbols
10
10
  // ---------------------------------------------------------------------------
11
11
  export const PAGE_MSG_TOKEN = Symbol('app-frame-page-msg');
12
12
  export const FRAME_MSG_TOKEN = Symbol('app-frame-frame-msg');
13
13
  // ---------------------------------------------------------------------------
14
- // Message utility functions
14
+ // Message wrappers
15
15
  // ---------------------------------------------------------------------------
16
16
  /** Type guard: is this message a frame-internal action wrapper? */
17
17
  export function isFrameScopedMsg(value) {
@@ -34,7 +34,7 @@ export function isPageScopedMsg(value) {
34
34
  && PAGE_MSG_TOKEN in value
35
35
  && value[PAGE_MSG_TOKEN] === true;
36
36
  }
37
- /** Tag a user message with its originating page ID. */
37
+ /** Tag a page-bound message with its originating page ID. */
38
38
  export function wrapPageMsg(pageId, msg) {
39
39
  return {
40
40
  [PAGE_MSG_TOKEN]: true,
@@ -56,6 +56,8 @@ export function wrapCmdForPage(pageId, cmd) {
56
56
  const result = await cmd((msg) => emit(wrapPageMsg(pageId, msg)), caps);
57
57
  if (result === undefined || result === QUIT)
58
58
  return result;
59
+ if (isCmdCleanup(result))
60
+ return result;
59
61
  return wrapPageMsg(pageId, result);
60
62
  };
61
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app-frame-types.js","sourceRoot":"","sources":["../src/app-frame-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAMlC,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AA8F7D,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E,mEAAmE;AACnE,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,KAAK,KAAK,IAAI;WACd,eAAe,IAAI,KAAK;WACvB,KAAwB,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;AAC3D,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,OAAO;QACL,CAAC,eAAe,CAAC,EAAE,IAAI;QACvB,MAAM;KACP,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,eAAe,CAAM,KAAc;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,KAAK,KAAK,IAAI;WACd,cAAc,IAAI,KAAK;WACtB,KAA4B,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;AAC9D,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,WAAW,CAAM,MAAc,EAAE,GAAQ;IACvD,OAAO;QACL,CAAC,cAAc,CAAC,EAAE,IAAI;QACtB,MAAM;QACN,GAAG;KACc,CAAC;AACtB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,OAAO,CAAM,GAAQ;IACnC,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC;AACrC,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,cAAc,CAAM,MAAc,EAAE,GAAQ;IAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,cAAc,CAAM,MAAc,EAAE,GAAa;IAC/D,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAmB,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1F,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QAC3D,OAAO,WAAW,CAAC,MAAM,EAAE,MAAa,CAAC,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,OAAoB;IAC7C,OAAO;QACL,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG;QACtB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;QACxB,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK;KAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"app-frame-types.js","sourceRoot":"","sources":["../src/app-frame-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAMhD,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AA8K7D,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,mEAAmE;AACnE,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,KAAK,KAAK,IAAI;WACd,eAAe,IAAI,KAAK;WACvB,KAAwB,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;AAC3D,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,OAAO;QACL,CAAC,eAAe,CAAC,EAAE,IAAI;QACvB,MAAM;KACP,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,eAAe,CAAM,KAAc;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,KAAK,KAAK,IAAI;WACd,cAAc,IAAI,KAAK;WACtB,KAA4B,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;AAC9D,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,WAAW,CAAM,MAAc,EAAE,GAAsB;IACrE,OAAO;QACL,CAAC,cAAc,CAAC,EAAE,IAAI;QACtB,MAAM;QACN,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,OAAO,CAAM,GAAQ;IACnC,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC;AACrC,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,cAAc,CAAM,MAAc,EAAE,GAAsB;IACxE,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,cAAc,CAAM,MAAc,EAAE,GAAa;IAC/D,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACxE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QAC3D,IAAI,YAAY,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QACxC,OAAO,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,OAAoB;IAC7C,OAAO;QACL,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG;QACtB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;QACxB,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK;KAC3B,CAAC;AACJ,CAAC"}
@@ -10,6 +10,7 @@ import type { LayoutRect } from './layout-rect.js';
10
10
  import type { PanelVisibilityState } from './panel-state.js';
11
11
  import { type KeyMap } from './keybindings.js';
12
12
  import type { BindingSource } from './help.js';
13
+ import type { I18nRuntime } from '@flyingrobots/bijou-i18n';
13
14
  /** Recursively collect all pane IDs from a layout tree in declaration order. */
14
15
  export declare function collectPaneIds(node: FrameLayoutNode): string[];
15
16
  /** Extract unique area names from CSS-grid-style template strings. */
@@ -26,12 +27,16 @@ export declare function isPaneMinimized(node: FrameLayoutNode, visibility: Panel
26
27
  export declare function mergeMaps<K, V>(a: ReadonlyMap<K, V>, b: ReadonlyMap<K, V>): Map<K, V>;
27
28
  /** Translate a layout rect by the given row and column offsets. */
28
29
  export declare function offsetRect(rect: LayoutRect, rowOffset: number, colOffset: number): LayoutRect;
29
- /** Compute the available rect for page content (screen minus header and footer). */
30
- export declare function frameBodyRect(columns: number, rows: number): LayoutRect;
30
+ /** Compute the available rect for page content after reserving shell chrome rows. */
31
+ export declare function frameBodyRect(columns: number, rows: number, topRows?: number, bottomRows?: number): LayoutRect;
31
32
  /** Clip or pad a single line to exactly `width` visible columns. */
32
33
  export declare function fitLine(line: string, width: number): string;
33
34
  /** Combine multiple binding sources into a single source for help display. */
34
35
  export declare function mergeBindingSources(...sources: Array<BindingSource | undefined>): BindingSource;
35
36
  /** Build the default key map for frame-level actions (tabs, panes, scroll, help '?', command palette 'ctrl+p'/':'). */
36
- export declare function createFrameKeyMap(): KeyMap<FrameAction>;
37
+ export declare function createFrameKeyMap(options?: {
38
+ readonly enableSettings?: boolean;
39
+ readonly enableNotifications?: boolean;
40
+ readonly i18n?: I18nRuntime;
41
+ }): KeyMap<FrameAction>;
37
42
  //# sourceMappingURL=app-frame-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-frame-utils.d.ts","sourceRoot":"","sources":["../src/app-frame-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI/C,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,CAW9D;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAQpE;AAED,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQnF;AAED,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,CAQ1H;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAKhG;AAED,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAKrF;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAO7F;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAOvE;AAED,oEAAoE;AACpE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC,GAAG,aAAa,CAW/F;AAED,uHAAuH;AACvH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,WAAW,CAAC,CA6BvD"}
1
+ {"version":3,"file":"app-frame-utils.d.ts","sourceRoot":"","sources":["../src/app-frame-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,CAW9D;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAQpE;AAED,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQnF;AAED,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,CAQ1H;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAKhG;AAED,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAKrF;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAO7F;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,SAAI,EACX,UAAU,SAAI,GACb,UAAU,CASZ;AAED,oEAAoE;AACpE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC,GAAG,aAAa,CAW/F;AAED,uHAAuH;AACvH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE;IAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAO,GACvH,MAAM,CAAC,WAAW,CAAC,CA4CrB"}
@@ -7,6 +7,7 @@
7
7
  import { isMinimized } from './panel-state.js';
8
8
  import { createKeyMap } from './keybindings.js';
9
9
  import { clipToWidth, visibleLength } from './viewport.js';
10
+ import { frameMessage } from './app-frame-i18n.js';
10
11
  /** Recursively collect all pane IDs from a layout tree in declaration order. */
11
12
  export function collectPaneIds(node) {
12
13
  if (node.kind === 'pane')
@@ -82,13 +83,15 @@ export function offsetRect(rect, rowOffset, colOffset) {
82
83
  height: rect.height,
83
84
  };
84
85
  }
85
- /** Compute the available rect for page content (screen minus header and footer). */
86
- export function frameBodyRect(columns, rows) {
86
+ /** Compute the available rect for page content after reserving shell chrome rows. */
87
+ export function frameBodyRect(columns, rows, topRows = 1, bottomRows = 1) {
88
+ const reservedTop = Math.max(0, Math.floor(topRows));
89
+ const reservedBottom = Math.max(0, Math.floor(bottomRows));
87
90
  return {
88
- row: Math.min(2, Math.max(0, rows)),
91
+ row: Math.min(reservedTop, Math.max(0, rows)),
89
92
  col: 0,
90
93
  width: Math.max(0, columns),
91
- height: Math.max(0, rows - 2),
94
+ height: Math.max(0, rows - reservedTop - reservedBottom),
92
95
  };
93
96
  }
94
97
  /** Clip or pad a single line to exactly `width` visible columns. */
@@ -111,31 +114,43 @@ export function mergeBindingSources(...sources) {
111
114
  };
112
115
  }
113
116
  /** Build the default key map for frame-level actions (tabs, panes, scroll, help '?', command palette 'ctrl+p'/':'). */
114
- export function createFrameKeyMap() {
115
- return createKeyMap()
117
+ export function createFrameKeyMap(options = {}) {
118
+ const t = (id, fallback) => frameMessage(options.i18n, id, fallback);
119
+ const keyMap = createKeyMap()
116
120
  .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' }))
121
+ .bind('?', t('key.toggleHelp', 'Toggle help'), { type: 'toggle-help' })
122
+ .bind('[', t('key.prevTab', 'Previous tab'), { type: 'prev-tab' })
123
+ .bind(']', t('key.nextTab', 'Next tab'), { type: 'next-tab' })
124
+ .bind('tab', t('key.nextPane', 'Next pane'), { type: 'next-pane' })
125
+ .bind('shift+tab', t('key.prevPane', 'Previous pane'), { type: 'prev-pane' })
126
+ .bind('/', t('key.search', 'Search'), { type: 'open-search' })
127
+ .bind('ctrl+p', t('key.openPalette', 'Open command palette'), { type: 'open-palette' })
128
+ .bind(':', t('key.openPalette', 'Open command palette'), { type: 'open-palette' })
129
+ .bind('ctrl+m', t('key.toggleMinimize', 'Fold/unfold pane'), { type: 'toggle-minimize' })
130
+ .bind('ctrl+f', t('key.toggleMaximize', 'Full-screen pane'), { type: 'toggle-maximize' }))
126
131
  .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' }))
132
+ .bind('ctrl+shift+up', t('key.dockUp', 'Move pane up'), { type: 'dock-up' })
133
+ .bind('ctrl+shift+down', t('key.dockDown', 'Move pane down'), { type: 'dock-down' })
134
+ .bind('ctrl+shift+left', t('key.dockLeft', 'Move pane left'), { type: 'dock-left' })
135
+ .bind('ctrl+shift+right', t('key.dockRight', 'Move pane right'), { type: 'dock-right' }))
131
136
  .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' }));
137
+ .bind('j', t('key.scrollDown', 'Scroll down'), { type: 'scroll-down' })
138
+ .bind('k', t('key.scrollUp', 'Scroll up'), { type: 'scroll-up' })
139
+ .bind('d', t('key.pageDown', 'Page down'), { type: 'page-down' })
140
+ .bind('u', t('key.pageUp', 'Page up'), { type: 'page-up' })
141
+ .bind('g', t('key.top', 'Top'), { type: 'top' })
142
+ .bind('shift+g', t('key.bottom', 'Bottom'), { type: 'bottom' })
143
+ .bind('h', t('key.scrollLeft', 'Scroll left'), { type: 'scroll-left' })
144
+ .bind('l', t('key.scrollRight', 'Scroll right'), { type: 'scroll-right' }));
145
+ if (options.enableSettings) {
146
+ keyMap.group('Shell', (g) => g
147
+ .bind('ctrl+,', t('key.settings', 'Settings'), { type: 'toggle-settings' })
148
+ .bind('f2', t('key.settings', 'Settings'), { type: 'toggle-settings' }));
149
+ }
150
+ if (options.enableNotifications) {
151
+ keyMap.group('Shell', (g) => g
152
+ .bind('shift+n', t('key.notifications', 'Notifications'), { type: 'toggle-notifications' }));
153
+ }
154
+ return keyMap;
140
155
  }
141
156
  //# sourceMappingURL=app-frame-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-frame-utils.js","sourceRoot":"","sources":["../src/app-frame-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-frame-utils.js","sourceRoot":"","sources":["../src/app-frame-utils.ts"],"names":[],"mappings":"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"}