@promptctl/rich-js 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.
- package/README.md +29 -15
- package/dist/core/cells.d.ts +83 -3
- package/dist/core/cells.d.ts.map +1 -1
- package/dist/core/cells.js +113 -1
- package/dist/core/cells.js.map +1 -1
- package/dist/core/console.d.ts +0 -1
- package/dist/core/console.d.ts.map +1 -1
- package/dist/core/console.js +20 -16
- package/dist/core/console.js.map +1 -1
- package/dist/core/highlighter.d.ts.map +1 -1
- package/dist/core/highlighter.js.map +1 -1
- package/dist/core/oklch.d.ts +106 -0
- package/dist/core/oklch.d.ts.map +1 -0
- package/dist/core/oklch.js +221 -0
- package/dist/core/oklch.js.map +1 -0
- package/dist/core/render.d.ts +26 -7
- package/dist/core/render.d.ts.map +1 -1
- package/dist/core/render.js +83 -15
- package/dist/core/render.js.map +1 -1
- package/dist/core/segment.d.ts +14 -1
- package/dist/core/segment.d.ts.map +1 -1
- package/dist/core/segment.js +28 -3
- package/dist/core/segment.js.map +1 -1
- package/dist/core/style.d.ts +11 -2
- package/dist/core/style.d.ts.map +1 -1
- package/dist/core/style.js +31 -18
- package/dist/core/style.js.map +1 -1
- package/dist/core/text.d.ts +20 -0
- package/dist/core/text.d.ts.map +1 -1
- package/dist/core/text.js +31 -0
- package/dist/core/text.js.map +1 -1
- package/dist/index.d.ts +11 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -3
- package/dist/index.js.map +1 -1
- package/dist/renderables/columns.d.ts.map +1 -1
- package/dist/renderables/columns.js +15 -22
- package/dist/renderables/columns.js.map +1 -1
- package/dist/renderables/layout.d.ts.map +1 -1
- package/dist/renderables/layout.js +8 -29
- package/dist/renderables/layout.js.map +1 -1
- package/dist/renderables/live.d.ts.map +1 -1
- package/dist/renderables/live.js +8 -7
- package/dist/renderables/live.js.map +1 -1
- package/dist/renderables/panel.d.ts +34 -0
- package/dist/renderables/panel.d.ts.map +1 -1
- package/dist/renderables/panel.js +66 -23
- package/dist/renderables/panel.js.map +1 -1
- package/dist/template-bindings/helpers.d.ts +25 -0
- package/dist/template-bindings/helpers.d.ts.map +1 -0
- package/dist/template-bindings/helpers.js +31 -0
- package/dist/template-bindings/helpers.js.map +1 -0
- package/dist/template-bindings/index.d.ts +57 -18
- package/dist/template-bindings/index.d.ts.map +1 -1
- package/dist/template-bindings/index.js +83 -18
- package/dist/template-bindings/index.js.map +1 -1
- package/dist/template-bindings/palette-funcs.d.ts +76 -0
- package/dist/template-bindings/palette-funcs.d.ts.map +1 -0
- package/dist/template-bindings/palette-funcs.js +157 -0
- package/dist/template-bindings/palette-funcs.js.map +1 -0
- package/dist/template-bindings/style-funcs.d.ts.map +1 -1
- package/dist/template-bindings/style-funcs.js +33 -27
- package/dist/template-bindings/style-funcs.js.map +1 -1
- package/dist/themes/colorMath.d.ts +40 -0
- package/dist/themes/colorMath.d.ts.map +1 -1
- package/dist/themes/colorMath.js +82 -1
- package/dist/themes/colorMath.js.map +1 -1
- package/dist/themes/data/catppuccin-frappe.d.ts +4 -0
- package/dist/themes/data/catppuccin-frappe.d.ts.map +1 -0
- package/dist/themes/data/catppuccin-frappe.js +159 -0
- package/dist/themes/data/catppuccin-frappe.js.map +1 -0
- package/dist/themes/data/catppuccin-macchiato.d.ts +4 -0
- package/dist/themes/data/catppuccin-macchiato.d.ts.map +1 -0
- package/dist/themes/data/catppuccin-macchiato.js +159 -0
- package/dist/themes/data/catppuccin-macchiato.js.map +1 -0
- package/dist/themes/data/cyberpunk.d.ts +18 -0
- package/dist/themes/data/cyberpunk.d.ts.map +1 -0
- package/dist/themes/data/cyberpunk.js +192 -0
- package/dist/themes/data/cyberpunk.js.map +1 -0
- package/dist/themes/data/default.d.ts +4 -0
- package/dist/themes/data/default.d.ts.map +1 -0
- package/dist/themes/data/default.js +159 -0
- package/dist/themes/data/default.js.map +1 -0
- package/dist/themes/data/index.d.ts +10 -3
- package/dist/themes/data/index.d.ts.map +1 -1
- package/dist/themes/data/index.js +24 -7
- package/dist/themes/data/index.js.map +1 -1
- package/dist/themes/data/svg-export.d.ts +4 -0
- package/dist/themes/data/svg-export.d.ts.map +1 -0
- package/dist/themes/data/svg-export.js +159 -0
- package/dist/themes/data/svg-export.js.map +1 -0
- package/dist/themes/data/types.d.ts +4 -3
- package/dist/themes/data/types.d.ts.map +1 -1
- package/dist/themes/registry.d.ts +29 -2
- package/dist/themes/registry.d.ts.map +1 -1
- package/dist/themes/registry.js +62 -12
- package/dist/themes/registry.js.map +1 -1
- package/dist/themes/terminalThemes.d.ts +29 -20
- package/dist/themes/terminalThemes.d.ts.map +1 -1
- package/dist/themes/terminalThemes.js +50 -249
- package/dist/themes/terminalThemes.js.map +1 -1
- package/dist/themes/transpose.d.ts +88 -0
- package/dist/themes/transpose.d.ts.map +1 -0
- package/dist/themes/transpose.js +139 -0
- package/dist/themes/transpose.js.map +1 -0
- package/dist/widgets/button.d.ts +8 -5
- package/dist/widgets/button.d.ts.map +1 -1
- package/dist/widgets/button.js +36 -11
- package/dist/widgets/button.js.map +1 -1
- package/dist/widgets/checkbox.d.ts +1 -2
- package/dist/widgets/checkbox.d.ts.map +1 -1
- package/dist/widgets/checkbox.js +20 -7
- package/dist/widgets/checkbox.js.map +1 -1
- package/dist/widgets/dropdown.d.ts +4 -3
- package/dist/widgets/dropdown.d.ts.map +1 -1
- package/dist/widgets/dropdown.js +109 -27
- package/dist/widgets/dropdown.js.map +1 -1
- package/dist/widgets/event-router.d.ts +6 -3
- package/dist/widgets/event-router.d.ts.map +1 -1
- package/dist/widgets/event-router.js +179 -68
- package/dist/widgets/event-router.js.map +1 -1
- package/dist/widgets/focus-manager.d.ts +2 -1
- package/dist/widgets/focus-manager.d.ts.map +1 -1
- package/dist/widgets/focus-manager.js +28 -9
- package/dist/widgets/focus-manager.js.map +1 -1
- package/dist/widgets/index.d.ts +2 -2
- package/dist/widgets/index.d.ts.map +1 -1
- package/dist/widgets/index.js +1 -1
- package/dist/widgets/index.js.map +1 -1
- package/dist/widgets/screen.d.ts +2 -0
- package/dist/widgets/screen.d.ts.map +1 -1
- package/dist/widgets/screen.js +148 -45
- package/dist/widgets/screen.js.map +1 -1
- package/dist/widgets/slider.d.ts +6 -3
- package/dist/widgets/slider.d.ts.map +1 -1
- package/dist/widgets/slider.js +34 -10
- package/dist/widgets/slider.js.map +1 -1
- package/dist/widgets/static-item.d.ts +1 -1
- package/dist/widgets/static-item.d.ts.map +1 -1
- package/dist/widgets/static-item.js +12 -13
- package/dist/widgets/static-item.js.map +1 -1
- package/dist/widgets/text-input.d.ts +239 -13
- package/dist/widgets/text-input.d.ts.map +1 -1
- package/dist/widgets/text-input.js +1004 -74
- package/dist/widgets/text-input.js.map +1 -1
- package/dist/widgets/toggle.d.ts +1 -2
- package/dist/widgets/toggle.d.ts.map +1 -1
- package/dist/widgets/toggle.js +20 -8
- package/dist/widgets/toggle.js.map +1 -1
- package/dist/widgets/types.d.ts +21 -4
- package/dist/widgets/types.d.ts.map +1 -1
- package/dist/widgets/types.js +19 -0
- package/dist/widgets/types.js.map +1 -1
- package/dist/widgets/widget-base.d.ts +1 -0
- package/dist/widgets/widget-base.d.ts.map +1 -1
- package/dist/widgets/widget-base.js +24 -7
- package/dist/widgets/widget-base.js.map +1 -1
- package/package.json +5 -3
package/dist/widgets/dropdown.js
CHANGED
|
@@ -60,10 +60,11 @@ import { observable, action } from "mobx";
|
|
|
60
60
|
import { Segment } from "../core/segment.js";
|
|
61
61
|
import { Style } from "../core/style.js";
|
|
62
62
|
import { ColorSpec } from "../core/color.js";
|
|
63
|
+
import { cellLen, setCellSize, splitText, asCellCol } from "../core/cells.js";
|
|
63
64
|
import { DEFAULT_TERMINAL_THEME } from "../themes/terminalThemes.js";
|
|
64
65
|
import { WidgetBase } from "./widget-base.js";
|
|
65
66
|
let Dropdown = (() => {
|
|
66
|
-
var _a;
|
|
67
|
+
var _a, _b;
|
|
67
68
|
let _classSuper = WidgetBase;
|
|
68
69
|
let _instanceExtraInitializers = [];
|
|
69
70
|
let _options_decorators;
|
|
@@ -81,9 +82,13 @@ let Dropdown = (() => {
|
|
|
81
82
|
let _filter_decorators;
|
|
82
83
|
let _filter_initializers = [];
|
|
83
84
|
let _filter_extraInitializers = [];
|
|
85
|
+
let __theme_decorators;
|
|
86
|
+
let __theme_initializers = [];
|
|
87
|
+
let __theme_extraInitializers = [];
|
|
88
|
+
let _setTheme_decorators;
|
|
84
89
|
let _handleKey_decorators;
|
|
85
90
|
let _handleMouse_decorators;
|
|
86
|
-
let
|
|
91
|
+
let _handleFocus_decorators;
|
|
87
92
|
return class Dropdown extends _classSuper {
|
|
88
93
|
static {
|
|
89
94
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
@@ -92,17 +97,21 @@ let Dropdown = (() => {
|
|
|
92
97
|
_expanded_decorators = [observable];
|
|
93
98
|
_highlightedIndex_decorators = [observable];
|
|
94
99
|
_filter_decorators = [observable];
|
|
100
|
+
__theme_decorators = [(_b = observable).ref.bind(_b)];
|
|
101
|
+
_setTheme_decorators = [action];
|
|
95
102
|
_handleKey_decorators = [action];
|
|
96
103
|
_handleMouse_decorators = [action];
|
|
97
|
-
|
|
104
|
+
_handleFocus_decorators = [action];
|
|
98
105
|
__esDecorate(this, null, _options_decorators, { kind: "accessor", name: "options", static: false, private: false, access: { has: obj => "options" in obj, get: obj => obj.options, set: (obj, value) => { obj.options = value; } }, metadata: _metadata }, _options_initializers, _options_extraInitializers);
|
|
99
106
|
__esDecorate(this, null, _selectedIndex_decorators, { kind: "accessor", name: "selectedIndex", static: false, private: false, access: { has: obj => "selectedIndex" in obj, get: obj => obj.selectedIndex, set: (obj, value) => { obj.selectedIndex = value; } }, metadata: _metadata }, _selectedIndex_initializers, _selectedIndex_extraInitializers);
|
|
100
107
|
__esDecorate(this, null, _expanded_decorators, { kind: "accessor", name: "expanded", static: false, private: false, access: { has: obj => "expanded" in obj, get: obj => obj.expanded, set: (obj, value) => { obj.expanded = value; } }, metadata: _metadata }, _expanded_initializers, _expanded_extraInitializers);
|
|
101
108
|
__esDecorate(this, null, _highlightedIndex_decorators, { kind: "accessor", name: "highlightedIndex", static: false, private: false, access: { has: obj => "highlightedIndex" in obj, get: obj => obj.highlightedIndex, set: (obj, value) => { obj.highlightedIndex = value; } }, metadata: _metadata }, _highlightedIndex_initializers, _highlightedIndex_extraInitializers);
|
|
102
109
|
__esDecorate(this, null, _filter_decorators, { kind: "accessor", name: "filter", static: false, private: false, access: { has: obj => "filter" in obj, get: obj => obj.filter, set: (obj, value) => { obj.filter = value; } }, metadata: _metadata }, _filter_initializers, _filter_extraInitializers);
|
|
110
|
+
__esDecorate(this, null, __theme_decorators, { kind: "accessor", name: "_theme", static: false, private: false, access: { has: obj => "_theme" in obj, get: obj => obj._theme, set: (obj, value) => { obj._theme = value; } }, metadata: _metadata }, __theme_initializers, __theme_extraInitializers);
|
|
111
|
+
__esDecorate(this, null, _setTheme_decorators, { kind: "method", name: "setTheme", static: false, private: false, access: { has: obj => "setTheme" in obj, get: obj => obj.setTheme }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
103
112
|
__esDecorate(this, null, _handleKey_decorators, { kind: "method", name: "handleKey", static: false, private: false, access: { has: obj => "handleKey" in obj, get: obj => obj.handleKey }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
104
113
|
__esDecorate(this, null, _handleMouse_decorators, { kind: "method", name: "handleMouse", static: false, private: false, access: { has: obj => "handleMouse" in obj, get: obj => obj.handleMouse }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
105
|
-
__esDecorate(this, null,
|
|
114
|
+
__esDecorate(this, null, _handleFocus_decorators, { kind: "method", name: "handleFocus", static: false, private: false, access: { has: obj => "handleFocus" in obj, get: obj => obj.handleFocus }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
106
115
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
107
116
|
}
|
|
108
117
|
id = __runInitializers(this, _instanceExtraInitializers);
|
|
@@ -135,16 +144,38 @@ let Dropdown = (() => {
|
|
|
135
144
|
}
|
|
136
145
|
return result;
|
|
137
146
|
}
|
|
138
|
-
|
|
147
|
+
#_theme_accessor_storage = (__runInitializers(this, _filter_extraInitializers), __runInitializers(this, __theme_initializers, void 0));
|
|
148
|
+
// [LAW:types-are-the-program] @observable.ref so setTheme() triggers a
|
|
149
|
+
// re-render — render() and resolvePalette() read _theme.palette, so the
|
|
150
|
+
// theme reference must participate in MobX reactivity.
|
|
151
|
+
get _theme() { return this.#_theme_accessor_storage; }
|
|
152
|
+
set _theme(value) { this.#_theme_accessor_storage = value; }
|
|
139
153
|
constructor(options) {
|
|
140
154
|
super();
|
|
155
|
+
__runInitializers(this, __theme_extraInitializers);
|
|
141
156
|
this.id = options.id ?? `dropdown-${Math.random().toString(36).slice(2, 8)}`;
|
|
142
157
|
this.options = [...options.options];
|
|
143
|
-
|
|
158
|
+
// [LAW:types-are-the-program] selectedIndex must point to a valid
|
|
159
|
+
// option (or be 0 for the empty-options case). Clamp at the trust
|
|
160
|
+
// boundary so headerText / render / commit logic can all assume
|
|
161
|
+
// validity. Empty options is allowed — render falls back to an
|
|
162
|
+
// empty label and commit is a no-op until options are populated.
|
|
163
|
+
this.selectedIndex = this.clampIndex(options.selectedIndex ?? 0);
|
|
144
164
|
this.highlightedIndex = this.selectedIndex;
|
|
145
165
|
this.disabled = options.disabled ?? false;
|
|
146
166
|
this._theme = options.theme ?? DEFAULT_TERMINAL_THEME;
|
|
147
167
|
}
|
|
168
|
+
// [LAW:single-enforcer] One place owns "is this index valid for the
|
|
169
|
+
// current options". selectedIndex and options are public observables —
|
|
170
|
+
// external code can move them out of range. Anywhere internal code
|
|
171
|
+
// seeds highlightedIndex from selectedIndex (constructor + every
|
|
172
|
+
// expand path), route through this clamp so the seeded value is
|
|
173
|
+
// always a legal option index (or 0 for empty options).
|
|
174
|
+
clampIndex(n) {
|
|
175
|
+
if (this.options.length === 0)
|
|
176
|
+
return 0;
|
|
177
|
+
return Math.max(0, Math.min(n, this.options.length - 1));
|
|
178
|
+
}
|
|
148
179
|
setTheme(theme) { this._theme = theme; }
|
|
149
180
|
// --- Event handlers ---
|
|
150
181
|
handleKey(event) {
|
|
@@ -159,7 +190,8 @@ let Dropdown = (() => {
|
|
|
159
190
|
// enter/space remain the explicit "open with selection seeded" gesture.
|
|
160
191
|
if (event.key === "enter" || event.key === "space") {
|
|
161
192
|
this.expanded = true;
|
|
162
|
-
this.highlightedIndex = this.selectedIndex;
|
|
193
|
+
this.highlightedIndex = this.clampIndex(this.selectedIndex);
|
|
194
|
+
event.stop();
|
|
163
195
|
return;
|
|
164
196
|
}
|
|
165
197
|
// Any other printable char auto-expands and starts filtering.
|
|
@@ -167,6 +199,7 @@ let Dropdown = (() => {
|
|
|
167
199
|
this.expanded = true;
|
|
168
200
|
this.filter = this.filter + event.character;
|
|
169
201
|
this.highlightedIndex = 0;
|
|
202
|
+
event.stop();
|
|
170
203
|
}
|
|
171
204
|
return;
|
|
172
205
|
}
|
|
@@ -174,16 +207,19 @@ let Dropdown = (() => {
|
|
|
174
207
|
switch (event.key) {
|
|
175
208
|
case "up":
|
|
176
209
|
this.highlightedIndex = Math.max(0, this.highlightedIndex - 1);
|
|
210
|
+
event.stop();
|
|
177
211
|
return;
|
|
178
212
|
case "down": {
|
|
179
213
|
const max = Math.max(0, this.filteredOptions.length - 1);
|
|
180
214
|
this.highlightedIndex = Math.min(max, this.highlightedIndex + 1);
|
|
215
|
+
event.stop();
|
|
181
216
|
return;
|
|
182
217
|
}
|
|
183
218
|
case "enter": {
|
|
184
219
|
// [LAW:one-source-of-truth] Map filtered position → canonical idx.
|
|
185
220
|
// No-op when filteredOptions is empty (highlighted is undefined).
|
|
186
221
|
const picked = this.filteredOptions[this.highlightedIndex];
|
|
222
|
+
event.stop();
|
|
187
223
|
if (picked === undefined)
|
|
188
224
|
return;
|
|
189
225
|
this.selectedIndex = picked.idx;
|
|
@@ -197,16 +233,30 @@ let Dropdown = (() => {
|
|
|
197
233
|
// Single-step: clear filter + collapse.
|
|
198
234
|
this.filter = "";
|
|
199
235
|
this.expanded = false;
|
|
236
|
+
event.stop();
|
|
200
237
|
return;
|
|
201
238
|
case "backspace":
|
|
202
239
|
// [LAW:dataflow-not-control-flow] slice(0,-1) on "" is "" — no guard.
|
|
203
240
|
this.filter = this.filter.slice(0, -1);
|
|
204
241
|
this.highlightedIndex = 0;
|
|
242
|
+
event.stop();
|
|
243
|
+
return;
|
|
244
|
+
case "tab":
|
|
245
|
+
// First Tab while expanded cancels (clear filter + collapse) and
|
|
246
|
+
// KEEPS focus on the dropdown. event.stop() halts the chain so
|
|
247
|
+
// FocusManager's normal-priority Tab handler never runs — focus
|
|
248
|
+
// traversal only happens on the *next* Tab press, when this widget
|
|
249
|
+
// is collapsed and no longer stops the event. Shift direction is
|
|
250
|
+
// ignored: both Tab and Shift+Tab cancel.
|
|
251
|
+
this.filter = "";
|
|
252
|
+
this.expanded = false;
|
|
253
|
+
event.stop();
|
|
205
254
|
return;
|
|
206
255
|
}
|
|
207
256
|
if (isPrintable) {
|
|
208
257
|
this.filter = this.filter + event.character;
|
|
209
258
|
this.highlightedIndex = 0;
|
|
259
|
+
event.stop();
|
|
210
260
|
}
|
|
211
261
|
}
|
|
212
262
|
handleMouse(event) {
|
|
@@ -224,7 +274,7 @@ let Dropdown = (() => {
|
|
|
224
274
|
if (!this.expanded) {
|
|
225
275
|
if (inside) {
|
|
226
276
|
this.expanded = true;
|
|
227
|
-
this.highlightedIndex = this.selectedIndex;
|
|
277
|
+
this.highlightedIndex = this.clampIndex(this.selectedIndex);
|
|
228
278
|
}
|
|
229
279
|
return;
|
|
230
280
|
}
|
|
@@ -252,14 +302,28 @@ let Dropdown = (() => {
|
|
|
252
302
|
this.emitChange();
|
|
253
303
|
this.emitSubmit();
|
|
254
304
|
}
|
|
255
|
-
//
|
|
256
|
-
|
|
305
|
+
// [LAW:single-enforcer] FocusManager is the single dispatcher of focus
|
|
306
|
+
// transitions; overriding handleFocus here catches every blur path (Tab
|
|
307
|
+
// cycling, programmatic focus, unregister) so the overlay cannot outlive
|
|
308
|
+
// the widget's focus. Collapse is the data; no separate "should I close"
|
|
309
|
+
// branch lives at the router or elsewhere.
|
|
310
|
+
handleFocus(event) {
|
|
311
|
+
super.handleFocus(event);
|
|
312
|
+
if (event.type === "blur") {
|
|
313
|
+
this.filter = "";
|
|
314
|
+
this.expanded = false;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
257
317
|
// --- Rendering ---
|
|
258
318
|
render(options) {
|
|
259
319
|
// Header only — the inline footprint that flow layout sees. Always
|
|
260
320
|
// 1 row regardless of `expanded`/`filter`. Option rows live in
|
|
261
321
|
// renderOverlay. Width invariant: maxLabelLen + 4.
|
|
262
322
|
const arrowChar = options.asciiOnly ? "v" : "▾";
|
|
323
|
+
// [LAW:one-source-of-truth] render() owns the asciiOnly switch; the
|
|
324
|
+
// caret character flows into headerText as data rather than headerText
|
|
325
|
+
// re-reading the option flag. Same arrow / caret resolution path.
|
|
326
|
+
const caret = this.focused ? (options.asciiOnly ? "|" : "│") : "";
|
|
263
327
|
const maxLabelLen = this.maxLabelLen();
|
|
264
328
|
const baseStyle = this.disabled
|
|
265
329
|
? new Style({ color: "#666666", bgcolor: "#333333", dim: true })
|
|
@@ -268,7 +332,7 @@ let Dropdown = (() => {
|
|
|
268
332
|
bgcolor: this.resolvePalette("surface"),
|
|
269
333
|
underline: this.focused,
|
|
270
334
|
});
|
|
271
|
-
const headerLabel = this.headerText(maxLabelLen);
|
|
335
|
+
const headerLabel = this.headerText(maxLabelLen, caret);
|
|
272
336
|
return [
|
|
273
337
|
new Segment("[", baseStyle),
|
|
274
338
|
new Segment(`${headerLabel} ${arrowChar}`, baseStyle),
|
|
@@ -278,14 +342,28 @@ let Dropdown = (() => {
|
|
|
278
342
|
// [LAW:dataflow-not-control-flow] One header text function; the data
|
|
279
343
|
// (filter empty vs not) chooses between selected-label and query+cursor.
|
|
280
344
|
// Both branches yield exactly maxLabelLen cells — width invariant.
|
|
281
|
-
|
|
345
|
+
// Selected label is centered; filter input is left-aligned so the caret
|
|
346
|
+
// doesn't jitter horizontally while typing.
|
|
347
|
+
//
|
|
348
|
+
// [LAW:one-source-of-truth] All width math is in terminal cells via
|
|
349
|
+
// cellLen / setCellSize / splitText — plain `.length` would miscount
|
|
350
|
+
// wide / emoji characters and break the width invariant.
|
|
351
|
+
headerText(maxLabelLen, caret) {
|
|
282
352
|
if (this.filter === "") {
|
|
283
|
-
|
|
353
|
+
const raw = this.options[this.selectedIndex] ?? "";
|
|
354
|
+
const w = cellLen(raw);
|
|
355
|
+
if (w >= maxLabelLen)
|
|
356
|
+
return setCellSize(raw, asCellCol(maxLabelLen));
|
|
357
|
+
const pad = maxLabelLen - w;
|
|
358
|
+
const left = Math.floor(pad / 2);
|
|
359
|
+
const right = pad - left;
|
|
360
|
+
return " ".repeat(left) + raw + " ".repeat(right);
|
|
284
361
|
}
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
const
|
|
288
|
-
|
|
362
|
+
// Leading space gives the filter input a small gutter from the [ chrome,
|
|
363
|
+
// matching the visual breathing room of the centered label.
|
|
364
|
+
const filterRoom = Math.max(0, maxLabelLen - cellLen(caret) - 1);
|
|
365
|
+
const [filterText] = splitText(this.filter, asCellCol(filterRoom));
|
|
366
|
+
return setCellSize(" " + filterText + caret, asCellCol(maxLabelLen));
|
|
289
367
|
}
|
|
290
368
|
renderOverlay(_options) {
|
|
291
369
|
if (!this.expanded)
|
|
@@ -304,7 +382,7 @@ let Dropdown = (() => {
|
|
|
304
382
|
}
|
|
305
383
|
renderNoMatchRow(maxLabelLen) {
|
|
306
384
|
// Right-clipped + padded so width matches a normal option row.
|
|
307
|
-
const text = "(no matches)"
|
|
385
|
+
const text = setCellSize("(no matches)", asCellCol(maxLabelLen));
|
|
308
386
|
const inner = ` ${text} `;
|
|
309
387
|
const style = this.disabled
|
|
310
388
|
? new Style({ color: "#666666", bgcolor: "#333333", dim: true })
|
|
@@ -314,15 +392,17 @@ let Dropdown = (() => {
|
|
|
314
392
|
dim: true,
|
|
315
393
|
});
|
|
316
394
|
return [
|
|
317
|
-
new Segment("
|
|
395
|
+
new Segment(" ", style),
|
|
318
396
|
new Segment(inner, style),
|
|
319
|
-
new Segment("
|
|
397
|
+
new Segment(" ", style),
|
|
320
398
|
];
|
|
321
399
|
}
|
|
322
400
|
renderOptionRow(entry, fpos, maxLabelLen) {
|
|
323
|
-
// Row: "
|
|
401
|
+
// Row: " " + label.padEnd(maxLabelLen) + " "
|
|
324
402
|
// Width = 1 + 1 + maxLabelLen + 1 + 1 = maxLabelLen + 4.
|
|
325
|
-
|
|
403
|
+
// Overlay rows are unbracketed — selection/highlight are conveyed by bg
|
|
404
|
+
// color; the header keeps [ ] as its focus-indicator chrome.
|
|
405
|
+
const label = setCellSize(entry.label, asCellCol(maxLabelLen));
|
|
326
406
|
const inner = ` ${label} `;
|
|
327
407
|
const isSelected = entry.idx === this.selectedIndex;
|
|
328
408
|
const isHighlighted = fpos === this.highlightedIndex;
|
|
@@ -345,16 +425,18 @@ let Dropdown = (() => {
|
|
|
345
425
|
bgcolor: this.resolvePalette("surface"),
|
|
346
426
|
});
|
|
347
427
|
return [
|
|
348
|
-
new Segment("
|
|
428
|
+
new Segment(" ", rowStyle),
|
|
349
429
|
new Segment(inner, rowStyle),
|
|
350
|
-
new Segment("
|
|
430
|
+
new Segment(" ", rowStyle),
|
|
351
431
|
];
|
|
352
432
|
}
|
|
353
433
|
maxLabelLen() {
|
|
354
434
|
let m = 0;
|
|
355
|
-
for (const label of this.options)
|
|
356
|
-
|
|
357
|
-
|
|
435
|
+
for (const label of this.options) {
|
|
436
|
+
const w = cellLen(label);
|
|
437
|
+
if (w > m)
|
|
438
|
+
m = w;
|
|
439
|
+
}
|
|
358
440
|
return m;
|
|
359
441
|
}
|
|
360
442
|
measure(_options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../src/widgets/dropdown.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../src/widgets/dropdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
* router defers emission via setImmediate. The next chunk cancels the timer
|
|
17
17
|
* if it extends the sequence. Tests can call `flush()` to drain synchronously.
|
|
18
18
|
*/
|
|
19
|
-
import
|
|
19
|
+
import { KeyEvent } from "./types.js";
|
|
20
|
+
import type { Screen, FocusManager, InteractiveWidget, WidgetMouseEvent, KeyHandlerOptions, Unsubscribe } from "./types.js";
|
|
21
|
+
type KeyHandler = (event: KeyEvent) => void;
|
|
20
22
|
type WidgetSource = {
|
|
21
23
|
focusManager: FocusManager;
|
|
22
24
|
getWidgets: () => readonly InteractiveWidget[];
|
|
@@ -49,12 +51,13 @@ export declare class EventRouter {
|
|
|
49
51
|
private running;
|
|
50
52
|
private dataListener;
|
|
51
53
|
private escTimer;
|
|
52
|
-
private
|
|
54
|
+
private capturedWidget;
|
|
55
|
+
private readonly keyChain;
|
|
53
56
|
private readonly mouseHandlers;
|
|
54
57
|
constructor(options: EventRouterOptions);
|
|
55
58
|
start(): void;
|
|
56
59
|
stop(): void;
|
|
57
|
-
onKey(handler:
|
|
60
|
+
onKey(handler: KeyHandler, options?: KeyHandlerOptions): Unsubscribe;
|
|
58
61
|
onMouse(handler: (event: WidgetMouseEvent) => void): Unsubscribe;
|
|
59
62
|
/** Feed a chunk of bytes (or a string of bytes) into the parser. */
|
|
60
63
|
feed(chunk: Buffer | string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-router.d.ts","sourceRoot":"","sources":["../../src/widgets/event-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"event-router.d.ts","sourceRoot":"","sources":["../../src/widgets/event-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAEjB,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,KAAK,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AAM5C,KAAK,YAAY,GAAG;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,MAAM,SAAS,iBAAiB,EAAE,CAAC;CAChD,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG;QAC9B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;QACvC,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA+ED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IAExC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAiD;IACrE,OAAO,CAAC,QAAQ,CAA8C;IAM9D,OAAO,CAAC,cAAc,CAAkC;IAKxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgD;gBAElE,OAAO,EAAE,kBAAkB;IAyBvC,KAAK,IAAI,IAAI;IAiBb,IAAI,IAAI,IAAI;IAiCZ,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,WAAW;IAYpE,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,WAAW;IAOhE,oEAAoE;IACpE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAkBlC,oDAAoD;IACpD,KAAK,IAAI,IAAI;IAab,OAAO,CAAC,KAAK;IAWb,OAAO,CAAC,UAAU;IA6ClB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,aAAa;IA2ErB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,UAAU;IA2DlB,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,aAAa;CA+BtB"}
|