@promptctl/rich-js 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/README.md +29 -15
  2. package/dist/core/cells.d.ts +83 -3
  3. package/dist/core/cells.d.ts.map +1 -1
  4. package/dist/core/cells.js +113 -1
  5. package/dist/core/cells.js.map +1 -1
  6. package/dist/core/console.d.ts +0 -1
  7. package/dist/core/console.d.ts.map +1 -1
  8. package/dist/core/console.js +20 -16
  9. package/dist/core/console.js.map +1 -1
  10. package/dist/core/highlighter.d.ts.map +1 -1
  11. package/dist/core/highlighter.js.map +1 -1
  12. package/dist/core/oklch.d.ts +106 -0
  13. package/dist/core/oklch.d.ts.map +1 -0
  14. package/dist/core/oklch.js +221 -0
  15. package/dist/core/oklch.js.map +1 -0
  16. package/dist/core/render.d.ts +26 -7
  17. package/dist/core/render.d.ts.map +1 -1
  18. package/dist/core/render.js +83 -15
  19. package/dist/core/render.js.map +1 -1
  20. package/dist/core/segment.d.ts +14 -1
  21. package/dist/core/segment.d.ts.map +1 -1
  22. package/dist/core/segment.js +28 -3
  23. package/dist/core/segment.js.map +1 -1
  24. package/dist/core/style.d.ts +11 -2
  25. package/dist/core/style.d.ts.map +1 -1
  26. package/dist/core/style.js +31 -18
  27. package/dist/core/style.js.map +1 -1
  28. package/dist/core/text.d.ts +20 -0
  29. package/dist/core/text.d.ts.map +1 -1
  30. package/dist/core/text.js +31 -0
  31. package/dist/core/text.js.map +1 -1
  32. package/dist/index.d.ts +11 -4
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +12 -3
  35. package/dist/index.js.map +1 -1
  36. package/dist/renderables/columns.d.ts.map +1 -1
  37. package/dist/renderables/columns.js +15 -22
  38. package/dist/renderables/columns.js.map +1 -1
  39. package/dist/renderables/layout.d.ts.map +1 -1
  40. package/dist/renderables/layout.js +8 -29
  41. package/dist/renderables/layout.js.map +1 -1
  42. package/dist/renderables/live.d.ts.map +1 -1
  43. package/dist/renderables/live.js +8 -7
  44. package/dist/renderables/live.js.map +1 -1
  45. package/dist/renderables/panel.d.ts +34 -0
  46. package/dist/renderables/panel.d.ts.map +1 -1
  47. package/dist/renderables/panel.js +66 -23
  48. package/dist/renderables/panel.js.map +1 -1
  49. package/dist/template-bindings/helpers.d.ts +25 -0
  50. package/dist/template-bindings/helpers.d.ts.map +1 -0
  51. package/dist/template-bindings/helpers.js +31 -0
  52. package/dist/template-bindings/helpers.js.map +1 -0
  53. package/dist/template-bindings/index.d.ts +57 -18
  54. package/dist/template-bindings/index.d.ts.map +1 -1
  55. package/dist/template-bindings/index.js +83 -18
  56. package/dist/template-bindings/index.js.map +1 -1
  57. package/dist/template-bindings/palette-funcs.d.ts +76 -0
  58. package/dist/template-bindings/palette-funcs.d.ts.map +1 -0
  59. package/dist/template-bindings/palette-funcs.js +157 -0
  60. package/dist/template-bindings/palette-funcs.js.map +1 -0
  61. package/dist/template-bindings/style-funcs.d.ts.map +1 -1
  62. package/dist/template-bindings/style-funcs.js +33 -27
  63. package/dist/template-bindings/style-funcs.js.map +1 -1
  64. package/dist/themes/colorMath.d.ts +40 -0
  65. package/dist/themes/colorMath.d.ts.map +1 -1
  66. package/dist/themes/colorMath.js +82 -1
  67. package/dist/themes/colorMath.js.map +1 -1
  68. package/dist/themes/data/catppuccin-frappe.d.ts +4 -0
  69. package/dist/themes/data/catppuccin-frappe.d.ts.map +1 -0
  70. package/dist/themes/data/catppuccin-frappe.js +159 -0
  71. package/dist/themes/data/catppuccin-frappe.js.map +1 -0
  72. package/dist/themes/data/catppuccin-macchiato.d.ts +4 -0
  73. package/dist/themes/data/catppuccin-macchiato.d.ts.map +1 -0
  74. package/dist/themes/data/catppuccin-macchiato.js +159 -0
  75. package/dist/themes/data/catppuccin-macchiato.js.map +1 -0
  76. package/dist/themes/data/cyberpunk.d.ts +18 -0
  77. package/dist/themes/data/cyberpunk.d.ts.map +1 -0
  78. package/dist/themes/data/cyberpunk.js +192 -0
  79. package/dist/themes/data/cyberpunk.js.map +1 -0
  80. package/dist/themes/data/default.d.ts +4 -0
  81. package/dist/themes/data/default.d.ts.map +1 -0
  82. package/dist/themes/data/default.js +159 -0
  83. package/dist/themes/data/default.js.map +1 -0
  84. package/dist/themes/data/index.d.ts +10 -3
  85. package/dist/themes/data/index.d.ts.map +1 -1
  86. package/dist/themes/data/index.js +24 -7
  87. package/dist/themes/data/index.js.map +1 -1
  88. package/dist/themes/data/svg-export.d.ts +4 -0
  89. package/dist/themes/data/svg-export.d.ts.map +1 -0
  90. package/dist/themes/data/svg-export.js +159 -0
  91. package/dist/themes/data/svg-export.js.map +1 -0
  92. package/dist/themes/data/types.d.ts +4 -3
  93. package/dist/themes/data/types.d.ts.map +1 -1
  94. package/dist/themes/registry.d.ts +29 -2
  95. package/dist/themes/registry.d.ts.map +1 -1
  96. package/dist/themes/registry.js +62 -12
  97. package/dist/themes/registry.js.map +1 -1
  98. package/dist/themes/terminalThemes.d.ts +29 -20
  99. package/dist/themes/terminalThemes.d.ts.map +1 -1
  100. package/dist/themes/terminalThemes.js +50 -249
  101. package/dist/themes/terminalThemes.js.map +1 -1
  102. package/dist/themes/transpose.d.ts +88 -0
  103. package/dist/themes/transpose.d.ts.map +1 -0
  104. package/dist/themes/transpose.js +139 -0
  105. package/dist/themes/transpose.js.map +1 -0
  106. package/dist/widgets/button.d.ts +8 -5
  107. package/dist/widgets/button.d.ts.map +1 -1
  108. package/dist/widgets/button.js +36 -11
  109. package/dist/widgets/button.js.map +1 -1
  110. package/dist/widgets/checkbox.d.ts +1 -2
  111. package/dist/widgets/checkbox.d.ts.map +1 -1
  112. package/dist/widgets/checkbox.js +20 -7
  113. package/dist/widgets/checkbox.js.map +1 -1
  114. package/dist/widgets/dropdown.d.ts +4 -3
  115. package/dist/widgets/dropdown.d.ts.map +1 -1
  116. package/dist/widgets/dropdown.js +109 -27
  117. package/dist/widgets/dropdown.js.map +1 -1
  118. package/dist/widgets/event-router.d.ts +6 -3
  119. package/dist/widgets/event-router.d.ts.map +1 -1
  120. package/dist/widgets/event-router.js +179 -68
  121. package/dist/widgets/event-router.js.map +1 -1
  122. package/dist/widgets/focus-manager.d.ts +2 -1
  123. package/dist/widgets/focus-manager.d.ts.map +1 -1
  124. package/dist/widgets/focus-manager.js +28 -9
  125. package/dist/widgets/focus-manager.js.map +1 -1
  126. package/dist/widgets/index.d.ts +2 -2
  127. package/dist/widgets/index.d.ts.map +1 -1
  128. package/dist/widgets/index.js +1 -1
  129. package/dist/widgets/index.js.map +1 -1
  130. package/dist/widgets/screen.d.ts +2 -0
  131. package/dist/widgets/screen.d.ts.map +1 -1
  132. package/dist/widgets/screen.js +148 -45
  133. package/dist/widgets/screen.js.map +1 -1
  134. package/dist/widgets/slider.d.ts +6 -3
  135. package/dist/widgets/slider.d.ts.map +1 -1
  136. package/dist/widgets/slider.js +34 -10
  137. package/dist/widgets/slider.js.map +1 -1
  138. package/dist/widgets/static-item.d.ts +1 -1
  139. package/dist/widgets/static-item.d.ts.map +1 -1
  140. package/dist/widgets/static-item.js +12 -13
  141. package/dist/widgets/static-item.js.map +1 -1
  142. package/dist/widgets/text-input.d.ts +239 -13
  143. package/dist/widgets/text-input.d.ts.map +1 -1
  144. package/dist/widgets/text-input.js +1004 -74
  145. package/dist/widgets/text-input.js.map +1 -1
  146. package/dist/widgets/toggle.d.ts +1 -2
  147. package/dist/widgets/toggle.d.ts.map +1 -1
  148. package/dist/widgets/toggle.js +20 -8
  149. package/dist/widgets/toggle.js.map +1 -1
  150. package/dist/widgets/types.d.ts +21 -4
  151. package/dist/widgets/types.d.ts.map +1 -1
  152. package/dist/widgets/types.js +19 -0
  153. package/dist/widgets/types.js.map +1 -1
  154. package/dist/widgets/widget-base.d.ts +1 -0
  155. package/dist/widgets/widget-base.d.ts.map +1 -1
  156. package/dist/widgets/widget-base.js +24 -7
  157. package/dist/widgets/widget-base.js.map +1 -1
  158. package/package.json +5 -3
@@ -0,0 +1,159 @@
1
+ const theme = {
2
+ name: "default",
3
+ dark: true,
4
+ vars: {
5
+ "accent": "#006FB8",
6
+ "accent-darken-1": "#005CA3",
7
+ "accent-darken-2": "#004B8F",
8
+ "accent-darken-3": "#003A7B",
9
+ "accent-lighten-1": "#3081CC",
10
+ "accent-lighten-2": "#4C95E2",
11
+ "accent-lighten-3": "#64A8F7",
12
+ "accent-muted": "#002137",
13
+ "background": "#000000",
14
+ "background-darken-1": "#000000",
15
+ "background-darken-2": "#000000",
16
+ "background-darken-3": "#000000",
17
+ "background-lighten-1": "#161616",
18
+ "background-lighten-2": "#252525",
19
+ "background-lighten-3": "#353535",
20
+ "block-cursor-background": "#006FB8",
21
+ "block-cursor-blurred-background": "#006FB84C",
22
+ "block-cursor-blurred-foreground": "#FFFFFF",
23
+ "block-cursor-foreground": "#FFFFFFDD",
24
+ "block-hover-background": "#FFFFFF19",
25
+ "boost": "#FFFFFF0A",
26
+ "boost-darken-1": "#E9E9E90A",
27
+ "boost-darken-2": "#D4D4D40A",
28
+ "boost-darken-3": "#BFBFBF0A",
29
+ "boost-lighten-1": "#FFFFFF0A",
30
+ "boost-lighten-2": "#FFFFFF0A",
31
+ "boost-lighten-3": "#FFFFFF0A",
32
+ "border": "#006FB8",
33
+ "border-blurred": "#191919",
34
+ "button-color-foreground": "#FFFFFFDD",
35
+ "button-foreground": "#FFFFFF",
36
+ "error": "#7F0000",
37
+ "error-darken-1": "#6A0000",
38
+ "error-darken-2": "#560000",
39
+ "error-darken-3": "#450000",
40
+ "error-lighten-1": "#961E12",
41
+ "error-lighten-2": "#AD3423",
42
+ "error-lighten-3": "#C44934",
43
+ "error-muted": "#260000",
44
+ "footer-background": "#242E35",
45
+ "footer-description-background": "#00000000",
46
+ "footer-description-foreground": "#FFFFFF",
47
+ "footer-foreground": "#FFFFFF",
48
+ "footer-item-background": "#00000000",
49
+ "footer-key-background": "#00000000",
50
+ "footer-key-foreground": "#006FB8",
51
+ "foreground": "#FFFFFF",
52
+ "foreground-darken-1": "#E9E9E9",
53
+ "foreground-darken-2": "#D4D4D4",
54
+ "foreground-darken-3": "#BFBFBF",
55
+ "foreground-disabled": "#FFFFFF60",
56
+ "foreground-lighten-1": "#FFFFFF",
57
+ "foreground-lighten-2": "#FFFFFF",
58
+ "foreground-lighten-3": "#FFFFFF",
59
+ "foreground-muted": "#FFFFFF99",
60
+ "input-cursor-background": "#FFFFFF",
61
+ "input-cursor-foreground": "#000000",
62
+ "input-selection-background": "#3081CC66",
63
+ "link-background": "#00000000",
64
+ "link-background-hover": "#006FB8",
65
+ "link-color": "#FFFFFFDD",
66
+ "link-color-hover": "#FFFFFFDD",
67
+ "markdown-h1-background": "#00000000",
68
+ "markdown-h1-color": "#006FB8",
69
+ "markdown-h2-background": "#00000000",
70
+ "markdown-h2-color": "#006FB8",
71
+ "markdown-h3-background": "#00000000",
72
+ "markdown-h3-color": "#006FB8",
73
+ "markdown-h4-background": "#00000000",
74
+ "markdown-h4-color": "#FFFFFF",
75
+ "markdown-h5-background": "#00000000",
76
+ "markdown-h5-color": "#FFFFFF",
77
+ "markdown-h6-background": "#00000000",
78
+ "markdown-h6-color": "#FFFFFF99",
79
+ "panel": "#242E35",
80
+ "panel-darken-1": "#141E24",
81
+ "panel-darken-2": "#000D15",
82
+ "panel-darken-3": "#000000",
83
+ "panel-lighten-1": "#343E45",
84
+ "panel-lighten-2": "#454F57",
85
+ "panel-lighten-3": "#566169",
86
+ "primary": "#006FB8",
87
+ "primary-background": "#26333D",
88
+ "primary-background-darken-1": "#13212C",
89
+ "primary-background-darken-2": "#00101B",
90
+ "primary-background-darken-3": "#00101B",
91
+ "primary-background-lighten-1": "#39454E",
92
+ "primary-background-lighten-2": "#4C575F",
93
+ "primary-background-lighten-3": "#5F6970",
94
+ "primary-darken-1": "#005CA3",
95
+ "primary-darken-2": "#004B8F",
96
+ "primary-darken-3": "#003A7B",
97
+ "primary-lighten-1": "#3081CC",
98
+ "primary-lighten-2": "#4C95E2",
99
+ "primary-lighten-3": "#64A8F7",
100
+ "primary-muted": "#002137",
101
+ "scrollbar": "#002C49",
102
+ "scrollbar-active": "#006FB8",
103
+ "scrollbar-background": "#000000",
104
+ "scrollbar-background-active": "#000000",
105
+ "scrollbar-background-hover": "#000000",
106
+ "scrollbar-corner-color": "#000000",
107
+ "scrollbar-hover": "#00375C",
108
+ "secondary": "#762671",
109
+ "secondary-background": "#342A33",
110
+ "secondary-background-darken-1": "#221721",
111
+ "secondary-background-darken-2": "#110510",
112
+ "secondary-background-darken-3": "#110510",
113
+ "secondary-background-lighten-1": "#463D45",
114
+ "secondary-background-lighten-2": "#585057",
115
+ "secondary-background-lighten-3": "#6A6269",
116
+ "secondary-darken-1": "#620F5E",
117
+ "secondary-darken-2": "#4E004C",
118
+ "secondary-darken-3": "#3B003A",
119
+ "secondary-lighten-1": "#8A3984",
120
+ "secondary-lighten-2": "#9E4C97",
121
+ "secondary-lighten-3": "#B360AB",
122
+ "secondary-muted": "#230B21",
123
+ "success": "#008000",
124
+ "success-darken-1": "#006C00",
125
+ "success-darken-2": "#005900",
126
+ "success-darken-3": "#004600",
127
+ "success-lighten-1": "#29931C",
128
+ "success-lighten-2": "#42A832",
129
+ "success-lighten-3": "#58BD46",
130
+ "success-muted": "#002600",
131
+ "surface": "#1E1E1E",
132
+ "surface-active": "#2A2A2A",
133
+ "surface-darken-1": "#0D0D0D",
134
+ "surface-darken-2": "#000000",
135
+ "surface-darken-3": "#000000",
136
+ "surface-lighten-1": "#2D2D2D",
137
+ "surface-lighten-2": "#3E3E3E",
138
+ "surface-lighten-3": "#4F4F4F",
139
+ "text": "#FFFFFFDD",
140
+ "text-accent": "#569FD0",
141
+ "text-disabled": "#FFFFFF60",
142
+ "text-error": "#AB5656",
143
+ "text-muted": "#FFFFFF99",
144
+ "text-primary": "#569FD0",
145
+ "text-secondary": "#A46FA1",
146
+ "text-success": "#56AB56",
147
+ "text-warning": "#ABAB56",
148
+ "warning": "#7F8000",
149
+ "warning-darken-1": "#6B6D00",
150
+ "warning-darken-2": "#575A00",
151
+ "warning-darken-3": "#454900",
152
+ "warning-lighten-1": "#94931E",
153
+ "warning-lighten-2": "#A9A734",
154
+ "warning-lighten-3": "#BFBB48",
155
+ "warning-muted": "#262600",
156
+ },
157
+ };
158
+ export default theme;
159
+ //# sourceMappingURL=default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/themes/data/default.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,20 @@
1
1
  import type { ThemePaletteData } from "./types.js";
2
2
  /**
3
- * The 18 bundled Textual theme palettes, keyed by name. `as const` preserves
4
- * the literal-type keys so `ThemeName` (below) is `"atom-one-dark" | "..."`,
5
- * not `string` — callers passing an unknown name fail at compile time.
3
+ * All bundled theme palettes, keyed by name (20 Textual-ported + 2 rich-js
4
+ * synthetic: `default` and `svg-export`). `as const` preserves the literal-
5
+ * type keys so `ThemeName` (below) is `"atom-one-dark" | "..."`, not
6
+ * `string`. Callers must type their input as `ThemeName` explicitly to get
7
+ * compile-time safety; `getThemePalette(string)` still returns nullable.
6
8
  */
7
9
  export declare const THEMES: {
8
10
  readonly "atom-one-dark": ThemePaletteData;
9
11
  readonly "atom-one-light": ThemePaletteData;
12
+ readonly "catppuccin-frappe": ThemePaletteData;
10
13
  readonly "catppuccin-latte": ThemePaletteData;
14
+ readonly "catppuccin-macchiato": ThemePaletteData;
11
15
  readonly "catppuccin-mocha": ThemePaletteData;
16
+ readonly cyberpunk: ThemePaletteData;
17
+ readonly default: ThemePaletteData;
12
18
  readonly dracula: ThemePaletteData;
13
19
  readonly flexoki: ThemePaletteData;
14
20
  readonly gruvbox: ThemePaletteData;
@@ -19,6 +25,7 @@ export declare const THEMES: {
19
25
  readonly "rose-pine-moon": ThemePaletteData;
20
26
  readonly "solarized-dark": ThemePaletteData;
21
27
  readonly "solarized-light": ThemePaletteData;
28
+ readonly "svg-export": ThemePaletteData;
22
29
  readonly "textual-ansi": ThemePaletteData;
23
30
  readonly "textual-dark": ThemePaletteData;
24
31
  readonly "textual-light": ThemePaletteData;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/themes/data/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAqBnD;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;CAmBkC,CAAC;AAEtD,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,MAAM,CAAC;AAE5C,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/themes/data/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA0BnD;;;;;;GAMG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;CAwBkC,CAAC;AAEtD,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,MAAM,CAAC;AAE5C,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,11 +1,20 @@
1
- // Barrel: collects every per-theme file into a single typed map. The 18
2
- // imports below are the *only* place this list of names is hardcoded —
3
- // everything else (registry, ThemeName type) is derived from `THEMES`,
4
- // so adding a theme means: drop a new file, add it here, done.
1
+ // Barrel: collects every per-theme file into a single typed map. `ThemeName`
2
+ // and the registry's name list are *derived* from `THEMES`, so the keys
3
+ // below define the canonical name set for the registry. Adding a theme:
4
+ // 1. drop a new `data/<name>.ts` file,
5
+ // 2. add it here,
6
+ // 3. (optional) add a matching `<NAME>` export in `terminalThemes.ts`
7
+ // if you want a pre-built `TerminalTheme` constant alongside the
8
+ // registry palette. Without step 3 the theme is still fully usable
9
+ // via `getThemePalette(name)`.
5
10
  import atomOneDark from "./atom-one-dark.js";
6
11
  import atomOneLight from "./atom-one-light.js";
12
+ import catppuccinFrappe from "./catppuccin-frappe.js";
7
13
  import catppuccinLatte from "./catppuccin-latte.js";
14
+ import catppuccinMacchiato from "./catppuccin-macchiato.js";
8
15
  import catppuccinMocha from "./catppuccin-mocha.js";
16
+ import cyberpunk from "./cyberpunk.js";
17
+ import defaultTheme from "./default.js";
9
18
  import dracula from "./dracula.js";
10
19
  import flexoki from "./flexoki.js";
11
20
  import gruvbox from "./gruvbox.js";
@@ -16,20 +25,27 @@ import rosePineDawn from "./rose-pine-dawn.js";
16
25
  import rosePineMoon from "./rose-pine-moon.js";
17
26
  import solarizedDark from "./solarized-dark.js";
18
27
  import solarizedLight from "./solarized-light.js";
28
+ import svgExport from "./svg-export.js";
19
29
  import textualAnsi from "./textual-ansi.js";
20
30
  import textualDark from "./textual-dark.js";
21
31
  import textualLight from "./textual-light.js";
22
32
  import tokyoNight from "./tokyo-night.js";
23
33
  /**
24
- * The 18 bundled Textual theme palettes, keyed by name. `as const` preserves
25
- * the literal-type keys so `ThemeName` (below) is `"atom-one-dark" | "..."`,
26
- * not `string` — callers passing an unknown name fail at compile time.
34
+ * All bundled theme palettes, keyed by name (20 Textual-ported + 2 rich-js
35
+ * synthetic: `default` and `svg-export`). `as const` preserves the literal-
36
+ * type keys so `ThemeName` (below) is `"atom-one-dark" | "..."`, not
37
+ * `string`. Callers must type their input as `ThemeName` explicitly to get
38
+ * compile-time safety; `getThemePalette(string)` still returns nullable.
27
39
  */
28
40
  export const THEMES = {
29
41
  "atom-one-dark": atomOneDark,
30
42
  "atom-one-light": atomOneLight,
43
+ "catppuccin-frappe": catppuccinFrappe,
31
44
  "catppuccin-latte": catppuccinLatte,
45
+ "catppuccin-macchiato": catppuccinMacchiato,
32
46
  "catppuccin-mocha": catppuccinMocha,
47
+ "cyberpunk": cyberpunk,
48
+ "default": defaultTheme,
33
49
  "dracula": dracula,
34
50
  "flexoki": flexoki,
35
51
  "gruvbox": gruvbox,
@@ -40,6 +56,7 @@ export const THEMES = {
40
56
  "rose-pine-moon": rosePineMoon,
41
57
  "solarized-dark": solarizedDark,
42
58
  "solarized-light": solarizedLight,
59
+ "svg-export": svgExport,
43
60
  "textual-ansi": textualAnsi,
44
61
  "textual-dark": textualDark,
45
62
  "textual-light": textualLight,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/themes/data/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,uEAAuE;AACvE,uEAAuE;AACvE,+DAA+D;AAI/D,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAAE,YAAY;IAC9B,kBAAkB,EAAE,eAAe;IACnC,kBAAkB,EAAE,eAAe;IACnC,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO;IAClB,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,QAAQ;IACrB,gBAAgB,EAAE,YAAY;IAC9B,gBAAgB,EAAE,YAAY;IAC9B,gBAAgB,EAAE,aAAa;IAC/B,iBAAiB,EAAE,cAAc;IACjC,cAAc,EAAE,WAAW;IAC3B,cAAc,EAAE,WAAW;IAC3B,eAAe,EAAE,YAAY;IAC7B,aAAa,EAAE,UAAU;CAC0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/themes/data/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,wEAAwE;AACxE,wEAAwE;AACxE,yCAAyC;AACzC,oBAAoB;AACpB,wEAAwE;AACxE,sEAAsE;AACtE,wEAAwE;AACxE,oCAAoC;AAIpC,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AACtD,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,mBAAmB,MAAM,2BAA2B,CAAC;AAC5D,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAAE,YAAY;IAC9B,mBAAmB,EAAE,gBAAgB;IACrC,kBAAkB,EAAE,eAAe;IACnC,sBAAsB,EAAE,mBAAmB;IAC3C,kBAAkB,EAAE,eAAe;IACnC,WAAW,EAAE,SAAS;IACtB,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO;IAClB,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,QAAQ;IACrB,gBAAgB,EAAE,YAAY;IAC9B,gBAAgB,EAAE,YAAY;IAC9B,gBAAgB,EAAE,aAAa;IAC/B,iBAAiB,EAAE,cAAc;IACjC,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE,WAAW;IAC3B,cAAc,EAAE,WAAW;IAC3B,eAAe,EAAE,YAAY;IAC7B,aAAa,EAAE,UAAU;CAC0B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ThemePaletteData } from "./types.js";
2
+ declare const theme: ThemePaletteData;
3
+ export default theme;
4
+ //# sourceMappingURL=svg-export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-export.d.ts","sourceRoot":"","sources":["../../../src/themes/data/svg-export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,QAAA,MAAM,KAAK,EAAE,gBA4JZ,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,159 @@
1
+ const theme = {
2
+ name: "svg-export",
3
+ dark: true,
4
+ vars: {
5
+ "accent": "#56B6C2",
6
+ "accent-darken-1": "#3EA1AD",
7
+ "accent-darken-2": "#238D99",
8
+ "accent-darken-3": "#007A85",
9
+ "accent-lighten-1": "#6CCAD6",
10
+ "accent-lighten-2": "#81DFEC",
11
+ "accent-lighten-3": "#97F5FF",
12
+ "accent-muted": "#365356",
13
+ "background": "#292929",
14
+ "background-darken-1": "#191919",
15
+ "background-darken-2": "#050505",
16
+ "background-darken-3": "#000000",
17
+ "background-lighten-1": "#393939",
18
+ "background-lighten-2": "#4A4A4A",
19
+ "background-lighten-3": "#5C5C5C",
20
+ "block-cursor-background": "#61AFEF",
21
+ "block-cursor-blurred-background": "#61AFEF4C",
22
+ "block-cursor-blurred-foreground": "#C5C8C6",
23
+ "block-cursor-foreground": "#FFFFFFDD",
24
+ "block-hover-background": "#FFFFFF19",
25
+ "boost": "#FFFFFF0A",
26
+ "boost-darken-1": "#E9E9E90A",
27
+ "boost-darken-2": "#D4D4D40A",
28
+ "boost-darken-3": "#BFBFBF0A",
29
+ "boost-lighten-1": "#FFFFFF0A",
30
+ "boost-lighten-2": "#FFFFFF0A",
31
+ "boost-lighten-3": "#FFFFFF0A",
32
+ "border": "#61AFEF",
33
+ "border-blurred": "#191919",
34
+ "button-color-foreground": "#FFFFFFDD",
35
+ "button-foreground": "#C5C8C6",
36
+ "error": "#CB555A",
37
+ "error-darken-1": "#B54048",
38
+ "error-darken-2": "#9F2C37",
39
+ "error-darken-3": "#891427",
40
+ "error-lighten-1": "#E2686C",
41
+ "error-lighten-2": "#F97D7F",
42
+ "error-lighten-3": "#FF9192",
43
+ "error-muted": "#593637",
44
+ "footer-background": "#2C343A",
45
+ "footer-description-background": "#00000000",
46
+ "footer-description-foreground": "#C5C8C6",
47
+ "footer-foreground": "#C5C8C6",
48
+ "footer-item-background": "#00000000",
49
+ "footer-key-background": "#00000000",
50
+ "footer-key-foreground": "#56B6C2",
51
+ "foreground": "#C5C8C6",
52
+ "foreground-darken-1": "#B0B3B1",
53
+ "foreground-darken-2": "#9C9F9D",
54
+ "foreground-darken-3": "#888B89",
55
+ "foreground-disabled": "#C5C8C660",
56
+ "foreground-lighten-1": "#D9DCDA",
57
+ "foreground-lighten-2": "#EFF2F0",
58
+ "foreground-lighten-3": "#FFFFFF",
59
+ "foreground-muted": "#C5C8C699",
60
+ "input-cursor-background": "#C5C8C6",
61
+ "input-cursor-foreground": "#292929",
62
+ "input-selection-background": "#77C3FF66",
63
+ "link-background": "#00000000",
64
+ "link-background-hover": "#61AFEF",
65
+ "link-color": "#FFFFFFDD",
66
+ "link-color-hover": "#FFFFFFDD",
67
+ "markdown-h1-background": "#00000000",
68
+ "markdown-h1-color": "#61AFEF",
69
+ "markdown-h2-background": "#00000000",
70
+ "markdown-h2-color": "#61AFEF",
71
+ "markdown-h3-background": "#00000000",
72
+ "markdown-h3-color": "#61AFEF",
73
+ "markdown-h4-background": "#00000000",
74
+ "markdown-h4-color": "#C5C8C6",
75
+ "markdown-h5-background": "#00000000",
76
+ "markdown-h5-color": "#C5C8C6",
77
+ "markdown-h6-background": "#00000000",
78
+ "markdown-h6-color": "#C5C8C699",
79
+ "panel": "#2C343A",
80
+ "panel-darken-1": "#1C2429",
81
+ "panel-darken-2": "#0C141A",
82
+ "panel-darken-3": "#000007",
83
+ "panel-lighten-1": "#3C444B",
84
+ "panel-lighten-2": "#4D565C",
85
+ "panel-lighten-3": "#5F686F",
86
+ "primary": "#61AFEF",
87
+ "primary-background": "#4F5A61",
88
+ "primary-background-darken-1": "#404B53",
89
+ "primary-background-darken-2": "#313D46",
90
+ "primary-background-darken-3": "#313D46",
91
+ "primary-background-lighten-1": "#5F686F",
92
+ "primary-background-lighten-2": "#6E777D",
93
+ "primary-background-lighten-3": "#7E858B",
94
+ "primary-darken-1": "#489BD9",
95
+ "primary-darken-2": "#2C87C4",
96
+ "primary-darken-3": "#0074AF",
97
+ "primary-lighten-1": "#77C3FF",
98
+ "primary-lighten-2": "#8ED8FF",
99
+ "primary-lighten-3": "#A4EDFF",
100
+ "primary-muted": "#395164",
101
+ "scrollbar": "#35556E",
102
+ "scrollbar-active": "#61AFEF",
103
+ "scrollbar-background": "#191919",
104
+ "scrollbar-background-active": "#191919",
105
+ "scrollbar-background-hover": "#191919",
106
+ "scrollbar-corner-color": "#191919",
107
+ "scrollbar-hover": "#3D6484",
108
+ "secondary": "#C678DD",
109
+ "secondary-background": "#5C5260",
110
+ "secondary-background-darken-1": "#4E4352",
111
+ "secondary-background-darken-2": "#403444",
112
+ "secondary-background-darken-3": "#403444",
113
+ "secondary-background-lighten-1": "#6A616E",
114
+ "secondary-background-lighten-2": "#79707C",
115
+ "secondary-background-lighten-3": "#87808A",
116
+ "secondary-darken-1": "#B064C7",
117
+ "secondary-darken-2": "#9B50B3",
118
+ "secondary-darken-3": "#873D9E",
119
+ "secondary-lighten-1": "#DB8CF2",
120
+ "secondary-lighten-2": "#F1A0FF",
121
+ "secondary-lighten-3": "#FFB5FF",
122
+ "secondary-muted": "#58405F",
123
+ "success": "#98C379",
124
+ "success-darken-1": "#83AE65",
125
+ "success-darken-2": "#709A53",
126
+ "success-darken-3": "#5C8641",
127
+ "success-lighten-1": "#ACD78C",
128
+ "success-lighten-2": "#C1EDA0",
129
+ "success-lighten-3": "#D6FFB4",
130
+ "success-muted": "#4A5741",
131
+ "surface": "#1E1E1E",
132
+ "surface-active": "#2A2A2A",
133
+ "surface-darken-1": "#0D0D0D",
134
+ "surface-darken-2": "#000000",
135
+ "surface-darken-3": "#000000",
136
+ "surface-lighten-1": "#2D2D2D",
137
+ "surface-lighten-2": "#3E3E3E",
138
+ "surface-lighten-3": "#4F4F4F",
139
+ "text": "#FFFFFFDD",
140
+ "text-accent": "#8FCED6",
141
+ "text-disabled": "#FFFFFF60",
142
+ "text-error": "#DD8E92",
143
+ "text-muted": "#FFFFFF99",
144
+ "text-primary": "#96CAF4",
145
+ "text-secondary": "#D9A5E8",
146
+ "text-success": "#BBD7A6",
147
+ "text-warning": "#EDD5A7",
148
+ "warning": "#E4C07B",
149
+ "warning-darken-1": "#CFAB67",
150
+ "warning-darken-2": "#B99754",
151
+ "warning-darken-3": "#A48442",
152
+ "warning-lighten-1": "#FBD48E",
153
+ "warning-lighten-2": "#FFE9A2",
154
+ "warning-lighten-3": "#FFFFB7",
155
+ "warning-muted": "#615641",
156
+ },
157
+ };
158
+ export default theme;
159
+ //# sourceMappingURL=svg-export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-export.js","sourceRoot":"","sources":["../../../src/themes/data/svg-export.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,10 @@
3
3
  * exports one of these as its default export. The barrel (`./index.ts`)
4
4
  * collects them into a single typed map; the registry consumes that map.
5
5
  *
6
- * Distinct from `Palette` (the runtime class with parsed ColorQuads): this
7
- * type is the on-disk authoring format, hex strings included. Conversion
8
- * happens in `getThemePalette` via `Palette.fromHex`.
6
+ * Distinct from `Palette` — this is the on-disk authoring format (hex
7
+ * strings); `Palette` is the runtime form (parsed ColorRgba values). The
8
+ * registry's `getThemePalette` is the single boundary that hydrates one
9
+ * into the other.
9
10
  */
10
11
  export interface ThemePaletteData {
11
12
  readonly name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/themes/data/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACjD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/themes/data/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACjD"}
@@ -1,3 +1,4 @@
1
+ import { ColorRgba } from "../core/color.js";
1
2
  import { Palette } from "./palette.js";
2
3
  import { type ThemeName } from "./data/index.js";
3
4
  export type { ThemeName };
@@ -10,8 +11,34 @@ export declare function listThemePalettes(): readonly ThemeName[];
10
11
  *
11
12
  * Synchronous: theme data is bundled at compile time via the data barrel,
12
13
  * so no I/O happens here. The Palette itself (which requires hex-parsing
13
- * 150 vars into ColorQuads) is constructed lazily on first request and
14
- * cached — subsequent calls for the same name return the same instance.
14
+ * ~150 vars into ColorRgba values) is constructed lazily on first request
15
+ * and cached — subsequent calls for the same name return the same instance.
15
16
  */
17
+ export declare function getThemePalette(name: ThemeName): Palette;
16
18
  export declare function getThemePalette(name: string): Palette | null;
19
+ /**
20
+ * The eight base colors every theme must declare. Returned by
21
+ * `getThemeBaseColors` for callers (notably `terminalThemes.ts`) that only
22
+ * need the substrate and would otherwise pay the cost of hydrating the
23
+ * full ~150-var palette and polluting the registry cache.
24
+ */
25
+ export interface ThemeBaseColors {
26
+ readonly name: string;
27
+ readonly dark: boolean;
28
+ readonly bg: ColorRgba;
29
+ readonly fg: ColorRgba;
30
+ readonly primary: ColorRgba;
31
+ readonly secondary: ColorRgba;
32
+ readonly accent: ColorRgba;
33
+ readonly success: ColorRgba;
34
+ readonly warning: ColorRgba;
35
+ readonly error: ColorRgba;
36
+ }
37
+ /**
38
+ * Read just the eight base colors from a theme's data file. Cheap — parses
39
+ * 8 hex strings, allocates no Palette, touches no cache. Use this when you
40
+ * want a `TerminalTheme`-shaped substrate without forcing the full ~150-var
41
+ * palette through the registry's hydration path.
42
+ */
43
+ export declare function getThemeBaseColors(name: ThemeName): ThemeBaseColors;
17
44
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/themes/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEzD,YAAY,EAAE,SAAS,EAAE,CAAC;AAM1B;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,SAAS,EAAE,CAExD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAU5D"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/themes/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA6B,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAU,KAAK,SAAS,EAAyB,MAAM,iBAAiB,CAAC;AAEhF,YAAY,EAAE,SAAS,EAAE,CAAC;AAM1B;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,SAAS,EAAE,CAExD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;AAC1D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAgB9D;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,eAAe,CAcnE"}
@@ -1,6 +1,7 @@
1
+ import { parseRgbHex, parseRgbaHex } from "../core/color.js";
1
2
  import { Palette } from "./palette.js";
2
3
  import { THEMES } from "./data/index.js";
3
- const THEME_NAMES = Object.keys(THEMES).sort();
4
+ const THEME_NAMES = Object.freeze(Object.keys(THEMES).sort());
4
5
  const cache = new Map();
5
6
  /**
6
7
  * Returns the static list of available theme names. Pure and synchronous.
@@ -8,26 +9,75 @@ const cache = new Map();
8
9
  export function listThemePalettes() {
9
10
  return THEME_NAMES;
10
11
  }
11
- /**
12
- * Returns the Palette for `name`, or `null` if unknown.
13
- *
14
- * Synchronous: theme data is bundled at compile time via the data barrel,
15
- * so no I/O happens here. The Palette itself (which requires hex-parsing
16
- * 150 vars into ColorQuads) is constructed lazily on first request and
17
- * cached — subsequent calls for the same name return the same instance.
18
- */
19
12
  export function getThemePalette(name) {
20
13
  if (!isThemeName(name))
21
14
  return null;
22
15
  const cached = cache.get(name);
23
16
  if (cached !== undefined)
24
17
  return cached;
25
- const data = THEMES[name];
26
- const palette = Palette.fromHex(data.name, data.dark, data.vars);
18
+ const palette = hydrate(THEMES[name]);
27
19
  cache.set(name, palette);
28
20
  return palette;
29
21
  }
30
22
  function isThemeName(name) {
31
- return name in THEMES;
23
+ return Object.hasOwn(THEMES, name);
24
+ }
25
+ /**
26
+ * Read just the eight base colors from a theme's data file. Cheap — parses
27
+ * 8 hex strings, allocates no Palette, touches no cache. Use this when you
28
+ * want a `TerminalTheme`-shaped substrate without forcing the full ~150-var
29
+ * palette through the registry's hydration path.
30
+ */
31
+ export function getThemeBaseColors(name) {
32
+ const data = THEMES[name];
33
+ return {
34
+ name: data.name,
35
+ dark: data.dark,
36
+ bg: requireBaseVar(data, "background"),
37
+ fg: requireBaseVar(data, "foreground"),
38
+ primary: requireBaseVar(data, "primary"),
39
+ secondary: requireBaseVar(data, "secondary"),
40
+ accent: requireBaseVar(data, "accent"),
41
+ success: requireBaseVar(data, "success"),
42
+ warning: requireBaseVar(data, "warning"),
43
+ error: requireBaseVar(data, "error"),
44
+ };
45
+ }
46
+ function requireBaseVar(data, key) {
47
+ const v = data.vars[key];
48
+ if (v === undefined) {
49
+ throw new Error(`Theme ${data.name}: required base var "${key}" missing from data file`);
50
+ }
51
+ return parseHex(v, data.name, key);
52
+ }
53
+ /**
54
+ * Parse a `ThemePaletteData`'s hex strings into a Palette of ColorRgba.
55
+ *
56
+ * [LAW:single-enforcer] Hex → ColorRgba conversion for theme data lives
57
+ * here, not on Palette. Keeping the parser in this module preserves the
58
+ * `core/color → themes/palette` one-way edge (palette.ts must not import
59
+ * ColorRgba as a value, or it cycles with core/color's own use of Palette
60
+ * for INTERNAL_DEFAULT_THEME).
61
+ */
62
+ function hydrate(data) {
63
+ const map = new Map();
64
+ for (const [k, v] of Object.entries(data.vars)) {
65
+ map.set(k, parseHex(v, data.name, k));
66
+ }
67
+ return new Palette(data.name, data.dark, map);
68
+ }
69
+ // [LAW:single-enforcer] This is the loud-failure boundary for theme hex
70
+ // data. `parseRgbHex`/`parseRgbaHex` in core/color.ts trust their input
71
+ // shape (they assume the caller validated); here we are the caller from
72
+ // the untrusted side (authored data files) and the place that has to
73
+ // reject `"0G"`, `""`, `"#GGGGGG"`, etc.
74
+ const HEX_RE = /^[0-9a-fA-F]+$/;
75
+ function parseHex(value, theme, key) {
76
+ const hex = value.startsWith("#") ? value.slice(1) : value;
77
+ if ((hex.length !== 6 && hex.length !== 8) || !HEX_RE.test(hex)) {
78
+ throw new Error(`Theme ${theme}: var ${key} has invalid hex ${JSON.stringify(value)} ` +
79
+ `(expected #RRGGBB or #RRGGBBAA)`);
80
+ }
81
+ return hex.length === 6 ? parseRgbHex(hex) : parseRgbaHex(hex);
32
82
  }
33
83
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/themes/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAkB,MAAM,iBAAiB,CAAC;AAIzD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAA0B,CAAC;AAEvE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAExC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,IAAI,MAAM,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/themes/registry.ts"],"names":[],"mappings":"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"}