@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.
Files changed (158) hide show
  1. package/README.md +29 -15
  2. package/dist/core/cells.d.ts +83 -3
  3. package/dist/core/cells.d.ts.map +1 -1
  4. package/dist/core/cells.js +113 -1
  5. package/dist/core/cells.js.map +1 -1
  6. package/dist/core/console.d.ts +0 -1
  7. package/dist/core/console.d.ts.map +1 -1
  8. package/dist/core/console.js +20 -16
  9. package/dist/core/console.js.map +1 -1
  10. package/dist/core/highlighter.d.ts.map +1 -1
  11. package/dist/core/highlighter.js.map +1 -1
  12. package/dist/core/oklch.d.ts +106 -0
  13. package/dist/core/oklch.d.ts.map +1 -0
  14. package/dist/core/oklch.js +221 -0
  15. package/dist/core/oklch.js.map +1 -0
  16. package/dist/core/render.d.ts +26 -7
  17. package/dist/core/render.d.ts.map +1 -1
  18. package/dist/core/render.js +83 -15
  19. package/dist/core/render.js.map +1 -1
  20. package/dist/core/segment.d.ts +14 -1
  21. package/dist/core/segment.d.ts.map +1 -1
  22. package/dist/core/segment.js +28 -3
  23. package/dist/core/segment.js.map +1 -1
  24. package/dist/core/style.d.ts +11 -2
  25. package/dist/core/style.d.ts.map +1 -1
  26. package/dist/core/style.js +31 -18
  27. package/dist/core/style.js.map +1 -1
  28. package/dist/core/text.d.ts +20 -0
  29. package/dist/core/text.d.ts.map +1 -1
  30. package/dist/core/text.js +31 -0
  31. package/dist/core/text.js.map +1 -1
  32. package/dist/index.d.ts +11 -4
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +12 -3
  35. package/dist/index.js.map +1 -1
  36. package/dist/renderables/columns.d.ts.map +1 -1
  37. package/dist/renderables/columns.js +15 -22
  38. package/dist/renderables/columns.js.map +1 -1
  39. package/dist/renderables/layout.d.ts.map +1 -1
  40. package/dist/renderables/layout.js +8 -29
  41. package/dist/renderables/layout.js.map +1 -1
  42. package/dist/renderables/live.d.ts.map +1 -1
  43. package/dist/renderables/live.js +8 -7
  44. package/dist/renderables/live.js.map +1 -1
  45. package/dist/renderables/panel.d.ts +34 -0
  46. package/dist/renderables/panel.d.ts.map +1 -1
  47. package/dist/renderables/panel.js +66 -23
  48. package/dist/renderables/panel.js.map +1 -1
  49. package/dist/template-bindings/helpers.d.ts +25 -0
  50. package/dist/template-bindings/helpers.d.ts.map +1 -0
  51. package/dist/template-bindings/helpers.js +31 -0
  52. package/dist/template-bindings/helpers.js.map +1 -0
  53. package/dist/template-bindings/index.d.ts +57 -18
  54. package/dist/template-bindings/index.d.ts.map +1 -1
  55. package/dist/template-bindings/index.js +83 -18
  56. package/dist/template-bindings/index.js.map +1 -1
  57. package/dist/template-bindings/palette-funcs.d.ts +76 -0
  58. package/dist/template-bindings/palette-funcs.d.ts.map +1 -0
  59. package/dist/template-bindings/palette-funcs.js +157 -0
  60. package/dist/template-bindings/palette-funcs.js.map +1 -0
  61. package/dist/template-bindings/style-funcs.d.ts.map +1 -1
  62. package/dist/template-bindings/style-funcs.js +33 -27
  63. package/dist/template-bindings/style-funcs.js.map +1 -1
  64. package/dist/themes/colorMath.d.ts +40 -0
  65. package/dist/themes/colorMath.d.ts.map +1 -1
  66. package/dist/themes/colorMath.js +82 -1
  67. package/dist/themes/colorMath.js.map +1 -1
  68. package/dist/themes/data/catppuccin-frappe.d.ts +4 -0
  69. package/dist/themes/data/catppuccin-frappe.d.ts.map +1 -0
  70. package/dist/themes/data/catppuccin-frappe.js +159 -0
  71. package/dist/themes/data/catppuccin-frappe.js.map +1 -0
  72. package/dist/themes/data/catppuccin-macchiato.d.ts +4 -0
  73. package/dist/themes/data/catppuccin-macchiato.d.ts.map +1 -0
  74. package/dist/themes/data/catppuccin-macchiato.js +159 -0
  75. package/dist/themes/data/catppuccin-macchiato.js.map +1 -0
  76. package/dist/themes/data/cyberpunk.d.ts +18 -0
  77. package/dist/themes/data/cyberpunk.d.ts.map +1 -0
  78. package/dist/themes/data/cyberpunk.js +192 -0
  79. package/dist/themes/data/cyberpunk.js.map +1 -0
  80. package/dist/themes/data/default.d.ts +4 -0
  81. package/dist/themes/data/default.d.ts.map +1 -0
  82. package/dist/themes/data/default.js +159 -0
  83. package/dist/themes/data/default.js.map +1 -0
  84. package/dist/themes/data/index.d.ts +10 -3
  85. package/dist/themes/data/index.d.ts.map +1 -1
  86. package/dist/themes/data/index.js +24 -7
  87. package/dist/themes/data/index.js.map +1 -1
  88. package/dist/themes/data/svg-export.d.ts +4 -0
  89. package/dist/themes/data/svg-export.d.ts.map +1 -0
  90. package/dist/themes/data/svg-export.js +159 -0
  91. package/dist/themes/data/svg-export.js.map +1 -0
  92. package/dist/themes/data/types.d.ts +4 -3
  93. package/dist/themes/data/types.d.ts.map +1 -1
  94. package/dist/themes/registry.d.ts +29 -2
  95. package/dist/themes/registry.d.ts.map +1 -1
  96. package/dist/themes/registry.js +62 -12
  97. package/dist/themes/registry.js.map +1 -1
  98. package/dist/themes/terminalThemes.d.ts +29 -20
  99. package/dist/themes/terminalThemes.d.ts.map +1 -1
  100. package/dist/themes/terminalThemes.js +50 -249
  101. package/dist/themes/terminalThemes.js.map +1 -1
  102. package/dist/themes/transpose.d.ts +88 -0
  103. package/dist/themes/transpose.d.ts.map +1 -0
  104. package/dist/themes/transpose.js +139 -0
  105. package/dist/themes/transpose.js.map +1 -0
  106. package/dist/widgets/button.d.ts +8 -5
  107. package/dist/widgets/button.d.ts.map +1 -1
  108. package/dist/widgets/button.js +36 -11
  109. package/dist/widgets/button.js.map +1 -1
  110. package/dist/widgets/checkbox.d.ts +1 -2
  111. package/dist/widgets/checkbox.d.ts.map +1 -1
  112. package/dist/widgets/checkbox.js +20 -7
  113. package/dist/widgets/checkbox.js.map +1 -1
  114. package/dist/widgets/dropdown.d.ts +4 -3
  115. package/dist/widgets/dropdown.d.ts.map +1 -1
  116. package/dist/widgets/dropdown.js +109 -27
  117. package/dist/widgets/dropdown.js.map +1 -1
  118. package/dist/widgets/event-router.d.ts +6 -3
  119. package/dist/widgets/event-router.d.ts.map +1 -1
  120. package/dist/widgets/event-router.js +179 -68
  121. package/dist/widgets/event-router.js.map +1 -1
  122. package/dist/widgets/focus-manager.d.ts +2 -1
  123. package/dist/widgets/focus-manager.d.ts.map +1 -1
  124. package/dist/widgets/focus-manager.js +28 -9
  125. package/dist/widgets/focus-manager.js.map +1 -1
  126. package/dist/widgets/index.d.ts +2 -2
  127. package/dist/widgets/index.d.ts.map +1 -1
  128. package/dist/widgets/index.js +1 -1
  129. package/dist/widgets/index.js.map +1 -1
  130. package/dist/widgets/screen.d.ts +2 -0
  131. package/dist/widgets/screen.d.ts.map +1 -1
  132. package/dist/widgets/screen.js +148 -45
  133. package/dist/widgets/screen.js.map +1 -1
  134. package/dist/widgets/slider.d.ts +6 -3
  135. package/dist/widgets/slider.d.ts.map +1 -1
  136. package/dist/widgets/slider.js +34 -10
  137. package/dist/widgets/slider.js.map +1 -1
  138. package/dist/widgets/static-item.d.ts +1 -1
  139. package/dist/widgets/static-item.d.ts.map +1 -1
  140. package/dist/widgets/static-item.js +12 -13
  141. package/dist/widgets/static-item.js.map +1 -1
  142. package/dist/widgets/text-input.d.ts +239 -13
  143. package/dist/widgets/text-input.d.ts.map +1 -1
  144. package/dist/widgets/text-input.js +1004 -74
  145. package/dist/widgets/text-input.js.map +1 -1
  146. package/dist/widgets/toggle.d.ts +1 -2
  147. package/dist/widgets/toggle.d.ts.map +1 -1
  148. package/dist/widgets/toggle.js +20 -8
  149. package/dist/widgets/toggle.js.map +1 -1
  150. package/dist/widgets/types.d.ts +21 -4
  151. package/dist/widgets/types.d.ts.map +1 -1
  152. package/dist/widgets/types.js +19 -0
  153. package/dist/widgets/types.js.map +1 -1
  154. package/dist/widgets/widget-base.d.ts +1 -0
  155. package/dist/widgets/widget-base.d.ts.map +1 -1
  156. package/dist/widgets/widget-base.js +24 -7
  157. package/dist/widgets/widget-base.js.map +1 -1
  158. package/package.json +5 -3
@@ -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;AAKH,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;AASD,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;IAEtE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,eAAe,CAAS;IAChC,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;IAED,IAAI,OAAO,IAAI,SAAS,iBAAiB,EAAE,CAE1C;IAID,KAAK,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAcrC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAUxC,KAAK,IAAI,IAAI;IAgBb,IAAI,IAAI,IAAI;IAeZ,OAAO,KAAK,KAAK,GAIhB;IAED,OAAO,CAAC,YAAY;IA+GpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,IAAI;CAsCb"}
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"}
@@ -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
- return this.widgetList;
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 during render; MobX subscribes to exactly what was
173
- // read, so only relevant state changes trigger redraws.
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(); // touch observables to subscribe
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: this.width,
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 widgetLines = visible ? Segment.splitLines(segments) : [];
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 (paint into
226
- // `lines`, record bounds) is identical for every kind.
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
- const prev = lastFlowRow;
244
- if (prev === null) {
291
+ prevAtPlacement = lastFlowRow;
292
+ if (prevAtPlacement === null) {
245
293
  x = 0;
246
294
  y = cursorY;
247
295
  }
248
296
  else {
249
- x = prev.rightX + (prev.rightX > 0 ? 1 : 0);
250
- y = prev.startY;
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 and bounds-union both happen
278
- // here; widgets never draw their own overlays.
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 overlayLines = Segment.splitLines(Array.from(overlaySegs));
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
- const { lines, bounds } = this.computeFrame();
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 > 0) {
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
- const clipped = Segment.adjustLineLength(line, this.width, undefined, false);
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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"}
@@ -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
- * unfilled — cells right of the marker use surface bg / foreground
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;;;;;;;;;;;;;;GAcG;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;IAEvC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,GAAE,aAAkB;IAYvC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKpC,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAmBvB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IA4BnD,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAKhC,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"}
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"}
@@ -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
- * unfilled — cells right of the marker use surface bg / foreground
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
- _theme = __runInitializers(this, _width_extraInitializers);
121
- _dragging = false;
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
- this.width = options.width ?? DEFAULT_WIDTH;
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":"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"}
1
+ {"version":3,"file":"slider.js","sourceRoot":"","sources":["../../src/widgets/slider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAc9C,MAAM,aAAa,GAAG,EAAE,CAAC;IAEZ,MAAM;;sBAAS,UAAU;;;;;;;;;;;;;;;;;;;;;;;;iBAAzB,MAAO,SAAQ,WAAU;;;iCAInC,UAAU;+BACV,CAAA,KAAA,UAAU,CAAA,CAAC,GAAG;+BACd,CAAA,KAAA,UAAU,CAAA,CAAC,GAAG;gCACd,CAAA,KAAA,UAAU,CAAA,CAAC,GAAG;iCACd,CAAA,KAAA,UAAU,CAAA,CAAC,GAAG;kCAKd,CAAA,KAAA,UAAU,CAAA,CAAC,GAAG;oCAuBd,MAAM;qCAKN,MAAM;uCAuBN,MAAM;oCA4BN,MAAM;YAxFK,oKAAS,KAAK,6BAAL,KAAK,qFAAS;YACnB,8JAAS,GAAG,6BAAH,GAAG,iFAAS;YACrB,8JAAS,GAAG,6BAAH,GAAG,iFAAS;YACrB,iKAAS,IAAI,6BAAJ,IAAI,mFAAS;YACtB,oKAAS,KAAK,6BAAL,KAAK,qFAAS;YAKvB,uKAAiB,MAAM,6BAAN,MAAM,uFAAgB;YAwBvD,2KAAA,QAAQ,6DAAqD;YAK7D,8KAAA,SAAS,6DAoBR;YAGD,oLAAS,WAAW,6DAuBnB;YAKD,2KAAQ,QAAQ,6DAKf;;;QAjGQ,EAAE,GADA,mDAAM,CACG;QACX,SAAS,GAAG,IAAI,CAAC;QAEd,+EAAuB;QAAvB,IAAS,KAAK,2CAAS;QAAvB,IAAS,KAAK,iDAAS;QACnB,gIAAqB;QAArB,IAAS,GAAG,yCAAS;QAArB,IAAS,GAAG,+CAAS;QACrB,8HAAqB;QAArB,IAAS,GAAG,yCAAS;QAArB,IAAS,GAAG,+CAAS;QACrB,gIAAsB;QAAtB,IAAS,IAAI,0CAAS;QAAtB,IAAS,IAAI,gDAAS;QACtB,mIAAuB;QAAvB,IAAS,KAAK,2CAAS;QAAvB,IAAS,KAAK,iDAAS;QAKvB,sIAAuC;QAHvD,uEAAuE;QACvE,yEAAyE;QACzE,uEAAuE;QACvD,IAAiB,MAAM,4CAAgB;QAAvC,IAAiB,MAAM,kDAAgB;QAC/C,SAAS,wDAAG,KAAK,EAAC;QAE1B,YAAY,UAAyB,EAAE;YACrC,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC;YAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;YAC9B,yEAAyE;YACzE,qEAAqE;YACrE,yEAAyE;YACzE,4EAA4E;YAC5E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,UAAU,CAAC,gDAAgD,KAAK,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACjF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;YAC1C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,sBAAsB,CAAC;QACxD,CAAC;QAGD,QAAQ,CAAC,KAAoB,IAAU,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;QAE7D,yBAAyB;QAGzB,SAAS,CAAC,KAAe;YACvB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC;gBAClB,KAAK,MAAM;oBACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtC,KAAK,CAAC,IAAI,EAAE,CAAC;oBACb,OAAO;gBACT,KAAK,OAAO;oBACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtC,KAAK,CAAC,IAAI,EAAE,CAAC;oBACb,OAAO;gBACT,KAAK,MAAM;oBACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxB,KAAK,CAAC,IAAI,EAAE,CAAC;oBACb,OAAO;gBACT,KAAK,KAAK;oBACR,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxB,KAAK,CAAC,IAAI,EAAE,CAAC;oBACb,OAAO;YACX,CAAC;QACH,CAAC;QAGQ,WAAW,CAAC,KAAuB;YAC1C,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAE1B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAChC,IAAI,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrD,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,CAAC;gBACD,OAAO;YACT,CAAC;QACH,CAAC;QAED,yBAAyB;QAGjB,QAAQ,CAAC,IAAY;YAC3B,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,OAAO,KAAK,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;QAEO,kBAAkB,CAAC,CAAS;YAClC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACtB,IAAI,CAAC,CAAC;gBAAE,OAAO;YACf,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,OAAO,GAAG,cAAc,CAAC;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,oBAAoB;QAEpB,MAAM,CAAC,OAAsB;YAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAChD,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YAClC,MAAM,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACnE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAE1D,MAAM,SAAS,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ;gBAC/B,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;gBAC9E,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;YACvE,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ;gBACjC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;gBAC9E,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;YACvE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ;gBAC/B,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;gBAC1F,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;YAEnF,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;YACvE,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;YACpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC;YACxC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,QAAuB;YAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACtD,CAAC;QAED,6BAA6B;QAErB,cAAc,CAAC,GAAW;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,gEAAgE;YAChE,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAK,CAAC,CAAC;QACnC,CAAC;;;SAxJU,MAAM;AA2JnB,wEAAwE;AACxE,qEAAqE;AACrE,yEAAyE;AACzE,oBAAoB;AACpB,SAAS,SAAS,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAE,IAAY;IACtE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACpD,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9B,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAChE,qEAAqE;IACrE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/C,CAAC"}