@promptctl/rich-js 0.7.0 → 0.8.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 +31 -30
- package/dist/core/box.d.ts +3 -3
- package/dist/core/box.d.ts.map +1 -1
- package/dist/core/box.js.map +1 -1
- package/dist/core/cells.d.ts +46 -1
- package/dist/core/cells.d.ts.map +1 -1
- package/dist/core/cells.js +55 -14
- package/dist/core/cells.js.map +1 -1
- package/dist/core/console.d.ts +28 -10
- package/dist/core/console.d.ts.map +1 -1
- package/dist/core/console.js +141 -80
- package/dist/core/console.js.map +1 -1
- package/dist/core/markup.d.ts +0 -2
- package/dist/core/markup.d.ts.map +1 -1
- package/dist/core/markup.js +31 -17
- package/dist/core/markup.js.map +1 -1
- package/dist/core/measure.d.ts +11 -0
- package/dist/core/measure.d.ts.map +1 -1
- package/dist/core/measure.js +15 -3
- package/dist/core/measure.js.map +1 -1
- package/dist/core/oklch.d.ts +22 -0
- package/dist/core/oklch.d.ts.map +1 -1
- package/dist/core/oklch.js +62 -18
- package/dist/core/oklch.js.map +1 -1
- package/dist/core/pretty.d.ts +87 -0
- package/dist/core/pretty.d.ts.map +1 -0
- package/dist/core/pretty.js +304 -0
- package/dist/core/pretty.js.map +1 -0
- package/dist/core/protocol.d.ts +64 -0
- package/dist/core/protocol.d.ts.map +1 -1
- package/dist/core/protocol.js +72 -0
- package/dist/core/protocol.js.map +1 -1
- package/dist/core/segment.d.ts +21 -0
- package/dist/core/segment.d.ts.map +1 -1
- package/dist/core/segment.js +40 -1
- package/dist/core/segment.js.map +1 -1
- package/dist/core/subscription.d.ts +13 -0
- package/dist/core/subscription.d.ts.map +1 -0
- package/dist/core/subscription.js +13 -0
- package/dist/core/subscription.js.map +1 -0
- package/dist/core/text.d.ts.map +1 -1
- package/dist/core/text.js +45 -13
- package/dist/core/text.js.map +1 -1
- package/dist/host/host-stream.d.ts +31 -0
- package/dist/host/host-stream.d.ts.map +1 -0
- package/dist/host/host-stream.js +36 -0
- package/dist/host/host-stream.js.map +1 -0
- package/dist/host/index.d.ts +4 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js +3 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/terminal-host.d.ts +144 -0
- package/dist/host/terminal-host.d.ts.map +1 -0
- package/dist/host/terminal-host.js +133 -0
- package/dist/host/terminal-host.js.map +1 -0
- package/dist/index.d.ts +10 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -21
- package/dist/index.js.map +1 -1
- package/dist/node/terminal-host.d.ts +85 -0
- package/dist/node/terminal-host.d.ts.map +1 -0
- package/dist/node/terminal-host.js +161 -0
- package/dist/node/terminal-host.js.map +1 -0
- package/dist/node/traceback.d.ts +28 -0
- package/dist/node/traceback.d.ts.map +1 -0
- package/dist/node/traceback.js +113 -0
- package/dist/node/traceback.js.map +1 -0
- package/dist/renderables/columns.d.ts +24 -2
- package/dist/renderables/columns.d.ts.map +1 -1
- package/dist/renderables/columns.js +91 -32
- package/dist/renderables/columns.js.map +1 -1
- package/dist/renderables/layout.d.ts +61 -5
- package/dist/renderables/layout.d.ts.map +1 -1
- package/dist/renderables/layout.js +191 -19
- package/dist/renderables/layout.js.map +1 -1
- package/dist/renderables/padding.d.ts +15 -2
- package/dist/renderables/padding.d.ts.map +1 -1
- package/dist/renderables/padding.js +92 -37
- package/dist/renderables/padding.js.map +1 -1
- package/dist/renderables/panel.d.ts +44 -3
- package/dist/renderables/panel.d.ts.map +1 -1
- package/dist/renderables/panel.js +149 -80
- package/dist/renderables/panel.js.map +1 -1
- package/dist/renderables/table.d.ts +40 -4
- package/dist/renderables/table.d.ts.map +1 -1
- package/dist/renderables/table.js +276 -158
- package/dist/renderables/table.js.map +1 -1
- package/dist/renderables/traceback.d.ts +6 -2
- package/dist/renderables/traceback.d.ts.map +1 -1
- package/dist/renderables/traceback.js +6 -10
- package/dist/renderables/traceback.js.map +1 -1
- package/dist/renderables/tree.d.ts +27 -2
- package/dist/renderables/tree.d.ts.map +1 -1
- package/dist/renderables/tree.js +82 -23
- package/dist/renderables/tree.js.map +1 -1
- package/dist/template-bindings/color-funcs.d.ts +3 -3
- package/dist/template-bindings/color-funcs.js +3 -3
- package/dist/template-bindings/index.d.ts +6 -7
- package/dist/template-bindings/index.d.ts.map +1 -1
- package/dist/template-bindings/index.js +6 -7
- package/dist/template-bindings/index.js.map +1 -1
- package/dist/template-bindings/palette-funcs.d.ts +17 -5
- package/dist/template-bindings/palette-funcs.d.ts.map +1 -1
- package/dist/template-bindings/palette-funcs.js +69 -6
- package/dist/template-bindings/palette-funcs.js.map +1 -1
- package/dist/template-bindings/style-funcs.d.ts +1 -1
- package/dist/template-bindings/style-funcs.js +1 -1
- package/dist/themes/ramp.d.ts +84 -0
- package/dist/themes/ramp.d.ts.map +1 -0
- package/dist/themes/ramp.js +123 -0
- package/dist/themes/ramp.js.map +1 -0
- package/dist/widgets/dropdown.d.ts +1 -1
- package/dist/widgets/dropdown.js +1 -1
- package/dist/widgets/event-router.d.ts +3 -2
- package/dist/widgets/event-router.d.ts.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/index.d.ts +3 -6
- package/dist/widgets/index.d.ts.map +1 -1
- package/dist/widgets/index.js +4 -3
- package/dist/widgets/index.js.map +1 -1
- package/dist/widgets/screen.d.ts +1 -1
- package/dist/widgets/screen.d.ts.map +1 -1
- package/dist/widgets/terminal-host.d.ts +13 -63
- package/dist/widgets/terminal-host.d.ts.map +1 -1
- package/dist/widgets/terminal-host.js +11 -142
- package/dist/widgets/terminal-host.js.map +1 -1
- package/dist/widgets/text-input.d.ts +2 -3
- package/dist/widgets/text-input.d.ts.map +1 -1
- package/dist/widgets/text-input.js +4 -12
- package/dist/widgets/text-input.js.map +1 -1
- package/dist/widgets/types.d.ts +1 -1
- package/dist/widgets/types.d.ts.map +1 -1
- package/dist/widgets/types.js.map +1 -1
- package/dist/widgets/widget-base.d.ts +2 -1
- package/dist/widgets/widget-base.d.ts.map +1 -1
- package/package.json +20 -4
package/dist/core/protocol.d.ts
CHANGED
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { Segment } from "./segment.js";
|
|
6
6
|
export interface RenderOptions {
|
|
7
|
+
/**
|
|
8
|
+
* The cells this renderable may occupy. A count of cells, so a non-negative
|
|
9
|
+
* integer — but the field is a plain `number` because it is public API and a
|
|
10
|
+
* caller can write anything into it. `withCellWidth` is where that becomes
|
|
11
|
+
* true rather than assumed; see its comment for why every renderable must
|
|
12
|
+
* call it rather than trusting this declaration.
|
|
13
|
+
*/
|
|
7
14
|
maxWidth: number;
|
|
8
15
|
minWidth?: number;
|
|
9
16
|
height?: number;
|
|
@@ -18,6 +25,63 @@ export interface RenderOptions {
|
|
|
18
25
|
highlight?: unknown;
|
|
19
26
|
markup?: unknown;
|
|
20
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* The options a renderable should work from: the caller's, with `maxWidth`
|
|
30
|
+
* parsed into an actual count of cells.
|
|
31
|
+
*
|
|
32
|
+
* [LAW:parse-dont-validate] The stamp has to travel, which is the whole reason
|
|
33
|
+
* this returns options rather than a number. Parsing `options.maxWidth` into a
|
|
34
|
+
* local leaves the caller's raw value sitting in `options` for whatever the
|
|
35
|
+
* renderable forwards it to — and every renderable forwards it, to a child's
|
|
36
|
+
* `render`, to `Measurement.get`, to a nested layout. `Columns` was fixed that
|
|
37
|
+
* way first and still threw `Invalid array length` on a NaN width, because it
|
|
38
|
+
* handed the unparsed original to `Measurement.get` and got a NaN column count
|
|
39
|
+
* back. Replace the field, and nothing downstream can see the number the
|
|
40
|
+
* caller actually wrote.
|
|
41
|
+
*
|
|
42
|
+
* [LAW:single-enforcer] This is the width checkpoint for the render contract.
|
|
43
|
+
* There is no second one: a renderable that re-derives its own answer is how
|
|
44
|
+
* `Panel`, `Table`, `Tree`, `Columns` and `Layout` came to disagree about what
|
|
45
|
+
* a NaN width means — one collapsed to a cell of garbage, two threw, one
|
|
46
|
+
* ignored the request and emitted its full natural width.
|
|
47
|
+
*/
|
|
48
|
+
export declare function withCellWidth(options: RenderOptions): RenderOptions;
|
|
49
|
+
/**
|
|
50
|
+
* The options a renderable should *lay out against*: `withCellWidth`, with an
|
|
51
|
+
* unbounded offer resolved to the renderable's own natural width.
|
|
52
|
+
*
|
|
53
|
+
* [LAW:parse-dont-validate] `cellCount` cannot finish the job alone. It floors
|
|
54
|
+
* a negative width and NaN to zero from the number alone, but `Infinity` is not
|
|
55
|
+
* a quantity it can floor — the only finite answer is "as wide as this
|
|
56
|
+
* renderable's content wants", which is a question about the renderable and not
|
|
57
|
+
* about the number. So the parse is completed here, where the renderable is in
|
|
58
|
+
* hand, and the stamped options travel exactly as `withCellWidth`'s do.
|
|
59
|
+
*
|
|
60
|
+
* [LAW:single-enforcer] One checkpoint for the whole rule, not one per
|
|
61
|
+
* renderable. `Panel`, `Padding`, `Columns` and `Layout` each expand into the
|
|
62
|
+
* width they are offered, and each independently reached `" ".repeat(Infinity)`
|
|
63
|
+
* — Columns twice over, since its column *count* is derived from the width too
|
|
64
|
+
* and `new Array(Infinity)` throws a different error again.
|
|
65
|
+
*
|
|
66
|
+
* The natural width comes from `measure`, which every one of them already
|
|
67
|
+
* implements, and the recursion terminates because `measure` reports content
|
|
68
|
+
* rather than the offer: `Panel.measure({maxWidth: Infinity})` is `{9, 9}` for
|
|
69
|
+
* nine cells of content and frame, not `{9, Infinity}`.
|
|
70
|
+
*
|
|
71
|
+
* So this belongs at the top of `render` and never at the top of `measure`:
|
|
72
|
+
* `measure` is the method being asked, and asking it through here would ask it
|
|
73
|
+
* with itself. `measure` parses with `withCellWidth` and reports a natural
|
|
74
|
+
* width of its own — that is the half of the contract that makes this half work.
|
|
75
|
+
*
|
|
76
|
+
* A `maximum` of `Infinity` means the renderable genuinely cannot answer. Two
|
|
77
|
+
* ways in: it wraps a `Renderable` with no `measure`, so nothing in the tree
|
|
78
|
+
* knows how wide the content wants to be; or something inside it asked for an
|
|
79
|
+
* unbounded width of its own, as a `Table` column declared
|
|
80
|
+
* `{ ratio: Infinity }` does. [LAW:no-silent-failure] Both are unanswerable
|
|
81
|
+
* rather than zero, and saying so names the cause — where `String.repeat` and
|
|
82
|
+
* `new Array` only ever name their own argument.
|
|
83
|
+
*/
|
|
84
|
+
export declare function withBoundedWidth(options: RenderOptions, self: Measurable): RenderOptions;
|
|
21
85
|
export interface Renderable {
|
|
22
86
|
render(options: RenderOptions): Iterable<Segment>;
|
|
23
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAEnE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,UAAU,GACf,aAAa,CAcf;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACvE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAO5D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAO5D"}
|
package/dist/core/protocol.js
CHANGED
|
@@ -2,6 +2,78 @@
|
|
|
2
2
|
* Rendering protocol interfaces — Renderable, Measurable, RenderOptions.
|
|
3
3
|
* [LAW:one-source-of-truth] These interfaces are the single authority for the rendering contract.
|
|
4
4
|
*/
|
|
5
|
+
import { cellCount } from "./cells.js";
|
|
6
|
+
/**
|
|
7
|
+
* The options a renderable should work from: the caller's, with `maxWidth`
|
|
8
|
+
* parsed into an actual count of cells.
|
|
9
|
+
*
|
|
10
|
+
* [LAW:parse-dont-validate] The stamp has to travel, which is the whole reason
|
|
11
|
+
* this returns options rather than a number. Parsing `options.maxWidth` into a
|
|
12
|
+
* local leaves the caller's raw value sitting in `options` for whatever the
|
|
13
|
+
* renderable forwards it to — and every renderable forwards it, to a child's
|
|
14
|
+
* `render`, to `Measurement.get`, to a nested layout. `Columns` was fixed that
|
|
15
|
+
* way first and still threw `Invalid array length` on a NaN width, because it
|
|
16
|
+
* handed the unparsed original to `Measurement.get` and got a NaN column count
|
|
17
|
+
* back. Replace the field, and nothing downstream can see the number the
|
|
18
|
+
* caller actually wrote.
|
|
19
|
+
*
|
|
20
|
+
* [LAW:single-enforcer] This is the width checkpoint for the render contract.
|
|
21
|
+
* There is no second one: a renderable that re-derives its own answer is how
|
|
22
|
+
* `Panel`, `Table`, `Tree`, `Columns` and `Layout` came to disagree about what
|
|
23
|
+
* a NaN width means — one collapsed to a cell of garbage, two threw, one
|
|
24
|
+
* ignored the request and emitted its full natural width.
|
|
25
|
+
*/
|
|
26
|
+
export function withCellWidth(options) {
|
|
27
|
+
return { ...options, maxWidth: cellCount(options.maxWidth) };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The options a renderable should *lay out against*: `withCellWidth`, with an
|
|
31
|
+
* unbounded offer resolved to the renderable's own natural width.
|
|
32
|
+
*
|
|
33
|
+
* [LAW:parse-dont-validate] `cellCount` cannot finish the job alone. It floors
|
|
34
|
+
* a negative width and NaN to zero from the number alone, but `Infinity` is not
|
|
35
|
+
* a quantity it can floor — the only finite answer is "as wide as this
|
|
36
|
+
* renderable's content wants", which is a question about the renderable and not
|
|
37
|
+
* about the number. So the parse is completed here, where the renderable is in
|
|
38
|
+
* hand, and the stamped options travel exactly as `withCellWidth`'s do.
|
|
39
|
+
*
|
|
40
|
+
* [LAW:single-enforcer] One checkpoint for the whole rule, not one per
|
|
41
|
+
* renderable. `Panel`, `Padding`, `Columns` and `Layout` each expand into the
|
|
42
|
+
* width they are offered, and each independently reached `" ".repeat(Infinity)`
|
|
43
|
+
* — Columns twice over, since its column *count* is derived from the width too
|
|
44
|
+
* and `new Array(Infinity)` throws a different error again.
|
|
45
|
+
*
|
|
46
|
+
* The natural width comes from `measure`, which every one of them already
|
|
47
|
+
* implements, and the recursion terminates because `measure` reports content
|
|
48
|
+
* rather than the offer: `Panel.measure({maxWidth: Infinity})` is `{9, 9}` for
|
|
49
|
+
* nine cells of content and frame, not `{9, Infinity}`.
|
|
50
|
+
*
|
|
51
|
+
* So this belongs at the top of `render` and never at the top of `measure`:
|
|
52
|
+
* `measure` is the method being asked, and asking it through here would ask it
|
|
53
|
+
* with itself. `measure` parses with `withCellWidth` and reports a natural
|
|
54
|
+
* width of its own — that is the half of the contract that makes this half work.
|
|
55
|
+
*
|
|
56
|
+
* A `maximum` of `Infinity` means the renderable genuinely cannot answer. Two
|
|
57
|
+
* ways in: it wraps a `Renderable` with no `measure`, so nothing in the tree
|
|
58
|
+
* knows how wide the content wants to be; or something inside it asked for an
|
|
59
|
+
* unbounded width of its own, as a `Table` column declared
|
|
60
|
+
* `{ ratio: Infinity }` does. [LAW:no-silent-failure] Both are unanswerable
|
|
61
|
+
* rather than zero, and saying so names the cause — where `String.repeat` and
|
|
62
|
+
* `new Array` only ever name their own argument.
|
|
63
|
+
*/
|
|
64
|
+
export function withBoundedWidth(options, self) {
|
|
65
|
+
const parsed = withCellWidth(options);
|
|
66
|
+
if (Number.isFinite(parsed.maxWidth))
|
|
67
|
+
return parsed;
|
|
68
|
+
const natural = self.measure(parsed).maximum;
|
|
69
|
+
if (!Number.isFinite(natural)) {
|
|
70
|
+
throw new RangeError("maxWidth is unbounded and this renderable has no natural width to fall " +
|
|
71
|
+
"back on: its content does not implement measure(), or something inside " +
|
|
72
|
+
"it asked for an unbounded width of its own. Render it at a finite " +
|
|
73
|
+
"width, or give the content a measure() that reports a finite maximum.");
|
|
74
|
+
}
|
|
75
|
+
return { ...parsed, maxWidth: cellCount(natural) };
|
|
76
|
+
}
|
|
5
77
|
export function isRenderable(obj) {
|
|
6
78
|
return (typeof obj === "object" &&
|
|
7
79
|
obj !== null &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAyBvC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,aAAa,CAAC,OAAsB;IAClD,OAAO,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAsB,EACtB,IAAgB;IAEhB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IAEpD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,UAAU,CAClB,yEAAyE;YACvE,yEAAyE;YACzE,oEAAoE;YACpE,uEAAuE,CAC1E,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;AACrD,CAAC;AAUD,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,QAAQ,IAAI,GAAG;QACf,OAAQ,GAAkB,CAAC,MAAM,KAAK,UAAU,CACjD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,SAAS,IAAI,GAAG;QAChB,OAAQ,GAAkB,CAAC,OAAO,KAAK,UAAU,CAClD,CAAC;AACJ,CAAC"}
|
package/dist/core/segment.d.ts
CHANGED
|
@@ -53,6 +53,27 @@ export declare class Segment {
|
|
|
53
53
|
* Adjusts a line of segments to exactly `width` cells.
|
|
54
54
|
*/
|
|
55
55
|
static adjustLineLength(line: Segment[], width: number, style?: Style, pad?: boolean): Segment[];
|
|
56
|
+
/**
|
|
57
|
+
* Crops a renderable's output so no line exceeds `width`, leaving short lines
|
|
58
|
+
* alone and the line structure exactly as it arrived.
|
|
59
|
+
*
|
|
60
|
+
* [LAW:single-enforcer] `adjustLineLength` is where a width is enforced, but
|
|
61
|
+
* it takes one line and a container holding arbitrary content has a stream of
|
|
62
|
+
* them. Without this step the container has to trust content to honour the
|
|
63
|
+
* offer, and content that ignores it overflows the region — which is how a
|
|
64
|
+
* `Layout` leaf and a `Tree` label came to emit forty cells into a one-cell
|
|
65
|
+
* offer while `Panel` and `Padding`, which split and adjust, did not.
|
|
66
|
+
*
|
|
67
|
+
* One segment in, one segment out, shortening text and nothing else — so the
|
|
68
|
+
* line structure that arrives is the line structure that leaves. Two earlier
|
|
69
|
+
* shapes of this both decided how many lines there were and both were wrong:
|
|
70
|
+
* built on `splitLines`, which cannot tell `"abc"` from `"abc\n"`, it invented
|
|
71
|
+
* a trailing newline and dropped the row of an empty `Tree` label entirely,
|
|
72
|
+
* running its guides into the next row; rebuilt to accumulate lines, it
|
|
73
|
+
* dropped the zero-width-but-present line `RichText` emits at an offer of 0,
|
|
74
|
+
* and a row split rendered nothing at all. A crop shortens; it does not count.
|
|
75
|
+
*/
|
|
76
|
+
static cropLines(segments: Iterable<Segment>, width: number): Iterable<Segment>;
|
|
56
77
|
/**
|
|
57
78
|
* Returns total cell width of a line. Ignores control segments.
|
|
58
79
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../src/core/segment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../src/core/segment.ts"],"names":[],"mappings":"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"}
|
package/dist/core/segment.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Segment — the atomic rendering unit. Every piece of styled terminal output
|
|
3
3
|
* is represented as a Segment: (text, style?, control?).
|
|
4
4
|
*/
|
|
5
|
-
import { cellLen, splitText, asCellCol } from "./cells.js";
|
|
5
|
+
import { cellLen, cellFit, splitText, asCellCol } from "./cells.js";
|
|
6
6
|
// --- ControlType ---
|
|
7
7
|
export var ControlType;
|
|
8
8
|
(function (ControlType) {
|
|
@@ -156,6 +156,45 @@ export class Segment {
|
|
|
156
156
|
}
|
|
157
157
|
return result;
|
|
158
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Crops a renderable's output so no line exceeds `width`, leaving short lines
|
|
161
|
+
* alone and the line structure exactly as it arrived.
|
|
162
|
+
*
|
|
163
|
+
* [LAW:single-enforcer] `adjustLineLength` is where a width is enforced, but
|
|
164
|
+
* it takes one line and a container holding arbitrary content has a stream of
|
|
165
|
+
* them. Without this step the container has to trust content to honour the
|
|
166
|
+
* offer, and content that ignores it overflows the region — which is how a
|
|
167
|
+
* `Layout` leaf and a `Tree` label came to emit forty cells into a one-cell
|
|
168
|
+
* offer while `Panel` and `Padding`, which split and adjust, did not.
|
|
169
|
+
*
|
|
170
|
+
* One segment in, one segment out, shortening text and nothing else — so the
|
|
171
|
+
* line structure that arrives is the line structure that leaves. Two earlier
|
|
172
|
+
* shapes of this both decided how many lines there were and both were wrong:
|
|
173
|
+
* built on `splitLines`, which cannot tell `"abc"` from `"abc\n"`, it invented
|
|
174
|
+
* a trailing newline and dropped the row of an empty `Tree` label entirely,
|
|
175
|
+
* running its guides into the next row; rebuilt to accumulate lines, it
|
|
176
|
+
* dropped the zero-width-but-present line `RichText` emits at an offer of 0,
|
|
177
|
+
* and a row split rendered nothing at all. A crop shortens; it does not count.
|
|
178
|
+
*/
|
|
179
|
+
static *cropLines(segments, width) {
|
|
180
|
+
const cap = Math.max(0, width);
|
|
181
|
+
let used = 0;
|
|
182
|
+
for (const segment of segments) {
|
|
183
|
+
if (segment.isControl) {
|
|
184
|
+
yield segment;
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
const parts = segment.text.split("\n");
|
|
188
|
+
for (let i = 0; i < parts.length; i++) {
|
|
189
|
+
if (i > 0)
|
|
190
|
+
used = 0;
|
|
191
|
+
const piece = cellFit(parts[i], asCellCol(cap - used));
|
|
192
|
+
used += cellLen(piece);
|
|
193
|
+
parts[i] = piece;
|
|
194
|
+
}
|
|
195
|
+
yield new Segment(parts.join("\n"), segment.style);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
159
198
|
/**
|
|
160
199
|
* Returns total cell width of a line. Ignores control segments.
|
|
161
200
|
*/
|
package/dist/core/segment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segment.js","sourceRoot":"","sources":["../../src/core/segment.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"segment.js","sourceRoot":"","sources":["../../src/core/segment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unsubscribe — the shape every `on…()` in this library hands back.
|
|
3
|
+
*
|
|
4
|
+
* [LAW:decomposition] It lives in `core/` because two subsystems that must not
|
|
5
|
+
* depend on each other both need it: `host/` returns one from `onData` and
|
|
6
|
+
* `onResize`, `widgets/` returns one from `onChange`, `onSubmit`, `onKey` and
|
|
7
|
+
* `onMouse`. Either home above this tier would make the other import a
|
|
8
|
+
* subsystem it has no business knowing about — the extraction of `src/host/`
|
|
9
|
+
* out of `src/widgets/` is what surfaced that, since the type was sitting in
|
|
10
|
+
* `widgets/types.ts` and the host seam was importing it from there.
|
|
11
|
+
*/
|
|
12
|
+
export type Unsubscribe = () => void;
|
|
13
|
+
//# sourceMappingURL=subscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../src/core/subscription.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unsubscribe — the shape every `on…()` in this library hands back.
|
|
3
|
+
*
|
|
4
|
+
* [LAW:decomposition] It lives in `core/` because two subsystems that must not
|
|
5
|
+
* depend on each other both need it: `host/` returns one from `onData` and
|
|
6
|
+
* `onResize`, `widgets/` returns one from `onChange`, `onSubmit`, `onKey` and
|
|
7
|
+
* `onMouse`. Either home above this tier would make the other import a
|
|
8
|
+
* subsystem it has no business knowing about — the extraction of `src/host/`
|
|
9
|
+
* out of `src/widgets/` is what surfaced that, since the type was sitting in
|
|
10
|
+
* `widgets/types.ts` and the host seam was importing it from there.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=subscription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../src/core/subscription.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
package/dist/core/text.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/core/text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAgC,MAAM,YAAY,CAAC;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/core/text.ts"],"names":[],"mappings":"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"}
|
package/dist/core/text.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* RichText — styled text with spans. The primary text type for the library.
|
|
3
3
|
*/
|
|
4
|
-
import { cellLen } from "./cells.js";
|
|
4
|
+
import { cellLen, cellCount } from "./cells.js";
|
|
5
5
|
import { Segment } from "./segment.js";
|
|
6
6
|
import { Style, NULL_STYLE, StyleSyntaxError } from "./style.js";
|
|
7
7
|
import { stripOscTerminators } from "./sanitize.js";
|
|
@@ -11,6 +11,18 @@ const CONTROL_CHARS_RE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g;
|
|
|
11
11
|
function stripControlChars(text) {
|
|
12
12
|
return text.replace(CONTROL_CHARS_RE, "");
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* The offsets a line of `lineWidth` cells is cut at to fold it into pieces of
|
|
16
|
+
* at most `maxWidth`. Requires `maxWidth >= 1`: the caller answers the
|
|
17
|
+
* zero-cell canvas, because "no cut fits" and "no cell fits" are different
|
|
18
|
+
* facts and only one of them is a list of offsets.
|
|
19
|
+
*/
|
|
20
|
+
function foldCuts(lineWidth, maxWidth) {
|
|
21
|
+
const cuts = [];
|
|
22
|
+
for (let w = maxWidth; w < lineWidth; w += maxWidth)
|
|
23
|
+
cuts.push(w);
|
|
24
|
+
return cuts;
|
|
25
|
+
}
|
|
14
26
|
// [LAW:single-enforcer] RichText is the *data-model* trust boundary for
|
|
15
27
|
// link URLs — any Style carrying a link that enters a RichText is sanitized
|
|
16
28
|
// in place, so callers that inspect `richText.style.link` or
|
|
@@ -664,7 +676,11 @@ export class RichText {
|
|
|
664
676
|
}
|
|
665
677
|
const allSegments = this._buildSegments(text);
|
|
666
678
|
const logicalLines = Segment.splitLines(allSegments);
|
|
667
|
-
|
|
679
|
+
// [LAW:parse-dont-validate] The one crossing for this renderable's width.
|
|
680
|
+
// Unparsed, a NaN width made `lineWidth <= maxWidth` false and every
|
|
681
|
+
// overflow arm a no-op, so the text emitted its full natural width and
|
|
682
|
+
// silently overflowed whatever asked for it.
|
|
683
|
+
const maxWidth = cellCount(options.maxWidth);
|
|
668
684
|
const overflow = this._overflow ?? options.overflow ?? "fold";
|
|
669
685
|
const justify = this._justify ?? options.justify;
|
|
670
686
|
const noWrap = this._noWrap || (options.noWrap ?? false);
|
|
@@ -706,9 +722,13 @@ export class RichText {
|
|
|
706
722
|
}
|
|
707
723
|
}
|
|
708
724
|
}
|
|
725
|
+
// Parsed for the same reason `render` parses it: an unparsed NaN ceiling
|
|
726
|
+
// makes both `Math.min` calls NaN, and a range of NaN..NaN is one no parent
|
|
727
|
+
// layout can divide.
|
|
728
|
+
const ceiling = cellCount(options.maxWidth);
|
|
709
729
|
return {
|
|
710
|
-
minimum: Math.min(maxWordWidth,
|
|
711
|
-
maximum: Math.min(maxLineWidth,
|
|
730
|
+
minimum: Math.min(maxWordWidth, ceiling),
|
|
731
|
+
maximum: Math.min(maxLineWidth, ceiling),
|
|
712
732
|
};
|
|
713
733
|
}
|
|
714
734
|
// --- Internal ---
|
|
@@ -784,11 +804,16 @@ export class RichText {
|
|
|
784
804
|
*_overflowLine(line, lineWidth, maxWidth, overflow, terminateLine) {
|
|
785
805
|
switch (overflow) {
|
|
786
806
|
case "fold": {
|
|
787
|
-
// Split at maxWidth boundaries
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
807
|
+
// Split at maxWidth boundaries. A cell cannot be split, so a zero-cell
|
|
808
|
+
// canvas holds no piece of the line and the fold is one empty piece —
|
|
809
|
+
// the same thing `crop` and `ellipsis` yield there, which is what makes
|
|
810
|
+
// the three overflow modes agree at the bottom of the range instead of
|
|
811
|
+
// this loop stepping by zero forever. It did exactly that before:
|
|
812
|
+
// ~2^27 pushes and about a gigabyte before a `RangeError`, reachable
|
|
813
|
+
// from any `Columns` or `Layout` squeezed to no width at all.
|
|
814
|
+
const foldedLines = maxWidth === 0
|
|
815
|
+
? [Segment.adjustLineLength(line, 0, undefined, false)]
|
|
816
|
+
: Segment.divide(line, foldCuts(lineWidth, maxWidth));
|
|
792
817
|
for (let index = 0; index < foldedLines.length; index += 1) {
|
|
793
818
|
const fLine = foldedLines[index];
|
|
794
819
|
yield* fLine;
|
|
@@ -807,11 +832,18 @@ export class RichText {
|
|
|
807
832
|
break;
|
|
808
833
|
}
|
|
809
834
|
case "ellipsis": {
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
835
|
+
// The marker takes the last cell and the text keeps the rest. At
|
|
836
|
+
// maxWidth 1 that is zero cells of text and the marker alone, which is
|
|
837
|
+
// the honest rendering of "all of this was cut"; the `maxWidth > 1`
|
|
838
|
+
// guard that used to stand here emitted no line at all, so every table
|
|
839
|
+
// column squeezed to a single cell rendered blank rather than
|
|
840
|
+
// truncated — `ellipsis` being the default column overflow, a
|
|
841
|
+
// hard-squeezed table looked like an empty frame.
|
|
842
|
+
yield* Segment.adjustLineLength(line, Math.max(0, maxWidth - 1), undefined, false);
|
|
843
|
+
// No cell to put it in at maxWidth 0, where every mode emits the bare
|
|
844
|
+
// line terminator.
|
|
845
|
+
if (maxWidth > 0)
|
|
813
846
|
yield new Segment("\u2026");
|
|
814
|
-
}
|
|
815
847
|
if (terminateLine) {
|
|
816
848
|
yield Segment.line();
|
|
817
849
|
}
|