@promptctl/rich-js 0.8.0 → 0.9.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 (123) hide show
  1. package/README.md +68 -1
  2. package/dist/core/box.d.ts +93 -39
  3. package/dist/core/box.d.ts.map +1 -1
  4. package/dist/core/box.js +348 -490
  5. package/dist/core/box.js.map +1 -1
  6. package/dist/core/color.d.ts.map +1 -1
  7. package/dist/core/color.js +22 -8
  8. package/dist/core/color.js.map +1 -1
  9. package/dist/core/console.d.ts +2 -4
  10. package/dist/core/console.d.ts.map +1 -1
  11. package/dist/core/console.js +35 -24
  12. package/dist/core/console.js.map +1 -1
  13. package/dist/core/highlighter.d.ts +2 -1
  14. package/dist/core/highlighter.d.ts.map +1 -1
  15. package/dist/core/highlighter.js +28 -6
  16. package/dist/core/highlighter.js.map +1 -1
  17. package/dist/{renderables → core}/json.d.ts +8 -3
  18. package/dist/core/json.d.ts.map +1 -0
  19. package/dist/{renderables → core}/json.js +7 -2
  20. package/dist/core/json.js.map +1 -0
  21. package/dist/core/markup.d.ts +6 -7
  22. package/dist/core/markup.d.ts.map +1 -1
  23. package/dist/core/markup.js +124 -32
  24. package/dist/core/markup.js.map +1 -1
  25. package/dist/core/pretty.d.ts +56 -21
  26. package/dist/core/pretty.d.ts.map +1 -1
  27. package/dist/core/pretty.js +210 -116
  28. package/dist/core/pretty.js.map +1 -1
  29. package/dist/core/protocol.d.ts +16 -0
  30. package/dist/core/protocol.d.ts.map +1 -1
  31. package/dist/core/protocol.js +13 -0
  32. package/dist/core/protocol.js.map +1 -1
  33. package/dist/core/segment.d.ts +5 -0
  34. package/dist/core/segment.d.ts.map +1 -1
  35. package/dist/core/segment.js +9 -3
  36. package/dist/core/segment.js.map +1 -1
  37. package/dist/core/strip.d.ts +9 -5
  38. package/dist/core/strip.d.ts.map +1 -1
  39. package/dist/core/strip.js +39 -41
  40. package/dist/core/strip.js.map +1 -1
  41. package/dist/core/style.d.ts +19 -0
  42. package/dist/core/style.d.ts.map +1 -1
  43. package/dist/core/style.js +46 -38
  44. package/dist/core/style.js.map +1 -1
  45. package/dist/core/text.d.ts +102 -4
  46. package/dist/core/text.d.ts.map +1 -1
  47. package/dist/core/text.js +322 -184
  48. package/dist/core/text.js.map +1 -1
  49. package/dist/core/wrap.d.ts +42 -0
  50. package/dist/core/wrap.d.ts.map +1 -0
  51. package/dist/core/wrap.js +128 -0
  52. package/dist/core/wrap.js.map +1 -0
  53. package/dist/index.d.ts +3 -3
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +2 -1
  56. package/dist/index.js.map +1 -1
  57. package/dist/renderables/markdown.d.ts +1 -1
  58. package/dist/renderables/markdown.d.ts.map +1 -1
  59. package/dist/renderables/markdown.js +7 -14
  60. package/dist/renderables/markdown.js.map +1 -1
  61. package/dist/renderables/padding.d.ts +1 -1
  62. package/dist/renderables/padding.d.ts.map +1 -1
  63. package/dist/renderables/padding.js +5 -11
  64. package/dist/renderables/padding.js.map +1 -1
  65. package/dist/renderables/panel.d.ts +4 -4
  66. package/dist/renderables/panel.d.ts.map +1 -1
  67. package/dist/renderables/panel.js +39 -39
  68. package/dist/renderables/panel.js.map +1 -1
  69. package/dist/renderables/progress.d.ts +3 -3
  70. package/dist/renderables/progress.d.ts.map +1 -1
  71. package/dist/renderables/progress.js +11 -9
  72. package/dist/renderables/progress.js.map +1 -1
  73. package/dist/renderables/progressBar.d.ts +3 -3
  74. package/dist/renderables/progressBar.d.ts.map +1 -1
  75. package/dist/renderables/progressBar.js +9 -15
  76. package/dist/renderables/progressBar.js.map +1 -1
  77. package/dist/renderables/prompt.js +1 -1
  78. package/dist/renderables/prompt.js.map +1 -1
  79. package/dist/renderables/rule.d.ts +1 -1
  80. package/dist/renderables/rule.d.ts.map +1 -1
  81. package/dist/renderables/rule.js +5 -10
  82. package/dist/renderables/rule.js.map +1 -1
  83. package/dist/renderables/spinner.d.ts +2 -2
  84. package/dist/renderables/spinner.d.ts.map +1 -1
  85. package/dist/renderables/spinner.js +6 -11
  86. package/dist/renderables/spinner.js.map +1 -1
  87. package/dist/renderables/status.d.ts.map +1 -1
  88. package/dist/renderables/status.js +5 -11
  89. package/dist/renderables/status.js.map +1 -1
  90. package/dist/renderables/table.d.ts +54 -16
  91. package/dist/renderables/table.d.ts.map +1 -1
  92. package/dist/renderables/table.js +239 -99
  93. package/dist/renderables/table.js.map +1 -1
  94. package/dist/renderables/traceback.d.ts +1 -1
  95. package/dist/renderables/traceback.d.ts.map +1 -1
  96. package/dist/renderables/traceback.js +9 -8
  97. package/dist/renderables/traceback.js.map +1 -1
  98. package/dist/renderables/tree.d.ts +2 -2
  99. package/dist/renderables/tree.d.ts.map +1 -1
  100. package/dist/renderables/tree.js +16 -22
  101. package/dist/renderables/tree.js.map +1 -1
  102. package/dist/template-bindings/helpers.d.ts.map +1 -1
  103. package/dist/template-bindings/helpers.js +19 -1
  104. package/dist/template-bindings/helpers.js.map +1 -1
  105. package/package.json +20 -4
  106. package/dist/renderables/json.d.ts.map +0 -1
  107. package/dist/renderables/json.js.map +0 -1
  108. package/dist/renderables/pretty.d.ts +0 -29
  109. package/dist/renderables/pretty.d.ts.map +0 -1
  110. package/dist/renderables/pretty.js +0 -141
  111. package/dist/renderables/pretty.js.map +0 -1
  112. package/dist/themes/paletteResolver.d.ts +0 -35
  113. package/dist/themes/paletteResolver.d.ts.map +0 -1
  114. package/dist/themes/paletteResolver.js +0 -88
  115. package/dist/themes/paletteResolver.js.map +0 -1
  116. package/dist/widgets/host-stream.d.ts +0 -31
  117. package/dist/widgets/host-stream.d.ts.map +0 -1
  118. package/dist/widgets/host-stream.js +0 -36
  119. package/dist/widgets/host-stream.js.map +0 -1
  120. package/dist/widgets/terminal-host.d.ts +0 -138
  121. package/dist/widgets/terminal-host.d.ts.map +0 -1
  122. package/dist/widgets/terminal-host.js +0 -127
  123. package/dist/widgets/terminal-host.js.map +0 -1
@@ -24,7 +24,7 @@ export declare class Traceback implements Renderable {
24
24
  readonly width: number | undefined;
25
25
  readonly theme: string | undefined;
26
26
  constructor(error: Error, options?: TracebackOptions);
27
- render(_options: RenderOptions): Iterable<Segment>;
27
+ render(options: RenderOptions): Iterable<Segment>;
28
28
  private _renderFrame;
29
29
  }
30
30
  //# sourceMappingURL=traceback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"traceback.d.ts","sourceRoot":"","sources":["../../src/renderables/traceback.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAErE,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkCD,qBAAa,SAAU,YAAW,UAAU;IAC1C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEvB,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB;IASnD,MAAM,CAAC,QAAQ,EAAE,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;IA6CnD,OAAO,CAAE,YAAY;CAiBtB"}
1
+ {"version":3,"file":"traceback.d.ts","sourceRoot":"","sources":["../../src/renderables/traceback.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGrE,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkCD,qBAAa,SAAU,YAAW,UAAU;IAC1C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEvB,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB;IASnD,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;IA6ClD,OAAO,CAAE,YAAY;CAiBtB"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { Segment } from "../core/segment.js";
11
11
  import { Style } from "../core/style.js";
12
+ import { getStyle } from "../core/protocol.js";
12
13
  function parseStack(error) {
13
14
  const stack = error.stack ?? "";
14
15
  const lines = stack.split("\n");
@@ -44,9 +45,9 @@ export class Traceback {
44
45
  this.width = options?.width;
45
46
  this.theme = options?.theme;
46
47
  }
47
- *render(_options) {
48
- const excTypeStyle = Style.parse("traceback.exc_type");
49
- const textStyle = Style.parse("traceback.text");
48
+ *render(options) {
49
+ const excTypeStyle = getStyle(options, "traceback.exc_type");
50
+ const textStyle = getStyle(options, "traceback.text");
50
51
  // Error type and message
51
52
  const errorName = this.error.name || "Error";
52
53
  const errorMessage = this.error.message || "";
@@ -70,23 +71,23 @@ export class Traceback {
70
71
  const last = displayFrames.slice(-half);
71
72
  const omitted = displayFrames.length - this.maxFrames;
72
73
  for (const frame of first) {
73
- yield* this._renderFrame(frame);
74
+ yield* this._renderFrame(frame, options);
74
75
  }
75
76
  yield new Segment(` ... ${omitted} frames omitted ...`, textStyle);
76
77
  yield Segment.line();
77
78
  for (const frame of last) {
78
- yield* this._renderFrame(frame);
79
+ yield* this._renderFrame(frame, options);
79
80
  }
80
81
  }
81
82
  else {
82
83
  for (const frame of displayFrames) {
83
- yield* this._renderFrame(frame);
84
+ yield* this._renderFrame(frame, options);
84
85
  }
85
86
  }
86
87
  }
87
- *_renderFrame(frame) {
88
+ *_renderFrame(frame, options) {
88
89
  const pathStyle = Style.parse("dim");
89
- const lineNoStyle = Style.parse("traceback.offset");
90
+ const lineNoStyle = getStyle(options, "traceback.offset");
90
91
  yield new Segment(" ");
91
92
  // Spec: suppressed frames show file and line only — no function name
92
93
  if (frame.function && !frame.suppressed) {
@@ -1 +1 @@
1
- {"version":3,"file":"traceback.js","sourceRoot":"","sources":["../../src/renderables/traceback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traceback.js","sourceRoot":"","sources":["../../src/renderables/traceback.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,8 @@ export declare class Tree implements Renderable, Measurable {
16
16
  readonly children: Tree[];
17
17
  expanded: boolean;
18
18
  readonly hideRoot: boolean;
19
- readonly guideStyle: Style;
20
- readonly style: Style;
19
+ readonly guideStyle: string | Style;
20
+ readonly style: string | Style;
21
21
  constructor(label: string | RichText | Renderable, options?: TreeOptions);
22
22
  add(label: string | RichText | Renderable, options?: TreeOptions): Tree;
23
23
  render(rawOptions: RenderOptions): Iterable<Segment>;
@@ -1 +1 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/renderables/tree.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAc,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACd,MAAM,qBAAqB,CAAC;AAe7B,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CACxB;AAmCD,qBAAa,IAAK,YAAW,UAAU,EAAE,UAAU;IACjD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;gBAGpB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,EACrC,OAAO,CAAC,EAAE,WAAW;IAUvB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;IAUtE,MAAM,CAAC,UAAU,EAAE,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;IAOrD;;;;;;;;OAQG;IACH,OAAO,CAAE,KAAK;IAyCd;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAE,UAAU;IAiBnB,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAqBtE"}
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/renderables/tree.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAc,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACd,MAAM,qBAAqB,CAAC;AAe7B,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CACxB;AAkCD,qBAAa,IAAK,YAAW,UAAU,EAAE,UAAU;IACjD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;gBAG7B,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,EACrC,OAAO,CAAC,EAAE,WAAW;IAUvB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;IAUtE,MAAM,CAAC,UAAU,EAAE,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;IAOrD;;;;;;;;OAQG;IACH,OAAO,CAAE,KAAK;IAwCd;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAE,UAAU;IAkBnB,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAqBtE"}
@@ -3,9 +3,9 @@
3
3
  */
4
4
  import { Segment } from "../core/segment.js";
5
5
  import { cellFit, cellLen, asCellCol } from "../core/cells.js";
6
- import { Style, NULL_STYLE } from "../core/style.js";
6
+ import { NULL_STYLE } from "../core/style.js";
7
7
  import { RichText } from "../core/text.js";
8
- import { isMeasurable, withBoundedWidth, withCellWidth } from "../core/protocol.js";
8
+ import { getStyle, isMeasurable, withBoundedWidth, withCellWidth } from "../core/protocol.js";
9
9
  import { Measurement } from "../core/measure.js";
10
10
  // Guide characters
11
11
  const GUIDE_BRANCH = "├── ";
@@ -16,13 +16,6 @@ const GUIDE_SPACE = " ";
16
16
  const GUIDE_BRANCH_ASCII = "+-- ";
17
17
  const GUIDE_LAST_ASCII = "+-- ";
18
18
  const GUIDE_VERT_ASCII = "| ";
19
- function resolveStyle(style) {
20
- if (style === undefined)
21
- return NULL_STYLE;
22
- if (typeof style === "string")
23
- return Style.parse(style);
24
- return style;
25
- }
26
19
  function toRenderable(label) {
27
20
  if (typeof label === "string")
28
21
  return new RichText(label, { end: "" });
@@ -56,8 +49,8 @@ export class Tree {
56
49
  this.children = [];
57
50
  this.expanded = options?.expanded !== false;
58
51
  this.hideRoot = options?.hideRoot ?? false;
59
- this.guideStyle = resolveStyle(options?.guide_style);
60
- this.style = resolveStyle(options?.style);
52
+ this.guideStyle = options?.guide_style ?? NULL_STYLE;
53
+ this.style = options?.style ?? NULL_STYLE;
61
54
  }
62
55
  add(label, options) {
63
56
  const child = new Tree(label, {
@@ -70,7 +63,7 @@ export class Tree {
70
63
  }
71
64
  *render(rawOptions) {
72
65
  const options = withBoundedWidth(rawOptions, this);
73
- for (const row of this._rows(options.asciiOnly ?? false, [], !this.hideRoot)) {
66
+ for (const row of this._rows(options, [], !this.hideRoot)) {
74
67
  yield* this._renderRow(options, row);
75
68
  }
76
69
  }
@@ -83,10 +76,10 @@ export class Tree {
83
76
  * come to disagree about how many rows there are or how wide the guides on
84
77
  * them run — which they would the moment a second walk existed.
85
78
  */
86
- *_rows(ascii, prefixes, showLabel) {
87
- const guideStyle = this.guideStyle.isNull ? undefined : this.guideStyle;
79
+ *_rows(options, prefixes, showLabel) {
80
+ const ascii = options.asciiOnly ?? false;
88
81
  if (showLabel) {
89
- yield { guides: prefixes.map((p) => [p, guideStyle]), label: this.label };
82
+ yield { guides: prefixes, guideStyles: [this.guideStyle], label: this.label };
90
83
  }
91
84
  if (!this.expanded)
92
85
  return;
@@ -100,16 +93,16 @@ export class Tree {
100
93
  ? (isLast ? GUIDE_SPACE : GUIDE_VERT_ASCII)
101
94
  : (isLast ? GUIDE_SPACE : GUIDE_VERT);
102
95
  // Child label with branch guide
103
- const childGuideStyle = child.guideStyle.isNull ? guideStyle : child.guideStyle;
104
96
  yield {
105
- guides: [...prefixes, branch].map((p) => [p, childGuideStyle]),
97
+ guides: [...prefixes, branch],
98
+ guideStyles: [child.guideStyle, this.guideStyle],
106
99
  label: child.label,
107
100
  };
108
101
  // Grandchildren with continuation prefix
109
102
  if (child.expanded && child.children.length > 0) {
110
103
  const grandPrefixes = [...prefixes, continuation];
111
104
  for (let j = 0; j < child.children.length; j++) {
112
- yield* child.children[j]._rows(ascii, grandPrefixes, true);
105
+ yield* child.children[j]._rows(options, grandPrefixes, true);
113
106
  }
114
107
  }
115
108
  }
@@ -130,11 +123,12 @@ export class Tree {
130
123
  * depending on label renderables to invent trailing newlines.
131
124
  */
132
125
  *_renderRow(options, row) {
126
+ const guideStyle = row.guideStyles.map((style) => getStyle(options, style)).find((style) => !style.isNull);
133
127
  let left = options.maxWidth;
134
- for (const [text, style] of row.guides) {
128
+ for (const text of row.guides) {
135
129
  const piece = cellFit(text, asCellCol(left));
136
130
  if (piece.length > 0)
137
- yield new Segment(piece, style);
131
+ yield new Segment(piece, guideStyle);
138
132
  left -= cellLen(piece);
139
133
  }
140
134
  // The guides above are cropped by `cellFit`; the label was not, so a label
@@ -153,8 +147,8 @@ export class Tree {
153
147
  // mode drew a 40-cell frame around nine cells of tree, and an unbounded
154
148
  // offer came back unbounded.
155
149
  let natural = 0;
156
- for (const row of this._rows(parsed.asciiOnly ?? false, [], !this.hideRoot)) {
157
- const guideWidth = row.guides.reduce((sum, [text]) => sum + cellLen(text), 0);
150
+ for (const row of this._rows(parsed, [], !this.hideRoot)) {
151
+ const guideWidth = row.guides.reduce((sum, text) => sum + cellLen(text), 0);
158
152
  natural = Math.max(natural, guideWidth + labelWidth(parsed, row.label));
159
153
  }
160
154
  const maximum = Math.min(natural, ceiling);
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/renderables/tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/renderables/tree.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/template-bindings/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,CAS3E"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/template-bindings/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAoB,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,CAS3E"}
@@ -6,6 +6,7 @@
6
6
  * registrations and the palette-function registrations use this same operation;
7
7
  * keeping one copy prevents the two from drifting.
8
8
  */
9
+ import { Style, StyleSyntaxError } from "../core/style.js";
9
10
  import { RichText } from "../core/text.js";
10
11
  /**
11
12
  * Apply a style on top of an already-styled RichText fragment.
@@ -25,7 +26,24 @@ export function applyStyleToFragment(child, style) {
25
26
  throw new TypeError(`template function expected a RichText fragment, got ${typeof child === "object" ? Object.prototype.toString.call(child) : typeof child}`);
26
27
  }
27
28
  const result = child.copy();
28
- result.style = child.style.add(style);
29
+ result.style = baseStyleOf(child.style).add(style);
29
30
  return result;
30
31
  }
32
+ /**
33
+ * A fragment's base style as a `Style`. A string must parse as a definition: a
34
+ * name resolves only against the theme of the render that draws it, and a
35
+ * template runs before any render exists.
36
+ */
37
+ function baseStyleOf(style) {
38
+ if (style instanceof Style)
39
+ return style;
40
+ try {
41
+ return Style.parse(style);
42
+ }
43
+ catch (err) {
44
+ if (!(err instanceof StyleSyntaxError))
45
+ throw err;
46
+ throw new TypeError(`template function cannot style a fragment whose base style "${style}" is not a style definition: a style name resolves only against the theme of a render`, { cause: err });
47
+ }
48
+ }
31
49
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/template-bindings/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,KAAY;IAC/D,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CACjB,uDAAuD,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAC1I,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/template-bindings/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,KAAY;IAC/D,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CACjB,uDAAuD,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAC1I,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,KAAqB;IACxC,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,CAAC;QACH,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,GAAG,YAAY,gBAAgB,CAAC;YAAE,MAAM,GAAG,CAAC;QAClD,MAAM,IAAI,SAAS,CACjB,+DAA+D,KAAK,uFAAuF,EAC3J,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;IACJ,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@promptctl/rich-js",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Rich text and beautiful formatting in the terminal — a TypeScript port of Python's Rich",
5
5
  "type": "module",
6
+ "sideEffects": false,
6
7
  "main": "dist/index.js",
7
8
  "types": "dist/index.d.ts",
8
9
  "exports": {
@@ -51,6 +52,7 @@
51
52
  "dist"
52
53
  ],
53
54
  "scripts": {
55
+ "prepublishOnly": "node scripts/verify-release-tag.mjs",
54
56
  "build": "tsc",
55
57
  "test": "vitest run",
56
58
  "test:watch": "vitest",
@@ -89,11 +91,15 @@
89
91
  ],
90
92
  "license": "MIT",
91
93
  "engines": {
92
- "node": "^20.19.0 || >=22.12.0"
94
+ "node": ">=20"
93
95
  },
94
96
  "devDependencies": {
95
97
  "@playwright/test": "^1.60.0",
98
+ "@promptctl/go-template-js": "^0.5.0",
96
99
  "@types/node": "^25.5.0",
100
+ "@types/semver": "^7.8.0",
101
+ "mobx": "^6.15.0",
102
+ "semver": "^7.8.5",
97
103
  "strip-ansi": "^7.2.0",
98
104
  "typescript": "^5.7.0",
99
105
  "vite": "^7.3.3",
@@ -101,8 +107,18 @@
101
107
  "vitest": "^3.0.0"
102
108
  },
103
109
  "dependencies": {
104
- "@promptctl/go-template-js": "^0.5.0",
105
- "mobx": "^6.15.0",
106
110
  "string-width": "^8.2.0"
111
+ },
112
+ "peerDependencies": {
113
+ "@promptctl/go-template-js": "^0.5.0",
114
+ "mobx": "^6.15.0"
115
+ },
116
+ "peerDependenciesMeta": {
117
+ "@promptctl/go-template-js": {
118
+ "optional": true
119
+ },
120
+ "mobx": {
121
+ "optional": true
122
+ }
107
123
  }
108
124
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/renderables/json.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACd,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAID,qBAAa,cAAe,YAAW,UAAU,EAAE,UAAU;IAC3D,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAExB,OAAO;IAIP,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,cAAc;IAS5E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,cAAc;IA4BpE,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;IAIlD,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAGtE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/renderables/json.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAazD,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;AAE1C,MAAM,OAAO,cAAc;IAChB,IAAI,CAAW;IAExB,YAAoB,IAAc;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,UAAkB,EAAE,OAAqB;QACzD,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC;QAE5C,mDAAmD;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAY,CAAC;QAC/C,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAa,EAAE,OAAqB;QAClD,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC;QAC5C,MAAM,WAAW,GAAG,OAAO,EAAE,SAAS,KAAK,KAAK,CAAC;QAEjD,MAAM,QAAQ,GAAG,QAAQ;YACvB,CAAC,CAAC,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE;gBAC/B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzE,MAAM,MAAM,GAA4B,EAAE,CAAC;oBAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;wBACrE,MAAM,CAAC,CAAC,CAAC,GAAI,KAAiC,CAAC,CAAC,CAAC,CAAC;oBACpD,CAAC;oBACD,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QAEhD,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,CAAC,MAAM,CAAC,OAAsB;QAC5B,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,OAAsB;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -1,29 +0,0 @@
1
- /**
2
- * Pretty — formats JavaScript data structures with highlighting.
3
- */
4
- import { Segment } from "../core/segment.js";
5
- import type { Renderable, Measurable, RenderOptions } from "../core/protocol.js";
6
- export interface PrettyOptions {
7
- indent?: number;
8
- expandAll?: boolean;
9
- maxLength?: number;
10
- maxString?: number;
11
- indentGuides?: boolean;
12
- }
13
- export declare class Pretty implements Renderable, Measurable {
14
- readonly data: unknown;
15
- readonly indent: number;
16
- readonly expandAll: boolean;
17
- readonly maxLength: number | undefined;
18
- readonly maxString: number | undefined;
19
- readonly indentGuides: boolean;
20
- constructor(data: unknown, options?: PrettyOptions);
21
- render(options: RenderOptions): Iterable<Segment>;
22
- measure(_options: RenderOptions): {
23
- minimum: number;
24
- maximum: number;
25
- };
26
- private _format;
27
- private _addIndentGuides;
28
- }
29
- //# sourceMappingURL=pretty.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pretty.d.ts","sourceRoot":"","sources":["../../src/renderables/pretty.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACd,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAID,qBAAa,MAAO,YAAW,UAAU,EAAE,UAAU;IACnD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;gBAEnB,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa;IASjD,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;IAYlD,OAAO,CAAC,QAAQ,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAUtE,OAAO,CAAC,OAAO;IA6Ff,OAAO,CAAC,gBAAgB;CAczB"}
@@ -1,141 +0,0 @@
1
- /**
2
- * Pretty — formats JavaScript data structures with highlighting.
3
- */
4
- import { cellLen } from "../core/cells.js";
5
- import { Style } from "../core/style.js";
6
- import { RichText } from "../core/text.js";
7
- import { ReprHighlighter } from "../core/highlighter.js";
8
- const reprHighlighter = new ReprHighlighter();
9
- export class Pretty {
10
- data;
11
- indent;
12
- expandAll;
13
- maxLength;
14
- maxString;
15
- indentGuides;
16
- constructor(data, options) {
17
- this.data = data;
18
- this.indent = options?.indent ?? 4;
19
- this.expandAll = options?.expandAll ?? false;
20
- this.maxLength = options?.maxLength;
21
- this.maxString = options?.maxString;
22
- this.indentGuides = options?.indentGuides !== false;
23
- }
24
- *render(options) {
25
- const formatted = this._format(this.data, 0, options.maxWidth);
26
- const text = new RichText(formatted, { end: "" });
27
- reprHighlighter.highlight(text);
28
- if (this.indentGuides) {
29
- this._addIndentGuides(text);
30
- }
31
- yield* text.render(options);
32
- }
33
- measure(_options) {
34
- const formatted = this._format(this.data, 0, _options.maxWidth);
35
- const lines = formatted.split("\n");
36
- let max = 0;
37
- for (const line of lines) {
38
- max = Math.max(max, cellLen(line));
39
- }
40
- return { minimum: 1, maximum: Math.min(max, _options.maxWidth) };
41
- }
42
- _format(value, depth, maxWidth) {
43
- const indentStr = " ".repeat(this.indent * depth);
44
- const innerIndent = " ".repeat(this.indent * (depth + 1));
45
- if (value === null)
46
- return "null";
47
- if (value === undefined)
48
- return "undefined";
49
- switch (typeof value) {
50
- case "string": {
51
- let str = value;
52
- if (this.maxString !== undefined && str.length > this.maxString) {
53
- str = str.slice(0, this.maxString) + `+${value.length - this.maxString}`;
54
- }
55
- return JSON.stringify(str);
56
- }
57
- case "number":
58
- case "bigint":
59
- return String(value);
60
- case "boolean":
61
- return String(value);
62
- case "symbol":
63
- return value.toString();
64
- case "function":
65
- return `[Function: ${value.name || "anonymous"}]`;
66
- }
67
- if (Array.isArray(value)) {
68
- if (value.length === 0)
69
- return "[]";
70
- const items = this.maxLength !== undefined
71
- ? value.slice(0, this.maxLength)
72
- : value;
73
- const remaining = this.maxLength !== undefined
74
- ? Math.max(0, value.length - this.maxLength)
75
- : 0;
76
- // Try compact first
77
- if (!this.expandAll) {
78
- const compact = "[" + items.map((v) => this._format(v, 0, maxWidth)).join(", ") +
79
- (remaining > 0 ? `, ... +${remaining}` : "") + "]";
80
- if (cellLen(indentStr + compact) <= maxWidth)
81
- return compact;
82
- }
83
- const parts = items.map((v) => innerIndent + this._format(v, depth + 1, maxWidth));
84
- if (remaining > 0)
85
- parts.push(innerIndent + `... +${remaining}`);
86
- return "[\n" + parts.join(",\n") + "\n" + indentStr + "]";
87
- }
88
- if (value instanceof Map) {
89
- if (value.size === 0)
90
- return "Map {}";
91
- const entries = [...value.entries()];
92
- const items = this.maxLength !== undefined ? entries.slice(0, this.maxLength) : entries;
93
- const parts = items.map(([k, v]) => innerIndent + this._format(k, depth + 1, maxWidth) + " => " + this._format(v, depth + 1, maxWidth));
94
- return "Map {\n" + parts.join(",\n") + "\n" + indentStr + "}";
95
- }
96
- if (value instanceof Set) {
97
- if (value.size === 0)
98
- return "Set {}";
99
- const items = [...value];
100
- const bounded = this.maxLength !== undefined ? items.slice(0, this.maxLength) : items;
101
- const parts = bounded.map((v) => innerIndent + this._format(v, depth + 1, maxWidth));
102
- return "Set {\n" + parts.join(",\n") + "\n" + indentStr + "}";
103
- }
104
- // Plain objects
105
- if (typeof value === "object") {
106
- const obj = value;
107
- const keys = Object.keys(obj);
108
- if (keys.length === 0)
109
- return "{}";
110
- const items = this.maxLength !== undefined ? keys.slice(0, this.maxLength) : keys;
111
- const remaining = this.maxLength !== undefined ? Math.max(0, keys.length - this.maxLength) : 0;
112
- // Try compact
113
- if (!this.expandAll) {
114
- const compact = "{ " + items.map((k) => `${k}: ${this._format(obj[k], 0, maxWidth)}`).join(", ") +
115
- (remaining > 0 ? `, ... +${remaining}` : "") + " }";
116
- if (cellLen(indentStr + compact) <= maxWidth)
117
- return compact;
118
- }
119
- const parts = items.map((k) => innerIndent + `${k}: ${this._format(obj[k], depth + 1, maxWidth)}`);
120
- if (remaining > 0)
121
- parts.push(innerIndent + `... +${remaining}`);
122
- return "{\n" + parts.join(",\n") + "\n" + indentStr + "}";
123
- }
124
- return String(value);
125
- }
126
- _addIndentGuides(text) {
127
- const guideStyle = Style.parse("repr.indent");
128
- const lines = text.plain.split("\n");
129
- let offset = 0;
130
- for (const line of lines) {
131
- const leadingSpaces = line.length - line.trimStart().length;
132
- for (let i = 0; i < leadingSpaces; i += this.indent) {
133
- if (i + offset < text.length) {
134
- text.stylize(guideStyle, offset + i, offset + i + 1);
135
- }
136
- }
137
- offset += line.length + 1; // +1 for newline
138
- }
139
- }
140
- }
141
- //# sourceMappingURL=pretty.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pretty.js","sourceRoot":"","sources":["../../src/renderables/pretty.ts"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- import type { ColorRgba } from "../core/color.js";
2
- import { Palette } from "./palette.js";
3
- export interface ResolveContext {
4
- /**
5
- * The background the result will be painted on. Required for specs whose
6
- * meaning depends on a target: alpha (`primary 50%`) and auto-contrast
7
- * (`auto`, `auto 33%`). Bare names and modifiers do not need it.
8
- */
9
- against?: ColorRgba;
10
- }
11
- /**
12
- * Resolves Textual-style spec strings against a Palette into ColorRgba values.
13
- *
14
- * Spec grammar:
15
- * spec = name ("-darken-" N | "-lighten-" N)? (" " NN "%")?
16
- * name = "auto" | <palette var name>
17
- *
18
- * Examples (against gruvbox):
19
- * "primary" → palette["primary"]
20
- * "primary-background" → palette["primary-background"] (name has hyphens)
21
- * "primary-darken-3" → darken(palette["primary"], 3)
22
- * "primary 50%" → alphaBlend(palette["primary"], against, 0.5)
23
- * "auto 33%" → alphaBlend(contrastFor(against), against, 0.33)
24
- * "primary-darken-3 50%" → alphaBlend(darken(palette["primary"], 3), against, 0.5)
25
- *
26
- * Returns null on: invalid syntax, missing var, or missing required `against`.
27
- * Pure: same inputs always yield the same output, no internal state.
28
- */
29
- export declare class PaletteResolver {
30
- readonly palette: Palette;
31
- constructor(palette: Palette);
32
- resolve(spec: string, ctx?: ResolveContext): ColorRgba | null;
33
- private lookupBase;
34
- }
35
- //# sourceMappingURL=paletteResolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paletteResolver.d.ts","sourceRoot":"","sources":["../../src/themes/paletteResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAiDvC,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,eAAe;IACd,QAAQ,CAAC,OAAO,EAAE,OAAO;gBAAhB,OAAO,EAAE,OAAO;IAErC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI;IAoB7D,OAAO,CAAC,UAAU;CASnB"}