@sagmans/dsh-tui 0.5.2 → 0.7.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/.agents/skills/dsh-tui-dogfood/SKILL.md +83 -0
- package/.agents/skills/dsh-tui-dogfood/references/home-state.md +78 -0
- package/.agents/skills/dsh-tui-dogfood/scripts/clone-links.mjs +133 -0
- package/.agents/skills/dsh-tui-dogfood/scripts/run-plugin-from-worktree.sh +417 -0
- package/.agents/skills/dsh-tui-update-models/SKILL.md +121 -0
- package/.agents/skills/dsh-tui-update-models/references/model-wiring.md +162 -0
- package/.agents/skills/dsh-tui-update-models/scripts/dump-model-catalog.mjs +178 -0
- package/README.md +131 -17
- package/lib/agent/host.d.ts +11 -0
- package/lib/agent/host.d.ts.map +1 -1
- package/lib/agent/host.js +16 -2
- package/lib/agent/host.js.map +1 -1
- package/lib/agent/present.d.ts.map +1 -1
- package/lib/agent/present.js +2 -1
- package/lib/agent/present.js.map +1 -1
- package/lib/agent/undo.d.ts +52 -0
- package/lib/agent/undo.d.ts.map +1 -0
- package/lib/agent/undo.js +106 -0
- package/lib/agent/undo.js.map +1 -0
- package/lib/cards/composition.d.ts +68 -0
- package/lib/cards/composition.d.ts.map +1 -0
- package/lib/cards/composition.js +117 -0
- package/lib/cards/composition.js.map +1 -0
- package/lib/cards/presenter.d.ts +23 -0
- package/lib/cards/presenter.d.ts.map +1 -0
- package/lib/cards/presenter.js +394 -0
- package/lib/cards/presenter.js.map +1 -0
- package/lib/cards/preview.d.ts +42 -0
- package/lib/cards/preview.d.ts.map +1 -0
- package/lib/cards/preview.js +51 -0
- package/lib/cards/preview.js.map +1 -0
- package/lib/cards.d.ts +42 -95
- package/lib/cards.d.ts.map +1 -1
- package/lib/cards.js +4 -526
- package/lib/cards.js.map +1 -1
- package/lib/compat/section.d.ts +29 -0
- package/lib/compat/section.d.ts.map +1 -0
- package/lib/compat/section.js +82 -0
- package/lib/compat/section.js.map +1 -0
- package/lib/config.d.ts +27 -2
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +61 -1
- package/lib/config.js.map +1 -1
- package/lib/contracts.d.ts +28 -0
- package/lib/contracts.d.ts.map +1 -1
- package/lib/fold-cursor.d.ts +8 -0
- package/lib/fold-cursor.d.ts.map +1 -1
- package/lib/fold-cursor.js +18 -0
- package/lib/fold-cursor.js.map +1 -1
- package/lib/gates/question-card.d.ts +77 -0
- package/lib/gates/question-card.d.ts.map +1 -0
- package/lib/gates/question-card.js +113 -0
- package/lib/gates/question-card.js.map +1 -0
- package/lib/gates/questions.d.ts +127 -0
- package/lib/gates/questions.d.ts.map +1 -0
- package/lib/gates/questions.js +418 -0
- package/lib/gates/questions.js.map +1 -0
- package/lib/gates.d.ts +1 -113
- package/lib/gates.d.ts.map +1 -1
- package/lib/gates.js +1 -484
- package/lib/gates.js.map +1 -1
- package/lib/herdr/reporter.d.ts +9 -4
- package/lib/herdr/reporter.d.ts.map +1 -1
- package/lib/herdr/reporter.js +5 -9
- package/lib/herdr/reporter.js.map +1 -1
- package/lib/herdr/state.d.ts +35 -4
- package/lib/herdr/state.d.ts.map +1 -1
- package/lib/herdr/state.js +37 -4
- package/lib/herdr/state.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +343 -2267
- package/lib/index.js.map +1 -1
- package/lib/input/action-catalog.d.ts +74 -0
- package/lib/input/action-catalog.d.ts.map +1 -0
- package/lib/input/action-catalog.js +137 -0
- package/lib/input/action-catalog.js.map +1 -0
- package/lib/input/actions.d.ts +5 -81
- package/lib/input/actions.d.ts.map +1 -1
- package/lib/input/actions.js +4 -621
- package/lib/input/actions.js.map +1 -1
- package/lib/input/completion.d.ts +11 -1
- package/lib/input/completion.d.ts.map +1 -1
- package/lib/input/completion.js +17 -1
- package/lib/input/completion.js.map +1 -1
- package/lib/input/file-index.d.ts +40 -0
- package/lib/input/file-index.d.ts.map +1 -0
- package/lib/input/file-index.js +141 -0
- package/lib/input/file-index.js.map +1 -0
- package/lib/input/file-search.d.ts +1 -38
- package/lib/input/file-search.d.ts.map +1 -1
- package/lib/input/file-search.js +1 -487
- package/lib/input/file-search.js.map +1 -1
- package/lib/input/key-press.d.ts +57 -0
- package/lib/input/key-press.d.ts.map +1 -0
- package/lib/input/key-press.js +218 -0
- package/lib/input/key-press.js.map +1 -0
- package/lib/input/keymap-conflicts.d.ts +59 -0
- package/lib/input/keymap-conflicts.d.ts.map +1 -0
- package/lib/input/keymap-conflicts.js +292 -0
- package/lib/input/keymap-conflicts.js.map +1 -0
- package/lib/input/keymap-settings.js +1 -1
- package/lib/input/keymap-settings.js.map +1 -1
- package/lib/input/keymap.d.ts.map +1 -1
- package/lib/input/keymap.js +5 -1
- package/lib/input/keymap.js.map +1 -1
- package/lib/input/submission.d.ts +11 -1
- package/lib/input/submission.d.ts.map +1 -1
- package/lib/input/submission.js +10 -1
- package/lib/input/submission.js.map +1 -1
- package/lib/input/workspace-files.d.ts +10 -0
- package/lib/input/workspace-files.d.ts.map +1 -0
- package/lib/input/workspace-files.js +359 -0
- package/lib/input/workspace-files.js.map +1 -0
- package/lib/install-skills.d.ts +20 -0
- package/lib/install-skills.d.ts.map +1 -0
- package/lib/install-skills.js +198 -0
- package/lib/install-skills.js.map +1 -0
- package/lib/keys-command.d.ts +2 -1
- package/lib/keys-command.d.ts.map +1 -1
- package/lib/keys-command.js +2 -1
- package/lib/keys-command.js.map +1 -1
- package/lib/model-list.d.ts +37 -0
- package/lib/model-list.d.ts.map +1 -0
- package/lib/model-list.js +60 -0
- package/lib/model-list.js.map +1 -0
- package/lib/startup.d.ts +8 -0
- package/lib/startup.d.ts.map +1 -1
- package/lib/startup.js +120 -24
- package/lib/startup.js.map +1 -1
- package/lib/subagents.d.ts +7 -3
- package/lib/subagents.d.ts.map +1 -1
- package/lib/subagents.js +28 -4
- package/lib/subagents.js.map +1 -1
- package/lib/surface/appearance-preferences.d.ts +26 -0
- package/lib/surface/appearance-preferences.d.ts.map +1 -0
- package/lib/surface/appearance-preferences.js +139 -0
- package/lib/surface/appearance-preferences.js.map +1 -0
- package/lib/surface/appearance.d.ts +87 -0
- package/lib/surface/appearance.d.ts.map +1 -0
- package/lib/surface/appearance.js +353 -0
- package/lib/surface/appearance.js.map +1 -0
- package/lib/surface/background-work.d.ts +49 -0
- package/lib/surface/background-work.d.ts.map +1 -0
- package/lib/surface/background-work.js +146 -0
- package/lib/surface/background-work.js.map +1 -0
- package/lib/surface/commands.d.ts +80 -0
- package/lib/surface/commands.d.ts.map +1 -0
- package/lib/surface/commands.js +364 -0
- package/lib/surface/commands.js.map +1 -0
- package/lib/surface/modal-input.d.ts +58 -0
- package/lib/surface/modal-input.d.ts.map +1 -0
- package/lib/surface/modal-input.js +237 -0
- package/lib/surface/modal-input.js.map +1 -0
- package/lib/surface/model-choice.d.ts +54 -0
- package/lib/surface/model-choice.d.ts.map +1 -0
- package/lib/surface/model-choice.js +325 -0
- package/lib/surface/model-choice.js.map +1 -0
- package/lib/surface/preset-choice.d.ts +78 -0
- package/lib/surface/preset-choice.d.ts.map +1 -0
- package/lib/surface/preset-choice.js +163 -0
- package/lib/surface/preset-choice.js.map +1 -0
- package/lib/surface/prompt-input.d.ts +97 -0
- package/lib/surface/prompt-input.d.ts.map +1 -0
- package/lib/surface/prompt-input.js +215 -0
- package/lib/surface/prompt-input.js.map +1 -0
- package/lib/surface/prompt-memory.d.ts +76 -0
- package/lib/surface/prompt-memory.d.ts.map +1 -0
- package/lib/surface/prompt-memory.js +167 -0
- package/lib/surface/prompt-memory.js.map +1 -0
- package/lib/surface/session-lifecycle.d.ts +120 -0
- package/lib/surface/session-lifecycle.d.ts.map +1 -0
- package/lib/surface/session-lifecycle.js +321 -0
- package/lib/surface/session-lifecycle.js.map +1 -0
- package/lib/surface/session-picker.d.ts +39 -0
- package/lib/surface/session-picker.d.ts.map +1 -0
- package/lib/surface/session-picker.js +107 -0
- package/lib/surface/session-picker.js.map +1 -0
- package/lib/surface/session-view.d.ts +86 -0
- package/lib/surface/session-view.d.ts.map +1 -0
- package/lib/surface/session-view.js +215 -0
- package/lib/surface/session-view.js.map +1 -0
- package/lib/surface/staged-turns.d.ts +81 -0
- package/lib/surface/staged-turns.d.ts.map +1 -0
- package/lib/surface/staged-turns.js +206 -0
- package/lib/surface/staged-turns.js.map +1 -0
- package/lib/surface/terminal-lifecycle.d.ts +76 -0
- package/lib/surface/terminal-lifecycle.d.ts.map +1 -0
- package/lib/surface/terminal-lifecycle.js +222 -0
- package/lib/surface/terminal-lifecycle.js.map +1 -0
- package/lib/terminal/warning-screen.d.ts +8 -1
- package/lib/terminal/warning-screen.d.ts.map +1 -1
- package/lib/terminal/warning-screen.js +9 -0
- package/lib/terminal/warning-screen.js.map +1 -1
- package/lib/terminal-text/scan.d.ts +44 -0
- package/lib/terminal-text/scan.d.ts.map +1 -0
- package/lib/terminal-text/scan.js +195 -0
- package/lib/terminal-text/scan.js.map +1 -0
- package/lib/terminal-text/sgr.d.ts +32 -0
- package/lib/terminal-text/sgr.d.ts.map +1 -0
- package/lib/terminal-text/sgr.js +203 -0
- package/lib/terminal-text/sgr.js.map +1 -0
- package/lib/terminal-text.d.ts +1 -1
- package/lib/terminal-text.d.ts.map +1 -1
- package/lib/terminal-text.js +2 -379
- package/lib/terminal-text.js.map +1 -1
- package/lib/theme-command.js +2 -1
- package/lib/theme-command.js.map +1 -1
- package/lib/theme-defaults.d.ts +64 -0
- package/lib/theme-defaults.d.ts.map +1 -0
- package/lib/theme-defaults.js +248 -0
- package/lib/theme-defaults.js.map +1 -0
- package/lib/theme-resolver.d.ts +36 -0
- package/lib/theme-resolver.d.ts.map +1 -0
- package/lib/theme-resolver.js +112 -0
- package/lib/theme-resolver.js.map +1 -0
- package/lib/theme-schema.d.ts +6 -6
- package/lib/theme-schema.d.ts.map +1 -1
- package/lib/theme-schema.js +3 -2
- package/lib/theme-schema.js.map +1 -1
- package/lib/theme-settings.d.ts +13 -15
- package/lib/theme-settings.d.ts.map +1 -1
- package/lib/theme-settings.js +27 -19
- package/lib/theme-settings.js.map +1 -1
- package/lib/theme-tokens.d.ts +1 -90
- package/lib/theme-tokens.d.ts.map +1 -1
- package/lib/theme-tokens.js +11 -341
- package/lib/theme-tokens.js.map +1 -1
- package/lib/theme.d.ts +1 -1
- package/lib/theme.d.ts.map +1 -1
- package/lib/theme.js +2 -1
- package/lib/theme.js.map +1 -1
- package/lib/tool-display.d.ts.map +1 -1
- package/lib/tool-display.js +2 -1
- package/lib/tool-display.js.map +1 -1
- package/lib/transcript/message-content.d.ts +21 -0
- package/lib/transcript/message-content.d.ts.map +1 -0
- package/lib/transcript/message-content.js +61 -0
- package/lib/transcript/message-content.js.map +1 -0
- package/lib/transcript/tool-calls.d.ts +106 -0
- package/lib/transcript/tool-calls.d.ts.map +1 -0
- package/lib/transcript/tool-calls.js +254 -0
- package/lib/transcript/tool-calls.js.map +1 -0
- package/lib/transcript.d.ts +38 -43
- package/lib/transcript.d.ts.map +1 -1
- package/lib/transcript.js +58 -245
- package/lib/transcript.js.map +1 -1
- package/lib/ui/copy.d.ts +17 -0
- package/lib/ui/copy.d.ts.map +1 -0
- package/lib/ui/copy.js +104 -0
- package/lib/ui/copy.js.map +1 -0
- package/lib/ui/dock.d.ts +35 -3
- package/lib/ui/dock.d.ts.map +1 -1
- package/lib/ui/dock.js +124 -23
- package/lib/ui/dock.js.map +1 -1
- package/lib/ui/editor.d.ts.map +1 -1
- package/lib/ui/editor.js +2 -1
- package/lib/ui/editor.js.map +1 -1
- package/lib/ui/frame.d.ts +31 -0
- package/lib/ui/frame.d.ts.map +1 -1
- package/lib/ui/frame.js +27 -4
- package/lib/ui/frame.js.map +1 -1
- package/lib/ui/keymap-picker.d.ts +2 -1
- package/lib/ui/keymap-picker.d.ts.map +1 -1
- package/lib/ui/keymap-picker.js +1 -0
- package/lib/ui/keymap-picker.js.map +1 -1
- package/lib/ui/view/gate-card.d.ts +21 -0
- package/lib/ui/view/gate-card.d.ts.map +1 -0
- package/lib/ui/view/gate-card.js +104 -0
- package/lib/ui/view/gate-card.js.map +1 -0
- package/lib/ui/view/tool-card.d.ts +138 -0
- package/lib/ui/view/tool-card.d.ts.map +1 -0
- package/lib/ui/view/tool-card.js +413 -0
- package/lib/ui/view/tool-card.js.map +1 -0
- package/lib/ui/view/transcript-message.d.ts +62 -0
- package/lib/ui/view/transcript-message.d.ts.map +1 -0
- package/lib/ui/view/transcript-message.js +158 -0
- package/lib/ui/view/transcript-message.js.map +1 -0
- package/lib/ui/view.d.ts +87 -156
- package/lib/ui/view.d.ts.map +1 -1
- package/lib/ui/view.js +122 -556
- package/lib/ui/view.js.map +1 -1
- package/package.json +3 -1
- package/themes/deepseek-blue.yaml +9 -0
- package/themes/violet-orbit.yaml +7 -0
package/lib/ui/dock.js
CHANGED
|
@@ -8,7 +8,20 @@ const GOAL_MARK = '◎';
|
|
|
8
8
|
const PLAN_MODE_MARK = '⏸';
|
|
9
9
|
const TODOS_MARK = '☰';
|
|
10
10
|
const SUBAGENTS_MARK = '⚇';
|
|
11
|
+
const SUBAGENTS_COLLAPSED_MARK = '▸';
|
|
12
|
+
const SUBAGENTS_EXPANDED_MARK = '▾';
|
|
11
13
|
const JOBS_MARK = '⛭';
|
|
14
|
+
/**
|
|
15
|
+
* The dashed rule that opens a section, and the two dashes that lead its name.
|
|
16
|
+
*
|
|
17
|
+
* Dashed, because a section is live state that changes under the reader's eye
|
|
18
|
+
* and a solid edge would claim the permanence of a border. The name rides the
|
|
19
|
+
* rule the heading used to spend a row on, so the edge costs neither a row nor
|
|
20
|
+
* a column of the rows a reader selects. Two dashes lead it: one would be read
|
|
21
|
+
* as part of the mark the name already carries.
|
|
22
|
+
*/
|
|
23
|
+
const SECTION_RULE_DASH = '┄';
|
|
24
|
+
const SECTION_RULE_LEAD = `${SECTION_RULE_DASH}${SECTION_RULE_DASH} `;
|
|
12
25
|
/** Whether a todo is still owed to the reader, narrowing it to the states the dock draws. */
|
|
13
26
|
const isOpenTodo = (todo) => todo.status !== 'completed';
|
|
14
27
|
/** The row marks, by the state the row reports. */
|
|
@@ -18,6 +31,7 @@ const TODO_GLYPHS = {
|
|
|
18
31
|
};
|
|
19
32
|
/** The mark a row that is still in flight carries, for a job and a delegation alike. */
|
|
20
33
|
const RUNNING_MARK = '▸';
|
|
34
|
+
const SUBAGENT_ROW_INDENT = ' ';
|
|
21
35
|
/** Each todo state is its own element, so one can be toned without the others. */
|
|
22
36
|
const TODO_TOKENS = {
|
|
23
37
|
pending: 'dock.todos.pending',
|
|
@@ -32,7 +46,9 @@ function orderTodos(todos) {
|
|
|
32
46
|
* The dock above the editor: what the agent is working on right now.
|
|
33
47
|
*
|
|
34
48
|
* It renders nothing when there is nothing to say, so a plain conversation
|
|
35
|
-
* keeps its rows for the conversation.
|
|
49
|
+
* keeps its rows for the conversation. Each list it draws opens on a rule that
|
|
50
|
+
* names it, in that section's own hue: the dock is several boards stacked, and
|
|
51
|
+
* which board a row belongs to has to be readable without reading the row.
|
|
36
52
|
*/
|
|
37
53
|
export class WorkDock {
|
|
38
54
|
state;
|
|
@@ -40,21 +56,87 @@ export class WorkDock {
|
|
|
40
56
|
jobs;
|
|
41
57
|
subagents;
|
|
42
58
|
now;
|
|
59
|
+
openSubagent;
|
|
60
|
+
/** A choice lasts while more than the preview's rows remain live. */
|
|
61
|
+
subagentsExpanded = false;
|
|
62
|
+
/** Rendered rows delimit the section even when its heading is hidden. */
|
|
63
|
+
subagentSection;
|
|
64
|
+
/** Text spans retain full child ids; the drawn ids may be shortened. */
|
|
65
|
+
subagentTexts = new Map();
|
|
43
66
|
constructor(state, theme,
|
|
44
67
|
/** Live background jobs: process state, not something a resume can replay. */
|
|
45
68
|
jobs = () => [],
|
|
46
69
|
/** Delegations this session started; also live state. */
|
|
47
70
|
subagents = () => [],
|
|
48
71
|
/** Clock for elapsed times, so a frame can be pinned in a test. */
|
|
49
|
-
now = () => Date.now()
|
|
72
|
+
now = () => Date.now(),
|
|
73
|
+
/** A child opens through the same read-only transcript path as /subagents open. */
|
|
74
|
+
openSubagent) {
|
|
50
75
|
this.state = state;
|
|
51
76
|
this.theme = theme;
|
|
52
77
|
this.jobs = jobs;
|
|
53
78
|
this.subagents = subagents;
|
|
54
79
|
this.now = now;
|
|
80
|
+
this.openSubagent = openSubagent;
|
|
55
81
|
}
|
|
56
82
|
invalidate() {
|
|
57
|
-
//
|
|
83
|
+
// Paint rebuilds click geometry; invalidation must preserve the reader’s fold choice.
|
|
84
|
+
}
|
|
85
|
+
/** Text opens its child; other cells in a foldable section control that fold. */
|
|
86
|
+
handleMouse(event) {
|
|
87
|
+
if (event.type !== 'click' || event.button !== 'left')
|
|
88
|
+
return undefined;
|
|
89
|
+
if (event.x < 0 || event.x >= event.width || event.y < 0 || event.y >= event.height)
|
|
90
|
+
return undefined;
|
|
91
|
+
const text = this.subagentTexts.get(event.y);
|
|
92
|
+
if (text !== undefined && event.x >= visibleWidth(SUBAGENT_ROW_INDENT) && event.x < text.endX) {
|
|
93
|
+
if (this.openSubagent === undefined)
|
|
94
|
+
return undefined;
|
|
95
|
+
this.openSubagent(text.id);
|
|
96
|
+
return { handled: true, render: true };
|
|
97
|
+
}
|
|
98
|
+
const section = this.subagentSection;
|
|
99
|
+
if (section === undefined || !section.toggleable || event.y < section.start || event.y >= section.end)
|
|
100
|
+
return undefined;
|
|
101
|
+
this.subagentsExpanded = !this.subagentsExpanded;
|
|
102
|
+
return { handled: true, render: true };
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* The dashed rule that opens a section, with the section's name on it.
|
|
106
|
+
*
|
|
107
|
+
* A name with no room left for a dash after it is drawn as the heading it
|
|
108
|
+
* would otherwise have been: a rule earns its row by being the edge of a
|
|
109
|
+
* list, and an edge a reader cannot tell from a name is not one.
|
|
110
|
+
*/
|
|
111
|
+
sectionRule(width, section) {
|
|
112
|
+
const head = `${SECTION_RULE_LEAD}${section.heading} `;
|
|
113
|
+
if (visibleWidth(head) + 1 > width) {
|
|
114
|
+
return this.theme.style(section.headingToken, this.theme.cut(section.heading, width, '…'));
|
|
115
|
+
}
|
|
116
|
+
// Each run is painted on its own: a style wrapped around the finished row
|
|
117
|
+
// would end where the name's own style ended, taking the dashes after it
|
|
118
|
+
// with it, and the rule would lose the hue it is there to carry.
|
|
119
|
+
const lead = this.theme.style(section.borderToken, SECTION_RULE_LEAD);
|
|
120
|
+
const name = this.theme.style(section.headingToken, section.heading);
|
|
121
|
+
const tail = this.theme.style(section.borderToken, ` ${SECTION_RULE_DASH.repeat(width - visibleWidth(head))}`);
|
|
122
|
+
return `${lead}${name}${tail}`;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* One section as the dock draws it: the rule that names it, then its rows.
|
|
126
|
+
*
|
|
127
|
+
* The rows arrive already built and are pushed as they are, so a section costs
|
|
128
|
+
* the rows it always cost and no column of them. The name's element is what
|
|
129
|
+
* spends the row: a hidden rule leaves the heading it replaced, and a hidden
|
|
130
|
+
* name leaves the section exactly as it stood before the sections were edged —
|
|
131
|
+
* a rule with no name to carry would be an edge that says nothing.
|
|
132
|
+
*/
|
|
133
|
+
pushSection(lines, width, section, rows) {
|
|
134
|
+
if (this.theme.visible(section.headingToken)) {
|
|
135
|
+
lines.push(this.theme.visible(section.borderToken)
|
|
136
|
+
? this.sectionRule(width, section)
|
|
137
|
+
: this.theme.style(section.headingToken, this.theme.cut(section.heading, width, '…')));
|
|
138
|
+
}
|
|
139
|
+
lines.push(...rows);
|
|
58
140
|
}
|
|
59
141
|
pushTodos(lines, todos, width) {
|
|
60
142
|
// Settled items leave the dock: it reports what is still to do, and a row
|
|
@@ -63,40 +145,55 @@ export class WorkDock {
|
|
|
63
145
|
const open = todos.filter(isOpenTodo);
|
|
64
146
|
if (open.length === 0)
|
|
65
147
|
return;
|
|
66
|
-
if (this.theme.visible('dock.todos.heading')) {
|
|
67
|
-
lines.push(this.theme.style('dock.todos.heading', this.theme.cut(`${TODOS_MARK} todos · ${open.length} left`, width, '…')));
|
|
68
|
-
}
|
|
69
148
|
const ordered = orderTodos(open);
|
|
149
|
+
const rows = [];
|
|
70
150
|
for (const todo of ordered.slice(0, DOCK_TODO_LIMIT)) {
|
|
71
151
|
const token = TODO_TOKENS[todo.status];
|
|
72
152
|
if (!this.theme.visible(token))
|
|
73
153
|
continue;
|
|
74
154
|
const lead = ` ${TODO_GLYPHS[todo.status]} `;
|
|
75
|
-
|
|
155
|
+
rows.push(this.theme.cut(this.theme.rich(`${lead}${todo.content}`, { token, column: visibleWidth(lead) }), width, '…'));
|
|
76
156
|
}
|
|
77
157
|
if (ordered.length > DOCK_TODO_LIMIT && this.theme.visible('dock.todos.overflow')) {
|
|
78
|
-
|
|
158
|
+
rows.push(this.theme.style('dock.todos.overflow', this.theme.cut(` … ${ordered.length - DOCK_TODO_LIMIT} more`, width, '…')));
|
|
79
159
|
}
|
|
160
|
+
this.pushSection(lines, width, {
|
|
161
|
+
heading: `${TODOS_MARK} todos · ${open.length} left`,
|
|
162
|
+
headingToken: 'dock.todos.heading',
|
|
163
|
+
borderToken: 'dock.todos.border',
|
|
164
|
+
}, rows);
|
|
80
165
|
}
|
|
81
166
|
pushSubagents(lines, runs, width) {
|
|
82
167
|
// A delegation that has reported back is no longer something to watch, for
|
|
83
168
|
// the same reason a settled job leaves: the dock holds work in flight.
|
|
84
169
|
const running = runs.filter(run => run.status === 'running');
|
|
170
|
+
if (running.length <= DOCK_SUBAGENT_LIMIT)
|
|
171
|
+
this.subagentsExpanded = false;
|
|
85
172
|
if (running.length === 0)
|
|
86
173
|
return;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
174
|
+
const start = lines.length;
|
|
175
|
+
const headingRows = this.theme.visible('dock.subagents.heading') ? 1 : 0;
|
|
176
|
+
const limit = this.subagentsExpanded ? running.length : DOCK_SUBAGENT_LIMIT;
|
|
90
177
|
const now = this.now();
|
|
91
|
-
|
|
178
|
+
const rows = [];
|
|
179
|
+
for (const run of running.slice(0, limit)) {
|
|
92
180
|
if (!this.theme.visible('dock.subagents.running'))
|
|
93
181
|
continue;
|
|
94
|
-
const lead =
|
|
95
|
-
|
|
182
|
+
const lead = `${SUBAGENT_ROW_INDENT}${RUNNING_MARK} `;
|
|
183
|
+
const row = this.theme.cut(this.theme.rich(`${lead}${describeSubagent(run, now)}`, { token: 'dock.subagents.running', column: visibleWidth(lead) }), width, '…');
|
|
184
|
+
this.subagentTexts.set(start + headingRows + rows.length, { id: run.id, endX: visibleWidth(row) });
|
|
185
|
+
rows.push(row);
|
|
96
186
|
}
|
|
97
|
-
if (running.length >
|
|
98
|
-
|
|
187
|
+
if (running.length > limit && this.theme.visible('dock.subagents.overflow')) {
|
|
188
|
+
rows.push(this.theme.style('dock.subagents.overflow', this.theme.cut(` … ${running.length - limit} more`, width, '…')));
|
|
99
189
|
}
|
|
190
|
+
const foldMark = running.length <= DOCK_SUBAGENT_LIMIT ? '' : ` ${this.subagentsExpanded ? SUBAGENTS_EXPANDED_MARK : SUBAGENTS_COLLAPSED_MARK}`;
|
|
191
|
+
this.pushSection(lines, width, {
|
|
192
|
+
heading: `${SUBAGENTS_MARK} subagents${foldMark} · ${running.length} running`,
|
|
193
|
+
headingToken: 'dock.subagents.heading',
|
|
194
|
+
borderToken: 'dock.subagents.border',
|
|
195
|
+
}, rows);
|
|
196
|
+
this.subagentSection = { start, end: lines.length, toggleable: running.length > DOCK_SUBAGENT_LIMIT };
|
|
100
197
|
}
|
|
101
198
|
pushJobs(lines, jobs, width) {
|
|
102
199
|
// Only work still holding resources earns a row: a settled job is a fact the
|
|
@@ -105,22 +202,27 @@ export class WorkDock {
|
|
|
105
202
|
const live = jobs.filter(job => isLive(job.status));
|
|
106
203
|
if (live.length === 0)
|
|
107
204
|
return;
|
|
108
|
-
if (this.theme.visible('dock.jobs.heading')) {
|
|
109
|
-
lines.push(this.theme.style('dock.jobs.heading', this.theme.cut(`${JOBS_MARK} jobs · ${live.length} running`, width, '…')));
|
|
110
|
-
}
|
|
111
205
|
const ordered = [...live].sort((left, right) => right.startedAt - left.startedAt);
|
|
112
206
|
const now = this.now();
|
|
207
|
+
const rows = [];
|
|
113
208
|
for (const job of ordered.slice(0, DOCK_JOB_LIMIT)) {
|
|
114
209
|
if (!this.theme.visible('dock.jobs.running'))
|
|
115
210
|
continue;
|
|
116
211
|
const lead = ` ${RUNNING_MARK} `;
|
|
117
|
-
|
|
212
|
+
rows.push(this.theme.cut(this.theme.rich(`${lead}${describeJob(job, now)}`, { token: 'dock.jobs.running', column: visibleWidth(lead) }), width, '…'));
|
|
118
213
|
}
|
|
119
214
|
if (ordered.length > DOCK_JOB_LIMIT && this.theme.visible('dock.jobs.overflow')) {
|
|
120
|
-
|
|
215
|
+
rows.push(this.theme.style('dock.jobs.overflow', this.theme.cut(` … ${ordered.length - DOCK_JOB_LIMIT} more`, width, '…')));
|
|
121
216
|
}
|
|
217
|
+
this.pushSection(lines, width, {
|
|
218
|
+
heading: `${JOBS_MARK} jobs · ${live.length} running`,
|
|
219
|
+
headingToken: 'dock.jobs.heading',
|
|
220
|
+
borderToken: 'dock.jobs.border',
|
|
221
|
+
}, rows);
|
|
122
222
|
}
|
|
123
223
|
render(width) {
|
|
224
|
+
this.subagentSection = undefined;
|
|
225
|
+
this.subagentTexts.clear();
|
|
124
226
|
if (width <= 0)
|
|
125
227
|
return [];
|
|
126
228
|
const state = this.state();
|
|
@@ -142,8 +244,7 @@ export class WorkDock {
|
|
|
142
244
|
lines.push(this.theme.style('dock.planMode', this.theme.cut(`${PLAN_MODE_MARK} plan mode · answer the plan before edits happen`, width, '…')));
|
|
143
245
|
}
|
|
144
246
|
const subagents = this.subagents();
|
|
145
|
-
|
|
146
|
-
this.pushSubagents(lines, subagents, width);
|
|
247
|
+
this.pushSubagents(lines, subagents, width);
|
|
147
248
|
const jobs = this.jobs();
|
|
148
249
|
if (jobs.length > 0)
|
|
149
250
|
this.pushJobs(lines, jobs, width);
|
package/lib/ui/dock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dock.js","sourceRoot":"","sources":["../../src/ui/dock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dock.js","sourceRoot":"","sources":["../../src/ui/dock.ts"],"names":[],"mappings":"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"}
|
package/lib/ui/editor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/ui/editor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAMN,KAAK,WAAW,EAChB,KAAK,GAAG,EACR,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/ui/editor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAMN,KAAK,WAAW,EAChB,KAAK,GAAG,EACR,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEhE,OAAO,EAAsE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAmDzH,kFAAkF;AAClF,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEzC,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAC9B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,+EAA+E;IAC/E,OAAO,IAAI,OAAO,CAAA;IAClB,uEAAuE;IACvE,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAAA;IACnD,8DAA8D;IAC9D,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAAA;CAC7C;AAED;;;;;;;GAOG;AACH,qBAAa,WAAY,SAAQ,MAAM;IAWnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IAXzB,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAI;IACpB,qFAAqF;IACrF,OAAO,CAAC,QAAQ,CAAI;IACpB,qFAAqF;IACrF,OAAO,CAAC,KAAK,CAAQ;gBAGnB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,WAAW,EACD,MAAM,GAAE,MAAM,MAAsB,EACpC,KAAK,CAAC,EAAE,UAAU,YAAA;IAKrC;;;;;;;;OAQG;IACM,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAkCxC,0EAA0E;cACvD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM;IAIrF,kFAAkF;IAClF,OAAO,CAAC,IAAI;IAIZ;;;OAGG;IACH,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAI3C,kFAAkF;IAClF,OAAO,CAAC,kBAAkB;IAmB1B;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IA0BhB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAgBV,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IA4BxC;;;;;;;;OAQG;IACM,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,mBAAmB,GAAG,SAAS;CAQ5E"}
|
package/lib/ui/editor.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Editor, getKeybindings, isKittyProtocolActive, matchesKey, stripTerminalSequences, visibleWidth, } from '@earendil-works/pi-tui';
|
|
2
|
-
import {
|
|
2
|
+
import { defaultKeymap } from "../input/actions.js";
|
|
3
|
+
import { ENTER_KEY } from "../input/key-press.js";
|
|
3
4
|
import { ghostDisplayLine, ghostGraphemes, isCursorAtTextEnd, nextGhostWord } from "../input/ghost.js";
|
|
4
5
|
import { promptKeys } from "../input/keymap.js";
|
|
5
6
|
import { renderTerminalText } from "../terminal-text.js";
|
package/lib/ui/editor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/ui/editor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,sBAAsB,EACtB,YAAY,GAKb,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/ui/editor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,sBAAsB,EACtB,YAAY,GAKb,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAe,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAqB,MAAM,mBAAmB,CAAA;AACzH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAElF;;;;;;;;;GASG;AACH,MAAM,WAAW,GAAG,QAAQ,CAAA;AAE5B;;;;;;GAMG;AACH,MAAM,YAAY,GAAG,IAAI,CAAA;AAEzB,iFAAiF;AACjF,MAAM,gBAAgB,GAAG,UAAU,CAAA;AAEnC;;;;;;;GAOG;AACH,MAAM,eAAe,GAAG,cAAc,CAAA;AACtC,MAAM,YAAY,GAAG,eAAe,CAAA;AAEpC;;;;;;;;GAQG;AACH,MAAM,aAAa,GAAG,qBAAqB,CAAA;AA4B3C;;;;;;;GAOG;AACH,MAAM,OAAO,WAAY,SAAQ,MAAM;IAWlB;IACA;IAXnB,gFAAgF;IACxE,QAAQ,GAAG,CAAC,CAAA;IACpB,qFAAqF;IAC7E,QAAQ,GAAG,CAAC,CAAA;IACpB,qFAAqF;IAC7E,KAAK,GAAG,KAAK,CAAA;IAErB,YACE,GAAQ,EACR,KAAkB,EACD,SAAuB,aAAa,EACpC,KAAkB;QAEnC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;QAHzB,WAAM,GAAN,MAAM,CAA8B;QACpC,UAAK,GAAL,KAAK,CAAa;IAGrC,CAAC;IAED;;;;;;;;OAQG;IACM,WAAW,CAAC,IAAY;QAC/B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YACvB,OAAM;QACR,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAAE,OAAM;QAClC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACtC,4EAA4E;QAC5E,0EAA0E;QAC1E,4EAA4E;QAC5E,sEAAsE;QACtE,0EAA0E;QAC1E,uEAAuE;QACvE,IAAI,IAAI,KAAK,YAAY,IAAI,CAAC,qBAAqB,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxF,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;YAC/B,OAAM;QACR,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,IAAI,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACzF,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;YAC/B,OAAM;QACR,CAAC;QACD,0EAA0E;QAC1E,4EAA4E;QAC5E,6EAA6E;QAC7E,6EAA6E;QAC7E,wEAAwE;QACxE,sCAAsC;QACtC,IAAI,IAAI,KAAK,gBAAgB,IAAI,CAAC,qBAAqB,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/F,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;YAClC,OAAM;QACR,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,0EAA0E;IACvD,kBAAkB,CAAC,KAAa,EAAE,eAAuB;QAC1E,OAAO,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,WAAW,EAAE,CAAA;IAC5E,CAAC;IAED,kFAAkF;IAC1E,IAAI,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;QACnD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED;;;OAGG;IACO,YAAY,CAAC,GAAW;QAChC,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,kFAAkF;IAC1E,kBAAkB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAAE,OAAO,SAAS,CAAA;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,4EAA4E;QAC5E,2EAA2E;QAC3E,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YAAE,OAAO,SAAS,CAAA;QAC3D,yEAAyE;QACzE,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,iEAAiE;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAChF,6EAA6E;QAC7E,uEAAuE;QACvE,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IACzF,CAAC;IAED;;;;;;OAMG;IACK,QAAQ,CAAC,GAAW,EAAE,MAA0B;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,GAAG,CAAA;QAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC3C,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAO,GAAG,CAAA;QAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;QACrC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;QACpE,gEAAgE;QAChE,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAA;QACpB,wEAAwE;QACxE,2EAA2E;QAC3E,qEAAqE;QACrE,IAAI,KAAK,GAAG,EAAE,CAAA;QACd,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,KAAK,MAAM,QAAQ,IAAI,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAChE,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;YACpC,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;gBAAE,MAAK;YAC9B,KAAK,IAAI,QAAQ,CAAA;YACjB,IAAI,IAAI,KAAK,CAAA;QACf,CAAC;QACD,IAAI,KAAK,KAAK,EAAE;YAAE,OAAO,GAAG,CAAA;QAC5B,MAAM,CAAC,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAA;QACnD,OAAO,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IAC5F,CAAC;IAED;;;OAGG;IACK,WAAW,CAAC,IAAY;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACxC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAA;QACtC,IAAI,cAAc,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,4BAA4B,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;YAClC,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAA;YACpC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;YAC7B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAA;QAC7C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAC/B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAEQ,MAAM,CAAC,KAAa;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAChD,0EAA0E;QAC1E,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACxE,IAAI,KAAK,GAAG,aAAa,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;QACrF,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAA;QAChE,0EAA0E;QAC1E,wEAAwE;QACxE,IAAI,OAAO,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;QACrE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,0EAA0E;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;QAC9D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QACjF,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;QACnG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QACjH,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;;;;OAQG;IACM,WAAW,CAAC,KAAoB;QACvC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,aAAa,CAAA;QACzC,IAAI,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/E,CAAC;QACD,OAAO,KAAK,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3F,CAAC;CACF"}
|
package/lib/ui/frame.d.ts
CHANGED
|
@@ -40,6 +40,30 @@ export interface FrameFaces {
|
|
|
40
40
|
/** Whether the frame may be drawn at all. */
|
|
41
41
|
readonly framed: boolean;
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* One row a frame drew, as a copy of it comes back from the terminal.
|
|
45
|
+
*
|
|
46
|
+
* A copy is read off the screen, so it carries whatever the surface drew —
|
|
47
|
+
* including the frame — and something has to be able to tell the reader's text
|
|
48
|
+
* from the shape around it. This is that account of one row: the row exactly as
|
|
49
|
+
* it read, and the columns of frame standing at each end of its text.
|
|
50
|
+
*/
|
|
51
|
+
export interface FrameRow {
|
|
52
|
+
/** The row as a copy returns it: styling gone, trailing blanks gone. */
|
|
53
|
+
readonly drawn: string;
|
|
54
|
+
/** The frame's columns at each end of the row's own text; absent when the row is frame alone. */
|
|
55
|
+
readonly frame?: {
|
|
56
|
+
readonly lead: number;
|
|
57
|
+
readonly trail: number;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/** One block of rows as it is drawn, and as a copy of it reads back. */
|
|
61
|
+
export interface FrameBlock {
|
|
62
|
+
/** The rows to draw, in the surface's own styling. */
|
|
63
|
+
readonly drawn: readonly string[];
|
|
64
|
+
/** The same rows as a copy of them reads back. */
|
|
65
|
+
readonly copy: readonly FrameRow[];
|
|
66
|
+
}
|
|
43
67
|
/** Whether a bar has the width, and the visible border, to close a frame. */
|
|
44
68
|
export declare function canFrame(width: number, borderVisible: boolean): boolean;
|
|
45
69
|
/**
|
|
@@ -51,7 +75,14 @@ export declare function canFrame(width: number, borderVisible: boolean): boolean
|
|
|
51
75
|
* just drew. A block with a limit is a preview, and the rows it drops are
|
|
52
76
|
* counted on the closing rule: a reader who cannot see the whole text still has
|
|
53
77
|
* to see that it continues.
|
|
78
|
+
*
|
|
79
|
+
* The copy of a block reads the same rows back as text: the frame's own rows
|
|
80
|
+
* carry no text at all, and a row the frame holds names the columns of it that
|
|
81
|
+
* are the frame's, so a copy taken off the screen can be read as the words alone
|
|
82
|
+
* rather than as the shape that held them.
|
|
54
83
|
*/
|
|
84
|
+
export declare function frameBlock(lines: readonly string[], width: number, faces: FrameFaces, limit?: number): FrameBlock;
|
|
85
|
+
/** The rows of a block to draw, without the account of them a copy needs. */
|
|
55
86
|
export declare function frameLines(lines: readonly string[], width: number, faces: FrameFaces, limit?: number): string[];
|
|
56
87
|
/**
|
|
57
88
|
* One block of plain text as a bar draws it.
|
package/lib/ui/frame.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/ui/frame.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY;;;;;;CAAyF,CAAA;AAElH,kFAAkF;AAClF,eAAO,MAAM,aAAa,IAAI,CAAA;AAC9B,mFAAmF;AACnF,eAAO,MAAM,SAAS,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/ui/frame.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY;;;;;;CAAyF,CAAA;AAElH,kFAAkF;AAClF,eAAO,MAAM,aAAa,IAAI,CAAA;AAC9B,mFAAmF;AACnF,eAAO,MAAM,SAAS,IAAI,CAAA;AAG1B,6EAA6E;AAC7E,eAAO,MAAM,aAAa,QAAoC,CAAA;AAE9D,0FAA0F;AAC1F,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,kFAAkF;AAClF,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAQhE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAgBxE;AAED,0EAA0E;AAC1E,MAAM,WAAW,UAAU;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACvC,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACzC,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,iGAAiG;IACjG,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CACnE;AAED,wEAAwE;AACxE,MAAM,WAAW,UAAU;IACzB,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,CAAA;CACnC;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAEvE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,SAA2B,GAAG,UAAU,CAuBnI;AAED,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,SAA2B,GAAG,MAAM,EAAE,CAEjI;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,SAA2B,GAAG,MAAM,EAAE,CAIpH"}
|
package/lib/ui/frame.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { truncateToWidth, visibleWidth, wrapTextWithAnsi } from '@earendil-works/pi-tui';
|
|
1
|
+
import { stripTerminalSequences, truncateToWidth, visibleWidth, wrapTextWithAnsi } from '@earendil-works/pi-tui';
|
|
2
2
|
import { renderTerminalText } from "../terminal-text.js";
|
|
3
3
|
/**
|
|
4
4
|
* The frame every prompt is closed into.
|
|
@@ -13,6 +13,8 @@ export const FRAME_GLYPHS = { topLeft: '╭', topRight: '╮', bottomLeft: '╰'
|
|
|
13
13
|
export const FRAME_COLUMNS = 2;
|
|
14
14
|
/** One column of air inside the frame, so a full line never touches the border. */
|
|
15
15
|
export const PADDING_X = 1;
|
|
16
|
+
/** The frame's own column, the one `FRAME_GLYPHS.side` is drawn in. */
|
|
17
|
+
const SIDE_COLUMNS = 1;
|
|
16
18
|
/** A box needs both edges, both paddings, and one column left to type in. */
|
|
17
19
|
export const MIN_BOX_WIDTH = FRAME_COLUMNS + PADDING_X * 2 + 1;
|
|
18
20
|
/** The columns the text of a bar owns, given the width of everything inside its frame. */
|
|
@@ -68,19 +70,40 @@ export function canFrame(width, borderVisible) {
|
|
|
68
70
|
* just drew. A block with a limit is a preview, and the rows it drops are
|
|
69
71
|
* counted on the closing rule: a reader who cannot see the whole text still has
|
|
70
72
|
* to see that it continues.
|
|
73
|
+
*
|
|
74
|
+
* The copy of a block reads the same rows back as text: the frame's own rows
|
|
75
|
+
* carry no text at all, and a row the frame holds names the columns of it that
|
|
76
|
+
* are the frame's, so a copy taken off the screen can be read as the words alone
|
|
77
|
+
* rather than as the shape that held them.
|
|
71
78
|
*/
|
|
72
|
-
export function
|
|
79
|
+
export function frameBlock(lines, width, faces, limit = Number.POSITIVE_INFINITY) {
|
|
73
80
|
const inside = faces.framed ? width - FRAME_COLUMNS : width;
|
|
74
81
|
const body = lines.slice(0, Math.max(0, limit));
|
|
75
82
|
const rows = body.map(line => textRow(faces.text(line), inside));
|
|
83
|
+
// The row is kept as the frame laid it out rather than as a copy trims it: the
|
|
84
|
+
// trailing blanks a copy drops are columns the frame's own count is measured in.
|
|
85
|
+
const read = (row) => ({ drawn: stripTerminalSequences(row) });
|
|
86
|
+
// A hidden frame still pads its rows for the frame it would have drawn, and
|
|
87
|
+
// that padding is the frame's, so a copy of these rows drops it too.
|
|
76
88
|
if (!faces.framed)
|
|
77
|
-
return rows;
|
|
89
|
+
return { drawn: rows, copy: rows.map(row => ({ ...read(row), frame: { lead: PADDING_X, trail: PADDING_X } })) };
|
|
78
90
|
const side = faces.border(FRAME_GLYPHS.side);
|
|
79
|
-
|
|
91
|
+
const drawn = [
|
|
80
92
|
faces.border(`${FRAME_GLYPHS.topLeft}${frameRule(inside, 0)}${FRAME_GLYPHS.topRight}`),
|
|
81
93
|
...rows.map(row => `${side}${row}${side}`),
|
|
82
94
|
faces.border(`${FRAME_GLYPHS.bottomLeft}${frameRule(inside, lines.length - body.length)}${FRAME_GLYPHS.bottomRight}`),
|
|
83
95
|
];
|
|
96
|
+
// The side and the padding beside it are the frame's; the rest of the row is
|
|
97
|
+
// the text, which is the part a copy of this row is entitled to keep.
|
|
98
|
+
const held = { drawn: '', frame: { lead: SIDE_COLUMNS + PADDING_X, trail: PADDING_X + SIDE_COLUMNS } };
|
|
99
|
+
return {
|
|
100
|
+
drawn,
|
|
101
|
+
copy: [read(drawn[0]), ...drawn.slice(1, -1).map(row => ({ ...held, drawn: read(row).drawn })), read(drawn[drawn.length - 1])],
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/** The rows of a block to draw, without the account of them a copy needs. */
|
|
105
|
+
export function frameLines(lines, width, faces, limit = Number.POSITIVE_INFINITY) {
|
|
106
|
+
return [...frameBlock(lines, width, faces, limit).drawn];
|
|
84
107
|
}
|
|
85
108
|
/**
|
|
86
109
|
* One block of plain text as a bar draws it.
|
package/lib/ui/frame.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/ui/frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/ui/frame.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type Keymap } from '../input/actions.ts';
|
|
2
|
+
import { type ActionLayer } from '../input/action-catalog.ts';
|
|
2
3
|
import { type KeymapRow } from '../keys-command.ts';
|
|
3
4
|
import { ListPicker } from './picker.ts';
|
|
4
5
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keymap-picker.d.ts","sourceRoot":"","sources":["../../src/ui/keymap-picker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,
|
|
1
|
+
{"version":3,"file":"keymap-picker.d.ts","sourceRoot":"","sources":["../../src/ui/keymap-picker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAyB,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAiBxC;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,UAAU,CAAC,SAAS,CAAC;gBACzC,GAAG,EAAE,MAAM,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,SAAS;CAoB9D"}
|
package/lib/ui/keymap-picker.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keymap-picker.js","sourceRoot":"","sources":["../../src/ui/keymap-picker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"keymap-picker.js","sourceRoot":"","sources":["../../src/ui/keymap-picker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAe,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAoB,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAkB,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC;;;;;;GAMG;AACH,SAAS,OAAO,CAAC,GAAW,EAAE,KAA8B;IAC1D,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;IACtD,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,CAAA;IAC5E,OAAO,OAAO,KAAK,MAAM,OAAO,cAAc,OAAO,gBAAgB,CAAA;AACvE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,YAAa,SAAQ,UAAqB;IACrD,YAAY,GAAiB,EAAE,KAA8B;QAC3D,KAAK,CACH,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,EAC9B,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,EAC3B,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EACb,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EACrE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC/C;YACE,KAAK,EAAE,GAAG,EAAE,CAAC,0CAA0C,QAAQ,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,QAAQ;YAC/F,sEAAsE;YACtE,wEAAwE;YACxE,MAAM,EAAE,GAAG,EAAE,CACX,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,WAAW,QAAQ,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,QAAQ;kBAChG,MAAM,QAAQ,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,yBAAyB;SACpE;QACD,wEAAwE;QACxE,uEAAuE;QACvE,GAAG,CACJ,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type GateCard } from '../../gates.ts';
|
|
2
|
+
import { type TuiToken } from '../../theme-tokens.ts';
|
|
3
|
+
import { type TuiTheme } from '../../theme.ts';
|
|
4
|
+
export interface GateCardsContext {
|
|
5
|
+
readonly theme: TuiTheme;
|
|
6
|
+
readonly pushWrapped: (lines: string[], text: string, width: number, prefix: string, token: TuiToken) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare class GateCards {
|
|
9
|
+
private readonly context;
|
|
10
|
+
constructor(context: GateCardsContext);
|
|
11
|
+
pushGate(lines: string[], gate: GateCard, width: number): void;
|
|
12
|
+
/**
|
|
13
|
+
* One row a reader can choose: the cursor, the box, the number, the label.
|
|
14
|
+
*
|
|
15
|
+
* The row wraps under the label it belongs to rather than at the screen edge,
|
|
16
|
+
* because the label and its description together are what tells two rows
|
|
17
|
+
* apart, and a mark on a continuation line reads as another row.
|
|
18
|
+
*/
|
|
19
|
+
private pushGateRow;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=gate-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-card.d.ts","sourceRoot":"","sources":["../../../src/ui/view/gate-card.ts"],"names":[],"mappings":"AAQA,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAsB9C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;CAC9G;AAED,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,gBAAgB;IAEtD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAwD9D;;;;;;SAMK;IACH,OAAO,CAAC,WAAW;CAWtB"}
|