@promptctl/rich-js 0.17.0 → 0.18.1

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 (147) hide show
  1. package/README.md +13 -26
  2. package/dist/core/anchor.d.ts +45 -0
  3. package/dist/core/anchor.js +39 -0
  4. package/dist/core/ansi.d.ts +65 -0
  5. package/dist/core/ansi.js +231 -0
  6. package/dist/core/box.d.ts +0 -1
  7. package/dist/core/box.js +6 -18
  8. package/dist/core/cells.d.ts +16 -5
  9. package/dist/core/cells.js +31 -10
  10. package/dist/core/color.d.ts +4 -8
  11. package/dist/core/color.js +28 -19
  12. package/dist/core/console.d.ts +13 -4
  13. package/dist/core/console.js +91 -36
  14. package/dist/core/export-html.d.ts +40 -5
  15. package/dist/core/export-html.js +111 -17
  16. package/dist/core/markup.d.ts +27 -5
  17. package/dist/core/markup.js +282 -170
  18. package/dist/core/measure.d.ts +1 -1
  19. package/dist/core/measure.js +2 -1
  20. package/dist/core/place.d.ts +30 -0
  21. package/dist/core/place.js +51 -0
  22. package/dist/core/pretty.d.ts +3 -0
  23. package/dist/core/pretty.js +5 -1
  24. package/dist/core/protocol.d.ts +136 -6
  25. package/dist/core/protocol.js +64 -2
  26. package/dist/core/render.d.ts +2 -2
  27. package/dist/core/render.js +2 -2
  28. package/dist/core/segment.d.ts +23 -4
  29. package/dist/core/segment.js +75 -16
  30. package/dist/core/spinnerData.d.ts +2 -0
  31. package/dist/core/spinnerData.js +3 -1
  32. package/dist/core/strip.d.ts +3 -7
  33. package/dist/core/strip.js +32 -35
  34. package/dist/core/style.d.ts +25 -0
  35. package/dist/core/style.js +61 -89
  36. package/dist/core/text.d.ts +16 -15
  37. package/dist/core/text.js +62 -76
  38. package/dist/host/app.d.ts +121 -0
  39. package/dist/host/app.js +255 -0
  40. package/dist/host/host-environment.d.ts +26 -0
  41. package/dist/host/host-environment.js +44 -0
  42. package/dist/host/index.d.ts +4 -2
  43. package/dist/host/index.js +2 -1
  44. package/dist/host/terminal-host.d.ts +43 -7
  45. package/dist/host/terminal-host.js +57 -3
  46. package/dist/index.d.ts +7 -3
  47. package/dist/index.js +4 -1
  48. package/dist/node/terminal-host.d.ts +31 -2
  49. package/dist/node/terminal-host.js +69 -2
  50. package/dist/node/traceback.d.ts +16 -6
  51. package/dist/node/traceback.js +30 -8
  52. package/dist/renderables/align.d.ts +2 -2
  53. package/dist/renderables/align.js +6 -19
  54. package/dist/renderables/columns.js +4 -20
  55. package/dist/renderables/embed.d.ts +50 -0
  56. package/dist/renderables/embed.js +71 -0
  57. package/dist/renderables/group.js +3 -1
  58. package/dist/renderables/layout.js +31 -34
  59. package/dist/renderables/live.d.ts +6 -3
  60. package/dist/renderables/live.js +89 -45
  61. package/dist/renderables/markdown.d.ts +1 -1
  62. package/dist/renderables/markdown.js +6 -4
  63. package/dist/renderables/padding.js +3 -2
  64. package/dist/renderables/panel.js +26 -41
  65. package/dist/renderables/progress.js +5 -8
  66. package/dist/renderables/progressBar.js +6 -5
  67. package/dist/renderables/rule.d.ts +3 -2
  68. package/dist/renderables/rule.js +9 -9
  69. package/dist/renderables/spinner.d.ts +5 -3
  70. package/dist/renderables/spinner.js +14 -8
  71. package/dist/renderables/syntax.d.ts +1 -1
  72. package/dist/renderables/syntax.js +2 -1
  73. package/dist/renderables/table.d.ts +26 -14
  74. package/dist/renderables/table.js +239 -141
  75. package/dist/renderables/traceback.js +8 -9
  76. package/dist/renderables/tree.d.ts +17 -3
  77. package/dist/renderables/tree.js +62 -71
  78. package/dist/renderables/viewport.d.ts +114 -0
  79. package/dist/renderables/viewport.js +198 -0
  80. package/dist/template-bindings/color-funcs.js +11 -13
  81. package/dist/template-bindings/index.js +4 -2
  82. package/dist/template-bindings/palette-funcs.js +6 -16
  83. package/dist/template-bindings/style-funcs.js +4 -0
  84. package/dist/themes/data/ansi-tables.d.ts +14 -0
  85. package/dist/themes/data/ansi-tables.js +49 -0
  86. package/dist/themes/data/atom-one-dark.js +19 -0
  87. package/dist/themes/data/atom-one-light.js +19 -0
  88. package/dist/themes/data/catppuccin-frappe.js +19 -0
  89. package/dist/themes/data/catppuccin-latte.js +19 -0
  90. package/dist/themes/data/catppuccin-macchiato.js +19 -0
  91. package/dist/themes/data/catppuccin-mocha.js +19 -0
  92. package/dist/themes/data/cyberpunk.js +2 -0
  93. package/dist/themes/data/default.js +2 -0
  94. package/dist/themes/data/dracula.js +19 -0
  95. package/dist/themes/data/flexoki.js +19 -0
  96. package/dist/themes/data/gruvbox.js +19 -0
  97. package/dist/themes/data/monokai.js +19 -0
  98. package/dist/themes/data/nord.js +19 -0
  99. package/dist/themes/data/rose-pine-dawn.js +19 -0
  100. package/dist/themes/data/rose-pine-moon.js +19 -0
  101. package/dist/themes/data/rose-pine.js +19 -0
  102. package/dist/themes/data/solarized-dark.js +19 -0
  103. package/dist/themes/data/solarized-light.js +19 -0
  104. package/dist/themes/data/svg-export.js +19 -0
  105. package/dist/themes/data/textual-ansi.js +2 -0
  106. package/dist/themes/data/textual-dark.js +2 -0
  107. package/dist/themes/data/textual-light.js +2 -0
  108. package/dist/themes/data/tokyo-night.js +19 -0
  109. package/dist/themes/data/types.d.ts +16 -0
  110. package/dist/themes/data/types.js +10 -1
  111. package/dist/themes/registry.d.ts +3 -2
  112. package/dist/themes/registry.js +13 -1
  113. package/dist/themes/terminalThemes.d.ts +2 -7
  114. package/dist/themes/terminalThemes.js +4 -9
  115. package/dist/widgets/button.d.ts +1 -1
  116. package/dist/widgets/button.js +4 -2
  117. package/dist/widgets/checkbox.d.ts +2 -2
  118. package/dist/widgets/checkbox.js +5 -3
  119. package/dist/widgets/dropdown.d.ts +2 -2
  120. package/dist/widgets/dropdown.js +13 -16
  121. package/dist/widgets/event-router.d.ts +21 -28
  122. package/dist/widgets/event-router.js +80 -73
  123. package/dist/widgets/focus-manager.d.ts +25 -6
  124. package/dist/widgets/focus-manager.js +63 -65
  125. package/dist/widgets/hit.d.ts +64 -0
  126. package/dist/widgets/hit.js +113 -0
  127. package/dist/widgets/index.d.ts +5 -7
  128. package/dist/widgets/index.js +3 -4
  129. package/dist/widgets/slider.d.ts +2 -2
  130. package/dist/widgets/slider.js +7 -7
  131. package/dist/widgets/static-item.d.ts +9 -15
  132. package/dist/widgets/static-item.js +9 -15
  133. package/dist/widgets/text-input.d.ts +2 -2
  134. package/dist/widgets/text-input.js +17 -14
  135. package/dist/widgets/toggle.d.ts +1 -1
  136. package/dist/widgets/toggle.js +3 -2
  137. package/dist/widgets/types.d.ts +14 -35
  138. package/dist/widgets/types.js +0 -1
  139. package/dist/widgets/widget-app.d.ts +63 -0
  140. package/dist/widgets/widget-app.js +199 -0
  141. package/dist/widgets/widget-base.d.ts +4 -6
  142. package/dist/widgets/widget-base.js +22 -30
  143. package/package.json +12 -4
  144. package/dist/host/host-stream.d.ts +0 -30
  145. package/dist/host/host-stream.js +0 -35
  146. package/dist/widgets/screen.d.ts +0 -98
  147. package/dist/widgets/screen.js +0 -530
@@ -77,9 +77,6 @@ import { ColorRamp, parseRampEasing } from "../themes/ramp.js";
77
77
  * ramp over palette names follows the theme exactly as `color` does.
78
78
  */
79
79
  function colorStops(tail, palette) {
80
- if (tail.length === 0) {
81
- throw new RangeError(`ramp needs at least one stop after the easing: ramp <value> <easing> <position> <color> …`);
82
- }
83
80
  if (tail.length % 2 !== 0) {
84
81
  throw new RangeError(`ramp's last stop (position ${String(tail[tail.length - 1])}) has no color — ` +
85
82
  `stops are <position> <color> pairs`);
@@ -124,27 +121,20 @@ export function paletteFuncs(getPalette) {
124
121
  const colorFunc = {
125
122
  fn: ((ref) => resolveColorRef(getPalette(), ref).hex),
126
123
  argTypes: ["string"],
124
+ arity: { kind: "exact" },
127
125
  returnType: "string",
128
126
  };
129
127
  // `ramp <value> <easing> <position> <color> …` — the argument list is one
130
128
  // float/string cycle end to end (value, easing, then each stop's position
131
129
  // and color), so the engine's `alternating` gate types every slot; the
132
- // pairing and the references are parsed in `colorStops`.
130
+ // pairing and the references are parsed in `colorStops`. Its minimum is the
131
+ // value, the easing, and one stop, so the gate refuses a stopless call.
133
132
  // [LAW:types-are-the-program]
134
133
  const rampFunc = {
135
- fn: ((...args) => {
136
- // The engine's `alternating` gate types each slot but sets no minimum
137
- // count, so `{{ ramp }}` and `{{ ramp 65 }}` both reach here: one
138
- // check over the whole list, naming what is missing. [LAW:no-silent-failure]
139
- if (args.length < 2) {
140
- throw new RangeError(`ramp needs a value and an easing before its stops (got ${args.length}): ` +
141
- `ramp <value> "linear"|"step" <position> <color> …`);
142
- }
143
- const [value, easing, ...tail] = args;
144
- return new ColorRamp(parseRampEasing(easing), colorStops(tail, getPalette())).at(value).hex;
145
- }),
134
+ fn: ((value, easing, ...tail) => new ColorRamp(parseRampEasing(easing), colorStops(tail, getPalette())).at(value)
135
+ .hex),
146
136
  argTypes: ["float", "string"],
147
- argTypePattern: "alternating",
137
+ arity: { kind: "alternating", minimum: 4 },
148
138
  returnType: "string",
149
139
  };
150
140
  return { color: colorFunc, ramp: rampFunc };
@@ -22,6 +22,7 @@ function attrFunc(style) {
22
22
  return {
23
23
  fn: ((child) => applyStyleToFragment(child, style)),
24
24
  argTypes: ["liftable"],
25
+ arity: { kind: "exact" },
25
26
  returnType: "T",
26
27
  };
27
28
  }
@@ -51,6 +52,7 @@ function colorSinkFunc(slot) {
51
52
  return {
52
53
  fn: ((spec, child) => applyStyleToFragment(child, new Style({ [slot]: ColorSpec.parse(spec) }))),
53
54
  argTypes: ["string", "liftable"],
55
+ arity: { kind: "exact" },
54
56
  returnType: "T",
55
57
  };
56
58
  }
@@ -103,6 +105,7 @@ const styleSpecFunc = {
103
105
  return applyStyleToFragment(child, Style.parse(spec));
104
106
  }),
105
107
  argTypes: ["string", "liftable"],
108
+ arity: { kind: "exact" },
106
109
  returnType: "T",
107
110
  };
108
111
  // --- Hyperlink ---
@@ -128,6 +131,7 @@ const linkFunc = {
128
131
  return applyStyleToFragment(child, new Style({ link: url }));
129
132
  }),
130
133
  argTypes: ["string", "liftable"],
134
+ arity: { kind: "exact" },
131
135
  returnType: "T",
132
136
  };
133
137
  // --- Public assembly ---
@@ -0,0 +1,14 @@
1
+ import { type AnsiColorsData } from "./types.js";
2
+ /**
3
+ * The VGA colours a terminal draws with no theme of its own: Rich's
4
+ * `DEFAULT_TERMINAL_THEME`, and what `textual-ansi` spells its palette in.
5
+ */
6
+ export declare const VGA_ANSI: AnsiColorsData;
7
+ /**
8
+ * The ANSI tables Textual draws named colours in for a theme that has no
9
+ * terminal scheme of its own: `MONOKAI` under a dark theme and `ALABASTER`
10
+ * under a light one (`ansi_theme_dark` / `ansi_theme_light` in Textual's
11
+ * `app.py`, values from its `_ansi_theme.py`).
12
+ */
13
+ export declare const TEXTUAL_DARK_ANSI: AnsiColorsData;
14
+ export declare const TEXTUAL_LIGHT_ANSI: AnsiColorsData;
@@ -0,0 +1,49 @@
1
+ import { STANDARD_TABLE } from "../../core/color.js";
2
+ import { ANSI_SLOTS } from "./types.js";
3
+ /**
4
+ * The VGA colours a terminal draws with no theme of its own: Rich's
5
+ * `DEFAULT_TERMINAL_THEME`, and what `textual-ansi` spells its palette in.
6
+ */
7
+ export const VGA_ANSI = Object.fromEntries(ANSI_SLOTS.map((slot, n) => [slot, STANDARD_TABLE.get(n).hex]));
8
+ /**
9
+ * The ANSI tables Textual draws named colours in for a theme that has no
10
+ * terminal scheme of its own: `MONOKAI` under a dark theme and `ALABASTER`
11
+ * under a light one (`ansi_theme_dark` / `ansi_theme_light` in Textual's
12
+ * `app.py`, values from its `_ansi_theme.py`).
13
+ */
14
+ export const TEXTUAL_DARK_ANSI = {
15
+ black: "#1A1A1A",
16
+ red: "#F4005F",
17
+ green: "#98E024",
18
+ yellow: "#FD971F",
19
+ blue: "#9D65FF",
20
+ magenta: "#F4005F",
21
+ cyan: "#58D1EB",
22
+ white: "#C4C5B5",
23
+ brightBlack: "#625E4C",
24
+ brightRed: "#F4005F",
25
+ brightGreen: "#98E024",
26
+ brightYellow: "#E0D561",
27
+ brightBlue: "#9D65FF",
28
+ brightMagenta: "#F4005F",
29
+ brightCyan: "#58D1EB",
30
+ brightWhite: "#F6F6EF",
31
+ };
32
+ export const TEXTUAL_LIGHT_ANSI = {
33
+ black: "#000000",
34
+ red: "#AA3731",
35
+ green: "#448C27",
36
+ yellow: "#CB9000",
37
+ blue: "#325CC0",
38
+ magenta: "#7A3E9D",
39
+ cyan: "#0083B2",
40
+ white: "#F7F7F7",
41
+ brightBlack: "#777777",
42
+ brightRed: "#F05050",
43
+ brightGreen: "#60CB00",
44
+ brightYellow: "#FFBC5D",
45
+ brightBlue: "#007ACC",
46
+ brightMagenta: "#E64CE6",
47
+ brightCyan: "#00AACB",
48
+ brightWhite: "#F7F7F7",
49
+ };
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "atom-one-dark",
3
3
  dark: true,
4
+ // iTerm2-Color-Schemes "One Half Dark", a terminal port of Atom One
5
+ ansi: {
6
+ black: "#282C34",
7
+ red: "#E06C75",
8
+ green: "#98C379",
9
+ yellow: "#E5C07B",
10
+ blue: "#61AFEF",
11
+ magenta: "#C678DD",
12
+ cyan: "#56B6C2",
13
+ white: "#DCDFE4",
14
+ brightBlack: "#5D677A",
15
+ brightRed: "#E06C75",
16
+ brightGreen: "#98C379",
17
+ brightYellow: "#E5C07B",
18
+ brightBlue: "#61AFEF",
19
+ brightMagenta: "#C678DD",
20
+ brightCyan: "#56B6C2",
21
+ brightWhite: "#DCDFE4",
22
+ },
4
23
  vars: {
5
24
  "accent": "#A378C2",
6
25
  "accent-darken-1": "#8E65AD",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "atom-one-light",
3
3
  dark: false,
4
+ // iTerm2-Color-Schemes "One Half Light", a terminal port of Atom One
5
+ ansi: {
6
+ black: "#383A42",
7
+ red: "#E45649",
8
+ green: "#50A14F",
9
+ yellow: "#C18401",
10
+ blue: "#0184BC",
11
+ magenta: "#A626A4",
12
+ cyan: "#0997B3",
13
+ white: "#BABABA",
14
+ brightBlack: "#4F525E",
15
+ brightRed: "#E06C75",
16
+ brightGreen: "#98C379",
17
+ brightYellow: "#D8B36E",
18
+ brightBlue: "#61AFEF",
19
+ brightMagenta: "#C678DD",
20
+ brightCyan: "#56B6C2",
21
+ brightWhite: "#FFFFFF",
22
+ },
4
23
  vars: {
5
24
  "accent": "#BE9232",
6
25
  "accent-darken-1": "#A97E1D",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "catppuccin-frappe",
3
3
  dark: true,
4
+ // iTerm2-Color-Schemes "Catppuccin Frappe"
5
+ ansi: {
6
+ black: "#51576D",
7
+ red: "#E78284",
8
+ green: "#A6D189",
9
+ yellow: "#E5C890",
10
+ blue: "#8CAAEE",
11
+ magenta: "#F4B8E4",
12
+ cyan: "#81C8BE",
13
+ white: "#B5BFE2",
14
+ brightBlack: "#626880",
15
+ brightRed: "#EDA0A2",
16
+ brightGreen: "#B9DBA2",
17
+ brightYellow: "#ECD7AE",
18
+ brightBlue: "#ADC2F3",
19
+ brightMagenta: "#F38ED8",
20
+ brightCyan: "#98D2CA",
21
+ brightWhite: "#A5ADCE",
22
+ },
4
23
  vars: {
5
24
  "accent": "#F4B8E4",
6
25
  "accent-darken-1": "#DEA3CE",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "catppuccin-latte",
3
3
  dark: false,
4
+ // iTerm2-Color-Schemes "Catppuccin Latte"
5
+ ansi: {
6
+ black: "#BCC0CC",
7
+ red: "#D20F39",
8
+ green: "#40A02B",
9
+ yellow: "#DF8E1D",
10
+ blue: "#1E66F5",
11
+ magenta: "#EA76CB",
12
+ cyan: "#179299",
13
+ white: "#5C5F77",
14
+ brightBlack: "#ACB0BE",
15
+ brightRed: "#E7103F",
16
+ brightGreen: "#46B02F",
17
+ brightYellow: "#E49931",
18
+ brightBlue: "#3878F6",
19
+ brightMagenta: "#EF95D7",
20
+ brightCyan: "#19A1A8",
21
+ brightWhite: "#6C6F85",
22
+ },
4
23
  vars: {
5
24
  "accent": "#FD640B",
6
25
  "accent-darken-1": "#E54F00",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "catppuccin-macchiato",
3
3
  dark: true,
4
+ // iTerm2-Color-Schemes "Catppuccin Macchiato"
5
+ ansi: {
6
+ black: "#494D64",
7
+ red: "#ED8796",
8
+ green: "#A6DA95",
9
+ yellow: "#EED49F",
10
+ blue: "#8AADF4",
11
+ magenta: "#F5BDE6",
12
+ cyan: "#8BD5CA",
13
+ white: "#B8C0E0",
14
+ brightBlack: "#5B6078",
15
+ brightRed: "#F2A7B2",
16
+ brightGreen: "#BDE3B0",
17
+ brightYellow: "#F4E3C1",
18
+ brightBlue: "#ADC5F7",
19
+ brightMagenta: "#F493DA",
20
+ brightCyan: "#A5DED6",
21
+ brightWhite: "#A5ADCB",
22
+ },
4
23
  vars: {
5
24
  "accent": "#F5BDE6",
6
25
  "accent-darken-1": "#DFA8D0",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "catppuccin-mocha",
3
3
  dark: true,
4
+ // iTerm2-Color-Schemes "Catppuccin Mocha"
5
+ ansi: {
6
+ black: "#45475A",
7
+ red: "#F38BA8",
8
+ green: "#A6E3A1",
9
+ yellow: "#F9E2AF",
10
+ blue: "#89B4FA",
11
+ magenta: "#F5C2E7",
12
+ cyan: "#94E2D5",
13
+ white: "#BAC2DE",
14
+ brightBlack: "#585B70",
15
+ brightRed: "#F7AEC2",
16
+ brightGreen: "#C2ECBF",
17
+ brightYellow: "#FCD682",
18
+ brightBlue: "#AECCFC",
19
+ brightMagenta: "#F398DA",
20
+ brightCyan: "#B1EAE1",
21
+ brightWhite: "#A6ADC8",
22
+ },
4
23
  vars: {
5
24
  "accent": "#F9B387",
6
25
  "accent-darken-1": "#E39E73",
@@ -1,3 +1,4 @@
1
+ import { TEXTUAL_DARK_ANSI } from "./ansi-tables.js";
1
2
  /**
2
3
  * Cyberpunk — dark-mode neon palette. All six accent colors and their
3
4
  * darken/lighten/muted derivatives carry partial alpha (0.75–0.85), so the
@@ -15,6 +16,7 @@
15
16
  const theme = {
16
17
  name: "cyberpunk",
17
18
  dark: true,
19
+ ansi: TEXTUAL_DARK_ANSI,
18
20
  vars: {
19
21
  // ── Substrate ──────────────────────────────────────────────────────────
20
22
  "background": "#070714",
@@ -1,6 +1,8 @@
1
+ import { VGA_ANSI } from "./ansi-tables.js";
1
2
  const theme = {
2
3
  name: "default",
3
4
  dark: true,
5
+ ansi: VGA_ANSI,
4
6
  vars: {
5
7
  "accent": "#006FB8",
6
8
  "accent-darken-1": "#005CA3",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "dracula",
3
3
  dark: true,
4
+ // iTerm2-Color-Schemes "Dracula"
5
+ ansi: {
6
+ black: "#21222C",
7
+ red: "#FF5555",
8
+ green: "#50FA7B",
9
+ yellow: "#F1FA8C",
10
+ blue: "#BD93F9",
11
+ magenta: "#FF79C6",
12
+ cyan: "#8BE9FD",
13
+ white: "#F8F8F2",
14
+ brightBlack: "#6272A4",
15
+ brightRed: "#FF6E6E",
16
+ brightGreen: "#69FF94",
17
+ brightYellow: "#FFFFA5",
18
+ brightBlue: "#D6ACFF",
19
+ brightMagenta: "#FF92DF",
20
+ brightCyan: "#A4FFFF",
21
+ brightWhite: "#FFFFFF",
22
+ },
4
23
  vars: {
5
24
  "accent": "#FF79C6",
6
25
  "accent-darken-1": "#E864B1",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "flexoki",
3
3
  dark: true,
4
+ // iTerm2-Color-Schemes "Flexoki Dark"
5
+ ansi: {
6
+ black: "#100F0F",
7
+ red: "#D14D41",
8
+ green: "#879A39",
9
+ yellow: "#D0A215",
10
+ blue: "#4385BE",
11
+ magenta: "#CE5D97",
12
+ cyan: "#3AA99F",
13
+ white: "#878580",
14
+ brightBlack: "#575653",
15
+ brightRed: "#AF3029",
16
+ brightGreen: "#66800B",
17
+ brightYellow: "#AD8301",
18
+ brightBlue: "#205EA6",
19
+ brightMagenta: "#A02F6F",
20
+ brightCyan: "#24837B",
21
+ brightWhite: "#CECDC3",
22
+ },
4
23
  vars: {
5
24
  "accent": "#9B76C8",
6
25
  "accent-darken-1": "#8663B3",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "gruvbox",
3
3
  dark: true,
4
+ // iTerm2-Color-Schemes "Gruvbox Dark"
5
+ ansi: {
6
+ black: "#282828",
7
+ red: "#CC241D",
8
+ green: "#98971A",
9
+ yellow: "#D79921",
10
+ blue: "#458588",
11
+ magenta: "#B16286",
12
+ cyan: "#689D6A",
13
+ white: "#A89984",
14
+ brightBlack: "#928374",
15
+ brightRed: "#FB4934",
16
+ brightGreen: "#B8BB26",
17
+ brightYellow: "#FABD2F",
18
+ brightBlue: "#83A598",
19
+ brightMagenta: "#D3869B",
20
+ brightCyan: "#8EC07C",
21
+ brightWhite: "#EBDBB2",
22
+ },
4
23
  vars: {
5
24
  "accent": "#F9BD2F",
6
25
  "accent-darken-1": "#E2A811",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "monokai",
3
3
  dark: true,
4
+ // iTerm2-Color-Schemes "Monokai SublimeText"
5
+ ansi: {
6
+ black: "#333333",
7
+ red: "#C4265E",
8
+ green: "#86B42B",
9
+ yellow: "#B3B42B",
10
+ blue: "#6A7EC8",
11
+ magenta: "#8C6BC8",
12
+ cyan: "#56ADBC",
13
+ white: "#E3E3DD",
14
+ brightBlack: "#666666",
15
+ brightRed: "#F92672",
16
+ brightGreen: "#A6E22E",
17
+ brightYellow: "#E2E22E",
18
+ brightBlue: "#819AFF",
19
+ brightMagenta: "#AE81FF",
20
+ brightCyan: "#66D9EF",
21
+ brightWhite: "#F8F8F2",
22
+ },
4
23
  vars: {
5
24
  "accent": "#66D9EF",
6
25
  "accent-darken-1": "#4DC3D9",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "nord",
3
3
  dark: true,
4
+ // iTerm2-Color-Schemes "Nord"
5
+ ansi: {
6
+ black: "#3B4252",
7
+ red: "#BF616A",
8
+ green: "#A3BE8C",
9
+ yellow: "#EBCB8B",
10
+ blue: "#81A1C1",
11
+ magenta: "#B48EAD",
12
+ cyan: "#88C0D0",
13
+ white: "#E5E9F0",
14
+ brightBlack: "#596377",
15
+ brightRed: "#BF616A",
16
+ brightGreen: "#A3BE8C",
17
+ brightYellow: "#EBCB8B",
18
+ brightBlue: "#81A1C1",
19
+ brightMagenta: "#B48EAD",
20
+ brightCyan: "#8FBCBB",
21
+ brightWhite: "#ECEFF4",
22
+ },
4
23
  vars: {
5
24
  "accent": "#B48EAD",
6
25
  "accent-darken-1": "#9F7A98",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "rose-pine-dawn",
3
3
  dark: false,
4
+ // iTerm2-Color-Schemes "Rose Pine Dawn"
5
+ ansi: {
6
+ black: "#F2E9E1",
7
+ red: "#B4637A",
8
+ green: "#286983",
9
+ yellow: "#EA9D34",
10
+ blue: "#56949F",
11
+ magenta: "#907AA9",
12
+ cyan: "#D7827E",
13
+ white: "#575279",
14
+ brightBlack: "#9893A5",
15
+ brightRed: "#B4637A",
16
+ brightGreen: "#286983",
17
+ brightYellow: "#EA9D34",
18
+ brightBlue: "#56949F",
19
+ brightMagenta: "#907AA9",
20
+ brightCyan: "#D7827E",
21
+ brightWhite: "#575279",
22
+ },
4
23
  vars: {
5
24
  "accent": "#D6827E",
6
25
  "accent-darken-1": "#C16E6B",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "rose-pine-moon",
3
3
  dark: true,
4
+ // iTerm2-Color-Schemes "Rose Pine Moon"
5
+ ansi: {
6
+ black: "#393552",
7
+ red: "#EB6F92",
8
+ green: "#3E8FB0",
9
+ yellow: "#F6C177",
10
+ blue: "#9CCFD8",
11
+ magenta: "#C4A7E7",
12
+ cyan: "#EA9A97",
13
+ white: "#E0DEF4",
14
+ brightBlack: "#6E6A86",
15
+ brightRed: "#EB6F92",
16
+ brightGreen: "#3E8FB0",
17
+ brightYellow: "#F6C177",
18
+ brightBlue: "#9CCFD8",
19
+ brightMagenta: "#C4A7E7",
20
+ brightCyan: "#EA9A97",
21
+ brightWhite: "#E0DEF4",
22
+ },
4
23
  vars: {
5
24
  "accent": "#EA9A97",
6
25
  "accent-darken-1": "#D48683",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "rose-pine",
3
3
  dark: true,
4
+ // iTerm2-Color-Schemes "Rose Pine"
5
+ ansi: {
6
+ black: "#26233A",
7
+ red: "#EB6F92",
8
+ green: "#31748F",
9
+ yellow: "#F6C177",
10
+ blue: "#9CCFD8",
11
+ magenta: "#C4A7E7",
12
+ cyan: "#EBBCBA",
13
+ white: "#E0DEF4",
14
+ brightBlack: "#6E6A86",
15
+ brightRed: "#EB6F92",
16
+ brightGreen: "#31748F",
17
+ brightYellow: "#F6C177",
18
+ brightBlue: "#9CCFD8",
19
+ brightMagenta: "#C4A7E7",
20
+ brightCyan: "#EBBCBA",
21
+ brightWhite: "#E0DEF4",
22
+ },
4
23
  vars: {
5
24
  "accent": "#EBBCBA",
6
25
  "accent-darken-1": "#D5A7A5",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "solarized-dark",
3
3
  dark: true,
4
+ // iTerm2-Color-Schemes "iTerm2 Solarized Dark"
5
+ ansi: {
6
+ black: "#073642",
7
+ red: "#DC322F",
8
+ green: "#859900",
9
+ yellow: "#B58900",
10
+ blue: "#268BD2",
11
+ magenta: "#D33682",
12
+ cyan: "#2AA198",
13
+ white: "#EEE8D5",
14
+ brightBlack: "#335E69",
15
+ brightRed: "#CB4B16",
16
+ brightGreen: "#586E75",
17
+ brightYellow: "#657B83",
18
+ brightBlue: "#839496",
19
+ brightMagenta: "#6C71C4",
20
+ brightCyan: "#93A1A1",
21
+ brightWhite: "#FDF6E3",
22
+ },
4
23
  vars: {
5
24
  "accent": "#6C71C4",
6
25
  "accent-darken-1": "#575EAF",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "solarized-light",
3
3
  dark: false,
4
+ // iTerm2-Color-Schemes "iTerm2 Solarized Light"
5
+ ansi: {
6
+ black: "#073642",
7
+ red: "#DC322F",
8
+ green: "#859900",
9
+ yellow: "#B58900",
10
+ blue: "#268BD2",
11
+ magenta: "#D33682",
12
+ cyan: "#2AA198",
13
+ white: "#BBB5A2",
14
+ brightBlack: "#002B36",
15
+ brightRed: "#CB4B16",
16
+ brightGreen: "#586E75",
17
+ brightYellow: "#657B83",
18
+ brightBlue: "#839496",
19
+ brightMagenta: "#6C71C4",
20
+ brightCyan: "#93A1A1",
21
+ brightWhite: "#FDF6E3",
22
+ },
4
23
  vars: {
5
24
  "accent": "#6C71C4",
6
25
  "accent-darken-1": "#575EAF",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "svg-export",
3
3
  dark: true,
4
+ // Rich's SVG_EXPORT_THEME
5
+ ansi: {
6
+ black: "#4B4E55",
7
+ red: "#CC555A",
8
+ green: "#98A84B",
9
+ yellow: "#D0B344",
10
+ blue: "#608AB1",
11
+ magenta: "#98729F",
12
+ cyan: "#68A0B3",
13
+ white: "#C5C8C6",
14
+ brightBlack: "#9A9B99",
15
+ brightRed: "#FF2627",
16
+ brightGreen: "#00823D",
17
+ brightYellow: "#D08442",
18
+ brightBlue: "#1984E9",
19
+ brightMagenta: "#FF2C7A",
20
+ brightCyan: "#398280",
21
+ brightWhite: "#FDFDC5",
22
+ },
4
23
  vars: {
5
24
  "accent": "#56B6C2",
6
25
  "accent-darken-1": "#3EA1AD",
@@ -1,6 +1,8 @@
1
+ import { VGA_ANSI } from "./ansi-tables.js";
1
2
  const theme = {
2
3
  name: "textual-ansi",
3
4
  dark: true,
5
+ ansi: VGA_ANSI,
4
6
  vars: {
5
7
  "accent": "#0000FF",
6
8
  "accent-darken-1": "#0000FF",
@@ -1,6 +1,8 @@
1
+ import { TEXTUAL_DARK_ANSI } from "./ansi-tables.js";
1
2
  const theme = {
2
3
  name: "textual-dark",
3
4
  dark: true,
5
+ ansi: TEXTUAL_DARK_ANSI,
4
6
  vars: {
5
7
  "accent": "#FEA62B",
6
8
  "accent-darken-1": "#E7920D",
@@ -1,6 +1,8 @@
1
+ import { TEXTUAL_LIGHT_ANSI } from "./ansi-tables.js";
1
2
  const theme = {
2
3
  name: "textual-light",
3
4
  dark: false,
5
+ ansi: TEXTUAL_LIGHT_ANSI,
4
6
  vars: {
5
7
  "accent": "#FEA62B",
6
8
  "accent-darken-1": "#E7920D",
@@ -1,6 +1,25 @@
1
1
  const theme = {
2
2
  name: "tokyo-night",
3
3
  dark: true,
4
+ // iTerm2-Color-Schemes "TokyoNight Night"
5
+ ansi: {
6
+ black: "#15161E",
7
+ red: "#F7768E",
8
+ green: "#9ECE6A",
9
+ yellow: "#E0AF68",
10
+ blue: "#7AA2F7",
11
+ magenta: "#BB9AF7",
12
+ cyan: "#7DCFFF",
13
+ white: "#A9B1D6",
14
+ brightBlack: "#414868",
15
+ brightRed: "#F7768E",
16
+ brightGreen: "#9ECE6A",
17
+ brightYellow: "#E0AF68",
18
+ brightBlue: "#7AA2F7",
19
+ brightMagenta: "#BB9AF7",
20
+ brightCyan: "#7DCFFF",
21
+ brightWhite: "#C0CAF5",
22
+ },
4
23
  vars: {
5
24
  "accent": "#FE9E64",
6
25
  "accent-darken-1": "#E78A51",