@aiwayds/dsh-tui-pi 0.1.0 → 0.3.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 (67) hide show
  1. package/README.md +205 -68
  2. package/lib/agent-manager.d.ts +125 -0
  3. package/lib/agent-manager.js +298 -0
  4. package/lib/agent-manager.js.map +1 -0
  5. package/lib/agents.d.ts +30 -0
  6. package/lib/agents.js +468 -0
  7. package/lib/agents.js.map +1 -0
  8. package/lib/append-system.d.ts +2 -0
  9. package/lib/append-system.js +1 -1
  10. package/lib/append-system.js.map +1 -1
  11. package/lib/dsh-events.d.ts +12 -0
  12. package/lib/editor.d.ts +58 -0
  13. package/lib/editor.js +92 -0
  14. package/lib/editor.js.map +1 -1
  15. package/lib/footer.d.ts +8 -0
  16. package/lib/footer.js +8 -0
  17. package/lib/footer.js.map +1 -1
  18. package/lib/hotkeys.d.ts +93 -0
  19. package/lib/hotkeys.js +305 -0
  20. package/lib/hotkeys.js.map +1 -0
  21. package/lib/index.js +342 -38
  22. package/lib/index.js.map +1 -1
  23. package/lib/keymap.d.ts +177 -0
  24. package/lib/keymap.js +189 -0
  25. package/lib/keymap.js.map +1 -0
  26. package/lib/live-widgets.d.ts +82 -29
  27. package/lib/live-widgets.js +222 -92
  28. package/lib/live-widgets.js.map +1 -1
  29. package/lib/messages.d.ts +4 -2
  30. package/lib/messages.js +8 -3
  31. package/lib/messages.js.map +1 -1
  32. package/lib/panels.d.ts +177 -0
  33. package/lib/panels.js +331 -0
  34. package/lib/panels.js.map +1 -0
  35. package/lib/provider-catalog.d.ts +31 -8
  36. package/lib/provider-catalog.js +63 -8
  37. package/lib/provider-catalog.js.map +1 -1
  38. package/lib/selectors.d.ts +12 -1
  39. package/lib/selectors.js +5 -2
  40. package/lib/selectors.js.map +1 -1
  41. package/lib/session.d.ts +36 -0
  42. package/lib/session.js +171 -10
  43. package/lib/session.js.map +1 -1
  44. package/lib/settings.d.ts +1 -2
  45. package/lib/settings.js +29 -2
  46. package/lib/settings.js.map +1 -1
  47. package/lib/subagent-policy.d.ts +58 -0
  48. package/lib/subagent-policy.js +137 -0
  49. package/lib/subagent-policy.js.map +1 -0
  50. package/lib/subagent-viewer.d.ts +49 -0
  51. package/lib/subagent-viewer.js +523 -0
  52. package/lib/subagent-viewer.js.map +1 -0
  53. package/lib/theme/index.js +4 -0
  54. package/lib/theme/index.js.map +1 -1
  55. package/lib/theme/palette.d.ts +21 -3
  56. package/lib/theme/palette.js +27 -6
  57. package/lib/theme/palette.js.map +1 -1
  58. package/lib/theme-settings.d.ts +39 -4
  59. package/lib/theme-settings.js +69 -12
  60. package/lib/theme-settings.js.map +1 -1
  61. package/lib/tui.d.ts +32 -12
  62. package/lib/tui.js +109 -36
  63. package/lib/tui.js.map +1 -1
  64. package/package.json +3 -4
  65. package/patches/@earendil-works__pi-tui.patch +206 -2
  66. package/scripts/dev-install.mjs +87 -0
  67. package/scripts/link-dsh-closure.mjs +85 -0
package/lib/messages.js CHANGED
@@ -436,15 +436,20 @@ export class TranscriptRenderer {
436
436
  * built at the current terminal width: below 96 columns it degrades to
437
437
  * the whale alone, and every rebuild (relayout/setTheme replay) reads the
438
438
  * width afresh, so narrowing drops the wordmark and widening restores it.
439
- * The quote line is clipped to the terminal width before styling (the
440
- * repo rule — ANSI never goes through the clipper), so it never wraps.
439
+ * The quote line — whale-prefixed (`🐳 「…」`, the same 🐳 icon that
440
+ * speaks inline for the assistant in chat) — is clipped to the terminal
441
+ * width before styling (the repo rule — ANSI never goes through the
442
+ * clipper), so it never wraps.
441
443
  */
442
444
  renderWelcome() {
443
445
  this.doc.addChild(new Spacer(1));
444
446
  this.doc.addChild(new Text(buildWelcomeBanner(process.stdout.columns), 1, 0));
445
447
  this.doc.addChild(new Spacer(1));
446
448
  // (columns ?? Infinity): non-TTY contexts (tests) get the full line.
447
- const quote = clipToWidth(formatDailyQuote(this.dailyQuote), (process.stdout.columns ?? Infinity) - 2);
449
+ // 🐳 「…」: whale-prefix the caption (same icon that speaks inline in
450
+ // chat) before clipping so the clip is width-safe over the full plain
451
+ // text (🐳 is 2 visible columns, plus the one separating space).
452
+ const quote = clipToWidth(`🐳 ${formatDailyQuote(this.dailyQuote)}`, (process.stdout.columns ?? Infinity) - 2);
448
453
  this.doc.addChild(new Text(ansiFg(this.theme.palette.fgSubtle) + quote + RESET, 1, 0));
449
454
  this.doc.addChild(new Spacer(1));
450
455
  this.requestRender();
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Reusable select-panel framework — the shared building blocks behind every
3
+ * picker/browser overlay in this TUI (agents table, field windows, viewers,
4
+ * and future migrations of the /model, /settings and /resume surfaces).
5
+ *
6
+ * What lives here:
7
+ *
8
+ * - `padCell` / `columnWidths` — width-exact table cells (clip + pad by
9
+ * VISIBLE columns, CJK-safe) and fixed+flex column layout. Cells are
10
+ * padded so columns align even when row content has different widths —
11
+ * the classic "table rows are misaligned" bug is a missing pad, not a
12
+ * missing clip.
13
+ * - `ListController` — pure navigation state (index/scroll/viewport) with
14
+ * up/down/pageUp/pageDown and viewport clamping; unit-testable, reused by
15
+ * every panel.
16
+ * - `TablePanel` — a self-drawn table: header row + data rows + navigation
17
+ * + scroll info + selection highlight.
18
+ * - `FieldPanel` — a title + read-only content block + editable field rows
19
+ * (Enter edits the focused row, optional single-key shortcuts).
20
+ * - `ViewerPanel` — a read-only line viewer with a line cap.
21
+ * - `PanelHost` — overlay lifecycle: swap to a new overlay (show-new-then-
22
+ * hide-old, no focus flash), teardown on showOverlay failure, one host
23
+ * per interactive flow.
24
+ */
25
+ import { type Component, type OverlayHandle, type TUI } from '@earendil-works/pi-tui';
26
+ import { type TuiTheme } from './theme/index.ts';
27
+ /** Row marker slot width (▸ or two spaces). */
28
+ export declare const MARKER_W = 2;
29
+ /** Column separator between table cells (box-drawing, matches the frame). */
30
+ export declare const TABLE_SEP = " \u2502 ";
31
+ /**
32
+ * Clip `text` to `width` visible columns and pad it with spaces to exactly
33
+ * `width` columns — the width-exact cell primitive. `align` controls where
34
+ * the padding goes.
35
+ */
36
+ export declare function padCell(text: string, width: number, align?: 'left' | 'right'): string;
37
+ /** One table column definition. Exactly one column may be `flex`. */
38
+ export interface TableColumn {
39
+ key: string;
40
+ title: string;
41
+ /** Fixed visible width; ignored on the flex column. */
42
+ width?: number;
43
+ align?: 'left' | 'right';
44
+ /** The flex column takes whatever the fixed columns leave over. */
45
+ flex?: boolean;
46
+ }
47
+ /**
48
+ * Resolve visible widths for every column: fixed columns keep their width,
49
+ * the single flex column gets the remainder (with a floor), separators are
50
+ * counted between columns.
51
+ */
52
+ export declare function columnWidths(total: number, columns: readonly TableColumn[]): number[];
53
+ /** Pure navigation state shared by all panels (unit-testable). */
54
+ export declare class ListController {
55
+ index: number;
56
+ scroll: number;
57
+ readonly maxVisible: number;
58
+ private readonly length;
59
+ constructor(length: () => number, maxVisible?: number);
60
+ up(): void;
61
+ down(): void;
62
+ pageUp(): void;
63
+ pageDown(): void;
64
+ setIndex(index: number): void;
65
+ private clampScroll;
66
+ }
67
+ /** Render the ▸/spaces row marker for the selected row. */
68
+ export declare function rowMarker(selected: boolean): string;
69
+ /** Scroll info suffix, e.g. ` (3/40)` — only when the list overflows. */
70
+ export declare function scrollInfo(controller: ListController, length: number): string;
71
+ /** Shared theme fns used by every panel (fg color wrappers). */
72
+ export interface PanelThemeFns {
73
+ accent(text: string): string;
74
+ muted(text: string): string;
75
+ subtle(text: string): string;
76
+ attention(text: string): string;
77
+ }
78
+ /** Build the standard fg wrappers from a TuiTheme. */
79
+ export declare function panelThemeFns(theme: TuiTheme): PanelThemeFns;
80
+ /** Shared navigation keys; returns true when `data` was consumed. */
81
+ export declare function handleListKeys(data: string, controller: ListController, length: number): boolean;
82
+ /** Options for a TablePanel. */
83
+ export interface TablePanelOptions<T> {
84
+ columns: readonly TableColumn[];
85
+ rows: readonly T[];
86
+ /** Cell text for one row/column pair (plain text, clipped+padded by us). */
87
+ renderCell(row: T, column: TableColumn): string;
88
+ onSelect(row: T): void;
89
+ onCancel(): void;
90
+ footer?: string;
91
+ preselect?: number;
92
+ }
93
+ /**
94
+ * A self-drawn table panel: header row, aligned data rows, navigation with
95
+ * viewport clamping, selection highlight, scroll info and a footer hint.
96
+ */
97
+ export declare class TablePanel<T> implements Component {
98
+ private readonly theme;
99
+ private readonly options;
100
+ private readonly controller;
101
+ constructor(theme: TuiTheme, options: TablePanelOptions<T>);
102
+ invalidate(): void;
103
+ render(width: number): string[];
104
+ handleInput(data: string): void;
105
+ }
106
+ /** One field row of a FieldPanel. */
107
+ export interface FieldRow {
108
+ key: string;
109
+ value: string;
110
+ editable?: boolean;
111
+ }
112
+ /** Options for a FieldPanel. */
113
+ export interface FieldPanelOptions {
114
+ /** First line (may carry ANSI styling, e.g. a colored title). */
115
+ title: string;
116
+ /** Read-only content block between the title and the field rows. */
117
+ content?: readonly string[];
118
+ fields: readonly FieldRow[];
119
+ onEdit(index: number): void;
120
+ onCancel(): void;
121
+ footer?: string;
122
+ /** Single-key shortcuts (e.g. m/t/d) mapped to the same actions. */
123
+ shortcuts?: Readonly<Record<string, () => void>>;
124
+ /** Live status line (attention-colored) shown above the footer. */
125
+ status?: () => string | undefined;
126
+ }
127
+ /**
128
+ * A field panel: title, an optional read-only content block, navigable
129
+ * editable field rows (Enter edits the focused row), shortcuts, a status
130
+ * line and a footer hint.
131
+ */
132
+ export declare class FieldPanel implements Component {
133
+ private readonly theme;
134
+ private readonly options;
135
+ private readonly controller;
136
+ private readonly keyWidth;
137
+ constructor(theme: TuiTheme, options: FieldPanelOptions);
138
+ invalidate(): void;
139
+ render(width: number): string[];
140
+ handleInput(data: string): void;
141
+ }
142
+ /** Options for a ViewerPanel. */
143
+ export interface ViewerPanelOptions {
144
+ title: string;
145
+ lines: readonly string[];
146
+ /** Maximum rendered lines (default 40); overflow is reported. */
147
+ maxLines?: number;
148
+ footer?: string;
149
+ onClose(): void;
150
+ }
151
+ /** A read-only line viewer with a line cap (Esc/Enter closes). */
152
+ export declare class ViewerPanel implements Component {
153
+ private readonly theme;
154
+ private readonly options;
155
+ constructor(theme: TuiTheme, options: ViewerPanelOptions);
156
+ invalidate(): void;
157
+ render(width: number): string[];
158
+ handleInput(data: string): void;
159
+ }
160
+ /** Overlay size literal accepted by `TUI.showOverlay`. */
161
+ export type PanelSize = number | `${number}%`;
162
+ /**
163
+ * Overlay lifecycle for one interactive flow: swap overlays (show the next
164
+ * before hiding the previous — no focus flash), tear down cleanly on a
165
+ * showOverlay failure, and hand the keyboard back through `onError` when a
166
+ * half-mounted overlay must not strand it.
167
+ */
168
+ export declare class PanelHost {
169
+ private readonly tui;
170
+ private readonly theme;
171
+ private readonly onError;
172
+ private current;
173
+ constructor(tui: TUI, theme: TuiTheme, onError?: (message: string) => void);
174
+ /** Show `component`, hiding the previous overlay. Returns undefined on failure. */
175
+ open(component: Component, width?: PanelSize, maxHeight?: PanelSize): OverlayHandle | undefined;
176
+ close(): void;
177
+ }
package/lib/panels.js ADDED
@@ -0,0 +1,331 @@
1
+ /**
2
+ * Reusable select-panel framework — the shared building blocks behind every
3
+ * picker/browser overlay in this TUI (agents table, field windows, viewers,
4
+ * and future migrations of the /model, /settings and /resume surfaces).
5
+ *
6
+ * What lives here:
7
+ *
8
+ * - `padCell` / `columnWidths` — width-exact table cells (clip + pad by
9
+ * VISIBLE columns, CJK-safe) and fixed+flex column layout. Cells are
10
+ * padded so columns align even when row content has different widths —
11
+ * the classic "table rows are misaligned" bug is a missing pad, not a
12
+ * missing clip.
13
+ * - `ListController` — pure navigation state (index/scroll/viewport) with
14
+ * up/down/pageUp/pageDown and viewport clamping; unit-testable, reused by
15
+ * every panel.
16
+ * - `TablePanel` — a self-drawn table: header row + data rows + navigation
17
+ * + scroll info + selection highlight.
18
+ * - `FieldPanel` — a title + read-only content block + editable field rows
19
+ * (Enter edits the focused row, optional single-key shortcuts).
20
+ * - `ViewerPanel` — a read-only line viewer with a line cap.
21
+ * - `PanelHost` — overlay lifecycle: swap to a new overlay (show-new-then-
22
+ * hide-old, no focus flash), teardown on showOverlay failure, one host
23
+ * per interactive flow.
24
+ */
25
+ import { getKeybindings, } from '@earendil-works/pi-tui';
26
+ import { wrapFramedOverlay } from "./frame.js";
27
+ import { ansiFg, BOLD, RESET } from "./theme/index.js";
28
+ import { clipToWidth, visibleWidth } from "./text.js";
29
+ /** Row marker slot width (▸ or two spaces). */
30
+ export const MARKER_W = 2;
31
+ /** Column separator between table cells (box-drawing, matches the frame). */
32
+ export const TABLE_SEP = ' │ ';
33
+ /** Minimum visible width of the flex column. */
34
+ const MIN_FLEX_WIDTH = 8;
35
+ /**
36
+ * Clip `text` to `width` visible columns and pad it with spaces to exactly
37
+ * `width` columns — the width-exact cell primitive. `align` controls where
38
+ * the padding goes.
39
+ */
40
+ export function padCell(text, width, align = 'left') {
41
+ const clipped = clipToWidth(text, width);
42
+ const pad = width - visibleWidth(clipped);
43
+ if (pad <= 0)
44
+ return clipped;
45
+ return align === 'right' ? ' '.repeat(pad) + clipped : clipped + ' '.repeat(pad);
46
+ }
47
+ /**
48
+ * Resolve visible widths for every column: fixed columns keep their width,
49
+ * the single flex column gets the remainder (with a floor), separators are
50
+ * counted between columns.
51
+ */
52
+ export function columnWidths(total, columns) {
53
+ const seps = Math.max(0, columns.length - 1) * visibleWidth(TABLE_SEP);
54
+ const fixed = columns.reduce((sum, column) => sum + (column.flex === true ? 0 : (column.width ?? 0)), 0);
55
+ const flexWidth = Math.max(MIN_FLEX_WIDTH, total - fixed - seps);
56
+ return columns.map(column => (column.flex === true ? flexWidth : (column.width ?? 0)));
57
+ }
58
+ /** Pure navigation state shared by all panels (unit-testable). */
59
+ export class ListController {
60
+ index = 0;
61
+ scroll = 0;
62
+ maxVisible;
63
+ length;
64
+ constructor(length, maxVisible = 12) {
65
+ this.length = length;
66
+ this.maxVisible = maxVisible;
67
+ }
68
+ up() {
69
+ if (this.index > 0)
70
+ this.index--;
71
+ this.clampScroll();
72
+ }
73
+ down() {
74
+ if (this.index < this.length() - 1)
75
+ this.index++;
76
+ this.clampScroll();
77
+ }
78
+ pageUp() {
79
+ this.index = Math.max(0, this.index - this.maxVisible);
80
+ this.clampScroll();
81
+ }
82
+ pageDown() {
83
+ this.index = Math.max(0, Math.min(this.length() - 1, this.index + this.maxVisible));
84
+ this.clampScroll();
85
+ }
86
+ setIndex(index) {
87
+ this.index = Math.max(0, Math.min(this.length() - 1, index));
88
+ this.clampScroll();
89
+ }
90
+ clampScroll() {
91
+ if (this.index < this.scroll)
92
+ this.scroll = this.index;
93
+ else if (this.index >= this.scroll + this.maxVisible)
94
+ this.scroll = this.index - this.maxVisible + 1;
95
+ }
96
+ }
97
+ /** Render the ▸/spaces row marker for the selected row. */
98
+ export function rowMarker(selected) {
99
+ return selected ? '▸ ' : ' ';
100
+ }
101
+ /** Scroll info suffix, e.g. ` (3/40)` — only when the list overflows. */
102
+ export function scrollInfo(controller, length) {
103
+ return length > controller.maxVisible ? ` (${controller.index + 1}/${length})` : '';
104
+ }
105
+ /** Build the standard fg wrappers from a TuiTheme. */
106
+ export function panelThemeFns(theme) {
107
+ const fg = (hex) => (text) => ansiFg(hex) + text + RESET;
108
+ return {
109
+ accent: fg(theme.palette.accent),
110
+ muted: fg(theme.palette.fgMuted),
111
+ subtle: fg(theme.palette.fgSubtle),
112
+ attention: fg(theme.palette.attention),
113
+ };
114
+ }
115
+ /** Shared navigation keys; returns true when `data` was consumed. */
116
+ export function handleListKeys(data, controller, length) {
117
+ const kb = getKeybindings();
118
+ if (kb.matches(data, 'tui.select.up')) {
119
+ controller.up();
120
+ return true;
121
+ }
122
+ if (kb.matches(data, 'tui.select.down')) {
123
+ controller.down();
124
+ return true;
125
+ }
126
+ if (kb.matches(data, 'tui.select.pageUp')) {
127
+ controller.pageUp();
128
+ return true;
129
+ }
130
+ if (kb.matches(data, 'tui.select.pageDown')) {
131
+ controller.pageDown();
132
+ return true;
133
+ }
134
+ return false;
135
+ }
136
+ /**
137
+ * A self-drawn table panel: header row, aligned data rows, navigation with
138
+ * viewport clamping, selection highlight, scroll info and a footer hint.
139
+ */
140
+ export class TablePanel {
141
+ theme;
142
+ options;
143
+ controller;
144
+ constructor(theme, options) {
145
+ this.theme = theme;
146
+ this.options = options;
147
+ this.controller = new ListController(() => options.rows.length);
148
+ if (options.preselect !== undefined)
149
+ this.controller.setIndex(options.preselect);
150
+ }
151
+ invalidate() { }
152
+ render(width) {
153
+ const fns = panelThemeFns(this.theme);
154
+ const { columns, rows, renderCell, footer } = this.options;
155
+ const widths = columnWidths(width, columns);
156
+ const seps = columns.length > 1 ? TABLE_SEP : '';
157
+ const lines = [];
158
+ const header = `${' '.repeat(MARKER_W)}${columns
159
+ .map((column, i) => padCell(column.title, widths[i], column.align))
160
+ .join(seps)}`;
161
+ lines.push(fns.subtle(header));
162
+ const controller = this.controller;
163
+ for (let i = controller.scroll; i < Math.min(rows.length, controller.scroll + controller.maxVisible); i++) {
164
+ const row = rows[i];
165
+ const selected = i === controller.index;
166
+ const cells = columns
167
+ .map((column, j) => padCell(renderCell(row, column), widths[j], column.align))
168
+ .join(seps);
169
+ const line = `${rowMarker(selected)}${cells}`;
170
+ lines.push(selected ? fns.accent(BOLD + line + RESET) : fns.muted(line));
171
+ }
172
+ lines.push('');
173
+ lines.push(fns.subtle(clipToWidth(`${footer ?? '↑↓ navigate · Enter select · Esc back'}${scrollInfo(controller, rows.length)}`, width)));
174
+ return lines;
175
+ }
176
+ handleInput(data) {
177
+ const controller = this.controller;
178
+ if (handleListKeys(data, controller, this.options.rows.length))
179
+ return;
180
+ const kb = getKeybindings();
181
+ if (kb.matches(data, 'tui.select.confirm')) {
182
+ this.options.onSelect(this.options.rows[controller.index]);
183
+ }
184
+ else if (kb.matches(data, 'tui.select.cancel')) {
185
+ this.options.onCancel();
186
+ }
187
+ }
188
+ }
189
+ /**
190
+ * A field panel: title, an optional read-only content block, navigable
191
+ * editable field rows (Enter edits the focused row), shortcuts, a status
192
+ * line and a footer hint.
193
+ */
194
+ export class FieldPanel {
195
+ theme;
196
+ options;
197
+ controller;
198
+ keyWidth;
199
+ constructor(theme, options) {
200
+ this.theme = theme;
201
+ this.options = options;
202
+ this.controller = new ListController(() => options.fields.length);
203
+ this.keyWidth = Math.max(...options.fields.map(field => visibleWidth(field.key)), 1);
204
+ }
205
+ invalidate() { }
206
+ render(width) {
207
+ const fns = panelThemeFns(this.theme);
208
+ const { title, content, fields, footer, status } = this.options;
209
+ const wrap = Math.max(2, width - 2);
210
+ const lines = [title];
211
+ if (content !== undefined) {
212
+ lines.push('');
213
+ for (const line of content) {
214
+ lines.push(fns.muted(clipToWidth(line === '' ? ' ' : line, wrap)));
215
+ }
216
+ }
217
+ lines.push('');
218
+ const controller = this.controller;
219
+ for (let i = 0; i < fields.length; i++) {
220
+ const field = fields[i];
221
+ const selected = i === controller.index;
222
+ const marker = rowMarker(selected);
223
+ const key = padCell(field.key, this.keyWidth);
224
+ const value = clipToWidth(field.value, wrap - MARKER_W - this.keyWidth - 3);
225
+ const line = `${marker}${key}${field.editable === false ? '' : ' ✎ '}${value}`;
226
+ if (selected) {
227
+ lines.push(fns.accent(BOLD + line + RESET));
228
+ }
229
+ else {
230
+ const headW = MARKER_W + this.keyWidth + (field.editable === false ? 0 : 3);
231
+ lines.push(`${fns.muted(line.slice(0, headW))}${fns.subtle(line.slice(headW))}`);
232
+ }
233
+ }
234
+ const statusLine = status?.();
235
+ if (statusLine !== undefined) {
236
+ lines.push('');
237
+ lines.push(fns.attention(clipToWidth(statusLine, wrap)));
238
+ }
239
+ lines.push('');
240
+ lines.push(fns.subtle(clipToWidth(footer ?? '↑↓ field · Enter edit · Esc back', wrap)));
241
+ return lines;
242
+ }
243
+ handleInput(data) {
244
+ const controller = this.controller;
245
+ if (handleListKeys(data, controller, this.options.fields.length))
246
+ return;
247
+ const shortcut = this.options.shortcuts?.[data.toLowerCase()];
248
+ if (shortcut !== undefined) {
249
+ shortcut();
250
+ return;
251
+ }
252
+ const kb = getKeybindings();
253
+ if (kb.matches(data, 'tui.select.confirm')) {
254
+ this.options.onEdit(controller.index);
255
+ }
256
+ else if (kb.matches(data, 'tui.select.cancel')) {
257
+ this.options.onCancel();
258
+ }
259
+ }
260
+ }
261
+ /** A read-only line viewer with a line cap (Esc/Enter closes). */
262
+ export class ViewerPanel {
263
+ theme;
264
+ options;
265
+ constructor(theme, options) {
266
+ this.theme = theme;
267
+ this.options = options;
268
+ }
269
+ invalidate() { }
270
+ render(width) {
271
+ const fns = panelThemeFns(this.theme);
272
+ const { title, lines, maxLines = 40, footer } = this.options;
273
+ const wrap = Math.max(2, width - 2);
274
+ const out = [
275
+ fns.accent(BOLD + clipToWidth(title, wrap) + RESET),
276
+ '',
277
+ ];
278
+ for (const line of lines.slice(0, maxLines)) {
279
+ out.push(fns.muted(clipToWidth(line === '' ? ' ' : line, wrap)));
280
+ }
281
+ if (lines.length > maxLines) {
282
+ out.push(fns.subtle(clipToWidth(`… ${lines.length - maxLines} more line(s)`, wrap)));
283
+ }
284
+ out.push('');
285
+ out.push(fns.subtle(footer ?? ' Esc to close'));
286
+ return out;
287
+ }
288
+ handleInput(data) {
289
+ const kb = getKeybindings();
290
+ if (kb.matches(data, 'tui.select.cancel') || kb.matches(data, 'tui.select.confirm')) {
291
+ this.options.onClose();
292
+ }
293
+ }
294
+ }
295
+ /**
296
+ * Overlay lifecycle for one interactive flow: swap overlays (show the next
297
+ * before hiding the previous — no focus flash), tear down cleanly on a
298
+ * showOverlay failure, and hand the keyboard back through `onError` when a
299
+ * half-mounted overlay must not strand it.
300
+ */
301
+ export class PanelHost {
302
+ tui;
303
+ theme;
304
+ onError;
305
+ current;
306
+ constructor(tui, theme, onError) {
307
+ this.tui = tui;
308
+ this.theme = theme;
309
+ this.onError = onError;
310
+ }
311
+ /** Show `component`, hiding the previous overlay. Returns undefined on failure. */
312
+ open(component, width = '80%', maxHeight = '80%') {
313
+ let next;
314
+ try {
315
+ next = this.tui.showOverlay(wrapFramedOverlay(this.theme, component), { width, maxHeight });
316
+ }
317
+ catch (error) {
318
+ this.close();
319
+ this.onError?.(error instanceof Error ? error.message : String(error));
320
+ return undefined;
321
+ }
322
+ this.current?.hide();
323
+ this.current = next;
324
+ return next;
325
+ }
326
+ close() {
327
+ this.current?.hide();
328
+ this.current = undefined;
329
+ }
330
+ }
331
+ //# sourceMappingURL=panels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panels.js","sourceRoot":"","sources":["../src/panels.ts"],"names":[],"mappings":"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"}