@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/screen.d.ts
CHANGED
|
@@ -67,9 +67,11 @@ export declare class DefaultScreen implements Screen {
|
|
|
67
67
|
readonly focusManager: FocusManager;
|
|
68
68
|
accessor widgetList: InteractiveWidget[];
|
|
69
69
|
private readonly placements;
|
|
70
|
+
private _activeOverlays;
|
|
70
71
|
private _running;
|
|
71
72
|
private autorunDispose;
|
|
72
73
|
private renderScheduled;
|
|
74
|
+
private pendingFrame;
|
|
73
75
|
private lastLineCount;
|
|
74
76
|
private readonly out;
|
|
75
77
|
private readonly widthOverride;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/widgets/screen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;
|
|
1
|
+
{"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/widgets/screen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAMH,OAAO,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AAIlE,OAAO,KAAK,EACV,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,UAAU,EAGX,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,MAAM,GACN,WAAW,GACX,KAAK,GACL,MAAM,GACN,MAAM,GACN,IAAI,CAAC;AAET,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAqBD,qBAAa,aAAc,YAAW,MAAM;IAC1C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAKpC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAM;IAM9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2C;IAOtE,OAAO,CAAC,eAAe,CAAqC;IAE5D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,eAAe,CAAS;IAKhC,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwB;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAE3B,OAAO,GAAE,aAAkB;IAYvC,IAAI,OAAO,IAAI,OAAO,CAErB;IASD,IAAI,OAAO,IAAI,SAAS,iBAAiB,EAAE,CAQ1C;IAID,KAAK,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAcrC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAcxC,KAAK,IAAI,IAAI;IAoBb,IAAI,IAAI,IAAI;IAwBZ,OAAO,KAAK,KAAK,GAIhB;IAED,OAAO,CAAC,YAAY;IA8IpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,IAAI;CAyDb"}
|
package/dist/widgets/screen.js
CHANGED
|
@@ -85,6 +85,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
|
|
|
85
85
|
};
|
|
86
86
|
import { autorun, makeObservable, observable, runInAction } from "mobx";
|
|
87
87
|
import { Segment } from "../core/segment.js";
|
|
88
|
+
import { asCellCol } from "../core/cells.js";
|
|
88
89
|
import { segmentsToString } from "../core/render.js";
|
|
89
90
|
import { resolveColorSystem } from "../core/color.js";
|
|
90
91
|
import { DefaultFocusManager } from "./focus-manager.js";
|
|
@@ -113,9 +114,20 @@ let DefaultScreen = (() => {
|
|
|
113
114
|
// mutates them, so they don't need to be observable. The observable
|
|
114
115
|
// `widgetList` above already fires reactivity on mount/unmount.
|
|
115
116
|
placements = (__runInitializers(this, _widgetList_extraInitializers), new Map());
|
|
117
|
+
// [LAW:single-enforcer] Set of widgets whose overlay rendered visible
|
|
118
|
+
// rows in the most recent frame. Updated by draw() from FrameLayout;
|
|
119
|
+
// consumed by the `widgets` getter to expose hit-test z-order to
|
|
120
|
+
// EventRouter. Mount/unmount don't touch this — it's a per-frame
|
|
121
|
+
// derivation, not mount state.
|
|
122
|
+
_activeOverlays = new Set();
|
|
116
123
|
_running = false;
|
|
117
124
|
autorunDispose;
|
|
118
125
|
renderScheduled = false;
|
|
126
|
+
// [LAW:one-source-of-truth] The autorun computes the next frame once and
|
|
127
|
+
// stores it here; draw() reads and clears. Not observable — only the
|
|
128
|
+
// autorun writes, only draw reads, both run in the same single-threaded
|
|
129
|
+
// event loop.
|
|
130
|
+
pendingFrame = null;
|
|
119
131
|
lastLineCount = 0;
|
|
120
132
|
out;
|
|
121
133
|
widthOverride;
|
|
@@ -133,8 +145,22 @@ let DefaultScreen = (() => {
|
|
|
133
145
|
get running() {
|
|
134
146
|
return this._running;
|
|
135
147
|
}
|
|
148
|
+
// [LAW:types-are-the-program] `widgets` is the *output* of layout: the
|
|
149
|
+
// list EventRouter uses for hit-testing, in z-order — non-overlay widgets
|
|
150
|
+
// first (in mount order), overlay-active widgets last. `topmostHit`
|
|
151
|
+
// iterates this in reverse and returns the first containing widget, so
|
|
152
|
+
// overlay-active widgets win against anything mounted under them.
|
|
153
|
+
// [LAW:single-enforcer] Screen is the sole authority on z-order; the
|
|
154
|
+
// router consumes the result, never derives it itself.
|
|
136
155
|
get widgets() {
|
|
137
|
-
|
|
156
|
+
if (this._activeOverlays.size === 0)
|
|
157
|
+
return this.widgetList;
|
|
158
|
+
const base = [];
|
|
159
|
+
const top = [];
|
|
160
|
+
for (const w of this.widgetList) {
|
|
161
|
+
(this._activeOverlays.has(w) ? top : base).push(w);
|
|
162
|
+
}
|
|
163
|
+
return [...base, ...top];
|
|
138
164
|
}
|
|
139
165
|
// --- Lifecycle ---
|
|
140
166
|
mount(...entries) {
|
|
@@ -159,6 +185,10 @@ let DefaultScreen = (() => {
|
|
|
159
185
|
this.widgetList = this.widgetList.filter((w) => w !== widget);
|
|
160
186
|
this.placements.delete(widget);
|
|
161
187
|
this.focusManager.unregister(widget);
|
|
188
|
+
// [LAW:one-source-of-truth] Drop any z-order entry for the removed
|
|
189
|
+
// widget so a later getter doesn't return a dangling reference.
|
|
190
|
+
// The next draw will rebuild this from scratch.
|
|
191
|
+
this._activeOverlays.delete(widget);
|
|
162
192
|
});
|
|
163
193
|
}
|
|
164
194
|
start() {
|
|
@@ -169,10 +199,14 @@ let DefaultScreen = (() => {
|
|
|
169
199
|
if (this.manageCursor)
|
|
170
200
|
this.out.write("\x1b[?25l");
|
|
171
201
|
// [LAW:dataflow-not-control-flow] One reactive pipeline. The autorun
|
|
172
|
-
// reads observables
|
|
173
|
-
// read
|
|
202
|
+
// computes the frame (which reads observables; MobX subscribes to
|
|
203
|
+
// exactly what was read so only relevant state changes trigger redraws),
|
|
204
|
+
// caches it as `pendingFrame`, and schedules a microtask to paint it.
|
|
205
|
+
// draw() consumes the cached frame instead of recomputing — without the
|
|
206
|
+
// cache, every tick laid the frame out twice (once for subscription,
|
|
207
|
+
// once for paint).
|
|
174
208
|
this.autorunDispose = autorun(() => {
|
|
175
|
-
this.computeFrame();
|
|
209
|
+
this.pendingFrame = this.computeFrame();
|
|
176
210
|
this.scheduleRender();
|
|
177
211
|
});
|
|
178
212
|
}
|
|
@@ -184,6 +218,14 @@ let DefaultScreen = (() => {
|
|
|
184
218
|
this.autorunDispose();
|
|
185
219
|
this.autorunDispose = undefined;
|
|
186
220
|
}
|
|
221
|
+
// [LAW:one-source-of-truth] stop() returns the screen to a clean
|
|
222
|
+
// baseline. Without these resets a stopped screen would retain the
|
|
223
|
+
// last FrameLayout (segments + bounds) — unnecessary memory and a
|
|
224
|
+
// restart hazard where the first frame after restart could leak the
|
|
225
|
+
// pre-stop layout. Same idempotent-cleanup pattern as EventRouter.stop.
|
|
226
|
+
this.pendingFrame = null;
|
|
227
|
+
this.renderScheduled = false;
|
|
228
|
+
this._activeOverlays = new Set();
|
|
187
229
|
if (this.manageCursor)
|
|
188
230
|
this.out.write("\x1b[?25h");
|
|
189
231
|
if (this.lastLineCount > 0)
|
|
@@ -197,13 +239,23 @@ let DefaultScreen = (() => {
|
|
|
197
239
|
return cols ?? DEFAULT_WIDTH;
|
|
198
240
|
}
|
|
199
241
|
computeFrame() {
|
|
242
|
+
// [LAW:one-source-of-truth] Snapshot the width ONCE at the top of
|
|
243
|
+
// the frame so layout, per-widget clipping, per-line clipping, and
|
|
244
|
+
// the final paint all see the same value. Reading `this.width`
|
|
245
|
+
// multiple times can drift across a microtask boundary if the
|
|
246
|
+
// terminal is resized between compute and draw.
|
|
247
|
+
const width = this.width;
|
|
200
248
|
const renderOptions = {
|
|
201
|
-
maxWidth:
|
|
249
|
+
maxWidth: width,
|
|
202
250
|
isTerminal: true,
|
|
203
251
|
encoding: "utf-8",
|
|
204
252
|
};
|
|
205
253
|
const lines = [];
|
|
206
254
|
const boundsList = [];
|
|
255
|
+
// [LAW:single-enforcer] Populated by pass 2 below. Pass 2 is the only
|
|
256
|
+
// place that decides whether a widget's overlay produced visible rows
|
|
257
|
+
// this frame — exactly where the z-order discriminator belongs.
|
|
258
|
+
const activeOverlays = new Set();
|
|
207
259
|
// Layout cursor for flow placement. `cursorY` is the next free row.
|
|
208
260
|
// `lastFlowRow` tracks the most recent flow/inline row so that a
|
|
209
261
|
// following inline placement can pack against its right edge.
|
|
@@ -217,65 +269,76 @@ let DefaultScreen = (() => {
|
|
|
217
269
|
// The same operations execute every iteration.
|
|
218
270
|
const visible = widget.visible;
|
|
219
271
|
const segments = visible ? Array.from(widget.render(renderOptions)) : [];
|
|
220
|
-
const
|
|
221
|
-
const [w, h] = Segment.getShape(widgetLines);
|
|
272
|
+
const rawLines = visible ? Segment.splitLines(segments) : [];
|
|
222
273
|
const placement = this.placements.get(widget) ?? FLOW;
|
|
223
274
|
// [LAW:types-are-the-program] Single total switch on the discriminated
|
|
224
275
|
// union: every legal placement gets exactly one branch, the compiler
|
|
225
|
-
// enforces exhaustiveness, and the rest of the pipeline (
|
|
226
|
-
// `lines`, record bounds) is
|
|
276
|
+
// enforces exhaustiveness, and the rest of the pipeline (clip to the
|
|
277
|
+
// remaining screen width, paint into `lines`, record bounds) is
|
|
278
|
+
// identical for every kind. x/y come from the placement; the available
|
|
279
|
+
// width comes from `this.width - x`.
|
|
227
280
|
let x;
|
|
228
281
|
let y;
|
|
282
|
+
let prevAtPlacement = null;
|
|
229
283
|
switch (placement.kind) {
|
|
230
|
-
case "flow":
|
|
284
|
+
case "flow":
|
|
231
285
|
x = 0;
|
|
232
286
|
y = cursorY;
|
|
233
|
-
paintLines(lines, widgetLines, x, y);
|
|
234
|
-
if (h > 0) {
|
|
235
|
-
cursorY = y + h;
|
|
236
|
-
lastFlowRow = { startY: y, height: h, rightX: x + w };
|
|
237
|
-
}
|
|
238
287
|
break;
|
|
239
|
-
}
|
|
240
288
|
case "inline": {
|
|
241
289
|
// Pack onto the most recent flow/inline row. If there is no prior
|
|
242
290
|
// row (inline used as the first item), fall back to flow at x=0.
|
|
243
|
-
|
|
244
|
-
if (
|
|
291
|
+
prevAtPlacement = lastFlowRow;
|
|
292
|
+
if (prevAtPlacement === null) {
|
|
245
293
|
x = 0;
|
|
246
294
|
y = cursorY;
|
|
247
295
|
}
|
|
248
296
|
else {
|
|
249
|
-
x =
|
|
250
|
-
y =
|
|
251
|
-
}
|
|
252
|
-
paintLines(lines, widgetLines, x, y);
|
|
253
|
-
if (h > 0) {
|
|
254
|
-
const rowStart = prev?.startY ?? y;
|
|
255
|
-
const rowHeight = Math.max(prev?.height ?? 0, h);
|
|
256
|
-
cursorY = Math.max(cursorY, rowStart + rowHeight);
|
|
257
|
-
lastFlowRow = { startY: rowStart, height: rowHeight, rightX: x + w };
|
|
297
|
+
x = prevAtPlacement.rightX + (prevAtPlacement.rightX > 0 ? 1 : 0);
|
|
298
|
+
y = prevAtPlacement.startY;
|
|
258
299
|
}
|
|
259
300
|
break;
|
|
260
301
|
}
|
|
261
|
-
case "fixed":
|
|
302
|
+
case "fixed":
|
|
262
303
|
x = placement.x;
|
|
263
304
|
y = placement.y;
|
|
264
|
-
paintLines(lines, widgetLines, x, y);
|
|
265
|
-
// Fixed placements never advance the flow cursor — they are
|
|
266
|
-
// independent anchors. We still grow the canvas if needed
|
|
267
|
-
// (paintLines handles that).
|
|
268
305
|
break;
|
|
269
|
-
}
|
|
270
306
|
}
|
|
307
|
+
// [LAW:single-enforcer] Clip widget lines to the remaining screen
|
|
308
|
+
// width here so widget bounds match what actually gets painted. A
|
|
309
|
+
// renderable that emits more cells than its allotted slot (rogue
|
|
310
|
+
// widget, or an inline placement overflowing the screen edge) would
|
|
311
|
+
// otherwise compute bounds wider than reality, breaking hit-testing
|
|
312
|
+
// and the inline rightX that subsequent inline widgets pack against.
|
|
313
|
+
const available = Math.max(0, width - x);
|
|
314
|
+
const widgetLines = available > 0
|
|
315
|
+
? rawLines.map((line) => Segment.adjustLineLength(line, available, undefined, false))
|
|
316
|
+
: [];
|
|
317
|
+
const [w, h] = Segment.getShape(widgetLines);
|
|
318
|
+
paintLines(lines, widgetLines, x, y);
|
|
319
|
+
if (placement.kind === "flow" && h > 0) {
|
|
320
|
+
cursorY = y + h;
|
|
321
|
+
lastFlowRow = { startY: y, height: h, rightX: x + w };
|
|
322
|
+
}
|
|
323
|
+
else if (placement.kind === "inline" && h > 0) {
|
|
324
|
+
const rowStart = prevAtPlacement?.startY ?? y;
|
|
325
|
+
const rowHeight = Math.max(prevAtPlacement?.height ?? 0, h);
|
|
326
|
+
cursorY = Math.max(cursorY, rowStart + rowHeight);
|
|
327
|
+
lastFlowRow = { startY: rowStart, height: rowHeight, rightX: x + w };
|
|
328
|
+
}
|
|
329
|
+
// Fixed placements never advance the flow cursor — they are
|
|
330
|
+
// independent anchors. paintLines grows the canvas as needed.
|
|
271
331
|
boundsList.push({ widget, bounds: { x, y, width: w, height: h } });
|
|
272
332
|
}
|
|
273
333
|
// Pass 2 — overlays. Widgets that implement OverlayRenderable paint
|
|
274
334
|
// ON TOP of the frame, anchored directly below their inline footprint.
|
|
275
335
|
// Render order = z-order: the overlay pass runs last, so overlay rows
|
|
276
336
|
// overwrite anything that was placed below the widget by pass 1.
|
|
277
|
-
// [LAW:single-enforcer] Overlay placement
|
|
278
|
-
// here; widgets never draw their own
|
|
337
|
+
// [LAW:single-enforcer] Overlay placement, bounds-union, AND z-order
|
|
338
|
+
// for hit-testing all happen here; widgets never draw their own
|
|
339
|
+
// overlays and the router never re-derives z-order. Each widget that
|
|
340
|
+
// produces visible overlay rows is added to `activeOverlays` so the
|
|
341
|
+
// `widgets` getter can surface it as topmost.
|
|
279
342
|
for (const entry of boundsList) {
|
|
280
343
|
const widget = entry.widget;
|
|
281
344
|
if (!widget.visible)
|
|
@@ -285,7 +348,15 @@ let DefaultScreen = (() => {
|
|
|
285
348
|
const overlaySegs = widget.renderOverlay(renderOptions);
|
|
286
349
|
if (overlaySegs === null)
|
|
287
350
|
continue;
|
|
288
|
-
const
|
|
351
|
+
const overlayRawLines = Segment.splitLines(Array.from(overlaySegs));
|
|
352
|
+
if (overlayRawLines.length === 0)
|
|
353
|
+
continue;
|
|
354
|
+
// [LAW:single-enforcer] Same per-line clip as the base pass — bounds
|
|
355
|
+
// (used for hit-testing the overlay) match the painted output.
|
|
356
|
+
const overlayAvailable = Math.max(0, width - entry.bounds.x);
|
|
357
|
+
const overlayLines = overlayAvailable > 0
|
|
358
|
+
? overlayRawLines.map((line) => Segment.adjustLineLength(line, overlayAvailable, undefined, false))
|
|
359
|
+
: [];
|
|
289
360
|
if (overlayLines.length === 0)
|
|
290
361
|
continue;
|
|
291
362
|
const startY = entry.bounds.y + entry.bounds.height;
|
|
@@ -297,8 +368,9 @@ let DefaultScreen = (() => {
|
|
|
297
368
|
width: Math.max(entry.bounds.width, overlayW),
|
|
298
369
|
height: entry.bounds.height + overlayLines.length,
|
|
299
370
|
};
|
|
371
|
+
activeOverlays.add(widget);
|
|
300
372
|
}
|
|
301
|
-
return { lines, bounds: boundsList };
|
|
373
|
+
return { width, lines, bounds: boundsList, activeOverlays };
|
|
302
374
|
}
|
|
303
375
|
scheduleRender() {
|
|
304
376
|
if (this.renderScheduled)
|
|
@@ -311,17 +383,33 @@ let DefaultScreen = (() => {
|
|
|
311
383
|
});
|
|
312
384
|
}
|
|
313
385
|
draw() {
|
|
314
|
-
|
|
386
|
+
// [LAW:single-enforcer] One frame per tick. The autorun populates
|
|
387
|
+
// `pendingFrame`; we consume it here. Fall back to a fresh compute if
|
|
388
|
+
// draw is reached without a pending frame (test paths that call draw
|
|
389
|
+
// outside the autorun, or the very first frame before autorun fired).
|
|
390
|
+
const frame = this.pendingFrame ?? this.computeFrame();
|
|
391
|
+
this.pendingFrame = null;
|
|
392
|
+
const { width, lines, bounds, activeOverlays } = frame;
|
|
315
393
|
// [LAW:single-enforcer] Bounds are written here, the only place that
|
|
316
394
|
// computes layout. `bounds` is a plain field (see widget-base.ts) — no
|
|
317
395
|
// MobX action required.
|
|
318
396
|
for (const { widget, bounds: b } of bounds)
|
|
319
397
|
widget.bounds = b;
|
|
398
|
+
// [LAW:single-enforcer] Hit-test z-order is published by the same
|
|
399
|
+
// pass that wrote the bounds. The `widgets` getter reads this set to
|
|
400
|
+
// partition `widgetList` into [base, overlay-active] so EventRouter's
|
|
401
|
+
// topmostHit sees overlay owners as topmost.
|
|
402
|
+
this._activeOverlays = activeOverlays;
|
|
320
403
|
const newCount = lines.length;
|
|
321
404
|
const drawCount = Math.max(newCount, this.lastLineCount);
|
|
405
|
+
// [LAW:types-are-the-program] After the previous frame wrote N lines
|
|
406
|
+
// with N-1 newlines between them, the cursor sits at end-of-row-N (no
|
|
407
|
+
// trailing newline). Rewinding to the top of the frame is N-1 rows up
|
|
408
|
+
// plus a CR. `\x1b[0A` is still one row up on some terminals, so we
|
|
409
|
+
// skip the CSI entirely when there's only one row to overwrite.
|
|
322
410
|
let buf = "";
|
|
323
|
-
if (this.lastLineCount >
|
|
324
|
-
buf += `\x1b[${this.lastLineCount}A`;
|
|
411
|
+
if (this.lastLineCount > 1) {
|
|
412
|
+
buf += `\x1b[${this.lastLineCount - 1}A`;
|
|
325
413
|
}
|
|
326
414
|
buf += "\r";
|
|
327
415
|
for (let i = 0; i < drawCount; i++) {
|
|
@@ -333,7 +421,9 @@ let DefaultScreen = (() => {
|
|
|
333
421
|
// line shifts every later row down by one terminal cell, which
|
|
334
422
|
// misaligns overlays and leaves wrap-continuation residue when later
|
|
335
423
|
// frames write narrower content over the same logical row.
|
|
336
|
-
|
|
424
|
+
// Use the frame's captured width, not a re-read of this.width —
|
|
425
|
+
// see FrameLayout for the rationale.
|
|
426
|
+
const clipped = Segment.adjustLineLength(line, width, undefined, false);
|
|
337
427
|
buf += segmentsToString(clipped, this.colorSystem);
|
|
338
428
|
}
|
|
339
429
|
// [LAW:single-enforcer] Erase-to-end-of-line is the single mechanism
|
|
@@ -365,10 +455,23 @@ function resolveSpec(spec, isTTY) {
|
|
|
365
455
|
// that pass `mount(a, b, c)` keep working unchanged.
|
|
366
456
|
function normalizeEntry(entry) {
|
|
367
457
|
if ("widget" in entry && "placement" in entry) {
|
|
458
|
+
validatePlacement(entry.placement);
|
|
368
459
|
return { widget: entry.widget, placement: entry.placement };
|
|
369
460
|
}
|
|
370
461
|
return { widget: entry, placement: FLOW };
|
|
371
462
|
}
|
|
463
|
+
// [LAW:types-are-the-program] mount() is the trust boundary for placements.
|
|
464
|
+
// `x` and `y` are typed as `number` but the layout pipeline assumes
|
|
465
|
+
// non-negative integers — negative coordinates would index out of bounds in
|
|
466
|
+
// paintLines and either crash on bang-asserts or silently skip rows. Reject
|
|
467
|
+
// at construction so the rest of the pipeline can assume validity.
|
|
468
|
+
function validatePlacement(p) {
|
|
469
|
+
if (p.kind !== "fixed")
|
|
470
|
+
return;
|
|
471
|
+
if (!Number.isInteger(p.x) || !Number.isInteger(p.y) || p.x < 0 || p.y < 0) {
|
|
472
|
+
throw new RangeError(`fixed Placement requires non-negative integer x and y; got (${p.x}, ${p.y})`);
|
|
473
|
+
}
|
|
474
|
+
}
|
|
372
475
|
// Paint `widgetLines` into the frame `lines` at top-left (x, y). Grows the
|
|
373
476
|
// frame as needed and uses cell-accurate splice semantics so a fixed
|
|
374
477
|
// placement or overlay overwrites whatever was painted earlier underneath.
|
|
@@ -391,14 +494,14 @@ function paintLines(lines, widgetLines, x, y) {
|
|
|
391
494
|
lines[y + i] = source.slice();
|
|
392
495
|
continue;
|
|
393
496
|
}
|
|
394
|
-
lines[y + i] = spliceCells(target, x, sourceWidth, source);
|
|
497
|
+
lines[y + i] = spliceCells(target, asCellCol(x), sourceWidth, source);
|
|
395
498
|
}
|
|
396
499
|
}
|
|
397
500
|
function lineCellLength(line) {
|
|
398
501
|
let total = 0;
|
|
399
502
|
for (const s of line)
|
|
400
503
|
total += s.cellLength;
|
|
401
|
-
return total;
|
|
504
|
+
return asCellCol(total);
|
|
402
505
|
}
|
|
403
506
|
// Return a new row with cells [start, start+length) replaced by
|
|
404
507
|
// `replacement`. Pads the prefix with spaces if `row` is shorter than
|
|
@@ -423,12 +526,12 @@ function spliceCells(row, start, length, replacement) {
|
|
|
423
526
|
}
|
|
424
527
|
else {
|
|
425
528
|
if (cursor < start) {
|
|
426
|
-
const [head] = seg.splitCells(start - cursor);
|
|
529
|
+
const [head] = seg.splitCells(asCellCol(start - cursor));
|
|
427
530
|
if (head.hasText)
|
|
428
531
|
prefix.push(head);
|
|
429
532
|
}
|
|
430
533
|
if (segEnd > start + length) {
|
|
431
|
-
const [, tail] = seg.splitCells(start + length - cursor);
|
|
534
|
+
const [, tail] = seg.splitCells(asCellCol(start + length - cursor));
|
|
432
535
|
if (tail.hasText)
|
|
433
536
|
suffix.push(tail);
|
|
434
537
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../../src/widgets/screen.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../../src/widgets/screen.ts"],"names":[],"mappings":"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"}
|
package/dist/widgets/slider.d.ts
CHANGED
|
@@ -9,7 +9,11 @@
|
|
|
9
9
|
* track — `width` cells of "─" (ASCII fallback "-")
|
|
10
10
|
* marker — "●" (ASCII fallback "*") at round((value - min) / range * (width - 1))
|
|
11
11
|
* filled — cells left of and including the marker use primary fg
|
|
12
|
-
*
|
|
12
|
+
* on the default terminal bg
|
|
13
|
+
* unfilled — cells right of the marker use surface fg on the default
|
|
14
|
+
* terminal bg (no explicit bgcolor — the unfilled track
|
|
15
|
+
* should sit transparently against whatever the panel /
|
|
16
|
+
* parent paints underneath)
|
|
13
17
|
* focused — underline on the segments
|
|
14
18
|
* disabled — dim
|
|
15
19
|
*/
|
|
@@ -36,13 +40,12 @@ export declare class Slider extends WidgetBase {
|
|
|
36
40
|
accessor max: number;
|
|
37
41
|
accessor step: number;
|
|
38
42
|
accessor width: number;
|
|
39
|
-
private _theme;
|
|
43
|
+
private accessor _theme;
|
|
40
44
|
private _dragging;
|
|
41
45
|
constructor(options?: SliderOptions);
|
|
42
46
|
setTheme(theme: TerminalTheme): void;
|
|
43
47
|
handleKey(event: KeyEvent): void;
|
|
44
48
|
handleMouse(event: WidgetMouseEvent): void;
|
|
45
|
-
setHovered(value: boolean): void;
|
|
46
49
|
private setValue;
|
|
47
50
|
private setValueFromMouseX;
|
|
48
51
|
render(options: RenderOptions): Iterable<Segment>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../src/widgets/slider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../src/widgets/slider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAID,qBAAa,MAAO,SAAQ,UAAU;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,QAAQ;IAEd,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAKvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvD,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,GAAE,aAAkB;IAqBvC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKpC,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAuBvB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IA4BnD,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,kBAAkB;IAY1B,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;IA8BjD,OAAO,CAAC,QAAQ,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAMtE,OAAO,CAAC,cAAc;CAKvB"}
|
package/dist/widgets/slider.js
CHANGED
|
@@ -9,7 +9,11 @@
|
|
|
9
9
|
* track — `width` cells of "─" (ASCII fallback "-")
|
|
10
10
|
* marker — "●" (ASCII fallback "*") at round((value - min) / range * (width - 1))
|
|
11
11
|
* filled — cells left of and including the marker use primary fg
|
|
12
|
-
*
|
|
12
|
+
* on the default terminal bg
|
|
13
|
+
* unfilled — cells right of the marker use surface fg on the default
|
|
14
|
+
* terminal bg (no explicit bgcolor — the unfilled track
|
|
15
|
+
* should sit transparently against whatever the panel /
|
|
16
|
+
* parent paints underneath)
|
|
13
17
|
* focused — underline on the segments
|
|
14
18
|
* disabled — dim
|
|
15
19
|
*/
|
|
@@ -55,7 +59,7 @@ import { DEFAULT_TERMINAL_THEME } from "../themes/terminalThemes.js";
|
|
|
55
59
|
import { WidgetBase } from "./widget-base.js";
|
|
56
60
|
const DEFAULT_WIDTH = 20;
|
|
57
61
|
let Slider = (() => {
|
|
58
|
-
var _a, _b, _c, _d;
|
|
62
|
+
var _a, _b, _c, _d, _e;
|
|
59
63
|
let _classSuper = WidgetBase;
|
|
60
64
|
let _instanceExtraInitializers = [];
|
|
61
65
|
let _value_decorators;
|
|
@@ -73,9 +77,12 @@ let Slider = (() => {
|
|
|
73
77
|
let _width_decorators;
|
|
74
78
|
let _width_initializers = [];
|
|
75
79
|
let _width_extraInitializers = [];
|
|
80
|
+
let __theme_decorators;
|
|
81
|
+
let __theme_initializers = [];
|
|
82
|
+
let __theme_extraInitializers = [];
|
|
83
|
+
let _setTheme_decorators;
|
|
76
84
|
let _handleKey_decorators;
|
|
77
85
|
let _handleMouse_decorators;
|
|
78
|
-
let _setHovered_decorators;
|
|
79
86
|
let _setValue_decorators;
|
|
80
87
|
return class Slider extends _classSuper {
|
|
81
88
|
static {
|
|
@@ -85,18 +92,20 @@ let Slider = (() => {
|
|
|
85
92
|
_max_decorators = [(_b = observable).ref.bind(_b)];
|
|
86
93
|
_step_decorators = [(_c = observable).ref.bind(_c)];
|
|
87
94
|
_width_decorators = [(_d = observable).ref.bind(_d)];
|
|
95
|
+
__theme_decorators = [(_e = observable).ref.bind(_e)];
|
|
96
|
+
_setTheme_decorators = [action];
|
|
88
97
|
_handleKey_decorators = [action];
|
|
89
98
|
_handleMouse_decorators = [action];
|
|
90
|
-
_setHovered_decorators = [action];
|
|
91
99
|
_setValue_decorators = [action];
|
|
92
100
|
__esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
|
|
93
101
|
__esDecorate(this, null, _min_decorators, { kind: "accessor", name: "min", static: false, private: false, access: { has: obj => "min" in obj, get: obj => obj.min, set: (obj, value) => { obj.min = value; } }, metadata: _metadata }, _min_initializers, _min_extraInitializers);
|
|
94
102
|
__esDecorate(this, null, _max_decorators, { kind: "accessor", name: "max", static: false, private: false, access: { has: obj => "max" in obj, get: obj => obj.max, set: (obj, value) => { obj.max = value; } }, metadata: _metadata }, _max_initializers, _max_extraInitializers);
|
|
95
103
|
__esDecorate(this, null, _step_decorators, { kind: "accessor", name: "step", static: false, private: false, access: { has: obj => "step" in obj, get: obj => obj.step, set: (obj, value) => { obj.step = value; } }, metadata: _metadata }, _step_initializers, _step_extraInitializers);
|
|
96
104
|
__esDecorate(this, null, _width_decorators, { kind: "accessor", name: "width", static: false, private: false, access: { has: obj => "width" in obj, get: obj => obj.width, set: (obj, value) => { obj.width = value; } }, metadata: _metadata }, _width_initializers, _width_extraInitializers);
|
|
105
|
+
__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);
|
|
106
|
+
__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);
|
|
97
107
|
__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);
|
|
98
108
|
__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);
|
|
99
|
-
__esDecorate(this, null, _setHovered_decorators, { kind: "method", name: "setHovered", static: false, private: false, access: { has: obj => "setHovered" in obj, get: obj => obj.setHovered }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
100
109
|
__esDecorate(this, null, _setValue_decorators, { kind: "method", name: "setValue", static: false, private: false, access: { has: obj => "setValue" in obj, get: obj => obj.setValue }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
101
110
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
102
111
|
}
|
|
@@ -117,15 +126,28 @@ let Slider = (() => {
|
|
|
117
126
|
#width_accessor_storage = (__runInitializers(this, _step_extraInitializers), __runInitializers(this, _width_initializers, void 0));
|
|
118
127
|
get width() { return this.#width_accessor_storage; }
|
|
119
128
|
set width(value) { this.#width_accessor_storage = value; }
|
|
120
|
-
|
|
121
|
-
|
|
129
|
+
#_theme_accessor_storage = (__runInitializers(this, _width_extraInitializers), __runInitializers(this, __theme_initializers, void 0));
|
|
130
|
+
// [LAW:types-are-the-program] @observable.ref so setTheme() triggers a
|
|
131
|
+
// re-render — render() reads _theme.palette, so the theme reference must
|
|
132
|
+
// participate in MobX reactivity for Screen's autorun to fire on swap.
|
|
133
|
+
get _theme() { return this.#_theme_accessor_storage; }
|
|
134
|
+
set _theme(value) { this.#_theme_accessor_storage = value; }
|
|
135
|
+
_dragging = (__runInitializers(this, __theme_extraInitializers), false);
|
|
122
136
|
constructor(options = {}) {
|
|
123
137
|
super();
|
|
124
138
|
this.id = options.id ?? `slider-${Math.random().toString(36).slice(2, 8)}`;
|
|
125
139
|
this.min = options.min ?? 0;
|
|
126
140
|
this.max = options.max ?? 100;
|
|
127
141
|
this.step = options.step ?? 1;
|
|
128
|
-
|
|
142
|
+
// [LAW:types-are-the-program] `width` is a `number` in the option shape,
|
|
143
|
+
// but rendering and mouse math require a positive integer. This is a
|
|
144
|
+
// construction-time trust boundary — guard once so every downstream call
|
|
145
|
+
// (`trackChar.repeat(width)`, `width - 1` denominator) can assume validity.
|
|
146
|
+
const width = options.width ?? DEFAULT_WIDTH;
|
|
147
|
+
if (!Number.isInteger(width) || width < 1) {
|
|
148
|
+
throw new RangeError(`Slider width must be a positive integer; got ${width}`);
|
|
149
|
+
}
|
|
150
|
+
this.width = width;
|
|
129
151
|
this.value = clampSnap(options.value ?? this.min, this.min, this.max, this.step);
|
|
130
152
|
this.disabled = options.disabled ?? false;
|
|
131
153
|
this._theme = options.theme ?? DEFAULT_TERMINAL_THEME;
|
|
@@ -138,15 +160,19 @@ let Slider = (() => {
|
|
|
138
160
|
switch (event.key) {
|
|
139
161
|
case "left":
|
|
140
162
|
this.setValue(this.value - this.step);
|
|
163
|
+
event.stop();
|
|
141
164
|
return;
|
|
142
165
|
case "right":
|
|
143
166
|
this.setValue(this.value + this.step);
|
|
167
|
+
event.stop();
|
|
144
168
|
return;
|
|
145
169
|
case "home":
|
|
146
170
|
this.setValue(this.min);
|
|
171
|
+
event.stop();
|
|
147
172
|
return;
|
|
148
173
|
case "end":
|
|
149
174
|
this.setValue(this.max);
|
|
175
|
+
event.stop();
|
|
150
176
|
return;
|
|
151
177
|
}
|
|
152
178
|
}
|
|
@@ -173,8 +199,6 @@ let Slider = (() => {
|
|
|
173
199
|
return;
|
|
174
200
|
}
|
|
175
201
|
}
|
|
176
|
-
// --- Hover mutator (router fast-path) ---
|
|
177
|
-
setHovered(value) { this.hovered = value; }
|
|
178
202
|
// --- Value mutation ---
|
|
179
203
|
setValue(next) {
|
|
180
204
|
const snapped = clampSnap(next, this.min, this.max, this.step);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.js","sourceRoot":"","sources":["../../src/widgets/slider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"slider.js","sourceRoot":"","sources":["../../src/widgets/slider.ts"],"names":[],"mappings":"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"}
|